@nonamelego/dsh-catppuccin 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","names":["useSyncExternalStore"],"sources":["../src/client/CatppuccinRow.tsx","../src/client/locales.ts","../src/client/palettes.ts","../src/client/index.ts"],"sourcesContent":["/**\n * Catppuccin settings row — one General-section preference row listing the\n * four flavour themes plus a \"follow system\" (off) choice. Selecting a\n * flavour calls the injected `select`, which switches the official\n * ThemeRuntime and persists the choice. The row subscribes to `theme/change`\n * so the highlighted flavour tracks the live preference.\n */\nimport { useSyncExternalStore } from 'react'\nimport type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots'\nimport type { FlavorChoice } from './index.ts'\n\n/** One flavour button shown by the row. */\nexport interface CatppuccinFlavorButton {\n /** Theme id registered into ThemeRuntime. */\n id: string\n /** Display label. */\n label: string\n /** Accent colour for the swatch. */\n accent: string\n}\n\n/** Injected business face of the row (assembled in apply). */\nexport interface CatppuccinRowInjected {\n /** The four flavours, in display order. */\n themes: readonly CatppuccinFlavorButton[]\n /** Current choice (`off` when a Catppuccin theme is not active). */\n current: () => FlavorChoice\n /** Subscribe to theme preference changes. Returns the disposer. */\n subscribe: (listener: () => void) => () => void\n /** Switch the theme and persist the choice (`off` reverts to system). */\n select: (choice: FlavorChoice) => Promise<void>\n}\n\n/** Full component props: runtime share + locale seat + injected face. */\nexport type CatppuccinRowProps = PropsRuntime<'settings.general.item'> & PropsLocale<'catppuccin'> & CatppuccinRowInjected\n\n/**\n * Render the Catppuccin row: title, one swatch button per flavour, and a\n * follow-system button. The active flavour is highlighted; clicking a flavour\n * applies it immediately (live, no restart) and persists the choice.\n * @param props - composed slot props.\n * @returns the row element tree.\n */\nexport function CatppuccinRow({ t, themes, current, subscribe, select }: CatppuccinRowProps): React.JSX.Element {\n const choice = useSyncExternalStore(subscribe, current)\n return (\n <div style={{ borderBottom: '1px solid var(--dsw-alias-border-l2)', display: 'flex', flexDirection: 'column', gap: '10px', padding: '16px 0' }}>\n <div style={{ color: 'var(--dsw-alias-label-primary)', fontSize: 14, lineHeight: '22px' }}>\n {t('row.title')}\n </div>\n <div style={{ color: 'var(--dsw-alias-label-tertiary)', fontSize: 12, lineHeight: '18px' }}>\n {t('row.description')}\n </div>\n <div style={{ display: 'flex', flexWrap: 'wrap', gap: '8px' }}>\n {themes.map((flavor) => {\n const selected = choice === flavor.id\n return (\n <button\n key={flavor.id}\n type=\"button\"\n aria-pressed={selected}\n onClick={() => void select(flavor.id)}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 6,\n padding: '6px 12px',\n borderRadius: 8,\n border: `1px solid ${selected ? 'var(--dsw-alias-border-l3)' : 'var(--dsw-alias-border-l1)'}`,\n background: selected ? 'var(--dsw-alias-interactive-bg-active)' : 'transparent',\n color: 'var(--dsw-alias-label-primary)',\n cursor: 'pointer',\n font: 'inherit',\n }}\n >\n <span aria-hidden=\"true\" style={{ width: 12, height: 12, borderRadius: 3, background: flavor.accent, flex: 'none' }} />\n {flavor.label}\n </button>\n )\n })}\n <button\n key=\"off\"\n type=\"button\"\n aria-pressed={choice === 'off'}\n onClick={() => void select('off')}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 6,\n padding: '6px 12px',\n borderRadius: 8,\n border: `1px solid ${choice === 'off' ? 'var(--dsw-alias-border-l3)' : 'var(--dsw-alias-border-l1)'}`,\n background: choice === 'off' ? 'var(--dsw-alias-interactive-bg-active)' : 'transparent',\n color: 'var(--dsw-alias-label-primary)',\n cursor: 'pointer',\n font: 'inherit',\n }}\n >\n {t('row.off')}\n </button>\n </div>\n </div>\n )\n}\n","/**\n * Catppuccin settings-row copy. The zh dictionary is the key-set source of\n * truth; the en dictionary mirrors it (checked complete against the zh keys).\n */\n\n/** Simplified Chinese dictionary. */\nexport const zh = {\n 'row.title': 'Catppuccin 主题',\n 'row.description': 'Latte / Frappé / Macchiato / Mocha 四款配色,一键切换。',\n 'row.off': '跟随系统',\n 'flavor.latte': 'Latte',\n 'flavor.frappe': 'Frappé',\n 'flavor.macchiato': 'Macchiato',\n 'flavor.mocha': 'Mocha',\n} as const\n\n/** English dictionary, checked complete against the zh key set. */\nexport const en: Record<keyof typeof zh, string> = {\n 'row.title': 'Catppuccin theme',\n 'row.description': 'Latte / Frappé / Macchiato / Mocha, one click away.',\n 'row.off': 'Follow system',\n 'flavor.latte': 'Latte',\n 'flavor.frappe': 'Frappé',\n 'flavor.macchiato': 'Macchiato',\n 'flavor.mocha': 'Mocha',\n}\n\n/** Key union of the Catppuccin dictionaries. */\nexport type CatppuccinKey = keyof typeof zh\n","/**\n * AUTO-GENERATED by scripts/generate-palettes.mjs — do not edit by hand.\n * Catppuccin token tables for the DeepSeek Harness web GUI.\n * Source palette: https://github.com/catppuccin/catppuccin (palette.json v1.8.0).\n * Each flavour carries a flat dictionary of every --dsw-static-*,\n * --dsw-alias-* and --dsw-specific-* token the official theme stylesheet\n * declares. Alias/specific entries keep their var() references so the static\n * overrides below flow through automatically; literal (non-var) entries are\n * remapped to Catppuccin colours.\n */\nexport type CatppuccinFlavorId = 'latte' | 'frappe' | 'macchiato' | 'mocha'\nexport interface CatppuccinFlavorInfo {\n /** Theme id registered into ThemeRuntime. */\n themeId: string\n /** Base color scheme this flavour builds on. */\n colorScheme: 'light' | 'dark'\n /** Display label. */\n label: string\n /** Accent colour for the settings row swatch. */\n accent: string\n /** Token dictionary (--dsw-* names). */\n tokens: Record<string, string>\n}\n\nexport const CATPPUCCIN_LATTE: CatppuccinFlavorInfo = {\n themeId: 'catppuccin-latte',\n colorScheme: 'light',\n label: 'Latte',\n accent: '#1e66f5',\n tokens: {\n \"--dsw-static-amber-100\": \"color-mix(in srgb, #fe640b 20%, #eff1f5)\",\n \"--dsw-static-amber-400\": \"#df8e1d\",\n \"--dsw-static-amber-500\": \"#fe640b\",\n \"--dsw-static-amber-600\": \"#fe640b\",\n \"--dsw-static-amber-900\": \"color-mix(in srgb, #fe640b 32%, #eff1f5)\",\n \"--dsw-static-blue-100\": \"color-mix(in srgb, #1e66f5 22%, #eff1f5)\",\n \"--dsw-static-blue-300\": \"color-mix(in srgb, #1e66f5 48%, #eff1f5)\",\n \"--dsw-static-blue-400\": \"color-mix(in srgb, #1e66f5 65%, #eff1f5)\",\n \"--dsw-static-blue-450\": \"color-mix(in srgb, #1e66f5 82%, #eff1f5)\",\n \"--dsw-static-blue-500\": \"#1e66f5\",\n \"--dsw-static-blue-50\": \"color-mix(in srgb, #1e66f5 8%, #eff1f5)\",\n \"--dsw-static-blue-50p\": \"color-mix(in srgb, #1e66f5 12%, #eff1f5)\",\n \"--dsw-static-blue-600\": \"color-mix(in srgb, #1e66f5 82%, #eff1f5)\",\n \"--dsw-static-blue-75\": \"color-mix(in srgb, #1e66f5 16%, #eff1f5)\",\n \"--dsw-static-blue-800\": \"color-mix(in srgb, #1e66f5 50%, #eff1f5)\",\n \"--dsw-static-blue-900\": \"color-mix(in srgb, #1e66f5 38%, #eff1f5)\",\n \"--dsw-static-blue-950\": \"color-mix(in srgb, #1e66f5 26%, #eff1f5)\",\n \"--dsw-static-deepseek-100\": \"color-mix(in srgb, #1e66f5 22%, #eff1f5)\",\n \"--dsw-static-deepseek-200\": \"color-mix(in srgb, #1e66f5 34%, #eff1f5)\",\n \"--dsw-static-deepseek-300\": \"color-mix(in srgb, #1e66f5 48%, #eff1f5)\",\n \"--dsw-static-deepseek-400\": \"color-mix(in srgb, #1e66f5 65%, #eff1f5)\",\n \"--dsw-static-deepseek-450\": \"color-mix(in srgb, #1e66f5 82%, #eff1f5)\",\n \"--dsw-static-deepseek-500\": \"#1e66f5\",\n \"--dsw-static-deepseek-50\": \"color-mix(in srgb, #1e66f5 8%, #eff1f5)\",\n \"--dsw-static-deepseek-600\": \"color-mix(in srgb, #1e66f5 82%, #eff1f5)\",\n \"--dsw-static-deepseek-700-delete\": \"color-mix(in srgb, #1e66f5 66%, #eff1f5)\",\n \"--dsw-static-deepseek-800\": \"color-mix(in srgb, #1e66f5 50%, #eff1f5)\",\n \"--dsw-static-deepseek-900\": \"color-mix(in srgb, #1e66f5 38%, #eff1f5)\",\n \"--dsw-static-green-100\": \"color-mix(in srgb, #40a02b 18%, #eff1f5)\",\n \"--dsw-static-green-400\": \"color-mix(in srgb, #40a02b 80%, #eff1f5)\",\n \"--dsw-static-green-500\": \"#40a02b\",\n \"--dsw-static-green-900\": \"color-mix(in srgb, #40a02b 30%, #eff1f5)\",\n \"--dsw-static-neutral-00\": \"#eff1f5\",\n \"--dsw-static-neutral-1000\": \"#4c4f69\",\n \"--dsw-static-neutral-100\": \"#bcc0cc\",\n \"--dsw-static-neutral-150\": \"#acb0be\",\n \"--dsw-static-neutral-200\": \"#9ca0b0\",\n \"--dsw-static-neutral-250\": \"#9ca0b0\",\n \"--dsw-static-neutral-300\": \"#8c8fa1\",\n \"--dsw-static-neutral-400\": \"#7c7f93\",\n \"--dsw-static-neutral-500\": \"#6c6f85\",\n \"--dsw-static-neutral-50\": \"#e6e9ef\",\n \"--dsw-static-neutral-550\": \"#6c6f85\",\n \"--dsw-static-neutral-600\": \"#5c5f77\",\n \"--dsw-static-neutral-700\": \"#5c5f77\",\n \"--dsw-static-neutral-800\": \"#4c4f69\",\n \"--dsw-static-neutral-850\": \"#4c4f69\",\n \"--dsw-static-neutral-900\": \"#4c4f69\",\n \"--dsw-static-neutral-bluish-00\": \"#eff1f5\",\n \"--dsw-static-neutral-bluish-1000\": \"#4c4f69\",\n \"--dsw-static-neutral-bluish-100\": \"#bcc0cc\",\n \"--dsw-static-neutral-bluish-150\": \"#acb0be\",\n \"--dsw-static-neutral-bluish-200\": \"#9ca0b0\",\n \"--dsw-static-neutral-bluish-300\": \"#8c8fa1\",\n \"--dsw-static-neutral-bluish-400\": \"#7c7f93\",\n \"--dsw-static-neutral-bluish-500\": \"#6c6f85\",\n \"--dsw-static-neutral-bluish-50\": \"#e6e9ef\",\n \"--dsw-static-neutral-bluish-600\": \"#5c5f77\",\n \"--dsw-static-neutral-bluish-60\": \"#e6e9ef\",\n \"--dsw-static-neutral-bluish-700\": \"#5c5f77\",\n \"--dsw-static-neutral-bluish-750\": \"#4c4f69\",\n \"--dsw-static-neutral-bluish-75\": \"#ccd0da\",\n \"--dsw-static-neutral-bluish-800\": \"#4c4f69\",\n \"--dsw-static-neutral-bluish-850\": \"#4c4f69\",\n \"--dsw-static-neutral-bluish-875\": \"#4c4f69\",\n \"--dsw-static-neutral-bluish-900\": \"#4c4f69\",\n \"--dsw-static-neutral-bluish-950\": \"#4c4f69\",\n \"--dsw-static-red-100\": \"color-mix(in srgb, #d20f39 20%, #eff1f5)\",\n \"--dsw-static-red-400\": \"color-mix(in srgb, #d20f39 70%, #eff1f5)\",\n \"--dsw-static-red-500\": \"#d20f39\",\n \"--dsw-static-red-50\": \"color-mix(in srgb, #d20f39 10%, #eff1f5)\",\n \"--dsw-static-red-600\": \"#d20f39\",\n \"--dsw-static-red-900\": \"color-mix(in srgb, #d20f39 34%, #eff1f5)\",\n \"--dsw-alias-bg-base\": \"var(--dsw-static-neutral-bluish-00)\",\n \"--dsw-alias-bg-layer-1\": \"var(--dsw-static-neutral-bluish-00)\",\n \"--dsw-alias-bg-layer-2\": \"var(--dsw-static-neutral-bluish-00)\",\n \"--dsw-alias-bg-layer-3\": \"var(--dsw-static-neutral-bluish-00)\",\n \"--dsw-alias-bg-mask-1\": \"rgba(0, 0, 0, 0.24)\",\n \"--dsw-alias-bg-mask-2\": \"rgba(0, 0, 0, 0.12)\",\n \"--dsw-alias-bg-mask-3\": \"rgba(0, 0, 0, 0.48)\",\n \"--dsw-alias-bg-mask-photo\": \"rgba(0, 0, 0, 0.88)\",\n \"--dsw-alias-bg-mask-drop\": \"rgba(255, 255, 255, 0.7)\",\n \"--dsw-alias-bg-module-platform\": \"var(--dsw-static-neutral-bluish-60)\",\n \"--dsw-alias-bg-multi-select\": \"var(--dsw-static-neutral-bluish-60)\",\n \"--dsw-alias-bg-overlay\": \"var(--dsw-static-neutral-bluish-150)\",\n \"--dsw-alias-bg-skeleton\": \"rgba(0, 0, 0, 0.04)\",\n \"--dsw-alias-border-inverted2\": \"rgba(0, 0, 0, 0)\",\n \"--dsw-alias-border-inverted\": \"rgba(0, 0, 0, 0)\",\n \"--dsw-alias-border-l1\": \"rgba(0, 0, 0, 0.04)\",\n \"--dsw-alias-border-l2-darkmode-thin\": \"rgba(0, 0, 0, 0.1)\",\n \"--dsw-alias-border-l2\": \"rgba(0, 0, 0, 0.1)\",\n \"--dsw-alias-border-l3\": \"rgba(0, 0, 0, 0.12)\",\n \"--dsw-alias-border-l4\": \"rgba(0, 0, 0, 0.16)\",\n \"--dsw-alias-brand-primary-invert\": \"var(--dsw-static-neutral-bluish-1000)\",\n \"--dsw-alias-brand-primary-new-colorprimary-new-color\": \"#1e66f5\",\n \"--dsw-alias-brand-primary\": \"var(--dsw-static-neutral-bluish-1000)\",\n \"--dsw-alias-brand-text\": \"var(--dsw-static-neutral-bluish-1000)\",\n \"--dsw-alias-button-contrast-fill\": \"var(--dsw-static-neutral-bluish-700)\",\n \"--dsw-alias-button-elevated-fill\": \"var(--dsw-static-neutral-bluish-00)\",\n \"--dsw-alias-button-floating-fill\": \"var(--dsw-static-neutral-bluish-00)\",\n \"--dsw-alias-button-floating-hover\": \"var(--dsw-static-neutral-bluish-75)\",\n \"--dsw-alias-button-ghost-active-border\": \"var(--dsw-static-neutral-bluish-500)\",\n \"--dsw-alias-button-ghost-active-fill\": \"var(--dsw-static-neutral-bluish-100)\",\n \"--dsw-alias-button-ghost-active-hover\": \"var(--dsw-static-neutral-bluish-150)\",\n \"--dsw-alias-button-info-fill\": \"var(--dsw-static-deepseek-500)\",\n \"--dsw-alias-button-info-hover\": \"var(--dsw-static-deepseek-400)\",\n \"--dsw-alias-button-primary-dimmed\": \"var(--dsw-static-neutral-bluish-100)\",\n \"--dsw-alias-button-primary-fill\": \"var(--dsw-alias-brand-primary)\",\n \"--dsw-alias-button-primary-hover\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-button-tool-bar-fill-invisible\": \"rgba(31, 31, 31, 0.36)\",\n \"--dsw-alias-button-tool-bar-fill\": \"rgba(84, 85, 87, 0.5)\",\n \"--dsw-alias-button-tool-bar-hover\": \"rgba(84, 85, 87, 0.6)\",\n \"--dsw-alias-interactive-bg-active\": \"rgba(38, 49, 72, 0.1)\",\n \"--dsw-alias-interactive-bg-hover-accent\": \"rgba(38, 49, 72, 0.14)\",\n \"--dsw-alias-interactive-bg-hover-danger\": \"rgba(236, 19, 19, 0.05)\",\n \"--dsw-alias-interactive-bg-hover-solid\": \"var(--dsw-static-neutral-bluish-75)\",\n \"--dsw-alias-interactive-bg-hover\": \"rgba(38, 49, 72, 0.06)\",\n \"--dsw-alias-label-caption\": \"var(--dsw-static-neutral-bluish-400)\",\n \"--dsw-alias-label-dimmed\": \"var(--dsw-static-neutral-bluish-200)\",\n \"--dsw-alias-label-primary-bluish\": \"var(--dsw-static-blue-900)\",\n \"--dsw-alias-label-primary-dimmed\": \"var(--dsw-static-neutral-bluish-950)\",\n \"--dsw-alias-label-primary-foreground\": \"var(--dsw-static-neutral-bluish-00)\",\n \"--dsw-alias-label-primary-inverted\": \"var(--dsw-static-neutral-bluish-00)\",\n \"--dsw-alias-label-primary\": \"var(--dsw-static-neutral-bluish-1000)\",\n \"--dsw-alias-label-secondary\": \"var(--dsw-static-neutral-bluish-700)\",\n \"--dsw-alias-label-tertiary\": \"var(--dsw-static-neutral-bluish-600)\",\n \"--dsw-alias-markdown-citation\": \"var(--dsw-static-neutral-bluish-100)\",\n \"--dsw-alias-markdown-code-block-banner\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-markdown-code-block\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-markdown-code-segment-selected\": \"var(--dsw-static-neutral-bluish-00)\",\n \"--dsw-alias-markdown-code-segment-unselected\": \"var(--dsw-static-neutral-bluish-75)\",\n \"--dsw-alias-markdown-inline-code\": \"var(--dsw-static-neutral-bluish-100)\",\n \"--dsw-alias-markdown-placeholder\": \"var(--dsw-static-neutral-bluish-60)\",\n \"--dsw-alias-markdown-tag\": \"var(--dsw-static-neutral-bluish-75)\",\n \"--dsw-alias-scrollbar-bg-l1\": \"var(--dsw-static-neutral-200)\",\n \"--dsw-alias-scrollbar-bg-l2\": \"var(--dsw-static-neutral-200)\",\n \"--dsw-alias-scrollbar-hover-l1\": \"var(--dsw-static-neutral-300)\",\n \"--dsw-alias-scrollbar-hover-l2\": \"var(--dsw-static-neutral-300)\",\n \"--dsw-alias-state-business-primary\": \"var(--dsw-static-deepseek-500)\",\n \"--dsw-alias-state-business-tertiary\": \"var(--dsw-static-deepseek-100)\",\n \"--dsw-alias-state-error-primary\": \"var(--dsw-static-red-600)\",\n \"--dsw-alias-state-error-secondary\": \"var(--dsw-static-red-400)\",\n \"--dsw-alias-state-success-primary\": \"var(--dsw-static-green-500)\",\n \"--dsw-alias-state-success-secondary\": \"var(--dsw-static-green-400)\",\n \"--dsw-alias-state-success-tertiary\": \"var(--dsw-static-green-100)\",\n \"--dsw-alias-state-warn-label\": \"var(--dsw-static-amber-600)\",\n \"--dsw-alias-state-warn-primary\": \"var(--dsw-static-amber-500)\",\n \"--dsw-alias-state-warn-secondary\": \"var(--dsw-static-amber-400)\",\n \"--dsw-alias-state-warn-tertiary\": \"var(--dsw-static-amber-100)\",\n \"--dsw-alias-toast-bg\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-tooltip-bg\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-specific-bubble-highlight\": \"var(--dsw-static-deepseek-200)\",\n \"--dsw-specific-bubble\": \"var(--dsw-static-deepseek-50)\",\n \"--dsw-specific-input-major\": \"var(--dsw-static-neutral-bluish-00)\",\n \"--dsw-specific-login-input\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-specific-menu\": \"var(--dsw-alias-bg-layer-3)\",\n \"--dsw-specific-selector\": \"var(--dsw-static-neutral-bluish-60)\",\n \"--dsw-specific-sidebar-fill\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-specific-sidebar-nav-item-active-accent\": \"var(--dsw-static-deepseek-100)\",\n \"--dsw-specific-sidebar-nav-item-active\": \"var(--dsw-static-neutral-bluish-100)\",\n \"--dsw-specific-sidebar-nav-item-hover\": \"var(--dsw-static-neutral-bluish-75)\",\n \"--dsw-specific-tip\": \"var(--dsw-static-neutral-bluish-60)\",\n },\n}\n\nexport const CATPPUCCIN_FRAPPE: CatppuccinFlavorInfo = {\n themeId: 'catppuccin-frappe',\n colorScheme: 'dark',\n label: 'Frappé',\n accent: '#8caaee',\n tokens: {\n \"--dsw-static-amber-100\": \"color-mix(in srgb, #ef9f76 20%, #303446)\",\n \"--dsw-static-amber-400\": \"#e5c890\",\n \"--dsw-static-amber-500\": \"#ef9f76\",\n \"--dsw-static-amber-600\": \"#ef9f76\",\n \"--dsw-static-amber-900\": \"color-mix(in srgb, #ef9f76 32%, #303446)\",\n \"--dsw-static-blue-100\": \"color-mix(in srgb, #8caaee 24%, #303446)\",\n \"--dsw-static-blue-300\": \"color-mix(in srgb, #8caaee 50%, #303446)\",\n \"--dsw-static-blue-400\": \"color-mix(in srgb, #8caaee 66%, #303446)\",\n \"--dsw-static-blue-450\": \"color-mix(in srgb, #8caaee 84%, #303446)\",\n \"--dsw-static-blue-500\": \"#8caaee\",\n \"--dsw-static-blue-50\": \"color-mix(in srgb, #8caaee 10%, #303446)\",\n \"--dsw-static-blue-50p\": \"color-mix(in srgb, #8caaee 14%, #303446)\",\n \"--dsw-static-blue-600\": \"color-mix(in srgb, #8caaee 84%, #303446)\",\n \"--dsw-static-blue-75\": \"color-mix(in srgb, #8caaee 18%, #303446)\",\n \"--dsw-static-blue-800\": \"color-mix(in srgb, #8caaee 52%, #303446)\",\n \"--dsw-static-blue-900\": \"color-mix(in srgb, #8caaee 40%, #303446)\",\n \"--dsw-static-blue-950\": \"color-mix(in srgb, #8caaee 28%, #303446)\",\n \"--dsw-static-deepseek-100\": \"color-mix(in srgb, #8caaee 24%, #303446)\",\n \"--dsw-static-deepseek-200\": \"color-mix(in srgb, #8caaee 36%, #303446)\",\n \"--dsw-static-deepseek-300\": \"color-mix(in srgb, #8caaee 50%, #303446)\",\n \"--dsw-static-deepseek-400\": \"color-mix(in srgb, #8caaee 66%, #303446)\",\n \"--dsw-static-deepseek-450\": \"color-mix(in srgb, #8caaee 84%, #303446)\",\n \"--dsw-static-deepseek-500\": \"#8caaee\",\n \"--dsw-static-deepseek-50\": \"color-mix(in srgb, #8caaee 10%, #303446)\",\n \"--dsw-static-deepseek-600\": \"color-mix(in srgb, #8caaee 84%, #303446)\",\n \"--dsw-static-deepseek-700-delete\": \"color-mix(in srgb, #8caaee 68%, #303446)\",\n \"--dsw-static-deepseek-800\": \"color-mix(in srgb, #8caaee 52%, #303446)\",\n \"--dsw-static-deepseek-900\": \"color-mix(in srgb, #8caaee 40%, #303446)\",\n \"--dsw-static-green-100\": \"color-mix(in srgb, #a6d189 18%, #303446)\",\n \"--dsw-static-green-400\": \"color-mix(in srgb, #a6d189 80%, #303446)\",\n \"--dsw-static-green-500\": \"#a6d189\",\n \"--dsw-static-green-900\": \"color-mix(in srgb, #a6d189 30%, #303446)\",\n \"--dsw-static-neutral-00\": \"#c6d0f5\",\n \"--dsw-static-neutral-1000\": \"#232634\",\n \"--dsw-static-neutral-100\": \"#a5adce\",\n \"--dsw-static-neutral-150\": \"#a5adce\",\n \"--dsw-static-neutral-200\": \"#949cbb\",\n \"--dsw-static-neutral-250\": \"#949cbb\",\n \"--dsw-static-neutral-300\": \"#838ba7\",\n \"--dsw-static-neutral-400\": \"#737994\",\n \"--dsw-static-neutral-500\": \"#626880\",\n \"--dsw-static-neutral-50\": \"#c6d0f5\",\n \"--dsw-static-neutral-550\": \"#51576d\",\n \"--dsw-static-neutral-600\": \"#51576d\",\n \"--dsw-static-neutral-700\": \"#414559\",\n \"--dsw-static-neutral-800\": \"#414559\",\n \"--dsw-static-neutral-850\": \"#303446\",\n \"--dsw-static-neutral-900\": \"#292c3c\",\n \"--dsw-static-neutral-bluish-00\": \"#c6d0f5\",\n \"--dsw-static-neutral-bluish-1000\": \"#232634\",\n \"--dsw-static-neutral-bluish-100\": \"#a5adce\",\n \"--dsw-static-neutral-bluish-150\": \"#a5adce\",\n \"--dsw-static-neutral-bluish-200\": \"#949cbb\",\n \"--dsw-static-neutral-bluish-300\": \"#838ba7\",\n \"--dsw-static-neutral-bluish-400\": \"#737994\",\n \"--dsw-static-neutral-bluish-500\": \"#626880\",\n \"--dsw-static-neutral-bluish-50\": \"#c6d0f5\",\n \"--dsw-static-neutral-bluish-600\": \"#51576d\",\n \"--dsw-static-neutral-bluish-60\": \"#b5bfe2\",\n \"--dsw-static-neutral-bluish-700\": \"#414559\",\n \"--dsw-static-neutral-bluish-750\": \"#414559\",\n \"--dsw-static-neutral-bluish-75\": \"#b5bfe2\",\n \"--dsw-static-neutral-bluish-800\": \"#414559\",\n \"--dsw-static-neutral-bluish-850\": \"#303446\",\n \"--dsw-static-neutral-bluish-875\": \"#292c3c\",\n \"--dsw-static-neutral-bluish-900\": \"#292c3c\",\n \"--dsw-static-neutral-bluish-950\": \"#232634\",\n \"--dsw-static-red-100\": \"color-mix(in srgb, #e78284 20%, #303446)\",\n \"--dsw-static-red-400\": \"color-mix(in srgb, #e78284 70%, #303446)\",\n \"--dsw-static-red-500\": \"#e78284\",\n \"--dsw-static-red-50\": \"color-mix(in srgb, #e78284 10%, #303446)\",\n \"--dsw-static-red-600\": \"#e78284\",\n \"--dsw-static-red-900\": \"color-mix(in srgb, #e78284 34%, #303446)\",\n \"--dsw-alias-bg-base\": \"var(--dsw-static-neutral-bluish-950)\",\n \"--dsw-alias-bg-layer-1\": \"var(--dsw-static-neutral-bluish-875)\",\n \"--dsw-alias-bg-layer-2\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-bg-layer-3\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-bg-mask-1\": \"rgba(0, 0, 0, 0.5)\",\n \"--dsw-alias-bg-mask-2\": \"rgba(0, 0, 0, 0.2)\",\n \"--dsw-alias-bg-mask-3\": \"rgba(0, 0, 0, 0.48)\",\n \"--dsw-alias-bg-mask-photo\": \"rgba(0, 0, 0, 0.88)\",\n \"--dsw-alias-bg-mask-drop\": \"rgba(39, 39, 48, 0.7)\",\n \"--dsw-alias-bg-module-platform\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-bg-multi-select\": \"var(--dsw-static-neutral-850)\",\n \"--dsw-alias-bg-overlay\": \"var(--dsw-static-neutral-bluish-700)\",\n \"--dsw-alias-bg-skeleton\": \"rgba(255, 255, 255, 0.08)\",\n \"--dsw-alias-border-inverted2\": \"rgba(255, 255, 255, 0.08)\",\n \"--dsw-alias-border-inverted\": \"rgba(255, 255, 255, 0.06)\",\n \"--dsw-alias-border-l1\": \"rgba(255, 255, 255, 0.06)\",\n \"--dsw-alias-border-l2-darkmode-thin\": \"rgba(255, 255, 255, 0.06)\",\n \"--dsw-alias-border-l2\": \"rgba(255, 255, 255, 0.12)\",\n \"--dsw-alias-border-l3\": \"rgba(255, 255, 255, 0.16)\",\n \"--dsw-alias-border-l4\": \"rgba(255, 255, 255, 0.2)\",\n \"--dsw-alias-brand-primary-invert\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-brand-primary-new-colorprimary-new-color\": \"#8caaee\",\n \"--dsw-alias-brand-primary\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-brand-text\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-button-contrast-fill\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-button-elevated-fill\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-button-floating-fill\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-button-floating-hover\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-button-ghost-active-border\": \"var(--dsw-static-neutral-bluish-600)\",\n \"--dsw-alias-button-ghost-active-fill\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-button-ghost-active-hover\": \"var(--dsw-static-neutral-bluish-700)\",\n \"--dsw-alias-button-info-fill\": \"var(--dsw-static-deepseek-400)\",\n \"--dsw-alias-button-info-hover\": \"var(--dsw-static-deepseek-500)\",\n \"--dsw-alias-button-primary-dimmed\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-button-primary-fill\": \"var(--dsw-alias-brand-primary)\",\n \"--dsw-alias-button-primary-hover\": \"var(--dsw-static-neutral-bluish-100)\",\n \"--dsw-alias-button-tool-bar-fill-invisible\": \"rgba(31, 31, 31, 0.36)\",\n \"--dsw-alias-button-tool-bar-fill\": \"rgba(84, 85, 87, 0.5)\",\n \"--dsw-alias-button-tool-bar-hover\": \"rgba(84, 85, 87, 0.6)\",\n \"--dsw-alias-interactive-bg-active\": \"rgba(255, 255, 255, 0.14)\",\n \"--dsw-alias-interactive-bg-hover-accent\": \"rgba(255, 255, 255, 0.24)\",\n \"--dsw-alias-interactive-bg-hover-danger\": \"rgba(242, 90, 90, 0.15)\",\n \"--dsw-alias-interactive-bg-hover-solid\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-interactive-bg-hover\": \"rgba(255, 255, 255, 0.08)\",\n \"--dsw-alias-label-caption\": \"var(--dsw-static-neutral-bluish-600)\",\n \"--dsw-alias-label-dimmed\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-label-primary-bluish\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-label-primary-dimmed\": \"var(--dsw-static-neutral-bluish-100)\",\n \"--dsw-alias-label-primary-foreground\": \"var(--dsw-static-neutral-bluish-1000)\",\n \"--dsw-alias-label-primary-inverted\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-label-primary\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-label-secondary\": \"var(--dsw-static-neutral-bluish-300)\",\n \"--dsw-alias-label-tertiary\": \"var(--dsw-static-neutral-bluish-400)\",\n \"--dsw-alias-markdown-citation\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-markdown-code-block-banner\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-markdown-code-block\": \"var(--dsw-static-neutral-bluish-900)\",\n \"--dsw-alias-markdown-code-segment-selected\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-markdown-code-segment-unselected\": \"var(--dsw-static-neutral-bluish-900)\",\n \"--dsw-alias-markdown-inline-code\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-markdown-placeholder\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-markdown-tag\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-scrollbar-bg-l1\": \"var(--dsw-static-neutral-700)\",\n \"--dsw-alias-scrollbar-bg-l2\": \"var(--dsw-static-neutral-600)\",\n \"--dsw-alias-scrollbar-hover-l1\": \"var(--dsw-static-neutral-600)\",\n \"--dsw-alias-scrollbar-hover-l2\": \"var(--dsw-static-neutral-550)\",\n \"--dsw-alias-state-business-primary\": \"var(--dsw-static-deepseek-400)\",\n \"--dsw-alias-state-business-tertiary\": \"var(--dsw-static-deepseek-800)\",\n \"--dsw-alias-state-error-primary\": \"var(--dsw-static-red-400)\",\n \"--dsw-alias-state-error-secondary\": \"var(--dsw-static-red-400)\",\n \"--dsw-alias-state-success-primary\": \"var(--dsw-static-green-500)\",\n \"--dsw-alias-state-success-secondary\": \"var(--dsw-static-green-400)\",\n \"--dsw-alias-state-success-tertiary\": \"var(--dsw-static-green-900)\",\n \"--dsw-alias-state-warn-label\": \"var(--dsw-static-amber-600)\",\n \"--dsw-alias-state-warn-primary\": \"var(--dsw-static-amber-500)\",\n \"--dsw-alias-state-warn-secondary\": \"var(--dsw-static-amber-400)\",\n \"--dsw-alias-state-warn-tertiary\": \"var(--dsw-static-amber-900)\",\n \"--dsw-alias-toast-bg\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-tooltip-bg\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-specific-bubble-highlight\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-specific-bubble\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-specific-input-major\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-specific-login-input\": \"var(--dsw-static-neutral-bluish-900)\",\n \"--dsw-specific-menu\": \"var(--dsw-alias-bg-layer-3)\",\n \"--dsw-specific-selector\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-specific-sidebar-fill\": \"var(--dsw-static-neutral-bluish-900)\",\n \"--dsw-specific-sidebar-nav-item-active-accent\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-specific-sidebar-nav-item-active\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-specific-sidebar-nav-item-hover\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-specific-tip\": \"var(--dsw-static-neutral-bluish-800)\",\n },\n}\n\nexport const CATPPUCCIN_MACCHIATO: CatppuccinFlavorInfo = {\n themeId: 'catppuccin-macchiato',\n colorScheme: 'dark',\n label: 'Macchiato',\n accent: '#8aadf4',\n tokens: {\n \"--dsw-static-amber-100\": \"color-mix(in srgb, #f5a97f 20%, #24273a)\",\n \"--dsw-static-amber-400\": \"#eed49f\",\n \"--dsw-static-amber-500\": \"#f5a97f\",\n \"--dsw-static-amber-600\": \"#f5a97f\",\n \"--dsw-static-amber-900\": \"color-mix(in srgb, #f5a97f 32%, #24273a)\",\n \"--dsw-static-blue-100\": \"color-mix(in srgb, #8aadf4 24%, #24273a)\",\n \"--dsw-static-blue-300\": \"color-mix(in srgb, #8aadf4 50%, #24273a)\",\n \"--dsw-static-blue-400\": \"color-mix(in srgb, #8aadf4 66%, #24273a)\",\n \"--dsw-static-blue-450\": \"color-mix(in srgb, #8aadf4 84%, #24273a)\",\n \"--dsw-static-blue-500\": \"#8aadf4\",\n \"--dsw-static-blue-50\": \"color-mix(in srgb, #8aadf4 10%, #24273a)\",\n \"--dsw-static-blue-50p\": \"color-mix(in srgb, #8aadf4 14%, #24273a)\",\n \"--dsw-static-blue-600\": \"color-mix(in srgb, #8aadf4 84%, #24273a)\",\n \"--dsw-static-blue-75\": \"color-mix(in srgb, #8aadf4 18%, #24273a)\",\n \"--dsw-static-blue-800\": \"color-mix(in srgb, #8aadf4 52%, #24273a)\",\n \"--dsw-static-blue-900\": \"color-mix(in srgb, #8aadf4 40%, #24273a)\",\n \"--dsw-static-blue-950\": \"color-mix(in srgb, #8aadf4 28%, #24273a)\",\n \"--dsw-static-deepseek-100\": \"color-mix(in srgb, #8aadf4 24%, #24273a)\",\n \"--dsw-static-deepseek-200\": \"color-mix(in srgb, #8aadf4 36%, #24273a)\",\n \"--dsw-static-deepseek-300\": \"color-mix(in srgb, #8aadf4 50%, #24273a)\",\n \"--dsw-static-deepseek-400\": \"color-mix(in srgb, #8aadf4 66%, #24273a)\",\n \"--dsw-static-deepseek-450\": \"color-mix(in srgb, #8aadf4 84%, #24273a)\",\n \"--dsw-static-deepseek-500\": \"#8aadf4\",\n \"--dsw-static-deepseek-50\": \"color-mix(in srgb, #8aadf4 10%, #24273a)\",\n \"--dsw-static-deepseek-600\": \"color-mix(in srgb, #8aadf4 84%, #24273a)\",\n \"--dsw-static-deepseek-700-delete\": \"color-mix(in srgb, #8aadf4 68%, #24273a)\",\n \"--dsw-static-deepseek-800\": \"color-mix(in srgb, #8aadf4 52%, #24273a)\",\n \"--dsw-static-deepseek-900\": \"color-mix(in srgb, #8aadf4 40%, #24273a)\",\n \"--dsw-static-green-100\": \"color-mix(in srgb, #a6da95 18%, #24273a)\",\n \"--dsw-static-green-400\": \"color-mix(in srgb, #a6da95 80%, #24273a)\",\n \"--dsw-static-green-500\": \"#a6da95\",\n \"--dsw-static-green-900\": \"color-mix(in srgb, #a6da95 30%, #24273a)\",\n \"--dsw-static-neutral-00\": \"#cad3f5\",\n \"--dsw-static-neutral-1000\": \"#181926\",\n \"--dsw-static-neutral-100\": \"#a5adcb\",\n \"--dsw-static-neutral-150\": \"#a5adcb\",\n \"--dsw-static-neutral-200\": \"#939ab7\",\n \"--dsw-static-neutral-250\": \"#939ab7\",\n \"--dsw-static-neutral-300\": \"#8087a2\",\n \"--dsw-static-neutral-400\": \"#6e738d\",\n \"--dsw-static-neutral-500\": \"#5b6078\",\n \"--dsw-static-neutral-50\": \"#cad3f5\",\n \"--dsw-static-neutral-550\": \"#494d64\",\n \"--dsw-static-neutral-600\": \"#494d64\",\n \"--dsw-static-neutral-700\": \"#363a4f\",\n \"--dsw-static-neutral-800\": \"#363a4f\",\n \"--dsw-static-neutral-850\": \"#24273a\",\n \"--dsw-static-neutral-900\": \"#1e2030\",\n \"--dsw-static-neutral-bluish-00\": \"#cad3f5\",\n \"--dsw-static-neutral-bluish-1000\": \"#181926\",\n \"--dsw-static-neutral-bluish-100\": \"#a5adcb\",\n \"--dsw-static-neutral-bluish-150\": \"#a5adcb\",\n \"--dsw-static-neutral-bluish-200\": \"#939ab7\",\n \"--dsw-static-neutral-bluish-300\": \"#8087a2\",\n \"--dsw-static-neutral-bluish-400\": \"#6e738d\",\n \"--dsw-static-neutral-bluish-500\": \"#5b6078\",\n \"--dsw-static-neutral-bluish-50\": \"#cad3f5\",\n \"--dsw-static-neutral-bluish-600\": \"#494d64\",\n \"--dsw-static-neutral-bluish-60\": \"#b8c0e0\",\n \"--dsw-static-neutral-bluish-700\": \"#363a4f\",\n \"--dsw-static-neutral-bluish-750\": \"#363a4f\",\n \"--dsw-static-neutral-bluish-75\": \"#b8c0e0\",\n \"--dsw-static-neutral-bluish-800\": \"#363a4f\",\n \"--dsw-static-neutral-bluish-850\": \"#24273a\",\n \"--dsw-static-neutral-bluish-875\": \"#1e2030\",\n \"--dsw-static-neutral-bluish-900\": \"#1e2030\",\n \"--dsw-static-neutral-bluish-950\": \"#181926\",\n \"--dsw-static-red-100\": \"color-mix(in srgb, #ed8796 20%, #24273a)\",\n \"--dsw-static-red-400\": \"color-mix(in srgb, #ed8796 70%, #24273a)\",\n \"--dsw-static-red-500\": \"#ed8796\",\n \"--dsw-static-red-50\": \"color-mix(in srgb, #ed8796 10%, #24273a)\",\n \"--dsw-static-red-600\": \"#ed8796\",\n \"--dsw-static-red-900\": \"color-mix(in srgb, #ed8796 34%, #24273a)\",\n \"--dsw-alias-bg-base\": \"var(--dsw-static-neutral-bluish-950)\",\n \"--dsw-alias-bg-layer-1\": \"var(--dsw-static-neutral-bluish-875)\",\n \"--dsw-alias-bg-layer-2\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-bg-layer-3\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-bg-mask-1\": \"rgba(0, 0, 0, 0.5)\",\n \"--dsw-alias-bg-mask-2\": \"rgba(0, 0, 0, 0.2)\",\n \"--dsw-alias-bg-mask-3\": \"rgba(0, 0, 0, 0.48)\",\n \"--dsw-alias-bg-mask-photo\": \"rgba(0, 0, 0, 0.88)\",\n \"--dsw-alias-bg-mask-drop\": \"rgba(39, 39, 48, 0.7)\",\n \"--dsw-alias-bg-module-platform\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-bg-multi-select\": \"var(--dsw-static-neutral-850)\",\n \"--dsw-alias-bg-overlay\": \"var(--dsw-static-neutral-bluish-700)\",\n \"--dsw-alias-bg-skeleton\": \"rgba(255, 255, 255, 0.08)\",\n \"--dsw-alias-border-inverted2\": \"rgba(255, 255, 255, 0.08)\",\n \"--dsw-alias-border-inverted\": \"rgba(255, 255, 255, 0.06)\",\n \"--dsw-alias-border-l1\": \"rgba(255, 255, 255, 0.06)\",\n \"--dsw-alias-border-l2-darkmode-thin\": \"rgba(255, 255, 255, 0.06)\",\n \"--dsw-alias-border-l2\": \"rgba(255, 255, 255, 0.12)\",\n \"--dsw-alias-border-l3\": \"rgba(255, 255, 255, 0.16)\",\n \"--dsw-alias-border-l4\": \"rgba(255, 255, 255, 0.2)\",\n \"--dsw-alias-brand-primary-invert\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-brand-primary-new-colorprimary-new-color\": \"#8aadf4\",\n \"--dsw-alias-brand-primary\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-brand-text\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-button-contrast-fill\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-button-elevated-fill\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-button-floating-fill\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-button-floating-hover\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-button-ghost-active-border\": \"var(--dsw-static-neutral-bluish-600)\",\n \"--dsw-alias-button-ghost-active-fill\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-button-ghost-active-hover\": \"var(--dsw-static-neutral-bluish-700)\",\n \"--dsw-alias-button-info-fill\": \"var(--dsw-static-deepseek-400)\",\n \"--dsw-alias-button-info-hover\": \"var(--dsw-static-deepseek-500)\",\n \"--dsw-alias-button-primary-dimmed\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-button-primary-fill\": \"var(--dsw-alias-brand-primary)\",\n \"--dsw-alias-button-primary-hover\": \"var(--dsw-static-neutral-bluish-100)\",\n \"--dsw-alias-button-tool-bar-fill-invisible\": \"rgba(31, 31, 31, 0.36)\",\n \"--dsw-alias-button-tool-bar-fill\": \"rgba(84, 85, 87, 0.5)\",\n \"--dsw-alias-button-tool-bar-hover\": \"rgba(84, 85, 87, 0.6)\",\n \"--dsw-alias-interactive-bg-active\": \"rgba(255, 255, 255, 0.14)\",\n \"--dsw-alias-interactive-bg-hover-accent\": \"rgba(255, 255, 255, 0.24)\",\n \"--dsw-alias-interactive-bg-hover-danger\": \"rgba(242, 90, 90, 0.15)\",\n \"--dsw-alias-interactive-bg-hover-solid\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-interactive-bg-hover\": \"rgba(255, 255, 255, 0.08)\",\n \"--dsw-alias-label-caption\": \"var(--dsw-static-neutral-bluish-600)\",\n \"--dsw-alias-label-dimmed\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-label-primary-bluish\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-label-primary-dimmed\": \"var(--dsw-static-neutral-bluish-100)\",\n \"--dsw-alias-label-primary-foreground\": \"var(--dsw-static-neutral-bluish-1000)\",\n \"--dsw-alias-label-primary-inverted\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-label-primary\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-label-secondary\": \"var(--dsw-static-neutral-bluish-300)\",\n \"--dsw-alias-label-tertiary\": \"var(--dsw-static-neutral-bluish-400)\",\n \"--dsw-alias-markdown-citation\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-markdown-code-block-banner\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-markdown-code-block\": \"var(--dsw-static-neutral-bluish-900)\",\n \"--dsw-alias-markdown-code-segment-selected\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-markdown-code-segment-unselected\": \"var(--dsw-static-neutral-bluish-900)\",\n \"--dsw-alias-markdown-inline-code\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-markdown-placeholder\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-markdown-tag\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-scrollbar-bg-l1\": \"var(--dsw-static-neutral-700)\",\n \"--dsw-alias-scrollbar-bg-l2\": \"var(--dsw-static-neutral-600)\",\n \"--dsw-alias-scrollbar-hover-l1\": \"var(--dsw-static-neutral-600)\",\n \"--dsw-alias-scrollbar-hover-l2\": \"var(--dsw-static-neutral-550)\",\n \"--dsw-alias-state-business-primary\": \"var(--dsw-static-deepseek-400)\",\n \"--dsw-alias-state-business-tertiary\": \"var(--dsw-static-deepseek-800)\",\n \"--dsw-alias-state-error-primary\": \"var(--dsw-static-red-400)\",\n \"--dsw-alias-state-error-secondary\": \"var(--dsw-static-red-400)\",\n \"--dsw-alias-state-success-primary\": \"var(--dsw-static-green-500)\",\n \"--dsw-alias-state-success-secondary\": \"var(--dsw-static-green-400)\",\n \"--dsw-alias-state-success-tertiary\": \"var(--dsw-static-green-900)\",\n \"--dsw-alias-state-warn-label\": \"var(--dsw-static-amber-600)\",\n \"--dsw-alias-state-warn-primary\": \"var(--dsw-static-amber-500)\",\n \"--dsw-alias-state-warn-secondary\": \"var(--dsw-static-amber-400)\",\n \"--dsw-alias-state-warn-tertiary\": \"var(--dsw-static-amber-900)\",\n \"--dsw-alias-toast-bg\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-tooltip-bg\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-specific-bubble-highlight\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-specific-bubble\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-specific-input-major\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-specific-login-input\": \"var(--dsw-static-neutral-bluish-900)\",\n \"--dsw-specific-menu\": \"var(--dsw-alias-bg-layer-3)\",\n \"--dsw-specific-selector\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-specific-sidebar-fill\": \"var(--dsw-static-neutral-bluish-900)\",\n \"--dsw-specific-sidebar-nav-item-active-accent\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-specific-sidebar-nav-item-active\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-specific-sidebar-nav-item-hover\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-specific-tip\": \"var(--dsw-static-neutral-bluish-800)\",\n },\n}\n\nexport const CATPPUCCIN_MOCHA: CatppuccinFlavorInfo = {\n themeId: 'catppuccin-mocha',\n colorScheme: 'dark',\n label: 'Mocha',\n accent: '#89b4fa',\n tokens: {\n \"--dsw-static-amber-100\": \"color-mix(in srgb, #fab387 20%, #1e1e2e)\",\n \"--dsw-static-amber-400\": \"#f9e2af\",\n \"--dsw-static-amber-500\": \"#fab387\",\n \"--dsw-static-amber-600\": \"#fab387\",\n \"--dsw-static-amber-900\": \"color-mix(in srgb, #fab387 32%, #1e1e2e)\",\n \"--dsw-static-blue-100\": \"color-mix(in srgb, #89b4fa 24%, #1e1e2e)\",\n \"--dsw-static-blue-300\": \"color-mix(in srgb, #89b4fa 50%, #1e1e2e)\",\n \"--dsw-static-blue-400\": \"color-mix(in srgb, #89b4fa 66%, #1e1e2e)\",\n \"--dsw-static-blue-450\": \"color-mix(in srgb, #89b4fa 84%, #1e1e2e)\",\n \"--dsw-static-blue-500\": \"#89b4fa\",\n \"--dsw-static-blue-50\": \"color-mix(in srgb, #89b4fa 10%, #1e1e2e)\",\n \"--dsw-static-blue-50p\": \"color-mix(in srgb, #89b4fa 14%, #1e1e2e)\",\n \"--dsw-static-blue-600\": \"color-mix(in srgb, #89b4fa 84%, #1e1e2e)\",\n \"--dsw-static-blue-75\": \"color-mix(in srgb, #89b4fa 18%, #1e1e2e)\",\n \"--dsw-static-blue-800\": \"color-mix(in srgb, #89b4fa 52%, #1e1e2e)\",\n \"--dsw-static-blue-900\": \"color-mix(in srgb, #89b4fa 40%, #1e1e2e)\",\n \"--dsw-static-blue-950\": \"color-mix(in srgb, #89b4fa 28%, #1e1e2e)\",\n \"--dsw-static-deepseek-100\": \"color-mix(in srgb, #89b4fa 24%, #1e1e2e)\",\n \"--dsw-static-deepseek-200\": \"color-mix(in srgb, #89b4fa 36%, #1e1e2e)\",\n \"--dsw-static-deepseek-300\": \"color-mix(in srgb, #89b4fa 50%, #1e1e2e)\",\n \"--dsw-static-deepseek-400\": \"color-mix(in srgb, #89b4fa 66%, #1e1e2e)\",\n \"--dsw-static-deepseek-450\": \"color-mix(in srgb, #89b4fa 84%, #1e1e2e)\",\n \"--dsw-static-deepseek-500\": \"#89b4fa\",\n \"--dsw-static-deepseek-50\": \"color-mix(in srgb, #89b4fa 10%, #1e1e2e)\",\n \"--dsw-static-deepseek-600\": \"color-mix(in srgb, #89b4fa 84%, #1e1e2e)\",\n \"--dsw-static-deepseek-700-delete\": \"color-mix(in srgb, #89b4fa 68%, #1e1e2e)\",\n \"--dsw-static-deepseek-800\": \"color-mix(in srgb, #89b4fa 52%, #1e1e2e)\",\n \"--dsw-static-deepseek-900\": \"color-mix(in srgb, #89b4fa 40%, #1e1e2e)\",\n \"--dsw-static-green-100\": \"color-mix(in srgb, #a6e3a1 18%, #1e1e2e)\",\n \"--dsw-static-green-400\": \"color-mix(in srgb, #a6e3a1 80%, #1e1e2e)\",\n \"--dsw-static-green-500\": \"#a6e3a1\",\n \"--dsw-static-green-900\": \"color-mix(in srgb, #a6e3a1 30%, #1e1e2e)\",\n \"--dsw-static-neutral-00\": \"#cdd6f4\",\n \"--dsw-static-neutral-1000\": \"#11111b\",\n \"--dsw-static-neutral-100\": \"#a6adc8\",\n \"--dsw-static-neutral-150\": \"#a6adc8\",\n \"--dsw-static-neutral-200\": \"#9399b2\",\n \"--dsw-static-neutral-250\": \"#9399b2\",\n \"--dsw-static-neutral-300\": \"#7f849c\",\n \"--dsw-static-neutral-400\": \"#6c7086\",\n \"--dsw-static-neutral-500\": \"#585b70\",\n \"--dsw-static-neutral-50\": \"#cdd6f4\",\n \"--dsw-static-neutral-550\": \"#45475a\",\n \"--dsw-static-neutral-600\": \"#45475a\",\n \"--dsw-static-neutral-700\": \"#313244\",\n \"--dsw-static-neutral-800\": \"#313244\",\n \"--dsw-static-neutral-850\": \"#1e1e2e\",\n \"--dsw-static-neutral-900\": \"#181825\",\n \"--dsw-static-neutral-bluish-00\": \"#cdd6f4\",\n \"--dsw-static-neutral-bluish-1000\": \"#11111b\",\n \"--dsw-static-neutral-bluish-100\": \"#a6adc8\",\n \"--dsw-static-neutral-bluish-150\": \"#a6adc8\",\n \"--dsw-static-neutral-bluish-200\": \"#9399b2\",\n \"--dsw-static-neutral-bluish-300\": \"#7f849c\",\n \"--dsw-static-neutral-bluish-400\": \"#6c7086\",\n \"--dsw-static-neutral-bluish-500\": \"#585b70\",\n \"--dsw-static-neutral-bluish-50\": \"#cdd6f4\",\n \"--dsw-static-neutral-bluish-600\": \"#45475a\",\n \"--dsw-static-neutral-bluish-60\": \"#bac2de\",\n \"--dsw-static-neutral-bluish-700\": \"#313244\",\n \"--dsw-static-neutral-bluish-750\": \"#313244\",\n \"--dsw-static-neutral-bluish-75\": \"#bac2de\",\n \"--dsw-static-neutral-bluish-800\": \"#313244\",\n \"--dsw-static-neutral-bluish-850\": \"#1e1e2e\",\n \"--dsw-static-neutral-bluish-875\": \"#181825\",\n \"--dsw-static-neutral-bluish-900\": \"#181825\",\n \"--dsw-static-neutral-bluish-950\": \"#11111b\",\n \"--dsw-static-red-100\": \"color-mix(in srgb, #f38ba8 20%, #1e1e2e)\",\n \"--dsw-static-red-400\": \"color-mix(in srgb, #f38ba8 70%, #1e1e2e)\",\n \"--dsw-static-red-500\": \"#f38ba8\",\n \"--dsw-static-red-50\": \"color-mix(in srgb, #f38ba8 10%, #1e1e2e)\",\n \"--dsw-static-red-600\": \"#f38ba8\",\n \"--dsw-static-red-900\": \"color-mix(in srgb, #f38ba8 34%, #1e1e2e)\",\n \"--dsw-alias-bg-base\": \"var(--dsw-static-neutral-bluish-950)\",\n \"--dsw-alias-bg-layer-1\": \"var(--dsw-static-neutral-bluish-875)\",\n \"--dsw-alias-bg-layer-2\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-bg-layer-3\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-bg-mask-1\": \"rgba(0, 0, 0, 0.5)\",\n \"--dsw-alias-bg-mask-2\": \"rgba(0, 0, 0, 0.2)\",\n \"--dsw-alias-bg-mask-3\": \"rgba(0, 0, 0, 0.48)\",\n \"--dsw-alias-bg-mask-photo\": \"rgba(0, 0, 0, 0.88)\",\n \"--dsw-alias-bg-mask-drop\": \"rgba(39, 39, 48, 0.7)\",\n \"--dsw-alias-bg-module-platform\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-bg-multi-select\": \"var(--dsw-static-neutral-850)\",\n \"--dsw-alias-bg-overlay\": \"var(--dsw-static-neutral-bluish-700)\",\n \"--dsw-alias-bg-skeleton\": \"rgba(255, 255, 255, 0.08)\",\n \"--dsw-alias-border-inverted2\": \"rgba(255, 255, 255, 0.08)\",\n \"--dsw-alias-border-inverted\": \"rgba(255, 255, 255, 0.06)\",\n \"--dsw-alias-border-l1\": \"rgba(255, 255, 255, 0.06)\",\n \"--dsw-alias-border-l2-darkmode-thin\": \"rgba(255, 255, 255, 0.06)\",\n \"--dsw-alias-border-l2\": \"rgba(255, 255, 255, 0.12)\",\n \"--dsw-alias-border-l3\": \"rgba(255, 255, 255, 0.16)\",\n \"--dsw-alias-border-l4\": \"rgba(255, 255, 255, 0.2)\",\n \"--dsw-alias-brand-primary-invert\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-brand-primary-new-colorprimary-new-color\": \"#89b4fa\",\n \"--dsw-alias-brand-primary\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-brand-text\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-button-contrast-fill\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-button-elevated-fill\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-button-floating-fill\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-button-floating-hover\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-button-ghost-active-border\": \"var(--dsw-static-neutral-bluish-600)\",\n \"--dsw-alias-button-ghost-active-fill\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-button-ghost-active-hover\": \"var(--dsw-static-neutral-bluish-700)\",\n \"--dsw-alias-button-info-fill\": \"var(--dsw-static-deepseek-400)\",\n \"--dsw-alias-button-info-hover\": \"var(--dsw-static-deepseek-500)\",\n \"--dsw-alias-button-primary-dimmed\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-button-primary-fill\": \"var(--dsw-alias-brand-primary)\",\n \"--dsw-alias-button-primary-hover\": \"var(--dsw-static-neutral-bluish-100)\",\n \"--dsw-alias-button-tool-bar-fill-invisible\": \"rgba(31, 31, 31, 0.36)\",\n \"--dsw-alias-button-tool-bar-fill\": \"rgba(84, 85, 87, 0.5)\",\n \"--dsw-alias-button-tool-bar-hover\": \"rgba(84, 85, 87, 0.6)\",\n \"--dsw-alias-interactive-bg-active\": \"rgba(255, 255, 255, 0.14)\",\n \"--dsw-alias-interactive-bg-hover-accent\": \"rgba(255, 255, 255, 0.24)\",\n \"--dsw-alias-interactive-bg-hover-danger\": \"rgba(242, 90, 90, 0.15)\",\n \"--dsw-alias-interactive-bg-hover-solid\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-interactive-bg-hover\": \"rgba(255, 255, 255, 0.08)\",\n \"--dsw-alias-label-caption\": \"var(--dsw-static-neutral-bluish-600)\",\n \"--dsw-alias-label-dimmed\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-label-primary-bluish\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-label-primary-dimmed\": \"var(--dsw-static-neutral-bluish-100)\",\n \"--dsw-alias-label-primary-foreground\": \"var(--dsw-static-neutral-bluish-1000)\",\n \"--dsw-alias-label-primary-inverted\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-label-primary\": \"var(--dsw-static-neutral-bluish-50)\",\n \"--dsw-alias-label-secondary\": \"var(--dsw-static-neutral-bluish-300)\",\n \"--dsw-alias-label-tertiary\": \"var(--dsw-static-neutral-bluish-400)\",\n \"--dsw-alias-markdown-citation\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-markdown-code-block-banner\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-markdown-code-block\": \"var(--dsw-static-neutral-bluish-900)\",\n \"--dsw-alias-markdown-code-segment-selected\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-alias-markdown-code-segment-unselected\": \"var(--dsw-static-neutral-bluish-900)\",\n \"--dsw-alias-markdown-inline-code\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-markdown-placeholder\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-markdown-tag\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-alias-scrollbar-bg-l1\": \"var(--dsw-static-neutral-700)\",\n \"--dsw-alias-scrollbar-bg-l2\": \"var(--dsw-static-neutral-600)\",\n \"--dsw-alias-scrollbar-hover-l1\": \"var(--dsw-static-neutral-600)\",\n \"--dsw-alias-scrollbar-hover-l2\": \"var(--dsw-static-neutral-550)\",\n \"--dsw-alias-state-business-primary\": \"var(--dsw-static-deepseek-400)\",\n \"--dsw-alias-state-business-tertiary\": \"var(--dsw-static-deepseek-800)\",\n \"--dsw-alias-state-error-primary\": \"var(--dsw-static-red-400)\",\n \"--dsw-alias-state-error-secondary\": \"var(--dsw-static-red-400)\",\n \"--dsw-alias-state-success-primary\": \"var(--dsw-static-green-500)\",\n \"--dsw-alias-state-success-secondary\": \"var(--dsw-static-green-400)\",\n \"--dsw-alias-state-success-tertiary\": \"var(--dsw-static-green-900)\",\n \"--dsw-alias-state-warn-label\": \"var(--dsw-static-amber-600)\",\n \"--dsw-alias-state-warn-primary\": \"var(--dsw-static-amber-500)\",\n \"--dsw-alias-state-warn-secondary\": \"var(--dsw-static-amber-400)\",\n \"--dsw-alias-state-warn-tertiary\": \"var(--dsw-static-amber-900)\",\n \"--dsw-alias-toast-bg\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-alias-tooltip-bg\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-specific-bubble-highlight\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-specific-bubble\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-specific-input-major\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-specific-login-input\": \"var(--dsw-static-neutral-bluish-900)\",\n \"--dsw-specific-menu\": \"var(--dsw-alias-bg-layer-3)\",\n \"--dsw-specific-selector\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-specific-sidebar-fill\": \"var(--dsw-static-neutral-bluish-900)\",\n \"--dsw-specific-sidebar-nav-item-active-accent\": \"var(--dsw-static-neutral-bluish-800)\",\n \"--dsw-specific-sidebar-nav-item-active\": \"var(--dsw-static-neutral-bluish-750)\",\n \"--dsw-specific-sidebar-nav-item-hover\": \"var(--dsw-static-neutral-bluish-850)\",\n \"--dsw-specific-tip\": \"var(--dsw-static-neutral-bluish-800)\",\n },\n}\n\nexport const CATPPUCCIN_FLAVORS: readonly CatppuccinFlavorInfo[] = [\n CATPPUCCIN_LATTE,\n CATPPUCCIN_FRAPPE,\n CATPPUCCIN_MACCHIATO,\n CATPPUCCIN_MOCHA,\n]\n","/**\n * Catppuccin themes for the DeepSeek Harness web GUI — browser half.\n *\n * Registers the four Catppuccin flavours (Latte light / Frappé, Macchiato,\n * Mocha dark) into the official ThemeRuntime, so they become selectable\n * themes whose --dsw-* token overrides fully remap the UI palette. The\n * official Appearance row persists only the built-in light/dark/system\n * preferences, so this plugin also owns a settings row (\"Catppuccin\") that\n * lists the four flavours; selecting one writes the flavour to the\n * `dsh-catppuccin` settings namespace (persisted by the host half) and\n * switches the theme, and the choice is restored on boot.\n */\nimport type { ClientContext, SettingsScope } from '@deepseek-ai/dsh-client-runtime/client'\nimport type { ThemeRuntime, ThemeTokens } from '@deepseek-ai/dsh-client-ui-theme/client'\n// Type-only: pulls the locale plugin's Context merge (ctx.locale).\nimport type {} from '@deepseek-ai/dsh-client-locale/client'\n// Type-only: pulls the settings-surface Context merge (ctx.settingsScope).\nimport type {} from '@deepseek-ai/dsh-client-ui-settings/client'\nimport { CatppuccinRow, type CatppuccinRowInjected } from './CatppuccinRow.tsx'\nimport { en, zh, type CatppuccinKey } from './locales.ts'\nimport { CATPPUCCIN_FLAVORS, type CatppuccinFlavorInfo } from './palettes.ts'\n\n/** Locale namespace owned by this plugin. */\nexport const NS = 'catppuccin'\n\ndeclare module '@deepseek-ai/dsh-client-ui-slots' {\n interface LocaleNamespaceMap {\n /** The Catppuccin settings row's copy. */\n catppuccin: CatppuccinKey\n }\n}\n\n/** The settings namespace string (must match the host half's settingsNamespace). */\nexport const SETTINGS_NAMESPACE = 'dsh-catppuccin'\n\n/** `off` means: fall back to the official theme (default). */\nexport type FlavorChoice = CatppuccinFlavorInfo['themeId'] | 'off'\n\n/** The flavour whose themeId this is, or `off`. */\nexport function flavorFromThemeId(themeId: string): FlavorChoice {\n return CATPPUCCIN_FLAVORS.some((f) => f.themeId === themeId) ? themeId as FlavorChoice : 'off'\n}\n\n/** The flavour registered for a theme id, or undefined when not a Catppuccin theme. */\nexport function flavorInfo(themeId: string): CatppuccinFlavorInfo | undefined {\n return CATPPUCCIN_FLAVORS.find((f) => f.themeId === themeId)\n}\n\n/** Required services: slots + locale (settings row) and theme (register + switch). */\nexport const inject = ['slots', 'locale', 'theme', 'settingsScope', 'connection', 'remote']\n\n/**\n * Register the Catppuccin dictionaries, the four flavour themes, and the\n * settings row.\n * @param ctx - client root context.\n */\nexport function apply(ctx: ClientContext): void {\n ctx.effect(() => ctx.locale.register(NS, { zh, en }), 'catppuccin: dictionaries')\n\n const theme = ctx.get('theme') as ThemeRuntime\n\n // Register the four flavour themes. Each carries the full --dsw-* token\n // dictionary for its flavour; the presenter applies them as body inline\n // variables when the theme is active.\n ctx.effect(() => {\n const disposers = CATPPUCCIN_FLAVORS.map((flavor) =>\n theme.register({\n id: flavor.themeId,\n colorScheme: flavor.colorScheme,\n tokens: flavor.tokens as ThemeTokens,\n }),\n )\n return () => {\n for (const dispose of disposers) dispose()\n }\n }, 'catppuccin: flavour themes')\n\n // Persisted flavour choice. The official ThemeRuntime only persists the\n // built-in preferences, so the choice lives in our own settings namespace.\n const binder = ctx.get('settingsScope') as { bind<T>(spec: { namespace: string }): SettingsScope<{ flavor: FlavorChoice }> }\n const scope = binder.bind<{ flavor: FlavorChoice }>({ namespace: SETTINGS_NAMESPACE })\n\n // Restore the saved flavour on boot once the settings section has loaded.\n // The scope starts in the \"loading\" state and only turns \"ready\" after the\n // host document arrives, so a one-shot read at apply() would always miss\n // the value; subscribe and restore on the first ready snapshot instead.\n ctx.effect(() => {\n let restored = false\n const restoreOnce = () => {\n if (restored) return\n const snapshot = scope.getSnapshot()\n if (snapshot.status !== 'ready') return\n restored = true\n const saved = snapshot.value?.flavor\n if (saved !== undefined && saved !== 'off') {\n try {\n theme.setTheme(saved)\n } catch {\n // Theme not registered yet — impossible here (registered above),\n // but stay safe against a stale persisted value.\n }\n }\n }\n restoreOnce()\n const unsubscribe = scope.subscribe(restoreOnce)\n return () => {\n unsubscribe()\n }\n }, 'catppuccin: boot restore')\n\n const injected = (): CatppuccinRowInjected => ({\n themes: CATPPUCCIN_FLAVORS.map((flavor) => ({\n id: flavor.themeId,\n label: flavor.label,\n accent: flavor.accent,\n })),\n current: () => {\n const pref = theme.getTheme().preference\n return flavorFromThemeId(pref)\n },\n subscribe: (listener) => ctx.on('theme/change', listener),\n select: async (choice: FlavorChoice) => {\n if (choice === 'off') {\n // Revert to the official default (system-following).\n theme.setTheme('system')\n await scope.set('flavor', 'off').catch((err) => {\n console.error('[dsh-catppuccin] persist off failed:', err)\n })\n return\n }\n const flavor = flavorInfo(choice)\n if (!flavor) return\n theme.setTheme(flavor.themeId)\n await scope.set('flavor', flavor.themeId).catch((err) => {\n console.error('[dsh-catppuccin] persist flavor failed:', err)\n })\n },\n })\n\n ctx.slots.inject('settings.general.item', () => ctx.slots.register({\n name: 'settings.general.item',\n id: 'catppuccin',\n order: 20,\n locale: NS,\n inject: injected,\n }, CatppuccinRow))\n}\n"],"mappings":"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"}
package/lib/index.js ADDED
@@ -0,0 +1,47 @@
1
+ import { installSettingsSection, settingsNamespace } from "@deepseek-ai/dsh-settings";
2
+ import z from "schemastery";
3
+ //#region src/index.ts
4
+ /**
5
+ * Host half of the Catppuccin theme plugin for the DeepSeek Harness web GUI.
6
+ *
7
+ * The browser half registers four themes (catppuccin-latte / -frappe /
8
+ * -macchiato / -mocha) into the official ThemeRuntime. The official
9
+ * Appearance row only persists the built-in light/dark/system preferences,
10
+ * so the user's flavour choice is persisted here under the `dsh-catppuccin`
11
+ * settings namespace, and the browser half restores it on boot.
12
+ */
13
+ /** Settings namespace owning the persisted Catppuccin flavour choice. */
14
+ const CATPPUCCIN_SETTINGS_NS = settingsNamespace("dsh-catppuccin");
15
+ /**
16
+ * Accepted flavour values — the four registered theme ids plus `off`. These
17
+ * MUST stay in sync with the browser half's `CATPPUCCIN_FLAVORS[].themeId`
18
+ * (guarded by tests/palettes.spec.ts) because the persisted value is the
19
+ * theme id itself.
20
+ */
21
+ const CATPPUCCIN_FLAVOR_VALUES = [
22
+ "catppuccin-latte",
23
+ "catppuccin-frappe",
24
+ "catppuccin-macchiato",
25
+ "catppuccin-mocha",
26
+ "off"
27
+ ];
28
+ /** Durable settings schema; also the wire envelope the browser scope validates against. */
29
+ const CatppuccinSettingsSchema = z.object({ flavor: z.union([...CATPPUCCIN_FLAVOR_VALUES]).default("off") });
30
+ /** Stable cordis plugin name (matches cordis.patch.yml insert id). */
31
+ const name = "dsh-catppuccin";
32
+ /** Required services: the settings provider for the durable flavour section. */
33
+ const inject = ["settings"];
34
+ /**
35
+ * Register the Catppuccin settings namespace so the browser scope can persist
36
+ * the flavour choice. Registration is an effect on this fiber; disposing the
37
+ * fiber removes the namespace.
38
+ * @param ctx - host cordis context.
39
+ */
40
+ function apply(ctx) {
41
+ installSettingsSection(ctx, CATPPUCCIN_SETTINGS_NS, CatppuccinSettingsSchema, {}, {
42
+ setSource: () => {},
43
+ onChange: () => {}
44
+ });
45
+ }
46
+ //#endregion
47
+ export { CATPPUCCIN_FLAVOR_VALUES, CATPPUCCIN_SETTINGS_NS, CatppuccinSettingsSchema, apply, inject, name };
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "@nonamelego/dsh-catppuccin",
3
+ "description": "Catppuccin themes for the DeepSeek Harness web GUI — Latte, Frappé, Macchiato and Mocha registered into the official theme system (Appearance settings), fully remapping the --dsw-* token ladder.",
4
+ "version": "0.1.0",
5
+ "type": "module",
6
+ "main": "lib/index.js",
7
+ "exports": {
8
+ ".": "./lib/index.js",
9
+ "./client": "./lib/client.js",
10
+ "./package.json": "./package.json"
11
+ },
12
+ "dsh": {
13
+ "bundle": {
14
+ "patch": "./cordis.patch.yml"
15
+ },
16
+ "client": {
17
+ "inject": [
18
+ "@deepseek-ai/dsh-client-runtime",
19
+ "@deepseek-ai/dsh-client-locale",
20
+ "@deepseek-ai/dsh-client-ui-theme",
21
+ "@deepseek-ai/dsh-client-ui-settings",
22
+ "@deepseek-ai/dsh-client-connection",
23
+ "@deepseek-ai/dsh-api-remotes"
24
+ ],
25
+ "platform": "web"
26
+ }
27
+ },
28
+ "files": [
29
+ "lib",
30
+ "assets",
31
+ "cordis.patch.yml",
32
+ "README.md",
33
+ "LICENSE"
34
+ ],
35
+ "publishConfig": {
36
+ "access": "public"
37
+ },
38
+ "scripts": {
39
+ "build": "tsdown",
40
+ "prepare": "tsdown",
41
+ "watch": "tsdown --watch",
42
+ "typecheck": "tsc --noEmit -p tsconfig.json",
43
+ "test": "vitest run",
44
+ "gen:palettes": "node scripts/generate-palettes.mjs"
45
+ },
46
+ "license": "MIT",
47
+ "peerDependencies": {
48
+ "react": "^18.2.0"
49
+ },
50
+ "devDependencies": {
51
+ "@deepseek-ai/cordis": "^4.0.1",
52
+ "@deepseek-ai/dsh-client-locale": "^0.1.0-rc.6",
53
+ "@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.6",
54
+ "@deepseek-ai/dsh-client-ui-settings": "^0.1.0-rc.6",
55
+ "@deepseek-ai/dsh-client-ui-slots": "^0.1.0-rc.6",
56
+ "@deepseek-ai/dsh-client-ui-theme": "^0.1.0-rc.6",
57
+ "@deepseek-ai/dsh-settings": "^0.1.0-rc.6",
58
+ "@types/react": "~18.3.1",
59
+ "jsdom": "29.1.1",
60
+ "lightningcss": "^1.32.0",
61
+ "react": "^18.2.0",
62
+ "schemastery": "^3.18.0",
63
+ "tsdown": "^0.22.2",
64
+ "typescript": "^5.7.0",
65
+ "vite-tsconfig-paths": "^6.1.1",
66
+ "vitest": "^4.1.8"
67
+ }
68
+ }