nfx-ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +235 -0
  2. package/dist/animations.cjs +3 -0
  3. package/dist/animations.d.ts +102 -0
  4. package/dist/animations.mjs +14 -0
  5. package/dist/apis.cjs +5 -0
  6. package/dist/apis.cjs.map +1 -0
  7. package/dist/apis.d.ts +7 -0
  8. package/dist/apis.mjs +18 -0
  9. package/dist/apis.mjs.map +1 -0
  10. package/dist/chunk-BounceLoading-B54QEw0n.mjs +244 -0
  11. package/dist/chunk-BounceLoading-B54QEw0n.mjs.map +1 -0
  12. package/dist/chunk-BounceLoading-C6n4BZVJ.cjs +11 -0
  13. package/dist/chunk-BounceLoading-C6n4BZVJ.cjs.map +1 -0
  14. package/dist/chunk-animations-Brp-bsaE.mjs +1243 -0
  15. package/dist/chunk-animations-Brp-bsaE.mjs.map +1 -0
  16. package/dist/chunk-animations-e2F3zuP9.cjs +190 -0
  17. package/dist/chunk-animations-e2F3zuP9.cjs.map +1 -0
  18. package/dist/chunk-chunk-BFrxaqQT.cjs +1 -0
  19. package/dist/chunk-i18n-Bp6pPM9n.mjs +207 -0
  20. package/dist/chunk-i18n-Bp6pPM9n.mjs.map +1 -0
  21. package/dist/chunk-i18n-_7W7guSV.cjs +3 -0
  22. package/dist/chunk-i18n-_7W7guSV.cjs.map +1 -0
  23. package/dist/chunk-lstorage-BVCD00Ow.mjs +27 -0
  24. package/dist/chunk-lstorage-BVCD00Ow.mjs.map +1 -0
  25. package/dist/chunk-lstorage-BnxLXHgH.cjs +3 -0
  26. package/dist/chunk-lstorage-BnxLXHgH.cjs.map +1 -0
  27. package/dist/chunk-lucide-BhgnmTNo.mjs +158 -0
  28. package/dist/chunk-lucide-BhgnmTNo.mjs.map +1 -0
  29. package/dist/chunk-lucide-CP2lvOPY.cjs +3 -0
  30. package/dist/chunk-lucide-CP2lvOPY.cjs.map +1 -0
  31. package/dist/chunk-preference-CYl68oeU.cjs +3 -0
  32. package/dist/chunk-preference-CYl68oeU.cjs.map +1 -0
  33. package/dist/chunk-preference-DImtu5jI.mjs +51 -0
  34. package/dist/chunk-preference-DImtu5jI.mjs.map +1 -0
  35. package/dist/chunk-types-BE3JCLff.cjs +3 -0
  36. package/dist/chunk-types-BE3JCLff.cjs.map +1 -0
  37. package/dist/chunk-types-BkFxelHl.mjs +20 -0
  38. package/dist/chunk-types-BkFxelHl.mjs.map +1 -0
  39. package/dist/chunk-types-C_opkZGr.cjs +3 -0
  40. package/dist/chunk-types-C_opkZGr.cjs.map +1 -0
  41. package/dist/chunk-types-CkbZrFqZ.cjs +3 -0
  42. package/dist/chunk-types-CkbZrFqZ.cjs.map +1 -0
  43. package/dist/chunk-types-DNPBKfmx.mjs +11 -0
  44. package/dist/chunk-types-DNPBKfmx.mjs.map +1 -0
  45. package/dist/chunk-types-SD4MzUGp.mjs +11 -0
  46. package/dist/chunk-types-SD4MzUGp.mjs.map +1 -0
  47. package/dist/chunk-useLayout-BAJHOIL3.cjs +3 -0
  48. package/dist/chunk-useLayout-BAJHOIL3.cjs.map +1 -0
  49. package/dist/chunk-useLayout-DPxlynT-.mjs +12 -0
  50. package/dist/chunk-useLayout-DPxlynT-.mjs.map +1 -0
  51. package/dist/chunk-useTheme-DgleVMMh.cjs +3 -0
  52. package/dist/chunk-useTheme-DgleVMMh.cjs.map +1 -0
  53. package/dist/chunk-useTheme-oHcq3d0o.mjs +13 -0
  54. package/dist/chunk-useTheme-oHcq3d0o.mjs.map +1 -0
  55. package/dist/components.cjs +8 -0
  56. package/dist/components.cjs.map +1 -0
  57. package/dist/components.d.ts +411 -0
  58. package/dist/components.mjs +1688 -0
  59. package/dist/components.mjs.map +1 -0
  60. package/dist/constants.cjs +5 -0
  61. package/dist/constants.cjs.map +1 -0
  62. package/dist/constants.d.ts +130 -0
  63. package/dist/constants.mjs +85 -0
  64. package/dist/constants.mjs.map +1 -0
  65. package/dist/events.cjs +5 -0
  66. package/dist/events.cjs.map +1 -0
  67. package/dist/events.d.ts +66 -0
  68. package/dist/events.mjs +31 -0
  69. package/dist/events.mjs.map +1 -0
  70. package/dist/hooks.cjs +5 -0
  71. package/dist/hooks.cjs.map +1 -0
  72. package/dist/hooks.d.ts +316 -0
  73. package/dist/hooks.mjs +107 -0
  74. package/dist/hooks.mjs.map +1 -0
  75. package/dist/icons.cjs +3 -0
  76. package/dist/icons.d.ts +218 -0
  77. package/dist/icons.mjs +76 -0
  78. package/dist/languages.cjs +5 -0
  79. package/dist/languages.cjs.map +1 -0
  80. package/dist/languages.d.ts +174 -0
  81. package/dist/languages.mjs +112 -0
  82. package/dist/languages.mjs.map +1 -0
  83. package/dist/layouts.cjs +5 -0
  84. package/dist/layouts.cjs.map +1 -0
  85. package/dist/layouts.d.ts +209 -0
  86. package/dist/layouts.mjs +460 -0
  87. package/dist/layouts.mjs.map +1 -0
  88. package/dist/navigations.cjs +5 -0
  89. package/dist/navigations.cjs.map +1 -0
  90. package/dist/navigations.d.ts +72 -0
  91. package/dist/navigations.mjs +30 -0
  92. package/dist/navigations.mjs.map +1 -0
  93. package/dist/preference.cjs +3 -0
  94. package/dist/preference.d.ts +94 -0
  95. package/dist/preference.mjs +14 -0
  96. package/dist/services.cjs +5 -0
  97. package/dist/services.cjs.map +1 -0
  98. package/dist/services.d.ts +8 -0
  99. package/dist/services.mjs +26 -0
  100. package/dist/services.mjs.map +1 -0
  101. package/dist/stores.cjs +5 -0
  102. package/dist/stores.cjs.map +1 -0
  103. package/dist/stores.d.ts +101 -0
  104. package/dist/stores.mjs +167 -0
  105. package/dist/stores.mjs.map +1 -0
  106. package/dist/themes.cjs +5 -0
  107. package/dist/themes.cjs.map +1 -0
  108. package/dist/themes.d.ts +229 -0
  109. package/dist/themes.mjs +894 -0
  110. package/dist/themes.mjs.map +1 -0
  111. package/dist/types.cjs +2 -0
  112. package/dist/types.d.ts +147 -0
  113. package/dist/types.mjs +2 -0
  114. package/dist/utils.cjs +5 -0
  115. package/dist/utils.cjs.map +1 -0
  116. package/dist/utils.d.ts +374 -0
  117. package/dist/utils.mjs +293 -0
  118. package/dist/utils.mjs.map +1 -0
  119. package/package.json +196 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themes.cjs","names":[],"sources":["../src/themes/utils/themeStorage.ts","../src/themes/hooks/useThemeVariables.ts","../src/themes/themes/bases/android.ts","../src/themes/themes/bases/default.ts","../src/themes/themes/bases/ios.ts","../src/themes/themes/bases/linux.ts","../src/themes/themes/bases/windows.ts","../src/themes/themes/bases/index.ts","../src/themes/themes/colors/coffee.ts","../src/themes/themes/colors/corporate.ts","../src/themes/themes/colors/cosmic.ts","../src/themes/themes/colors/dark.ts","../src/themes/themes/colors/default.ts","../src/themes/themes/colors/forest.ts","../src/themes/themes/colors/light.ts","../src/themes/themes/colors/wine.ts","../src/themes/themes/colors/index.ts","../src/themes/providers/index.tsx"],"sourcesContent":["/**\n * 主题相关 localStorage 读写与移除,统一走 utils/lstorage;读写类型为 ThemeEnum / BaseEnum。\n * Theme localStorage get/set/remove via utils/lstorage; typed as ThemeEnum / BaseEnum.\n */\nimport type { Nilable } from \"@/types/utils\";\nimport { getItem, removeItem, setItem } from \"@/utils/lstorage\";\n\nimport { BASE_STORAGE_KEY, BASE_VALUES, BaseEnum, COLOR_STORAGE_KEY, THEME_VALUES, ThemeEnum } from \"../types\";\n\nexport function getThemeColorStorage(): Nilable<ThemeEnum> {\n const raw = getItem(COLOR_STORAGE_KEY);\n if (raw == null) return raw;\n return (THEME_VALUES as readonly string[]).includes(raw) ? (raw as ThemeEnum) : undefined;\n}\n\nexport function setThemeColorStorage(value: ThemeEnum): void {\n setItem(COLOR_STORAGE_KEY, value);\n}\n\nexport function getThemeBaseStorage(): Nilable<BaseEnum> {\n const raw = getItem(BASE_STORAGE_KEY);\n if (raw == null) return raw;\n return BASE_VALUES.includes(raw as BaseEnum) ? (raw as BaseEnum) : undefined;\n}\n\nexport function setThemeBaseStorage(value: BaseEnum): void {\n setItem(BASE_STORAGE_KEY, value);\n}\n\nexport function removeThemeStorage(): void {\n removeItem(COLOR_STORAGE_KEY);\n removeItem(BASE_STORAGE_KEY);\n}\n","import type { Theme, ThemeEnum } from \"../types\";\nimport { setThemeColorStorage } from \"../utils\";\nimport { useEffect } from \"react\";\n\n/**\n * 将当前主题变量注入到 document 的 CSS Variables,并持久化主题名到 localStorage。\n * Injects current theme variables into document CSS custom properties and persists theme name to localStorage.\n *\n * @param currentTheme - 完整主题对象(颜色 + 基础)。Full theme (colors + base).\n * @param themeName - 当前主题枚举名,用于持久化。Current theme enum key for persistence.\n */\nconst useThemeVariables = (currentTheme: Theme, themeName: ThemeEnum) => {\n useEffect(() => {\n const root = document.documentElement;\n const vars = currentTheme.colors.variables;\n const base = currentTheme.base.variables;\n\n // 主色与语义色 / Primary and semantic colors\n root.style.setProperty(\"--color-primary\", vars.primary);\n root.style.setProperty(\"--color-primary-light\", vars.primaryLight);\n root.style.setProperty(\"--color-primary-fg\", vars.primaryFg);\n root.style.setProperty(\"--color-success\", vars.success);\n root.style.setProperty(\"--color-success-light\", vars.successLight);\n root.style.setProperty(\"--color-info\", vars.info);\n root.style.setProperty(\"--color-info-light\", vars.infoLight);\n root.style.setProperty(\"--color-warning\", vars.warning);\n root.style.setProperty(\"--color-warning-light\", vars.warningLight);\n root.style.setProperty(\"--color-danger\", vars.danger);\n root.style.setProperty(\"--color-danger-light\", vars.dangerLight);\n\n // 背景色 / Background\n root.style.setProperty(\"--color-bg\", vars.bg);\n root.style.setProperty(\"--color-bg-2\", vars.bg2);\n root.style.setProperty(\"--color-bg-3\", vars.bg3);\n root.style.setProperty(\"--color-bg-4\", vars.bg4);\n\n // 边框色 / Border\n root.style.setProperty(\"--color-border\", vars.border);\n root.style.setProperty(\"--color-border-2\", vars.border2);\n root.style.setProperty(\"--color-border-3\", vars.border3);\n root.style.setProperty(\"--color-border-4\", vars.border4);\n root.style.setProperty(\"--color-border-5\", vars.border5);\n\n // 文字色 / Foreground text\n root.style.setProperty(\"--color-fg\", vars.fg);\n root.style.setProperty(\"--color-fg-text\", vars.fgText);\n root.style.setProperty(\"--color-fg-heading\", vars.fgHeading);\n root.style.setProperty(\"--color-fg-highlight\", vars.fgHighlight);\n root.style.setProperty(\"--color-separator\", vars.separator);\n\n // 基础变量(圆角等)/ Base (radius, etc.)\n root.style.setProperty(\"--radius-button\", `${base.buttonRadius}px`);\n root.style.setProperty(\"--radius-card\", `${base.cardRadius}px`);\n root.style.setProperty(\"--radius-input\", `${base.inputRadius}px`);\n\n // Temperature\n vars.temperature.arcFill.forEach((v: string, i: number) => {\n root.style.setProperty(`--temperature-arc-fill-${i}`, v);\n });\n root.style.setProperty(\"--temperature-arc-empty\", vars.temperature.arcEmpty);\n root.style.setProperty(\"--temperature-thumb-bg\", vars.temperature.thumbBg);\n root.style.setProperty(\"--temperature-thumb-border\", vars.temperature.thumbBorder);\n\n // Solar\n root.style.setProperty(\"--solar-gradient-left\", vars.solar.gradientLeft);\n root.style.setProperty(\"--solar-gradient-right\", vars.solar.gradientRight);\n root.style.setProperty(\"--solar-shadow-color\", vars.solar.shadowColor);\n root.style.setProperty(\"--solar-second-series-fill\", vars.solar.secondSeriesFill);\n\n // Traffic\n root.style.setProperty(\"--traffic-tooltip-bg\", vars.traffic.tooltipBg);\n root.style.setProperty(\"--traffic-tooltip-border-color\", vars.traffic.tooltipBorderColor);\n root.style.setProperty(\"--traffic-tooltip-text-color\", vars.traffic.tooltipTextColor);\n root.style.setProperty(\"--traffic-y-axis-split-line\", vars.traffic.yAxisSplitLine);\n root.style.setProperty(\"--traffic-line-bg\", vars.traffic.lineBg);\n root.style.setProperty(\"--traffic-item-color\", vars.traffic.itemColor);\n root.style.setProperty(\"--traffic-item-border-color\", vars.traffic.itemBorderColor);\n root.style.setProperty(\"--traffic-item-emphasis-border-color\", vars.traffic.itemEmphasisBorderColor);\n root.style.setProperty(\"--traffic-shadow-line-dark-bg\", vars.traffic.shadowLineDarkBg);\n root.style.setProperty(\"--traffic-shadow-line-shadow\", vars.traffic.shadowLineShadow);\n root.style.setProperty(\"--traffic-grad-from\", vars.traffic.gradFrom);\n root.style.setProperty(\"--traffic-grad-to\", vars.traffic.gradTo);\n\n // Electricity\n root.style.setProperty(\"--electricity-tooltip-bg\", vars.electricity.tooltipBg);\n root.style.setProperty(\"--electricity-tooltip-line-color\", vars.electricity.tooltipLineColor);\n root.style.setProperty(\"--electricity-tooltip-border-color\", vars.electricity.tooltipBorderColor);\n root.style.setProperty(\"--electricity-tooltip-text-color\", vars.electricity.tooltipTextColor);\n root.style.setProperty(\"--electricity-axis-line-color\", vars.electricity.axisLineColor);\n root.style.setProperty(\"--electricity-x-axis-text-color\", vars.electricity.xAxisTextColor);\n root.style.setProperty(\"--electricity-y-axis-split-line\", vars.electricity.yAxisSplitLine);\n root.style.setProperty(\"--electricity-item-border-color\", vars.electricity.itemBorderColor);\n root.style.setProperty(\"--electricity-line-grad-from\", vars.electricity.lineGradFrom);\n root.style.setProperty(\"--electricity-line-grad-to\", vars.electricity.lineGradTo);\n root.style.setProperty(\"--electricity-line-shadow\", vars.electricity.lineShadow);\n root.style.setProperty(\"--electricity-area-grad-from\", vars.electricity.areaGradFrom);\n root.style.setProperty(\"--electricity-area-grad-to\", vars.electricity.areaGradTo);\n root.style.setProperty(\"--electricity-shadow-line-dark-bg\", vars.electricity.shadowLineDarkBg);\n\n // ECharts\n root.style.setProperty(\"--echarts-bg\", vars.echarts.bg);\n root.style.setProperty(\"--echarts-text-color\", vars.echarts.textColor);\n root.style.setProperty(\"--echarts-axis-line-color\", vars.echarts.axisLineColor);\n root.style.setProperty(\"--echarts-split-line-color\", vars.echarts.splitLineColor);\n root.style.setProperty(\"--echarts-item-hover-shadow-color\", vars.echarts.itemHoverShadowColor);\n root.style.setProperty(\"--echarts-tooltip-bg-color\", vars.echarts.tooltipBackgroundColor);\n\n // ChartJS\n root.style.setProperty(\"--chartjs-axis-line-color\", vars.chartjs.axisLineColor);\n root.style.setProperty(\"--chartjs-text-color\", vars.chartjs.textColor);\n\n setThemeColorStorage(themeName);\n }, [themeName, currentTheme]);\n};\n\nexport default useThemeVariables;\n","import type { BaseTheme, BaseVariables } from \"../../types\";\n\nimport { BaseEnum } from \"../../types\";\n\n/** Android 风格圆角(如 6) */\nexport const androidBaseVariables: BaseVariables = {\n buttonRadius: 6,\n cardRadius: 6,\n inputRadius: 6,\n};\n\nexport const androidBaseTheme: BaseTheme = {\n name: BaseEnum.ANDROID,\n displayName: \"Android\",\n variables: androidBaseVariables,\n};\n","import type { BaseTheme, BaseVariables } from \"../../types\";\n\nimport { BaseEnum } from \"../../types\";\n\n/** 默认基础变量(跨平台通用) */\nexport const defaultBaseVariables: BaseVariables = {\n buttonRadius: 8,\n cardRadius: 8,\n inputRadius: 6,\n};\n\n/** 默认基础主题 */\nexport const defaultBaseTheme: BaseTheme = {\n name: BaseEnum.DEFAULT,\n displayName: \"Default\",\n variables: defaultBaseVariables,\n};\n","import type { BaseTheme, BaseVariables } from \"../../types\";\n\nimport { BaseEnum } from \"../../types\";\n\n/** iOS 风格圆角(较大,如 24) */\nexport const iosBaseVariables: BaseVariables = {\n buttonRadius: 24,\n cardRadius: 24,\n inputRadius: 24,\n};\n\nexport const iosBaseTheme: BaseTheme = {\n name: BaseEnum.IOS,\n displayName: \"iOS\",\n variables: iosBaseVariables,\n};\n","import type { BaseTheme, BaseVariables } from \"../../types\";\n\nimport { BaseEnum } from \"../../types\";\n\n/** Linux 风格圆角(较小,如 4) */\nexport const linuxBaseVariables: BaseVariables = {\n buttonRadius: 4,\n cardRadius: 4,\n inputRadius: 4,\n};\n\nexport const linuxBaseTheme: BaseTheme = {\n name: BaseEnum.LINUX,\n displayName: \"Linux\",\n variables: linuxBaseVariables,\n};\n","import type { BaseTheme, BaseVariables } from \"../../types\";\n\nimport { BaseEnum } from \"../../types\";\n\n/** Windows 风格圆角(如 6) */\nexport const windowsBaseVariables: BaseVariables = {\n buttonRadius: 6,\n cardRadius: 6,\n inputRadius: 6,\n};\n\nexport const windowsBaseTheme: BaseTheme = {\n name: BaseEnum.WINDOWS,\n displayName: \"Windows\",\n variables: windowsBaseVariables,\n};\n","import type { BaseTheme } from \"../../types\";\n\nimport { BaseEnum } from \"../../types\";\nimport { androidBaseTheme } from \"./android\";\nimport { defaultBaseTheme } from \"./default\";\nimport { iosBaseTheme } from \"./ios\";\nimport { linuxBaseTheme } from \"./linux\";\nimport { windowsBaseTheme } from \"./windows\";\n\nexport const bases: Record<BaseEnum, BaseTheme> = {\n [BaseEnum.DEFAULT]: defaultBaseTheme,\n [BaseEnum.IOS]: iosBaseTheme,\n [BaseEnum.ANDROID]: androidBaseTheme,\n [BaseEnum.WINDOWS]: windowsBaseTheme,\n [BaseEnum.LINUX]: linuxBaseTheme,\n};\n\nexport { defaultBaseTheme, defaultBaseVariables } from \"./default\";\nexport { iosBaseTheme, iosBaseVariables } from \"./ios\";\nexport { androidBaseTheme, androidBaseVariables } from \"./android\";\nexport { windowsBaseTheme, windowsBaseVariables } from \"./windows\";\nexport { linuxBaseTheme, linuxBaseVariables } from \"./linux\";\n","import type { ColorTheme } from \"../../types\";\n\n/**\n * Coffee 主题 - 基于 8 色盘重新设计\n * 色盘:奶油 #F8F4E1 | 浅灰米 #E4E0E1 | 浅棕 #D6C0B3 | 中棕 #AB886D / #AF8F6F\n * 深棕 #74512D | 暗棕 #493628 | 最深 #543310\n * 深棕背景 + 奶油/米色文字,语义色保持棕/绿棕/红棕调\n */\nexport const coffeeColorTheme: ColorTheme = {\n name: \"coffee\",\n displayName: \"Coffee\",\n variables: {\n // 主色 - 奶油/拿铁系\n primary: \"#AF8F6F\",\n primaryLight: \"#F8F4E1\",\n primaryFg: \"#2a1f18\",\n\n // 语义色 - 棕调配色(微调以协调)\n success: \"#6d8f72\",\n successLight: \"#8aaa8e\",\n info: \"#8a7a6a\",\n infoLight: \"#a89888\",\n warning: \"#b8926a\",\n warningLight: \"#d4b896\",\n danger: \"#a65d5d\",\n dangerLight: \"#c07d7d\",\n\n // 背景 - 由深到浅:最深 → #543310 → #493628 → #74512D\n bg: \"#2e1a08\",\n bg2: \"#543310\",\n bg3: \"#493628\",\n bg4: \"#74512D\",\n\n // 边框 - 深棕到浅米\n border: \"#493628\",\n border2: \"#543310\",\n border3: \"#74512D\",\n border4: \"#AF8F6F\",\n border5: \"#D6C0B3\",\n\n // 文字\n fg: \"#AF8F6F\",\n fgText: \"#F8F4E1\",\n fgHeading: \"#F8F4E1\",\n fgHighlight: \"#E4E0E1\",\n\n separator: \"#493628\",\n\n temperature: {\n arcFill: [\"#AF8F6F\", \"#AB886D\", \"#D6C0B3\", \"#E4E0E1\", \"#F8F4E1\"],\n arcEmpty: \"#543310\",\n thumbBg: \"#493628\",\n thumbBorder: \"#AF8F6F\",\n },\n\n solar: {\n gradientLeft: \"#AF8F6F\",\n gradientRight: \"#F8F4E1\",\n shadowColor: \"rgba(0, 0, 0, 0.35)\",\n secondSeriesFill: \"#493628\",\n },\n\n traffic: {\n tooltipBg: \"#74512D\",\n tooltipBorderColor: \"#AF8F6F\",\n tooltipTextColor: \"#F8F4E1\",\n yAxisSplitLine: \"#543310\",\n lineBg: \"#493628\",\n itemColor: \"#543310\",\n itemBorderColor: \"#AF8F6F\",\n itemEmphasisBorderColor: \"#F8F4E1\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n shadowLineShadow: \"rgba(0, 0, 0, 0)\",\n gradFrom: \"#493628\",\n gradTo: \"#2e1a08\",\n },\n\n electricity: {\n tooltipBg: \"#543310\",\n tooltipLineColor: \"#F8F4E1\",\n tooltipBorderColor: \"#AF8F6F\",\n tooltipTextColor: \"#F8F4E1\",\n axisLineColor: \"#AF8F6F\",\n xAxisTextColor: \"#AF8F6F\",\n yAxisSplitLine: \"#543310\",\n itemBorderColor: \"#AF8F6F\",\n lineGradFrom: \"#AF8F6F\",\n lineGradTo: \"#F8F4E1\",\n lineShadow: \"rgba(175, 143, 111, 0.3)\",\n areaGradFrom: \"#493628\",\n areaGradTo: \"#2e1a08\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n },\n\n echarts: {\n bg: \"#2e1a08\",\n textColor: \"#F8F4E1\",\n axisLineColor: \"#AF8F6F\",\n splitLineColor: \"#493628\",\n itemHoverShadowColor: \"rgba(0, 0, 0, 0.4)\",\n tooltipBackgroundColor: \"#543310\",\n },\n\n chartjs: {\n axisLineColor: \"#AF8F6F\",\n textColor: \"#F8F4E1\",\n },\n },\n};\n","import type { ColorTheme } from \"../../types\";\n\nexport const corporateColorTheme: ColorTheme = {\n name: \"corporate\",\n displayName: \"Corporate\",\n variables: {\n // 基础颜色\n primary: \"#3366ff\",\n primaryLight: \"#598bff\",\n primaryFg: \"#ffffff\",\n success: \"#00d68f\",\n successLight: \"#33dfaa\",\n info: \"#0095ff\",\n infoLight: \"#33a7ff\",\n warning: \"#ffaa00\",\n warningLight: \"#ffbb33\",\n danger: \"#ff3d71\",\n dangerLight: \"#ff6491\",\n\n // 背景色\n bg: \"#ffffff\",\n bg2: \"#f7f9fc\",\n bg3: \"#edf1f7\",\n bg4: \"#e4e9f2\",\n\n // 边框色\n border: \"#ffffff\",\n border2: \"#f7f9fc\",\n border3: \"#edf1f7\",\n border4: \"#e4e9f2\",\n border5: \"#c5cee0\",\n\n // 文字色\n fg: \"#8f9bb3\",\n fgText: \"#222b45\",\n fgHeading: \"#192038\",\n fgHighlight: \"#003694\",\n\n // 分隔符\n separator: \"#edf1f7\",\n\n // 扩展配置 - Temperature\n temperature: {\n arcFill: [\"#ffa36b\", \"#ffa36b\", \"#ff9e7a\", \"#ff9888\", \"#ff8ea0\"],\n arcEmpty: \"#f7f9fc\",\n thumbBg: \"#f7f9fc\",\n thumbBorder: \"#ffa36b\",\n },\n\n // Solar\n solar: {\n gradientLeft: \"#3366ff\",\n gradientRight: \"#3366ff\",\n shadowColor: \"rgba(0, 0, 0, 0)\",\n secondSeriesFill: \"#f7f9fc\",\n },\n\n traffic: {\n tooltipBg: \"#ffffff\",\n tooltipBorderColor: \"#f7f9fc\",\n tooltipTextColor: \"#222b45\",\n yAxisSplitLine: \"rgba(0, 0, 0, 0)\",\n lineBg: \"#3366ff\",\n itemColor: \"#e4e9f2\",\n itemBorderColor: \"#e4e9f2\",\n itemEmphasisBorderColor: \"#598bff\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n shadowLineShadow: \"rgba(0, 0, 0, 0)\",\n gradFrom: \"#ffffff\",\n gradTo: \"#ffffff\",\n },\n\n electricity: {\n tooltipBg: \"#ffffff\",\n tooltipLineColor: \"#222b45\",\n tooltipBorderColor: \"#f7f9fc\",\n tooltipTextColor: \"#222b45\",\n axisLineColor: \"#edf1f7\",\n xAxisTextColor: \"#8f9bb3\",\n yAxisSplitLine: \"#edf1f7\",\n itemBorderColor: \"#3366ff\",\n lineGradFrom: \"#3366ff\",\n lineGradTo: \"#3366ff\",\n lineShadow: \"rgba(0, 0, 0, 0)\",\n areaGradFrom: \"rgba(0, 0, 0, 0)\",\n areaGradTo: \"rgba(0, 0, 0, 0)\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n },\n\n echarts: {\n bg: \"#ffffff\",\n textColor: \"#222b45\",\n axisLineColor: \"#222b45\",\n splitLineColor: \"#edf1f7\",\n itemHoverShadowColor: \"rgba(0, 0, 0, 0.5)\",\n tooltipBackgroundColor: \"#3366ff\",\n },\n\n // ChartJS\n chartjs: {\n axisLineColor: \"#edf1f7\",\n textColor: \"#222b45\",\n },\n },\n};\n","import type { ColorTheme } from \"../../types\";\n\nexport const cosmicColorTheme: ColorTheme = {\n name: \"cosmic\",\n displayName: \"Cosmic\",\n variables: {\n // 基础颜色\n primary: \"#a16eff\",\n primaryLight: \"#b489ff\",\n primaryFg: \"#ffffff\",\n success: \"#00d68f\",\n successLight: \"#33dfaa\",\n info: \"#0095ff\",\n infoLight: \"#33a7ff\",\n warning: \"#ffaa00\",\n warningLight: \"#ffbb33\",\n danger: \"#ff3d71\",\n dangerLight: \"#ff6491\",\n\n // 背景色\n bg: \"#323259\",\n bg2: \"#2a2a48\",\n bg3: \"#272741\",\n bg4: \"#1f1f3a\",\n\n // 边框色\n border: \"#323259\",\n border2: \"#2a2a48\",\n border3: \"#272741\",\n border4: \"#1f1f3a\",\n border5: \"#1f1f3a\",\n\n // 文字色\n fg: \"#b4b4db\",\n fgText: \"#ffffff\",\n fgHeading: \"#ffffff\",\n fgHighlight: \"#a16eff\",\n\n // 分隔符\n separator: \"#2a2a48\",\n\n // 扩展配置 - Temperature\n temperature: {\n arcFill: [\"#2ec7fe\", \"#31ffad\", \"#7bff24\", \"#fff024\", \"#f7bd59\"],\n arcEmpty: \"#2a2a48\",\n thumbBg: \"#ffffff\",\n thumbBorder: \"#ffffff\",\n },\n\n // Solar\n solar: {\n gradientLeft: \"#a16eff\",\n gradientRight: \"#a16eff\",\n shadowColor: \"rgba(0, 0, 0, 0)\",\n secondSeriesFill: \"#2a2a48\",\n },\n\n traffic: {\n tooltipBg: \"#323259\",\n tooltipBorderColor: \"#2a2a48\",\n tooltipTextColor: \"#ffffff\",\n yAxisSplitLine: \"#2a2a48\",\n lineBg: \"#2a2a48\",\n itemColor: \"#2a2a48\",\n itemBorderColor: \"#2a2a48\",\n itemEmphasisBorderColor: \"#a16eff\",\n shadowLineDarkBg: \"#272741\",\n shadowLineShadow: \"#272741\",\n gradFrom: \"#323259\",\n gradTo: \"#2a2a48\",\n },\n\n electricity: {\n tooltipBg: \"#323259\",\n tooltipLineColor: \"#ffffff\",\n tooltipBorderColor: \"#2a2a48\",\n tooltipTextColor: \"#ffffff\",\n axisLineColor: \"#272741\",\n xAxisTextColor: \"#b4b4db\",\n yAxisSplitLine: \"#2a2a48\",\n itemBorderColor: \"#2a2a48\",\n lineGradFrom: \"#00d68f\",\n lineGradTo: \"#ffaa00\",\n lineShadow: \"#1f1f3a\",\n areaGradFrom: \"#2a2a48\",\n areaGradTo: \"#272741\",\n shadowLineDarkBg: \"#272741\",\n },\n\n echarts: {\n bg: \"#323259\",\n textColor: \"#ffffff\",\n axisLineColor: \"#ffffff\",\n splitLineColor: \"#2a2a48\",\n itemHoverShadowColor: \"rgba(0, 0, 0, 0.5)\",\n tooltipBackgroundColor: \"#a16eff\",\n },\n\n // ChartJS\n chartjs: {\n axisLineColor: \"#2a2a48\",\n textColor: \"#ffffff\",\n },\n },\n};\n","import type { ColorTheme } from \"../../types\";\n\n/**\n * Dark 主题 - 重新设计\n * - 背景层级分明(base → surface → elevated)\n * - 边框可见且不刺眼\n * - 主色为蓝色强调,语义色适配深色背景\n * - 文字对比度符合可读性\n */\nexport const darkColorTheme: ColorTheme = {\n name: \"dark\",\n displayName: \"Dark\",\n variables: {\n // 主色 - 金黄色/琥珀色\n primary: \"#d4a017\",\n primaryLight: \"#eab308\",\n primaryFg: \"#1a1a1a\",\n\n // 语义色 - 深色模式、无蓝色,info 用青绿区分\n success: \"#22c55e\",\n successLight: \"#4ade80\",\n info: \"#14b8a6\",\n infoLight: \"#2dd4bf\",\n warning: \"#eab308\",\n warningLight: \"#facc15\",\n danger: \"#ef4444\",\n dangerLight: \"#f87171\",\n\n // 背景色 - 明确层级(由深到浅)\n bg: \"#0f0f11\",\n bg2: \"#18181b\",\n bg3: \"#27272a\",\n bg4: \"#3f3f46\",\n\n // 边框色 - 与背景区分,便于识别边界\n border: \"#18181b\",\n border2: \"#27272a\",\n border3: \"#3f3f46\",\n border4: \"#52525b\",\n border5: \"#71717a\",\n\n // 文字色 - 主文白、标题更亮、辅助文灰\n fg: \"#a1a1aa\",\n fgText: \"#fafafa\",\n fgHeading: \"#ffffff\",\n fgHighlight: \"#fde047\",\n\n // 分隔线\n separator: \"#27272a\",\n\n // 扩展配置 - Temperature\n temperature: {\n arcFill: [\"#d4a017\", \"#eab308\", \"#fcd34d\", \"#fde047\", \"#fde047\"],\n arcEmpty: \"#27272a\",\n thumbBg: \"#27272a\",\n thumbBorder: \"#52525b\",\n },\n\n // Solar\n solar: {\n gradientLeft: \"#d4a017\",\n gradientRight: \"#eab308\",\n shadowColor: \"rgba(0, 0, 0, 0.3)\",\n secondSeriesFill: \"#27272a\",\n },\n\n traffic: {\n tooltipBg: \"#27272a\",\n tooltipBorderColor: \"#3f3f46\",\n tooltipTextColor: \"#fafafa\",\n yAxisSplitLine: \"#27272a\",\n lineBg: \"#3f3f46\",\n itemColor: \"#3f3f46\",\n itemBorderColor: \"#52525b\",\n itemEmphasisBorderColor: \"#eab308\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n shadowLineShadow: \"rgba(0, 0, 0, 0)\",\n gradFrom: \"#27272a\",\n gradTo: \"#18181b\",\n },\n\n electricity: {\n tooltipBg: \"#27272a\",\n tooltipLineColor: \"#fafafa\",\n tooltipBorderColor: \"#3f3f46\",\n tooltipTextColor: \"#fafafa\",\n axisLineColor: \"#3f3f46\",\n xAxisTextColor: \"#a1a1aa\",\n yAxisSplitLine: \"#27272a\",\n itemBorderColor: \"#eab308\",\n lineGradFrom: \"#d4a017\",\n lineGradTo: \"#eab308\",\n lineShadow: \"rgba(212, 160, 23, 0.35)\",\n areaGradFrom: \"#27272a\",\n areaGradTo: \"#18181b\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n },\n\n echarts: {\n bg: \"#18181b\",\n textColor: \"#fafafa\",\n axisLineColor: \"#52525b\",\n splitLineColor: \"#27272a\",\n itemHoverShadowColor: \"rgba(0, 0, 0, 0.4)\",\n tooltipBackgroundColor: \"#27272a\",\n },\n\n // ChartJS\n chartjs: {\n axisLineColor: \"#3f3f46\",\n textColor: \"#fafafa\",\n },\n },\n};\n","import type { ColorTheme } from \"../../types\";\n\n// 基于 ReX-App 的 light.ts 红色系配色创建的 default 主题\nexport const defaultColorTheme: ColorTheme = {\n name: \"default\",\n displayName: \"Default\",\n variables: {\n // 基础颜色 - 红色系\n primary: \"rgb(250, 30, 22)\", // #FA1E16 鲜红色\n primaryLight: \"rgb(255, 120, 120)\", // 浅红色\n primaryFg: \"#ffffff\",\n success: \"rgb(62, 168, 30)\", // 浅绿色(对比色)\n successLight: \"rgb(220, 255, 210)\",\n info: \"rgb(255, 160, 150)\", // 亮橙红\n infoLight: \"rgb(255, 200, 180)\",\n warning: \"rgb(248, 104, 7)\", // 明亮橙色\n warningLight: \"rgb(255, 140, 60)\",\n danger: \"rgb(211, 17, 11)\", // 深红色\n dangerLight: \"rgb(243, 70, 64)\",\n\n // 背景色 - 浅色系\n bg: \"rgb(250, 250, 250)\", // 纯白\n bg2: \"rgb(245, 245, 245)\",\n bg3: \"rgb(226, 224, 224)\",\n bg4: \"rgb(207, 207, 207)\",\n\n // 边框色\n border: \"rgb(250, 250, 250)\",\n border2: \"rgb(245, 245, 245)\",\n border3: \"rgb(226, 224, 224)\",\n border4: \"rgb(207, 207, 207)\",\n border5: \"rgb(136, 136, 136)\",\n\n // 文字色\n fg: \"rgb(136, 136, 136)\", // 灰色文字\n fgText: \"rgb(22, 21, 21)\", // 黑色文字\n fgHeading: \"rgb(0, 0, 0)\", // 纯黑标题\n fgHighlight: \"rgb(250, 30, 22)\", // 红色高亮\n\n // 分隔符\n separator: \"rgb(226, 224, 224)\",\n\n // 扩展配置 - Temperature\n temperature: {\n arcFill: [\n \"rgb(255, 210, 210)\", // 非常浅的淡红\n \"rgb(255, 200, 160)\", // 柔和杏色\n \"rgb(255, 160, 150)\", // 更偏亮橙红\n \"rgb(255, 120, 120)\", // 浅红\n \"rgb(250, 30, 22)\", // 主红色\n ],\n arcEmpty: \"rgb(245, 245, 245)\",\n thumbBg: \"rgb(245, 245, 245)\",\n thumbBorder: \"rgb(250, 30, 22)\",\n },\n\n // Solar\n solar: {\n gradientLeft: \"rgb(250, 30, 22)\",\n gradientRight: \"rgb(248, 104, 7)\",\n shadowColor: \"rgba(250, 30, 22, 0.1)\",\n secondSeriesFill: \"rgb(245, 245, 245)\",\n },\n\n traffic: {\n tooltipBg: \"rgb(250, 250, 250)\",\n tooltipBorderColor: \"rgb(245, 245, 245)\",\n tooltipTextColor: \"rgb(22, 21, 21)\",\n yAxisSplitLine: \"rgb(226, 224, 224)\",\n lineBg: \"rgb(207, 207, 207)\",\n itemColor: \"rgb(207, 207, 207)\",\n itemBorderColor: \"rgb(207, 207, 207)\",\n itemEmphasisBorderColor: \"rgb(250, 30, 22)\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n shadowLineShadow: \"rgba(0, 0, 0, 0)\",\n gradFrom: \"rgb(245, 245, 245)\",\n gradTo: \"rgb(245, 245, 245)\",\n },\n\n electricity: {\n tooltipBg: \"rgb(250, 250, 250)\",\n tooltipLineColor: \"rgb(22, 21, 21)\",\n tooltipBorderColor: \"rgb(245, 245, 245)\",\n tooltipTextColor: \"rgb(22, 21, 21)\",\n axisLineColor: \"rgb(226, 224, 224)\",\n xAxisTextColor: \"rgb(136, 136, 136)\",\n yAxisSplitLine: \"rgb(226, 224, 224)\",\n itemBorderColor: \"rgb(250, 30, 22)\",\n lineGradFrom: \"rgb(250, 30, 22)\",\n lineGradTo: \"rgb(248, 104, 7)\",\n lineShadow: \"rgba(250, 30, 22, 0.2)\",\n areaGradFrom: \"rgba(250, 30, 22, 0.1)\",\n areaGradTo: \"rgba(250, 30, 22, 0.05)\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n },\n\n echarts: {\n bg: \"rgb(250, 250, 250)\",\n textColor: \"rgb(22, 21, 21)\",\n axisLineColor: \"rgb(136, 136, 136)\",\n splitLineColor: \"rgb(226, 224, 224)\",\n itemHoverShadowColor: \"rgba(250, 30, 22, 0.3)\",\n tooltipBackgroundColor: \"rgb(250, 30, 22)\",\n },\n\n // ChartJS\n chartjs: {\n axisLineColor: \"rgb(226, 224, 224)\",\n textColor: \"rgb(22, 21, 21)\",\n },\n },\n};\n","import type { ColorTheme } from \"../../types\";\n\n/**\n * Forest 主题 - 森林绿配色\n * - 主色:翠绿 #1F7A5A,按钮、链接、强调\n * - 深绿底 + 浅绿层级\n */\nexport const forestColorTheme: ColorTheme = {\n name: \"forest\",\n displayName: \"Forest\",\n variables: {\n primary: \"#1F7A5A\",\n primaryLight: \"#E6F2EE\",\n primaryFg: \"#FFFFFF\",\n\n success: \"#1F7A5A\",\n successLight: \"#E6F2EE\",\n\n info: \"#2563EB\",\n infoLight: \"#E8F0FF\",\n\n warning: \"#B45309\",\n warningLight: \"#FFF4E5\",\n\n danger: \"#B42318\",\n dangerLight: \"#FDECEC\",\n\n // ===== Backgrounds (White-based) =====\n bg: \"#FFFFFF\",\n bg2: \"#F7F9F8\",\n bg3: \"#EEF3F1\",\n bg4: \"#E6EFEC\",\n\n // ===== Borders (subtle greys w/ green hint) =====\n border: \"#E5E7EB\",\n border2: \"#D1D5DB\",\n border3: \"#C7D2CF\",\n border4: \"#B6C4BF\",\n border5: \"#1F7A5A\", // strong focus border\n\n // ===== Text =====\n fg: \"#111827\",\n fgText: \"#374151\",\n fgHeading: \"#0F172A\",\n fgHighlight: \"#1F7A5A\",\n separator: \"#E5E7EB\",\n\n temperature: {\n arcFill: [\"#E6F2EE\", \"#A7D8C6\", \"#4AA987\", \"#1F7A5A\", \"#145A43\"],\n arcEmpty: \"#E5E7EB\",\n thumbBg: \"#1F7A5A\",\n thumbBorder: \"#145A43\",\n },\n\n solar: {\n gradientLeft: \"#E6F2EE\",\n gradientRight: \"#1F7A5A\",\n shadowColor: \"rgba(31, 122, 90, 0.25)\",\n secondSeriesFill: \"#A7D8C6\",\n },\n\n traffic: {\n tooltipBg: \"#FFFFFF\",\n tooltipBorderColor: \"#E5E7EB\",\n tooltipTextColor: \"#111827\",\n yAxisSplitLine: \"#E5E7EB\",\n lineBg: \"rgba(31, 122, 90, 0.08)\",\n itemColor: \"#1F7A5A\",\n itemBorderColor: \"#145A43\",\n itemEmphasisBorderColor: \"#0E5A41\",\n shadowLineDarkBg: \"rgba(31, 122, 90, 0.15)\",\n shadowLineShadow: \"rgba(31, 122, 90, 0.20)\",\n gradFrom: \"#E6F2EE\",\n gradTo: \"#1F7A5A\",\n },\n\n electricity: {\n tooltipBg: \"#FFFFFF\",\n tooltipLineColor: \"#1F7A5A\",\n tooltipBorderColor: \"#E5E7EB\",\n tooltipTextColor: \"#111827\",\n axisLineColor: \"#D1D5DB\",\n xAxisTextColor: \"#374151\",\n yAxisSplitLine: \"#E5E7EB\",\n itemBorderColor: \"#145A43\",\n lineGradFrom: \"#E6F2EE\",\n lineGradTo: \"#1F7A5A\",\n lineShadow: \"rgba(31, 122, 90, 0.25)\",\n areaGradFrom: \"rgba(31, 122, 90, 0.25)\",\n areaGradTo: \"rgba(31, 122, 90, 0.00)\",\n shadowLineDarkBg: \"rgba(31, 122, 90, 0.10)\",\n },\n\n echarts: {\n bg: \"#FFFFFF\",\n textColor: \"#111827\",\n axisLineColor: \"#D1D5DB\",\n splitLineColor: \"#E5E7EB\",\n itemHoverShadowColor: \"rgba(31, 122, 90, 0.25)\",\n tooltipBackgroundColor: \"#FFFFFF\",\n },\n\n chartjs: {\n axisLineColor: \"#D1D5DB\",\n textColor: \"#111827\",\n },\n },\n};\n","import type { ColorTheme } from \"../../types\";\n\n// 原 ngx-admin 的 default 主题(浅灰蓝色风格)\nexport const lightColorTheme: ColorTheme = {\n name: \"light\",\n displayName: \"Light\",\n variables: {\n // 基础颜色 - 黑白对比色系\n primary: \"#222b45\",\n primaryLight: \"#192038\",\n primaryFg: \"#ffffff\",\n success: \"#00d68f\",\n successLight: \"#33dfaa\",\n info: \"#0095ff\",\n infoLight: \"#33a7ff\",\n warning: \"#ffaa00\",\n warningLight: \"#ffbb33\",\n danger: \"#ff3d71\",\n dangerLight: \"#ff6491\",\n\n // 背景色\n bg: \"#ffffff\",\n bg2: \"#f7f9fc\",\n bg3: \"#edf1f7\",\n bg4: \"#e4e9f2\",\n\n // 边框色\n border: \"#ffffff\",\n border2: \"#f7f9fc\",\n border3: \"#edf1f7\",\n border4: \"#e4e9f2\",\n border5: \"#c5cee0\",\n\n // 文字色\n fg: \"#8f9bb3\",\n fgText: \"#222b45\",\n fgHeading: \"#192038\",\n fgHighlight: \"#003694\",\n\n // 分隔符\n separator: \"#edf1f7\",\n\n // 扩展配置 - Temperature\n temperature: {\n arcFill: [\"#8f9bb3\", \"#8f9bb3\", \"#8f9bb3\", \"#8f9bb3\", \"#8f9bb3\"],\n arcEmpty: \"#f7f9fc\",\n thumbBg: \"#f7f9fc\",\n thumbBorder: \"#8f9bb3\",\n },\n\n solar: {\n gradientLeft: \"#8f9bb3\",\n gradientRight: \"#8f9bb3\",\n shadowColor: \"rgba(0, 0, 0, 0)\",\n secondSeriesFill: \"#f7f9fc\",\n },\n\n traffic: {\n tooltipBg: \"#ffffff\",\n tooltipBorderColor: \"#f7f9fc\",\n tooltipTextColor: \"#222b45\",\n yAxisSplitLine: \"#edf1f7\",\n lineBg: \"#e4e9f2\",\n itemColor: \"#e4e9f2\",\n itemBorderColor: \"#e4e9f2\",\n itemEmphasisBorderColor: \"#8f9bb3\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n shadowLineShadow: \"rgba(0, 0, 0, 0)\",\n gradFrom: \"#f7f9fc\",\n gradTo: \"#f7f9fc\",\n },\n\n electricity: {\n tooltipBg: \"#ffffff\",\n tooltipLineColor: \"#222b45\",\n tooltipBorderColor: \"#f7f9fc\",\n tooltipTextColor: \"#222b45\",\n axisLineColor: \"#edf1f7\",\n xAxisTextColor: \"#8f9bb3\",\n yAxisSplitLine: \"#edf1f7\",\n itemBorderColor: \"#8f9bb3\",\n lineGradFrom: \"#8f9bb3\",\n lineGradTo: \"#8f9bb3\",\n lineShadow: \"rgba(0, 0, 0, 0)\",\n areaGradFrom: \"#f7f9fc\",\n areaGradTo: \"#f7f9fc\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n },\n\n echarts: {\n bg: \"#ffffff\",\n textColor: \"#222b45\",\n axisLineColor: \"#222b45\",\n splitLineColor: \"#edf1f7\",\n itemHoverShadowColor: \"rgba(0, 0, 0, 0.5)\",\n tooltipBackgroundColor: \"#8f9bb3\",\n },\n\n // ChartJS\n chartjs: {\n axisLineColor: \"#edf1f7\",\n textColor: \"#222b45\",\n },\n },\n};\n","import type { ColorTheme } from \"../../types\";\n\n/**\n * Wine 主题(深色)- 8 色盘(Burgundy 体系)\n * #2A0B12 Background | #3A0F1A Surface | #4A1322 Secondary | #800020 Primary\n * #9A1F3D Primary Hover | #B23A5C Accent | #C97A8A Muted Highlight | #F4E6E9 Text\n */\nexport const wineColorTheme: ColorTheme = {\n name: \"wine\",\n displayName: \"Wine\",\n variables: {\n primary: \"#800020\",\n primaryLight: \"#F4E6E9\",\n primaryFg: \"#F4E6E9\",\n\n success: \"#6b8f6b\",\n successLight: \"#8aaa8e\",\n info: \"#8a6a6a\",\n infoLight: \"#a88a8a\",\n warning: \"#c49050\",\n warningLight: \"#d4b080\",\n danger: \"#b85050\",\n dangerLight: \"#d07070\",\n\n bg: \"#2A0B12\",\n bg2: \"#3A0F1A\",\n bg3: \"#4A1322\",\n bg4: \"#4A1322\",\n\n border: \"#2A0B12\",\n border2: \"#3A0F1A\",\n border3: \"#4A1322\",\n border4: \"#800020\",\n border5: \"#B23A5C\",\n\n fg: \"#C97A8A\",\n fgText: \"#F4E6E9\",\n fgHeading: \"#F4E6E9\",\n fgHighlight: \"#F4E6E9\",\n\n separator: \"#3A0F1A\",\n\n temperature: {\n arcFill: [\"#800020\", \"#9A1F3D\", \"#B23A5C\", \"#C97A8A\", \"#F4E6E9\"],\n arcEmpty: \"#2A0B12\",\n thumbBg: \"#3A0F1A\",\n thumbBorder: \"#800020\",\n },\n\n solar: {\n gradientLeft: \"#800020\",\n gradientRight: \"#F4E6E9\",\n shadowColor: \"rgba(0, 0, 0, 0.4)\",\n secondSeriesFill: \"#3A0F1A\",\n },\n\n traffic: {\n tooltipBg: \"#4A1322\",\n tooltipBorderColor: \"#B23A5C\",\n tooltipTextColor: \"#F4E6E9\",\n yAxisSplitLine: \"#3A0F1A\",\n lineBg: \"#3A0F1A\",\n itemColor: \"#2A0B12\",\n itemBorderColor: \"#800020\",\n itemEmphasisBorderColor: \"#F4E6E9\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n shadowLineShadow: \"rgba(0, 0, 0, 0)\",\n gradFrom: \"#3A0F1A\",\n gradTo: \"#2A0B12\",\n },\n\n electricity: {\n tooltipBg: \"#3A0F1A\",\n tooltipLineColor: \"#F4E6E9\",\n tooltipBorderColor: \"#800020\",\n tooltipTextColor: \"#F4E6E9\",\n axisLineColor: \"#B23A5C\",\n xAxisTextColor: \"#C97A8A\",\n yAxisSplitLine: \"#3A0F1A\",\n itemBorderColor: \"#800020\",\n lineGradFrom: \"#800020\",\n lineGradTo: \"#F4E6E9\",\n lineShadow: \"rgba(128, 0, 32, 0.35)\",\n areaGradFrom: \"#3A0F1A\",\n areaGradTo: \"#2A0B12\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n },\n\n echarts: {\n bg: \"#2A0B12\",\n textColor: \"#F4E6E9\",\n axisLineColor: \"#B23A5C\",\n splitLineColor: \"#3A0F1A\",\n itemHoverShadowColor: \"rgba(0, 0, 0, 0.4)\",\n tooltipBackgroundColor: \"#3A0F1A\",\n },\n\n chartjs: {\n axisLineColor: \"#B23A5C\",\n textColor: \"#F4E6E9\",\n },\n },\n};\n","import type { Theme } from \"../../types\";\n\nimport { ThemeEnum } from \"../../types\";\nimport { defaultBaseTheme } from \"../bases/default\";\nimport { coffeeColorTheme } from \"./coffee\";\nimport { corporateColorTheme } from \"./corporate\";\nimport { cosmicColorTheme } from \"./cosmic\";\nimport { darkColorTheme } from \"./dark\";\nimport { defaultColorTheme } from \"./default\";\nimport { forestColorTheme } from \"./forest\";\nimport { lightColorTheme } from \"./light\";\nimport { wineColorTheme } from \"./wine\";\n\nconst defaultTheme: Theme = { colors: defaultColorTheme, base: defaultBaseTheme };\nconst lightTheme: Theme = { colors: lightColorTheme, base: defaultBaseTheme };\nconst darkTheme: Theme = { colors: darkColorTheme, base: defaultBaseTheme };\nconst cosmicTheme: Theme = { colors: cosmicColorTheme, base: defaultBaseTheme };\nconst corporateTheme: Theme = { colors: corporateColorTheme, base: defaultBaseTheme };\nconst forestTheme: Theme = { colors: forestColorTheme, base: defaultBaseTheme };\nconst coffeeTheme: Theme = { colors: coffeeColorTheme, base: defaultBaseTheme };\nconst wineTheme: Theme = { colors: wineColorTheme, base: defaultBaseTheme };\n\nexport const themes: Record<ThemeEnum, Theme> = {\n [ThemeEnum.DEFAULT]: defaultTheme,\n [ThemeEnum.LIGHT]: lightTheme,\n [ThemeEnum.DARK]: darkTheme,\n [ThemeEnum.COSMIC]: cosmicTheme,\n [ThemeEnum.CORPORATE]: corporateTheme,\n [ThemeEnum.FOREST]: forestTheme,\n [ThemeEnum.COFFEE]: coffeeTheme,\n [ThemeEnum.WINE]: wineTheme,\n};\n\nexport { defaultTheme, lightTheme, darkTheme, cosmicTheme, corporateTheme, forestTheme, coffeeTheme, wineTheme };\n","/**\n * 主题提供者:提供颜色主题与基础主题(圆角等)上下文。\n * Theme provider: provides color theme and base theme (e.g. radius) context.\n */\nimport type { Theme, ThemeProviderProps } from \"../types\";\n\nimport { memo, useMemo, useState } from \"react\";\n\nimport { ThemeContext } from \"../hooks/useTheme\";\nimport useThemeVariables from \"../hooks/useThemeVariables\";\nimport { bases } from \"../themes/bases\";\nimport { themes } from \"../themes/colors\";\nimport { getThemeBaseStorage, getThemeColorStorage, setThemeBaseStorage } from \"../utils\";\nimport { BASE_VALUES, BaseEnum, THEME_VALUES, ThemeEnum } from \"../types\";\n\nconst ThemeProvider = memo(({ children, defaultTheme = ThemeEnum.DEFAULT, defaultBase = BaseEnum.DEFAULT }: ThemeProviderProps) => {\n const [themeName, setThemeName] = useState<ThemeEnum>(() => {\n const saved = getThemeColorStorage();\n return saved != null && saved in themes ? saved : defaultTheme;\n });\n const [baseName, setBaseName] = useState<BaseEnum>(() => {\n const saved = getThemeBaseStorage();\n return saved != null ? saved : defaultBase;\n });\n\n const currentTheme = useMemo<Theme>(\n () => ({\n colors: themes[themeName].colors,\n base: bases[baseName],\n }),\n [themeName, baseName],\n );\n\n useThemeVariables(currentTheme, themeName);\n\n const setTheme = (newTheme: ThemeEnum) => {\n setThemeName(newTheme);\n };\n const setBase = (newBase: BaseEnum) => {\n setBaseName(newBase);\n setThemeBaseStorage(newBase);\n };\n\n return (\n <ThemeContext.Provider\n value={{\n currentTheme,\n themeName,\n baseName,\n setTheme,\n setBase,\n availableThemes: THEME_VALUES,\n availableBases: BASE_VALUES,\n }}\n >\n {children}\n </ThemeContext.Provider>\n );\n});\n\nThemeProvider.displayName = \"ThemeProvider\";\nexport default ThemeProvider;\n"],"mappings":"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"}
