nfx-ui 0.5.0 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +2 -2
- package/dist/{chunk-i18n-Bp6pPM9n.mjs → chunk-i18n-BBPhh6MT.mjs} +22 -19
- package/dist/chunk-i18n-BBPhh6MT.mjs.map +1 -0
- package/dist/chunk-i18n-daHSL0Nm.cjs +3 -0
- package/dist/chunk-i18n-daHSL0Nm.cjs.map +1 -0
- package/dist/{chunk-preference-DImtu5jI.mjs → chunk-preference-By58ZcJ_.mjs} +2 -2
- package/dist/{chunk-preference-DImtu5jI.mjs.map → chunk-preference-By58ZcJ_.mjs.map} +1 -1
- package/dist/{chunk-preference-CYl68oeU.cjs → chunk-preference-C144GkCD.cjs} +2 -2
- package/dist/{chunk-preference-CYl68oeU.cjs.map → chunk-preference-C144GkCD.cjs.map} +1 -1
- package/dist/chunk-types-BNUlgEkq.cjs +3 -0
- package/dist/{chunk-types-BkFxelHl.mjs.map → chunk-types-BNUlgEkq.cjs.map} +1 -1
- package/dist/{chunk-types-BkFxelHl.mjs → chunk-types-BudGuDCK.mjs} +8 -8
- package/dist/{chunk-types-CkbZrFqZ.cjs.map → chunk-types-BudGuDCK.mjs.map} +1 -1
- package/dist/components.d.ts +3 -1
- package/dist/languages.cjs +1 -1
- package/dist/languages.d.ts +6 -1
- package/dist/languages.mjs +2 -1
- package/dist/layouts.cjs +1 -1
- package/dist/layouts.mjs +2 -2
- package/dist/preference.cjs +1 -1
- package/dist/preference.d.ts +3 -1
- package/dist/preference.mjs +2 -2
- package/dist/themes.cjs +1 -1
- package/dist/themes.cjs.map +1 -1
- package/dist/themes.d.ts +3 -1
- package/dist/themes.mjs +164 -70
- package/dist/themes.mjs.map +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.mjs +1 -1
- package/package.json +5 -3
- package/dist/chunk-i18n-Bp6pPM9n.mjs.map +0 -1
- package/dist/chunk-i18n-_7W7guSV.cjs +0 -3
- package/dist/chunk-i18n-_7W7guSV.cjs.map +0 -1
- package/dist/chunk-types-CkbZrFqZ.cjs +0 -3
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 NebulaForgeX
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -157,7 +157,7 @@ src/
|
|
|
157
157
|
|
|
158
158
|
## License
|
|
159
159
|
|
|
160
|
-
|
|
160
|
+
[MIT](LICENSE) — see [LICENSE](LICENSE) for details.
|
|
161
161
|
|
|
162
162
|
---
|
|
163
163
|
|
|
@@ -320,4 +320,4 @@ src/
|
|
|
320
320
|
|
|
321
321
|
## 许可证
|
|
322
322
|
|
|
323
|
-
|
|
323
|
+
[MIT](LICENSE) — 详见 [LICENSE](LICENSE)。
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { i as n } from "./chunk-types-SD4MzUGp.mjs";
|
|
2
2
|
import t from "i18next";
|
|
3
3
|
import g from "i18next-browser-languagedetector";
|
|
4
|
-
import { initReactI18next as
|
|
5
|
-
const
|
|
4
|
+
import { initReactI18next as w } from "react-i18next";
|
|
5
|
+
const m = {
|
|
6
6
|
show: "Show Sidebar",
|
|
7
7
|
hide: "Hide Sidebar"
|
|
8
8
|
};
|
|
9
|
-
var p = { layoutSwitcher:
|
|
9
|
+
var p = { layoutSwitcher: m };
|
|
10
10
|
const E = {
|
|
11
11
|
en: "English",
|
|
12
12
|
zh: "Chinese",
|
|
@@ -37,7 +37,8 @@ const $ = {
|
|
|
37
37
|
corporate: "Corporate",
|
|
38
38
|
forest: "Forest",
|
|
39
39
|
coffee: "Coffee",
|
|
40
|
-
wine: "Wine"
|
|
40
|
+
wine: "Wine",
|
|
41
|
+
wheat: "Wheat"
|
|
41
42
|
};
|
|
42
43
|
var b = { themeSwitcher: $ };
|
|
43
44
|
const v = {
|
|
@@ -75,7 +76,8 @@ const F = {
|
|
|
75
76
|
corporate: "Entreprise",
|
|
76
77
|
forest: "Forêt",
|
|
77
78
|
coffee: "Coffee",
|
|
78
|
-
wine: "Vin"
|
|
79
|
+
wine: "Vin",
|
|
80
|
+
wheat: "Blé"
|
|
79
81
|
};
|
|
80
82
|
var O = { themeSwitcher: F };
|
|
81
83
|
const k = {
|
|
@@ -88,22 +90,22 @@ const U = {
|
|
|
88
90
|
zh: "中文",
|
|
89
91
|
fr: "法语"
|
|
90
92
|
};
|
|
91
|
-
var
|
|
92
|
-
const
|
|
93
|
+
var W = { languageSwitcher: U };
|
|
94
|
+
const z = {
|
|
93
95
|
default: "默认",
|
|
94
96
|
ios: "iOS",
|
|
95
97
|
android: "Android",
|
|
96
98
|
windows: "Windows",
|
|
97
99
|
linux: "Linux"
|
|
98
|
-
},
|
|
100
|
+
}, B = {
|
|
99
101
|
theme: "主题",
|
|
100
102
|
language: "语言",
|
|
101
103
|
layout: "布局",
|
|
102
104
|
preferences: "偏好设置"
|
|
103
105
|
};
|
|
104
|
-
var
|
|
105
|
-
baseSwitcher:
|
|
106
|
-
preference:
|
|
106
|
+
var T = {
|
|
107
|
+
baseSwitcher: z,
|
|
108
|
+
preference: B
|
|
107
109
|
};
|
|
108
110
|
const H = {
|
|
109
111
|
default: "默认",
|
|
@@ -113,7 +115,8 @@ const H = {
|
|
|
113
115
|
corporate: "企业",
|
|
114
116
|
forest: "森林",
|
|
115
117
|
coffee: "咖啡",
|
|
116
|
-
wine: "酒红"
|
|
118
|
+
wine: "酒红",
|
|
119
|
+
wheat: "麦田"
|
|
117
120
|
};
|
|
118
121
|
var X = { themeSwitcher: H };
|
|
119
122
|
const q = [
|
|
@@ -136,9 +139,9 @@ var V = {
|
|
|
136
139
|
},
|
|
137
140
|
zh: {
|
|
138
141
|
theme: X,
|
|
139
|
-
language:
|
|
142
|
+
language: W,
|
|
140
143
|
layout: D,
|
|
141
|
-
preference:
|
|
144
|
+
preference: T
|
|
142
145
|
},
|
|
143
146
|
fr: {
|
|
144
147
|
theme: O,
|
|
@@ -155,7 +158,7 @@ function Z() {
|
|
|
155
158
|
};
|
|
156
159
|
}
|
|
157
160
|
function Q(o) {
|
|
158
|
-
const l = Z(), i = o.bundles, c = o.fallbackLng ?? n.ZH,
|
|
161
|
+
const l = Z(), i = o.bundles, c = o.fallbackLng ?? n.ZH, d = [
|
|
159
162
|
n.EN,
|
|
160
163
|
n.ZH,
|
|
161
164
|
n.FR
|
|
@@ -166,9 +169,9 @@ function Q(o) {
|
|
|
166
169
|
...i.RESOURCES[e] ?? {}
|
|
167
170
|
}
|
|
168
171
|
}), {}), s = [...i.NAME_SPACES, ...l.NAME_SPACES.filter((a) => !i.NAME_SPACES.includes(a))];
|
|
169
|
-
t.use(g).use(
|
|
172
|
+
t.use(g).use(w).init({
|
|
170
173
|
compatibilityJSON: "v4",
|
|
171
|
-
resources:
|
|
174
|
+
resources: d,
|
|
172
175
|
lng: c,
|
|
173
176
|
fallbackLng: c,
|
|
174
177
|
ns: s,
|
|
@@ -188,7 +191,7 @@ function Q(o) {
|
|
|
188
191
|
const r = await f(e);
|
|
189
192
|
if (r == null) return;
|
|
190
193
|
const S = Array.isArray(r) ? r : [r];
|
|
191
|
-
for (const { namespace:
|
|
194
|
+
for (const { namespace: h, bundle: u } of S) h && u && typeof u == "object" && t.addResourceBundle(e, h, u, !0, !0);
|
|
192
195
|
};
|
|
193
196
|
a(t.language || c), t.on("languageChanged", (e) => {
|
|
194
197
|
a(e);
|
|
@@ -204,4 +207,4 @@ export {
|
|
|
204
207
|
Y as t
|
|
205
208
|
};
|
|
206
209
|
|
|
207
|
-
//# sourceMappingURL=chunk-i18n-
|
|
210
|
+
//# sourceMappingURL=chunk-i18n-BBPhh6MT.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-i18n-BBPhh6MT.mjs","names":[],"sources":["../src/languages/resources/en/layout.json","../src/languages/resources/en/language.json","../src/languages/resources/en/preference.json","../src/languages/resources/en/theme.json","../src/languages/resources/fr/layout.json","../src/languages/resources/fr/language.json","../src/languages/resources/fr/preference.json","../src/languages/resources/fr/theme.json","../src/languages/resources/zh/layout.json","../src/languages/resources/zh/language.json","../src/languages/resources/zh/preference.json","../src/languages/resources/zh/theme.json","../src/languages/resources/index.ts","../src/languages/languages/i18n.ts"],"sourcesContent":["{\n \"layoutSwitcher\": {\n \"show\": \"Show Sidebar\",\n \"hide\": \"Hide Sidebar\"\n }\n}\n","{\n \"languageSwitcher\": {\n \"en\": \"English\",\n \"zh\": \"Chinese\",\n \"fr\": \"French\"\n }\n}\n","{\n \"baseSwitcher\": {\n \"default\": \"Default\",\n \"ios\": \"iOS\",\n \"android\": \"Android\",\n \"windows\": \"Windows\",\n \"linux\": \"Linux\"\n },\n \"preference\": {\n \"theme\": \"Theme\",\n \"language\": \"Language\",\n \"layout\": \"Layout\",\n \"preferences\": \"Preferences\"\n }\n}\n","{\n \"themeSwitcher\": {\n \"default\": \"Default\",\n \"light\": \"Light\",\n \"dark\": \"Dark\",\n \"cosmic\": \"Cosmic\",\n \"corporate\": \"Corporate\",\n \"forest\": \"Forest\",\n \"coffee\": \"Coffee\",\n \"wine\": \"Wine\",\n \"wheat\": \"Wheat\"\n }\n}\n","{\n \"layoutSwitcher\": {\n \"show\": \"Afficher la barre latérale\",\n \"hide\": \"Masquer la barre latérale\"\n }\n}\n","{\n \"languageSwitcher\": {\n \"en\": \"Anglais\",\n \"zh\": \"Chinois\",\n \"fr\": \"Français\"\n }\n}\n","{\n \"baseSwitcher\": {\n \"default\": \"Par défaut\",\n \"ios\": \"iOS\",\n \"android\": \"Android\",\n \"windows\": \"Windows\",\n \"linux\": \"Linux\"\n },\n \"preference\": {\n \"theme\": \"Thème\",\n \"language\": \"Langue\",\n \"layout\": \"Disposition\",\n \"preferences\": \"Préférences\"\n }\n}\n","{\n \"themeSwitcher\": {\n \"default\": \"Par défaut\",\n \"light\": \"Clair\",\n \"dark\": \"Sombre\",\n \"cosmic\": \"Cosmique\",\n \"corporate\": \"Entreprise\",\n \"forest\": \"Forêt\",\n \"coffee\": \"Coffee\",\n \"wine\": \"Vin\",\n \"wheat\": \"Blé\"\n }\n}\n","{\n \"layoutSwitcher\": {\n \"show\": \"显示侧边栏\",\n \"hide\": \"隐藏侧边栏\"\n }\n}\n","{\n \"languageSwitcher\": {\n \"en\": \"英语\",\n \"zh\": \"中文\",\n \"fr\": \"法语\"\n }\n}\n","{\n \"baseSwitcher\": {\n \"default\": \"默认\",\n \"ios\": \"iOS\",\n \"android\": \"Android\",\n \"windows\": \"Windows\",\n \"linux\": \"Linux\"\n },\n \"preference\": {\n \"theme\": \"主题\",\n \"language\": \"语言\",\n \"layout\": \"布局\",\n \"preferences\": \"偏好设置\"\n }\n}\n","{\n \"themeSwitcher\": {\n \"default\": \"默认\",\n \"light\": \"浅色\",\n \"dark\": \"深色\",\n \"cosmic\": \"宇宙\",\n \"corporate\": \"企业\",\n \"forest\": \"森林\",\n \"coffee\": \"咖啡\",\n \"wine\": \"酒红\",\n \"wheat\": \"麦田\"\n }\n}\n","/**\n * NFX-UI 内置多语言资源:theme / language / layout / preference 四个命名空间,en / zh / fr 三种语言。\n * Built-in i18n resources: namespaces theme, language, layout, preference; languages en, zh, fr.\n *\n * 使用方可在 createI18nResources 时合并此资源,使 ThemeSwitcher / LanguageSwitcher / LayoutSwitcher 使用默认翻译。\n * Consumers can merge these resources in createI18nResources so switchers use default labels.\n */\nimport type { CreateI18nResourcesResult, NameSpacesMap, Resources } from \"../types\";\n\nimport enLayout from \"./en/layout.json\";\nimport enLanguage from \"./en/language.json\";\nimport enPreference from \"./en/preference.json\";\nimport enTheme from \"./en/theme.json\";\nimport frLayout from \"./fr/layout.json\";\nimport frLanguage from \"./fr/language.json\";\nimport frPreference from \"./fr/preference.json\";\nimport frTheme from \"./fr/theme.json\";\nimport zhLayout from \"./zh/layout.json\";\nimport zhLanguage from \"./zh/language.json\";\nimport zhPreference from \"./zh/preference.json\";\nimport zhTheme from \"./zh/theme.json\";\n\nexport const NFX_NAMESPACES = [\"theme\", \"language\", \"layout\", \"preference\"] as const;\nexport const NFX_NAMESPACES_MAP: NameSpacesMap = {\n theme: \"theme\",\n language: \"language\",\n layout: \"layout\",\n preference: \"preference\",\n};\n\nconst DEFAULT_NFX_RESOURCES: Resources = {\n en: {\n theme: enTheme as Record<string, unknown>,\n language: enLanguage as Record<string, unknown>,\n layout: enLayout as Record<string, unknown>,\n preference: enPreference as Record<string, unknown>,\n },\n zh: {\n theme: zhTheme as Record<string, unknown>,\n language: zhLanguage as Record<string, unknown>,\n layout: zhLayout as Record<string, unknown>,\n preference: zhPreference as Record<string, unknown>,\n },\n fr: {\n theme: frTheme as Record<string, unknown>,\n language: frLanguage as Record<string, unknown>,\n layout: frLayout as Record<string, unknown>,\n preference: frPreference as Record<string, unknown>,\n },\n};\n\n/**\n * 返回 NFX-UI 默认文案包,可与使用方自建 resources 合并后传入 createI18nResources。\n * Returns default NFX bundles; merge with your resources and pass to createI18nResources.\n */\nexport function getDefaultNfxBundles(): CreateI18nResourcesResult {\n return {\n RESOURCES: DEFAULT_NFX_RESOURCES,\n NAME_SPACES_MAP: NFX_NAMESPACES_MAP,\n NAME_SPACES: [...NFX_NAMESPACES],\n };\n}\n","/**\n * i18n 初始化与实例:initI18n 由 LanguageProvider 调用,changeLanguage 供外部切换语言。\n * 默认会合并 NFX-UI 自带的 theme / language / layout / preference 四个命名空间,使用方只需传入自己的 bundles。\n * i18n init and instance: initI18n called by LanguageProvider. Merges built-in theme/language/layout/preference by default.\n */\nimport type { InitI18nOptions } from \"../types\";\n\nimport i18n from \"i18next\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nimport { initReactI18next } from \"react-i18next\";\n\nimport { getDefaultNfxBundles } from \"../resources\";\nimport { LanguageEnum } from \"../types\";\n\n/**\n * 初始化 i18n。会先合并 NFX-UI 自带的四类 JSON(theme/language/layout/preference),再与用户传入的 bundles 合并(用户可覆盖)。\n * Init i18n. Merges built-in NFX bundles (theme, language, layout, preference) with user bundles (user overrides).\n */\nexport function initI18n(options: InitI18nOptions): void {\n const nfx = getDefaultNfxBundles();\n const user = options.bundles;\n const fallbackLng = options.fallbackLng ?? LanguageEnum.ZH;\n\n const RESOURCES = ([LanguageEnum.EN, LanguageEnum.ZH, LanguageEnum.FR] as const).reduce(\n (acc, lang) => ({\n ...acc,\n [lang]: {\n ...(nfx.RESOURCES[lang] ?? {}),\n ...(user.RESOURCES[lang] ?? {}),\n },\n }),\n {} as typeof user.RESOURCES,\n );\n const NAME_SPACES = [...user.NAME_SPACES, ...nfx.NAME_SPACES.filter((n) => !user.NAME_SPACES.includes(n))];\n\n i18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n compatibilityJSON: \"v4\",\n resources: RESOURCES,\n lng: fallbackLng,\n fallbackLng,\n ns: NAME_SPACES,\n defaultNS: NAME_SPACES[0],\n interpolation: { escapeValue: false },\n keySeparator: \".\",\n detection: { order: [\"navigator\", \"htmlTag\", \"path\", \"subdomain\"] },\n });\n\n const onLoad = options.onLoadExtraBundles;\n if (onLoad) {\n const apply = async (lng: LanguageEnum) => {\n const result = await onLoad(lng);\n if (result == null) return;\n const items = Array.isArray(result) ? result : [result];\n for (const { namespace, bundle } of items) {\n if (namespace && bundle && typeof bundle === \"object\") {\n i18n.addResourceBundle(lng, namespace, bundle, true, true);\n }\n }\n };\n void apply((i18n.language as LanguageEnum) || fallbackLng);\n i18n.on(\"languageChanged\", (lng) => void apply(lng as LanguageEnum));\n }\n}\n\nexport default i18n;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AYsBA,MAAa,IAAiB;AAAA,EAAC;AAAA,EAAS;AAAA,EAAY;AAAA,EAAU;GACjD,IAAoC;AAAA,EAC/C,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,YAAY;;AAGd,IAAM,IAAmC;AAAA,EACvC,IAAI;AAAA,IACF,OAAO;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,YAAY;AAAA;EAEd,IAAI;AAAA,IACF,OAAO;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,YAAY;AAAA;EAEd,IAAI;AAAA,IACF,OAAO;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,YAAY;AAAA;;AAQhB,SAAgB,IAAkD;AAChE,SAAO;AAAA,IACL,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,aAAa,CAAC,GAAG,CAAA;AAAA;;ACzCrB,SAAgB,EAAS,GAAgC;AACvD,QAAM,IAAM,EAAA,GACN,IAAO,EAAQ,SACf,IAAc,EAAQ,eAAe,EAAa,IAElD,IAAa;AAAA,IAAC,EAAa;AAAA,IAAI,EAAa;AAAA,IAAI,EAAa;AAAA,IAAc,OAAA,CAC9E,GAAK,OAAU;AAAA,IACd,GAAG;AAAA,KACF,CAAA,GAAO;AAAA,MACN,GAAI,EAAI,UAAU,CAAA,KAAS,CAAA;AAAA,MAC3B,GAAI,EAAK,UAAU,CAAA,KAAS,CAAA;AAAA;MAGhC,CAAA,CAAE,GAEE,IAAc,CAAC,GAAG,EAAK,aAAa,GAAG,EAAI,YAAY,OAAA,CAAQ,MAAM,CAAC,EAAK,YAAY,SAAS,CAAA,CAAE,CAAC;AAEzG,EAAA,EACG,IAAI,CAAA,EACJ,IAAI,CAAA,EACJ,KAAK;AAAA,IACJ,mBAAmB;AAAA,IACnB,WAAW;AAAA,IACX,KAAK;AAAA,IACL,aAAA;AAAA,IACA,IAAI;AAAA,IACJ,WAAW,EAAY,CAAA;AAAA,IACvB,eAAe,EAAE,aAAa,GAAA;AAAA,IAC9B,cAAc;AAAA,IACd,WAAW,EAAE,OAAO;AAAA,MAAC;AAAA,MAAa;AAAA,MAAW;AAAA,MAAQ;AAAA,MAAY;AAAA,GAClE;AAEH,QAAM,IAAS,EAAQ;AACvB,MAAI,GAAQ;AACV,UAAM,IAAQ,OAAO,MAAsB;AACzC,YAAM,IAAS,MAAM,EAAO,CAAA;AAC5B,UAAI,KAAU,KAAM;AACpB,YAAM,IAAQ,MAAM,QAAQ,CAAA,IAAU,IAAS,CAAC,CAAA;AAChD,iBAAW,EAAE,WAAA,GAAW,QAAA,EAAA,KAAY,EAClC,CAAI,KAAa,KAAU,OAAO,KAAW,YAC3C,EAAK,kBAAkB,GAAK,GAAW,GAAQ,IAAM,EAAA;AAAA;AAItD,IAAA,EAAO,EAAK,YAA6B,CAAA,GAC9C,EAAK,GAAG,mBAAA,CAAoB,MAAA;AAAQ,MAAK,EAAM,CAAA;AAAA,KAAoB;AAAA;;AAIvE,IAAA,IAAe"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const h=require("./chunk-chunk-BFrxaqQT.cjs"),n=require("./chunk-types-BE3JCLff.cjs");let t=require("i18next");t=h.__toESM(t);let l=require("i18next-browser-languagedetector");l=h.__toESM(l);let p=require("react-i18next");const y={show:"Show Sidebar",hide:"Hide Sidebar"};var A={layoutSwitcher:y};const b={en:"English",zh:"Chinese",fr:"French"};var C={languageSwitcher:b};const P={default:"Default",ios:"iOS",android:"Android",windows:"Windows",linux:"Linux"},N={theme:"Theme",language:"Language",layout:"Layout",preferences:"Preferences"};var $={baseSwitcher:P,preference:N};const v={default:"Default",light:"Light",dark:"Dark",cosmic:"Cosmic",corporate:"Corporate",forest:"Forest",coffee:"Coffee",wine:"Wine",wheat:"Wheat"};var L={themeSwitcher:v};const M={show:"Afficher la barre latérale",hide:"Masquer la barre latérale"};var x={layoutSwitcher:M};const O={en:"Anglais",zh:"Chinois",fr:"Français"};var R={languageSwitcher:O};const F={default:"Par défaut",ios:"iOS",android:"Android",windows:"Windows",linux:"Linux"},q={theme:"Thème",language:"Langue",layout:"Disposition",preferences:"Préférences"};var k={baseSwitcher:F,preference:q};const D={default:"Par défaut",light:"Clair",dark:"Sombre",cosmic:"Cosmique",corporate:"Entreprise",forest:"Forêt",coffee:"Coffee",wine:"Vin",wheat:"Blé"};var j={themeSwitcher:D};const U={show:"显示侧边栏",hide:"隐藏侧边栏"};var B={layoutSwitcher:U};const W={en:"英语",zh:"中文",fr:"法语"};var X={languageSwitcher:W};const z={default:"默认",ios:"iOS",android:"Android",windows:"Windows",linux:"Linux"},T={theme:"主题",language:"语言",layout:"布局",preferences:"偏好设置"};var H={baseSwitcher:z,preference:T};const I={default:"默认",light:"浅色",dark:"深色",cosmic:"宇宙",corporate:"企业",forest:"森林",coffee:"咖啡",wine:"酒红",wheat:"麦田"};var V={themeSwitcher:I};const S=["theme","language","layout","preference"],w={theme:"theme",language:"language",layout:"layout",preference:"preference"};var Z={en:{theme:L,language:C,layout:A,preference:$},zh:{theme:V,language:X,layout:B,preference:H},fr:{theme:j,language:R,layout:x,preference:k}};function E(){return{RESOURCES:Z,NAME_SPACES_MAP:w,NAME_SPACES:[...S]}}function J(u){const f=E(),o=u.bundles,i=u.fallbackLng??n.LanguageEnum.ZH,m=[n.LanguageEnum.EN,n.LanguageEnum.ZH,n.LanguageEnum.FR].reduce((r,e)=>({...r,[e]:{...f.RESOURCES[e]??{},...o.RESOURCES[e]??{}}}),{}),s=[...o.NAME_SPACES,...f.NAME_SPACES.filter(r=>!o.NAME_SPACES.includes(r))];t.default.use(l.default).use(p.initReactI18next).init({compatibilityJSON:"v4",resources:m,lng:i,fallbackLng:i,ns:s,defaultNS:s[0],interpolation:{escapeValue:!1},keySeparator:".",detection:{order:["navigator","htmlTag","path","subdomain"]}});const d=u.onLoadExtraBundles;if(d){const r=async e=>{const a=await d(e);if(a==null)return;const _=Array.isArray(a)?a:[a];for(const{namespace:g,bundle:c}of _)g&&c&&typeof c=="object"&&t.default.addResourceBundle(e,g,c,!0,!0)};r(t.default.language||i),t.default.on("languageChanged",e=>{r(e)})}}var G=t.default;Object.defineProperty(exports,"NFX_NAMESPACES",{enumerable:!0,get:function(){return S}});Object.defineProperty(exports,"NFX_NAMESPACES_MAP",{enumerable:!0,get:function(){return w}});Object.defineProperty(exports,"getDefaultNfxBundles",{enumerable:!0,get:function(){return E}});Object.defineProperty(exports,"i18n_default",{enumerable:!0,get:function(){return G}});Object.defineProperty(exports,"initI18n",{enumerable:!0,get:function(){return J}});
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=chunk-i18n-daHSL0Nm.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunk-i18n-daHSL0Nm.cjs","names":[],"sources":["../src/languages/resources/en/layout.json","../src/languages/resources/en/language.json","../src/languages/resources/en/preference.json","../src/languages/resources/en/theme.json","../src/languages/resources/fr/layout.json","../src/languages/resources/fr/language.json","../src/languages/resources/fr/preference.json","../src/languages/resources/fr/theme.json","../src/languages/resources/zh/layout.json","../src/languages/resources/zh/language.json","../src/languages/resources/zh/preference.json","../src/languages/resources/zh/theme.json","../src/languages/resources/index.ts","../src/languages/languages/i18n.ts"],"sourcesContent":["{\n \"layoutSwitcher\": {\n \"show\": \"Show Sidebar\",\n \"hide\": \"Hide Sidebar\"\n }\n}\n","{\n \"languageSwitcher\": {\n \"en\": \"English\",\n \"zh\": \"Chinese\",\n \"fr\": \"French\"\n }\n}\n","{\n \"baseSwitcher\": {\n \"default\": \"Default\",\n \"ios\": \"iOS\",\n \"android\": \"Android\",\n \"windows\": \"Windows\",\n \"linux\": \"Linux\"\n },\n \"preference\": {\n \"theme\": \"Theme\",\n \"language\": \"Language\",\n \"layout\": \"Layout\",\n \"preferences\": \"Preferences\"\n }\n}\n","{\n \"themeSwitcher\": {\n \"default\": \"Default\",\n \"light\": \"Light\",\n \"dark\": \"Dark\",\n \"cosmic\": \"Cosmic\",\n \"corporate\": \"Corporate\",\n \"forest\": \"Forest\",\n \"coffee\": \"Coffee\",\n \"wine\": \"Wine\",\n \"wheat\": \"Wheat\"\n }\n}\n","{\n \"layoutSwitcher\": {\n \"show\": \"Afficher la barre latérale\",\n \"hide\": \"Masquer la barre latérale\"\n }\n}\n","{\n \"languageSwitcher\": {\n \"en\": \"Anglais\",\n \"zh\": \"Chinois\",\n \"fr\": \"Français\"\n }\n}\n","{\n \"baseSwitcher\": {\n \"default\": \"Par défaut\",\n \"ios\": \"iOS\",\n \"android\": \"Android\",\n \"windows\": \"Windows\",\n \"linux\": \"Linux\"\n },\n \"preference\": {\n \"theme\": \"Thème\",\n \"language\": \"Langue\",\n \"layout\": \"Disposition\",\n \"preferences\": \"Préférences\"\n }\n}\n","{\n \"themeSwitcher\": {\n \"default\": \"Par défaut\",\n \"light\": \"Clair\",\n \"dark\": \"Sombre\",\n \"cosmic\": \"Cosmique\",\n \"corporate\": \"Entreprise\",\n \"forest\": \"Forêt\",\n \"coffee\": \"Coffee\",\n \"wine\": \"Vin\",\n \"wheat\": \"Blé\"\n }\n}\n","{\n \"layoutSwitcher\": {\n \"show\": \"显示侧边栏\",\n \"hide\": \"隐藏侧边栏\"\n }\n}\n","{\n \"languageSwitcher\": {\n \"en\": \"英语\",\n \"zh\": \"中文\",\n \"fr\": \"法语\"\n }\n}\n","{\n \"baseSwitcher\": {\n \"default\": \"默认\",\n \"ios\": \"iOS\",\n \"android\": \"Android\",\n \"windows\": \"Windows\",\n \"linux\": \"Linux\"\n },\n \"preference\": {\n \"theme\": \"主题\",\n \"language\": \"语言\",\n \"layout\": \"布局\",\n \"preferences\": \"偏好设置\"\n }\n}\n","{\n \"themeSwitcher\": {\n \"default\": \"默认\",\n \"light\": \"浅色\",\n \"dark\": \"深色\",\n \"cosmic\": \"宇宙\",\n \"corporate\": \"企业\",\n \"forest\": \"森林\",\n \"coffee\": \"咖啡\",\n \"wine\": \"酒红\",\n \"wheat\": \"麦田\"\n }\n}\n","/**\n * NFX-UI 内置多语言资源:theme / language / layout / preference 四个命名空间,en / zh / fr 三种语言。\n * Built-in i18n resources: namespaces theme, language, layout, preference; languages en, zh, fr.\n *\n * 使用方可在 createI18nResources 时合并此资源,使 ThemeSwitcher / LanguageSwitcher / LayoutSwitcher 使用默认翻译。\n * Consumers can merge these resources in createI18nResources so switchers use default labels.\n */\nimport type { CreateI18nResourcesResult, NameSpacesMap, Resources } from \"../types\";\n\nimport enLayout from \"./en/layout.json\";\nimport enLanguage from \"./en/language.json\";\nimport enPreference from \"./en/preference.json\";\nimport enTheme from \"./en/theme.json\";\nimport frLayout from \"./fr/layout.json\";\nimport frLanguage from \"./fr/language.json\";\nimport frPreference from \"./fr/preference.json\";\nimport frTheme from \"./fr/theme.json\";\nimport zhLayout from \"./zh/layout.json\";\nimport zhLanguage from \"./zh/language.json\";\nimport zhPreference from \"./zh/preference.json\";\nimport zhTheme from \"./zh/theme.json\";\n\nexport const NFX_NAMESPACES = [\"theme\", \"language\", \"layout\", \"preference\"] as const;\nexport const NFX_NAMESPACES_MAP: NameSpacesMap = {\n theme: \"theme\",\n language: \"language\",\n layout: \"layout\",\n preference: \"preference\",\n};\n\nconst DEFAULT_NFX_RESOURCES: Resources = {\n en: {\n theme: enTheme as Record<string, unknown>,\n language: enLanguage as Record<string, unknown>,\n layout: enLayout as Record<string, unknown>,\n preference: enPreference as Record<string, unknown>,\n },\n zh: {\n theme: zhTheme as Record<string, unknown>,\n language: zhLanguage as Record<string, unknown>,\n layout: zhLayout as Record<string, unknown>,\n preference: zhPreference as Record<string, unknown>,\n },\n fr: {\n theme: frTheme as Record<string, unknown>,\n language: frLanguage as Record<string, unknown>,\n layout: frLayout as Record<string, unknown>,\n preference: frPreference as Record<string, unknown>,\n },\n};\n\n/**\n * 返回 NFX-UI 默认文案包,可与使用方自建 resources 合并后传入 createI18nResources。\n * Returns default NFX bundles; merge with your resources and pass to createI18nResources.\n */\nexport function getDefaultNfxBundles(): CreateI18nResourcesResult {\n return {\n RESOURCES: DEFAULT_NFX_RESOURCES,\n NAME_SPACES_MAP: NFX_NAMESPACES_MAP,\n NAME_SPACES: [...NFX_NAMESPACES],\n };\n}\n","/**\n * i18n 初始化与实例:initI18n 由 LanguageProvider 调用,changeLanguage 供外部切换语言。\n * 默认会合并 NFX-UI 自带的 theme / language / layout / preference 四个命名空间,使用方只需传入自己的 bundles。\n * i18n init and instance: initI18n called by LanguageProvider. Merges built-in theme/language/layout/preference by default.\n */\nimport type { InitI18nOptions } from \"../types\";\n\nimport i18n from \"i18next\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nimport { initReactI18next } from \"react-i18next\";\n\nimport { getDefaultNfxBundles } from \"../resources\";\nimport { LanguageEnum } from \"../types\";\n\n/**\n * 初始化 i18n。会先合并 NFX-UI 自带的四类 JSON(theme/language/layout/preference),再与用户传入的 bundles 合并(用户可覆盖)。\n * Init i18n. Merges built-in NFX bundles (theme, language, layout, preference) with user bundles (user overrides).\n */\nexport function initI18n(options: InitI18nOptions): void {\n const nfx = getDefaultNfxBundles();\n const user = options.bundles;\n const fallbackLng = options.fallbackLng ?? LanguageEnum.ZH;\n\n const RESOURCES = ([LanguageEnum.EN, LanguageEnum.ZH, LanguageEnum.FR] as const).reduce(\n (acc, lang) => ({\n ...acc,\n [lang]: {\n ...(nfx.RESOURCES[lang] ?? {}),\n ...(user.RESOURCES[lang] ?? {}),\n },\n }),\n {} as typeof user.RESOURCES,\n );\n const NAME_SPACES = [...user.NAME_SPACES, ...nfx.NAME_SPACES.filter((n) => !user.NAME_SPACES.includes(n))];\n\n i18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n compatibilityJSON: \"v4\",\n resources: RESOURCES,\n lng: fallbackLng,\n fallbackLng,\n ns: NAME_SPACES,\n defaultNS: NAME_SPACES[0],\n interpolation: { escapeValue: false },\n keySeparator: \".\",\n detection: { order: [\"navigator\", \"htmlTag\", \"path\", \"subdomain\"] },\n });\n\n const onLoad = options.onLoadExtraBundles;\n if (onLoad) {\n const apply = async (lng: LanguageEnum) => {\n const result = await onLoad(lng);\n if (result == null) return;\n const items = Array.isArray(result) ? result : [result];\n for (const { namespace, bundle } of items) {\n if (namespace && bundle && typeof bundle === \"object\") {\n i18n.addResourceBundle(lng, namespace, bundle, true, true);\n }\n }\n };\n void apply((i18n.language as LanguageEnum) || fallbackLng);\n i18n.on(\"languageChanged\", (lng) => void apply(lng as LanguageEnum));\n }\n}\n\nexport default i18n;\n"],"mappings":"8tDYsBA,MAAa,EAAiB,CAAC,QAAS,WAAY,SAAU,cACjD,EAAoC,CAC/C,MAAO,QACP,SAAU,WACV,OAAQ,SACR,WAAY,cAGd,IAAM,EAAmC,CACvC,GAAI,CACF,MAAO,EACP,SAAU,EACV,OAAQ,EACR,WAAY,GAEd,GAAI,CACF,MAAO,EACP,SAAU,EACV,OAAQ,EACR,WAAY,GAEd,GAAI,CACF,MAAO,EACP,SAAU,EACV,OAAQ,EACR,WAAY,IAQhB,SAAgB,GAAkD,CAChE,MAAO,CACL,UAAW,EACX,gBAAiB,EACjB,YAAa,CAAC,GAAG,CAAA,GCzCrB,SAAgB,EAAS,EAAgC,CACvD,MAAM,EAAM,EAAA,EACN,EAAO,EAAQ,QACf,EAAc,EAAQ,aAAe,EAAA,aAAa,GAElD,EAAa,CAAC,EAAA,aAAa,GAAI,EAAA,aAAa,GAAI,EAAA,aAAa,IAAc,OAAA,CAC9E,EAAK,KAAU,CACd,GAAG,GACF,CAAA,EAAO,CACN,GAAI,EAAI,UAAU,CAAA,GAAS,CAAA,EAC3B,GAAI,EAAK,UAAU,CAAA,GAAS,CAAA,KAGhC,CAAA,CAAE,EAEE,EAAc,CAAC,GAAG,EAAK,YAAa,GAAG,EAAI,YAAY,OAAQ,GAAM,CAAC,EAAK,YAAY,SAAS,CAAA,CAAE,CAAC,EAEzG,EAAA,QACG,IAAI,EAAA,OAAA,EACJ,IAAI,EAAA,gBAAA,EACJ,KAAK,CACJ,kBAAmB,KACnB,UAAW,EACX,IAAK,EACL,YAAA,EACA,GAAI,EACJ,UAAW,EAAY,CAAA,EACvB,cAAe,CAAE,YAAa,EAAA,EAC9B,aAAc,IACd,UAAW,CAAE,MAAO,CAAC,YAAa,UAAW,OAAQ,YAAY,EAClE,EAEH,MAAM,EAAS,EAAQ,mBACvB,GAAI,EAAQ,CACV,MAAM,EAAQ,MAAO,GAAsB,CACzC,MAAM,EAAS,MAAM,EAAO,CAAA,EAC5B,GAAI,GAAU,KAAM,OACpB,MAAM,EAAQ,MAAM,QAAQ,CAAA,EAAU,EAAS,CAAC,CAAA,EAChD,SAAW,CAAE,UAAA,EAAW,OAAA,CAAA,IAAY,EAC9B,GAAa,GAAU,OAAO,GAAW,UAC3C,EAAA,QAAK,kBAAkB,EAAK,EAAW,EAAQ,GAAM,EAAA,GAItD,EAAO,EAAA,QAAK,UAA6B,CAAA,EAC9C,EAAA,QAAK,GAAG,kBAAoB,GAAA,CAAa,EAAM,CAAA,EAAoB,GAIvE,IAAA,EAAe,EAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as o, n as g, r as s, s as c } from "./chunk-types-
|
|
1
|
+
import { c as o, n as g, r as s, s as c } from "./chunk-types-BudGuDCK.mjs";
|
|
2
2
|
import { i as a } from "./chunk-types-DNPBKfmx.mjs";
|
|
3
3
|
import { i as h, r as E } from "./chunk-types-SD4MzUGp.mjs";
|
|
4
4
|
let n = (function(e) {
|
|
@@ -48,4 +48,4 @@ export {
|
|
|
48
48
|
y as t
|
|
49
49
|
};
|
|
50
50
|
|
|
51
|
-
//# sourceMappingURL=chunk-preference-
|
|
51
|
+
//# sourceMappingURL=chunk-preference-By58ZcJ_.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-preference-
|
|
1
|
+
{"version":3,"file":"chunk-preference-By58ZcJ_.mjs","names":[],"sources":["../src/preference/constants.ts","../src/preference/index.ts"],"sourcesContent":["/**\n * 用户偏好相关常量:仪表盘背景等\n * Preference-related constants: dashboard background, etc.\n */\n\nimport type { Array } from \"@/types\";\n\n/** 仪表盘背景枚举。Dashboard background enum. */\nexport enum DashboardBackgroundEnum {\n NONE = \"none\",\n WAVES = \"waves\",\n SQUARES = \"squares\",\n LETTER_GLITCH = \"letterGlitch\",\n PIXEL_BLAST = \"pixelBlast\",\n}\n\nexport const DEFAULT_DASHBOARD_BACKGROUND = DashboardBackgroundEnum.NONE;\n\n/** 仪表盘背景可选值列表。Dashboard background values list. */\nexport const DASHBOARD_BACKGROUND_VALUES: Array<DashboardBackgroundEnum> = Object.values(DashboardBackgroundEnum);\n","/**\n * 用户偏好模块:类型、解析/序列化、默认值(与后端 profile.preference JSON 约定)\n * User preference: types, parse/serialize, defaults (backend profile.preference JSON contract).\n */\nimport { LayoutModeEnum } from \"@/designs/layouts/types\";\nimport { LANGUAGE_VALUES, LanguageEnum } from \"@/languages/types\";\nimport { BASE_VALUES, BaseEnum, THEME_VALUES, ThemeEnum } from \"@/themes/types\";\n\nimport { DASHBOARD_BACKGROUND_VALUES, DashboardBackgroundEnum, DEFAULT_DASHBOARD_BACKGROUND } from \"./constants\";\n\nexport { DashboardBackgroundEnum, DEFAULT_DASHBOARD_BACKGROUND, DASHBOARD_BACKGROUND_VALUES } from \"./constants\";\n\n/** 前端统一的偏好结构;后端存为 JSON:theme, base, language, layoutMode, other.dashboardBackground */\nexport type Preference = {\n theme: ThemeEnum;\n base: BaseEnum;\n language: LanguageEnum;\n layoutMode: LayoutModeEnum;\n other?: {\n dashboardBackground: DashboardBackgroundEnum;\n };\n};\n\n/** 后端 JSON 形状(profile.preference 字符串解析后)。Internal backend shape. */\ntype PreferenceBackendShape = {\n theme?: ThemeEnum;\n base?: BaseEnum;\n language?: LanguageEnum;\n layoutMode: LayoutModeEnum;\n other?: Record<string, unknown>;\n};\n\n/**\n * 从后端 preference JSON 解析为前端 Preference,解析失败或空返回 null\n * Parse backend preference JSON to Preference; returns null on empty or parse error.\n * @param json - 后端存的 JSON 字符串\n * @returns Preference 或 null\n */\nexport function parsePreferenceJson(json: string | null | undefined): Preference | null {\n if (!json || typeof json !== \"string\") return null;\n try {\n const raw = JSON.parse(json) as PreferenceBackendShape;\n const layoutMode = raw.layoutMode === LayoutModeEnum.HIDE ? LayoutModeEnum.HIDE : LayoutModeEnum.SHOW;\n const db =\n typeof raw.other?.dashboardBackground === \"string\" && DASHBOARD_BACKGROUND_VALUES.includes(raw.other.dashboardBackground as DashboardBackgroundEnum)\n ? (raw.other.dashboardBackground as DashboardBackgroundEnum)\n : DEFAULT_DASHBOARD_BACKGROUND;\n const base = typeof raw.base === \"string\" && BASE_VALUES.includes(raw.base as BaseEnum) ? (raw.base as BaseEnum) : BaseEnum.DEFAULT;\n const language =\n typeof raw.language === \"string\" && (LANGUAGE_VALUES as string[]).includes(raw.language) ? (raw.language as LanguageEnum) : (\"zh\" as LanguageEnum);\n return {\n theme: typeof raw.theme === \"string\" && THEME_VALUES.includes(raw.theme as ThemeEnum) ? (raw.theme as ThemeEnum) : ThemeEnum.DEFAULT,\n base,\n language,\n layoutMode,\n other: { dashboardBackground: db },\n };\n } catch {\n return null;\n }\n}\n\n/**\n * 将前端 Preference 序列化为后端存的完整 JSON 字符串(每次更新都传完整 JSON)\n * Serialize Preference to backend JSON string (full payload on each update).\n * @param preference - 前端偏好对象\n * @returns JSON 字符串\n */\nexport function preferenceToJson(preference: Preference): string {\n const backend: PreferenceBackendShape = {\n theme: preference.theme || undefined,\n base: preference.base || undefined,\n language: preference.language || undefined,\n layoutMode: preference.layoutMode,\n other: preference.other ? { dashboardBackground: preference.other.dashboardBackground } : undefined,\n };\n return JSON.stringify(backend);\n}\n\n/**\n * 默认偏好(解析不到或同步时兜底):默认中文、default 主题、default base\n * Default preference (fallback when parse fails or for initial sync).\n * @returns 默认 Preference\n */\nexport function getDefaultPreference(): Preference {\n return {\n theme: ThemeEnum.DEFAULT,\n base: BaseEnum.DEFAULT,\n language: LanguageEnum.ZH,\n layoutMode: LayoutModeEnum.SHOW,\n other: { dashboardBackground: DEFAULT_DASHBOARD_BACKGROUND },\n };\n}\n"],"mappings":";;;AAQA,IAAY,KAAL,SAAA,GAAA;AACL,SAAA,EAAA,OAAA,QACA,EAAA,QAAA,SACA,EAAA,UAAA,WACA,EAAA,gBAAA,gBACA,EAAA,cAAA;;AAGF,MAAa,IAA+B,EAAwB,MAGvD,IAA8D,OAAO,OAAO,CAAA;ACmBzF,SAAgB,EAAoB,GAAoD;AACtF,MAAI,CAAC,KAAQ,OAAO,KAAS,SAAU,QAAO;AAC9C,MAAI;AACF,UAAM,IAAM,KAAK,MAAM,CAAA,GACjB,IAAa,EAAI,eAAe,EAAe,OAAO,EAAe,OAAO,EAAe,MAC3F,IACJ,OAAO,EAAI,OAAO,uBAAwB,YAAY,EAA4B,SAAS,EAAI,MAAM,mBAAA,IAChG,EAAI,MAAM,sBACX,GACA,IAAO,OAAO,EAAI,QAAS,YAAY,EAAY,SAAS,EAAI,IAAA,IAAqB,EAAI,OAAoB,EAAS,SACtH,IACJ,OAAO,EAAI,YAAa,YAAa,EAA6B,SAAS,EAAI,QAAA,IAAa,EAAI,WAA6B;AAC/H,WAAO;AAAA,MACL,OAAO,OAAO,EAAI,SAAU,YAAY,EAAa,SAAS,EAAI,KAAA,IAAuB,EAAI,QAAsB,EAAU;AAAA,MAC7H,MAAA;AAAA,MACA,UAAA;AAAA,MACA,YAAA;AAAA,MACA,OAAO,EAAE,qBAAqB,EAAA;AAAA;UAE1B;AACN,WAAO;AAAA;;AAUX,SAAgB,EAAiB,GAAgC;AAC/D,QAAM,IAAkC;AAAA,IACtC,OAAO,EAAW,SAAS;AAAA,IAC3B,MAAM,EAAW,QAAQ;AAAA,IACzB,UAAU,EAAW,YAAY;AAAA,IACjC,YAAY,EAAW;AAAA,IACvB,OAAO,EAAW,QAAQ,EAAE,qBAAqB,EAAW,MAAM,oBAAA,IAAwB;AAAA;AAE5F,SAAO,KAAK,UAAU,CAAA;;AAQxB,SAAgB,IAAmC;AACjD,SAAO;AAAA,IACL,OAAO,EAAU;AAAA,IACjB,MAAM,EAAS;AAAA,IACf,UAAU,EAAa;AAAA,IACvB,YAAY,EAAe;AAAA,IAC3B,OAAO,EAAE,qBAAqB,EAAA;AAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const n=require("./chunk-types-
|
|
1
|
+
const n=require("./chunk-types-BNUlgEkq.cjs"),r=require("./chunk-types-C_opkZGr.cjs"),a=require("./chunk-types-BE3JCLff.cjs");let u=(function(e){return e.NONE="none",e.WAVES="waves",e.SQUARES="squares",e.LETTER_GLITCH="letterGlitch",e.PIXEL_BLAST="pixelBlast",e})({});const o=u.NONE,s=Object.values(u);function l(e){if(!e||typeof e!="string")return null;try{const t=JSON.parse(e),c=t.layoutMode===r.LayoutModeEnum.HIDE?r.LayoutModeEnum.HIDE:r.LayoutModeEnum.SHOW,d=typeof t.other?.dashboardBackground=="string"&&s.includes(t.other.dashboardBackground)?t.other.dashboardBackground:o,i=typeof t.base=="string"&&n.BASE_VALUES.includes(t.base)?t.base:n.BaseEnum.DEFAULT,g=typeof t.language=="string"&&a.LANGUAGE_VALUES.includes(t.language)?t.language:"zh";return{theme:typeof t.theme=="string"&&n.THEME_VALUES.includes(t.theme)?t.theme:n.ThemeEnum.DEFAULT,base:i,language:g,layoutMode:c,other:{dashboardBackground:d}}}catch{return null}}function E(e){const t={theme:e.theme||void 0,base:e.base||void 0,language:e.language||void 0,layoutMode:e.layoutMode,other:e.other?{dashboardBackground:e.other.dashboardBackground}:void 0};return JSON.stringify(t)}function A(){return{theme:n.ThemeEnum.DEFAULT,base:n.BaseEnum.DEFAULT,language:a.LanguageEnum.ZH,layoutMode:r.LayoutModeEnum.SHOW,other:{dashboardBackground:o}}}Object.defineProperty(exports,"DASHBOARD_BACKGROUND_VALUES",{enumerable:!0,get:function(){return s}});Object.defineProperty(exports,"DEFAULT_DASHBOARD_BACKGROUND",{enumerable:!0,get:function(){return o}});Object.defineProperty(exports,"DashboardBackgroundEnum",{enumerable:!0,get:function(){return u}});Object.defineProperty(exports,"getDefaultPreference",{enumerable:!0,get:function(){return A}});Object.defineProperty(exports,"parsePreferenceJson",{enumerable:!0,get:function(){return l}});Object.defineProperty(exports,"preferenceToJson",{enumerable:!0,get:function(){return E}});
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=chunk-preference-
|
|
3
|
+
//# sourceMappingURL=chunk-preference-C144GkCD.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-preference-
|
|
1
|
+
{"version":3,"file":"chunk-preference-C144GkCD.cjs","names":[],"sources":["../src/preference/constants.ts","../src/preference/index.ts"],"sourcesContent":["/**\n * 用户偏好相关常量:仪表盘背景等\n * Preference-related constants: dashboard background, etc.\n */\n\nimport type { Array } from \"@/types\";\n\n/** 仪表盘背景枚举。Dashboard background enum. */\nexport enum DashboardBackgroundEnum {\n NONE = \"none\",\n WAVES = \"waves\",\n SQUARES = \"squares\",\n LETTER_GLITCH = \"letterGlitch\",\n PIXEL_BLAST = \"pixelBlast\",\n}\n\nexport const DEFAULT_DASHBOARD_BACKGROUND = DashboardBackgroundEnum.NONE;\n\n/** 仪表盘背景可选值列表。Dashboard background values list. */\nexport const DASHBOARD_BACKGROUND_VALUES: Array<DashboardBackgroundEnum> = Object.values(DashboardBackgroundEnum);\n","/**\n * 用户偏好模块:类型、解析/序列化、默认值(与后端 profile.preference JSON 约定)\n * User preference: types, parse/serialize, defaults (backend profile.preference JSON contract).\n */\nimport { LayoutModeEnum } from \"@/designs/layouts/types\";\nimport { LANGUAGE_VALUES, LanguageEnum } from \"@/languages/types\";\nimport { BASE_VALUES, BaseEnum, THEME_VALUES, ThemeEnum } from \"@/themes/types\";\n\nimport { DASHBOARD_BACKGROUND_VALUES, DashboardBackgroundEnum, DEFAULT_DASHBOARD_BACKGROUND } from \"./constants\";\n\nexport { DashboardBackgroundEnum, DEFAULT_DASHBOARD_BACKGROUND, DASHBOARD_BACKGROUND_VALUES } from \"./constants\";\n\n/** 前端统一的偏好结构;后端存为 JSON:theme, base, language, layoutMode, other.dashboardBackground */\nexport type Preference = {\n theme: ThemeEnum;\n base: BaseEnum;\n language: LanguageEnum;\n layoutMode: LayoutModeEnum;\n other?: {\n dashboardBackground: DashboardBackgroundEnum;\n };\n};\n\n/** 后端 JSON 形状(profile.preference 字符串解析后)。Internal backend shape. */\ntype PreferenceBackendShape = {\n theme?: ThemeEnum;\n base?: BaseEnum;\n language?: LanguageEnum;\n layoutMode: LayoutModeEnum;\n other?: Record<string, unknown>;\n};\n\n/**\n * 从后端 preference JSON 解析为前端 Preference,解析失败或空返回 null\n * Parse backend preference JSON to Preference; returns null on empty or parse error.\n * @param json - 后端存的 JSON 字符串\n * @returns Preference 或 null\n */\nexport function parsePreferenceJson(json: string | null | undefined): Preference | null {\n if (!json || typeof json !== \"string\") return null;\n try {\n const raw = JSON.parse(json) as PreferenceBackendShape;\n const layoutMode = raw.layoutMode === LayoutModeEnum.HIDE ? LayoutModeEnum.HIDE : LayoutModeEnum.SHOW;\n const db =\n typeof raw.other?.dashboardBackground === \"string\" && DASHBOARD_BACKGROUND_VALUES.includes(raw.other.dashboardBackground as DashboardBackgroundEnum)\n ? (raw.other.dashboardBackground as DashboardBackgroundEnum)\n : DEFAULT_DASHBOARD_BACKGROUND;\n const base = typeof raw.base === \"string\" && BASE_VALUES.includes(raw.base as BaseEnum) ? (raw.base as BaseEnum) : BaseEnum.DEFAULT;\n const language =\n typeof raw.language === \"string\" && (LANGUAGE_VALUES as string[]).includes(raw.language) ? (raw.language as LanguageEnum) : (\"zh\" as LanguageEnum);\n return {\n theme: typeof raw.theme === \"string\" && THEME_VALUES.includes(raw.theme as ThemeEnum) ? (raw.theme as ThemeEnum) : ThemeEnum.DEFAULT,\n base,\n language,\n layoutMode,\n other: { dashboardBackground: db },\n };\n } catch {\n return null;\n }\n}\n\n/**\n * 将前端 Preference 序列化为后端存的完整 JSON 字符串(每次更新都传完整 JSON)\n * Serialize Preference to backend JSON string (full payload on each update).\n * @param preference - 前端偏好对象\n * @returns JSON 字符串\n */\nexport function preferenceToJson(preference: Preference): string {\n const backend: PreferenceBackendShape = {\n theme: preference.theme || undefined,\n base: preference.base || undefined,\n language: preference.language || undefined,\n layoutMode: preference.layoutMode,\n other: preference.other ? { dashboardBackground: preference.other.dashboardBackground } : undefined,\n };\n return JSON.stringify(backend);\n}\n\n/**\n * 默认偏好(解析不到或同步时兜底):默认中文、default 主题、default base\n * Default preference (fallback when parse fails or for initial sync).\n * @returns 默认 Preference\n */\nexport function getDefaultPreference(): Preference {\n return {\n theme: ThemeEnum.DEFAULT,\n base: BaseEnum.DEFAULT,\n language: LanguageEnum.ZH,\n layoutMode: LayoutModeEnum.SHOW,\n other: { dashboardBackground: DEFAULT_DASHBOARD_BACKGROUND },\n };\n}\n"],"mappings":"8HAQA,IAAY,GAAL,SAAA,EAAA,CACL,OAAA,EAAA,KAAA,OACA,EAAA,MAAA,QACA,EAAA,QAAA,UACA,EAAA,cAAA,eACA,EAAA,YAAA,qBAGF,MAAa,EAA+B,EAAwB,KAGvD,EAA8D,OAAO,OAAO,CAAA,ECmBzF,SAAgB,EAAoB,EAAoD,CACtF,GAAI,CAAC,GAAQ,OAAO,GAAS,SAAU,OAAO,KAC9C,GAAI,CACF,MAAM,EAAM,KAAK,MAAM,CAAA,EACjB,EAAa,EAAI,aAAe,EAAA,eAAe,KAAO,EAAA,eAAe,KAAO,EAAA,eAAe,KAC3F,EACJ,OAAO,EAAI,OAAO,qBAAwB,UAAY,EAA4B,SAAS,EAAI,MAAM,mBAAA,EAChG,EAAI,MAAM,oBACX,EACA,EAAO,OAAO,EAAI,MAAS,UAAY,EAAA,YAAY,SAAS,EAAI,IAAA,EAAqB,EAAI,KAAoB,EAAA,SAAS,QACtH,EACJ,OAAO,EAAI,UAAa,UAAa,EAAA,gBAA6B,SAAS,EAAI,QAAA,EAAa,EAAI,SAA6B,KAC/H,MAAO,CACL,MAAO,OAAO,EAAI,OAAU,UAAY,EAAA,aAAa,SAAS,EAAI,KAAA,EAAuB,EAAI,MAAsB,EAAA,UAAU,QAC7H,KAAA,EACA,SAAA,EACA,WAAA,EACA,MAAO,CAAE,oBAAqB,CAAA,QAE1B,CACN,OAAO,MAUX,SAAgB,EAAiB,EAAgC,CAC/D,MAAM,EAAkC,CACtC,MAAO,EAAW,OAAS,OAC3B,KAAM,EAAW,MAAQ,OACzB,SAAU,EAAW,UAAY,OACjC,WAAY,EAAW,WACvB,MAAO,EAAW,MAAQ,CAAE,oBAAqB,EAAW,MAAM,mBAAA,EAAwB,QAE5F,OAAO,KAAK,UAAU,CAAA,EAQxB,SAAgB,GAAmC,CACjD,MAAO,CACL,MAAO,EAAA,UAAU,QACjB,KAAM,EAAA,SAAS,QACf,SAAU,EAAA,aAAa,GACvB,WAAY,EAAA,eAAe,KAC3B,MAAO,CAAE,oBAAqB,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
let t=(function(e){return e.DEFAULT="default",e.LIGHT="light",e.CORPORATE="corporate",e.FOREST="forest",e.DARK="dark",e.COSMIC="cosmic",e.COFFEE="coffee",e.WINE="wine",e.WHEAT="wheat",e})({});const n=t.DEFAULT,o=Object.values(t);let r=(function(e){return e.DEFAULT="default",e.IOS="ios",e.ANDROID="android",e.WINDOWS="windows",e.LINUX="linux",e})({});const c=r.DEFAULT,u=Object.values(r),E="theme-color",A="theme-base";Object.defineProperty(exports,"BASE_STORAGE_KEY",{enumerable:!0,get:function(){return A}});Object.defineProperty(exports,"BASE_VALUES",{enumerable:!0,get:function(){return u}});Object.defineProperty(exports,"BaseEnum",{enumerable:!0,get:function(){return r}});Object.defineProperty(exports,"COLOR_STORAGE_KEY",{enumerable:!0,get:function(){return E}});Object.defineProperty(exports,"DEFAULT_BASE",{enumerable:!0,get:function(){return c}});Object.defineProperty(exports,"DEFAULT_THEME",{enumerable:!0,get:function(){return n}});Object.defineProperty(exports,"THEME_VALUES",{enumerable:!0,get:function(){return o}});Object.defineProperty(exports,"ThemeEnum",{enumerable:!0,get:function(){return t}});
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=chunk-types-BNUlgEkq.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-types-
|
|
1
|
+
{"version":3,"file":"chunk-types-BNUlgEkq.cjs","names":[],"sources":["../src/themes/types/theme.ts"],"sourcesContent":["/**\n * 主题相关类型:颜色变量、基础变量、主题枚举与常量。\n * Theme types: color/base variables, theme enums and constants.\n */\n\n/** 颜色变量(主题色、背景、边框、文字、图表等一切与颜色相关) */\nexport interface ColorVariables {\n primary: string;\n primaryLight: string;\n primaryFg: string;\n success: string;\n successLight: string;\n info: string;\n infoLight: string;\n warning: string;\n warningLight: string;\n danger: string;\n dangerLight: string;\n\n bg: string;\n bg2: string;\n bg3: string;\n bg4: string;\n\n border: string;\n border2: string;\n border3: string;\n border4: string;\n border5: string;\n\n fg: string;\n fgText: string;\n fgHeading: string;\n fgHighlight: string;\n separator: string;\n\n temperature: {\n arcFill: string[];\n arcEmpty: string;\n thumbBg: string;\n thumbBorder: string;\n };\n\n solar: {\n gradientLeft: string;\n gradientRight: string;\n shadowColor: string;\n secondSeriesFill: string;\n };\n\n traffic: {\n tooltipBg: string;\n tooltipBorderColor: string;\n tooltipTextColor: string;\n yAxisSplitLine: string;\n lineBg: string;\n itemColor: string;\n itemBorderColor: string;\n itemEmphasisBorderColor: string;\n shadowLineDarkBg: string;\n shadowLineShadow: string;\n gradFrom: string;\n gradTo: string;\n };\n\n electricity: {\n tooltipBg: string;\n tooltipLineColor: string;\n tooltipBorderColor: string;\n tooltipTextColor: string;\n axisLineColor: string;\n xAxisTextColor: string;\n yAxisSplitLine: string;\n itemBorderColor: string;\n lineGradFrom: string;\n lineGradTo: string;\n lineShadow: string;\n areaGradFrom: string;\n areaGradTo: string;\n shadowLineDarkBg: string;\n };\n\n echarts: {\n bg: string;\n textColor: string;\n axisLineColor: string;\n splitLineColor: string;\n itemHoverShadowColor: string;\n tooltipBackgroundColor: string;\n };\n\n chartjs: {\n axisLineColor: string;\n textColor: string;\n };\n}\n\n/** 非颜色变量(圆角等,可随平台不同:iOS 24 / Android|Windows 6 / Linux 4) */\nexport interface BaseVariables {\n buttonRadius: number;\n cardRadius: number;\n inputRadius: number;\n}\n\n/** 颜色主题:name/displayName 表示这套配色是谁 */\nexport interface ColorTheme {\n name: string;\n displayName: string;\n variables: ColorVariables;\n}\n\n/** 基础主题:name/displayName 表示这套基础规范是谁(如 iOS / Android / 默认) */\nexport interface BaseTheme {\n name: string;\n displayName: string;\n variables: BaseVariables;\n}\n\n/** 完整主题 = 颜色主题 + 基础主题 */\nexport interface Theme {\n colors: ColorTheme;\n base: BaseTheme;\n}\n\n/** 颜色主题枚举 */\nexport enum ThemeEnum {\n DEFAULT = \"default\",\n LIGHT = \"light\",\n CORPORATE = \"corporate\",\n FOREST = \"forest\",\n DARK = \"dark\",\n COSMIC = \"cosmic\",\n COFFEE = \"coffee\",\n WINE = \"wine\",\n /** 麦田:default 基础上白红色改为金黄色 */\n WHEAT = \"wheat\",\n}\n\nexport const DEFAULT_THEME = ThemeEnum.DEFAULT;\nexport const THEME_VALUES = Object.values(ThemeEnum);\n\n/** 基础主题枚举(平台/圆角等,如 iOS 24 / Android|Windows 6 / Linux 4) */\nexport enum BaseEnum {\n DEFAULT = \"default\",\n IOS = \"ios\",\n ANDROID = \"android\",\n WINDOWS = \"windows\",\n LINUX = \"linux\",\n}\n\nexport const DEFAULT_BASE = BaseEnum.DEFAULT;\nexport const BASE_VALUES = Object.values(BaseEnum);\n\nexport const COLOR_STORAGE_KEY = \"theme-color\";\nexport const BASE_STORAGE_KEY = \"theme-base\";\n"],"mappings":"AA6HA,IAAY,GAAL,SAAA,EAAA,CACL,OAAA,EAAA,QAAA,UACA,EAAA,MAAA,QACA,EAAA,UAAA,YACA,EAAA,OAAA,SACA,EAAA,KAAA,OACA,EAAA,OAAA,SACA,EAAA,OAAA,SACA,EAAA,KAAA,OAEA,EAAA,MAAA,gBAGF,MAAa,EAAgB,EAAU,QAC1B,EAAe,OAAO,OAAO,CAAA,EAG1C,IAAY,GAAL,SAAA,EAAA,CACL,OAAA,EAAA,QAAA,UACA,EAAA,IAAA,MACA,EAAA,QAAA,UACA,EAAA,QAAA,UACA,EAAA,MAAA,gBAGF,MAAa,EAAe,EAAS,QACxB,EAAc,OAAO,OAAO,CAAA,EAE5B,EAAoB,cACpB,EAAmB"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
let o = (function(t) {
|
|
2
|
-
return t.DEFAULT = "default", t.LIGHT = "light", t.CORPORATE = "corporate", t.FOREST = "forest", t.DARK = "dark", t.COSMIC = "cosmic", t.COFFEE = "coffee", t.WINE = "wine", t;
|
|
2
|
+
return t.DEFAULT = "default", t.LIGHT = "light", t.CORPORATE = "corporate", t.FOREST = "forest", t.DARK = "dark", t.COSMIC = "cosmic", t.COFFEE = "coffee", t.WINE = "wine", t.WHEAT = "wheat", t;
|
|
3
3
|
})({});
|
|
4
|
-
const
|
|
4
|
+
const A = o.DEFAULT, c = Object.values(o);
|
|
5
5
|
let s = (function(t) {
|
|
6
6
|
return t.DEFAULT = "default", t.IOS = "ios", t.ANDROID = "android", t.WINDOWS = "windows", t.LINUX = "linux", t;
|
|
7
7
|
})({});
|
|
8
|
-
const
|
|
8
|
+
const a = s.DEFAULT, O = Object.values(s), E = "theme-color", r = "theme-base";
|
|
9
9
|
export {
|
|
10
|
-
|
|
10
|
+
a,
|
|
11
11
|
o as c,
|
|
12
12
|
E as i,
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
O as n,
|
|
14
|
+
A as o,
|
|
15
15
|
s as r,
|
|
16
|
-
|
|
16
|
+
c as s,
|
|
17
17
|
r as t
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
//# sourceMappingURL=chunk-types-
|
|
20
|
+
//# sourceMappingURL=chunk-types-BudGuDCK.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-types-
|
|
1
|
+
{"version":3,"file":"chunk-types-BudGuDCK.mjs","names":[],"sources":["../src/themes/types/theme.ts"],"sourcesContent":["/**\n * 主题相关类型:颜色变量、基础变量、主题枚举与常量。\n * Theme types: color/base variables, theme enums and constants.\n */\n\n/** 颜色变量(主题色、背景、边框、文字、图表等一切与颜色相关) */\nexport interface ColorVariables {\n primary: string;\n primaryLight: string;\n primaryFg: string;\n success: string;\n successLight: string;\n info: string;\n infoLight: string;\n warning: string;\n warningLight: string;\n danger: string;\n dangerLight: string;\n\n bg: string;\n bg2: string;\n bg3: string;\n bg4: string;\n\n border: string;\n border2: string;\n border3: string;\n border4: string;\n border5: string;\n\n fg: string;\n fgText: string;\n fgHeading: string;\n fgHighlight: string;\n separator: string;\n\n temperature: {\n arcFill: string[];\n arcEmpty: string;\n thumbBg: string;\n thumbBorder: string;\n };\n\n solar: {\n gradientLeft: string;\n gradientRight: string;\n shadowColor: string;\n secondSeriesFill: string;\n };\n\n traffic: {\n tooltipBg: string;\n tooltipBorderColor: string;\n tooltipTextColor: string;\n yAxisSplitLine: string;\n lineBg: string;\n itemColor: string;\n itemBorderColor: string;\n itemEmphasisBorderColor: string;\n shadowLineDarkBg: string;\n shadowLineShadow: string;\n gradFrom: string;\n gradTo: string;\n };\n\n electricity: {\n tooltipBg: string;\n tooltipLineColor: string;\n tooltipBorderColor: string;\n tooltipTextColor: string;\n axisLineColor: string;\n xAxisTextColor: string;\n yAxisSplitLine: string;\n itemBorderColor: string;\n lineGradFrom: string;\n lineGradTo: string;\n lineShadow: string;\n areaGradFrom: string;\n areaGradTo: string;\n shadowLineDarkBg: string;\n };\n\n echarts: {\n bg: string;\n textColor: string;\n axisLineColor: string;\n splitLineColor: string;\n itemHoverShadowColor: string;\n tooltipBackgroundColor: string;\n };\n\n chartjs: {\n axisLineColor: string;\n textColor: string;\n };\n}\n\n/** 非颜色变量(圆角等,可随平台不同:iOS 24 / Android|Windows 6 / Linux 4) */\nexport interface BaseVariables {\n buttonRadius: number;\n cardRadius: number;\n inputRadius: number;\n}\n\n/** 颜色主题:name/displayName 表示这套配色是谁 */\nexport interface ColorTheme {\n name: string;\n displayName: string;\n variables: ColorVariables;\n}\n\n/** 基础主题:name/displayName 表示这套基础规范是谁(如 iOS / Android / 默认) */\nexport interface BaseTheme {\n name: string;\n displayName: string;\n variables: BaseVariables;\n}\n\n/** 完整主题 = 颜色主题 + 基础主题 */\nexport interface Theme {\n colors: ColorTheme;\n base: BaseTheme;\n}\n\n/** 颜色主题枚举 */\nexport enum ThemeEnum {\n DEFAULT = \"default\",\n LIGHT = \"light\",\n CORPORATE = \"corporate\",\n FOREST = \"forest\",\n DARK = \"dark\",\n COSMIC = \"cosmic\",\n COFFEE = \"coffee\",\n WINE = \"wine\",\n /** 麦田:default 基础上白红色改为金黄色 */\n WHEAT = \"wheat\",\n}\n\nexport const DEFAULT_THEME = ThemeEnum.DEFAULT;\nexport const THEME_VALUES = Object.values(ThemeEnum);\n\n/** 基础主题枚举(平台/圆角等,如 iOS 24 / Android|Windows 6 / Linux 4) */\nexport enum BaseEnum {\n DEFAULT = \"default\",\n IOS = \"ios\",\n ANDROID = \"android\",\n WINDOWS = \"windows\",\n LINUX = \"linux\",\n}\n\nexport const DEFAULT_BASE = BaseEnum.DEFAULT;\nexport const BASE_VALUES = Object.values(BaseEnum);\n\nexport const COLOR_STORAGE_KEY = \"theme-color\";\nexport const BASE_STORAGE_KEY = \"theme-base\";\n"],"mappings":"AA6HA,IAAY,KAAL,SAAA,GAAA;AACL,SAAA,EAAA,UAAA,WACA,EAAA,QAAA,SACA,EAAA,YAAA,aACA,EAAA,SAAA,UACA,EAAA,OAAA,QACA,EAAA,SAAA,UACA,EAAA,SAAA,UACA,EAAA,OAAA,QAEA,EAAA,QAAA;;AAGF,MAAa,IAAgB,EAAU,SAC1B,IAAe,OAAO,OAAO,CAAA;AAG1C,IAAY,KAAL,SAAA,GAAA;AACL,SAAA,EAAA,UAAA,WACA,EAAA,MAAA,OACA,EAAA,UAAA,WACA,EAAA,UAAA,WACA,EAAA,QAAA;;AAGF,MAAa,IAAe,EAAS,SACxB,IAAc,OAAO,OAAO,CAAA,GAE5B,IAAoB,eACpB,IAAmB"}
|
package/dist/components.d.ts
CHANGED
|
@@ -311,7 +311,9 @@ declare enum ThemeEnum {
|
|
|
311
311
|
DARK = "dark",
|
|
312
312
|
COSMIC = "cosmic",
|
|
313
313
|
COFFEE = "coffee",
|
|
314
|
-
WINE = "wine"
|
|
314
|
+
WINE = "wine",
|
|
315
|
+
/** 麦田:default 基础上白红色改为金黄色 */
|
|
316
|
+
WHEAT = "wheat"
|
|
315
317
|
}
|
|
316
318
|
|
|
317
319
|
export declare const ThemeSwitcher: MemoExoticComponent<({ status, getThemeDisplayName, handleChangeTheme }: ThemeSwitcherProps) => JSX.Element>;
|
package/dist/languages.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
(function(){try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(`.styles-module__loading___bgEAk{justify-content:center;align-items:center;display:inline-flex}.styles-module__loading___bgEAk svg polyline{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.styles-module__loading___bgEAk svg polyline.styles-module__back___XLPvD{fill:none;stroke:var(--color-primary-alpha,#ff4d5033)}.styles-module__loading___bgEAk svg polyline.styles-module__front___hSxig{fill:none;stroke:var(--color-primary,#ff4d4f);stroke-dasharray:48 144;stroke-dashoffset:192px;animation:1.4s linear infinite styles-module__dash_682___AQzo6}@keyframes styles-module__dash_682___AQzo6{72.5%{opacity:0}to{stroke-dashoffset:0}}.styles-module__loader___E7OIM{justify-content:center;align-items:center;width:fit-content;height:fit-content;display:flex}.styles-module__truckWrapper___Sk4zX{flex-direction:column;justify-content:flex-end;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow-x:hidden}.styles-module__truckBody___j7w2C{width:65%;height:fit-content;margin-bottom:6px;animation:1s linear infinite styles-module__motion___IiNlW}@keyframes styles-module__motion___IiNlW{0%{transform:translateY(0)}50%{transform:translateY(3px)}to{transform:translateY(0)}}.styles-module__truckTires___4ncTl{justify-content:space-between;align-items:center;width:65%;height:fit-content;padding:0 10px 0 15px;display:flex;position:absolute;bottom:0}.styles-module__tiresvg___IBQcN{width:24px}.styles-module__road___sxx-E{background-color:var(--color-fg-heading);border-radius:3px;align-self:flex-end;width:100%;height:1.5px;position:relative;bottom:0}.styles-module__road___sxx-E:before{content:"";background-color:var(--color-fg-heading);border-left:10px solid var(--color-bg);border-radius:3px;width:20px;height:100%;animation:1.4s linear infinite styles-module__roadAnimation___yvrHP;position:absolute;right:-50%}.styles-module__road___sxx-E:after{content:"";background-color:var(--color-fg-heading);border-left:4px solid var(--color-bg);border-radius:3px;width:10px;height:100%;animation:1.4s linear infinite styles-module__roadAnimation___yvrHP;position:absolute;right:-65%}.styles-module__lampPost___okcN5{height:45%;animation:1.4s linear infinite styles-module__roadAnimation___yvrHP;position:absolute;bottom:0;right:-90%}@keyframes styles-module__roadAnimation___yvrHP{0%{transform:translate(0)}to{transform:translate(-350px)}}.styles-module__loader___pFUzL{justify-content:center;align-items:center;display:inline-flex;position:relative}.styles-module__loader___pFUzL:before{content:"";background:var(--color-primary);opacity:.3;border-radius:50%;width:100%;height:5px;animation:.5s linear infinite styles-module__shadow324___sutUe;position:absolute;top:calc(100% + 12px);left:0}.styles-module__loader___pFUzL:after{content:"";background:var(--color-primary);width:100%;height:100%;position:absolute;top:0;left:0}.styles-module__square___GKjhm:after{border-radius:4px;animation:.5s linear infinite styles-module__jump7456Square___Z-D9b}.styles-module__circle___bUpSN:after{border-radius:50%;animation:.5s linear infinite styles-module__jump7456Circle___2AfF7}@keyframes styles-module__jump7456Square___Z-D9b{15%{border-bottom-right-radius:3px}25%{transform:translateY(9px)rotate(22.5deg)}50%{border-bottom-right-radius:40px;transform:translateY(18px)scaleY(.9)rotate(45deg)}75%{transform:translateY(9px)rotate(67.5deg)}to{transform:translateY(0)rotate(90deg)}}@keyframes styles-module__jump7456Circle___2AfF7{15%{border-bottom-right-radius:50%}25%{transform:translateY(9px)rotate(22.5deg)}50%{border-bottom-right-radius:40px;transform:translateY(18px)scaleY(.9)rotate(45deg)}75%{transform:translateY(9px)rotate(67.5deg)}to{transform:translateY(0)rotate(90deg)}}@keyframes styles-module__shadow324___sutUe{0%,to{transform:scale(1)}50%{transform:scaleX(1.2)}}.style-module__waves___oR3u7{width:100%;height:100%;margin:0;padding:0;position:absolute;top:0;left:0;overflow:hidden}.style-module__waves___oR3u7:before{content:"";width:.5rem;height:.5rem;transform:translate3d(calc(var(--x) - 50%), calc(var(--y) - 50%), 0);will-change:transform;background:#160000;border-radius:50%;position:absolute;top:0;left:0}.style-module__wavesCanvas___zkhTC{width:100%;height:100%;display:block}.style-module__squaresCanvas___22kMc{border:none;width:100%;height:100%;display:block}.style-module__container___HkxIe{background-color:#000;width:100%;height:100%;position:relative;overflow:hidden}.style-module__canvas___MR9JX{width:100%;height:100%;display:block}.style-module__outerVignette___i75nw{pointer-events:none;background:radial-gradient(circle,#0000 60%,#000 100%);width:100%;height:100%;position:absolute;top:0;left:0}.style-module__centerVignette___n9uVG{pointer-events:none;background:radial-gradient(circle,#000c 0%,#0000 60%);width:100%;height:100%;position:absolute;top:0;left:0}.style-module__container___Hh3-c{width:100%;height:100%;position:relative;overflow:hidden}.styles-module__button___RbliA{cursor:pointer;border:1px solid #0000;border-radius:.5rem;outline:none;justify-content:center;align-items:center;gap:.5rem;font-family:inherit;font-weight:500;transition:all .2s;display:inline-flex;position:relative}.styles-module__button___RbliA:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.styles-module__button___RbliA:disabled{cursor:not-allowed;opacity:.6}.styles-module__button___RbliA.styles-module__small___yK0Yp{min-height:2rem;padding:.5rem 1rem;font-size:.8125rem}.styles-module__button___RbliA.styles-module__medium___eBTch{min-height:2.5rem;padding:.75rem 1.5rem;font-size:.875rem}.styles-module__button___RbliA.styles-module__large___pIZkl{min-height:3rem;padding:1rem 2rem;font-size:1rem}.styles-module__button___RbliA.styles-module__primary___qsZpA{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-fg,#fff)}.styles-module__button___RbliA.styles-module__primary___qsZpA:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary-light);transform:translateY(-1px)}.styles-module__button___RbliA.styles-module__primary___qsZpA:active:not(:disabled){transform:translateY(0)}.styles-module__button___RbliA.styles-module__secondary___SCpPv{background:var(--color-bg-2);border-color:var(--color-border-4);color:var(--color-fg-text)}.styles-module__button___RbliA.styles-module__secondary___SCpPv:hover:not(:disabled){background:var(--color-bg-3);border-color:var(--color-primary)}.styles-module__button___RbliA.styles-module__outline___rrlk9{border-color:var(--color-border-4);color:var(--color-fg-text);background:0 0}.styles-module__button___RbliA.styles-module__outline___rrlk9:hover:not(:disabled){background:var(--color-bg-2);border-color:var(--color-primary)}.styles-module__button___RbliA.styles-module__ghost___QMoiH{color:var(--color-fg-text);background:0 0;border-color:#0000}.styles-module__button___RbliA.styles-module__ghost___QMoiH:hover:not(:disabled){background:var(--color-bg-2)}.styles-module__button___RbliA.styles-module__danger___MW-pg{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.styles-module__button___RbliA.styles-module__danger___MW-pg:hover:not(:disabled){background:var(--color-danger-light);border-color:var(--color-danger-light);transform:translateY(-1px)}.styles-module__button___RbliA.styles-module__danger___MW-pg:active:not(:disabled){transform:translateY(0)}.styles-module__button___RbliA.styles-module__fullWidth___-dXBR{width:100%}.styles-module__button___RbliA.styles-module__loading___UWw6V{pointer-events:none}.styles-module__spinner___KpJ-L{border:2px solid;border-top-color:#0000;border-radius:50%;flex-shrink:0;width:1rem;height:1rem;animation:.6s linear infinite styles-module__spin___ntZKM}@keyframes styles-module__spin___ntZKM{to{transform:rotate(360deg)}}.styles-module__button___RbliA.styles-module__small___yK0Yp .styles-module__spinner___KpJ-L{border-width:1.5px;width:.875rem;height:.875rem}.styles-module__button___RbliA.styles-module__large___pIZkl .styles-module__spinner___KpJ-L{border-width:2.5px;width:1.25rem;height:1.25rem}.styles-module__content___oyZRO{align-items:center;display:flex}.styles-module__leftIcon___cDktv,.styles-module__rightIcon___1mpk0{flex-shrink:0;align-items:center;display:flex}.styles-module__leftIcon___cDktv{margin-right:-.25rem}.styles-module__rightIcon___1mpk0{margin-left:-.25rem}.styles-module__button___RbliA.styles-module__iconOnly___iOv-U{aspect-ratio:1;min-width:2.5rem;min-height:2.5rem;padding:0}.styles-module__button___RbliA.styles-module__iconOnly___iOv-U.styles-module__small___yK0Yp{min-width:2rem;min-height:2rem}.styles-module__button___RbliA.styles-module__iconOnly___iOv-U.styles-module__large___pIZkl{min-width:3rem;min-height:3rem}.styles-module__iconContainer___bwvE3{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.styles-module__layout___WaGy9{flex-direction:column;justify-content:center;align-items:center;gap:.25rem;width:100%;display:flex}.styles-module__horizontal___lKpGq{justify-content:center;align-items:center;gap:.5rem;width:100%;display:flex}.styles-module__topIcon___bzw6s,.styles-module__bottomIcon___suPfa{flex-shrink:0;justify-content:center;align-items:center;display:flex}.styles-module__iconOnly___iOv-U .styles-module__iconContainer___bwvE3 .styles-module__leftIcon___cDktv,.styles-module__iconOnly___iOv-U .styles-module__iconContainer___bwvE3 .styles-module__rightIcon___1mpk0{margin:0}.Dropdown-module__dropdown___c9wIp{width:100%;display:inline-block;position:relative}.Dropdown-module__dropdownButton___suNh-{border:1px solid var(--color-separator);cursor:pointer;text-align:left;background:var(--color-bg-2);width:100%;color:var(--color-fg-text);border-radius:8px;outline:none;justify-content:space-between;align-items:center;padding:.75rem 2.5rem .75rem 1rem;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5rem;transition:all .2s ease-in-out;display:flex;position:relative}.Dropdown-module__dropdownButton___suNh-:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-bg-1)}.Dropdown-module__dropdownButton___suNh-:focus{border-color:var(--color-primary);background:var(--color-bg-1);box-shadow:0 0 0 2px var(--color-primary-transparent)}.Dropdown-module__dropdownButton___suNh-.Dropdown-module__disabled___Rz0pX{cursor:not-allowed;opacity:.6;background:var(--color-bg-3)}.Dropdown-module__dropdownButton___suNh-.Dropdown-module__error___F7dDu{border-color:#ef4444}.Dropdown-module__buttonText___D2zxn{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.Dropdown-module__chevronIcon___uyawp{color:var(--color-fg-highlight);flex-shrink:0;transition:transform .15s;position:absolute;right:1rem}.Dropdown-module__chevronIcon___uyawp.Dropdown-module__open___APoXd{transform:rotate(180deg)}.Dropdown-module__dropdownMenu___WJ-QO{background:var(--color-bg);border:1px solid var(--color-border-4);z-index:1000;border-radius:8px;min-width:100%;animation:.15s ease-out Dropdown-module__slideDown___sRCmO;position:absolute;top:calc(100% + .5rem);left:0;right:0;overflow:hidden;box-shadow:0 .5rem 1rem #0000002d}@keyframes Dropdown-module__slideDown___sRCmO{0%{opacity:0;transform:translateY(-.5rem)}to{opacity:1;transform:translateY(0)}}.Dropdown-module__optionsList___Be6RN{margin:0;padding:.5rem 0;list-style:none}.Dropdown-module__option___q-NgT{cursor:pointer;color:var(--color-fg-text);align-items:center;padding:.75rem 1rem;font-size:.875rem;transition:all .15s;display:flex}.Dropdown-module__option___q-NgT:hover{background-color:var(--color-bg-2)}.Dropdown-module__option___q-NgT.Dropdown-module__selected___-OTW-{background-color:var(--color-bg-3);color:var(--color-fg-highlight);font-weight:600}@media (width<=768px){.Dropdown-module__dropdownButton___suNh-{padding:.625rem 2.25rem .625rem .875rem;font-size:.875rem}.Dropdown-module__chevronIcon___uyawp{right:.875rem}.Dropdown-module__option___q-NgT{padding:.625rem .875rem;font-size:.8125rem}}.styles-module__wrapper___COeGm{flex-direction:column;gap:.5rem;display:flex}.styles-module__wrapper___COeGm.styles-module__fullWidth___lVU49{width:100%}.styles-module__label___gfOA7{color:var(--color-fg-heading);align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;display:flex}.styles-module__required___-zOy5{color:var(--color-danger)}.styles-module__inputContainer___wXY53{align-items:center;width:100%;display:flex;position:relative}.styles-module__input___IZDc3{border:1px solid var(--color-border-4);background:var(--color-bg);width:100%;color:var(--color-fg-text);border-radius:.5rem;outline:none;font-family:inherit;font-size:.875rem;transition:all .2s}.styles-module__input___IZDc3[type=password]::-webkit-credentials-auto-fill-button{visibility:hidden!important;opacity:0!important;pointer-events:none!important;appearance:none!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3[type=password]::-webkit-strong-password-toggle-button{visibility:hidden!important;opacity:0!important;pointer-events:none!important;appearance:none!important;width:0!important;height:0!important;margin:0!important;padding:0!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3[type=password]::-ms-reveal{visibility:hidden!important;opacity:0!important;pointer-events:none!important;width:0!important;height:0!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3[type=password]::-ms-clear{visibility:hidden!important;opacity:0!important;pointer-events:none!important;width:0!important;height:0!important;display:none!important;position:absolute!important;left:-9999px!important}.styles-module__input___IZDc3:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb,102, 126, 234), .1)}.styles-module__input___IZDc3::placeholder{color:var(--color-fg-muted,var(--color-fg-text));opacity:.5}.styles-module__input___IZDc3.styles-module__small___cuGyE{padding:.5rem .75rem;font-size:.8125rem}.styles-module__input___IZDc3.styles-module__medium___JdDPu{padding:.75rem;font-size:.875rem}.styles-module__input___IZDc3.styles-module__large___fMmiG{padding:1rem;font-size:1rem}.styles-module__input___IZDc3.styles-module__default___-eZTG{background:var(--color-bg);border-color:var(--color-border-4)}.styles-module__input___IZDc3.styles-module__filled___EQ5PQ{background:var(--color-bg-2);border-color:var(--color-border-3)}.styles-module__inputContainer___wXY53.styles-module__withLeftIcon___NFn6- .styles-module__input___IZDc3{padding-left:2.5rem}.styles-module__inputContainer___wXY53.styles-module__withRightIcon___mz-hn .styles-module__input___IZDc3{padding-right:2.5rem}.styles-module__inputContainer___wXY53.styles-module__withLeftIcon___NFn6- .styles-module__input___IZDc3.styles-module__small___cuGyE{padding-left:2rem}.styles-module__inputContainer___wXY53.styles-module__withRightIcon___mz-hn .styles-module__input___IZDc3.styles-module__small___cuGyE{padding-right:2rem}.styles-module__inputContainer___wXY53.styles-module__withLeftIcon___NFn6- .styles-module__input___IZDc3.styles-module__large___fMmiG{padding-left:3rem}.styles-module__inputContainer___wXY53.styles-module__withRightIcon___mz-hn .styles-module__input___IZDc3.styles-module__large___fMmiG{padding-right:3rem}.styles-module__leftIcon___jEW5H,.styles-module__rightIcon___bA3Eo{color:var(--color-fg-muted,var(--color-fg-text));pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute}.styles-module__leftIcon___jEW5H{left:.75rem}.styles-module__rightIcon___bA3Eo{right:.75rem}.styles-module__rightIcon___bA3Eo.styles-module__rightIconInteractive___ccypw{pointer-events:auto}.styles-module__inputContainer___wXY53.styles-module__containerSmall___20ICq .styles-module__leftIcon___jEW5H{left:.5rem}.styles-module__inputContainer___wXY53.styles-module__containerSmall___20ICq .styles-module__rightIcon___bA3Eo{right:.5rem}.styles-module__inputContainer___wXY53.styles-module__containerLarge___IztuN .styles-module__leftIcon___jEW5H{left:1rem}.styles-module__inputContainer___wXY53.styles-module__containerLarge___IztuN .styles-module__rightIcon___bA3Eo{right:1rem}.styles-module__input___IZDc3.styles-module__error___946qV{border-color:var(--color-danger)}.styles-module__input___IZDc3.styles-module__error___946qV:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px rgba(var(--color-danger-rgb,244, 67, 54), .1)}.styles-module__input___IZDc3.styles-module__disabled___sJvLd{background:var(--color-bg-3);border-color:var(--color-border-5);color:var(--color-fg-muted);cursor:not-allowed;opacity:.6}.styles-module__errorMessage___5Mn22{color:var(--color-danger);margin:0;font-size:.75rem}.styles-module__helperText___T2eui{color:var(--color-fg-muted);margin:0;font-size:.75rem}.styles-module__container___xeg8O{flex-direction:column;gap:1rem;display:flex}.styles-module__label___qhbKe{color:var(--color-fg-text);font-size:.875rem;font-weight:500}.styles-module__error___O-7AY{color:var(--color-error);font-size:.875rem}.styles-module__pairs___owGV3{flex-direction:column;gap:.75rem;display:flex}.styles-module__pair___G4WFY{grid-template-columns:1fr 2fr auto;align-items:start;gap:.75rem;display:grid}.styles-module__keyInput___wl1M1,.styles-module__valueInput___HiwJ5{flex:1}.styles-module__removeButton___4-X0b{min-width:auto;color:var(--color-error);padding:.5rem}.styles-module__removeButton___4-X0b:hover{background-color:var(--color-error);color:#fff}.styles-module__addButton___QFljt{align-self:flex-start}@media (width<=768px){.styles-module__pair___G4WFY{grid-template-columns:1fr}.styles-module__removeButton___4-X0b{align-self:flex-end}}.styles-module__searchContainer___86TGN{width:100%;max-width:400px;position:relative}.styles-module__searchIcon___ZInry{color:var(--color-fg-muted);pointer-events:none;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.styles-module__searchInput___SqZXQ{border:1px solid var(--color-border);width:100%;color:var(--color-fg-text);background:var(--color-bg-2);border-radius:.5rem;padding:.75rem 3rem;font-size:1rem;transition:all .2s}.styles-module__searchInput___SqZXQ:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg);outline:none}.styles-module__searchInput___SqZXQ::placeholder{color:var(--color-fg-muted)}.styles-module__clearBtn___7jExr{width:1.5rem;height:1.5rem;color:var(--color-fg-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.styles-module__clearBtn___7jExr:hover{color:var(--color-fg-text)}@media (width<=768px){.styles-module__searchContainer___86TGN{max-width:100%}}.styles-module__container___nGxdM{flex-direction:column;gap:.75rem;display:flex}.styles-module__toggleContainer___VrsKI{align-items:center;display:flex}.styles-module__toggleButton___IzD6Z{border:1px solid var(--color-border-4);background:var(--color-bg);color:var(--color-fg-muted);cursor:pointer;border-radius:.5rem;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;transition:all .2s;display:flex}.styles-module__toggleButton___IzD6Z:hover{background:var(--color-bg-2);border-color:var(--color-border-3)}.styles-module__toggleButton___IzD6Z.styles-module__enabled___cao0G{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.styles-module__toggleButton___IzD6Z.styles-module__enabled___cao0G:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.styles-module__optionsContainer___LOzlO{background:var(--color-bg-2);border:1px solid var(--color-border-4);border-radius:.5rem;gap:.5rem;padding:.5rem;display:flex}.styles-module__option___abhnC{border:1px solid var(--color-border-4);background:var(--color-bg);color:var(--color-fg);cursor:pointer;border-radius:.375rem;flex:1;justify-content:center;align-items:center;gap:.375rem;padding:.5rem .875rem;font-size:.875rem;font-weight:500;transition:all .2s;display:flex}.styles-module__option___abhnC:hover{background:var(--color-bg-3);border-color:var(--color-border-3)}.styles-module__option___abhnC.styles-module__active___pqmSi{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.styles-module__option___abhnC.styles-module__active___pqmSi:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.styles-module__nbSelect___KjxSc{font-family:inherit;font-size:.9375rem;font-weight:600;line-height:1.5rem;display:inline-block;position:relative}.styles-module__selectButton___AKZe4{cursor:pointer;text-align:left;width:100%;min-width:8rem;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;appearance:none;border:1px solid;border-radius:.25rem;outline:none;justify-content:space-between;align-items:center;padding:.4375rem 2.2rem .4375rem 1.125rem;transition:all .15s ease-in-out;display:flex;position:relative}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-fg)}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a:hover:not(:disabled){background-color:var(--color-primary-light);border-color:var(--color-primary-light)}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a:focus,.styles-module__selectButton___AKZe4.styles-module__primary___HU36a.styles-module__open___9AKMb{background-color:var(--color-primary-light);border-color:var(--color-primary-light);box-shadow:0 0 0 .125rem #8f9bb340}.styles-module__selectButton___AKZe4.styles-module__default___LedYP{background-color:var(--color-bg);border-color:var(--color-border-4);color:var(--color-fg-text)}.styles-module__selectButton___AKZe4.styles-module__default___LedYP:hover:not(:disabled){background-color:var(--color-bg-2);border-color:var(--color-primary)}.styles-module__selectButton___AKZe4.styles-module__default___LedYP:focus,.styles-module__selectButton___AKZe4.styles-module__default___LedYP.styles-module__open___9AKMb{background-color:var(--color-bg-2);border-color:var(--color-primary);box-shadow:0 0 0 .125rem #8f9bb340}.styles-module__selectButton___AKZe4:disabled{cursor:not-allowed;opacity:.6}.styles-module__buttonText___QSLO1{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.styles-module__chevronIcon___qAHaD{flex-shrink:0;width:1.5rem;height:1.5rem;transition:transform .15s;position:absolute;right:.41rem}.styles-module__selectButton___AKZe4.styles-module__primary___HU36a .styles-module__chevronIcon___qAHaD{color:var(--color-primary-fg)}.styles-module__selectButton___AKZe4.styles-module__default___LedYP .styles-module__chevronIcon___qAHaD{color:var(--color-fg)}.styles-module__chevronIcon___qAHaD.styles-module__open___9AKMb{transform:rotate(180deg)}.styles-module__optionsPanel___NWAp3{background-color:var(--color-bg);border:1px solid var(--color-border-4);z-index:1000;transform-origin:top;visibility:hidden;pointer-events:none;border-radius:.25rem;min-width:100%;position:absolute;top:calc(100% + .5rem);left:0;right:0;overflow:hidden;box-shadow:0 .5rem 1rem #00000026}.styles-module__optionsPanel___NWAp3.styles-module__open___9AKMb{visibility:visible;pointer-events:auto;animation:.25s ease-out styles-module__expandDown___eD4lh}.styles-module__optionsPanel___NWAp3.styles-module__closed___bez-q{visibility:hidden;pointer-events:none;animation:.25s ease-out styles-module__collapseUp___dt1E7}@keyframes styles-module__expandDown___eD4lh{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes styles-module__collapseUp___dt1E7{0%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}.styles-module__optionsPanel___NWAp3.styles-module__primary___HU36a{border-color:var(--color-primary)}.styles-module__optionsPanel___NWAp3.styles-module__default___LedYP{border-color:var(--color-border-4)}.styles-module__optionsList___AxhVp{margin:0;padding:.5rem 0;list-style:none}.styles-module__option___t1SSw{cursor:pointer;color:var(--color-fg-text);justify-content:space-between;align-items:center;padding:.75rem 1.125rem;transition:all .15s;display:flex}.styles-module__option___t1SSw:hover{background-color:var(--color-bg-2)}.styles-module__option___t1SSw.styles-module__selected___azD4A{background-color:var(--color-primary);color:var(--color-primary-fg);font-weight:700}@media (prefers-color-scheme:dark){.styles-module__optionsPanel___NWAp3{box-shadow:0 .5rem 1rem #0000004d}}.styles-module__sliderContainer___lgpaD{flex-direction:column;gap:.5rem;display:flex}.styles-module__sliderContainer___lgpaD.styles-module__fullWidth___ZS8W5{width:100%}.styles-module__labelRow___dkVVM{justify-content:space-between;align-items:center;min-height:1.5rem;margin-bottom:.5rem;display:flex}.styles-module__label___bXGZs{color:var(--color-fg-text);font-size:.875rem;font-weight:500}.styles-module__required___FuyfE{color:var(--color-danger);margin-left:.25rem}.styles-module__sliderWrapper___1Wdti{touch-action:none;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:.75rem;width:100%;display:flex}.styles-module__sliderRoot___yzOjR{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex-grow:1;align-items:center;width:100%;padding:.75rem 0;display:flex;position:relative}.styles-module__sliderRoot___yzOjR:active{cursor:grabbing}.styles-module__sliderTrackWrapper___N72WQ{flex-grow:1;display:flex;position:relative}.styles-module__sliderTrack___AltcD{background-color:var(--color-bg-3);border-radius:9999px;width:100%;height:.375rem;position:relative;overflow:hidden}.styles-module__sliderRange___U3g0-{background-color:var(--color-primary);border-radius:9999px;height:100%;position:absolute}.styles-module__valueIndicator___aLf0I{color:var(--color-primary);text-align:center;flex-shrink:0;min-width:2rem;font-size:.875rem;font-weight:600;line-height:1}.styles-module__iconWrapper___wL-b8{flex-shrink:0;justify-content:center;align-items:center;display:flex}.styles-module__icon___vHsID{width:20px;height:20px;color:var(--color-fg-muted)}.styles-module__errorMessage___qFgGe{color:var(--color-danger);margin:0;font-size:.75rem}.styles-module__helperText___tgBGl{color:var(--color-fg-muted);margin:0;font-size:.75rem}.styles-module__loadingContainer___OMgwS{flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:60vh;display:flex}.styles-module__loadingText___KRZqR{color:var(--color-fg-muted);font-size:1rem}.styles-module__errorContainer___qhAg2{text-align:center;min-height:60vh;color:var(--color-fg-text);flex-direction:column;justify-content:center;align-items:center;gap:2rem;padding:3rem 2rem;display:flex}.styles-module__errorIconWrapper___IHZrN{background:linear-gradient(135deg, rgba(var(--color-error-rgb,239, 68, 68), .1), rgba(var(--color-error-rgb,239, 68, 68), .05));border:2px solid rgba(var(--color-error-rgb,239, 68, 68), .2);border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;animation:2s ease-in-out infinite styles-module__pulse___Lju-z;display:flex}@keyframes styles-module__pulse___Lju-z{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.05)}}.styles-module__errorIcon___oGDIP{color:var(--color-error,#ef4444);stroke-width:1.5px}.styles-module__errorContent___F55rQ{flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:600px;display:flex}.styles-module__errorTitle___hC8D-{color:var(--color-fg-heading);letter-spacing:-.02em;margin:0;font-size:1.75rem;font-weight:700;line-height:1.2}.styles-module__errorDescription___hZtuP{color:var(--color-fg-muted);max-width:480px;margin:0;font-size:1rem;line-height:1.6}.styles-module__errorDetailsWrapper___-sp8b{width:100%;max-width:600px;margin-top:.5rem}.styles-module__errorDetailsContainer___eywMo{text-align:left;border:1px solid var(--color-border,#0000001a);background:var(--color-bg-2,#00000005);border-radius:.75rem;width:100%;transition:all .2s;overflow:hidden}.styles-module__errorDetailsContainer___eywMo:hover{border-color:var(--color-border-hover,#00000026);background:var(--color-bg-3,#00000008)}.styles-module__errorDetailsSummary___hGEoD{cursor:pointer;color:var(--color-fg-muted);-webkit-user-select:none;user-select:none;padding:.875rem 1.25rem;font-size:.875rem;font-weight:500;list-style:none;transition:color .2s}.styles-module__errorDetailsSummary___hGEoD:hover{color:var(--color-fg-text)}.styles-module__errorDetailsSummary___hGEoD::-webkit-details-marker{display:none}.styles-module__errorDetailsSummary___hGEoD:before{content:"▶";margin-right:.5rem;font-size:.75rem;transition:transform .2s;display:inline-block}.styles-module__errorDetailsContainer___eywMo[open] .styles-module__errorDetailsSummary___hGEoD:before{transform:rotate(90deg)}.styles-module__errorDetails___tzCT-{background:var(--color-bg-3,#00000008);border-top:1px solid var(--color-border,#0000001a);max-width:100%;color:var(--color-fg-muted);white-space:pre-wrap;word-break:break-word;margin:0;padding:1rem 1.25rem;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,source-code-pro,monospace;font-size:.8125rem;line-height:1.6;overflow-x:auto}.styles-module__errorActions___gtqYw{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.styles-module__retryButton___TA4jm{background:var(--color-primary);color:var(--color-primary-fg);cursor:pointer;border:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 2rem;font-size:.9375rem;font-weight:500;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #00000014}.styles-module__retryButton___TA4jm:hover{background:var(--color-primary-hover,var(--color-primary));transform:translateY(-2px);box-shadow:0 4px 16px #0000001f}.styles-module__retryButton___TA4jm:active{transform:translateY(0);box-shadow:0 2px 8px #00000014}.styles-module__retryButtonIcon___vzfp-{font-size:1.125rem;line-height:1;transition:transform .3s;display:inline-block}.styles-module__retryButton___TA4jm:hover .styles-module__retryButtonIcon___vzfp-{transform:rotate(180deg)}.styles-module__clearLocalDataButton___T3B-K{color:var(--color-fg-muted);border:1px solid var(--color-border-4);cursor:pointer;background:0 0;border-radius:.5rem;justify-content:center;align-items:center;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:500;transition:all .2s;display:inline-flex}.styles-module__clearLocalDataButton___T3B-K:hover{color:var(--color-fg-text);border-color:var(--color-border-3);background:var(--color-bg-secondary)}.styles-module__wrapper___jXPV3{flex-direction:column;gap:.5rem;display:flex}.styles-module__wrapper___jXPV3.styles-module__fullWidth___eKyGB{width:100%}.styles-module__label___MyTeo{color:var(--color-fg-heading);align-items:center;gap:.25rem;font-size:.875rem;font-weight:500;display:flex}.styles-module__required___TV-m8{color:var(--color-danger)}.styles-module__inputContainer___VvGBl{align-items:flex-start;width:100%;display:flex;position:relative}.styles-module__textarea___AjX9N{border:1px solid var(--color-border-4);background:var(--color-bg);width:100%;color:var(--color-fg-text);resize:vertical;border-radius:.5rem;outline:none;min-height:4rem;font-family:inherit;font-size:.875rem;transition:all .2s}.styles-module__textarea___AjX9N:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb,102, 126, 234), .1)}.styles-module__textarea___AjX9N::placeholder{color:var(--color-fg-muted,var(--color-fg-text));opacity:.5}.styles-module__textarea___AjX9N.styles-module__small___zMx0G{min-height:3rem;padding:.5rem .75rem;font-size:.8125rem}.styles-module__textarea___AjX9N.styles-module__medium___tO2Lb{min-height:4rem;padding:.75rem;font-size:.875rem}.styles-module__textarea___AjX9N.styles-module__large___3eU2g{min-height:5rem;padding:1rem;font-size:1rem}.styles-module__textarea___AjX9N.styles-module__default___vsSxX{background:var(--color-bg);border-color:var(--color-border-4)}.styles-module__textarea___AjX9N.styles-module__filled___TPQgI{background:var(--color-bg-2);border-color:var(--color-border-3)}.styles-module__inputContainer___VvGBl .styles-module__leftIcon___FHp2R{color:var(--color-fg-muted,var(--color-fg-text));pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;top:.75rem;left:.75rem}.styles-module__inputContainer___VvGBl .styles-module__rightIcon___dkyvP{color:var(--color-fg-muted,var(--color-fg-text));pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;top:.75rem;right:.75rem}.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__small___zMx0G+.styles-module__leftIcon___FHp2R,.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__small___zMx0G+.styles-module__rightIcon___dkyvP{top:.5rem}.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__large___3eU2g+.styles-module__leftIcon___FHp2R,.styles-module__inputContainer___VvGBl .styles-module__textarea___AjX9N.styles-module__large___3eU2g+.styles-module__rightIcon___dkyvP{top:1rem}.styles-module__textarea___AjX9N.styles-module__error___d8gLK{border-color:var(--color-danger)}.styles-module__textarea___AjX9N.styles-module__error___d8gLK:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px rgba(var(--color-danger-rgb,244, 67, 54), .1)}.styles-module__textarea___AjX9N.styles-module__disabled___IzbfE{background:var(--color-bg-3);border-color:var(--color-border-5);color:var(--color-fg-muted);cursor:not-allowed;opacity:.6}.styles-module__errorText___Nom7x{color:var(--color-danger);margin:0;font-size:.75rem}.styles-module__helperText___97Def{color:var(--color-fg-muted);margin:0;font-size:.75rem}.styles-module__virtualList___pM6rN{contain:strict;width:100%;padding-bottom:300px;position:relative;overflow:auto}.styles-module__emptyContainer___rm938{height:100%;color:var(--color-fg-muted);justify-content:center;align-items:center;display:flex}.styles-module__virtualListInner___HxRzc{width:100%;position:relative}.styles-module__virtualListItems___p19-a{width:100%;position:absolute;top:0;left:0}.styles-module__loadingMore___zAdLM{color:var(--color-fg-muted);justify-content:center;align-items:center;gap:.75rem;padding:2rem 0;font-size:.875rem;display:flex}.styles-module__endOfList___5cYFh{color:var(--color-fg-muted);border-top:1px solid var(--color-border-3);justify-content:center;margin-top:1rem;padding:2rem 0;font-size:.875rem;display:flex}.styles-module__endOfList___5cYFh span{background-color:var(--color-bg-2);border-radius:.25rem;padding:.5rem 1rem}.styles-module__virtualList___xmj2v{width:100%;padding-bottom:300px;position:relative;overflow:visible}.styles-module__virtualListInner___quD74{width:100%;position:relative}.styles-module__virtualListItems___-Muml{width:100%;position:absolute;top:0;left:0}.styles-module__virtualListRow___h3pzX{width:100%}.styles-module__emptyContainer___LIy8r{color:var(--color-fg-muted);justify-content:center;align-items:center;padding:2rem 0;display:flex}.styles-module__loadingMore___Mzf-p{color:var(--color-fg-muted);justify-content:center;align-items:center;padding:1.5rem 0;display:flex}.styles-module__endOfList___g5G--{color:var(--color-fg-muted);border-top:1px solid var(--color-border-3);justify-content:center;padding:1.5rem 0;display:flex}.styles-module__sidebar___BMt0j{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.styles-module__sidebarContent___iAwiw{flex-direction:column;height:100%;min-height:0;padding-top:1rem;display:flex;overflow:hidden}.styles-module__menuWrapper___DKuEv{flex:1;min-height:0;overflow:hidden auto}.styles-module__sidebarContent___iAwiw::-webkit-scrollbar{width:0}.styles-module__sidebarContent___iAwiw::-webkit-scrollbar-track{background:0 0}.styles-module__sidebarContent___iAwiw::-webkit-scrollbar-thumb{background:0 0}.styles-module__sidebarContent___iAwiw::-webkit-scrollbar-thumb:hover{background:0 0}.styles-module__sidebar___BMt0j a{margin-left:0}.styles-module__sidebar___BMt0j .ps-sidebar-root{background-color:var(--color-bg-2)!important;border-right:1px solid var(--color-separator)!important;flex-direction:column!important;height:100%!important;min-height:0!important;display:flex!important;overflow:hidden!important}.styles-module__sidebar___BMt0j .ps-sidebar-container{background-color:var(--color-bg-2)!important;height:100%!important;min-height:0!important;color:var(--color-fg-text)!important;flex-direction:column!important;flex:1!important;display:flex!important;overflow:hidden!important}.styles-module__sidebar___BMt0j .ps-menu-button{color:var(--color-fg-text)!important;border-radius:.375rem!important;margin:.125rem .5rem!important;padding:.5rem .75rem!important;font-size:.875rem!important;transition:all .2s!important}.styles-module__sidebar___BMt0j .ps-menu-button:hover{background-color:var(--color-bg-3)!important;color:var(--color-fg-text)!important}.styles-module__sidebar___BMt0j .ps-menu-button.ps-active{background-color:var(--color-primary)!important;color:#fff!important}.styles-module__sidebar___BMt0j .ps-menu-button.ps-active *,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active .ps-menu-icon,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active .ps-menu-label{color:#fff!important}.styles-module__sidebar___BMt0j .ps-menu-icon{width:1.25rem!important;height:1.25rem!important;color:var(--color-fg-text)!important;margin-right:.5rem!important}.styles-module__sidebar___BMt0j .ps-submenu-content{background-color:var(--color-bg-3)!important;padding-left:.5rem!important;overflow:hidden!important}.styles-module__sidebar___BMt0j .ps-submenu-content .ps-menu-button{margin:.125rem .25rem!important;padding:.375rem .5rem!important;font-size:.8125rem!important;transition:all .2s!important}.styles-module__sidebar___BMt0j .ps-menu-label{color:var(--color-fg-text)!important;font-weight:500!important}.styles-module__sidebar___BMt0j .ps-menu-button.ps-active,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active span,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active div,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active .ps-menu-icon,.styles-module__sidebar___BMt0j .ps-menu-button.ps-active .ps-menu-label{color:#fff!important}.styles-module__logoutContainer___7NwBL{border-top:1px solid var(--color-separator);writing-mode:horizontal-tb;text-orientation:mixed;flex-shrink:0;margin-top:auto;padding:.5rem}.styles-module__logoutButton___rfD6u{width:100%;color:var(--color-fg-text);cursor:pointer;white-space:nowrap;writing-mode:horizontal-tb;text-orientation:mixed;direction:ltr;background:0 0;border:none;border-radius:.375rem;justify-content:flex-start;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;transition:background-color .2s,color .2s;display:flex;overflow:hidden}.styles-module__logoutButton___rfD6u span{opacity:1;max-width:200px;transition:opacity .3s,max-width .3s;display:inline-block;writing-mode:horizontal-tb!important;text-orientation:mixed!important;direction:ltr!important;transform:none!important}.styles-module__logoutButton___rfD6u .styles-module__hiddenText___z183T{opacity:0;width:0;max-width:0;overflow:hidden}.styles-module__logoutButton___rfD6u .styles-module__visibleText___lfsv-{opacity:1;width:auto;max-width:200px}.styles-module__logoutButton___rfD6u:hover{background-color:var(--color-bg-3)}.styles-module__logoutButton___rfD6u:active{transform:scale(.98)}.styles-module__logoutButton___rfD6u svg{color:inherit;flex-shrink:0}.styles-module__footer___g-hY7{background:var(--color-bg-2);width:100%;padding:0 2rem}.styles-module__footerContent___Oen5n{justify-content:space-between;align-items:center;max-width:100%;margin:0 auto;display:flex}.styles-module__copyright___1R2o3{color:var(--color-fg-text);font-size:.875rem}.styles-module__links___dQyvB{gap:1.5rem;display:flex}.styles-module__link___UWfyK{color:var(--color-fg-text);font-size:.875rem;text-decoration:none;transition:color .3s}.styles-module__link___UWfyK:hover{color:var(--color-primary)}@media (width<=768px){.styles-module__footerContent___Oen5n{flex-direction:column;gap:1rem}.styles-module__links___dQyvB{gap:1rem}}.styles-module__header___4Uc8h{width:100%;padding:.5rem 2rem;display:flex}.styles-module__header___4Uc8h>:first-child{flex:1;justify-content:flex-start;align-items:center;display:flex}.styles-module__header___4Uc8h>:last-child{flex:1;justify-content:flex-end;align-items:center;display:flex}.styles-module__layout___ZQKU7{background:var(--color-bg);flex-direction:column;width:100%;height:100vh;display:flex;position:relative}.styles-module__header___XIaFb{z-index:100;background:var(--color-bg);width:100%;position:fixed;top:0;box-shadow:0 .125rem .25rem #2c33491a}.styles-module__footer___r8ASO{z-index:100;width:100%;position:fixed;bottom:0}.styles-module__mainWrapper___i4tEI{flex:1;display:flex;position:relative}.styles-module__sidebar___ij-8-{position:fixed;top:0}.styles-module__content___mTgUr{background:var(--color-bg);flex:1;min-height:calc(100vh - 10rem);margin:0;padding-top:0;padding-bottom:0;overflow:hidden auto}@media (width<=768px){.styles-module__content___mTgUr{width:100%}.styles-module__sidebar___ij-8-{z-index:999;height:100vh;position:fixed;top:0;left:0}}.styles-module__mainWrapper___AiTAw{flex-direction:row;flex:1;display:flex;position:relative}.styles-module__sidebarContainer___X4yj8{z-index:99;flex-direction:column;display:flex;position:fixed;left:0;overflow:hidden}.styles-module__sidebar___VQTlH{flex-shrink:0;top:0;left:0}.styles-module__content___htJlH{background:var(--color-bg);flex:1;margin:0;padding-top:0;padding-bottom:0;overflow:hidden auto}@media (width<=1024px){.styles-module__content___htJlH{padding:1.5rem}}@media (width<=768px){.styles-module__content___htJlH{width:100%}.styles-module__sidebar___VQTlH{z-index:999;height:100vh;position:fixed;top:0;left:0}}.styles-module__wavesWrapper___TK7DI{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__wavesWrapper___TK7DI>*{pointer-events:auto}.styles-module__squaresWrapper___P25uF{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__squaresWrapper___P25uF>*{pointer-events:auto}.styles-module__letterGlitchWrapper___KWtWU{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__letterGlitchWrapper___KWtWU>*{pointer-events:auto}.styles-module__pixelBlastWrapper___YptHh{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0;overflow:hidden}.styles-module__pixelBlastWrapper___YptHh>*{pointer-events:auto}
|
|
2
2
|
/*$vite$:1*/`)),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
|
|
3
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const U=require("./chunk-chunk-BFrxaqQT.cjs"),r=require("./chunk-lstorage-BnxLXHgH.cjs"),a=require("./chunk-types-BE3JCLff.cjs"),
|
|
3
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const U=require("./chunk-chunk-BFrxaqQT.cjs"),r=require("./chunk-lstorage-BnxLXHgH.cjs"),a=require("./chunk-types-BE3JCLff.cjs"),t=require("./chunk-i18n-daHSL0Nm.cjs");let n=require("react"),l=require("react/jsx-runtime");function s(e){return t.i18n_default.t("languageSwitcher."+e,{ns:"language",defaultValue:e})}function S(){const e=(0,n.useCallback)(s,[]);return(0,n.useMemo)(()=>({getLanguageDisplayName:e}),[e])}function o(e){return t.i18n_default.t("layoutSwitcher."+e,{ns:"layout",defaultValue:e})}function G(){const e=(0,n.useCallback)(o,[]);return(0,n.useMemo)(()=>({getLayoutDisplayName:e}),[e])}function c(e){return t.i18n_default.t("baseSwitcher."+e,{ns:"preference",defaultValue:e})}function d(){const e=(0,n.useCallback)(c,[]);return(0,n.useMemo)(()=>({getPreferenceDisplayName:e}),[e])}function L(e){return t.i18n_default.t("themeSwitcher."+e,{ns:"theme",defaultValue:e})}function y(){const e=(0,n.useCallback)(L,[]);return(0,n.useMemo)(()=>({getThemeDisplayName:e}),[e])}function h(e,u){return{RESOURCES:e,NAME_SPACES_MAP:u,NAME_SPACES:Object.values(u)}}function p(e){t.i18n_default.changeLanguage(e)}function f(){const e=r.getItem(a.LANGUAGE_STORAGE_KEY);return e==null||a.LANGUAGE_VALUES.includes(e)?e:void 0}function A(e){r.setItem(a.LANGUAGE_STORAGE_KEY,e)}function P(){r.removeItem(a.LANGUAGE_STORAGE_KEY)}function E(){const e=f();if(e!=null)return e;const u=(typeof navigator<"u"&&(navigator.language||navigator.languages?.[0])||"").toLowerCase();return u.startsWith("zh")?a.LanguageEnum.ZH:u.startsWith("en")?a.LanguageEnum.EN:u.startsWith("fr")?a.LanguageEnum.FR:a.DEFAULT_LANGUAGE}var m=(0,n.memo)(({children:e,bundles:u,fallbackLng:_,onLoadExtraBundles:N})=>{const g=(0,n.useRef)(!1);return g.current||(t.initI18n({bundles:u,fallbackLng:_,onLoadExtraBundles:N}),g.current=!0),(0,n.useEffect)(()=>{const i=E();A(i),t.i18n_default.changeLanguage(i)},[]),(0,l.jsx)(l.Fragment,{children:e})});m.displayName="LanguageProvider";exports.DEFAULT_LANGUAGE=a.DEFAULT_LANGUAGE;exports.LANGUAGE_STORAGE_KEY=a.LANGUAGE_STORAGE_KEY;exports.LANGUAGE_VALUES=a.LANGUAGE_VALUES;exports.LanguageEnum=a.LanguageEnum;exports.LanguageProvider=m;exports.NFX_NAMESPACES=t.NFX_NAMESPACES;exports.NFX_NAMESPACES_MAP=t.NFX_NAMESPACES_MAP;exports.changeLanguage=p;exports.createI18nResources=h;exports.getDefaultNfxBundles=t.getDefaultNfxBundles;exports.getLanguageDisplayName=s;exports.getLanguageStorage=f;exports.getLayoutDisplayName=o;exports.getLocalLanguage=E;exports.getPreferenceDisplayName=c;exports.getThemeDisplayName=L;exports.i18n=t.i18n_default;exports.initI18n=t.initI18n;exports.removeLanguageStorage=P;exports.setLanguageStorage=A;exports.useLanguageLabel=S;exports.useLayoutLabel=G;exports.usePreferenceLabel=d;exports.useThemeLabel=y;
|
|
4
4
|
|
|
5
5
|
//# sourceMappingURL=languages.cjs.map
|
package/dist/languages.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { default as i18n } from 'i18next';
|
|
1
2
|
import { JSX } from 'react/jsx-runtime';
|
|
2
3
|
import { MemoExoticComponent } from 'react';
|
|
3
4
|
import { ReactNode } from 'react';
|
|
@@ -56,6 +57,8 @@ export declare function getPreferenceDisplayName(base: BaseEnum): string;
|
|
|
56
57
|
|
|
57
58
|
export declare function getThemeDisplayName(theme: ThemeEnum): string;
|
|
58
59
|
|
|
60
|
+
export { i18n }
|
|
61
|
+
|
|
59
62
|
/**
|
|
60
63
|
* 初始化 i18n。会先合并 NFX-UI 自带的四类 JSON(theme/language/layout/preference),再与用户传入的 bundles 合并(用户可覆盖)。
|
|
61
64
|
* Init i18n. Merges built-in NFX bundles (theme, language, layout, preference) with user bundles (user overrides).
|
|
@@ -152,7 +155,9 @@ declare enum ThemeEnum {
|
|
|
152
155
|
DARK = "dark",
|
|
153
156
|
COSMIC = "cosmic",
|
|
154
157
|
COFFEE = "coffee",
|
|
155
|
-
WINE = "wine"
|
|
158
|
+
WINE = "wine",
|
|
159
|
+
/** 麦田:default 基础上白红色改为金黄色 */
|
|
160
|
+
WHEAT = "wheat"
|
|
156
161
|
}
|
|
157
162
|
|
|
158
163
|
export declare function useLanguageLabel(): {
|
package/dist/languages.mjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/*$vite$:1*/`)),document.head.appendChild(e)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
|
|
3
3
|
import { n as f, r as c, t as m } from "./chunk-lstorage-BVCD00Ow.mjs";
|
|
4
4
|
import { i as u, n as s, r as L, t as N } from "./chunk-types-SD4MzUGp.mjs";
|
|
5
|
-
import { a as R, i as T, n as p, r as U, t } from "./chunk-i18n-
|
|
5
|
+
import { a as R, i as T, n as p, r as U, t } from "./chunk-i18n-BBPhh6MT.mjs";
|
|
6
6
|
import { memo as y, useCallback as n, useEffect as E, useMemo as r, useRef as A } from "react";
|
|
7
7
|
import { Fragment as S, jsx as h } from "react/jsx-runtime";
|
|
8
8
|
function d(e) {
|
|
@@ -100,6 +100,7 @@ export {
|
|
|
100
100
|
w as getLocalLanguage,
|
|
101
101
|
P as getPreferenceDisplayName,
|
|
102
102
|
_ as getThemeDisplayName,
|
|
103
|
+
t as i18n,
|
|
103
104
|
p as initI18n,
|
|
104
105
|
k as removeLanguageStorage,
|
|
105
106
|
I as setLanguageStorage,
|