@12min/ds 0.1.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +84 -51
- package/dist/chunk-CC3QVZS2.mjs +80 -0
- package/dist/chunk-CC3QVZS2.mjs.map +1 -0
- package/dist/chunk-NK4IHR7O.mjs +101 -0
- package/dist/chunk-NK4IHR7O.mjs.map +1 -0
- package/dist/darkTheme-gaad4-zD.d.mts +28 -0
- package/dist/darkTheme-gaad4-zD.d.ts +28 -0
- package/dist/index.native.d.mts +118 -2
- package/dist/index.native.d.ts +118 -2
- package/dist/index.native.js +686 -58
- package/dist/index.native.js.map +1 -1
- package/dist/index.native.mjs +528 -5
- package/dist/index.native.mjs.map +1 -1
- package/dist/index.web.d.mts +111 -22
- package/dist/index.web.d.ts +111 -22
- package/dist/index.web.js +522 -58
- package/dist/index.web.js.map +1 -1
- package/dist/index.web.mjs +378 -4
- package/dist/index.web.mjs.map +1 -1
- package/dist/tailwind/theme.css +160 -38
- package/dist/tokens/index.d.mts +162 -37
- package/dist/tokens/index.d.ts +162 -37
- package/dist/tokens/index.js +91 -34
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/index.mjs +5 -3
- package/package.json +27 -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,552 @@ 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
|
+
ActionItem: () => ActionItem,
|
|
24
|
+
Alert: () => Alert,
|
|
25
|
+
Button: () => Button,
|
|
26
|
+
Checkbox: () => Checkbox,
|
|
27
|
+
Chip: () => Chip,
|
|
28
|
+
Input: () => Input,
|
|
29
|
+
ProgressBar: () => ProgressBar,
|
|
30
|
+
RadioGroup: () => RadioGroup,
|
|
31
|
+
RadioItem: () => RadioItem,
|
|
32
|
+
RatingScale: () => RatingScale,
|
|
33
|
+
Stepper: () => Stepper,
|
|
23
34
|
colors: () => colors,
|
|
24
35
|
darkTheme: () => darkTheme,
|
|
25
|
-
lightTheme: () => lightTheme
|
|
36
|
+
lightTheme: () => lightTheme,
|
|
37
|
+
typography: () => typography
|
|
26
38
|
});
|
|
27
39
|
module.exports = __toCommonJS(index_web_exports);
|
|
28
40
|
|
|
29
41
|
// src/tokens/colors.ts
|
|
30
42
|
var colors = {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
43
|
+
marianBlue: {
|
|
44
|
+
50: "#FAFBFF",
|
|
45
|
+
100: "#F1F4FE",
|
|
46
|
+
200: "#E1E7FF",
|
|
47
|
+
300: "#C3CCF7",
|
|
48
|
+
400: "#94A5F2",
|
|
49
|
+
500: "#697DD6",
|
|
50
|
+
600: "#475CBB",
|
|
51
|
+
700: "#31428B",
|
|
52
|
+
800: "#25326A",
|
|
53
|
+
900: "#131937"
|
|
34
54
|
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
900: "#121212"
|
|
55
|
+
midnight: {
|
|
56
|
+
50: "#707070",
|
|
57
|
+
100: "#5C5C5C",
|
|
58
|
+
200: "#525252",
|
|
59
|
+
300: "#474747",
|
|
60
|
+
400: "#3D3D3D",
|
|
61
|
+
500: "#333333",
|
|
62
|
+
600: "#1E1E1E",
|
|
63
|
+
700: "#161616",
|
|
64
|
+
800: "#141414",
|
|
65
|
+
900: "#0A0A0A"
|
|
47
66
|
},
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
67
|
+
gray: {
|
|
68
|
+
50: "#B1B5BE",
|
|
69
|
+
100: "#A6ABB5",
|
|
70
|
+
200: "#9BA0AB",
|
|
71
|
+
300: "#9095A2",
|
|
72
|
+
400: "#858B99",
|
|
73
|
+
500: "#7A8190",
|
|
74
|
+
600: "#6F7685",
|
|
75
|
+
700: "#5E6471",
|
|
76
|
+
800: "#5D636F",
|
|
77
|
+
900: "#545964"
|
|
52
78
|
},
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
79
|
+
mustard: {
|
|
80
|
+
50: "#FFF2D6",
|
|
81
|
+
100: "#FFECC2",
|
|
82
|
+
200: "#FFE5AD",
|
|
83
|
+
300: "#FFDF99",
|
|
84
|
+
400: "#FFD885",
|
|
85
|
+
500: "#FFD270",
|
|
86
|
+
600: "#FFCB5C",
|
|
87
|
+
700: "#FFC140",
|
|
88
|
+
800: "#FFBE33",
|
|
89
|
+
900: "#FFB81F"
|
|
57
90
|
},
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
91
|
+
ketchup: {
|
|
92
|
+
50: "#FFD6D6",
|
|
93
|
+
100: "#FFC2C2",
|
|
94
|
+
200: "#FFADAD",
|
|
95
|
+
300: "#FF9999",
|
|
96
|
+
400: "#FF8585",
|
|
97
|
+
500: "#FF7070",
|
|
98
|
+
600: "#FF5C5C",
|
|
99
|
+
700: "#FF4040",
|
|
100
|
+
800: "#FF3333",
|
|
101
|
+
900: "#FF1F1F"
|
|
62
102
|
},
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
103
|
+
mint: {
|
|
104
|
+
50: "#A7F1B7",
|
|
105
|
+
100: "#96EEA9",
|
|
106
|
+
200: "#84EB9A",
|
|
107
|
+
300: "#73E88C",
|
|
108
|
+
400: "#61E57E",
|
|
109
|
+
500: "#50E26F",
|
|
110
|
+
600: "#3EE061",
|
|
111
|
+
700: "#24DC4C",
|
|
112
|
+
800: "#22D348",
|
|
113
|
+
900: "#1FC142"
|
|
114
|
+
},
|
|
115
|
+
white: "#FFFFFF",
|
|
116
|
+
successBg: "#E5FBE9"
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
// src/tokens/typography.ts
|
|
120
|
+
var typography = {
|
|
121
|
+
display: { fontSize: 32, fontWeight: "700", lineHeight: 1.2, fontFamily: "Poppins" },
|
|
122
|
+
h1: { fontSize: 24, fontWeight: "700", lineHeight: 1.3, fontFamily: "Poppins" },
|
|
123
|
+
h2: { fontSize: 20, fontWeight: "600", lineHeight: 1.3, fontFamily: "Poppins" },
|
|
124
|
+
h3: { fontSize: 18, fontWeight: "600", lineHeight: 1.4, fontFamily: "Poppins" },
|
|
125
|
+
bodyLarge: { fontSize: 16, fontWeight: "400", lineHeight: 1.5, fontFamily: "Inter" },
|
|
126
|
+
bodyDefault: { fontSize: 14, fontWeight: "400", lineHeight: 1.5, fontFamily: "Inter" },
|
|
127
|
+
bodySmall: { fontSize: 12, fontWeight: "400", lineHeight: 1.5, fontFamily: "Inter" },
|
|
128
|
+
labelLarge: { fontSize: 16, fontWeight: "500", lineHeight: 1.5, fontFamily: "Inter" },
|
|
129
|
+
labelDefault: { fontSize: 14, fontWeight: "500", lineHeight: 1.5, fontFamily: "Inter" },
|
|
130
|
+
labelSmall: { fontSize: 12, fontWeight: "500", lineHeight: 1.5, fontFamily: "Inter" },
|
|
131
|
+
caption: { fontSize: 12, fontWeight: "500", lineHeight: 1.5, fontFamily: "Inter" },
|
|
132
|
+
overline: { fontSize: 10, fontWeight: "600", lineHeight: 1, fontFamily: "Inter" },
|
|
133
|
+
buttonLarge: { fontSize: 16, fontWeight: "600", lineHeight: 1.5, fontFamily: "Inter" },
|
|
134
|
+
buttonDefault: { fontSize: 14, fontWeight: "600", lineHeight: 1.5, fontFamily: "Inter" }
|
|
68
135
|
};
|
|
69
136
|
|
|
70
137
|
// src/themes/lightTheme.ts
|
|
71
138
|
var lightTheme = {
|
|
72
|
-
background: colors.
|
|
73
|
-
surface: colors.
|
|
74
|
-
border: colors.
|
|
75
|
-
onBackground: colors.
|
|
76
|
-
onSurface: colors.
|
|
77
|
-
muted: colors.
|
|
78
|
-
primary: colors.
|
|
79
|
-
secondary: colors.
|
|
80
|
-
success: colors.
|
|
81
|
-
error: colors.
|
|
82
|
-
warning: colors.
|
|
83
|
-
info: colors.
|
|
139
|
+
background: colors.marianBlue[50],
|
|
140
|
+
surface: colors.marianBlue[100],
|
|
141
|
+
border: colors.marianBlue[200],
|
|
142
|
+
onBackground: colors.midnight[900],
|
|
143
|
+
onSurface: colors.midnight[700],
|
|
144
|
+
muted: colors.gray[500],
|
|
145
|
+
primary: colors.marianBlue[600],
|
|
146
|
+
secondary: colors.midnight[900],
|
|
147
|
+
success: colors.mint[800],
|
|
148
|
+
error: colors.ketchup[600],
|
|
149
|
+
warning: colors.mustard[500],
|
|
150
|
+
info: colors.marianBlue[500],
|
|
151
|
+
surfaceDisabled: colors.gray[50],
|
|
152
|
+
successBg: colors.successBg,
|
|
153
|
+
textSecondary: colors.gray[700],
|
|
154
|
+
textTertiary: colors.gray[500],
|
|
155
|
+
textInverse: colors.white,
|
|
156
|
+
borderStrong: colors.marianBlue[600],
|
|
157
|
+
borderSubtle: colors.marianBlue[200],
|
|
158
|
+
interactivePressed: colors.marianBlue[800]
|
|
84
159
|
};
|
|
85
160
|
|
|
86
161
|
// src/themes/darkTheme.ts
|
|
87
162
|
var darkTheme = {
|
|
88
|
-
background: colors.
|
|
89
|
-
surface: colors.
|
|
90
|
-
border: colors.
|
|
91
|
-
onBackground: colors.
|
|
92
|
-
onSurface: colors.
|
|
93
|
-
muted: colors.
|
|
94
|
-
primary: colors.
|
|
95
|
-
secondary: colors.
|
|
96
|
-
success: colors.
|
|
97
|
-
error: colors.
|
|
98
|
-
warning: colors.
|
|
99
|
-
info: colors.
|
|
163
|
+
background: colors.midnight[900],
|
|
164
|
+
surface: colors.midnight[700],
|
|
165
|
+
border: colors.midnight[500],
|
|
166
|
+
onBackground: colors.marianBlue[50],
|
|
167
|
+
onSurface: colors.gray[50],
|
|
168
|
+
muted: colors.gray[600],
|
|
169
|
+
primary: colors.marianBlue[400],
|
|
170
|
+
secondary: colors.marianBlue[50],
|
|
171
|
+
success: colors.mint[400],
|
|
172
|
+
error: colors.ketchup[400],
|
|
173
|
+
warning: colors.mustard[400],
|
|
174
|
+
info: colors.marianBlue[300],
|
|
175
|
+
surfaceDisabled: colors.midnight[600],
|
|
176
|
+
successBg: colors.midnight[800],
|
|
177
|
+
textSecondary: colors.gray[400],
|
|
178
|
+
textTertiary: colors.gray[500],
|
|
179
|
+
textInverse: colors.midnight[900],
|
|
180
|
+
borderStrong: colors.marianBlue[400],
|
|
181
|
+
borderSubtle: colors.midnight[600],
|
|
182
|
+
interactivePressed: colors.marianBlue[300]
|
|
100
183
|
};
|
|
184
|
+
|
|
185
|
+
// src/components/Button/Button.web.tsx
|
|
186
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
187
|
+
|
|
188
|
+
// src/utils/cn.ts
|
|
189
|
+
var import_clsx = require("clsx");
|
|
190
|
+
var import_tailwind_merge = require("tailwind-merge");
|
|
191
|
+
function cn(...inputs) {
|
|
192
|
+
return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// src/components/Button/Button.web.tsx
|
|
196
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
197
|
+
var button = (0, import_class_variance_authority.cva)(
|
|
198
|
+
"inline-flex items-center justify-center font-semibold rounded-full transition-opacity disabled:cursor-not-allowed",
|
|
199
|
+
{
|
|
200
|
+
variants: {
|
|
201
|
+
variant: {
|
|
202
|
+
primary: "bg-marian-blue-700 text-white disabled:bg-gray-50 disabled:opacity-50 dark:bg-marian-blue-400 dark:text-midnight-900 dark:disabled:bg-midnight-600",
|
|
203
|
+
secondary: "bg-marian-blue-200 text-marian-blue-900 disabled:opacity-50 dark:bg-midnight-700 dark:text-marian-blue-200",
|
|
204
|
+
ghost: "bg-transparent text-marian-blue-700 disabled:opacity-50 dark:text-marian-blue-300"
|
|
205
|
+
},
|
|
206
|
+
size: {
|
|
207
|
+
sm: "h-9 px-3.5 text-sm",
|
|
208
|
+
md: "h-12 px-4 text-base",
|
|
209
|
+
lg: "h-14 px-6 text-lg"
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
defaultVariants: {
|
|
213
|
+
variant: "primary",
|
|
214
|
+
size: "md"
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
);
|
|
218
|
+
function Button({ variant, size, disabled, children, onClick, type = "button", className }) {
|
|
219
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
220
|
+
"button",
|
|
221
|
+
{
|
|
222
|
+
type,
|
|
223
|
+
disabled,
|
|
224
|
+
onClick,
|
|
225
|
+
className: cn(button({ variant, size }), className),
|
|
226
|
+
children
|
|
227
|
+
}
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// src/components/Chip/Chip.web.tsx
|
|
232
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
233
|
+
function Chip({ children, checked = false, onClick, className }) {
|
|
234
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
235
|
+
"button",
|
|
236
|
+
{
|
|
237
|
+
type: "button",
|
|
238
|
+
onClick,
|
|
239
|
+
className: cn(
|
|
240
|
+
"inline-flex items-center justify-center h-12 px-4 rounded-full text-sm transition-colors",
|
|
241
|
+
checked ? "bg-marian-blue-600 text-white font-semibold dark:bg-marian-blue-500 dark:text-white" : "bg-marian-blue-100 text-marian-blue-900 font-medium dark:bg-midnight-700 dark:text-marian-blue-100",
|
|
242
|
+
className
|
|
243
|
+
),
|
|
244
|
+
children
|
|
245
|
+
}
|
|
246
|
+
);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
// src/components/Alert/Alert.web.tsx
|
|
250
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
251
|
+
function Alert({ variant = "info", title, description, className }) {
|
|
252
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
|
253
|
+
"div",
|
|
254
|
+
{
|
|
255
|
+
className: cn(
|
|
256
|
+
"w-full p-5 rounded-tl-[32px] rounded-tr-[32px] rounded-br-[32px] border border-marian-blue-200 dark:border-midnight-600",
|
|
257
|
+
variant === "success" ? "bg-success-bg dark:bg-midnight-800" : "bg-marian-blue-50 dark:bg-midnight-700",
|
|
258
|
+
className
|
|
259
|
+
),
|
|
260
|
+
children: [
|
|
261
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
262
|
+
"p",
|
|
263
|
+
{
|
|
264
|
+
className: "[font-family:'Poppins',sans-serif] font-semibold text-base leading-snug text-marian-blue-900 dark:text-marian-blue-100",
|
|
265
|
+
children: title
|
|
266
|
+
}
|
|
267
|
+
),
|
|
268
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "mt-3 font-medium text-sm leading-normal text-gray-700 dark:text-gray-400", children: description })
|
|
269
|
+
]
|
|
270
|
+
}
|
|
271
|
+
);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
// src/components/ProgressBar/ProgressBar.web.tsx
|
|
275
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
276
|
+
function ProgressBar({ value, className }) {
|
|
277
|
+
const pct = Math.min(100, Math.max(0, value));
|
|
278
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
279
|
+
"div",
|
|
280
|
+
{
|
|
281
|
+
role: "progressbar",
|
|
282
|
+
"aria-valuenow": pct,
|
|
283
|
+
"aria-valuemin": 0,
|
|
284
|
+
"aria-valuemax": 100,
|
|
285
|
+
className: cn(
|
|
286
|
+
"relative h-2 w-full rounded-full bg-marian-blue-200 overflow-hidden dark:bg-midnight-600",
|
|
287
|
+
className
|
|
288
|
+
),
|
|
289
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
290
|
+
"div",
|
|
291
|
+
{
|
|
292
|
+
className: "absolute inset-y-0 left-0 bg-marian-blue-700 rounded-[24px] transition-[width] dark:bg-marian-blue-400",
|
|
293
|
+
style: { width: `${pct}%` }
|
|
294
|
+
}
|
|
295
|
+
)
|
|
296
|
+
}
|
|
297
|
+
);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
// src/components/Input/Input.web.tsx
|
|
301
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
302
|
+
function Input({ value, placeholder = "exemplo@email.com", state = "default", leadingIcon, onChange, className }) {
|
|
303
|
+
const isDisabled = state === "disabled";
|
|
304
|
+
const isError = state === "error";
|
|
305
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
306
|
+
"div",
|
|
307
|
+
{
|
|
308
|
+
className: cn(
|
|
309
|
+
"flex items-center gap-2 h-12 px-3 rounded-xl border text-sm font-medium",
|
|
310
|
+
"focus-within:border-2 focus-within:border-marian-blue-600 dark:focus-within:border-marian-blue-400",
|
|
311
|
+
isDisabled ? "bg-marian-blue-50 border-gray-200 text-gray-200 cursor-not-allowed dark:bg-midnight-800 dark:border-midnight-500 dark:text-gray-600" : isError ? "bg-marian-blue-100 border-ketchup-600 text-ketchup-700 dark:bg-midnight-700 dark:border-ketchup-400 dark:text-ketchup-400" : "bg-marian-blue-100 border-marian-blue-200 text-gray-500 dark:bg-midnight-700 dark:border-midnight-600 dark:text-gray-500",
|
|
312
|
+
className
|
|
313
|
+
),
|
|
314
|
+
children: [
|
|
315
|
+
leadingIcon && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "shrink-0 text-current", children: leadingIcon }),
|
|
316
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
317
|
+
"input",
|
|
318
|
+
{
|
|
319
|
+
type: "text",
|
|
320
|
+
value,
|
|
321
|
+
placeholder,
|
|
322
|
+
disabled: isDisabled,
|
|
323
|
+
onChange,
|
|
324
|
+
className: "flex-1 bg-transparent outline-none placeholder:text-current text-current min-w-0 focus:text-marian-blue-900 dark:focus:text-marian-blue-100"
|
|
325
|
+
}
|
|
326
|
+
)
|
|
327
|
+
]
|
|
328
|
+
}
|
|
329
|
+
);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
// src/components/Checkbox/Checkbox.web.tsx
|
|
333
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
334
|
+
function CheckIcon() {
|
|
335
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("svg", { width: "12", height: "10", viewBox: "0 0 12 10", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M1 5L4.5 8.5L11 1.5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
336
|
+
}
|
|
337
|
+
function Checkbox({ checked = false, onChange, disabled = false, className }) {
|
|
338
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
339
|
+
"label",
|
|
340
|
+
{
|
|
341
|
+
className: cn(
|
|
342
|
+
"relative size-5 rounded-md flex items-center justify-center transition-colors",
|
|
343
|
+
disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
|
|
344
|
+
checked ? "bg-marian-blue-800 text-white dark:bg-marian-blue-400 dark:text-midnight-900" : "border border-marian-blue-600 bg-transparent dark:border-marian-blue-400",
|
|
345
|
+
className
|
|
346
|
+
),
|
|
347
|
+
children: [
|
|
348
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
349
|
+
"input",
|
|
350
|
+
{
|
|
351
|
+
type: "checkbox",
|
|
352
|
+
checked,
|
|
353
|
+
disabled,
|
|
354
|
+
onChange: () => onChange?.(!checked),
|
|
355
|
+
className: "sr-only"
|
|
356
|
+
}
|
|
357
|
+
),
|
|
358
|
+
checked && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(CheckIcon, {})
|
|
359
|
+
]
|
|
360
|
+
}
|
|
361
|
+
);
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
// src/components/RadioItem/RadioItem.web.tsx
|
|
365
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
366
|
+
function RadioIndicator({ selected }) {
|
|
367
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
368
|
+
"div",
|
|
369
|
+
{
|
|
370
|
+
className: cn(
|
|
371
|
+
"size-5 rounded-full border flex items-center justify-center shrink-0",
|
|
372
|
+
selected ? "border-marian-blue-100" : "border-marian-blue-800 dark:border-marian-blue-300"
|
|
373
|
+
),
|
|
374
|
+
children: selected && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("svg", { width: "10", height: "8", viewBox: "0 0 10 8", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("path", { d: "M1 4L3.5 6.5L9 1", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) })
|
|
375
|
+
}
|
|
376
|
+
);
|
|
377
|
+
}
|
|
378
|
+
function RadioItem({ label, description, selected = false, icon, onClick, className }) {
|
|
379
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
380
|
+
"button",
|
|
381
|
+
{
|
|
382
|
+
type: "button",
|
|
383
|
+
role: "radio",
|
|
384
|
+
"aria-checked": selected,
|
|
385
|
+
onClick,
|
|
386
|
+
className: cn(
|
|
387
|
+
"flex items-center justify-between h-12 px-4 rounded-2xl transition-colors text-left",
|
|
388
|
+
selected ? "bg-marian-blue-600 text-white dark:bg-marian-blue-500" : "bg-marian-blue-100 text-marian-blue-900 dark:bg-midnight-700 dark:text-marian-blue-100",
|
|
389
|
+
className
|
|
390
|
+
),
|
|
391
|
+
children: [
|
|
392
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
393
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "shrink-0 size-5", children: icon }),
|
|
394
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex flex-col gap-0.5", children: [
|
|
395
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
396
|
+
"span",
|
|
397
|
+
{
|
|
398
|
+
className: cn(
|
|
399
|
+
"text-sm leading-normal",
|
|
400
|
+
selected ? "font-bold" : "font-medium"
|
|
401
|
+
),
|
|
402
|
+
children: label
|
|
403
|
+
}
|
|
404
|
+
),
|
|
405
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
406
|
+
"span",
|
|
407
|
+
{
|
|
408
|
+
className: cn(
|
|
409
|
+
"text-xs leading-normal tracking-[0.024px]",
|
|
410
|
+
selected ? "text-current opacity-80" : "text-gray-700 dark:text-gray-500"
|
|
411
|
+
),
|
|
412
|
+
children: description
|
|
413
|
+
}
|
|
414
|
+
)
|
|
415
|
+
] })
|
|
416
|
+
] }),
|
|
417
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(RadioIndicator, { selected })
|
|
418
|
+
]
|
|
419
|
+
}
|
|
420
|
+
);
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
// src/components/RadioGroup/RadioGroup.web.tsx
|
|
424
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
425
|
+
function RadioGroup({ children, label, className }) {
|
|
426
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
427
|
+
"div",
|
|
428
|
+
{
|
|
429
|
+
role: "radiogroup",
|
|
430
|
+
"aria-label": label,
|
|
431
|
+
className: cn("flex flex-col gap-2", className),
|
|
432
|
+
children
|
|
433
|
+
}
|
|
434
|
+
);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
// src/components/ActionItem/ActionItem.web.tsx
|
|
438
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
439
|
+
function ChevronRight() {
|
|
440
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("svg", { width: "8", height: "14", viewBox: "0 0 8 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("path", { d: "M1 1L7 7L1 13", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
441
|
+
}
|
|
442
|
+
function ActionItem({ label, description, selected = false, icon, onClick, className }) {
|
|
443
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
444
|
+
"button",
|
|
445
|
+
{
|
|
446
|
+
type: "button",
|
|
447
|
+
onClick,
|
|
448
|
+
className: cn(
|
|
449
|
+
"flex items-center gap-5 h-14 px-4 rounded-2xl transition-colors text-left text-marian-blue-900 dark:text-marian-blue-100",
|
|
450
|
+
selected ? "bg-marian-blue-200 border-2 border-marian-blue-600 dark:bg-midnight-600 dark:border-marian-blue-400" : "bg-marian-blue-100 dark:bg-midnight-700",
|
|
451
|
+
className
|
|
452
|
+
),
|
|
453
|
+
children: [
|
|
454
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "flex flex-1 items-center gap-4 min-w-0", children: [
|
|
455
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "shrink-0", children: icon }),
|
|
456
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
|
|
457
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "text-sm font-medium leading-normal whitespace-nowrap", children: label }),
|
|
458
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "text-xs font-normal text-gray-700 dark:text-gray-400 leading-normal tracking-[0.024px]", children: description })
|
|
459
|
+
] })
|
|
460
|
+
] }),
|
|
461
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ChevronRight, {}) })
|
|
462
|
+
]
|
|
463
|
+
}
|
|
464
|
+
);
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
// src/components/Stepper/Stepper.web.tsx
|
|
468
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
469
|
+
function Dot({ state }) {
|
|
470
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
471
|
+
"div",
|
|
472
|
+
{
|
|
473
|
+
className: cn(
|
|
474
|
+
"shrink-0 size-1 rounded-full",
|
|
475
|
+
state === "completed" ? "bg-marian-blue-600 dark:bg-marian-blue-400" : "bg-marian-blue-200 dark:bg-midnight-600"
|
|
476
|
+
)
|
|
477
|
+
}
|
|
478
|
+
);
|
|
479
|
+
}
|
|
480
|
+
function Track({ state }) {
|
|
481
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "w-full h-1 rounded-lg overflow-hidden bg-marian-blue-200 dark:bg-midnight-600", children: [
|
|
482
|
+
state === "completed" && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "h-full w-full bg-marian-blue-600 rounded-lg dark:bg-marian-blue-400" }),
|
|
483
|
+
state === "active" && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "h-full w-[calc(100%-12px)] bg-marian-blue-900 rounded-lg dark:bg-marian-blue-100" })
|
|
484
|
+
] });
|
|
485
|
+
}
|
|
486
|
+
function Stepper({ steps, currentStep, className }) {
|
|
487
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: cn("flex items-end gap-1 w-full", className), children: steps.map((step, i) => {
|
|
488
|
+
const state = i < currentStep ? "completed" : i === currentStep ? "active" : "upcoming";
|
|
489
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
|
|
490
|
+
state === "active" && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "text-[10px] font-semibold text-marian-blue-900 dark:text-marian-blue-100 leading-none tracking-[0.8px] uppercase truncate", children: step.label }),
|
|
491
|
+
(state === "completed" || state === "upcoming") && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "h-[10px]" }),
|
|
492
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Track, { state })
|
|
493
|
+
] }, step.label);
|
|
494
|
+
}).reduce((acc, el, i) => {
|
|
495
|
+
if (i === 0) return [el];
|
|
496
|
+
const prevState = i - 1 < currentStep ? "completed" : i - 1 === currentStep ? "active" : "upcoming";
|
|
497
|
+
return [...acc, /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Dot, { state: prevState }, `dot-${i}`), el];
|
|
498
|
+
}, []) });
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
// src/components/RatingScale/RatingScale.styles.ts
|
|
502
|
+
var DEFAULT_OPTIONS = [
|
|
503
|
+
{ emoji: "\u{1F61E}", label: "Nada\na ver" },
|
|
504
|
+
{ emoji: "\u{1F641}", label: "Pouco\na ver" },
|
|
505
|
+
{ emoji: "\u{1F610}", label: "Mais ou\nmenos" },
|
|
506
|
+
{ emoji: "\u{1F642}", label: "Tem\na ver" },
|
|
507
|
+
{ emoji: "\u{1F60A}", label: "Totalmente\neu" }
|
|
508
|
+
];
|
|
509
|
+
|
|
510
|
+
// src/components/RatingScale/RatingScale.web.tsx
|
|
511
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
512
|
+
function RatingScale({ value = null, onChange, options = DEFAULT_OPTIONS, className }) {
|
|
513
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: cn("flex items-start justify-between", className), children: options.map((option, index) => {
|
|
514
|
+
const itemValue = index + 1;
|
|
515
|
+
const selected = value === itemValue;
|
|
516
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
517
|
+
"button",
|
|
518
|
+
{
|
|
519
|
+
type: "button",
|
|
520
|
+
onClick: () => onChange?.(itemValue),
|
|
521
|
+
className: "flex w-[60px] flex-col items-center gap-2",
|
|
522
|
+
"aria-pressed": selected,
|
|
523
|
+
children: [
|
|
524
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
525
|
+
"div",
|
|
526
|
+
{
|
|
527
|
+
className: cn(
|
|
528
|
+
"flex size-[60px] items-center justify-center overflow-hidden rounded-full p-[8px] transition-colors",
|
|
529
|
+
selected ? "bg-marian-blue-600" : "border border-marian-blue-200 bg-marian-blue-50 dark:border-midnight-500 dark:bg-midnight-700"
|
|
530
|
+
),
|
|
531
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "select-none text-[38px] leading-none", children: option.emoji })
|
|
532
|
+
}
|
|
533
|
+
),
|
|
534
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex w-full flex-col items-center gap-[11px]", children: [
|
|
535
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
536
|
+
"span",
|
|
537
|
+
{
|
|
538
|
+
className: cn(
|
|
539
|
+
"w-full whitespace-pre-line text-center text-[12px] leading-[1.3] tracking-[0.06px]",
|
|
540
|
+
selected ? "font-bold text-marian-blue-600" : "font-medium text-marian-blue-900 dark:text-marian-blue-100"
|
|
541
|
+
),
|
|
542
|
+
children: option.label
|
|
543
|
+
}
|
|
544
|
+
),
|
|
545
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "text-[10px] font-semibold leading-none tracking-[0.8px] text-gray-500", children: itemValue })
|
|
546
|
+
] })
|
|
547
|
+
]
|
|
548
|
+
},
|
|
549
|
+
itemValue
|
|
550
|
+
);
|
|
551
|
+
}) });
|
|
552
|
+
}
|
|
101
553
|
// Annotate the CommonJS export names for ESM import in node:
|
|
102
554
|
0 && (module.exports = {
|
|
555
|
+
ActionItem,
|
|
556
|
+
Alert,
|
|
557
|
+
Button,
|
|
558
|
+
Checkbox,
|
|
559
|
+
Chip,
|
|
560
|
+
Input,
|
|
561
|
+
ProgressBar,
|
|
562
|
+
RadioGroup,
|
|
563
|
+
RadioItem,
|
|
564
|
+
RatingScale,
|
|
565
|
+
Stepper,
|
|
103
566
|
colors,
|
|
104
567
|
darkTheme,
|
|
105
|
-
lightTheme
|
|
568
|
+
lightTheme,
|
|
569
|
+
typography
|
|
106
570
|
});
|
|
107
571
|
//# sourceMappingURL=index.web.js.map
|