Merge branch 'develop' into inner-quote

This commit is contained in:
FineArchs 2024-10-11 10:58:56 +09:00 committed by GitHub
commit 58dd7837a6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
167 changed files with 389 additions and 399 deletions

View file

@ -1,15 +1,10 @@
## Unreleased ## 2024.10.1
### General
-
### Client ### Client
- Enhance: l10nの更新
- Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正
- Enhance: 新しいMFM「URL引用」を追加。`> https://hogehoge.com`のように、`> `に続けてURLを置くことで文中にURLプレビューを展開することができます - Enhance: 新しいMFM「URL引用」を追加。`> https://hogehoge.com`のように、`> `に続けてURLを置くことで文中にURLプレビューを展開することができます
### Server
-
## 2024.10.0 ## 2024.10.0
### Note ### Note

View file

@ -1252,7 +1252,6 @@ _theme:
buttonBg: "خلفية الأزرار" buttonBg: "خلفية الأزرار"
buttonHoverBg: "خلفية الأزرار (عند التمرير فوقها)" buttonHoverBg: "خلفية الأزرار (عند التمرير فوقها)"
inputBorder: "حواف حقل الإدخال" inputBorder: "حواف حقل الإدخال"
listItemHoverBg: "خلفية عناصر القائمة (عند التمرير فوقها)"
driveFolderBg: "خلفية مجلد قرص التخزين" driveFolderBg: "خلفية مجلد قرص التخزين"
messageBg: "خلفية المحادثة" messageBg: "خلفية المحادثة"
_sfx: _sfx:

View file

@ -1017,7 +1017,6 @@ _theme:
buttonBg: "বাটনের পটভূমি" buttonBg: "বাটনের পটভূমি"
buttonHoverBg: "বাটনের পটভূমি (হভার)" buttonHoverBg: "বাটনের পটভূমি (হভার)"
inputBorder: "ইনপুট ফিল্ডের বর্ডার" inputBorder: "ইনপুট ফিল্ডের বর্ডার"
listItemHoverBg: "লিস্ট আইটেমের পটভূমি (হোভার)"
driveFolderBg: "ড্রাইভ ফোল্ডারের পটভূমি" driveFolderBg: "ড্রাইভ ফোল্ডারের পটভূমি"
wallpaperOverlay: "ওয়ালপেপার ওভারলে" wallpaperOverlay: "ওয়ালপেপার ওভারলে"
badge: "ব্যাজ" badge: "ব্যাজ"

View file

@ -453,6 +453,7 @@ totpDescription: "Escriu una contrasenya d'un sol us fent servir l'aplicació d'
moderator: "Moderador/a" moderator: "Moderador/a"
moderation: "Moderació" moderation: "Moderació"
moderationNote: "Nota de moderació " moderationNote: "Nota de moderació "
moderationNoteDescription: "Pots escriure notes que es compartiran entre els moderadors."
addModerationNote: "Afegir una nota de moderació " addModerationNote: "Afegir una nota de moderació "
moderationLogs: "Registre de moderació " moderationLogs: "Registre de moderació "
nUsersMentioned: "{n} usuaris mencionats" nUsersMentioned: "{n} usuaris mencionats"
@ -1284,6 +1285,14 @@ unknownWebAuthnKey: "Passkey desconeguda"
passkeyVerificationFailed: "La verificació a fallat" passkeyVerificationFailed: "La verificació a fallat"
passkeyVerificationSucceededButPasswordlessLoginDisabled: "La verificació de la passkey a estat correcta, però s'ha deshabilitat l'inici de sessió sense contrasenya." passkeyVerificationSucceededButPasswordlessLoginDisabled: "La verificació de la passkey a estat correcta, però s'ha deshabilitat l'inici de sessió sense contrasenya."
messageToFollower: "Missatge als meus seguidors" messageToFollower: "Missatge als meus seguidors"
target: "Assumpte "
_abuseUserReport:
forward: "Reenviar "
forwardDescription: "Reenvia l'informe a una altra instància com un compte del sistema anònima."
resolve: "Solució "
accept: "Acceptar "
reject: "Rebutjar"
resolveTutorial: "Si l'informe és legítim selecciona \"Acceptar\" per resoldre'l positivament. Però si l'informe no és legítim selecciona \"Rebutjar\" per resoldre'l negativament."
_delivery: _delivery:
status: "Estat d'entrega " status: "Estat d'entrega "
stop: "Suspés" stop: "Suspés"
@ -1974,7 +1983,6 @@ _theme:
buttonBg: "Fons botó " buttonBg: "Fons botó "
buttonHoverBg: "Fons botó (en passar-hi per sobre)" buttonHoverBg: "Fons botó (en passar-hi per sobre)"
inputBorder: "Contorn del cap d'introducció " inputBorder: "Contorn del cap d'introducció "
listItemHoverBg: "Fons dels elements d'una llista"
driveFolderBg: "Fons de la carpeta Disc" driveFolderBg: "Fons de la carpeta Disc"
wallpaperOverlay: "Superposició del fons de pantalla " wallpaperOverlay: "Superposició del fons de pantalla "
badge: "Insígnia " badge: "Insígnia "
@ -2520,6 +2528,8 @@ _moderationLogTypes:
markSensitiveDriveFile: "Fitxer marcat com a sensible" markSensitiveDriveFile: "Fitxer marcat com a sensible"
unmarkSensitiveDriveFile: "S'ha tret la marca de sensible del fitxer" unmarkSensitiveDriveFile: "S'ha tret la marca de sensible del fitxer"
resolveAbuseReport: "Informe resolt" resolveAbuseReport: "Informe resolt"
forwardAbuseReport: "Informe reenviat"
updateAbuseReportNote: "Nota de moderació d'un informe actualitzat"
createInvitation: "Crear codi d'invitació " createInvitation: "Crear codi d'invitació "
createAd: "Anunci creat" createAd: "Anunci creat"
deleteAd: "Anunci esborrat" deleteAd: "Anunci esborrat"

View file

@ -1629,7 +1629,6 @@ _theme:
buttonBg: "Pozadí tlačítka" buttonBg: "Pozadí tlačítka"
buttonHoverBg: "Pozadí tlačítka (Hover)" buttonHoverBg: "Pozadí tlačítka (Hover)"
inputBorder: "Ohraničení vstupního pole" inputBorder: "Ohraničení vstupního pole"
listItemHoverBg: "Pozadí položky seznamu (Hover)"
driveFolderBg: "Pozadí složky disku" driveFolderBg: "Pozadí složky disku"
wallpaperOverlay: "Překrytí tapety" wallpaperOverlay: "Překrytí tapety"
badge: "Odznak" badge: "Odznak"

View file

@ -1784,7 +1784,6 @@ _theme:
buttonBg: "Hintergrund von Schaltflächen" buttonBg: "Hintergrund von Schaltflächen"
buttonHoverBg: "Hintergrund von Schaltflächen (Mouseover)" buttonHoverBg: "Hintergrund von Schaltflächen (Mouseover)"
inputBorder: "Rahmen von Eingabefeldern" inputBorder: "Rahmen von Eingabefeldern"
listItemHoverBg: "Hintergrund von Listeneinträgen (Mouseover)"
driveFolderBg: "Hintergrund von Drive-Ordnern" driveFolderBg: "Hintergrund von Drive-Ordnern"
wallpaperOverlay: "Hintergrundbild-Overlay" wallpaperOverlay: "Hintergrundbild-Overlay"
badge: "Wappen" badge: "Wappen"

View file

@ -1984,7 +1984,6 @@ _theme:
buttonBg: "Button background" buttonBg: "Button background"
buttonHoverBg: "Button background (Hover)" buttonHoverBg: "Button background (Hover)"
inputBorder: "Input field border" inputBorder: "Input field border"
listItemHoverBg: "List item background (Hover)"
driveFolderBg: "Drive folder background" driveFolderBg: "Drive folder background"
wallpaperOverlay: "Wallpaper overlay" wallpaperOverlay: "Wallpaper overlay"
badge: "Badge" badge: "Badge"

View file

@ -1915,7 +1915,6 @@ _theme:
buttonBg: "Fondo de botón" buttonBg: "Fondo de botón"
buttonHoverBg: "Fondo de botón (hover)" buttonHoverBg: "Fondo de botón (hover)"
inputBorder: "Borde de los campos de entrada" inputBorder: "Borde de los campos de entrada"
listItemHoverBg: "Fondo de elemento de listas (hover)"
driveFolderBg: "Fondo de capeta del drive" driveFolderBg: "Fondo de capeta del drive"
wallpaperOverlay: "Transparencia del fondo de pantalla" wallpaperOverlay: "Transparencia del fondo de pantalla"
badge: "Medalla" badge: "Medalla"

View file

