@bestow-ui/react 0.0.0-stage → 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 ADDED
@@ -0,0 +1,571 @@
1
+ "use client";
2
+ "use strict";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
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
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+
31
+ // src/index.ts
32
+ var index_exports = {};
33
+ __export(index_exports, {
34
+ Button: () => Button,
35
+ Checkbox: () => Checkbox,
36
+ Input: () => Input,
37
+ Modal: () => Modal,
38
+ ModalClose: () => ModalClose,
39
+ Select: () => Select,
40
+ Stack: () => Stack,
41
+ TextField: () => TextField,
42
+ ThemeProvider: () => ThemeProvider,
43
+ ToastProvider: () => ToastProvider,
44
+ Tooltip: () => Tooltip,
45
+ Typography: () => Typography,
46
+ themeClass: () => themeClass,
47
+ usePortalClassName: () => usePortalClassName,
48
+ useTheme: () => useTheme,
49
+ useToast: () => useToast,
50
+ vars: () => vars
51
+ });
52
+ module.exports = __toCommonJS(index_exports);
53
+
54
+ // src/theme/contract.css.ts
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)" } } };
57
+
58
+ // src/theme/ThemeProvider.tsx
59
+ var import_react = require("react");
60
+
61
+ // src/utils/cx.ts
62
+ function cx(...classNames) {
63
+ return classNames.filter(Boolean).join(" ");
64
+ }
65
+
66
+ // src/theme/ThemeProvider.css.ts
67
+ var portal = "sfyhlv0";
68
+ var root = "sfyhlv1 sfyhlv0";
69
+
70
+ // src/theme/ThemeProvider.tsx
71
+ var import_jsx_runtime = require("react/jsx-runtime");
72
+ var ThemeContext = (0, import_react.createContext)("light");
73
+ var ThemeProvider = (0, import_react.forwardRef)(function ThemeProvider2({ theme = "light", className, children, ...rest }, ref) {
74
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemeContext.Provider, { value: theme, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ref, "data-theme": theme, className: cx(themeClass[theme], root, className), ...rest, children }) });
75
+ });
76
+ function useTheme() {
77
+ return (0, import_react.useContext)(ThemeContext);
78
+ }
79
+ function usePortalClassName() {
80
+ return cx(themeClass[useTheme()], portal);
81
+ }
82
+
83
+ // src/components/Button/Button.tsx
84
+ var import_react2 = require("react");
85
+
86
+ // src/components/Button/Button.css.ts
87
+ var import_createRuntimeFn = require("@vanilla-extract/recipes/createRuntimeFn");
88
+ var button = (0, import_createRuntimeFn.createRuntimeFn)({ defaultClassName: "xcekda6", variantClassNames: { variant: { solid: "xcekda7", soft: "xcekda8", outline: "xcekda9", ghost: "xcekdaa" }, color: { primary: "xcekdab", neutral: "xcekdac", danger: "xcekdad" }, size: { sm: "xcekdae", md: "xcekdaf", lg: "xcekdag" }, fullWidth: { true: "xcekdah" } }, defaultVariants: { variant: "solid", color: "primary", size: "md" }, compoundVariants: [] });
89
+ var icon = "xcekdai";
90
+
91
+ // src/components/Button/Button.tsx
92
+ var import_jsx_runtime2 = require("react/jsx-runtime");
93
+ var Button = (0, import_react2.forwardRef)(function Button2({ variant, color, size, fullWidth, startIcon, endIcon, className, type = "button", children, ...rest }, ref) {
94
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
95
+ "button",
96
+ {
97
+ ref,
98
+ type,
99
+ className: cx(button({ variant, color, size, fullWidth }), className),
100
+ ...rest,
101
+ children: [
102
+ startIcon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: icon, children: startIcon }),
103
+ children,
104
+ endIcon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: icon, children: endIcon })
105
+ ]
106
+ }
107
+ );
108
+ });
109
+
110
+ // src/components/Checkbox/Checkbox.tsx
111
+ var import_react3 = require("react");
112
+
113
+ // src/utils/mergeRefs.ts
114
+ function mergeRefs(...refs) {
115
+ return (value2) => {
116
+ for (const ref of refs) {
117
+ if (typeof ref === "function") ref(value2);
118
+ else if (ref) ref.current = value2;
119
+ }
120
+ };
121
+ }
122
+
123
+ // src/components/Checkbox/Checkbox.css.ts
124
+ var import_createRuntimeFn2 = require("@vanilla-extract/recipes/createRuntimeFn");
125
+ var checkIcon = "_1y7mzsn8 _1y7mzsn7";
126
+ var control = (0, import_createRuntimeFn2.createRuntimeFn)({ defaultClassName: "_1y7mzsn3", variantClassNames: { size: { sm: "_1y7mzsn4", md: "_1y7mzsn5" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
127
+ var indeterminateIcon = "_1y7mzsn9 _1y7mzsn7";
128
+ var input = "_1y7mzsn6";
129
+ var root2 = (0, import_createRuntimeFn2.createRuntimeFn)({ defaultClassName: "_1y7mzsn0", variantClassNames: { size: { sm: "_1y7mzsn1", md: "_1y7mzsn2" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
130
+
131
+ // src/components/Checkbox/Checkbox.tsx
132
+ var import_jsx_runtime3 = require("react/jsx-runtime");
133
+ var Checkbox = (0, import_react3.forwardRef)(function Checkbox2({ label: label2, size, indeterminate = false, invalid, disabled, className, ...rest }, ref) {
134
+ const innerRef = (0, import_react3.useRef)(null);
135
+ (0, import_react3.useEffect)(() => {
136
+ if (innerRef.current) innerRef.current.indeterminate = indeterminate;
137
+ }, [indeterminate]);
138
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("label", { className: cx(root2({ size }), className), "data-disabled": disabled || void 0, children: [
139
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { className: control({ size }), children: [
140
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
141
+ "input",
142
+ {
143
+ ref: mergeRefs(innerRef, ref),
144
+ type: "checkbox",
145
+ className: input,
146
+ disabled,
147
+ "aria-invalid": invalid || void 0,
148
+ ...rest
149
+ }
150
+ ),
151
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { className: checkIcon, viewBox: "0 0 20 20", fill: "none", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M5 10.5l3.2 3L15 7", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }),
152
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { className: indeterminateIcon, viewBox: "0 0 20 20", fill: "none", "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M6 10h8", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }) })
153
+ ] }),
154
+ label2
155
+ ] });
156
+ });
157
+
158
+ // src/components/Input/Input.tsx
159
+ var import_react4 = require("react");
160
+
161
+ // src/components/Input/Input.css.ts
162
+ var import_createRuntimeFn3 = require("@vanilla-extract/recipes/createRuntimeFn");
163
+ var adornment = "_19p5zvh6";
164
+ var field = "_19p5zvh7";
165
+ var fieldFullWidth = "_19p5zvh8";
166
+ var helperText = (0, import_createRuntimeFn3.createRuntimeFn)({ defaultClassName: "_19p5zvhb", variantClassNames: { error: { true: "_19p5zvhc" } }, defaultVariants: {}, compoundVariants: [] });
167
+ var input2 = "_19p5zvh5";
168
+ var label = "_19p5zvh9";
169
+ var requiredMark = "_19p5zvha";
170
+ var root3 = (0, import_createRuntimeFn3.createRuntimeFn)({ defaultClassName: "_19p5zvh0", variantClassNames: { size: { sm: "_19p5zvh1", md: "_19p5zvh2", lg: "_19p5zvh3" }, fullWidth: { true: "_19p5zvh4" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
171
+
172
+ // src/components/Input/Input.tsx
173
+ var import_jsx_runtime4 = require("react/jsx-runtime");
174
+ var Input = (0, import_react4.forwardRef)(function Input2({ size, invalid, fullWidth, startAdornment, endAdornment, rootClassName, className, disabled, ...rest }, ref) {
175
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
176
+ "div",
177
+ {
178
+ className: cx(root3({ size, fullWidth }), rootClassName),
179
+ "data-invalid": invalid || void 0,
180
+ "data-disabled": disabled || void 0,
181
+ children: [
182
+ startAdornment && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: adornment, children: startAdornment }),
183
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
184
+ "input",
185
+ {
186
+ ref,
187
+ className: cx(input2, className),
188
+ disabled,
189
+ "aria-invalid": invalid || void 0,
190
+ ...rest
191
+ }
192
+ ),
193
+ endAdornment && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: adornment, children: endAdornment })
194
+ ]
195
+ }
196
+ );
197
+ });
198
+
199
+ // src/components/Input/TextField.tsx
200
+ var import_react5 = require("react");
201
+ var import_jsx_runtime5 = require("react/jsx-runtime");
202
+ var TextField = (0, import_react5.forwardRef)(function TextField2({ label: label2, helperText: helperText2, error, required, fullWidth, id, "aria-describedby": ariaDescribedBy, ...rest }, ref) {
203
+ const generatedId = (0, import_react5.useId)();
204
+ const inputId = id ?? generatedId;
205
+ const helperId = helperText2 ? `${inputId}-helper` : void 0;
206
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
207
+ label2 && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("label", { htmlFor: inputId, className: label, children: [
208
+ label2,
209
+ required && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: requiredMark, "aria-hidden": true, children: "*" })
210
+ ] }),
211
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
212
+ Input,
213
+ {
214
+ ref,
215
+ id: inputId,
216
+ invalid: error,
217
+ required,
218
+ fullWidth,
219
+ "aria-describedby": cx(helperId, ariaDescribedBy) || void 0,
220
+ ...rest
221
+ }
222
+ ),
223
+ helperText2 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { id: helperId, className: helperText({ error }), children: helperText2 })
224
+ ] });
225
+ });
226
+
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);
302
+ var import_react6 = require("react");
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
+
400
+ // src/components/Stack/Stack.css.ts
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: [] });
403
+
404
+ // src/components/Stack/Stack.tsx
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)(
408
+ Component,
409
+ {
410
+ ref,
411
+ className: cx(stack({ direction, gap, align, justify, wrap }), className),
412
+ ...rest
413
+ }
414
+ );
415
+ });
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
+
520
+ // src/components/Typography/Typography.tsx
521
+ var import_react9 = require("react");
522
+
523
+ // src/components/Typography/Typography.css.ts
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: [] });
526
+
527
+ // src/components/Typography/Typography.tsx
528
+ var import_jsx_runtime12 = require("react/jsx-runtime");
529
+ var defaultElement = {
530
+ display: "h1",
531
+ h1: "h1",
532
+ h2: "h2",
533
+ h3: "h3",
534
+ h4: "h4",
535
+ "body-lg": "p",
536
+ body: "p",
537
+ "body-sm": "p",
538
+ caption: "span"
539
+ };
540
+ var Typography = (0, import_react9.forwardRef)(function Typography2({ variant = "body", as, color, weight, align, truncate, className, ...rest }, ref) {
541
+ const Component = as ?? defaultElement[variant];
542
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
543
+ Component,
544
+ {
545
+ ref,
546
+ className: cx(typography({ variant, color, weight, align, truncate }), className),
547
+ ...rest
548
+ }
549
+ );
550
+ });
551
+ // Annotate the CommonJS export names for ESM import in node:
552
+ 0 && (module.exports = {
553
+ Button,
554
+ Checkbox,
555
+ Input,
556
+ Modal,
557
+ ModalClose,
558
+ Select,
559
+ Stack,
560
+ TextField,
561
+ ThemeProvider,
562
+ ToastProvider,
563
+ Tooltip,
564
+ Typography,
565
+ themeClass,
566
+ usePortalClassName,
567
+ useTheme,
568
+ useToast,
569
+ vars
570
+ });
571
+ //# sourceMappingURL=index.cjs.map