@12min/ds 0.1.0 → 3.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/README.md +84 -51
- package/dist/Checkbox.styles-DPyXzxFJ.d.mts +90 -0
- package/dist/Checkbox.styles-DPyXzxFJ.d.ts +90 -0
- package/dist/chunk-ZK7NW4WW.mjs +247 -0
- package/dist/chunk-ZK7NW4WW.mjs.map +1 -0
- package/dist/chunk-ZKPOS2PD.mjs +192 -0
- package/dist/chunk-ZKPOS2PD.mjs.map +1 -0
- package/dist/index.native.d.mts +184 -2
- package/dist/index.native.d.ts +184 -2
- package/dist/index.native.js +1160 -62
- package/dist/index.native.js.map +1 -1
- package/dist/index.native.mjs +742 -5
- package/dist/index.native.mjs.map +1 -1
- package/dist/index.web.d.mts +182 -22
- package/dist/index.web.d.ts +182 -22
- package/dist/index.web.js +1052 -62
- package/dist/index.web.js.map +1 -1
- package/dist/index.web.mjs +644 -4
- package/dist/index.web.mjs.map +1 -1
- package/dist/tailwind/theme.css +300 -38
- package/dist/tokens/index.d.mts +385 -37
- package/dist/tokens/index.d.ts +385 -37
- package/dist/tokens/index.js +242 -33
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/index.mjs +17 -3
- package/package.json +28 -5
- package/dist/chunk-E2C4G6H4.mjs +0 -45
- package/dist/chunk-E2C4G6H4.mjs.map +0 -1
- package/dist/chunk-QIJRSFZB.mjs +0 -41
- package/dist/chunk-QIJRSFZB.mjs.map +0 -1
package/dist/index.web.js
CHANGED
|
@@ -20,88 +20,1078 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// index.web.ts
|
|
21
21
|
var index_web_exports = {};
|
|
22
22
|
__export(index_web_exports, {
|
|
23
|
+
Alert: () => Alert,
|
|
24
|
+
Button: () => Button,
|
|
25
|
+
ButtonIcon: () => ButtonIcon,
|
|
26
|
+
Checkbox: () => Checkbox,
|
|
27
|
+
Chip: () => Chip,
|
|
28
|
+
ChoiceCard: () => ChoiceCard,
|
|
29
|
+
DismissButton: () => DismissButton,
|
|
30
|
+
Input: () => Input,
|
|
31
|
+
InputField: () => InputField,
|
|
32
|
+
ListItem: () => ListItem,
|
|
33
|
+
ProgressBar: () => ProgressBar,
|
|
34
|
+
RadioGroup: () => RadioGroup,
|
|
35
|
+
RatingScale: () => RatingScale,
|
|
36
|
+
Stepper: () => Stepper,
|
|
37
|
+
ToggleSwitch: () => ToggleSwitch,
|
|
38
|
+
borderWidth: () => borderWidth,
|
|
23
39
|
colors: () => colors,
|
|
24
40
|
darkTheme: () => darkTheme,
|
|
25
|
-
|
|
41
|
+
grid: () => grid,
|
|
42
|
+
lightTheme: () => lightTheme,
|
|
43
|
+
opacity: () => opacity,
|
|
44
|
+
radius: () => radius,
|
|
45
|
+
shadow: () => shadow,
|
|
46
|
+
spacing: () => spacing,
|
|
47
|
+
typography: () => typography
|
|
26
48
|
});
|
|
27
49
|
module.exports = __toCommonJS(index_web_exports);
|
|
28
50
|
|
|
29
51
|
// src/tokens/colors.ts
|
|
30
52
|
var colors = {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
53
|
+
marianBlue: {
|
|
54
|
+
50: "#FAFBFF",
|
|
55
|
+
100: "#F6F8FF",
|
|
56
|
+
200: "#E1E7FF",
|
|
57
|
+
300: "#C3CCF7",
|
|
58
|
+
400: "#94A5F2",
|
|
59
|
+
500: "#697DD6",
|
|
60
|
+
600: "#4357AD",
|
|
61
|
+
700: "#31428B",
|
|
62
|
+
800: "#25326A",
|
|
63
|
+
900: "#131937"
|
|
64
|
+
},
|
|
65
|
+
midnight: {
|
|
66
|
+
50: "#707070",
|
|
67
|
+
100: "#5C5C5C",
|
|
68
|
+
200: "#525252",
|
|
69
|
+
300: "#474747",
|
|
70
|
+
400: "#3D3D3D",
|
|
71
|
+
500: "#333333",
|
|
72
|
+
600: "#292929",
|
|
73
|
+
700: "#161616",
|
|
74
|
+
800: "#141414",
|
|
75
|
+
900: "#0A0A0A"
|
|
76
|
+
},
|
|
77
|
+
gray: {
|
|
78
|
+
15: "#F4F5F8",
|
|
79
|
+
25: "#EDEEF1",
|
|
80
|
+
35: "#DDE0E6",
|
|
81
|
+
50: "#B1B5BE",
|
|
82
|
+
100: "#A6ABB5",
|
|
83
|
+
200: "#9BA0AB",
|
|
84
|
+
300: "#9095A2",
|
|
85
|
+
400: "#858B99",
|
|
86
|
+
500: "#7A8190",
|
|
87
|
+
600: "#6F7685",
|
|
88
|
+
700: "#5E6471",
|
|
89
|
+
800: "#5D636F",
|
|
90
|
+
900: "#545964"
|
|
91
|
+
},
|
|
92
|
+
amber: {
|
|
93
|
+
50: "#FFFBEB",
|
|
94
|
+
100: "#FEF3C7",
|
|
95
|
+
200: "#FDE68A",
|
|
96
|
+
300: "#FCD34D",
|
|
97
|
+
400: "#FBBF24",
|
|
98
|
+
500: "#F59E0B",
|
|
99
|
+
600: "#D97706",
|
|
100
|
+
700: "#B45309",
|
|
101
|
+
800: "#92400E",
|
|
102
|
+
900: "#78350F",
|
|
103
|
+
text: "#BA5C0A"
|
|
104
|
+
},
|
|
105
|
+
yellow: {
|
|
106
|
+
50: "#FFF2D6",
|
|
107
|
+
100: "#FFECC2",
|
|
108
|
+
200: "#FFE5AD",
|
|
109
|
+
300: "#FFDF99",
|
|
110
|
+
400: "#FFD885",
|
|
111
|
+
500: "#FFD270",
|
|
112
|
+
600: "#FFCB5C",
|
|
113
|
+
700: "#FFC140",
|
|
114
|
+
800: "#FFBE33",
|
|
115
|
+
900: "#FFB81F"
|
|
116
|
+
},
|
|
117
|
+
ketchup: {
|
|
118
|
+
50: "#FEF2F2",
|
|
119
|
+
100: "#FEE2E2",
|
|
120
|
+
200: "#FECACA",
|
|
121
|
+
300: "#FCA5A5",
|
|
122
|
+
400: "#F87171",
|
|
123
|
+
500: "#EF4444",
|
|
124
|
+
600: "#DC2626",
|
|
125
|
+
700: "#B91C1C",
|
|
126
|
+
800: "#991B1B",
|
|
127
|
+
900: "#7F1D1D",
|
|
128
|
+
text: "#D91F3C"
|
|
129
|
+
},
|
|
130
|
+
green: {
|
|
131
|
+
50: "#F2FDF4",
|
|
132
|
+
100: "#E5FBE9",
|
|
133
|
+
200: "#C7F4D0",
|
|
134
|
+
300: "#99E5AC",
|
|
135
|
+
400: "#5FCD80",
|
|
136
|
+
500: "#36B260",
|
|
137
|
+
600: "#258F4B",
|
|
138
|
+
700: "#1B6F3B",
|
|
139
|
+
800: "#145430",
|
|
140
|
+
900: "#0E3622",
|
|
141
|
+
text: "#0E8745"
|
|
142
|
+
},
|
|
143
|
+
blue: {
|
|
144
|
+
50: "#EFF6FF",
|
|
145
|
+
100: "#DBEAFE",
|
|
146
|
+
200: "#BFDBFE",
|
|
147
|
+
300: "#93C5FD",
|
|
148
|
+
400: "#60A5FA",
|
|
149
|
+
500: "#3B82F6",
|
|
150
|
+
600: "#2563EB",
|
|
151
|
+
700: "#1D4ED8",
|
|
152
|
+
800: "#1E40AF",
|
|
153
|
+
900: "#1E3A8A",
|
|
154
|
+
text: "#1E40AF"
|
|
155
|
+
},
|
|
156
|
+
// Single brand accent green — the vibrant tone that was previously green/300
|
|
157
|
+
// before the green scale was retuned to muted values in the Figma v2 palette.
|
|
158
|
+
brandGreen: "#6DFFB4",
|
|
159
|
+
overlayBlack: {
|
|
160
|
+
5: "#0000000D",
|
|
161
|
+
8: "#00000014",
|
|
162
|
+
12: "#0000001F",
|
|
163
|
+
16: "#00000029"
|
|
164
|
+
},
|
|
165
|
+
overlayWhite: {
|
|
166
|
+
5: "#FFFFFF0D",
|
|
167
|
+
8: "#FFFFFF14",
|
|
168
|
+
12: "#FFFFFF1F",
|
|
169
|
+
16: "#FFFFFF29"
|
|
170
|
+
},
|
|
171
|
+
white: "#FFFFFF",
|
|
172
|
+
black: "#000000"
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
// src/tokens/typography.ts
|
|
176
|
+
var typography = {
|
|
177
|
+
display1: { fontFamily: "Poppins", fontSize: 32, fontWeight: "700", lineHeight: 40, letterSpacing: -1, textTransform: "none" },
|
|
178
|
+
display2: { fontFamily: "Poppins", fontSize: 32, fontWeight: "700", lineHeight: 40, letterSpacing: -1, textTransform: "none" },
|
|
179
|
+
h1: { fontFamily: "Poppins", fontSize: 24, fontWeight: "700", lineHeight: 32, letterSpacing: -1, textTransform: "none" },
|
|
180
|
+
h2: { fontFamily: "Poppins", fontSize: 20, fontWeight: "700", lineHeight: 28, letterSpacing: 0, textTransform: "none" },
|
|
181
|
+
h3: { fontFamily: "Poppins", fontSize: 16, fontWeight: "600", lineHeight: 24, letterSpacing: 0, textTransform: "none" },
|
|
182
|
+
bodyLarge: { fontFamily: "Inter", fontSize: 16, fontWeight: "500", lineHeight: 24, letterSpacing: 0, textTransform: "none" },
|
|
183
|
+
bodyDefault: { fontFamily: "Inter", fontSize: 14, fontWeight: "500", lineHeight: 20, letterSpacing: 0, textTransform: "none" },
|
|
184
|
+
bodySmall: { fontFamily: "Inter", fontSize: 12, fontWeight: "400", lineHeight: 16, letterSpacing: 0.2, textTransform: "none" },
|
|
185
|
+
labelLarge: { fontFamily: "Inter", fontSize: 16, fontWeight: "600", lineHeight: 20, letterSpacing: 0, textTransform: "none" },
|
|
186
|
+
labelDefault: { fontFamily: "Inter", fontSize: 14, fontWeight: "600", lineHeight: 20, letterSpacing: 0, textTransform: "none" },
|
|
187
|
+
labelSmall: { fontFamily: "Inter", fontSize: 12, fontWeight: "600", lineHeight: 16, letterSpacing: 0.2, textTransform: "none" },
|
|
188
|
+
labelTiny: { fontFamily: "Inter", fontSize: 10, fontWeight: "600", lineHeight: 14, letterSpacing: 0, textTransform: "none" },
|
|
189
|
+
caption: { fontFamily: "Inter", fontSize: 12, fontWeight: "500", lineHeight: 16, letterSpacing: 0.5, textTransform: "none" },
|
|
190
|
+
captionUppercase: { fontFamily: "Inter", fontSize: 12, fontWeight: "500", lineHeight: 16, letterSpacing: 0.5, textTransform: "uppercase" },
|
|
191
|
+
overline: { fontFamily: "Inter", fontSize: 10, fontWeight: "600", lineHeight: 16, letterSpacing: 8, textTransform: "uppercase" },
|
|
192
|
+
buttonLarge: { fontFamily: "Inter", fontSize: 16, fontWeight: "600", lineHeight: 20, letterSpacing: 0, textTransform: "none" },
|
|
193
|
+
buttonDefault: { fontFamily: "Inter", fontSize: 14, fontWeight: "600", lineHeight: 20, letterSpacing: 0, textTransform: "none" },
|
|
194
|
+
buttonSmall: { fontFamily: "Inter", fontSize: 12, fontWeight: "600", lineHeight: 16, letterSpacing: 0, textTransform: "none" }
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
// src/tokens/spacing.ts
|
|
198
|
+
var spacing = {
|
|
199
|
+
unit: 4,
|
|
200
|
+
gap: {
|
|
201
|
+
"0.5": 2,
|
|
202
|
+
"1": 4,
|
|
203
|
+
"2": 8,
|
|
204
|
+
"3": 12,
|
|
205
|
+
"4": 16,
|
|
206
|
+
"5": 20,
|
|
207
|
+
"6": 24,
|
|
208
|
+
"8": 32,
|
|
209
|
+
"10": 40,
|
|
210
|
+
"12": 48,
|
|
211
|
+
"14": 56,
|
|
212
|
+
"16": 64,
|
|
213
|
+
"18": 72,
|
|
214
|
+
"20": 80,
|
|
215
|
+
"22": 88,
|
|
216
|
+
"24": 96
|
|
217
|
+
},
|
|
218
|
+
screen: {
|
|
219
|
+
x: 16,
|
|
220
|
+
y: 24
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
// src/tokens/grid.ts
|
|
225
|
+
var grid = {
|
|
226
|
+
// 8px square baseline — line-height/* steps 16/24/32/40 snap; 20 and 28 land on a half-cell
|
|
227
|
+
baseline: 8,
|
|
228
|
+
breakpoints: {
|
|
229
|
+
mobile: 0,
|
|
230
|
+
tablet: 768,
|
|
231
|
+
desktop: 1024
|
|
232
|
+
},
|
|
233
|
+
columns: {
|
|
234
|
+
mobile: 4,
|
|
235
|
+
tablet: 8,
|
|
236
|
+
desktop: 12
|
|
237
|
+
},
|
|
238
|
+
gutter: {
|
|
239
|
+
mobile: 8,
|
|
240
|
+
tablet: 16,
|
|
241
|
+
desktop: 24
|
|
242
|
+
},
|
|
243
|
+
margin: {
|
|
244
|
+
mobile: 20,
|
|
245
|
+
tablet: 24,
|
|
246
|
+
desktop: 32
|
|
67
247
|
}
|
|
68
248
|
};
|
|
69
249
|
|
|
250
|
+
// src/tokens/radius.ts
|
|
251
|
+
var radius = {
|
|
252
|
+
none: 0,
|
|
253
|
+
sm: 8,
|
|
254
|
+
md: 12,
|
|
255
|
+
lg: 16,
|
|
256
|
+
xl: 20,
|
|
257
|
+
"2xl": 24,
|
|
258
|
+
full: 9999,
|
|
259
|
+
button: 16,
|
|
260
|
+
card: 20,
|
|
261
|
+
input: 12,
|
|
262
|
+
chip: 9999,
|
|
263
|
+
badge: 8
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
// src/tokens/borderWidth.ts
|
|
267
|
+
var borderWidth = {
|
|
268
|
+
default: 1,
|
|
269
|
+
strong: 1.5,
|
|
270
|
+
heavy: 2
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
// src/tokens/shadow.ts
|
|
274
|
+
var shadow = {
|
|
275
|
+
sm: { offsetX: 0, offsetY: 1, blur: 3, spread: 0, color: "#000000", opacity: { light: 0.08, dark: 0.4 } },
|
|
276
|
+
md: { offsetX: 0, offsetY: 4, blur: 12, spread: 0, color: "#000000", opacity: { light: 0.1, dark: 0.5 } },
|
|
277
|
+
lg: { offsetX: 0, offsetY: 8, blur: 24, spread: -4, color: "#000000", opacity: { light: 0.12, dark: 0.6 } }
|
|
278
|
+
};
|
|
279
|
+
|
|
280
|
+
// src/tokens/opacity.ts
|
|
281
|
+
var opacity = {
|
|
282
|
+
disabled: 0.4,
|
|
283
|
+
hover: 0.08,
|
|
284
|
+
pressed: 0.12
|
|
285
|
+
};
|
|
286
|
+
|
|
70
287
|
// src/themes/lightTheme.ts
|
|
71
288
|
var lightTheme = {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
289
|
+
bg: {
|
|
290
|
+
primary: colors.marianBlue[600],
|
|
291
|
+
primaryHover: colors.marianBlue[700],
|
|
292
|
+
primaryPressed: colors.marianBlue[800],
|
|
293
|
+
primarySubtle: colors.marianBlue[200],
|
|
294
|
+
primarySubtleHover: colors.marianBlue[300],
|
|
295
|
+
primarySubtlePressed: colors.marianBlue[400],
|
|
296
|
+
surface: colors.white,
|
|
297
|
+
surfaceRaised: colors.marianBlue[50],
|
|
298
|
+
surfaceHover: colors.gray[15],
|
|
299
|
+
surfacePressed: colors.gray[35],
|
|
300
|
+
overlay: colors.marianBlue[900],
|
|
301
|
+
overlaySubtle: colors.overlayBlack[8],
|
|
302
|
+
overlaySubtleHover: colors.overlayBlack[12],
|
|
303
|
+
overlaySubtlePressed: colors.overlayBlack[16],
|
|
304
|
+
success: colors.green[600],
|
|
305
|
+
successSubtle: colors.green[100],
|
|
306
|
+
error: colors.ketchup[600],
|
|
307
|
+
errorSubtle: colors.ketchup[100],
|
|
308
|
+
warning: colors.amber[500],
|
|
309
|
+
warningSubtle: colors.amber[100],
|
|
310
|
+
info: colors.blue[500],
|
|
311
|
+
infoSubtle: colors.blue[100],
|
|
312
|
+
highlight: colors.brandGreen,
|
|
313
|
+
accent: colors.amber[500],
|
|
314
|
+
accentSubtle: colors.amber[100],
|
|
315
|
+
disabled: colors.gray[25]
|
|
316
|
+
},
|
|
317
|
+
text: {
|
|
318
|
+
primary: colors.marianBlue[900],
|
|
319
|
+
secondary: colors.gray[700],
|
|
320
|
+
inverse: colors.white,
|
|
321
|
+
brand: colors.marianBlue[600],
|
|
322
|
+
link: colors.marianBlue[600],
|
|
323
|
+
placeholder: colors.gray[400],
|
|
324
|
+
success: colors.green.text,
|
|
325
|
+
error: colors.ketchup.text,
|
|
326
|
+
warning: colors.amber.text,
|
|
327
|
+
info: colors.blue.text,
|
|
328
|
+
highlight: colors.marianBlue[900],
|
|
329
|
+
accent: colors.amber.text,
|
|
330
|
+
disabled: colors.gray[400],
|
|
331
|
+
onSuccess: colors.white,
|
|
332
|
+
onError: colors.white,
|
|
333
|
+
onWarning: colors.midnight[900],
|
|
334
|
+
onHighlight: colors.midnight[900]
|
|
335
|
+
},
|
|
336
|
+
border: {
|
|
337
|
+
default: colors.marianBlue[200],
|
|
338
|
+
strong: colors.marianBlue[600],
|
|
339
|
+
subtle: colors.overlayBlack[5],
|
|
340
|
+
focus: colors.black,
|
|
341
|
+
accent: colors.amber[700],
|
|
342
|
+
success: colors.green.text,
|
|
343
|
+
error: colors.ketchup[600],
|
|
344
|
+
warning: colors.amber[700],
|
|
345
|
+
info: colors.blue[600],
|
|
346
|
+
disabled: colors.gray[50]
|
|
347
|
+
},
|
|
348
|
+
icon: {
|
|
349
|
+
primary: colors.marianBlue[900],
|
|
350
|
+
secondary: colors.gray[600],
|
|
351
|
+
inverse: colors.white,
|
|
352
|
+
brand: colors.marianBlue[600],
|
|
353
|
+
accent: colors.amber[700],
|
|
354
|
+
success: colors.green.text,
|
|
355
|
+
error: colors.ketchup[600],
|
|
356
|
+
warning: colors.amber[600],
|
|
357
|
+
info: colors.blue[600],
|
|
358
|
+
highlight: colors.marianBlue[900],
|
|
359
|
+
disabled: colors.gray[400]
|
|
360
|
+
},
|
|
361
|
+
interactive: {
|
|
362
|
+
hover: colors.overlayBlack[8],
|
|
363
|
+
pressed: colors.overlayBlack[12],
|
|
364
|
+
selected: colors.marianBlue[700],
|
|
365
|
+
selectedSubtle: colors.marianBlue[200]
|
|
366
|
+
}
|
|
84
367
|
};
|
|
85
368
|
|
|
86
369
|
// src/themes/darkTheme.ts
|
|
87
370
|
var darkTheme = {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
371
|
+
bg: {
|
|
372
|
+
primary: colors.marianBlue[600],
|
|
373
|
+
primaryHover: colors.marianBlue[500],
|
|
374
|
+
primaryPressed: colors.marianBlue[600],
|
|
375
|
+
primarySubtle: colors.marianBlue[900],
|
|
376
|
+
primarySubtleHover: colors.marianBlue[800],
|
|
377
|
+
primarySubtlePressed: colors.marianBlue[700],
|
|
378
|
+
surface: colors.midnight[900],
|
|
379
|
+
surfaceRaised: colors.midnight[800],
|
|
380
|
+
surfaceHover: colors.midnight[800],
|
|
381
|
+
surfacePressed: colors.midnight[600],
|
|
382
|
+
overlay: colors.black,
|
|
383
|
+
overlaySubtle: colors.overlayWhite[8],
|
|
384
|
+
overlaySubtleHover: colors.overlayWhite[12],
|
|
385
|
+
overlaySubtlePressed: colors.overlayWhite[16],
|
|
386
|
+
success: colors.green[300],
|
|
387
|
+
successSubtle: colors.green[800],
|
|
388
|
+
error: colors.ketchup[900],
|
|
389
|
+
errorSubtle: colors.ketchup[800],
|
|
390
|
+
warning: colors.amber[900],
|
|
391
|
+
warningSubtle: colors.amber[800],
|
|
392
|
+
info: colors.blue[600],
|
|
393
|
+
infoSubtle: colors.blue[700],
|
|
394
|
+
highlight: colors.brandGreen,
|
|
395
|
+
accent: colors.amber[900],
|
|
396
|
+
accentSubtle: colors.amber[900],
|
|
397
|
+
disabled: colors.midnight[700]
|
|
398
|
+
},
|
|
399
|
+
text: {
|
|
400
|
+
primary: colors.white,
|
|
401
|
+
secondary: colors.gray[300],
|
|
402
|
+
inverse: colors.midnight[900],
|
|
403
|
+
brand: colors.marianBlue[300],
|
|
404
|
+
link: colors.marianBlue[300],
|
|
405
|
+
placeholder: colors.gray[400],
|
|
406
|
+
success: colors.green[500],
|
|
407
|
+
error: colors.ketchup[600],
|
|
408
|
+
warning: colors.amber[500],
|
|
409
|
+
info: colors.blue[100],
|
|
410
|
+
highlight: colors.marianBlue[900],
|
|
411
|
+
accent: colors.amber.text,
|
|
412
|
+
disabled: colors.gray[600],
|
|
413
|
+
onSuccess: colors.white,
|
|
414
|
+
onError: colors.white,
|
|
415
|
+
onWarning: colors.midnight[900],
|
|
416
|
+
onHighlight: colors.midnight[900]
|
|
417
|
+
},
|
|
418
|
+
border: {
|
|
419
|
+
default: colors.midnight[50],
|
|
420
|
+
strong: colors.marianBlue[300],
|
|
421
|
+
subtle: colors.overlayWhite[5],
|
|
422
|
+
focus: colors.white,
|
|
423
|
+
accent: colors.amber.text,
|
|
424
|
+
success: colors.green.text,
|
|
425
|
+
error: colors.ketchup[500],
|
|
426
|
+
warning: colors.amber[600],
|
|
427
|
+
info: colors.blue[500],
|
|
428
|
+
disabled: colors.midnight[700]
|
|
429
|
+
},
|
|
430
|
+
icon: {
|
|
431
|
+
primary: colors.white,
|
|
432
|
+
secondary: colors.gray[400],
|
|
433
|
+
inverse: colors.midnight[900],
|
|
434
|
+
brand: colors.marianBlue[300],
|
|
435
|
+
accent: colors.amber[700],
|
|
436
|
+
success: colors.green.text,
|
|
437
|
+
error: colors.ketchup.text,
|
|
438
|
+
warning: colors.amber[100],
|
|
439
|
+
info: colors.blue[100],
|
|
440
|
+
highlight: colors.marianBlue[900],
|
|
441
|
+
disabled: colors.gray[600]
|
|
442
|
+
},
|
|
443
|
+
interactive: {
|
|
444
|
+
hover: colors.overlayWhite[8],
|
|
445
|
+
pressed: colors.overlayWhite[12],
|
|
446
|
+
selected: colors.marianBlue[800],
|
|
447
|
+
selectedSubtle: colors.marianBlue[900]
|
|
448
|
+
}
|
|
449
|
+
};
|
|
450
|
+
|
|
451
|
+
// src/components/Button/Button.web.tsx
|
|
452
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
453
|
+
|
|
454
|
+
// src/utils/cn.ts
|
|
455
|
+
var import_clsx = require("clsx");
|
|
456
|
+
var import_tailwind_merge = require("tailwind-merge");
|
|
457
|
+
function cn(...inputs) {
|
|
458
|
+
return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
// src/components/Button/Button.web.tsx
|
|
462
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
463
|
+
var button = (0, import_class_variance_authority.cva)(
|
|
464
|
+
"inline-flex items-center justify-center gap-2 rounded-full transition-colors disabled:cursor-not-allowed focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-black dark:focus-visible:ring-white",
|
|
465
|
+
{
|
|
466
|
+
variants: {
|
|
467
|
+
variant: {
|
|
468
|
+
primary: "bg-marian-blue-600 text-white dark:text-midnight-900 enabled:hover:bg-marian-blue-700 dark:enabled:hover:bg-marian-blue-500 enabled:active:bg-marian-blue-800 dark:enabled:active:bg-marian-blue-600 disabled:bg-gray-25 disabled:text-gray-400 dark:disabled:bg-midnight-700 dark:disabled:text-gray-600",
|
|
469
|
+
secondary: "bg-marian-blue-200 text-marian-blue-900 dark:bg-marian-blue-900 dark:text-white enabled:hover:bg-marian-blue-300 dark:enabled:hover:bg-marian-blue-800 enabled:active:bg-marian-blue-400 dark:enabled:active:bg-marian-blue-700 disabled:bg-gray-25 disabled:text-gray-400 dark:disabled:bg-midnight-700 dark:disabled:text-gray-600",
|
|
470
|
+
ghost: "bg-transparent text-marian-blue-600 dark:text-marian-blue-300 enabled:hover:bg-marian-blue-200 dark:enabled:hover:bg-marian-blue-900 enabled:active:bg-marian-blue-300 dark:enabled:active:bg-marian-blue-800 disabled:text-gray-400 dark:disabled:text-gray-600"
|
|
471
|
+
},
|
|
472
|
+
size: {
|
|
473
|
+
sm: "h-8 px-3 text-button-small",
|
|
474
|
+
md: "h-10 px-4 text-button-default",
|
|
475
|
+
lg: "h-12 px-6 text-button-large"
|
|
476
|
+
}
|
|
477
|
+
},
|
|
478
|
+
defaultVariants: {
|
|
479
|
+
variant: "primary",
|
|
480
|
+
size: "lg"
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
);
|
|
484
|
+
function Button({ variant, size, disabled, children, onClick, type = "button", className }) {
|
|
485
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
486
|
+
"button",
|
|
487
|
+
{
|
|
488
|
+
type,
|
|
489
|
+
disabled,
|
|
490
|
+
onClick,
|
|
491
|
+
className: cn(button({ variant, size }), className),
|
|
492
|
+
children
|
|
493
|
+
}
|
|
494
|
+
);
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
// src/components/ButtonIcon/ButtonIcon.web.tsx
|
|
498
|
+
var import_class_variance_authority2 = require("class-variance-authority");
|
|
499
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
500
|
+
var buttonIcon = (0, import_class_variance_authority2.cva)(
|
|
501
|
+
"inline-flex items-center justify-center shrink-0 rounded-full transition-colors disabled:cursor-not-allowed focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-black dark:focus-visible:ring-white",
|
|
502
|
+
{
|
|
503
|
+
variants: {
|
|
504
|
+
variant: {
|
|
505
|
+
primary: "bg-marian-blue-600 text-white dark:text-midnight-900 enabled:hover:bg-marian-blue-700 dark:enabled:hover:bg-marian-blue-500 enabled:active:bg-marian-blue-800 dark:enabled:active:bg-marian-blue-600 disabled:bg-gray-25 disabled:text-gray-400 dark:disabled:bg-midnight-700 dark:disabled:text-gray-600",
|
|
506
|
+
secondary: "bg-marian-blue-200 text-marian-blue-900 dark:bg-marian-blue-900 dark:text-white enabled:hover:bg-marian-blue-300 dark:enabled:hover:bg-marian-blue-800 enabled:active:bg-marian-blue-400 dark:enabled:active:bg-marian-blue-700 disabled:bg-gray-25 disabled:text-gray-400 dark:disabled:bg-midnight-700 dark:disabled:text-gray-600",
|
|
507
|
+
ghost: "bg-transparent text-marian-blue-600 dark:text-marian-blue-300 enabled:hover:bg-marian-blue-200 dark:enabled:hover:bg-marian-blue-900 enabled:active:bg-marian-blue-300 dark:enabled:active:bg-marian-blue-800 disabled:text-gray-400 dark:disabled:text-gray-600",
|
|
508
|
+
overlay: "bg-overlay-black-8 text-marian-blue-900 dark:bg-overlay-white-8 dark:text-white enabled:hover:bg-overlay-black-12 dark:enabled:hover:bg-overlay-white-12 enabled:active:bg-overlay-black-16 dark:enabled:active:bg-overlay-white-16 disabled:bg-gray-25 disabled:text-gray-400 dark:disabled:bg-midnight-700 dark:disabled:text-gray-600"
|
|
509
|
+
},
|
|
510
|
+
size: {
|
|
511
|
+
sm: "size-10",
|
|
512
|
+
md: "size-12",
|
|
513
|
+
lg: "size-16"
|
|
514
|
+
}
|
|
515
|
+
},
|
|
516
|
+
defaultVariants: {
|
|
517
|
+
variant: "primary",
|
|
518
|
+
size: "md"
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
);
|
|
522
|
+
function ButtonIcon({ variant, size, icon, label, disabled, onClick, type = "button", className }) {
|
|
523
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
524
|
+
"button",
|
|
525
|
+
{
|
|
526
|
+
type,
|
|
527
|
+
disabled,
|
|
528
|
+
onClick,
|
|
529
|
+
"aria-label": label,
|
|
530
|
+
className: cn(buttonIcon({ variant, size }), className),
|
|
531
|
+
children: icon
|
|
532
|
+
}
|
|
533
|
+
);
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
// src/components/DismissButton/DismissButton.web.tsx
|
|
537
|
+
var import_class_variance_authority3 = require("class-variance-authority");
|
|
538
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
539
|
+
var dismissButton = (0, import_class_variance_authority3.cva)(
|
|
540
|
+
"inline-flex items-center justify-center shrink-0 rounded-full transition-colors disabled:cursor-not-allowed focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-black dark:focus-visible:ring-white",
|
|
541
|
+
{
|
|
542
|
+
variants: {
|
|
543
|
+
variant: {
|
|
544
|
+
subtle: "bg-overlay-black-8 text-marian-blue-900 dark:bg-overlay-white-8 dark:text-white enabled:hover:bg-overlay-black-12 dark:enabled:hover:bg-overlay-white-12 enabled:active:bg-overlay-black-16 dark:enabled:active:bg-overlay-white-16 disabled:bg-gray-25 disabled:text-gray-400 dark:disabled:bg-midnight-700 dark:disabled:text-gray-600",
|
|
545
|
+
ghost: "bg-transparent text-marian-blue-900 dark:text-white enabled:hover:bg-marian-blue-200 dark:enabled:hover:bg-marian-blue-900 enabled:active:bg-marian-blue-300 dark:enabled:active:bg-marian-blue-800 disabled:text-gray-400 dark:disabled:text-gray-600"
|
|
546
|
+
},
|
|
547
|
+
size: {
|
|
548
|
+
xs: "size-5",
|
|
549
|
+
sm: "size-8",
|
|
550
|
+
md: "size-10"
|
|
551
|
+
}
|
|
552
|
+
},
|
|
553
|
+
defaultVariants: {
|
|
554
|
+
variant: "subtle",
|
|
555
|
+
size: "sm"
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
);
|
|
559
|
+
var glyphSize = {
|
|
560
|
+
xs: 12,
|
|
561
|
+
sm: 16,
|
|
562
|
+
md: 20
|
|
100
563
|
};
|
|
564
|
+
function DismissButton({ variant, size = "sm", label = "Fechar", disabled, onClick, className }) {
|
|
565
|
+
const s = glyphSize[size ?? "sm"];
|
|
566
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
567
|
+
"button",
|
|
568
|
+
{
|
|
569
|
+
type: "button",
|
|
570
|
+
disabled,
|
|
571
|
+
onClick,
|
|
572
|
+
"aria-label": label,
|
|
573
|
+
className: cn(dismissButton({ variant, size }), className),
|
|
574
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { width: s, height: s, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M18 6 6 18M6 6l12 12" }) })
|
|
575
|
+
}
|
|
576
|
+
);
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
// src/components/Chip/Chip.web.tsx
|
|
580
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
581
|
+
var sizeCls = {
|
|
582
|
+
sm: "h-8 px-3 text-xs leading-4 tracking-[0.5px]",
|
|
583
|
+
md: "h-11 px-4 text-sm leading-5"
|
|
584
|
+
};
|
|
585
|
+
function Chip({ children, checked = false, disabled = false, size = "md", leading, trailing, onClick, className }) {
|
|
586
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
587
|
+
"button",
|
|
588
|
+
{
|
|
589
|
+
type: "button",
|
|
590
|
+
role: "button",
|
|
591
|
+
"aria-pressed": checked,
|
|
592
|
+
disabled,
|
|
593
|
+
onClick,
|
|
594
|
+
className: cn(
|
|
595
|
+
"inline-flex items-center justify-center gap-2 rounded-full border border-solid transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-marian-blue-900 dark:focus-visible:ring-white",
|
|
596
|
+
sizeCls[size],
|
|
597
|
+
checked ? "font-semibold" : "font-medium",
|
|
598
|
+
disabled ? "cursor-not-allowed border-gray-50 bg-gray-25 text-gray-400 dark:border-midnight-700 dark:bg-midnight-700 dark:text-gray-600" : checked ? "cursor-pointer border-marian-blue-700 bg-marian-blue-700 text-white enabled:hover:bg-marian-blue-800 enabled:active:bg-marian-blue-900 dark:border-marian-blue-800 dark:bg-marian-blue-800 dark:enabled:hover:bg-marian-blue-900" : "cursor-pointer border-marian-blue-200 bg-transparent text-marian-blue-900 enabled:hover:bg-marian-blue-700/[0.08] enabled:active:bg-marian-blue-700/[0.12] dark:border-midnight-50 dark:text-white dark:enabled:hover:bg-marian-blue-800/[0.08] dark:enabled:active:bg-marian-blue-800/[0.12]",
|
|
599
|
+
className
|
|
600
|
+
),
|
|
601
|
+
children: [
|
|
602
|
+
leading && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "shrink-0", children: leading }),
|
|
603
|
+
children,
|
|
604
|
+
trailing && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "shrink-0", children: trailing })
|
|
605
|
+
]
|
|
606
|
+
}
|
|
607
|
+
);
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
// src/components/Alert/Alert.web.tsx
|
|
611
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
612
|
+
var variantStyles = {
|
|
613
|
+
success: { bg: "bg-green-100 dark:bg-green-800", icon: "text-green-text" },
|
|
614
|
+
info: { bg: "bg-blue-100 dark:bg-blue-700", icon: "text-blue-600 dark:text-blue-100" },
|
|
615
|
+
warning: { bg: "bg-amber-100 dark:bg-amber-800", icon: "text-amber-600 dark:text-amber-100" },
|
|
616
|
+
error: { bg: "bg-ketchup-100 dark:bg-ketchup-800", icon: "text-ketchup-600 dark:text-ketchup-text" }
|
|
617
|
+
};
|
|
618
|
+
function AlertIcon({ variant }) {
|
|
619
|
+
const common = { width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true };
|
|
620
|
+
switch (variant) {
|
|
621
|
+
case "success":
|
|
622
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("svg", { ...common, children: [
|
|
623
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
|
|
624
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M8.5 12.5 11 15l4.5-5" })
|
|
625
|
+
] });
|
|
626
|
+
case "error":
|
|
627
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("svg", { ...common, children: [
|
|
628
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
|
|
629
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M15 9l-6 6M9 9l6 6" })
|
|
630
|
+
] });
|
|
631
|
+
case "warning":
|
|
632
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("svg", { ...common, children: [
|
|
633
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
|
|
634
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M12 7.5v5M12 16h.01" })
|
|
635
|
+
] });
|
|
636
|
+
case "info":
|
|
637
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("svg", { ...common, children: [
|
|
638
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
|
|
639
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M12 11v5M12 8h.01" })
|
|
640
|
+
] });
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
function Alert({ variant = "info", size = "default", layout = "stacked", title, description, onDismiss, className }) {
|
|
644
|
+
const styles = variantStyles[variant];
|
|
645
|
+
const pad = size === "compact" ? "p-3" : "p-5";
|
|
646
|
+
const gap = size === "compact" ? "gap-2" : "gap-3";
|
|
647
|
+
const icon = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: cn("shrink-0", styles.icon), children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(AlertIcon, { variant }) });
|
|
648
|
+
const body = description && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "text-body-default text-gray-700 dark:text-gray-300 w-full", children: description });
|
|
649
|
+
const close = onDismiss && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("button", { type: "button", onClick: onDismiss, "aria-label": "Fechar", className: "shrink-0 text-marian-blue-900 dark:text-white", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { width: 20, height: 20, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M18 6 6 18M6 6l12 12" }) }) });
|
|
650
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
651
|
+
"div",
|
|
652
|
+
{
|
|
653
|
+
role: variant === "error" ? "alert" : "status",
|
|
654
|
+
className: cn(
|
|
655
|
+
"flex w-full items-start rounded-tl-2xl rounded-tr-2xl rounded-br-2xl border border-solid border-overlay-black-5 dark:border-overlay-white-5",
|
|
656
|
+
pad,
|
|
657
|
+
gap,
|
|
658
|
+
styles.bg,
|
|
659
|
+
className
|
|
660
|
+
),
|
|
661
|
+
children: [
|
|
662
|
+
layout === "inline" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
|
|
663
|
+
icon,
|
|
664
|
+
body
|
|
665
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-1 flex-col gap-2 min-w-0", children: [
|
|
666
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
667
|
+
icon,
|
|
668
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "flex-1 text-h3 text-marian-blue-900 dark:text-white", children: title })
|
|
669
|
+
] }),
|
|
670
|
+
body
|
|
671
|
+
] }),
|
|
672
|
+
close
|
|
673
|
+
]
|
|
674
|
+
}
|
|
675
|
+
);
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
// src/components/ProgressBar/ProgressBar.web.tsx
|
|
679
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
680
|
+
function ProgressBar({ value, className }) {
|
|
681
|
+
const pct = Math.min(100, Math.max(0, value));
|
|
682
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
683
|
+
"div",
|
|
684
|
+
{
|
|
685
|
+
role: "progressbar",
|
|
686
|
+
"aria-valuenow": pct,
|
|
687
|
+
"aria-valuemin": 0,
|
|
688
|
+
"aria-valuemax": 100,
|
|
689
|
+
className: cn(
|
|
690
|
+
"relative h-2 w-full rounded-full bg-gray-15 overflow-hidden dark:bg-midnight-800",
|
|
691
|
+
className
|
|
692
|
+
),
|
|
693
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
694
|
+
"div",
|
|
695
|
+
{
|
|
696
|
+
className: "absolute inset-y-0 left-0 bg-marian-blue-600 rounded-full transition-[width]",
|
|
697
|
+
style: { width: `${pct}%` }
|
|
698
|
+
}
|
|
699
|
+
)
|
|
700
|
+
}
|
|
701
|
+
);
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
// src/components/Input/Input.web.tsx
|
|
705
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
706
|
+
function Input({ value, placeholder = "exemplo@email.com", state = "default", leadingIcon, trailingIcon, onChange, className }) {
|
|
707
|
+
const isDisabled = state === "disabled";
|
|
708
|
+
const isError = state === "error";
|
|
709
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
710
|
+
"div",
|
|
711
|
+
{
|
|
712
|
+
className: cn(
|
|
713
|
+
"flex items-center gap-2 h-12 px-3 rounded-input border border-solid text-body-default transition-colors",
|
|
714
|
+
"focus-within:ring-2 focus-within:ring-black dark:focus-within:ring-white",
|
|
715
|
+
isDisabled ? "bg-gray-25 border-gray-50 text-gray-400 cursor-not-allowed dark:bg-midnight-700 dark:border-midnight-700 dark:text-gray-600" : isError ? "bg-white border-ketchup-600 text-ketchup-text dark:bg-midnight-900 dark:border-ketchup-500 dark:text-ketchup-600" : "bg-white border-marian-blue-200 text-marian-blue-900 dark:bg-midnight-900 dark:border-midnight-50 dark:text-white",
|
|
716
|
+
className
|
|
717
|
+
),
|
|
718
|
+
children: [
|
|
719
|
+
leadingIcon && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "shrink-0 text-current", children: leadingIcon }),
|
|
720
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
721
|
+
"input",
|
|
722
|
+
{
|
|
723
|
+
type: "text",
|
|
724
|
+
value,
|
|
725
|
+
placeholder,
|
|
726
|
+
disabled: isDisabled,
|
|
727
|
+
onChange,
|
|
728
|
+
className: "flex-1 bg-transparent outline-none text-current placeholder:text-gray-500 min-w-0"
|
|
729
|
+
}
|
|
730
|
+
),
|
|
731
|
+
trailingIcon && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "shrink-0 text-current", children: trailingIcon })
|
|
732
|
+
]
|
|
733
|
+
}
|
|
734
|
+
);
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
// src/components/InputField/InputField.web.tsx
|
|
738
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
739
|
+
function InputField({
|
|
740
|
+
label,
|
|
741
|
+
required,
|
|
742
|
+
helperText,
|
|
743
|
+
error,
|
|
744
|
+
value,
|
|
745
|
+
placeholder,
|
|
746
|
+
disabled,
|
|
747
|
+
leadingIcon,
|
|
748
|
+
trailingIcon,
|
|
749
|
+
onChange,
|
|
750
|
+
className
|
|
751
|
+
}) {
|
|
752
|
+
const state = disabled ? "disabled" : error ? "error" : "default";
|
|
753
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: cn("flex flex-col gap-2 w-full", className), children: [
|
|
754
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("label", { className: "flex flex-col gap-2", children: [
|
|
755
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { className: "inline-flex items-center gap-0.5 text-label-default text-marian-blue-900 dark:text-white", children: [
|
|
756
|
+
label,
|
|
757
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { "aria-hidden": "true", className: "text-ketchup-text dark:text-ketchup-600", children: "*" })
|
|
758
|
+
] }),
|
|
759
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
760
|
+
Input,
|
|
761
|
+
{
|
|
762
|
+
state,
|
|
763
|
+
value,
|
|
764
|
+
placeholder,
|
|
765
|
+
leadingIcon,
|
|
766
|
+
trailingIcon,
|
|
767
|
+
onChange
|
|
768
|
+
}
|
|
769
|
+
)
|
|
770
|
+
] }),
|
|
771
|
+
helperText && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: cn("text-caption", error ? "text-ketchup-text dark:text-ketchup-600" : "text-gray-700 dark:text-gray-300"), children: helperText })
|
|
772
|
+
] });
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
// src/components/Checkbox/Checkbox.web.tsx
|
|
776
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
777
|
+
var boxSize = {
|
|
778
|
+
xs: "size-4",
|
|
779
|
+
sm: "size-5",
|
|
780
|
+
md: "size-6"
|
|
781
|
+
};
|
|
782
|
+
function CheckIcon() {
|
|
783
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("svg", { viewBox: "0 0 24 24", fill: "none", className: "w-3/4 h-3/4", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: "M5 12.5 10 17.5 19 7", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
784
|
+
}
|
|
785
|
+
function Checkbox({ checked = false, onChange, disabled = false, size = "sm", className }) {
|
|
786
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
787
|
+
"label",
|
|
788
|
+
{
|
|
789
|
+
className: cn(
|
|
790
|
+
"inline-flex items-center justify-center rounded-full p-1 transition-colors",
|
|
791
|
+
disabled ? "cursor-not-allowed" : "cursor-pointer hover:bg-marian-blue-700/[0.08] active:bg-marian-blue-700/[0.12] dark:hover:bg-marian-blue-800/[0.08] dark:active:bg-marian-blue-800/[0.12]",
|
|
792
|
+
className
|
|
793
|
+
),
|
|
794
|
+
children: [
|
|
795
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
796
|
+
"input",
|
|
797
|
+
{
|
|
798
|
+
type: "checkbox",
|
|
799
|
+
checked,
|
|
800
|
+
disabled,
|
|
801
|
+
onChange: () => onChange?.(!checked),
|
|
802
|
+
className: "peer sr-only"
|
|
803
|
+
}
|
|
804
|
+
),
|
|
805
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
806
|
+
"span",
|
|
807
|
+
{
|
|
808
|
+
className: cn(
|
|
809
|
+
"flex items-center justify-center rounded-[6px] border-2 transition-colors",
|
|
810
|
+
"peer-focus-visible:ring-2 peer-focus-visible:ring-marian-blue-900 dark:peer-focus-visible:ring-white",
|
|
811
|
+
boxSize[size],
|
|
812
|
+
checked ? disabled ? "bg-gray-25 border-gray-25 text-gray-400 dark:bg-midnight-700 dark:border-midnight-700 dark:text-gray-600" : "bg-marian-blue-700 border-marian-blue-700 text-white dark:bg-marian-blue-800 dark:border-marian-blue-800" : disabled ? "border-gray-400 dark:border-gray-600" : "border-gray-600 dark:border-gray-400"
|
|
813
|
+
),
|
|
814
|
+
children: checked && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(CheckIcon, {})
|
|
815
|
+
}
|
|
816
|
+
)
|
|
817
|
+
]
|
|
818
|
+
}
|
|
819
|
+
);
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
// src/components/ToggleSwitch/ToggleSwitch.web.tsx
|
|
823
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
824
|
+
var trackSize = {
|
|
825
|
+
xs: "w-8 h-5",
|
|
826
|
+
sm: "w-10 h-6",
|
|
827
|
+
md: "w-[52px] h-8"
|
|
828
|
+
};
|
|
829
|
+
var knobSize = {
|
|
830
|
+
xs: "size-4",
|
|
831
|
+
sm: "size-5",
|
|
832
|
+
md: "size-7"
|
|
833
|
+
};
|
|
834
|
+
var knobOn = {
|
|
835
|
+
xs: "translate-x-3",
|
|
836
|
+
sm: "translate-x-4",
|
|
837
|
+
md: "translate-x-5"
|
|
838
|
+
};
|
|
839
|
+
function ToggleSwitch({ value = false, onChange, disabled = false, size = "sm", label, className }) {
|
|
840
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
841
|
+
"button",
|
|
842
|
+
{
|
|
843
|
+
type: "button",
|
|
844
|
+
role: "switch",
|
|
845
|
+
"aria-checked": value,
|
|
846
|
+
"aria-label": label,
|
|
847
|
+
disabled,
|
|
848
|
+
onClick: () => onChange?.(!value),
|
|
849
|
+
className: cn(
|
|
850
|
+
"inline-flex shrink-0 items-center rounded-full p-0.5 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-marian-blue-900 dark:focus-visible:ring-white",
|
|
851
|
+
trackSize[size],
|
|
852
|
+
disabled ? "cursor-not-allowed bg-gray-25 dark:bg-midnight-700" : value ? "cursor-pointer bg-marian-blue-700 dark:bg-marian-blue-800" : "cursor-pointer bg-gray-25 dark:bg-midnight-700",
|
|
853
|
+
className
|
|
854
|
+
),
|
|
855
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
856
|
+
"span",
|
|
857
|
+
{
|
|
858
|
+
className: cn(
|
|
859
|
+
"rounded-full transition-transform",
|
|
860
|
+
knobSize[size],
|
|
861
|
+
disabled ? "bg-gray-400 dark:bg-gray-600" : "bg-white dark:bg-midnight-900",
|
|
862
|
+
value ? knobOn[size] : "translate-x-0"
|
|
863
|
+
)
|
|
864
|
+
}
|
|
865
|
+
)
|
|
866
|
+
}
|
|
867
|
+
);
|
|
868
|
+
}
|
|
869
|
+
|
|
870
|
+
// src/components/RadioGroup/RadioGroup.web.tsx
|
|
871
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
872
|
+
function RadioGroup({ children, label, className }) {
|
|
873
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
874
|
+
"div",
|
|
875
|
+
{
|
|
876
|
+
role: "radiogroup",
|
|
877
|
+
"aria-label": label,
|
|
878
|
+
className: cn("flex flex-col gap-2", className),
|
|
879
|
+
children
|
|
880
|
+
}
|
|
881
|
+
);
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
// src/components/ChoiceCard/ChoiceCard.web.tsx
|
|
885
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
886
|
+
function containerClass(selected, disabled) {
|
|
887
|
+
if (disabled) {
|
|
888
|
+
return "cursor-not-allowed border border-gray-50 bg-white dark:border-midnight-700 dark:bg-midnight-900";
|
|
889
|
+
}
|
|
890
|
+
if (selected) {
|
|
891
|
+
return "cursor-pointer border-2 border-marian-blue-600 bg-marian-blue-200 enabled:hover:bg-marian-blue-300 enabled:active:bg-marian-blue-400 dark:border-marian-blue-300 dark:bg-marian-blue-900 dark:enabled:hover:bg-marian-blue-800 dark:enabled:active:bg-marian-blue-700";
|
|
892
|
+
}
|
|
893
|
+
return "cursor-pointer border border-marian-blue-200 bg-white enabled:hover:bg-gray-15 enabled:active:bg-gray-35 dark:border-midnight-50 dark:bg-midnight-900 dark:enabled:hover:bg-midnight-800 dark:enabled:active:bg-midnight-600";
|
|
894
|
+
}
|
|
895
|
+
function CheckGlyph() {
|
|
896
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("svg", { viewBox: "0 0 24 24", fill: "none", className: "w-3/4 h-3/4", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { d: "M5 12.5 10 17.5 19 7", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
897
|
+
}
|
|
898
|
+
function Trailing({ type, selected, disabled }) {
|
|
899
|
+
const off = disabled ? "border-gray-400 dark:border-gray-600" : "border-gray-600 dark:border-gray-400";
|
|
900
|
+
const on = "border-marian-blue-700 dark:border-marian-blue-800";
|
|
901
|
+
if (type === "action") {
|
|
902
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: cn("shrink-0", disabled ? "text-gray-400 dark:text-gray-600" : "text-gray-600 dark:text-gray-400"), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("svg", { width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("path", { d: "M9 6l6 6-6 6" }) }) });
|
|
903
|
+
}
|
|
904
|
+
if (type === "checkbox") {
|
|
905
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: cn("flex size-6 shrink-0 items-center justify-center rounded-[6px] border-2", selected ? cn(on, "bg-marian-blue-700 text-white dark:bg-marian-blue-800") : off), children: selected && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(CheckGlyph, {}) });
|
|
906
|
+
}
|
|
907
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: cn("flex size-6 shrink-0 items-center justify-center rounded-full border-2", selected ? on : off), children: selected && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "size-3 rounded-full bg-marian-blue-700 dark:bg-marian-blue-800" }) });
|
|
908
|
+
}
|
|
909
|
+
function ChoiceCard({ type = "radio", label, description, selected = false, disabled = false, leading, showTrailing = true, onClick, className }) {
|
|
910
|
+
const isSelected = type === "action" ? false : selected;
|
|
911
|
+
const textColor = disabled ? "text-gray-400 dark:text-gray-600" : "text-marian-blue-900 dark:text-white";
|
|
912
|
+
const descColor = disabled ? "text-gray-400 dark:text-gray-600" : "text-gray-700 dark:text-gray-300";
|
|
913
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
914
|
+
"button",
|
|
915
|
+
{
|
|
916
|
+
type: "button",
|
|
917
|
+
role: type === "radio" ? "radio" : type === "checkbox" ? "checkbox" : "button",
|
|
918
|
+
"aria-checked": type === "action" ? void 0 : isSelected,
|
|
919
|
+
disabled,
|
|
920
|
+
onClick,
|
|
921
|
+
className: cn(
|
|
922
|
+
"flex w-full items-center gap-3 rounded-[20px] p-4 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-marian-blue-900 dark:focus-visible:ring-white",
|
|
923
|
+
containerClass(isSelected, disabled),
|
|
924
|
+
className
|
|
925
|
+
),
|
|
926
|
+
children: [
|
|
927
|
+
leading && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "flex size-6 shrink-0 items-center justify-center", children: leading }),
|
|
928
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex flex-1 flex-col gap-1 min-w-0", children: [
|
|
929
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: cn("text-sm leading-5", description ? "font-semibold" : "font-medium", textColor), children: label }),
|
|
930
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: cn("text-sm font-medium leading-5", descColor), children: description })
|
|
931
|
+
] }),
|
|
932
|
+
showTrailing && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Trailing, { type, selected: isSelected, disabled })
|
|
933
|
+
]
|
|
934
|
+
}
|
|
935
|
+
);
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
// src/components/ListItem/ListItem.web.tsx
|
|
939
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
940
|
+
function CheckGlyph2() {
|
|
941
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("svg", { viewBox: "0 0 24 24", fill: "none", className: "w-3/4 h-3/4", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { d: "M5 12.5 10 17.5 19 7", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
942
|
+
}
|
|
943
|
+
function TrailingVisual({ trailing, selected, disabled }) {
|
|
944
|
+
const off = disabled ? "border-gray-400 dark:border-gray-600" : "border-gray-600 dark:border-gray-400";
|
|
945
|
+
const on = "border-marian-blue-700 dark:border-marian-blue-800";
|
|
946
|
+
if (trailing === "action") {
|
|
947
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: cn("shrink-0", disabled ? "text-gray-400 dark:text-gray-600" : "text-gray-600 dark:text-gray-400"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("svg", { width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { d: "M9 6l6 6-6 6" }) }) });
|
|
948
|
+
}
|
|
949
|
+
if (trailing === "checkbox") {
|
|
950
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: cn("flex size-6 shrink-0 items-center justify-center rounded-[6px] border-2", selected ? cn(on, "bg-marian-blue-700 text-white dark:bg-marian-blue-800") : off), children: selected && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CheckGlyph2, {}) });
|
|
951
|
+
}
|
|
952
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: cn("flex size-6 shrink-0 items-center justify-center rounded-full border-2", selected ? on : off), children: selected && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "size-3 rounded-full bg-marian-blue-700 dark:bg-marian-blue-800" }) });
|
|
953
|
+
}
|
|
954
|
+
function ListItem({ trailing = "none", label, description, selected = false, disabled = false, leading, switchValue = false, onSwitchChange, onClick, className }) {
|
|
955
|
+
const isSelected = trailing === "radio" || trailing === "checkbox" ? selected : false;
|
|
956
|
+
const pad = description ? "p-4" : "p-2.5";
|
|
957
|
+
const textColor = disabled ? "text-gray-400 dark:text-gray-600" : "text-marian-blue-900 dark:text-white";
|
|
958
|
+
const descColor = disabled ? "text-gray-400 dark:text-gray-600" : "text-gray-700 dark:text-gray-300";
|
|
959
|
+
const hover = disabled ? "" : isSelected ? "hover:bg-marian-blue-300 active:bg-marian-blue-400 dark:hover:bg-marian-blue-800 dark:active:bg-marian-blue-700" : "hover:bg-gray-15 active:bg-gray-35 dark:hover:bg-midnight-800 dark:active:bg-midnight-600";
|
|
960
|
+
const base = cn("flex w-full items-center gap-3 text-left transition-colors", pad, isSelected && "bg-marian-blue-200 dark:bg-marian-blue-900", hover, className);
|
|
961
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
|
962
|
+
leading && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "flex size-6 shrink-0 items-center justify-center", children: leading }),
|
|
963
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("span", { className: "flex flex-1 flex-col gap-1 min-w-0", children: [
|
|
964
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: cn("text-sm leading-5", description ? "font-semibold" : "font-medium", textColor), children: label }),
|
|
965
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: cn("text-sm font-medium leading-5", descColor), children: description })
|
|
966
|
+
] }),
|
|
967
|
+
trailing === "switch" ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ToggleSwitch, { size: "sm", value: switchValue, onChange: onSwitchChange, disabled, label }) : trailing !== "none" ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(TrailingVisual, { trailing, selected: isSelected, disabled }) : null
|
|
968
|
+
] });
|
|
969
|
+
if (trailing === "switch" || trailing === "none") {
|
|
970
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: base, children: content });
|
|
971
|
+
}
|
|
972
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
973
|
+
"button",
|
|
974
|
+
{
|
|
975
|
+
type: "button",
|
|
976
|
+
role: trailing === "radio" ? "radio" : trailing === "checkbox" ? "checkbox" : "button",
|
|
977
|
+
"aria-checked": trailing === "radio" || trailing === "checkbox" ? isSelected : void 0,
|
|
978
|
+
disabled,
|
|
979
|
+
onClick,
|
|
980
|
+
className: cn(base, "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-marian-blue-900 dark:focus-visible:ring-white"),
|
|
981
|
+
children: content
|
|
982
|
+
}
|
|
983
|
+
);
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
// src/components/Stepper/Stepper.web.tsx
|
|
987
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
988
|
+
function segmentClass(index, currentStep) {
|
|
989
|
+
if (index < currentStep - 1) return "bg-marian-blue-600";
|
|
990
|
+
if (index === currentStep - 1) return "bg-marian-blue-200 dark:bg-marian-blue-900";
|
|
991
|
+
return "bg-gray-25 dark:bg-midnight-700";
|
|
992
|
+
}
|
|
993
|
+
function Stepper({ totalSteps, currentStep, className }) {
|
|
994
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
995
|
+
"div",
|
|
996
|
+
{
|
|
997
|
+
role: "progressbar",
|
|
998
|
+
"aria-valuenow": currentStep,
|
|
999
|
+
"aria-valuemin": 1,
|
|
1000
|
+
"aria-valuemax": totalSteps,
|
|
1001
|
+
"aria-label": `Etapa ${currentStep} de ${totalSteps}`,
|
|
1002
|
+
className: cn("flex w-full items-start gap-1", className),
|
|
1003
|
+
children: Array.from({ length: totalSteps }, (_, i) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { "aria-hidden": "true", className: cn("h-1 flex-1 rounded-full", segmentClass(i, currentStep)) }, i))
|
|
1004
|
+
}
|
|
1005
|
+
);
|
|
1006
|
+
}
|
|
1007
|
+
|
|
1008
|
+
// src/components/RatingScale/RatingScale.styles.ts
|
|
1009
|
+
var DEFAULT_OPTIONS = [
|
|
1010
|
+
{ emoji: "\u{1F621}", label: "P\xE9ssimo" },
|
|
1011
|
+
{ emoji: "\u{1F615}", label: "Ruim" },
|
|
1012
|
+
{ emoji: "\u{1F610}", label: "Neutro" },
|
|
1013
|
+
{ emoji: "\u{1F60A}", label: "Bom" },
|
|
1014
|
+
{ emoji: "\u{1F60D}", label: "\xD3timo" }
|
|
1015
|
+
];
|
|
1016
|
+
|
|
1017
|
+
// src/components/RatingScale/RatingScale.web.tsx
|
|
1018
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1019
|
+
function RatingScale({ value = null, onChange, options = DEFAULT_OPTIONS, disabled = false, className }) {
|
|
1020
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1021
|
+
"div",
|
|
1022
|
+
{
|
|
1023
|
+
role: "radiogroup",
|
|
1024
|
+
"aria-label": "Avalia\xE7\xE3o de 1 a 5",
|
|
1025
|
+
className: cn("flex items-center justify-center gap-2 p-4", className),
|
|
1026
|
+
children: options.map((option, index) => {
|
|
1027
|
+
const itemValue = index + 1;
|
|
1028
|
+
const selected = value === itemValue;
|
|
1029
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
1030
|
+
"button",
|
|
1031
|
+
{
|
|
1032
|
+
type: "button",
|
|
1033
|
+
role: "radio",
|
|
1034
|
+
"aria-checked": selected,
|
|
1035
|
+
"aria-label": option.label.replace("\n", " "),
|
|
1036
|
+
disabled,
|
|
1037
|
+
onClick: () => onChange?.(itemValue),
|
|
1038
|
+
className: "flex flex-1 flex-col items-center justify-center gap-1.5 py-1 disabled:cursor-not-allowed",
|
|
1039
|
+
children: [
|
|
1040
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1041
|
+
"div",
|
|
1042
|
+
{
|
|
1043
|
+
className: cn(
|
|
1044
|
+
"flex size-[60px] items-center justify-center overflow-hidden rounded-full transition-colors",
|
|
1045
|
+
disabled ? "border border-gray-50 bg-gray-25 dark:border-midnight-700 dark:bg-midnight-700" : selected ? "border-2 border-marian-blue-600 bg-marian-blue-200 dark:border-marian-blue-300 dark:bg-marian-blue-900" : "border border-marian-blue-200 bg-white dark:border-midnight-50 dark:bg-midnight-900"
|
|
1046
|
+
),
|
|
1047
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: cn("select-none text-[28px] leading-none", disabled && "opacity-40"), children: option.emoji })
|
|
1048
|
+
}
|
|
1049
|
+
),
|
|
1050
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
1051
|
+
"span",
|
|
1052
|
+
{
|
|
1053
|
+
className: cn(
|
|
1054
|
+
"w-full whitespace-pre-line text-center text-caption",
|
|
1055
|
+
disabled ? "text-gray-400 dark:text-gray-600" : "text-marian-blue-900 dark:text-white"
|
|
1056
|
+
),
|
|
1057
|
+
children: option.label
|
|
1058
|
+
}
|
|
1059
|
+
),
|
|
1060
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-[10px] font-semibold leading-none tracking-[0.8px] text-gray-400 dark:text-gray-600", children: itemValue })
|
|
1061
|
+
]
|
|
1062
|
+
},
|
|
1063
|
+
itemValue
|
|
1064
|
+
);
|
|
1065
|
+
})
|
|
1066
|
+
}
|
|
1067
|
+
);
|
|
1068
|
+
}
|
|
101
1069
|
// Annotate the CommonJS export names for ESM import in node:
|
|
102
1070
|
0 && (module.exports = {
|
|
1071
|
+
Alert,
|
|
1072
|
+
Button,
|
|
1073
|
+
ButtonIcon,
|
|
1074
|
+
Checkbox,
|
|
1075
|
+
Chip,
|
|
1076
|
+
ChoiceCard,
|
|
1077
|
+
DismissButton,
|
|
1078
|
+
Input,
|
|
1079
|
+
InputField,
|
|
1080
|
+
ListItem,
|
|
1081
|
+
ProgressBar,
|
|
1082
|
+
RadioGroup,
|
|
1083
|
+
RatingScale,
|
|
1084
|
+
Stepper,
|
|
1085
|
+
ToggleSwitch,
|
|
1086
|
+
borderWidth,
|
|
103
1087
|
colors,
|
|
104
1088
|
darkTheme,
|
|
105
|
-
|
|
1089
|
+
grid,
|
|
1090
|
+
lightTheme,
|
|
1091
|
+
opacity,
|
|
1092
|
+
radius,
|
|
1093
|
+
shadow,
|
|
1094
|
+
spacing,
|
|
1095
|
+
typography
|
|
106
1096
|
});
|
|
107
1097
|
//# sourceMappingURL=index.web.js.map
|