@ -1701,7 +1701,6 @@ _theme:
buttonBg: "Arrière-plan du bouton" buttonBg: "Arrière-plan du bouton"
buttonHoverBg: "Arrière-plan du bouton (survolé)" buttonHoverBg: "Arrière-plan du bouton (survolé)"
inputBorder: "Cadre de la zone de texte" inputBorder: "Cadre de la zone de texte"
listItemHoverBg: "Arrière-plan d'item de liste (survolé)"
driveFolderBg: "Arrière-plan du dossier de disque" driveFolderBg: "Arrière-plan du dossier de disque"
wallpaperOverlay: "Superposition de fond d'écran" wallpaperOverlay: "Superposition de fond d'écran"
badge: "Badge" badge: "Badge"

View file

@ -1924,7 +1924,6 @@ _theme:
buttonBg: "Latar belakang tombol" buttonBg: "Latar belakang tombol"
buttonHoverBg: "Latar belakang tombol (Mengambang)" buttonHoverBg: "Latar belakang tombol (Mengambang)"
inputBorder: "Batas bidang masukan" inputBorder: "Batas bidang masukan"
listItemHoverBg: "Latar belakang daftar item (Mengambang)"
driveFolderBg: "Latar belakang folder drive" driveFolderBg: "Latar belakang folder drive"
wallpaperOverlay: "Lapisan wallpaper" wallpaperOverlay: "Lapisan wallpaper"
badge: "Lencana" badge: "Lencana"

View file

@ -1975,7 +1975,6 @@ _theme:
buttonBg: "Sfondo del pulsante" buttonBg: "Sfondo del pulsante"
buttonHoverBg: "Sfondo del pulsante (sorvolato)" buttonHoverBg: "Sfondo del pulsante (sorvolato)"
inputBorder: "Inquadra casella di testo" inputBorder: "Inquadra casella di testo"
listItemHoverBg: "Sfondo della voce di elenco (sorvolato)"
driveFolderBg: "Sfondo della cartella di disco" driveFolderBg: "Sfondo della cartella di disco"
wallpaperOverlay: "Sovrapposizione dello sfondo" wallpaperOverlay: "Sovrapposizione dello sfondo"
badge: "Distintivo" badge: "Distintivo"

View file

@ -1943,7 +1943,6 @@ _theme:
buttonBg: "ボタンの背景" buttonBg: "ボタンの背景"
buttonHoverBg: "ボタンの背景 (ホバー)" buttonHoverBg: "ボタンの背景 (ホバー)"
inputBorder: "入力ボックスの縁取り" inputBorder: "入力ボックスの縁取り"
listItemHoverBg: "リスト項目の背景 (ホバー)"
driveFolderBg: "ドライブフォルダーの背景" driveFolderBg: "ドライブフォルダーの背景"
wallpaperOverlay: "壁紙のオーバーレイ" wallpaperOverlay: "壁紙のオーバーレイ"
badge: "バッジ" badge: "バッジ"

View file

@ -1984,7 +1984,6 @@ _theme:
buttonBg: "버튼 배경" buttonBg: "버튼 배경"
buttonHoverBg: "버튼 배경 (호버)" buttonHoverBg: "버튼 배경 (호버)"
inputBorder: "입력 필드 테두리" inputBorder: "입력 필드 테두리"
listItemHoverBg: "리스트 항목 배경 (호버)"
driveFolderBg: "드라이브 폴더 배경" driveFolderBg: "드라이브 폴더 배경"
wallpaperOverlay: "배경화면 오버레이" wallpaperOverlay: "배경화면 오버레이"
badge: "배지" badge: "배지"

View file

@ -1205,7 +1205,6 @@ _theme:
buttonBg: "Tło przycisku" buttonBg: "Tło przycisku"
buttonHoverBg: "Tło przycisku (po najechaniu)" buttonHoverBg: "Tło przycisku (po najechaniu)"
inputBorder: "Obramowanie pola wejścia" inputBorder: "Obramowanie pola wejścia"
listItemHoverBg: "Tło elementu listy (po najechaniu)"
driveFolderBg: "Tło folderu na dysku" driveFolderBg: "Tło folderu na dysku"
wallpaperOverlay: "Nakładka tapety" wallpaperOverlay: "Nakładka tapety"
badge: "Odznaka" badge: "Odznaka"

View file

@ -25,7 +25,7 @@ basicSettings: "Configurações básicas"
otherSettings: "Outras configurações" otherSettings: "Outras configurações"
openInWindow: "Abrir em um janela" openInWindow: "Abrir em um janela"
profile: "Perfil" profile: "Perfil"
timeline: "Cronologia" timeline: "Linha do tempo"
noAccountDescription: "Este usuário não tem uma descrição." noAccountDescription: "Este usuário não tem uma descrição."
login: "Iniciar sessão" login: "Iniciar sessão"
loggingIn: "Iniciando sessão…" loggingIn: "Iniciando sessão…"
@ -1944,7 +1944,6 @@ _theme:
buttonBg: "Plano de fundo de botão" buttonBg: "Plano de fundo de botão"
buttonHoverBg: "Plano de fundo de botão (Selecionado)" buttonHoverBg: "Plano de fundo de botão (Selecionado)"
inputBorder: "Borda de campo digitável" inputBorder: "Borda de campo digitável"
listItemHoverBg: "Plano de fundo do item de uma lista (Selecionado)"
driveFolderBg: "Plano de fundo da pasta no Drive" driveFolderBg: "Plano de fundo da pasta no Drive"
wallpaperOverlay: "Sobreposição do papel de parede." wallpaperOverlay: "Sobreposição do papel de parede."
badge: "Emblema" badge: "Emblema"

View file

@ -1694,7 +1694,6 @@ _theme:
buttonBg: "Фон кнопки" buttonBg: "Фон кнопки"
buttonHoverBg: "Текст кнопки" buttonHoverBg: "Текст кнопки"
inputBorder: "Рамка поля ввода" inputBorder: "Рамка поля ввода"
listItemHoverBg: "Фон пункта списка (под указателем)"
driveFolderBg: "Фон папки «Диска»" driveFolderBg: "Фон папки «Диска»"
wallpaperOverlay: "Слой обоев" wallpaperOverlay: "Слой обоев"
badge: "Значок" badge: "Значок"

View file

@ -1108,7 +1108,6 @@ _theme:
buttonBg: "Pozadie tlačidla" buttonBg: "Pozadie tlačidla"
buttonHoverBg: "Pozadie tlačidla (pod kurzorom)" buttonHoverBg: "Pozadie tlačidla (pod kurzorom)"
inputBorder: "Okraj vstupného poľa" inputBorder: "Okraj vstupného poľa"
listItemHoverBg: "Pozadie položky zoznamu (pod kurzorom)"
driveFolderBg: "Pozadie priečinu disku" driveFolderBg: "Pozadie priečinu disku"
wallpaperOverlay: "Vrstvenie pozadia" wallpaperOverlay: "Vrstvenie pozadia"
badge: "Odznak" badge: "Odznak"

View file

@ -1943,7 +1943,6 @@ _theme:
buttonBg: "ปุ่มพื้นหลัง" buttonBg: "ปุ่มพื้นหลัง"
buttonHoverBg: "ปุ่มพื้นหลัง (โฮเวอร์)" buttonHoverBg: "ปุ่มพื้นหลัง (โฮเวอร์)"
inputBorder: "เส้นขอบของช่องป้อนข้อมูล" inputBorder: "เส้นขอบของช่องป้อนข้อมูล"
listItemHoverBg: "รายการไอเทมพื้นหลัง (โฮเวอร์)"
driveFolderBg: "พื้นหลังโฟลเดอร์ไดรฟ์" driveFolderBg: "พื้นหลังโฟลเดอร์ไดรฟ์"
wallpaperOverlay: "วอลล์เปเปอร์ซ้อนทับ" wallpaperOverlay: "วอลล์เปเปอร์ซ้อนทับ"
badge: "ตรา" badge: "ตรา"

View file

@ -1302,7 +1302,6 @@ _theme:
buttonBg: "Фон кнопки" buttonBg: "Фон кнопки"
buttonHoverBg: "Фон кнопки (при наведенні)" buttonHoverBg: "Фон кнопки (при наведенні)"
inputBorder: "Край поля вводу" inputBorder: "Край поля вводу"
listItemHoverBg: "Фон елементу в списку (при наведенні)"
driveFolderBg: "Фон папки на диску" driveFolderBg: "Фон папки на диску"
wallpaperOverlay: "Накладання шпалер" wallpaperOverlay: "Накладання шпалер"
badge: "Значок" badge: "Значок"

View file

@ -1546,7 +1546,6 @@ _theme:
buttonBg: "Nền nút" buttonBg: "Nền nút"
buttonHoverBg: "Nền nút (Chạm)" buttonHoverBg: "Nền nút (Chạm)"
inputBorder: "Đường viền khung soạn thảo" inputBorder: "Đường viền khung soạn thảo"
listItemHoverBg: "Nền mục liệt kê (Chạm)"
driveFolderBg: "Nền thư mục Ổ đĩa" driveFolderBg: "Nền thư mục Ổ đĩa"
wallpaperOverlay: "Lớp phủ hình nền" wallpaperOverlay: "Lớp phủ hình nền"
badge: "Huy hiệu" badge: "Huy hiệu"

View file

