@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.
Files changed (223) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +112 -80
  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 +9 -0
  12. package/dist/config/normalize.d.ts.map +1 -0
  13. package/dist/config/normalize.js +116 -0
  14. package/dist/config/normalize.js.map +1 -0
  15. package/dist/config/palette.d.ts +8 -0
  16. package/dist/config/palette.d.ts.map +1 -0
  17. package/dist/config/palette.js +104 -0
  18. package/dist/config/palette.js.map +1 -0
  19. package/dist/config/scales-css.d.ts +8 -0
  20. package/dist/config/scales-css.d.ts.map +1 -0
  21. package/dist/config/scales-css.js +99 -0
  22. package/dist/config/scales-css.js.map +1 -0
  23. package/dist/config/scales.d.ts +4 -0
  24. package/dist/config/scales.d.ts.map +1 -0
  25. package/dist/config/scales.js +55 -0
  26. package/dist/config/scales.js.map +1 -0
  27. package/dist/config/scss.d.ts +4 -0
  28. package/dist/config/scss.d.ts.map +1 -0
  29. package/dist/config/scss.js +134 -0
  30. package/dist/config/scss.js.map +1 -0
  31. package/dist/config/shared.d.ts +9 -0
  32. package/dist/config/shared.d.ts.map +1 -0
  33. package/dist/config/shared.js +27 -0
  34. package/dist/config/shared.js.map +1 -0
  35. package/dist/config/theme.d.ts +6 -0
  36. package/dist/config/theme.d.ts.map +1 -0
  37. package/dist/config/theme.js +133 -0
  38. package/dist/config/theme.js.map +1 -0
  39. package/dist/config/types.d.ts +127 -0
  40. package/dist/config/types.d.ts.map +1 -0
  41. package/dist/config/types.js +2 -0
  42. package/dist/config/types.js.map +1 -0
  43. package/dist/fullscreen/components/index.d.ts +20 -0
  44. package/dist/fullscreen/components/index.d.ts.map +1 -0
  45. package/dist/fullscreen/components/index.js +19 -0
  46. package/dist/fullscreen/components/index.js.map +1 -0
  47. package/dist/fullscreen/index.d.ts +24 -3
  48. package/dist/fullscreen/index.d.ts.map +1 -1
  49. package/dist/fullscreen/index.js +268 -7
  50. package/dist/fullscreen/index.js.map +1 -1
  51. package/dist/fullscreen/styles/index.scss +71 -0
  52. package/dist/index.d.ts +7 -1
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +9 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/layout/components/index.d.ts +43 -0
  57. package/dist/layout/components/index.d.ts.map +1 -0
  58. package/dist/layout/components/index.js +53 -0
  59. package/dist/layout/components/index.js.map +1 -0
  60. package/dist/layout/index.d.ts +27 -0
  61. package/dist/layout/index.d.ts.map +1 -0
  62. package/dist/layout/index.js +80 -0
  63. package/dist/layout/index.js.map +1 -0
  64. package/dist/layout/styles/index.scss +137 -0
  65. package/dist/react/index.d.ts +14 -0
  66. package/dist/react/index.d.ts.map +1 -1
  67. package/dist/react/index.js +14 -0
  68. package/dist/react/index.js.map +1 -1
  69. package/dist/server/index.d.ts +5 -0
  70. package/dist/server/index.d.ts.map +1 -0
  71. package/dist/server/index.js +5 -0
  72. package/dist/server/index.js.map +1 -0
  73. package/dist/sidebar/components/index.d.ts +35 -0
  74. package/dist/sidebar/components/index.d.ts.map +1 -0
  75. package/dist/sidebar/components/index.js +49 -0
  76. package/dist/sidebar/components/index.js.map +1 -0
  77. package/dist/sidebar/index.d.ts +62 -0
  78. package/dist/sidebar/index.d.ts.map +1 -0
  79. package/dist/sidebar/index.js +247 -0
  80. package/dist/sidebar/index.js.map +1 -0
  81. package/dist/sidebar/styles/index.scss +205 -0
  82. package/dist/src/config/index.d.ts +6 -45
  83. package/dist/src/config/index.d.ts.map +1 -1
  84. package/dist/src/config/index.js +19 -252
  85. package/dist/src/config/index.js.map +1 -1
  86. package/dist/src/config/module.d.ts +5 -0
  87. package/dist/src/config/module.d.ts.map +1 -0
  88. package/dist/src/config/module.js +124 -0
  89. package/dist/src/config/module.js.map +1 -0
  90. package/dist/src/config/normalize.d.ts +9 -0
  91. package/dist/src/config/normalize.d.ts.map +1 -0
  92. package/dist/src/config/normalize.js +116 -0
  93. package/dist/src/config/normalize.js.map +1 -0
  94. package/dist/src/config/palette.d.ts +8 -0
  95. package/dist/src/config/palette.d.ts.map +1 -0
  96. package/dist/src/config/palette.js +104 -0
  97. package/dist/src/config/palette.js.map +1 -0
  98. package/dist/src/config/scales-css.d.ts +8 -0
  99. package/dist/src/config/scales-css.d.ts.map +1 -0
  100. package/dist/src/config/scales-css.js +99 -0
  101. package/dist/src/config/scales-css.js.map +1 -0
  102. package/dist/src/config/scales.d.ts +4 -0
  103. package/dist/src/config/scales.d.ts.map +1 -0
  104. package/dist/src/config/scales.js +55 -0
  105. package/dist/src/config/scales.js.map +1 -0
  106. package/dist/src/config/scss.d.ts +4 -0
  107. package/dist/src/config/scss.d.ts.map +1 -0
  108. package/dist/src/config/scss.js +134 -0
  109. package/dist/src/config/scss.js.map +1 -0
  110. package/dist/src/config/shared.d.ts +9 -0
  111. package/dist/src/config/shared.d.ts.map +1 -0
  112. package/dist/src/config/shared.js +27 -0
  113. package/dist/src/config/shared.js.map +1 -0
  114. package/dist/src/config/theme.d.ts +6 -0
  115. package/dist/src/config/theme.d.ts.map +1 -0
  116. package/dist/src/config/theme.js +133 -0
  117. package/dist/src/config/theme.js.map +1 -0
  118. package/dist/src/config/types.d.ts +127 -0
  119. package/dist/src/config/types.d.ts.map +1 -0
  120. package/dist/src/config/types.js +2 -0
  121. package/dist/src/config/types.js.map +1 -0
  122. package/dist/src/fullscreen/components/index.d.ts +20 -0
  123. package/dist/src/fullscreen/components/index.d.ts.map +1 -0
  124. package/dist/src/fullscreen/components/index.js +19 -0
  125. package/dist/src/fullscreen/components/index.js.map +1 -0
  126. package/dist/src/fullscreen/index.d.ts +24 -3
  127. package/dist/src/fullscreen/index.d.ts.map +1 -1
  128. package/dist/src/fullscreen/index.js +268 -7
  129. package/dist/src/fullscreen/index.js.map +1 -1
  130. package/dist/src/index.d.ts +7 -1
  131. package/dist/src/index.d.ts.map +1 -1
  132. package/dist/src/index.js +9 -1
  133. package/dist/src/index.js.map +1 -1
  134. package/dist/src/layout/components/index.d.ts +43 -0
  135. package/dist/src/layout/components/index.d.ts.map +1 -0
  136. package/dist/src/layout/components/index.js +53 -0
  137. package/dist/src/layout/components/index.js.map +1 -0
  138. package/dist/src/layout/index.d.ts +27 -0
  139. package/dist/src/layout/index.d.ts.map +1 -0
  140. package/dist/src/layout/index.js +80 -0
  141. package/dist/src/layout/index.js.map +1 -0
  142. package/dist/src/react/index.d.ts +14 -0
  143. package/dist/src/react/index.d.ts.map +1 -1
  144. package/dist/src/react/index.js +14 -0
  145. package/dist/src/react/index.js.map +1 -1
  146. package/dist/src/server/index.d.ts +5 -0
  147. package/dist/src/server/index.d.ts.map +1 -0
  148. package/dist/src/server/index.js +5 -0
  149. package/dist/src/server/index.js.map +1 -0
  150. package/dist/src/sidebar/components/index.d.ts +35 -0
  151. package/dist/src/sidebar/components/index.d.ts.map +1 -0
  152. package/dist/src/sidebar/components/index.js +49 -0
  153. package/dist/src/sidebar/components/index.js.map +1 -0
  154. package/dist/src/sidebar/index.d.ts +62 -0
  155. package/dist/src/sidebar/index.d.ts.map +1 -0
  156. package/dist/src/sidebar/index.js +247 -0
  157. package/dist/src/sidebar/index.js.map +1 -0
  158. package/dist/src/theme/apply.d.ts +26 -0
  159. package/dist/src/theme/apply.d.ts.map +1 -0
  160. package/dist/src/theme/apply.js +85 -0
  161. package/dist/src/theme/apply.js.map +1 -0
  162. package/dist/src/theme/boot.d.ts +4 -0
  163. package/dist/src/theme/boot.d.ts.map +1 -0
  164. package/dist/src/theme/boot.js +23 -0
  165. package/dist/src/theme/boot.js.map +1 -0
  166. package/dist/src/theme/components/index.d.ts +13 -5
  167. package/dist/src/theme/components/index.d.ts.map +1 -1
  168. package/dist/src/theme/components/index.js +22 -6
  169. package/dist/src/theme/components/index.js.map +1 -1
  170. package/dist/src/theme/constants.d.ts +12 -0
  171. package/dist/src/theme/constants.d.ts.map +1 -0
  172. package/dist/src/theme/constants.js +12 -0
  173. package/dist/src/theme/constants.js.map +1 -0
  174. package/dist/src/theme/controls.d.ts +15 -0
  175. package/dist/src/theme/controls.d.ts.map +1 -0
  176. package/dist/src/theme/controls.js +128 -0
  177. package/dist/src/theme/controls.js.map +1 -0
  178. package/dist/src/theme/index.d.ts +10 -24
  179. package/dist/src/theme/index.d.ts.map +1 -1
  180. package/dist/src/theme/index.js +15 -117
  181. package/dist/src/theme/index.js.map +1 -1
  182. package/dist/src/theme/modes.d.ts +36 -0
  183. package/dist/src/theme/modes.d.ts.map +1 -0
  184. package/dist/src/theme/modes.js +107 -0
  185. package/dist/src/theme/modes.js.map +1 -0
  186. package/dist/styles/utils.scss +193 -0
  187. package/dist/theme/apply.d.ts +26 -0
  188. package/dist/theme/apply.d.ts.map +1 -0
  189. package/dist/theme/apply.js +85 -0
  190. package/dist/theme/apply.js.map +1 -0
  191. package/dist/theme/boot.d.ts +4 -0
  192. package/dist/theme/boot.d.ts.map +1 -0
  193. package/dist/theme/boot.js +23 -0
  194. package/dist/theme/boot.js.map +1 -0
  195. package/dist/theme/components/index.d.ts +13 -5
  196. package/dist/theme/components/index.d.ts.map +1 -1
  197. package/dist/theme/components/index.js +22 -6
  198. package/dist/theme/components/index.js.map +1 -1
  199. package/dist/theme/constants.d.ts +12 -0
  200. package/dist/theme/constants.d.ts.map +1 -0
  201. package/dist/theme/constants.js +12 -0
  202. package/dist/theme/constants.js.map +1 -0
  203. package/dist/theme/controls.d.ts +15 -0
  204. package/dist/theme/controls.d.ts.map +1 -0
  205. package/dist/theme/controls.js +128 -0
  206. package/dist/theme/controls.js.map +1 -0
  207. package/dist/theme/index.d.ts +10 -24
  208. package/dist/theme/index.d.ts.map +1 -1
  209. package/dist/theme/index.js +15 -117
  210. package/dist/theme/index.js.map +1 -1
  211. package/dist/theme/modes.d.ts +36 -0
  212. package/dist/theme/modes.d.ts.map +1 -0
  213. package/dist/theme/modes.js +107 -0
  214. package/dist/theme/modes.js.map +1 -0
  215. package/package.json +4 -167
  216. package/dist/src/styles/index.d.ts +0 -3
  217. package/dist/src/styles/index.d.ts.map +0 -1
  218. package/dist/src/styles/index.js +0 -15
  219. package/dist/src/styles/index.js.map +0 -1
  220. package/dist/styles/index.d.ts +0 -3
  221. package/dist/styles/index.d.ts.map +0 -1
  222. package/dist/styles/index.js +0 -15
  223. 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,4 @@
1
+ import type { NormalizedTrebiredFrontendScalesConfig } from "./types.js";
2
+ declare function normalizeScalesConfig(value: unknown): NormalizedTrebiredFrontendScalesConfig;
3
+ export { normalizeScalesConfig };
4
+ //# sourceMappingURL=scales.d.ts.map
@@ -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"}