@trebired/frontend 0.4.1 → 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.
- package/CHANGELOG.md +13 -0
- package/README.md +61 -1
- package/dist/config/index.d.ts +6 -50
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +19 -266
- package/dist/config/index.js.map +1 -1
- package/dist/config/module.d.ts +5 -0
- package/dist/config/module.d.ts.map +1 -0
- package/dist/config/module.js +124 -0
- package/dist/config/module.js.map +1 -0
- package/dist/config/normalize.d.ts +10 -0
- package/dist/config/normalize.d.ts.map +1 -0
- package/dist/config/normalize.js +105 -0
- package/dist/config/normalize.js.map +1 -0
- package/dist/config/scss.d.ts +4 -0
- package/dist/config/scss.d.ts.map +1 -0
- package/dist/config/scss.js +84 -0
- package/dist/config/scss.js.map +1 -0
- package/dist/config/shared.d.ts +9 -0
- package/dist/config/shared.d.ts.map +1 -0
- package/dist/config/shared.js +27 -0
- package/dist/config/shared.js.map +1 -0
- package/dist/config/theme.d.ts +6 -0
- package/dist/config/theme.d.ts.map +1 -0
- package/dist/config/theme.js +133 -0
- package/dist/config/theme.js.map +1 -0
- package/dist/config/types.d.ts +62 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/src/config/index.d.ts +6 -50
- package/dist/src/config/index.d.ts.map +1 -1
- package/dist/src/config/index.js +19 -266
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/config/module.d.ts +5 -0
- package/dist/src/config/module.d.ts.map +1 -0
- package/dist/src/config/module.js +124 -0
- package/dist/src/config/module.js.map +1 -0
- package/dist/src/config/normalize.d.ts +10 -0
- package/dist/src/config/normalize.d.ts.map +1 -0
- package/dist/src/config/normalize.js +105 -0
- package/dist/src/config/normalize.js.map +1 -0
- package/dist/src/config/scss.d.ts +4 -0
- package/dist/src/config/scss.d.ts.map +1 -0
- package/dist/src/config/scss.js +84 -0
- package/dist/src/config/scss.js.map +1 -0
- package/dist/src/config/shared.d.ts +9 -0
- package/dist/src/config/shared.d.ts.map +1 -0
- package/dist/src/config/shared.js +27 -0
- package/dist/src/config/shared.js.map +1 -0
- package/dist/src/config/theme.d.ts +6 -0
- package/dist/src/config/theme.d.ts.map +1 -0
- package/dist/src/config/theme.js +133 -0
- package/dist/src/config/theme.js.map +1 -0
- package/dist/src/config/types.d.ts +62 -0
- package/dist/src/config/types.d.ts.map +1 -0
- package/dist/src/config/types.js +2 -0
- package/dist/src/config/types.js.map +1 -0
- package/dist/src/theme/apply.d.ts +26 -0
- package/dist/src/theme/apply.d.ts.map +1 -0
- package/dist/src/theme/apply.js +85 -0
- package/dist/src/theme/apply.js.map +1 -0
- package/dist/src/theme/boot.d.ts +4 -0
- package/dist/src/theme/boot.d.ts.map +1 -0
- package/dist/src/theme/boot.js +23 -0
- package/dist/src/theme/boot.js.map +1 -0
- package/dist/src/theme/components/index.d.ts +13 -5
- package/dist/src/theme/components/index.d.ts.map +1 -1
- package/dist/src/theme/components/index.js +22 -6
- package/dist/src/theme/components/index.js.map +1 -1
- package/dist/src/theme/constants.d.ts +12 -0
- package/dist/src/theme/constants.d.ts.map +1 -0
- package/dist/src/theme/constants.js +12 -0
- package/dist/src/theme/constants.js.map +1 -0
- package/dist/src/theme/controls.d.ts +15 -0
- package/dist/src/theme/controls.d.ts.map +1 -0
- package/dist/src/theme/controls.js +128 -0
- package/dist/src/theme/controls.js.map +1 -0
- package/dist/src/theme/index.d.ts +10 -24
- package/dist/src/theme/index.d.ts.map +1 -1
- package/dist/src/theme/index.js +15 -117
- package/dist/src/theme/index.js.map +1 -1
- package/dist/src/theme/modes.d.ts +36 -0
- package/dist/src/theme/modes.d.ts.map +1 -0
- package/dist/src/theme/modes.js +107 -0
- package/dist/src/theme/modes.js.map +1 -0
- package/dist/theme/apply.d.ts +26 -0
- package/dist/theme/apply.d.ts.map +1 -0
- package/dist/theme/apply.js +85 -0
- package/dist/theme/apply.js.map +1 -0
- package/dist/theme/boot.d.ts +4 -0
- package/dist/theme/boot.d.ts.map +1 -0
- package/dist/theme/boot.js +23 -0
- package/dist/theme/boot.js.map +1 -0
- package/dist/theme/components/index.d.ts +13 -5
- package/dist/theme/components/index.d.ts.map +1 -1
- package/dist/theme/components/index.js +22 -6
- package/dist/theme/components/index.js.map +1 -1
- package/dist/theme/constants.d.ts +12 -0
- package/dist/theme/constants.d.ts.map +1 -0
- package/dist/theme/constants.js +12 -0
- package/dist/theme/constants.js.map +1 -0
- package/dist/theme/controls.d.ts +15 -0
- package/dist/theme/controls.d.ts.map +1 -0
- package/dist/theme/controls.js +128 -0
- package/dist/theme/controls.js.map +1 -0
- package/dist/theme/index.d.ts +10 -24
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +15 -117
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/modes.d.ts +36 -0
- package/dist/theme/modes.d.ts.map +1 -0
- package/dist/theme/modes.js +107 -0
- package/dist/theme/modes.js.map +1 -0
- package/package.json +2 -2
package/dist/src/config/index.js
CHANGED
|
@@ -1,213 +1,10 @@
|
|
|
1
|
-
import crypto from "node:crypto";
|
|
2
|
-
import fs from "node:fs/promises";
|
|
3
1
|
import path from "node:path";
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const TREBIRED_FRONTEND_GENERATED_SCSS_PATH = `${TREBIRED_FRONTEND_GENERATED_DIR}/styles.scss`;
|
|
8
|
-
const SUPPORTED_ICON_PACKS = ["remixicon", "simple-icons"];
|
|
9
|
-
const SYSTEM_ORDER = [
|
|
10
|
-
"theme",
|
|
11
|
-
"layer",
|
|
12
|
-
"icons",
|
|
13
|
-
"progress",
|
|
14
|
-
"flash",
|
|
15
|
-
"tooltip",
|
|
16
|
-
"popover",
|
|
17
|
-
"modal",
|
|
18
|
-
"inputs",
|
|
19
|
-
"actions",
|
|
20
|
-
"fullscreen",
|
|
21
|
-
];
|
|
22
|
-
const SYSTEM_STYLE_IMPORTS = {
|
|
23
|
-
actions: "@trebired/frontend/actions/styles",
|
|
24
|
-
flash: "@trebired/frontend/flash/styles",
|
|
25
|
-
icons: "@trebired/frontend/icons/styles",
|
|
26
|
-
inputs: "@trebired/frontend/inputs/styles",
|
|
27
|
-
layer: "@trebired/frontend/layer/styles",
|
|
28
|
-
modal: "@trebired/frontend/modal/styles",
|
|
29
|
-
popover: "@trebired/frontend/popover/styles",
|
|
30
|
-
progress: "@trebired/frontend/progress/styles",
|
|
31
|
-
tooltip: "@trebired/frontend/tooltip/styles",
|
|
32
|
-
};
|
|
33
|
-
const DEFAULT_TREBIRED_FRONTEND_CONFIG = Object.freeze({
|
|
34
|
-
prefix: "tbf",
|
|
35
|
-
icons: Object.freeze({
|
|
36
|
-
endpoint: "/__icons/svg",
|
|
37
|
-
packs: Object.freeze([...SUPPORTED_ICON_PACKS]),
|
|
38
|
-
}),
|
|
39
|
-
systems: Object.freeze(Object.fromEntries(SYSTEM_ORDER.map((key) => [key, true]))),
|
|
40
|
-
theme: Object.freeze({
|
|
41
|
-
cssVariables: true,
|
|
42
|
-
tokens: Object.freeze({}),
|
|
43
|
-
}),
|
|
44
|
-
});
|
|
2
|
+
import { collectConfigDependencies, importConfigModule, pathExists } from "./module.js";
|
|
3
|
+
import { TREBIRED_FRONTEND_CONFIG_PATH, normalizeTrebiredFrontendConfig } from "./normalize.js";
|
|
4
|
+
import { generateTrebiredFrontendScss } from "./scss.js";
|
|
45
5
|
function defineTrebiredFrontendConfig(config) {
|
|
46
6
|
return config;
|
|
47
7
|
}
|
|
48
|
-
function isPlainObject(value) {
|
|
49
|
-
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
50
|
-
}
|
|
51
|
-
function assertPlainObject(value, pathLabel) {
|
|
52
|
-
if (!isPlainObject(value)) {
|
|
53
|
-
throw new Error(`trebired-frontend-invalid-config :: ${pathLabel} must be an object`);
|
|
54
|
-
}
|
|
55
|
-
return value;
|
|
56
|
-
}
|
|
57
|
-
function normalizePrefix(value) {
|
|
58
|
-
const prefix = String(value || DEFAULT_TREBIRED_FRONTEND_CONFIG.prefix).trim();
|
|
59
|
-
if (!/^[a-z][a-z0-9_-]*$/iu.test(prefix)) {
|
|
60
|
-
throw new Error("trebired-frontend-invalid-config :: prefix must start with a letter and contain only letters, numbers, underscores, or hyphens");
|
|
61
|
-
}
|
|
62
|
-
return prefix;
|
|
63
|
-
}
|
|
64
|
-
function normalizeEndpoint(value) {
|
|
65
|
-
const endpoint = String(value || DEFAULT_TREBIRED_FRONTEND_CONFIG.icons.endpoint).trim();
|
|
66
|
-
if (!endpoint || /[\s"'<>]/u.test(endpoint)) {
|
|
67
|
-
throw new Error("trebired-frontend-invalid-config :: icons.endpoint must be a URL path without whitespace");
|
|
68
|
-
}
|
|
69
|
-
return endpoint;
|
|
70
|
-
}
|
|
71
|
-
function normalizeIconPacks(value) {
|
|
72
|
-
const raw = value === undefined ? DEFAULT_TREBIRED_FRONTEND_CONFIG.icons.packs : value;
|
|
73
|
-
if (!Array.isArray(raw)) {
|
|
74
|
-
throw new Error("trebired-frontend-invalid-config :: icons.packs must be an array");
|
|
75
|
-
}
|
|
76
|
-
const packs = [];
|
|
77
|
-
for (const item of raw) {
|
|
78
|
-
if (!SUPPORTED_ICON_PACKS.includes(item)) {
|
|
79
|
-
throw new Error(`trebired-frontend-invalid-config :: unsupported icon pack ${String(item)}`);
|
|
80
|
-
}
|
|
81
|
-
if (!packs.includes(item))
|
|
82
|
-
packs.push(item);
|
|
83
|
-
}
|
|
84
|
-
return packs;
|
|
85
|
-
}
|
|
86
|
-
function normalizeSystems(value) {
|
|
87
|
-
if (value === undefined)
|
|
88
|
-
return { ...DEFAULT_TREBIRED_FRONTEND_CONFIG.systems };
|
|
89
|
-
const source = assertPlainObject(value, "systems");
|
|
90
|
-
const systems = { ...DEFAULT_TREBIRED_FRONTEND_CONFIG.systems };
|
|
91
|
-
for (const [key, enabled] of Object.entries(source)) {
|
|
92
|
-
if (!SYSTEM_ORDER.includes(key)) {
|
|
93
|
-
throw new Error(`trebired-frontend-invalid-config :: unsupported system ${key}`);
|
|
94
|
-
}
|
|
95
|
-
if (typeof enabled !== "boolean") {
|
|
96
|
-
throw new Error(`trebired-frontend-invalid-config :: systems.${key} must be boolean`);
|
|
97
|
-
}
|
|
98
|
-
systems[key] = enabled;
|
|
99
|
-
}
|
|
100
|
-
return systems;
|
|
101
|
-
}
|
|
102
|
-
function normalizeThemeTokens(value, pathLabel = "theme.tokens") {
|
|
103
|
-
if (value === undefined)
|
|
104
|
-
return {};
|
|
105
|
-
const source = assertPlainObject(value, pathLabel);
|
|
106
|
-
const out = {};
|
|
107
|
-
for (const [key, item] of Object.entries(source).sort(([a], [b]) => a.localeCompare(b))) {
|
|
108
|
-
if (!/^[a-z0-9_-]+$/iu.test(key)) {
|
|
109
|
-
throw new Error(`trebired-frontend-invalid-config :: ${pathLabel}.${key} has an invalid token key`);
|
|
110
|
-
}
|
|
111
|
-
if (isPlainObject(item)) {
|
|
112
|
-
out[key] = normalizeThemeTokens(item, `${pathLabel}.${key}`);
|
|
113
|
-
continue;
|
|
114
|
-
}
|
|
115
|
-
if (typeof item !== "string" && typeof item !== "number") {
|
|
116
|
-
throw new Error(`trebired-frontend-invalid-config :: ${pathLabel}.${key} must be a string, number, or token object`);
|
|
117
|
-
}
|
|
118
|
-
out[key] = item;
|
|
119
|
-
}
|
|
120
|
-
return out;
|
|
121
|
-
}
|
|
122
|
-
function normalizeBoolean(value, defaultValue, pathLabel) {
|
|
123
|
-
if (value === undefined)
|
|
124
|
-
return defaultValue;
|
|
125
|
-
if (typeof value !== "boolean") {
|
|
126
|
-
throw new Error(`trebired-frontend-invalid-config :: ${pathLabel} must be boolean`);
|
|
127
|
-
}
|
|
128
|
-
return value;
|
|
129
|
-
}
|
|
130
|
-
function normalizeTrebiredFrontendConfig(config = {}) {
|
|
131
|
-
const source = assertPlainObject(config, "config");
|
|
132
|
-
const icons = source.icons === undefined ? {} : assertPlainObject(source.icons, "icons");
|
|
133
|
-
const theme = source.theme === undefined ? {} : assertPlainObject(source.theme, "theme");
|
|
134
|
-
return {
|
|
135
|
-
prefix: normalizePrefix(source.prefix),
|
|
136
|
-
icons: {
|
|
137
|
-
endpoint: normalizeEndpoint(icons.endpoint),
|
|
138
|
-
packs: normalizeIconPacks(icons.packs),
|
|
139
|
-
},
|
|
140
|
-
systems: normalizeSystems(source.systems),
|
|
141
|
-
theme: {
|
|
142
|
-
cssVariables: normalizeBoolean(theme.cssVariables, true, "theme.cssVariables"),
|
|
143
|
-
tokens: normalizeThemeTokens(theme.tokens),
|
|
144
|
-
},
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
function cssString(value) {
|
|
148
|
-
return JSON.stringify(String(value ?? ""));
|
|
149
|
-
}
|
|
150
|
-
function cssComment(value) {
|
|
151
|
-
return String(value || "").replace(/\*\//gu, "* /");
|
|
152
|
-
}
|
|
153
|
-
function flattenThemeTokens(tokens, prefix = []) {
|
|
154
|
-
const out = [];
|
|
155
|
-
for (const [key, value] of Object.entries(tokens).sort(([a], [b]) => a.localeCompare(b))) {
|
|
156
|
-
if (isPlainObject(value)) {
|
|
157
|
-
out.push(...flattenThemeTokens(value, [...prefix, key]));
|
|
158
|
-
continue;
|
|
159
|
-
}
|
|
160
|
-
if (typeof value === "string" || typeof value === "number") {
|
|
161
|
-
out.push([[...prefix, key].join("-"), value]);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
return out;
|
|
165
|
-
}
|
|
166
|
-
function renderCssVariables(config) {
|
|
167
|
-
if (!config.theme.cssVariables)
|
|
168
|
-
return [];
|
|
169
|
-
const declarations = [
|
|
170
|
-
` --${config.prefix}-config-prefix: ${cssString(config.prefix)};`,
|
|
171
|
-
` --${config.prefix}-icon-endpoint: ${cssString(config.icons.endpoint)};`,
|
|
172
|
-
...flattenThemeTokens(config.theme.tokens).map(([key, value]) => {
|
|
173
|
-
return ` --${config.prefix}-${key}: ${String(value)};`;
|
|
174
|
-
}),
|
|
175
|
-
];
|
|
176
|
-
return [
|
|
177
|
-
":root {",
|
|
178
|
-
...declarations,
|
|
179
|
-
"}",
|
|
180
|
-
];
|
|
181
|
-
}
|
|
182
|
-
function generateTrebiredFrontendScss(configInput) {
|
|
183
|
-
const config = normalizeTrebiredFrontendConfig(configInput);
|
|
184
|
-
const lines = [
|
|
185
|
-
"/* Generated by @trebired/frontend. Do not edit directly. */",
|
|
186
|
-
`/* prefix: ${cssComment(config.prefix)} */`,
|
|
187
|
-
'@use "@trebired/frontend/styles/tokens" as *;',
|
|
188
|
-
'@use "@trebired/frontend/styles/utils" as *;',
|
|
189
|
-
];
|
|
190
|
-
for (const system of SYSTEM_ORDER) {
|
|
191
|
-
const importPath = SYSTEM_STYLE_IMPORTS[system];
|
|
192
|
-
if (importPath && config.systems[system]) {
|
|
193
|
-
lines.push(`@use ${cssString(importPath)} as *;`);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
const variables = renderCssVariables(config);
|
|
197
|
-
if (variables.length) {
|
|
198
|
-
lines.push("", ...variables);
|
|
199
|
-
}
|
|
200
|
-
return `${lines.join("\n")}\n`;
|
|
201
|
-
}
|
|
202
|
-
async function pathExists(filePath) {
|
|
203
|
-
try {
|
|
204
|
-
await fs.access(filePath);
|
|
205
|
-
return true;
|
|
206
|
-
}
|
|
207
|
-
catch {
|
|
208
|
-
return false;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
8
|
async function findTrebiredFrontendConfig(startDir = process.cwd(), boundaryDir) {
|
|
212
9
|
const boundary = path.resolve(boundaryDir || path.parse(path.resolve(startDir)).root);
|
|
213
10
|
let current = path.resolve(startDir);
|
|
@@ -220,46 +17,14 @@ async function findTrebiredFrontendConfig(startDir = process.cwd(), boundaryDir)
|
|
|
220
17
|
current = path.dirname(current);
|
|
221
18
|
}
|
|
222
19
|
}
|
|
223
|
-
function
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
}
|
|
231
|
-
async function buildConfigModuleToUrl(projectRoot, filePath) {
|
|
232
|
-
if (typeof Bun === "undefined" || typeof Bun.build !== "function") {
|
|
233
|
-
const url = pathToFileURL(filePath);
|
|
234
|
-
url.searchParams.set("mtime", String((await fs.stat(filePath)).mtimeMs));
|
|
235
|
-
return url.href;
|
|
236
|
-
}
|
|
237
|
-
const sourceText = await fs.readFile(filePath, "utf8");
|
|
238
|
-
const digest = createConfigBuildHash(filePath, sourceText);
|
|
239
|
-
const outputDir = path.join(projectRoot, "node_modules", ".cache", "trebired-frontend", "config", digest);
|
|
240
|
-
const basename = path.basename(filePath, path.extname(filePath)).replace(/[^\w.-]/gu, "_") || "config";
|
|
241
|
-
const outputPath = path.join(outputDir, `${basename}.js`);
|
|
242
|
-
if (!await pathExists(outputPath)) {
|
|
243
|
-
await fs.mkdir(outputDir, { recursive: true });
|
|
244
|
-
const result = await Bun.build({
|
|
245
|
-
entrypoints: [filePath],
|
|
246
|
-
external: ["@trebired/frontend", "@trebired/frontend/*"],
|
|
247
|
-
format: "esm",
|
|
248
|
-
naming: `${basename}.js`,
|
|
249
|
-
outdir: outputDir,
|
|
250
|
-
packages: "external",
|
|
251
|
-
target: "bun",
|
|
252
|
-
});
|
|
253
|
-
if (!result.success) {
|
|
254
|
-
const message = result.logs.map((log) => log.message).filter(Boolean).join("\n");
|
|
255
|
-
throw new Error(`trebired-frontend-invalid-config :: failed to compile ${filePath}${message ? `\n${message}` : ""}`);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
return pathToFileURL(outputPath).href;
|
|
259
|
-
}
|
|
260
|
-
async function importConfigModule(projectRoot, filePath) {
|
|
261
|
-
const imported = await import(await buildConfigModuleToUrl(projectRoot, filePath));
|
|
262
|
-
return imported.default;
|
|
20
|
+
function createDefaultLoadedConfig() {
|
|
21
|
+
const config = normalizeTrebiredFrontendConfig({});
|
|
22
|
+
return {
|
|
23
|
+
config,
|
|
24
|
+
configPath: null,
|
|
25
|
+
dependencies: [],
|
|
26
|
+
generatedScss: generateTrebiredFrontendScss(config),
|
|
27
|
+
};
|
|
263
28
|
}
|
|
264
29
|
async function loadTrebiredFrontendConfig(projectRoot = process.cwd(), options = {}) {
|
|
265
30
|
const root = path.resolve(projectRoot);
|
|
@@ -270,34 +35,22 @@ async function loadTrebiredFrontendConfig(projectRoot = process.cwd(), options =
|
|
|
270
35
|
if (options.defaultIfMissing === false) {
|
|
271
36
|
throw new Error(`trebired-frontend-config-not-found :: ${TREBIRED_FRONTEND_CONFIG_PATH}`);
|
|
272
37
|
}
|
|
273
|
-
|
|
274
|
-
return {
|
|
275
|
-
config,
|
|
276
|
-
configPath: null,
|
|
277
|
-
generatedScss: generateTrebiredFrontendScss(config),
|
|
278
|
-
generatedScssPath: resolveTrebiredFrontendGeneratedScssPath(root),
|
|
279
|
-
};
|
|
38
|
+
return createDefaultLoadedConfig();
|
|
280
39
|
}
|
|
281
40
|
if (!await pathExists(resolvedPath)) {
|
|
282
41
|
throw new Error(`trebired-frontend-config-not-found :: ${resolvedPath}`);
|
|
283
42
|
}
|
|
284
|
-
const
|
|
43
|
+
const dependencies = await collectConfigDependencies(resolvedPath);
|
|
44
|
+
const config = normalizeTrebiredFrontendConfig(await importConfigModule(root, resolvedPath, dependencies));
|
|
285
45
|
return {
|
|
286
46
|
config,
|
|
287
47
|
configPath: resolvedPath,
|
|
48
|
+
dependencies,
|
|
288
49
|
generatedScss: generateTrebiredFrontendScss(config),
|
|
289
|
-
generatedScssPath: resolveTrebiredFrontendGeneratedScssPath(root),
|
|
290
50
|
};
|
|
291
51
|
}
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
const filePath = resolveTrebiredFrontendGeneratedScssPath(projectRoot);
|
|
297
|
-
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
298
|
-
const scss = generateTrebiredFrontendScss(config);
|
|
299
|
-
await fs.writeFile(filePath, scss, "utf8");
|
|
300
|
-
return filePath;
|
|
301
|
-
}
|
|
302
|
-
export { DEFAULT_TREBIRED_FRONTEND_CONFIG, SUPPORTED_ICON_PACKS, SYSTEM_ORDER, TREBIRED_FRONTEND_CONFIG_PATH, TREBIRED_FRONTEND_GENERATED_DIR, TREBIRED_FRONTEND_GENERATED_SCSS_PATH, defineTrebiredFrontendConfig, findTrebiredFrontendConfig, generateTrebiredFrontendScss, loadTrebiredFrontendConfig, normalizeTrebiredFrontendConfig, resolveTrebiredFrontendGeneratedScssPath, writeGeneratedTrebiredFrontendScss, };
|
|
52
|
+
export { DEFAULT_TREBIRED_FRONTEND_CONFIG, SUPPORTED_ICON_PACKS, SYSTEM_ORDER, THEME_MODE_ATTRIBUTE, TREBIRED_FRONTEND_CONFIG_PATH, normalizeTrebiredFrontendConfig, } from "./normalize.js";
|
|
53
|
+
export { generateTrebiredFrontendScss } from "./scss.js";
|
|
54
|
+
export { collectConfigDependencies } from "./module.js";
|
|
55
|
+
export { defineTrebiredFrontendConfig, findTrebiredFrontendConfig, loadTrebiredFrontendConfig };
|
|
303
56
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA0DzC,MAAM,6BAA6B,GAAG,8BAA8B,CAAC;AACrE,MAAM,+BAA+B,GAAG,8BAA8B,CAAC;AACvE,MAAM,qCAAqC,GAAG,GAAG,+BAA+B,cAAc,CAAC;AAE/F,MAAM,oBAAoB,GAA+B,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AAEvF,MAAM,YAAY,GAAgC;IAChD,OAAO;IACP,OAAO;IACP,OAAO;IACP,UAAU;IACV,OAAO;IACP,SAAS;IACT,SAAS;IACT,OAAO;IACP,QAAQ;IACR,SAAS;IACT,YAAY;CACb,CAAC;AAEF,MAAM,oBAAoB,GAAuD;IAC/E,OAAO,EAAE,mCAAmC;IAC5C,KAAK,EAAE,iCAAiC;IACxC,KAAK,EAAE,iCAAiC;IACxC,MAAM,EAAE,kCAAkC;IAC1C,KAAK,EAAE,iCAAiC;IACxC,KAAK,EAAE,iCAAiC;IACxC,OAAO,EAAE,mCAAmC;IAC5C,QAAQ,EAAE,oCAAoC;IAC9C,OAAO,EAAE,mCAAmC;CAC7C,CAAC;AAEF,MAAM,gCAAgC,GAAqC,MAAM,CAAC,MAAM,CAAC;IACvF,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACnB,QAAQ,EAAE,cAAc;QACxB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAA+B;KAC9E,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAA+C;IAChI,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACnB,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;KAC1B,CAAC;CACH,CAAC,CAAC;AAEH,SAAS,4BAA4B,CAAmC,MAAS;IAC/E,OAAO,MAAM,CAAC;AAChB,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,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,oBAAoB,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,gCAAgC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/E,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,gIAAgI,CAAC,CAAC;IACpJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,gCAAgC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IACzF,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC;IAC9G,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,MAAM,GAAG,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,gCAAgC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACvF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,KAAK,GAA+B,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAgC,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,6DAA6D,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAgC,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,IAAgC,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,GAAG,gCAAgC,CAAC,OAAO,EAAE,CAAC;IAChF,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,EAAE,GAAG,gCAAgC,CAAC,OAAO,EAAE,CAAC;IAChE,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAgC,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,0DAA0D,GAAG,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,+CAA+C,GAAG,kBAAkB,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,CAAC,GAAgC,CAAC,GAAG,OAAO,CAAC;IACtD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,SAAS,GAAG,cAAc;IACtE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,GAAG,GAAgC,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,IAAI,GAAG,2BAA2B,CAAC,CAAC;QACtG,CAAC;QACD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,IAAI,EAAE,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC;YAC7D,SAAS;QACX,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,IAAI,GAAG,4CAA4C,CAAC,CAAC;QACvH,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,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,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,kBAAkB,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,+BAA+B,CAAC,SAAkB,EAAE;IAC3D,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzF,OAAO;QACL,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;QACtC,KAAK,EAAE;YACL,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC3C,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC;SACvC;QACD,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;QACzC,KAAK,EAAE;YACL,YAAY,EAAE,gBAAgB,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,oBAAoB,CAAC;YAC9E,MAAM,EAAE,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC;SAC3C;KACF,CAAC;AACJ,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,SAAS,kBAAkB,CACzB,MAAmC,EACnC,SAAmB,EAAE;IAErB,MAAM,GAAG,GAAqC,EAAE,CAAC;IACjD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YACzD,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC3D,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAwC;IAClE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY;QAAE,OAAO,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAG;QACnB,OAAO,MAAM,CAAC,MAAM,mBAAmB,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG;QAClE,OAAO,MAAM,CAAC,MAAM,mBAAmB,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG;QAC1E,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC9D,OAAO,OAAO,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QAC1D,CAAC,CAAC;KACH,CAAC;IACF,OAAO;QACL,SAAS;QACT,GAAG,YAAY;QACf,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,WAAsE;IAC1G,MAAM,MAAM,GAAG,+BAA+B,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG;QACZ,8DAA8D;QAC9D,cAAc,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;QAC5C,+CAA+C;QAC/C,8CAA8C;KAC/C,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,QAAQ,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,WAAmB,OAAO,CAAC,GAAG,EAAE,EAChC,WAAoB;IAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtF,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC,SAAS,CAAC;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;QACpE,IAAI,MAAM,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAClD,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB,EAAE,UAAkB;IACjE,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;SAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC9B,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,UAAU,CAAC;SAClB,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,WAAmB,EAAE,QAAgB;IACzE,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QAClE,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACzE,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1G,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC;IACvG,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC;IAE1D,IAAI,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC;YAC7B,WAAW,EAAE,CAAC,QAAQ,CAAC;YACvB,QAAQ,EAAE,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;YACxD,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,GAAG,QAAQ,KAAK;YACxB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjF,MAAM,IAAI,KAAK,CAAC,yDAAyD,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvH,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,WAAmB,EAAE,QAAgB;IACrE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,sBAAsB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnF,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,cAAsB,OAAO,CAAC,GAAG,EAAE,EACnC,UAA6C,EAAE;IAE/C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU;QACrC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC;QACxC,CAAC,CAAC,MAAM,0BAA0B,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;IAEjE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,yCAAyC,6BAA6B,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,MAAM,GAAG,+BAA+B,CAAC,EAAE,CAAC,CAAC;QACnD,OAAO;YACL,MAAM;YACN,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,4BAA4B,CAAC,MAAM,CAAC;YACnD,iBAAiB,EAAE,wCAAwC,CAAC,IAAI,CAAC;SAClE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,YAAY,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,MAAM,GAAG,+BAA+B,CAAC,MAAM,kBAAkB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7F,OAAO;QACL,MAAM;QACN,UAAU,EAAE,YAAY;QACxB,aAAa,EAAE,4BAA4B,CAAC,MAAM,CAAC;QACnD,iBAAiB,EAAE,wCAAwC,CAAC,IAAI,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,SAAS,wCAAwC,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IACnF,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,qCAAqC,CAAC,CAAC;AAC1E,CAAC;AAED,KAAK,UAAU,kCAAkC,CAC/C,WAAmB,EACnB,MAAiE;IAEjE,MAAM,QAAQ,GAAG,wCAAwC,CAAC,WAAW,CAAC,CAAC;IACvE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,OAAO,EACL,gCAAgC,EAChC,oBAAoB,EACpB,YAAY,EACZ,6BAA6B,EAC7B,+BAA+B,EAC/B,qCAAqC,EACrC,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,+BAA+B,EAC/B,wCAAwC,EACxC,kCAAkC,GACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare function pathExists(filePath: string): Promise<boolean>;
|
|
2
|
+
declare function collectConfigDependencies(entryPath: string): Promise<string[]>;
|
|
3
|
+
declare function importConfigModule(projectRoot: string, filePath: string, dependencies: string[]): Promise<unknown>;
|
|
4
|
+
export { collectConfigDependencies, importConfigModule, pathExists };
|
|
5
|
+
//# sourceMappingURL=module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/config/module.ts"],"names":[],"mappings":"AAcA,iBAAe,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO5D;AAqCD,iBAAe,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAe7E;AAwDD,iBAAe,kBAAkB,CAC/B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import crypto from "node:crypto";
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { pathToFileURL } from "node:url";
|
|
5
|
+
import { invalidConfig } from "./shared.js";
|
|
6
|
+
const CONFIG_DEPENDENCY_EXTENSIONS = [".ts", ".tsx", ".mts", ".cts", ".js", ".jsx", ".mjs", ".cjs", ".json"];
|
|
7
|
+
const IMPORT_FROM_RE = /\bimport\s+(?:type\s+)?(?:[\w*\s{},]+?)\s+from\s+["']([^"']+)["']/gu;
|
|
8
|
+
const IMPORT_SIDE_EFFECT_RE = /\bimport\s+["']([^"']+)["']/gu;
|
|
9
|
+
const EXPORT_FROM_RE = /\bexport\s+(?:type\s+)?(?:[\w*\s{},]+?)\s+from\s+["']([^"']+)["']/gu;
|
|
10
|
+
const DYNAMIC_IMPORT_RE = /\bimport\s*\(\s*["']([^"']+)["']\s*\)/gu;
|
|
11
|
+
const RELATIVE_SPECIFIER_PATTERNS = [IMPORT_FROM_RE, IMPORT_SIDE_EFFECT_RE, EXPORT_FROM_RE, DYNAMIC_IMPORT_RE];
|
|
12
|
+
async function pathExists(filePath) {
|
|
13
|
+
try {
|
|
14
|
+
await fs.access(filePath);
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
async function isFile(filePath) {
|
|
22
|
+
try {
|
|
23
|
+
return (await fs.stat(filePath)).isFile();
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function collectRelativeSpecifiers(source) {
|
|
30
|
+
const specifiers = new Set();
|
|
31
|
+
for (const pattern of RELATIVE_SPECIFIER_PATTERNS) {
|
|
32
|
+
pattern.lastIndex = 0;
|
|
33
|
+
let match = null;
|
|
34
|
+
while ((match = pattern.exec(source))) {
|
|
35
|
+
const specifier = String(match[1] || "").trim();
|
|
36
|
+
if (specifier.startsWith("./") || specifier.startsWith("../"))
|
|
37
|
+
specifiers.add(specifier);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return [...specifiers];
|
|
41
|
+
}
|
|
42
|
+
async function resolveDependencyPath(fromFile, specifier) {
|
|
43
|
+
const base = path.resolve(path.dirname(fromFile), specifier);
|
|
44
|
+
const withoutJsExtension = base.replace(/\.(js|jsx|mjs|cjs)$/u, "");
|
|
45
|
+
const candidates = [
|
|
46
|
+
base,
|
|
47
|
+
...CONFIG_DEPENDENCY_EXTENSIONS.map((extension) => `${withoutJsExtension}${extension}`),
|
|
48
|
+
...CONFIG_DEPENDENCY_EXTENSIONS.map((extension) => path.join(base, `index${extension}`)),
|
|
49
|
+
];
|
|
50
|
+
for (const candidate of candidates) {
|
|
51
|
+
if (await isFile(candidate))
|
|
52
|
+
return path.resolve(candidate);
|
|
53
|
+
}
|
|
54
|
+
return "";
|
|
55
|
+
}
|
|
56
|
+
async function collectConfigDependencies(entryPath) {
|
|
57
|
+
const visited = new Set();
|
|
58
|
+
const pending = [path.resolve(entryPath)];
|
|
59
|
+
while (pending.length) {
|
|
60
|
+
const current = pending.pop();
|
|
61
|
+
if (visited.has(current) || !await isFile(current))
|
|
62
|
+
continue;
|
|
63
|
+
visited.add(current);
|
|
64
|
+
if (current.endsWith(".json"))
|
|
65
|
+
continue;
|
|
66
|
+
const source = await fs.readFile(current, "utf8");
|
|
67
|
+
for (const specifier of collectRelativeSpecifiers(source)) {
|
|
68
|
+
const resolved = await resolveDependencyPath(current, specifier);
|
|
69
|
+
if (resolved && !visited.has(resolved))
|
|
70
|
+
pending.push(resolved);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return [...visited].sort((a, b) => a.localeCompare(b));
|
|
74
|
+
}
|
|
75
|
+
async function createConfigBuildHash(dependencies) {
|
|
76
|
+
const hash = crypto.createHash("sha256");
|
|
77
|
+
for (const dependency of dependencies) {
|
|
78
|
+
hash.update(path.resolve(dependency)).update("\0").update(await fs.readFile(dependency, "utf8")).update("\0");
|
|
79
|
+
}
|
|
80
|
+
return hash.digest("hex").slice(0, 16);
|
|
81
|
+
}
|
|
82
|
+
async function buildConfigModuleToUrl(projectRoot, filePath, dependencies) {
|
|
83
|
+
if (typeof Bun === "undefined" || typeof Bun.build !== "function") {
|
|
84
|
+
const url = pathToFileURL(filePath);
|
|
85
|
+
url.searchParams.set("mtime", String(await newestDependencyMtime(dependencies)));
|
|
86
|
+
return url.href;
|
|
87
|
+
}
|
|
88
|
+
const digest = await createConfigBuildHash(dependencies);
|
|
89
|
+
const outputDir = path.join(projectRoot, "node_modules", ".cache", "trebired-frontend", "config", digest);
|
|
90
|
+
const basename = path.basename(filePath, path.extname(filePath)).replace(/[^\w.-]/gu, "_") || "config";
|
|
91
|
+
const outputPath = path.join(outputDir, `${basename}.js`);
|
|
92
|
+
if (!await pathExists(outputPath)) {
|
|
93
|
+
await fs.mkdir(outputDir, { recursive: true });
|
|
94
|
+
const result = await Bun.build({
|
|
95
|
+
entrypoints: [filePath],
|
|
96
|
+
external: ["@trebired/frontend", "@trebired/frontend/*"],
|
|
97
|
+
format: "esm",
|
|
98
|
+
naming: `${basename}.js`,
|
|
99
|
+
outdir: outputDir,
|
|
100
|
+
packages: "external",
|
|
101
|
+
target: "bun",
|
|
102
|
+
});
|
|
103
|
+
if (!result.success) {
|
|
104
|
+
const message = result.logs.map((log) => log.message).filter(Boolean).join("\n");
|
|
105
|
+
throw invalidConfig(`failed to compile ${filePath}${message ? `\n${message}` : ""}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return pathToFileURL(outputPath).href;
|
|
109
|
+
}
|
|
110
|
+
async function newestDependencyMtime(dependencies) {
|
|
111
|
+
let newest = 0;
|
|
112
|
+
for (const dependency of dependencies) {
|
|
113
|
+
const stats = await fs.stat(dependency);
|
|
114
|
+
if (stats.mtimeMs > newest)
|
|
115
|
+
newest = stats.mtimeMs;
|
|
116
|
+
}
|
|
117
|
+
return newest;
|
|
118
|
+
}
|
|
119
|
+
async function importConfigModule(projectRoot, filePath, dependencies) {
|
|
120
|
+
const imported = await import(await buildConfigModuleToUrl(projectRoot, filePath, dependencies));
|
|
121
|
+
return imported.default;
|
|
122
|
+
}
|
|
123
|
+
export { collectConfigDependencies, importConfigModule, pathExists };
|
|
124
|
+
//# sourceMappingURL=module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/config/module.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|