@bestow-ui/react 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,8 +1,10 @@
1
1
  "use client";
2
2
  "use strict";
3
+ var __create = Object.create;
3
4
  var __defProp = Object.defineProperty;
4
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
6
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
9
  var __export = (target, all) => {
8
10
  for (var name in all)
@@ -16,6 +18,14 @@ var __copyProps = (to, from, except, desc) => {
16
18
  }
17
19
  return to;
18
20
  };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
19
29
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
30
 
21
31
  // src/index.ts
@@ -24,19 +34,26 @@ __export(index_exports, {
24
34
  Button: () => Button,
25
35
  Checkbox: () => Checkbox,
26
36
  Input: () => Input,
37
+ Modal: () => Modal,
38
+ ModalClose: () => ModalClose,
39
+ Select: () => Select,
27
40
  Stack: () => Stack,
28
41
  TextField: () => TextField,
29
42
  ThemeProvider: () => ThemeProvider,
43
+ ToastProvider: () => ToastProvider,
44
+ Tooltip: () => Tooltip,
30
45
  Typography: () => Typography,
31
46
  themeClass: () => themeClass,
47
+ usePortalClassName: () => usePortalClassName,
32
48
  useTheme: () => useTheme,
49
+ useToast: () => useToast,
33
50
  vars: () => vars
34
51
  });
35
52
  module.exports = __toCommonJS(index_exports);
36
53
 
37
54
  // src/theme/contract.css.ts
