nfx-ui 0.6.3 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"themes.mjs","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/wheat.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-fg-on-primary\", vars.fgOnPrimary);\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 fgOnPrimary: \"#2e1a08\", // 暂时等于 bg\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 fgOnPrimary: \"#ffffff\", // 暂时等于 bg\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 fgOnPrimary: \"#323259\", // 暂时等于 bg\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 fgOnPrimary: \"#0f0f11\", // 暂时等于 bg\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 fgOnPrimary: \"rgb(250, 250, 250)\", // 暂时等于 bg\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 fgOnPrimary: \"#FFFFFF\", // 暂时等于 bg\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 fgOnPrimary: \"#ffffff\", // 暂时等于 bg\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/** 麦田:在 default 基础上将白红色系改为金黄色系 */\nexport const wheatColorTheme: ColorTheme = {\n name: \"wheat\",\n displayName: \"麦田\",\n variables: {\n // 主色 - 金黄色系\n primary: \"rgb(201, 162, 39)\", // #C9A227 金黄\n primaryLight: \"rgb(230, 200, 120)\", // 浅金黄\n primaryFg: \"#ffffff\",\n success: \"rgb(62, 168, 30)\",\n successLight: \"rgb(220, 255, 210)\",\n info: \"rgb(220, 180, 80)\", // 暖金\n infoLight: \"rgb(255, 235, 180)\",\n warning: \"rgb(218, 165, 32)\", // 深金\n warningLight: \"rgb(255, 215, 120)\",\n danger: \"rgb(180, 130, 20)\", // 深褐金\n dangerLight: \"rgb(220, 180, 80)\",\n\n // 背景色 - 浅色系(与 default 一致)\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 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 fg: \"rgb(136, 136, 136)\",\n fgText: \"rgb(22, 21, 21)\",\n fgHeading: \"rgb(0, 0, 0)\",\n fgHighlight: \"rgb(201, 162, 39)\", // 金黄高亮\n fgOnPrimary: \"rgb(250, 250, 250)\", // 暂时等于 bg\n\n separator: \"rgb(226, 224, 224)\",\n\n temperature: {\n arcFill: [\n \"rgb(255, 245, 210)\",\n \"rgb(255, 235, 180)\",\n \"rgb(255, 220, 150)\",\n \"rgb(230, 200, 120)\",\n \"rgb(201, 162, 39)\",\n ],\n arcEmpty: \"rgb(245, 245, 245)\",\n thumbBg: \"rgb(245, 245, 245)\",\n thumbBorder: \"rgb(201, 162, 39)\",\n },\n\n solar: {\n gradientLeft: \"rgb(201, 162, 39)\",\n gradientRight: \"rgb(218, 165, 32)\",\n shadowColor: \"rgba(201, 162, 39, 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(201, 162, 39)\",\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(201, 162, 39)\",\n lineGradFrom: \"rgb(201, 162, 39)\",\n lineGradTo: \"rgb(218, 165, 32)\",\n lineShadow: \"rgba(201, 162, 39, 0.2)\",\n areaGradFrom: \"rgba(201, 162, 39, 0.1)\",\n areaGradTo: \"rgba(201, 162, 39, 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(201, 162, 39, 0.3)\",\n tooltipBackgroundColor: \"rgb(201, 162, 39)\",\n },\n\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 * 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 fgOnPrimary: \"#2A0B12\", // 暂时等于 bg\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 { wheatColorTheme } from \"./wheat\";\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 };\nconst wheatTheme: Theme = { colors: wheatColorTheme, 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 [ThemeEnum.WHEAT]: wheatTheme,\n};\n\nexport { defaultTheme, lightTheme, darkTheme, cosmicTheme, corporateTheme, forestTheme, coffeeTheme, wineTheme, wheatTheme };\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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"}
1
+ {"version":3,"file":"themes.mjs","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/wheat.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-hover\", vars.primaryHover);\n root.style.setProperty(\"--color-primary-light\", vars.primaryLight);\n root.style.setProperty(\"--color-primary-bg\", vars.primaryBg);\n root.style.setProperty(\"--color-primary-rgb\", vars.primaryRgb);\n root.style.setProperty(\"--color-primary-transparent\", vars.primaryTransparent);\n root.style.setProperty(\"--color-primary-alpha\", vars.primaryTransparent);\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-success-rgb\", vars.successRgb);\n root.style.setProperty(\"--color-info\", vars.info);\n root.style.setProperty(\"--color-info-light\", vars.infoLight);\n root.style.setProperty(\"--color-info-rgb\", vars.infoRgb);\n root.style.setProperty(\"--color-warning\", vars.warning);\n root.style.setProperty(\"--color-warning-light\", vars.warningLight);\n root.style.setProperty(\"--color-warning-rgb\", vars.warningRgb);\n root.style.setProperty(\"--color-danger\", vars.danger);\n root.style.setProperty(\"--color-danger-light\", vars.dangerLight);\n root.style.setProperty(\"--color-danger-rgb\", vars.dangerRgb);\n root.style.setProperty(\"--color-error\", vars.danger);\n root.style.setProperty(\"--color-error-rgb\", vars.dangerRgb);\n\n // 背景色 / Background\n root.style.setProperty(\"--color-bg\", vars.bg);\n root.style.setProperty(\"--color-bg-1\", 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 root.style.setProperty(\"--color-bg-secondary\", vars.bgSecondary);\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 root.style.setProperty(\"--color-border-hover\", vars.borderHover);\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-fg-muted\", vars.fgMuted);\n root.style.setProperty(\"--color-fg-on-primary\", vars.fgOnPrimary);\n root.style.setProperty(\"--color-separator\", vars.separator);\n\n // 遮罩 / 阴影 / 焦点环\n root.style.setProperty(\"--color-overlay\", vars.overlay);\n root.style.setProperty(\"--color-shadow\", vars.shadow);\n root.style.setProperty(\"--color-ring\", vars.ring);\n\n // 通用图表系列色\n root.style.setProperty(\"--color-chart-1\", vars.chart1);\n root.style.setProperty(\"--color-chart-2\", vars.chart2);\n root.style.setProperty(\"--color-chart-3\", vars.chart3);\n root.style.setProperty(\"--color-chart-4\", vars.chart4);\n root.style.setProperty(\"--color-chart-5\", vars.chart5);\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 — Warm Earth\n * 深色暖棕,焦糖拿铁主色 #C49A6C。\n * 深咖啡背景 + 奶油色文字,温暖舒适。\n */\nexport const coffeeColorTheme: ColorTheme = {\n name: \"coffee\",\n displayName: \"Coffee\",\n variables: {\n primary: \"#C49A6C\",\n primaryHover: \"#A67C50\",\n primaryLight: \"#E8D5C0\",\n primaryBg: \"rgba(196, 154, 108, 0.1)\",\n primaryRgb: \"196, 154, 108\",\n primaryTransparent: \"rgba(196, 154, 108, 0.15)\",\n primaryFg: \"#1A1209\",\n\n success: \"#6D9F72\",\n successLight: \"#8DBE91\",\n successRgb: \"109, 159, 114\",\n info: \"#8A7968\",\n infoLight: \"#A89888\",\n infoRgb: \"138, 121, 104\",\n warning: \"#D4A574\",\n warningLight: \"#E8C9A0\",\n warningRgb: \"212, 165, 116\",\n danger: \"#C0392B\",\n dangerLight: \"#D65A4A\",\n dangerRgb: \"192, 57, 43\",\n\n bg: \"#1A1209\",\n bg2: \"#28201A\",\n bg3: \"#3A2E24\",\n bg4: \"#4E3D30\",\n bgSecondary: \"#28201A\",\n\n border: \"#3A2E24\",\n border2: \"#4E3D30\",\n border3: \"#6B5744\",\n border4: \"#8B7355\",\n border5: \"#C49A6C\",\n borderHover: \"#C49A6C\",\n\n fg: \"#8B7355\",\n fgText: \"#F5E6D3\",\n fgHeading: \"#FFF8F0\",\n fgHighlight: \"#E8C9A0\",\n fgMuted: \"#6B5744\",\n fgOnPrimary: \"#1A1209\",\n\n separator: \"#3A2E24\",\n\n overlay: \"rgba(0, 0, 0, 0.65)\",\n shadow: \"rgba(0, 0, 0, 0.4)\",\n ring: \"#C49A6C\",\n\n chart1: \"#C49A6C\",\n chart2: \"#6D9F72\",\n chart3: \"#D4A574\",\n chart4: \"#C0392B\",\n chart5: \"#8A7968\",\n\n temperature: {\n arcFill: [\"#4E3D30\", \"#8B7355\", \"#A67C50\", \"#C49A6C\", \"#E8D5C0\"],\n arcEmpty: \"#3A2E24\",\n thumbBg: \"#28201A\",\n thumbBorder: \"#C49A6C\",\n },\n\n solar: {\n gradientLeft: \"#C49A6C\",\n gradientRight: \"#E8D5C0\",\n shadowColor: \"rgba(196, 154, 108, 0.25)\",\n secondSeriesFill: \"#3A2E24\",\n },\n\n traffic: {\n tooltipBg: \"#3A2E24\",\n tooltipBorderColor: \"#6B5744\",\n tooltipTextColor: \"#F5E6D3\",\n yAxisSplitLine: \"#3A2E24\",\n lineBg: \"#4E3D30\",\n itemColor: \"#4E3D30\",\n itemBorderColor: \"#6B5744\",\n itemEmphasisBorderColor: \"#C49A6C\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n shadowLineShadow: \"rgba(0, 0, 0, 0)\",\n gradFrom: \"#3A2E24\",\n gradTo: \"#28201A\",\n },\n\n electricity: {\n tooltipBg: \"#3A2E24\",\n tooltipLineColor: \"#F5E6D3\",\n tooltipBorderColor: \"#6B5744\",\n tooltipTextColor: \"#F5E6D3\",\n axisLineColor: \"#4E3D30\",\n xAxisTextColor: \"#8B7355\",\n yAxisSplitLine: \"#3A2E24\",\n itemBorderColor: \"#C49A6C\",\n lineGradFrom: \"#C49A6C\",\n lineGradTo: \"#E8D5C0\",\n lineShadow: \"rgba(196, 154, 108, 0.25)\",\n areaGradFrom: \"rgba(196, 154, 108, 0.12)\",\n areaGradTo: \"rgba(196, 154, 108, 0.02)\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n },\n\n echarts: {\n bg: \"#1A1209\",\n textColor: \"#F5E6D3\",\n axisLineColor: \"#8B7355\",\n splitLineColor: \"#3A2E24\",\n itemHoverShadowColor: \"rgba(196, 154, 108, 0.35)\",\n tooltipBackgroundColor: \"#3A2E24\",\n },\n\n chartjs: {\n axisLineColor: \"#4E3D30\",\n textColor: \"#F5E6D3\",\n },\n },\n};\n","import type { ColorTheme } from \"../../types\";\n\n/**\n * Corporate — Blue Professional\n * 企业蓝 #2563EB,搭配轻量蓝灰 Slate 中性色。\n * 冷静、值得信赖、专业感。\n */\nexport const corporateColorTheme: ColorTheme = {\n name: \"corporate\",\n displayName: \"Corporate\",\n variables: {\n primary: \"#2563EB\",\n primaryHover: \"#1D4ED8\",\n primaryLight: \"#93C5FD\",\n primaryBg: \"#EFF6FF\",\n primaryRgb: \"37, 99, 235\",\n primaryTransparent: \"rgba(37, 99, 235, 0.12)\",\n primaryFg: \"#FFFFFF\",\n\n success: \"#16A34A\",\n successLight: \"#DCFCE7\",\n successRgb: \"22, 163, 74\",\n info: \"#0EA5E9\",\n infoLight: \"#E0F2FE\",\n infoRgb: \"14, 165, 233\",\n warning: \"#D97706\",\n warningLight: \"#FEF3C7\",\n warningRgb: \"217, 119, 6\",\n danger: \"#DC2626\",\n dangerLight: \"#FEE2E2\",\n dangerRgb: \"220, 38, 38\",\n\n bg: \"#FFFFFF\",\n bg2: \"#F8FAFC\",\n bg3: \"#EFF6FF\",\n bg4: \"#DBEAFE\",\n bgSecondary: \"#F0F4FF\",\n\n border: \"#E2E8F0\",\n border2: \"#DBEAFE\",\n border3: \"#BFDBFE\",\n border4: \"#93C5FD\",\n border5: \"#60A5FA\",\n borderHover: \"#2563EB\",\n\n fg: \"#94A3B8\",\n fgText: \"#1E293B\",\n fgHeading: \"#0F172A\",\n fgHighlight: \"#1D4ED8\",\n fgMuted: \"#64748B\",\n fgOnPrimary: \"#FFFFFF\",\n\n separator: \"#E2E8F0\",\n\n overlay: \"rgba(0, 0, 0, 0.5)\",\n shadow: \"rgba(0, 0, 0, 0.08)\",\n ring: \"#2563EB\",\n\n chart1: \"#2563EB\",\n chart2: \"#16A34A\",\n chart3: \"#D97706\",\n chart4: \"#DC2626\",\n chart5: \"#8B5CF6\",\n\n temperature: {\n arcFill: [\"#DBEAFE\", \"#93C5FD\", \"#60A5FA\", \"#3B82F6\", \"#2563EB\"],\n arcEmpty: \"#F1F5F9\",\n thumbBg: \"#FFFFFF\",\n thumbBorder: \"#2563EB\",\n },\n\n solar: {\n gradientLeft: \"#2563EB\",\n gradientRight: \"#0EA5E9\",\n shadowColor: \"rgba(37, 99, 235, 0.12)\",\n secondSeriesFill: \"#F1F5F9\",\n },\n\n traffic: {\n tooltipBg: \"#FFFFFF\",\n tooltipBorderColor: \"#E2E8F0\",\n tooltipTextColor: \"#1E293B\",\n yAxisSplitLine: \"#F1F5F9\",\n lineBg: \"#DBEAFE\",\n itemColor: \"#BFDBFE\",\n itemBorderColor: \"#BFDBFE\",\n itemEmphasisBorderColor: \"#2563EB\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n shadowLineShadow: \"rgba(0, 0, 0, 0)\",\n gradFrom: \"#EFF6FF\",\n gradTo: \"#FFFFFF\",\n },\n\n electricity: {\n tooltipBg: \"#FFFFFF\",\n tooltipLineColor: \"#1E293B\",\n tooltipBorderColor: \"#E2E8F0\",\n tooltipTextColor: \"#1E293B\",\n axisLineColor: \"#E2E8F0\",\n xAxisTextColor: \"#64748B\",\n yAxisSplitLine: \"#F1F5F9\",\n itemBorderColor: \"#2563EB\",\n lineGradFrom: \"#2563EB\",\n lineGradTo: \"#0EA5E9\",\n lineShadow: \"rgba(37, 99, 235, 0.18)\",\n areaGradFrom: \"rgba(37, 99, 235, 0.08)\",\n areaGradTo: \"rgba(37, 99, 235, 0.01)\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n },\n\n echarts: {\n bg: \"#FFFFFF\",\n textColor: \"#1E293B\",\n axisLineColor: \"#94A3B8\",\n splitLineColor: \"#F1F5F9\",\n itemHoverShadowColor: \"rgba(37, 99, 235, 0.25)\",\n tooltipBackgroundColor: \"#2563EB\",\n },\n\n chartjs: {\n axisLineColor: \"#E2E8F0\",\n textColor: \"#1E293B\",\n },\n },\n};\n","import type { ColorTheme } from \"../../types\";\n\n/**\n * Cosmic — Electric Purple\n * 深空紫调,梦幻科幻。\n * 主色电紫 #8B5CF6,深靛蓝背景,薰衣草文字层次。\n */\nexport const cosmicColorTheme: ColorTheme = {\n name: \"cosmic\",\n displayName: \"Cosmic\",\n variables: {\n primary: \"#8B5CF6\",\n primaryHover: \"#7C3AED\",\n primaryLight: \"#C4B5FD\",\n primaryBg: \"rgba(139, 92, 246, 0.1)\",\n primaryRgb: \"139, 92, 246\",\n primaryTransparent: \"rgba(139, 92, 246, 0.15)\",\n primaryFg: \"#FFFFFF\",\n\n success: \"#22C55E\",\n successLight: \"#4ADE80\",\n successRgb: \"34, 197, 94\",\n info: \"#06B6D4\",\n infoLight: \"#22D3EE\",\n infoRgb: \"6, 182, 212\",\n warning: \"#F59E0B\",\n warningLight: \"#FBBF24\",\n warningRgb: \"245, 158, 11\",\n danger: \"#F43F5E\",\n dangerLight: \"#FB7185\",\n dangerRgb: \"244, 63, 94\",\n\n bg: \"#0C0A1D\",\n bg2: \"#151332\",\n bg3: \"#1E1B4B\",\n bg4: \"#312E81\",\n bgSecondary: \"#151332\",\n\n border: \"#1E1B4B\",\n border2: \"#312E81\",\n border3: \"#4338CA\",\n border4: \"#6366F1\",\n border5: \"#818CF8\",\n borderHover: \"#8B5CF6\",\n\n fg: \"#818CF8\",\n fgText: \"#E0E7FF\",\n fgHeading: \"#FFFFFF\",\n fgHighlight: \"#C4B5FD\",\n fgMuted: \"#6366F1\",\n fgOnPrimary: \"#0C0A1D\",\n\n separator: \"#1E1B4B\",\n\n overlay: \"rgba(0, 0, 0, 0.65)\",\n shadow: \"rgba(0, 0, 0, 0.45)\",\n ring: \"#8B5CF6\",\n\n chart1: \"#8B5CF6\",\n chart2: \"#06B6D4\",\n chart3: \"#22C55E\",\n chart4: \"#F59E0B\",\n chart5: \"#F43F5E\",\n\n temperature: {\n arcFill: [\"#312E81\", \"#4338CA\", \"#6366F1\", \"#8B5CF6\", \"#C4B5FD\"],\n arcEmpty: \"#1E1B4B\",\n thumbBg: \"#151332\",\n thumbBorder: \"#8B5CF6\",\n },\n\n solar: {\n gradientLeft: \"#8B5CF6\",\n gradientRight: \"#06B6D4\",\n shadowColor: \"rgba(139, 92, 246, 0.25)\",\n secondSeriesFill: \"#1E1B4B\",\n },\n\n traffic: {\n tooltipBg: \"#1E1B4B\",\n tooltipBorderColor: \"#312E81\",\n tooltipTextColor: \"#E0E7FF\",\n yAxisSplitLine: \"#1E1B4B\",\n lineBg: \"#312E81\",\n itemColor: \"#312E81\",\n itemBorderColor: \"#4338CA\",\n itemEmphasisBorderColor: \"#8B5CF6\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n shadowLineShadow: \"rgba(0, 0, 0, 0)\",\n gradFrom: \"#1E1B4B\",\n gradTo: \"#151332\",\n },\n\n electricity: {\n tooltipBg: \"#1E1B4B\",\n tooltipLineColor: \"#E0E7FF\",\n tooltipBorderColor: \"#312E81\",\n tooltipTextColor: \"#E0E7FF\",\n axisLineColor: \"#312E81\",\n xAxisTextColor: \"#818CF8\",\n yAxisSplitLine: \"#1E1B4B\",\n itemBorderColor: \"#8B5CF6\",\n lineGradFrom: \"#8B5CF6\",\n lineGradTo: \"#06B6D4\",\n lineShadow: \"rgba(139, 92, 246, 0.3)\",\n areaGradFrom: \"rgba(139, 92, 246, 0.12)\",\n areaGradTo: \"rgba(139, 92, 246, 0.02)\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n },\n\n echarts: {\n bg: \"#151332\",\n textColor: \"#E0E7FF\",\n axisLineColor: \"#4338CA\",\n splitLineColor: \"#1E1B4B\",\n itemHoverShadowColor: \"rgba(139, 92, 246, 0.35)\",\n tooltipBackgroundColor: \"#1E1B4B\",\n },\n\n chartjs: {\n axisLineColor: \"#312E81\",\n textColor: \"#E0E7FF\",\n },\n },\n};\n","import type { ColorTheme } from \"../../types\";\n\n/**\n * Dark — Amber Gold on Zinc\n * 深色模式,琥珀金主色 + 锌灰背景。\n * 暖色调暗色,层级分明,阅读舒适。\n */\nexport const darkColorTheme: ColorTheme = {\n name: \"dark\",\n displayName: \"Dark\",\n variables: {\n primary: \"#D97706\",\n primaryHover: \"#B45309\",\n primaryLight: \"#FCD34D\",\n primaryBg: \"rgba(217, 119, 6, 0.1)\",\n primaryRgb: \"217, 119, 6\",\n primaryTransparent: \"rgba(217, 119, 6, 0.15)\",\n primaryFg: \"#18181B\",\n\n success: \"#22C55E\",\n successLight: \"#4ADE80\",\n successRgb: \"34, 197, 94\",\n info: \"#14B8A6\",\n infoLight: \"#2DD4BF\",\n infoRgb: \"20, 184, 166\",\n warning: \"#EAB308\",\n warningLight: \"#FACC15\",\n warningRgb: \"234, 179, 8\",\n danger: \"#EF4444\",\n dangerLight: \"#F87171\",\n dangerRgb: \"239, 68, 68\",\n\n bg: \"#09090B\",\n bg2: \"#18181B\",\n bg3: \"#27272A\",\n bg4: \"#3F3F46\",\n bgSecondary: \"#1C1917\",\n\n border: \"#27272A\",\n border2: \"#3F3F46\",\n border3: \"#52525B\",\n border4: \"#71717A\",\n border5: \"#A1A1AA\",\n borderHover: \"#D97706\",\n\n fg: \"#A1A1AA\",\n fgText: \"#FAFAFA\",\n fgHeading: \"#FFFFFF\",\n fgHighlight: \"#FDE047\",\n fgMuted: \"#71717A\",\n fgOnPrimary: \"#09090B\",\n\n separator: \"#27272A\",\n\n overlay: \"rgba(0, 0, 0, 0.65)\",\n shadow: \"rgba(0, 0, 0, 0.4)\",\n ring: \"#D97706\",\n\n chart1: \"#D97706\",\n chart2: \"#22C55E\",\n chart3: \"#14B8A6\",\n chart4: \"#EF4444\",\n chart5: \"#8B5CF6\",\n\n temperature: {\n arcFill: [\"#92400E\", \"#B45309\", \"#D97706\", \"#EAB308\", \"#FDE047\"],\n arcEmpty: \"#27272A\",\n thumbBg: \"#27272A\",\n thumbBorder: \"#D97706\",\n },\n\n solar: {\n gradientLeft: \"#D97706\",\n gradientRight: \"#EAB308\",\n shadowColor: \"rgba(217, 119, 6, 0.25)\",\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: \"#D97706\",\n lineGradTo: \"#EAB308\",\n lineShadow: \"rgba(217, 119, 6, 0.3)\",\n areaGradFrom: \"rgba(217, 119, 6, 0.12)\",\n areaGradTo: \"rgba(217, 119, 6, 0.02)\",\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(217, 119, 6, 0.35)\",\n tooltipBackgroundColor: \"#27272A\",\n },\n\n chartjs: {\n axisLineColor: \"#3F3F46\",\n textColor: \"#FAFAFA\",\n },\n },\n};\n","import type { ColorTheme } from \"../../types\";\n\n/**\n * Default — Crimson Red\n * 品牌主色:鲜红 #DC2626,搭配 Tailwind gray 中性色。\n * 适合 IoT 仪表盘的告警/操作视觉调性。\n */\nexport const defaultColorTheme: ColorTheme = {\n name: \"default\",\n displayName: \"Default\",\n variables: {\n primary: \"#DC2626\",\n primaryHover: \"#B91C1C\",\n primaryLight: \"#FCA5A5\",\n primaryBg: \"#FEF2F2\",\n primaryRgb: \"220, 38, 38\",\n primaryTransparent: \"rgba(220, 38, 38, 0.15)\",\n primaryFg: \"#FFFFFF\",\n\n success: \"#16A34A\",\n successLight: \"#DCFCE7\",\n successRgb: \"22, 163, 74\",\n info: \"#2563EB\",\n infoLight: \"#DBEAFE\",\n infoRgb: \"37, 99, 235\",\n warning: \"#D97706\",\n warningLight: \"#FEF3C7\",\n warningRgb: \"217, 119, 6\",\n danger: \"#EF4444\",\n dangerLight: \"#FEE2E2\",\n dangerRgb: \"239, 68, 68\",\n\n bg: \"#FFFFFF\",\n bg2: \"#F9FAFB\",\n bg3: \"#F3F4F6\",\n bg4: \"#E5E7EB\",\n bgSecondary: \"#FEF2F2\",\n\n border: \"#F3F4F6\",\n border2: \"#E5E7EB\",\n border3: \"#D1D5DB\",\n border4: \"#9CA3AF\",\n border5: \"#6B7280\",\n borderHover: \"#DC2626\",\n\n fg: \"#9CA3AF\",\n fgText: \"#1F2937\",\n fgHeading: \"#111827\",\n fgHighlight: \"#DC2626\",\n fgMuted: \"#6B7280\",\n fgOnPrimary: \"#FFFFFF\",\n\n separator: \"#E5E7EB\",\n\n overlay: \"rgba(0, 0, 0, 0.5)\",\n shadow: \"rgba(0, 0, 0, 0.08)\",\n ring: \"#DC2626\",\n\n chart1: \"#DC2626\",\n chart2: \"#2563EB\",\n chart3: \"#16A34A\",\n chart4: \"#D97706\",\n chart5: \"#7C3AED\",\n\n temperature: {\n arcFill: [\"#FEE2E2\", \"#FCA5A5\", \"#F87171\", \"#EF4444\", \"#DC2626\"],\n arcEmpty: \"#F3F4F6\",\n thumbBg: \"#FFFFFF\",\n thumbBorder: \"#DC2626\",\n },\n\n solar: {\n gradientLeft: \"#DC2626\",\n gradientRight: \"#F97316\",\n shadowColor: \"rgba(220, 38, 38, 0.12)\",\n secondSeriesFill: \"#F3F4F6\",\n },\n\n traffic: {\n tooltipBg: \"#FFFFFF\",\n tooltipBorderColor: \"#E5E7EB\",\n tooltipTextColor: \"#1F2937\",\n yAxisSplitLine: \"#F3F4F6\",\n lineBg: \"#E5E7EB\",\n itemColor: \"#D1D5DB\",\n itemBorderColor: \"#D1D5DB\",\n itemEmphasisBorderColor: \"#DC2626\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n shadowLineShadow: \"rgba(0, 0, 0, 0)\",\n gradFrom: \"#FEF2F2\",\n gradTo: \"#FFFFFF\",\n },\n\n electricity: {\n tooltipBg: \"#FFFFFF\",\n tooltipLineColor: \"#1F2937\",\n tooltipBorderColor: \"#E5E7EB\",\n tooltipTextColor: \"#1F2937\",\n axisLineColor: \"#E5E7EB\",\n xAxisTextColor: \"#6B7280\",\n yAxisSplitLine: \"#F3F4F6\",\n itemBorderColor: \"#DC2626\",\n lineGradFrom: \"#DC2626\",\n lineGradTo: \"#F97316\",\n lineShadow: \"rgba(220, 38, 38, 0.2)\",\n areaGradFrom: \"rgba(220, 38, 38, 0.1)\",\n areaGradTo: \"rgba(220, 38, 38, 0.02)\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n },\n\n echarts: {\n bg: \"#FFFFFF\",\n textColor: \"#1F2937\",\n axisLineColor: \"#9CA3AF\",\n splitLineColor: \"#F3F4F6\",\n itemHoverShadowColor: \"rgba(220, 38, 38, 0.25)\",\n tooltipBackgroundColor: \"#DC2626\",\n },\n\n chartjs: {\n axisLineColor: \"#E5E7EB\",\n textColor: \"#1F2937\",\n },\n },\n};\n","import type { ColorTheme } from \"../../types\";\n\n/**\n * Forest — Deep Green\n * 自然绿 #15803D,翡翠色层级。\n * 有机、宁静、自然,带金黄 warning 做暖色点缀。\n */\nexport const forestColorTheme: ColorTheme = {\n name: \"forest\",\n displayName: \"Forest\",\n variables: {\n primary: \"#15803D\",\n primaryHover: \"#166534\",\n primaryLight: \"#86EFAC\",\n primaryBg: \"#F0FDF4\",\n primaryRgb: \"21, 128, 61\",\n primaryTransparent: \"rgba(21, 128, 61, 0.12)\",\n primaryFg: \"#FFFFFF\",\n\n success: \"#16A34A\",\n successLight: \"#DCFCE7\",\n successRgb: \"22, 163, 74\",\n info: \"#2563EB\",\n infoLight: \"#DBEAFE\",\n infoRgb: \"37, 99, 235\",\n warning: \"#D97706\",\n warningLight: \"#FEF3C7\",\n warningRgb: \"217, 119, 6\",\n danger: \"#DC2626\",\n dangerLight: \"#FEE2E2\",\n dangerRgb: \"220, 38, 38\",\n\n bg: \"#FFFFFF\",\n bg2: \"#F0FDF4\",\n bg3: \"#ECFDF5\",\n bg4: \"#D1FAE5\",\n bgSecondary: \"#F0FDF4\",\n\n border: \"#D1FAE5\",\n border2: \"#A7F3D0\",\n border3: \"#6EE7B7\",\n border4: \"#34D399\",\n border5: \"#15803D\",\n borderHover: \"#15803D\",\n\n fg: \"#6B7280\",\n fgText: \"#1F2937\",\n fgHeading: \"#052E16\",\n fgHighlight: \"#15803D\",\n fgMuted: \"#4B5563\",\n fgOnPrimary: \"#FFFFFF\",\n\n separator: \"#D1FAE5\",\n\n overlay: \"rgba(0, 0, 0, 0.5)\",\n shadow: \"rgba(0, 0, 0, 0.08)\",\n ring: \"#15803D\",\n\n chart1: \"#15803D\",\n chart2: \"#2563EB\",\n chart3: \"#D97706\",\n chart4: \"#DC2626\",\n chart5: \"#7C3AED\",\n\n temperature: {\n arcFill: [\"#D1FAE5\", \"#6EE7B7\", \"#34D399\", \"#16A34A\", \"#15803D\"],\n arcEmpty: \"#ECFDF5\",\n thumbBg: \"#FFFFFF\",\n thumbBorder: \"#15803D\",\n },\n\n solar: {\n gradientLeft: \"#15803D\",\n gradientRight: \"#059669\",\n shadowColor: \"rgba(21, 128, 61, 0.2)\",\n secondSeriesFill: \"#ECFDF5\",\n },\n\n traffic: {\n tooltipBg: \"#FFFFFF\",\n tooltipBorderColor: \"#D1FAE5\",\n tooltipTextColor: \"#1F2937\",\n yAxisSplitLine: \"#ECFDF5\",\n lineBg: \"rgba(21, 128, 61, 0.08)\",\n itemColor: \"#A7F3D0\",\n itemBorderColor: \"#6EE7B7\",\n itemEmphasisBorderColor: \"#15803D\",\n shadowLineDarkBg: \"rgba(21, 128, 61, 0.1)\",\n shadowLineShadow: \"rgba(21, 128, 61, 0.15)\",\n gradFrom: \"#F0FDF4\",\n gradTo: \"#FFFFFF\",\n },\n\n electricity: {\n tooltipBg: \"#FFFFFF\",\n tooltipLineColor: \"#15803D\",\n tooltipBorderColor: \"#D1FAE5\",\n tooltipTextColor: \"#1F2937\",\n axisLineColor: \"#A7F3D0\",\n xAxisTextColor: \"#4B5563\",\n yAxisSplitLine: \"#ECFDF5\",\n itemBorderColor: \"#15803D\",\n lineGradFrom: \"#15803D\",\n lineGradTo: \"#059669\",\n lineShadow: \"rgba(21, 128, 61, 0.2)\",\n areaGradFrom: \"rgba(21, 128, 61, 0.15)\",\n areaGradTo: \"rgba(21, 128, 61, 0.01)\",\n shadowLineDarkBg: \"rgba(21, 128, 61, 0.08)\",\n },\n\n echarts: {\n bg: \"#FFFFFF\",\n textColor: \"#1F2937\",\n axisLineColor: \"#6B7280\",\n splitLineColor: \"#ECFDF5\",\n itemHoverShadowColor: \"rgba(21, 128, 61, 0.25)\",\n tooltipBackgroundColor: \"#15803D\",\n },\n\n chartjs: {\n axisLineColor: \"#D1FAE5\",\n textColor: \"#1F2937\",\n },\n },\n};\n","import type { ColorTheme } from \"../../types\";\n\n/**\n * Light — Slate Professional\n * 中性蓝灰色系,无强色彩偏向。\n * 深色 Slate 做主色,适合专业办公/阅读场景。\n */\nexport const lightColorTheme: ColorTheme = {\n name: \"light\",\n displayName: \"Light\",\n variables: {\n primary: \"#334155\",\n primaryHover: \"#1E293B\",\n primaryLight: \"#CBD5E1\",\n primaryBg: \"#F8FAFC\",\n primaryRgb: \"51, 65, 85\",\n primaryTransparent: \"rgba(51, 65, 85, 0.12)\",\n primaryFg: \"#FFFFFF\",\n\n success: \"#16A34A\",\n successLight: \"#DCFCE7\",\n successRgb: \"22, 163, 74\",\n info: \"#2563EB\",\n infoLight: \"#DBEAFE\",\n infoRgb: \"37, 99, 235\",\n warning: \"#D97706\",\n warningLight: \"#FEF3C7\",\n warningRgb: \"217, 119, 6\",\n danger: \"#EF4444\",\n dangerLight: \"#FEE2E2\",\n dangerRgb: \"239, 68, 68\",\n\n bg: \"#FFFFFF\",\n bg2: \"#F8FAFC\",\n bg3: \"#F1F5F9\",\n bg4: \"#E2E8F0\",\n bgSecondary: \"#F8FAFC\",\n\n border: \"#F1F5F9\",\n border2: \"#E2E8F0\",\n border3: \"#CBD5E1\",\n border4: \"#94A3B8\",\n border5: \"#64748B\",\n borderHover: \"#334155\",\n\n fg: \"#94A3B8\",\n fgText: \"#334155\",\n fgHeading: \"#0F172A\",\n fgHighlight: \"#1E293B\",\n fgMuted: \"#64748B\",\n fgOnPrimary: \"#FFFFFF\",\n\n separator: \"#E2E8F0\",\n\n overlay: \"rgba(0, 0, 0, 0.5)\",\n shadow: \"rgba(0, 0, 0, 0.08)\",\n ring: \"#334155\",\n\n chart1: \"#334155\",\n chart2: \"#2563EB\",\n chart3: \"#16A34A\",\n chart4: \"#D97706\",\n chart5: \"#DC2626\",\n\n temperature: {\n arcFill: [\"#CBD5E1\", \"#94A3B8\", \"#64748B\", \"#475569\", \"#334155\"],\n arcEmpty: \"#F1F5F9\",\n thumbBg: \"#FFFFFF\",\n thumbBorder: \"#334155\",\n },\n\n solar: {\n gradientLeft: \"#334155\",\n gradientRight: \"#64748B\",\n shadowColor: \"rgba(51, 65, 85, 0.1)\",\n secondSeriesFill: \"#F1F5F9\",\n },\n\n traffic: {\n tooltipBg: \"#FFFFFF\",\n tooltipBorderColor: \"#E2E8F0\",\n tooltipTextColor: \"#334155\",\n yAxisSplitLine: \"#F1F5F9\",\n lineBg: \"#E2E8F0\",\n itemColor: \"#CBD5E1\",\n itemBorderColor: \"#CBD5E1\",\n itemEmphasisBorderColor: \"#334155\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n shadowLineShadow: \"rgba(0, 0, 0, 0)\",\n gradFrom: \"#F8FAFC\",\n gradTo: \"#FFFFFF\",\n },\n\n electricity: {\n tooltipBg: \"#FFFFFF\",\n tooltipLineColor: \"#334155\",\n tooltipBorderColor: \"#E2E8F0\",\n tooltipTextColor: \"#334155\",\n axisLineColor: \"#E2E8F0\",\n xAxisTextColor: \"#64748B\",\n yAxisSplitLine: \"#F1F5F9\",\n itemBorderColor: \"#334155\",\n lineGradFrom: \"#334155\",\n lineGradTo: \"#64748B\",\n lineShadow: \"rgba(51, 65, 85, 0.15)\",\n areaGradFrom: \"rgba(51, 65, 85, 0.08)\",\n areaGradTo: \"rgba(51, 65, 85, 0.01)\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n },\n\n echarts: {\n bg: \"#FFFFFF\",\n textColor: \"#334155\",\n axisLineColor: \"#94A3B8\",\n splitLineColor: \"#F1F5F9\",\n itemHoverShadowColor: \"rgba(51, 65, 85, 0.25)\",\n tooltipBackgroundColor: \"#334155\",\n },\n\n chartjs: {\n axisLineColor: \"#E2E8F0\",\n textColor: \"#334155\",\n },\n },\n};\n","import type { ColorTheme } from \"../../types\";\n\n/**\n * Wheat — Golden Harvest\n * 浅色暖金,主色琥珀 #B45309。\n * 暖奶油色背景 + 深棕文字,丰收质感。\n * danger 使用独立红色,不与 primary 金色混淆。\n */\nexport const wheatColorTheme: ColorTheme = {\n name: \"wheat\",\n displayName: \"麦田\",\n variables: {\n primary: \"#B45309\",\n primaryHover: \"#92400E\",\n primaryLight: \"#FCD34D\",\n primaryBg: \"#FFFBEB\",\n primaryRgb: \"180, 83, 9\",\n primaryTransparent: \"rgba(180, 83, 9, 0.12)\",\n primaryFg: \"#FFFFFF\",\n\n success: \"#16A34A\",\n successLight: \"#DCFCE7\",\n successRgb: \"22, 163, 74\",\n info: \"#D97706\",\n infoLight: \"#FEF3C7\",\n infoRgb: \"217, 119, 6\",\n warning: \"#CA8A04\",\n warningLight: \"#FEF9C3\",\n warningRgb: \"202, 138, 4\",\n danger: \"#DC2626\",\n dangerLight: \"#FEE2E2\",\n dangerRgb: \"220, 38, 38\",\n\n bg: \"#FFFDF7\",\n bg2: \"#FFF8E7\",\n bg3: \"#FEF3C7\",\n bg4: \"#FDE68A\",\n bgSecondary: \"#FFFBEB\",\n\n border: \"#FDE68A\",\n border2: \"#FCD34D\",\n border3: \"#FBBF24\",\n border4: \"#D97706\",\n border5: \"#92400E\",\n borderHover: \"#B45309\",\n\n fg: \"#92400E\",\n fgText: \"#451A03\",\n fgHeading: \"#1C0A00\",\n fgHighlight: \"#B45309\",\n fgMuted: \"#78350F\",\n fgOnPrimary: \"#FFFFFF\",\n\n separator: \"#FDE68A\",\n\n overlay: \"rgba(0, 0, 0, 0.5)\",\n shadow: \"rgba(0, 0, 0, 0.1)\",\n ring: \"#B45309\",\n\n chart1: \"#B45309\",\n chart2: \"#16A34A\",\n chart3: \"#2563EB\",\n chart4: \"#DC2626\",\n chart5: \"#7C3AED\",\n\n temperature: {\n arcFill: [\"#FEF3C7\", \"#FCD34D\", \"#FBBF24\", \"#D97706\", \"#B45309\"],\n arcEmpty: \"#FFF8E7\",\n thumbBg: \"#FFFDF7\",\n thumbBorder: \"#B45309\",\n },\n\n solar: {\n gradientLeft: \"#B45309\",\n gradientRight: \"#D97706\",\n shadowColor: \"rgba(180, 83, 9, 0.15)\",\n secondSeriesFill: \"#FEF3C7\",\n },\n\n traffic: {\n tooltipBg: \"#FFFDF7\",\n tooltipBorderColor: \"#FDE68A\",\n tooltipTextColor: \"#451A03\",\n yAxisSplitLine: \"#FEF3C7\",\n lineBg: \"#FDE68A\",\n itemColor: \"#FCD34D\",\n itemBorderColor: \"#FCD34D\",\n itemEmphasisBorderColor: \"#B45309\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n shadowLineShadow: \"rgba(0, 0, 0, 0)\",\n gradFrom: \"#FFF8E7\",\n gradTo: \"#FFFDF7\",\n },\n\n electricity: {\n tooltipBg: \"#FFFDF7\",\n tooltipLineColor: \"#451A03\",\n tooltipBorderColor: \"#FDE68A\",\n tooltipTextColor: \"#451A03\",\n axisLineColor: \"#FDE68A\",\n xAxisTextColor: \"#78350F\",\n yAxisSplitLine: \"#FEF3C7\",\n itemBorderColor: \"#B45309\",\n lineGradFrom: \"#B45309\",\n lineGradTo: \"#D97706\",\n lineShadow: \"rgba(180, 83, 9, 0.2)\",\n areaGradFrom: \"rgba(180, 83, 9, 0.1)\",\n areaGradTo: \"rgba(180, 83, 9, 0.02)\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n },\n\n echarts: {\n bg: \"#FFFDF7\",\n textColor: \"#451A03\",\n axisLineColor: \"#92400E\",\n splitLineColor: \"#FEF3C7\",\n itemHoverShadowColor: \"rgba(180, 83, 9, 0.25)\",\n tooltipBackgroundColor: \"#B45309\",\n },\n\n chartjs: {\n axisLineColor: \"#FDE68A\",\n textColor: \"#451A03\",\n },\n },\n};\n","import type { ColorTheme } from \"../../types\";\n\n/**\n * Wine — Burgundy Rose\n * 深色酒红,主色 #9F1239 (Rose-800)。\n * 深酒红背景 + 淡玫瑰文字,高贵典雅。\n */\nexport const wineColorTheme: ColorTheme = {\n name: \"wine\",\n displayName: \"Wine\",\n variables: {\n primary: \"#9F1239\",\n primaryHover: \"#881337\",\n primaryLight: \"#FDA4AF\",\n primaryBg: \"rgba(159, 18, 57, 0.1)\",\n primaryRgb: \"159, 18, 57\",\n primaryTransparent: \"rgba(159, 18, 57, 0.15)\",\n primaryFg: \"#FFF1F2\",\n\n success: \"#6D9F6D\",\n successLight: \"#8DBE8D\",\n successRgb: \"109, 159, 109\",\n info: \"#8A6E7A\",\n infoLight: \"#A88E98\",\n infoRgb: \"138, 110, 122\",\n warning: \"#C49050\",\n warningLight: \"#D4B080\",\n warningRgb: \"196, 144, 80\",\n danger: \"#E11D48\",\n dangerLight: \"#FB7185\",\n dangerRgb: \"225, 29, 72\",\n\n bg: \"#1A0810\",\n bg2: \"#2D0F1A\",\n bg3: \"#3F1525\",\n bg4: \"#521C30\",\n bgSecondary: \"#2D0F1A\",\n\n border: \"#3F1525\",\n border2: \"#521C30\",\n border3: \"#7F2848\",\n border4: \"#9F1239\",\n border5: \"#FB7185\",\n borderHover: \"#9F1239\",\n\n fg: \"#D4899A\",\n fgText: \"#FFF1F2\",\n fgHeading: \"#FFFFFF\",\n fgHighlight: \"#FDA4AF\",\n fgMuted: \"#A0576D\",\n fgOnPrimary: \"#1A0810\",\n\n separator: \"#3F1525\",\n\n overlay: \"rgba(0, 0, 0, 0.65)\",\n shadow: \"rgba(0, 0, 0, 0.45)\",\n ring: \"#9F1239\",\n\n chart1: \"#9F1239\",\n chart2: \"#6D9F6D\",\n chart3: \"#C49050\",\n chart4: \"#E11D48\",\n chart5: \"#FDA4AF\",\n\n temperature: {\n arcFill: [\"#521C30\", \"#7F2848\", \"#9F1239\", \"#E11D48\", \"#FDA4AF\"],\n arcEmpty: \"#3F1525\",\n thumbBg: \"#2D0F1A\",\n thumbBorder: \"#9F1239\",\n },\n\n solar: {\n gradientLeft: \"#9F1239\",\n gradientRight: \"#E11D48\",\n shadowColor: \"rgba(159, 18, 57, 0.3)\",\n secondSeriesFill: \"#3F1525\",\n },\n\n traffic: {\n tooltipBg: \"#3F1525\",\n tooltipBorderColor: \"#7F2848\",\n tooltipTextColor: \"#FFF1F2\",\n yAxisSplitLine: \"#3F1525\",\n lineBg: \"#521C30\",\n itemColor: \"#521C30\",\n itemBorderColor: \"#7F2848\",\n itemEmphasisBorderColor: \"#9F1239\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n shadowLineShadow: \"rgba(0, 0, 0, 0)\",\n gradFrom: \"#3F1525\",\n gradTo: \"#2D0F1A\",\n },\n\n electricity: {\n tooltipBg: \"#3F1525\",\n tooltipLineColor: \"#FFF1F2\",\n tooltipBorderColor: \"#7F2848\",\n tooltipTextColor: \"#FFF1F2\",\n axisLineColor: \"#521C30\",\n xAxisTextColor: \"#D4899A\",\n yAxisSplitLine: \"#3F1525\",\n itemBorderColor: \"#9F1239\",\n lineGradFrom: \"#9F1239\",\n lineGradTo: \"#E11D48\",\n lineShadow: \"rgba(159, 18, 57, 0.3)\",\n areaGradFrom: \"rgba(159, 18, 57, 0.12)\",\n areaGradTo: \"rgba(159, 18, 57, 0.02)\",\n shadowLineDarkBg: \"rgba(0, 0, 0, 0)\",\n },\n\n echarts: {\n bg: \"#1A0810\",\n textColor: \"#FFF1F2\",\n axisLineColor: \"#7F2848\",\n splitLineColor: \"#3F1525\",\n itemHoverShadowColor: \"rgba(159, 18, 57, 0.35)\",\n tooltipBackgroundColor: \"#3F1525\",\n },\n\n chartjs: {\n axisLineColor: \"#521C30\",\n textColor: \"#FFF1F2\",\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 { wheatColorTheme } from \"./wheat\";\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 };\nconst wheatTheme: Theme = { colors: wheatColorTheme, 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 [ThemeEnum.WHEAT]: wheatTheme,\n};\n\nexport { defaultTheme, lightTheme, darkTheme, cosmicTheme, corporateTheme, forestTheme, coffeeTheme, wineTheme, wheatTheme };\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/types.d.ts CHANGED
@@ -1,181 +1 @@
1
- /** 错误响应。Error response. */
2
- export declare interface ApiErrorBody {
3
- /** 状态码。Status code. */
4
- status?: number;
5
- /** 错误码。Error code. */
6
- errCode?: string;
7
- /** 消息。Message. */
8
- message?: string;
9
- /** 详情。Details. */
10
- details?: unknown;
11
- /** 追踪 ID。Trace ID. */
12
- traceId?: string;
13
- }
14
-
15
- /**
16
- * 数组类型。Array type.
17
- * @example Array<string> => string[]
18
- */
19
- declare type Array_2<T> = T[];
20
- export { Array_2 as Array }
21
-
22
- /**
23
- * 可为空数组;T 为元素类型,等价于 ArrayType<T> | []。
24
- * Arrayable: T[] | [],T 为数组元素类型。
25
- * @example Arrayable<string> => string[] | []
26
- */
27
- export declare type Arrayable<T> = Array_2<T> | [];
28
-
29
- /**
30
- * 数组或单个元素:T[] | T。用于接口/参数既可传数组也可传单元素时。
31
- * Array or single element: T[] | T. For APIs that accept either an array or one element.
32
- * @example ArrayOrSingle<string> => string[] | string
33
- */
34
- export declare type ArrayOrSingle<T> = T[] | T;
35
-
36
- /** 基础响应(status、errCode、message)。Base response (status, errCode, message). */
37
- export declare interface BaseResponse {
38
- /** 状态码。Status code. */
39
- status?: number;
40
- /** 错误码。Error code. */
41
- errCode?: string;
42
- /** 消息。Message. */
43
- message?: string;
44
- }
45
-
46
- /** 带 data 与可选 meta 的响应。Response with data and optional meta. */
47
- export declare interface DataResponse<T, M = Record<string, unknown>> extends BaseResponse {
48
- /** 数据。Data payload. */
49
- data: T;
50
- /** 元信息。Meta. */
51
- meta?: M;
52
- }
53
-
54
- /**
55
- * 定义品牌类型:用于 defineXxx 的返回值,仅对应的 createXxx/构造函数可接受;Tag 区分不同定义(如 "events" | "router")。
56
- * Define brand type: for defineXxx return value, only the matching createXxx accepts; Tag discriminates (e.g. "events" | "router").
57
- * @example Defined<{ HOME: "/" }, "router"> 仅能传入 createRouter;Defined<{ FOO: "x" }, "events"> 仅能传入 EventEmitter
58
- */
59
- export declare type Defined<T, Tag extends string> = T & {
60
- readonly __defineBrand?: Tag;
61
- };
62
-
63
- /**
64
- * 可为 null、undefined 或空字符串。Emptyable: T | null | undefined | "".
65
- * @example Emptyable<string> => string | null | undefined | ""
66
- */
67
- export declare type Emptyable<T> = T | null | undefined | "";
68
-
69
- /**
70
- * 存在性结果元组:有值时为 [T, true],无值时为 [null, false]。用于区分「有值」与「无」而不依赖 undefined。
71
- * Existence result tuple: [T, true] when present, [null, false] when absent.
72
- * @example ExistenceResult<{ id: string }> => [{ id: string }, true] | [null, false]
73
- */
74
- export declare type ExistenceResult<T> = [T, true] | [null, false];
75
-
76
- /**
77
- * 判断结果为 OK 时的元组形态:[T, true];与 ExistenceResult 的「有值」分支一致。
78
- * Result is OK: tuple [T, true]; same as the present branch of ExistenceResult.
79
- * @example isOK<{ id: string }> => [T, true]
80
- */
81
- export declare type isOK<T> = [T, true] | [null, false];
82
-
83
- /**
84
- * 对象 T 的键字面量联合类型,即 keyof T。KeyOf: key type of T.
85
- * @example KeyOf<{ a: 1; b: 2 }> => "a" | "b"
86
- */
87
- export declare type KeyOf<T> = keyof T;
88
-
89
- /** 字符串游标列表:items + nextCursor(用于 nextCursor 为 string 的 API)。List with string nextCursor. */
90
- export declare interface ListDTOWithNextCursor<T> {
91
- /** 列表项。Items. */
92
- items: Array_2<T>;
93
- /** 下一页游标。Next cursor. */
94
- nextCursor: string;
95
- }
96
-
97
- /** 列表 + 总数:items + total(用于 offset/limit 分页的返回)。List with total count; used as offset/limit response. */
98
- export declare interface ListDTOWithTotalNumber<T> {
99
- /** 列表项。Items. */
100
- items: Array_2<T>;
101
- /** 总数。Total count. */
102
- total: number;
103
- }
104
-
105
- /** 列表元信息(如 total)。List meta (e.g. total). */
106
- export declare interface ListMeta {
107
- /** 总数。Total count. */
108
- total?: number;
109
- }
110
-
111
- /**
112
- * 可为 undefined。Maybe: T | undefined.
113
- * @example Maybe<number> => number | undefined
114
- */
115
- export declare type Maybe<T> = T | undefined;
116
-
117
- /**
118
- * 可为 null 或 undefined。Nilable: T | null | undefined.
119
- * @example Nilable<boolean> => boolean | null | undefined
120
- */
121
- export declare type Nilable<T> = T | null | undefined;
122
-
123
- /**
124
- * 可为 null。Nullable: T | null.
125
- * @example Nullable<string> => string | null
126
- */
127
- export declare type Nullable<T> = T | null;
128
-
129
- /**
130
- * 可为空对象。Objectable: T | {},T 为对象类型。
131
- * @example Objectable<{ a: number }> => { a: number } | {}
132
- */
133
- export declare type Objectable<T extends Record<string, unknown>> = T | {};
134
-
135
- /** 数字 offset 分页参数(用于 makeCursorFetchFunction 等)。Number offset pagination params; used by makeCursorFetchFunction etc. */
136
- export declare interface OffsetLimitNumber {
137
- /** 偏移量。Offset. */
138
- offset: number;
139
- /** 每页条数。Limit. */
140
- limit: number;
141
- }
142
-
143
- /** 字符串游标分页参数(用于 makeStringCursorFetchFunction 等)。String cursor pagination params; used by makeStringCursorFetchFunction etc. */
144
- export declare interface OffsetLimitString {
145
- /** 游标(字符串)。Cursor (string). */
146
- offset: string;
147
- /** 每页条数。Limit. */
148
- limit: number;
149
- }
150
-
151
- /** 分页响应(data、total、page、pageSize)。Paginated response (data, total, page, pageSize). */
152
- export declare interface PaginatedResponse<T> {
153
- /** 数据列表。Data array. */
154
- data: Array_2<T>;
155
- /** 总数。Total count. */
156
- total: number;
157
- /** 当前页。Current page. */
158
- page: number;
159
- /** 每页条数。Page size. */
160
- pageSize: number;
161
- }
162
-
163
- /**
164
- * 可为空字符串的类型。Stringable: T | "",T 为 string 子类型。
165
- * @example Stringable<string> => string | ""
166
- */
167
- export declare type Stringable<T extends string> = T | "";
168
-
169
- /**
170
- * 对象 T 所有属性值的联合类型。ValueOf: union of all property value types of T.
171
- * @example ValueOf<{ a: number; b: string }> => number | string
172
- */
173
- export declare type ValueOf<T> = T[keyof T];
174
-
175
- /**
176
- * 可为 0 的数值类型。Zeroable: T | 0,T 为 number 子类型。
177
- * @example Zeroable<number> => number | 0
178
- */
179
- export declare type Zeroable<T extends number> = T | 0;
180
-
181
1
  export { }