@trebired/frontend 0.4.2 → 1.0.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 +22 -0
- package/README.md +112 -80
- package/dist/config/index.d.ts +6 -45
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +19 -252
- 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 +9 -0
- package/dist/config/normalize.d.ts.map +1 -0
- package/dist/config/normalize.js +116 -0
- package/dist/config/normalize.js.map +1 -0
- package/dist/config/palette.d.ts +8 -0
- package/dist/config/palette.d.ts.map +1 -0
- package/dist/config/palette.js +104 -0
- package/dist/config/palette.js.map +1 -0
- package/dist/config/scales-css.d.ts +8 -0
- package/dist/config/scales-css.d.ts.map +1 -0
- package/dist/config/scales-css.js +99 -0
- package/dist/config/scales-css.js.map +1 -0
- package/dist/config/scales.d.ts +4 -0
- package/dist/config/scales.d.ts.map +1 -0
- package/dist/config/scales.js +55 -0
- package/dist/config/scales.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 +134 -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 +127 -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/fullscreen/components/index.d.ts +20 -0
- package/dist/fullscreen/components/index.d.ts.map +1 -0
- package/dist/fullscreen/components/index.js +19 -0
- package/dist/fullscreen/components/index.js.map +1 -0
- package/dist/fullscreen/index.d.ts +24 -3
- package/dist/fullscreen/index.d.ts.map +1 -1
- package/dist/fullscreen/index.js +268 -7
- package/dist/fullscreen/index.js.map +1 -1
- package/dist/fullscreen/styles/index.scss +71 -0
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/layout/components/index.d.ts +43 -0
- package/dist/layout/components/index.d.ts.map +1 -0
- package/dist/layout/components/index.js +53 -0
- package/dist/layout/components/index.js.map +1 -0
- package/dist/layout/index.d.ts +27 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +80 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/layout/styles/index.scss +137 -0
- package/dist/react/index.d.ts +14 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +14 -0
- package/dist/react/index.js.map +1 -1
- package/dist/server/index.d.ts +5 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +5 -0
- package/dist/server/index.js.map +1 -0
- package/dist/sidebar/components/index.d.ts +35 -0
- package/dist/sidebar/components/index.d.ts.map +1 -0
- package/dist/sidebar/components/index.js +49 -0
- package/dist/sidebar/components/index.js.map +1 -0
- package/dist/sidebar/index.d.ts +62 -0
- package/dist/sidebar/index.d.ts.map +1 -0
- package/dist/sidebar/index.js +247 -0
- package/dist/sidebar/index.js.map +1 -0
- package/dist/sidebar/styles/index.scss +205 -0
- package/dist/src/config/index.d.ts +6 -45
- package/dist/src/config/index.d.ts.map +1 -1
- package/dist/src/config/index.js +19 -252
- 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 +9 -0
- package/dist/src/config/normalize.d.ts.map +1 -0
- package/dist/src/config/normalize.js +116 -0
- package/dist/src/config/normalize.js.map +1 -0
- package/dist/src/config/palette.d.ts +8 -0
- package/dist/src/config/palette.d.ts.map +1 -0
- package/dist/src/config/palette.js +104 -0
- package/dist/src/config/palette.js.map +1 -0
- package/dist/src/config/scales-css.d.ts +8 -0
- package/dist/src/config/scales-css.d.ts.map +1 -0
- package/dist/src/config/scales-css.js +99 -0
- package/dist/src/config/scales-css.js.map +1 -0
- package/dist/src/config/scales.d.ts +4 -0
- package/dist/src/config/scales.d.ts.map +1 -0
- package/dist/src/config/scales.js +55 -0
- package/dist/src/config/scales.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 +134 -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 +127 -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/fullscreen/components/index.d.ts +20 -0
- package/dist/src/fullscreen/components/index.d.ts.map +1 -0
- package/dist/src/fullscreen/components/index.js +19 -0
- package/dist/src/fullscreen/components/index.js.map +1 -0
- package/dist/src/fullscreen/index.d.ts +24 -3
- package/dist/src/fullscreen/index.d.ts.map +1 -1
- package/dist/src/fullscreen/index.js +268 -7
- package/dist/src/fullscreen/index.js.map +1 -1
- package/dist/src/index.d.ts +7 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +9 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/layout/components/index.d.ts +43 -0
- package/dist/src/layout/components/index.d.ts.map +1 -0
- package/dist/src/layout/components/index.js +53 -0
- package/dist/src/layout/components/index.js.map +1 -0
- package/dist/src/layout/index.d.ts +27 -0
- package/dist/src/layout/index.d.ts.map +1 -0
- package/dist/src/layout/index.js +80 -0
- package/dist/src/layout/index.js.map +1 -0
- package/dist/src/react/index.d.ts +14 -0
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/react/index.js +14 -0
- package/dist/src/react/index.js.map +1 -1
- package/dist/src/server/index.d.ts +5 -0
- package/dist/src/server/index.d.ts.map +1 -0
- package/dist/src/server/index.js +5 -0
- package/dist/src/server/index.js.map +1 -0
- package/dist/src/sidebar/components/index.d.ts +35 -0
- package/dist/src/sidebar/components/index.d.ts.map +1 -0
- package/dist/src/sidebar/components/index.js +49 -0
- package/dist/src/sidebar/components/index.js.map +1 -0
- package/dist/src/sidebar/index.d.ts +62 -0
- package/dist/src/sidebar/index.d.ts.map +1 -0
- package/dist/src/sidebar/index.js +247 -0
- package/dist/src/sidebar/index.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/styles/utils.scss +193 -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 +4 -167
- package/dist/src/styles/index.d.ts +0 -3
- package/dist/src/styles/index.d.ts.map +0 -1
- package/dist/src/styles/index.js +0 -15
- package/dist/src/styles/index.js.map +0 -1
- package/dist/styles/index.d.ts +0 -3
- package/dist/styles/index.d.ts.map +0 -1
- package/dist/styles/index.js +0 -15
- package/dist/styles/index.js.map +0 -1
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { assertPlainObject, invalidConfig, normalizeBoolean } from "./shared.js";
|
|
2
|
+
function familyStepDeclarations(scale, suffix = "") {
|
|
3
|
+
const lines = [];
|
|
4
|
+
for (const family of Object.keys(scale).sort()) {
|
|
5
|
+
const steps = scale[family];
|
|
6
|
+
for (const step of Object.keys(steps).sort()) {
|
|
7
|
+
lines.push(` --${family}-${step}${suffix}: ${steps[step]};`);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
return lines;
|
|
11
|
+
}
|
|
12
|
+
function paletteModeScaleDeclarations(mode) {
|
|
13
|
+
return familyStepDeclarations(mode.scale);
|
|
14
|
+
}
|
|
15
|
+
function paletteSemanticDeclarations(config) {
|
|
16
|
+
return config.semantic.map((entry) => ` --${entry.name}: var(--${entry.family}-${entry.step});`);
|
|
17
|
+
}
|
|
18
|
+
function paletteSuffixedDeclarations(config) {
|
|
19
|
+
if (!config.suffixedVariants)
|
|
20
|
+
return [];
|
|
21
|
+
const lines = [];
|
|
22
|
+
for (const mode of config.modes) {
|
|
23
|
+
lines.push(...familyStepDeclarations(mode.scale, `-${mode.key}`));
|
|
24
|
+
}
|
|
25
|
+
return lines;
|
|
26
|
+
}
|
|
27
|
+
function findPaletteMode(config, modeKey) {
|
|
28
|
+
return config.modes.find((mode) => mode.key === modeKey);
|
|
29
|
+
}
|
|
30
|
+
const PALETTE_KEY_RE = /^[a-z0-9][a-z0-9_-]*$/iu;
|
|
31
|
+
const COLOR_VALUE_RE = /^[^"'<>]+$/u;
|
|
32
|
+
function normalizeColorValue(value, pathLabel) {
|
|
33
|
+
if (typeof value !== "string" || !value.trim() || !COLOR_VALUE_RE.test(value)) {
|
|
34
|
+
throw invalidConfig(`${pathLabel} must be a non-empty color value string`);
|
|
35
|
+
}
|
|
36
|
+
return value.trim();
|
|
37
|
+
}
|
|
38
|
+
function normalizePaletteKey(value, pathLabel) {
|
|
39
|
+
const key = String(value || "").trim();
|
|
40
|
+
if (!PALETTE_KEY_RE.test(key)) {
|
|
41
|
+
throw invalidConfig(`${pathLabel} must start with a letter or number and contain only letters, numbers, underscores, or hyphens`);
|
|
42
|
+
}
|
|
43
|
+
return key;
|
|
44
|
+
}
|
|
45
|
+
function normalizePaletteFamilies(value, pathLabel) {
|
|
46
|
+
const source = assertPlainObject(value, pathLabel);
|
|
47
|
+
const out = {};
|
|
48
|
+
for (const [family, stepsValue] of Object.entries(source).sort(([a], [b]) => a.localeCompare(b))) {
|
|
49
|
+
const familyKey = normalizePaletteKey(family, `${pathLabel}.${family}`);
|
|
50
|
+
const steps = assertPlainObject(stepsValue, `${pathLabel}.${family}`);
|
|
51
|
+
out[familyKey] = {};
|
|
52
|
+
for (const [step, color] of Object.entries(steps).sort(([a], [b]) => a.localeCompare(b))) {
|
|
53
|
+
const stepKey = normalizePaletteKey(step, `${pathLabel}.${family}.${step}`);
|
|
54
|
+
out[familyKey][stepKey] = normalizeColorValue(color, `${pathLabel}.${family}.${step}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return out;
|
|
58
|
+
}
|
|
59
|
+
function normalizePaletteMode(key, source, themeModeKeys) {
|
|
60
|
+
const modeKey = normalizePaletteKey(key, `palette.modes.${key}`);
|
|
61
|
+
if (!themeModeKeys.includes(modeKey)) {
|
|
62
|
+
throw invalidConfig(`palette.modes.${key} must name a mode declared in theme.modes`);
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
key: modeKey,
|
|
66
|
+
scale: normalizePaletteFamilies(source.scale, `palette.modes.${key}.scale`),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function normalizePaletteModes(value, themeModeKeys) {
|
|
70
|
+
if (value === undefined)
|
|
71
|
+
return [];
|
|
72
|
+
const source = assertPlainObject(value, "palette.modes");
|
|
73
|
+
const modes = [];
|
|
74
|
+
for (const [key, item] of Object.entries(source)) {
|
|
75
|
+
modes.push(normalizePaletteMode(key, assertPlainObject(item, `palette.modes.${key}`), themeModeKeys));
|
|
76
|
+
}
|
|
77
|
+
return modes;
|
|
78
|
+
}
|
|
79
|
+
function normalizePaletteSemantic(value) {
|
|
80
|
+
if (value === undefined)
|
|
81
|
+
return [];
|
|
82
|
+
const source = assertPlainObject(value, "palette.semantic");
|
|
83
|
+
const out = [];
|
|
84
|
+
for (const [name, refValue] of Object.entries(source).sort(([a], [b]) => a.localeCompare(b))) {
|
|
85
|
+
const pathLabel = `palette.semantic.${name}`;
|
|
86
|
+
const ref = assertPlainObject(refValue, pathLabel);
|
|
87
|
+
out.push({
|
|
88
|
+
family: normalizePaletteKey(String(ref.family || ""), `${pathLabel}.family`),
|
|
89
|
+
name: normalizePaletteKey(name, pathLabel),
|
|
90
|
+
step: normalizePaletteKey(String(ref.step || ""), `${pathLabel}.step`),
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return out;
|
|
94
|
+
}
|
|
95
|
+
function normalizePaletteConfig(value, themeModeKeys) {
|
|
96
|
+
const source = value === undefined ? {} : assertPlainObject(value, "palette");
|
|
97
|
+
return {
|
|
98
|
+
modes: normalizePaletteModes(source.modes, themeModeKeys),
|
|
99
|
+
semantic: normalizePaletteSemantic(source.semantic),
|
|
100
|
+
suffixedVariants: normalizeBoolean(source.suffixedVariants, true, "palette.suffixedVariants"),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
export { findPaletteMode, normalizePaletteConfig, paletteModeScaleDeclarations, paletteSemanticDeclarations, paletteSuffixedDeclarations, };
|
|
104
|
+
//# sourceMappingURL=palette.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"palette.js","sourceRoot":"","sources":["../../../src/config/palette.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { NormalizedTrebiredFrontendScalesConfig } from "./types.js";
|
|
2
|
+
type ScaleCss = {
|
|
3
|
+
body: string[];
|
|
4
|
+
vars: string[];
|
|
5
|
+
};
|
|
6
|
+
declare function renderScalesCss(config: NormalizedTrebiredFrontendScalesConfig): ScaleCss;
|
|
7
|
+
export { renderScalesCss };
|
|
8
|
+
//# sourceMappingURL=scales-css.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scales-css.d.ts","sourceRoot":"","sources":["../../../src/config/scales-css.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sCAAsC,EAGvC,MAAM,YAAY,CAAC;AAEpB,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAyHnD,iBAAS,eAAe,CAAC,MAAM,EAAE,sCAAsC,GAAG,QAAQ,CAejF;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
function stepEntries(steps) {
|
|
2
|
+
return Object.entries(steps).sort(([a], [b]) => a.localeCompare(b));
|
|
3
|
+
}
|
|
4
|
+
function renderSpacingScale(steps) {
|
|
5
|
+
const vars = stepEntries(steps).map(([step, v]) => ` --space-${step}: ${v}px;`);
|
|
6
|
+
return { body: [], vars };
|
|
7
|
+
}
|
|
8
|
+
function renderPaddingScale(steps) {
|
|
9
|
+
const sides = ["top", "right", "bottom", "left"];
|
|
10
|
+
const body = [];
|
|
11
|
+
for (const [step, v] of stepEntries(steps)) {
|
|
12
|
+
body.push(`@mixin padding-${step} { padding: ${v}px; }`, `.padding-${step} { @include padding-${step}; --scroll-min-padding-bottom: ${v}px; }`);
|
|
13
|
+
for (const side of sides) {
|
|
14
|
+
const extra = side === "bottom" ? ` --scroll-min-padding-bottom: ${v}px;` : "";
|
|
15
|
+
body.push(`.padding-${side}-${step} { padding-${side}: ${v}px;${extra} }`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
body.push(".padding-0 { padding: 0; }");
|
|
19
|
+
return { body, vars: [] };
|
|
20
|
+
}
|
|
21
|
+
function radiusValueMixin(name, value) {
|
|
22
|
+
return `@mixin ${name}($important: false) { @if $important { border-radius: ${value} !important; } @else { border-radius: ${value}; } }`;
|
|
23
|
+
}
|
|
24
|
+
function renderRadiusScale(steps) {
|
|
25
|
+
const vars = [];
|
|
26
|
+
const body = [];
|
|
27
|
+
for (const [step, v] of stepEntries(steps)) {
|
|
28
|
+
vars.push(` --radius-${step}: ${v}px;`);
|
|
29
|
+
body.push(radiusValueMixin(`radius-${step}`, `${v}px`), `.radius-${step} { @include radius-${step}(true); }`);
|
|
30
|
+
}
|
|
31
|
+
if (Object.prototype.hasOwnProperty.call(steps, "lg")) {
|
|
32
|
+
body.push(radiusValueMixin("radius-lg-plus", "calc(var(--radius-lg) + 6px)"));
|
|
33
|
+
}
|
|
34
|
+
if (Object.prototype.hasOwnProperty.call(steps, "sm")) {
|
|
35
|
+
body.push("@mixin radius-left-sm { border-top-left-radius: var(--radius-sm); border-bottom-left-radius: var(--radius-sm); }", "@mixin radius-right-sm { border-top-right-radius: var(--radius-sm); border-bottom-right-radius: var(--radius-sm); }");
|
|
36
|
+
}
|
|
37
|
+
body.push(radiusValueMixin("radius-2xs", "2px"), radiusValueMixin("radius-none", "0"), radiusValueMixin("radius-pill", "999px"), radiusValueMixin("radius-circle", "50%"), radiusValueMixin("radius-inherit", "inherit"));
|
|
38
|
+
return { body, vars };
|
|
39
|
+
}
|
|
40
|
+
function renderHeightScale(steps) {
|
|
41
|
+
const vars = [];
|
|
42
|
+
const body = [];
|
|
43
|
+
for (const [step, v] of stepEntries(steps)) {
|
|
44
|
+
vars.push(` --height-${step}: ${v}px;`);
|
|
45
|
+
body.push(`.height-${step} { height: var(--height-${step}) !important; }`, `.min-height-${step} { min-height: var(--height-${step}) !important; }`, `.max-height-${step} { max-height: var(--height-${step}) !important; }`);
|
|
46
|
+
}
|
|
47
|
+
if (Object.keys(steps).length) {
|
|
48
|
+
body.push(".height-max { height: 100% !important; }", ".min-height-max { min-height: 100% !important; }", ".max-height-max { max-height: 100% !important; }", ".height-fit { height: fit-content !important; }", ".min-height-fit { min-height: fit-content !important; }", ".max-height-fit { max-height: fit-content !important; }");
|
|
49
|
+
}
|
|
50
|
+
return { body, vars };
|
|
51
|
+
}
|
|
52
|
+
function renderWidthScale(steps) {
|
|
53
|
+
const body = stepEntries(steps).map(([step, v]) => `.width-${step} { width: min(100%, ${v}px) !important; }`);
|
|
54
|
+
return { body, vars: [] };
|
|
55
|
+
}
|
|
56
|
+
function renderTextSizeScale(steps) {
|
|
57
|
+
const body = stepEntries(steps).map(([step, v]) => `.text-${step} { font-size: ${v}px; }`);
|
|
58
|
+
return { body, vars: [] };
|
|
59
|
+
}
|
|
60
|
+
function renderLineHeightScale(steps) {
|
|
61
|
+
const body = [];
|
|
62
|
+
for (const [step, v] of stepEntries(steps)) {
|
|
63
|
+
body.push(`@mixin lh-${step} { line-height: ${v}; }`, `.lh-${step} { @include lh-${step}; }`);
|
|
64
|
+
}
|
|
65
|
+
return { body, vars: [] };
|
|
66
|
+
}
|
|
67
|
+
function renderZIndexScale(config) {
|
|
68
|
+
const vars = [];
|
|
69
|
+
const body = [];
|
|
70
|
+
for (const [step, v] of stepEntries(config.steps)) {
|
|
71
|
+
vars.push(` --z-index-${step}: ${v};`);
|
|
72
|
+
body.push(`.z-index-${step} { z-index: var(--z-index-${step}); }`);
|
|
73
|
+
}
|
|
74
|
+
if (config.layerRoot)
|
|
75
|
+
vars.push(` --z-layer-root: var(--z-index-${config.layerRoot});`);
|
|
76
|
+
if (config.progress)
|
|
77
|
+
vars.push(` --z-progress: var(--z-index-${config.progress});`);
|
|
78
|
+
if (config.confetti)
|
|
79
|
+
vars.push(` --z-confetti: var(--z-index-${config.confetti});`);
|
|
80
|
+
return { body, vars };
|
|
81
|
+
}
|
|
82
|
+
function renderScalesCss(config) {
|
|
83
|
+
const parts = [
|
|
84
|
+
renderSpacingScale(config.spacing),
|
|
85
|
+
renderPaddingScale(config.padding),
|
|
86
|
+
renderRadiusScale(config.radius),
|
|
87
|
+
renderHeightScale(config.height),
|
|
88
|
+
renderWidthScale(config.width),
|
|
89
|
+
renderTextSizeScale(config.textSize),
|
|
90
|
+
renderLineHeightScale(config.lineHeight),
|
|
91
|
+
renderZIndexScale(config.zIndex),
|
|
92
|
+
];
|
|
93
|
+
return {
|
|
94
|
+
body: parts.flatMap((part) => part.body),
|
|
95
|
+
vars: parts.flatMap((part) => part.vars),
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export { renderScalesCss };
|
|
99
|
+
//# sourceMappingURL=scales-css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scales-css.js","sourceRoot":"","sources":["../../../src/config/scales-css.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scales.d.ts","sourceRoot":"","sources":["../../../src/config/scales.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sCAAsC,EAGvC,MAAM,YAAY,CAAC;AA+CpB,iBAAS,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,sCAAsC,CAYrF;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { assertPlainObject, invalidConfig } from "./shared.js";
|
|
2
|
+
const SCALE_STEP_KEY_RE = /^[a-z0-9][a-z0-9_-]*$/iu;
|
|
3
|
+
function normalizeScaleSteps(value, pathLabel) {
|
|
4
|
+
if (value === undefined)
|
|
5
|
+
return {};
|
|
6
|
+
const source = assertPlainObject(value, pathLabel);
|
|
7
|
+
const out = {};
|
|
8
|
+
for (const [step, amount] of Object.entries(source).sort(([a], [b]) => a.localeCompare(b))) {
|
|
9
|
+
if (!SCALE_STEP_KEY_RE.test(step)) {
|
|
10
|
+
throw invalidConfig(`${pathLabel}.${step} has an invalid step key`);
|
|
11
|
+
}
|
|
12
|
+
if (typeof amount !== "number" || !Number.isFinite(amount)) {
|
|
13
|
+
throw invalidConfig(`${pathLabel}.${step} must be a finite number`);
|
|
14
|
+
}
|
|
15
|
+
out[step] = amount;
|
|
16
|
+
}
|
|
17
|
+
return out;
|
|
18
|
+
}
|
|
19
|
+
function normalizeZIndexRole(value, steps, pathLabel) {
|
|
20
|
+
if (value === undefined || value === "")
|
|
21
|
+
return "";
|
|
22
|
+
const key = String(value).trim();
|
|
23
|
+
if (!Object.prototype.hasOwnProperty.call(steps, key)) {
|
|
24
|
+
throw invalidConfig(`${pathLabel} must name a step declared in scales.zIndex.steps`);
|
|
25
|
+
}
|
|
26
|
+
return key;
|
|
27
|
+
}
|
|
28
|
+
function normalizeZIndexScale(value) {
|
|
29
|
+
if (value === undefined) {
|
|
30
|
+
return { confetti: "", layerRoot: "", progress: "", steps: {} };
|
|
31
|
+
}
|
|
32
|
+
const source = assertPlainObject(value, "scales.zIndex");
|
|
33
|
+
const steps = normalizeScaleSteps(source.steps, "scales.zIndex.steps");
|
|
34
|
+
return {
|
|
35
|
+
confetti: normalizeZIndexRole(source.confetti, steps, "scales.zIndex.confetti"),
|
|
36
|
+
layerRoot: normalizeZIndexRole(source.layerRoot, steps, "scales.zIndex.layerRoot"),
|
|
37
|
+
progress: normalizeZIndexRole(source.progress, steps, "scales.zIndex.progress"),
|
|
38
|
+
steps,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function normalizeScalesConfig(value) {
|
|
42
|
+
const source = value === undefined ? {} : assertPlainObject(value, "scales");
|
|
43
|
+
return {
|
|
44
|
+
height: normalizeScaleSteps(source.height, "scales.height"),
|
|
45
|
+
lineHeight: normalizeScaleSteps(source.lineHeight, "scales.lineHeight"),
|
|
46
|
+
padding: normalizeScaleSteps(source.padding, "scales.padding"),
|
|
47
|
+
radius: normalizeScaleSteps(source.radius, "scales.radius"),
|
|
48
|
+
spacing: normalizeScaleSteps(source.spacing, "scales.spacing"),
|
|
49
|
+
textSize: normalizeScaleSteps(source.textSize, "scales.textSize"),
|
|
50
|
+
width: normalizeScaleSteps(source.width, "scales.width"),
|
|
51
|
+
zIndex: normalizeZIndexScale(source.zIndex),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
export { normalizeScalesConfig };
|
|
55
|
+
//# sourceMappingURL=scales.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scales.js","sourceRoot":"","sources":["../../../src/config/scales.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":"AAiBA,OAAO,KAAK,EACV,gCAAgC,EAEhC,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AA2HpB,iBAAS,4BAA4B,CACnC,WAAW,EAAE,sBAAsB,GAAG,gCAAgC,GACrE,MAAM,CAgBR;AAED,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { cssComment, cssString } from "./shared.js";
|
|
4
|
+
import { SYSTEM_ORDER, THEME_MODE_ATTRIBUTE, normalizeTrebiredFrontendConfig, } from "./normalize.js";
|
|
5
|
+
import { findPaletteMode, paletteModeScaleDeclarations, paletteSemanticDeclarations, paletteSuffixedDeclarations, } from "./palette.js";
|
|
6
|
+
import { renderScalesCss } from "./scales-css.js";
|
|
7
|
+
import { flattenThemeTokens } from "./theme.js";
|
|
8
|
+
const SYSTEM_STYLE_FILES = {
|
|
9
|
+
actions: "actions/styles/index.scss",
|
|
10
|
+
flash: "flash/styles/index.scss",
|
|
11
|
+
icons: "icons/styles/index.scss",
|
|
12
|
+
inputs: "inputs/styles/index.scss",
|
|
13
|
+
layer: "layer/styles/index.scss",
|
|
14
|
+
layout: "layout/styles/index.scss",
|
|
15
|
+
modal: "modal/styles/index.scss",
|
|
16
|
+
popover: "popover/styles/index.scss",
|
|
17
|
+
progress: "progress/styles/index.scss",
|
|
18
|
+
sidebar: "sidebar/styles/index.scss",
|
|
19
|
+
tooltip: "tooltip/styles/index.scss",
|
|
20
|
+
fullscreen: "fullscreen/styles/index.scss",
|
|
21
|
+
};
|
|
22
|
+
function packageStylePath(relativePath) {
|
|
23
|
+
const configDir = path.dirname(fileURLToPath(import.meta.url));
|
|
24
|
+
return path.resolve(configDir, "..", relativePath).replace(/\\/gu, "/");
|
|
25
|
+
}
|
|
26
|
+
function packageStyleUse(relativePath) {
|
|
27
|
+
return `@use ${cssString(packageStylePath(relativePath))} as *;`;
|
|
28
|
+
}
|
|
29
|
+
function isNormalizedConfig(value) {
|
|
30
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
31
|
+
return false;
|
|
32
|
+
const config = value;
|
|
33
|
+
return Array.isArray(config.theme?.modes) && Array.isArray(config.palette?.modes);
|
|
34
|
+
}
|
|
35
|
+
function tokenDeclarations(prefix, tokens) {
|
|
36
|
+
return flattenThemeTokens(tokens).map(([key, value]) => ` --${prefix}-${key}: ${String(value)};`);
|
|
37
|
+
}
|
|
38
|
+
function rootDeclarations(config) {
|
|
39
|
+
const { modes, defaultMode } = config.theme;
|
|
40
|
+
return [
|
|
41
|
+
` --${config.prefix}-config-prefix: ${cssString(config.prefix)};`,
|
|
42
|
+
` --${config.prefix}-icon-endpoint: ${cssString(config.icons.endpoint)};`,
|
|
43
|
+
...(modes.length ? [` --${config.prefix}-theme-modes: ${cssString(modes.map((mode) => mode.key).join(" "))};`] : []),
|
|
44
|
+
...(defaultMode ? [` --${config.prefix}-theme-default: ${cssString(defaultMode)};`] : []),
|
|
45
|
+
...tokenDeclarations(config.prefix, config.theme.tokens),
|
|
46
|
+
...paletteSemanticDeclarations(config.palette),
|
|
47
|
+
...paletteSuffixedDeclarations(config.palette),
|
|
48
|
+
];
|
|
49
|
+
}
|
|
50
|
+
function modeDeclarations(config, mode) {
|
|
51
|
+
const paletteMode = findPaletteMode(config.palette, mode.key);
|
|
52
|
+
return [
|
|
53
|
+
` color-scheme: ${mode.scheme};`,
|
|
54
|
+
...tokenDeclarations(config.prefix, mode.tokens),
|
|
55
|
+
...(paletteMode ? paletteModeScaleDeclarations(paletteMode) : []),
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
function renderBlock(selector, declarations, indent = "") {
|
|
59
|
+
if (!declarations.length)
|
|
60
|
+
return [];
|
|
61
|
+
return [
|
|
62
|
+
`${indent}${selector} {`,
|
|
63
|
+
...declarations.map((line) => `${indent}${line}`),
|
|
64
|
+
`${indent}}`,
|
|
65
|
+
];
|
|
66
|
+
}
|
|
67
|
+
function renderModeBlocks(config) {
|
|
68
|
+
return config.theme.modes.flatMap((mode) => [
|
|
69
|
+
"",
|
|
70
|
+
`/* theme mode: ${cssComment(mode.key)} */`,
|
|
71
|
+
...renderBlock(`[${THEME_MODE_ATTRIBUTE}="${mode.key}"]`, modeDeclarations(config, mode)),
|
|
72
|
+
]);
|
|
73
|
+
}
|
|
74
|
+
function renderSystemPreferenceBlock(config, scheme) {
|
|
75
|
+
const key = scheme === "dark" ? config.theme.dark : config.theme.light;
|
|
76
|
+
const mode = config.theme.modes.find((item) => item.key === key);
|
|
77
|
+
if (!mode)
|
|
78
|
+
return [];
|
|
79
|
+
return [
|
|
80
|
+
"",
|
|
81
|
+
`@media (prefers-color-scheme: ${scheme}) {`,
|
|
82
|
+
...renderBlock(`:root:not([${THEME_MODE_ATTRIBUTE}])`, modeDeclarations(config, mode), " "),
|
|
83
|
+
"}",
|
|
84
|
+
];
|
|
85
|
+
}
|
|
86
|
+
function renderThemeCss(config) {
|
|
87
|
+
if (!config.theme.cssVariables)
|
|
88
|
+
return [];
|
|
89
|
+
return [
|
|
90
|
+
"",
|
|
91
|
+
...renderBlock(":root", rootDeclarations(config)),
|
|
92
|
+
...renderModeBlocks(config),
|
|
93
|
+
...renderSystemPreferenceBlock(config, "dark"),
|
|
94
|
+
...renderSystemPreferenceBlock(config, "light"),
|
|
95
|
+
];
|
|
96
|
+
}
|
|
97
|
+
function renderScalesRootBlock(vars) {
|
|
98
|
+
if (!vars.length)
|
|
99
|
+
return [];
|
|
100
|
+
return ["", ...renderBlock(":root", vars)];
|
|
101
|
+
}
|
|
102
|
+
function renderScalesBody(body) {
|
|
103
|
+
if (!body.length)
|
|
104
|
+
return [];
|
|
105
|
+
return ["", ...body];
|
|
106
|
+
}
|
|
107
|
+
function renderSystemImports(config) {
|
|
108
|
+
const lines = [];
|
|
109
|
+
for (const system of SYSTEM_ORDER) {
|
|
110
|
+
const stylePath = SYSTEM_STYLE_FILES[system];
|
|
111
|
+
if (stylePath && config.systems[system])
|
|
112
|
+
lines.push(packageStyleUse(stylePath));
|
|
113
|
+
}
|
|
114
|
+
return lines;
|
|
115
|
+
}
|
|
116
|
+
function generateTrebiredFrontendScss(configInput) {
|
|
117
|
+
const config = isNormalizedConfig(configInput)
|
|
118
|
+
? configInput
|
|
119
|
+
: normalizeTrebiredFrontendConfig(configInput);
|
|
120
|
+
const scalesCss = renderScalesCss(config.scales);
|
|
121
|
+
const lines = [
|
|
122
|
+
"/* Generated by @trebired/frontend. Do not edit directly. */",
|
|
123
|
+
`/* prefix: ${cssComment(config.prefix)} */`,
|
|
124
|
+
packageStyleUse("styles/tokens.scss"),
|
|
125
|
+
packageStyleUse("styles/utils.scss"),
|
|
126
|
+
...renderSystemImports(config),
|
|
127
|
+
...renderThemeCss(config),
|
|
128
|
+
...renderScalesRootBlock(scalesCss.vars),
|
|
129
|
+
...renderScalesBody(scalesCss.body),
|
|
130
|
+
];
|
|
131
|
+
return `${lines.join("\n")}\n`;
|
|
132
|
+
}
|
|
133
|
+
export { generateTrebiredFrontendScss };
|
|
134
|
+
//# 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"}
|