38
- var themeClass = { light: "tkagtb23", dark: "tkagtb24" };
39
- var vars = { space: { "0": "var(--tkagtb0)", "1": "var(--tkagtb1)", "2": "var(--tkagtb2)", "3": "var(--tkagtb3)", "4": "var(--tkagtb4)", "5": "var(--tkagtb5)", "6": "var(--tkagtb6)", "8": "var(--tkagtb7)", "10": "var(--tkagtb8)", "12": "var(--tkagtb9)", "16": "var(--tkagtba)" }, radius: { none: "var(--tkagtbb)", sm: "var(--tkagtbc)", md: "var(--tkagtbd)", lg: "var(--tkagtbe)", xl: "var(--tkagtbf)", full: "var(--tkagtbg)" }, font: { family: { sans: "var(--tkagtbh)", mono: "var(--tkagtbi)" }, size: { xs: "var(--tkagtbj)", sm: "var(--tkagtbk)", md: "var(--tkagtbl)", lg: "var(--tkagtbm)", xl: "var(--tkagtbn)", "2xl": "var(--tkagtbo)", "3xl": "var(--tkagtbp)", "4xl": "var(--tkagtbq)" }, weight: { regular: "var(--tkagtbr)", medium: "var(--tkagtbs)", semibold: "var(--tkagtbt)", bold: "var(--tkagtbu)" }, lineHeight: { tight: "var(--tkagtbv)", normal: "var(--tkagtbw)", relaxed: "var(--tkagtbx)" } }, shadow: { sm: "var(--tkagtby)", md: "var(--tkagtbz)", lg: "var(--tkagtb10)" }, duration: { fast: "var(--tkagtb11)", normal: "var(--tkagtb12)", slow: "var(--tkagtb13)" }, color: { bg: { "default": "var(--tkagtb14)", subtle: "var(--tkagtb15)", muted: "var(--tkagtb16)", inverse: "var(--tkagtb17)" }, fg: { "default": "var(--tkagtb18)", muted: "var(--tkagtb19)", subtle: "var(--tkagtb1a)", inverse: "var(--tkagtb1b)" }, border: { "default": "var(--tkagtb1c)", strong: "var(--tkagtb1d)", focus: "var(--tkagtb1e)" }, primary: { solid: "var(--tkagtb1f)", solidHover: "var(--tkagtb1g)", contrast: "var(--tkagtb1h)", subtle: "var(--tkagtb1i)", subtleHover: "var(--tkagtb1j)", text: "var(--tkagtb1k)" }, neutral: { solid: "var(--tkagtb1l)", solidHover: "var(--tkagtb1m)", contrast: "var(--tkagtb1n)", subtle: "var(--tkagtb1o)", subtleHover: "var(--tkagtb1p)", text: "var(--tkagtb1q)" }, danger: { solid: "var(--tkagtb1r)", solidHover: "var(--tkagtb1s)", contrast: "var(--tkagtb1t)", subtle: "var(--tkagtb1u)", subtleHover: "var(--tkagtb1v)", text: "var(--tkagtb1w)" }, success: { solid: "var(--tkagtb1x)", solidHover: "var(--tkagtb1y)", contrast: "var(--tkagtb1z)", subtle: "var(--tkagtb20)", subtleHover: "var(--tkagtb21)", text: "var(--tkagtb22)" } } };
55
+ var themeClass = { light: "tkagtb29", dark: "tkagtb2a" };
56
+ var vars = { space: { "0": "var(--tkagtb0)", "1": "var(--tkagtb1)", "2": "var(--tkagtb2)", "3": "var(--tkagtb3)", "4": "var(--tkagtb4)", "5": "var(--tkagtb5)", "6": "var(--tkagtb6)", "8": "var(--tkagtb7)", "10": "var(--tkagtb8)", "12": "var(--tkagtb9)", "16": "var(--tkagtba)" }, radius: { none: "var(--tkagtbb)", sm: "var(--tkagtbc)", md: "var(--tkagtbd)", lg: "var(--tkagtbe)", xl: "var(--tkagtbf)", full: "var(--tkagtbg)" }, font: { family: { sans: "var(--tkagtbh)", mono: "var(--tkagtbi)" }, size: { xs: "var(--tkagtbj)", sm: "var(--tkagtbk)", md: "var(--tkagtbl)", lg: "var(--tkagtbm)", xl: "var(--tkagtbn)", "2xl": "var(--tkagtbo)", "3xl": "var(--tkagtbp)", "4xl": "var(--tkagtbq)" }, weight: { regular: "var(--tkagtbr)", medium: "var(--tkagtbs)", semibold: "var(--tkagtbt)", bold: "var(--tkagtbu)" }, lineHeight: { tight: "var(--tkagtbv)", normal: "var(--tkagtbw)", relaxed: "var(--tkagtbx)" } }, shadow: { sm: "var(--tkagtby)", md: "var(--tkagtbz)", lg: "var(--tkagtb10)" }, duration: { fast: "var(--tkagtb11)", normal: "var(--tkagtb12)", slow: "var(--tkagtb13)" }, zIndex: { dropdown: "var(--tkagtb14)", overlay: "var(--tkagtb15)", modal: "var(--tkagtb16)", toast: "var(--tkagtb17)", tooltip: "var(--tkagtb18)" }, color: { bg: { "default": "var(--tkagtb19)", subtle: "var(--tkagtb1a)", muted: "var(--tkagtb1b)", inverse: "var(--tkagtb1c)", overlay: "var(--tkagtb1d)" }, fg: { "default": "var(--tkagtb1e)", muted: "var(--tkagtb1f)", subtle: "var(--tkagtb1g)", inverse: "var(--tkagtb1h)" }, border: { "default": "var(--tkagtb1i)", strong: "var(--tkagtb1j)", focus: "var(--tkagtb1k)" }, primary: { solid: "var(--tkagtb1l)", solidHover: "var(--tkagtb1m)", contrast: "var(--tkagtb1n)", subtle: "var(--tkagtb1o)", subtleHover: "var(--tkagtb1p)", text: "var(--tkagtb1q)" }, neutral: { solid: "var(--tkagtb1r)", solidHover: "var(--tkagtb1s)", contrast: "var(--tkagtb1t)", subtle: "var(--tkagtb1u)", subtleHover: "var(--tkagtb1v)", text: "var(--tkagtb1w)" }, danger: { solid: "var(--tkagtb1x)", solidHover: "var(--tkagtb1y)", contrast: "var(--tkagtb1z)", subtle: "var(--tkagtb20)", subtleHover: "var(--tkagtb21)", text: "var(--tkagtb22)" }, success: { solid: "var(--tkagtb23)", solidHover: "var(--tkagtb24)", contrast: "var(--tkagtb25)", subtle: "var(--tkagtb26)", subtleHover: "var(--tkagtb27)", text: "var(--tkagtb28)" } } };
40
57
 
41
58
  // src/theme/ThemeProvider.tsx
42
59
  var import_react = require("react");
