Compare commits
	
		
			4 Commits
		
	
	
		
			bfcb8c21e3
			...
			cb4364da53
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  | cb4364da53 | |
|  | 58383e7a01 | |
|  | 0249454c61 | |
|  | 9a9a5431b1 | 
|  | @ -52,7 +52,6 @@ | |||
| - Enhance: シンタックスハイライトのエンジンをJavaScriptベースのものに変更 | ||||
|   - フロントエンドの読み込みサイズを軽量化しました | ||||
| 	- ほとんどの言語のハイライトは問題なく行えますが、互換性の問題により一部の言語が正常にハイライトできなくなる可能性があります。詳しくは https://shiki.style/references/engine-js-compat をご覧ください。 | ||||
| - Fix: チャットに動画ファイルを送付すると、動画の表示が崩れてしまい視聴出来ない問題を修正 | ||||
| - Fix: "時計"ウィジェット(Clock)において、Transparent設定が有効でも、その背景が透過されない問題を修正 | ||||
| - Fix: 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように | ||||
| - Fix: Twitchのクリップがプレイヤーで再生できない問題を修正 | ||||
|  | @ -63,7 +62,6 @@ | |||
| - Enhance: ノートのレスポンスにアンケートが添付されているかどうかを示すフラグ`hasPoll`を追加 | ||||
| - Enhance: チャットルームのレスポンスに招待されているかどうかを示すフラグ`invitationExists`を追加 | ||||
| - Enhance: レートリミットの計算方法を調整 (#13997) | ||||
| - Enhance: 外部サイトのOGPのキャッシュ期間を調整 | ||||
| - Fix: チャットルームが削除された場合・チャットルームから抜けた場合に、未読状態が残り続けることがあるのを修正 | ||||
| - Fix: ユーザ除外アンテナをインポートできない問題を修正 | ||||
| - Fix: アンテナのセンシティブなチャンネルのノートを含むかどうかの情報がエクスポートされない問題を修正 | ||||
|  |  | |||
|  | @ -1326,10 +1326,6 @@ export interface Locale extends ILocale { | |||
|      * デバイスのダークモードと同期する | ||||
|      */ | ||||
|     "syncDeviceDarkMode": string; | ||||
|     /** | ||||
|      * 「{x}」がオンになっています。同期をオフにして手動でモードを切り替えますか? | ||||
|      */ | ||||
|     "switchDarkModeManuallyWhenSyncEnabledConfirm": ParameterizedString<"x">; | ||||
|     /** | ||||
|      * ドライブ | ||||
|      */ | ||||
|  |  | |||
|  | @ -327,7 +327,6 @@ dark: "ダーク" | |||
| lightThemes: "明るいテーマ" | ||||
| darkThemes: "暗いテーマ" | ||||
| syncDeviceDarkMode: "デバイスのダークモードと同期する" | ||||
| switchDarkModeManuallyWhenSyncEnabledConfirm: "「{x}」がオンになっています。同期をオフにして手動でモードを切り替えますか?" | ||||
| drive: "ドライブ" | ||||
| fileName: "ファイル名" | ||||
| selectFile: "ファイルを選択" | ||||
|  |  | |||
|  | @ -327,7 +327,6 @@ dark: "深色" | |||
| lightThemes: "淺色佈景主題" | ||||
| darkThemes: "深色佈景主題" | ||||
| syncDeviceDarkMode: "與裝置的深色模式同步" | ||||
| switchDarkModeManuallyWhenSyncEnabledConfirm: "「{x}」已開啟。要關閉同步並手動切換模式嗎?\n" | ||||
| drive: "雲端硬碟" | ||||
| fileName: "檔案名稱" | ||||
| selectFile: "選擇檔案" | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| { | ||||
| 	"name": "misskey", | ||||
| 	"version": "2025.5.1-beta.5", | ||||
| 	"version": "2025.5.1-beta.4", | ||||
| 	"codename": "nasubi", | ||||
| 	"repository": { | ||||
| 		"type": "git", | ||||
|  |  | |||
|  | @ -83,7 +83,7 @@ export const DEFAULT_POLICIES: RolePolicies = { | |||
| 	canUseTranslator: true, | ||||
| 	canHideAds: false, | ||||
| 	driveCapacityMb: 100, | ||||
| 	maxFileSizeMb: 30, | ||||
| 	maxFileSizeMb: 10, | ||||
| 	alwaysMarkNsfw: false, | ||||
| 	canUpdateBioMedia: true, | ||||
| 	pinLimit: 5, | ||||
|  |  | |||
|  | @ -94,8 +94,8 @@ export class UrlPreviewService { | |||
| 			summary.icon = this.wrap(summary.icon); | ||||
| 			summary.thumbnail = this.wrap(summary.thumbnail); | ||||
| 
 | ||||
| 			// Cache 1day
 | ||||
| 			reply.header('Cache-Control', 'max-age=86400, immutable'); | ||||
| 			// Cache 7days
 | ||||
| 			reply.header('Cache-Control', 'max-age=604800, immutable'); | ||||
| 
 | ||||
| 			return summary; | ||||
| 		} catch (err) { | ||||
|  |  | |||
|  | @ -10,8 +10,7 @@ SPDX-License-Identifier: AGPL-3.0-only | |||
| 		tail === 'left' ? $style.left : $style.right, | ||||
| 		negativeMargin === true && $style.negativeMargin, | ||||
| 		shadow === true && $style.shadow, | ||||
| 		accented === true && $style.accented, | ||||
| 		fullWidth === true && $style.fullWidth, | ||||
| 		accented === true && $style.accented | ||||
| 	]" | ||||
| > | ||||
| 	<div :class="$style.bg"> | ||||
|  | @ -33,13 +32,11 @@ withDefaults(defineProps<{ | |||
| 	negativeMargin?: boolean; | ||||
| 	shadow?: boolean; | ||||
| 	accented?: boolean; | ||||
| 	fullWidth?: boolean; | ||||
| }>(), { | ||||
| 	tail: 'right', | ||||
| 	negativeMargin: false, | ||||
| 	shadow: false, | ||||
| 	accented: false, | ||||
| 	fullWidth: false, | ||||
| }); | ||||
| </script> | ||||
| 
 | ||||
|  | @ -76,14 +73,6 @@ withDefaults(defineProps<{ | |||
| 			margin-right: calc(calc(var(--fukidashi-radius) * .13) * -1); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	&.fullWidth { | ||||
| 		width: 100%; | ||||
| 
 | ||||
| 		&.content { | ||||
| 			width: 100%; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| .bg { | ||||
|  | @ -96,7 +85,6 @@ withDefaults(defineProps<{ | |||
| .content { | ||||
| 	position: relative; | ||||
| 	padding: 10px 14px; | ||||
| 	box-sizing: border-box; | ||||
| } | ||||
| 
 | ||||
| @container (max-width: 450px) { | ||||
|  |  | |||
|  | @ -6,9 +6,9 @@ SPDX-License-Identifier: AGPL-3.0-only | |||
| <template> | ||||
| <div :class="[$style.root, { [$style.isMe]: isMe }]"> | ||||
| 	<MkAvatar :class="$style.avatar" :user="message.fromUser!" :link="!isMe" :preview="false"/> | ||||
| 	<div :class="[$style.body, message.file != null ? $style.fullWidth : null]" @contextmenu.stop="onContextmenu"> | ||||
| 	<div :class="$style.body" @contextmenu.stop="onContextmenu"> | ||||
| 		<div :class="$style.header"><MkUserName v-if="!isMe && prefer.s['chat.showSenderName'] && message.fromUser != null" :user="message.fromUser"/></div> | ||||
| 		<MkFukidashi :class="$style.fukidashi" :tail="isMe ? 'right' : 'left'" :fullWidth="message.file != null" :accented="isMe"> | ||||
| 		<MkFukidashi :class="$style.fukidashi" :tail="isMe ? 'right' : 'left'" :accented="isMe"> | ||||
| 			<Mfm | ||||
| 				v-if="message.text" | ||||
| 				ref="text" | ||||
|  | @ -259,10 +259,6 @@ function showMenu(ev: MouseEvent, contextmenu = false) { | |||
| 
 | ||||
| .body { | ||||
| 	margin: 0 12px; | ||||
| 
 | ||||
| 	&.fullWidth { | ||||
| 		width: 100%; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| .header { | ||||
|  |  | |||
|  | @ -9,7 +9,8 @@ SPDX-License-Identifier: AGPL-3.0-only | |||
| 		<div v-adaptive-border class="rfqxtzch _panel"> | ||||
| 			<div class="toggle"> | ||||
| 				<div class="toggleWrapper"> | ||||
| 					<div class="toggle" :class="store.r.darkMode.value ? 'checked' : null" @click="toggleDarkMode()"> | ||||
| 					<input id="dn" v-model="darkMode" type="checkbox" class="dn"/> | ||||
| 					<label for="dn" class="toggle"> | ||||
| 						<span class="before">{{ i18n.ts.light }}</span> | ||||
| 						<span class="after">{{ i18n.ts.dark }}</span> | ||||
| 						<span class="toggle__handler"> | ||||
|  | @ -23,7 +24,7 @@ SPDX-License-Identifier: AGPL-3.0-only | |||
| 						<span class="star star--4"></span> | ||||
| 						<span class="star star--5"></span> | ||||
| 						<span class="star star--6"></span> | ||||
| 					</div> | ||||
| 					</label> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 			<div class="sync"> | ||||
|  | @ -36,7 +37,7 @@ SPDX-License-Identifier: AGPL-3.0-only | |||
| 		</div> | ||||
| 
 | ||||
| 		<div class="_gaps"> | ||||
| 			<template v-if="!store.r.darkMode.value"> | ||||
| 			<template v-if="!darkMode"> | ||||
| 				<SearchMarker :keywords="['light', 'theme']"> | ||||
| 					<MkFolder :defaultOpen="true" :max-height="500"> | ||||
| 						<template #icon><i class="ti ti-sun"></i></template> | ||||
|  | @ -204,7 +205,6 @@ import JSON5 from 'json5'; | |||
| import defaultLightTheme from '@@/themes/l-light.json5'; | ||||
| import defaultDarkTheme from '@@/themes/d-green-lime.json5'; | ||||
| import type { Theme } from '@/theme.js'; | ||||
| import * as os from '@/os.js'; | ||||
| import MkSwitch from '@/components/MkSwitch.vue'; | ||||
| import FormSection from '@/components/form/section.vue'; | ||||
| import FormLink from '@/components/form/link.vue'; | ||||
|  | @ -257,6 +257,7 @@ const lightThemeId = computed({ | |||
| 	}, | ||||
| }); | ||||
| 
 | ||||
| const darkMode = computed(store.makeGetterSetter('darkMode')); | ||||
| const syncDeviceDarkMode = prefer.model('syncDeviceDarkMode'); | ||||
| const themesCount = installedThemes.value.length; | ||||
| 
 | ||||
|  | @ -266,21 +267,6 @@ watch(syncDeviceDarkMode, () => { | |||
| 	} | ||||
| }); | ||||
| 
 | ||||
| async function toggleDarkMode() { | ||||
| 	const value = !store.r.darkMode.value; | ||||
| 	if (syncDeviceDarkMode.value) { | ||||
| 		const { canceled } = await os.confirm({ | ||||
| 			text: i18n.tsx.switchDarkModeManuallyWhenSyncEnabledConfirm({ x: i18n.ts.syncDeviceDarkMode }), | ||||
| 		}); | ||||
| 		if (canceled) return; | ||||
| 
 | ||||
| 		syncDeviceDarkMode.value = false; | ||||
| 		store.set('darkMode', value); | ||||
| 	} else { | ||||
| 		store.set('darkMode', value); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| const themesSyncEnabled = ref(prefer.isSyncEnabled('themes')); | ||||
| 
 | ||||
| function changeThemesSyncEnabled(value: boolean) { | ||||
|  | @ -379,6 +365,16 @@ definePage(() => ({ | |||
| 			overflow: clip; | ||||
| 			padding: 0 100px; | ||||
| 			vertical-align: bottom; | ||||
| 
 | ||||
| 			input { | ||||
| 				position: absolute; | ||||
| 				left: -99em; | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		.dn:focus-visible ~ .toggle { | ||||
| 			outline: 2px solid var(--MI_THEME-focus); | ||||
| 			outline-offset: 2px; | ||||
| 		} | ||||
| 
 | ||||
| 		.toggle { | ||||
|  | @ -407,61 +403,6 @@ definePage(() => ({ | |||
| 				right: -68px; | ||||
| 				color: var(--MI_THEME-fg); | ||||
| 			} | ||||
| 
 | ||||
| 			&.checked { | ||||
| 				background-color: #749DD6; | ||||
| 
 | ||||
| 				> .before { | ||||
| 					color: var(--MI_THEME-fg); | ||||
| 				} | ||||
| 
 | ||||
| 				> .after { | ||||
| 					color: var(--MI_THEME-accent); | ||||
| 				} | ||||
| 
 | ||||
| 				.toggle__handler { | ||||
| 					background-color: #FFE5B5; | ||||
| 					transform: translate3d(40px, 0, 0) rotate(0); | ||||
| 
 | ||||
| 					.crater { opacity: 1; } | ||||
| 				} | ||||
| 
 | ||||
| 				.star--1 { | ||||
| 					width: 2px; | ||||
| 					height: 2px; | ||||
| 				} | ||||
| 
 | ||||
| 				.star--2 { | ||||
| 					width: 4px; | ||||
| 					height: 4px; | ||||
| 					transform: translate3d(-5px, 0, 0); | ||||
| 				} | ||||
| 
 | ||||
| 				.star--3 { | ||||
| 					width: 2px; | ||||
| 					height: 2px; | ||||
| 					transform: translate3d(-7px, 0, 0); | ||||
| 				} | ||||
| 
 | ||||
| 				.star--4, | ||||
| 				.star--5, | ||||
| 				.star--6 { | ||||
| 					opacity: 1; | ||||
| 					transform: translate3d(0,0,0); | ||||
| 				} | ||||
| 
 | ||||
| 				.star--4 { | ||||
| 					transition: all 300ms 200ms cubic-bezier(0.445, 0.05, 0.55, 0.95) !important; | ||||
| 				} | ||||
| 
 | ||||
| 				.star--5 { | ||||
| 					transition: all 300ms 300ms cubic-bezier(0.445, 0.05, 0.55, 0.95) !important; | ||||
| 				} | ||||
| 
 | ||||
| 				.star--6 { | ||||
| 					transition: all 300ms 400ms cubic-bezier(0.445, 0.05, 0.55, 0.95) !important; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		.toggle__handler { | ||||
|  | @ -572,6 +513,63 @@ definePage(() => ({ | |||
| 			height: 2px; | ||||
| 			transform: translate3d(3px,0,0); | ||||
| 		} | ||||
| 
 | ||||
| 		input:checked { | ||||
| 			+ .toggle { | ||||
| 				background-color: #749DD6; | ||||
| 
 | ||||
| 				> .before { | ||||
| 					color: var(--MI_THEME-fg); | ||||
| 				} | ||||
| 
 | ||||
| 				> .after { | ||||
| 					color: var(--MI_THEME-accent); | ||||
| 				} | ||||
| 
 | ||||
| 				.toggle__handler { | ||||
| 					background-color: #FFE5B5; | ||||
| 					transform: translate3d(40px, 0, 0) rotate(0); | ||||
| 
 | ||||
| 					.crater { opacity: 1; } | ||||
| 				} | ||||
| 
 | ||||
| 				.star--1 { | ||||
| 					width: 2px; | ||||
| 					height: 2px; | ||||
| 				} | ||||
| 
 | ||||
| 				.star--2 { | ||||
| 					width: 4px; | ||||
| 					height: 4px; | ||||
| 					transform: translate3d(-5px, 0, 0); | ||||
| 				} | ||||
| 
 | ||||
| 				.star--3 { | ||||
| 					width: 2px; | ||||
| 					height: 2px; | ||||
| 					transform: translate3d(-7px, 0, 0); | ||||
| 				} | ||||
| 
 | ||||
| 				.star--4, | ||||
| 				.star--5, | ||||
| 				.star--6 { | ||||
| 					opacity: 1; | ||||
| 					transform: translate3d(0,0,0); | ||||
| 				} | ||||
| 
 | ||||
| 				.star--4 { | ||||
| 					transition: all 300ms 200ms cubic-bezier(0.445, 0.05, 0.55, 0.95) !important; | ||||
| 				} | ||||
| 
 | ||||
| 				.star--5 { | ||||
| 					transition: all 300ms 300ms cubic-bezier(0.445, 0.05, 0.55, 0.95) !important; | ||||
| 				} | ||||
| 
 | ||||
| 				.star--6 { | ||||
| 					transition: all 300ms 400ms cubic-bezier(0.445, 0.05, 0.55, 0.95) !important; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	> .sync { | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| { | ||||
| 	"type": "module", | ||||
| 	"name": "misskey-js", | ||||
| 	"version": "2025.5.1-beta.5", | ||||
| 	"version": "2025.5.1-beta.4", | ||||
| 	"description": "Misskey SDK for JavaScript", | ||||
| 	"license": "MIT", | ||||
| 	"main": "./built/index.js", | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue