@dybo-ai/design 1.2.0 → 2.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/CLAUDE.md +35 -28
- package/README.md +59 -31
- package/dist/index.cjs +1417 -67
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +396 -3
- package/dist/index.d.ts +396 -3
- package/dist/index.js +1382 -68
- package/dist/index.js.map +1 -1
- package/legacy-theme.css +1112 -0
- package/package.json +3 -1
- package/portal-tokens.css +8 -184
- package/theme.css +1649 -405
- package/tokens.cjs +219 -124
- package/tokens.json +223 -162
- package/tokens.mjs +199 -124
package/tokens.mjs
CHANGED
|
@@ -1,124 +1,124 @@
|
|
|
1
1
|
// DYBO design tokens — flat, resolved values for programmatic use (JS/TS).
|
|
2
2
|
// Source of truth: tokens.json. Keep in sync when tokens.json changes.
|
|
3
|
+
//
|
|
4
|
+
// `color` is HSL-channel triplets ("H S% L%", no hsl() wrapper) so values
|
|
5
|
+
// compose the same way in JS as they do in CSS (`hsl(${color.light.card})`,
|
|
6
|
+
// or with alpha `hsl(${color.light.card} / 0.7)`).
|
|
7
|
+
|
|
3
8
|
export const color = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
muted: "
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
9
|
+
light: {
|
|
10
|
+
background: "216 25% 92%",
|
|
11
|
+
foreground: "218 56% 9%",
|
|
12
|
+
card: "214 41% 97%",
|
|
13
|
+
cardForeground: "218 56% 9%",
|
|
14
|
+
popover: "0 0% 100%",
|
|
15
|
+
popoverForeground: "218 56% 9%",
|
|
16
|
+
primary: "218 56% 9%",
|
|
17
|
+
primaryForeground: "0 0% 100%",
|
|
18
|
+
secondary: "0 0% 100%",
|
|
19
|
+
secondaryForeground: "218 56% 9%",
|
|
20
|
+
muted: "216 16% 88%",
|
|
21
|
+
mutedForeground: "216 31% 50%",
|
|
22
|
+
accent: "219 52% 24%",
|
|
23
|
+
accentForeground: "214 41% 97%",
|
|
24
|
+
destructive: "355 95% 60%",
|
|
25
|
+
destructiveForeground: "0 0% 100%",
|
|
26
|
+
border: "0 0% 100%",
|
|
27
|
+
input: "240 14% 96%",
|
|
28
|
+
ring: "219 52% 24%",
|
|
29
|
+
success: "150 68% 74%",
|
|
30
|
+
successForeground: "218 56% 9%",
|
|
31
|
+
successBackground: "151 45% 89%",
|
|
32
|
+
warning: "30 100% 40%",
|
|
33
|
+
warningForeground: "218 56% 9%",
|
|
34
|
+
warningBackground: "30 100% 95%",
|
|
35
|
+
error: "30 100% 40%",
|
|
36
|
+
errorForeground: "0 0% 100%",
|
|
37
|
+
errorBackground: "30 100% 95%",
|
|
38
|
+
info: "216 31% 50%",
|
|
39
|
+
infoForeground: "218 56% 9%",
|
|
40
|
+
infoBackground: "216 31% 89%",
|
|
41
|
+
tagAmberBackground: "35 100% 95%",
|
|
42
|
+
tagAmberForeground: "30 100% 24%",
|
|
43
|
+
tagPurpleBackground: "269 100% 95%",
|
|
44
|
+
tagPurpleForeground: "273 67% 39%",
|
|
45
|
+
tagRedBackground: "355 100% 95%",
|
|
46
|
+
tagRedForeground: "353 78% 32%",
|
|
47
|
+
overlayScrim: "224 32% 12%",
|
|
48
|
+
brandDarkOrb: "224 32% 12%",
|
|
49
|
+
brandIndigo: "219 52% 24%",
|
|
50
|
+
brandBlueYonder: "216 31% 50%",
|
|
51
|
+
brandGainsboro: "216 16% 88%",
|
|
52
|
+
brandCultured: "214 41% 97%",
|
|
53
|
+
brandDandelion: "54 81% 55%",
|
|
54
|
+
brandBlack: "0 0% 0%",
|
|
55
|
+
brandWhite: "0 0% 100%",
|
|
56
|
+
operatorBackground: "0 0% 89.4%",
|
|
31
57
|
},
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
58
|
+
dark: {
|
|
59
|
+
background: "218 56% 9%",
|
|
60
|
+
foreground: "244 20% 96%",
|
|
61
|
+
card: "218 35% 13%",
|
|
62
|
+
cardForeground: "244 20% 96%",
|
|
63
|
+
popover: "218 15% 12%",
|
|
64
|
+
popoverForeground: "244 20% 96%",
|
|
65
|
+
primary: "244 20% 96%",
|
|
66
|
+
primaryForeground: "218 56% 9%",
|
|
67
|
+
secondary: "218 35% 13%",
|
|
68
|
+
secondaryForeground: "244 20% 96%",
|
|
69
|
+
muted: "210 15% 30%",
|
|
70
|
+
mutedForeground: "244 20% 80%",
|
|
71
|
+
accent: "216 31% 50%",
|
|
72
|
+
accentForeground: "244 20% 96%",
|
|
73
|
+
destructive: "0 78% 55%",
|
|
74
|
+
destructiveForeground: "244 20% 96%",
|
|
75
|
+
border: "210 15% 30%",
|
|
76
|
+
input: "218 35% 13%",
|
|
77
|
+
ring: "244 20% 96%",
|
|
78
|
+
successBackground: "150 68% 26%",
|
|
79
|
+
warningBackground: "30 100% 22%",
|
|
80
|
+
errorBackground: "30 100% 22%",
|
|
81
|
+
infoBackground: "216 31% 28%",
|
|
82
|
+
tagAmberBackground: "37 64% 18%",
|
|
83
|
+
tagAmberForeground: "34 100% 83%",
|
|
84
|
+
tagPurpleBackground: "274 53% 22%",
|
|
85
|
+
tagPurpleForeground: "269 100% 92%",
|
|
86
|
+
tagRedBackground: "352 63% 18%",
|
|
87
|
+
tagRedForeground: "354 100% 88%",
|
|
43
88
|
},
|
|
44
89
|
};
|
|
45
90
|
|
|
46
|
-
export const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
},
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
},
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
medium: {
|
|
78
|
-
bg: "rgba(242,185,13,0.20)",
|
|
79
|
-
fg: "#9d6607",
|
|
80
|
-
darkBg: "rgba(242,185,13,0.16)",
|
|
81
|
-
darkFg: "#f5d56a",
|
|
82
|
-
},
|
|
83
|
-
low: {
|
|
84
|
-
bg: "rgba(151,163,180,0.24)",
|
|
85
|
-
fg: "#50627c",
|
|
86
|
-
darkBg: "rgba(140,155,175,0.20)",
|
|
87
|
-
darkFg: "#b8c4d4",
|
|
88
|
-
},
|
|
89
|
-
none: {
|
|
90
|
-
bg: "rgba(192,198,206,0.35)",
|
|
91
|
-
fg: "#677283",
|
|
92
|
-
darkBg: "rgba(115,125,140,0.25)",
|
|
93
|
-
darkFg: "#b0b8c4",
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
|
-
ticketStatus: {
|
|
97
|
-
open: {
|
|
98
|
-
bg: "#d9e3f2",
|
|
99
|
-
fg: "#2e5b9e",
|
|
100
|
-
darkBg: "#2a3d52",
|
|
101
|
-
darkFg: "#a8c4e8",
|
|
102
|
-
},
|
|
103
|
-
pending: {
|
|
104
|
-
bg: "#e9dff6",
|
|
105
|
-
fg: "#7146aa",
|
|
106
|
-
darkBg: "#3d2f4d",
|
|
107
|
-
darkFg: "#d4b8f0",
|
|
108
|
-
},
|
|
109
|
-
snoozed: {
|
|
110
|
-
bg: "#d7dde5",
|
|
111
|
-
fg: "#58687e",
|
|
112
|
-
darkBg: "#3a424c",
|
|
113
|
-
darkFg: "#b8c4d4",
|
|
114
|
-
},
|
|
115
|
-
resolved: {
|
|
116
|
-
bg: "#d6f0e3",
|
|
117
|
-
fg: "#1a6640",
|
|
118
|
-
darkBg: "#1f4a32",
|
|
119
|
-
darkFg: "#a8e0c0",
|
|
120
|
-
},
|
|
121
|
-
},
|
|
91
|
+
export const priority = {
|
|
92
|
+
urgent: { bg: "355 95% 60% / 0.12", fg: "355 74% 45%", darkBg: "0 78% 55% / 0.22", darkFg: "0 90% 78%" },
|
|
93
|
+
high: { bg: "30 100% 50% / 0.15", fg: "30 100% 33%", darkBg: "30 100% 45% / 0.22", darkFg: "30 100% 72%" },
|
|
94
|
+
medium: { bg: "45 90% 50% / 0.20", fg: "38 92% 32%", darkBg: "45 90% 50% / 0.16", darkFg: "45 92% 70%" },
|
|
95
|
+
low: { bg: "216 16% 65% / 0.24", fg: "216 22% 40%", darkBg: "216 20% 60% / 0.20", darkFg: "216 25% 82%" },
|
|
96
|
+
none: { bg: "216 12% 78% / 0.35", fg: "216 12% 46%", darkBg: "216 12% 50% / 0.25", darkFg: "216 15% 75%" },
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export const ticketStatus = {
|
|
100
|
+
open: { bg: "216 48% 90%", fg: "216 55% 40%", darkBg: "216 40% 26%", darkFg: "216 60% 82%" },
|
|
101
|
+
pending: { bg: "266 55% 92%", fg: "266 42% 47%", darkBg: "266 32% 30%", darkFg: "266 60% 85%" },
|
|
102
|
+
snoozed: { bg: "215 22% 87%", fg: "215 18% 42%", darkBg: "215 18% 30%", darkFg: "215 25% 80%" },
|
|
103
|
+
resolved: { bg: "151 45% 89%", fg: "150 60% 25%", darkBg: "150 45% 22%", darkFg: "150 60% 80%" },
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export const surface = {
|
|
107
|
+
operatorPage: "0 0% 89.4%",
|
|
108
|
+
cardHighOpacity: "rgba(240,241,244,0.92)",
|
|
109
|
+
cardHighOpacityDark: "rgba(18,26,45,0.92)",
|
|
110
|
+
drawerBackdrop: "224 32% 12% / 0.3",
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
export const feedback = {
|
|
114
|
+
successBackground: "151 45% 89%",
|
|
115
|
+
warningBackground: "30 100% 95%",
|
|
116
|
+
infoBackground: "216 31% 89%",
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export const shadow = {
|
|
120
|
+
level1: "0px 4px 8px #1419271f",
|
|
121
|
+
level2: "0px 8px 28px #14192729",
|
|
122
122
|
};
|
|
123
123
|
|
|
124
124
|
export const font = {
|
|
@@ -130,7 +130,7 @@ export const fontSize = { xs: 12, sm: 14, md: 16, lg: 18, xl: 24 };
|
|
|
130
130
|
|
|
131
131
|
export const space = { 0: 0, 50: 4, 100: 8, 150: 12, 200: 16, 250: 20, 400: 32 };
|
|
132
132
|
|
|
133
|
-
export const radius = { small: 12, alt: 16, medium: 20, full: 999 };
|
|
133
|
+
export const radius = { none: 0, small: 12, alt: 16, medium: 20, full: 999 };
|
|
134
134
|
|
|
135
135
|
export const opacity = {
|
|
136
136
|
light: 0.16,
|
|
@@ -140,24 +140,99 @@ export const opacity = {
|
|
|
140
140
|
semiTransparent: 0.08,
|
|
141
141
|
};
|
|
142
142
|
|
|
143
|
-
export const shadow = {
|
|
144
|
-
card: "0 8px 24px rgba(10,19,35,0.10), 0 2px 8px rgba(170,180,192,0.35)",
|
|
145
|
-
drop: "0 4px 4px rgba(10,19,35,0.10)",
|
|
146
|
-
portalLevel1: "0px 4px 8px #1419271f",
|
|
147
|
-
portalLevel2: "0px 8px 28px #14192729",
|
|
148
|
-
};
|
|
149
|
-
|
|
150
143
|
export const effect = { glassBlur: 4 };
|
|
151
144
|
|
|
145
|
+
/** @deprecated promoted to root in 2.0.0 — same objects, kept one major version. */
|
|
146
|
+
export const portal = { surface, shadow, feedback, priority, ticketStatus };
|
|
147
|
+
|
|
148
|
+
/** @deprecated superseded by `color`/`font`/etc. above — the pre-2.0 default system. */
|
|
149
|
+
export const legacy = {
|
|
150
|
+
color: {
|
|
151
|
+
brand: {
|
|
152
|
+
logo: "#1d335c",
|
|
153
|
+
blue: "#5878a7",
|
|
154
|
+
darkOrb: "#141927",
|
|
155
|
+
cultured: "#f3f6fa",
|
|
156
|
+
gainsboro: "#dbdfe5",
|
|
157
|
+
dandelion: "#e9d72f",
|
|
158
|
+
},
|
|
159
|
+
text: {
|
|
160
|
+
primary: "#0a1323",
|
|
161
|
+
secondary: "#f4f4f6",
|
|
162
|
+
muted: "#545f74",
|
|
163
|
+
gray: "#868686",
|
|
164
|
+
},
|
|
165
|
+
neutral: {
|
|
166
|
+
black: "#000000",
|
|
167
|
+
white: "#ffffff",
|
|
168
|
+
grayishBlue50: "#f4f4f6",
|
|
169
|
+
grayishBlue300: "#c2c7cf",
|
|
170
|
+
midnightSky300: "#e6e7f7",
|
|
171
|
+
midnightSky700: "#48495d",
|
|
172
|
+
},
|
|
173
|
+
surface: {
|
|
174
|
+
page: "#e6eaf0",
|
|
175
|
+
card: "rgba(240,241,244,0.70)",
|
|
176
|
+
cardSolid: "rgba(240,241,244,0.90)",
|
|
177
|
+
input: "rgba(244,244,246,0.70)",
|
|
178
|
+
},
|
|
179
|
+
line: { stroke: "#ffffff" },
|
|
180
|
+
semantic: {
|
|
181
|
+
success: { solid: "#20a156", bright: "#28ca6b", bg: "#eafbf1" },
|
|
182
|
+
warning: { solid: "#f16c24", bg: "#ffe5d8" },
|
|
183
|
+
danger: { solid: "#a21a17", bg: "#fffbfb" },
|
|
184
|
+
},
|
|
185
|
+
status: {
|
|
186
|
+
resolved: { fg: "#0399ae", bg: "#d3f7fc" },
|
|
187
|
+
highPriority: { fg: "#682a5d", bg: "#eee0ec" },
|
|
188
|
+
mediumPriority: { fg: "#f16c24", bg: "#ffe5d8" },
|
|
189
|
+
brand: { fg: "#0a1323", bg: "#d0d3fe" },
|
|
190
|
+
},
|
|
191
|
+
},
|
|
192
|
+
typography: {
|
|
193
|
+
mediumTitle: { family: "Urbanist", weight: 400, size: 24, lineHeight: 1.35, letterSpacing: 1 },
|
|
194
|
+
subtitle: { family: "Urbanist", weight: 400, size: 18, lineHeight: 1.35, letterSpacing: 1 },
|
|
195
|
+
bodyText: { family: "Urbanist", weight: 500, size: 16, lineHeight: 1.5, letterSpacing: 0 },
|
|
196
|
+
link: { family: "Urbanist", weight: 500, size: 16, lineHeight: 1.5, letterSpacing: 1 },
|
|
197
|
+
smallBodyText: { family: "Urbanist", weight: 500, size: 14, lineHeight: 1.15, letterSpacing: 0 },
|
|
198
|
+
smallLink: { family: "Urbanist", weight: 700, size: 14, lineHeight: 1.5, letterSpacing: 0 },
|
|
199
|
+
headingH6Semibold: { family: "Urbanist", weight: 600, size: 14, lineHeight: 1.5, letterSpacing: 1 },
|
|
200
|
+
headingH6Regular: { family: "Urbanist", weight: 400, size: 14, lineHeight: 1.5, letterSpacing: 1 },
|
|
201
|
+
placeholder: { family: "Urbanist", weight: 400, size: 14, lineHeight: 1.7, letterSpacing: 1 },
|
|
202
|
+
tinySemibold: { family: "Urbanist", weight: 600, size: 12, lineHeight: 1.5, letterSpacing: 1 },
|
|
203
|
+
uppercase: { family: "Urbanist", weight: 500, size: 12, lineHeight: 1.35, letterSpacing: 1, textTransform: "uppercase" },
|
|
204
|
+
},
|
|
205
|
+
shadow: {
|
|
206
|
+
card: "0 8px 24px rgba(10,19,35,0.10), 0 2px 8px rgba(170,180,192,0.35)",
|
|
207
|
+
drop: "0 4px 4px rgba(10,19,35,0.10)",
|
|
208
|
+
},
|
|
209
|
+
effect: { dropShadow: "0 4px 4px rgba(10,19,35,0.10)" },
|
|
210
|
+
component: {
|
|
211
|
+
button: {
|
|
212
|
+
primary: { bg: "#0a1323", text: "#ffffff", radius: 12, paddingY: 12, paddingX: 32 },
|
|
213
|
+
secondary: { bg: "#f4f4f6", text: "#0a1323", radius: 12, paddingY: 12, paddingX: 32 },
|
|
214
|
+
},
|
|
215
|
+
input: {
|
|
216
|
+
bg: "rgba(244,244,246,0.70)", border: "1px solid #ffffff", radius: 12,
|
|
217
|
+
shadow: "0 4px 4px rgba(10,19,35,0.10)", text: "#0a1323",
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
|
|
152
222
|
export const tokens = {
|
|
153
223
|
color,
|
|
154
|
-
|
|
224
|
+
priority,
|
|
225
|
+
ticketStatus,
|
|
226
|
+
surface,
|
|
227
|
+
feedback,
|
|
228
|
+
shadow,
|
|
155
229
|
font,
|
|
156
230
|
fontSize,
|
|
157
231
|
space,
|
|
158
232
|
radius,
|
|
159
233
|
opacity,
|
|
160
|
-
shadow,
|
|
161
234
|
effect,
|
|
235
|
+
portal,
|
|
236
|
+
legacy,
|
|
162
237
|
};
|
|
163
238
|
export default tokens;
|