@@ -47,7 +64,8 @@ function cx(...classNames) {
47
64
  }
48
65
 
49
66
  // src/theme/ThemeProvider.css.ts
50
- var root = "sfyhlv0";
67
+ var portal = "sfyhlv0";
68
+ var root = "sfyhlv1 sfyhlv0";
51
69
 
52
70
  // src/theme/ThemeProvider.tsx
53
71
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -58,6 +76,9 @@ var ThemeProvider = (0, import_react.forwardRef)(function ThemeProvider2({ theme
58
76
  function useTheme() {
59
77
  return (0, import_react.useContext)(ThemeContext);
60
78
  }
79
+ function usePortalClassName() {
80
+ return cx(themeClass[useTheme()], portal);
81
+ }
61
82
 
62
83
  // src/components/Button/Button.tsx
63
84
  var import_react2 = require("react");
@@ -91,10 +112,10 @@ var import_react3 = require("react");
91
112
 
92
113
  // src/utils/mergeRefs.ts
93
114
  function mergeRefs(...refs) {
94
- return (value) => {
115
+ return (value2) => {
95
116
  for (const ref of refs) {
96
- if (typeof ref === "function") ref(value);
97
- else if (ref) ref.current = value;
117
+ if (typeof ref === "function") ref(value2);
118
+ else if (ref) ref.current = value2;
98
119
  }
99
120
  };
100
121
  }
@@ -203,17 +224,187 @@ var TextField = (0, import_react5.forwardRef)(function TextField2({ label: label
203
224
  ] });
204
225
  });
205
226
 
206
- // src/components/Stack/Stack.tsx
227
+ // src/components/Modal/Modal.tsx
228
+ var Dialog = __toESM(require("@radix-ui/react-dialog"), 1);
229
+
230
+ // src/icons/index.tsx
231
+ var import_jsx_runtime6 = require("react/jsx-runtime");
232
+ var base = { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", "aria-hidden": true };
233
+ function CloseIcon(props) {
234
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("svg", { ...base, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M4 4l8 8M12 4l-8 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) });
235
+ }
236
+ function ChevronDownIcon(props) {
237
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("svg", { ...base, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M4 6l4 4 4-4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
238
+ }
239
+ function CheckIcon(props) {
240
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("svg", { ...base, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M3.5 8.5l3 3 6-7", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
241
+ }
242
+
243
+ // src/components/Modal/Modal.css.ts
244
+ var import_createRuntimeFn4 = require("@vanilla-extract/recipes/createRuntimeFn");
245
+ var body = "_1pdsmv0a";
246
+ var closeButton = "_1pdsmv09";
247
+ var content = (0, import_createRuntimeFn4.createRuntimeFn)({ defaultClassName: "_1pdsmv01", variantClassNames: { size: { sm: "_1pdsmv02", md: "_1pdsmv03", lg: "_1pdsmv04" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
248
+ var description = "_1pdsmv08";
249
+ var footer = "_1pdsmv0b";
250
+ var header = "_1pdsmv05";
251
+ var headings = "_1pdsmv06";
252
+ var overlay = "_1pdsmv00";
253
+ var title = "_1pdsmv07";
254
+
255
+ // src/components/Modal/Modal.tsx
256
+ var import_jsx_runtime7 = require("react/jsx-runtime");
257
+ function Modal({
258
+ open,
259
+ defaultOpen,
260
+ onOpenChange,
261
+ trigger: trigger2,
262
+ title: title3,
263
+ description: description3,
264
+ children,
265
+ footer: footer2,
266
+ size,
267
+ hideCloseButton = false,
268
+ closeOnOverlayClick = true,
269
+ className
270
+ }) {
271
+ const portalClassName = usePortalClassName();
272
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Dialog.Root, { open, defaultOpen, onOpenChange, children: [
273
+ trigger2 && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Dialog.Trigger, { asChild: true, children: trigger2 }),
274
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Dialog.Portal, { children: [
275
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Dialog.Overlay, { className: cx(portalClassName, overlay) }),
276
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
277
+ Dialog.Content,
278
+ {
279
+ className: cx(portalClassName, content({ size }), className),
280
+ onPointerDownOutside: closeOnOverlayClick ? void 0 : (event) => event.preventDefault(),
281
+ ...description3 ? {} : { "aria-describedby": void 0 },
282
+ children: [
283
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: header, children: [
284
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: headings, children: [
285
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Dialog.Title, { className: title, children: title3 }),
286
+ description3 && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Dialog.Description, { className: description, children: description3 })
287
+ ] }),
288
+ !hideCloseButton && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Dialog.Close, { className: closeButton, "aria-label": "\uB2EB\uAE30", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CloseIcon, {}) })
289
+ ] }),
290
+ children && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: body, children }),
291
+ footer2 && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: footer, children: footer2 })
292
+ ]
293
+ }
294
+ )
295
+ ] })
296
+ ] });
297
+ }
298
+ var ModalClose = Dialog.Close;
299
+
300
+ // src/components/Select/Select.tsx
301
+ var RadixSelect = __toESM(require("@radix-ui/react-select"), 1);
207
302
  var import_react6 = require("react");
