silvery 0.17.0 → 0.17.2
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.
- package/dist/UPNG-AVSMjiFE.mjs +5076 -0
- package/dist/UPNG-AVSMjiFE.mjs.map +1 -0
- package/dist/__vite-browser-external-2447137e-D3GdsvS_.mjs +6 -0
- package/dist/__vite-browser-external-2447137e-D3GdsvS_.mjs.map +1 -0
- package/dist/animation-C_PTO0uH.mjs +304 -0
- package/dist/animation-C_PTO0uH.mjs.map +1 -0
- package/dist/ansi-CXLE_pt1.mjs +71 -0
- package/dist/ansi-CXLE_pt1.mjs.map +1 -0
- package/dist/ansi-zmNzgkPB.d.mts +49 -0
- package/dist/ansi-zmNzgkPB.d.mts.map +1 -0
- package/dist/apng-DCWY913R.mjs +3 -0
- package/dist/apng-ENBAJk-H.mjs +70 -0
- package/dist/apng-ENBAJk-H.mjs.map +1 -0
- package/dist/assets/resvgjs.darwin-arm64-BtufyGW1.node +0 -0
- package/dist/backend-CkIkIHR-.mjs +13396 -0
- package/dist/backend-CkIkIHR-.mjs.map +1 -0
- package/dist/backends-CkvbG3js.mjs +1181 -0
- package/dist/backends-CkvbG3js.mjs.map +1 -0
- package/dist/backends-CyJqNLeK.mjs +3 -0
- package/dist/chunk-BSw8zbkd.mjs +37 -0
- package/dist/cli-B-k7Bm56.mjs +4 -0
- package/dist/context-QreF3UHr.mjs +64 -0
- package/dist/context-QreF3UHr.mjs.map +1 -0
- package/dist/derive-D7bFJdfU.d.mts +28 -0
- package/dist/derive-D7bFJdfU.d.mts.map +1 -0
- package/dist/devtools-CscuKaDK.mjs +89 -0
- package/dist/devtools-CscuKaDK.mjs.map +1 -0
- package/dist/devtools-D4oGc6LY.mjs +2 -0
- package/dist/eta-DLiVPaSD.mjs +110 -0
- package/dist/eta-DLiVPaSD.mjs.map +1 -0
- package/dist/flexily-zero-adapter-DmG4Ge8t.mjs +3376 -0
- package/dist/flexily-zero-adapter-DmG4Ge8t.mjs.map +1 -0
- package/dist/flexily-zero-adapter-GHwEW11s.mjs +2 -0
- package/dist/gif-BaJNREpP.mjs +3 -0
- package/dist/gif-Bp6fIyN3.mjs +73 -0
- package/dist/gif-Bp6fIyN3.mjs.map +1 -0
- package/dist/gifenc-GiVCZ9-3.mjs +730 -0
- package/dist/gifenc-GiVCZ9-3.mjs.map +1 -0
- package/dist/image-Dx7gYjkq.mjs +346 -0
- package/dist/image-Dx7gYjkq.mjs.map +1 -0
- package/dist/index-CBcSpGSM.d.mts +3416 -0
- package/dist/index-CBcSpGSM.d.mts.map +1 -0
- package/dist/index-DCVL3jHo.d.mts +634 -0
- package/dist/index-DCVL3jHo.d.mts.map +1 -0
- package/dist/index-p-wBs_wH.d.mts +175 -0
- package/dist/index-p-wBs_wH.d.mts.map +1 -0
- package/dist/index.d.mts +7296 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +9399 -0
- package/dist/index.mjs.map +1 -0
- package/dist/key-mapping-BsUHe_nk.mjs +3 -0
- package/dist/key-mapping-DsyfLEdC.mjs +132 -0
- package/dist/key-mapping-DsyfLEdC.mjs.map +1 -0
- package/dist/layout-engine-B3dsnVLU.mjs +50 -0
- package/dist/layout-engine-B3dsnVLU.mjs.map +1 -0
- package/dist/layout-engine-D_lSR4i9.mjs +2 -0
- package/dist/multi-progress-C0-rkn86.d.mts +180 -0
- package/dist/multi-progress-C0-rkn86.d.mts.map +1 -0
- package/dist/multi-progress-CQVB9lES.mjs +219 -0
- package/dist/multi-progress-CQVB9lES.mjs.map +1 -0
- package/dist/node-Dedx-6xF.mjs +1085 -0
- package/dist/node-Dedx-6xF.mjs.map +1 -0
- package/dist/pipeline-DDOPrjuY.mjs +4387 -0
- package/dist/pipeline-DDOPrjuY.mjs.map +1 -0
- package/dist/progress-bar-COPSBlT9.mjs +155 -0
- package/dist/progress-bar-COPSBlT9.mjs.map +1 -0
- package/dist/reconciler-2lp5VXK7.mjs +16506 -0
- package/dist/reconciler-2lp5VXK7.mjs.map +1 -0
- package/dist/render-string-BXvxTg5P.mjs +201 -0
- package/dist/render-string-BXvxTg5P.mjs.map +1 -0
- package/dist/render-string-hvfpVtoP.mjs +2 -0
- package/dist/resvg-js-V6oMi8CY.mjs +203 -0
- package/dist/resvg-js-V6oMi8CY.mjs.map +1 -0
- package/dist/runtime-BjDHNTxJ.mjs +8723 -0
- package/dist/runtime-BjDHNTxJ.mjs.map +1 -0
- package/dist/runtime.d.mts +2 -0
- package/dist/runtime.mjs +3 -0
- package/dist/spinner-Cgej6Vnb.d.mts +127 -0
- package/dist/spinner-Cgej6Vnb.d.mts.map +1 -0
- package/dist/spinner-DSByknyx.mjs +298 -0
- package/dist/spinner-DSByknyx.mjs.map +1 -0
- package/dist/src-9B5k0JmY.mjs +1629 -0
- package/dist/src-9B5k0JmY.mjs.map +1 -0
- package/dist/src-C9f3hiVG.mjs +3620 -0
- package/dist/src-C9f3hiVG.mjs.map +1 -0
- package/dist/src-fJVbhdn-.mjs +816 -0
- package/dist/src-fJVbhdn-.mjs.map +1 -0
- package/dist/theme.d.mts +115 -0
- package/dist/theme.d.mts.map +1 -0
- package/dist/theme.mjs +8 -0
- package/dist/theme.mjs.map +1 -0
- package/dist/types-Bhj5QkIQ.mjs +13 -0
- package/dist/types-Bhj5QkIQ.mjs.map +1 -0
- package/dist/types-CDgkE-Rw.d.mts +241 -0
- package/dist/types-CDgkE-Rw.d.mts.map +1 -0
- package/dist/ui/animation.d.mts +2 -0
- package/dist/ui/animation.mjs +2 -0
- package/dist/ui/ansi.d.mts +2 -0
- package/dist/ui/ansi.mjs +2 -0
- package/dist/ui/cli.d.mts +5 -0
- package/dist/ui/cli.mjs +7 -0
- package/dist/ui/display.d.mts +35 -0
- package/dist/ui/display.d.mts.map +1 -0
- package/dist/ui/display.mjs +123 -0
- package/dist/ui/display.mjs.map +1 -0
- package/dist/ui/image.d.mts +2 -0
- package/dist/ui/image.mjs +2 -0
- package/dist/ui/input.d.mts +184 -0
- package/dist/ui/input.d.mts.map +1 -0
- package/dist/ui/input.mjs +285 -0
- package/dist/ui/input.mjs.map +1 -0
- package/dist/ui/progress.d.mts +249 -0
- package/dist/ui/progress.d.mts.map +1 -0
- package/dist/ui/progress.mjs +858 -0
- package/dist/ui/progress.mjs.map +1 -0
- package/dist/ui/react.d.mts +280 -0
- package/dist/ui/react.d.mts.map +1 -0
- package/dist/ui/react.mjs +413 -0
- package/dist/ui/react.mjs.map +1 -0
- package/dist/ui/utils.d.mts +86 -0
- package/dist/ui/utils.d.mts.map +1 -0
- package/dist/ui/utils.mjs +2 -0
- package/dist/ui/wrappers.d.mts +3 -0
- package/dist/ui/wrappers.mjs +2 -0
- package/dist/ui.d.mts +6 -0
- package/dist/ui.mjs +7 -0
- package/dist/useLatest-BMIYXd6e.d.mts +154 -0
- package/dist/useLatest-BMIYXd6e.d.mts.map +1 -0
- package/dist/useLayout-BG2cGl15.mjs +139 -0
- package/dist/useLayout-BG2cGl15.mjs.map +1 -0
- package/dist/with-text-input-CmHf_9d6.d.mts +284 -0
- package/dist/with-text-input-CmHf_9d6.d.mts.map +1 -0
- package/dist/wrapper-Dqh0zi2W.mjs +3527 -0
- package/dist/wrapper-Dqh0zi2W.mjs.map +1 -0
- package/dist/wrappers-hhL8EQ_n.mjs +810 -0
- package/dist/wrappers-hhL8EQ_n.mjs.map +1 -0
- package/dist/yoga-adapter-BJ9SOhTY.mjs +245 -0
- package/dist/yoga-adapter-BJ9SOhTY.mjs.map +1 -0
- package/dist/yoga-adapter-Daq6-dw1.mjs +2 -0
- package/package.json +48 -75
- package/CHANGELOG.md +0 -319
- package/dist/chalk.js +0 -4
- package/dist/index.js +0 -270
- package/dist/ink.js +0 -142
- package/dist/runtime.js +0 -135
- package/dist/theme.js +0 -7
- package/dist/ui/animation.js +0 -3
- package/dist/ui/ansi.js +0 -3
- package/dist/ui/cli.js +0 -9
- package/dist/ui/display.js +0 -4
- package/dist/ui/image.js +0 -4
- package/dist/ui/input.js +0 -3
- package/dist/ui/progress.js +0 -9
- package/dist/ui/react.js +0 -4
- package/dist/ui/utils.js +0 -3
- package/dist/ui/wrappers.js +0 -15
- package/dist/ui.js +0 -18
- package/src/index.ts +0 -73
- package/src/runtime.ts +0 -4
- package/src/theme.ts +0 -4
- package/src/ui/animation.ts +0 -2
- package/src/ui/ansi.ts +0 -2
- package/src/ui/cli.ts +0 -3
- package/src/ui/display.ts +0 -2
- package/src/ui/image.ts +0 -2
- package/src/ui/input.ts +0 -2
- package/src/ui/progress.ts +0 -2
- package/src/ui/react.ts +0 -2
- package/src/ui/utils.ts +0 -2
- package/src/ui/wrappers.ts +0 -2
- package/src/ui.ts +0 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"src-C9f3hiVG.mjs","names":["luminance","isDarkColor","importBase16Internal","ansi16DarkTheme","ansi16LightTheme","_detectTerminalPalette"],"sources":["../packages/theme/src/derive.ts","../packages/theme/src/color.ts","../packages/theme/src/palettes/catppuccin.ts","../packages/theme/src/palettes/nord.ts","../packages/theme/src/palettes/dracula.ts","../packages/theme/src/palettes/solarized.ts","../packages/theme/src/palettes/tokyo-night.ts","../packages/theme/src/palettes/one-dark.ts","../packages/theme/src/palettes/gruvbox.ts","../packages/theme/src/palettes/rose-pine.ts","../packages/theme/src/palettes/kanagawa.ts","../packages/theme/src/palettes/everforest.ts","../packages/theme/src/palettes/monokai.ts","../packages/theme/src/palettes/snazzy.ts","../packages/theme/src/palettes/material.ts","../packages/theme/src/palettes/palenight.ts","../packages/theme/src/palettes/ayu.ts","../packages/theme/src/palettes/nightfox.ts","../packages/theme/src/palettes/horizon.ts","../packages/theme/src/palettes/moonfly.ts","../packages/theme/src/palettes/nightfly.ts","../packages/theme/src/palettes/oxocarbon.ts","../packages/theme/src/palettes/sonokai.ts","../packages/theme/src/palettes/edge.ts","../packages/theme/src/palettes/modus.ts","../packages/theme/src/palettes/github.ts","../packages/theme/src/palettes/cobalt2.ts","../packages/theme/src/palettes/synthwave.ts","../packages/theme/src/palettes/tomorrow-night.ts","../packages/theme/src/palettes/zenburn.ts","../packages/theme/src/palettes/ubuntu.ts","../packages/theme/src/palettes/tango.ts","../packages/theme/src/palettes/cyberpunk.ts","../packages/theme/src/palettes/vscode.ts","../packages/theme/src/palettes/one-light.ts","../packages/theme/src/palettes/night-owl.ts","../packages/theme/src/palettes/shades-of-purple.ts","../packages/theme/src/palettes/homebrew.ts","../packages/theme/src/palettes/neon.ts","../packages/theme/src/palettes/challenger-deep.ts","../packages/theme/src/palettes/doom-one.ts","../packages/theme/src/palettes/mariana.ts","../packages/theme/src/palettes/darcula.ts","../packages/theme/src/palettes/espresso.ts","../packages/theme/src/palettes/iceberg.ts","../packages/theme/src/palettes/serendipity.ts","../packages/theme/src/palettes/twilight.ts","../packages/theme/src/palettes/breeze.ts","../packages/theme/src/palettes/andromeda.ts","../packages/theme/src/palettes/relaxed.ts","../packages/theme/src/palettes/index.ts","../packages/theme/src/state.ts","../packages/theme/src/ThemeContext.tsx","../packages/theme/src/types.ts","../packages/theme/src/resolve.ts","../packages/theme/src/generate.ts","../packages/theme/src/import/types.ts","../packages/theme/src/import/base16.ts","../packages/theme/src/generators.ts","../packages/theme/src/builder.ts","../packages/theme/src/validate.ts","../packages/theme/src/validate-theme.ts","../packages/theme/src/contrast.ts","../packages/theme/src/alias.ts","../packages/theme/src/css.ts","../packages/theme/src/auto-generate.ts","../packages/theme/src/export/base16.ts","../packages/theme/src/detect.ts","../packages/theme/src/theme.ts","../packages/theme/src/index.ts"],"sourcesContent":["/**\n * Theme derivation — re-exported from @silvery/ansi (canonical location).\n *\n * @silvery/theme consumers can continue importing from here.\n */\n\nexport { deriveTheme } from \"@silvery/ansi\"\nexport type { ThemeAdjustment } from \"@silvery/ansi\"\n","/**\n * Color manipulation utilities.\n *\n * Re-exports from @silvery/color — the canonical implementation.\n * This module exists to preserve @silvery/theme's public API.\n */\n\nexport {\n hexToRgb,\n rgbToHex,\n blend,\n brighten,\n darken,\n contrastFg,\n rgbToHsl,\n hslToHex,\n hexToHsl,\n desaturate,\n complement,\n} from \"@silvery/color\"\nexport type { HSL } from \"@silvery/color\"\n","/**\n * Catppuccin palettes — the most popular 4-flavor theme system.\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Catppuccin Mocha — the classic dark variant. */\nexport const catppuccinMocha: ColorPalette = {\n name: \"catppuccin-mocha\",\n dark: true,\n black: \"#11111B\",\n red: \"#F38BA8\",\n green: \"#A6E3A1\",\n yellow: \"#F9E2AF\",\n blue: \"#89B4FA\",\n magenta: \"#CBA6F7\",\n cyan: \"#94E2D5\",\n white: \"#A6ADC8\",\n brightBlack: \"#313244\",\n brightRed: \"#FAB387\",\n brightGreen: brighten(\"#A6E3A1\", 0.15),\n brightYellow: brighten(\"#F9E2AF\", 0.15),\n brightBlue: brighten(\"#89B4FA\", 0.15),\n brightMagenta: \"#F5C2E7\",\n brightCyan: brighten(\"#94E2D5\", 0.15),\n brightWhite: \"#CDD6F4\",\n foreground: \"#CDD6F4\",\n background: \"#1E1E2E\",\n cursorColor: \"#CDD6F4\",\n cursorText: \"#1E1E2E\",\n selectionBackground: \"#6C7086\",\n selectionForeground: \"#CDD6F4\",\n}\n\n/** Catppuccin Frappe — muted dark variant. */\nexport const catppuccinFrappe: ColorPalette = {\n name: \"catppuccin-frappe\",\n dark: true,\n black: \"#232634\",\n red: \"#E78284\",\n green: \"#A6D189\",\n yellow: \"#E5C890\",\n blue: \"#8CAAEE\",\n magenta: \"#CA9EE6\",\n cyan: \"#81C8BE\",\n white: \"#A5ADCE\",\n brightBlack: \"#414559\",\n brightRed: \"#EF9F76\",\n brightGreen: brighten(\"#A6D189\", 0.15),\n brightYellow: brighten(\"#E5C890\", 0.15),\n brightBlue: brighten(\"#8CAAEE\", 0.15),\n brightMagenta: \"#F4B8E4\",\n brightCyan: brighten(\"#81C8BE\", 0.15),\n brightWhite: \"#C6D0F5\",\n foreground: \"#C6D0F5\",\n background: \"#303446\",\n cursorColor: \"#C6D0F5\",\n cursorText: \"#303446\",\n selectionBackground: \"#737994\",\n selectionForeground: \"#C6D0F5\",\n}\n\n/** Catppuccin Macchiato — warm dark variant. */\nexport const catppuccinMacchiato: ColorPalette = {\n name: \"catppuccin-macchiato\",\n dark: true,\n black: \"#181926\",\n red: \"#ED8796\",\n green: \"#A6DA95\",\n yellow: \"#EED49F\",\n blue: \"#8AADF4\",\n magenta: \"#C6A0F6\",\n cyan: \"#8BD5CA\",\n white: \"#A5ADCB\",\n brightBlack: \"#363A4F\",\n brightRed: \"#F5A97F\",\n brightGreen: brighten(\"#A6DA95\", 0.15),\n brightYellow: brighten(\"#EED49F\", 0.15),\n brightBlue: brighten(\"#8AADF4\", 0.15),\n brightMagenta: \"#F5BDE6\",\n brightCyan: brighten(\"#8BD5CA\", 0.15),\n brightWhite: \"#CAD3F5\",\n foreground: \"#CAD3F5\",\n background: \"#24273A\",\n cursorColor: \"#CAD3F5\",\n cursorText: \"#24273A\",\n selectionBackground: \"#6E738D\",\n selectionForeground: \"#CAD3F5\",\n}\n\n/** Catppuccin Latte — the light variant. */\nexport const catppuccinLatte: ColorPalette = {\n name: \"catppuccin-latte\",\n dark: false,\n black: \"#DCE0E8\",\n red: \"#D20F39\",\n green: \"#40A02B\",\n yellow: \"#DF8E1D\",\n blue: \"#1E66F5\",\n magenta: \"#8839EF\",\n cyan: \"#179299\",\n white: \"#6C6F85\",\n brightBlack: \"#CCD0DA\",\n brightRed: \"#FE640B\",\n brightGreen: brighten(\"#40A02B\", 0.15),\n brightYellow: brighten(\"#DF8E1D\", 0.15),\n brightBlue: brighten(\"#1E66F5\", 0.15),\n brightMagenta: \"#EA76CB\",\n brightCyan: brighten(\"#179299\", 0.15),\n brightWhite: \"#4C4F69\",\n foreground: \"#4C4F69\",\n background: \"#EFF1F5\",\n cursorColor: \"#4C4F69\",\n cursorText: \"#EFF1F5\",\n selectionBackground: \"#9CA0B0\",\n selectionForeground: \"#4C4F69\",\n}\n","/**\n * Nord palette — Arctic, north-bluish clean.\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Nord — the classic dark arctic theme. */\nexport const nord: ColorPalette = {\n name: \"nord\",\n dark: true,\n black: \"#2E3440\",\n red: \"#BF616A\",\n green: \"#A3BE8C\",\n yellow: \"#EBCB8B\",\n blue: \"#5E81AC\",\n magenta: \"#B48EAD\",\n cyan: \"#8FBCBB\",\n white: \"#D8DEE9\",\n brightBlack: \"#3B4252\",\n brightRed: \"#D08770\",\n brightGreen: brighten(\"#A3BE8C\", 0.15),\n brightYellow: brighten(\"#EBCB8B\", 0.15),\n brightBlue: brighten(\"#5E81AC\", 0.15),\n brightMagenta: \"#B48EAD\",\n brightCyan: brighten(\"#8FBCBB\", 0.15),\n brightWhite: \"#ECEFF4\",\n foreground: \"#ECEFF4\",\n background: \"#2E3440\",\n cursorColor: \"#ECEFF4\",\n cursorText: \"#2E3440\",\n selectionBackground: \"#4C566A\",\n selectionForeground: \"#ECEFF4\",\n}\n","/**\n * Dracula palette — dark theme with vibrant accents.\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Dracula — vibrant dark theme. */\nexport const dracula: ColorPalette = {\n name: \"dracula\",\n dark: true,\n black: \"#21222C\",\n red: \"#FF5555\",\n green: \"#50FA7B\",\n yellow: \"#F1FA8C\",\n blue: \"#BD93F9\",\n magenta: \"#BD93F9\",\n cyan: \"#8BE9FD\",\n white: \"#6272A4\",\n brightBlack: \"#44475A\",\n brightRed: \"#FFB86C\",\n brightGreen: brighten(\"#50FA7B\", 0.15),\n brightYellow: brighten(\"#F1FA8C\", 0.15),\n brightBlue: brighten(\"#BD93F9\", 0.15),\n brightMagenta: \"#FF79C6\",\n brightCyan: brighten(\"#8BE9FD\", 0.15),\n brightWhite: \"#F8F8F2\",\n foreground: \"#F8F8F2\",\n background: \"#282A36\",\n cursorColor: \"#F8F8F2\",\n cursorText: \"#282A36\",\n selectionBackground: \"#6272A4\",\n selectionForeground: \"#F8F8F2\",\n}\n","/**\n * Solarized palettes — precision colors for machines and people.\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Solarized Dark — Ethan Schoonover's classic dark variant. */\nexport const solarizedDark: ColorPalette = {\n name: \"solarized-dark\",\n dark: true,\n black: \"#002B36\",\n red: \"#DC322F\",\n green: \"#859900\",\n yellow: \"#B58900\",\n blue: \"#268BD2\",\n magenta: \"#6C71C4\",\n cyan: \"#2AA198\",\n white: \"#839496\",\n brightBlack: \"#586E75\",\n brightRed: \"#CB4B16\",\n brightGreen: brighten(\"#859900\", 0.15),\n brightYellow: brighten(\"#B58900\", 0.15),\n brightBlue: brighten(\"#268BD2\", 0.15),\n brightMagenta: \"#D33682\",\n brightCyan: brighten(\"#2AA198\", 0.15),\n brightWhite: \"#FDF6E3\",\n foreground: \"#FDF6E3\",\n background: \"#073642\",\n cursorColor: \"#FDF6E3\",\n cursorText: \"#073642\",\n selectionBackground: \"#657B83\",\n selectionForeground: \"#FDF6E3\",\n}\n\n/** Solarized Light — Ethan Schoonover's classic light variant. */\nexport const solarizedLight: ColorPalette = {\n name: \"solarized-light\",\n dark: false,\n black: \"#FDF6E3\",\n red: \"#DC322F\",\n green: \"#859900\",\n yellow: \"#B58900\",\n blue: \"#268BD2\",\n magenta: \"#6C71C4\",\n cyan: \"#2AA198\",\n white: \"#657B83\",\n brightBlack: \"#DDD6C1\",\n brightRed: \"#CB4B16\",\n brightGreen: brighten(\"#859900\", 0.15),\n brightYellow: brighten(\"#B58900\", 0.15),\n brightBlue: brighten(\"#268BD2\", 0.15),\n brightMagenta: \"#D33682\",\n brightCyan: brighten(\"#2AA198\", 0.15),\n brightWhite: \"#073642\",\n foreground: \"#073642\",\n background: \"#EEE8D5\",\n cursorColor: \"#073642\",\n cursorText: \"#EEE8D5\",\n selectionBackground: \"#93A1A1\",\n selectionForeground: \"#073642\",\n}\n","/**\n * Tokyo Night palette — a clean dark theme inspired by Tokyo city lights.\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Tokyo Night — the default dark variant. */\nexport const tokyoNight: ColorPalette = {\n name: \"tokyo-night\",\n dark: true,\n black: \"#1A1B26\",\n red: \"#F7768E\",\n green: \"#9ECE6A\",\n yellow: \"#E0AF68\",\n blue: \"#7AA2F7\",\n magenta: \"#BB9AF7\",\n cyan: \"#73DACA\",\n white: \"#A9B1D6\",\n brightBlack: \"#292E42\",\n brightRed: \"#FF9E64\",\n brightGreen: brighten(\"#9ECE6A\", 0.15),\n brightYellow: brighten(\"#E0AF68\", 0.15),\n brightBlue: brighten(\"#7AA2F7\", 0.15),\n brightMagenta: \"#FF007C\",\n brightCyan: brighten(\"#73DACA\", 0.15),\n brightWhite: \"#C0CAF5\",\n foreground: \"#C0CAF5\",\n background: \"#24283B\",\n cursorColor: \"#C0CAF5\",\n cursorText: \"#24283B\",\n selectionBackground: \"#545C7E\",\n selectionForeground: \"#C0CAF5\",\n}\n\n/** Tokyo Night Storm — slightly lighter background. */\nexport const tokyoNightStorm: ColorPalette = {\n name: \"tokyo-night-storm\",\n dark: true,\n black: \"#1F2335\",\n red: \"#F7768E\",\n green: \"#9ECE6A\",\n yellow: \"#E0AF68\",\n blue: \"#7AA2F7\",\n magenta: \"#BB9AF7\",\n cyan: \"#73DACA\",\n white: \"#A9B1D6\",\n brightBlack: \"#292E42\",\n brightRed: \"#FF9E64\",\n brightGreen: brighten(\"#9ECE6A\", 0.15),\n brightYellow: brighten(\"#E0AF68\", 0.15),\n brightBlue: brighten(\"#7AA2F7\", 0.15),\n brightMagenta: \"#FF007C\",\n brightCyan: brighten(\"#73DACA\", 0.15),\n brightWhite: \"#C0CAF5\",\n foreground: \"#C0CAF5\",\n background: \"#24283B\",\n cursorColor: \"#C0CAF5\",\n cursorText: \"#24283B\",\n selectionBackground: \"#545C7E\",\n selectionForeground: \"#C0CAF5\",\n}\n\n/** Tokyo Night Day — the light variant. */\nexport const tokyoNightDay: ColorPalette = {\n name: \"tokyo-night-day\",\n dark: false,\n black: \"#E1E2E7\",\n red: \"#F52A65\",\n green: \"#587539\",\n yellow: \"#8C6C3E\",\n blue: \"#2E7DE9\",\n magenta: \"#9854F1\",\n cyan: \"#118C74\",\n white: \"#6172B0\",\n brightBlack: \"#C4C5CB\",\n brightRed: \"#B15C00\",\n brightGreen: brighten(\"#587539\", 0.15),\n brightYellow: brighten(\"#8C6C3E\", 0.15),\n brightBlue: brighten(\"#2E7DE9\", 0.15),\n brightMagenta: \"#F52A65\",\n brightCyan: brighten(\"#118C74\", 0.15),\n brightWhite: \"#3760BF\",\n foreground: \"#3760BF\",\n background: \"#D5D6DB\",\n cursorColor: \"#3760BF\",\n cursorText: \"#D5D6DB\",\n selectionBackground: \"#9699A3\",\n selectionForeground: \"#3760BF\",\n}\n","/**\n * One Dark palette — Atom's iconic dark theme.\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** One Dark — the classic Atom editor theme. */\nexport const oneDark: ColorPalette = {\n name: \"one-dark\",\n dark: true,\n black: \"#21252B\",\n red: \"#E06C75\",\n green: \"#98C379\",\n yellow: \"#E5C07B\",\n blue: \"#61AFEF\",\n magenta: \"#C678DD\",\n cyan: \"#56B6C2\",\n white: \"#ABB2BF\",\n brightBlack: \"#2C313A\",\n brightRed: \"#D19A66\",\n brightGreen: brighten(\"#98C379\", 0.15),\n brightYellow: brighten(\"#E5C07B\", 0.15),\n brightBlue: brighten(\"#61AFEF\", 0.15),\n brightMagenta: \"#E06C75\",\n brightCyan: brighten(\"#56B6C2\", 0.15),\n brightWhite: \"#ABB2BF\",\n foreground: \"#ABB2BF\",\n background: \"#282C34\",\n cursorColor: \"#ABB2BF\",\n cursorText: \"#282C34\",\n selectionBackground: \"#5C6370\",\n selectionForeground: \"#ABB2BF\",\n}\n","/**\n * Gruvbox palettes — retro groove color scheme.\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Gruvbox Dark — warm retro dark theme. */\nexport const gruvboxDark: ColorPalette = {\n name: \"gruvbox-dark\",\n dark: true,\n black: \"#1D2021\",\n red: \"#FB4934\",\n green: \"#B8BB26\",\n yellow: \"#FABD2F\",\n blue: \"#83A598\",\n magenta: \"#D3869B\",\n cyan: \"#8EC07C\",\n white: \"#BDAE93\",\n brightBlack: \"#3C3836\",\n brightRed: \"#FE8019\",\n brightGreen: brighten(\"#B8BB26\", 0.15),\n brightYellow: brighten(\"#FABD2F\", 0.15),\n brightBlue: brighten(\"#83A598\", 0.15),\n brightMagenta: \"#D3869B\",\n brightCyan: brighten(\"#8EC07C\", 0.15),\n brightWhite: \"#EBDBB2\",\n foreground: \"#EBDBB2\",\n background: \"#282828\",\n cursorColor: \"#EBDBB2\",\n cursorText: \"#282828\",\n selectionBackground: \"#665C54\",\n selectionForeground: \"#EBDBB2\",\n}\n\n/** Gruvbox Light — warm retro light theme. */\nexport const gruvboxLight: ColorPalette = {\n name: \"gruvbox-light\",\n dark: false,\n black: \"#F9F5D7\",\n red: \"#CC241D\",\n green: \"#98971A\",\n yellow: \"#D79921\",\n blue: \"#458588\",\n magenta: \"#B16286\",\n cyan: \"#689D6A\",\n white: \"#665C54\",\n brightBlack: \"#EBDBB2\",\n brightRed: \"#D65D0E\",\n brightGreen: brighten(\"#98971A\", 0.15),\n brightYellow: brighten(\"#D79921\", 0.15),\n brightBlue: brighten(\"#458588\", 0.15),\n brightMagenta: \"#B16286\",\n brightCyan: brighten(\"#689D6A\", 0.15),\n brightWhite: \"#3C3836\",\n foreground: \"#3C3836\",\n background: \"#FBF1C7\",\n cursorColor: \"#3C3836\",\n cursorText: \"#FBF1C7\",\n selectionBackground: \"#A89984\",\n selectionForeground: \"#3C3836\",\n}\n","/**\n * Rosé Pine palettes — all natural pine, faux fur and a bit of soho vibes.\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Rosé Pine — the main dark variant. */\nexport const rosePine: ColorPalette = {\n name: \"rose-pine\",\n dark: true,\n black: \"#191724\",\n red: \"#EB6F92\",\n green: \"#31748F\",\n yellow: \"#F6C177\",\n blue: \"#3E8FB0\",\n magenta: \"#C4A7E7\",\n cyan: \"#9CCFD8\",\n white: \"#908CAA\",\n brightBlack: \"#26233A\",\n brightRed: \"#EA9A97\",\n brightGreen: brighten(\"#31748F\", 0.15),\n brightYellow: brighten(\"#F6C177\", 0.15),\n brightBlue: brighten(\"#3E8FB0\", 0.15),\n brightMagenta: \"#EBBCBA\",\n brightCyan: brighten(\"#9CCFD8\", 0.15),\n brightWhite: \"#E0DEF4\",\n foreground: \"#E0DEF4\",\n background: \"#1F1D2E\",\n cursorColor: \"#E0DEF4\",\n cursorText: \"#1F1D2E\",\n selectionBackground: \"#6E6A86\",\n selectionForeground: \"#E0DEF4\",\n}\n\n/** Rosé Pine Moon — slightly lighter dark variant. */\nexport const rosePineMoon: ColorPalette = {\n name: \"rose-pine-moon\",\n dark: true,\n black: \"#232136\",\n red: \"#EB6F92\",\n green: \"#3E8FB0\",\n yellow: \"#F6C177\",\n blue: \"#3E8FB0\",\n magenta: \"#C4A7E7\",\n cyan: \"#9CCFD8\",\n white: \"#908CAA\",\n brightBlack: \"#393552\",\n brightRed: \"#EA9A97\",\n brightGreen: brighten(\"#3E8FB0\", 0.15),\n brightYellow: brighten(\"#F6C177\", 0.15),\n brightBlue: brighten(\"#3E8FB0\", 0.15),\n brightMagenta: \"#EA9A97\",\n brightCyan: brighten(\"#9CCFD8\", 0.15),\n brightWhite: \"#E0DEF4\",\n foreground: \"#E0DEF4\",\n background: \"#2A273F\",\n cursorColor: \"#E0DEF4\",\n cursorText: \"#2A273F\",\n selectionBackground: \"#6E6A86\",\n selectionForeground: \"#E0DEF4\",\n}\n\n/** Rosé Pine Dawn — the light variant. */\nexport const rosePineDawn: ColorPalette = {\n name: \"rose-pine-dawn\",\n dark: false,\n black: \"#FAF4ED\",\n red: \"#B4637A\",\n green: \"#286983\",\n yellow: \"#EA9D34\",\n blue: \"#286983\",\n magenta: \"#907AA9\",\n cyan: \"#56949F\",\n white: \"#797593\",\n brightBlack: \"#F2E9E1\",\n brightRed: \"#D7827E\",\n brightGreen: brighten(\"#286983\", 0.15),\n brightYellow: brighten(\"#EA9D34\", 0.15),\n brightBlue: brighten(\"#286983\", 0.15),\n brightMagenta: \"#D7827E\",\n brightCyan: brighten(\"#56949F\", 0.15),\n brightWhite: \"#575279\",\n foreground: \"#575279\",\n background: \"#FFFAF3\",\n cursorColor: \"#575279\",\n cursorText: \"#FFFAF3\",\n selectionBackground: \"#9893A5\",\n selectionForeground: \"#575279\",\n}\n","/**\n * Kanagawa palettes — inspired by Katsushika Hokusai's famous paintings.\n * Source: https://github.com/rebelot/kanagawa.nvim (palette.lua)\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Kanagawa Wave — the default dark variant, inspired by \"The Great Wave off Kanagawa\". */\nexport const kanagawaWave: ColorPalette = {\n name: \"kanagawa-wave\",\n dark: true,\n black: \"#16161D\", // sumiInk0\n red: \"#C34043\", // autumnRed\n green: \"#98BB6C\", // springGreen\n yellow: \"#E6C384\", // carpYellow\n blue: \"#7E9CD8\", // crystalBlue\n magenta: \"#957FB8\", // oniViolet\n cyan: \"#6A9589\", // waveAqua1\n white: \"#727169\", // fujiGray\n brightBlack: \"#2A2A37\", // sumiInk4\n brightRed: \"#FFA066\", // surimiOrange\n brightGreen: brighten(\"#98BB6C\", 0.15),\n brightYellow: brighten(\"#E6C384\", 0.15),\n brightBlue: brighten(\"#7E9CD8\", 0.15),\n brightMagenta: \"#D27E99\", // sakuraPink\n brightCyan: brighten(\"#6A9589\", 0.15),\n brightWhite: \"#DCD7BA\", // fujiWhite\n foreground: \"#DCD7BA\", // fujiWhite\n background: \"#1F1F28\", // sumiInk3\n cursorColor: \"#DCD7BA\", // fujiWhite\n cursorText: \"#1F1F28\", // sumiInk3\n selectionBackground: \"#54546D\", // sumiInk6\n selectionForeground: \"#DCD7BA\", // fujiWhite\n}\n\n/** Kanagawa Dragon — a muted, earthy dark variant. */\nexport const kanagawaDragon: ColorPalette = {\n name: \"kanagawa-dragon\",\n dark: true,\n black: \"#0d0c0c\", // dragonBlack0\n red: \"#c4746e\", // dragonRed\n green: \"#87a987\", // dragonGreen\n yellow: \"#c4b28a\", // dragonYellow\n blue: \"#8ba4b0\", // dragonBlue2\n magenta: \"#8992a7\", // dragonViolet\n cyan: \"#8ea4a2\", // dragonAqua\n white: \"#737c73\", // dragonAsh\n brightBlack: \"#282727\", // dragonBlack4\n brightRed: \"#b6927b\", // dragonOrange\n brightGreen: brighten(\"#87a987\", 0.15),\n brightYellow: brighten(\"#c4b28a\", 0.15),\n brightBlue: brighten(\"#8ba4b0\", 0.15),\n brightMagenta: \"#a292a3\", // dragonPink\n brightCyan: brighten(\"#8ea4a2\", 0.15),\n brightWhite: \"#c5c9c5\", // dragonWhite\n foreground: \"#c5c9c5\", // dragonWhite\n background: \"#181616\", // dragonBlack3\n cursorColor: \"#c5c9c5\", // dragonWhite\n cursorText: \"#181616\", // dragonBlack3\n selectionBackground: \"#625e5a\", // dragonBlack6\n selectionForeground: \"#c5c9c5\", // dragonWhite\n}\n\n/** Kanagawa Lotus — the light variant, inspired by lotus flowers. */\nexport const kanagawaLotus: ColorPalette = {\n name: \"kanagawa-lotus\",\n dark: false,\n black: \"#e5ddb0\", // lotusWhite2\n red: \"#c84053\", // lotusRed\n green: \"#6f894e\", // lotusGreen\n yellow: \"#de9800\", // lotusYellow3\n blue: \"#4d699b\", // lotusBlue4\n magenta: \"#624c83\", // lotusViolet4\n cyan: \"#597b75\", // lotusAqua\n white: \"#716e61\", // lotusGray2\n brightBlack: \"#dcd5ac\", // lotusWhite1\n brightRed: \"#cc6d00\", // lotusOrange\n brightGreen: brighten(\"#6f894e\", 0.15),\n brightYellow: brighten(\"#de9800\", 0.15),\n brightBlue: brighten(\"#4d699b\", 0.15),\n brightMagenta: \"#b35b79\", // lotusPink\n brightCyan: brighten(\"#597b75\", 0.15),\n brightWhite: \"#545464\", // lotusInk1\n foreground: \"#545464\", // lotusInk1\n background: \"#f2ecbc\", // lotusWhite3\n cursorColor: \"#545464\", // lotusInk1\n cursorText: \"#f2ecbc\", // lotusWhite3\n selectionBackground: \"#8a8980\", // lotusGray3\n selectionForeground: \"#545464\", // lotusInk1\n}\n","/**\n * Everforest palettes — a green-toned comfortable color scheme.\n * Source: https://github.com/sainnhe/everforest (medium background variants)\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Everforest Dark — warm green-based dark theme (medium background). */\nexport const everforestDark: ColorPalette = {\n name: \"everforest-dark\",\n dark: true,\n black: \"#232a2e\", // bg_dim\n red: \"#e67e80\",\n green: \"#a7c080\",\n yellow: \"#dbbc7f\",\n blue: \"#7fbbb3\",\n magenta: \"#d699b6\",\n cyan: \"#83c092\", // aqua\n white: \"#859289\", // grey1\n brightBlack: \"#343f44\", // bg1\n brightRed: \"#e69875\",\n brightGreen: brighten(\"#a7c080\", 0.15),\n brightYellow: brighten(\"#dbbc7f\", 0.15),\n brightBlue: brighten(\"#7fbbb3\", 0.15),\n brightMagenta: \"#e67e80\", // everforest has no distinct pink; reuse red\n brightCyan: brighten(\"#83c092\", 0.15),\n brightWhite: \"#d3c6aa\", // fg\n foreground: \"#d3c6aa\", // fg\n background: \"#2d353b\", // bg0\n cursorColor: \"#d3c6aa\", // fg\n cursorText: \"#2d353b\", // bg0\n selectionBackground: \"#4f585e\", // bg4\n selectionForeground: \"#d3c6aa\", // fg\n}\n\n/** Everforest Light — warm green-based light theme (medium background). */\nexport const everforestLight: ColorPalette = {\n name: \"everforest-light\",\n dark: false,\n black: \"#efebd4\", // bg_dim\n red: \"#f85552\",\n green: \"#8da101\",\n yellow: \"#dfa000\",\n blue: \"#3a94c5\",\n magenta: \"#df69ba\",\n cyan: \"#35a77c\", // aqua\n white: \"#939f91\", // grey1\n brightBlack: \"#f4f0d9\", // bg1\n brightRed: \"#f57d26\",\n brightGreen: brighten(\"#8da101\", 0.15),\n brightYellow: brighten(\"#dfa000\", 0.15),\n brightBlue: brighten(\"#3a94c5\", 0.15),\n brightMagenta: \"#f85552\", // everforest has no distinct pink; reuse red\n brightCyan: brighten(\"#35a77c\", 0.15),\n brightWhite: \"#5c6a72\", // fg\n foreground: \"#5c6a72\", // fg\n background: \"#fdf6e3\", // bg0\n cursorColor: \"#5c6a72\", // fg\n cursorText: \"#fdf6e3\", // bg0\n selectionBackground: \"#e0dcc7\", // bg4\n selectionForeground: \"#5c6a72\", // fg\n}\n","/**\n * Monokai palettes — the iconic syntax highlighting theme.\n * Classic source: Sublime Text default (Wimer Hazenberg, 2006)\n * Pro source: https://monokai.pro/ (default \"Pro\" filter)\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Monokai Classic — the original Sublime Text Monokai colors. */\nexport const monokai: ColorPalette = {\n name: \"monokai\",\n dark: true,\n black: \"#1a1a1a\", // darker than bg\n red: \"#F92672\", // keywords/pink-red\n green: \"#A6E22E\", // functions\n yellow: \"#E6DB74\", // strings\n blue: \"#66D9EF\", // classic Monokai has no distinct blue; cyan doubles\n magenta: \"#AE81FF\", // numbers/constants\n cyan: \"#66D9EF\", // types/builtins (cyan)\n white: \"#a59f85\", // muted text (between comments and fg)\n brightBlack: \"#3e3d32\", // line highlight\n brightRed: \"#FD971F\", // parameters/constants\n brightGreen: brighten(\"#A6E22E\", 0.15),\n brightYellow: brighten(\"#E6DB74\", 0.15),\n brightBlue: brighten(\"#66D9EF\", 0.15),\n brightMagenta: \"#F92672\", // classic Monokai pink == red\n brightCyan: brighten(\"#66D9EF\", 0.15),\n brightWhite: \"#F8F8F2\", // foreground\n foreground: \"#F8F8F2\", // foreground\n background: \"#272822\", // classic Monokai background\n cursorColor: \"#F8F8F2\", // foreground\n cursorText: \"#272822\", // classic Monokai background\n selectionBackground: \"#75715E\", // comments\n selectionForeground: \"#F8F8F2\", // foreground\n}\n\n/** Monokai Pro — the modern, refined Monokai with balanced colors. */\nexport const monokaiPro: ColorPalette = {\n name: \"monokai-pro\",\n dark: true,\n black: \"#221f22\", // darker than base\n red: \"#ff6188\", // keywords\n green: \"#a9dc76\", // functions\n yellow: \"#ffd866\", // strings/types\n blue: \"#78dce8\", // Pro shares cyan as blue\n magenta: \"#ab9df2\", // decorative/numbers\n cyan: \"#78dce8\", // cyan — support/builtins\n white: \"#939293\", // secondary text\n brightBlack: \"#403e41\", // raised surfaces\n brightRed: \"#fc9867\", // constants/parameters\n brightGreen: brighten(\"#a9dc76\", 0.15),\n brightYellow: brighten(\"#ffd866\", 0.15),\n brightBlue: brighten(\"#78dce8\", 0.15),\n brightMagenta: \"#ff6188\", // Pro pink == red\n brightCyan: brighten(\"#78dce8\", 0.15),\n brightWhite: \"#fcfcfa\", // foreground\n foreground: \"#fcfcfa\", // foreground\n background: \"#2d2a2e\", // editor background\n cursorColor: \"#fcfcfa\", // foreground\n cursorText: \"#2d2a2e\", // editor background\n selectionBackground: \"#727072\", // borders/muted chrome\n selectionForeground: \"#fcfcfa\", // foreground\n}\n","/**\n * Snazzy palette — elegant dark theme with vivid colors.\n * Source: https://github.com/sindresorhus/hyper-snazzy\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Snazzy — clean dark theme by Sindre Sorhus. */\nexport const snazzy: ColorPalette = {\n name: \"snazzy\",\n dark: true,\n black: \"#222430\", // border color (deepest)\n red: \"#ff5c57\",\n green: \"#5af78e\",\n yellow: \"#f3f99d\",\n blue: \"#57c7ff\",\n magenta: \"#b267e6\", // interpolated purple (between magenta and blue)\n cyan: \"#9aedfe\", // cyan\n white: \"#97979b\", // cursor/secondary text\n brightBlack: \"#34353e\", // slightly raised (interpolated)\n brightRed: \"#ff9f43\", // snazzy bright orange (warm interpolation)\n brightGreen: brighten(\"#5af78e\", 0.15),\n brightYellow: brighten(\"#f3f99d\", 0.15),\n brightBlue: brighten(\"#57c7ff\", 0.15),\n brightMagenta: \"#ff6ac1\", // magenta\n brightCyan: brighten(\"#9aedfe\", 0.15),\n brightWhite: \"#eff0eb\", // foreground\n foreground: \"#eff0eb\", // foreground\n background: \"#282a36\", // background\n cursorColor: \"#eff0eb\", // foreground\n cursorText: \"#282a36\", // background\n selectionBackground: \"#686868\", // light black / muted chrome\n selectionForeground: \"#eff0eb\", // foreground\n}\n","/**\n * Material Theme palettes — material design-inspired editor theme.\n * Source: https://github.com/kaicataldo/material.vim (material.vim)\n * Reference: https://material-theme.com/docs/reference/color-palette/\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Material Darker — the deep dark Material variant. */\nexport const materialDark: ColorPalette = {\n name: \"material-dark\",\n dark: true,\n black: \"#171717\", // line_highlight (deepest)\n red: \"#ff5370\",\n green: \"#c3e88d\",\n yellow: \"#ffcb6b\",\n blue: \"#82aaff\",\n magenta: \"#c792ea\",\n cyan: \"#89ddff\", // cyan\n white: \"#545454\", // comments\n brightBlack: \"#2c2c2c\", // selection\n brightRed: \"#f78c6c\",\n brightGreen: brighten(\"#c3e88d\", 0.15),\n brightYellow: brighten(\"#ffcb6b\", 0.15),\n brightBlue: brighten(\"#82aaff\", 0.15),\n brightMagenta: \"#f07178\",\n brightCyan: brighten(\"#89ddff\", 0.15),\n brightWhite: \"#eeffff\", // foreground\n foreground: \"#eeffff\", // foreground\n background: \"#212121\", // background\n cursorColor: \"#eeffff\", // foreground\n cursorText: \"#212121\", // background\n selectionBackground: \"#424242\", // guides/line_numbers\n selectionForeground: \"#eeffff\", // foreground\n}\n\n/** Material Lighter — the light Material variant. */\nexport const materialLight: ColorPalette = {\n name: \"material-light\",\n dark: false,\n black: \"#ecf0f1\", // line_highlight\n red: \"#e53935\",\n green: \"#91b859\",\n yellow: \"#ffb62c\",\n blue: \"#6182b8\",\n magenta: \"#7c4dff\",\n cyan: \"#39adb5\", // cyan\n white: \"#90a4ae\", // comments/fg\n brightBlack: \"#ebf4f3\", // selection\n brightRed: \"#f76d47\",\n brightGreen: brighten(\"#91b859\", 0.15),\n brightYellow: brighten(\"#ffb62c\", 0.15),\n brightBlue: brighten(\"#6182b8\", 0.15),\n brightMagenta: \"#ff5370\",\n brightCyan: brighten(\"#39adb5\", 0.15),\n brightWhite: \"#546E7A\", // foreground (darker than comments for light theme)\n foreground: \"#546E7A\", // foreground (darker than comments for light theme)\n background: \"#fafafa\", // background\n cursorColor: \"#546E7A\", // foreground\n cursorText: \"#fafafa\", // background\n selectionBackground: \"#cfd8dc\", // line_numbers\n selectionForeground: \"#546E7A\", // foreground\n}\n","/**\n * Palenight palette — Material Palenight variant.\n * Source: https://github.com/kaicataldo/material.vim (palenight style)\n * Reference: https://github.com/JonathanSpeek/palenight-iterm2\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Palenight — the soft, purple-tinted Material dark variant. */\nexport const palenight: ColorPalette = {\n name: \"palenight\",\n dark: true,\n black: \"#1c1f2b\", // line_highlight (deepest)\n red: \"#f07178\",\n green: \"#c3e88d\",\n yellow: \"#ffcb6b\",\n blue: \"#82aaff\",\n magenta: \"#c792ea\",\n cyan: \"#89ddff\", // cyan\n white: \"#676e95\", // comments\n brightBlack: \"#343b51\", // selection\n brightRed: \"#f78c6c\",\n brightGreen: brighten(\"#c3e88d\", 0.15),\n brightYellow: brighten(\"#ffcb6b\", 0.15),\n brightBlue: brighten(\"#82aaff\", 0.15),\n brightMagenta: \"#ff5370\",\n brightCyan: brighten(\"#89ddff\", 0.15),\n brightWhite: \"#a6accd\", // foreground\n foreground: \"#a6accd\", // foreground\n background: \"#292d3e\", // background\n cursorColor: \"#a6accd\", // foreground\n cursorText: \"#292d3e\", // background\n selectionBackground: \"#4e5579\", // guides/invisibles\n selectionForeground: \"#a6accd\", // foreground\n}\n","/**\n * Ayu palettes — warm, modern theme in three variants.\n * Source: https://github.com/ayu-theme/ayu-colors\n * Reference: https://github.com/Shatur/neovim-ayu\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Ayu Dark — deep dark variant with warm accents. */\nexport const ayuDark: ColorPalette = {\n name: \"ayu-dark\",\n dark: true,\n black: \"#05070A\",\n red: \"#D95757\",\n green: \"#AAD94C\",\n yellow: \"#E6B450\",\n blue: \"#59C2FF\",\n magenta: \"#D2A6FF\",\n cyan: \"#95E6CB\",\n white: \"#636A72\",\n brightBlack: \"#11151C\",\n brightRed: \"#F29668\",\n brightGreen: brighten(\"#AAD94C\", 0.15),\n brightYellow: brighten(\"#E6B450\", 0.15),\n brightBlue: brighten(\"#59C2FF\", 0.15),\n brightMagenta: \"#F07178\",\n brightCyan: brighten(\"#95E6CB\", 0.15),\n brightWhite: \"#BFBDB6\",\n foreground: \"#BFBDB6\",\n background: \"#0B0E14\",\n cursorColor: \"#BFBDB6\",\n cursorText: \"#0B0E14\",\n selectionBackground: \"#565B66\",\n selectionForeground: \"#BFBDB6\",\n}\n\n/** Ayu Mirage — balanced dark variant with softer contrast. */\nexport const ayuMirage: ColorPalette = {\n name: \"ayu-mirage\",\n dark: true,\n black: \"#101521\",\n red: \"#FF6666\",\n green: \"#D5FF80\",\n yellow: \"#FFCC66\",\n blue: \"#73D0FF\",\n magenta: \"#DFBFFF\",\n cyan: \"#95E6CB\",\n white: \"#6C7A8B\",\n brightBlack: \"#171B24\",\n brightRed: \"#F29E74\",\n brightGreen: brighten(\"#D5FF80\", 0.15),\n brightYellow: brighten(\"#FFCC66\", 0.15),\n brightBlue: brighten(\"#73D0FF\", 0.15),\n brightMagenta: \"#F28779\",\n brightCyan: brighten(\"#95E6CB\", 0.15),\n brightWhite: \"#CCCAC2\",\n foreground: \"#CCCAC2\",\n background: \"#1F2430\",\n cursorColor: \"#CCCAC2\",\n cursorText: \"#1F2430\",\n selectionBackground: \"#707A8C\",\n selectionForeground: \"#CCCAC2\",\n}\n\n/** Ayu Light — clean light variant. */\nexport const ayuLight: ColorPalette = {\n name: \"ayu-light\",\n dark: false,\n black: \"#E7EAED\",\n red: \"#E65050\",\n green: \"#86B300\",\n yellow: \"#FFAA33\",\n blue: \"#399EE6\",\n magenta: \"#A37ACC\",\n cyan: \"#4CBF99\",\n white: \"#ABADB1\",\n brightBlack: \"#F3F4F5\",\n brightRed: \"#ED9366\",\n brightGreen: brighten(\"#86B300\", 0.15),\n brightYellow: brighten(\"#FFAA33\", 0.15),\n brightBlue: brighten(\"#399EE6\", 0.15),\n brightMagenta: \"#F07171\",\n brightCyan: brighten(\"#4CBF99\", 0.15),\n brightWhite: \"#5C6166\",\n foreground: \"#5C6166\",\n background: \"#F8F9FA\",\n cursorColor: \"#5C6166\",\n cursorText: \"#F8F9FA\",\n selectionBackground: \"#8A9199\",\n selectionForeground: \"#5C6166\",\n}\n","/**\n * Nightfox palettes — rich, vibrant themes for Neovim.\n * Source: https://github.com/EdenEast/nightfox.nvim\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Nightfox — dark blue-toned variant. */\nexport const nightfox: ColorPalette = {\n name: \"nightfox\",\n dark: true,\n black: \"#131A24\",\n red: \"#C94F6D\",\n green: \"#81B29A\",\n yellow: \"#DBC074\",\n blue: \"#719CD6\",\n magenta: \"#9D79D6\",\n cyan: \"#63CDCF\",\n white: \"#71839B\",\n brightBlack: \"#212E3F\",\n brightRed: \"#F4A261\",\n brightGreen: brighten(\"#81B29A\", 0.15),\n brightYellow: brighten(\"#DBC074\", 0.15),\n brightBlue: brighten(\"#719CD6\", 0.15),\n brightMagenta: \"#D67AD2\",\n brightCyan: brighten(\"#63CDCF\", 0.15),\n brightWhite: \"#CDCECF\",\n foreground: \"#CDCECF\",\n background: \"#192330\",\n cursorColor: \"#CDCECF\",\n cursorText: \"#192330\",\n selectionBackground: \"#39506D\",\n selectionForeground: \"#CDCECF\",\n}\n\n/** Dawnfox — warm light variant inspired by Rose Pine Dawn. */\nexport const dawnfox: ColorPalette = {\n name: \"dawnfox\",\n dark: false,\n black: \"#EBE5DF\",\n red: \"#B4637A\",\n green: \"#618774\",\n yellow: \"#EA9D34\",\n blue: \"#286983\",\n magenta: \"#907AA9\",\n cyan: \"#56949F\",\n white: \"#A8A3B3\",\n brightBlack: \"#EBE0DF\",\n brightRed: \"#D7827E\",\n brightGreen: brighten(\"#618774\", 0.15),\n brightYellow: brighten(\"#EA9D34\", 0.15),\n brightBlue: brighten(\"#286983\", 0.15),\n brightMagenta: \"#D685AF\",\n brightCyan: brighten(\"#56949F\", 0.15),\n brightWhite: \"#575279\",\n foreground: \"#575279\",\n background: \"#FAF4ED\",\n cursorColor: \"#575279\",\n cursorText: \"#FAF4ED\",\n selectionBackground: \"#BDBFC9\",\n selectionForeground: \"#575279\",\n}\n","/**\n * Horizon palette — beautifully warm theme.\n * Source: https://github.com/jolaleye/horizon-theme-vscode\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Horizon — warm dark variant with vivid accents. */\nexport const horizon: ColorPalette = {\n name: \"horizon\",\n dark: true,\n black: \"#16161C\",\n red: \"#E95678\",\n green: \"#29D398\",\n yellow: \"#FAC29A\",\n blue: \"#26BBD9\",\n magenta: \"#B877DB\",\n cyan: \"#59E1E3\",\n white: \"#6C6F93\",\n brightBlack: \"#232530\",\n brightRed: \"#FAB795\",\n brightGreen: brighten(\"#29D398\", 0.15),\n brightYellow: brighten(\"#FAC29A\", 0.15),\n brightBlue: brighten(\"#26BBD9\", 0.15),\n brightMagenta: \"#EE64AC\",\n brightCyan: brighten(\"#59E1E3\", 0.15),\n brightWhite: \"#D5D8DA\",\n foreground: \"#D5D8DA\",\n background: \"#1C1E26\",\n cursorColor: \"#D5D8DA\",\n cursorText: \"#1C1E26\",\n selectionBackground: \"#2E303E\",\n selectionForeground: \"#D5D8DA\",\n}\n","/**\n * Moonfly palette — dark charcoal theme with pastel accents.\n * Source: https://github.com/bluz71/vim-moonfly-colors\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Moonfly — dark charcoal theme. */\nexport const moonfly: ColorPalette = {\n name: \"moonfly\",\n dark: true,\n black: \"#121212\",\n red: \"#FF5D5D\",\n green: \"#8CC85F\",\n yellow: \"#E3C78A\",\n blue: \"#80A0FF\",\n magenta: \"#AE81FF\",\n cyan: \"#79DAC8\",\n white: \"#808080\",\n brightBlack: \"#1C1C1C\",\n brightRed: \"#DE935F\",\n brightGreen: brighten(\"#8CC85F\", 0.15),\n brightYellow: brighten(\"#E3C78A\", 0.15),\n brightBlue: brighten(\"#80A0FF\", 0.15),\n brightMagenta: \"#FF5189\",\n brightCyan: brighten(\"#79DAC8\", 0.15),\n brightWhite: \"#C6C6C6\",\n foreground: \"#C6C6C6\",\n background: \"#080808\",\n cursorColor: \"#C6C6C6\",\n cursorText: \"#080808\",\n selectionBackground: \"#323437\",\n selectionForeground: \"#C6C6C6\",\n}\n","/**\n * Nightfly palette — dark midnight-blue theme with neon accents.\n * Source: https://github.com/bluz71/vim-nightfly-colors\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Nightfly — midnight-blue dark theme. */\nexport const nightfly: ColorPalette = {\n name: \"nightfly\",\n dark: true,\n black: \"#081E2F\",\n red: \"#FC514E\",\n green: \"#A1CD5E\",\n yellow: \"#E3D18A\",\n blue: \"#82AAFF\",\n magenta: \"#C792EA\",\n cyan: \"#7FDBCA\",\n white: \"#7C8F8F\",\n brightBlack: \"#0E293F\",\n brightRed: \"#F78C6C\",\n brightGreen: brighten(\"#A1CD5E\", 0.15),\n brightYellow: brighten(\"#E3D18A\", 0.15),\n brightBlue: brighten(\"#82AAFF\", 0.15),\n brightMagenta: \"#FF5874\",\n brightCyan: brighten(\"#7FDBCA\", 0.15),\n brightWhite: \"#C3CCDC\",\n foreground: \"#C3CCDC\",\n background: \"#011627\",\n cursorColor: \"#C3CCDC\",\n cursorText: \"#011627\",\n selectionBackground: \"#2C3043\",\n selectionForeground: \"#C3CCDC\",\n}\n","/**\n * Oxocarbon palettes — IBM Carbon Design-inspired theme.\n * Source: https://github.com/nyoom-engineering/oxocarbon.nvim\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Oxocarbon Dark — IBM Carbon-inspired dark variant. */\nexport const oxocarbonDark: ColorPalette = {\n name: \"oxocarbon-dark\",\n dark: true,\n black: \"#131313\",\n red: \"#EE5396\",\n green: \"#42BE65\",\n yellow: \"#82CFFF\",\n blue: \"#78A9FF\",\n magenta: \"#BE95FF\",\n cyan: \"#08BDBA\",\n white: \"#5C5C5C\",\n brightBlack: \"#2A2A2A\",\n brightRed: \"#FF7EB6\",\n brightGreen: brighten(\"#42BE65\", 0.15),\n brightYellow: brighten(\"#82CFFF\", 0.15),\n brightBlue: brighten(\"#78A9FF\", 0.15),\n brightMagenta: \"#FF7EB6\",\n brightCyan: brighten(\"#08BDBA\", 0.15),\n brightWhite: \"#F3F3F3\",\n foreground: \"#F3F3F3\",\n background: \"#161616\",\n cursorColor: \"#F3F3F3\",\n cursorText: \"#161616\",\n selectionBackground: \"#404040\",\n selectionForeground: \"#F3F3F3\",\n}\n\n/** Oxocarbon Light — IBM Carbon-inspired light variant. */\nexport const oxocarbonLight: ColorPalette = {\n name: \"oxocarbon-light\",\n dark: false,\n black: \"#F3F3F3\",\n red: \"#EE5396\",\n green: \"#42BE65\",\n yellow: \"#FFAB91\",\n blue: \"#0F62FE\",\n magenta: \"#BE95FF\",\n cyan: \"#08BDBA\",\n white: \"#90A4AE\",\n brightBlack: \"#D5D5D5\",\n brightRed: \"#FF6F00\",\n brightGreen: brighten(\"#42BE65\", 0.15),\n brightYellow: brighten(\"#FFAB91\", 0.15),\n brightBlue: brighten(\"#0F62FE\", 0.15),\n brightMagenta: \"#FF7EB6\",\n brightCyan: brighten(\"#08BDBA\", 0.15),\n brightWhite: \"#37474F\",\n foreground: \"#37474F\",\n background: \"#FFFFFF\",\n cursorColor: \"#37474F\",\n cursorText: \"#FFFFFF\",\n selectionBackground: \"#525252\",\n selectionForeground: \"#37474F\",\n}\n","/**\n * Sonokai palette — high-contrast vivid theme (Monokai Pro-inspired).\n * Source: https://github.com/sainnhe/sonokai (default style)\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Sonokai — vivid dark theme with Monokai-inspired accents. */\nexport const sonokai: ColorPalette = {\n name: \"sonokai\",\n dark: true,\n black: \"#181819\",\n red: \"#FC5D7C\",\n green: \"#9ED072\",\n yellow: \"#E7C664\",\n blue: \"#76CCE0\",\n magenta: \"#B39DF3\",\n cyan: \"#76CCE0\",\n white: \"#7F8490\",\n brightBlack: \"#33353F\",\n brightRed: \"#F39660\",\n brightGreen: brighten(\"#9ED072\", 0.15),\n brightYellow: brighten(\"#E7C664\", 0.15),\n brightBlue: brighten(\"#76CCE0\", 0.15),\n brightMagenta: \"#FC5D7C\",\n brightCyan: brighten(\"#76CCE0\", 0.15),\n brightWhite: \"#E2E2E3\",\n foreground: \"#E2E2E3\",\n background: \"#2C2E34\",\n cursorColor: \"#E2E2E3\",\n cursorText: \"#2C2E34\",\n selectionBackground: \"#414550\",\n selectionForeground: \"#E2E2E3\",\n}\n","/**\n * Edge palettes — clean, modern theme by sainnhe.\n * Source: https://github.com/sainnhe/edge (default style)\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Edge Dark — clean dark variant with balanced accents. */\nexport const edgeDark: ColorPalette = {\n name: \"edge-dark\",\n dark: true,\n black: \"#202023\",\n red: \"#EC7279\",\n green: \"#A0C980\",\n yellow: \"#DEB974\",\n blue: \"#6CB6EB\",\n magenta: \"#D38AEA\",\n cyan: \"#5DBBC1\",\n white: \"#758094\",\n brightBlack: \"#33353F\",\n brightRed: \"#DEB974\",\n brightGreen: brighten(\"#A0C980\", 0.15),\n brightYellow: brighten(\"#DEB974\", 0.15),\n brightBlue: brighten(\"#6CB6EB\", 0.15),\n brightMagenta: \"#EC7279\",\n brightCyan: brighten(\"#5DBBC1\", 0.15),\n brightWhite: \"#C5CDD9\",\n foreground: \"#C5CDD9\",\n background: \"#2C2E34\",\n cursorColor: \"#C5CDD9\",\n cursorText: \"#2C2E34\",\n selectionBackground: \"#414550\",\n selectionForeground: \"#C5CDD9\",\n}\n\n/** Edge Light — clean, readable light variant. */\nexport const edgeLight: ColorPalette = {\n name: \"edge-light\",\n dark: false,\n black: \"#DDE2E7\",\n red: \"#D05858\",\n green: \"#608E32\",\n yellow: \"#BE7E05\",\n blue: \"#5079BE\",\n magenta: \"#B05CCC\",\n cyan: \"#3A8B84\",\n white: \"#8790A0\",\n brightBlack: \"#EEF1F4\",\n brightRed: \"#BE7E05\",\n brightGreen: brighten(\"#608E32\", 0.15),\n brightYellow: brighten(\"#BE7E05\", 0.15),\n brightBlue: brighten(\"#5079BE\", 0.15),\n brightMagenta: \"#D05858\",\n brightCyan: brighten(\"#3A8B84\", 0.15),\n brightWhite: \"#4B505B\",\n foreground: \"#4B505B\",\n background: \"#FAFAFA\",\n cursorColor: \"#4B505B\",\n cursorText: \"#FAFAFA\",\n selectionBackground: \"#DDE2E7\",\n selectionForeground: \"#4B505B\",\n}\n","/**\n * Modus palettes — GNU Emacs themes conforming to WCAG AAA contrast.\n * Source: https://github.com/protesilaos/modus-themes\n */\n\nimport type { ColorPalette } from \"../types\"\nimport { brighten } from \"../color\"\n\n/** Modus Vivendi — elegant dark theme with maximum legibility. */\nexport const modusVivendi: ColorPalette = {\n name: \"modus-vivendi\",\n dark: true,\n black: \"#000000\",\n red: \"#FF5F59\",\n green: \"#44BC44\",\n yellow: \"#D0BC00\",\n blue: \"#2FAFFF\",\n magenta: \"#B6A0FF\",\n cyan: \"#00D3D0\",\n white: \"#989898\",\n brightBlack: \"#1E1E1E\",\n brightRed: \"#FEC43F\",\n brightGreen: brighten(\"#44BC44\", 0.15),\n brightYellow: brighten(\"#D0BC00\", 0.15),\n brightBlue: brighten(\"#2FAFFF\", 0.15),\n brightMagenta: \"#FEACD0\",\n brightCyan: brighten(\"#00D3D0\", 0.15),\n brightWhite: \"#FFFFFF\",\n foreground: \"#FFFFFF\",\n background: \"#000000\",\n cursorColor: \"#FFFFFF\",\n cursorText: \"#000000\",\n selectionBackground: \"#535353\",\n selectionForeground: \"#FFFFFF\",\n}\n\n/** Modus Operandi — elegant light theme with maximum legibility. */\nexport const modusOperandi: ColorPalette = {\n name: \"modus-operandi\",\n dark: false,\n black: \"#E0E0E0\",\n red: \"#A60000\",\n green: \"#006800\",\n yellow: \"#6F5500\",\n blue: \"#0031A9\",\n magenta: \"#531AB6\",\n cyan: \"#005E8B\",\n white: \"#595959\",\n brightBlack: \"#F2F2F2\",\n brightRed: \"#884900\",\n brightGreen: brighten(\"#006800\", 0.15),\n brightYellow: brighten(\"#6F5500\", 0.15),\n brightBlue: brighten(\"#0031A9\", 0.15),\n brightMagenta: \"#721045\",\n brightCyan: brighten(\"#005E8B\", 0.15),\n brightWhite: \"#000000\",\n foreground: \"#000000\",\n background: \"#FFFFFF\",\n cursorColor: \"#000000\",\n cursorText: \"#FFFFFF\",\n selectionBackground: \"#9F9F9F\",\n selectionForeground: \"#000000\",\n}\n","/**\n * GitHub palettes — GitHub's terminal color schemes.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** GitHub Dark — GitHub's dark terminal theme. */\nexport const githubDark: ColorPalette = {\n name: \"github-dark\",\n dark: true,\n black: \"#000000\",\n red: \"#f78166\",\n green: \"#56d364\",\n yellow: \"#e3b341\",\n blue: \"#6ca4f8\",\n magenta: \"#db61a2\",\n cyan: \"#2b7489\",\n white: \"#ffffff\",\n brightBlack: \"#4d4d4d\",\n brightRed: \"#f78166\",\n brightGreen: \"#56d364\",\n brightYellow: \"#e3b341\",\n brightBlue: \"#6ca4f8\",\n brightMagenta: \"#db61a2\",\n brightCyan: \"#2b7489\",\n brightWhite: \"#ffffff\",\n foreground: \"#8b949e\",\n background: \"#101216\",\n cursorColor: \"#c9d1d9\",\n cursorText: \"#101216\",\n selectionBackground: \"#3b5070\",\n selectionForeground: \"#c9d1d9\",\n}\n\n/** GitHub Light — GitHub's light terminal theme. */\nexport const githubLight: ColorPalette = {\n name: \"github-light\",\n dark: false,\n black: \"#3e3e3e\",\n red: \"#970b16\",\n green: \"#07962a\",\n yellow: \"#f8eec7\",\n blue: \"#003e8a\",\n magenta: \"#e94691\",\n cyan: \"#89d1ec\",\n white: \"#ffffff\",\n brightBlack: \"#666666\",\n brightRed: \"#de0000\",\n brightGreen: \"#87d5a2\",\n brightYellow: \"#f1d007\",\n brightBlue: \"#2e6cba\",\n brightMagenta: \"#ffa29f\",\n brightCyan: \"#1cfafe\",\n brightWhite: \"#ffffff\",\n foreground: \"#3e3e3e\",\n background: \"#f4f4f4\",\n cursorColor: \"#3f3f3f\",\n cursorText: \"#f4f4f4\",\n selectionBackground: \"#a9c1e2\",\n selectionForeground: \"#3e3e3e\",\n}\n","/**\n * Cobalt2 palette — Wes Bos's vibrant dark theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Cobalt2 — vibrant dark blue theme by Wes Bos. */\nexport const cobalt2: ColorPalette = {\n name: \"cobalt2\",\n dark: true,\n black: \"#000000\",\n red: \"#ff0000\",\n green: \"#38de21\",\n yellow: \"#ffe50a\",\n blue: \"#1460d2\",\n magenta: \"#ff005d\",\n cyan: \"#00bbbb\",\n white: \"#bbbbbb\",\n brightBlack: \"#555555\",\n brightRed: \"#f40e17\",\n brightGreen: \"#3bd01d\",\n brightYellow: \"#edc809\",\n brightBlue: \"#5555ff\",\n brightMagenta: \"#ff55ff\",\n brightCyan: \"#6ae3fa\",\n brightWhite: \"#ffffff\",\n foreground: \"#ffffff\",\n background: \"#132738\",\n cursorColor: \"#f0cc09\",\n cursorText: \"#132738\",\n selectionBackground: \"#18354f\",\n selectionForeground: \"#ffffff\",\n}\n","/**\n * Synthwave palettes — retro neon themes.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Synthwave — classic retro terminal neon. */\nexport const synthwave: ColorPalette = {\n name: \"synthwave\",\n dark: true,\n black: \"#000000\",\n red: \"#f6188f\",\n green: \"#1ebb2b\",\n yellow: \"#fdf834\",\n blue: \"#2186ec\",\n magenta: \"#f85a21\",\n cyan: \"#12c3e2\",\n white: \"#ffffff\",\n brightBlack: \"#000000\",\n brightRed: \"#f841a0\",\n brightGreen: \"#25c141\",\n brightYellow: \"#fdf454\",\n brightBlue: \"#2f9ded\",\n brightMagenta: \"#f97137\",\n brightCyan: \"#19cde6\",\n brightWhite: \"#ffffff\",\n foreground: \"#dad9c7\",\n background: \"#000000\",\n cursorColor: \"#19cde6\",\n cursorText: \"#000000\",\n selectionBackground: \"#19cde6\",\n selectionForeground: \"#000000\",\n}\n\n/** Synthwave '84 — the neon VS Code theme. */\nexport const synthwave84: ColorPalette = {\n name: \"synthwave-84\",\n dark: true,\n black: \"#fefefe\",\n red: \"#f97e72\",\n green: \"#72f1b8\",\n yellow: \"#fede5d\",\n blue: \"#6d77b3\",\n magenta: \"#c792ea\",\n cyan: \"#f772e0\",\n white: \"#fefefe\",\n brightBlack: \"#fefefe\",\n brightRed: \"#f88414\",\n brightGreen: \"#72f1b8\",\n brightYellow: \"#fff951\",\n brightBlue: \"#36f9f6\",\n brightMagenta: \"#e1acff\",\n brightCyan: \"#f92aad\",\n brightWhite: \"#fefefe\",\n foreground: \"#f0eff1\",\n background: \"#2a2139\",\n cursorColor: \"#72f1b8\",\n cursorText: \"#2a2139\",\n selectionBackground: \"#181521\",\n selectionForeground: \"#f0eff1\",\n}\n","/**\n * Tomorrow Night palettes — Chris Kempson's classic theme family.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Tomorrow Night — the original dark variant. */\nexport const tomorrowNight: ColorPalette = {\n name: \"tomorrow-night\",\n dark: true,\n black: \"#282a2e\",\n red: \"#cc6666\",\n green: \"#b5bd68\",\n yellow: \"#f0c674\",\n blue: \"#81a2be\",\n magenta: \"#b294bb\",\n cyan: \"#8abeb7\",\n white: \"#e0e0e0\",\n brightBlack: \"#373b41\",\n brightRed: \"#cc6666\",\n brightGreen: \"#b5bd68\",\n brightYellow: \"#f0c674\",\n brightBlue: \"#81a2be\",\n brightMagenta: \"#b294bb\",\n brightCyan: \"#8abeb7\",\n brightWhite: \"#ffffff\",\n foreground: \"#c5c8c6\",\n background: \"#1d1f21\",\n cursorColor: \"#c5c8c6\",\n cursorText: \"#1d1f21\",\n selectionBackground: \"#373b41\",\n selectionForeground: \"#c5c8c6\",\n}\n\n/** Tomorrow Night Blue — deep blue variant. */\nexport const tomorrowNightBlue: ColorPalette = {\n name: \"tomorrow-night-blue\",\n dark: true,\n black: \"#000000\",\n red: \"#ff9da4\",\n green: \"#d1f1a9\",\n yellow: \"#ffeead\",\n blue: \"#bbdaff\",\n magenta: \"#ebbbff\",\n cyan: \"#99ffff\",\n white: \"#ffffff\",\n brightBlack: \"#000000\",\n brightRed: \"#ff9da4\",\n brightGreen: \"#d1f1a9\",\n brightYellow: \"#ffeead\",\n brightBlue: \"#bbdaff\",\n brightMagenta: \"#ebbbff\",\n brightCyan: \"#99ffff\",\n brightWhite: \"#ffffff\",\n foreground: \"#ffffff\",\n background: \"#002451\",\n cursorColor: \"#ffffff\",\n cursorText: \"#002451\",\n selectionBackground: \"#003f8e\",\n selectionForeground: \"#ffffff\",\n}\n\n/** Tomorrow Night Eighties — muted retro variant. */\nexport const tomorrowNightEighties: ColorPalette = {\n name: \"tomorrow-night-eighties\",\n dark: true,\n black: \"#393939\",\n red: \"#f2777a\",\n green: \"#99cc99\",\n yellow: \"#ffcc66\",\n blue: \"#6699cc\",\n magenta: \"#cc99cc\",\n cyan: \"#66cccc\",\n white: \"#e0e0e0\",\n brightBlack: \"#515151\",\n brightRed: \"#f2777a\",\n brightGreen: \"#99cc99\",\n brightYellow: \"#ffcc66\",\n brightBlue: \"#6699cc\",\n brightMagenta: \"#cc99cc\",\n brightCyan: \"#66cccc\",\n brightWhite: \"#ffffff\",\n foreground: \"#cccccc\",\n background: \"#2d2d2d\",\n cursorColor: \"#cccccc\",\n cursorText: \"#2d2d2d\",\n selectionBackground: \"#515151\",\n selectionForeground: \"#cccccc\",\n}\n","/**\n * Zenburn palette — the classic low-contrast vim theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Zenburn — Jani Nurminen's low-contrast dark theme. */\nexport const zenburn: ColorPalette = {\n name: \"zenburn\",\n dark: true,\n black: \"#4d4d4d\",\n red: \"#705050\",\n green: \"#60b48a\",\n yellow: \"#f0dfaf\",\n blue: \"#506070\",\n magenta: \"#dc8cc3\",\n cyan: \"#8cd0d3\",\n white: \"#dcdccc\",\n brightBlack: \"#709080\",\n brightRed: \"#dca3a3\",\n brightGreen: \"#c3bf9f\",\n brightYellow: \"#e0cf9f\",\n brightBlue: \"#94bff3\",\n brightMagenta: \"#ec93d3\",\n brightCyan: \"#93e0e3\",\n brightWhite: \"#ffffff\",\n foreground: \"#dcdccc\",\n background: \"#3f3f3f\",\n cursorColor: \"#73635a\",\n cursorText: \"#3f3f3f\",\n selectionBackground: \"#21322f\",\n selectionForeground: \"#dcdccc\",\n}\n","/**\n * Ubuntu palette — the default Ubuntu terminal theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Ubuntu — the iconic purple terminal from Ubuntu Linux. */\nexport const ubuntu: ColorPalette = {\n name: \"ubuntu\",\n dark: true,\n black: \"#2e3436\",\n red: \"#cc0000\",\n green: \"#4e9a06\",\n yellow: \"#c4a000\",\n blue: \"#3465a4\",\n magenta: \"#75507b\",\n cyan: \"#06989a\",\n white: \"#d3d7cf\",\n brightBlack: \"#555753\",\n brightRed: \"#ef2929\",\n brightGreen: \"#8ae234\",\n brightYellow: \"#fce94f\",\n brightBlue: \"#729fcf\",\n brightMagenta: \"#ad7fa8\",\n brightCyan: \"#34e2e2\",\n brightWhite: \"#eeeeec\",\n foreground: \"#eeeeec\",\n background: \"#300a24\",\n cursorColor: \"#bbbbbb\",\n cursorText: \"#300a24\",\n selectionBackground: \"#b5d5ff\",\n selectionForeground: \"#300a24\",\n}\n","/**\n * Tango palettes — GNOME terminal defaults based on the Tango icon palette.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Tango Dark — GNOME terminal's classic dark Tango theme. */\nexport const tangoDark: ColorPalette = {\n name: \"tango-dark\",\n dark: true,\n black: \"#000000\",\n red: \"#cc0000\",\n green: \"#4e9a06\",\n yellow: \"#c4a000\",\n blue: \"#3465a4\",\n magenta: \"#75507b\",\n cyan: \"#06989a\",\n white: \"#d3d7cf\",\n brightBlack: \"#555753\",\n brightRed: \"#ef2929\",\n brightGreen: \"#8ae234\",\n brightYellow: \"#fce94f\",\n brightBlue: \"#729fcf\",\n brightMagenta: \"#ad7fa8\",\n brightCyan: \"#34e2e2\",\n brightWhite: \"#eeeeec\",\n foreground: \"#ffffff\",\n background: \"#000000\",\n cursorColor: \"#ffffff\",\n cursorText: \"#000000\",\n selectionBackground: \"#b5d5ff\",\n selectionForeground: \"#000000\",\n}\n\n/** Tango Light — GNOME terminal's light Tango variant. */\nexport const tangoLight: ColorPalette = {\n name: \"tango-light\",\n dark: false,\n black: \"#000000\",\n red: \"#cc0000\",\n green: \"#4e9a06\",\n yellow: \"#c4a000\",\n blue: \"#3465a4\",\n magenta: \"#75507b\",\n cyan: \"#06989a\",\n white: \"#d3d7cf\",\n brightBlack: \"#555753\",\n brightRed: \"#ef2929\",\n brightGreen: \"#8ae234\",\n brightYellow: \"#fce94f\",\n brightBlue: \"#729fcf\",\n brightMagenta: \"#ad7fa8\",\n brightCyan: \"#34e2e2\",\n brightWhite: \"#eeeeec\",\n foreground: \"#000000\",\n background: \"#ffffff\",\n cursorColor: \"#000000\",\n cursorText: \"#ffffff\",\n selectionBackground: \"#b5d5ff\",\n selectionForeground: \"#000000\",\n}\n","/**\n * Cyberpunk palette — neon-drenched futuristic theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Cyberpunk — neon colors on deep purple. */\nexport const cyberpunk: ColorPalette = {\n name: \"cyberpunk\",\n dark: true,\n black: \"#000000\",\n red: \"#ff7092\",\n green: \"#00fbac\",\n yellow: \"#fffa6a\",\n blue: \"#00bfff\",\n magenta: \"#df95ff\",\n cyan: \"#86cbfe\",\n white: \"#ffffff\",\n brightBlack: \"#000000\",\n brightRed: \"#ff8aa4\",\n brightGreen: \"#21f6bc\",\n brightYellow: \"#fff787\",\n brightBlue: \"#1bccfd\",\n brightMagenta: \"#e6aefe\",\n brightCyan: \"#99d6fc\",\n brightWhite: \"#ffffff\",\n foreground: \"#e5e5e5\",\n background: \"#332a57\",\n cursorColor: \"#21f6bc\",\n cursorText: \"#332a57\",\n selectionBackground: \"#c1deff\",\n selectionForeground: \"#332a57\",\n}\n","/**\n * VS Code palettes — Visual Studio Code's built-in terminal themes.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** VS Code Dark+ — the default VS Code dark terminal theme. */\nexport const vscodeDark: ColorPalette = {\n name: \"vscode-dark\",\n dark: true,\n black: \"#000000\",\n red: \"#cd3131\",\n green: \"#0dbc79\",\n yellow: \"#e5e510\",\n blue: \"#2472c8\",\n magenta: \"#bc3fbc\",\n cyan: \"#11a8cd\",\n white: \"#e5e5e5\",\n brightBlack: \"#666666\",\n brightRed: \"#f14c4c\",\n brightGreen: \"#23d18b\",\n brightYellow: \"#f5f543\",\n brightBlue: \"#3b8eea\",\n brightMagenta: \"#d670d6\",\n brightCyan: \"#29b8db\",\n brightWhite: \"#e5e5e5\",\n foreground: \"#cccccc\",\n background: \"#1e1e1e\",\n cursorColor: \"#ffffff\",\n cursorText: \"#1e1e1e\",\n selectionBackground: \"#3a3d41\",\n selectionForeground: \"#cccccc\",\n}\n","/**\n * One Light palette — Atom's iconic light theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** One Light — the classic Atom editor light theme. */\nexport const oneLight: ColorPalette = {\n name: \"one-light\",\n dark: false,\n black: \"#000000\",\n red: \"#de3e35\",\n green: \"#3f953a\",\n yellow: \"#d2b67c\",\n blue: \"#2f5af3\",\n magenta: \"#950095\",\n cyan: \"#3f953a\",\n white: \"#bbbbbb\",\n brightBlack: \"#000000\",\n brightRed: \"#de3e35\",\n brightGreen: \"#3f953a\",\n brightYellow: \"#d2b67c\",\n brightBlue: \"#2f5af3\",\n brightMagenta: \"#a00095\",\n brightCyan: \"#3f953a\",\n brightWhite: \"#ffffff\",\n foreground: \"#2a2c33\",\n background: \"#f9f9f9\",\n cursorColor: \"#bbbbbb\",\n cursorText: \"#f9f9f9\",\n selectionBackground: \"#ededed\",\n selectionForeground: \"#2a2c33\",\n}\n\n/** One Half Dark — sonph's One-inspired dark theme. */\nexport const oneHalfDark: ColorPalette = {\n name: \"one-half-dark\",\n dark: true,\n black: \"#282c34\",\n red: \"#e06c75\",\n green: \"#98c379\",\n yellow: \"#e5c07b\",\n blue: \"#61afef\",\n magenta: \"#c678dd\",\n cyan: \"#56b6c2\",\n white: \"#dcdfe4\",\n brightBlack: \"#282c34\",\n brightRed: \"#e06c75\",\n brightGreen: \"#98c379\",\n brightYellow: \"#e5c07b\",\n brightBlue: \"#61afef\",\n brightMagenta: \"#c678dd\",\n brightCyan: \"#56b6c2\",\n brightWhite: \"#dcdfe4\",\n foreground: \"#dcdfe4\",\n background: \"#282c34\",\n cursorColor: \"#a3b3cc\",\n cursorText: \"#282c34\",\n selectionBackground: \"#474e5d\",\n selectionForeground: \"#dcdfe4\",\n}\n\n/** One Half Light — sonph's One-inspired light theme. */\nexport const oneHalfLight: ColorPalette = {\n name: \"one-half-light\",\n dark: false,\n black: \"#383a42\",\n red: \"#e45649\",\n green: \"#50a14f\",\n yellow: \"#c18401\",\n blue: \"#0184bc\",\n magenta: \"#a626a4\",\n cyan: \"#0997b3\",\n white: \"#fafafa\",\n brightBlack: \"#4f525e\",\n brightRed: \"#e06c75\",\n brightGreen: \"#98c379\",\n brightYellow: \"#e5c07b\",\n brightBlue: \"#61afef\",\n brightMagenta: \"#c678dd\",\n brightCyan: \"#56b6c2\",\n brightWhite: \"#ffffff\",\n foreground: \"#383a42\",\n background: \"#fafafa\",\n cursorColor: \"#bfceff\",\n cursorText: \"#fafafa\",\n selectionBackground: \"#bfceff\",\n selectionForeground: \"#383a42\",\n}\n","/**\n * Night Owl palette — Sarah Drasner's popular VS Code theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Night Owl Light — the light variant by Sarah Drasner. */\nexport const nightOwlLight: ColorPalette = {\n name: \"night-owl-light\",\n dark: false,\n black: \"#011627\",\n red: \"#d3423e\",\n green: \"#2aa298\",\n yellow: \"#daaa01\",\n blue: \"#4876d6\",\n magenta: \"#403f53\",\n cyan: \"#08916a\",\n white: \"#7a8181\",\n brightBlack: \"#7a8181\",\n brightRed: \"#f76e6e\",\n brightGreen: \"#49d0c5\",\n brightYellow: \"#dac26b\",\n brightBlue: \"#5ca7e4\",\n brightMagenta: \"#697098\",\n brightCyan: \"#00c990\",\n brightWhite: \"#989fb1\",\n foreground: \"#403f53\",\n background: \"#ffffff\",\n cursorColor: \"#403f53\",\n cursorText: \"#ffffff\",\n selectionBackground: \"#f2f2f2\",\n selectionForeground: \"#403f53\",\n}\n","/**\n * Shades of Purple palette — Ahmad Awais's vibrant purple theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Shades of Purple — vivid purple-based dark theme. */\nexport const shadesOfPurple: ColorPalette = {\n name: \"shades-of-purple\",\n dark: true,\n black: \"#000000\",\n red: \"#d90429\",\n green: \"#3ad900\",\n yellow: \"#ffe700\",\n blue: \"#6943ff\",\n magenta: \"#ff2c70\",\n cyan: \"#00c5c7\",\n white: \"#c7c7c7\",\n brightBlack: \"#686868\",\n brightRed: \"#f92a1c\",\n brightGreen: \"#43d426\",\n brightYellow: \"#f1d000\",\n brightBlue: \"#6871ff\",\n brightMagenta: \"#ff77ff\",\n brightCyan: \"#79e8fb\",\n brightWhite: \"#ffffff\",\n foreground: \"#ffffff\",\n background: \"#1e1d40\",\n cursorColor: \"#fad000\",\n cursorText: \"#1e1d40\",\n selectionBackground: \"#b362ff\",\n selectionForeground: \"#ffffff\",\n}\n","/**\n * Homebrew palette — classic green-on-black terminal.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Homebrew — the classic green phosphor terminal look. */\nexport const homebrew: ColorPalette = {\n name: \"homebrew\",\n dark: true,\n black: \"#000000\",\n red: \"#990000\",\n green: \"#00a600\",\n yellow: \"#999900\",\n blue: \"#0000b2\",\n magenta: \"#b200b2\",\n cyan: \"#00a6b2\",\n white: \"#bfbfbf\",\n brightBlack: \"#666666\",\n brightRed: \"#e50000\",\n brightGreen: \"#00d900\",\n brightYellow: \"#e5e500\",\n brightBlue: \"#0000ff\",\n brightMagenta: \"#e500e5\",\n brightCyan: \"#00e5e5\",\n brightWhite: \"#e5e5e5\",\n foreground: \"#00ff00\",\n background: \"#000000\",\n cursorColor: \"#23ff18\",\n cursorText: \"#000000\",\n selectionBackground: \"#083905\",\n selectionForeground: \"#00ff00\",\n}\n","/**\n * Neon palette — high-saturation neon glow theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Neon — electric high-contrast neon colors. */\nexport const neon: ColorPalette = {\n name: \"neon\",\n dark: true,\n black: \"#000000\",\n red: \"#ff3045\",\n green: \"#5ffa74\",\n yellow: \"#fffc7e\",\n blue: \"#0208cb\",\n magenta: \"#f924e7\",\n cyan: \"#00fffc\",\n white: \"#c7c7c7\",\n brightBlack: \"#686868\",\n brightRed: \"#ff5a5a\",\n brightGreen: \"#75ff88\",\n brightYellow: \"#fffd96\",\n brightBlue: \"#3c40cb\",\n brightMagenta: \"#f15be5\",\n brightCyan: \"#88fffe\",\n brightWhite: \"#ffffff\",\n foreground: \"#00fffc\",\n background: \"#14161a\",\n cursorColor: \"#c7c7c7\",\n cursorText: \"#14161a\",\n selectionBackground: \"#0013ff\",\n selectionForeground: \"#ffffff\",\n}\n","/**\n * Challenger Deep palette — a dark, space-inspired theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Challenger Deep — dreamy purple-blue dark theme. */\nexport const challengerDeep: ColorPalette = {\n name: \"challenger-deep\",\n dark: true,\n black: \"#141228\",\n red: \"#ff5458\",\n green: \"#62d196\",\n yellow: \"#ffb378\",\n blue: \"#65b2ff\",\n magenta: \"#906cff\",\n cyan: \"#63f2f1\",\n white: \"#a6b3cc\",\n brightBlack: \"#565575\",\n brightRed: \"#ff8080\",\n brightGreen: \"#95ffa4\",\n brightYellow: \"#ffe9aa\",\n brightBlue: \"#91ddff\",\n brightMagenta: \"#c991e1\",\n brightCyan: \"#aaffe4\",\n brightWhite: \"#cbe3e7\",\n foreground: \"#cbe1e7\",\n background: \"#1e1c31\",\n cursorColor: \"#fbfcfc\",\n cursorText: \"#1e1c31\",\n selectionBackground: \"#cbe1e7\",\n selectionForeground: \"#1e1c31\",\n}\n","/**\n * Doom One palette — Emacs Doom's default dark theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Doom One — Henrik Lissner's Emacs Doom default theme. */\nexport const doomOne: ColorPalette = {\n name: \"doom-one\",\n dark: true,\n black: \"#000000\",\n red: \"#ff6c6b\",\n green: \"#98be65\",\n yellow: \"#ecbe7b\",\n blue: \"#a9a1e1\",\n magenta: \"#c678dd\",\n cyan: \"#51afef\",\n white: \"#bbc2cf\",\n brightBlack: \"#000000\",\n brightRed: \"#ff6655\",\n brightGreen: \"#99bb66\",\n brightYellow: \"#ecbe7b\",\n brightBlue: \"#a9a1e1\",\n brightMagenta: \"#c678dd\",\n brightCyan: \"#51afef\",\n brightWhite: \"#bfbfbf\",\n foreground: \"#bbc2cf\",\n background: \"#282c34\",\n cursorColor: \"#51afef\",\n cursorText: \"#282c34\",\n selectionBackground: \"#42444b\",\n selectionForeground: \"#bbc2cf\",\n}\n","/**\n * Mariana palette — Sublime Text's default dark theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Mariana — Sublime Text's oceanic dark theme. */\nexport const mariana: ColorPalette = {\n name: \"mariana\",\n dark: true,\n black: \"#000000\",\n red: \"#ec5f66\",\n green: \"#99c794\",\n yellow: \"#f9ae58\",\n blue: \"#6699cc\",\n magenta: \"#c695c6\",\n cyan: \"#5fb4b4\",\n white: \"#f7f7f7\",\n brightBlack: \"#333333\",\n brightRed: \"#f97b58\",\n brightGreen: \"#acd1a8\",\n brightYellow: \"#fac761\",\n brightBlue: \"#85add6\",\n brightMagenta: \"#d8b6d8\",\n brightCyan: \"#82c4c4\",\n brightWhite: \"#ffffff\",\n foreground: \"#d8dee9\",\n background: \"#343d46\",\n cursorColor: \"#fcbb6a\",\n cursorText: \"#343d46\",\n selectionBackground: \"#4e5a65\",\n selectionForeground: \"#d8dee9\",\n}\n","/**\n * Darcula palette — JetBrains' iconic dark theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Darcula — the JetBrains IDE dark theme. */\nexport const darcula: ColorPalette = {\n name: \"darcula\",\n dark: true,\n black: \"#000000\",\n red: \"#fa5355\",\n green: \"#126e00\",\n yellow: \"#c2c300\",\n blue: \"#4581eb\",\n magenta: \"#fa54ff\",\n cyan: \"#33c2c1\",\n white: \"#adadad\",\n brightBlack: \"#555555\",\n brightRed: \"#fb7172\",\n brightGreen: \"#67ff4f\",\n brightYellow: \"#ffff00\",\n brightBlue: \"#6d9df1\",\n brightMagenta: \"#fb82ff\",\n brightCyan: \"#60d3d1\",\n brightWhite: \"#eeeeee\",\n foreground: \"#adadad\",\n background: \"#202020\",\n cursorColor: \"#ffffff\",\n cursorText: \"#202020\",\n selectionBackground: \"#1a3272\",\n selectionForeground: \"#adadad\",\n}\n","/**\n * Espresso palette — the warm coffee-inspired dark theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Espresso — warm, balanced dark theme. */\nexport const espresso: ColorPalette = {\n name: \"espresso\",\n dark: true,\n black: \"#353535\",\n red: \"#d25252\",\n green: \"#a5c261\",\n yellow: \"#ffc66d\",\n blue: \"#6c99bb\",\n magenta: \"#d197d9\",\n cyan: \"#bed6ff\",\n white: \"#eeeeec\",\n brightBlack: \"#535353\",\n brightRed: \"#f00c0c\",\n brightGreen: \"#c2e075\",\n brightYellow: \"#e1e48b\",\n brightBlue: \"#8ab7d9\",\n brightMagenta: \"#efb5f7\",\n brightCyan: \"#dcf4ff\",\n brightWhite: \"#ffffff\",\n foreground: \"#ffffff\",\n background: \"#323232\",\n cursorColor: \"#d6d6d6\",\n cursorText: \"#323232\",\n selectionBackground: \"#5b5b5b\",\n selectionForeground: \"#ffffff\",\n}\n","/**\n * Iceberg palettes — cocopon's blue-tinged theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Iceberg Dark — cool blue dark theme. */\nexport const icebergDark: ColorPalette = {\n name: \"iceberg-dark\",\n dark: true,\n black: \"#1e2132\",\n red: \"#e27878\",\n green: \"#b4be82\",\n yellow: \"#e2a478\",\n blue: \"#84a0c6\",\n magenta: \"#a093c7\",\n cyan: \"#89b8c2\",\n white: \"#c6c8d1\",\n brightBlack: \"#6b7089\",\n brightRed: \"#e98989\",\n brightGreen: \"#c0ca8e\",\n brightYellow: \"#e9b189\",\n brightBlue: \"#91acd1\",\n brightMagenta: \"#ada0d3\",\n brightCyan: \"#95c4ce\",\n brightWhite: \"#d2d4de\",\n foreground: \"#c6c8d1\",\n background: \"#161821\",\n cursorColor: \"#c6c8d1\",\n cursorText: \"#161821\",\n selectionBackground: \"#c6c8d1\",\n selectionForeground: \"#161821\",\n}\n\n/** Iceberg Light — cool blue light theme. */\nexport const icebergLight: ColorPalette = {\n name: \"iceberg-light\",\n dark: false,\n black: \"#dcdfe7\",\n red: \"#cc517a\",\n green: \"#668e3d\",\n yellow: \"#c57339\",\n blue: \"#2d539e\",\n magenta: \"#7759b4\",\n cyan: \"#3f83a6\",\n white: \"#33374c\",\n brightBlack: \"#8389a3\",\n brightRed: \"#cc3768\",\n brightGreen: \"#598030\",\n brightYellow: \"#b6662d\",\n brightBlue: \"#22478e\",\n brightMagenta: \"#6845ad\",\n brightCyan: \"#327698\",\n brightWhite: \"#262a3f\",\n foreground: \"#33374c\",\n background: \"#e8e9ec\",\n cursorColor: \"#33374c\",\n cursorText: \"#e8e9ec\",\n selectionBackground: \"#33374c\",\n selectionForeground: \"#e8e9ec\",\n}\n","/**\n * Serendipity palettes — Michael Andreuzza's elegant themes.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Serendipity Midnight — deep dark variant. */\nexport const serendipityMidnight: ColorPalette = {\n name: \"serendipity-midnight\",\n dark: true,\n black: \"#232534\",\n red: \"#ee8679\",\n green: \"#9ccfd8\",\n yellow: \"#f8d2c9\",\n blue: \"#5ba2d0\",\n magenta: \"#a78bfa\",\n cyan: \"#94b8ff\",\n white: \"#dee0ef\",\n brightBlack: \"#8d8f9e\",\n brightRed: \"#ee8679\",\n brightGreen: \"#9ccfd8\",\n brightYellow: \"#f8d2c9\",\n brightBlue: \"#5ba2d0\",\n brightMagenta: \"#a78bfa\",\n brightCyan: \"#94b8ff\",\n brightWhite: \"#dee0ef\",\n foreground: \"#dee0ef\",\n background: \"#1c1e2d\",\n cursorColor: \"#6b6d7c\",\n cursorText: \"#1c1e2d\",\n selectionBackground: \"#2c2e3d\",\n selectionForeground: \"#dee0ef\",\n}\n\n/** Serendipity Morning — warm light variant. */\nexport const serendipityMorning: ColorPalette = {\n name: \"serendipity-morning\",\n dark: false,\n black: \"#f2e9de\",\n red: \"#d26a5d\",\n green: \"#77aab3\",\n yellow: \"#c8a299\",\n blue: \"#3788be\",\n magenta: \"#886cdb\",\n cyan: \"#7397de\",\n white: \"#575279\",\n brightBlack: \"#6e6a86\",\n brightRed: \"#d26a5d\",\n brightGreen: \"#77aab3\",\n brightYellow: \"#c8a299\",\n brightBlue: \"#3788be\",\n brightMagenta: \"#886cdb\",\n brightCyan: \"#7397de\",\n brightWhite: \"#575279\",\n foreground: \"#575279\",\n background: \"#fffaf3\",\n cursorColor: \"#9893a5\",\n cursorText: \"#fffaf3\",\n selectionBackground: \"#f4efea\",\n selectionForeground: \"#575279\",\n}\n","/**\n * Twilight palette — the warm, muted classic.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Twilight — warm earthy dark theme. */\nexport const twilight: ColorPalette = {\n name: \"twilight\",\n dark: true,\n black: \"#141414\",\n red: \"#c06d44\",\n green: \"#afb97a\",\n yellow: \"#c2a86c\",\n blue: \"#44474a\",\n magenta: \"#b4be7c\",\n cyan: \"#778385\",\n white: \"#ffffd4\",\n brightBlack: \"#262626\",\n brightRed: \"#de7c4c\",\n brightGreen: \"#ccd88c\",\n brightYellow: \"#e2c47e\",\n brightBlue: \"#5a5e62\",\n brightMagenta: \"#d0dc8e\",\n brightCyan: \"#8a989b\",\n brightWhite: \"#ffffd4\",\n foreground: \"#ffffd4\",\n background: \"#141414\",\n cursorColor: \"#ffffff\",\n cursorText: \"#141414\",\n selectionBackground: \"#313131\",\n selectionForeground: \"#ffffd4\",\n}\n","/**\n * Breeze palette — KDE's default terminal theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Breeze — KDE Plasma's clean dark theme. */\nexport const breeze: ColorPalette = {\n name: \"breeze\",\n dark: true,\n black: \"#31363b\",\n red: \"#ed1515\",\n green: \"#11d116\",\n yellow: \"#f67400\",\n blue: \"#1d99f3\",\n magenta: \"#9b59b6\",\n cyan: \"#1abc9c\",\n white: \"#eff0f1\",\n brightBlack: \"#7f8c8d\",\n brightRed: \"#c0392b\",\n brightGreen: \"#1cdc9a\",\n brightYellow: \"#fdbc4b\",\n brightBlue: \"#3daee9\",\n brightMagenta: \"#8e44ad\",\n brightCyan: \"#16a085\",\n brightWhite: \"#fcfcfc\",\n foreground: \"#eff0f1\",\n background: \"#31363b\",\n cursorColor: \"#eff0f1\",\n cursorText: \"#31363b\",\n selectionBackground: \"#eff0f1\",\n selectionForeground: \"#31363b\",\n}\n","/**\n * Andromeda palette — EliverLara's VS Code theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Andromeda — rich dark theme with balanced colors. */\nexport const andromeda: ColorPalette = {\n name: \"andromeda\",\n dark: true,\n black: \"#000000\",\n red: \"#cd3131\",\n green: \"#05bc79\",\n yellow: \"#e5e512\",\n blue: \"#2472c8\",\n magenta: \"#bc3fbc\",\n cyan: \"#0fa8cd\",\n white: \"#e5e5e5\",\n brightBlack: \"#666666\",\n brightRed: \"#cd3131\",\n brightGreen: \"#05bc79\",\n brightYellow: \"#e5e512\",\n brightBlue: \"#2472c8\",\n brightMagenta: \"#bc3fbc\",\n brightCyan: \"#0fa8cd\",\n brightWhite: \"#e5e5e5\",\n foreground: \"#e5e5e5\",\n background: \"#262a33\",\n cursorColor: \"#f8f8f0\",\n cursorText: \"#262a33\",\n selectionBackground: \"#5a5c62\",\n selectionForeground: \"#e5e5e5\",\n}\n","/**\n * Relaxed palette — a calm, muted dark theme.\n */\n\nimport type { ColorPalette } from \"../types\"\n\n/** Relaxed — low-contrast muted dark theme. */\nexport const relaxed: ColorPalette = {\n name: \"relaxed\",\n dark: true,\n black: \"#151515\",\n red: \"#bc5653\",\n green: \"#909d63\",\n yellow: \"#ebc17a\",\n blue: \"#6a8799\",\n magenta: \"#b06698\",\n cyan: \"#c9dfff\",\n white: \"#d9d9d9\",\n brightBlack: \"#636363\",\n brightRed: \"#bc5653\",\n brightGreen: \"#a0ac77\",\n brightYellow: \"#ebc17a\",\n brightBlue: \"#7eaac7\",\n brightMagenta: \"#b06698\",\n brightCyan: \"#acbbd0\",\n brightWhite: \"#f7f7f7\",\n foreground: \"#d9d9d9\",\n background: \"#353a44\",\n cursorColor: \"#d9d9d9\",\n cursorText: \"#353a44\",\n selectionBackground: \"#6a7985\",\n selectionForeground: \"#d9d9d9\",\n}\n","/**\n * Built-in themes and palette registry.\n *\n * Exports:\n * - Pre-derived Theme objects (ansi16Dark, ansi16Light, defaultDark, defaultLight)\n * - ColorPalette definitions from popular theme systems (70+ palettes)\n * - Registry functions (getThemeByName, getPaletteByName)\n */\n\nimport { deriveTheme } from \"../derive\"\nimport type { Theme, ColorPalette } from \"../types\"\n\n// ── Re-export all palette definitions ──────────────────────────────\nexport { catppuccinMocha, catppuccinFrappe, catppuccinMacchiato, catppuccinLatte } from \"./catppuccin\"\nexport { nord } from \"./nord\"\nexport { dracula } from \"./dracula\"\nexport { solarizedDark, solarizedLight } from \"./solarized\"\nexport { tokyoNight, tokyoNightStorm, tokyoNightDay } from \"./tokyo-night\"\nexport { oneDark } from \"./one-dark\"\nexport { gruvboxDark, gruvboxLight } from \"./gruvbox\"\nexport { rosePine, rosePineMoon, rosePineDawn } from \"./rose-pine\"\nexport { kanagawaWave, kanagawaDragon, kanagawaLotus } from \"./kanagawa\"\nexport { everforestDark, everforestLight } from \"./everforest\"\nexport { monokai, monokaiPro } from \"./monokai\"\nexport { snazzy } from \"./snazzy\"\nexport { materialDark, materialLight } from \"./material\"\nexport { palenight } from \"./palenight\"\nexport { ayuDark, ayuMirage, ayuLight } from \"./ayu\"\nexport { nightfox, dawnfox } from \"./nightfox\"\nexport { horizon } from \"./horizon\"\nexport { moonfly } from \"./moonfly\"\nexport { nightfly } from \"./nightfly\"\nexport { oxocarbonDark, oxocarbonLight } from \"./oxocarbon\"\nexport { sonokai } from \"./sonokai\"\nexport { edgeDark, edgeLight } from \"./edge\"\nexport { modusVivendi, modusOperandi } from \"./modus\"\n// New palettes\nexport { githubDark, githubLight } from \"./github\"\nexport { cobalt2 } from \"./cobalt2\"\nexport { synthwave, synthwave84 } from \"./synthwave\"\nexport { tomorrowNight, tomorrowNightBlue, tomorrowNightEighties } from \"./tomorrow-night\"\nexport { zenburn } from \"./zenburn\"\nexport { ubuntu } from \"./ubuntu\"\nexport { tangoDark, tangoLight } from \"./tango\"\nexport { cyberpunk } from \"./cyberpunk\"\nexport { vscodeDark } from \"./vscode\"\nexport { oneLight, oneHalfDark, oneHalfLight } from \"./one-light\"\nexport { nightOwlLight } from \"./night-owl\"\nexport { shadesOfPurple } from \"./shades-of-purple\"\nexport { homebrew } from \"./homebrew\"\nexport { neon } from \"./neon\"\nexport { challengerDeep } from \"./challenger-deep\"\nexport { doomOne } from \"./doom-one\"\nexport { mariana } from \"./mariana\"\nexport { darcula } from \"./darcula\"\nexport { espresso } from \"./espresso\"\nexport { icebergDark, icebergLight } from \"./iceberg\"\nexport { serendipityMidnight, serendipityMorning } from \"./serendipity\"\nexport { twilight } from \"./twilight\"\nexport { breeze } from \"./breeze\"\nexport { andromeda } from \"./andromeda\"\nexport { relaxed } from \"./relaxed\"\n\n// ── Import for registry ────────────────────────────────────────────\nimport { catppuccinMocha, catppuccinFrappe, catppuccinMacchiato, catppuccinLatte } from \"./catppuccin\"\nimport { nord } from \"./nord\"\nimport { dracula } from \"./dracula\"\nimport { solarizedDark, solarizedLight } from \"./solarized\"\nimport { tokyoNight, tokyoNightStorm, tokyoNightDay } from \"./tokyo-night\"\nimport { oneDark } from \"./one-dark\"\nimport { gruvboxDark, gruvboxLight } from \"./gruvbox\"\nimport { rosePine, rosePineMoon, rosePineDawn } from \"./rose-pine\"\nimport { kanagawaWave, kanagawaDragon, kanagawaLotus } from \"./kanagawa\"\nimport { everforestDark, everforestLight } from \"./everforest\"\nimport { monokai, monokaiPro } from \"./monokai\"\nimport { snazzy } from \"./snazzy\"\nimport { materialDark, materialLight } from \"./material\"\nimport { palenight } from \"./palenight\"\nimport { ayuDark, ayuMirage, ayuLight } from \"./ayu\"\nimport { nightfox, dawnfox } from \"./nightfox\"\nimport { horizon } from \"./horizon\"\nimport { moonfly } from \"./moonfly\"\nimport { nightfly } from \"./nightfly\"\nimport { oxocarbonDark, oxocarbonLight } from \"./oxocarbon\"\nimport { sonokai } from \"./sonokai\"\nimport { edgeDark, edgeLight } from \"./edge\"\nimport { modusVivendi, modusOperandi } from \"./modus\"\n// New palettes\nimport { githubDark, githubLight } from \"./github\"\nimport { cobalt2 } from \"./cobalt2\"\nimport { synthwave, synthwave84 } from \"./synthwave\"\nimport { tomorrowNight, tomorrowNightBlue, tomorrowNightEighties } from \"./tomorrow-night\"\nimport { zenburn } from \"./zenburn\"\nimport { ubuntu } from \"./ubuntu\"\nimport { tangoDark, tangoLight } from \"./tango\"\nimport { cyberpunk } from \"./cyberpunk\"\nimport { vscodeDark } from \"./vscode\"\nimport { oneLight, oneHalfDark, oneHalfLight } from \"./one-light\"\nimport { nightOwlLight } from \"./night-owl\"\nimport { shadesOfPurple } from \"./shades-of-purple\"\nimport { homebrew } from \"./homebrew\"\nimport { neon } from \"./neon\"\nimport { challengerDeep } from \"./challenger-deep\"\nimport { doomOne } from \"./doom-one\"\nimport { mariana } from \"./mariana\"\nimport { darcula } from \"./darcula\"\nimport { espresso } from \"./espresso\"\nimport { icebergDark, icebergLight } from \"./iceberg\"\nimport { serendipityMidnight, serendipityMorning } from \"./serendipity\"\nimport { twilight } from \"./twilight\"\nimport { breeze } from \"./breeze\"\nimport { andromeda } from \"./andromeda\"\nimport { relaxed } from \"./relaxed\"\n\n// ============================================================================\n// ANSI 16 Themes (no palette required — hardcoded for any terminal)\n// ============================================================================\n\n/** Dark ANSI 16 theme — works on any terminal. Primary = yellow. */\nexport const ansi16DarkTheme: Theme = {\n name: \"dark-ansi16\",\n bg: \"\",\n fg: \"whiteBright\",\n muted: \"white\",\n mutedbg: \"black\",\n surface: \"whiteBright\",\n surfacebg: \"black\",\n popover: \"whiteBright\",\n popoverbg: \"black\",\n inverse: \"black\",\n inversebg: \"whiteBright\",\n cursor: \"black\",\n cursorbg: \"yellow\",\n selection: \"black\",\n selectionbg: \"yellow\",\n primary: \"yellow\",\n primaryfg: \"black\",\n secondary: \"white\",\n secondaryfg: \"black\",\n accent: \"blueBright\",\n accentfg: \"black\",\n error: \"redBright\",\n errorfg: \"black\",\n warning: \"yellow\",\n warningfg: \"black\",\n success: \"greenBright\",\n successfg: \"black\",\n info: \"cyan\",\n infofg: \"black\",\n border: \"gray\",\n inputborder: \"gray\",\n focusborder: \"blueBright\",\n link: \"blueBright\",\n disabledfg: \"gray\",\n palette: [\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"blackBright\",\n \"redBright\",\n \"greenBright\",\n \"yellowBright\",\n \"blueBright\",\n \"magentaBright\",\n \"cyanBright\",\n \"whiteBright\",\n ],\n}\n\n/** Light ANSI 16 theme — works on any terminal. Primary = blue. */\nexport const ansi16LightTheme: Theme = {\n name: \"light-ansi16\",\n bg: \"\",\n fg: \"black\",\n muted: \"blackBright\",\n mutedbg: \"white\",\n surface: \"black\",\n surfacebg: \"white\",\n popover: \"black\",\n popoverbg: \"white\",\n inverse: \"whiteBright\",\n inversebg: \"black\",\n cursor: \"black\",\n cursorbg: \"blue\",\n selection: \"black\",\n selectionbg: \"cyan\",\n primary: \"blue\",\n primaryfg: \"black\",\n secondary: \"blue\",\n secondaryfg: \"black\",\n accent: \"cyan\",\n accentfg: \"black\",\n error: \"red\",\n errorfg: \"black\",\n warning: \"yellow\",\n warningfg: \"black\",\n success: \"green\",\n successfg: \"black\",\n info: \"cyan\",\n infofg: \"black\",\n border: \"gray\",\n inputborder: \"gray\",\n focusborder: \"blue\",\n link: \"blueBright\",\n disabledfg: \"gray\",\n palette: [\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"blackBright\",\n \"redBright\",\n \"greenBright\",\n \"yellowBright\",\n \"blueBright\",\n \"magentaBright\",\n \"cyanBright\",\n \"whiteBright\",\n ],\n}\n\n// ============================================================================\n// Default Truecolor Themes (derived from Nord palette)\n// ============================================================================\n\n/** Dark truecolor theme — derived from Nord. */\nexport const defaultDarkTheme: Theme = deriveTheme(nord)\n\n/** Light truecolor theme — derived from Catppuccin Latte. */\nexport const defaultLightTheme: Theme = deriveTheme(catppuccinLatte)\n\n// ============================================================================\n// Registry\n// ============================================================================\n\n/** All built-in ColorPalette definitions (70+ palettes). */\nexport const builtinPalettes: Record<string, ColorPalette> = {\n // Catppuccin\n \"catppuccin-mocha\": catppuccinMocha,\n \"catppuccin-frappe\": catppuccinFrappe,\n \"catppuccin-macchiato\": catppuccinMacchiato,\n \"catppuccin-latte\": catppuccinLatte,\n // Nord\n nord: nord,\n // Dracula\n dracula: dracula,\n // Solarized\n \"solarized-dark\": solarizedDark,\n \"solarized-light\": solarizedLight,\n // Tokyo Night\n \"tokyo-night\": tokyoNight,\n \"tokyo-night-storm\": tokyoNightStorm,\n \"tokyo-night-day\": tokyoNightDay,\n // One Dark\n \"one-dark\": oneDark,\n // Gruvbox\n \"gruvbox-dark\": gruvboxDark,\n \"gruvbox-light\": gruvboxLight,\n // Rose Pine\n \"rose-pine\": rosePine,\n \"rose-pine-moon\": rosePineMoon,\n \"rose-pine-dawn\": rosePineDawn,\n // Kanagawa\n \"kanagawa-wave\": kanagawaWave,\n \"kanagawa-dragon\": kanagawaDragon,\n \"kanagawa-lotus\": kanagawaLotus,\n // Everforest\n \"everforest-dark\": everforestDark,\n \"everforest-light\": everforestLight,\n // Monokai\n monokai: monokai,\n \"monokai-pro\": monokaiPro,\n // Snazzy\n snazzy: snazzy,\n // Material\n \"material-dark\": materialDark,\n \"material-light\": materialLight,\n // Palenight\n palenight: palenight,\n // Ayu\n \"ayu-dark\": ayuDark,\n \"ayu-mirage\": ayuMirage,\n \"ayu-light\": ayuLight,\n // Nightfox\n nightfox: nightfox,\n dawnfox: dawnfox,\n // Horizon\n horizon: horizon,\n // Moonfly\n moonfly: moonfly,\n // Nightfly\n nightfly: nightfly,\n // Oxocarbon\n \"oxocarbon-dark\": oxocarbonDark,\n \"oxocarbon-light\": oxocarbonLight,\n // Sonokai\n sonokai: sonokai,\n // Edge\n \"edge-dark\": edgeDark,\n \"edge-light\": edgeLight,\n // Modus\n \"modus-vivendi\": modusVivendi,\n \"modus-operandi\": modusOperandi,\n // GitHub\n \"github-dark\": githubDark,\n \"github-light\": githubLight,\n // Cobalt2\n cobalt2: cobalt2,\n // Synthwave\n synthwave: synthwave,\n \"synthwave-84\": synthwave84,\n // Tomorrow Night\n \"tomorrow-night\": tomorrowNight,\n \"tomorrow-night-blue\": tomorrowNightBlue,\n \"tomorrow-night-eighties\": tomorrowNightEighties,\n // Zenburn\n zenburn: zenburn,\n // Ubuntu\n ubuntu: ubuntu,\n // Tango\n \"tango-dark\": tangoDark,\n \"tango-light\": tangoLight,\n // Cyberpunk\n cyberpunk: cyberpunk,\n // VS Code\n \"vscode-dark\": vscodeDark,\n // One Light / One Half\n \"one-light\": oneLight,\n \"one-half-dark\": oneHalfDark,\n \"one-half-light\": oneHalfLight,\n // Night Owl\n \"night-owl-light\": nightOwlLight,\n // Shades of Purple\n \"shades-of-purple\": shadesOfPurple,\n // Homebrew\n homebrew: homebrew,\n // Neon\n neon: neon,\n // Challenger Deep\n \"challenger-deep\": challengerDeep,\n // Doom One\n \"doom-one\": doomOne,\n // Mariana\n mariana: mariana,\n // Darcula (JetBrains)\n darcula: darcula,\n // Espresso\n espresso: espresso,\n // Iceberg\n \"iceberg-dark\": icebergDark,\n \"iceberg-light\": icebergLight,\n // Serendipity\n \"serendipity-midnight\": serendipityMidnight,\n \"serendipity-morning\": serendipityMorning,\n // Twilight\n twilight: twilight,\n // Breeze (KDE)\n breeze: breeze,\n // Andromeda\n andromeda: andromeda,\n // Relaxed\n relaxed: relaxed,\n}\n\n/** All built-in themes, indexed by name (includes backward-compat aliases). */\nexport const builtinThemes: Record<string, Theme> = {\n // ANSI 16\n \"dark-ansi16\": ansi16DarkTheme,\n \"light-ansi16\": ansi16LightTheme,\n // Truecolor defaults\n \"dark-truecolor\": defaultDarkTheme,\n \"light-truecolor\": defaultLightTheme,\n // Old names as aliases\n dark: defaultDarkTheme,\n light: defaultLightTheme,\n \"ansi16-dark\": ansi16DarkTheme,\n \"ansi16-light\": ansi16LightTheme,\n}\n\n/** Resolve a theme by name. Defaults to dark-ansi16. */\nexport function getThemeByName(name?: string): Theme {\n if (!name) return ansi16DarkTheme\n // Check pre-built themes first\n const builtin = builtinThemes[name]\n if (builtin) return builtin\n // Check palettes (derive on first access)\n const palette = builtinPalettes[name]\n if (palette) return deriveTheme(palette)\n return ansi16DarkTheme\n}\n\n/** Resolve a palette by name. Returns undefined if not found. */\nexport function getPaletteByName(name: string): ColorPalette | undefined {\n return builtinPalettes[name]\n}\n","/**\n * Active theme state — module-level for pipeline access.\n *\n * This module has side effects (global mutable state).\n * Marked in package.json sideEffects for tree-shaking.\n *\n * Usage is optional — standalone users pass Theme objects explicitly\n * to resolveThemeColor(token, theme). The global state exists for\n * silvery's render pipeline where React context isn't accessible.\n */\n\nimport type { Theme } from \"./types\"\nimport { ansi16DarkTheme } from \"./palettes/index\"\n\n// ============================================================================\n// Active Theme\n// ============================================================================\n\n/**\n * The currently active theme, set by ThemeProvider during render.\n * Used by parseColor() to resolve $token strings without React context access.\n */\nlet _activeTheme: Theme = ansi16DarkTheme\n\n/** Set the active theme (called by ThemeProvider). */\nexport function setActiveTheme(theme: Theme): void {\n _activeTheme = theme\n}\n\n/** Get the active theme (called by parseColor in render-helpers). */\nexport function getActiveTheme(): Theme {\n return _contextStack.length > 0 ? _contextStack[_contextStack.length - 1]! : _activeTheme\n}\n\n// ============================================================================\n// Context Theme Stack (per-subtree overrides during render phase)\n// ============================================================================\n\n/**\n * Stack of per-subtree theme overrides, pushed/popped during render phase\n * tree walk. When a Box has a `theme` prop, its theme is pushed before\n * rendering children and popped after. getActiveTheme() checks this stack\n * first, falling back to _activeTheme.\n *\n * This enables CSS custom property-like cascading: the nearest ancestor\n * Box with a theme prop determines $token resolution for its subtree.\n */\nconst _contextStack: Theme[] = []\n\n/** Push a context theme (called by render phase for Box nodes with theme prop). */\nexport function pushContextTheme(theme: Theme): void {\n _contextStack.push(theme)\n}\n\n/** Pop a context theme (called by render phase after processing Box subtree). */\nexport function popContextTheme(): void {\n _contextStack.pop()\n}\n","/**\n * ThemeContext — delivers a Theme to the component tree.\n *\n * Wrap your app (or a subtree) in `<ThemeProvider theme={…}>` to make\n * `$token` color props resolve against that theme. Components call\n * `useTheme()` to read the current theme.\n *\n * @example\n * ```tsx\n * import { ThemeProvider, defaultDarkTheme } from '@silvery/ag-react'\n *\n * <ThemeProvider theme={defaultDarkTheme}>\n * <App />\n * </ThemeProvider>\n * ```\n */\n\nimport React, { createContext, useContext } from \"react\"\nimport type { Theme } from \"./types\"\nimport { setActiveTheme } from \"./state\"\nimport { defaultDarkTheme } from \"./palettes/index\"\n\n// ============================================================================\n// Context\n// ============================================================================\n\n/** @internal Exported for @silvery/ag-react ThemeProvider — not public API. */\nexport const ThemeContext = createContext<Theme>(defaultDarkTheme)\n\n// ============================================================================\n// Provider\n// ============================================================================\n\nexport interface ThemeProviderProps {\n theme: Theme\n children: React.ReactNode\n}\n\n/**\n * Provide a theme to the subtree.\n *\n * Components beneath this provider can use `useTheme()` or `$token`\n * color props (e.g. `color=\"$primary\"`).\n */\nexport function ThemeProvider({ theme, children }: ThemeProviderProps): React.ReactElement {\n // Set module-level active theme so parseColor() can resolve $token strings\n // during the render phase without needing React context access.\n setActiveTheme(theme)\n return React.createElement(ThemeContext.Provider, { value: theme }, children)\n}\n\n// ============================================================================\n// Hook\n// ============================================================================\n\n/**\n * Read the current theme from context.\n *\n * Returns `defaultDarkTheme` when no `ThemeProvider` is present.\n */\nexport function useTheme(): Theme {\n return useContext(ThemeContext)\n}\n","/**\n * Core type definitions — re-exported from @silvery/ansi (canonical location).\n *\n * @silvery/theme consumers can continue importing from here.\n */\n\nexport type { ColorPalette, Theme, AnsiColorName, AnsiPrimary, HueName } from \"@silvery/ansi\"\nexport { COLOR_PALETTE_FIELDS } from \"@silvery/ansi\"\n","/**\n * Token resolution — resolves `$token` strings against a Theme.\n *\n * Re-exports from @silvery/ansi which is the canonical implementation.\n * @silvery/theme consumers can continue importing from here.\n */\n\nexport { resolveThemeColor } from \"@silvery/ansi\"\n","/**\n * ANSI 16 theme generation — derives a complete Theme from a primary color + dark/light.\n *\n * Uses ANSI color names (not hex) so it works on any terminal without truecolor support.\n */\n\nimport type { AnsiPrimary, Theme } from \"./types\"\n\n/**\n * Generate a complete ANSI 16 theme from a primary color + dark/light preference.\n *\n * All token values are ANSI color names (e.g. \"yellow\", \"blueBright\").\n */\nexport function generateTheme(primary: AnsiPrimary, dark: boolean): Theme {\n return {\n name: `${dark ? \"dark\" : \"light\"}-${primary}`,\n\n // ── Root pair ─────────────────────────────────────────────────\n bg: \"\",\n fg: dark ? \"whiteBright\" : \"black\",\n\n // ── Surface pairs (base = text, *bg = background) ──────────\n muted: dark ? \"white\" : \"blackBright\",\n mutedbg: dark ? \"black\" : \"white\",\n surface: dark ? \"whiteBright\" : \"black\",\n surfacebg: dark ? \"black\" : \"white\",\n popover: dark ? \"whiteBright\" : \"black\",\n popoverbg: dark ? \"blackBright\" : \"white\",\n inverse: dark ? \"black\" : \"whiteBright\",\n inversebg: dark ? \"whiteBright\" : \"black\",\n cursor: \"black\",\n cursorbg: primary,\n selection: \"black\",\n selectionbg: primary,\n\n // ── Accent pairs (base = area bg, *fg = text on area) ──────\n primary,\n primaryfg: \"black\",\n secondary: primary,\n secondaryfg: \"black\",\n accent: primary,\n accentfg: \"black\",\n error: dark ? \"redBright\" : \"red\",\n errorfg: \"black\",\n warning: primary,\n warningfg: \"black\",\n success: dark ? \"greenBright\" : \"green\",\n successfg: \"black\",\n info: dark ? \"cyanBright\" : \"cyan\",\n infofg: \"black\",\n\n // ── Standalone ───────────────────────────────────────────────\n border: \"gray\",\n inputborder: \"gray\",\n focusborder: dark ? \"blueBright\" : \"blue\",\n link: \"blueBright\",\n disabledfg: \"gray\",\n\n // ── Palette ──────────────────────────────────────────────────\n palette: [\n \"black\",\n \"red\",\n \"green\",\n \"yellow\",\n \"blue\",\n \"magenta\",\n \"cyan\",\n \"white\",\n \"blackBright\",\n \"redBright\",\n \"greenBright\",\n \"yellowBright\",\n \"blueBright\",\n \"magentaBright\",\n \"cyanBright\",\n \"whiteBright\",\n ],\n }\n}\n","/**\n * Base16 scheme type — the 16-color format used by hundreds of community themes.\n *\n * @see https://github.com/chriskempson/base16\n */\n\n/** A parsed Base16 color scheme. All hex values are WITHOUT `#` prefix. */\nexport interface Base16Scheme {\n scheme: string\n author: string\n base00: string\n base01: string\n base02: string\n base03: string\n base04: string\n base05: string\n base06: string\n base07: string\n base08: string\n base09: string\n base0A: string\n base0B: string\n base0C: string\n base0D: string\n base0E: string\n base0F: string\n}\n\n/** All Base16 color keys in order. */\nexport const BASE16_KEYS = [\n \"base00\",\n \"base01\",\n \"base02\",\n \"base03\",\n \"base04\",\n \"base05\",\n \"base06\",\n \"base07\",\n \"base08\",\n \"base09\",\n \"base0A\",\n \"base0B\",\n \"base0C\",\n \"base0D\",\n \"base0E\",\n \"base0F\",\n] as const\n","/**\n * Import Base16 YAML/JSON schemes into ColorPalette format.\n *\n * Base16 defines 16 colors (base00–base0F). We map them to ColorPalette's\n * 22 colors, deriving bright variants and special colors.\n *\n * @see https://github.com/chriskempson/base16\n */\n\nimport { darken, brighten, hexToRgb } from \"../color\"\nimport type { ColorPalette } from \"../types\"\nimport type { Base16Scheme } from \"./types\"\nimport { BASE16_KEYS } from \"./types\"\n\n// ============================================================================\n// YAML Parser (minimal — Base16 YAML is just `key: \"value\"` lines)\n// ============================================================================\n\n/**\n * Parse Base16 YAML into a Base16Scheme object.\n * Handles both quoted and unquoted values, comments, and blank lines.\n */\nfunction parseBase16Yaml(yaml: string): Base16Scheme {\n const result: Record<string, string> = {}\n\n for (const raw of yaml.split(\"\\n\")) {\n const line = raw.trim()\n if (!line || line.startsWith(\"#\")) continue\n\n const colonIdx = line.indexOf(\":\")\n if (colonIdx === -1) continue\n\n const key = line.slice(0, colonIdx).trim()\n let value = line.slice(colonIdx + 1).trim()\n\n // Strip surrounding quotes (single or double)\n if ((value.startsWith('\"') && value.endsWith('\"')) || (value.startsWith(\"'\") && value.endsWith(\"'\"))) {\n value = value.slice(1, -1)\n }\n\n // Strip inline comments (only after unquoted values)\n const commentIdx = value.indexOf(\"#\")\n if (commentIdx > 0) {\n value = value.slice(0, commentIdx).trim()\n }\n\n result[key] = value\n }\n\n // Validate required fields\n if (!result.scheme) {\n throw new Error(\"Base16 YAML missing required field: scheme\")\n }\n\n for (const key of BASE16_KEYS) {\n if (!result[key]) {\n throw new Error(`Base16 YAML missing required color: ${key}`)\n }\n // Validate hex format (6 hex chars, no # prefix)\n if (!/^[0-9a-fA-F]{6}$/.test(result[key]!)) {\n throw new Error(`Base16 color ${key} must be a 6-digit hex string without '#', got: \"${result[key]}\"`)\n }\n }\n\n return result as unknown as Base16Scheme\n}\n\n// ============================================================================\n// Luminance Detection\n// ============================================================================\n\n/** Compute relative luminance (WCAG 2.0) from a hex color with `#` prefix. */\nfunction luminance(hex: string): number {\n const rgb = hexToRgb(hex)\n if (!rgb) return 0\n const [r, g, b] = rgb.map((c) => {\n const s = c / 255\n return s <= 0.03928 ? s / 12.92 : Math.pow((s + 0.055) / 1.055, 2.4)\n })\n return 0.2126 * r! + 0.7152 * g! + 0.0722 * b!\n}\n\n// ============================================================================\n// Import\n// ============================================================================\n\n/** Normalize a bare hex string to `#RRGGBB` (uppercase). */\nfunction hex(bare: string): string {\n return `#${bare.toUpperCase()}`\n}\n\n/**\n * Import a Base16 YAML (or JSON) scheme into a ColorPalette.\n *\n * Mapping:\n * base00 → background, base01 → brightBlack, base02 → selectionBackground,\n * base03 → white (muted fg), base05 → foreground/brightWhite,\n * base08 → red, base09 → brightRed, base0A → yellow,\n * base0B → green, base0C → cyan, base0D → blue, base0E → magenta,\n * base0F → brightMagenta.\n *\n * Bright color variants are derived by brightening normals.\n * `dark` is inferred from base00 luminance.\n */\nexport function importBase16(yamlOrJson: string): ColorPalette {\n const scheme = parseBase16Yaml(yamlOrJson)\n return base16ToColorPalette(scheme)\n}\n\n/** Convert a parsed Base16Scheme to ColorPalette. */\nexport function base16ToColorPalette(scheme: Base16Scheme): ColorPalette {\n const bg = hex(scheme.base00)\n const fg = hex(scheme.base05)\n const isDark = luminance(bg) < 0.179\n\n const black = isDark ? darken(bg, 0.15) : brighten(bg, 0.15)\n const red = hex(scheme.base08)\n const green = hex(scheme.base0B)\n const yellow = hex(scheme.base0A)\n const blue = hex(scheme.base0D)\n const magenta = hex(scheme.base0E)\n const cyan = hex(scheme.base0C)\n\n return {\n name: scheme.scheme,\n dark: isDark,\n black,\n red,\n green,\n yellow,\n blue,\n magenta,\n cyan,\n white: hex(scheme.base03),\n brightBlack: hex(scheme.base01),\n brightRed: hex(scheme.base09),\n brightGreen: brighten(green, 0.15),\n brightYellow: brighten(yellow, 0.15),\n brightBlue: brighten(blue, 0.15),\n brightMagenta: hex(scheme.base0F),\n brightCyan: brighten(cyan, 0.15),\n brightWhite: fg,\n foreground: fg,\n background: bg,\n cursorColor: fg,\n cursorText: bg,\n selectionBackground: hex(scheme.base02),\n selectionForeground: fg,\n }\n}\n","/**\n * Palette generators — produce a ColorPalette from various inputs.\n *\n * All generators return a complete ColorPalette (22 fields).\n */\n\nimport { hexToRgb, hexToHsl, hslToHex, brighten, darken, blend } from \"./color\"\nimport { importBase16 as importBase16Internal } from \"./import/base16\"\nimport { getPaletteByName } from \"./palettes/index\"\nimport type { ColorPalette, HueName } from \"./types\"\n\n// ============================================================================\n// Luminance\n// ============================================================================\n\nfunction luminance(hex: string): number {\n const rgb = hexToRgb(hex)\n if (!rgb) return 0.5\n return (rgb[0] + rgb[1] + rgb[2]) / (255 * 3)\n}\n\nfunction isDarkColor(hex: string): boolean {\n return luminance(hex) < 0.5\n}\n\n// ============================================================================\n// Accent Generation\n// ============================================================================\n\n/** Target hues for each accent slot. */\nconst targetHues: Record<HueName, number> = {\n red: 0,\n orange: 30,\n yellow: 60,\n green: 120,\n teal: 180,\n blue: 220,\n purple: 280,\n pink: 330,\n}\n\n/** Find which hue slot the primary color best matches by hue angle proximity. */\nexport function assignPrimaryToSlot(primary: string): HueName {\n const hsl = hexToHsl(primary)\n if (!hsl) return \"blue\"\n const h = hsl[0]\n const slots: [number, number, HueName][] = [\n [0, 15, \"red\"],\n [15, 45, \"orange\"],\n [45, 75, \"yellow\"],\n [75, 165, \"green\"],\n [165, 200, \"teal\"],\n [200, 260, \"blue\"],\n [260, 310, \"purple\"],\n [310, 345, \"pink\"],\n [345, 360, \"red\"],\n ]\n for (const [lo, hi, name] of slots) {\n if (h >= lo && h < hi) return name\n }\n return \"blue\"\n}\n\n/** Generate 8 accent hues from a primary, placing it in its natural slot. */\nfunction generateAccentsFromPrimary(primary: string): Record<HueName, string> {\n const hsl = hexToHsl(primary)\n if (!hsl) {\n return {\n red: \"#BF616A\",\n orange: \"#D08770\",\n yellow: \"#EBCB8B\",\n green: \"#A3BE8C\",\n teal: \"#88C0D0\",\n blue: \"#5E81AC\",\n purple: \"#B48EAD\",\n pink: \"#D4879C\",\n }\n }\n const [, s, l] = hsl\n const slot = assignPrimaryToSlot(primary)\n const result = {} as Record<HueName, string>\n for (const [name, targetH] of Object.entries(targetHues) as [HueName, number][]) {\n result[name] = name === slot ? primary : hslToHex(targetH, s, l)\n }\n return result\n}\n\n// ============================================================================\n// fromBase16 — Base16 YAML → ColorPalette\n// ============================================================================\n\n/**\n * Generate a ColorPalette from a Base16 YAML scheme.\n *\n * Maps base00–base0F to ANSI palette colors, derives special colors.\n */\nexport function fromBase16(yamlOrJson: string): ColorPalette {\n return importBase16Internal(yamlOrJson)\n}\n\n// ============================================================================\n// fromColors — Generate full palette from 1-3 hex colors\n// ============================================================================\n\ninterface FromColorsOptions {\n /** Background color (infers dark/light). */\n background?: string\n /** Foreground/text color. Generated if omitted. */\n foreground?: string\n /** Primary accent color. Generated if omitted. */\n primary?: string\n /** Force dark mode. */\n dark?: boolean\n /** Theme name. */\n name?: string\n}\n\n/**\n * Generate a full ColorPalette from 1-3 hex colors.\n *\n * At minimum, provide `background` or `primary`. Missing colors are\n * generated via surface ramp (from bg) and hue rotation (from primary).\n */\nexport function fromColors(opts: FromColorsOptions): ColorPalette {\n const dark = opts.dark ?? (opts.background ? isDarkColor(opts.background) : true)\n const step = dark ? brighten : darken\n\n // Generate background if not provided\n const bg = opts.background ?? (dark ? \"#2E3440\" : \"#FFFFFF\")\n const fg = opts.foreground ?? step(bg, 0.85)\n\n // Generate accents from primary or defaults\n const accents = opts.primary\n ? generateAccentsFromPrimary(opts.primary)\n : {\n red: \"#BF616A\",\n orange: \"#D08770\",\n yellow: \"#EBCB8B\",\n green: \"#A3BE8C\",\n teal: \"#88C0D0\",\n blue: \"#5E81AC\",\n purple: \"#B48EAD\",\n pink: \"#D4879C\",\n }\n\n // Surface ramp for grayscale ANSI colors\n const black = dark ? darken(bg, 0.05) : darken(bg, 0.1)\n const white = dark ? blend(fg, bg, 0.3) : blend(bg, fg, 0.3)\n const brightBlack = step(bg, 0.15)\n const brightWhite = dark ? fg : brighten(fg, 0.1)\n\n return {\n name: opts.name ?? (dark ? \"generated-dark\" : \"generated-light\"),\n dark,\n primary: opts.primary,\n black,\n red: accents.red,\n green: accents.green,\n yellow: accents.yellow,\n blue: accents.blue,\n magenta: accents.purple,\n cyan: accents.teal,\n white,\n brightBlack,\n brightRed: accents.orange,\n brightGreen: brighten(accents.green, 0.15),\n brightYellow: brighten(accents.yellow, 0.15),\n brightBlue: brighten(accents.blue, 0.15),\n brightMagenta: accents.pink,\n brightCyan: brighten(accents.teal, 0.15),\n brightWhite,\n foreground: fg,\n background: bg,\n cursorColor: fg,\n cursorText: bg,\n selectionBackground: blend(bg, accents.blue, 0.3),\n selectionForeground: fg,\n }\n}\n\n// ============================================================================\n// fromPreset — Look up a built-in ColorPalette by name\n// ============================================================================\n\n/**\n * Look up a built-in palette by name.\n *\n * @returns The ColorPalette, or undefined if not found.\n */\nexport function fromPreset(name: string): ColorPalette | undefined {\n return getPaletteByName(name)\n}\n\n// ============================================================================\n// ThemePalette → ColorPalette conversion (migration helper)\n// ============================================================================\n\n/** Old ThemePalette shape for migration. */\ninterface OldThemePalette {\n name: string\n dark: boolean\n crust: string\n base: string\n surface: string\n overlay: string\n subtext: string\n text: string\n red: string\n orange: string\n yellow: string\n green: string\n teal: string\n blue: string\n purple: string\n pink: string\n}\n\n/**\n * Convert an old ThemePalette to a ColorPalette.\n *\n * Mapping:\n * black = crust, red/green/yellow/blue = direct, magenta = purple,\n * cyan = teal, white = subtext, brightBlack = surface,\n * brightRed = orange, bright{green,yellow,blue,cyan} = brighten(normal),\n * brightMagenta = pink, brightWhite = text,\n * foreground = text, background = base,\n * cursor = text/base, selection = overlay/text.\n */\nexport function themePaletteToColorPalette(p: OldThemePalette): ColorPalette {\n return {\n name: p.name,\n dark: p.dark,\n black: p.crust,\n red: p.red,\n green: p.green,\n yellow: p.yellow,\n blue: p.blue,\n magenta: p.purple,\n cyan: p.teal,\n white: p.subtext,\n brightBlack: p.surface,\n brightRed: p.orange,\n brightGreen: brighten(p.green, 0.15),\n brightYellow: brighten(p.yellow, 0.15),\n brightBlue: brighten(p.blue, 0.15),\n brightMagenta: p.pink,\n brightCyan: brighten(p.teal, 0.15),\n brightWhite: p.text,\n foreground: p.text,\n background: p.base,\n cursorColor: p.text,\n cursorText: p.base,\n selectionBackground: p.overlay,\n selectionForeground: p.text,\n }\n}\n","/**\n * Chainable theme builder — create themes from minimal input.\n *\n * @example\n * ```typescript\n * // Just a background color\n * const theme = createTheme().bg('#2E3440').build()\n *\n * // Primary + explicit dark mode\n * const theme = createTheme().primary('#EBCB8B').dark().build()\n *\n * // Three-color input (dark/light inferred from bg luminance)\n * const theme = createTheme()\n * .bg('#2E3440').fg('#ECEFF4').primary('#EBCB8B').build()\n *\n * // Preset with override\n * const theme = createTheme().preset('nord').primary('#A3BE8C').build()\n * ```\n */\n\nimport { hexToRgb } from \"./color\"\nimport { deriveTheme } from \"./derive\"\nimport { fromColors, assignPrimaryToSlot } from \"./generators\"\nimport { getPaletteByName } from \"./palettes/index\"\nimport type { Theme, ColorPalette, HueName } from \"./types\"\n\n// ============================================================================\n// Luminance\n// ============================================================================\n\nfunction isDarkColor(hex: string): boolean {\n const rgb = hexToRgb(hex)\n if (!rgb) return true\n return (rgb[0] + rgb[1] + rgb[2]) / (255 * 3) < 0.5\n}\n\n// ============================================================================\n// Builder\n// ============================================================================\n\ninterface ThemeBuilderState {\n dark?: boolean\n bgColor?: string\n fgColor?: string\n primaryColor?: string\n colors: Partial<ColorPalette>\n presetPalette?: ColorPalette\n}\n\nexport interface ThemeBuilder {\n /** Set background color. */\n bg(color: string): ThemeBuilder\n /** Set foreground color. */\n fg(color: string): ThemeBuilder\n /** Set primary accent color. */\n primary(color: string): ThemeBuilder\n /** Alias for `.primary()`. */\n accent(color: string): ThemeBuilder\n /** Force dark mode. */\n dark(): ThemeBuilder\n /** Force light mode. */\n light(): ThemeBuilder\n /** Set any palette color by name. */\n color(name: keyof Omit<ColorPalette, \"name\" | \"dark\">, value: string): ThemeBuilder\n /** Set full palette at once. */\n palette(p: ColorPalette): ThemeBuilder\n /** Load a built-in palette by name. */\n preset(name: string): ThemeBuilder\n /** Derive the final Theme from accumulated state. */\n build(): Theme\n}\n\n/** Create a chainable theme builder. */\nexport function createTheme(): ThemeBuilder {\n const state: ThemeBuilderState = { colors: {} }\n\n const builder: ThemeBuilder = {\n bg(color) {\n state.bgColor = color\n return builder\n },\n fg(color) {\n state.fgColor = color\n return builder\n },\n primary(color) {\n state.primaryColor = color\n return builder\n },\n accent(color) {\n return builder.primary(color)\n },\n dark() {\n state.dark = true\n return builder\n },\n light() {\n state.dark = false\n return builder\n },\n color(name, value) {\n ;(state.colors as Record<string, string>)[name] = value\n return builder\n },\n palette(p) {\n state.presetPalette = p\n return builder\n },\n preset(name) {\n const p = getPaletteByName(name)\n if (p) state.presetPalette = p\n return builder\n },\n\n build(): Theme {\n const isDark = state.dark ?? (state.bgColor ? isDarkColor(state.bgColor) : true)\n\n let palette: ColorPalette\n\n if (state.presetPalette) {\n // Start from preset, apply overrides\n palette = { ...state.presetPalette }\n if (state.bgColor) palette.background = state.bgColor\n if (state.fgColor) palette.foreground = state.fgColor\n if (state.primaryColor) {\n // Set semantic primary seed so deriveTheme() uses it\n palette.primary = state.primaryColor\n // Also place in the appropriate ANSI slot for accent derivation\n const slot = assignPrimaryToSlot(state.primaryColor)\n const ansiName = hueToAnsiField(slot)\n ;(palette as unknown as Record<string, string>)[ansiName] = state.primaryColor\n }\n palette.dark = isDark\n } else {\n // Generate from minimal input\n palette = fromColors({\n background: state.bgColor,\n foreground: state.fgColor,\n primary: state.primaryColor,\n dark: isDark,\n })\n }\n\n // Apply explicit color overrides\n for (const [key, val] of Object.entries(state.colors)) {\n if (val !== undefined && typeof val === \"string\") (palette as unknown as Record<string, string>)[key] = val\n }\n\n return deriveTheme(palette)\n },\n }\n\n return builder\n}\n\n/** Map a HueName to the corresponding ColorPalette field. */\nfunction hueToAnsiField(hue: HueName): keyof ColorPalette {\n const map: Record<HueName, keyof ColorPalette> = {\n red: \"red\",\n orange: \"brightRed\",\n yellow: \"yellow\",\n green: \"green\",\n teal: \"cyan\",\n blue: \"blue\",\n purple: \"magenta\",\n pink: \"brightMagenta\",\n }\n return map[hue]\n}\n\n// ============================================================================\n// Convenience Functions\n// ============================================================================\n\n/**\n * Quick theme from a primary color or color name.\n *\n * @example\n * ```typescript\n * quickTheme('#EBCB8B', 'dark') // yellow primary, dark mode\n * quickTheme('blue') // blue primary, default dark\n * ```\n */\nexport function quickTheme(primaryOrHex: string, mode?: \"dark\" | \"light\"): Theme {\n const b = createTheme()\n if (primaryOrHex.startsWith(\"#\")) {\n b.primary(primaryOrHex)\n } else {\n const namedColors: Record<string, string> = {\n red: \"#BF616A\",\n orange: \"#D08770\",\n yellow: \"#EBCB8B\",\n green: \"#A3BE8C\",\n teal: \"#88C0D0\",\n cyan: \"#88C0D0\",\n blue: \"#5E81AC\",\n purple: \"#B48EAD\",\n pink: \"#D4879C\",\n magenta: \"#B48EAD\",\n white: \"#ECEFF4\",\n }\n b.primary(namedColors[primaryOrHex] ?? \"#5E81AC\")\n }\n if (mode === \"dark\") b.dark()\n else if (mode === \"light\") b.light()\n return b.build()\n}\n\n/**\n * Create a theme from a built-in preset name.\n *\n * @example\n * ```typescript\n * presetTheme('catppuccin-mocha')\n * presetTheme('nord')\n * ```\n */\nexport function presetTheme(name: string): Theme {\n return createTheme().preset(name).build()\n}\n","/**\n * Palette validation — checks ColorPalette fields and contrast.\n */\n\nimport { hexToRgb } from \"./color\"\nimport { COLOR_PALETTE_FIELDS, type ColorPalette } from \"./types\"\n\n/** Validation result from validateColorPalette(). */\nexport interface ValidationResult {\n valid: boolean\n errors: string[]\n warnings: string[]\n}\n\n/**\n * Validate a ColorPalette.\n *\n * Checks:\n * - All 22 color fields are present and non-empty hex strings\n * - Warns on low-contrast foreground/background combinations\n */\nexport function validateColorPalette(p: ColorPalette): ValidationResult {\n const errors: string[] = []\n const warnings: string[] = []\n\n // Required color fields\n for (const field of COLOR_PALETTE_FIELDS) {\n const val = p[field]\n if (!val || typeof val !== \"string\") {\n errors.push(`${field} is required and must be a non-empty string`)\n }\n }\n\n // Contrast warnings (only for hex colors)\n if (p.foreground && p.background) {\n const fgRgb = hexToRgb(p.foreground)\n const bgRgb = hexToRgb(p.background)\n if (fgRgb && bgRgb) {\n const fgSum = fgRgb[0] + fgRgb[1] + fgRgb[2]\n const bgSum = bgRgb[0] + bgRgb[1] + bgRgb[2]\n const fgIsLight = fgSum > 384\n const bgIsLight = bgSum > 384\n if (fgIsLight === bgIsLight) {\n warnings.push(\n `Low contrast: foreground (${p.foreground}) and background (${p.background}) have similar lightness`,\n )\n }\n }\n }\n\n return {\n valid: errors.length === 0,\n errors,\n warnings,\n }\n}\n","/**\n * Theme validation — checks that all required semantic tokens are present.\n *\n * Complements validateColorPalette() which validates the lower-level\n * ColorPalette. This validates the derived Theme object.\n */\n\n/** All 33 required semantic token keys on Theme (excludes `name` and `palette`). */\nexport const THEME_TOKEN_KEYS: readonly string[] = [\n // Root pair\n \"bg\",\n \"fg\",\n // 6 surface pairs (base = text, *bg = background)\n \"muted\",\n \"mutedbg\",\n \"surface\",\n \"surfacebg\",\n \"popover\",\n \"popoverbg\",\n \"inverse\",\n \"inversebg\",\n \"cursor\",\n \"cursorbg\",\n \"selection\",\n \"selectionbg\",\n // 7 accent pairs (base = area bg, *fg = text on area)\n \"primary\",\n \"primaryfg\",\n \"secondary\",\n \"secondaryfg\",\n \"accent\",\n \"accentfg\",\n \"error\",\n \"errorfg\",\n \"warning\",\n \"warningfg\",\n \"success\",\n \"successfg\",\n \"info\",\n \"infofg\",\n // 5 standalone tokens\n \"border\",\n \"inputborder\",\n \"focusborder\",\n \"link\",\n \"disabledfg\",\n] as const\n\n/** Result of theme validation. */\nexport interface ThemeValidationResult {\n /** Whether the theme has all required tokens. */\n valid: boolean\n /** Token keys that are required but missing or empty. */\n missing: string[]\n /** Token keys that exist on the object but are not recognized theme tokens. */\n extra: string[]\n}\n\n/** All recognized keys on Theme (tokens + metadata). */\nconst ALL_KNOWN_KEYS = new Set([...THEME_TOKEN_KEYS, \"name\", \"palette\"])\n\n/**\n * Validate a Theme object — check that all required tokens are present.\n *\n * @param theme - The theme object to validate\n * @returns Validation result with missing and extra token lists\n *\n * @example\n * ```typescript\n * const result = validateTheme(myTheme)\n * if (!result.valid) {\n * console.log(\"Missing tokens:\", result.missing)\n * }\n * ```\n */\nexport function validateTheme(theme: Record<string, unknown>): ThemeValidationResult {\n const missing: string[] = []\n const extra: string[] = []\n\n // Check for missing or empty required tokens\n for (const key of THEME_TOKEN_KEYS) {\n const val = theme[key]\n if (val === undefined || val === null || val === \"\") {\n missing.push(key)\n }\n }\n\n // Check for unrecognized keys (exclude prototype properties)\n for (const key of Object.keys(theme)) {\n if (!ALL_KNOWN_KEYS.has(key)) {\n extra.push(key)\n }\n }\n\n return {\n valid: missing.length === 0,\n missing,\n extra,\n }\n}\n","/**\n * WCAG 2.1 contrast checking and enforcement.\n *\n * Re-exports from @silvery/color — the canonical implementation.\n * This module exists to preserve @silvery/theme's public API.\n */\n\nexport { checkContrast, ensureContrast } from \"@silvery/color\"\nexport type { ContrastResult } from \"@silvery/color\"\n","/**\n * Token aliasing — resolve token values that reference other tokens.\n *\n * Supports alias chains (e.g. $button -> $primary -> #EBCB8B) with a\n * depth limit to prevent infinite loops from circular references.\n */\n\nimport type { Theme } from \"./types\"\n\n/** Maximum depth for alias chain resolution before treating as circular. */\nconst MAX_ALIAS_DEPTH = 10\n\n/**\n * Resolve all token aliases in a theme.\n *\n * Token values that start with `$` are treated as references to other tokens.\n * Alias chains are followed until a concrete (non-$) value is reached.\n * Circular references are detected via a depth limit and left unresolved.\n *\n * @param theme - A theme-like object where values may reference other tokens via `$name`\n * @returns A new object with all aliases resolved to concrete values\n *\n * @example\n * ```typescript\n * const themed = resolveAliases({\n * ...baseTheme,\n * button: \"$primary\", // resolves to the value of 'primary'\n * buttonHover: \"$button\", // chain: buttonHover -> button -> primary -> hex\n * })\n * ```\n */\nexport function resolveAliases(theme: Record<string, string>): Record<string, string> {\n const result: Record<string, string> = {}\n\n for (const key of Object.keys(theme)) {\n result[key] = resolveAlias(key, theme, 0)\n }\n\n return result\n}\n\n/**\n * Resolve a single token's alias chain.\n *\n * @param key - The token key to resolve\n * @param tokens - The full token map\n * @param depth - Current recursion depth (for loop detection)\n * @returns The resolved concrete value, or the raw alias string if unresolvable\n */\nfunction resolveAlias(key: string, tokens: Record<string, string>, depth: number): string {\n if (depth >= MAX_ALIAS_DEPTH) return tokens[key] ?? \"\"\n\n const value = tokens[key]\n if (value === undefined) return \"\"\n\n // Not an alias — return the concrete value\n if (!value.startsWith(\"$\")) return value\n\n // Strip the `$` prefix and look up the referenced token\n const refKey = value.slice(1)\n if (!(refKey in tokens)) return value // Unknown reference, return as-is\n\n return resolveAlias(refKey, tokens, depth + 1)\n}\n\n/**\n * Resolve a single alias value against a Theme.\n *\n * Useful for resolving individual values without processing the entire theme.\n *\n * @param value - The value to resolve (may be \"$tokenName\" or a concrete value)\n * @param theme - The theme to resolve against\n * @returns The resolved concrete value\n */\nexport function resolveTokenAlias(value: string, theme: Theme): string {\n if (!value.startsWith(\"$\")) return value\n\n const seen = new Set<string>()\n let current = value\n\n for (let i = 0; i < MAX_ALIAS_DEPTH; i++) {\n if (!current.startsWith(\"$\")) return current\n\n const key = current.slice(1) as keyof Theme\n if (seen.has(key)) return current // Circular reference\n seen.add(key)\n\n const resolved = theme[key]\n if (typeof resolved !== \"string\") return current\n current = resolved\n }\n\n return current\n}\n","/**\n * CSS variables export — convert theme tokens to CSS custom properties.\n *\n * Generates a flat map of CSS custom property names to color values,\n * suitable for applying as inline styles or injecting into a stylesheet.\n */\n\nimport type { Theme } from \"./types\"\nimport { THEME_TOKEN_KEYS } from \"./validate-theme\"\n\n/**\n * Convert a Theme to CSS custom properties.\n *\n * Token names are kebab-cased with a `--` prefix:\n * - `bg` → `--bg`\n * - `surfacebg` → `--surfacebg`\n * - `disabledfg` → `--disabledfg`\n * - Palette entries: `--color0` through `--color15`\n *\n * @param theme - The theme to convert\n * @returns A record mapping CSS custom property names to color values\n *\n * @example\n * ```typescript\n * const vars = themeToCSSVars(myTheme)\n * // { \"--bg\": \"#1E1E2E\", \"--fg\": \"#CDD6F4\", \"--primary\": \"#F9E2AF\", ... }\n *\n * // Apply to an element:\n * Object.assign(element.style, vars)\n * ```\n */\nexport function themeToCSSVars(theme: Theme): Record<string, string> {\n const vars: Record<string, string> = {}\n\n // Semantic tokens\n for (const key of THEME_TOKEN_KEYS) {\n const value = theme[key as keyof Theme]\n if (typeof value === \"string\") {\n vars[`--${key}`] = value\n }\n }\n\n // Palette colors\n if (theme.palette) {\n for (let i = 0; i < theme.palette.length; i++) {\n vars[`--color${i}`] = theme.palette[i]!\n }\n }\n\n return vars\n}\n","/**\n * Auto-generate themes — create a complete Theme from a single primary color.\n *\n * Uses HSL color manipulation to derive complementary and analogous colors\n * for the full palette from one input color.\n */\n\nimport { hexToHsl, hslToHex, blend } from \"./color\"\nimport { fromColors } from \"./generators\"\nimport { deriveTheme } from \"./derive\"\nimport type { Theme } from \"./types\"\n\n/**\n * Generate a complete Theme from a single primary color.\n *\n * Derives a full ColorPalette using HSL color manipulation:\n * - Background/foreground from lightness inversion\n * - Complementary and analogous accent colors from hue rotation\n * - Surface ramp from background blending\n * - Status colors (error, warning, success, info) from standard hue positions\n *\n * @param primaryColor - A hex color string (e.g. \"#5E81AC\")\n * @param mode - \"dark\" or \"light\" theme mode\n * @returns A complete Theme with all 33 semantic tokens\n *\n * @example\n * ```typescript\n * const theme = autoGenerateTheme(\"#5E81AC\", \"dark\")\n * // Generates a full dark theme with blue as the primary accent\n *\n * const light = autoGenerateTheme(\"#E06C75\", \"light\")\n * // Generates a full light theme with red/rose as the primary accent\n * ```\n */\nexport function autoGenerateTheme(primaryColor: string, mode: \"dark\" | \"light\"): Theme {\n const hsl = hexToHsl(primaryColor)\n if (!hsl) {\n // Fallback: use default colors if input is not valid hex\n const palette = fromColors({ dark: mode === \"dark\" })\n return deriveTheme(palette)\n }\n\n const [h, s] = hsl\n const dark = mode === \"dark\"\n\n // Generate background and foreground based on mode\n const bgL = dark ? 0.12 : 0.97\n const fgL = dark ? 0.87 : 0.13\n // Use low saturation for bg/fg to keep them neutral\n const bgS = Math.min(s, 0.15)\n const bg = hslToHex(h, bgS, bgL)\n const fg = hslToHex(h, bgS * 0.5, fgL)\n\n // Generate accent colors from hue rotations\n // Standard hue positions for semantic colors\n const redHue = 0\n const yellowHue = 45\n const greenHue = 130\n const cyanHue = 185\n const blueHue = 220\n const magentaHue = 300\n\n // Use the primary's saturation and adjust lightness for the mode\n const accentL = dark ? 0.65 : 0.45\n const accentS = Math.max(s, 0.5) // Ensure accents are reasonably saturated\n\n const red = hslToHex(redHue, accentS, accentL)\n const green = hslToHex(greenHue, accentS, accentL)\n const yellow = hslToHex(yellowHue, accentS, accentL)\n const blue = hslToHex(blueHue, accentS, accentL)\n const magenta = hslToHex(magentaHue, accentS, accentL)\n const cyan = hslToHex(cyanHue, accentS, accentL)\n\n // Bright variants: increase lightness slightly\n const brightOffset = dark ? 0.1 : -0.1\n const brightL = accentL + brightOffset\n const brightRed = hslToHex(30, accentS, brightL) // orange-ish\n const brightGreen = hslToHex(greenHue, accentS, brightL)\n const brightYellow = hslToHex(yellowHue, accentS, brightL)\n const brightBlue = hslToHex(blueHue, accentS, brightL)\n const brightMagenta = hslToHex(330, accentS, brightL) // pink-ish\n const brightCyan = hslToHex(cyanHue, accentS, brightL)\n\n // Surface colors from background\n const black = dark ? hslToHex(h, bgS, bgL * 0.7) : hslToHex(h, bgS, bgL * 0.92)\n const white = dark ? hslToHex(h, bgS * 0.3, 0.6) : hslToHex(h, bgS * 0.3, 0.35)\n const brightBlack = dark ? hslToHex(h, bgS, bgL + 0.08) : hslToHex(h, bgS, bgL - 0.08)\n const brightWhite = dark ? fg : hslToHex(h, bgS * 0.5, fgL - 0.05)\n\n const palette = {\n name: `generated-${mode}`,\n dark,\n primary: primaryColor,\n black,\n red,\n green,\n yellow,\n blue,\n magenta,\n cyan,\n white,\n brightBlack,\n brightRed,\n brightGreen,\n brightYellow,\n brightBlue,\n brightMagenta,\n brightCyan,\n brightWhite,\n foreground: fg,\n background: bg,\n cursorColor: fg,\n cursorText: bg,\n selectionBackground: blend(bg, primaryColor, 0.3),\n selectionForeground: fg,\n }\n\n // Primary seed is on the palette — deriveTheme() uses it directly,\n // ensuring contrast and deriving secondary/accent consistently.\n return deriveTheme(palette)\n}\n","/**\n * Export ColorPalette to Base16 YAML format.\n *\n * Maps ColorPalette fields to base00–base0F. For fields that\n * ColorPalette doesn't store directly (base04/base06/base07),\n * we interpolate between neighboring values.\n *\n * @see https://github.com/chriskempson/base16\n */\n\nimport { blend } from \"../color\"\nimport type { ColorPalette } from \"../types\"\n\n/** Strip `#` prefix from a hex color string and uppercase. */\nfunction stripHash(hex: string): string {\n const bare = hex.startsWith(\"#\") ? hex.slice(1) : hex\n return bare.toUpperCase()\n}\n\n/**\n * Export a ColorPalette to Base16 YAML format.\n *\n * Mapping:\n * background → base00, brightBlack → base01, selectionBackground → base02,\n * white → base03, (interpolated) → base04, foreground → base05,\n * (interpolated) → base06, (interpolated) → base07,\n * red → base08, brightRed → base09, yellow → base0A, green → base0B,\n * cyan → base0C, blue → base0D, magenta → base0E, brightMagenta → base0F.\n */\nexport function exportBase16(palette: ColorPalette): string {\n const dark = palette.dark ?? true\n\n // base04: between white (base03/muted fg) and foreground (base05)\n const base04 = blend(palette.white, palette.foreground, 0.33)\n\n // base06: light foreground — between fg and the inverse extreme\n const base06 = dark ? blend(palette.foreground, \"#FFFFFF\", 0.15) : blend(palette.foreground, \"#000000\", 0.15)\n\n // base07: lightest background — use black (the deepest bg extreme)\n const base07 = palette.black\n\n const lines = [\n `scheme: \"${palette.name ?? \"exported\"}\"`,\n `author: \"\"`,\n `base00: \"${stripHash(palette.background)}\"`,\n `base01: \"${stripHash(palette.brightBlack)}\"`,\n `base02: \"${stripHash(palette.selectionBackground)}\"`,\n `base03: \"${stripHash(palette.white)}\"`,\n `base04: \"${stripHash(base04)}\"`,\n `base05: \"${stripHash(palette.foreground)}\"`,\n `base06: \"${stripHash(base06)}\"`,\n `base07: \"${stripHash(base07)}\"`,\n `base08: \"${stripHash(palette.red)}\"`,\n `base09: \"${stripHash(palette.brightRed)}\"`,\n `base0A: \"${stripHash(palette.yellow)}\"`,\n `base0B: \"${stripHash(palette.green)}\"`,\n `base0C: \"${stripHash(palette.cyan)}\"`,\n `base0D: \"${stripHash(palette.blue)}\"`,\n `base0E: \"${stripHash(palette.magenta)}\"`,\n `base0F: \"${stripHash(palette.brightMagenta)}\"`,\n ]\n\n return lines.join(\"\\n\") + \"\\n\"\n}\n","/**\n * Terminal palette auto-detection via OSC queries.\n *\n * Enhanced version with named palette fallbacks (Nord dark, Catppuccin Latte light).\n * The base implementation lives in @silvery/ansi — this adds richer defaults.\n *\n * @silvery/theme consumers: import from here for named palette fallbacks.\n * Standalone consumers: import from @silvery/ansi for lightweight defaults.\n */\n\nimport type { ColorPalette, Theme } from \"./types\"\nimport { deriveTheme } from \"./derive\"\nimport {\n detectTerminalPalette as _detectTerminalPalette,\n queryMultiplePaletteColors,\n parsePaletteResponse,\n queryForegroundColor,\n queryBackgroundColor,\n ansi16DarkTheme,\n ansi16LightTheme,\n} from \"@silvery/ansi\"\nimport type { DetectedPalette } from \"@silvery/ansi\"\nimport { nord } from \"./palettes/nord\"\nimport { catppuccinLatte } from \"./palettes/catppuccin\"\n\n// Re-export the base detection — works standalone without named palettes\nexport { _detectTerminalPalette as detectTerminalPalette }\nexport type { DetectedPalette }\n\n// ============================================================================\n// detectTheme — high-level: detect terminal palette, fill gaps, derive theme\n// ============================================================================\n\nexport interface DetectThemeOptions {\n /** Fallback ColorPalette when detection fails or returns partial data.\n * Detected colors override matching fallback fields. */\n fallback?: ColorPalette\n /** Timeout per OSC query in ms (default 150). */\n timeoutMs?: number\n /** Terminal capabilities (from detectTerminalCaps). When provided:\n * - colorLevel \"none\"/\"basic\" skips OSC detection and returns ANSI 16 theme\n * - darkBackground informs fallback selection when detection fails */\n caps?: { colorLevel?: string; darkBackground?: boolean }\n}\n\n/**\n * Detect the terminal's color palette and derive a Theme.\n *\n * Enhanced version that uses Nord (dark) or Catppuccin Latte (light)\n * as fallback palettes for richer defaults than the base @silvery/ansi version.\n */\nexport async function detectTheme(opts: DetectThemeOptions = {}): Promise<Theme> {\n const colorLevel = opts.caps?.colorLevel\n if (colorLevel === \"none\" || colorLevel === \"basic\") {\n const isDark = opts.caps?.darkBackground ?? true\n return isDark ? ansi16DarkTheme : ansi16LightTheme\n }\n\n const detected = await _detectTerminalPalette(opts.timeoutMs)\n const isDark = detected?.dark ?? opts.caps?.darkBackground ?? true\n const fallback = opts.fallback ?? (isDark ? nord : catppuccinLatte)\n\n if (!detected) {\n return deriveTheme(fallback)\n }\n\n const merged: ColorPalette = { ...fallback, ...stripNulls(detected.palette) }\n return deriveTheme(merged)\n}\n\nfunction stripNulls(partial: Partial<ColorPalette>): Partial<ColorPalette> {\n const result: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(partial)) {\n if (v != null) result[k] = v\n }\n return result as Partial<ColorPalette>\n}\n","/**\n * @silvery/theme — Universal color themes for any platform.\n *\n * Two-layer architecture:\n * Layer 1: ColorPalette (22 terminal colors — universal pivot format)\n * Layer 2: Theme (33 semantic tokens — what UI apps consume)\n *\n * Pipeline: Palette generators → ColorPalette → deriveTheme() → Theme\n *\n * @example\n * ```typescript\n * import { createTheme, catppuccinMocha, resolveThemeColor } from \"@silvery/theme\"\n *\n * const theme = createTheme().preset('catppuccin-mocha').build()\n * const color = resolveThemeColor(\"$primary\", theme) // → \"#F9E2AF\"\n * ```\n *\n * @packageDocumentation\n */\n\n// React integration\nexport { ThemeProvider, useTheme } from \"./ThemeContext\"\nexport type { ThemeProviderProps } from \"./ThemeContext\"\n\n// Core types\nexport type { Theme, ColorPalette, HueName, AnsiPrimary, AnsiColorName } from \"./types\"\nexport { COLOR_PALETTE_FIELDS } from \"./types\"\n\n// Derivation\nexport { deriveTheme } from \"./derive\"\nexport type { ThemeAdjustment } from \"./derive\"\n\n// Color utilities\nexport {\n blend,\n brighten,\n darken,\n contrastFg,\n desaturate,\n complement,\n hexToRgb,\n rgbToHex,\n hexToHsl,\n hslToHex,\n rgbToHsl,\n} from \"./color\"\nexport type { HSL } from \"./color\"\n\n// Token resolution\nexport { resolveThemeColor } from \"./resolve\"\n\n// ANSI 16 theme generation\nexport { generateTheme } from \"./generate\"\n\n// Builder API\nexport { createTheme, quickTheme, presetTheme } from \"./builder\"\n\n// Palette generators\nexport { fromBase16, fromColors, fromPreset } from \"./generators\"\n\n// Active theme state (side-effectful)\nexport { setActiveTheme, getActiveTheme, pushContextTheme, popContextTheme } from \"./state\"\n\n// Validation\nexport { validateColorPalette } from \"./validate\"\nexport type { ValidationResult } from \"./validate\"\nexport { validateTheme, THEME_TOKEN_KEYS } from \"./validate-theme\"\nexport type { ThemeValidationResult } from \"./validate-theme\"\n\n// Contrast checking and enforcement\nexport { checkContrast, ensureContrast } from \"./contrast\"\nexport type { ContrastResult } from \"./contrast\"\n\n// Token aliasing\nexport { resolveAliases, resolveTokenAlias } from \"./alias\"\n\n// CSS variables export\nexport { themeToCSSVars } from \"./css\"\n\n// Auto-generate themes from a single color\nexport { autoGenerateTheme } from \"./auto-generate\"\n\n// Base16 import/export\nexport { importBase16 } from \"./import/base16\"\nexport { exportBase16 } from \"./export/base16\"\nexport type { Base16Scheme } from \"./import/types\"\n\n// Terminal detection\nexport { detectTerminalPalette, detectTheme } from \"./detect\"\nexport type { DetectedPalette, DetectThemeOptions } from \"./detect\"\n\n// Built-in themes (pre-derived)\nexport {\n ansi16DarkTheme,\n ansi16LightTheme,\n defaultDarkTheme,\n defaultLightTheme,\n builtinThemes,\n getThemeByName,\n} from \"./palettes/index\"\n\n// Built-in palettes (45 palettes from 15 theme families)\nexport {\n builtinPalettes,\n getPaletteByName,\n catppuccinMocha,\n catppuccinFrappe,\n catppuccinMacchiato,\n catppuccinLatte,\n nord,\n dracula,\n oneDark,\n solarizedDark,\n solarizedLight,\n gruvboxDark,\n gruvboxLight,\n tokyoNight,\n tokyoNightStorm,\n tokyoNightDay,\n rosePine,\n rosePineMoon,\n rosePineDawn,\n kanagawaWave,\n kanagawaDragon,\n kanagawaLotus,\n everforestDark,\n everforestLight,\n nightfox,\n dawnfox,\n monokai,\n monokaiPro,\n snazzy,\n materialDark,\n materialLight,\n palenight,\n ayuDark,\n ayuMirage,\n ayuLight,\n horizon,\n moonfly,\n nightfly,\n oxocarbonDark,\n oxocarbonLight,\n sonokai,\n edgeDark,\n edgeLight,\n modusVivendi,\n modusOperandi,\n} from \"./palettes/index\"\n","export * from \"./ThemeContext\"\nexport * from \"./theme\"\n"],"mappings":"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"}
|