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.
- package/README.md +235 -0
- package/dist/animations.cjs +3 -0
- package/dist/animations.d.ts +102 -0
- package/dist/animations.mjs +14 -0
- package/dist/apis.cjs +5 -0
- package/dist/apis.cjs.map +1 -0
- package/dist/apis.d.ts +7 -0
- package/dist/apis.mjs +18 -0
- package/dist/apis.mjs.map +1 -0
- package/dist/chunk-BounceLoading-B54QEw0n.mjs +244 -0
- package/dist/chunk-BounceLoading-B54QEw0n.mjs.map +1 -0
- package/dist/chunk-BounceLoading-C6n4BZVJ.cjs +11 -0
- package/dist/chunk-BounceLoading-C6n4BZVJ.cjs.map +1 -0
- package/dist/chunk-animations-Brp-bsaE.mjs +1243 -0
- package/dist/chunk-animations-Brp-bsaE.mjs.map +1 -0
- package/dist/chunk-animations-e2F3zuP9.cjs +190 -0
- package/dist/chunk-animations-e2F3zuP9.cjs.map +1 -0
- package/dist/chunk-chunk-BFrxaqQT.cjs +1 -0
- package/dist/chunk-i18n-Bp6pPM9n.mjs +207 -0
- package/dist/chunk-i18n-Bp6pPM9n.mjs.map +1 -0
- package/dist/chunk-i18n-_7W7guSV.cjs +3 -0
- package/dist/chunk-i18n-_7W7guSV.cjs.map +1 -0
- package/dist/chunk-lstorage-BVCD00Ow.mjs +27 -0
- package/dist/chunk-lstorage-BVCD00Ow.mjs.map +1 -0
- package/dist/chunk-lstorage-BnxLXHgH.cjs +3 -0
- package/dist/chunk-lstorage-BnxLXHgH.cjs.map +1 -0
- package/dist/chunk-lucide-BhgnmTNo.mjs +158 -0
- package/dist/chunk-lucide-BhgnmTNo.mjs.map +1 -0
- package/dist/chunk-lucide-CP2lvOPY.cjs +3 -0
- package/dist/chunk-lucide-CP2lvOPY.cjs.map +1 -0
- package/dist/chunk-preference-CYl68oeU.cjs +3 -0
- package/dist/chunk-preference-CYl68oeU.cjs.map +1 -0
- package/dist/chunk-preference-DImtu5jI.mjs +51 -0
- package/dist/chunk-preference-DImtu5jI.mjs.map +1 -0
- package/dist/chunk-types-BE3JCLff.cjs +3 -0
- package/dist/chunk-types-BE3JCLff.cjs.map +1 -0
- package/dist/chunk-types-BkFxelHl.mjs +20 -0
- package/dist/chunk-types-BkFxelHl.mjs.map +1 -0
- package/dist/chunk-types-C_opkZGr.cjs +3 -0
- package/dist/chunk-types-C_opkZGr.cjs.map +1 -0
- package/dist/chunk-types-CkbZrFqZ.cjs +3 -0
- package/dist/chunk-types-CkbZrFqZ.cjs.map +1 -0
- package/dist/chunk-types-DNPBKfmx.mjs +11 -0
- package/dist/chunk-types-DNPBKfmx.mjs.map +1 -0
- package/dist/chunk-types-SD4MzUGp.mjs +11 -0
- package/dist/chunk-types-SD4MzUGp.mjs.map +1 -0
- package/dist/chunk-useLayout-BAJHOIL3.cjs +3 -0
- package/dist/chunk-useLayout-BAJHOIL3.cjs.map +1 -0
- package/dist/chunk-useLayout-DPxlynT-.mjs +12 -0
- package/dist/chunk-useLayout-DPxlynT-.mjs.map +1 -0
- package/dist/chunk-useTheme-DgleVMMh.cjs +3 -0
- package/dist/chunk-useTheme-DgleVMMh.cjs.map +1 -0
- package/dist/chunk-useTheme-oHcq3d0o.mjs +13 -0
- package/dist/chunk-useTheme-oHcq3d0o.mjs.map +1 -0
- package/dist/components.cjs +8 -0
- package/dist/components.cjs.map +1 -0
- package/dist/components.d.ts +411 -0
- package/dist/components.mjs +1688 -0
- package/dist/components.mjs.map +1 -0
- package/dist/constants.cjs +5 -0
- package/dist/constants.cjs.map +1 -0
- package/dist/constants.d.ts +130 -0
- package/dist/constants.mjs +85 -0
- package/dist/constants.mjs.map +1 -0
- package/dist/events.cjs +5 -0
- package/dist/events.cjs.map +1 -0
- package/dist/events.d.ts +66 -0
- package/dist/events.mjs +31 -0
- package/dist/events.mjs.map +1 -0
- package/dist/hooks.cjs +5 -0
- package/dist/hooks.cjs.map +1 -0
- package/dist/hooks.d.ts +316 -0
- package/dist/hooks.mjs +107 -0
- package/dist/hooks.mjs.map +1 -0
- package/dist/icons.cjs +3 -0
- package/dist/icons.d.ts +218 -0
- package/dist/icons.mjs +76 -0
- package/dist/languages.cjs +5 -0
- package/dist/languages.cjs.map +1 -0
- package/dist/languages.d.ts +174 -0
- package/dist/languages.mjs +112 -0
- package/dist/languages.mjs.map +1 -0
- package/dist/layouts.cjs +5 -0
- package/dist/layouts.cjs.map +1 -0
- package/dist/layouts.d.ts +209 -0
- package/dist/layouts.mjs +460 -0
- package/dist/layouts.mjs.map +1 -0
- package/dist/navigations.cjs +5 -0
- package/dist/navigations.cjs.map +1 -0
- package/dist/navigations.d.ts +72 -0
- package/dist/navigations.mjs +30 -0
- package/dist/navigations.mjs.map +1 -0
- package/dist/preference.cjs +3 -0
- package/dist/preference.d.ts +94 -0
- package/dist/preference.mjs +14 -0
- package/dist/services.cjs +5 -0
- package/dist/services.cjs.map +1 -0
- package/dist/services.d.ts +8 -0
- package/dist/services.mjs +26 -0
- package/dist/services.mjs.map +1 -0
- package/dist/stores.cjs +5 -0
- package/dist/stores.cjs.map +1 -0
- package/dist/stores.d.ts +101 -0
- package/dist/stores.mjs +167 -0
- package/dist/stores.mjs.map +1 -0
- package/dist/themes.cjs +5 -0
- package/dist/themes.cjs.map +1 -0
- package/dist/themes.d.ts +229 -0
- package/dist/themes.mjs +894 -0
- package/dist/themes.mjs.map +1 -0
- package/dist/types.cjs +2 -0
- package/dist/types.d.ts +147 -0
- package/dist/types.mjs +2 -0
- package/dist/utils.cjs +5 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.d.ts +374 -0
- package/dist/utils.mjs +293 -0
- package/dist/utils.mjs.map +1 -0
- 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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"}
|
package/dist/themes.d.ts
ADDED
|
@@ -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 { }
|