208
303
 
304
+ // src/components/Select/Select.css.ts
305
+ var content2 = "_1kx81e83";
306
+ var icon2 = "_1kx81e82";
307
+ var item = "_1kx81e85";
308
+ var itemIndicator = "_1kx81e86";
309
+ var trigger = "_1kx81e80";
310
+ var value = "_1kx81e81";
311
+ var viewport = "_1kx81e84";
312
+
313
+ // src/components/Select/Select.tsx
314
+ var import_jsx_runtime8 = require("react/jsx-runtime");
315
+ var Select = (0, import_react6.forwardRef)(function Select2({
316
+ options,
317
+ value: value2,
318
+ defaultValue,
319
+ onValueChange,
320
+ placeholder,
321
+ label: label2,
322
+ helperText: helperText2,
323
+ error,
324
+ size,
325
+ fullWidth,
326
+ disabled,
327
+ required,
328
+ name,
329
+ id,
330
+ "aria-label": ariaLabel,
331
+ className
332
+ }, ref) {
333
+ const generatedId = (0, import_react6.useId)();
334
+ const triggerId = id ?? generatedId;
335
+ const helperId = helperText2 ? `${triggerId}-helper` : void 0;
336
+ const portalClassName = usePortalClassName();
337
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
338
+ label2 && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("label", { htmlFor: triggerId, className: label, children: [
339
+ label2,
340
+ required && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
341
+ ] }),
342
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
343
+ RadixSelect.Root,
344
+ {
345
+ value: value2,
346
+ defaultValue,
347
+ onValueChange,
348
+ disabled,
349
+ required,
350
+ name,
351
+ children: [
352
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
353
+ RadixSelect.Trigger,
354
+ {
355
+ ref,
356
+ id: triggerId,
357
+ "aria-label": ariaLabel,
358
+ "aria-invalid": error || void 0,
359
+ "aria-describedby": helperId,
360
+ "data-invalid": error || void 0,
361
+ className: cx(root3({ size, fullWidth }), trigger, className),
362
+ children: [
363
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: value, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(RadixSelect.Value, { placeholder }) }),
364
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(RadixSelect.Icon, { className: icon2, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ChevronDownIcon, {}) })
365
+ ]
366
+ }
367
+ ),
368
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(RadixSelect.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
369
+ RadixSelect.Content,
370
+ {
371
+ position: "popper",
372
+ sideOffset: 4,
373
+ collisionPadding: 8,
374
+ className: cx(portalClassName, content2),
375
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(RadixSelect.Viewport, { className: viewport, children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
376
+ RadixSelect.Item,
377
+ {
378
+ value: option.value,
379
+ disabled: option.disabled,
380
+ className: item,
381
+ children: [
382
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(RadixSelect.ItemText, { children: option.label }),
383
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(RadixSelect.ItemIndicator, { className: itemIndicator, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(CheckIcon, {}) })
384
+ ]
385
+ },
386
+ option.value
387
+ )) })
388
+ }
389
+ ) })
390
+ ]
391
+ }
392
+ ),
393
+ helperText2 && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { id: helperId, className: helperText({ error }), children: helperText2 })
394
+ ] });
395
+ });
396
+
397
+ // src/components/Stack/Stack.tsx
398
+ var import_react7 = require("react");
399
+
209
400
  // src/components/Stack/Stack.css.ts
