@trebired/frontend 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +61 -1
  3. package/dist/config/index.d.ts +6 -45
  4. package/dist/config/index.d.ts.map +1 -1
  5. package/dist/config/index.js +19 -252
  6. package/dist/config/index.js.map +1 -1
  7. package/dist/config/module.d.ts +5 -0
  8. package/dist/config/module.d.ts.map +1 -0
  9. package/dist/config/module.js +124 -0
  10. package/dist/config/module.js.map +1 -0
  11. package/dist/config/normalize.d.ts +10 -0
  12. package/dist/config/normalize.d.ts.map +1 -0
  13. package/dist/config/normalize.js +105 -0
  14. package/dist/config/normalize.js.map +1 -0
  15. package/dist/config/scss.d.ts +4 -0
  16. package/dist/config/scss.d.ts.map +1 -0
  17. package/dist/config/scss.js +84 -0
  18. package/dist/config/scss.js.map +1 -0
  19. package/dist/config/shared.d.ts +9 -0
  20. package/dist/config/shared.d.ts.map +1 -0
  21. package/dist/config/shared.js +27 -0
  22. package/dist/config/shared.js.map +1 -0
  23. package/dist/config/theme.d.ts +6 -0
  24. package/dist/config/theme.d.ts.map +1 -0
  25. package/dist/config/theme.js +133 -0
  26. package/dist/config/theme.js.map +1 -0
  27. package/dist/config/types.d.ts +62 -0
  28. package/dist/config/types.d.ts.map +1 -0
  29. package/dist/config/types.js +2 -0
  30. package/dist/config/types.js.map +1 -0
  31. package/dist/src/config/index.d.ts +6 -45
  32. package/dist/src/config/index.d.ts.map +1 -1
  33. package/dist/src/config/index.js +19 -252
  34. package/dist/src/config/index.js.map +1 -1
  35. package/dist/src/config/module.d.ts +5 -0
  36. package/dist/src/config/module.d.ts.map +1 -0
  37. package/dist/src/config/module.js +124 -0
  38. package/dist/src/config/module.js.map +1 -0
  39. package/dist/src/config/normalize.d.ts +10 -0
  40. package/dist/src/config/normalize.d.ts.map +1 -0
  41. package/dist/src/config/normalize.js +105 -0
  42. package/dist/src/config/normalize.js.map +1 -0
  43. package/dist/src/config/scss.d.ts +4 -0
  44. package/dist/src/config/scss.d.ts.map +1 -0
  45. package/dist/src/config/scss.js +84 -0
  46. package/dist/src/config/scss.js.map +1 -0
  47. package/dist/src/config/shared.d.ts +9 -0
  48. package/dist/src/config/shared.d.ts.map +1 -0
  49. package/dist/src/config/shared.js +27 -0
  50. package/dist/src/config/shared.js.map +1 -0
  51. package/dist/src/config/theme.d.ts +6 -0
  52. package/dist/src/config/theme.d.ts.map +1 -0
  53. package/dist/src/config/theme.js +133 -0
  54. package/dist/src/config/theme.js.map +1 -0
  55. package/dist/src/config/types.d.ts +62 -0
  56. package/dist/src/config/types.d.ts.map +1 -0
  57. package/dist/src/config/types.js +2 -0
  58. package/dist/src/config/types.js.map +1 -0
  59. package/dist/src/theme/apply.d.ts +26 -0
  60. package/dist/src/theme/apply.d.ts.map +1 -0
  61. package/dist/src/theme/apply.js +85 -0
  62. package/dist/src/theme/apply.js.map +1 -0
  63. package/dist/src/theme/boot.d.ts +4 -0
  64. package/dist/src/theme/boot.d.ts.map +1 -0
  65. package/dist/src/theme/boot.js +23 -0
  66. package/dist/src/theme/boot.js.map +1 -0
  67. package/dist/src/theme/components/index.d.ts +13 -5
  68. package/dist/src/theme/components/index.d.ts.map +1 -1
  69. package/dist/src/theme/components/index.js +22 -6
  70. package/dist/src/theme/components/index.js.map +1 -1
  71. package/dist/src/theme/constants.d.ts +12 -0
  72. package/dist/src/theme/constants.d.ts.map +1 -0
  73. package/dist/src/theme/constants.js +12 -0
  74. package/dist/src/theme/constants.js.map +1 -0
  75. package/dist/src/theme/controls.d.ts +15 -0
  76. package/dist/src/theme/controls.d.ts.map +1 -0
  77. package/dist/src/theme/controls.js +128 -0
  78. package/dist/src/theme/controls.js.map +1 -0
  79. package/dist/src/theme/index.d.ts +10 -24
  80. package/dist/src/theme/index.d.ts.map +1 -1
  81. package/dist/src/theme/index.js +15 -117
  82. package/dist/src/theme/index.js.map +1 -1
  83. package/dist/src/theme/modes.d.ts +36 -0
  84. package/dist/src/theme/modes.d.ts.map +1 -0
  85. package/dist/src/theme/modes.js +107 -0
  86. package/dist/src/theme/modes.js.map +1 -0
  87. package/dist/theme/apply.d.ts +26 -0
  88. package/dist/theme/apply.d.ts.map +1 -0
  89. package/dist/theme/apply.js +85 -0
  90. package/dist/theme/apply.js.map +1 -0
  91. package/dist/theme/boot.d.ts +4 -0
  92. package/dist/theme/boot.d.ts.map +1 -0
  93. package/dist/theme/boot.js +23 -0
  94. package/dist/theme/boot.js.map +1 -0
  95. package/dist/theme/components/index.d.ts +13 -5
  96. package/dist/theme/components/index.d.ts.map +1 -1
  97. package/dist/theme/components/index.js +22 -6
  98. package/dist/theme/components/index.js.map +1 -1
  99. package/dist/theme/constants.d.ts +12 -0
  100. package/dist/theme/constants.d.ts.map +1 -0
  101. package/dist/theme/constants.js +12 -0
  102. package/dist/theme/constants.js.map +1 -0
  103. package/dist/theme/controls.d.ts +15 -0
  104. package/dist/theme/controls.d.ts.map +1 -0
  105. package/dist/theme/controls.js +128 -0
  106. package/dist/theme/controls.js.map +1 -0
  107. package/dist/theme/index.d.ts +10 -24
  108. package/dist/theme/index.d.ts.map +1 -1
  109. package/dist/theme/index.js +15 -117
  110. package/dist/theme/index.js.map +1 -1
  111. package/dist/theme/modes.d.ts +36 -0
  112. package/dist/theme/modes.d.ts.map +1 -0
  113. package/dist/theme/modes.js +107 -0
  114. package/dist/theme/modes.js.map +1 -0
  115. package/package.json +1 -1