@ -1984,7 +1984,6 @@ _theme:
buttonBg: "按钮背景" buttonBg: "按钮背景"
buttonHoverBg: "按钮背景(悬停)" buttonHoverBg: "按钮背景(悬停)"
inputBorder: "输入框边框" inputBorder: "输入框边框"
listItemHoverBg: "下拉列表项目背景(悬停)"
driveFolderBg: "网盘的文件夹背景" driveFolderBg: "网盘的文件夹背景"
wallpaperOverlay: "壁纸叠加层" wallpaperOverlay: "壁纸叠加层"
badge: "徽章" badge: "徽章"

View file

@ -1975,7 +1975,6 @@ _theme:
buttonBg: "按鈕背景" buttonBg: "按鈕背景"
buttonHoverBg: "按鈕背景 (漂浮)" buttonHoverBg: "按鈕背景 (漂浮)"
inputBorder: "輸入框邊框" inputBorder: "輸入框邊框"
listItemHoverBg: "列表物品背景 (漂浮)"
driveFolderBg: "雲端硬碟文件夾背景" driveFolderBg: "雲端硬碟文件夾背景"
wallpaperOverlay: "壁紙覆蓋層" wallpaperOverlay: "壁紙覆蓋層"
badge: "徽章" badge: "徽章"

View file

@ -1,6 +1,6 @@
{ {
"name": "misskey", "name": "misskey",
"version": "2024.10.0", "version": "2024.10.1-beta.2",
"codename": "nasubi", "codename": "nasubi",
"repository": { "repository": {
"type": "git", "type": "git",

View file

@ -31,10 +31,10 @@ defineProps<{
display: flex; display: flex;
align-items: center; align-items: center;
width: 100%; width: 100%;
padding: var(--margin); padding: var(--MI-margin);
margin-top: 4px; margin-top: 4px;
border: 1px solid var(--MI_THEME-inputBorder); border: 1px solid var(--MI_THEME-inputBorder);
border-radius: var(--radius); border-radius: var(--MI-radius);
background-color: var(--MI_THEME-panel); background-color: var(--MI_THEME-panel);
transition: background-color .1s, border-color .1s; transition: background-color .1s, border-color .1s;

View file

@ -29,9 +29,9 @@ defineProps<{
width: 100%; width: 100%;
height: auto; height: auto;
aspect-ratio: 16 / 9; aspect-ratio: 16 / 9;
padding: var(--margin); padding: var(--MI-margin);
border: 1px solid var(--MI_THEME-divider); border: 1px solid var(--MI_THEME-divider);
border-radius: var(--radius); border-radius: var(--MI-radius);
background-color: #000; background-color: #000;
&:hover { &:hover {

View file

@ -190,7 +190,7 @@ const isDeleted = ref(false);
width: calc(100% - 8px); width: calc(100% - 8px);
height: calc(100% - 8px); height: calc(100% - 8px);
border: dashed 2px var(--MI_THEME-focus); border: dashed 2px var(--MI_THEME-focus);
border-radius: var(--radius); border-radius: var(--MI-radius);
box-sizing: border-box; box-sizing: border-box;
} }
} }
@ -356,7 +356,7 @@ const isDeleted = ref(false);
width: 58px; width: 58px;
height: 58px; height: 58px;
position: sticky !important; position: sticky !important;
top: calc(22px + var(--stickyTop, 0px)); top: calc(22px + var(--MI-stickyTop, 0px));
left: 0; left: 0;
} }
@ -377,7 +377,7 @@ const isDeleted = ref(false);
width: 100%; width: 100%;
margin-top: 14px; margin-top: 14px;
position: sticky; position: sticky;
bottom: calc(var(--stickyBottom, 0px) + 14px); bottom: calc(var(--MI-stickyBottom, 0px) + 14px);
} }
.showLessLabel { .showLessLabel {
@ -430,7 +430,7 @@ const isDeleted = ref(false);
.translation { .translation {
border: solid 0.5px var(--MI_THEME-divider); border: solid 0.5px var(--MI_THEME-divider);
border-radius: var(--radius); border-radius: var(--MI-radius);
padding: 12px; padding: 12px;
margin-top: 8px; margin-top: 8px;
} }
@ -550,7 +550,7 @@ const isDeleted = ref(false);
margin: 0 10px 0 0; margin: 0 10px 0 0;
width: 46px; width: 46px;
height: 46px; height: 46px;
top: calc(14px + var(--stickyTop, 0px)); top: calc(14px + var(--MI-stickyTop, 0px));
} }
} }

View file

@ -364,7 +364,7 @@ const collapsed = ref(appearNote.value.cw == null && isLong);
width: 100%; width: 100%;
margin-top: 14px; margin-top: 14px;
position: sticky; position: sticky;
bottom: calc(var(--stickyBottom, 0px) + 14px); bottom: calc(var(--MI-stickyBottom, 0px) + 14px);
} }
.showLessLabel { .showLessLabel {

View file

@ -53,7 +53,7 @@ const showContent = ref(false);
height: 34px; height: 34px;
border-radius: 8px; border-radius: 8px;
position: sticky !important; position: sticky !important;
top: calc(16px + var(--stickyTop, 0px)); top: calc(16px + var(--MI-stickyTop, 0px));
left: 0; left: 0;
} }

View file