210
- var import_createRuntimeFn4 = require("@vanilla-extract/recipes/createRuntimeFn");
211
- var stack = (0, import_createRuntimeFn4.createRuntimeFn)({ defaultClassName: "_1jz9hj90", variantClassNames: { direction: { row: "_1jz9hj91", column: "_1jz9hj92", "row-reverse": "_1jz9hj93", "column-reverse": "_1jz9hj94" }, gap: { "0": "_1jz9hj95", "1": "_1jz9hj96", "2": "_1jz9hj97", "3": "_1jz9hj98", "4": "_1jz9hj99", "5": "_1jz9hj9a", "6": "_1jz9hj9b", "8": "_1jz9hj9c", "10": "_1jz9hj9d", "12": "_1jz9hj9e", "16": "_1jz9hj9f" }, align: { start: "_1jz9hj9g", center: "_1jz9hj9h", end: "_1jz9hj9i", stretch: "_1jz9hj9j", baseline: "_1jz9hj9k" }, justify: { start: "_1jz9hj9l", center: "_1jz9hj9m", end: "_1jz9hj9n", between: "_1jz9hj9o", around: "_1jz9hj9p", evenly: "_1jz9hj9q" }, wrap: { true: "_1jz9hj9r" } }, defaultVariants: { direction: "column" }, compoundVariants: [] });
401
+ var import_createRuntimeFn5 = require("@vanilla-extract/recipes/createRuntimeFn");
402
+ var stack = (0, import_createRuntimeFn5.createRuntimeFn)({ defaultClassName: "_1jz9hj90", variantClassNames: { direction: { row: "_1jz9hj91", column: "_1jz9hj92", "row-reverse": "_1jz9hj93", "column-reverse": "_1jz9hj94" }, gap: { "0": "_1jz9hj95", "1": "_1jz9hj96", "2": "_1jz9hj97", "3": "_1jz9hj98", "4": "_1jz9hj99", "5": "_1jz9hj9a", "6": "_1jz9hj9b", "8": "_1jz9hj9c", "10": "_1jz9hj9d", "12": "_1jz9hj9e", "16": "_1jz9hj9f" }, align: { start: "_1jz9hj9g", center: "_1jz9hj9h", end: "_1jz9hj9i", stretch: "_1jz9hj9j", baseline: "_1jz9hj9k" }, justify: { start: "_1jz9hj9l", center: "_1jz9hj9m", end: "_1jz9hj9n", between: "_1jz9hj9o", around: "_1jz9hj9p", evenly: "_1jz9hj9q" }, wrap: { true: "_1jz9hj9r" } }, defaultVariants: { direction: "column" }, compoundVariants: [] });
212
403
 
213
404
  // src/components/Stack/Stack.tsx