@@ -0,0 +1,10 @@
1
+ import type { NormalizedTrebiredFrontendConfig, TrebiredFrontendIconPack, TrebiredFrontendSystemKey } from "./types.js";
2
+ declare const TREBIRED_FRONTEND_CONFIG_PATH = ".trebired/frontend/config.ts";
3
+ declare const THEME_MODE_ATTRIBUTE = "data-tbf-theme";
4
+ declare const SUPPORTED_ICON_PACKS: TrebiredFrontendIconPack[];
5
+ declare const SYSTEM_ORDER: TrebiredFrontendSystemKey[];
6
+ declare const SYSTEM_STYLE_IMPORTS: Partial<Record<TrebiredFrontendSystemKey, string>>;
7
+ declare const DEFAULT_TREBIRED_FRONTEND_CONFIG: NormalizedTrebiredFrontendConfig;
8
+ declare function normalizeTrebiredFrontendConfig(config?: unknown): NormalizedTrebiredFrontendConfig;
9
+ export { DEFAULT_TREBIRED_FRONTEND_CONFIG, SUPPORTED_ICON_PACKS, SYSTEM_ORDER, SYSTEM_STYLE_IMPORTS, THEME_MODE_ATTRIBUTE, TREBIRED_FRONTEND_CONFIG_PATH, normalizeTrebiredFrontendConfig, };
10
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/config/normalize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,gCAAgC,EAChC,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAEpB,QAAA,MAAM,6BAA6B,iCAAiC,CAAC;AAGrE,QAAA,MAAM,oBAAoB,mBAAmB,CAAC;AAE9C,QAAA,MAAM,oBAAoB,EAAE,wBAAwB,EAAkC,CAAC;AAEvF,QAAA,MAAM,YAAY,EAAE,yBAAyB,EAY5C,CAAC;AAEF,QAAA,MAAM,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAU5E,CAAC;AAEF,QAAA,MAAM,gCAAgC,EAAE,gCAetC,CAAC;AA+CH,iBAAS,+BAA+B,CAAC,MAAM,GAAE,OAAY,GAAG,gCAAgC,CAY/F;AAED,OAAO,EACL,gCAAgC,EAChC,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,6BAA6B,EAC7B,+BAA+B,GAChC,CAAC"}
@@ -0,0 +1,105 @@
1
+ import { assertPlainObject, invalidConfig } from "./shared.js";
2
+ import { normalizeThemeConfig } from "./theme.js";
3
+ const TREBIRED_FRONTEND_CONFIG_PATH = ".trebired/frontend/config.ts";
4
+ /* Must stay in sync with THEME_ATTR exported from the ./theme runtime. */
5
+ const THEME_MODE_ATTRIBUTE = "data-tbf-theme";
6
+ const SUPPORTED_ICON_PACKS = ["remixicon", "simple-icons"];
7
+ const SYSTEM_ORDER = [
8
+ "theme",
9
+ "layer",
10
+ "icons",
11
+ "progress",
12
+ "flash",
13
+ "tooltip",
14
+ "popover",
15
+ "modal",
16
+ "inputs",
17
+ "actions",
18
+ "fullscreen",
19
+ ];
20
+ const SYSTEM_STYLE_IMPORTS = {
21
+ actions: "@trebired/frontend/actions/styles",
22
+ flash: "@trebired/frontend/flash/styles",
23
+ icons: "@trebired/frontend/icons/styles",
24
+ inputs: "@trebired/frontend/inputs/styles",
25
+ layer: "@trebired/frontend/layer/styles",
26
+ modal: "@trebired/frontend/modal/styles",
27
+ popover: "@trebired/frontend/popover/styles",
28
+ progress: "@trebired/frontend/progress/styles",
29
+ tooltip: "@trebired/frontend/tooltip/styles",
30
+ };
31
+ const DEFAULT_TREBIRED_FRONTEND_CONFIG = Object.freeze({
32
+ prefix: "tbf",
33
+ icons: Object.freeze({
34
+ endpoint: "/__icons/svg",
35
+ packs: Object.freeze([...SUPPORTED_ICON_PACKS]),
36
+ }),
37
+ systems: Object.freeze(Object.fromEntries(SYSTEM_ORDER.map((key) => [key, true]))),
38
+ theme: Object.freeze({
39
+ cssVariables: true,
40
+ dark: "",
41
+ defaultMode: "",
42
+ light: "",
43
+ modes: Object.freeze([]),
44
+ tokens: Object.freeze({}),
45
+ }),
46
+ });
47
+ function normalizePrefix(value) {
48
+ const prefix = String(value || DEFAULT_TREBIRED_FRONTEND_CONFIG.prefix).trim();
49
+ if (!/^[a-z][a-z0-9_-]*$/iu.test(prefix)) {
50
+ throw invalidConfig("prefix must start with a letter and contain only letters, numbers, underscores, or hyphens");
51
+ }
52
+ return prefix;
53
+ }
54
+ function normalizeEndpoint(value) {
55
+ const endpoint = String(value || DEFAULT_TREBIRED_FRONTEND_CONFIG.icons.endpoint).trim();
56
+ if (!endpoint || /[\s"'<>]/u.test(endpoint)) {
57
+ throw invalidConfig("icons.endpoint must be a URL path without whitespace");
58
+ }
59
+ return endpoint;
60
+ }
61
+ function normalizeIconPacks(value) {
62
+ const raw = value === undefined ? DEFAULT_TREBIRED_FRONTEND_CONFIG.icons.packs : value;
63
+ if (!Array.isArray(raw))
64
+ throw invalidConfig("icons.packs must be an array");
65
+ const packs = [];
66
+ for (const item of raw) {
67
+ if (!SUPPORTED_ICON_PACKS.includes(item)) {
68
+ throw invalidConfig(`unsupported icon pack ${String(item)}`);
69
+ }
70
+ if (!packs.includes(item))
71
+ packs.push(item);
72
+ }
73
+ return packs;
74
+ }
75
+ function normalizeSystems(value) {
76
+ if (value === undefined)
77
+ return { ...DEFAULT_TREBIRED_FRONTEND_CONFIG.systems };
78
+ const source = assertPlainObject(value, "systems");
79
+ const systems = { ...DEFAULT_TREBIRED_FRONTEND_CONFIG.systems };
80
+ for (const [key, enabled] of Object.entries(source)) {
81
+ if (!SYSTEM_ORDER.includes(key)) {
82
+ throw invalidConfig(`unsupported system ${key}`);
83
+ }
84
+ if (typeof enabled !== "boolean") {
85
+ throw invalidConfig(`systems.${key} must be boolean`);
86
+ }
87
+ systems[key] = enabled;
88
+ }
89
+ return systems;
90
+ }
91
+ function normalizeTrebiredFrontendConfig(config = {}) {
92
+ const source = assertPlainObject(config, "config");
93
+ const icons = source.icons === undefined ? {} : assertPlainObject(source.icons, "icons");
94
+ return {
95
+ prefix: normalizePrefix(source.prefix),
96
+ icons: {
97
+ endpoint: normalizeEndpoint(icons.endpoint),
98
+ packs: normalizeIconPacks(icons.packs),
99
+ },
100
+ systems: normalizeSystems(source.systems),
101
+ theme: normalizeThemeConfig(source.theme),
102
+ };
103
+ }
104
+ export { DEFAULT_TREBIRED_FRONTEND_CONFIG, SUPPORTED_ICON_PACKS, SYSTEM_ORDER, SYSTEM_STYLE_IMPORTS, THEME_MODE_ATTRIBUTE, TREBIRED_FRONTEND_CONFIG_PATH, normalizeTrebiredFrontendConfig, };
105
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/config/normalize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { NormalizedTrebiredFrontendConfig, TrebiredFrontendConfig } from "./types.js";
2
+ declare function generateTrebiredFrontendScss(configInput: TrebiredFrontendConfig | NormalizedTrebiredFrontendConfig): string;
3
+ export { generateTrebiredFrontendScss };
4
+ //# sourceMappingURL=scss.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scss.d.ts","sourceRoot":"","sources":["../../../src/config/scss.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,gCAAgC,EAEhC,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AA+EpB,iBAAS,4BAA4B,CACnC,WAAW,EAAE,sBAAsB,GAAG,gCAAgC,GACrE,MAAM,CAWR;AAED,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { cssComment, cssString } from "./shared.js";
2
+ import { SYSTEM_ORDER, SYSTEM_STYLE_IMPORTS, THEME_MODE_ATTRIBUTE, normalizeTrebiredFrontendConfig, } from "./normalize.js";
3
+ import { flattenThemeTokens } from "./theme.js";
4
+ function tokenDeclarations(prefix, tokens) {
5
+ return flattenThemeTokens(tokens).map(([key, value]) => ` --${prefix}-${key}: ${String(value)};`);
6
+ }
7
+ function rootDeclarations(config) {
8
+ const { modes, defaultMode } = config.theme;
9
+ return [
10
+ ` --${config.prefix}-config-prefix: ${cssString(config.prefix)};`,
11
+ ` --${config.prefix}-icon-endpoint: ${cssString(config.icons.endpoint)};`,
12
+ ...(modes.length ? [` --${config.prefix}-theme-modes: ${cssString(modes.map((mode) => mode.key).join(" "))};`] : []),
13
+ ...(defaultMode ? [` --${config.prefix}-theme-default: ${cssString(defaultMode)};`] : []),
14
+ ...tokenDeclarations(config.prefix, config.theme.tokens),
15
+ ];
16
+ }
17
+ function modeDeclarations(config, mode) {
18
+ return [
19
+ ` color-scheme: ${mode.scheme};`,
20
+ ...tokenDeclarations(config.prefix, mode.tokens),
21
+ ];
22
+ }
23
+ function renderBlock(selector, declarations, indent = "") {
24
+ if (!declarations.length)
25
+ return [];
26
+ return [
27
+ `${indent}${selector} {`,
28
+ ...declarations.map((line) => `${indent}${line}`),
29
+ `${indent}}`,
30
+ ];
31
+ }
32
+ function renderModeBlocks(config) {
33
+ return config.theme.modes.flatMap((mode) => [
34
+ "",
35
+ `/* theme mode: ${cssComment(mode.key)} */`,
36
+ ...renderBlock(`[${THEME_MODE_ATTRIBUTE}="${mode.key}"]`, modeDeclarations(config, mode)),
37
+ ]);
38
+ }
39
+ function renderSystemPreferenceBlock(config, scheme) {
40
+ const key = scheme === "dark" ? config.theme.dark : config.theme.light;
41
+ const mode = config.theme.modes.find((item) => item.key === key);
42
+ if (!mode)
43
+ return [];
44
+ return [
45
+ "",
46
+ `@media (prefers-color-scheme: ${scheme}) {`,
47
+ ...renderBlock(`:root:not([${THEME_MODE_ATTRIBUTE}])`, modeDeclarations(config, mode), " "),
48
+ "}",
49
+ ];
50
+ }
51
+ function renderThemeCss(config) {
52
+ if (!config.theme.cssVariables)
53
+ return [];
54
+ return [
55
+ "",
56
+ ...renderBlock(":root", rootDeclarations(config)),
57
+ ...renderModeBlocks(config),
58
+ ...renderSystemPreferenceBlock(config, "dark"),
59
+ ...renderSystemPreferenceBlock(config, "light"),
60
+ ];
61
+ }
62
+ function renderSystemImports(config) {
63
+ const lines = [];
64
+ for (const system of SYSTEM_ORDER) {
65
+ const importPath = SYSTEM_STYLE_IMPORTS[system];
66
+ if (importPath && config.systems[system])
67
+ lines.push(`@use ${cssString(importPath)} as *;`);
68
+ }
69
+ return lines;
70
+ }
71
+ function generateTrebiredFrontendScss(configInput) {
72
+ const config = normalizeTrebiredFrontendConfig(configInput);
73
+ const lines = [
74
+ "/* Generated by @trebired/frontend. Do not edit directly. */",
75
+ `/* prefix: ${cssComment(config.prefix)} */`,
76
+ '@use "@trebired/frontend/styles/tokens" as *;',
77
+ '@use "@trebired/frontend/styles/utils" as *;',
78
+ ...renderSystemImports(config),
79
+ ...renderThemeCss(config),
80
+ ];
81
+ return `${lines.join("\n")}\n`;
82
+ }
83
+ export { generateTrebiredFrontendScss };
84
+ //# sourceMappingURL=scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scss.js","sourceRoot":"","sources":["../../../src/config/scss.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ declare const CONFIG_ERROR_PREFIX = "trebired-frontend-invalid-config";
2
+ declare function invalidConfig(message: string): Error;
3
+ declare function isPlainObject(value: unknown): value is Record<string, unknown>;
4
+ declare function assertPlainObject(value: unknown, pathLabel: string): Record<string, unknown>;
5
+ declare function normalizeBoolean(value: unknown, defaultValue: boolean, pathLabel: string): boolean;
6
+ declare function cssString(value: unknown): string;
7
+ declare function cssComment(value: unknown): string;
8
+ export { CONFIG_ERROR_PREFIX, assertPlainObject, cssComment, cssString, invalidConfig, isPlainObject, normalizeBoolean, };
9
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/config/shared.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB,qCAAqC,CAAC;AAE/D,iBAAS,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAE7C;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvE;AAED,iBAAS,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGrF;AAED,iBAAS,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAI3F;AAED,iBAAS,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEzC;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE1C;AAED,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,CAAC"}
@@ -0,0 +1,27 @@
1
+ const CONFIG_ERROR_PREFIX = "trebired-frontend-invalid-config";
2
+ function invalidConfig(message) {
3
+ return new Error(`${CONFIG_ERROR_PREFIX} :: ${message}`);
4
+ }
5
+ function isPlainObject(value) {
6
+ return Boolean(value && typeof value === "object" && !Array.isArray(value));
7
+ }
8
+ function assertPlainObject(value, pathLabel) {
9
+ if (!isPlainObject(value))
10
+ throw invalidConfig(`${pathLabel} must be an object`);
11
+ return value;
12
+ }
13
+ function normalizeBoolean(value, defaultValue, pathLabel) {
14
+ if (value === undefined)
15
+ return defaultValue;
16
+ if (typeof value !== "boolean")
17
+ throw invalidConfig(`${pathLabel} must be boolean`);
18
+ return value;
19
+ }
20
+ function cssString(value) {
21
+ return JSON.stringify(String(value ?? ""));
22
+ }
23
+ function cssComment(value) {
24
+ return String(value || "").replace(/\*\//gu, "* /");
25
+ }
26
+ export { CONFIG_ERROR_PREFIX, assertPlainObject, cssComment, cssString, invalidConfig, isPlainObject, normalizeBoolean, };
27
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/config/shared.ts"],"names":[],"mappings":"AAAA,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AAE/D,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,IAAI,KAAK,CAAC,GAAG,mBAAmB,OAAO,OAAO,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,SAAiB;IAC1D,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,MAAM,aAAa,CAAC,GAAG,SAAS,oBAAoB,CAAC,CAAC;IACjF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,YAAqB,EAAE,SAAiB;IAChF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IAC7C,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,MAAM,aAAa,CAAC,GAAG,SAAS,kBAAkB,CAAC,CAAC;IACpF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { NormalizedTrebiredFrontendThemeConfig, TrebiredFrontendThemeTokens } from "./types.js";
2
+ declare function normalizeThemeTokens(value: unknown, pathLabel?: string): TrebiredFrontendThemeTokens;
3
+ declare function normalizeThemeConfig(value: unknown): NormalizedTrebiredFrontendThemeConfig;
4
+ declare function flattenThemeTokens(tokens: TrebiredFrontendThemeTokens, prefix?: string[]): Array<[string, string | number]>;
5
+ export { flattenThemeTokens, normalizeThemeConfig, normalizeThemeTokens };
6
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/config/theme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qCAAqC,EAGrC,2BAA2B,EAC5B,MAAM,YAAY,CAAC;AAOpB,iBAAS,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,SAAiB,GAAG,2BAA2B,CAkBrG;AAgGD,iBAAS,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,qCAAqC,CAWnF;AAED,iBAAS,kBAAkB,CACzB,MAAM,EAAE,2BAA2B,EACnC,MAAM,GAAE,MAAM,EAAO,GACpB,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAYlC;AAED,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,133 @@
1
+ import { assertPlainObject, invalidConfig, isPlainObject, normalizeBoolean } from "./shared.js";
2
+ const THEME_MODE_KEY_RE = /^[a-z0-9][a-z0-9_-]*$/iu;
3
+ const THEME_TOKEN_KEY_RE = /^[a-z0-9_-]+$/iu;
4
+ const THEME_MODE_FIELDS = ["label", "scheme", "tokens"];
5
+ const DARK_KEY_RE = /(^|[-_])dark([-_]|$)/iu;
6
+ function normalizeThemeTokens(value, pathLabel = "theme.tokens") {
7
+ if (value === undefined)
8
+ return {};
9
+ const source = assertPlainObject(value, pathLabel);
10
+ const out = {};
11
+ for (const [key, item] of Object.entries(source).sort(([a], [b]) => a.localeCompare(b))) {
12
+ if (!THEME_TOKEN_KEY_RE.test(key)) {
13
+ throw invalidConfig(`${pathLabel}.${key} has an invalid token key`);
14
+ }
15
+ if (isPlainObject(item)) {
16
+ out[key] = normalizeThemeTokens(item, `${pathLabel}.${key}`);
17
+ continue;
18
+ }
19
+ if (typeof item !== "string" && typeof item !== "number") {
20
+ throw invalidConfig(`${pathLabel}.${key} must be a string, number, or token object`);
21
+ }
22
+ out[key] = item;
23
+ }
24
+ return out;
25
+ }
26
+ function normalizeThemeModeKey(key) {
27
+ const normalized = String(key || "").trim().toLowerCase();
28
+ if (!THEME_MODE_KEY_RE.test(normalized)) {
29
+ throw invalidConfig(`theme.modes.${key} must start with a letter or number and contain only letters, numbers, underscores, or hyphens`);
30
+ }
31
+ return normalized;
32
+ }
33
+ function normalizeThemeModeScheme(value, key) {
34
+ if (value === undefined)
35
+ return DARK_KEY_RE.test(key) ? "dark" : "light";
36
+ if (value !== "dark" && value !== "light") {
37
+ throw invalidConfig(`theme.modes.${key}.scheme must be "dark" or "light"`);
38
+ }
39
+ return value;
40
+ }
41
+ function normalizeThemeModeLabel(value, key) {
42
+ if (value === undefined) {
43
+ const words = key.replace(/[-_]+/gu, " ");
44
+ return words.charAt(0).toUpperCase() + words.slice(1);
45
+ }
46
+ if (typeof value !== "string" || !value.trim()) {
47
+ throw invalidConfig(`theme.modes.${key}.label must be a non-empty string`);
48
+ }
49
+ return value.trim();
50
+ }
51
+ function normalizeThemeMode(rawKey, source) {
52
+ const key = normalizeThemeModeKey(rawKey);
53
+ for (const field of Object.keys(source)) {
54
+ if (!THEME_MODE_FIELDS.includes(field)) {
55
+ throw invalidConfig(`theme.modes.${key}.${field} is not supported; declare custom properties under theme.modes.${key}.tokens`);
56
+ }
57
+ }
58
+ return {
59
+ key,
60
+ label: normalizeThemeModeLabel(source.label, key),
61
+ scheme: normalizeThemeModeScheme(source.scheme, key),
62
+ tokens: normalizeThemeTokens(source.tokens, `theme.modes.${key}.tokens`),
63
+ };
64
+ }
65
+ function themeModeEntries(value) {
66
+ if (!Array.isArray(value)) {
67
+ return Object.entries(assertPlainObject(value, "theme.modes")).map(([key, item]) => {
68
+ return [key, assertPlainObject(item, `theme.modes.${key}`)];
69
+ });
70
+ }
71
+ return value.map((item, index) => {
72
+ const { key, ...rest } = assertPlainObject(item, `theme.modes[${index}]`);
73
+ if (typeof key !== "string" || !key.trim()) {
74
+ throw invalidConfig(`theme.modes[${index}].key must be a non-empty string`);
75
+ }
76
+ return [key, rest];
77
+ });
78
+ }
79
+ function normalizeThemeModes(value) {
80
+ if (value === undefined)
81
+ return [];
82
+ const modes = [];
83
+ for (const [key, source] of themeModeEntries(value)) {
84
+ const mode = normalizeThemeMode(key, source);
85
+ if (modes.some((existing) => existing.key === mode.key)) {
86
+ throw invalidConfig(`theme.modes.${mode.key} is declared more than once`);
87
+ }
88
+ modes.push(mode);
89
+ }
90
+ return modes;
91
+ }
92
+ function resolveDeclaredMode(modes, value, pathLabel) {
93
+ if (value === undefined || value === "")
94
+ return "";
95
+ const key = String(value).trim().toLowerCase();
96
+ if (!modes.some((mode) => mode.key === key)) {
97
+ throw invalidConfig(`${pathLabel} must name a mode declared in theme.modes`);
98
+ }
99
+ return key;
100
+ }
101
+ function resolveSchemeMode(modes, value, scheme, pathLabel) {
102
+ const explicit = resolveDeclaredMode(modes, value, pathLabel);
103
+ if (explicit)
104
+ return explicit;
105
+ return modes.find((mode) => mode.scheme === scheme)?.key || "";
106
+ }
107
+ function normalizeThemeConfig(value) {
108
+ const source = value === undefined ? {} : assertPlainObject(value, "theme");
109
+ const modes = normalizeThemeModes(source.modes);
110
+ return {
111
+ cssVariables: normalizeBoolean(source.cssVariables, true, "theme.cssVariables"),
112
+ dark: resolveSchemeMode(modes, source.dark, "dark", "theme.dark"),
113
+ defaultMode: resolveDeclaredMode(modes, source.defaultMode, "theme.defaultMode"),
114
+ light: resolveSchemeMode(modes, source.light, "light", "theme.light"),
115
+ modes,
116
+ tokens: normalizeThemeTokens(source.tokens),
117
+ };
118
+ }
119
+ function flattenThemeTokens(tokens, prefix = []) {
120
+ const out = [];
121
+ for (const [key, value] of Object.entries(tokens).sort(([a], [b]) => a.localeCompare(b))) {
122
+ if (isPlainObject(value)) {
123
+ out.push(...flattenThemeTokens(value, [...prefix, key]));
124
+ continue;
125
+ }
126
+ if (typeof value === "string" || typeof value === "number") {
127
+ out.push([[...prefix, key].join("-"), value]);
128
+ }
129
+ }
130
+ return out;
131
+ }
132
+ export { flattenThemeTokens, normalizeThemeConfig, normalizeThemeTokens };
133
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/config/theme.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ type TrebiredFrontendIconPack = "remixicon" | "simple-icons";
2
+ type TrebiredFrontendSystemKey = "actions" | "flash" | "fullscreen" | "icons" | "inputs" | "layer" | "modal" | "popover" | "progress" | "theme" | "tooltip";
3
+ type TrebiredFrontendThemeTokens = Record<string, unknown>;
4
+ type TrebiredFrontendThemeModeScheme = "dark" | "light";
5
+ type TrebiredFrontendThemeMode = {
6
+ label?: string;
7
+ scheme?: TrebiredFrontendThemeModeScheme;
8
+ tokens?: TrebiredFrontendThemeTokens;
9
+ };
10
+ type TrebiredFrontendThemeConfig = {
11
+ cssVariables?: boolean;
12
+ dark?: string;
13
+ defaultMode?: string;
14
+ light?: string;
15
+ modes?: Record<string, TrebiredFrontendThemeMode>;
16
+ tokens?: TrebiredFrontendThemeTokens;
17
+ };
18
+ type TrebiredFrontendConfig = {
19
+ prefix?: string;
20
+ icons?: {
21
+ endpoint?: string;
22
+ packs?: readonly TrebiredFrontendIconPack[];
23
+ };
24
+ systems?: Partial<Record<TrebiredFrontendSystemKey, boolean>>;
25
+ theme?: TrebiredFrontendThemeConfig;
26
+ };
27
+ type NormalizedTrebiredFrontendThemeMode = {
28
+ key: string;
29
+ label: string;
30
+ scheme: TrebiredFrontendThemeModeScheme;
31
+ tokens: TrebiredFrontendThemeTokens;
32
+ };
33
+ type NormalizedTrebiredFrontendThemeConfig = {
34
+ cssVariables: boolean;
35
+ dark: string;
36
+ defaultMode: string;
37
+ light: string;
38
+ modes: NormalizedTrebiredFrontendThemeMode[];
39
+ tokens: TrebiredFrontendThemeTokens;
40
+ };
41
+ type NormalizedTrebiredFrontendConfig = {
42
+ prefix: string;
43
+ icons: {
44
+ endpoint: string;
45
+ packs: TrebiredFrontendIconPack[];
46
+ };
47
+ systems: Record<TrebiredFrontendSystemKey, boolean>;
48
+ theme: NormalizedTrebiredFrontendThemeConfig;
49
+ };
50
+ type LoadedTrebiredFrontendConfig = {
51
+ config: NormalizedTrebiredFrontendConfig;
52
+ configPath: string | null;
53
+ dependencies: string[];
54
+ generatedScss: string;
55
+ };
56
+ type LoadTrebiredFrontendConfigOptions = {
57
+ configPath?: string;
58
+ defaultIfMissing?: boolean;
59
+ searchFrom?: string;
60
+ };
61
+ export type { LoadTrebiredFrontendConfigOptions, LoadedTrebiredFrontendConfig, NormalizedTrebiredFrontendConfig, NormalizedTrebiredFrontendThemeConfig, NormalizedTrebiredFrontendThemeMode, TrebiredFrontendConfig, TrebiredFrontendIconPack, TrebiredFrontendSystemKey, TrebiredFrontendThemeConfig, TrebiredFrontendThemeMode, TrebiredFrontendThemeModeScheme, TrebiredFrontendThemeTokens, };
62
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAAA,KAAK,wBAAwB,GAAG,WAAW,GAAG,cAAc,CAAC;AAE7D,KAAK,yBAAyB,GAC1B,SAAS,GACT,OAAO,GACP,YAAY,GACZ,OAAO,GACP,QAAQ,GACR,OAAO,GACP,OAAO,GACP,SAAS,GACT,UAAU,GACV,OAAO,GACP,SAAS,CAAC;AAEd,KAAK,2BAA2B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3D,KAAK,+BAA+B,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD,KAAK,yBAAyB,GAAG;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,+BAA+B,CAAC;IACzC,MAAM,CAAC,EAAE,2BAA2B,CAAC;CACtC,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IAClD,MAAM,CAAC,EAAE,2BAA2B,CAAC;CACtC,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;KAC7C,CAAC;IACF,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,KAAK,CAAC,EAAE,2BAA2B,CAAC;CACrC,CAAC;AAEF,KAAK,mCAAmC,GAAG;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,+BAA+B,CAAC;IACxC,MAAM,EAAE,2BAA2B,CAAC;CACrC,CAAC;AAEF,KAAK,qCAAqC,GAAG;IAC3C,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,mCAAmC,EAAE,CAAC;IAC7C,MAAM,EAAE,2BAA2B,CAAC;CACrC,CAAC;AAEF,KAAK,gCAAgC,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,wBAAwB,EAAE,CAAC;KACnC,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;IACpD,KAAK,EAAE,qCAAqC,CAAC;CAC9C,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAClC,MAAM,EAAE,gCAAgC,CAAC;IACzC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,iCAAiC,GAAG;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,YAAY,EACV,iCAAiC,EACjC,4BAA4B,EAC5B,gCAAgC,EAChC,qCAAqC,EACrC,mCAAmC,EACnC,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,+BAA+B,EAC/B,2BAA2B,GAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":""}
@@ -1,49 +1,10 @@
1
- type TrebiredFrontendIconPack = "remixicon" | "simple-icons";
2
- type TrebiredFrontendSystemKey = "actions" | "flash" | "fullscreen" | "icons" | "inputs" | "layer" | "modal" | "popover" | "progress" | "theme" | "tooltip";
3
- type TrebiredFrontendThemeTokens = Record<string, unknown>;
4
- type TrebiredFrontendConfig = {
5
- prefix?: string;
6
- icons?: {
7
- endpoint?: string;
8
- packs?: readonly TrebiredFrontendIconPack[];
9
- };
10
- systems?: Partial<Record<TrebiredFrontendSystemKey, boolean>>;
11
- theme?: {
12
- cssVariables?: boolean;
13
- tokens?: TrebiredFrontendThemeTokens;
14
- };
15
- };
16
- type NormalizedTrebiredFrontendConfig = {
17
- prefix: string;
18
- icons: {
19
- endpoint: string;
20
- packs: TrebiredFrontendIconPack[];
21
- };
22
- systems: Record<TrebiredFrontendSystemKey, boolean>;
23
- theme: {
24
- cssVariables: boolean;
25
- tokens: TrebiredFrontendThemeTokens;
26
- };
27
- };
28
- type LoadedTrebiredFrontendConfig = {
29
- config: NormalizedTrebiredFrontendConfig;
30
- configPath: string | null;
31
- generatedScss: string;
32
- };
33
- type LoadTrebiredFrontendConfigOptions = {
34
- configPath?: string;
35
- defaultIfMissing?: boolean;
36
- searchFrom?: string;
37
- };
38
- declare const TREBIRED_FRONTEND_CONFIG_PATH = ".trebired/frontend/config.ts";
39
- declare const SUPPORTED_ICON_PACKS: TrebiredFrontendIconPack[];
40
- declare const SYSTEM_ORDER: TrebiredFrontendSystemKey[];
41
- declare const DEFAULT_TREBIRED_FRONTEND_CONFIG: NormalizedTrebiredFrontendConfig;
1
+ import type { LoadTrebiredFrontendConfigOptions, LoadedTrebiredFrontendConfig, TrebiredFrontendConfig } from "./types.js";
42
2
  declare function defineTrebiredFrontendConfig<T extends TrebiredFrontendConfig>(config: T): T;
43
- declare function normalizeTrebiredFrontendConfig(config?: unknown): NormalizedTrebiredFrontendConfig;
44
- declare function generateTrebiredFrontendScss(configInput: TrebiredFrontendConfig | NormalizedTrebiredFrontendConfig): string;
45
3
  declare function findTrebiredFrontendConfig(startDir?: string, boundaryDir?: string): Promise<string | null>;
46
4
  declare function loadTrebiredFrontendConfig(projectRoot?: string, options?: LoadTrebiredFrontendConfigOptions): Promise<LoadedTrebiredFrontendConfig>;
47
- export { DEFAULT_TREBIRED_FRONTEND_CONFIG, SUPPORTED_ICON_PACKS, SYSTEM_ORDER, TREBIRED_FRONTEND_CONFIG_PATH, defineTrebiredFrontendConfig, findTrebiredFrontendConfig, generateTrebiredFrontendScss, loadTrebiredFrontendConfig, normalizeTrebiredFrontendConfig, };
48
- export type { LoadedTrebiredFrontendConfig, LoadTrebiredFrontendConfigOptions, NormalizedTrebiredFrontendConfig, TrebiredFrontendConfig, TrebiredFrontendIconPack, TrebiredFrontendSystemKey, TrebiredFrontendThemeTokens, };
5
+ export { DEFAULT_TREBIRED_FRONTEND_CONFIG, SUPPORTED_ICON_PACKS, SYSTEM_ORDER, THEME_MODE_ATTRIBUTE, TREBIRED_FRONTEND_CONFIG_PATH, normalizeTrebiredFrontendConfig, } from "./normalize.js";
6
+ export { generateTrebiredFrontendScss } from "./scss.js";
7
+ export { collectConfigDependencies } from "./module.js";
8
+ export { defineTrebiredFrontendConfig, findTrebiredFrontendConfig, loadTrebiredFrontendConfig };
9
+ export type { LoadTrebiredFrontendConfigOptions, LoadedTrebiredFrontendConfig, NormalizedTrebiredFrontendConfig, NormalizedTrebiredFrontendThemeConfig, NormalizedTrebiredFrontendThemeMode, TrebiredFrontendConfig, TrebiredFrontendIconPack, TrebiredFrontendSystemKey, TrebiredFrontendThemeConfig, TrebiredFrontendThemeMode, TrebiredFrontendThemeModeScheme, TrebiredFrontendThemeTokens, } from "./types.js";
49
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAKA,KAAK,wBAAwB,GAAG,WAAW,GAAG,cAAc,CAAC;AAE7D,KAAK,yBAAyB,GAC1B,SAAS,GACT,OAAO,GACP,YAAY,GACZ,OAAO,GACP,QAAQ,GACR,OAAO,GACP,OAAO,GACP,SAAS,GACT,UAAU,GACV,OAAO,GACP,SAAS,CAAC;AAEd,KAAK,2BAA2B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3D,KAAK,sBAAsB,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;KAC7C,CAAC;IACF,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,MAAM,CAAC,EAAE,2BAA2B,CAAC;KACtC,CAAC;CACH,CAAC;AAEF,KAAK,gCAAgC,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,wBAAwB,EAAE,CAAC;KACnC,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;IACpD,KAAK,EAAE;QACL,YAAY,EAAE,OAAO,CAAC;QACtB,MAAM,EAAE,2BAA2B,CAAC;KACrC,CAAC;CACH,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAClC,MAAM,EAAE,gCAAgC,CAAC;IACzC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,iCAAiC,GAAG;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,QAAA,MAAM,6BAA6B,iCAAiC,CAAC;AAErE,QAAA,MAAM,oBAAoB,EAAE,wBAAwB,EAAkC,CAAC;AAEvF,QAAA,MAAM,YAAY,EAAE,yBAAyB,EAY5C,CAAC;AAcF,QAAA,MAAM,gCAAgC,EAAE,gCAWtC,CAAC;AAEH,iBAAS,4BAA4B,CAAC,CAAC,SAAS,sBAAsB,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAEpF;AAwFD,iBAAS,+BAA+B,CAAC,MAAM,GAAE,OAAY,GAAG,gCAAgC,CAgB/F;AA2CD,iBAAS,4BAA4B,CAAC,WAAW,EAAE,sBAAsB,GAAG,gCAAgC,GAAG,MAAM,CAsBpH;AAWD,iBAAe,0BAA0B,CACvC,QAAQ,GAAE,MAAsB,EAChC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASxB;AAkDD,iBAAe,0BAA0B,CACvC,WAAW,GAAE,MAAsB,EACnC,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,4BAA4B,CAAC,CA4BvC;AAED,OAAO,EACL,gCAAgC,EAChC,oBAAoB,EACpB,YAAY,EACZ,6BAA6B,EAC7B,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,+BAA+B,GAChC,CAAC;AACF,YAAY,EACV,4BAA4B,EAC5B,iCAAiC,EACjC,gCAAgC,EAChC,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,GAC5B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,iCAAiC,EACjC,4BAA4B,EAC5B,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,iBAAS,4BAA4B,CAAC,CAAC,SAAS,sBAAsB,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAEpF;AAED,iBAAe,0BAA0B,CACvC,QAAQ,GAAE,MAAsB,EAChC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASxB;AAYD,iBAAe,0BAA0B,CACvC,WAAW,GAAE,MAAsB,EACnC,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,4BAA4B,CAAC,CAyBvC;AAED,OAAO,EACL,gCAAgC,EAChC,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACpB,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,CAAC;AAChG,YAAY,EACV,iCAAiC,EACjC,4BAA4B,EAC5B,gCAAgC,EAChC,qCAAqC,EACrC,mCAAmC,EACnC,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,YAAY,CAAC"}