@trebired/configs 0.3.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.
Files changed (36) hide show
  1. package/.trebired/code-discipline/config.ts +1 -1
  2. package/.trebired/frontend/action_control.ts +43 -0
  3. package/.trebired/frontend/button.ts +203 -0
  4. package/.trebired/frontend/choice.ts +19 -0
  5. package/.trebired/frontend/components.ts +21 -0
  6. package/.trebired/frontend/config.ts +40 -0
  7. package/.trebired/frontend/data.ts +33 -0
  8. package/.trebired/frontend/disclosure.ts +10 -0
  9. package/.trebired/frontend/dot.ts +5 -0
  10. package/.trebired/frontend/dropdown.ts +25 -0
  11. package/.trebired/frontend/feedback.ts +56 -0
  12. package/.trebired/frontend/input.ts +31 -0
  13. package/.trebired/frontend/loader.ts +8 -0
  14. package/.trebired/frontend/marquee.ts +19 -0
  15. package/.trebired/frontend/media.ts +63 -0
  16. package/.trebired/frontend/overlays.ts +111 -0
  17. package/.trebired/frontend/palette.ts +111 -0
  18. package/.trebired/frontend/pill.ts +12 -0
  19. package/.trebired/frontend/primitives.ts +39 -0
  20. package/.trebired/frontend/progress.ts +11 -0
  21. package/.trebired/frontend/quote.ts +13 -0
  22. package/.trebired/frontend/shell.ts +251 -0
  23. package/.trebired/frontend/steps.ts +6 -0
  24. package/.trebired/frontend/surfaces.ts +276 -0
  25. package/.trebired/frontend/systems.ts +20 -0
  26. package/.trebired/frontend/tabs.ts +42 -0
  27. package/.trebired/frontend/text_link.ts +37 -0
  28. package/.trebired/frontend/theme.ts +50 -0
  29. package/.trebired/frontend/toggle.ts +17 -0
  30. package/.trebired/frontend/tokens.ts +37 -0
  31. package/.trebired/frontend/typography.ts +20 -0
  32. package/.trebired/frontend/upload.ts +108 -0
  33. package/.trebired/frontend/wizard.ts +6 -0
  34. package/CHANGELOG.md +9 -0
  35. package/README.md +29 -4
  36. package/package.json +19 -2