214
- var import_jsx_runtime6 = require("react/jsx-runtime");
215
- var Stack = (0, import_react6.forwardRef)(function Stack2({ as: Component = "div", direction, gap, align, justify, wrap, className, ...rest }, ref) {
216
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
405
+ var import_jsx_runtime9 = require("react/jsx-runtime");
406
+ var Stack = (0, import_react7.forwardRef)(function Stack2({ as: Component = "div", direction, gap, align, justify, wrap, className, ...rest }, ref) {
407
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
217
408
  Component,
218
409
  {
219
410
  ref,
@@ -223,15 +414,118 @@ var Stack = (0, import_react6.forwardRef)(function Stack2({ as: Component = "div
223
414
  );
224
415
  });
225
416
 
417
+ // src/components/Toast/Toast.tsx
418
+ var RadixToast = __toESM(require("@radix-ui/react-toast"), 1);
419
+ var import_react8 = require("react");
420
+
421
+ // src/components/Toast/Toast.css.ts
422
+ var import_createRuntimeFn6 = require("@vanilla-extract/recipes/createRuntimeFn");
423
+ var action = "_1g11zvx7";
424
+ var close = "_1g11zvx8";
425
+ var description2 = "_1g11zvx6";
426
+ var title2 = "_1g11zvx5";
427
+ var toast = (0, import_createRuntimeFn6.createRuntimeFn)({ defaultClassName: "_1g11zvx1", variantClassNames: { variant: { "default": "_1g11zvx2", success: "_1g11zvx3", danger: "_1g11zvx4" } }, defaultVariants: { variant: "default" }, compoundVariants: [] });
428
+ var viewport2 = "_1g11zvx0";
429
+
430
+ // src/components/Toast/Toast.tsx
431
+ var import_jsx_runtime10 = require("react/jsx-runtime");
432
+ var REMOVE_DELAY = 500;
433
+ var ToastContext = (0, import_react8.createContext)(null);
434
+ function ToastProvider({ children, duration = 5e3, label: label2 = "\uC54C\uB9BC" }) {
435
+ const [toasts, setToasts] = (0, import_react8.useState)([]);
436
+ const nextId = (0, import_react8.useRef)(0);
437
+ const portalClassName = usePortalClassName();
438
+ const toast2 = (0, import_react8.useCallback)((options) => {
439
+ const id = nextId.current++;
440
+ setToasts((prev) => [...prev, { ...options, id, open: true }]);
441
+ return id;
442
+ }, []);
443
+ const dismiss = (0, import_react8.useCallback)((id) => {
444
+ const isTarget = (t) => id === void 0 || t.id === id;
445
+ setToasts((prev) => prev.map((t) => isTarget(t) ? { ...t, open: false } : t));
446
+ setTimeout(() => setToasts((prev) => prev.filter((t) => t.open || !isTarget(t))), REMOVE_DELAY);
447
+ }, []);
448
+ const value2 = (0, import_react8.useMemo)(() => ({ toast: toast2, dismiss }), [toast2, dismiss]);
449
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ToastContext.Provider, { value: value2, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(RadixToast.Provider, { duration, label: label2, swipeDirection: "right", children: [
450
+ children,
451
+ toasts.map(({ id, open, title: title3, description: description3, variant, duration: itemDuration, action: action2 }) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
452
+ RadixToast.Root,
453
+ {
454
+ open,
455
+ duration: itemDuration,
456
+ onOpenChange: (nextOpen) => {
457
+ if (!nextOpen) dismiss(id);
458
+ },
459
+ className: toast({ variant }),
460
+ children: [
461
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(RadixToast.Title, { className: title2, children: title3 }),
462
+ description3 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(RadixToast.Description, { className: description2, children: description3 }),
463
+ action2 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(RadixToast.Action, { asChild: true, altText: action2.altText ?? action2.label, className: action, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Button, { size: "sm", variant: "soft", color: "neutral", onClick: action2.onClick, children: action2.label }) }),
464
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(RadixToast.Close, { className: close, "aria-label": "\uB2EB\uAE30", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(CloseIcon, {}) })
465
+ ]
466
+ },
467
+ id
468
+ )),
469
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(RadixToast.Viewport, { className: cx(portalClassName, viewport2) })
470
+ ] }) });
471
+ }
472
+ function useToast() {
473
+ const context = (0, import_react8.useContext)(ToastContext);
474
+ if (!context) throw new Error("useToast \uB294 ToastProvider \uC548\uC5D0\uC11C \uC0AC\uC6A9\uD574\uC57C \uD569\uB2C8\uB2E4.");
475
+ return context;
476
+ }
477
+
478
+ // src/components/Tooltip/Tooltip.tsx
479
+ var RadixTooltip = __toESM(require("@radix-ui/react-tooltip"), 1);
480
+
481
+ // src/components/Tooltip/Tooltip.css.ts
482
+ var arrow = "z7rufs1";
483
+ var content3 = "z7rufs0";
484
+
485
+ // src/components/Tooltip/Tooltip.tsx
486
+ var import_jsx_runtime11 = require("react/jsx-runtime");
487
+ function Tooltip({
488
+ content: content4,
489
+ children,
490
+ side = "top",
491
+ align = "center",
492
+ delay = 300,
493
+ open,
494
+ defaultOpen,
495
+ onOpenChange,
496
+ disabled,
497
+ className
498
+ }) {
499
+ const portalClassName = usePortalClassName();
500
+ if (disabled || content4 == null || content4 === "") return children;
501
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(RadixTooltip.Provider, { delayDuration: delay, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(RadixTooltip.Root, { open, defaultOpen, onOpenChange, children: [
502
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(RadixTooltip.Trigger, { asChild: true, children }),
503
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(RadixTooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
504
+ RadixTooltip.Content,
505
+ {
506
+ side,
507
+ align,
508
+ sideOffset: 6,
509
+ collisionPadding: 8,
510
+ className: cx(portalClassName, content3, className),
511
+ children: [
512
+ content4,
513
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(RadixTooltip.Arrow, { className: arrow, width: 10, height: 5 })
514
+ ]
515
+ }
516
+ ) })
517
+ ] }) });
518
+ }
519
+
226
520
  // src/components/Typography/Typography.tsx