@ -100,7 +100,7 @@ const collapsed = ref(isLong);
width: 100%; width: 100%;
margin-top: 14px; margin-top: 14px;
position: sticky; position: sticky;
bottom: calc(var(--stickyBottom, 0px) + 14px); bottom: calc(var(--MI-stickyBottom, 0px) + 14px);
} }
.showLessLabel { .showLessLabel {

View file

@ -100,7 +100,7 @@ function top(ev: MouseEvent) {
display: flex; display: flex;
min-width: 0; min-width: 0;
align-items: center; align-items: center;
gap: var(--margin); gap: var(--MI-margin);
overflow: hidden; overflow: hidden;
.headerClipIconRoot { .headerClipIconRoot {

View file

@ -83,7 +83,7 @@ function top(ev: MouseEvent) {
display: flex; display: flex;
min-width: 0; min-width: 0;
align-items: center; align-items: center;
gap: var(--margin); gap: var(--MI-margin);
overflow: hidden; overflow: hidden;
.headerClipIconRoot { .headerClipIconRoot {

View file

@ -117,7 +117,7 @@ function top(ev: MouseEvent) {
display: flex; display: flex;
min-width: 0; min-width: 0;
align-items: center; align-items: center;
gap: var(--margin); gap: var(--MI-margin);
overflow: hidden; overflow: hidden;
.avatarLink { .avatarLink {

View file

@ -7,11 +7,11 @@
*/ */
:root { :root {
--radius: 12px; --MI-radius: 12px;
--marginFull: 14px; --MI-marginFull: 14px;
--marginHalf: 10px; --MI-marginHalf: 10px;
--margin: var(--marginFull); --MI-margin: var(--MI-marginFull);
} }
html { html {
@ -218,12 +218,12 @@ rt {
._panel { ._panel {
background: var(--MI_THEME-panel); background: var(--MI_THEME-panel);
border-radius: var(--radius); border-radius: var(--MI-radius);
overflow: clip; overflow: clip;
} }
._margin { ._margin {
margin: var(--margin) 0; margin: var(--MI-margin) 0;
} }
._gaps_m { ._gaps_m {
@ -241,7 +241,7 @@ rt {
._gaps { ._gaps {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: var(--margin); gap: var(--MI-margin);
} }
._buttons { ._buttons {
@ -264,7 +264,7 @@ rt {
box-sizing: border-box; box-sizing: border-box;
text-align: center; text-align: center;
border: solid 0.5px var(--MI_THEME-divider); border: solid 0.5px var(--MI_THEME-divider);
border-radius: var(--radius); border-radius: var(--MI-radius);
&:active { &:active {
border-color: var(--MI_THEME-accent); border-color: var(--MI_THEME-accent);
@ -273,14 +273,14 @@ rt {
._popup { ._popup {
background: var(--MI_THEME-popup); background: var(--MI_THEME-popup);
border-radius: var(--radius); border-radius: var(--MI-radius);
contain: content; contain: content;
} }
._acrylic { ._acrylic {
background: var(--MI_THEME-acrylicPanel); background: var(--MI_THEME-acrylicPanel);
-webkit-backdrop-filter: var(--blur, blur(15px)); -webkit-backdrop-filter: var(--MI-blur, blur(15px));
backdrop-filter: var(--blur, blur(15px)); backdrop-filter: var(--MI-blur, blur(15px));
} }
._fullinfo { ._fullinfo {

View file

@ -95,7 +95,7 @@ onUnmounted(() => {
height: auto; height: auto;
&.rounded { &.rounded {
border-radius: var(--radius); border-radius: var(--MI-radius);
} }
&.noBorder { &.noBorder {

View file

@ -226,7 +226,7 @@ export async function openAccountMenu(opts: {
function showSigninDialog() { function showSigninDialog() {
const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkSigninDialog.vue')), {}, { const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkSigninDialog.vue')), {}, {
done: res => { done: (res: Misskey.entities.SigninFlowResponse & { finished: true }) => {
addAccount(res.id, res.i); addAccount(res.id, res.i);
success(); success();
}, },
@ -236,9 +236,9 @@ export async function openAccountMenu(opts: {
function createAccount() { function createAccount() {
const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkSignupDialog.vue')), {}, { const { dispose } = popup(defineAsyncComponent(() => import('@/components/MkSignupDialog.vue')), {}, {
done: res => { done: (res: Misskey.entities.SignupResponse) => {
addAccount(res.id, res.i); addAccount(res.id, res.token);
switchAccountWithToken(res.i); switchAccountWithToken(res.token);
}, },
closed: () => dispose(), closed: () => dispose(),
}); });

View file

@ -186,14 +186,14 @@ export async function common(createVue: () => App<Element>) {
}); });
watch(defaultStore.reactiveState.useBlurEffectForModal, v => { watch(defaultStore.reactiveState.useBlurEffectForModal, v => {
document.documentElement.style.setProperty('--modalBgFilter', v ? 'blur(4px)' : 'none'); document.documentElement.style.setProperty('--MI-modalBgFilter', v ? 'blur(4px)' : 'none');
}, { immediate: true }); }, { immediate: true });
watch(defaultStore.reactiveState.useBlurEffect, v => { watch(defaultStore.reactiveState.useBlurEffect, v => {
if (v) { if (v) {
document.documentElement.style.removeProperty('--blur'); document.documentElement.style.removeProperty('--MI-blur');
} else { } else {
document.documentElement.style.setProperty('--blur', 'none'); document.documentElement.style.setProperty('--MI-blur', 'none');
} }
}, { immediate: true }); }, { immediate: true });

View file

@ -34,7 +34,7 @@ misskeyApi('users/show', { userId: props.movedTo }).then(u => user.value = u);
font-size: 90%; font-size: 90%;
background: var(--MI_THEME-infoWarnBg); background: var(--MI_THEME-infoWarnBg);
color: var(--MI_THEME-error); color: var(--MI_THEME-error);
border-radius: var(--radius); border-radius: var(--MI-radius);
} }
.link { .link {

View file

@ -84,7 +84,7 @@ onMounted(() => {
max-width: 480px; max-width: 480px;
box-sizing: border-box; box-sizing: border-box;
background: var(--MI_THEME-panel); background: var(--MI_THEME-panel);
border-radius: var(--radius); border-radius: var(--MI-radius);
} }
.header { .header {

View file

@ -863,8 +863,8 @@ onMounted(() => {
left: 0; left: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
-webkit-backdrop-filter: var(--blur, blur(12px)); -webkit-backdrop-filter: var(--MI-blur, blur(12px));
backdrop-filter: var(--blur, blur(12px)); backdrop-filter: var(--MI-blur, blur(12px));
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;

View file

@ -165,7 +165,7 @@ onUnmounted(() => {
.header { .header {
position: sticky; position: sticky;
top: var(--stickyTop, 0px); top: var(--MI-stickyTop, 0px);
left: 0; left: 0;
color: var(--MI_THEME-panelHeaderFg); color: var(--MI_THEME-panelHeaderFg);
background: var(--MI_THEME-panelHeaderBg); background: var(--MI_THEME-panelHeaderBg);
@ -201,7 +201,7 @@ onUnmounted(() => {
} }
.content { .content {
--stickyTop: 0px; --MI-stickyTop: 0px;
&.omitted { &.omitted {
position: relative; position: relative;

View file

@ -170,8 +170,8 @@ onMounted(() => {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
-webkit-backdrop-filter: var(--blur, blur(10px)); -webkit-backdrop-filter: var(--MI-blur, blur(10px));
backdrop-filter: var(--blur, blur(10px)); backdrop-filter: var(--MI-blur, blur(10px));
background: rgba(0, 0, 0, 0.5); background: rgba(0, 0, 0, 0.5);
} }

View file

@ -86,7 +86,7 @@ function cancel() {
max-width: 100%; max-width: 100%;
height: 40cqh; height: 40cqh;
background-image: repeating-linear-gradient(45deg, transparent, transparent 8px, var(--MI_THEME-X5) 8px, var(--MI_THEME-X5) 14px); background-image: repeating-linear-gradient(45deg, transparent, transparent 8px, var(--MI_THEME-X5) 8px, var(--MI_THEME-X5) 14px);
border-radius: var(--radius); border-radius: var(--MI-radius);
margin: auto; margin: auto;
overflow-y: hidden; overflow-y: hidden;
} }
@ -103,6 +103,6 @@ function cancel() {
padding: 3px 10px; padding: 3px 10px;
background-color: var(--MI_THEME-X5); background-color: var(--MI_THEME-X5);
border: solid 1px var(--MI_THEME-divider); border: solid 1px var(--MI_THEME-divider);
border-radius: var(--radius); border-radius: var(--MI-radius);
} }
</style> </style>

View file

@ -182,7 +182,7 @@ export default defineComponent({
} }
&:not(.date-separated-list-nogap) > *:not(:last-child) { &:not(.date-separated-list-nogap) > *:not(:last-child) {
margin-bottom: var(--margin); margin-bottom: var(--MI-margin);
} }
} }

View file

@ -65,12 +65,12 @@ function neverShow() {
.root { .root {
position: fixed; position: fixed;
z-index: v-bind(zIndex); z-index: v-bind(zIndex);
bottom: var(--margin); bottom: var(--MI-margin);
left: 0; left: 0;
right: 0; right: 0;
margin: auto; margin: auto;
box-sizing: border-box; box-sizing: border-box;
width: calc(100% - (var(--margin) * 2)); width: calc(100% - (var(--MI-margin) * 2));
max-width: 500px; max-width: 500px;
display: flex; display: flex;
} }

View file

@ -36,13 +36,13 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup> <script lang="ts" setup>
import { computed, defineAsyncComponent, ref } from 'vue'; import { computed, defineAsyncComponent, ref } from 'vue';
import * as Misskey from 'misskey-js'; import * as Misskey from 'misskey-js';
import type { MenuItem } from '@/types/menu.js';
import * as os from '@/os.js'; import * as os from '@/os.js';
import { misskeyApi } from '@/scripts/misskey-api.js'; import { misskeyApi } from '@/scripts/misskey-api.js';
import { i18n } from '@/i18n.js'; import { i18n } from '@/i18n.js';
import { defaultStore } from '@/store.js'; import { defaultStore } from '@/store.js';
import { claimAchievement } from '@/scripts/achievements.js'; import { claimAchievement } from '@/scripts/achievements.js';
import { copyToClipboard } from '@/scripts/copy-to-clipboard.js'; import { copyToClipboard } from '@/scripts/copy-to-clipboard.js';
import type { MenuItem } from '@/types/menu.js';
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
folder: Misskey.entities.DriveFolder; folder: Misskey.entities.DriveFolder;
@ -375,7 +375,6 @@ function onContextmenu(ev: MouseEvent) {
.name { .name {
margin: 0; margin: 0;
font-size: 0.9em; font-size: 0.9em;
color: var(--desktopDriveFolderFg);
} }
.icon { .icon {
@ -388,6 +387,5 @@ function onContextmenu(ev: MouseEvent) {
margin: 4px 4px; margin: 4px 4px;
font-size: 0.8em; font-size: 0.8em;
text-align: right; text-align: right;
color: var(--desktopDriveFolderFg);
} }
</style> </style>

View file

@ -768,7 +768,7 @@ onBeforeUnmount(() => {
.main { .main {
flex: 1; flex: 1;
overflow: auto; overflow: auto;
padding: var(--margin); padding: var(--MI-margin);
user-select: none; user-select: none;
&.fetching { &.fetching {

View file

@ -110,7 +110,7 @@ const emits = defineEmits<{
<style lang="scss" module> <style lang="scss" module>
.extInstallerRoot { .extInstallerRoot {
border-radius: var(--radius); border-radius: var(--MI-radius);
background: var(--MI_THEME-panel); background: var(--MI_THEME-panel);
padding: 1.5rem; padding: 1.5rem;
} }

View file

@ -83,7 +83,6 @@ const props = defineProps<{
> p { > p {
display: inline-block; display: inline-block;
margin: 0; margin: 0;
color: var(--urlPreviewInfo);
font-size: 0.8em; font-size: 0.8em;
line-height: 16px; line-height: 16px;
vertical-align: top; vertical-align: top;

View file

@ -118,9 +118,9 @@ onMounted(() => {
position: relative; position: relative;
z-index: 10; z-index: 10;
position: sticky; position: sticky;
top: var(--stickyTop, 0px); top: var(--MI-stickyTop, 0px);
-webkit-backdrop-filter: var(--blur, blur(8px)); -webkit-backdrop-filter: var(--MI-blur, blur(8px));
backdrop-filter: var(--blur, blur(20px)); backdrop-filter: var(--MI-blur, blur(20px));
} }
.title { .title {

View file

@ -145,8 +145,8 @@ onMounted(() => {
box-sizing: border-box; box-sizing: border-box;
padding: 9px 12px 9px 12px; padding: 9px 12px 9px 12px;
background: var(--MI_THEME-folderHeaderBg); background: var(--MI_THEME-folderHeaderBg);
-webkit-backdrop-filter: var(--blur, blur(15px)); -webkit-backdrop-filter: var(--MI-blur, blur(15px));
backdrop-filter: var(--blur, blur(15px)); backdrop-filter: var(--MI-blur, blur(15px));
border-radius: 6px; border-radius: 6px;
transition: border-radius 0.3s; transition: border-radius 0.3s;
@ -236,12 +236,12 @@ onMounted(() => {
.footer { .footer {
position: sticky !important; position: sticky !important;
z-index: 1; z-index: 1;
bottom: var(--stickyBottom, 0px); bottom: var(--MI-stickyBottom, 0px);
left: 0; left: 0;
padding: 12px; padding: 12px;
background: var(--MI_THEME-acrylicBg); background: var(--MI_THEME-acrylicBg);
-webkit-backdrop-filter: var(--blur, blur(15px)); -webkit-backdrop-filter: var(--MI-blur, blur(15px));
backdrop-filter: var(--blur, blur(15px)); backdrop-filter: var(--MI-blur, blur(15px));
background-size: auto auto; background-size: auto auto;
background-image: repeating-linear-gradient(135deg, transparent, transparent 5px, var(--MI_THEME-panel) 5px, var(--MI_THEME-panel) 10px); background-image: repeating-linear-gradient(135deg, transparent, transparent 5px, var(--MI_THEME-panel) 5px, var(--MI_THEME-panel) 10px);
border-radius: 0 0 6px 6px; border-radius: 0 0 6px 6px;

View file

@ -39,7 +39,7 @@ withDefaults(defineProps<{
<style module lang="scss"> <style module lang="scss">
.root { .root {
--fukidashi-radius: var(--radius); --fukidashi-radius: var(--MI-radius);
--fukidashi-bg: var(--MI_THEME-panel); --fukidashi-bg: var(--MI_THEME-panel);
position: relative; position: relative;

View file

@ -38,7 +38,7 @@ function close() {
font-size: 90%; font-size: 90%;
background: var(--MI_THEME-infoBg); background: var(--MI_THEME-infoBg);
color: var(--MI_THEME-infoFg); color: var(--MI_THEME-infoFg);
border-radius: var(--radius); border-radius: var(--MI-radius);
white-space: pre-wrap; white-space: pre-wrap;
&.warn { &.warn {

View file

@ -257,7 +257,7 @@ onMounted(() => {
min-width: 0; min-width: 0;
position: relative; position: relative;
background: var(--MI_THEME-panel); background: var(--MI_THEME-panel);
border-radius: var(--radius); border-radius: var(--MI-radius);
padding: 24px; padding: 24px;
max-height: 300px; max-height: 300px;

View file

@ -392,7 +392,7 @@ onDeactivated(() => {
container-type: inline-size; container-type: inline-size;
position: relative; position: relative;
border: .5px solid var(--MI_THEME-divider); border: .5px solid var(--MI_THEME-divider);
border-radius: var(--radius); border-radius: var(--MI-radius);
overflow: clip; overflow: clip;
&:focus-visible { &:focus-visible {
@ -454,7 +454,7 @@ onDeactivated(() => {
.controlButton { .controlButton {
padding: 6px; padding: 6px;
border-radius: calc(var(--radius) / 2); border-radius: calc(var(--MI-radius) / 2);
font-size: 1.05rem; font-size: 1.05rem;
&:hover { &:hover {

View file

@ -68,7 +68,6 @@ async function show() {
} }
.download { .download {
background: var(--noteAttachedFile);
} }
.sensitive { .sensitive {

View file

@ -226,8 +226,8 @@ html[data-color-scheme=light] .visible {
position: absolute; position: absolute;
border-radius: 999px; border-radius: 999px;
background-color: rgba(0, 0, 0, 0.3); background-color: rgba(0, 0, 0, 0.3);
-webkit-backdrop-filter: var(--blur, blur(15px)); -webkit-backdrop-filter: var(--MI-blur, blur(15px));
backdrop-filter: var(--blur, blur(15px)); backdrop-filter: var(--MI-blur, blur(15px));
color: #fff; color: #fff;
font-size: 0.8em; font-size: 0.8em;
width: 28px; width: 28px;

View file

@ -317,7 +317,7 @@ defineExpose({
<style lang="scss"> <style lang="scss">
.pswp__bg { .pswp__bg {
background: var(--MI_THEME-modalBg); background: var(--MI_THEME-modalBg);
backdrop-filter: var(--modalBgFilter); backdrop-filter: var(--MI-modalBgFilter);
} }
.pswp__alt-text-container { .pswp__alt-text-container {
@ -338,8 +338,8 @@ defineExpose({
color: var(--MI_THEME-fg); color: var(--MI_THEME-fg);
margin: 0 auto; margin: 0 auto;
text-align: center; text-align: center;
padding: var(--margin); padding: var(--MI-margin);
border-radius: var(--radius); border-radius: var(--MI-radius);
max-height: 8em; max-height: 8em;
overflow-y: auto; overflow-y: auto;
text-shadow: var(--MI_THEME-bg) 0 0 10px, var(--MI_THEME-bg) 0 0 3px, var(--MI_THEME-bg) 0 0 3px; text-shadow: var(--MI_THEME-bg) 0 0 10px, var(--MI_THEME-bg) 0 0 3px, var(--MI_THEME-bg) 0 0 3px;

View file

@ -658,7 +658,7 @@ onDeactivated(() => {
.controlButton { .controlButton {
padding: 6px; padding: 6px;
border-radius: calc(var(--radius) / 2); border-radius: calc(var(--MI-radius) / 2);
transition: background-color .2s ease-in-out; transition: background-color .2s ease-in-out;
font-size: 1.05rem; font-size: 1.05rem;

View file

@ -90,7 +90,7 @@ defineExpose({
display: flex; display: flex;
flex-direction: column; flex-direction: column;
contain: content; contain: content;
border-radius: var(--radius); border-radius: var(--MI-radius);
--root-margin: 24px; --root-margin: 24px;
@ -106,8 +106,8 @@ defineExpose({
display: flex; display: flex;
flex-shrink: 0; flex-shrink: 0;
background: var(--MI_THEME-windowHeader); background: var(--MI_THEME-windowHeader);
-webkit-backdrop-filter: var(--blur, blur(15px)); -webkit-backdrop-filter: var(--MI-blur, blur(15px));
backdrop-filter: var(--blur, blur(15px)); backdrop-filter: var(--MI-blur, blur(15px));
} }
.headerButton { .headerButton {

View file

@ -644,7 +644,7 @@ function emitUpdReaction(emoji: string, delta: number) {
width: calc(100% - 8px); width: calc(100% - 8px);
height: calc(100% - 8px); height: calc(100% - 8px);
border: dashed 2px var(--MI_THEME-focus); border: dashed 2px var(--MI_THEME-focus);
border-radius: var(--radius); border-radius: var(--MI-radius);
box-sizing: border-box; box-sizing: border-box;
} }
} }
@ -810,7 +810,7 @@ function emitUpdReaction(emoji: string, delta: number) {
width: 58px; width: 58px;
height: 58px; height: 58px;
position: sticky !important; position: sticky !important;
top: calc(22px + var(--stickyTop, 0px)); top: calc(22px + var(--MI-stickyTop, 0px));
left: 0; left: 0;
} }
@ -831,7 +831,7 @@ function emitUpdReaction(emoji: string, delta: number) {
width: 100%; width: 100%;
margin-top: 14px; margin-top: 14px;
position: sticky; position: sticky;
bottom: calc(var(--stickyBottom, 0px) + 14px); bottom: calc(var(--MI-stickyBottom, 0px) + 14px);
} }
.showLessLabel { .showLessLabel {
@ -884,7 +884,7 @@ function emitUpdReaction(emoji: string, delta: number) {
.translation { .translation {
border: solid 0.5px var(--MI_THEME-divider); border: solid 0.5px var(--MI_THEME-divider);
border-radius: var(--radius); border-radius: var(--MI-radius);
padding: 12px; padding: 12px;
margin-top: 8px; margin-top: 8px;
} }
@ -998,7 +998,7 @@ function emitUpdReaction(emoji: string, delta: number) {
margin: 0 10px 0 0; margin: 0 10px 0 0;
width: 46px; width: 46px;
height: 46px; height: 46px;
top: calc(14px + var(--stickyTop, 0px)); top: calc(14px + var(--MI-stickyTop, 0px));
} }
} }

View file

@ -570,7 +570,7 @@ function loadConversation() {
width: calc(100% - 8px); width: calc(100% - 8px);
height: calc(100% - 8px); height: calc(100% - 8px);
border: dashed 2px var(--MI_THEME-focus); border: dashed 2px var(--MI_THEME-focus);
border-radius: var(--radius); border-radius: var(--MI-radius);
box-sizing: border-box; box-sizing: border-box;
} }
} }
@ -711,7 +711,7 @@ function loadConversation() {
.translation { .translation {
border: solid 0.5px var(--MI_THEME-divider); border: solid 0.5px var(--MI_THEME-divider);
border-radius: var(--radius); border-radius: var(--MI-radius);
padding: 12px; padding: 12px;
margin-top: 8px; margin-top: 8px;
} }

View file

@ -51,7 +51,7 @@ const showContent = ref(false);
height: 34px; height: 34px;
border-radius: 8px; border-radius: 8px;
position: sticky !important; position: sticky !important;
top: calc(16px + var(--stickyTop, 0px)); top: calc(16px + var(--MI-stickyTop, 0px));
left: 0; left: 0;
} }

View file

@ -66,7 +66,7 @@ defineExpose({
.note { .note {
background: var(--MI_THEME-panel); background: var(--MI_THEME-panel);
border-radius: var(--radius); border-radius: var(--MI-radius);
} }
} }
} }

View file

@ -47,7 +47,7 @@ onUnmounted(() => {
<style lang="scss" module> <style lang="scss" module>
.content { .content {
--stickyTop: 0px; --MI-stickyTop: 0px;
&.omitted { &.omitted {
position: relative; position: relative;

View file

@ -42,7 +42,7 @@ const props = defineProps<{
.eyeCatchingImageRoot { .eyeCatchingImageRoot {
width: 100%; width: 100%;
height: 200px; height: 200px;
border-radius: var(--radius) var(--radius) 0 0; border-radius: var(--MI-radius) var(--MI-radius) 0 0;
overflow: hidden; overflow: hidden;
} }
</style> </style>
@ -67,7 +67,7 @@ const props = defineProps<{
left: 0; left: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
border-radius: var(--radius); border-radius: var(--MI-radius);
pointer-events: none; pointer-events: none;
box-shadow: inset 0 0 0 2px var(--MI_THEME-focus); box-shadow: inset 0 0 0 2px var(--MI_THEME-focus);
} }
@ -75,14 +75,14 @@ const props = defineProps<{
> .thumbnail { > .thumbnail {
& + article { & + article {
border-radius: 0 0 var(--radius) var(--radius); border-radius: 0 0 var(--MI-radius) var(--MI-radius);
} }
} }
> article { > article {
background-color: var(--MI_THEME-panel); background-color: var(--MI_THEME-panel);
padding: 16px; padding: 16px;
border-radius: var(--radius); border-radius: var(--MI-radius);
> header { > header {
margin-bottom: 8px; margin-bottom: 8px;
@ -115,7 +115,6 @@ const props = defineProps<{
> p { > p {
display: inline-block; display: inline-block;
margin: 0; margin: 0;
color: var(--urlPreviewInfo);
font-size: 0.8em; font-size: 0.8em;
line-height: 16px; line-height: 16px;
vertical-align: top; vertical-align: top;

View file

@ -181,6 +181,6 @@ defineExpose({
min-height: 100%; min-height: 100%;
background: var(--MI_THEME-bg); background: var(--MI_THEME-bg);
--margin: var(--marginHalf); --MI-margin: var(--MI-marginHalf);
} }
</style> </style>

View file

@ -21,7 +21,7 @@ defineProps<{
padding: 16px; padding: 16px;
background: var(--MI_THEME-infoWarnBg); background: var(--MI_THEME-infoWarnBg);
color: var(--MI_THEME-infoWarnFg); color: var(--MI_THEME-infoWarnFg);
border-radius: var(--radius); border-radius: var(--MI-radius);
overflow: clip; overflow: clip;
} }

View file

@ -83,7 +83,7 @@ import type { AuthenticationPublicKeyCredential } from '@github/webauthn-json/br
import type { OpenOnRemoteOptions } from '@/scripts/please-login.js'; import type { OpenOnRemoteOptions } from '@/scripts/please-login.js';
const emit = defineEmits<{ const emit = defineEmits<{
(ev: 'login', v: Misskey.entities.SigninFlowResponse): void; (ev: 'login', v: Misskey.entities.SigninFlowResponse & { finished: true }): void;
}>(); }>();
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
@ -276,7 +276,7 @@ async function tryLogin(req: Partial<Misskey.entities.SigninFlowRequest>): Promi
}); });
} }
async function onLoginSucceeded(res: Misskey.entities.SigninFlowResponse & { finished: true; }) { async function onLoginSucceeded(res: Misskey.entities.SigninFlowResponse & { finished: true }) {
if (props.autoSet) { if (props.autoSet) {
await login(res.i); await login(res.i);
} }

View file

@ -23,6 +23,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import * as Misskey from 'misskey-js';
import { shallowRef } from 'vue'; import { shallowRef } from 'vue';
import type { OpenOnRemoteOptions } from '@/scripts/please-login.js'; import type { OpenOnRemoteOptions } from '@/scripts/please-login.js';
import MkSignin from '@/components/MkSignin.vue'; import MkSignin from '@/components/MkSignin.vue';
@ -40,7 +41,7 @@ withDefaults(defineProps<{
}); });
const emit = defineEmits<{ const emit = defineEmits<{
(ev: 'done', v: any): void; (ev: 'done', v: Misskey.entities.SigninFlowResponse & { finished: true }): void;
(ev: 'closed'): void; (ev: 'closed'): void;
(ev: 'cancelled'): void; (ev: 'cancelled'): void;
}>(); }>();
@ -52,7 +53,7 @@ function onClose() {
if (modal.value) modal.value.close(); if (modal.value) modal.value.close();
} }
function onLogin(res) { function onLogin(res: Misskey.entities.SigninFlowResponse & { finished: true }) {
emit('done', res); emit('done', res);
if (modal.value) modal.value.close(); if (modal.value) modal.value.close();
} }
@ -69,7 +70,7 @@ function onLogin(res) {
max-height: 450px; max-height: 450px;
box-sizing: border-box; box-sizing: border-box;
background: var(--MI_THEME-panel); background: var(--MI_THEME-panel);
border-radius: var(--radius); border-radius: var(--MI-radius);
} }
.header { .header {
@ -82,7 +83,7 @@ function onLogin(res) {
display: flex; display: flex;
align-items: center; align-items: center;
font-weight: bold; font-weight: bold;
backdrop-filter: var(--blur, blur(15px)); backdrop-filter: var(--MI-blur, blur(15px));
background: var(--MI_THEME-acrylicBg); background: var(--MI_THEME-acrylicBg);
z-index: 1; z-index: 1;
} }

View file

@ -98,7 +98,7 @@ const props = withDefaults(defineProps<{
}); });
const emit = defineEmits<{ const emit = defineEmits<{
(ev: 'signup', user: Misskey.entities.SigninFlowResponse): void; (ev: 'signup', user: Misskey.entities.SignupResponse): void;
(ev: 'signupEmailPending'): void; (ev: 'signupEmailPending'): void;
}>(); }>();
@ -250,18 +250,30 @@ async function onSubmit(): Promise<void> {
if (submitting.value) return; if (submitting.value) return;
submitting.value = true; submitting.value = true;
try { const signupPayload: Misskey.entities.SignupRequest = {
await misskeyApi('signup', { username: username.value,
username: username.value, password: password.value,
password: password.value, emailAddress: email.value,
emailAddress: email.value, invitationCode: invitationCode.value,
invitationCode: invitationCode.value, 'hcaptcha-response': hCaptchaResponse.value,
'hcaptcha-response': hCaptchaResponse.value, 'm-captcha-response': mCaptchaResponse.value,
'm-captcha-response': mCaptchaResponse.value, 'g-recaptcha-response': reCaptchaResponse.value,
'g-recaptcha-response': reCaptchaResponse.value, 'turnstile-response': turnstileResponse.value,
'turnstile-response': turnstileResponse.value, };
});
if (instance.emailRequiredForSignup) { const res = await fetch(`${config.apiUrl}/signup`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(signupPayload),
}).catch(() => {
onSignupApiError();
return null;
});
if (res) {
if (res.status === 204 || instance.emailRequiredForSignup) {
os.alert({ os.alert({
type: 'success', type: 'success',
title: i18n.ts._signup.almostThere, title: i18n.ts._signup.almostThere,
@ -269,33 +281,31 @@ async function onSubmit(): Promise<void> {
}); });
emit('signupEmailPending'); emit('signupEmailPending');
} else { } else {
const res = await misskeyApi('signin-flow', { const resJson = (await res.json()) as Misskey.entities.SignupResponse;
username: username.value, if (_DEV_) console.log(resJson);
password: password.value,
});
emit('signup', res);
if (props.autoSet && res.finished) { emit('signup', resJson);
return login(res.i);
} else { if (props.autoSet) {
os.alert({ await login(resJson.token);
type: 'error',
text: i18n.ts.somethingHappened,
});
} }
} }
} catch {
submitting.value = false;
hcaptcha.value?.reset?.();
mcaptcha.value?.reset?.();
recaptcha.value?.reset?.();
turnstile.value?.reset?.();
os.alert({
type: 'error',
text: i18n.ts.somethingHappened,
});
} }
submitting.value = false;
}
function onSignupApiError() {
submitting.value = false;
hcaptcha.value?.reset?.();
mcaptcha.value?.reset?.();
recaptcha.value?.reset?.();
turnstile.value?.reset?.();
os.alert({
type: 'error',
text: i18n.ts.somethingHappened,
});
} }
</script> </script>

View file

@ -170,7 +170,7 @@ async function updateAgreeNote(v: boolean) {
flex-shrink: 0; flex-shrink: 0;
display: flex; display: flex;
position: sticky; position: sticky;
top: calc(var(--stickyTop, 0px) + 8px); top: calc(var(--MI-stickyTop, 0px) + 8px);
counter-increment: item; counter-increment: item;
content: counter(item); content: counter(item);
width: 32px; width: 32px;

View file

@ -47,7 +47,7 @@ const props = withDefaults(defineProps<{
}); });
const emit = defineEmits<{ const emit = defineEmits<{
(ev: 'done', res: Misskey.entities.SigninFlowResponse): void; (ev: 'done', res: Misskey.entities.SignupResponse): void;
(ev: 'closed'): void; (ev: 'closed'): void;
}>(); }>();
@ -55,7 +55,7 @@ const dialog = shallowRef<InstanceType<typeof MkModalWindow>>();
const isAcceptedServerRule = ref(false); const isAcceptedServerRule = ref(false);
function onSignup(res: Misskey.entities.SigninFlowResponse) { function onSignup(res: Misskey.entities.SignupResponse) {
emit('done', res); emit('done', res);
dialog.value?.close(); dialog.value?.close();
} }

View file

@ -63,12 +63,12 @@ function close() {
.root { .root {
position: fixed; position: fixed;
z-index: v-bind(zIndex); z-index: v-bind(zIndex);
bottom: var(--margin); bottom: var(--MI-margin);
left: 0; left: 0;
right: 0; right: 0;
margin: auto; margin: auto;
box-sizing: border-box; box-sizing: border-box;
width: calc(100% - (var(--margin) * 2)); width: calc(100% - (var(--MI-margin) * 2));
max-width: 500px; max-width: 500px;
display: flex; display: flex;
} }

View file

@ -97,7 +97,7 @@ const collapsed = ref(isLong);
width: 100%; width: 100%;
margin-top: 14px; margin-top: 14px;
position: sticky; position: sticky;
bottom: calc(var(--stickyBottom, 0px) + 14px); bottom: calc(var(--MI-stickyBottom, 0px) + 14px);
} }
.showLessLabel { .showLessLabel {

View file

@ -263,8 +263,8 @@ onMounted(async () => {
padding: 12px; padding: 12px;
border-top: solid 0.5px var(--MI_THEME-divider); border-top: solid 0.5px var(--MI_THEME-divider);
background: var(--MI_THEME-acrylicBg); background: var(--MI_THEME-acrylicBg);
-webkit-backdrop-filter: var(--blur, blur(15px)); -webkit-backdrop-filter: var(--MI-blur, blur(15px));
backdrop-filter: var(--blur, blur(15px)); backdrop-filter: var(--MI-blur, blur(15px));
} }
.switchBox { .switchBox {

View file

@ -226,7 +226,7 @@ onUnmounted(() => {
.mfmPreview { .mfmPreview {
padding: 12px; padding: 12px;
border-radius: var(--radius); border-radius: var(--MI-radius);
box-sizing: border-box; box-sizing: border-box;
min-height: 130px; min-height: 130px;
pointer-events: none; pointer-events: none;

View file

@ -137,7 +137,7 @@ function enableAll(): void {
margin: 8px -6px 0; margin: 8px -6px 0;
padding: 24px 6px 6px; padding: 24px 6px 6px;
border: 2px solid var(--MI_THEME-error); border: 2px solid var(--MI_THEME-error);
border-radius: calc(var(--radius) / 2); border-radius: calc(var(--MI-radius) / 2);
} }
.adminPermissionsHeader { .adminPermissionsHeader {

View file

@ -105,7 +105,7 @@ function removeReaction(emoji) {
<style lang="scss" module> <style lang="scss" module>
.exampleNoteRoot { .exampleNoteRoot {
border-radius: var(--radius); border-radius: var(--MI-radius);
border: var(--MI_THEME-panelBorder); border: var(--MI_THEME-panelBorder);
background: var(--MI_THEME-panel); background: var(--MI_THEME-panel);
} }

View file

@ -81,7 +81,7 @@ const exampleCWNote = reactive<Misskey.entities.Note>({
<style lang="scss" module> <style lang="scss" module>
.exampleRoot { .exampleRoot {
max-width: none!important; max-width: none!important;
border-radius: var(--radius); border-radius: var(--MI-radius);
border: var(--MI_THEME-panelBorder); border: var(--MI_THEME-panelBorder);
background: var(--MI_THEME-panel); background: var(--MI_THEME-panel);
} }

View file

@ -91,7 +91,7 @@ const exampleNote = reactive<Misskey.entities.Note>({
<style lang="scss" module> <style lang="scss" module>
.exampleRoot { .exampleRoot {
border-radius: var(--radius); border-radius: var(--MI-radius);
border: var(--MI_THEME-panelBorder); border: var(--MI_THEME-panelBorder);
background: var(--MI_THEME-panel); background: var(--MI_THEME-panel);
} }

View file

@ -31,7 +31,7 @@ import { basicTimelineIconClass, basicTimelineTypes } from '@/timelines.js';
<style lang="scss" module> <style lang="scss" module>
.exampleNoteRoot { .exampleNoteRoot {
border-radius: var(--radius); border-radius: var(--MI-radius);
border: var(--MI_THEME-panelBorder); border: var(--MI_THEME-panelBorder);
background: var(--MI_THEME-panel); background: var(--MI_THEME-panel);
} }

View file

@ -47,7 +47,7 @@ onMounted(() => {
box-sizing: border-box; box-sizing: border-box;
text-align: center; text-align: center;
background: var(--MI_THEME-panel); background: var(--MI_THEME-panel);
border-radius: var(--radius); border-radius: var(--MI-radius);
} }
.title { .title {

View file

@ -84,13 +84,13 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup> <script lang="ts" setup>
import { defineAsyncComponent, onDeactivated, onUnmounted, ref } from 'vue'; import { defineAsyncComponent, onDeactivated, onUnmounted, ref } from 'vue';
import type { summaly } from '@misskey-dev/summaly';
import { url as local } from '@@/js/config.js'; import { url as local } from '@@/js/config.js';
import { versatileLang } from '@@/js/intl-const.js';
import type { summaly } from '@misskey-dev/summaly';
import { i18n } from '@/i18n.js'; import { i18n } from '@/i18n.js';
import * as os from '@/os.js'; import * as os from '@/os.js';
import { deviceKind } from '@/scripts/device-kind.js'; import { deviceKind } from '@/scripts/device-kind.js';
import MkButton from '@/components/MkButton.vue'; import MkButton from '@/components/MkButton.vue';
import { versatileLang } from '@@/js/intl-const.js';
import { transformPlayerUrl } from '@/scripts/player-url-transform.js'; import { transformPlayerUrl } from '@/scripts/player-url-transform.js';
import { defaultStore } from '@/store.js'; import { defaultStore } from '@/store.js';
@ -317,7 +317,6 @@ onUnmounted(() => {
.siteName { .siteName {
display: inline-block; display: inline-block;
margin: 0; margin: 0;
color: var(--urlPreviewInfo);
font-size: 0.8em; font-size: 0.8em;
line-height: 16px; line-height: 16px;
vertical-align: top; vertical-align: top;

View file

@ -142,7 +142,7 @@ async function del() {
left: 0; left: 0;
padding: 12px; padding: 12px;
border-top: solid 0.5px var(--MI_THEME-divider); border-top: solid 0.5px var(--MI_THEME-divider);
-webkit-backdrop-filter: var(--blur, blur(15px)); -webkit-backdrop-filter: var(--MI-blur, blur(15px));
backdrop-filter: var(--blur, blur(15px)); backdrop-filter: var(--MI-blur, blur(15px));
} }
</style> </style>

View file

@ -23,7 +23,7 @@ import { acct } from '@/filters/user.js';
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
user: Misskey.entities.User; user: Misskey.entities.User;
withChart: boolean; withChart?: boolean;
}>(), { }>(), {
withChart: true, withChart: true,
}); });

View file

@ -39,6 +39,6 @@ const props = withDefaults(defineProps<{
.root { .root {
display: grid; display: grid;
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
grid-gap: var(--margin); grid-gap: var(--MI-margin);
} }
</style> </style>

View file

@ -62,7 +62,7 @@ const popularUsers: Paging = {
.users { .users {
display: grid; display: grid;
grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
grid-gap: var(--margin); grid-gap: var(--MI-margin);
justify-content: center; justify-content: center;
} }
</style> </style>

View file

@ -107,7 +107,7 @@ function showMenu(ev: MouseEvent) {
.panel { .panel {
position: relative; position: relative;
background: var(--MI_THEME-panel); background: var(--MI_THEME-panel);
border-radius: var(--radius); border-radius: var(--MI-radius);
box-shadow: 0 12px 32px rgb(0 0 0 / 25%); box-shadow: 0 12px 32px rgb(0 0 0 / 25%);
} }

View file

@ -48,7 +48,7 @@ watch(() => props.showing, () => {
box-sizing: border-box; box-sizing: border-box;
text-align: center; text-align: center;
background: var(--MI_THEME-panel); background: var(--MI_THEME-panel);
border-radius: var(--radius); border-radius: var(--MI-radius);
width: 250px; width: 250px;
&.iconOnly { &.iconOnly {

View file

@ -7,7 +7,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<div :class="$style.root"> <div :class="$style.root">
<template v-if="edit"> <template v-if="edit">
<header :class="$style.editHeader"> <header :class="$style.editHeader">
<MkSelect v-model="widgetAdderSelected" style="margin-bottom: var(--margin)" data-cy-widget-select> <MkSelect v-model="widgetAdderSelected" style="margin-bottom: var(--MI-margin)" data-cy-widget-select>
<template #label>{{ i18n.ts.selectWidget }}</template> <template #label>{{ i18n.ts.selectWidget }}</template>
<option v-for="widget in widgetDefs" :key="widget" :value="widget">{{ i18n.ts._widgets[widget] }}</option> <option v-for="widget in widgetDefs" :key="widget" :value="widget">{{ i18n.ts._widgets[widget] }}</option>
</MkSelect> </MkSelect>
@ -123,7 +123,7 @@ function onContextmenu(widget: Widget, ev: MouseEvent) {
.widget { .widget {
contain: content; contain: content;
margin: var(--margin) 0; margin: var(--MI-margin) 0;
&:first-of-type { &:first-of-type {
margin-top: 0; margin-top: 0;

View file

@ -502,7 +502,7 @@ defineExpose({
contain: content; contain: content;
width: 100%; width: 100%;
height: 100%; height: 100%;
border-radius: var(--radius); border-radius: var(--MI-radius);
} }
.header { .header {
@ -515,8 +515,8 @@ defineExpose({
user-select: none; user-select: none;
height: var(--height); height: var(--height);
background: var(--MI_THEME-windowHeader); background: var(--MI_THEME-windowHeader);
-webkit-backdrop-filter: var(--blur, blur(15px)); -webkit-backdrop-filter: var(--MI-blur, blur(15px));
backdrop-filter: var(--blur, blur(15px)); backdrop-filter: var(--MI-blur, blur(15px));
//border-bottom: solid 1px var(--MI_THEME-divider); //border-bottom: solid 1px var(--MI_THEME-divider);
font-size: 90%; font-size: 90%;
font-weight: bold; font-weight: bold;

View file

@ -43,9 +43,9 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup> <script lang="ts" setup>
import { ref, computed } from 'vue'; import { ref, computed } from 'vue';
import { url as local, host } from '@@/js/config.js';
import { i18n } from '@/i18n.js'; import { i18n } from '@/i18n.js';
import { instance } from '@/instance.js'; import { instance } from '@/instance.js';
import { url as local, host } from '@@/js/config.js';
import MkButton from '@/components/MkButton.vue'; import MkButton from '@/components/MkButton.vue';
import { defaultStore } from '@/store.js'; import { defaultStore } from '@/store.js';
import * as os from '@/os.js'; import * as os from '@/os.js';
@ -124,7 +124,7 @@ function reduceFrequency(): void {
<style lang="scss" module> <style lang="scss" module>
.root { .root {
background-size: auto auto; background-size: auto auto;
background-image: repeating-linear-gradient(45deg, transparent, transparent 8px, var(--ad) 8px, var(--ad) 14px ); background-image: repeating-linear-gradient(45deg, transparent, transparent 8px, var(--bg) 8px, var(--bg) 14px );
} }
.main { .main {

View file

@ -130,8 +130,8 @@ onUnmounted(() => {
<style lang="scss" module> <style lang="scss" module>
.root { .root {
-webkit-backdrop-filter: var(--blur, blur(15px)); -webkit-backdrop-filter: var(--MI-blur, blur(15px));
backdrop-filter: var(--blur, blur(15px)); backdrop-filter: var(--MI-blur, blur(15px));
border-bottom: solid 0.5px var(--MI_THEME-divider); border-bottom: solid 0.5px var(--MI_THEME-divider);
width: 100%; width: 100%;
} }
@ -145,7 +145,7 @@ onUnmounted(() => {
.upper { .upper {
--height: 50px; --height: 50px;
display: flex; display: flex;
gap: var(--margin); gap: var(--MI-margin);
height: var(--height); height: var(--height);
.tabs:first-child { .tabs:first-child {

View file

@ -69,28 +69,28 @@ onMounted(() => {
watch(childStickyTop, () => { watch(childStickyTop, () => {
if (bodyEl.value == null) return; if (bodyEl.value == null) return;
bodyEl.value.style.setProperty('--stickyTop', `${childStickyTop.value}px`); bodyEl.value.style.setProperty('--MI-stickyTop', `${childStickyTop.value}px`);
}, { }, {
immediate: true, immediate: true,
}); });
watch(childStickyBottom, () => { watch(childStickyBottom, () => {
if (bodyEl.value == null) return; if (bodyEl.value == null) return;
bodyEl.value.style.setProperty('--stickyBottom', `${childStickyBottom.value}px`); bodyEl.value.style.setProperty('--MI-stickyBottom', `${childStickyBottom.value}px`);
}, { }, {
immediate: true, immediate: true,
}); });
if (headerEl.value != null) { if (headerEl.value != null) {
headerEl.value.style.position = 'sticky'; headerEl.value.style.position = 'sticky';
headerEl.value.style.top = 'var(--stickyTop, 0)'; headerEl.value.style.top = 'var(--MI-stickyTop, 0)';
headerEl.value.style.zIndex = '1'; headerEl.value.style.zIndex = '1';
observer.observe(headerEl.value); observer.observe(headerEl.value);
} }
if (footerEl.value != null) { if (footerEl.value != null) {
footerEl.value.style.position = 'sticky'; footerEl.value.style.position = 'sticky';
footerEl.value.style.bottom = 'var(--stickyBottom, 0)'; footerEl.value.style.bottom = 'var(--MI-stickyBottom, 0)';
footerEl.value.style.zIndex = '1'; footerEl.value.style.zIndex = '1';
observer.observe(footerEl.value); observer.observe(footerEl.value);
} }

View file

@ -28,8 +28,8 @@ const props = defineProps<{
<style lang="scss" module> <style lang="scss" module>
.root { .root {
border: 1px solid var(--MI_THEME-divider); border: 1px solid var(--MI_THEME-divider);
border-radius: var(--radius); border-radius: var(--MI-radius);
padding: var(--margin); padding: var(--MI-margin);
text-align: center; text-align: center;
} }

View file

@ -29,7 +29,7 @@ onMounted(() => {
<style lang="scss" module> <style lang="scss" module>
.root { .root {
border: 1px solid var(--MI_THEME-divider); border: 1px solid var(--MI_THEME-divider);
border-radius: var(--radius); border-radius: var(--MI-radius);
overflow: hidden; overflow: hidden;
} }
.mediaList { .mediaList {

View file

@ -36,6 +36,6 @@ onMounted(() => {
<style lang="scss" module> <style lang="scss" module>
.root { .root {
border: 1px solid var(--MI_THEME-divider); border: 1px solid var(--MI_THEME-divider);
border-radius: var(--radius); border-radius: var(--MI-radius);
} }
</style> </style>

View file

@ -441,7 +441,7 @@ definePageMetadata(() => ({
.znqjceqz { .znqjceqz {
> .about { > .about {
position: relative; position: relative;
border-radius: var(--radius); border-radius: var(--MI-radius);
> .treasure { > .treasure {
position: absolute; position: absolute;

View file

@ -10,7 +10,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template #prefix><i class="ti ti-search"></i></template> <template #prefix><i class="ti ti-search"></i></template>
<template #label>{{ i18n.ts.host }}</template> <template #label>{{ i18n.ts.host }}</template>
</MkInput> </MkInput>
<FormSplit style="margin-top: var(--margin);"> <FormSplit style="margin-top: var(--MI-margin);">
<MkSelect v-model="state"> <MkSelect v-model="state">
<template #label>{{ i18n.ts.state }}</template> <template #label>{{ i18n.ts.state }}</template>
<option value="all">{{ i18n.ts.all }}</option> <option value="all">{{ i18n.ts.all }}</option>

View file

@ -183,7 +183,7 @@ const initStats = () => misskeyApi('stats', {});
flex-shrink: 0; flex-shrink: 0;
display: flex; display: flex;
position: sticky; position: sticky;
top: calc(var(--stickyTop, 0px) + 8px); top: calc(var(--MI-stickyTop, 0px) + 8px);
counter-increment: item; counter-increment: item;
content: counter(item); content: counter(item);
width: 32px; width: 32px;

Some files were not shown because too many files have changed in this diff Show more