@@ -0,0 +1,229 @@
1
+ import { Context } from 'react';
2
+ import { JSX } from 'react/jsx-runtime';
3
+ import { MemoExoticComponent } from 'react';
4
+ import { ReactNode } from 'react';
5
+
6
+ export declare const BASE_STORAGE_KEY = "theme-base";
7
+
8
+ export declare const BASE_VALUES: BaseEnum[];
9
+
10
+ /** 基础主题枚举(平台/圆角等,如 iOS 24 / Android|Windows 6 / Linux 4) */
11
+ export declare enum BaseEnum {
12
+ DEFAULT = "default",
13
+ IOS = "ios",
14
+ ANDROID = "android",
15
+ WINDOWS = "windows",
16
+ LINUX = "linux"
17
+ }
18
+
19
+ export declare const bases: Record<BaseEnum, BaseTheme>;
20
+
21
+ /** 基础主题:name/displayName 表示这套基础规范是谁(如 iOS / Android / 默认) */
22
+ export declare interface BaseTheme {
23
+ name: string;
24
+ displayName: string;
25
+ variables: BaseVariables;
26
+ }
27
+
28
+ /** 非颜色变量(圆角等,可随平台不同:iOS 24 / Android|Windows 6 / Linux 4) */
29
+ export declare interface BaseVariables {
30
+ buttonRadius: number;
31
+ cardRadius: number;
32
+ inputRadius: number;
33
+ }
34
+
35
+ export declare const coffeeTheme: Theme;
36
+
37
+ export declare const COLOR_STORAGE_KEY = "theme-color";
38
+
39
+ /** 颜色主题:name/displayName 表示这套配色是谁 */
40
+ export declare interface ColorTheme {
41
+ name: string;
42
+ displayName: string;
43
+ variables: ColorVariables;
44
+ }
45
+
46
+ /**
47
+ * 主题相关类型:颜色变量、基础变量、主题枚举与常量。
48
+ * Theme types: color/base variables, theme enums and constants.
49
+ */
50
+ /** 颜色变量(主题色、背景、边框、文字、图表等一切与颜色相关) */
51
+ export declare interface ColorVariables {
52
+ primary: string;
53
+ primaryLight: string;
54
+ primaryFg: string;
55
+ success: string;
56
+ successLight: string;
57
+ info: string;
58
+ infoLight: string;
59
+ warning: string;
60
+ warningLight: string;
61
+ danger: string;
62
+ dangerLight: string;
63
+ bg: string;
64
+ bg2: string;
65
+ bg3: string;
66
+ bg4: string;
67
+ border: string;
68
+ border2: string;
69
+ border3: string;
70
+ border4: string;
71
+ border5: string;
72
+ fg: string;
73
+ fgText: string;
74
+ fgHeading: string;
75
+ fgHighlight: string;
76
+ separator: string;
77
+ temperature: {
78
+ arcFill: string[];
79
+ arcEmpty: string;
80
+ thumbBg: string;
81
+ thumbBorder: string;
82
+ };
83
+ solar: {
84
+ gradientLeft: string;
85
+ gradientRight: string;
86
+ shadowColor: string;
87
+ secondSeriesFill: string;
88
+ };
89
+ traffic: {
90
+ tooltipBg: string;
91
+ tooltipBorderColor: string;
92
+ tooltipTextColor: string;
93
+ yAxisSplitLine: string;
94
+ lineBg: string;
95
+ itemColor: string;
96
+ itemBorderColor: string;
97
+ itemEmphasisBorderColor: string;
98
+ shadowLineDarkBg: string;
99
+ shadowLineShadow: string;
100
+ gradFrom: string;
101
+ gradTo: string;
102
+ };
103
+ electricity: {
104
+ tooltipBg: string;
105
+ tooltipLineColor: string;
106
+ tooltipBorderColor: string;
107
+ tooltipTextColor: string;
108
+ axisLineColor: string;
109
+ xAxisTextColor: string;
110
+ yAxisSplitLine: string;
111
+ itemBorderColor: string;
112
+ lineGradFrom: string;
113
+ lineGradTo: string;
114
+ lineShadow: string;
115
+ areaGradFrom: string;
116
+ areaGradTo: string;
117
+ shadowLineDarkBg: string;
118
+ };
119
+ echarts: {
120
+ bg: string;
121
+ textColor: string;
122
+ axisLineColor: string;
123
+ splitLineColor: string;
124
+ itemHoverShadowColor: string;
125
+ tooltipBackgroundColor: string;
126
+ };
127
+ chartjs: {
128
+ axisLineColor: string;
129
+ textColor: string;
130
+ };
131
+ }
132
+
133
+ export declare const corporateTheme: Theme;
134
+
135
+ export declare const cosmicTheme: Theme;
136
+
137
+ export declare const darkTheme: Theme;
138
+
139
+ export declare const DEFAULT_BASE = BaseEnum.DEFAULT;
140
+
141
+ export declare const DEFAULT_THEME = ThemeEnum.DEFAULT;
142
+
143
+ export declare const defaultTheme: Theme;
144
+
145
+ export declare const forestTheme: Theme;
146
+
147
+ export declare function getThemeBaseStorage(): Nilable<BaseEnum>;
148
+
149
+ export declare function getThemeColorStorage(): Nilable<ThemeEnum>;
150
+
151
+ /**
152
+ * 可为 null 或 undefined。T | null | undefined.
153
+ * @example Nilable<boolean> => boolean | null | undefined
154
+ */
155
+ declare type Nilable<T> = T | null | undefined;
156
+
157
+ export declare function removeThemeStorage(): void;
158
+
159
+ export declare function setThemeBaseStorage(value: BaseEnum): void;
160
+
161
+ export declare function setThemeColorStorage(value: ThemeEnum): void;
162
+
163
+ /** 完整主题 = 颜色主题 + 基础主题 */
164
+ export declare interface Theme {
165
+ colors: ColorTheme;
166
+ base: BaseTheme;
167
+ }
168
+
169
+ export declare const THEME_VALUES: ThemeEnum[];
170
+
171
+ export declare const ThemeContext: Context<ThemeContextType | undefined>;
172
+
173
+ /** useTheme 返回值类型。Return type of useTheme. */
174
+ export declare interface ThemeContextType {
175
+ /** 当前完整主题(颜色+基础)。Current full theme (colors + base). */
176
+ currentTheme: Theme;
177
+ /** 当前颜色主题名。Current color theme name. */
178
+ themeName: ThemeEnum;
179
+ /** 当前基础主题名。Current base theme name. */
180
+ baseName: BaseEnum;
181
+ setTheme: (themeName: ThemeEnum) => void;
182
+ setBase: (baseName: BaseEnum) => void;
183
+ /** 可选颜色主题列表。Available color themes. */
184
+ availableThemes: ThemeEnum[];
185
+ /** 可选基础主题列表。Available base themes. */
186
+ availableBases: BaseEnum[];
187
+ }
188
+
189
+ /** 颜色主题枚举 */
190
+ export declare enum ThemeEnum {
191
+ DEFAULT = "default",
192
+ LIGHT = "light",
193
+ CORPORATE = "corporate",
194
+ FOREST = "forest",
195
+ DARK = "dark",
196
+ COSMIC = "cosmic",
197
+ COFFEE = "coffee",
198
+ WINE = "wine"
199
+ }
200
+
201
+ export declare const ThemeProvider: MemoExoticComponent<({ children, defaultTheme, defaultBase }: ThemeProviderProps) => JSX.Element>;
202
+
203
+ /** 主题 Provider 的 props。ThemeProvider props. */
204
+ export declare interface ThemeProviderProps {
205
+ /** 子节点。Children. */
206
+ children: ReactNode;
207
+ /** 默认颜色主题。Default color theme. */
208
+ defaultTheme?: ThemeEnum;
209
+ /** 默认基础主题(如圆角规范)。Default base theme (e.g. radius). */
210
+ defaultBase?: BaseEnum;
211
+ }
212
+
213
+ export declare const themes: Record<ThemeEnum, Theme>;
214
+
215
+ /** 主题切换器 props。ThemeSwitcher props. */
216
+ export declare interface ThemeSwitcherProps {
217
+ /** 样式状态。Visual status. */
218
+ status?: "primary" | "default";
219
+ /** 根据 theme 返回显示名称;未传则使用 theme 原值。Display name for theme; default is theme value. */
220
+ getThemeDisplayName?: (theme: ThemeEnum) => string;
221
+ /** 处理主题改变。Handle theme change. */
222
+ handleChangeTheme?: (theme: ThemeEnum) => void;
223
+ }
224
+
225
+ export declare function useTheme(): ThemeContextType;
226
+
227
+ export declare const wineTheme: Theme;
228
+
229
+ export { }