227
- var import_react7 = require("react");
521
+ var import_react9 = require("react");
228
522
 
229
523
  // src/components/Typography/Typography.css.ts
230
- var import_createRuntimeFn5 = require("@vanilla-extract/recipes/createRuntimeFn");
231
- var typography = (0, import_createRuntimeFn5.createRuntimeFn)({ defaultClassName: "kiolio0", variantClassNames: { variant: { display: "kiolio1", h1: "kiolio2", h2: "kiolio3", h3: "kiolio4", h4: "kiolio5", "body-lg": "kiolio6", body: "kiolio7", "body-sm": "kiolio8", caption: "kiolio9" }, color: { "default": "kiolioa", muted: "kioliob", subtle: "kiolioc", primary: "kioliod", danger: "kiolioe", success: "kioliof", inherit: "kioliog" }, weight: { regular: "kiolioh", medium: "kiolioi", semibold: "kiolioj", bold: "kioliok" }, align: { start: "kioliol", center: "kioliom", end: "kiolion" }, truncate: { true: "kiolioo" } }, defaultVariants: { variant: "body", color: "default" }, compoundVariants: [] });
524
+ var import_createRuntimeFn7 = require("@vanilla-extract/recipes/createRuntimeFn");
525
+ var typography = (0, import_createRuntimeFn7.createRuntimeFn)({ defaultClassName: "kiolio0", variantClassNames: { variant: { display: "kiolio1", h1: "kiolio2", h2: "kiolio3", h3: "kiolio4", h4: "kiolio5", "body-lg": "kiolio6", body: "kiolio7", "body-sm": "kiolio8", caption: "kiolio9" }, color: { "default": "kiolioa", muted: "kioliob", subtle: "kiolioc", primary: "kioliod", danger: "kiolioe", success: "kioliof", inherit: "kioliog" }, weight: { regular: "kiolioh", medium: "kiolioi", semibold: "kiolioj", bold: "kioliok" }, align: { start: "kioliol", center: "kioliom", end: "kiolion" }, truncate: { true: "kiolioo" } }, defaultVariants: { variant: "body", color: "default" }, compoundVariants: [] });
232
526
 
233
527
  // src/components/Typography/Typography.tsx
234
- var import_jsx_runtime7 = require("react/jsx-runtime");
528
+ var import_jsx_runtime12 = require("react/jsx-runtime");
235
529
  var defaultElement = {
236
530
  display: "h1",
237
531
  h1: "h1",
@@ -243,9 +537,9 @@ var defaultElement = {
243
537
  "body-sm": "p",
244
538
  caption: "span"
245
539
  };
246
- var Typography = (0, import_react7.forwardRef)(function Typography2({ variant = "body", as, color, weight, align, truncate, className, ...rest }, ref) {
540
+ var Typography = (0, import_react9.forwardRef)(function Typography2({ variant = "body", as, color, weight, align, truncate, className, ...rest }, ref) {
247
541
  const Component = as ?? defaultElement[variant];
248
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
542
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
249
543
  Component,
250
544
  {
251
545
  ref,
@@ -259,12 +553,19 @@ var Typography = (0, import_react7.forwardRef)(function Typography2({ variant =
259
553
  Button,
260
554
  Checkbox,
261
555
  Input,
556
+ Modal,
557
+ ModalClose,
558
+ Select,
262
559
  Stack,
263
560
  TextField,
264
561
  ThemeProvider,
562
+ ToastProvider,
563
+ Tooltip,
265
564
  Typography,
266
565
  themeClass,
566
+ usePortalClassName,
267
567
  useTheme,
568
+ useToast,
268
569
  vars
269
570
  });
270
571
  //# sourceMappingURL=index.cjs.map