build: migrate workspace tooling to Oxc
Replace Turbo task orchestration with Bun workspace scripts and remove the Prettier configuration. Add Oxlint and Oxfmt project configuration, including Tailwind class sorting, generated-file exclusions, and unified check/fix commands. Apply the new formatter and resolve Hook dependency errors surfaced by Oxlint.
This commit is contained in:
@@ -4,7 +4,6 @@
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"format": "prettier --write \"**/*.{ts,tsx}\"",
|
||||
"test": "vitest run",
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
|
||||
@@ -30,22 +30,29 @@ export const messages = {
|
||||
"blocks.appearance.color.violet": "Violett",
|
||||
"blocks.appearance.color.yellow": "Gelb",
|
||||
"blocks.appearance.color.zinc": "Zink",
|
||||
"blocks.appearance.command.description": "Design- und Layout-Einstellungen öffnen",
|
||||
"blocks.appearance.compact.description": "Eine kompakte Breite für den Hauptinhalt verwenden",
|
||||
"blocks.appearance.command.description":
|
||||
"Design- und Layout-Einstellungen öffnen",
|
||||
"blocks.appearance.compact.description":
|
||||
"Eine kompakte Breite für den Hauptinhalt verwenden",
|
||||
"blocks.appearance.compact.title": "Kompaktes Layout",
|
||||
"blocks.appearance.description": "Design- und Layout-Einstellungen",
|
||||
"blocks.appearance.mode.dark": "Dunkel",
|
||||
"blocks.appearance.mode.dark.description": "Die Oberfläche verwendet immer das dunkle Design",
|
||||
"blocks.appearance.mode.dark.description":
|
||||
"Die Oberfläche verwendet immer das dunkle Design",
|
||||
"blocks.appearance.mode.light": "Hell",
|
||||
"blocks.appearance.mode.light.description": "Die Oberfläche verwendet immer das helle Design",
|
||||
"blocks.appearance.mode.light.description":
|
||||
"Die Oberfläche verwendet immer das helle Design",
|
||||
"blocks.appearance.mode.system": "System",
|
||||
"blocks.appearance.mode.system.description": "Das Design der Oberfläche folgt der Systemeinstellung",
|
||||
"blocks.appearance.mode.system.description":
|
||||
"Das Design der Oberfläche folgt der Systemeinstellung",
|
||||
"blocks.appearance.mode.title": "Darstellungsmodus",
|
||||
"blocks.appearance.primaryColor": "Primärfarbe",
|
||||
"blocks.appearance.theme.dark": "Dunkles Design",
|
||||
"blocks.appearance.theme.dark.description": "Dieses Design wird im dunklen Systemmodus verwendet",
|
||||
"blocks.appearance.theme.dark.description":
|
||||
"Dieses Design wird im dunklen Systemmodus verwendet",
|
||||
"blocks.appearance.theme.light": "Helles Design",
|
||||
"blocks.appearance.theme.light.description": "Dieses Design wird im hellen Systemmodus verwendet",
|
||||
"blocks.appearance.theme.light.description":
|
||||
"Dieses Design wird im hellen Systemmodus verwendet",
|
||||
"blocks.appearance.title": "Darstellung",
|
||||
"blocks.appearance.toggleTheme": "Design wechseln",
|
||||
"blocks.appearance.toggleTheme.description":
|
||||
|
||||
@@ -30,23 +30,31 @@ export const messages = {
|
||||
"blocks.appearance.color.violet": "Violeta",
|
||||
"blocks.appearance.color.yellow": "Amarillo",
|
||||
"blocks.appearance.color.zinc": "Zinc",
|
||||
"blocks.appearance.command.description": "Abrir las preferencias de tema y diseño",
|
||||
"blocks.appearance.compact.description": "Usar un ancho compacto para el contenido principal",
|
||||
"blocks.appearance.command.description":
|
||||
"Abrir las preferencias de tema y diseño",
|
||||
"blocks.appearance.compact.description":
|
||||
"Usar un ancho compacto para el contenido principal",
|
||||
"blocks.appearance.compact.title": "Diseño compacto",
|
||||
"blocks.appearance.description": "Preferencias de tema y diseño",
|
||||
"blocks.appearance.mode.dark": "Oscuro",
|
||||
"blocks.appearance.mode.dark.description": "La interfaz siempre usará el tema oscuro",
|
||||
"blocks.appearance.mode.dark.description":
|
||||
"La interfaz siempre usará el tema oscuro",
|
||||
"blocks.appearance.mode.light": "Claro",
|
||||
"blocks.appearance.mode.light.description": "La interfaz siempre usará el tema claro",
|
||||
"blocks.appearance.mode.light.description":
|
||||
"La interfaz siempre usará el tema claro",
|
||||
"blocks.appearance.mode.system": "Sistema",
|
||||
"blocks.appearance.mode.system.description": "El tema de la interfaz seguirá la apariencia del sistema",
|
||||
"blocks.appearance.mode.system.description":
|
||||
"El tema de la interfaz seguirá la apariencia del sistema",
|
||||
"blocks.appearance.mode.title": "Modo de tema",
|
||||
"blocks.appearance.primaryColor": "Color principal",
|
||||
"blocks.appearance.theme.dark": "Tema oscuro",
|
||||
"blocks.appearance.theme.dark.description": "Este tema se usa cuando el sistema está en modo oscuro",
|
||||
"blocks.appearance.theme.dark.description":
|
||||
"Este tema se usa cuando el sistema está en modo oscuro",
|
||||
"blocks.appearance.theme.light": "Tema claro",
|
||||
"blocks.appearance.theme.light.description": "Este tema se usa cuando el sistema está en modo claro",
|
||||
"blocks.appearance.theme.light.description":
|
||||
"Este tema se usa cuando el sistema está en modo claro",
|
||||
"blocks.appearance.title": "Apariencia",
|
||||
"blocks.appearance.toggleTheme": "Cambiar tema",
|
||||
"blocks.appearance.toggleTheme.description": "Cambiar entre los temas claro y oscuro",
|
||||
"blocks.appearance.toggleTheme.description":
|
||||
"Cambiar entre los temas claro y oscuro",
|
||||
} as const satisfies AppearanceMessageCatalog
|
||||
|
||||
@@ -30,23 +30,31 @@ export const messages = {
|
||||
"blocks.appearance.color.violet": "Violet",
|
||||
"blocks.appearance.color.yellow": "Jaune",
|
||||
"blocks.appearance.color.zinc": "Zinc",
|
||||
"blocks.appearance.command.description": "Ouvrir les préférences de thème et de mise en page",
|
||||
"blocks.appearance.compact.description": "Utiliser une largeur compacte pour le contenu principal",
|
||||
"blocks.appearance.command.description":
|
||||
"Ouvrir les préférences de thème et de mise en page",
|
||||
"blocks.appearance.compact.description":
|
||||
"Utiliser une largeur compacte pour le contenu principal",
|
||||
"blocks.appearance.compact.title": "Mise en page compacte",
|
||||
"blocks.appearance.description": "Préférences de thème et de mise en page",
|
||||
"blocks.appearance.mode.dark": "Sombre",
|
||||
"blocks.appearance.mode.dark.description": "L’interface utilisera toujours le thème sombre",
|
||||
"blocks.appearance.mode.dark.description":
|
||||
"L’interface utilisera toujours le thème sombre",
|
||||
"blocks.appearance.mode.light": "Clair",
|
||||
"blocks.appearance.mode.light.description": "L’interface utilisera toujours le thème clair",
|
||||
"blocks.appearance.mode.light.description":
|
||||
"L’interface utilisera toujours le thème clair",
|
||||
"blocks.appearance.mode.system": "Système",
|
||||
"blocks.appearance.mode.system.description": "Le thème de l’interface suivra l’apparence du système",
|
||||
"blocks.appearance.mode.system.description":
|
||||
"Le thème de l’interface suivra l’apparence du système",
|
||||
"blocks.appearance.mode.title": "Mode du thème",
|
||||
"blocks.appearance.primaryColor": "Couleur principale",
|
||||
"blocks.appearance.theme.dark": "Thème sombre",
|
||||
"blocks.appearance.theme.dark.description": "Ce thème est utilisé lorsque le système est en mode sombre",
|
||||
"blocks.appearance.theme.dark.description":
|
||||
"Ce thème est utilisé lorsque le système est en mode sombre",
|
||||
"blocks.appearance.theme.light": "Thème clair",
|
||||
"blocks.appearance.theme.light.description": "Ce thème est utilisé lorsque le système est en mode clair",
|
||||
"blocks.appearance.theme.light.description":
|
||||
"Ce thème est utilisé lorsque le système est en mode clair",
|
||||
"blocks.appearance.title": "Apparence",
|
||||
"blocks.appearance.toggleTheme": "Changer de thème",
|
||||
"blocks.appearance.toggleTheme.description": "Basculer entre les thèmes clair et sombre",
|
||||
"blocks.appearance.toggleTheme.description":
|
||||
"Basculer entre les thèmes clair et sombre",
|
||||
} as const satisfies AppearanceMessageCatalog
|
||||
|
||||
@@ -31,7 +31,8 @@ export const messages = {
|
||||
"blocks.appearance.color.yellow": "イエロー",
|
||||
"blocks.appearance.color.zinc": "ジンク",
|
||||
"blocks.appearance.command.description": "テーマとレイアウト設定を開く",
|
||||
"blocks.appearance.compact.description": "メインページのコンテンツをコンパクトな幅で表示します",
|
||||
"blocks.appearance.compact.description":
|
||||
"メインページのコンテンツをコンパクトな幅で表示します",
|
||||
"blocks.appearance.compact.title": "コンパクトレイアウト",
|
||||
"blocks.appearance.description": "テーマとレイアウトの設定",
|
||||
"blocks.appearance.mode.dark": "ダーク",
|
||||
@@ -39,14 +40,18 @@ export const messages = {
|
||||
"blocks.appearance.mode.light": "ライト",
|
||||
"blocks.appearance.mode.light.description": "常にライトテーマを使用します",
|
||||
"blocks.appearance.mode.system": "システム",
|
||||
"blocks.appearance.mode.system.description": "インターフェースのテーマをシステムの外観に合わせます",
|
||||
"blocks.appearance.mode.system.description":
|
||||
"インターフェースのテーマをシステムの外観に合わせます",
|
||||
"blocks.appearance.mode.title": "テーマモード",
|
||||
"blocks.appearance.primaryColor": "プライマリカラー",
|
||||
"blocks.appearance.theme.dark": "ダークテーマ",
|
||||
"blocks.appearance.theme.dark.description": "システムがダークモードのときに使用するテーマです",
|
||||
"blocks.appearance.theme.dark.description":
|
||||
"システムがダークモードのときに使用するテーマです",
|
||||
"blocks.appearance.theme.light": "ライトテーマ",
|
||||
"blocks.appearance.theme.light.description": "システムがライトモードのときに使用するテーマです",
|
||||
"blocks.appearance.theme.light.description":
|
||||
"システムがライトモードのときに使用するテーマです",
|
||||
"blocks.appearance.title": "外観",
|
||||
"blocks.appearance.toggleTheme": "テーマを切り替える",
|
||||
"blocks.appearance.toggleTheme.description": "ライトテーマとダークテーマを切り替えます",
|
||||
"blocks.appearance.toggleTheme.description":
|
||||
"ライトテーマとダークテーマを切り替えます",
|
||||
} as const satisfies AppearanceMessageCatalog
|
||||
|
||||
@@ -31,22 +31,29 @@ export const messages = {
|
||||
"blocks.appearance.color.yellow": "노란색",
|
||||
"blocks.appearance.color.zinc": "아연색",
|
||||
"blocks.appearance.command.description": "테마 및 레이아웃 환경설정 열기",
|
||||
"blocks.appearance.compact.description": "기본 페이지 콘텐츠에 좁은 너비를 사용합니다",
|
||||
"blocks.appearance.compact.description":
|
||||
"기본 페이지 콘텐츠에 좁은 너비를 사용합니다",
|
||||
"blocks.appearance.compact.title": "컴팩트 레이아웃",
|
||||
"blocks.appearance.description": "테마 및 레이아웃 환경설정",
|
||||
"blocks.appearance.mode.dark": "어둡게",
|
||||
"blocks.appearance.mode.dark.description": "인터페이스에서 항상 어두운 테마를 사용합니다",
|
||||
"blocks.appearance.mode.dark.description":
|
||||
"인터페이스에서 항상 어두운 테마를 사용합니다",
|
||||
"blocks.appearance.mode.light": "밝게",
|
||||
"blocks.appearance.mode.light.description": "인터페이스에서 항상 밝은 테마를 사용합니다",
|
||||
"blocks.appearance.mode.light.description":
|
||||
"인터페이스에서 항상 밝은 테마를 사용합니다",
|
||||
"blocks.appearance.mode.system": "시스템",
|
||||
"blocks.appearance.mode.system.description": "인터페이스 테마가 시스템 화면 모드를 따릅니다",
|
||||
"blocks.appearance.mode.system.description":
|
||||
"인터페이스 테마가 시스템 화면 모드를 따릅니다",
|
||||
"blocks.appearance.mode.title": "테마 모드",
|
||||
"blocks.appearance.primaryColor": "주요 색상",
|
||||
"blocks.appearance.theme.dark": "어두운 테마",
|
||||
"blocks.appearance.theme.dark.description": "시스템이 어두운 모드일 때 사용하는 테마입니다",
|
||||
"blocks.appearance.theme.dark.description":
|
||||
"시스템이 어두운 모드일 때 사용하는 테마입니다",
|
||||
"blocks.appearance.theme.light": "밝은 테마",
|
||||
"blocks.appearance.theme.light.description": "시스템이 밝은 모드일 때 사용하는 테마입니다",
|
||||
"blocks.appearance.theme.light.description":
|
||||
"시스템이 밝은 모드일 때 사용하는 테마입니다",
|
||||
"blocks.appearance.title": "화면 모양",
|
||||
"blocks.appearance.toggleTheme": "테마 전환",
|
||||
"blocks.appearance.toggleTheme.description": "밝은 테마와 어두운 테마 사이를 전환합니다",
|
||||
"blocks.appearance.toggleTheme.description":
|
||||
"밝은 테마와 어두운 테마 사이를 전환합니다",
|
||||
} as const satisfies AppearanceMessageCatalog
|
||||
|
||||
@@ -43,9 +43,11 @@ export const messages = {
|
||||
"blocks.appearance.mode.title": "主题模式",
|
||||
"blocks.appearance.primaryColor": "主要颜色",
|
||||
"blocks.appearance.theme.dark": "深色主题",
|
||||
"blocks.appearance.theme.dark.description": "当系统设置为深色模式时,将使用此主题",
|
||||
"blocks.appearance.theme.dark.description":
|
||||
"当系统设置为深色模式时,将使用此主题",
|
||||
"blocks.appearance.theme.light": "浅色主题",
|
||||
"blocks.appearance.theme.light.description": "当系统设置为浅色模式时,将使用此主题",
|
||||
"blocks.appearance.theme.light.description":
|
||||
"当系统设置为浅色模式时,将使用此主题",
|
||||
"blocks.appearance.title": "界面外观",
|
||||
"blocks.appearance.toggleTheme": "切换主题",
|
||||
"blocks.appearance.toggleTheme.description": "在浅色与深色主题之间切换",
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
export type BaseColor =
|
||||
"neutral" | "stone" | "zinc" | "mauve" | "olive" | "mist" | "taupe"
|
||||
| "neutral"
|
||||
| "stone"
|
||||
| "zinc"
|
||||
| "mauve"
|
||||
| "olive"
|
||||
| "mist"
|
||||
| "taupe"
|
||||
|
||||
export type AccentColor =
|
||||
| "amber"
|
||||
|
||||
@@ -131,13 +131,14 @@ export function UiStateProvider({
|
||||
storeRef.current.getSnapshot,
|
||||
storeRef.current.getServerSnapshot
|
||||
)
|
||||
const themeMode = state["theme-mode"]
|
||||
|
||||
React.useLayoutEffect(() => {
|
||||
applyUiState(state)
|
||||
}, [state])
|
||||
|
||||
React.useEffect(() => {
|
||||
if (state["theme-mode"] !== "system") return
|
||||
if (themeMode !== "system") return
|
||||
|
||||
const mediaQuery = window.matchMedia(systemThemeQuery)
|
||||
const applySystemTheme = () => {
|
||||
@@ -147,7 +148,7 @@ export function UiStateProvider({
|
||||
|
||||
mediaQuery.addEventListener("change", applySystemTheme)
|
||||
return () => mediaQuery.removeEventListener("change", applySystemTheme)
|
||||
}, [state["theme-mode"]])
|
||||
}, [themeMode])
|
||||
|
||||
const contextValue = React.useMemo(
|
||||
() => ({
|
||||
|
||||
@@ -25,7 +25,7 @@ export function SidebarStateProvider({
|
||||
|
||||
const contextValue = React.useMemo(
|
||||
() => ({ isCollapsed, setCollapsed }),
|
||||
[isCollapsed]
|
||||
[isCollapsed, setCollapsed]
|
||||
)
|
||||
|
||||
return (
|
||||
|
||||
@@ -22,7 +22,9 @@ export interface NavigationButtonProps extends Omit<
|
||||
layout?: "inline" | "stacked" | "responsive"
|
||||
className?: string | (() => string | undefined) | undefined
|
||||
style?:
|
||||
React.CSSProperties | (() => React.CSSProperties | undefined) | undefined
|
||||
| React.CSSProperties
|
||||
| (() => React.CSSProperties | undefined)
|
||||
| undefined
|
||||
trailing?: React.ReactNode | (() => React.ReactNode) | undefined
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
import type { IconData } from "../../components/icon"
|
||||
|
||||
export type NotificationTone =
|
||||
"destructive" | "info" | "neutral" | "success" | "warning"
|
||||
| "destructive"
|
||||
| "info"
|
||||
| "neutral"
|
||||
| "success"
|
||||
| "warning"
|
||||
|
||||
export interface NotificationAvatarMedia {
|
||||
alt?: string
|
||||
|
||||
Reference in New Issue
Block a user