@refinn/core-ui 0.1.1 → 0.1.3
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/dist/index.d.mts +49 -20
- package/dist/index.d.ts +49 -20
- package/dist/index.js +726 -472
- package/dist/index.mjs +721 -473
- package/dist/theme.css +648 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __defProps = Object.defineProperties;
|
|
4
5
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
6
|
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
7
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
8
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
9
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
10
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
11
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
10
12
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
@@ -44,6 +46,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
44
46
|
}
|
|
45
47
|
return to;
|
|
46
48
|
};
|
|
49
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
50
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
51
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
52
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
53
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
54
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
55
|
+
mod
|
|
56
|
+
));
|
|
47
57
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
48
58
|
|
|
49
59
|
// src/components/index.ts
|
|
@@ -53,8 +63,10 @@ __export(index_exports, {
|
|
|
53
63
|
AlertBanner: () => AlertBanner,
|
|
54
64
|
Avatar: () => Avatar,
|
|
55
65
|
Badge: () => Badge,
|
|
66
|
+
BottomSheet: () => BottomSheet,
|
|
56
67
|
Button: () => Button,
|
|
57
68
|
Checkbox: () => Checkbox,
|
|
69
|
+
Dialog: () => Dialog,
|
|
58
70
|
Icon: () => Icon,
|
|
59
71
|
Radio: () => Radio,
|
|
60
72
|
Slider: () => Slider,
|
|
@@ -65,29 +77,6 @@ module.exports = __toCommonJS(index_exports);
|
|
|
65
77
|
// src/components/Accordion/Accordion.tsx
|
|
66
78
|
var import_react = require("react");
|
|
67
79
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
68
|
-
var sizeClasses = {
|
|
69
|
-
small: {
|
|
70
|
-
trigger: "px-3 py-2.5",
|
|
71
|
-
title: "text-sm leading-5",
|
|
72
|
-
subtitle: "text-xs leading-4",
|
|
73
|
-
content: "px-3 pb-3 text-sm leading-5",
|
|
74
|
-
icon: "h-4 w-4"
|
|
75
|
-
},
|
|
76
|
-
medium: {
|
|
77
|
-
trigger: "px-4 py-3",
|
|
78
|
-
title: "text-base leading-6",
|
|
79
|
-
subtitle: "text-sm leading-5",
|
|
80
|
-
content: "px-4 pb-4 text-sm leading-5",
|
|
81
|
-
icon: "h-5 w-5"
|
|
82
|
-
},
|
|
83
|
-
large: {
|
|
84
|
-
trigger: "px-5 py-4",
|
|
85
|
-
title: "text-lg leading-7",
|
|
86
|
-
subtitle: "text-sm leading-5",
|
|
87
|
-
content: "px-5 pb-5 text-base leading-6",
|
|
88
|
-
icon: "h-5 w-5"
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
80
|
function ChevronIcon({ className }) {
|
|
92
81
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { className, viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
93
82
|
"path",
|
|
@@ -100,26 +89,16 @@ function ChevronIcon({ className }) {
|
|
|
100
89
|
}
|
|
101
90
|
) });
|
|
102
91
|
}
|
|
103
|
-
function AccordionItem({ item,
|
|
104
|
-
const sz = sizeClasses[size];
|
|
92
|
+
function AccordionItem({ item, isOpen, onToggle, generatedId }) {
|
|
105
93
|
const triggerId = `${generatedId}-trigger`;
|
|
106
94
|
const panelId = `${generatedId}-panel`;
|
|
107
|
-
const triggerClasses = [
|
|
108
|
-
"flex w-full items-center justify-between gap-2 text-left font-sans font-medium",
|
|
109
|
-
"transition-colors duration-150",
|
|
110
|
-
"outline-none",
|
|
111
|
-
sz.trigger,
|
|
112
|
-
sz.title,
|
|
113
|
-
item.disabled ? "cursor-not-allowed text-accordion-text-disabled" : "cursor-pointer text-accordion-text hover:bg-accordion-bg-hover active:bg-accordion-bg-active focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accordion-border-focus"
|
|
114
|
-
].join(" ");
|
|
115
95
|
const iconClasses = [
|
|
116
|
-
|
|
117
|
-
"shrink-0 transition-transform duration-200",
|
|
96
|
+
"shrink-0 transition-transform duration-200 text-accordion-icon h-28 w-28 p-4 my-8 mx-12 lg:h-40 lg:w-40 lg:p-8 lg:mx-12 lg:my-8",
|
|
118
97
|
isOpen ? "rotate-180" : "",
|
|
119
|
-
item.disabled ? "text-
|
|
98
|
+
item.disabled ? "text-static-icon-disabled" : "text-static-icon-primary"
|
|
120
99
|
].join(" ");
|
|
121
100
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
|
|
122
|
-
/* @__PURE__ */ (0, import_jsx_runtime.
|
|
101
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
123
102
|
"button",
|
|
124
103
|
{
|
|
125
104
|
id: triggerId,
|
|
@@ -127,21 +106,31 @@ function AccordionItem({ item, size, isOpen, onToggle, generatedId }) {
|
|
|
127
106
|
"aria-expanded": isOpen,
|
|
128
107
|
"aria-controls": panelId,
|
|
129
108
|
disabled: item.disabled,
|
|
130
|
-
className:
|
|
109
|
+
className: "flex flex-row items-center justify-between w-full pl-16 pr-8 py-8 lg:pl-24 lg:py-16 lg:pr-12",
|
|
131
110
|
onClick: onToggle,
|
|
132
111
|
children: [
|
|
133
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className:
|
|
134
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
112
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: `flex flex-col`, children: [
|
|
113
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
114
|
+
"span",
|
|
115
|
+
{
|
|
116
|
+
className: `
|
|
117
|
+
text-label-large
|
|
118
|
+
text-start
|
|
119
|
+
lg:text-heading-3
|
|
120
|
+
${item.disabled ? "text-accordion-text-disabled" : "text-accordion-text-primary"}
|
|
121
|
+
`,
|
|
122
|
+
children: item.title
|
|
123
|
+
}
|
|
124
|
+
),
|
|
135
125
|
item.subtitle && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: [
|
|
136
|
-
|
|
137
|
-
"font-normal",
|
|
126
|
+
"text-body-small",
|
|
138
127
|
item.disabled ? "text-accordion-text-disabled" : "text-accordion-text-secondary"
|
|
139
128
|
].join(" "), children: item.subtitle })
|
|
140
129
|
] }),
|
|
141
130
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChevronIcon, { className: iconClasses })
|
|
142
131
|
]
|
|
143
132
|
}
|
|
144
|
-
)
|
|
133
|
+
),
|
|
145
134
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
146
135
|
"div",
|
|
147
136
|
{
|
|
@@ -150,7 +139,7 @@ function AccordionItem({ item, size, isOpen, onToggle, generatedId }) {
|
|
|
150
139
|
"aria-labelledby": triggerId,
|
|
151
140
|
className: "overflow-hidden transition-[grid-template-rows] duration-200",
|
|
152
141
|
style: { display: "grid", gridTemplateRows: isOpen ? "1fr" : "0fr" },
|
|
153
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className:
|
|
142
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: `text-accordion-text-secondary text-body-small pt-8 pb-16 px-16 lg:text-body-regular lg:pl-24 lg:pr-64 lg:pb-24 lg:pt-12`, children: item.content }) })
|
|
154
143
|
}
|
|
155
144
|
)
|
|
156
145
|
] });
|
|
@@ -159,13 +148,11 @@ var Accordion = (0, import_react.forwardRef)(
|
|
|
159
148
|
(_a, ref) => {
|
|
160
149
|
var _b = _a, {
|
|
161
150
|
items,
|
|
162
|
-
size = "medium",
|
|
163
151
|
multiple = false,
|
|
164
152
|
loading = false,
|
|
165
153
|
className = ""
|
|
166
154
|
} = _b, rest = __objRest(_b, [
|
|
167
155
|
"items",
|
|
168
|
-
"size",
|
|
169
156
|
"multiple",
|
|
170
157
|
"loading",
|
|
171
158
|
"className"
|
|
@@ -200,10 +187,9 @@ var Accordion = (0, import_react.forwardRef)(
|
|
|
200
187
|
className
|
|
201
188
|
].filter(Boolean).join(" ");
|
|
202
189
|
if (loading) {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
206
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChevronIcon, { className: `${sz.icon} shrink-0 text-accordion-icon` })
|
|
190
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", __spreadProps(__spreadValues({ ref, className: containerClasses }, rest), { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: `flex items-center justify-between gap-8 pl-16 pr-8 py-8`, children: [
|
|
191
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex-1 flex flex-col gap-4", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-16 w-3/4 rounded bg-gray-200 animate-pulse" }) }),
|
|
192
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChevronIcon, { className: `shrink-0 text-accordion-icon w-20 h-20 my-8 mx-12` })
|
|
207
193
|
] }) }));
|
|
208
194
|
}
|
|
209
195
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", __spreadProps(__spreadValues({ ref, className: containerClasses }, rest), { children: items.map((item, i) => {
|
|
@@ -213,7 +199,6 @@ var Accordion = (0, import_react.forwardRef)(
|
|
|
213
199
|
AccordionItem,
|
|
214
200
|
{
|
|
215
201
|
item,
|
|
216
|
-
size,
|
|
217
202
|
isOpen: openItems.has(itemId),
|
|
218
203
|
onToggle: () => handleToggle(itemId),
|
|
219
204
|
generatedId: `${baseId}-${itemId}`
|
|
@@ -228,26 +213,40 @@ Accordion.displayName = "Accordion";
|
|
|
228
213
|
// src/components/AlertBanner/AlertBanner.tsx
|
|
229
214
|
var import_react2 = require("react");
|
|
230
215
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
231
|
-
var inlineClasses = {
|
|
232
|
-
info: "bg-alert-inline-info-bg border-alert-inline-info-border text-alert-text-primary",
|
|
233
|
-
success: "bg-alert-inline-success-bg border-alert-inline-success-border text-alert-text-primary",
|
|
234
|
-
warning: "bg-alert-inline-warning-bg border-alert-inline-warning-border text-alert-text-primary",
|
|
235
|
-
danger: "bg-alert-inline-danger-bg border-alert-inline-danger-border text-alert-text-primary",
|
|
236
|
-
common: "bg-alert-inline-common-bg border-alert-inline-common-border text-alert-text-primary"
|
|
237
|
-
};
|
|
238
216
|
var pageClasses = {
|
|
239
217
|
info: "bg-alert-page-info-bg text-alert-text-primary-inverse",
|
|
240
218
|
success: "bg-alert-page-success-bg text-alert-text-primary-inverse",
|
|
241
219
|
warning: "bg-alert-page-warning-bg text-alert-text-primary-inverse",
|
|
242
220
|
danger: "bg-alert-page-danger-bg text-alert-text-primary-inverse",
|
|
243
|
-
|
|
221
|
+
none: "bg-alert-page-common-bg text-alert-text-primary-inverse"
|
|
222
|
+
};
|
|
223
|
+
var SectionClasses = {
|
|
224
|
+
info: "bg-alert-banner-background-info-subtle text-alert-text-primary",
|
|
225
|
+
success: "bg-alert-banner-background-success-subtle text-alert-text-primary",
|
|
226
|
+
warning: "bg-alert-banner-background-warning-subtle text-alert-text-primary",
|
|
227
|
+
danger: "bg-alert-banner-background-danger-subtle text-alert-text-primary",
|
|
228
|
+
none: "bg-alert-banner-background-common-subtle text-alert-text-primary"
|
|
229
|
+
};
|
|
230
|
+
var inlineClasses = {
|
|
231
|
+
info: "bg-alert-banner-background-transparent text-alert-text-primary",
|
|
232
|
+
success: "bg-alert-banner-background-transparent text-alert-text-primary",
|
|
233
|
+
warning: "bg-alert-banner-background-transparent text-alert-text-primary",
|
|
234
|
+
danger: "bg-alert-banner-background-transparent text-alert-text-primary",
|
|
235
|
+
none: "bg-alert-banner-background-transparent text-alert-text-primary"
|
|
236
|
+
};
|
|
237
|
+
var actionsPageClasses = {
|
|
238
|
+
info: "text-enabled-inverse",
|
|
239
|
+
success: "text-enabled-inverse",
|
|
240
|
+
warning: "text-enabled-dark",
|
|
241
|
+
danger: "text-enabled-inverse",
|
|
242
|
+
none: "text-enabled-inverse"
|
|
244
243
|
};
|
|
245
244
|
var inlineIconClasses = {
|
|
246
245
|
info: "text-alert-inline-info-icon",
|
|
247
246
|
success: "text-alert-inline-success-icon",
|
|
248
247
|
warning: "text-alert-inline-warning-icon",
|
|
249
248
|
danger: "text-alert-inline-danger-icon",
|
|
250
|
-
|
|
249
|
+
none: "text-alert-inline-common-icon"
|
|
251
250
|
};
|
|
252
251
|
function InfoIcon({ className }) {
|
|
253
252
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("svg", { className, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16ZM10 6h.01M9 10h1v4h1", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
@@ -264,8 +263,8 @@ function WarningIcon({ className }) {
|
|
|
264
263
|
function DangerIcon({ className }) {
|
|
265
264
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("svg", { className, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16ZM12.5 7.5l-5 5M7.5 7.5l5 5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
266
265
|
}
|
|
267
|
-
function
|
|
268
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
266
|
+
function NoneIcon({ className }) {
|
|
267
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, {});
|
|
269
268
|
}
|
|
270
269
|
function CloseIcon({ className }) {
|
|
271
270
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("svg", { className, width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 4 4 12M4 4l8 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
@@ -275,7 +274,7 @@ var defaultIcons = {
|
|
|
275
274
|
success: SuccessIcon,
|
|
276
275
|
warning: WarningIcon,
|
|
277
276
|
danger: DangerIcon,
|
|
278
|
-
|
|
277
|
+
none: NoneIcon
|
|
279
278
|
};
|
|
280
279
|
var AlertBanner = (0, import_react2.forwardRef)(
|
|
281
280
|
(_a, ref) => {
|
|
@@ -284,6 +283,7 @@ var AlertBanner = (0, import_react2.forwardRef)(
|
|
|
284
283
|
mode = "inline",
|
|
285
284
|
title,
|
|
286
285
|
description,
|
|
286
|
+
action,
|
|
287
287
|
icon,
|
|
288
288
|
onClose,
|
|
289
289
|
className = "",
|
|
@@ -293,40 +293,48 @@ var AlertBanner = (0, import_react2.forwardRef)(
|
|
|
293
293
|
"mode",
|
|
294
294
|
"title",
|
|
295
295
|
"description",
|
|
296
|
+
"action",
|
|
296
297
|
"icon",
|
|
297
298
|
"onClose",
|
|
298
299
|
"className",
|
|
299
300
|
"children"
|
|
300
301
|
]);
|
|
301
302
|
const isPage = mode === "page";
|
|
302
|
-
const
|
|
303
|
+
const isSection = mode === "section";
|
|
304
|
+
const variantClass = isPage ? pageClasses[variant] : isSection ? SectionClasses[variant] : inlineClasses[variant];
|
|
305
|
+
const actionClass = isPage ? actionsPageClasses[variant] : "text-enabled";
|
|
303
306
|
const DefaultIcon = defaultIcons[variant];
|
|
304
307
|
const iconColorClass = isPage ? "" : inlineIconClasses[variant];
|
|
305
308
|
const descColorClass = isPage ? "text-alert-text-secondary-inverse" : "text-alert-text-secondary";
|
|
306
309
|
const closeColorClass = isPage ? "text-alert-close-inverse hover:text-alert-close-inverse-hover" : "text-alert-close hover:text-alert-close-hover";
|
|
307
310
|
const classes = [
|
|
308
|
-
"flex items-start gap-
|
|
309
|
-
isPage ? "
|
|
311
|
+
"flex items-start gap-24 font-sans justify-between",
|
|
312
|
+
isPage ? "p-12" : isSection ? "p-12 rounded-md" : "p-0",
|
|
310
313
|
variantClass,
|
|
311
314
|
className
|
|
312
315
|
].filter(Boolean).join(" ");
|
|
313
316
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", __spreadProps(__spreadValues({ ref, role: "alert", className: classes }, rest), { children: [
|
|
314
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
317
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex items-start gap-8", children: [
|
|
318
|
+
icon != null ? icon : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(DefaultIcon, { className: `h-20 w-20 ${iconColorClass}` }),
|
|
319
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
320
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "text-label-medium", children: title }),
|
|
321
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: `text-body-small ${descColorClass} ${title ? "mt-2" : ""} ${children ? "mb-8" : ""}`, children: description }),
|
|
322
|
+
children
|
|
323
|
+
] })
|
|
319
324
|
] }),
|
|
320
|
-
|
|
321
|
-
"
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
325
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: `flex ${children ? "items-start" : "self-center"} gap-24`, children: [
|
|
326
|
+
(action == null ? void 0 : action[0]) && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("a", { className: `${actionClass} underline text-sm font-medium`, href: action[1], children: action[0] }),
|
|
327
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
328
|
+
"button",
|
|
329
|
+
{
|
|
330
|
+
type: "button",
|
|
331
|
+
onClick: onClose,
|
|
332
|
+
className: `shrink-0 p-2 rounded transition-colors ${closeColorClass}`,
|
|
333
|
+
"aria-label": "Close",
|
|
334
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(CloseIcon, { className: "h-16 w-16" })
|
|
335
|
+
}
|
|
336
|
+
)
|
|
337
|
+
] })
|
|
330
338
|
] }));
|
|
331
339
|
}
|
|
332
340
|
);
|
|
@@ -335,18 +343,17 @@ AlertBanner.displayName = "AlertBanner";
|
|
|
335
343
|
// src/components/Avatar/Avatar.tsx
|
|
336
344
|
var import_react3 = require("react");
|
|
337
345
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
338
|
-
var
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
xl: { container: "h-14 w-14", text: "text-lg", status: "h-4 w-4", statusRing: "ring-2" },
|
|
344
|
-
"2xl": { container: "h-16 w-16", text: "text-xl", status: "h-4 w-4", statusRing: "ring-2" }
|
|
346
|
+
var sizeClasses = {
|
|
347
|
+
sm: { container: "h-24 w-24", text: "text-sm", status: "h-6 w-6", statusRing: "ring-1" },
|
|
348
|
+
md: { container: "h-32 w-32", text: "text-base", status: "h-8 w-8", statusRing: "ring-[1.5px]" },
|
|
349
|
+
lg: { container: "h-40 w-40", text: "text-lg", status: "h-10 w-10", statusRing: "ring-2" },
|
|
350
|
+
xl: { container: "h-48 w-48", text: "text-xl", status: "h-12 w-12", statusRing: "ring-2" }
|
|
345
351
|
};
|
|
346
352
|
var statusColorClasses = {
|
|
347
353
|
online: "bg-avatar-status-online",
|
|
348
354
|
offline: "bg-avatar-status-offline",
|
|
349
|
-
busy: "bg-avatar-status-busy"
|
|
355
|
+
busy: "bg-avatar-status-busy",
|
|
356
|
+
"": ""
|
|
350
357
|
};
|
|
351
358
|
function getInitials(name) {
|
|
352
359
|
const parts = name.trim().split(/\s+/);
|
|
@@ -360,7 +367,6 @@ var Avatar = (0, import_react3.forwardRef)(
|
|
|
360
367
|
(_a, ref) => {
|
|
361
368
|
var _b = _a, {
|
|
362
369
|
size = "md",
|
|
363
|
-
shape = "circle",
|
|
364
370
|
src,
|
|
365
371
|
alt = "",
|
|
366
372
|
name,
|
|
@@ -369,7 +375,6 @@ var Avatar = (0, import_react3.forwardRef)(
|
|
|
369
375
|
className = ""
|
|
370
376
|
} = _b, rest = __objRest(_b, [
|
|
371
377
|
"size",
|
|
372
|
-
"shape",
|
|
373
378
|
"src",
|
|
374
379
|
"alt",
|
|
375
380
|
"name",
|
|
@@ -377,15 +382,13 @@ var Avatar = (0, import_react3.forwardRef)(
|
|
|
377
382
|
"status",
|
|
378
383
|
"className"
|
|
379
384
|
]);
|
|
380
|
-
const sz =
|
|
381
|
-
const roundedClass = shape === "circle" ? "rounded-full" : "rounded-lg";
|
|
385
|
+
const sz = sizeClasses[size];
|
|
382
386
|
const containerClasses = [
|
|
383
|
-
"relative inline-flex items-center justify-center shrink-0",
|
|
387
|
+
"relative inline-flex items-center justify-center shrink-0 rounded-full",
|
|
384
388
|
"bg-avatar-bg text-avatar-text font-medium font-sans",
|
|
385
389
|
"transition-colors duration-150",
|
|
386
390
|
"select-none",
|
|
387
391
|
sz.container,
|
|
388
|
-
roundedClass,
|
|
389
392
|
className
|
|
390
393
|
].filter(Boolean).join(" ");
|
|
391
394
|
let content;
|
|
@@ -395,7 +398,7 @@ var Avatar = (0, import_react3.forwardRef)(
|
|
|
395
398
|
{
|
|
396
399
|
src,
|
|
397
400
|
alt: alt || name || "",
|
|
398
|
-
className:
|
|
401
|
+
className: "h-full w-full object-cover rounded-full"
|
|
399
402
|
}
|
|
400
403
|
);
|
|
401
404
|
} else if (icon) {
|
|
@@ -427,83 +430,45 @@ Avatar.displayName = "Avatar";
|
|
|
427
430
|
// src/components/Badge/Badge.tsx
|
|
428
431
|
var import_react4 = require("react");
|
|
429
432
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
430
|
-
var
|
|
431
|
-
sm: "h-
|
|
432
|
-
md: "h-
|
|
433
|
-
lg: "h-
|
|
433
|
+
var sizeClasses2 = {
|
|
434
|
+
sm: "h-20 px-8 py-2 text-label-small gap-4",
|
|
435
|
+
md: "h-28 px-10 py-4 text-label-medium gap-4",
|
|
436
|
+
lg: "h-32 px-14 py-6 text-label-large gap-6"
|
|
434
437
|
};
|
|
435
438
|
var iconSizeClasses = {
|
|
436
|
-
sm: "h-
|
|
437
|
-
md: "h-
|
|
438
|
-
lg: "h-
|
|
439
|
-
};
|
|
440
|
-
var dotSizeClasses = {
|
|
441
|
-
sm: "h-1.5 w-1.5",
|
|
442
|
-
md: "h-1.5 w-1.5",
|
|
443
|
-
lg: "h-2 w-2"
|
|
444
|
-
};
|
|
445
|
-
var shapeClasses = {
|
|
446
|
-
round: "rounded-full",
|
|
447
|
-
square: "rounded"
|
|
439
|
+
sm: "h-16 w-16",
|
|
440
|
+
md: "h-20 w-20",
|
|
441
|
+
lg: "h-24 w-24"
|
|
448
442
|
};
|
|
449
443
|
var minimalClasses = {
|
|
450
|
-
common: "bg-transparent border border-
|
|
451
|
-
success: "bg-transparent border border-
|
|
452
|
-
warning: "bg-transparent border border-
|
|
453
|
-
info: "bg-transparent border border-
|
|
454
|
-
brand: "bg-transparent border border-
|
|
455
|
-
danger: "bg-transparent border border-
|
|
456
|
-
};
|
|
457
|
-
var minimalDotClasses = {
|
|
458
|
-
common: "bg-badge-minimal-common-dot",
|
|
459
|
-
success: "bg-badge-minimal-success-dot",
|
|
460
|
-
warning: "bg-badge-minimal-warning-dot",
|
|
461
|
-
info: "bg-badge-minimal-info-dot",
|
|
462
|
-
brand: "bg-badge-minimal-brand-dot",
|
|
463
|
-
danger: "bg-badge-minimal-danger-dot"
|
|
444
|
+
common: "bg-transparent border border-badges-border-primary text-badges-text-primary",
|
|
445
|
+
success: "bg-transparent border border-badges-border-success text-badges-text-success",
|
|
446
|
+
warning: "bg-transparent border border-badges-border-warning text-badges-text-warning",
|
|
447
|
+
info: "bg-transparent border border-badges-border-info text-badges-text-info",
|
|
448
|
+
brand: "bg-transparent border border-badges-border-brand text-badges-text-brand",
|
|
449
|
+
danger: "bg-transparent border border-badges-border-danger text-badges-text-danger"
|
|
464
450
|
};
|
|
465
451
|
var subtleClasses = {
|
|
466
|
-
common: "bg-
|
|
467
|
-
success: "bg-
|
|
468
|
-
warning: "bg-
|
|
469
|
-
info: "bg-
|
|
470
|
-
brand: "bg-
|
|
471
|
-
danger: "bg-
|
|
472
|
-
};
|
|
473
|
-
var subtleDotClasses = {
|
|
474
|
-
common: "bg-badge-subtle-common-dot",
|
|
475
|
-
success: "bg-badge-subtle-success-dot",
|
|
476
|
-
warning: "bg-badge-subtle-warning-dot",
|
|
477
|
-
info: "bg-badge-subtle-info-dot",
|
|
478
|
-
brand: "bg-badge-subtle-brand-dot",
|
|
479
|
-
danger: "bg-badge-subtle-danger-dot"
|
|
452
|
+
common: "bg-badges-background-common-subtle text-badges-text-primary",
|
|
453
|
+
success: "bg-badges-background-success-subtle text-badges-text-success",
|
|
454
|
+
warning: "bg-badges-background-warning-subtle text-badges-text-warning",
|
|
455
|
+
info: "bg-badges-background-info-subtle text-badges-text-info",
|
|
456
|
+
brand: "bg-badges-background-brand-subtle text-badges-text-brand",
|
|
457
|
+
danger: "bg-badges-background-danger-subtle text-badges-text-danger"
|
|
480
458
|
};
|
|
481
459
|
var boldClasses = {
|
|
482
|
-
common: "bg-
|
|
483
|
-
success: "bg-
|
|
484
|
-
warning: "bg-
|
|
485
|
-
info: "bg-
|
|
486
|
-
brand: "bg-
|
|
487
|
-
danger: "bg-
|
|
488
|
-
};
|
|
489
|
-
var boldDotClasses = {
|
|
490
|
-
common: "bg-badge-bold-common-dot",
|
|
491
|
-
success: "bg-badge-bold-success-dot",
|
|
492
|
-
warning: "bg-badge-bold-warning-dot",
|
|
493
|
-
info: "bg-badge-bold-info-dot",
|
|
494
|
-
brand: "bg-badge-bold-brand-dot",
|
|
495
|
-
danger: "bg-badge-bold-danger-dot"
|
|
460
|
+
common: "bg-badges-background-common text-badges-text-inverse",
|
|
461
|
+
success: "bg-badges-background-success text-badges-text-inverse",
|
|
462
|
+
warning: "bg-badges-background-warning text-badges-text-primary",
|
|
463
|
+
info: "bg-badges-background-info text-badges-text-inverse",
|
|
464
|
+
brand: "bg-badges-background-brand text-badges-text-inverse",
|
|
465
|
+
danger: "bg-badges-background-danger text-badges-text-inverse"
|
|
496
466
|
};
|
|
497
467
|
var styleMap = {
|
|
498
468
|
minimal: minimalClasses,
|
|
499
469
|
subtle: subtleClasses,
|
|
500
470
|
bold: boldClasses
|
|
501
471
|
};
|
|
502
|
-
var dotStyleMap = {
|
|
503
|
-
minimal: minimalDotClasses,
|
|
504
|
-
subtle: subtleDotClasses,
|
|
505
|
-
bold: boldDotClasses
|
|
506
|
-
};
|
|
507
472
|
var Badge = (0, import_react4.forwardRef)(
|
|
508
473
|
(_a, ref) => {
|
|
509
474
|
var _b = _a, {
|
|
@@ -512,7 +477,6 @@ var Badge = (0, import_react4.forwardRef)(
|
|
|
512
477
|
size = "md",
|
|
513
478
|
shape = "round",
|
|
514
479
|
icon,
|
|
515
|
-
dot = false,
|
|
516
480
|
children,
|
|
517
481
|
className = ""
|
|
518
482
|
} = _b, rest = __objRest(_b, [
|
|
@@ -521,21 +485,19 @@ var Badge = (0, import_react4.forwardRef)(
|
|
|
521
485
|
"size",
|
|
522
486
|
"shape",
|
|
523
487
|
"icon",
|
|
524
|
-
"dot",
|
|
525
488
|
"children",
|
|
526
489
|
"className"
|
|
527
490
|
]);
|
|
528
491
|
const classes = [
|
|
529
492
|
"inline-flex items-center justify-center font-medium font-sans",
|
|
530
493
|
"whitespace-nowrap select-none",
|
|
531
|
-
|
|
532
|
-
|
|
494
|
+
sizeClasses2[size],
|
|
495
|
+
shape === "round" ? "rounded-full" : `rounded-${size}`,
|
|
533
496
|
styleMap[badgeStyle][status],
|
|
534
497
|
className
|
|
535
498
|
].filter(Boolean).join(" ");
|
|
536
499
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", __spreadProps(__spreadValues({ ref, className: classes }, rest), { children: [
|
|
537
|
-
|
|
538
|
-
!dot && icon && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: `shrink-0 ${iconSizeClasses[size]}`, children: icon }),
|
|
500
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: `shrink-0 ${iconSizeClasses[size]}`, children: icon }),
|
|
539
501
|
children
|
|
540
502
|
] }));
|
|
541
503
|
}
|
|
@@ -543,77 +505,119 @@ var Badge = (0, import_react4.forwardRef)(
|
|
|
543
505
|
Badge.displayName = "Badge";
|
|
544
506
|
|
|
545
507
|
// src/components/Button/Button.tsx
|
|
508
|
+
var import_react6 = require("react");
|
|
509
|
+
|
|
510
|
+
// src/components/Loading/Loading.tsx
|
|
546
511
|
var import_react5 = require("react");
|
|
547
512
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
513
|
+
var Loading = (0, import_react5.forwardRef)(
|
|
514
|
+
(_a, ref) => {
|
|
515
|
+
var _b = _a, { size = "sm", isDark = false, className = "" } = _b, rest = __objRest(_b, ["size", "isDark", "className"]);
|
|
516
|
+
const containerClasses = [
|
|
517
|
+
isDark ? "text-white-100" : "text-blue-600",
|
|
518
|
+
className
|
|
519
|
+
].filter(Boolean).join(" ");
|
|
520
|
+
return size === "sm" && !isDark ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", __spreadProps(__spreadValues({ ref, className: containerClasses }, rest), { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
521
|
+
"svg",
|
|
522
|
+
{
|
|
523
|
+
className: "animate-spin",
|
|
524
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
525
|
+
width: "18",
|
|
526
|
+
height: "18",
|
|
527
|
+
viewBox: "0 0 18 18",
|
|
528
|
+
fill: "none",
|
|
529
|
+
children: [
|
|
530
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
531
|
+
"path",
|
|
532
|
+
{
|
|
533
|
+
d: "M1 9C1 6.87827 1.84286 4.84344 3.34315 3.34315C4.84344 1.84285 6.87827 1 9 1C11.1217 1 13.1566 1.84286 14.6569 3.34315C16.1571 4.84344 17 6.87827 17 9C17 11.1217 16.1571 13.1566 14.6569 14.6569C13.1566 16.1571 11.1217 17 9 17C6.87827 17 4.84344 16.1571 3.34315 14.6569C1.84285 13.1566 1 11.1217 1 9L1 9Z",
|
|
534
|
+
stroke: "#F3F4F6",
|
|
535
|
+
"stroke-width": "2"
|
|
536
|
+
}
|
|
537
|
+
),
|
|
538
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
539
|
+
"path",
|
|
540
|
+
{
|
|
541
|
+
d: "M1 9C1 7.31057 1.53484 5.6645 2.52786 4.29772C3.52089 2.93094 4.92112 1.91361 6.52787 1.39155C8.13461 0.869484 9.86539 0.869484 11.4721 1.39155C13.0789 1.91361 14.4791 2.93094 15.4721 4.29772",
|
|
542
|
+
stroke: "#0193D7",
|
|
543
|
+
"stroke-width": "2"
|
|
544
|
+
}
|
|
545
|
+
)
|
|
546
|
+
]
|
|
547
|
+
}
|
|
548
|
+
) })) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", __spreadProps(__spreadValues({ ref, className: containerClasses }, rest), { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
549
|
+
"svg",
|
|
550
|
+
{
|
|
551
|
+
className: "animate-spin",
|
|
552
|
+
width: size === "sm" ? 18 : 88,
|
|
553
|
+
height: size === "sm" ? 18 : 88,
|
|
554
|
+
viewBox: "0 0 20 20",
|
|
555
|
+
fill: "none",
|
|
556
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
557
|
+
"path",
|
|
558
|
+
{
|
|
559
|
+
d: "M10 2.5a7.5 7.5 0 1 0 7.5 7.5",
|
|
560
|
+
stroke: "currentColor",
|
|
561
|
+
strokeWidth: size === "sm" ? 2 : 1,
|
|
562
|
+
strokeLinecap: "round"
|
|
563
|
+
}
|
|
564
|
+
)
|
|
565
|
+
}
|
|
566
|
+
) }));
|
|
567
|
+
}
|
|
568
|
+
);
|
|
569
|
+
Loading.displayName = "Loading";
|
|
570
|
+
|
|
571
|
+
// src/components/Button/Button.tsx
|
|
572
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
548
573
|
var variantClasses = {
|
|
549
574
|
primary: [
|
|
550
|
-
"bg-
|
|
551
|
-
"hover:bg-
|
|
552
|
-
"active:bg-
|
|
553
|
-
"focus-visible:ring-2 focus-visible:ring-
|
|
554
|
-
"disabled:bg-
|
|
575
|
+
"bg-blue-600 text-white-100",
|
|
576
|
+
"hover:bg-blue-700",
|
|
577
|
+
"active:bg-blue-800",
|
|
578
|
+
"focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2",
|
|
579
|
+
"disabled:bg-gray-100 disabled:text-gray-400"
|
|
555
580
|
].join(" "),
|
|
556
581
|
secondary: [
|
|
557
|
-
"bg-
|
|
558
|
-
"hover:bg-
|
|
559
|
-
"active:bg-
|
|
560
|
-
"focus-visible:ring-2 focus-visible:ring-
|
|
561
|
-
"disabled:bg-
|
|
582
|
+
"bg-gray-100 text-gray-900",
|
|
583
|
+
"hover:bg-gray-200",
|
|
584
|
+
"active:bg-gray-300",
|
|
585
|
+
"focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2",
|
|
586
|
+
"disabled:bg-gray-100 disabled:text-gray-400"
|
|
562
587
|
].join(" "),
|
|
563
588
|
tertiary: [
|
|
564
|
-
"bg-
|
|
565
|
-
"hover:bg-
|
|
566
|
-
"active:bg-
|
|
567
|
-
"focus-visible:ring-2 focus-visible:ring-
|
|
568
|
-
"disabled:bg-
|
|
589
|
+
"bg-black-0 text-gray-900",
|
|
590
|
+
"hover:bg-gray-200",
|
|
591
|
+
"active:bg-gray-300",
|
|
592
|
+
"focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-2",
|
|
593
|
+
"disabled:bg-gray-100 disabled:text-gray-400"
|
|
569
594
|
].join(" "),
|
|
570
595
|
contrast: [
|
|
571
|
-
"bg-
|
|
572
|
-
"hover:bg-
|
|
573
|
-
"active:bg-
|
|
574
|
-
"focus-visible:ring-2 focus-visible:ring-
|
|
575
|
-
"disabled:bg-
|
|
596
|
+
"bg-white-100 text-blue-600",
|
|
597
|
+
"hover:bg-white-90",
|
|
598
|
+
"active:bg-white-80",
|
|
599
|
+
"focus-visible:ring-2 focus-visible:ring-white-100 focus-visible:ring-offset-2",
|
|
600
|
+
"disabled:bg-gray-50 disabled:text-gray-400"
|
|
576
601
|
].join(" "),
|
|
577
602
|
transparent: [
|
|
578
|
-
"bg-
|
|
579
|
-
"hover:bg-
|
|
580
|
-
"active:bg-
|
|
581
|
-
"focus-visible:ring-2 focus-visible:ring-
|
|
582
|
-
"disabled:bg-
|
|
603
|
+
"bg-black-0 text-white-100",
|
|
604
|
+
"hover:bg-white-20",
|
|
605
|
+
"active:bg-white-30",
|
|
606
|
+
"focus-visible:ring-2 focus-visible:ring-white-100 focus-visible:bg-black-0 focus-visible:ring-offset-2",
|
|
607
|
+
"disabled:bg-black-0 disabled:text-white-40"
|
|
583
608
|
].join(" ")
|
|
584
609
|
};
|
|
585
|
-
var
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
610
|
+
var sizeClasses3 = {
|
|
611
|
+
sm: "px-16 py-6 text-label-medium",
|
|
612
|
+
md: "px-20 py-8 text-label-large",
|
|
613
|
+
lg: "px-24 py-12 text-label-large",
|
|
614
|
+
xl: "px-32 py-16 text-label-large"
|
|
590
615
|
};
|
|
591
|
-
|
|
592
|
-
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
593
|
-
"svg",
|
|
594
|
-
{
|
|
595
|
-
className,
|
|
596
|
-
width: "1em",
|
|
597
|
-
height: "1em",
|
|
598
|
-
viewBox: "0 0 20 20",
|
|
599
|
-
fill: "none",
|
|
600
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
601
|
-
"path",
|
|
602
|
-
{
|
|
603
|
-
d: "M10 2.5a7.5 7.5 0 1 0 7.5 7.5",
|
|
604
|
-
stroke: "currentColor",
|
|
605
|
-
strokeWidth: "2",
|
|
606
|
-
strokeLinecap: "round"
|
|
607
|
-
}
|
|
608
|
-
)
|
|
609
|
-
}
|
|
610
|
-
);
|
|
611
|
-
}
|
|
612
|
-
var Button = (0, import_react5.forwardRef)(
|
|
616
|
+
var Button = (0, import_react6.forwardRef)(
|
|
613
617
|
(_a, ref) => {
|
|
614
618
|
var _b = _a, {
|
|
615
619
|
variant = "primary",
|
|
616
|
-
size = "
|
|
620
|
+
size = "md",
|
|
617
621
|
rounded = false,
|
|
618
622
|
loading = false,
|
|
619
623
|
disabled = false,
|
|
@@ -632,161 +636,295 @@ var Button = (0, import_react5.forwardRef)(
|
|
|
632
636
|
"children",
|
|
633
637
|
"className"
|
|
634
638
|
]);
|
|
635
|
-
const isDisabled = disabled
|
|
639
|
+
const isDisabled = disabled;
|
|
636
640
|
const classes = [
|
|
637
|
-
"inline-flex items-center justify-center
|
|
641
|
+
"inline-flex items-center justify-center gap-8",
|
|
638
642
|
"transition-colors duration-150",
|
|
639
643
|
"outline-none",
|
|
640
644
|
"disabled:cursor-not-allowed",
|
|
641
|
-
|
|
645
|
+
loading ? "pointer-events-none" : "cursor-pointer",
|
|
646
|
+
sizeClasses3[size],
|
|
642
647
|
variantClasses[variant],
|
|
643
|
-
rounded ? "rounded-full" : "rounded-
|
|
648
|
+
rounded ? "rounded-full" : size === "sm" ? "rounded-6" : size === "xl" ? "rounded-12" : "rounded-8",
|
|
644
649
|
className
|
|
645
650
|
].filter(Boolean).join(" ");
|
|
646
|
-
return /* @__PURE__ */ (0,
|
|
647
|
-
"
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
className: classes
|
|
652
|
-
}, rest), {
|
|
653
|
-
children: [
|
|
654
|
-
loading ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Spinner, { className: "animate-spin" }) : startIcon,
|
|
655
|
-
children,
|
|
656
|
-
!loading && endIcon
|
|
657
|
-
]
|
|
658
|
-
})
|
|
659
|
-
);
|
|
651
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("button", __spreadProps(__spreadValues({ ref, disabled: isDisabled, className: classes }, rest), { children: [
|
|
652
|
+
loading ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Loading, { size: "sm", isDark: variant === "primary" || variant === "transparent" }) : startIcon,
|
|
653
|
+
children,
|
|
654
|
+
!loading && endIcon
|
|
655
|
+
] }));
|
|
660
656
|
}
|
|
661
657
|
);
|
|
662
658
|
Button.displayName = "Button";
|
|
663
659
|
|
|
664
|
-
// src/components/
|
|
665
|
-
var
|
|
666
|
-
var
|
|
667
|
-
var
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
660
|
+
// src/components/BottomSheet/BottomSheet.tsx
|
|
661
|
+
var import_react7 = __toESM(require("react"));
|
|
662
|
+
var import_react_dom = require("react-dom");
|
|
663
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
664
|
+
var BottomSheet = (0, import_react7.forwardRef)(
|
|
665
|
+
(_a, ref) => {
|
|
666
|
+
var _b = _a, {
|
|
667
|
+
isForceOpen = false,
|
|
668
|
+
setIsForceOpen,
|
|
669
|
+
isClosedAble = true,
|
|
670
|
+
children,
|
|
671
|
+
startModalBtn,
|
|
672
|
+
stopModalBtn,
|
|
673
|
+
afterStopBtn,
|
|
674
|
+
size = "md",
|
|
675
|
+
modalTitle = "\u0E2B\u0E31\u0E27\u0E02\u0E49\u0E2D",
|
|
676
|
+
modalDesc = "\u0E04\u0E33\u0E2D\u0E18\u0E34\u0E1A\u0E32\u0E22",
|
|
677
|
+
className = ""
|
|
678
|
+
} = _b, rest = __objRest(_b, [
|
|
679
|
+
"isForceOpen",
|
|
680
|
+
"setIsForceOpen",
|
|
681
|
+
"isClosedAble",
|
|
682
|
+
"children",
|
|
683
|
+
"startModalBtn",
|
|
684
|
+
"stopModalBtn",
|
|
685
|
+
"afterStopBtn",
|
|
686
|
+
"size",
|
|
687
|
+
"modalTitle",
|
|
688
|
+
"modalDesc",
|
|
689
|
+
"className"
|
|
690
|
+
]);
|
|
691
|
+
const [isOpen, setIsOpen] = (0, import_react7.useState)(false);
|
|
692
|
+
const [shouldRender, setShouldRender] = (0, import_react7.useState)(false);
|
|
693
|
+
const [animate, setAnimate] = (0, import_react7.useState)(false);
|
|
694
|
+
(0, import_react7.useEffect)(() => {
|
|
695
|
+
if (isOpen) {
|
|
696
|
+
setShouldRender(true);
|
|
697
|
+
setTimeout(() => setAnimate(true), 10);
|
|
698
|
+
} else {
|
|
699
|
+
setAnimate(false);
|
|
700
|
+
const timer = setTimeout(() => setShouldRender(false), 300);
|
|
701
|
+
return () => clearTimeout(timer);
|
|
702
|
+
}
|
|
703
|
+
}, [isOpen]);
|
|
704
|
+
(0, import_react7.useEffect)(() => {
|
|
705
|
+
if (isForceOpen) {
|
|
706
|
+
setIsOpen(true);
|
|
707
|
+
} else {
|
|
708
|
+
setIsOpen(false);
|
|
709
|
+
}
|
|
710
|
+
}, [isForceOpen]);
|
|
711
|
+
const handleStartClick = (0, import_react7.useCallback)(
|
|
712
|
+
(e) => {
|
|
713
|
+
var _a2, _b2;
|
|
714
|
+
(_b2 = startModalBtn == null ? void 0 : (_a2 = startModalBtn.props).onClick) == null ? void 0 : _b2.call(_a2, e);
|
|
715
|
+
setIsForceOpen == null ? void 0 : setIsForceOpen(true);
|
|
716
|
+
setIsOpen(true);
|
|
717
|
+
},
|
|
718
|
+
[startModalBtn]
|
|
719
|
+
);
|
|
720
|
+
const handleStopClick = (0, import_react7.useCallback)(
|
|
721
|
+
(e) => {
|
|
722
|
+
var _a2, _b2;
|
|
723
|
+
(_b2 = stopModalBtn == null ? void 0 : (_a2 = stopModalBtn.props).onClick) == null ? void 0 : _b2.call(_a2, e);
|
|
724
|
+
setIsForceOpen == null ? void 0 : setIsForceOpen(false);
|
|
725
|
+
setIsOpen(false);
|
|
726
|
+
},
|
|
727
|
+
[stopModalBtn]
|
|
728
|
+
);
|
|
729
|
+
const handleCloseClick = () => {
|
|
730
|
+
setIsForceOpen == null ? void 0 : setIsForceOpen(false);
|
|
731
|
+
setIsOpen(false);
|
|
732
|
+
};
|
|
733
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { ref, style: { display: "contents" }, children: [
|
|
734
|
+
startModalBtn && import_react7.default.cloneElement(startModalBtn, {
|
|
735
|
+
onClick: handleStartClick
|
|
736
|
+
}),
|
|
737
|
+
shouldRender && (0, import_react_dom.createPortal)(
|
|
738
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
739
|
+
"div",
|
|
740
|
+
{
|
|
741
|
+
className: `fixed inset-0 z-50 flex items-end justify-center transition-opacity duration-300 ${animate ? "opacity-100" : "opacity-0"}`,
|
|
742
|
+
"aria-modal": "true",
|
|
743
|
+
role: "dialog",
|
|
744
|
+
children: [
|
|
745
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
746
|
+
"div",
|
|
747
|
+
{
|
|
748
|
+
className: "absolute inset-0 bg-black/40",
|
|
749
|
+
onClick: () => isClosedAble ? handleCloseClick() : null,
|
|
750
|
+
"aria-label": "Close modal"
|
|
751
|
+
}
|
|
752
|
+
),
|
|
753
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
754
|
+
"div",
|
|
755
|
+
{
|
|
756
|
+
className: `flex flex-col z-10 w-full rounded-t-xl bg-white pt-8 pb-16 px-16 shadow-lg transform transition-all duration-300
|
|
757
|
+
${size === "sm" ? "h-auto max-h-auto" : size === "md" ? "h-full max-h-[85vh]" : "h-full max-h-screen rounded-t-none!"}
|
|
758
|
+
${animate ? "scale-100 translate-y-0" : "scale-95 translate-y-full"}`,
|
|
759
|
+
children: [
|
|
760
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "w-full flex flex-row relative items-center pt-8 pb-16", children: [
|
|
761
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex flex-col px-8 max-w-225", children: [
|
|
762
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "text-heading-3 text-button-sheet-text-primary", children: modalTitle }),
|
|
763
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "text-body-small text-button-sheet-text-secondary", children: modalDesc })
|
|
764
|
+
] }),
|
|
765
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
766
|
+
"i",
|
|
767
|
+
{
|
|
768
|
+
className: "fi fi-br-cross-small flex text-xl text-gray-600 w-44 h-44 absolute top-0 right-0 p-12",
|
|
769
|
+
onClick: () => handleCloseClick()
|
|
770
|
+
}
|
|
771
|
+
),
|
|
772
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
773
|
+
"div",
|
|
774
|
+
{
|
|
775
|
+
className: "text-gray-600 text-xl absolute top-0 right-0 p-12",
|
|
776
|
+
onClick: () => handleCloseClick(),
|
|
777
|
+
children: "x"
|
|
778
|
+
}
|
|
779
|
+
)
|
|
780
|
+
] }),
|
|
781
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "w-full h-full grow overflow-y-auto overflow-x-visible", children: [
|
|
782
|
+
children,
|
|
783
|
+
stopModalBtn && import_react7.default.cloneElement(stopModalBtn, {
|
|
784
|
+
onClick: handleStopClick
|
|
785
|
+
}),
|
|
786
|
+
afterStopBtn && afterStopBtn
|
|
787
|
+
] })
|
|
788
|
+
]
|
|
789
|
+
}
|
|
790
|
+
)
|
|
791
|
+
]
|
|
792
|
+
}
|
|
793
|
+
),
|
|
794
|
+
document.body
|
|
795
|
+
)
|
|
796
|
+
] });
|
|
681
797
|
}
|
|
682
|
-
|
|
798
|
+
);
|
|
799
|
+
BottomSheet.displayName = "BottomSheet";
|
|
800
|
+
|
|
801
|
+
// src/components/Checkbox/Checkbox.tsx
|
|
802
|
+
var import_react8 = require("react");
|
|
803
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
683
804
|
function CheckIcon({ className }) {
|
|
684
|
-
return /* @__PURE__ */ (0,
|
|
685
|
-
"
|
|
805
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
806
|
+
"svg",
|
|
686
807
|
{
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
808
|
+
className,
|
|
809
|
+
viewBox: "0 0 16 16",
|
|
810
|
+
fill: "none",
|
|
811
|
+
"aria-hidden": "true",
|
|
812
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
813
|
+
"path",
|
|
814
|
+
{
|
|
815
|
+
d: "M13.333 4.667 6 12l-3.333-3.333",
|
|
816
|
+
stroke: "currentColor",
|
|
817
|
+
strokeWidth: "2",
|
|
818
|
+
strokeLinecap: "round",
|
|
819
|
+
strokeLinejoin: "round"
|
|
820
|
+
}
|
|
821
|
+
)
|
|
692
822
|
}
|
|
693
|
-
)
|
|
823
|
+
);
|
|
694
824
|
}
|
|
695
825
|
function IndeterminateIcon({ className }) {
|
|
696
|
-
return /* @__PURE__ */ (0,
|
|
697
|
-
"
|
|
826
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
827
|
+
"svg",
|
|
698
828
|
{
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
829
|
+
className,
|
|
830
|
+
viewBox: "0 0 16 16",
|
|
831
|
+
fill: "none",
|
|
832
|
+
"aria-hidden": "true",
|
|
833
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
834
|
+
"path",
|
|
835
|
+
{
|
|
836
|
+
d: "M3.333 8h9.334",
|
|
837
|
+
stroke: "currentColor",
|
|
838
|
+
strokeWidth: "2",
|
|
839
|
+
strokeLinecap: "round"
|
|
840
|
+
}
|
|
841
|
+
)
|
|
703
842
|
}
|
|
704
|
-
)
|
|
843
|
+
);
|
|
705
844
|
}
|
|
706
|
-
var Checkbox = (0,
|
|
845
|
+
var Checkbox = (0, import_react8.forwardRef)(
|
|
707
846
|
(_a, ref) => {
|
|
708
847
|
var _b = _a, {
|
|
709
|
-
size = "medium",
|
|
710
848
|
label,
|
|
711
849
|
description,
|
|
712
|
-
indeterminate = false,
|
|
713
850
|
error = false,
|
|
714
851
|
contrast = false,
|
|
715
|
-
|
|
716
|
-
defaultChecked,
|
|
852
|
+
indeterminate = false,
|
|
717
853
|
disabled = false,
|
|
718
854
|
className = "",
|
|
719
|
-
id
|
|
855
|
+
id,
|
|
856
|
+
defaultChecked
|
|
720
857
|
} = _b, rest = __objRest(_b, [
|
|
721
|
-
"size",
|
|
722
858
|
"label",
|
|
723
859
|
"description",
|
|
724
|
-
"indeterminate",
|
|
725
860
|
"error",
|
|
726
861
|
"contrast",
|
|
727
|
-
"
|
|
728
|
-
"defaultChecked",
|
|
862
|
+
"indeterminate",
|
|
729
863
|
"disabled",
|
|
730
864
|
"className",
|
|
731
|
-
"id"
|
|
865
|
+
"id",
|
|
866
|
+
"defaultChecked"
|
|
732
867
|
]);
|
|
733
|
-
const reactId = (0,
|
|
868
|
+
const reactId = (0, import_react8.useId)();
|
|
734
869
|
const inputId = id != null ? id : reactId;
|
|
735
|
-
const
|
|
736
|
-
|
|
737
|
-
const boxBase = [
|
|
738
|
-
"relative inline-flex items-center justify-center shrink-0",
|
|
739
|
-
"rounded",
|
|
740
|
-
"border",
|
|
741
|
-
"transition-colors duration-150",
|
|
742
|
-
sz.box
|
|
743
|
-
].join(" ");
|
|
744
|
-
let boxState;
|
|
745
|
-
if (disabled) {
|
|
746
|
-
boxState = isActive ? "bg-checkbox-disabled-checked-bg border-checkbox-disabled-border text-checkbox-disabled-icon" : "bg-checkbox-disabled-bg border-checkbox-disabled-border";
|
|
747
|
-
} else if (contrast) {
|
|
748
|
-
boxState = isActive ? "bg-checkbox-contrast-checked-bg border-checkbox-contrast-checked-bg text-checkbox-contrast-checked-icon" : "bg-checkbox-contrast-bg border-checkbox-contrast-border text-transparent";
|
|
749
|
-
} else if (error) {
|
|
750
|
-
boxState = isActive ? "bg-checkbox-checked-bg border-checkbox-error-border text-checkbox-checked-icon" : "bg-checkbox-error-bg border-checkbox-error-border text-transparent";
|
|
751
|
-
} else if (isActive) {
|
|
752
|
-
boxState = "bg-checkbox-checked-bg border-checkbox-checked-border text-checkbox-checked-icon";
|
|
753
|
-
} else {
|
|
754
|
-
boxState = "bg-checkbox-bg border-checkbox-border text-transparent hover:border-checkbox-hover-border";
|
|
755
|
-
}
|
|
756
|
-
const ringColor = error ? "peer-focus-visible:ring-checkbox-error-ring" : contrast ? "peer-focus-visible:ring-checkbox-contrast-ring" : "peer-focus-visible:ring-checkbox-ring";
|
|
757
|
-
const ringClasses = `peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2 ${ringColor}`;
|
|
758
|
-
const labelColor = disabled ? "text-checkbox-label-disabled" : contrast ? "text-checkbox-contrast-label" : error ? "text-checkbox-label-error" : "text-checkbox-label";
|
|
759
|
-
const descriptionColor = disabled ? "text-checkbox-label-disabled" : contrast ? "text-checkbox-contrast-description" : "text-checkbox-description";
|
|
760
|
-
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
870
|
+
const [isChecked, setIsChecked] = (0, import_react8.useState)(defaultChecked != null ? defaultChecked : false);
|
|
871
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
761
872
|
"label",
|
|
762
873
|
{
|
|
763
874
|
htmlFor: inputId,
|
|
764
|
-
className:
|
|
765
|
-
"inline-flex items-start font-sans",
|
|
766
|
-
sz.gap,
|
|
767
|
-
disabled ? "cursor-not-allowed" : "cursor-pointer",
|
|
768
|
-
className
|
|
769
|
-
].filter(Boolean).join(" "),
|
|
875
|
+
className: `flex select-none font-sans ${disabled ? "cursor-not-allowed" : "cursor-pointer"} ${className}`,
|
|
770
876
|
children: [
|
|
771
|
-
/* @__PURE__ */ (0,
|
|
772
|
-
/* @__PURE__ */ (0,
|
|
877
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "relative mr-16", children: [
|
|
878
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
773
879
|
"input",
|
|
774
880
|
__spreadValues({
|
|
775
881
|
ref,
|
|
776
882
|
id: inputId,
|
|
777
883
|
type: "checkbox",
|
|
778
|
-
checked,
|
|
779
884
|
defaultChecked,
|
|
885
|
+
onChange: (e) => {
|
|
886
|
+
var _a2;
|
|
887
|
+
setIsChecked(e.target.checked);
|
|
888
|
+
(_a2 = rest.onChange) == null ? void 0 : _a2.call(rest, e);
|
|
889
|
+
},
|
|
780
890
|
disabled,
|
|
781
|
-
"aria-checked": indeterminate ? "mixed" :
|
|
782
|
-
className: "
|
|
891
|
+
"aria-checked": indeterminate ? "mixed" : isChecked,
|
|
892
|
+
className: "sr-only"
|
|
783
893
|
}, rest)
|
|
784
894
|
),
|
|
785
|
-
/* @__PURE__ */ (0,
|
|
895
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
896
|
+
"div",
|
|
897
|
+
{
|
|
898
|
+
className: `box m-6 flex h-20 w-20 rounded-md items-center justify-center border ${contrast ? isChecked || indeterminate ? "border-white bg-white" : "border-white" : isChecked || indeterminate ? "bg-static-icon-brand border-static-icon-brand" : "border-static-icon-primary"}`,
|
|
899
|
+
children: isChecked ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
900
|
+
CheckIcon,
|
|
901
|
+
{
|
|
902
|
+
className: `h-20 ${contrast ? "text-static-icon-brand" : "text-white"}`
|
|
903
|
+
}
|
|
904
|
+
) : indeterminate ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
905
|
+
IndeterminateIcon,
|
|
906
|
+
{
|
|
907
|
+
className: `h-20 ${contrast ? "text-static-icon-brand" : "text-white"}`
|
|
908
|
+
}
|
|
909
|
+
) : null
|
|
910
|
+
}
|
|
911
|
+
)
|
|
786
912
|
] }),
|
|
787
|
-
(label || description) && /* @__PURE__ */ (0,
|
|
788
|
-
label && /* @__PURE__ */ (0,
|
|
789
|
-
|
|
913
|
+
(label || description) && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { className: "flex flex-col", children: [
|
|
914
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
915
|
+
"span",
|
|
916
|
+
{
|
|
917
|
+
className: `text-label-large ${disabled ? "text-checkbox-text-disabled" : contrast ? "text-checkbox-text-primary-inverse" : "text-checkbox-text-primary"}`,
|
|
918
|
+
children: label
|
|
919
|
+
}
|
|
920
|
+
),
|
|
921
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
922
|
+
"span",
|
|
923
|
+
{
|
|
924
|
+
className: `text-body-small ${error ? "text-checkbox-text-danger" : disabled ? "text-checkbox-text-disabled" : contrast ? "text-checkbox-text-primary-inverse" : "text-checkbox-text-secondary"}`,
|
|
925
|
+
children: description
|
|
926
|
+
}
|
|
927
|
+
)
|
|
790
928
|
] })
|
|
791
929
|
]
|
|
792
930
|
}
|
|
@@ -795,10 +933,133 @@ var Checkbox = (0, import_react6.forwardRef)(
|
|
|
795
933
|
);
|
|
796
934
|
Checkbox.displayName = "Checkbox";
|
|
797
935
|
|
|
936
|
+
// src/components/Dialog/Dialog.tsx
|
|
937
|
+
var import_react9 = __toESM(require("react"));
|
|
938
|
+
var import_react_dom2 = require("react-dom");
|
|
939
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
940
|
+
var Dialog = (0, import_react9.forwardRef)(
|
|
941
|
+
({
|
|
942
|
+
isForceOpen = false,
|
|
943
|
+
setIsForceOpen,
|
|
944
|
+
isClosedAble = true,
|
|
945
|
+
isCloseIcon = true,
|
|
946
|
+
children,
|
|
947
|
+
startModalBtn,
|
|
948
|
+
stopModalBtn,
|
|
949
|
+
afterStopBtn,
|
|
950
|
+
p = "20"
|
|
951
|
+
}, ref) => {
|
|
952
|
+
const [isOpen, setIsOpen] = (0, import_react9.useState)(false);
|
|
953
|
+
const [isRender, setIsRender] = (0, import_react9.useState)(false);
|
|
954
|
+
const [animate, setAnimate] = (0, import_react9.useState)(false);
|
|
955
|
+
(0, import_react9.useEffect)(() => {
|
|
956
|
+
if (isOpen) {
|
|
957
|
+
setIsRender(true);
|
|
958
|
+
setTimeout(() => setAnimate(true), 10);
|
|
959
|
+
} else {
|
|
960
|
+
setAnimate(false);
|
|
961
|
+
const timer = setTimeout(() => setIsRender(false), 300);
|
|
962
|
+
return () => clearTimeout(timer);
|
|
963
|
+
}
|
|
964
|
+
}, [isOpen]);
|
|
965
|
+
(0, import_react9.useEffect)(() => {
|
|
966
|
+
if (isForceOpen) {
|
|
967
|
+
setIsOpen(true);
|
|
968
|
+
} else {
|
|
969
|
+
setIsOpen(false);
|
|
970
|
+
}
|
|
971
|
+
}, [isForceOpen]);
|
|
972
|
+
const handleStartClick = (0, import_react9.useCallback)(
|
|
973
|
+
(e) => {
|
|
974
|
+
var _a, _b;
|
|
975
|
+
(_b = startModalBtn == null ? void 0 : (_a = startModalBtn.props).onClick) == null ? void 0 : _b.call(_a, e);
|
|
976
|
+
setIsForceOpen == null ? void 0 : setIsForceOpen(true);
|
|
977
|
+
setIsOpen(true);
|
|
978
|
+
},
|
|
979
|
+
[startModalBtn]
|
|
980
|
+
);
|
|
981
|
+
const handleStopClick = (0, import_react9.useCallback)(
|
|
982
|
+
(e) => {
|
|
983
|
+
var _a, _b;
|
|
984
|
+
(_b = stopModalBtn == null ? void 0 : (_a = stopModalBtn.props).onClick) == null ? void 0 : _b.call(_a, e);
|
|
985
|
+
setIsForceOpen == null ? void 0 : setIsForceOpen(false);
|
|
986
|
+
setIsOpen(false);
|
|
987
|
+
},
|
|
988
|
+
[stopModalBtn]
|
|
989
|
+
);
|
|
990
|
+
const handleCloseClick = () => {
|
|
991
|
+
setIsForceOpen == null ? void 0 : setIsForceOpen(false);
|
|
992
|
+
setIsOpen(false);
|
|
993
|
+
};
|
|
994
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { ref, style: { display: "contents" }, children: [
|
|
995
|
+
startModalBtn && import_react9.default.cloneElement(startModalBtn, {
|
|
996
|
+
onClick: handleStartClick
|
|
997
|
+
}),
|
|
998
|
+
isRender && (0, import_react_dom2.createPortal)(
|
|
999
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
1000
|
+
"div",
|
|
1001
|
+
{
|
|
1002
|
+
className: `fixed inset-0 z-50 flex items-center justify-center transition-opacity duration-300 ${animate ? "opacity-100" : "opacity-0"}`,
|
|
1003
|
+
"aria-modal": "true",
|
|
1004
|
+
role: "dialog",
|
|
1005
|
+
children: [
|
|
1006
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1007
|
+
"div",
|
|
1008
|
+
{
|
|
1009
|
+
className: "absolute inset-0 bg-black/40",
|
|
1010
|
+
onClick: () => isClosedAble ? handleCloseClick() : null,
|
|
1011
|
+
"aria-label": "Close modal"
|
|
1012
|
+
}
|
|
1013
|
+
),
|
|
1014
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
1015
|
+
"div",
|
|
1016
|
+
{
|
|
1017
|
+
className: `relative z-10 w-[calc(100%-40px)] max-w-md rounded-xl bg-white p-${p || "20"} shadow-lg transform transition-all duration-300 ${animate ? "scale-100 opacity-100" : "scale-95 opacity-0"}`,
|
|
1018
|
+
children: [
|
|
1019
|
+
isCloseIcon && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1020
|
+
"svg",
|
|
1021
|
+
{
|
|
1022
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1023
|
+
width: "20",
|
|
1024
|
+
height: "20",
|
|
1025
|
+
viewBox: "0 0 20 20",
|
|
1026
|
+
fill: "none",
|
|
1027
|
+
className: "text-gray-900 flex h-20 w-20 items-center justify-center absolute right-16 top-16 cursor-pointer",
|
|
1028
|
+
onMouseDown: (e) => {
|
|
1029
|
+
e.preventDefault();
|
|
1030
|
+
handleCloseClick();
|
|
1031
|
+
},
|
|
1032
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1033
|
+
"path",
|
|
1034
|
+
{
|
|
1035
|
+
d: "M14.7119 6.0625L10.7744 10L14.7119 13.9375L13.9375 14.7119L10 10.7744L6.0625 14.7119L5.28809 13.9375L9.22559 10L5.28809 6.0625L6.0625 5.28809L10 9.22559L13.9375 5.28809L14.7119 6.0625Z",
|
|
1036
|
+
fill: "#111827"
|
|
1037
|
+
}
|
|
1038
|
+
)
|
|
1039
|
+
}
|
|
1040
|
+
),
|
|
1041
|
+
children,
|
|
1042
|
+
stopModalBtn && import_react9.default.cloneElement(stopModalBtn, {
|
|
1043
|
+
onClick: handleStopClick
|
|
1044
|
+
}),
|
|
1045
|
+
afterStopBtn && afterStopBtn
|
|
1046
|
+
]
|
|
1047
|
+
}
|
|
1048
|
+
)
|
|
1049
|
+
]
|
|
1050
|
+
}
|
|
1051
|
+
),
|
|
1052
|
+
document.body
|
|
1053
|
+
)
|
|
1054
|
+
] });
|
|
1055
|
+
}
|
|
1056
|
+
);
|
|
1057
|
+
Dialog.displayName = "Dialog";
|
|
1058
|
+
|
|
798
1059
|
// src/components/Icon/Icon.tsx
|
|
799
|
-
var
|
|
800
|
-
var
|
|
801
|
-
var Icon = (0,
|
|
1060
|
+
var import_react10 = require("react");
|
|
1061
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1062
|
+
var Icon = (0, import_react10.forwardRef)(
|
|
802
1063
|
(_a, ref) => {
|
|
803
1064
|
var _b = _a, {
|
|
804
1065
|
name,
|
|
@@ -826,7 +1087,7 @@ var Icon = (0, import_react7.forwardRef)(
|
|
|
826
1087
|
"material-symbols-outlined select-none shrink-0 inline-block leading-none",
|
|
827
1088
|
className
|
|
828
1089
|
].filter(Boolean).join(" ");
|
|
829
|
-
return /* @__PURE__ */ (0,
|
|
1090
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
830
1091
|
"span",
|
|
831
1092
|
__spreadProps(__spreadValues({
|
|
832
1093
|
ref,
|
|
@@ -849,114 +1110,105 @@ var Icon = (0, import_react7.forwardRef)(
|
|
|
849
1110
|
Icon.displayName = "Icon";
|
|
850
1111
|
|
|
851
1112
|
// src/components/Radio/Radio.tsx
|
|
852
|
-
var
|
|
853
|
-
var
|
|
854
|
-
var
|
|
855
|
-
small: {
|
|
856
|
-
box: "h-4 w-4",
|
|
857
|
-
dot: "h-1.5 w-1.5",
|
|
858
|
-
label: "text-sm leading-5",
|
|
859
|
-
description: "text-xs leading-4",
|
|
860
|
-
gap: "gap-2"
|
|
861
|
-
},
|
|
862
|
-
medium: {
|
|
863
|
-
box: "h-5 w-5",
|
|
864
|
-
dot: "h-2 w-2",
|
|
865
|
-
label: "text-base leading-6",
|
|
866
|
-
description: "text-sm leading-5",
|
|
867
|
-
gap: "gap-2.5"
|
|
868
|
-
}
|
|
869
|
-
};
|
|
870
|
-
var Radio = (0, import_react8.forwardRef)(
|
|
1113
|
+
var import_react11 = require("react");
|
|
1114
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
1115
|
+
var Radio = (0, import_react11.forwardRef)(
|
|
871
1116
|
(_a, ref) => {
|
|
872
1117
|
var _b = _a, {
|
|
873
|
-
size = "
|
|
1118
|
+
size = "sm",
|
|
874
1119
|
label,
|
|
875
1120
|
description,
|
|
876
1121
|
error = false,
|
|
877
|
-
contrast = false,
|
|
878
1122
|
checked,
|
|
879
1123
|
defaultChecked,
|
|
880
1124
|
disabled = false,
|
|
881
1125
|
className = "",
|
|
882
|
-
id
|
|
1126
|
+
id,
|
|
1127
|
+
name
|
|
883
1128
|
} = _b, rest = __objRest(_b, [
|
|
884
1129
|
"size",
|
|
885
1130
|
"label",
|
|
886
1131
|
"description",
|
|
887
1132
|
"error",
|
|
888
|
-
"contrast",
|
|
889
1133
|
"checked",
|
|
890
1134
|
"defaultChecked",
|
|
891
1135
|
"disabled",
|
|
892
1136
|
"className",
|
|
893
|
-
"id"
|
|
1137
|
+
"id",
|
|
1138
|
+
"name"
|
|
894
1139
|
]);
|
|
895
|
-
const reactId = (0,
|
|
1140
|
+
const reactId = (0, import_react11.useId)();
|
|
896
1141
|
const inputId = id != null ? id : reactId;
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
"relative inline-flex items-center justify-center shrink-0",
|
|
900
|
-
"rounded-full",
|
|
901
|
-
"border",
|
|
902
|
-
"transition-colors duration-150",
|
|
903
|
-
sz.box
|
|
904
|
-
].join(" ");
|
|
905
|
-
let circleState;
|
|
906
|
-
if (disabled) {
|
|
907
|
-
circleState = checked ? "bg-radio-disabled-selected-bg border-radio-disabled-border" : "bg-radio-disabled-bg border-radio-disabled-border";
|
|
908
|
-
} else if (contrast) {
|
|
909
|
-
circleState = checked ? "bg-radio-contrast-selected-bg border-radio-contrast-selected-bg" : "bg-radio-contrast-bg border-radio-contrast-border";
|
|
910
|
-
} else if (error) {
|
|
911
|
-
circleState = checked ? "bg-radio-selected-bg border-radio-error-border" : "bg-radio-error-bg border-radio-error-border";
|
|
912
|
-
} else if (checked) {
|
|
913
|
-
circleState = "bg-radio-selected-bg border-radio-selected-border";
|
|
914
|
-
} else {
|
|
915
|
-
circleState = "bg-radio-bg border-radio-border hover:border-radio-hover-border";
|
|
916
|
-
}
|
|
917
|
-
const ringColor = error ? "peer-focus-visible:ring-radio-error-ring" : contrast ? "peer-focus-visible:ring-radio-contrast-ring" : "peer-focus-visible:ring-radio-ring";
|
|
918
|
-
const ringClasses = `peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2 ${ringColor}`;
|
|
919
|
-
let dotColor;
|
|
920
|
-
if (disabled) {
|
|
921
|
-
dotColor = "bg-radio-disabled-dot";
|
|
922
|
-
} else if (contrast) {
|
|
923
|
-
dotColor = "bg-radio-contrast-selected-dot";
|
|
924
|
-
} else {
|
|
925
|
-
dotColor = "bg-radio-selected-dot";
|
|
926
|
-
}
|
|
927
|
-
const labelColor = disabled ? "text-radio-label-disabled" : contrast ? "text-radio-contrast-label" : error ? "text-radio-label-error" : "text-radio-label";
|
|
928
|
-
const descriptionColor = disabled ? "text-radio-label-disabled" : contrast ? "text-radio-contrast-description" : "text-radio-description";
|
|
929
|
-
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
930
|
-
"label",
|
|
1142
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1143
|
+
"div",
|
|
931
1144
|
{
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
"
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
1145
|
+
className: `${disabled ? "cursor-not-allowed" : "cursor-pointer"} ${className}`,
|
|
1146
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
1147
|
+
"label",
|
|
1148
|
+
{
|
|
1149
|
+
htmlFor: inputId,
|
|
1150
|
+
className: `flex gap-4 ${disabled ? "pointer-events-none text-gray-400" : "text-gray-900 cursor-pointer"}`,
|
|
1151
|
+
children: [
|
|
1152
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { children: [
|
|
1153
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1154
|
+
"input",
|
|
1155
|
+
__spreadValues({
|
|
1156
|
+
ref,
|
|
1157
|
+
id: inputId,
|
|
1158
|
+
type: "radio",
|
|
1159
|
+
className: "sr-only peer",
|
|
1160
|
+
checked,
|
|
1161
|
+
defaultChecked,
|
|
1162
|
+
disabled,
|
|
1163
|
+
name
|
|
1164
|
+
}, rest)
|
|
1165
|
+
),
|
|
1166
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1167
|
+
"div",
|
|
1168
|
+
{
|
|
1169
|
+
className: `relative box flex items-center justify-center rounded-full border-2 group bg-white
|
|
1170
|
+
${size === "sm" ? "h-16 w-16 my-4 ml-3 mr-3" : "m-3 h-20 w-20 text-label-large"}
|
|
1171
|
+
${error ? "border-red-500" : "border-gray-600 peer-checked:border-blue-600 peer-disabled:border-gray-400!"}
|
|
1172
|
+
`,
|
|
1173
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1174
|
+
"span",
|
|
1175
|
+
{
|
|
1176
|
+
className: `absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2
|
|
1177
|
+
${size === "sm" ? "h-8 w-8" : "h-10 w-10"}
|
|
1178
|
+
rounded-full bg-white group-peer-checked:bg-blue-600 group-peer-disabled:bg-white`
|
|
1179
|
+
}
|
|
1180
|
+
)
|
|
1181
|
+
}
|
|
1182
|
+
)
|
|
1183
|
+
] }),
|
|
1184
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
1185
|
+
"div",
|
|
1186
|
+
{
|
|
1187
|
+
className: `flex flex-col gap-1 ${size === "sm" ? "mt-2" : "mt-4"}`,
|
|
1188
|
+
children: [
|
|
1189
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1190
|
+
"p",
|
|
1191
|
+
{
|
|
1192
|
+
className: `
|
|
1193
|
+
${size === "sm" ? "text-label-medium" : "text-label-large"}
|
|
1194
|
+
${disabled ? "text-gray-400" : "text-gray-900"}
|
|
1195
|
+
`,
|
|
1196
|
+
children: label
|
|
1197
|
+
}
|
|
1198
|
+
),
|
|
1199
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1200
|
+
"p",
|
|
1201
|
+
{
|
|
1202
|
+
className: `text-caption-caption ${disabled ? "text-gray-400" : error ? "text-red-600" : "text-gray-600"}`,
|
|
1203
|
+
children: description
|
|
1204
|
+
}
|
|
1205
|
+
)
|
|
1206
|
+
]
|
|
1207
|
+
}
|
|
1208
|
+
)
|
|
1209
|
+
]
|
|
1210
|
+
}
|
|
1211
|
+
)
|
|
960
1212
|
}
|
|
961
1213
|
);
|
|
962
1214
|
}
|
|
@@ -964,39 +1216,39 @@ var Radio = (0, import_react8.forwardRef)(
|
|
|
964
1216
|
Radio.displayName = "Radio";
|
|
965
1217
|
|
|
966
1218
|
// src/components/Slider/Slider.tsx
|
|
967
|
-
var
|
|
968
|
-
var
|
|
1219
|
+
var import_react12 = require("react");
|
|
1220
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
969
1221
|
var sizeConfig = {
|
|
970
1222
|
small: {
|
|
971
|
-
trackH: "h-
|
|
1223
|
+
trackH: "h-4",
|
|
972
1224
|
thumbPx: 24,
|
|
973
|
-
thumbClass: "h-
|
|
1225
|
+
thumbClass: "h-24 w-24",
|
|
974
1226
|
iconPx: 12,
|
|
975
|
-
containerH: "h-
|
|
976
|
-
label: "text-sm leading-
|
|
977
|
-
description: "text-xs leading-
|
|
1227
|
+
containerH: "h-24",
|
|
1228
|
+
label: "text-sm leading-20",
|
|
1229
|
+
description: "text-xs leading-16"
|
|
978
1230
|
},
|
|
979
1231
|
medium: {
|
|
980
|
-
trackH: "h-
|
|
1232
|
+
trackH: "h-6",
|
|
981
1233
|
thumbPx: 28,
|
|
982
|
-
thumbClass: "h-
|
|
1234
|
+
thumbClass: "h-28 w-28",
|
|
983
1235
|
iconPx: 14,
|
|
984
|
-
containerH: "h-
|
|
985
|
-
label: "text-base leading-
|
|
986
|
-
description: "text-sm leading-
|
|
1236
|
+
containerH: "h-28",
|
|
1237
|
+
label: "text-base leading-24",
|
|
1238
|
+
description: "text-sm leading-20"
|
|
987
1239
|
},
|
|
988
1240
|
large: {
|
|
989
|
-
trackH: "h-
|
|
1241
|
+
trackH: "h-8",
|
|
990
1242
|
thumbPx: 32,
|
|
991
|
-
thumbClass: "h-
|
|
1243
|
+
thumbClass: "h-32 w-32",
|
|
992
1244
|
iconPx: 16,
|
|
993
|
-
containerH: "h-
|
|
994
|
-
label: "text-base leading-
|
|
995
|
-
description: "text-sm leading-
|
|
1245
|
+
containerH: "h-32",
|
|
1246
|
+
label: "text-base leading-24",
|
|
1247
|
+
description: "text-sm leading-20"
|
|
996
1248
|
}
|
|
997
1249
|
};
|
|
998
1250
|
function ChevronGlyphs({ size, color }) {
|
|
999
|
-
return /* @__PURE__ */ (0,
|
|
1251
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
1000
1252
|
"svg",
|
|
1001
1253
|
{
|
|
1002
1254
|
width: size,
|
|
@@ -1006,7 +1258,7 @@ function ChevronGlyphs({ size, color }) {
|
|
|
1006
1258
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1007
1259
|
"aria-hidden": "true",
|
|
1008
1260
|
children: [
|
|
1009
|
-
/* @__PURE__ */ (0,
|
|
1261
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1010
1262
|
"path",
|
|
1011
1263
|
{
|
|
1012
1264
|
d: "M4.75 3.25L2.25 6L4.75 8.75",
|
|
@@ -1016,7 +1268,7 @@ function ChevronGlyphs({ size, color }) {
|
|
|
1016
1268
|
strokeLinejoin: "round"
|
|
1017
1269
|
}
|
|
1018
1270
|
),
|
|
1019
|
-
/* @__PURE__ */ (0,
|
|
1271
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1020
1272
|
"path",
|
|
1021
1273
|
{
|
|
1022
1274
|
d: "M7.25 3.25L9.75 6L7.25 8.75",
|
|
@@ -1030,7 +1282,7 @@ function ChevronGlyphs({ size, color }) {
|
|
|
1030
1282
|
}
|
|
1031
1283
|
);
|
|
1032
1284
|
}
|
|
1033
|
-
var Slider = (0,
|
|
1285
|
+
var Slider = (0, import_react12.forwardRef)(
|
|
1034
1286
|
(_a, ref) => {
|
|
1035
1287
|
var _b = _a, {
|
|
1036
1288
|
size = "medium",
|
|
@@ -1065,15 +1317,15 @@ var Slider = (0, import_react9.forwardRef)(
|
|
|
1065
1317
|
"onChange",
|
|
1066
1318
|
"aria-label"
|
|
1067
1319
|
]);
|
|
1068
|
-
const reactId = (0,
|
|
1320
|
+
const reactId = (0, import_react12.useId)();
|
|
1069
1321
|
const inputId = id != null ? id : reactId;
|
|
1070
1322
|
const sz = sizeConfig[size];
|
|
1071
1323
|
const ariaLabel = ariaLabelProp != null ? ariaLabelProp : typeof label === "string" ? void 0 : "Slider";
|
|
1072
1324
|
const ariaDescriptionId = description ? `${inputId}-description` : void 0;
|
|
1073
1325
|
const isControlled = controlledValue !== void 0;
|
|
1074
|
-
const [internalValue, setInternalValue] = (0,
|
|
1326
|
+
const [internalValue, setInternalValue] = (0, import_react12.useState)(defaultValue != null ? defaultValue : min);
|
|
1075
1327
|
const currentValue = isControlled ? controlledValue : internalValue;
|
|
1076
|
-
const handleChange = (0,
|
|
1328
|
+
const handleChange = (0, import_react12.useCallback)(
|
|
1077
1329
|
(e) => {
|
|
1078
1330
|
const val = Number(e.target.value);
|
|
1079
1331
|
if (!isControlled) {
|
|
@@ -1093,13 +1345,13 @@ var Slider = (0, import_react9.forwardRef)(
|
|
|
1093
1345
|
const descriptionColor = disabled ? "text-slider-label-disabled" : "text-slider-description";
|
|
1094
1346
|
const thumbOffset = percent * sz.thumbPx / 100;
|
|
1095
1347
|
const fillOffset = sz.thumbPx / 2 - thumbOffset;
|
|
1096
|
-
return /* @__PURE__ */ (0,
|
|
1348
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
1097
1349
|
"div",
|
|
1098
1350
|
{
|
|
1099
|
-
className: ["flex w-full flex-col gap-
|
|
1351
|
+
className: ["flex w-full flex-col gap-8 font-sans", className].filter(Boolean).join(" "),
|
|
1100
1352
|
children: [
|
|
1101
|
-
(label || showValue && !disabled) && /* @__PURE__ */ (0,
|
|
1102
|
-
label && /* @__PURE__ */ (0,
|
|
1353
|
+
(label || showValue && !disabled) && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
1354
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1103
1355
|
"label",
|
|
1104
1356
|
{
|
|
1105
1357
|
htmlFor: inputId,
|
|
@@ -1112,7 +1364,7 @@ var Slider = (0, import_react9.forwardRef)(
|
|
|
1112
1364
|
children: label
|
|
1113
1365
|
}
|
|
1114
1366
|
),
|
|
1115
|
-
showValue && /* @__PURE__ */ (0,
|
|
1367
|
+
showValue && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1116
1368
|
"span",
|
|
1117
1369
|
{
|
|
1118
1370
|
className: [sz.description, "tabular-nums", labelColor].join(" "),
|
|
@@ -1120,7 +1372,7 @@ var Slider = (0, import_react9.forwardRef)(
|
|
|
1120
1372
|
}
|
|
1121
1373
|
)
|
|
1122
1374
|
] }),
|
|
1123
|
-
/* @__PURE__ */ (0,
|
|
1375
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
1124
1376
|
"div",
|
|
1125
1377
|
{
|
|
1126
1378
|
className: [
|
|
@@ -1129,7 +1381,7 @@ var Slider = (0, import_react9.forwardRef)(
|
|
|
1129
1381
|
disabled ? "cursor-not-allowed" : "cursor-pointer"
|
|
1130
1382
|
].join(" "),
|
|
1131
1383
|
children: [
|
|
1132
|
-
/* @__PURE__ */ (0,
|
|
1384
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1133
1385
|
"div",
|
|
1134
1386
|
{
|
|
1135
1387
|
className: [
|
|
@@ -1139,14 +1391,14 @@ var Slider = (0, import_react9.forwardRef)(
|
|
|
1139
1391
|
].join(" ")
|
|
1140
1392
|
}
|
|
1141
1393
|
),
|
|
1142
|
-
/* @__PURE__ */ (0,
|
|
1394
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1143
1395
|
"div",
|
|
1144
1396
|
{
|
|
1145
1397
|
className: ["absolute left-0 rounded-full", sz.trackH, fillBg].join(" "),
|
|
1146
1398
|
style: { width: `calc(${percent}% + ${fillOffset}px)` }
|
|
1147
1399
|
}
|
|
1148
1400
|
),
|
|
1149
|
-
/* @__PURE__ */ (0,
|
|
1401
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1150
1402
|
"input",
|
|
1151
1403
|
__spreadValues({
|
|
1152
1404
|
ref,
|
|
@@ -1167,7 +1419,7 @@ var Slider = (0, import_react9.forwardRef)(
|
|
|
1167
1419
|
].join(" ")
|
|
1168
1420
|
}, rest)
|
|
1169
1421
|
),
|
|
1170
|
-
/* @__PURE__ */ (0,
|
|
1422
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1171
1423
|
"div",
|
|
1172
1424
|
{
|
|
1173
1425
|
className: [
|
|
@@ -1180,13 +1432,13 @@ var Slider = (0, import_react9.forwardRef)(
|
|
|
1180
1432
|
!disabled && "peer-hover:shadow-medium"
|
|
1181
1433
|
].filter(Boolean).join(" "),
|
|
1182
1434
|
style: { left: `calc(${percent}% - ${thumbOffset}px)` },
|
|
1183
|
-
children: /* @__PURE__ */ (0,
|
|
1435
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChevronGlyphs, { size: sz.iconPx, color: iconColor })
|
|
1184
1436
|
}
|
|
1185
1437
|
)
|
|
1186
1438
|
]
|
|
1187
1439
|
}
|
|
1188
1440
|
),
|
|
1189
|
-
description && /* @__PURE__ */ (0,
|
|
1441
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1190
1442
|
"span",
|
|
1191
1443
|
{
|
|
1192
1444
|
id: ariaDescriptionId,
|
|
@@ -1202,28 +1454,28 @@ var Slider = (0, import_react9.forwardRef)(
|
|
|
1202
1454
|
Slider.displayName = "Slider";
|
|
1203
1455
|
|
|
1204
1456
|
// src/components/Toast/Toast.tsx
|
|
1205
|
-
var
|
|
1206
|
-
var
|
|
1457
|
+
var import_react13 = require("react");
|
|
1458
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1207
1459
|
function CheckCircleIcon({ className }) {
|
|
1208
|
-
return /* @__PURE__ */ (0,
|
|
1209
|
-
/* @__PURE__ */ (0,
|
|
1210
|
-
/* @__PURE__ */ (0,
|
|
1460
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("svg", { className, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
|
|
1461
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("circle", { cx: "10", cy: "10", r: "8", stroke: "currentColor", strokeWidth: "1.5" }),
|
|
1462
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { d: "m7 10 2 2 4-4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
|
|
1211
1463
|
] });
|
|
1212
1464
|
}
|
|
1213
1465
|
function ProgressIcon({ className }) {
|
|
1214
|
-
return /* @__PURE__ */ (0,
|
|
1215
|
-
/* @__PURE__ */ (0,
|
|
1216
|
-
/* @__PURE__ */ (0,
|
|
1466
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("svg", { className, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
|
|
1467
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("circle", { cx: "10", cy: "10", r: "8", stroke: "currentColor", strokeWidth: "1.5", opacity: "0.3" }),
|
|
1468
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { d: "M10 2a8 8 0 0 1 8 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("animateTransform", { attributeName: "transform", type: "rotate", from: "0 10 10", to: "360 10 10", dur: "1s", repeatCount: "indefinite" }) })
|
|
1217
1469
|
] });
|
|
1218
1470
|
}
|
|
1219
1471
|
function ErrorIcon({ className }) {
|
|
1220
|
-
return /* @__PURE__ */ (0,
|
|
1221
|
-
/* @__PURE__ */ (0,
|
|
1222
|
-
/* @__PURE__ */ (0,
|
|
1472
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("svg", { className, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
|
|
1473
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("circle", { cx: "10", cy: "10", r: "8", stroke: "currentColor", strokeWidth: "1.5" }),
|
|
1474
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { d: "M10 6.5v4M10 13.5h.01", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
|
|
1223
1475
|
] });
|
|
1224
1476
|
}
|
|
1225
1477
|
function CloseIcon2({ className }) {
|
|
1226
|
-
return /* @__PURE__ */ (0,
|
|
1478
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("svg", { className, width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { d: "M12 4 4 12M4 4l8 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
1227
1479
|
}
|
|
1228
1480
|
var defaultIcons2 = {
|
|
1229
1481
|
default: CheckCircleIcon,
|
|
@@ -1240,7 +1492,7 @@ var iconColorClasses = {
|
|
|
1240
1492
|
progress: "text-toast-progress-icon",
|
|
1241
1493
|
error: "text-toast-error-icon"
|
|
1242
1494
|
};
|
|
1243
|
-
var Toast = (0,
|
|
1495
|
+
var Toast = (0, import_react13.forwardRef)(
|
|
1244
1496
|
(_a, ref) => {
|
|
1245
1497
|
var _b = _a, {
|
|
1246
1498
|
type = "default",
|
|
@@ -1261,33 +1513,33 @@ var Toast = (0, import_react10.forwardRef)(
|
|
|
1261
1513
|
]);
|
|
1262
1514
|
const DefaultIcon = defaultIcons2[type];
|
|
1263
1515
|
const classes = [
|
|
1264
|
-
"inline-flex items-center gap-
|
|
1265
|
-
"rounded-xl px-
|
|
1516
|
+
"inline-flex items-center gap-12 font-sans",
|
|
1517
|
+
"rounded-xl px-16 py-12",
|
|
1266
1518
|
"min-w-[320px] max-w-[480px]",
|
|
1267
1519
|
"shadow-large",
|
|
1268
1520
|
typeClasses[type],
|
|
1269
1521
|
className
|
|
1270
1522
|
].filter(Boolean).join(" ");
|
|
1271
|
-
return /* @__PURE__ */ (0,
|
|
1272
|
-
icon && /* @__PURE__ */ (0,
|
|
1273
|
-
/* @__PURE__ */ (0,
|
|
1274
|
-
actionLabel && onAction && /* @__PURE__ */ (0,
|
|
1523
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", __spreadProps(__spreadValues({ ref, role: "alert", className: classes }, rest), { children: [
|
|
1524
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: `shrink-0 ${iconColorClasses[type]}`, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DefaultIcon, { className: "h-20 w-20" }) }),
|
|
1525
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "flex-1 text-sm font-medium leading-20 truncate", children }),
|
|
1526
|
+
actionLabel && onAction && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1275
1527
|
"button",
|
|
1276
1528
|
{
|
|
1277
1529
|
type: "button",
|
|
1278
1530
|
onClick: onAction,
|
|
1279
|
-
className: "shrink-0 text-sm font-medium text-toast-action-text hover:bg-toast-action-bg-hover rounded-md px-
|
|
1531
|
+
className: "shrink-0 text-sm font-medium text-toast-action-text hover:bg-toast-action-bg-hover rounded-md px-8 py-4 transition-colors",
|
|
1280
1532
|
children: actionLabel
|
|
1281
1533
|
}
|
|
1282
1534
|
),
|
|
1283
|
-
onDismiss && /* @__PURE__ */ (0,
|
|
1535
|
+
onDismiss && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1284
1536
|
"button",
|
|
1285
1537
|
{
|
|
1286
1538
|
type: "button",
|
|
1287
1539
|
onClick: onDismiss,
|
|
1288
|
-
className: "shrink-0 p-
|
|
1540
|
+
className: "shrink-0 p-4 rounded-md text-toast-dismiss hover:text-toast-dismiss-hover transition-colors",
|
|
1289
1541
|
"aria-label": "Dismiss",
|
|
1290
|
-
children: /* @__PURE__ */ (0,
|
|
1542
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CloseIcon2, { className: "h-16 w-16" })
|
|
1291
1543
|
}
|
|
1292
1544
|
)
|
|
1293
1545
|
] }));
|
|
@@ -1300,8 +1552,10 @@ Toast.displayName = "Toast";
|
|
|
1300
1552
|
AlertBanner,
|
|
1301
1553
|
Avatar,
|
|
1302
1554
|
Badge,
|
|
1555
|
+
BottomSheet,
|
|
1303
1556
|
Button,
|
|
1304
1557
|
Checkbox,
|
|
1558
|
+
Dialog,
|
|
1305
1559
|
Icon,
|
|
1306
1560
|
Radio,
|
|
1307
1561
|
Slider,
|