@@ -1,5 +1,5 @@
1
1
  export default {
2
- forVersion: "7.1.2",
2
+ forVersion: "7.2.0",
3
3
  logging: {
4
4
  warnings: false,
5
5
  },
@@ -0,0 +1,43 @@
1
+ export const primitiveActionControl = {
2
+ rootBackground: "var(--tbf-ui-btn-root-bg, transparent)",
3
+ rootBorder: "var(--tbf-ui-btn-root-border, var(--tbf-border-width, 1px) solid var(--tbf-border, currentColor))",
4
+ rootColor: "var(--tbf-ui-btn-root-color, var(--tbf-text, currentColor))",
5
+ rootFontFamily: "var(--tbf-font-sans, \"Inter\", sans-serif)",
6
+ rootFontSize: "var(--tbf-ui-btn-root-font-size, 12px)",
7
+ rootFontWeight: "var(--tbf-ui-btn-root-font-weight, 600)",
8
+ rootGap: "var(--tbf-ui-btn-root-gap, 8px)",
9
+ rootHeight: "var(--tbf-ui-btn-root-height, 28px)",
10
+ rootMinHeight: "var(--tbf-ui-action-root-height, var(--tbf-ui-btn-root-height, 28px))",
11
+ rootPadding: "var(--tbf-ui-btn-root-padding, 0 12px)",
12
+ rootPaddingBlock: "var(--tbf-ui-btn-root-py, 0)",
13
+ rootRadius: "var(--tbf-ui-btn-root-radius, var(--radius-md, var(--tbf-radius, 0)))",
14
+ slotIcon: "var(--tbf-ui-btn-slot-icon, currentColor)",
15
+ states: {
16
+ disabledOpacity: "var(--tbf-ui-btn-state-disabled-opacity, .55)",
17
+ hover: {
18
+ background: "var(--tbf-ui-btn-state-hover-bg, var(--tbf-ui-btn-root-bg, transparent))",
19
+ border: "var(--tbf-ui-btn-state-hover-border, currentColor)",
20
+ color: "var(--tbf-ui-btn-state-hover-color, currentColor)",
21
+ icon: "var(--tbf-ui-btn-state-hover-icon, currentColor)",
22
+ },
23
+ },
24
+ tones: {
25
+ highlight: {
26
+ background: "var(--tbf-ui-btn-tone-highlight-bg, var(--tbf-ui-btn-root-bg, transparent))",
27
+ border: "var(--tbf-ui-btn-tone-highlight-border, currentColor)",
28
+ color: "var(--tbf-ui-btn-tone-highlight-color, currentColor)",
29
+ icon: "var(--tbf-ui-btn-tone-highlight-icon, currentColor)",
30
+ states: {
31
+ hover: {
32
+ background: [
33
+ "var(--tbf-ui-btn-tone-highlight-state-hover-bg, var(--tbf-ui-btn-state-hover-bg,",
34
+ "var(--tbf-ui-btn-root-bg, transparent)))",
35
+ ].join(" "),
36
+ border: "var(--tbf-ui-btn-tone-highlight-state-hover-border, currentColor)",
37
+ color: "var(--tbf-ui-btn-tone-highlight-state-hover-color, currentColor)",
38
+ icon: "var(--tbf-ui-btn-tone-highlight-state-hover-icon, currentColor)",
39
+ },
40
+ },
41
+ },
42
+ },
43
+ };
@@ -0,0 +1,203 @@
1
+ import { semantic, token, ui } from "./tokens";
2
+
3
+ export const primitiveButton = {
4
+ root: {
5
+ background: token.color("gray", 900),
6
+ border: token.border(semantic.borderSurface2),
7
+ color: semantic.textColor,
8
+ fontSize: "12px",
9
+ fontWeight: "600",
10
+ gap: "8px",
11
+ height: "28px",
12
+ letterSpacing: "normal",
13
+ padding: "0 12px",
14
+ paddingBlock: "0",
15
+ radius: ui.radiusMd,
16
+ textTransform: "none",
17
+ whiteSpace: "nowrap",
18
+ width: "auto",
19
+ },
20
+ sizes: {
21
+ lg: {
22
+ fontSize: "13px",
23
+ height: "34px",
24
+ paddingInline: "14px",
25
+ },
26
+ md: {
27
+ fontSize: "12px",
28
+ height: "28px",
29
+ paddingInline: "12px",
30
+ },
31
+ sm: {
32
+ fontSize: "11px",
33
+ height: "24px",
34
+ paddingInline: "9px",
35
+ },
36
+ },
37
+ slots: {
38
+ icon: {
39
+ color: token.color("gray", 300),
40
+ fontSize: "15px",
41
+ radius: "var(--tbf-ui-btn-root-radius, var(--radius-md, var(--tbf-radius, 0)))",
42
+ size: "28px",
43
+ sizes: {
44
+ lg: {
45
+ fontSize: "18px",
46
+ size: "34px",
47
+ },
48
+ md: {
49
+ fontSize: "16px",
50
+ size: "30px",
51
+ },
52
+ sm: {
53
+ fontSize: "14px",
54
+ size: "26px",
55
+ },
56
+ xs: {
57
+ fontSize: "12px",
58
+ size: "22px",
59
+ },
60
+ xs2: {
61
+ fontSize: "10px",
62
+ size: "18px",
63
+ },
64
+ },
65
+ },
66
+ },
67
+ states: {
68
+ disabled: {
69
+ opacity: "0.55",
70
+ },
71
+ hover: {
72
+ background: token.color("gray", 800),
73
+ borderColor: token.color("gray", 700),
74
+ color: token.color("gray", 200),
75
+ iconColor: "currentColor",
76
+ },
77
+ },
78
+ tones: {
79
+ green: {
80
+ borderInlineColor: token.color("green", 700),
81
+ states: {
82
+ hover: {
83
+ background: token.color("green", 800),
84
+ borderColor: token.color("green", 700),
85
+ color: token.modeColor("gray", 0, "dark"),
86
+ iconColor: "currentColor",
87
+ },
88
+ },
89
+ },
90
+ highlight: {
91
+ background: token.color("gray", 100),
92
+ borderColor: token.color("gray", 100),
93
+ color: token.color("gray", 950),
94
+ iconColor: token.color("gray", 800),
95
+ states: {
96
+ hover: {
97
+ background: token.color("gray", 200),
98
+ borderColor: token.color("gray", 100),
99
+ color: token.color("gray", 900),
100
+ iconColor: "currentColor",
101
+ },
102
+ },
103
+ },
104
+ red: {
105
+ borderInlineColor: token.color("red", 700),
106
+ states: {
107
+ hover: {
108
+ background: token.color("red", 800),
109
+ borderColor: token.color("red", 700),
110
+ color: token.modeColor("gray", 50, "dark"),
111
+ iconColor: "currentColor",
112
+ },
113
+ },
114
+ },
115
+ yellow: {
116
+ borderInlineColor: token.color("yellow", 700),
117
+ states: {
118
+ hover: {
119
+ background: token.color("yellow", 700),
120
+ borderColor: token.color("yellow", 600),
121
+ color: token.modeColor("gray", 50, "dark"),
122
+ iconColor: "currentColor",
123
+ },
124
+ },
125
+ },
126
+ },
127
+ variants: {
128
+ chrome: {
129
+ bg: "transparent",
130
+ border: "color-mix(in srgb, currentColor 24%, transparent)",
131
+ color: "currentColor",
132
+ fontSize: "0.78125rem",
133
+ height: "2rem",
134
+ icon: "currentColor",
135
+ padding: "0 0.625rem",
136
+ radius: "var(--tbf-ui-btn-root-radius, var(--radius-md, var(--tbf-radius, 0)))",
137
+ states: {
138
+ hover: {
139
+ background: "color-mix(in srgb, currentColor 8%, transparent)",
140
+ border: "color-mix(in srgb, currentColor 42%, transparent)",
141
+ color: "currentColor",
142
+ icon: "currentColor",
143
+ },
144
+ },
145
+ },
146
+ danger: {
147
+ background: "transparent",
148
+ border: "currentColor",
149
+ color: "var(--tbf-tone-red, var(--tbf-tone-error, currentColor))",
150
+ icon: "currentColor",
151
+ states: {
152
+ hover: {
153
+ background: "color-mix(in srgb, var(--tbf-tone-red, var(--tbf-tone-error, currentColor)) 12%, transparent)",
154
+ border: "currentColor",
155
+ color: "currentColor",
156
+ icon: "currentColor",
157
+ },
158
+ },
159
+ },
160
+ ghost: {
161
+ background: "transparent",
162
+ border: "transparent",
163
+ color: "var(--tbf-text, currentColor)",
164
+ icon: "currentColor",
165
+ states: {
166
+ hover: {
167
+ background: "color-mix(in srgb, currentColor 8%, transparent)",
168
+ border: "transparent",
169
+ color: "currentColor",
170
+ icon: "currentColor",
171
+ },
172
+ },
173
+ },
174
+ primary: {
175
+ background: "var(--tbf-text, currentColor)",
176
+ border: "transparent",
177
+ color: "var(--tbf-page, canvas)",
178
+ icon: "currentColor",
179
+ states: {
180
+ hover: {
181
+ background: "color-mix(in srgb, var(--tbf-text, currentColor) 88%, var(--tbf-page, canvas))",
182
+ border: "transparent",
183
+ color: "var(--tbf-page, canvas)",
184
+ icon: "currentColor",
185
+ },
186
+ },
187
+ },
188
+ secondary: {
189
+ background: "var(--tbf-ui-btn-root-bg, transparent)",
190
+ border: "var(--tbf-border, currentColor)",
191
+ color: "var(--tbf-ui-btn-root-color, var(--tbf-text, currentColor))",
192
+ icon: "currentColor",
193
+ states: {
194
+ hover: {
195
+ background: "var(--tbf-ui-btn-state-hover-bg, var(--tbf-ui-btn-root-bg, transparent))",
196
+ border: "var(--tbf-border, currentColor)",
197
+ color: "currentColor",
198
+ icon: "currentColor",
199
+ },
200
+ },
201
+ },
202
+ },
203
+ };
@@ -0,0 +1,19 @@
1
+ import { token } from "./tokens";
2
+
3
+ export const primitiveChoice = {
4
+ checked: {
5
+ background: token.color("gray", 900),
6
+ border: "currentColor",
7
+ },
8
+ control: {
9
+ activeIconColor: token.color("gray", 600),
10
+ borderColor: token.color("gray", 600),
11
+ checkedBackground: token.color("gray", 100),
12
+ checkedBorderColor: token.color("gray", 100),
13
+ checkedColor: token.color("gray", 900),
14
+ color: token.color("gray", 800),
15
+ partialBorderColor: token.color("gray", 400),
16
+ partialColor: token.color("gray", 200),
17
+ partialIconColor: token.color("gray", 300),
18
+ },
19
+ };
@@ -0,0 +1,21 @@
1
+ import type { FrontendComponentsConfig } from "@trebired/frontend/config";
2
+
3
+ import { data } from "./data";
4
+ import { feedback } from "./feedback";
5
+ import { media } from "./media";
6
+ import { overlays } from "./overlays";
7
+ import { primitives } from "./primitives";
8
+ import { shell } from "./shell";
9
+ import { surfaces } from "./surfaces";
10
+ import { typography } from "./typography";
11
+
12
+ export const components = {
13
+ data,
14
+ feedback,
15
+ media,
16
+ overlays,
17
+ primitives,
18
+ shell,
19
+ surfaces,
20
+ typography,
21
+ } satisfies FrontendComponentsConfig;
@@ -0,0 +1,40 @@
1
+ import type { FrontendConfig } from "@trebired/frontend/config";
2
+
3
+ import { components } from "./components";
4
+ import { palette } from "./palette";
5
+ import { systems } from "./systems";
6
+ import { runtime, semantics } from "./theme";
7
+
8
+ export default {
9
+ forVersion: "29.10.0",
10
+ assets: {
11
+ fonts: {
12
+ families: {
13
+ sans: {
14
+ package: "inter",
15
+ family: "Inter",
16
+ subsets: ["latin", "latin-ext"],
17
+ weights: [100, 400, 500, 600, 700],
18
+ styles: ["normal", "italic"],
19
+ },
20
+ },
21
+ sans: "\"Inter\", sans-serif",
22
+ },
23
+ icons: {
24
+ endpoint: "/__icons/svg",
25
+ packs: ["remixicon", "simple-icons", "material-icon-theme"],
26
+ },
27
+ },
28
+ components,
29
+ design: {
30
+ interactions: {
31
+ activePress: {
32
+ enabled: true,
33
+ },
34
+ },
35
+ palette,
36
+ semantics,
37
+ },
38
+ runtime,
39
+ systems,
40
+ } satisfies FrontendConfig;
@@ -0,0 +1,33 @@
1
+ import { token } from "./tokens";
2
+
3
+ export const data = {
4
+ graph: {
5
+ download: {
6
+ fill: token.colorMix(token.color("blue", 500), "16%"),
7
+ stroke: token.color("blue", 400),
8
+ },
9
+ heatmap: {
10
+ empty: token.color("gray", 900),
11
+ level1: token.color("green", 800),
12
+ level2: token.color("green", 700),
13
+ level3: token.color("green", 600),
14
+ level4: token.color("green", 500),
15
+ },
16
+ upload: {
17
+ fill: token.colorMix(token.color("green", 500), "16%"),
18
+ stroke: token.color("green", 400),
19
+ },
20
+ },
21
+ log: {
22
+ line: {
23
+ states: {
24
+ hover: {
25
+ background: token.colorMix(token.color("gray", 700), "28%"),
26
+ },
27
+ },
28
+ },
29
+ selection: {
30
+ background: token.color("gray", 700),
31
+ },
32
+ },
33
+ };
@@ -0,0 +1,10 @@
1
+ export const primitiveDisclosure = {
2
+ indicatorColor: "var(--tbf-text-muted, currentColor)",
3
+ indicatorOffset: "auto",
4
+ indicatorSize: "1.35em",
5
+ panelGap: "var(--tbf-gap-sm, 12px)",
6
+ rootPadding: "var(--tbf-gap-sm, 8px)",
7
+ triggerColor: "var(--tbf-text, #000)",
8
+ triggerFontSize: "inherit",
9
+ triggerFontWeight: "inherit",
10
+ };
@@ -0,0 +1,5 @@
1
+ import { token } from "./tokens";
2
+
3
+ export const primitiveDot = {
4
+ color: token.color("gray", 600),
5
+ };
@@ -0,0 +1,25 @@
1
+ import { token } from "./tokens";
2
+
3
+ export const primitiveDropdown = {
4
+ arrow: {
5
+ color: token.color("gray", 500),
6
+ },
7
+ menu: {
8
+ background: token.color("gray", 900),
9
+ },
10
+ motion: {
11
+ closeDuration: "240ms",
12
+ duration: "120ms",
13
+ easing: "ease",
14
+ },
15
+ option: {
16
+ states: {
17
+ hover: {
18
+ background: token.color("gray", 800),
19
+ },
20
+ selected: {
21
+ background: token.color("gray", 800),
22
+ },
23
+ },
24
+ },
25
+ };
@@ -0,0 +1,56 @@
1
+ import { token, ui } from "./tokens";
2
+
3
+ export const feedback = {
4
+ flash: {
5
+ container: {
6
+ background: token.color("gray", 900),
7
+ border: token.border(token.color("gray", 800), "1px"),
8
+ color: token.color("gray", 100),
9
+ padding: "15px",
10
+ radius: ui.radiusLg,
11
+ shadow: "var(--tbf-shadow, none)",
12
+ },
13
+ intents: {
14
+ error: {
15
+ iconColor: token.color("red", 500),
16
+ },
17
+ info: {
18
+ iconColor: token.color("gray", 500),
19
+ },
20
+ success: {
21
+ iconColor: token.color("green", 500),
22
+ },
23
+ warn: {
24
+ iconColor: token.color("yellow", 500),
25
+ },
26
+ },
27
+ layout: {
28
+ actionsGap: "8px",
29
+ bodyGap: "8px",
30
+ gap: "10px",
31
+ },
32
+ placement: {
33
+ maxWidth: "520px",
34
+ offset: "18px",
35
+ },
36
+ slotIcon: "currentColor",
37
+ slots: {
38
+ description: {
39
+ color: token.color("gray", 400),
40
+ fontSize: "0.92rem",
41
+ },
42
+ icon: {
43
+ fontWeight: "700",
44
+ size: "18px",
45
+ },
46
+ progress: {
47
+ color: token.color("gray", 600),
48
+ height: "4px",
49
+ },
50
+ title: {
51
+ color: "currentColor",
52
+ fontWeight: "400",
53
+ },
54
+ },
55
+ },
56
+ };
@@ -0,0 +1,31 @@
1
+ import { token } from "./tokens";
2
+
3
+ export const primitiveInput = {
4
+ file: {
5
+ button: {
6
+ background: token.color("gray", 700),
7
+ states: {
8
+ hover: {
9
+ background: token.color("gray", 700),
10
+ },
11
+ },
12
+ },
13
+ },
14
+ rootFontSize: "14px",
15
+ rootPadding: "7px 9px",
16
+ sizes: {
17
+ lgFontSize: "15px",
18
+ lgHeight: "40px",
19
+ lgPadding: "9px 12px",
20
+ sm: {
21
+ fontSize: "13px",
22
+ height: "24px",
23
+ padding: "5px 8px",
24
+ },
25
+ },
26
+ states: {
27
+ focus: {
28
+ color: token.color("gray", 600),
29
+ },
30
+ },
31
+ };
@@ -0,0 +1,8 @@
1
+ import { token } from "./tokens";
2
+
3
+ export const primitiveLoader = {
4
+ color: token.color("gray", 300),
5
+ motion: {
6
+ duration: "1s",
7
+ },
8
+ };
@@ -0,0 +1,19 @@
1
+ export const primitiveMarquee = {
2
+ item: {
3
+ gap: "1.5rem",
4
+ px: "0.875rem",
5
+ },
6
+ root: {
7
+ background: "transparent",
8
+ border: "0",
9
+ color: "inherit",
10
+ py: "1.1rem",
11
+ },
12
+ separator: {
13
+ fontSize: "1em",
14
+ opacity: "0.45",
15
+ },
16
+ track: {
17
+ duration: "38s",
18
+ },
19
+ };
@@ -0,0 +1,63 @@
1
+ export const media = {
2
+ carousel: {
3
+ motion: {
4
+ controlDuration: "180ms",
5
+ duration: "1000ms",
6
+ easing: "ease",
7
+ },
8
+ },
9
+ embedFrame: {
10
+ motion: {
11
+ duration: "0.2s",
12
+ easing: "ease",
13
+ },
14
+ ratio: "16 / 9",
15
+ },
16
+ expandableImage: {
17
+ icon: {
18
+ background: "oklch(14.5% 0 0 / 70%)",
19
+ blur: "0px",
20
+ radius: "0",
21
+ size: "2.5rem",
22
+ },
23
+ motion: {
24
+ easing: "ease",
25
+ iconDuration: "180ms",
26
+ zoomDuration: "500ms",
27
+ },
28
+ ratio: "auto",
29
+ },
30
+ lightbox: {
31
+ backdrop: {
32
+ background: "oklch(14.5% 0 0 / 88%)",
33
+ blur: "0px",
34
+ },
35
+ caption: {
36
+ color: "oklch(100% 0 0 / 70%)",
37
+ fontSize: "0.875rem",
38
+ fontWeight: "700",
39
+ },
40
+ control: {
41
+ background: "oklch(14.5% 0 0 / 35%)",
42
+ blur: "4px",
43
+ radius: "0",
44
+ size: "3rem",
45
+ sizeWide: "3.5rem",
46
+ states: {
47
+ hover: {
48
+ background: "color-mix(in oklch, var(--primary-500), transparent 30%)",
49
+ },
50
+ },
51
+ },
52
+ image: {
53
+ radius: "0",
54
+ shadow: "0 25px 50px -12px oklch(0% 0 0 / 25%)",
55
+ },
56
+ motion: {
57
+ closeDuration: "320ms",
58
+ controlDuration: "180ms",
59
+ duration: "300ms",
60
+ easing: "ease-out",
61
+ },
62
+ },
63
+ };