@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.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, size, isOpen, onToggle, generatedId }) {
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
- sz.icon,
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-accordion-icon-disabled" : "text-accordion-icon"
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.jsx)("h3", { className: "m-0", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
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: triggerClasses,
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: "flex flex-col", children: [
134
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: item.title }),
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
- sz.subtitle,
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: [sz.content, "text-accordion-text-secondary"].join(" "), children: item.content }) })
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
- const sz = sizeClasses[size];
204
- 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-2 ${sz.trigger}`, children: [
205
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex-1 flex flex-col gap-1", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-4 w-3/4 rounded bg-gray-200 animate-pulse" }) }),
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
- common: "bg-alert-page-common-bg text-alert-text-primary-inverse"
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
- common: "text-alert-inline-common-icon"
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 CommonIcon({ className }) {
268
- 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 6v4M10 14h.01", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
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
- common: CommonIcon
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 variantClass = isPage ? pageClasses[variant] : inlineClasses[variant];
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-3 font-sans",
309
- isPage ? "px-4 py-3" : "px-4 py-3 border-l-4 rounded-lg",
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.jsx)("span", { className: `shrink-0 mt-0.5 ${iconColorClass}`, children: icon != null ? icon : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(DefaultIcon, { className: "h-5 w-5" }) }),
315
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex-1 min-w-0", children: [
316
- title && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "text-sm font-medium leading-5", children: title }),
317
- description && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: `text-sm leading-5 ${descColorClass} ${title ? "mt-1" : ""}`, children: description }),
318
- children
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
- onClose && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
321
- "button",
322
- {
323
- type: "button",
324
- onClick: onClose,
325
- className: `shrink-0 p-0.5 rounded transition-colors ${closeColorClass}`,
326
- "aria-label": "Close",
327
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(CloseIcon, { className: "h-4 w-4" })
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 sizeClasses2 = {
339
- xs: { container: "h-6 w-6", text: "text-[10px]", status: "h-2 w-2", statusRing: "ring-1" },
340
- sm: { container: "h-8 w-8", text: "text-xs", status: "h-2.5 w-2.5", statusRing: "ring-[1.5px]" },
341
- md: { container: "h-10 w-10", text: "text-sm", status: "h-3 w-3", statusRing: "ring-2" },
342
- lg: { container: "h-12 w-12", text: "text-base", status: "h-3.5 w-3.5", statusRing: "ring-2" },
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 = sizeClasses2[size];
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: `h-full w-full object-cover ${roundedClass}`
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 sizeClasses3 = {
431
- sm: "h-5 px-1.5 text-xs gap-1",
432
- md: "h-6 px-2 text-xs gap-1",
433
- lg: "h-7 px-2.5 text-sm gap-1.5"
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-3 w-3",
437
- md: "h-3.5 w-3.5",
438
- lg: "h-4 w-4"
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-badge-minimal-common-border text-badge-minimal-common-text",
451
- success: "bg-transparent border border-badge-minimal-success-border text-badge-minimal-success-text",
452
- warning: "bg-transparent border border-badge-minimal-warning-border text-badge-minimal-warning-text",
453
- info: "bg-transparent border border-badge-minimal-info-border text-badge-minimal-info-text",
454
- brand: "bg-transparent border border-badge-minimal-brand-border text-badge-minimal-brand-text",
455
- danger: "bg-transparent border border-badge-minimal-danger-border text-badge-minimal-danger-text"
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-badge-subtle-common-bg text-badge-subtle-common-text",
467
- success: "bg-badge-subtle-success-bg text-badge-subtle-success-text",
468
- warning: "bg-badge-subtle-warning-bg text-badge-subtle-warning-text",
469
- info: "bg-badge-subtle-info-bg text-badge-subtle-info-text",
470
- brand: "bg-badge-subtle-brand-bg text-badge-subtle-brand-text",
471
- danger: "bg-badge-subtle-danger-bg text-badge-subtle-danger-text"
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-badge-bold-common-bg text-badge-bold-text",
483
- success: "bg-badge-bold-success-bg text-badge-bold-text",
484
- warning: "bg-badge-bold-warning-bg text-badge-bold-text",
485
- info: "bg-badge-bold-info-bg text-badge-bold-text",
486
- brand: "bg-badge-bold-brand-bg text-badge-bold-text",
487
- danger: "bg-badge-bold-danger-bg text-badge-bold-text"
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
- sizeClasses3[size],
532
- shapeClasses[shape],
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
- dot && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: `shrink-0 rounded-full ${dotSizeClasses[size]} ${dotStyleMap[badgeStyle][status]}` }),
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-btn-primary text-btn-primary-text",
551
- "hover:bg-btn-primary-hover",
552
- "active:bg-btn-primary-active",
553
- "focus-visible:ring-2 focus-visible:ring-btn-primary-ring focus-visible:ring-offset-2",
554
- "disabled:bg-btn-primary-disabled disabled:text-btn-primary-text-disabled"
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-btn-secondary text-btn-secondary-text",
558
- "hover:bg-btn-secondary-hover",
559
- "active:bg-btn-secondary-active",
560
- "focus-visible:ring-2 focus-visible:ring-btn-secondary-ring focus-visible:ring-offset-2",
561
- "disabled:bg-btn-secondary-disabled disabled:text-btn-secondary-text-disabled"
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-btn-tertiary text-btn-tertiary-text",
565
- "hover:bg-btn-tertiary-hover",
566
- "active:bg-btn-tertiary-active",
567
- "focus-visible:ring-2 focus-visible:ring-btn-tertiary-ring focus-visible:ring-offset-2",
568
- "disabled:bg-btn-tertiary-disabled disabled:text-btn-tertiary-text-disabled"
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-btn-contrast text-btn-contrast-text",
572
- "hover:bg-btn-contrast-hover",
573
- "active:bg-btn-contrast-active",
574
- "focus-visible:ring-2 focus-visible:ring-btn-contrast-ring focus-visible:ring-offset-2",
575
- "disabled:bg-btn-contrast-disabled disabled:text-btn-contrast-text-disabled"
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-btn-transparent text-btn-transparent-text",
579
- "hover:bg-btn-transparent-hover",
580
- "active:bg-btn-transparent-active",
581
- "focus-visible:ring-2 focus-visible:ring-btn-transparent-ring focus-visible:ring-offset-2",
582
- "disabled:bg-btn-transparent-disabled disabled:text-btn-transparent-text-disabled"
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 sizeClasses4 = {
586
- small: "h-8 px-3 text-sm gap-1",
587
- medium: "h-10 px-4 text-sm gap-1.5",
588
- large: "h-12 px-5 text-base gap-2",
589
- "extra-large": "h-14 px-6 text-lg gap-2"
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
- function Spinner({ className }) {
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 = "medium",
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 || loading;
639
+ const isDisabled = disabled;
636
640
  const classes = [
637
- "inline-flex items-center justify-center font-medium font-sans",
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
- sizeClasses4[size],
645
+ loading ? "pointer-events-none" : "cursor-pointer",
646
+ sizeClasses3[size],
642
647
  variantClasses[variant],
643
- rounded ? "rounded-full" : "rounded-lg",
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, import_jsx_runtime5.jsxs)(
647
- "button",
648
- __spreadProps(__spreadValues({
649
- ref,
650
- disabled: isDisabled,
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/Checkbox/Checkbox.tsx
665
- var import_react6 = require("react");
666
- var import_jsx_runtime6 = require("react/jsx-runtime");
667
- var sizeClasses5 = {
668
- small: {
669
- box: "h-4 w-4",
670
- icon: "h-3 w-3",
671
- label: "text-sm leading-5",
672
- description: "text-xs leading-4",
673
- gap: "gap-2"
674
- },
675
- medium: {
676
- box: "h-5 w-5",
677
- icon: "h-3.5 w-3.5",
678
- label: "text-base leading-6",
679
- description: "text-sm leading-5",
680
- gap: "gap-2.5"
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, import_jsx_runtime6.jsx)("svg", { className, viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
685
- "path",
805
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
806
+ "svg",
686
807
  {
687
- d: "M13.333 4.667 6 12l-3.333-3.333",
688
- stroke: "currentColor",
689
- strokeWidth: "2",
690
- strokeLinecap: "round",
691
- strokeLinejoin: "round"
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, import_jsx_runtime6.jsx)("svg", { className, viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
697
- "path",
826
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
827
+ "svg",
698
828
  {
699
- d: "M3.333 8h9.334",
700
- stroke: "currentColor",
701
- strokeWidth: "2",
702
- strokeLinecap: "round"
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, import_react6.forwardRef)(
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
- checked,
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
- "checked",
728
- "defaultChecked",
862
+ "indeterminate",
729
863
  "disabled",
730
864
  "className",
731
- "id"
865
+ "id",
866
+ "defaultChecked"
732
867
  ]);
733
- const reactId = (0, import_react6.useId)();
868
+ const reactId = (0, import_react8.useId)();
734
869
  const inputId = id != null ? id : reactId;
735
- const sz = sizeClasses5[size];
736
- const isActive = checked || indeterminate;
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, import_jsx_runtime6.jsxs)("span", { className: "relative inline-flex", children: [
772
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
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" : checked,
782
- className: "peer absolute inset-0 h-full w-full cursor-[inherit] opacity-0"
891
+ "aria-checked": indeterminate ? "mixed" : isChecked,
892
+ className: "sr-only"
783
893
  }, rest)
784
894
  ),
785
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: [boxBase, boxState, ringClasses].join(" "), children: indeterminate ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(IndeterminateIcon, { className: sz.icon }) : checked ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(CheckIcon, { className: sz.icon }) : null })
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, import_jsx_runtime6.jsxs)("span", { className: "flex flex-col", children: [
788
- label && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: `${sz.label} font-medium ${labelColor}`, children: label }),
789
- description && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: `${sz.description} ${descriptionColor}`, children: description })
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 import_react7 = require("react");
800
- var import_jsx_runtime7 = require("react/jsx-runtime");
801
- var Icon = (0, import_react7.forwardRef)(
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, import_jsx_runtime7.jsx)(
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 import_react8 = require("react");
853
- var import_jsx_runtime8 = require("react/jsx-runtime");
854
- var sizeClasses6 = {
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 = "medium",
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, import_react8.useId)();
1140
+ const reactId = (0, import_react11.useId)();
896
1141
  const inputId = id != null ? id : reactId;
897
- const sz = sizeClasses6[size];
898
- const circleBase = [
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
- htmlFor: inputId,
933
- className: [
934
- "inline-flex items-start font-sans",
935
- sz.gap,
936
- disabled ? "cursor-not-allowed" : "cursor-pointer",
937
- className
938
- ].filter(Boolean).join(" "),
939
- children: [
940
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { className: "relative inline-flex", children: [
941
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
942
- "input",
943
- __spreadValues({
944
- ref,
945
- id: inputId,
946
- type: "radio",
947
- checked,
948
- defaultChecked,
949
- disabled,
950
- className: "peer absolute inset-0 h-full w-full cursor-[inherit] opacity-0"
951
- }, rest)
952
- ),
953
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: [circleBase, circleState, ringClasses].join(" "), children: checked && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: `rounded-full ${sz.dot} ${dotColor}` }) })
954
- ] }),
955
- (label || description) && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("span", { className: "flex flex-col", children: [
956
- label && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: `${sz.label} font-medium ${labelColor}`, children: label }),
957
- description && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: `${sz.description} ${descriptionColor}`, children: description })
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 import_react9 = require("react");
968
- var import_jsx_runtime9 = require("react/jsx-runtime");
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-1",
1223
+ trackH: "h-4",
972
1224
  thumbPx: 24,
973
- thumbClass: "h-6 w-6",
1225
+ thumbClass: "h-24 w-24",
974
1226
  iconPx: 12,
975
- containerH: "h-6",
976
- label: "text-sm leading-5",
977
- description: "text-xs leading-4"
1227
+ containerH: "h-24",
1228
+ label: "text-sm leading-20",
1229
+ description: "text-xs leading-16"
978
1230
  },
979
1231
  medium: {
980
- trackH: "h-1.5",
1232
+ trackH: "h-6",
981
1233
  thumbPx: 28,
982
- thumbClass: "h-7 w-7",
1234
+ thumbClass: "h-28 w-28",
983
1235
  iconPx: 14,
984
- containerH: "h-7",
985
- label: "text-base leading-6",
986
- description: "text-sm leading-5"
1236
+ containerH: "h-28",
1237
+ label: "text-base leading-24",
1238
+ description: "text-sm leading-20"
987
1239
  },
988
1240
  large: {
989
- trackH: "h-2",
1241
+ trackH: "h-8",
990
1242
  thumbPx: 32,
991
- thumbClass: "h-8 w-8",
1243
+ thumbClass: "h-32 w-32",
992
1244
  iconPx: 16,
993
- containerH: "h-8",
994
- label: "text-base leading-6",
995
- description: "text-sm leading-5"
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, import_jsx_runtime9.jsxs)(
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, import_jsx_runtime9.jsx)(
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, import_jsx_runtime9.jsx)(
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, import_react9.forwardRef)(
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, import_react9.useId)();
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, import_react9.useState)(defaultValue != null ? defaultValue : min);
1326
+ const [internalValue, setInternalValue] = (0, import_react12.useState)(defaultValue != null ? defaultValue : min);
1075
1327
  const currentValue = isControlled ? controlledValue : internalValue;
1076
- const handleChange = (0, import_react9.useCallback)(
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, import_jsx_runtime9.jsxs)(
1348
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1097
1349
  "div",
1098
1350
  {
1099
- className: ["flex w-full flex-col gap-2 font-sans", className].filter(Boolean).join(" "),
1351
+ className: ["flex w-full flex-col gap-8 font-sans", className].filter(Boolean).join(" "),
1100
1352
  children: [
1101
- (label || showValue && !disabled) && /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "flex items-center justify-between", children: [
1102
- label && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
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, import_jsx_runtime9.jsx)(
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, import_jsx_runtime9.jsxs)(
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, import_jsx_runtime9.jsx)(
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, import_jsx_runtime9.jsx)(
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, import_jsx_runtime9.jsx)(
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, import_jsx_runtime9.jsx)(
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, import_jsx_runtime9.jsx)(ChevronGlyphs, { size: sz.iconPx, color: iconColor })
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, import_jsx_runtime9.jsx)(
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 import_react10 = require("react");
1206
- var import_jsx_runtime10 = require("react/jsx-runtime");
1457
+ var import_react13 = require("react");
1458
+ var import_jsx_runtime13 = require("react/jsx-runtime");
1207
1459
  function CheckCircleIcon({ className }) {
1208
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("svg", { className, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
1209
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("circle", { cx: "10", cy: "10", r: "8", stroke: "currentColor", strokeWidth: "1.5" }),
1210
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { d: "m7 10 2 2 4-4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
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, import_jsx_runtime10.jsxs)("svg", { className, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
1215
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("circle", { cx: "10", cy: "10", r: "8", stroke: "currentColor", strokeWidth: "1.5", opacity: "0.3" }),
1216
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { d: "M10 2a8 8 0 0 1 8 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("animateTransform", { attributeName: "transform", type: "rotate", from: "0 10 10", to: "360 10 10", dur: "1s", repeatCount: "indefinite" }) })
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, import_jsx_runtime10.jsxs)("svg", { className, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
1221
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("circle", { cx: "10", cy: "10", r: "8", stroke: "currentColor", strokeWidth: "1.5" }),
1222
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { d: "M10 6.5v4M10 13.5h.01", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
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, import_jsx_runtime10.jsx)("svg", { className, width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { d: "M12 4 4 12M4 4l8 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
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, import_react10.forwardRef)(
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-3 font-sans",
1265
- "rounded-xl px-4 py-3",
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, import_jsx_runtime10.jsxs)("div", __spreadProps(__spreadValues({ ref, role: "alert", className: classes }, rest), { children: [
1272
- icon && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: `shrink-0 ${iconColorClasses[type]}`, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(DefaultIcon, { className: "h-5 w-5" }) }),
1273
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "flex-1 text-sm font-medium leading-5 truncate", children }),
1274
- actionLabel && onAction && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
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-2 py-1 transition-colors",
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, import_jsx_runtime10.jsx)(
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-1 rounded-md text-toast-dismiss hover:text-toast-dismiss-hover transition-colors",
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, import_jsx_runtime10.jsx)(CloseIcon2, { className: "h-4 w-4" })
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,