@bestow-ui/react 0.8.3 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/index.cjs +1156 -398
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1067 -245
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +315 -18
- package/dist/index.d.ts +315 -18
- package/dist/index.js +1150 -396
- package/dist/index.js.map +1 -1
- package/package.json +4 -2
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
// src/theme/contract.css.ts
|
|
4
4
|
var themeClass = { light: "tkagtb0", dark: "tkagtb1" };
|
|
5
|
-
var vars = { space: { "0": "var(--bestow-space-0)", "1": "var(--bestow-space-1)", "2": "var(--bestow-space-2)", "3": "var(--bestow-space-3)", "4": "var(--bestow-space-4)", "5": "var(--bestow-space-5)", "6": "var(--bestow-space-6)", "8": "var(--bestow-space-8)", "10": "var(--bestow-space-10)", "12": "var(--bestow-space-12)", "16": "var(--bestow-space-16)" }, radius: { none: "var(--bestow-radius-none)", sm: "var(--bestow-radius-sm)", md: "var(--bestow-radius-md)", lg: "var(--bestow-radius-lg)", xl: "var(--bestow-radius-xl)", full: "var(--bestow-radius-full)" }, font: { family: { sans: "var(--bestow-font-family-sans)", mono: "var(--bestow-font-family-mono)" }, size: { xs: "var(--bestow-font-size-xs)", sm: "var(--bestow-font-size-sm)", md: "var(--bestow-font-size-md)", lg: "var(--bestow-font-size-lg)", xl: "var(--bestow-font-size-xl)", "2xl": "var(--bestow-font-size-2xl)", "3xl": "var(--bestow-font-size-3xl)", "4xl": "var(--bestow-font-size-4xl)" }, weight: { regular: "var(--bestow-font-weight-regular)", medium: "var(--bestow-font-weight-medium)", semibold: "var(--bestow-font-weight-semibold)", bold: "var(--bestow-font-weight-bold)" }, lineHeight: { tight: "var(--bestow-font-line-height-tight)", normal: "var(--bestow-font-line-height-normal)", relaxed: "var(--bestow-font-line-height-relaxed)" } },
|
|
5
|
+
var vars = { space: { "0": "var(--bestow-space-0)", "1": "var(--bestow-space-1)", "2": "var(--bestow-space-2)", "3": "var(--bestow-space-3)", "4": "var(--bestow-space-4)", "5": "var(--bestow-space-5)", "6": "var(--bestow-space-6)", "8": "var(--bestow-space-8)", "10": "var(--bestow-space-10)", "12": "var(--bestow-space-12)", "16": "var(--bestow-space-16)" }, radius: { none: "var(--bestow-radius-none)", sm: "var(--bestow-radius-sm)", md: "var(--bestow-radius-md)", lg: "var(--bestow-radius-lg)", xl: "var(--bestow-radius-xl)", full: "var(--bestow-radius-full)" }, font: { family: { sans: "var(--bestow-font-family-sans)", mono: "var(--bestow-font-family-mono)" }, size: { xs: "var(--bestow-font-size-xs)", sm: "var(--bestow-font-size-sm)", md: "var(--bestow-font-size-md)", lg: "var(--bestow-font-size-lg)", xl: "var(--bestow-font-size-xl)", "2xl": "var(--bestow-font-size-2xl)", "3xl": "var(--bestow-font-size-3xl)", "4xl": "var(--bestow-font-size-4xl)" }, weight: { regular: "var(--bestow-font-weight-regular)", medium: "var(--bestow-font-weight-medium)", semibold: "var(--bestow-font-weight-semibold)", bold: "var(--bestow-font-weight-bold)" }, lineHeight: { tight: "var(--bestow-font-line-height-tight)", normal: "var(--bestow-font-line-height-normal)", relaxed: "var(--bestow-font-line-height-relaxed)" } }, duration: { fast: "var(--bestow-duration-fast)", normal: "var(--bestow-duration-normal)", slow: "var(--bestow-duration-slow)" }, zIndex: { dropdown: "var(--bestow-z-index-dropdown)", overlay: "var(--bestow-z-index-overlay)", modal: "var(--bestow-z-index-modal)", toast: "var(--bestow-z-index-toast)", tooltip: "var(--bestow-z-index-tooltip)" }, color: { bg: { "default": "var(--bestow-color-bg-default)", subtle: "var(--bestow-color-bg-subtle)", muted: "var(--bestow-color-bg-muted)", inverse: "var(--bestow-color-bg-inverse)", overlay: "var(--bestow-color-bg-overlay)" }, fg: { "default": "var(--bestow-color-fg-default)", muted: "var(--bestow-color-fg-muted)", subtle: "var(--bestow-color-fg-subtle)", inverse: "var(--bestow-color-fg-inverse)" }, border: { "default": "var(--bestow-color-border-default)", strong: "var(--bestow-color-border-strong)", focus: "var(--bestow-color-border-focus)" }, primary: { solid: "var(--bestow-color-primary-solid)", solidHover: "var(--bestow-color-primary-solid-hover)", contrast: "var(--bestow-color-primary-contrast)", subtle: "var(--bestow-color-primary-subtle)", subtleHover: "var(--bestow-color-primary-subtle-hover)", text: "var(--bestow-color-primary-text)" }, neutral: { solid: "var(--bestow-color-neutral-solid)", solidHover: "var(--bestow-color-neutral-solid-hover)", contrast: "var(--bestow-color-neutral-contrast)", subtle: "var(--bestow-color-neutral-subtle)", subtleHover: "var(--bestow-color-neutral-subtle-hover)", text: "var(--bestow-color-neutral-text)" }, danger: { solid: "var(--bestow-color-danger-solid)", solidHover: "var(--bestow-color-danger-solid-hover)", contrast: "var(--bestow-color-danger-contrast)", subtle: "var(--bestow-color-danger-subtle)", subtleHover: "var(--bestow-color-danger-subtle-hover)", text: "var(--bestow-color-danger-text)" }, success: { solid: "var(--bestow-color-success-solid)", solidHover: "var(--bestow-color-success-solid-hover)", contrast: "var(--bestow-color-success-contrast)", subtle: "var(--bestow-color-success-subtle)", subtleHover: "var(--bestow-color-success-subtle-hover)", text: "var(--bestow-color-success-text)" }, warning: { solid: "var(--bestow-color-warning-solid)", solidHover: "var(--bestow-color-warning-solid-hover)", contrast: "var(--bestow-color-warning-contrast)", subtle: "var(--bestow-color-warning-subtle)", subtleHover: "var(--bestow-color-warning-subtle-hover)", text: "var(--bestow-color-warning-text)" } }, shadow: { sm: "var(--bestow-shadow-sm)", md: "var(--bestow-shadow-md)", lg: "var(--bestow-shadow-lg)" } };
|
|
6
6
|
|
|
7
7
|
// src/theme/color.ts
|
|
8
8
|
import { darkColors, lightColors, palette } from "@bestow-ui/tokens";
|
|
@@ -78,6 +78,11 @@ function findReadable(base, startL, step, backgrounds) {
|
|
|
78
78
|
}
|
|
79
79
|
return step < 0 ? palette.black : palette.white;
|
|
80
80
|
}
|
|
81
|
+
function hoverFor(base, delta, contrast) {
|
|
82
|
+
const preferred = withL(base, Math.min(1, Math.max(0, base.l + delta)));
|
|
83
|
+
if (contrastRatio(contrast, preferred) >= 4.5) return preferred;
|
|
84
|
+
return withL(base, Math.min(1, Math.max(0, base.l - delta)));
|
|
85
|
+
}
|
|
81
86
|
function pickContrast(solid) {
|
|
82
87
|
const white = palette.white;
|
|
83
88
|
const dark = palette.gray[900];
|
|
@@ -93,10 +98,11 @@ function createIntentColors(intent, color) {
|
|
|
93
98
|
const base = rgbToOklch(parseHex(solid));
|
|
94
99
|
const lightSubtle = withL(base, 0.97, Math.min(base.c, 0.12) * 0.3);
|
|
95
100
|
const lightSubtleHover = withL(base, 0.93, Math.min(base.c, 0.12) * 0.45);
|
|
101
|
+
const lightContrast = pickContrast(solid);
|
|
96
102
|
const light = {
|
|
97
103
|
solid,
|
|
98
|
-
solidHover:
|
|
99
|
-
contrast:
|
|
104
|
+
solidHover: hoverFor(base, -0.06, lightContrast),
|
|
105
|
+
contrast: lightContrast,
|
|
100
106
|
subtle: lightSubtle,
|
|
101
107
|
subtleHover: lightSubtleHover,
|
|
102
108
|
text: findReadable(base, Math.min(base.l, 0.55), -0.02, [lightColors.bg.default, lightSubtle, lightSubtleHover])
|
|
@@ -106,15 +112,19 @@ function createIntentColors(intent, color) {
|
|
|
106
112
|
const darkBase = rgbToOklch(parseHex(darkSolid));
|
|
107
113
|
const darkSubtleOnBg = blend(darkSolid, 0.16, darkBg);
|
|
108
114
|
const darkSubtleHoverOnBg = blend(darkSolid, 0.26, darkBg);
|
|
115
|
+
const darkContrast = pickContrast(darkSolid);
|
|
109
116
|
const dark = {
|
|
110
117
|
solid: darkSolid,
|
|
111
|
-
solidHover:
|
|
112
|
-
contrast:
|
|
118
|
+
solidHover: hoverFor(darkBase, 0.06, darkContrast),
|
|
119
|
+
contrast: darkContrast,
|
|
113
120
|
subtle: rgba(darkSolid, 0.16),
|
|
114
121
|
subtleHover: rgba(darkSolid, 0.26),
|
|
115
122
|
text: findReadable(darkBase, Math.max(darkBase.l, 0.75), 0.02, [darkBg, darkSubtleOnBg, darkSubtleHoverOnBg])
|
|
116
123
|
};
|
|
117
|
-
const focus = intent === "primary" ? {
|
|
124
|
+
const focus = intent === "primary" ? {
|
|
125
|
+
light: { border: { focus: light.solid } },
|
|
126
|
+
dark: { border: { focus: withL(darkBase, Math.min(1, darkBase.l + 0.06)) } }
|
|
127
|
+
} : void 0;
|
|
118
128
|
return {
|
|
119
129
|
light: { color: { [intent]: light, ...focus?.light } },
|
|
120
130
|
dark: { color: { [intent]: dark, ...focus?.dark } }
|
|
@@ -126,10 +136,10 @@ import { assignInlineVars } from "@vanilla-extract/dynamic";
|
|
|
126
136
|
function deepMerge(target, source) {
|
|
127
137
|
if (!source) return target;
|
|
128
138
|
const out = { ...target };
|
|
129
|
-
for (const [key,
|
|
130
|
-
if (
|
|
139
|
+
for (const [key, value4] of Object.entries(source)) {
|
|
140
|
+
if (value4 === void 0) continue;
|
|
131
141
|
const prev = out[key];
|
|
132
|
-
out[key] = typeof
|
|
142
|
+
out[key] = typeof value4 === "object" && typeof prev === "object" ? deepMerge(prev, value4) : value4;
|
|
133
143
|
}
|
|
134
144
|
return out;
|
|
135
145
|
}
|
|
@@ -148,11 +158,11 @@ function mergeThemes(a, b) {
|
|
|
148
158
|
return createTheme(a, b);
|
|
149
159
|
}
|
|
150
160
|
function flatten(partial, contract, out) {
|
|
151
|
-
for (const [key,
|
|
161
|
+
for (const [key, value4] of Object.entries(partial)) {
|
|
152
162
|
const target = contract[key];
|
|
153
163
|
if (target === void 0) continue;
|
|
154
|
-
if (typeof target === "string" && typeof
|
|
155
|
-
else if (typeof target === "object" && typeof
|
|
164
|
+
if (typeof target === "string" && typeof value4 === "string") out[target] = value4;
|
|
165
|
+
else if (typeof target === "object" && typeof value4 === "object") flatten(value4, target, out);
|
|
156
166
|
}
|
|
157
167
|
return out;
|
|
158
168
|
}
|
|
@@ -181,17 +191,17 @@ var ThemeProvider = /* @__PURE__ */ forwardRef(function ThemeProvider2({ theme:
|
|
|
181
191
|
const parent = useContext(ThemeContext);
|
|
182
192
|
const theme = themeProp ?? parent.theme;
|
|
183
193
|
const merged = useMemo(() => mergeThemes(parent.overrides, overrides), [parent.overrides, overrides]);
|
|
184
|
-
const
|
|
194
|
+
const value4 = useMemo(
|
|
185
195
|
() => ({ theme, overrides: merged, style: themeToStyle(merged, theme) }),
|
|
186
196
|
[theme, merged]
|
|
187
197
|
);
|
|
188
|
-
return /* @__PURE__ */ jsx(ThemeContext.Provider, { value:
|
|
198
|
+
return /* @__PURE__ */ jsx(ThemeContext.Provider, { value: value4, children: /* @__PURE__ */ jsx(
|
|
189
199
|
"div",
|
|
190
200
|
{
|
|
191
201
|
ref,
|
|
192
202
|
"data-theme": theme,
|
|
193
203
|
className: cx(themeClass[theme], root, className),
|
|
194
|
-
style:
|
|
204
|
+
style: value4.style ? { ...value4.style, ...style } : style,
|
|
195
205
|
...rest,
|
|
196
206
|
children
|
|
197
207
|
}
|
|
@@ -230,94 +240,207 @@ var Accordion = /* @__PURE__ */ forwardRef2(function Accordion2({ className, ...
|
|
|
230
240
|
const rootProps = "value" in props ? { ...typedProps, value: props.value ?? (props.type === "multiple" ? [] : "") } : typedProps;
|
|
231
241
|
return /* @__PURE__ */ jsx2(RadixAccordion.Root, { ref, className: cx(root2, className), ...rootProps });
|
|
232
242
|
});
|
|
233
|
-
var AccordionItem = /* @__PURE__ */ forwardRef2(function AccordionItem2({ title:
|
|
243
|
+
var AccordionItem = /* @__PURE__ */ forwardRef2(function AccordionItem2({ title: title6, headingLevel = 3, className, children, ...rest }, ref) {
|
|
234
244
|
const Heading = `h${headingLevel}`;
|
|
235
245
|
return /* @__PURE__ */ jsxs(RadixAccordion.Item, { ref, className: cx(item, className), ...rest, children: [
|
|
236
246
|
/* @__PURE__ */ jsx2(RadixAccordion.Header, { asChild: true, children: /* @__PURE__ */ jsx2(Heading, { className: header, children: /* @__PURE__ */ jsxs(RadixAccordion.Trigger, { className: trigger, children: [
|
|
237
|
-
|
|
247
|
+
title6,
|
|
238
248
|
/* @__PURE__ */ jsx2(ChevronDownIcon, { size: 18, className: chevron })
|
|
239
249
|
] }) }) }),
|
|
240
250
|
/* @__PURE__ */ jsx2(RadixAccordion.Content, { className: content, children: /* @__PURE__ */ jsx2("div", { className: contentInner, children }) })
|
|
241
251
|
] });
|
|
242
252
|
});
|
|
243
253
|
|
|
254
|
+
// src/components/Alert/Alert.tsx
|
|
255
|
+
import { forwardRef as forwardRef3 } from "react";
|
|
256
|
+
import { CircleAlertIcon, CircleCheckIcon, InfoIcon, TriangleAlertIcon, XIcon } from "@bestow-ui/icons";
|
|
257
|
+
|
|
258
|
+
// src/components/Alert/Alert.css.ts
|
|
259
|
+
import { createRuntimeFn as _7a468 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
260
|
+
var action = "bsmpc0j";
|
|
261
|
+
var alert = /* @__PURE__ */ _7a468({ defaultClassName: "bsmpc06", variantClassNames: { variant: { soft: "bsmpc07", outline: "bsmpc08", solid: "bsmpc09" }, color: { primary: "bsmpc0a", neutral: "bsmpc0b", danger: "bsmpc0c", success: "bsmpc0d", warning: "bsmpc0e" } }, defaultVariants: { variant: "soft", color: "primary" }, compoundVariants: [] });
|
|
262
|
+
var closeButton = "bsmpc0k";
|
|
263
|
+
var content2 = "bsmpc0g";
|
|
264
|
+
var description = "bsmpc0i";
|
|
265
|
+
var icon = "bsmpc0f";
|
|
266
|
+
var title = "bsmpc0h";
|
|
267
|
+
|
|
268
|
+
// src/components/Alert/Alert.tsx
|
|
269
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
270
|
+
var defaultIcons = {
|
|
271
|
+
primary: InfoIcon,
|
|
272
|
+
neutral: InfoIcon,
|
|
273
|
+
success: CircleCheckIcon,
|
|
274
|
+
warning: TriangleAlertIcon,
|
|
275
|
+
danger: CircleAlertIcon
|
|
276
|
+
};
|
|
277
|
+
var Alert = /* @__PURE__ */ forwardRef3(function Alert2({ variant, color = "primary", title: title6, icon: icon6, action: action3, onClose, closeLabel = "\uB2EB\uAE30", className, children, ...rest }, ref) {
|
|
278
|
+
const DefaultIcon = defaultIcons[color];
|
|
279
|
+
const iconNode = icon6 === void 0 ? /* @__PURE__ */ jsx3(DefaultIcon, { size: 18 }) : icon6;
|
|
280
|
+
return /* @__PURE__ */ jsxs2("div", { ref, className: cx(alert({ variant, color }), className), ...rest, children: [
|
|
281
|
+
iconNode !== false && iconNode !== null && /* @__PURE__ */ jsx3("span", { className: icon, "aria-hidden": true, children: iconNode }),
|
|
282
|
+
/* @__PURE__ */ jsxs2("div", { className: content2, children: [
|
|
283
|
+
title6 && /* @__PURE__ */ jsx3("div", { className: title, children: title6 }),
|
|
284
|
+
children && /* @__PURE__ */ jsx3("div", { className: description, children })
|
|
285
|
+
] }),
|
|
286
|
+
action3 && /* @__PURE__ */ jsx3("div", { className: action, children: action3 }),
|
|
287
|
+
onClose && /* @__PURE__ */ jsx3("button", { type: "button", className: closeButton, "aria-label": closeLabel, onClick: onClose, children: /* @__PURE__ */ jsx3(XIcon, { size: 16 }) })
|
|
288
|
+
] });
|
|
289
|
+
});
|
|
290
|
+
|
|
244
291
|
// src/components/Avatar/Avatar.tsx
|
|
245
292
|
import * as RadixAvatar from "@radix-ui/react-avatar";
|
|
246
293
|
import { UserIcon } from "@bestow-ui/icons";
|
|
247
|
-
import { forwardRef as
|
|
294
|
+
import { forwardRef as forwardRef4 } from "react";
|
|
248
295
|
|
|
249
296
|
// src/components/Avatar/Avatar.css.ts
|
|
250
|
-
import { createRuntimeFn as
|
|
297
|
+
import { createRuntimeFn as _7a4682 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
251
298
|
var fallback = "_1fd2kp27";
|
|
252
299
|
var image = "_1fd2kp26";
|
|
253
|
-
var root3 =
|
|
300
|
+
var root3 = /* @__PURE__ */ _7a4682({ defaultClassName: "_1fd2kp20", variantClassNames: { size: { sm: "_1fd2kp21", md: "_1fd2kp22", lg: "_1fd2kp23" }, shape: { circle: "_1fd2kp24", square: "_1fd2kp25" } }, defaultVariants: { size: "md", shape: "circle" }, compoundVariants: [] });
|
|
254
301
|
|
|
255
302
|
// src/components/Avatar/Avatar.tsx
|
|
256
|
-
import { jsx as
|
|
303
|
+
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
257
304
|
function getInitials(name) {
|
|
258
305
|
const [a = "", b = ""] = name.trim().split(/\s+/);
|
|
259
306
|
const first = (word) => Array.from(word)[0] ?? "";
|
|
260
307
|
return (first(a) + first(b)).toUpperCase();
|
|
261
308
|
}
|
|
262
|
-
var Avatar = /* @__PURE__ */
|
|
263
|
-
const
|
|
264
|
-
const a11y =
|
|
309
|
+
var Avatar = /* @__PURE__ */ forwardRef4(function Avatar2({ src, alt, name, fallback: fallback2, size, shape, className, ...rest }, ref) {
|
|
310
|
+
const label6 = alt ?? name;
|
|
311
|
+
const a11y = label6 ? { role: "img", "aria-label": label6 } : { "aria-hidden": true };
|
|
265
312
|
const initials = name ? getInitials(name) : "";
|
|
266
|
-
return /* @__PURE__ */
|
|
267
|
-
src && /* @__PURE__ */
|
|
268
|
-
/* @__PURE__ */
|
|
313
|
+
return /* @__PURE__ */ jsxs3(RadixAvatar.Root, { ref, className: cx(root3({ size, shape }), className), ...a11y, ...rest, children: [
|
|
314
|
+
src && /* @__PURE__ */ jsx4(RadixAvatar.Image, { src, alt: "", className: image }),
|
|
315
|
+
/* @__PURE__ */ jsx4(RadixAvatar.Fallback, { className: fallback, children: fallback2 ?? (initials || /* @__PURE__ */ jsx4(UserIcon, { size: "60%" })) })
|
|
269
316
|
] });
|
|
270
317
|
});
|
|
271
318
|
|
|
272
319
|
// src/components/Badge/Badge.tsx
|
|
273
|
-
import { forwardRef as
|
|
320
|
+
import { forwardRef as forwardRef5 } from "react";
|
|
274
321
|
|
|
275
322
|
// src/components/Badge/Badge.css.ts
|
|
276
|
-
import { createRuntimeFn as
|
|
277
|
-
var badge =
|
|
278
|
-
var
|
|
323
|
+
import { createRuntimeFn as _7a4683 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
324
|
+
var badge = /* @__PURE__ */ _7a4683({ defaultClassName: "_1295cfn4", variantClassNames: { variant: { solid: "_1295cfn5", soft: "_1295cfn6", outline: "_1295cfn7" }, color: { primary: "_1295cfn8", neutral: "_1295cfn9", danger: "_1295cfna", success: "_1295cfnb", warning: "_1295cfnc" }, size: { sm: "_1295cfnd", md: "_1295cfne", lg: "_1295cfnf" } }, defaultVariants: { variant: "soft", color: "neutral", size: "md" }, compoundVariants: [] });
|
|
325
|
+
var icon2 = "_1295cfng";
|
|
279
326
|
|
|
280
327
|
// src/components/Badge/Badge.tsx
|
|
281
|
-
import { jsx as
|
|
282
|
-
var Badge = /* @__PURE__ */
|
|
283
|
-
return /* @__PURE__ */
|
|
284
|
-
startIcon && /* @__PURE__ */
|
|
328
|
+
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
329
|
+
var Badge = /* @__PURE__ */ forwardRef5(function Badge2({ variant, color, size, startIcon, className, children, ...rest }, ref) {
|
|
330
|
+
return /* @__PURE__ */ jsxs4("span", { ref, className: cx(badge({ variant, color, size }), className), ...rest, children: [
|
|
331
|
+
startIcon && /* @__PURE__ */ jsx5("span", { className: icon2, children: startIcon }),
|
|
285
332
|
children
|
|
286
333
|
] });
|
|
287
334
|
});
|
|
288
335
|
|
|
289
|
-
// src/components/
|
|
290
|
-
import { forwardRef as
|
|
336
|
+
// src/components/Breadcrumb/Breadcrumb.tsx
|
|
337
|
+
import { forwardRef as forwardRef7 } from "react";
|
|
338
|
+
import { ChevronRightIcon } from "@bestow-ui/icons";
|
|
291
339
|
|
|
292
|
-
// src/components/
|
|
293
|
-
import {
|
|
294
|
-
import { forwardRef as
|
|
340
|
+
// src/components/Link/Link.tsx
|
|
341
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
342
|
+
import { forwardRef as forwardRef6 } from "react";
|
|
343
|
+
import { ExternalLinkIcon } from "@bestow-ui/icons";
|
|
295
344
|
|
|
296
345
|
// src/styles/visuallyHidden.css.ts
|
|
297
346
|
var visuallyHidden = "_1kdtbw10";
|
|
298
347
|
|
|
348
|
+
// src/components/Link/Link.css.ts
|
|
349
|
+
import { createRuntimeFn as _7a4684 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
350
|
+
var externalIcon = "_1t4hlp6";
|
|
351
|
+
var link = /* @__PURE__ */ _7a4684({ defaultClassName: "_1t4hlp0", variantClassNames: { color: { primary: "_1t4hlp1", neutral: "_1t4hlp2", inherit: "_1t4hlp3" }, underline: { always: "_1t4hlp4", hover: "_1t4hlp5" } }, defaultVariants: { color: "primary", underline: "always" }, compoundVariants: [] });
|
|
352
|
+
|
|
353
|
+
// src/components/Link/Link.tsx
|
|
354
|
+
import { Fragment, jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
355
|
+
var Link = /* @__PURE__ */ forwardRef6(function Link2({
|
|
356
|
+
as: Component = "a",
|
|
357
|
+
asChild,
|
|
358
|
+
color,
|
|
359
|
+
underline,
|
|
360
|
+
external,
|
|
361
|
+
externalLabel = "(\uC0C8 \uCC3D)",
|
|
362
|
+
target,
|
|
363
|
+
rel,
|
|
364
|
+
className,
|
|
365
|
+
children,
|
|
366
|
+
...rest
|
|
367
|
+
}, ref) {
|
|
368
|
+
const linkClassName = cx(link({ color, underline }), className);
|
|
369
|
+
if (asChild) {
|
|
370
|
+
return (
|
|
371
|
+
// Slot 의 props 타입은 HTMLElement 기준이라 <a> 전용 속성(target·rel 등)은 그대로 넘기도록 단언한다
|
|
372
|
+
/* @__PURE__ */ jsx6(Slot, { ref, className: linkClassName, ...{ target, rel, ...rest }, children })
|
|
373
|
+
);
|
|
374
|
+
}
|
|
375
|
+
return /* @__PURE__ */ jsxs5(
|
|
376
|
+
Component,
|
|
377
|
+
{
|
|
378
|
+
ref,
|
|
379
|
+
className: linkClassName,
|
|
380
|
+
target: external ? target ?? "_blank" : target,
|
|
381
|
+
rel: external ? rel ?? "noopener noreferrer" : rel,
|
|
382
|
+
...rest,
|
|
383
|
+
children: [
|
|
384
|
+
children,
|
|
385
|
+
external && /* @__PURE__ */ jsxs5(Fragment, { children: [
|
|
386
|
+
" ",
|
|
387
|
+
/* @__PURE__ */ jsx6(ExternalLinkIcon, { className: externalIcon }),
|
|
388
|
+
/* @__PURE__ */ jsx6("span", { className: visuallyHidden, children: externalLabel })
|
|
389
|
+
] })
|
|
390
|
+
]
|
|
391
|
+
}
|
|
392
|
+
);
|
|
393
|
+
});
|
|
394
|
+
|
|
395
|
+
// src/components/Breadcrumb/Breadcrumb.css.ts
|
|
396
|
+
var current = "_18t8ztt3";
|
|
397
|
+
var item2 = "_18t8ztt1";
|
|
398
|
+
var link2 = "_18t8ztt2";
|
|
399
|
+
var list = "_18t8ztt0";
|
|
400
|
+
var separator = "_18t8ztt4";
|
|
401
|
+
|
|
402
|
+
// src/components/Breadcrumb/Breadcrumb.tsx
|
|
403
|
+
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
404
|
+
var Breadcrumb = /* @__PURE__ */ forwardRef7(function Breadcrumb2({ items: items2, linkAs, separator: separator3, "aria-label": ariaLabel = "\uC774\uB3D9 \uACBD\uB85C", className, ...rest }, ref) {
|
|
405
|
+
const sep = separator3 ?? /* @__PURE__ */ jsx7(ChevronRightIcon, { size: 14 });
|
|
406
|
+
return /* @__PURE__ */ jsx7("nav", { ref, "aria-label": ariaLabel, className, ...rest, children: /* @__PURE__ */ jsx7("ol", { className: list, children: items2.map((item6, index) => {
|
|
407
|
+
const isCurrent = index === items2.length - 1;
|
|
408
|
+
return /* @__PURE__ */ jsxs6("li", { className: item2, children: [
|
|
409
|
+
index > 0 && /* @__PURE__ */ jsx7("span", { className: separator, "aria-hidden": true, children: sep }),
|
|
410
|
+
isCurrent || item6.href === void 0 ? /* @__PURE__ */ jsx7("span", { className: isCurrent ? current : void 0, "aria-current": isCurrent ? "page" : void 0, children: item6.label }) : /* @__PURE__ */ jsx7(Link, { as: linkAs, href: item6.href, color: "neutral", underline: "hover", className: link2, children: item6.label })
|
|
411
|
+
] }, index);
|
|
412
|
+
}) }) });
|
|
413
|
+
});
|
|
414
|
+
|
|
415
|
+
// src/components/Button/Button.tsx
|
|
416
|
+
import { forwardRef as forwardRef9 } from "react";
|
|
417
|
+
|
|
418
|
+
// src/components/Spinner/Spinner.tsx
|
|
419
|
+
import { LoaderIcon } from "@bestow-ui/icons";
|
|
420
|
+
import { forwardRef as forwardRef8 } from "react";
|
|
421
|
+
|
|
299
422
|
// src/components/Spinner/Spinner.css.ts
|
|
300
|
-
import { createRuntimeFn as
|
|
301
|
-
var spinner =
|
|
423
|
+
import { createRuntimeFn as _7a4685 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
424
|
+
var spinner = /* @__PURE__ */ _7a4685({ defaultClassName: "_4b5tg40", variantClassNames: { color: { current: "_4b5tg41", primary: "_4b5tg42", neutral: "_4b5tg43", danger: "_4b5tg44" }, size: { sm: "_4b5tg45", md: "_4b5tg46", lg: "_4b5tg47" } }, defaultVariants: { color: "current", size: "md" }, compoundVariants: [] });
|
|
302
425
|
|
|
303
426
|
// src/components/Spinner/Spinner.tsx
|
|
304
|
-
import { jsx as
|
|
305
|
-
var Spinner = /* @__PURE__ */
|
|
306
|
-
const a11y =
|
|
307
|
-
return /* @__PURE__ */
|
|
308
|
-
/* @__PURE__ */
|
|
309
|
-
|
|
427
|
+
import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
428
|
+
var Spinner = /* @__PURE__ */ forwardRef8(function Spinner2({ size, color, label: label6 = "\uB85C\uB529 \uC911", className, ...rest }, ref) {
|
|
429
|
+
const a11y = label6 ? { role: "status" } : { "aria-hidden": true };
|
|
430
|
+
return /* @__PURE__ */ jsxs7("span", { ref, className: cx(spinner({ size, color }), className), ...a11y, ...rest, children: [
|
|
431
|
+
/* @__PURE__ */ jsx8(LoaderIcon, { size: "100%" }),
|
|
432
|
+
label6 && /* @__PURE__ */ jsx8("span", { className: visuallyHidden, children: label6 })
|
|
310
433
|
] });
|
|
311
434
|
});
|
|
312
435
|
|
|
313
436
|
// src/components/Button/Button.css.ts
|
|
314
|
-
import { createRuntimeFn as
|
|
315
|
-
var button =
|
|
316
|
-
var
|
|
437
|
+
import { createRuntimeFn as _7a4686 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
438
|
+
var button = /* @__PURE__ */ _7a4686({ 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: [] });
|
|
439
|
+
var icon3 = "xcekdai";
|
|
317
440
|
|
|
318
441
|
// src/components/Button/Button.tsx
|
|
319
|
-
import { jsx as
|
|
320
|
-
var Button = /* @__PURE__ */
|
|
442
|
+
import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
443
|
+
var Button = /* @__PURE__ */ forwardRef9(function Button2({
|
|
321
444
|
variant,
|
|
322
445
|
color,
|
|
323
446
|
size,
|
|
@@ -338,8 +461,8 @@ var Button = /* @__PURE__ */ forwardRef6(function Button2({
|
|
|
338
461
|
}
|
|
339
462
|
onClick?.(event);
|
|
340
463
|
};
|
|
341
|
-
const leading = loading ? /* @__PURE__ */
|
|
342
|
-
return /* @__PURE__ */
|
|
464
|
+
const leading = loading ? /* @__PURE__ */ jsx9(Spinner, { size: "sm", label: "" }) : startIcon;
|
|
465
|
+
return /* @__PURE__ */ jsxs8(
|
|
343
466
|
"button",
|
|
344
467
|
{
|
|
345
468
|
ref,
|
|
@@ -350,70 +473,70 @@ var Button = /* @__PURE__ */ forwardRef6(function Button2({
|
|
|
350
473
|
onClick: handleClick,
|
|
351
474
|
...rest,
|
|
352
475
|
children: [
|
|
353
|
-
leading && /* @__PURE__ */
|
|
476
|
+
leading && /* @__PURE__ */ jsx9("span", { className: icon3, children: leading }),
|
|
354
477
|
children,
|
|
355
|
-
endIcon && /* @__PURE__ */
|
|
478
|
+
endIcon && /* @__PURE__ */ jsx9("span", { className: icon3, children: endIcon })
|
|
356
479
|
]
|
|
357
480
|
}
|
|
358
481
|
);
|
|
359
482
|
});
|
|
360
483
|
|
|
361
484
|
// src/components/Card/Card.tsx
|
|
362
|
-
import { forwardRef as
|
|
485
|
+
import { forwardRef as forwardRef10 } from "react";
|
|
363
486
|
|
|
364
487
|
// src/components/Card/Card.css.ts
|
|
365
|
-
import { createRuntimeFn as
|
|
488
|
+
import { createRuntimeFn as _7a4687 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
366
489
|
var body = "dnuf1u9";
|
|
367
|
-
var card =
|
|
490
|
+
var card = /* @__PURE__ */ _7a4687({ defaultClassName: "dnuf1u0", variantClassNames: { variant: { outline: "dnuf1u1", elevated: "dnuf1u2", soft: "dnuf1u3" }, padding: { none: "dnuf1u4", sm: "dnuf1u5", md: "dnuf1u6", lg: "dnuf1u7" } }, defaultVariants: { variant: "outline", padding: "md" }, compoundVariants: [] });
|
|
368
491
|
var footer = "dnuf1ua";
|
|
369
492
|
var header2 = "dnuf1u8";
|
|
370
493
|
|
|
371
494
|
// src/components/Card/Card.tsx
|
|
372
|
-
import { jsx as
|
|
373
|
-
var Card = /* @__PURE__ */
|
|
374
|
-
return /* @__PURE__ */
|
|
495
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
496
|
+
var Card = /* @__PURE__ */ forwardRef10(function Card2({ variant, padding, as: Component = "div", className, ...rest }, ref) {
|
|
497
|
+
return /* @__PURE__ */ jsx10(Component, { ref, className: cx(card({ variant, padding }), className), ...rest });
|
|
375
498
|
});
|
|
376
|
-
var CardHeader = /* @__PURE__ */
|
|
377
|
-
return /* @__PURE__ */
|
|
499
|
+
var CardHeader = /* @__PURE__ */ forwardRef10(function CardHeader2({ className, ...rest }, ref) {
|
|
500
|
+
return /* @__PURE__ */ jsx10("div", { ref, className: cx(header2, className), ...rest });
|
|
378
501
|
});
|
|
379
|
-
var CardBody = /* @__PURE__ */
|
|
380
|
-
return /* @__PURE__ */
|
|
502
|
+
var CardBody = /* @__PURE__ */ forwardRef10(function CardBody2({ className, ...rest }, ref) {
|
|
503
|
+
return /* @__PURE__ */ jsx10("div", { ref, className: cx(body, className), ...rest });
|
|
381
504
|
});
|
|
382
|
-
var CardFooter = /* @__PURE__ */
|
|
383
|
-
return /* @__PURE__ */
|
|
505
|
+
var CardFooter = /* @__PURE__ */ forwardRef10(function CardFooter2({ className, ...rest }, ref) {
|
|
506
|
+
return /* @__PURE__ */ jsx10("div", { ref, className: cx(footer, className), ...rest });
|
|
384
507
|
});
|
|
385
508
|
|
|
386
509
|
// src/components/Checkbox/Checkbox.tsx
|
|
387
|
-
import { forwardRef as
|
|
510
|
+
import { forwardRef as forwardRef11, useEffect, useRef } from "react";
|
|
388
511
|
|
|
389
512
|
// src/utils/mergeRefs.ts
|
|
390
513
|
function mergeRefs(...refs) {
|
|
391
|
-
return (
|
|
514
|
+
return (value4) => {
|
|
392
515
|
for (const ref of refs) {
|
|
393
|
-
if (typeof ref === "function") ref(
|
|
394
|
-
else if (ref) ref.current =
|
|
516
|
+
if (typeof ref === "function") ref(value4);
|
|
517
|
+
else if (ref) ref.current = value4;
|
|
395
518
|
}
|
|
396
519
|
};
|
|
397
520
|
}
|
|
398
521
|
|
|
399
522
|
// src/components/Checkbox/Checkbox.css.ts
|
|
400
|
-
import { createRuntimeFn as
|
|
523
|
+
import { createRuntimeFn as _7a4688 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
401
524
|
var checkIcon = "_1y7mzsn8 _1y7mzsn7";
|
|
402
|
-
var control =
|
|
525
|
+
var control = /* @__PURE__ */ _7a4688({ defaultClassName: "_1y7mzsn3", variantClassNames: { size: { sm: "_1y7mzsn4", md: "_1y7mzsn5" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
403
526
|
var indeterminateIcon = "_1y7mzsn9 _1y7mzsn7";
|
|
404
527
|
var input = "_1y7mzsn6";
|
|
405
|
-
var root4 =
|
|
528
|
+
var root4 = /* @__PURE__ */ _7a4688({ defaultClassName: "_1y7mzsn0", variantClassNames: { size: { sm: "_1y7mzsn1", md: "_1y7mzsn2" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
406
529
|
|
|
407
530
|
// src/components/Checkbox/Checkbox.tsx
|
|
408
|
-
import { jsx as
|
|
409
|
-
var Checkbox = /* @__PURE__ */
|
|
531
|
+
import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
532
|
+
var Checkbox = /* @__PURE__ */ forwardRef11(function Checkbox2({ label: label6, size, indeterminate = false, invalid, disabled, className, ...rest }, ref) {
|
|
410
533
|
const innerRef = useRef(null);
|
|
411
534
|
useEffect(() => {
|
|
412
535
|
if (innerRef.current) innerRef.current.indeterminate = indeterminate;
|
|
413
536
|
}, [indeterminate]);
|
|
414
|
-
return /* @__PURE__ */
|
|
415
|
-
/* @__PURE__ */
|
|
416
|
-
/* @__PURE__ */
|
|
537
|
+
return /* @__PURE__ */ jsxs9("label", { className: cx(root4({ size }), className), "data-disabled": disabled || void 0, children: [
|
|
538
|
+
/* @__PURE__ */ jsxs9("span", { className: control({ size }), children: [
|
|
539
|
+
/* @__PURE__ */ jsx11(
|
|
417
540
|
"input",
|
|
418
541
|
{
|
|
419
542
|
ref: mergeRefs(innerRef, ref),
|
|
@@ -424,7 +547,7 @@ var Checkbox = /* @__PURE__ */ forwardRef8(function Checkbox2({ label: label4, s
|
|
|
424
547
|
...rest
|
|
425
548
|
}
|
|
426
549
|
),
|
|
427
|
-
/* @__PURE__ */
|
|
550
|
+
/* @__PURE__ */ jsx11("svg", { className: checkIcon, viewBox: "0 0 20 20", fill: "none", "aria-hidden": true, children: /* @__PURE__ */ jsx11(
|
|
428
551
|
"path",
|
|
429
552
|
{
|
|
430
553
|
d: "M5 10.5l3.2 3L15 7",
|
|
@@ -434,57 +557,417 @@ var Checkbox = /* @__PURE__ */ forwardRef8(function Checkbox2({ label: label4, s
|
|
|
434
557
|
strokeLinejoin: "round"
|
|
435
558
|
}
|
|
436
559
|
) }),
|
|
437
|
-
/* @__PURE__ */
|
|
560
|
+
/* @__PURE__ */ jsx11("svg", { className: indeterminateIcon, viewBox: "0 0 20 20", fill: "none", "aria-hidden": true, children: /* @__PURE__ */ jsx11("path", { d: "M6 10h8", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }) })
|
|
438
561
|
] }),
|
|
439
|
-
|
|
562
|
+
label6
|
|
563
|
+
] });
|
|
564
|
+
});
|
|
565
|
+
|
|
566
|
+
// src/components/Combobox/Combobox.tsx
|
|
567
|
+
import * as Popover from "@radix-ui/react-popover";
|
|
568
|
+
import {
|
|
569
|
+
forwardRef as forwardRef12,
|
|
570
|
+
useEffect as useEffect2,
|
|
571
|
+
useId,
|
|
572
|
+
useMemo as useMemo2,
|
|
573
|
+
useRef as useRef2,
|
|
574
|
+
useState
|
|
575
|
+
} from "react";
|
|
576
|
+
import { CheckIcon, ChevronDownIcon as ChevronDownIcon2 } from "@bestow-ui/icons";
|
|
577
|
+
|
|
578
|
+
// src/components/Input/Input.css.ts
|
|
579
|
+
import { createRuntimeFn as _7a4689 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
580
|
+
var adornment = "_19p5zvh6";
|
|
581
|
+
var field = "_19p5zvh7";
|
|
582
|
+
var fieldFullWidth = "_19p5zvh8";
|
|
583
|
+
var helperText = /* @__PURE__ */ _7a4689({ defaultClassName: "_19p5zvhb", variantClassNames: { error: { true: "_19p5zvhc" } }, defaultVariants: {}, compoundVariants: [] });
|
|
584
|
+
var input2 = "_19p5zvh5";
|
|
585
|
+
var label = "_19p5zvh9";
|
|
586
|
+
var requiredMark = "_19p5zvha";
|
|
587
|
+
var root5 = /* @__PURE__ */ _7a4689({ defaultClassName: "_19p5zvh0", variantClassNames: { size: { sm: "_19p5zvh1", md: "_19p5zvh2", lg: "_19p5zvh3" }, fullWidth: { true: "_19p5zvh4" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
588
|
+
|
|
589
|
+
// src/components/Select/Select.css.ts
|
|
590
|
+
var content3 = "_1kx81e83";
|
|
591
|
+
var icon4 = "_1kx81e82";
|
|
592
|
+
var item3 = "_1kx81e85";
|
|
593
|
+
var itemIndicator = "_1kx81e86";
|
|
594
|
+
var trigger2 = "_1kx81e80";
|
|
595
|
+
var value = "_1kx81e81";
|
|
596
|
+
var viewport = "_1kx81e84";
|
|
597
|
+
|
|
598
|
+
// src/components/Combobox/Combobox.css.ts
|
|
599
|
+
var content4 = "c2pbq71";
|
|
600
|
+
var empty = "c2pbq72";
|
|
601
|
+
var toggle = "c2pbq70";
|
|
602
|
+
|
|
603
|
+
// src/components/Combobox/Combobox.tsx
|
|
604
|
+
import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
605
|
+
var defaultFilter = (option2, query) => option2.label.toLowerCase().includes(query.trim().toLowerCase());
|
|
606
|
+
var Combobox = /* @__PURE__ */ forwardRef12(function Combobox2(props, ref) {
|
|
607
|
+
const {
|
|
608
|
+
options,
|
|
609
|
+
value: value4,
|
|
610
|
+
defaultValue,
|
|
611
|
+
onValueChange,
|
|
612
|
+
filter = defaultFilter,
|
|
613
|
+
emptyMessage = "\uACB0\uACFC\uAC00 \uC5C6\uC5B4\uC694",
|
|
614
|
+
placeholder,
|
|
615
|
+
label: label6,
|
|
616
|
+
helperText: helperText3,
|
|
617
|
+
error,
|
|
618
|
+
size,
|
|
619
|
+
fullWidth,
|
|
620
|
+
disabled,
|
|
621
|
+
required,
|
|
622
|
+
name,
|
|
623
|
+
id,
|
|
624
|
+
"aria-label": ariaLabel,
|
|
625
|
+
toggleLabel = "\uBAA9\uB85D \uC5F4\uAE30",
|
|
626
|
+
className
|
|
627
|
+
} = props;
|
|
628
|
+
const generatedId = useId();
|
|
629
|
+
const inputId = id ?? generatedId;
|
|
630
|
+
const labelId = `${inputId}-label`;
|
|
631
|
+
const listId = `${inputId}-listbox`;
|
|
632
|
+
const helperId = helperText3 ? `${inputId}-helper` : void 0;
|
|
633
|
+
const optionId = (index) => `${inputId}-option-${index}`;
|
|
634
|
+
const portal2 = usePortalProps();
|
|
635
|
+
const inputRef = useRef2(null);
|
|
636
|
+
const anchorRef = useRef2(null);
|
|
637
|
+
const isControlled = "value" in props;
|
|
638
|
+
const [innerValue, setInnerValue] = useState(defaultValue);
|
|
639
|
+
const selectedValue = isControlled ? value4 : innerValue;
|
|
640
|
+
const selectedOption = options.find((o) => o.value === selectedValue);
|
|
641
|
+
const [open, setOpen] = useState(false);
|
|
642
|
+
const [query, setQuery] = useState(null);
|
|
643
|
+
const [activeIndex, setActiveIndex] = useState(-1);
|
|
644
|
+
const filtered = useMemo2(() => query ? options.filter((o) => filter(o, query)) : options, [options, filter, query]);
|
|
645
|
+
const inputText = query ?? selectedOption?.label ?? "";
|
|
646
|
+
const firstEnabled = (list4, from = 0, step = 1) => {
|
|
647
|
+
for (let i = from; i >= 0 && i < list4.length; i += step) if (!list4[i].disabled) return i;
|
|
648
|
+
return -1;
|
|
649
|
+
};
|
|
650
|
+
const openList = (list4 = filtered, preferLast = false) => {
|
|
651
|
+
setOpen(true);
|
|
652
|
+
const selectedIndex = list4.findIndex((o) => o.value === selectedValue);
|
|
653
|
+
setActiveIndex(
|
|
654
|
+
selectedIndex >= 0 && !list4[selectedIndex].disabled ? selectedIndex : preferLast ? firstEnabled(list4, list4.length - 1, -1) : firstEnabled(list4)
|
|
655
|
+
);
|
|
656
|
+
};
|
|
657
|
+
const close2 = () => {
|
|
658
|
+
setOpen(false);
|
|
659
|
+
setQuery(null);
|
|
660
|
+
setActiveIndex(-1);
|
|
661
|
+
};
|
|
662
|
+
const select = (option2) => {
|
|
663
|
+
if (option2.disabled) return;
|
|
664
|
+
if (!isControlled) setInnerValue(option2.value);
|
|
665
|
+
if (option2.value !== selectedValue) onValueChange?.(option2.value);
|
|
666
|
+
close2();
|
|
667
|
+
};
|
|
668
|
+
const move = (step) => {
|
|
669
|
+
const start = activeIndex < 0 ? step === 1 ? 0 : filtered.length - 1 : activeIndex + step;
|
|
670
|
+
const next = firstEnabled(filtered, start, step);
|
|
671
|
+
if (next >= 0) setActiveIndex(next);
|
|
672
|
+
};
|
|
673
|
+
const handleChange = (event) => {
|
|
674
|
+
const nextQuery = event.target.value;
|
|
675
|
+
const nextList = nextQuery ? options.filter((o) => filter(o, nextQuery)) : options;
|
|
676
|
+
setQuery(nextQuery);
|
|
677
|
+
setOpen(true);
|
|
678
|
+
setActiveIndex(firstEnabled(nextList));
|
|
679
|
+
};
|
|
680
|
+
const handleKeyDown = (event) => {
|
|
681
|
+
switch (event.key) {
|
|
682
|
+
case "ArrowDown":
|
|
683
|
+
event.preventDefault();
|
|
684
|
+
if (!open) openList();
|
|
685
|
+
else move(1);
|
|
686
|
+
break;
|
|
687
|
+
case "ArrowUp":
|
|
688
|
+
event.preventDefault();
|
|
689
|
+
if (!open) openList(filtered, true);
|
|
690
|
+
else move(-1);
|
|
691
|
+
break;
|
|
692
|
+
case "Enter":
|
|
693
|
+
if (open) {
|
|
694
|
+
event.preventDefault();
|
|
695
|
+
const option2 = filtered[activeIndex];
|
|
696
|
+
if (option2) select(option2);
|
|
697
|
+
}
|
|
698
|
+
break;
|
|
699
|
+
case "Escape":
|
|
700
|
+
if (open) {
|
|
701
|
+
event.preventDefault();
|
|
702
|
+
close2();
|
|
703
|
+
}
|
|
704
|
+
break;
|
|
705
|
+
case "Tab":
|
|
706
|
+
if (open) close2();
|
|
707
|
+
break;
|
|
708
|
+
}
|
|
709
|
+
};
|
|
710
|
+
useEffect2(() => {
|
|
711
|
+
if (!open || activeIndex < 0) return;
|
|
712
|
+
document.getElementById(optionId(activeIndex))?.scrollIntoView?.({ block: "nearest" });
|
|
713
|
+
}, [open, activeIndex]);
|
|
714
|
+
const hasOptions = filtered.length > 0;
|
|
715
|
+
return /* @__PURE__ */ jsxs10("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
716
|
+
label6 && /* @__PURE__ */ jsxs10("label", { id: labelId, htmlFor: inputId, className: label, children: [
|
|
717
|
+
label6,
|
|
718
|
+
required && /* @__PURE__ */ jsx12("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
719
|
+
] }),
|
|
720
|
+
/* @__PURE__ */ jsxs10(Popover.Root, { open: open && !disabled, onOpenChange: (next) => next ? openList() : close2(), children: [
|
|
721
|
+
/* @__PURE__ */ jsx12(Popover.Anchor, { asChild: true, children: /* @__PURE__ */ jsxs10(
|
|
722
|
+
"div",
|
|
723
|
+
{
|
|
724
|
+
ref: anchorRef,
|
|
725
|
+
className: cx(root5({ size, fullWidth }), className),
|
|
726
|
+
"data-invalid": error || void 0,
|
|
727
|
+
"data-disabled": disabled || void 0,
|
|
728
|
+
children: [
|
|
729
|
+
/* @__PURE__ */ jsx12(
|
|
730
|
+
"input",
|
|
731
|
+
{
|
|
732
|
+
ref: mergeRefs(ref, inputRef),
|
|
733
|
+
id: inputId,
|
|
734
|
+
type: "text",
|
|
735
|
+
role: "combobox",
|
|
736
|
+
"aria-expanded": open,
|
|
737
|
+
"aria-controls": open && hasOptions ? listId : void 0,
|
|
738
|
+
"aria-autocomplete": "list",
|
|
739
|
+
"aria-activedescendant": open && activeIndex >= 0 ? optionId(activeIndex) : void 0,
|
|
740
|
+
"aria-label": label6 ? void 0 : ariaLabel,
|
|
741
|
+
"aria-invalid": error || void 0,
|
|
742
|
+
"aria-required": required || void 0,
|
|
743
|
+
"aria-describedby": helperId,
|
|
744
|
+
autoComplete: "off",
|
|
745
|
+
placeholder,
|
|
746
|
+
disabled,
|
|
747
|
+
value: inputText,
|
|
748
|
+
onChange: handleChange,
|
|
749
|
+
onKeyDown: handleKeyDown,
|
|
750
|
+
onBlur: () => {
|
|
751
|
+
if (open) close2();
|
|
752
|
+
},
|
|
753
|
+
className: input2
|
|
754
|
+
}
|
|
755
|
+
),
|
|
756
|
+
/* @__PURE__ */ jsx12(
|
|
757
|
+
"button",
|
|
758
|
+
{
|
|
759
|
+
type: "button",
|
|
760
|
+
tabIndex: -1,
|
|
761
|
+
"aria-label": toggleLabel,
|
|
762
|
+
"aria-expanded": open,
|
|
763
|
+
disabled,
|
|
764
|
+
className: toggle,
|
|
765
|
+
onMouseDown: (event) => event.preventDefault(),
|
|
766
|
+
onClick: () => {
|
|
767
|
+
if (open) close2();
|
|
768
|
+
else openList(options);
|
|
769
|
+
inputRef.current?.focus();
|
|
770
|
+
},
|
|
771
|
+
children: /* @__PURE__ */ jsx12(ChevronDownIcon2, { size: 16 })
|
|
772
|
+
}
|
|
773
|
+
)
|
|
774
|
+
]
|
|
775
|
+
}
|
|
776
|
+
) }),
|
|
777
|
+
/* @__PURE__ */ jsx12(Popover.Portal, { children: /* @__PURE__ */ jsx12(
|
|
778
|
+
Popover.Content,
|
|
779
|
+
{
|
|
780
|
+
role: "presentation",
|
|
781
|
+
align: "start",
|
|
782
|
+
sideOffset: 4,
|
|
783
|
+
collisionPadding: 8,
|
|
784
|
+
className: cx(portal2.className, content4),
|
|
785
|
+
style: portal2.style,
|
|
786
|
+
onOpenAutoFocus: (event) => event.preventDefault(),
|
|
787
|
+
onCloseAutoFocus: (event) => event.preventDefault(),
|
|
788
|
+
onMouseDown: (event) => event.preventDefault(),
|
|
789
|
+
onInteractOutside: (event) => {
|
|
790
|
+
if (anchorRef.current?.contains(event.target)) event.preventDefault();
|
|
791
|
+
},
|
|
792
|
+
children: hasOptions ? /* @__PURE__ */ jsx12(
|
|
793
|
+
"div",
|
|
794
|
+
{
|
|
795
|
+
id: listId,
|
|
796
|
+
role: "listbox",
|
|
797
|
+
"aria-labelledby": label6 ? labelId : void 0,
|
|
798
|
+
"aria-label": label6 ? void 0 : ariaLabel,
|
|
799
|
+
children: filtered.map((option2, index) => {
|
|
800
|
+
const isSelected = option2.value === selectedValue;
|
|
801
|
+
return (
|
|
802
|
+
// aria-activedescendant 패턴: 포커스·키보드는 입력창이 맡고 항목은 포커스를 받지 않는다 (WAI-ARIA combobox)
|
|
803
|
+
// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/interactive-supports-focus
|
|
804
|
+
/* @__PURE__ */ jsxs10(
|
|
805
|
+
"div",
|
|
806
|
+
{
|
|
807
|
+
id: optionId(index),
|
|
808
|
+
role: "option",
|
|
809
|
+
"aria-selected": isSelected,
|
|
810
|
+
"aria-disabled": option2.disabled || void 0,
|
|
811
|
+
"data-highlighted": index === activeIndex ? "" : void 0,
|
|
812
|
+
"data-state": isSelected ? "checked" : "unchecked",
|
|
813
|
+
"data-disabled": option2.disabled ? "" : void 0,
|
|
814
|
+
className: item3,
|
|
815
|
+
onMouseDown: (event) => event.preventDefault(),
|
|
816
|
+
onMouseMove: () => !option2.disabled && setActiveIndex(index),
|
|
817
|
+
onClick: () => select(option2),
|
|
818
|
+
children: [
|
|
819
|
+
option2.label,
|
|
820
|
+
isSelected && /* @__PURE__ */ jsx12("span", { className: itemIndicator, "aria-hidden": true, children: /* @__PURE__ */ jsx12(CheckIcon, { size: 16 }) })
|
|
821
|
+
]
|
|
822
|
+
},
|
|
823
|
+
option2.value
|
|
824
|
+
)
|
|
825
|
+
);
|
|
826
|
+
})
|
|
827
|
+
}
|
|
828
|
+
) : /* @__PURE__ */ jsx12("div", { className: empty, role: "status", children: emptyMessage })
|
|
829
|
+
}
|
|
830
|
+
) })
|
|
831
|
+
] }),
|
|
832
|
+
name && /* @__PURE__ */ jsx12("input", { type: "hidden", name, value: selectedValue ?? "" }),
|
|
833
|
+
helperText3 && /* @__PURE__ */ jsx12("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
440
834
|
] });
|
|
441
835
|
});
|
|
442
836
|
|
|
443
837
|
// src/components/Divider/Divider.tsx
|
|
444
|
-
import { forwardRef as
|
|
838
|
+
import { forwardRef as forwardRef13 } from "react";
|
|
445
839
|
|
|
446
840
|
// src/components/Divider/Divider.css.ts
|
|
447
|
-
import { createRuntimeFn as
|
|
448
|
-
var divider =
|
|
841
|
+
import { createRuntimeFn as _7a46810 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
842
|
+
var divider = /* @__PURE__ */ _7a46810({ defaultClassName: "_1t3gq8v0", variantClassNames: { orientation: { horizontal: "_1t3gq8v1", vertical: "_1t3gq8v2" } }, defaultVariants: { orientation: "horizontal" }, compoundVariants: [] });
|
|
449
843
|
var labeled = "_1t3gq8v3";
|
|
450
844
|
var line = "_1t3gq8v4";
|
|
451
845
|
|
|
452
846
|
// src/components/Divider/Divider.tsx
|
|
453
|
-
import { jsx as
|
|
454
|
-
var Divider = /* @__PURE__ */
|
|
847
|
+
import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
848
|
+
var Divider = /* @__PURE__ */ forwardRef13(function Divider2({ orientation = "horizontal", decorative, className, children, ...rest }, ref) {
|
|
455
849
|
if (children && orientation === "horizontal") {
|
|
456
|
-
return /* @__PURE__ */
|
|
457
|
-
/* @__PURE__ */
|
|
850
|
+
return /* @__PURE__ */ jsxs11("div", { ref, className: cx(labeled, className), ...rest, children: [
|
|
851
|
+
/* @__PURE__ */ jsx13("span", { className: line, "aria-hidden": true }),
|
|
458
852
|
children,
|
|
459
|
-
/* @__PURE__ */
|
|
853
|
+
/* @__PURE__ */ jsx13("span", { className: line, "aria-hidden": true })
|
|
460
854
|
] });
|
|
461
855
|
}
|
|
462
856
|
const a11y = decorative ? { role: "none" } : { role: "separator", "aria-orientation": orientation === "vertical" ? "vertical" : void 0 };
|
|
463
|
-
return /* @__PURE__ */
|
|
857
|
+
return /* @__PURE__ */ jsx13("div", { ref, className: cx(divider({ orientation }), className), ...a11y, ...rest });
|
|
464
858
|
});
|
|
465
859
|
|
|
860
|
+
// src/components/Drawer/Drawer.tsx
|
|
861
|
+
import * as Dialog from "@radix-ui/react-dialog";
|
|
862
|
+
import { XIcon as XIcon2 } from "@bestow-ui/icons";
|
|
863
|
+
|
|
864
|
+
// src/components/IconButton/IconButton.tsx
|
|
865
|
+
import { forwardRef as forwardRef14 } from "react";
|
|
866
|
+
|
|
867
|
+
// src/components/IconButton/IconButton.css.ts
|
|
868
|
+
import { createRuntimeFn as _7a46811 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
869
|
+
var iconButton = /* @__PURE__ */ _7a46811({ defaultClassName: "ip9et20", variantClassNames: { size: { sm: "ip9et21", md: "ip9et22", lg: "ip9et23" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
870
|
+
|
|
871
|
+
// src/components/IconButton/IconButton.tsx
|
|
872
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
873
|
+
var IconButton = /* @__PURE__ */ forwardRef14(function IconButton2({ variant = "ghost", color = "neutral", size, loading, className, children, ...rest }, ref) {
|
|
874
|
+
return /* @__PURE__ */ jsx14(
|
|
875
|
+
Button,
|
|
876
|
+
{
|
|
877
|
+
ref,
|
|
878
|
+
variant,
|
|
879
|
+
color,
|
|
880
|
+
size,
|
|
881
|
+
loading,
|
|
882
|
+
className: cx(iconButton({ size }), className),
|
|
883
|
+
...rest,
|
|
884
|
+
children: !loading && children
|
|
885
|
+
}
|
|
886
|
+
);
|
|
887
|
+
});
|
|
888
|
+
|
|
889
|
+
// src/components/Drawer/Drawer.css.ts
|
|
890
|
+
import { createRuntimeFn as _7a46812 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
891
|
+
var body2 = "nmobyvy";
|
|
892
|
+
var closeButton2 = "nmobyvx";
|
|
893
|
+
var content5 = /* @__PURE__ */ _7a46812({ defaultClassName: "nmobyv9", variantClassNames: { side: { right: "nmobyva", left: "nmobyvb", top: "nmobyvc", bottom: "nmobyvd" }, size: { sm: "nmobyve", md: "nmobyvf", lg: "nmobyvg" } }, defaultVariants: { side: "right", size: "md" }, compoundVariants: [[{ side: "right", size: "sm" }, "nmobyvh"], [{ side: "right", size: "md" }, "nmobyvi"], [{ side: "right", size: "lg" }, "nmobyvj"], [{ side: "left", size: "sm" }, "nmobyvk"], [{ side: "left", size: "md" }, "nmobyvl"], [{ side: "left", size: "lg" }, "nmobyvm"], [{ side: "top", size: "sm" }, "nmobyvn"], [{ side: "top", size: "md" }, "nmobyvo"], [{ side: "top", size: "lg" }, "nmobyvp"], [{ side: "bottom", size: "sm" }, "nmobyvq"], [{ side: "bottom", size: "md" }, "nmobyvr"], [{ side: "bottom", size: "lg" }, "nmobyvs"]] });
|
|
894
|
+
var description2 = "nmobyvw";
|
|
895
|
+
var footer2 = "nmobyvz";
|
|
896
|
+
var header3 = "nmobyvt";
|
|
897
|
+
var headings = "nmobyvu";
|
|
898
|
+
var overlay = "nmobyv0";
|
|
899
|
+
var title2 = "nmobyvv";
|
|
900
|
+
|
|
901
|
+
// src/components/Drawer/Drawer.tsx
|
|
902
|
+
import { jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
903
|
+
function Drawer({
|
|
904
|
+
open,
|
|
905
|
+
defaultOpen,
|
|
906
|
+
onOpenChange,
|
|
907
|
+
trigger: trigger4,
|
|
908
|
+
title: title6,
|
|
909
|
+
description: description6,
|
|
910
|
+
children,
|
|
911
|
+
footer: footer6,
|
|
912
|
+
side,
|
|
913
|
+
size,
|
|
914
|
+
hideCloseButton = false,
|
|
915
|
+
closeOnOverlayClick = true,
|
|
916
|
+
className
|
|
917
|
+
}) {
|
|
918
|
+
const portal2 = usePortalProps();
|
|
919
|
+
return /* @__PURE__ */ jsxs12(Dialog.Root, { open, defaultOpen, onOpenChange, children: [
|
|
920
|
+
trigger4 && /* @__PURE__ */ jsx15(Dialog.Trigger, { asChild: true, children: trigger4 }),
|
|
921
|
+
/* @__PURE__ */ jsxs12(Dialog.Portal, { children: [
|
|
922
|
+
/* @__PURE__ */ jsx15(Dialog.Overlay, { className: cx(portal2.className, overlay), style: portal2.style }),
|
|
923
|
+
/* @__PURE__ */ jsxs12(
|
|
924
|
+
Dialog.Content,
|
|
925
|
+
{
|
|
926
|
+
className: cx(portal2.className, content5({ side, size }), className),
|
|
927
|
+
style: portal2.style,
|
|
928
|
+
"data-side": side ?? "right",
|
|
929
|
+
onPointerDownOutside: closeOnOverlayClick ? void 0 : (event) => event.preventDefault(),
|
|
930
|
+
...description6 ? {} : { "aria-describedby": void 0 },
|
|
931
|
+
children: [
|
|
932
|
+
/* @__PURE__ */ jsxs12("div", { className: header3, children: [
|
|
933
|
+
/* @__PURE__ */ jsxs12("div", { className: headings, children: [
|
|
934
|
+
/* @__PURE__ */ jsx15(Dialog.Title, { className: title2, children: title6 }),
|
|
935
|
+
description6 && /* @__PURE__ */ jsx15(Dialog.Description, { className: description2, children: description6 })
|
|
936
|
+
] }),
|
|
937
|
+
!hideCloseButton && /* @__PURE__ */ jsx15(Dialog.Close, { asChild: true, children: /* @__PURE__ */ jsx15(IconButton, { "aria-label": "\uB2EB\uAE30", size: "sm", className: closeButton2, children: /* @__PURE__ */ jsx15(XIcon2, {}) }) })
|
|
938
|
+
] }),
|
|
939
|
+
children && /* @__PURE__ */ jsx15("div", { className: body2, children }),
|
|
940
|
+
footer6 && /* @__PURE__ */ jsx15("div", { className: footer2, children: footer6 })
|
|
941
|
+
]
|
|
942
|
+
}
|
|
943
|
+
)
|
|
944
|
+
] })
|
|
945
|
+
] });
|
|
946
|
+
}
|
|
947
|
+
var DrawerClose = Dialog.Close;
|
|
948
|
+
|
|
466
949
|
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
467
950
|
import * as RadixMenu from "@radix-ui/react-dropdown-menu";
|
|
468
|
-
import { forwardRef as
|
|
951
|
+
import { forwardRef as forwardRef15 } from "react";
|
|
469
952
|
|
|
470
953
|
// src/components/DropdownMenu/DropdownMenu.css.ts
|
|
471
|
-
var
|
|
954
|
+
var content6 = "_1d7ahux0";
|
|
472
955
|
var danger = "_1d7ahux2";
|
|
473
|
-
var
|
|
474
|
-
var
|
|
475
|
-
var
|
|
476
|
-
var
|
|
956
|
+
var icon5 = "_1d7ahux3";
|
|
957
|
+
var item4 = "_1d7ahux1";
|
|
958
|
+
var label2 = "_1d7ahux5";
|
|
959
|
+
var separator2 = "_1d7ahux6";
|
|
477
960
|
var shortcut = "_1d7ahux4";
|
|
478
961
|
|
|
479
962
|
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
480
|
-
import { jsx as
|
|
963
|
+
import { jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
481
964
|
var DropdownMenu = RadixMenu.Root;
|
|
482
965
|
var DropdownMenuTrigger = RadixMenu.Trigger;
|
|
483
966
|
var DropdownMenuGroup = RadixMenu.Group;
|
|
484
|
-
var DropdownMenuContent = /* @__PURE__ */
|
|
967
|
+
var DropdownMenuContent = /* @__PURE__ */ forwardRef15(
|
|
485
968
|
function DropdownMenuContent2({ className, style, side = "bottom", align = "start", sideOffset = 4, collisionPadding = 8, ...rest }, ref) {
|
|
486
969
|
const portal2 = usePortalProps();
|
|
487
|
-
return /* @__PURE__ */
|
|
970
|
+
return /* @__PURE__ */ jsx16(RadixMenu.Portal, { children: /* @__PURE__ */ jsx16(
|
|
488
971
|
RadixMenu.Content,
|
|
489
972
|
{
|
|
490
973
|
ref,
|
|
@@ -492,59 +975,46 @@ var DropdownMenuContent = /* @__PURE__ */ forwardRef10(
|
|
|
492
975
|
align,
|
|
493
976
|
sideOffset,
|
|
494
977
|
collisionPadding,
|
|
495
|
-
className: cx(portal2.className,
|
|
978
|
+
className: cx(portal2.className, content6, className),
|
|
496
979
|
style: { ...portal2.style, ...style },
|
|
497
980
|
...rest
|
|
498
981
|
}
|
|
499
982
|
) });
|
|
500
983
|
}
|
|
501
984
|
);
|
|
502
|
-
var DropdownMenuItem = /* @__PURE__ */
|
|
503
|
-
function DropdownMenuItem2({ icon:
|
|
504
|
-
return /* @__PURE__ */
|
|
505
|
-
|
|
985
|
+
var DropdownMenuItem = /* @__PURE__ */ forwardRef15(
|
|
986
|
+
function DropdownMenuItem2({ icon: icon6, shortcut: shortcut2, color = "default", className, children, ...rest }, ref) {
|
|
987
|
+
return /* @__PURE__ */ jsxs13(RadixMenu.Item, { ref, className: cx(item4, color === "danger" && danger, className), ...rest, children: [
|
|
988
|
+
icon6 && /* @__PURE__ */ jsx16("span", { className: icon5, "aria-hidden": true, children: icon6 }),
|
|
506
989
|
children,
|
|
507
|
-
shortcut2 && /* @__PURE__ */
|
|
990
|
+
shortcut2 && /* @__PURE__ */ jsx16("span", { className: shortcut, "aria-hidden": true, children: shortcut2 })
|
|
508
991
|
] });
|
|
509
992
|
}
|
|
510
993
|
);
|
|
511
|
-
var DropdownMenuLabel = /* @__PURE__ */
|
|
994
|
+
var DropdownMenuLabel = /* @__PURE__ */ forwardRef15(
|
|
512
995
|
function DropdownMenuLabel2({ className, ...rest }, ref) {
|
|
513
|
-
return /* @__PURE__ */
|
|
996
|
+
return /* @__PURE__ */ jsx16(RadixMenu.Label, { ref, className: cx(label2, className), ...rest });
|
|
514
997
|
}
|
|
515
998
|
);
|
|
516
|
-
var DropdownMenuSeparator = /* @__PURE__ */
|
|
999
|
+
var DropdownMenuSeparator = /* @__PURE__ */ forwardRef15(
|
|
517
1000
|
function DropdownMenuSeparator2({ className, ...rest }, ref) {
|
|
518
|
-
return /* @__PURE__ */
|
|
1001
|
+
return /* @__PURE__ */ jsx16(RadixMenu.Separator, { ref, className: cx(separator2, className), ...rest });
|
|
519
1002
|
}
|
|
520
1003
|
);
|
|
521
1004
|
|
|
522
1005
|
// src/components/Input/Input.tsx
|
|
523
|
-
import { forwardRef as
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
var adornment = "_19p5zvh6";
|
|
528
|
-
var field = "_19p5zvh7";
|
|
529
|
-
var fieldFullWidth = "_19p5zvh8";
|
|
530
|
-
var helperText = _7a4688({ defaultClassName: "_19p5zvhb", variantClassNames: { error: { true: "_19p5zvhc" } }, defaultVariants: {}, compoundVariants: [] });
|
|
531
|
-
var input2 = "_19p5zvh5";
|
|
532
|
-
var label2 = "_19p5zvh9";
|
|
533
|
-
var requiredMark = "_19p5zvha";
|
|
534
|
-
var root5 = _7a4688({ defaultClassName: "_19p5zvh0", variantClassNames: { size: { sm: "_19p5zvh1", md: "_19p5zvh2", lg: "_19p5zvh3" }, fullWidth: { true: "_19p5zvh4" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
535
|
-
|
|
536
|
-
// src/components/Input/Input.tsx
|
|
537
|
-
import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
538
|
-
var Input = /* @__PURE__ */ forwardRef11(function Input2({ size, invalid, fullWidth, startAdornment, endAdornment, rootClassName, className, disabled, ...rest }, ref) {
|
|
539
|
-
return /* @__PURE__ */ jsxs9(
|
|
1006
|
+
import { forwardRef as forwardRef16 } from "react";
|
|
1007
|
+
import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1008
|
+
var Input = /* @__PURE__ */ forwardRef16(function Input2({ size, invalid, fullWidth, startAdornment, endAdornment, rootClassName, className, disabled, ...rest }, ref) {
|
|
1009
|
+
return /* @__PURE__ */ jsxs14(
|
|
540
1010
|
"div",
|
|
541
1011
|
{
|
|
542
1012
|
className: cx(root5({ size, fullWidth }), rootClassName),
|
|
543
1013
|
"data-invalid": invalid || void 0,
|
|
544
1014
|
"data-disabled": disabled || void 0,
|
|
545
1015
|
children: [
|
|
546
|
-
startAdornment && /* @__PURE__ */
|
|
547
|
-
/* @__PURE__ */
|
|
1016
|
+
startAdornment && /* @__PURE__ */ jsx17("span", { className: adornment, children: startAdornment }),
|
|
1017
|
+
/* @__PURE__ */ jsx17(
|
|
548
1018
|
"input",
|
|
549
1019
|
{
|
|
550
1020
|
ref,
|
|
@@ -554,25 +1024,25 @@ var Input = /* @__PURE__ */ forwardRef11(function Input2({ size, invalid, fullWi
|
|
|
554
1024
|
...rest
|
|
555
1025
|
}
|
|
556
1026
|
),
|
|
557
|
-
endAdornment && /* @__PURE__ */
|
|
1027
|
+
endAdornment && /* @__PURE__ */ jsx17("span", { className: adornment, children: endAdornment })
|
|
558
1028
|
]
|
|
559
1029
|
}
|
|
560
1030
|
);
|
|
561
1031
|
});
|
|
562
1032
|
|
|
563
1033
|
// src/components/Input/TextField.tsx
|
|
564
|
-
import { forwardRef as
|
|
565
|
-
import { jsx as
|
|
566
|
-
var TextField = /* @__PURE__ */
|
|
567
|
-
const generatedId =
|
|
1034
|
+
import { forwardRef as forwardRef17, useId as useId2 } from "react";
|
|
1035
|
+
import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1036
|
+
var TextField = /* @__PURE__ */ forwardRef17(function TextField2({ label: label6, helperText: helperText3, error, required, fullWidth, id, "aria-describedby": ariaDescribedBy, ...rest }, ref) {
|
|
1037
|
+
const generatedId = useId2();
|
|
568
1038
|
const inputId = id ?? generatedId;
|
|
569
|
-
const helperId =
|
|
570
|
-
return /* @__PURE__ */
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
required && /* @__PURE__ */
|
|
1039
|
+
const helperId = helperText3 ? `${inputId}-helper` : void 0;
|
|
1040
|
+
return /* @__PURE__ */ jsxs15("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
1041
|
+
label6 && /* @__PURE__ */ jsxs15("label", { htmlFor: inputId, className: label, children: [
|
|
1042
|
+
label6,
|
|
1043
|
+
required && /* @__PURE__ */ jsx18("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
574
1044
|
] }),
|
|
575
|
-
/* @__PURE__ */
|
|
1045
|
+
/* @__PURE__ */ jsx18(
|
|
576
1046
|
Input,
|
|
577
1047
|
{
|
|
578
1048
|
ref,
|
|
@@ -584,75 +1054,75 @@ var TextField = /* @__PURE__ */ forwardRef12(function TextField2({ label: label4
|
|
|
584
1054
|
...rest
|
|
585
1055
|
}
|
|
586
1056
|
),
|
|
587
|
-
|
|
1057
|
+
helperText3 && /* @__PURE__ */ jsx18("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
588
1058
|
] });
|
|
589
1059
|
});
|
|
590
1060
|
|
|
591
1061
|
// src/components/Modal/Modal.tsx
|
|
592
|
-
import * as
|
|
593
|
-
import { XIcon } from "@bestow-ui/icons";
|
|
1062
|
+
import * as Dialog2 from "@radix-ui/react-dialog";
|
|
1063
|
+
import { XIcon as XIcon3 } from "@bestow-ui/icons";
|
|
594
1064
|
|
|
595
1065
|
// src/components/Modal/Modal.css.ts
|
|
596
|
-
import { createRuntimeFn as
|
|
597
|
-
var
|
|
598
|
-
var
|
|
599
|
-
var
|
|
600
|
-
var
|
|
601
|
-
var
|
|
602
|
-
var
|
|
603
|
-
var
|
|
604
|
-
var
|
|
605
|
-
var
|
|
1066
|
+
import { createRuntimeFn as _7a46813 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
1067
|
+
var body3 = "_1pdsmv0a";
|
|
1068
|
+
var closeButton3 = "_1pdsmv09";
|
|
1069
|
+
var content7 = /* @__PURE__ */ _7a46813({ defaultClassName: "_1pdsmv01", variantClassNames: { size: { sm: "_1pdsmv02", md: "_1pdsmv03", lg: "_1pdsmv04" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1070
|
+
var description3 = "_1pdsmv08";
|
|
1071
|
+
var footer3 = "_1pdsmv0b";
|
|
1072
|
+
var header4 = "_1pdsmv05";
|
|
1073
|
+
var headings2 = "_1pdsmv06";
|
|
1074
|
+
var overlay2 = "_1pdsmv00";
|
|
1075
|
+
var title3 = "_1pdsmv07";
|
|
606
1076
|
|
|
607
1077
|
// src/components/Modal/Modal.tsx
|
|
608
|
-
import { jsx as
|
|
1078
|
+
import { jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
609
1079
|
function Modal({
|
|
610
1080
|
open,
|
|
611
1081
|
defaultOpen,
|
|
612
1082
|
onOpenChange,
|
|
613
1083
|
trigger: trigger4,
|
|
614
|
-
title:
|
|
615
|
-
description:
|
|
1084
|
+
title: title6,
|
|
1085
|
+
description: description6,
|
|
616
1086
|
children,
|
|
617
|
-
footer:
|
|
1087
|
+
footer: footer6,
|
|
618
1088
|
size,
|
|
619
1089
|
hideCloseButton = false,
|
|
620
1090
|
closeOnOverlayClick = true,
|
|
621
1091
|
className
|
|
622
1092
|
}) {
|
|
623
1093
|
const portal2 = usePortalProps();
|
|
624
|
-
return /* @__PURE__ */
|
|
625
|
-
trigger4 && /* @__PURE__ */
|
|
626
|
-
/* @__PURE__ */
|
|
627
|
-
/* @__PURE__ */
|
|
628
|
-
/* @__PURE__ */
|
|
629
|
-
|
|
1094
|
+
return /* @__PURE__ */ jsxs16(Dialog2.Root, { open, defaultOpen, onOpenChange, children: [
|
|
1095
|
+
trigger4 && /* @__PURE__ */ jsx19(Dialog2.Trigger, { asChild: true, children: trigger4 }),
|
|
1096
|
+
/* @__PURE__ */ jsxs16(Dialog2.Portal, { children: [
|
|
1097
|
+
/* @__PURE__ */ jsx19(Dialog2.Overlay, { className: cx(portal2.className, overlay2), style: portal2.style }),
|
|
1098
|
+
/* @__PURE__ */ jsxs16(
|
|
1099
|
+
Dialog2.Content,
|
|
630
1100
|
{
|
|
631
|
-
className: cx(portal2.className,
|
|
1101
|
+
className: cx(portal2.className, content7({ size }), className),
|
|
632
1102
|
style: portal2.style,
|
|
633
1103
|
onPointerDownOutside: closeOnOverlayClick ? void 0 : (event) => event.preventDefault(),
|
|
634
|
-
...
|
|
1104
|
+
...description6 ? {} : { "aria-describedby": void 0 },
|
|
635
1105
|
children: [
|
|
636
|
-
/* @__PURE__ */
|
|
637
|
-
/* @__PURE__ */
|
|
638
|
-
/* @__PURE__ */
|
|
639
|
-
|
|
1106
|
+
/* @__PURE__ */ jsxs16("div", { className: header4, children: [
|
|
1107
|
+
/* @__PURE__ */ jsxs16("div", { className: headings2, children: [
|
|
1108
|
+
/* @__PURE__ */ jsx19(Dialog2.Title, { className: title3, children: title6 }),
|
|
1109
|
+
description6 && /* @__PURE__ */ jsx19(Dialog2.Description, { className: description3, children: description6 })
|
|
640
1110
|
] }),
|
|
641
|
-
!hideCloseButton && /* @__PURE__ */
|
|
1111
|
+
!hideCloseButton && /* @__PURE__ */ jsx19(Dialog2.Close, { className: closeButton3, "aria-label": "\uB2EB\uAE30", children: /* @__PURE__ */ jsx19(XIcon3, { size: 16 }) })
|
|
642
1112
|
] }),
|
|
643
|
-
children && /* @__PURE__ */
|
|
644
|
-
|
|
1113
|
+
children && /* @__PURE__ */ jsx19("div", { className: body3, children }),
|
|
1114
|
+
footer6 && /* @__PURE__ */ jsx19("div", { className: footer3, children: footer6 })
|
|
645
1115
|
]
|
|
646
1116
|
}
|
|
647
1117
|
)
|
|
648
1118
|
] })
|
|
649
1119
|
] });
|
|
650
1120
|
}
|
|
651
|
-
var ModalClose =
|
|
1121
|
+
var ModalClose = Dialog2.Close;
|
|
652
1122
|
|
|
653
1123
|
// src/components/Pagination/Pagination.tsx
|
|
654
|
-
import { ChevronLeftIcon, ChevronRightIcon } from "@bestow-ui/icons";
|
|
655
|
-
import { forwardRef as
|
|
1124
|
+
import { ChevronLeftIcon, ChevronRightIcon as ChevronRightIcon2 } from "@bestow-ui/icons";
|
|
1125
|
+
import { forwardRef as forwardRef18, useState as useState2 } from "react";
|
|
656
1126
|
|
|
657
1127
|
// src/components/Pagination/getPaginationItems.ts
|
|
658
1128
|
var range = (start, end) => end < start ? [] : Array.from({ length: end - start + 1 }, (_, i) => start + i);
|
|
@@ -679,15 +1149,15 @@ function getPaginationItems(page, totalPages, siblingCount = 1, boundaryCount =
|
|
|
679
1149
|
}
|
|
680
1150
|
|
|
681
1151
|
// src/components/Pagination/Pagination.css.ts
|
|
682
|
-
import { createRuntimeFn as
|
|
1152
|
+
import { createRuntimeFn as _7a46814 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
683
1153
|
var ellipsis = "_1iraoak4";
|
|
684
|
-
var
|
|
685
|
-
var
|
|
1154
|
+
var item5 = /* @__PURE__ */ _7a46814({ defaultClassName: "_1iraoak1", variantClassNames: { size: { sm: "_1iraoak2", md: "_1iraoak3" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1155
|
+
var list2 = "_1iraoak0";
|
|
686
1156
|
|
|
687
1157
|
// src/components/Pagination/Pagination.tsx
|
|
688
|
-
import { jsx as
|
|
1158
|
+
import { jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
689
1159
|
var defaultItemLabel = (type, page) => type === "previous" ? "\uC774\uC804 \uD398\uC774\uC9C0" : type === "next" ? "\uB2E4\uC74C \uD398\uC774\uC9C0" : `${page} \uD398\uC774\uC9C0`;
|
|
690
|
-
var Pagination = /* @__PURE__ */
|
|
1160
|
+
var Pagination = /* @__PURE__ */ forwardRef18(function Pagination2({
|
|
691
1161
|
totalPages,
|
|
692
1162
|
page: pageProp,
|
|
693
1163
|
defaultPage = 1,
|
|
@@ -700,7 +1170,7 @@ var Pagination = /* @__PURE__ */ forwardRef13(function Pagination2({
|
|
|
700
1170
|
"aria-label": ariaLabel = "\uD398\uC774\uC9C0 \uD0D0\uC0C9",
|
|
701
1171
|
...rest
|
|
702
1172
|
}, ref) {
|
|
703
|
-
const [uncontrolledPage, setUncontrolledPage] =
|
|
1173
|
+
const [uncontrolledPage, setUncontrolledPage] = useState2(defaultPage);
|
|
704
1174
|
if (totalPages < 1) return null;
|
|
705
1175
|
const page = Math.min(Math.max(pageProp ?? uncontrolledPage, 1), totalPages);
|
|
706
1176
|
const goTo = (next) => {
|
|
@@ -708,9 +1178,9 @@ var Pagination = /* @__PURE__ */ forwardRef13(function Pagination2({
|
|
|
708
1178
|
if (pageProp === void 0) setUncontrolledPage(next);
|
|
709
1179
|
onPageChange?.(next);
|
|
710
1180
|
};
|
|
711
|
-
const itemClass =
|
|
712
|
-
return /* @__PURE__ */
|
|
713
|
-
/* @__PURE__ */
|
|
1181
|
+
const itemClass = item5({ size });
|
|
1182
|
+
return /* @__PURE__ */ jsx20("nav", { ref, "aria-label": ariaLabel, className, ...rest, children: /* @__PURE__ */ jsxs17("ul", { className: list2, children: [
|
|
1183
|
+
/* @__PURE__ */ jsx20("li", { children: /* @__PURE__ */ jsx20(
|
|
714
1184
|
"button",
|
|
715
1185
|
{
|
|
716
1186
|
type: "button",
|
|
@@ -718,23 +1188,23 @@ var Pagination = /* @__PURE__ */ forwardRef13(function Pagination2({
|
|
|
718
1188
|
"aria-label": getItemLabel("previous", page - 1),
|
|
719
1189
|
disabled: page <= 1,
|
|
720
1190
|
onClick: () => goTo(page - 1),
|
|
721
|
-
children: /* @__PURE__ */
|
|
1191
|
+
children: /* @__PURE__ */ jsx20(ChevronLeftIcon, { size: 16 })
|
|
722
1192
|
}
|
|
723
1193
|
) }),
|
|
724
1194
|
getPaginationItems(page, totalPages, siblingCount, boundaryCount).map(
|
|
725
|
-
(
|
|
1195
|
+
(item6) => typeof item6 === "number" ? /* @__PURE__ */ jsx20("li", { children: /* @__PURE__ */ jsx20(
|
|
726
1196
|
"button",
|
|
727
1197
|
{
|
|
728
1198
|
type: "button",
|
|
729
1199
|
className: itemClass,
|
|
730
|
-
"aria-label": getItemLabel("page",
|
|
731
|
-
"aria-current":
|
|
732
|
-
onClick: () => goTo(
|
|
733
|
-
children:
|
|
1200
|
+
"aria-label": getItemLabel("page", item6),
|
|
1201
|
+
"aria-current": item6 === page ? "page" : void 0,
|
|
1202
|
+
onClick: () => goTo(item6),
|
|
1203
|
+
children: item6
|
|
734
1204
|
}
|
|
735
|
-
) },
|
|
1205
|
+
) }, item6) : /* @__PURE__ */ jsx20("li", { "aria-hidden": true, className: cx(itemClass, ellipsis), children: "\u2026" }, item6)
|
|
736
1206
|
),
|
|
737
|
-
/* @__PURE__ */
|
|
1207
|
+
/* @__PURE__ */ jsx20("li", { children: /* @__PURE__ */ jsx20(
|
|
738
1208
|
"button",
|
|
739
1209
|
{
|
|
740
1210
|
type: "button",
|
|
@@ -742,7 +1212,7 @@ var Pagination = /* @__PURE__ */ forwardRef13(function Pagination2({
|
|
|
742
1212
|
"aria-label": getItemLabel("next", page + 1),
|
|
743
1213
|
disabled: page >= totalPages,
|
|
744
1214
|
onClick: () => goTo(page + 1),
|
|
745
|
-
children: /* @__PURE__ */
|
|
1215
|
+
children: /* @__PURE__ */ jsx20(ChevronRightIcon2, { size: 16 })
|
|
746
1216
|
}
|
|
747
1217
|
) })
|
|
748
1218
|
] }) });
|
|
@@ -750,22 +1220,22 @@ var Pagination = /* @__PURE__ */ forwardRef13(function Pagination2({
|
|
|
750
1220
|
|
|
751
1221
|
// src/components/Popover/Popover.tsx
|
|
752
1222
|
import * as RadixPopover from "@radix-ui/react-popover";
|
|
753
|
-
import { XIcon as
|
|
754
|
-
import { useId as
|
|
1223
|
+
import { XIcon as XIcon4 } from "@bestow-ui/icons";
|
|
1224
|
+
import { useId as useId3 } from "react";
|
|
755
1225
|
|
|
756
1226
|
// src/components/Popover/Popover.css.ts
|
|
757
1227
|
var arrow = "_1j99p8x4";
|
|
758
|
-
var
|
|
759
|
-
var
|
|
760
|
-
var
|
|
761
|
-
var
|
|
1228
|
+
var closeButton4 = "_1j99p8x3";
|
|
1229
|
+
var content8 = "_1j99p8x0";
|
|
1230
|
+
var header5 = "_1j99p8x1";
|
|
1231
|
+
var title4 = "_1j99p8x2";
|
|
762
1232
|
|
|
763
1233
|
// src/components/Popover/Popover.tsx
|
|
764
|
-
import { jsx as
|
|
765
|
-
function
|
|
766
|
-
content:
|
|
1234
|
+
import { jsx as jsx21, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1235
|
+
function Popover2({
|
|
1236
|
+
content: content11,
|
|
767
1237
|
children,
|
|
768
|
-
title:
|
|
1238
|
+
title: title6,
|
|
769
1239
|
"aria-label": ariaLabel,
|
|
770
1240
|
showClose = false,
|
|
771
1241
|
showArrow = false,
|
|
@@ -779,27 +1249,27 @@ function Popover({
|
|
|
779
1249
|
style
|
|
780
1250
|
}) {
|
|
781
1251
|
const portal2 = usePortalProps();
|
|
782
|
-
const titleId =
|
|
783
|
-
return /* @__PURE__ */
|
|
784
|
-
/* @__PURE__ */
|
|
785
|
-
/* @__PURE__ */
|
|
1252
|
+
const titleId = useId3();
|
|
1253
|
+
return /* @__PURE__ */ jsxs18(RadixPopover.Root, { open, defaultOpen, onOpenChange, modal, children: [
|
|
1254
|
+
/* @__PURE__ */ jsx21(RadixPopover.Trigger, { asChild: true, children }),
|
|
1255
|
+
/* @__PURE__ */ jsx21(RadixPopover.Portal, { children: /* @__PURE__ */ jsxs18(
|
|
786
1256
|
RadixPopover.Content,
|
|
787
1257
|
{
|
|
788
1258
|
side,
|
|
789
1259
|
align,
|
|
790
1260
|
sideOffset: 6,
|
|
791
1261
|
collisionPadding: 8,
|
|
792
|
-
"aria-labelledby":
|
|
793
|
-
"aria-label":
|
|
794
|
-
className: cx(portal2.className,
|
|
1262
|
+
"aria-labelledby": title6 ? titleId : void 0,
|
|
1263
|
+
"aria-label": title6 ? void 0 : ariaLabel,
|
|
1264
|
+
className: cx(portal2.className, content8, className),
|
|
795
1265
|
style: { ...portal2.style, ...style },
|
|
796
1266
|
children: [
|
|
797
|
-
(
|
|
798
|
-
|
|
799
|
-
showClose && /* @__PURE__ */
|
|
1267
|
+
(title6 || showClose) && /* @__PURE__ */ jsxs18("div", { className: header5, children: [
|
|
1268
|
+
title6 && /* @__PURE__ */ jsx21("h2", { id: titleId, className: title4, children: title6 }),
|
|
1269
|
+
showClose && /* @__PURE__ */ jsx21(RadixPopover.Close, { className: closeButton4, "aria-label": "\uB2EB\uAE30", children: /* @__PURE__ */ jsx21(XIcon4, { size: 16 }) })
|
|
800
1270
|
] }),
|
|
801
|
-
|
|
802
|
-
showArrow && /* @__PURE__ */
|
|
1271
|
+
content11,
|
|
1272
|
+
showArrow && /* @__PURE__ */ jsx21(RadixPopover.Arrow, { className: arrow, width: 12, height: 6 })
|
|
803
1273
|
]
|
|
804
1274
|
}
|
|
805
1275
|
) })
|
|
@@ -807,31 +1277,92 @@ function Popover({
|
|
|
807
1277
|
}
|
|
808
1278
|
var PopoverClose = RadixPopover.Close;
|
|
809
1279
|
|
|
1280
|
+
// src/components/Progress/Progress.tsx
|
|
1281
|
+
import { forwardRef as forwardRef19, useId as useId4 } from "react";
|
|
1282
|
+
|
|
1283
|
+
// src/components/Progress/Progress.css.ts
|
|
1284
|
+
import { createRuntimeFn as _7a46815 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
1285
|
+
var header6 = "_1tvkq001";
|
|
1286
|
+
var indicator = /* @__PURE__ */ _7a46815({ defaultClassName: "_1tvkq008", variantClassNames: { color: { primary: "_1tvkq009", neutral: "_1tvkq00a", success: "_1tvkq00b", warning: "_1tvkq00c", danger: "_1tvkq00d" } }, defaultVariants: { color: "primary" }, compoundVariants: [] });
|
|
1287
|
+
var label3 = "_1tvkq002";
|
|
1288
|
+
var root6 = "_1tvkq000";
|
|
1289
|
+
var track = /* @__PURE__ */ _7a46815({ defaultClassName: "_1tvkq004", variantClassNames: { size: { sm: "_1tvkq005", md: "_1tvkq006", lg: "_1tvkq007" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1290
|
+
var value2 = "_1tvkq003";
|
|
1291
|
+
|
|
1292
|
+
// src/components/Progress/Progress.tsx
|
|
1293
|
+
import { jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1294
|
+
var defaultFormat = (value4, max) => `${Math.round(value4 / max * 100)}%`;
|
|
1295
|
+
var Progress = /* @__PURE__ */ forwardRef19(function Progress2({
|
|
1296
|
+
value: value4,
|
|
1297
|
+
max = 100,
|
|
1298
|
+
label: label6,
|
|
1299
|
+
"aria-label": ariaLabel,
|
|
1300
|
+
showValue,
|
|
1301
|
+
formatValue = defaultFormat,
|
|
1302
|
+
size,
|
|
1303
|
+
color,
|
|
1304
|
+
className,
|
|
1305
|
+
...rest
|
|
1306
|
+
}, ref) {
|
|
1307
|
+
const labelId = useId4();
|
|
1308
|
+
const isIndeterminate = value4 === void 0 || value4 === null;
|
|
1309
|
+
const safeMax = max > 0 ? max : 100;
|
|
1310
|
+
const clamped = isIndeterminate ? 0 : Math.min(safeMax, Math.max(0, value4));
|
|
1311
|
+
const valueText = isIndeterminate ? void 0 : formatValue(clamped, safeMax);
|
|
1312
|
+
return /* @__PURE__ */ jsxs19("div", { ref, className: cx(root6, className), ...rest, children: [
|
|
1313
|
+
(label6 || showValue && valueText) && /* @__PURE__ */ jsxs19("div", { className: header6, children: [
|
|
1314
|
+
label6 && /* @__PURE__ */ jsx22("span", { id: labelId, className: label3, children: label6 }),
|
|
1315
|
+
showValue && valueText && /* @__PURE__ */ jsx22("span", { className: value2, "aria-hidden": true, children: valueText })
|
|
1316
|
+
] }),
|
|
1317
|
+
/* @__PURE__ */ jsx22(
|
|
1318
|
+
"div",
|
|
1319
|
+
{
|
|
1320
|
+
role: "progressbar",
|
|
1321
|
+
"aria-labelledby": label6 ? labelId : void 0,
|
|
1322
|
+
"aria-label": label6 ? void 0 : ariaLabel,
|
|
1323
|
+
"aria-valuemin": 0,
|
|
1324
|
+
"aria-valuemax": safeMax,
|
|
1325
|
+
"aria-valuenow": isIndeterminate ? void 0 : clamped,
|
|
1326
|
+
"aria-valuetext": valueText,
|
|
1327
|
+
className: track({ size }),
|
|
1328
|
+
children: /* @__PURE__ */ jsx22(
|
|
1329
|
+
"div",
|
|
1330
|
+
{
|
|
1331
|
+
className: indicator({ color }),
|
|
1332
|
+
"data-state": isIndeterminate ? "indeterminate" : clamped >= safeMax ? "complete" : "loading",
|
|
1333
|
+
style: isIndeterminate ? void 0 : { width: `${clamped / safeMax * 100}%` }
|
|
1334
|
+
}
|
|
1335
|
+
)
|
|
1336
|
+
}
|
|
1337
|
+
)
|
|
1338
|
+
] });
|
|
1339
|
+
});
|
|
1340
|
+
|
|
810
1341
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
811
1342
|
import * as RadixRadioGroup from "@radix-ui/react-radio-group";
|
|
812
|
-
import { forwardRef as
|
|
1343
|
+
import { forwardRef as forwardRef20, useId as useId5 } from "react";
|
|
813
1344
|
|
|
814
1345
|
// src/components/RadioGroup/RadioGroup.css.ts
|
|
815
|
-
import { createRuntimeFn as
|
|
816
|
-
var
|
|
1346
|
+
import { createRuntimeFn as _7a46816 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
1347
|
+
var description4 = "_1w9iwjmd";
|
|
817
1348
|
var groupLabel = "_1w9iwjme";
|
|
818
|
-
var
|
|
819
|
-
var items =
|
|
1349
|
+
var indicator2 = "_1w9iwjma";
|
|
1350
|
+
var items = /* @__PURE__ */ _7a46816({ defaultClassName: "_1w9iwjm0", variantClassNames: { orientation: { vertical: "_1w9iwjm1", horizontal: "_1w9iwjm2" } }, defaultVariants: { orientation: "vertical" }, compoundVariants: [] });
|
|
820
1351
|
var labelText = "_1w9iwjmc";
|
|
821
|
-
var option =
|
|
822
|
-
var radio =
|
|
1352
|
+
var option = /* @__PURE__ */ _7a46816({ defaultClassName: "_1w9iwjm3", variantClassNames: { size: { sm: "_1w9iwjm4", md: "_1w9iwjm5" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1353
|
+
var radio = /* @__PURE__ */ _7a46816({ defaultClassName: "_1w9iwjm7", variantClassNames: { size: { sm: "_1w9iwjm8", md: "_1w9iwjm9" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
823
1354
|
var text = "_1w9iwjmb";
|
|
824
1355
|
|
|
825
1356
|
// src/components/RadioGroup/RadioGroup.tsx
|
|
826
|
-
import { jsx as
|
|
827
|
-
var RadioGroup = /* @__PURE__ */
|
|
1357
|
+
import { jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1358
|
+
var RadioGroup = /* @__PURE__ */ forwardRef20(function RadioGroup2(props, ref) {
|
|
828
1359
|
const {
|
|
829
1360
|
options,
|
|
830
|
-
value:
|
|
1361
|
+
value: value4,
|
|
831
1362
|
defaultValue,
|
|
832
1363
|
onValueChange,
|
|
833
|
-
label:
|
|
834
|
-
helperText:
|
|
1364
|
+
label: label6,
|
|
1365
|
+
helperText: helperText3,
|
|
835
1366
|
error,
|
|
836
1367
|
orientation = "vertical",
|
|
837
1368
|
size,
|
|
@@ -843,21 +1374,21 @@ var RadioGroup = /* @__PURE__ */ forwardRef14(function RadioGroup2(props, ref) {
|
|
|
843
1374
|
className
|
|
844
1375
|
} = props;
|
|
845
1376
|
const isControlled = "value" in props;
|
|
846
|
-
const generatedId =
|
|
1377
|
+
const generatedId = useId5();
|
|
847
1378
|
const baseId = id ?? generatedId;
|
|
848
|
-
const labelId =
|
|
849
|
-
const helperId =
|
|
850
|
-
return /* @__PURE__ */
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
required && /* @__PURE__ */
|
|
1379
|
+
const labelId = label6 ? `${baseId}-label` : void 0;
|
|
1380
|
+
const helperId = helperText3 ? `${baseId}-helper` : void 0;
|
|
1381
|
+
return /* @__PURE__ */ jsxs20("div", { className: cx(field, className), children: [
|
|
1382
|
+
label6 && /* @__PURE__ */ jsxs20("span", { id: labelId, className: cx(label, groupLabel), children: [
|
|
1383
|
+
label6,
|
|
1384
|
+
required && /* @__PURE__ */ jsx23("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
854
1385
|
] }),
|
|
855
|
-
/* @__PURE__ */
|
|
1386
|
+
/* @__PURE__ */ jsx23(
|
|
856
1387
|
RadixRadioGroup.Root,
|
|
857
1388
|
{
|
|
858
1389
|
ref,
|
|
859
1390
|
id: baseId,
|
|
860
|
-
value: isControlled ?
|
|
1391
|
+
value: isControlled ? value4 ?? "" : void 0,
|
|
861
1392
|
defaultValue,
|
|
862
1393
|
onValueChange,
|
|
863
1394
|
orientation,
|
|
@@ -873,8 +1404,8 @@ var RadioGroup = /* @__PURE__ */ forwardRef14(function RadioGroup2(props, ref) {
|
|
|
873
1404
|
const itemId = `${baseId}-${option2.value}`;
|
|
874
1405
|
const descriptionId = option2.description ? `${itemId}-description` : void 0;
|
|
875
1406
|
const itemDisabled = disabled || option2.disabled;
|
|
876
|
-
return /* @__PURE__ */
|
|
877
|
-
/* @__PURE__ */
|
|
1407
|
+
return /* @__PURE__ */ jsxs20("div", { className: option({ size }), "data-disabled": itemDisabled || void 0, children: [
|
|
1408
|
+
/* @__PURE__ */ jsx23(
|
|
878
1409
|
RadixRadioGroup.Item,
|
|
879
1410
|
{
|
|
880
1411
|
id: itemId,
|
|
@@ -882,46 +1413,35 @@ var RadioGroup = /* @__PURE__ */ forwardRef14(function RadioGroup2(props, ref) {
|
|
|
882
1413
|
disabled: option2.disabled,
|
|
883
1414
|
"aria-describedby": descriptionId,
|
|
884
1415
|
className: radio({ size }),
|
|
885
|
-
children: /* @__PURE__ */
|
|
1416
|
+
children: /* @__PURE__ */ jsx23(RadixRadioGroup.Indicator, { className: indicator2 })
|
|
886
1417
|
}
|
|
887
1418
|
),
|
|
888
|
-
/* @__PURE__ */
|
|
889
|
-
/* @__PURE__ */
|
|
890
|
-
option2.description && /* @__PURE__ */
|
|
1419
|
+
/* @__PURE__ */ jsxs20("span", { className: text, children: [
|
|
1420
|
+
/* @__PURE__ */ jsx23("label", { htmlFor: itemId, className: labelText, children: option2.label }),
|
|
1421
|
+
option2.description && /* @__PURE__ */ jsx23("span", { id: descriptionId, className: description4, children: option2.description })
|
|
891
1422
|
] })
|
|
892
1423
|
] }, option2.value);
|
|
893
1424
|
})
|
|
894
1425
|
}
|
|
895
1426
|
),
|
|
896
|
-
|
|
1427
|
+
helperText3 && /* @__PURE__ */ jsx23("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
897
1428
|
] });
|
|
898
1429
|
});
|
|
899
1430
|
|
|
900
1431
|
// src/components/Select/Select.tsx
|
|
901
1432
|
import * as RadixSelect from "@radix-ui/react-select";
|
|
902
|
-
import { forwardRef as
|
|
903
|
-
import { CheckIcon, ChevronDownIcon as
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
var content5 = "_1kx81e83";
|
|
907
|
-
var icon4 = "_1kx81e82";
|
|
908
|
-
var item4 = "_1kx81e85";
|
|
909
|
-
var itemIndicator = "_1kx81e86";
|
|
910
|
-
var trigger2 = "_1kx81e80";
|
|
911
|
-
var value = "_1kx81e81";
|
|
912
|
-
var viewport = "_1kx81e84";
|
|
913
|
-
|
|
914
|
-
// src/components/Select/Select.tsx
|
|
915
|
-
import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
916
|
-
var Select = /* @__PURE__ */ forwardRef15(function Select2(props, ref) {
|
|
1433
|
+
import { forwardRef as forwardRef21, useId as useId6 } from "react";
|
|
1434
|
+
import { CheckIcon as CheckIcon2, ChevronDownIcon as ChevronDownIcon3 } from "@bestow-ui/icons";
|
|
1435
|
+
import { jsx as jsx24, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
1436
|
+
var Select = /* @__PURE__ */ forwardRef21(function Select2(props, ref) {
|
|
917
1437
|
const {
|
|
918
1438
|
options,
|
|
919
|
-
value:
|
|
1439
|
+
value: value4,
|
|
920
1440
|
defaultValue,
|
|
921
1441
|
onValueChange,
|
|
922
1442
|
placeholder,
|
|
923
|
-
label:
|
|
924
|
-
helperText:
|
|
1443
|
+
label: label6,
|
|
1444
|
+
helperText: helperText3,
|
|
925
1445
|
error,
|
|
926
1446
|
size,
|
|
927
1447
|
fullWidth,
|
|
@@ -933,26 +1453,26 @@ var Select = /* @__PURE__ */ forwardRef15(function Select2(props, ref) {
|
|
|
933
1453
|
className
|
|
934
1454
|
} = props;
|
|
935
1455
|
const isControlled = "value" in props;
|
|
936
|
-
const generatedId =
|
|
1456
|
+
const generatedId = useId6();
|
|
937
1457
|
const triggerId = id ?? generatedId;
|
|
938
|
-
const helperId =
|
|
1458
|
+
const helperId = helperText3 ? `${triggerId}-helper` : void 0;
|
|
939
1459
|
const portal2 = usePortalProps();
|
|
940
|
-
return /* @__PURE__ */
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
required && /* @__PURE__ */
|
|
1460
|
+
return /* @__PURE__ */ jsxs21("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
1461
|
+
label6 && /* @__PURE__ */ jsxs21("label", { htmlFor: triggerId, className: label, children: [
|
|
1462
|
+
label6,
|
|
1463
|
+
required && /* @__PURE__ */ jsx24("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
944
1464
|
] }),
|
|
945
|
-
/* @__PURE__ */
|
|
1465
|
+
/* @__PURE__ */ jsxs21(
|
|
946
1466
|
RadixSelect.Root,
|
|
947
1467
|
{
|
|
948
|
-
value: isControlled ?
|
|
1468
|
+
value: isControlled ? value4 ?? "" : void 0,
|
|
949
1469
|
defaultValue,
|
|
950
1470
|
onValueChange,
|
|
951
1471
|
disabled,
|
|
952
1472
|
required,
|
|
953
1473
|
name,
|
|
954
1474
|
children: [
|
|
955
|
-
/* @__PURE__ */
|
|
1475
|
+
/* @__PURE__ */ jsxs21(
|
|
956
1476
|
RadixSelect.Trigger,
|
|
957
1477
|
{
|
|
958
1478
|
ref,
|
|
@@ -963,28 +1483,28 @@ var Select = /* @__PURE__ */ forwardRef15(function Select2(props, ref) {
|
|
|
963
1483
|
"data-invalid": error || void 0,
|
|
964
1484
|
className: cx(root5({ size, fullWidth }), trigger2, className),
|
|
965
1485
|
children: [
|
|
966
|
-
/* @__PURE__ */
|
|
967
|
-
/* @__PURE__ */
|
|
1486
|
+
/* @__PURE__ */ jsx24("span", { className: value, children: /* @__PURE__ */ jsx24(RadixSelect.Value, { placeholder }) }),
|
|
1487
|
+
/* @__PURE__ */ jsx24(RadixSelect.Icon, { className: icon4, children: /* @__PURE__ */ jsx24(ChevronDownIcon3, { size: 16 }) })
|
|
968
1488
|
]
|
|
969
1489
|
}
|
|
970
1490
|
),
|
|
971
|
-
/* @__PURE__ */
|
|
1491
|
+
/* @__PURE__ */ jsx24(RadixSelect.Portal, { children: /* @__PURE__ */ jsx24(
|
|
972
1492
|
RadixSelect.Content,
|
|
973
1493
|
{
|
|
974
1494
|
position: "popper",
|
|
975
1495
|
sideOffset: 4,
|
|
976
1496
|
collisionPadding: 8,
|
|
977
|
-
className: cx(portal2.className,
|
|
1497
|
+
className: cx(portal2.className, content3),
|
|
978
1498
|
style: portal2.style,
|
|
979
|
-
children: /* @__PURE__ */
|
|
1499
|
+
children: /* @__PURE__ */ jsx24(RadixSelect.Viewport, { className: viewport, children: options.map((option2) => /* @__PURE__ */ jsxs21(
|
|
980
1500
|
RadixSelect.Item,
|
|
981
1501
|
{
|
|
982
1502
|
value: option2.value,
|
|
983
1503
|
disabled: option2.disabled,
|
|
984
|
-
className:
|
|
1504
|
+
className: item3,
|
|
985
1505
|
children: [
|
|
986
|
-
/* @__PURE__ */
|
|
987
|
-
/* @__PURE__ */
|
|
1506
|
+
/* @__PURE__ */ jsx24(RadixSelect.ItemText, { children: option2.label }),
|
|
1507
|
+
/* @__PURE__ */ jsx24(RadixSelect.ItemIndicator, { className: itemIndicator, children: /* @__PURE__ */ jsx24(CheckIcon2, { size: 16 }) })
|
|
988
1508
|
]
|
|
989
1509
|
},
|
|
990
1510
|
option2.value
|
|
@@ -994,29 +1514,29 @@ var Select = /* @__PURE__ */ forwardRef15(function Select2(props, ref) {
|
|
|
994
1514
|
]
|
|
995
1515
|
}
|
|
996
1516
|
),
|
|
997
|
-
|
|
1517
|
+
helperText3 && /* @__PURE__ */ jsx24("p", { id: helperId, className: helperText({ error }), children: helperText3 })
|
|
998
1518
|
] });
|
|
999
1519
|
});
|
|
1000
1520
|
|
|
1001
1521
|
// src/components/Skeleton/Skeleton.tsx
|
|
1002
1522
|
import { assignInlineVars as assignInlineVars2 } from "@vanilla-extract/dynamic";
|
|
1003
|
-
import { forwardRef as
|
|
1523
|
+
import { forwardRef as forwardRef22 } from "react";
|
|
1004
1524
|
|
|
1005
1525
|
// src/components/Skeleton/Skeleton.css.ts
|
|
1006
|
-
import { createRuntimeFn as
|
|
1526
|
+
import { createRuntimeFn as _7a46817 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
1007
1527
|
var height = "var(--_1s8datd1)";
|
|
1008
1528
|
var lines = "_1s8datd6";
|
|
1009
|
-
var skeleton =
|
|
1529
|
+
var skeleton = /* @__PURE__ */ _7a46817({ defaultClassName: "_1s8datd2", variantClassNames: { variant: { text: "_1s8datd3", rect: "_1s8datd4", circle: "_1s8datd5" } }, defaultVariants: { variant: "text" }, compoundVariants: [] });
|
|
1010
1530
|
var width = "var(--_1s8datd0)";
|
|
1011
1531
|
|
|
1012
1532
|
// src/components/Skeleton/Skeleton.tsx
|
|
1013
|
-
import { jsx as
|
|
1014
|
-
var toCss = (
|
|
1015
|
-
var Skeleton = /* @__PURE__ */
|
|
1533
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1534
|
+
var toCss = (value4) => typeof value4 === "number" ? `${value4}px` : value4;
|
|
1535
|
+
var Skeleton = /* @__PURE__ */ forwardRef22(function Skeleton2({ variant = "text", width: width2, height: height2, lines: lines2 = 1, className, style, ...rest }, ref) {
|
|
1016
1536
|
const w = toCss(width2 ?? (variant === "circle" ? 40 : "100%"));
|
|
1017
1537
|
const h = toCss(height2 ?? (variant === "circle" ? w : variant === "rect" ? 100 : "1em"));
|
|
1018
1538
|
if (variant === "text" && lines2 > 1) {
|
|
1019
|
-
return /* @__PURE__ */
|
|
1539
|
+
return /* @__PURE__ */ jsx25(
|
|
1020
1540
|
"span",
|
|
1021
1541
|
{
|
|
1022
1542
|
ref,
|
|
@@ -1024,7 +1544,7 @@ var Skeleton = /* @__PURE__ */ forwardRef16(function Skeleton2({ variant = "text
|
|
|
1024
1544
|
className: cx(lines, className),
|
|
1025
1545
|
style: { ...assignInlineVars2({ [width]: w }), ...style },
|
|
1026
1546
|
...rest,
|
|
1027
|
-
children: Array.from({ length: lines2 }, (_, i) => /* @__PURE__ */
|
|
1547
|
+
children: Array.from({ length: lines2 }, (_, i) => /* @__PURE__ */ jsx25(
|
|
1028
1548
|
"span",
|
|
1029
1549
|
{
|
|
1030
1550
|
className: skeleton({ variant }),
|
|
@@ -1035,7 +1555,7 @@ var Skeleton = /* @__PURE__ */ forwardRef16(function Skeleton2({ variant = "text
|
|
|
1035
1555
|
}
|
|
1036
1556
|
);
|
|
1037
1557
|
}
|
|
1038
|
-
return /* @__PURE__ */
|
|
1558
|
+
return /* @__PURE__ */ jsx25(
|
|
1039
1559
|
"span",
|
|
1040
1560
|
{
|
|
1041
1561
|
ref,
|
|
@@ -1047,106 +1567,324 @@ var Skeleton = /* @__PURE__ */ forwardRef16(function Skeleton2({ variant = "text
|
|
|
1047
1567
|
);
|
|
1048
1568
|
});
|
|
1049
1569
|
|
|
1570
|
+
// src/components/Slider/Slider.tsx
|
|
1571
|
+
import * as RadixSlider from "@radix-ui/react-slider";
|
|
1572
|
+
import { forwardRef as forwardRef23, useId as useId7, useState as useState3 } from "react";
|
|
1573
|
+
|
|
1574
|
+
// src/components/Slider/Slider.css.ts
|
|
1575
|
+
import { createRuntimeFn as _7a46818 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
1576
|
+
var field2 = "_126mzjm0";
|
|
1577
|
+
var header7 = "_126mzjm1";
|
|
1578
|
+
var helperText2 = "_126mzjm4";
|
|
1579
|
+
var label4 = "_126mzjm2";
|
|
1580
|
+
var range2 = "_126mzjmb";
|
|
1581
|
+
var root7 = /* @__PURE__ */ _7a46818({ defaultClassName: "_126mzjm5", variantClassNames: { size: { sm: "_126mzjm6", md: "_126mzjm7" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1582
|
+
var thumb = /* @__PURE__ */ _7a46818({ defaultClassName: "_126mzjmc", variantClassNames: { size: { sm: "_126mzjmd", md: "_126mzjme" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1583
|
+
var track2 = /* @__PURE__ */ _7a46818({ defaultClassName: "_126mzjm8", variantClassNames: { size: { sm: "_126mzjm9", md: "_126mzjma" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1584
|
+
var value3 = "_126mzjm3";
|
|
1585
|
+
|
|
1586
|
+
// src/components/Slider/Slider.tsx
|
|
1587
|
+
import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
1588
|
+
var Slider = /* @__PURE__ */ forwardRef23(function Slider2(props, ref) {
|
|
1589
|
+
const {
|
|
1590
|
+
value: value4,
|
|
1591
|
+
defaultValue,
|
|
1592
|
+
onValueChange,
|
|
1593
|
+
min = 0,
|
|
1594
|
+
max = 100,
|
|
1595
|
+
label: label6,
|
|
1596
|
+
"aria-label": ariaLabel,
|
|
1597
|
+
helperText: helperText3,
|
|
1598
|
+
showValue,
|
|
1599
|
+
formatValue = String,
|
|
1600
|
+
thumbLabels = ["\uCD5C\uC18C", "\uCD5C\uB300"],
|
|
1601
|
+
size,
|
|
1602
|
+
id,
|
|
1603
|
+
className,
|
|
1604
|
+
disabled,
|
|
1605
|
+
...rest
|
|
1606
|
+
} = props;
|
|
1607
|
+
const generatedId = useId7();
|
|
1608
|
+
const baseId = id ?? generatedId;
|
|
1609
|
+
const labelId = `${baseId}-label`;
|
|
1610
|
+
const helperId = `${baseId}-helper`;
|
|
1611
|
+
const isControlled = "value" in props;
|
|
1612
|
+
const [innerValue, setInnerValue] = useState3(defaultValue ?? [min]);
|
|
1613
|
+
const current2 = isControlled ? value4 ?? [min] : innerValue;
|
|
1614
|
+
const isRange = current2.length > 1;
|
|
1615
|
+
const handleChange = (next) => {
|
|
1616
|
+
if (!isControlled) setInnerValue(next);
|
|
1617
|
+
onValueChange?.(next);
|
|
1618
|
+
};
|
|
1619
|
+
const valueText = current2.map(formatValue).join(" \u2013 ");
|
|
1620
|
+
return /* @__PURE__ */ jsxs22("div", { className: cx(field2, className), children: [
|
|
1621
|
+
(label6 || showValue) && /* @__PURE__ */ jsxs22("div", { className: header7, children: [
|
|
1622
|
+
label6 && /* @__PURE__ */ jsx26("span", { id: labelId, className: label4, children: label6 }),
|
|
1623
|
+
showValue && /* @__PURE__ */ jsx26("span", { className: value3, "aria-hidden": true, children: valueText })
|
|
1624
|
+
] }),
|
|
1625
|
+
/* @__PURE__ */ jsxs22(
|
|
1626
|
+
RadixSlider.Root,
|
|
1627
|
+
{
|
|
1628
|
+
ref,
|
|
1629
|
+
id: baseId,
|
|
1630
|
+
min,
|
|
1631
|
+
max,
|
|
1632
|
+
disabled,
|
|
1633
|
+
value: current2,
|
|
1634
|
+
onValueChange: handleChange,
|
|
1635
|
+
className: root7({ size }),
|
|
1636
|
+
...rest,
|
|
1637
|
+
children: [
|
|
1638
|
+
/* @__PURE__ */ jsx26(RadixSlider.Track, { className: track2({ size }), children: /* @__PURE__ */ jsx26(RadixSlider.Range, { className: range2 }) }),
|
|
1639
|
+
current2.map((thumbValue, index) => {
|
|
1640
|
+
const thumbLabelId = `${baseId}-thumb-${index}`;
|
|
1641
|
+
return /* @__PURE__ */ jsx26(
|
|
1642
|
+
RadixSlider.Thumb,
|
|
1643
|
+
{
|
|
1644
|
+
className: thumb({ size }),
|
|
1645
|
+
"aria-labelledby": label6 ? isRange ? `${labelId} ${thumbLabelId}` : labelId : isRange ? thumbLabelId : void 0,
|
|
1646
|
+
"aria-label": label6 ? void 0 : isRange ? void 0 : ariaLabel,
|
|
1647
|
+
"aria-valuetext": formatValue(thumbValue),
|
|
1648
|
+
"aria-describedby": helperText3 ? helperId : void 0
|
|
1649
|
+
},
|
|
1650
|
+
index
|
|
1651
|
+
);
|
|
1652
|
+
})
|
|
1653
|
+
]
|
|
1654
|
+
}
|
|
1655
|
+
),
|
|
1656
|
+
isRange && current2.map((_, index) => /* @__PURE__ */ jsxs22("span", { id: `${baseId}-thumb-${index}`, hidden: true, children: [
|
|
1657
|
+
label6 ? "" : ariaLabel ? `${ariaLabel} ` : "",
|
|
1658
|
+
thumbLabels[index] ?? `${index + 1}`
|
|
1659
|
+
] }, index)),
|
|
1660
|
+
helperText3 && /* @__PURE__ */ jsx26("span", { id: helperId, className: helperText2, children: helperText3 })
|
|
1661
|
+
] });
|
|
1662
|
+
});
|
|
1663
|
+
|
|
1050
1664
|
// src/components/Stack/Stack.tsx
|
|
1051
|
-
import { forwardRef as
|
|
1665
|
+
import { forwardRef as forwardRef24 } from "react";
|
|
1052
1666
|
|
|
1053
1667
|
// src/components/Stack/Stack.css.ts
|
|
1054
|
-
import { createRuntimeFn as
|
|
1055
|
-
var stack =
|
|
1668
|
+
import { createRuntimeFn as _7a46819 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
1669
|
+
var stack = /* @__PURE__ */ _7a46819({ 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: [] });
|
|
1056
1670
|
|
|
1057
1671
|
// src/components/Stack/Stack.tsx
|
|
1058
|
-
import { jsx as
|
|
1059
|
-
var Stack = /* @__PURE__ */
|
|
1060
|
-
return /* @__PURE__ */
|
|
1672
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
1673
|
+
var Stack = /* @__PURE__ */ forwardRef24(function Stack2({ as: Component = "div", direction, gap, align, justify, wrap, className, ...rest }, ref) {
|
|
1674
|
+
return /* @__PURE__ */ jsx27(Component, { ref, className: cx(stack({ direction, gap, align, justify, wrap }), className), ...rest });
|
|
1061
1675
|
});
|
|
1062
1676
|
|
|
1063
1677
|
// src/components/Switch/Switch.tsx
|
|
1064
1678
|
import * as RadixSwitch from "@radix-ui/react-switch";
|
|
1065
|
-
import { forwardRef as
|
|
1679
|
+
import { forwardRef as forwardRef25, useId as useId8 } from "react";
|
|
1066
1680
|
|
|
1067
1681
|
// src/components/Switch/Switch.css.ts
|
|
1068
|
-
import { createRuntimeFn as
|
|
1069
|
-
var
|
|
1070
|
-
var
|
|
1071
|
-
var
|
|
1072
|
-
var
|
|
1682
|
+
import { createRuntimeFn as _7a46820 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
1683
|
+
var label5 = "o33ul29";
|
|
1684
|
+
var root8 = /* @__PURE__ */ _7a46820({ defaultClassName: "o33ul20", variantClassNames: { size: { sm: "o33ul21", md: "o33ul22" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1685
|
+
var thumb2 = /* @__PURE__ */ _7a46820({ defaultClassName: "o33ul26", variantClassNames: { size: { sm: "o33ul27", md: "o33ul28" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1686
|
+
var track3 = /* @__PURE__ */ _7a46820({ defaultClassName: "o33ul23", variantClassNames: { size: { sm: "o33ul24", md: "o33ul25" } }, defaultVariants: { size: "md" }, compoundVariants: [] });
|
|
1073
1687
|
|
|
1074
1688
|
// src/components/Switch/Switch.tsx
|
|
1075
|
-
import { jsx as
|
|
1076
|
-
var Switch = /* @__PURE__ */
|
|
1077
|
-
const generatedId =
|
|
1689
|
+
import { jsx as jsx28, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
1690
|
+
var Switch = /* @__PURE__ */ forwardRef25(function Switch2({ label: label6, size, id, className, disabled, "aria-label": ariaLabel, ...rest }, ref) {
|
|
1691
|
+
const generatedId = useId8();
|
|
1078
1692
|
const switchId = id ?? generatedId;
|
|
1079
|
-
return /* @__PURE__ */
|
|
1080
|
-
/* @__PURE__ */
|
|
1693
|
+
return /* @__PURE__ */ jsxs23("span", { className: cx(root8({ size }), className), "data-disabled": disabled || void 0, children: [
|
|
1694
|
+
/* @__PURE__ */ jsx28(
|
|
1081
1695
|
RadixSwitch.Root,
|
|
1082
1696
|
{
|
|
1083
1697
|
ref,
|
|
1084
1698
|
id: switchId,
|
|
1085
1699
|
disabled,
|
|
1086
1700
|
"aria-label": ariaLabel,
|
|
1087
|
-
className:
|
|
1701
|
+
className: track3({ size }),
|
|
1088
1702
|
...rest,
|
|
1089
|
-
children: /* @__PURE__ */
|
|
1703
|
+
children: /* @__PURE__ */ jsx28(RadixSwitch.Thumb, { className: thumb2({ size }) })
|
|
1090
1704
|
}
|
|
1091
1705
|
),
|
|
1092
|
-
|
|
1706
|
+
label6 && /* @__PURE__ */ jsx28("label", { htmlFor: switchId, className: label5, children: label6 })
|
|
1093
1707
|
] });
|
|
1094
1708
|
});
|
|
1095
1709
|
|
|
1710
|
+
// src/components/Table/Table.tsx
|
|
1711
|
+
import {
|
|
1712
|
+
createContext as createContext2,
|
|
1713
|
+
forwardRef as forwardRef26,
|
|
1714
|
+
useContext as useContext2,
|
|
1715
|
+
useId as useId9
|
|
1716
|
+
} from "react";
|
|
1717
|
+
import { ArrowDownIcon, ArrowUpIcon } from "@bestow-ui/icons";
|
|
1718
|
+
|
|
1719
|
+
// src/components/Table/Table.css.ts
|
|
1720
|
+
import { createRuntimeFn as _7a46821 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
1721
|
+
var body4 = "l3ploy5";
|
|
1722
|
+
var caption = "l3ploy2";
|
|
1723
|
+
var cell = /* @__PURE__ */ _7a46821({ defaultClassName: "l3ploy9", variantClassNames: { size: { sm: "l3ploya", md: "l3ployb" }, align: { left: "l3ployc", center: "l3ployd", right: "l3ploye" } }, defaultVariants: { size: "md", align: "left" }, compoundVariants: [] });
|
|
1724
|
+
var container = "l3ploy0";
|
|
1725
|
+
var footer4 = "l3ploy7";
|
|
1726
|
+
var footerCell = "l3ployg";
|
|
1727
|
+
var head = "l3ployf";
|
|
1728
|
+
var header8 = "l3ploy3";
|
|
1729
|
+
var row = "l3ploy8";
|
|
1730
|
+
var sortButton = "l3ployh";
|
|
1731
|
+
var sortIcon = "l3ployi";
|
|
1732
|
+
var stickyHeader = "l3ploy4";
|
|
1733
|
+
var striped = "l3ploy6";
|
|
1734
|
+
var table = "l3ploy1";
|
|
1735
|
+
|
|
1736
|
+
// src/components/Table/Table.tsx
|
|
1737
|
+
import { jsx as jsx29, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
1738
|
+
var TableSizeContext = /* @__PURE__ */ createContext2("md");
|
|
1739
|
+
var TableSectionContext = /* @__PURE__ */ createContext2("body");
|
|
1740
|
+
var Table = /* @__PURE__ */ forwardRef26(function Table2({
|
|
1741
|
+
size = "md",
|
|
1742
|
+
striped: striped2,
|
|
1743
|
+
stickyHeader: stickyHeader2,
|
|
1744
|
+
caption: caption2,
|
|
1745
|
+
"aria-label": ariaLabel,
|
|
1746
|
+
containerClassName,
|
|
1747
|
+
containerStyle,
|
|
1748
|
+
className,
|
|
1749
|
+
children,
|
|
1750
|
+
...rest
|
|
1751
|
+
}, ref) {
|
|
1752
|
+
const captionId = useId9();
|
|
1753
|
+
return /* @__PURE__ */ jsx29(TableSizeContext.Provider, { value: size, children: /* @__PURE__ */ jsx29(
|
|
1754
|
+
"div",
|
|
1755
|
+
{
|
|
1756
|
+
className: cx(container, containerClassName),
|
|
1757
|
+
style: containerStyle,
|
|
1758
|
+
tabIndex: 0,
|
|
1759
|
+
role: "region",
|
|
1760
|
+
"aria-labelledby": caption2 ? captionId : void 0,
|
|
1761
|
+
"aria-label": caption2 ? void 0 : ariaLabel,
|
|
1762
|
+
children: /* @__PURE__ */ jsxs24(
|
|
1763
|
+
"table",
|
|
1764
|
+
{
|
|
1765
|
+
ref,
|
|
1766
|
+
className: cx(table, striped2 && striped, stickyHeader2 && stickyHeader, className),
|
|
1767
|
+
"aria-label": caption2 ? void 0 : ariaLabel,
|
|
1768
|
+
...rest,
|
|
1769
|
+
children: [
|
|
1770
|
+
caption2 && /* @__PURE__ */ jsx29("caption", { id: captionId, className: caption, children: caption2 }),
|
|
1771
|
+
children
|
|
1772
|
+
]
|
|
1773
|
+
}
|
|
1774
|
+
)
|
|
1775
|
+
}
|
|
1776
|
+
) });
|
|
1777
|
+
});
|
|
1778
|
+
var TableHeader = /* @__PURE__ */ forwardRef26(
|
|
1779
|
+
function TableHeader2({ className, ...rest }, ref) {
|
|
1780
|
+
return /* @__PURE__ */ jsx29(TableSectionContext.Provider, { value: "header", children: /* @__PURE__ */ jsx29("thead", { ref, className: cx(header8, className), ...rest }) });
|
|
1781
|
+
}
|
|
1782
|
+
);
|
|
1783
|
+
var TableBody = /* @__PURE__ */ forwardRef26(
|
|
1784
|
+
function TableBody2({ className, ...rest }, ref) {
|
|
1785
|
+
return /* @__PURE__ */ jsx29(TableSectionContext.Provider, { value: "body", children: /* @__PURE__ */ jsx29("tbody", { ref, className: cx(body4, className), ...rest }) });
|
|
1786
|
+
}
|
|
1787
|
+
);
|
|
1788
|
+
var TableFooter = /* @__PURE__ */ forwardRef26(
|
|
1789
|
+
function TableFooter2({ className, ...rest }, ref) {
|
|
1790
|
+
return /* @__PURE__ */ jsx29(TableSectionContext.Provider, { value: "footer", children: /* @__PURE__ */ jsx29("tfoot", { ref, className: cx(footer4, className), ...rest }) });
|
|
1791
|
+
}
|
|
1792
|
+
);
|
|
1793
|
+
var TableRow = /* @__PURE__ */ forwardRef26(function TableRow2({ selected, className, ...rest }, ref) {
|
|
1794
|
+
return /* @__PURE__ */ jsx29("tr", { ref, className: cx(row, className), "data-state": selected ? "selected" : void 0, ...rest });
|
|
1795
|
+
});
|
|
1796
|
+
var TableHead = /* @__PURE__ */ forwardRef26(function TableHead2({ align, sortDirection, onSort, scope, className, children, ...rest }, ref) {
|
|
1797
|
+
const size = useContext2(TableSizeContext);
|
|
1798
|
+
const section = useContext2(TableSectionContext);
|
|
1799
|
+
const sortable = onSort !== void 0;
|
|
1800
|
+
const direction = sortDirection ?? "none";
|
|
1801
|
+
const SortIcon = direction === "descending" ? ArrowDownIcon : ArrowUpIcon;
|
|
1802
|
+
return /* @__PURE__ */ jsx29(
|
|
1803
|
+
"th",
|
|
1804
|
+
{
|
|
1805
|
+
ref,
|
|
1806
|
+
scope: scope ?? (section === "header" ? "col" : "row"),
|
|
1807
|
+
"aria-sort": sortable && direction !== "none" ? direction : void 0,
|
|
1808
|
+
className: cx(
|
|
1809
|
+
cell({ size, align }),
|
|
1810
|
+
section === "header" ? head : section === "footer" ? footerCell : void 0,
|
|
1811
|
+
className
|
|
1812
|
+
),
|
|
1813
|
+
...rest,
|
|
1814
|
+
children: sortable ? /* @__PURE__ */ jsxs24("button", { type: "button", className: sortButton, onClick: onSort, children: [
|
|
1815
|
+
children,
|
|
1816
|
+
/* @__PURE__ */ jsx29(SortIcon, { size: 14, className: sortIcon, "data-active": direction !== "none", "aria-hidden": true })
|
|
1817
|
+
] }) : children
|
|
1818
|
+
}
|
|
1819
|
+
);
|
|
1820
|
+
});
|
|
1821
|
+
var TableCell = /* @__PURE__ */ forwardRef26(function TableCell2({ align, className, ...rest }, ref) {
|
|
1822
|
+
const size = useContext2(TableSizeContext);
|
|
1823
|
+
const section = useContext2(TableSectionContext);
|
|
1824
|
+
return /* @__PURE__ */ jsx29(
|
|
1825
|
+
"td",
|
|
1826
|
+
{
|
|
1827
|
+
ref,
|
|
1828
|
+
className: cx(cell({ size, align }), section === "footer" && footerCell, className),
|
|
1829
|
+
...rest
|
|
1830
|
+
}
|
|
1831
|
+
);
|
|
1832
|
+
});
|
|
1833
|
+
|
|
1096
1834
|
// src/components/Tabs/Tabs.tsx
|
|
1097
1835
|
import * as RadixTabs from "@radix-ui/react-tabs";
|
|
1098
|
-
import { createContext as
|
|
1836
|
+
import { createContext as createContext3, forwardRef as forwardRef27, useContext as useContext3 } from "react";
|
|
1099
1837
|
|
|
1100
1838
|
// src/components/Tabs/Tabs.css.ts
|
|
1101
|
-
import { createRuntimeFn as
|
|
1102
|
-
var
|
|
1103
|
-
var
|
|
1104
|
-
var trigger3 =
|
|
1839
|
+
import { createRuntimeFn as _7a46822 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
1840
|
+
var content9 = "fvhbtda";
|
|
1841
|
+
var list3 = /* @__PURE__ */ _7a46822({ defaultClassName: "fvhbtd0", variantClassNames: { variant: { line: "fvhbtd1", soft: "fvhbtd2" } }, defaultVariants: { variant: "line" }, compoundVariants: [] });
|
|
1842
|
+
var trigger3 = /* @__PURE__ */ _7a46822({ defaultClassName: "fvhbtd3", variantClassNames: { variant: { line: "fvhbtd4", soft: "fvhbtd5" }, size: { sm: "fvhbtd6", md: "fvhbtd7" } }, defaultVariants: { variant: "line", size: "md" }, compoundVariants: [[{ variant: "soft", size: "sm" }, "fvhbtd8"], [{ variant: "soft", size: "md" }, "fvhbtd9"]] });
|
|
1105
1843
|
|
|
1106
1844
|
// src/components/Tabs/Tabs.tsx
|
|
1107
|
-
import { jsx as
|
|
1108
|
-
var TabsStyleContext = /* @__PURE__ */
|
|
1109
|
-
var Tabs = /* @__PURE__ */
|
|
1845
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
1846
|
+
var TabsStyleContext = /* @__PURE__ */ createContext3({ variant: "line", size: "md" });
|
|
1847
|
+
var Tabs = /* @__PURE__ */ forwardRef27(function Tabs2({ variant = "line", size = "md", ...props }, ref) {
|
|
1110
1848
|
const controlled = "value" in props ? { value: props.value ?? "" } : {};
|
|
1111
|
-
return /* @__PURE__ */
|
|
1849
|
+
return /* @__PURE__ */ jsx30(TabsStyleContext.Provider, { value: { variant, size }, children: /* @__PURE__ */ jsx30(RadixTabs.Root, { ref, ...props, ...controlled }) });
|
|
1112
1850
|
});
|
|
1113
|
-
var TabsList = /* @__PURE__ */
|
|
1114
|
-
const { variant } =
|
|
1115
|
-
return /* @__PURE__ */
|
|
1851
|
+
var TabsList = /* @__PURE__ */ forwardRef27(function TabsList2({ className, ...rest }, ref) {
|
|
1852
|
+
const { variant } = useContext3(TabsStyleContext);
|
|
1853
|
+
return /* @__PURE__ */ jsx30(RadixTabs.List, { ref, className: cx(list3({ variant }), className), ...rest });
|
|
1116
1854
|
});
|
|
1117
|
-
var TabsTrigger = /* @__PURE__ */
|
|
1118
|
-
const { variant, size } =
|
|
1119
|
-
return /* @__PURE__ */
|
|
1855
|
+
var TabsTrigger = /* @__PURE__ */ forwardRef27(function TabsTrigger2({ className, ...rest }, ref) {
|
|
1856
|
+
const { variant, size } = useContext3(TabsStyleContext);
|
|
1857
|
+
return /* @__PURE__ */ jsx30(RadixTabs.Trigger, { ref, className: cx(trigger3({ variant, size }), className), ...rest });
|
|
1120
1858
|
});
|
|
1121
|
-
var TabsContent = /* @__PURE__ */
|
|
1122
|
-
return /* @__PURE__ */
|
|
1859
|
+
var TabsContent = /* @__PURE__ */ forwardRef27(function TabsContent2({ className, ...rest }, ref) {
|
|
1860
|
+
return /* @__PURE__ */ jsx30(RadixTabs.Content, { ref, className: cx(content9, className), ...rest });
|
|
1123
1861
|
});
|
|
1124
1862
|
|
|
1125
1863
|
// src/components/Textarea/Textarea.tsx
|
|
1126
1864
|
import {
|
|
1127
|
-
forwardRef as
|
|
1865
|
+
forwardRef as forwardRef28,
|
|
1128
1866
|
useCallback,
|
|
1129
|
-
useEffect as
|
|
1130
|
-
useId as
|
|
1867
|
+
useEffect as useEffect3,
|
|
1868
|
+
useId as useId10,
|
|
1131
1869
|
useLayoutEffect,
|
|
1132
|
-
useRef as
|
|
1133
|
-
useState as
|
|
1870
|
+
useRef as useRef3,
|
|
1871
|
+
useState as useState4
|
|
1134
1872
|
} from "react";
|
|
1135
1873
|
|
|
1136
1874
|
// src/components/Textarea/Textarea.css.ts
|
|
1137
|
-
import { createRuntimeFn as
|
|
1875
|
+
import { createRuntimeFn as _7a46823 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
1138
1876
|
var count = "_1koawa9";
|
|
1139
1877
|
var countOver = "_1koawaa";
|
|
1140
1878
|
var defaultWidth = "_1koawa7";
|
|
1141
|
-
var
|
|
1142
|
-
var textarea =
|
|
1879
|
+
var footer5 = "_1koawa8";
|
|
1880
|
+
var textarea = /* @__PURE__ */ _7a46823({ defaultClassName: "_1koawa0", variantClassNames: { size: { sm: "_1koawa1", md: "_1koawa2", lg: "_1koawa3" }, resize: { none: "_1koawa4", vertical: "_1koawa5", both: "_1koawa6" } }, defaultVariants: { size: "md", resize: "vertical" }, compoundVariants: [] });
|
|
1143
1881
|
|
|
1144
1882
|
// src/components/Textarea/Textarea.tsx
|
|
1145
|
-
import { jsx as
|
|
1146
|
-
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect :
|
|
1147
|
-
var Textarea = /* @__PURE__ */
|
|
1148
|
-
label:
|
|
1149
|
-
helperText:
|
|
1883
|
+
import { jsx as jsx31, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
1884
|
+
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect3;
|
|
1885
|
+
var Textarea = /* @__PURE__ */ forwardRef28(function Textarea2({
|
|
1886
|
+
label: label6,
|
|
1887
|
+
helperText: helperText3,
|
|
1150
1888
|
error,
|
|
1151
1889
|
size,
|
|
1152
1890
|
fullWidth,
|
|
@@ -1156,7 +1894,7 @@ var Textarea = /* @__PURE__ */ forwardRef20(function Textarea2({
|
|
|
1156
1894
|
required,
|
|
1157
1895
|
id,
|
|
1158
1896
|
rows = 3,
|
|
1159
|
-
value:
|
|
1897
|
+
value: value4,
|
|
1160
1898
|
defaultValue,
|
|
1161
1899
|
onChange,
|
|
1162
1900
|
maxLength,
|
|
@@ -1165,12 +1903,12 @@ var Textarea = /* @__PURE__ */ forwardRef20(function Textarea2({
|
|
|
1165
1903
|
"aria-describedby": ariaDescribedBy,
|
|
1166
1904
|
...rest
|
|
1167
1905
|
}, ref) {
|
|
1168
|
-
const generatedId =
|
|
1906
|
+
const generatedId = useId10();
|
|
1169
1907
|
const textareaId = id ?? generatedId;
|
|
1170
|
-
const helperId =
|
|
1171
|
-
const innerRef =
|
|
1172
|
-
const [uncontrolledLength, setUncontrolledLength] =
|
|
1173
|
-
const length =
|
|
1908
|
+
const helperId = helperText3 ? `${textareaId}-helper` : void 0;
|
|
1909
|
+
const innerRef = useRef3(null);
|
|
1910
|
+
const [uncontrolledLength, setUncontrolledLength] = useState4(() => String(defaultValue ?? "").length);
|
|
1911
|
+
const length = value4 !== void 0 ? String(value4).length : uncontrolledLength;
|
|
1174
1912
|
const fitHeight = useCallback(() => {
|
|
1175
1913
|
const el = innerRef.current;
|
|
1176
1914
|
if (!autoResize || !el) return;
|
|
@@ -1178,24 +1916,24 @@ var Textarea = /* @__PURE__ */ forwardRef20(function Textarea2({
|
|
|
1178
1916
|
const borders = el.offsetHeight - el.clientHeight;
|
|
1179
1917
|
el.style.height = `${el.scrollHeight + borders}px`;
|
|
1180
1918
|
}, [autoResize]);
|
|
1181
|
-
useIsomorphicLayoutEffect(fitHeight, [fitHeight,
|
|
1919
|
+
useIsomorphicLayoutEffect(fitHeight, [fitHeight, value4]);
|
|
1182
1920
|
const handleChange = (event) => {
|
|
1183
|
-
if (
|
|
1921
|
+
if (value4 === void 0) setUncontrolledLength(event.target.value.length);
|
|
1184
1922
|
fitHeight();
|
|
1185
1923
|
onChange?.(event);
|
|
1186
1924
|
};
|
|
1187
|
-
return /* @__PURE__ */
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
required && /* @__PURE__ */
|
|
1925
|
+
return /* @__PURE__ */ jsxs25("div", { className: cx(field, fullWidth && fieldFullWidth), children: [
|
|
1926
|
+
label6 && /* @__PURE__ */ jsxs25("label", { htmlFor: textareaId, className: label, children: [
|
|
1927
|
+
label6,
|
|
1928
|
+
required && /* @__PURE__ */ jsx31("span", { className: requiredMark, "aria-hidden": true, children: "*" })
|
|
1191
1929
|
] }),
|
|
1192
|
-
/* @__PURE__ */
|
|
1930
|
+
/* @__PURE__ */ jsx31(
|
|
1193
1931
|
"textarea",
|
|
1194
1932
|
{
|
|
1195
1933
|
ref: mergeRefs(innerRef, ref),
|
|
1196
1934
|
id: textareaId,
|
|
1197
1935
|
rows,
|
|
1198
|
-
value:
|
|
1936
|
+
value: value4,
|
|
1199
1937
|
defaultValue,
|
|
1200
1938
|
onChange: handleChange,
|
|
1201
1939
|
maxLength,
|
|
@@ -1211,34 +1949,34 @@ var Textarea = /* @__PURE__ */ forwardRef20(function Textarea2({
|
|
|
1211
1949
|
...rest
|
|
1212
1950
|
}
|
|
1213
1951
|
),
|
|
1214
|
-
(
|
|
1215
|
-
|
|
1216
|
-
showCount && /* @__PURE__ */
|
|
1952
|
+
(helperText3 || showCount) && /* @__PURE__ */ jsxs25("div", { className: footer5, children: [
|
|
1953
|
+
helperText3 && /* @__PURE__ */ jsx31("p", { id: helperId, className: helperText({ error }), children: helperText3 }),
|
|
1954
|
+
showCount && /* @__PURE__ */ jsx31("span", { className: cx(count, maxLength !== void 0 && length >= maxLength && countOver), children: maxLength !== void 0 ? `${length}/${maxLength}` : length })
|
|
1217
1955
|
] })
|
|
1218
1956
|
] });
|
|
1219
1957
|
});
|
|
1220
1958
|
|
|
1221
1959
|
// src/components/Toast/Toast.tsx
|
|
1222
1960
|
import * as RadixToast from "@radix-ui/react-toast";
|
|
1223
|
-
import { createContext as
|
|
1224
|
-
import { XIcon as
|
|
1961
|
+
import { createContext as createContext4, useCallback as useCallback2, useContext as useContext4, useMemo as useMemo3, useRef as useRef4, useState as useState5 } from "react";
|
|
1962
|
+
import { XIcon as XIcon5 } from "@bestow-ui/icons";
|
|
1225
1963
|
|
|
1226
1964
|
// src/components/Toast/Toast.css.ts
|
|
1227
|
-
import { createRuntimeFn as
|
|
1228
|
-
var
|
|
1229
|
-
var close = "
|
|
1230
|
-
var
|
|
1231
|
-
var
|
|
1232
|
-
var toast =
|
|
1965
|
+
import { createRuntimeFn as _7a46824 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
1966
|
+
var action2 = "_1g11zvx8";
|
|
1967
|
+
var close = "_1g11zvx9";
|
|
1968
|
+
var description5 = "_1g11zvx7";
|
|
1969
|
+
var title5 = "_1g11zvx6";
|
|
1970
|
+
var toast = /* @__PURE__ */ _7a46824({ defaultClassName: "_1g11zvx1", variantClassNames: { variant: { "default": "_1g11zvx2", success: "_1g11zvx3", warning: "_1g11zvx4", danger: "_1g11zvx5" } }, defaultVariants: { variant: "default" }, compoundVariants: [] });
|
|
1233
1971
|
var viewport2 = "_1g11zvx0";
|
|
1234
1972
|
|
|
1235
1973
|
// src/components/Toast/Toast.tsx
|
|
1236
|
-
import { jsx as
|
|
1974
|
+
import { jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
1237
1975
|
var REMOVE_DELAY = 500;
|
|
1238
|
-
var ToastContext = /* @__PURE__ */
|
|
1239
|
-
function ToastProvider({ children, duration = 5e3, label:
|
|
1240
|
-
const [toasts, setToasts] =
|
|
1241
|
-
const nextId =
|
|
1976
|
+
var ToastContext = /* @__PURE__ */ createContext4(null);
|
|
1977
|
+
function ToastProvider({ children, duration = 5e3, label: label6 = "\uC54C\uB9BC" }) {
|
|
1978
|
+
const [toasts, setToasts] = useState5([]);
|
|
1979
|
+
const nextId = useRef4(0);
|
|
1242
1980
|
const portal2 = usePortalProps();
|
|
1243
1981
|
const toast2 = useCallback2((options) => {
|
|
1244
1982
|
const id = nextId.current++;
|
|
@@ -1250,10 +1988,10 @@ function ToastProvider({ children, duration = 5e3, label: label4 = "\uC54C\uB9BC
|
|
|
1250
1988
|
setToasts((prev) => prev.map((t) => isTarget(t) ? { ...t, open: false } : t));
|
|
1251
1989
|
setTimeout(() => setToasts((prev) => prev.filter((t) => t.open || !isTarget(t))), REMOVE_DELAY);
|
|
1252
1990
|
}, []);
|
|
1253
|
-
const
|
|
1254
|
-
return /* @__PURE__ */
|
|
1991
|
+
const value4 = useMemo3(() => ({ toast: toast2, dismiss }), [toast2, dismiss]);
|
|
1992
|
+
return /* @__PURE__ */ jsx32(ToastContext.Provider, { value: value4, children: /* @__PURE__ */ jsxs26(RadixToast.Provider, { duration, label: label6, swipeDirection: "right", children: [
|
|
1255
1993
|
children,
|
|
1256
|
-
toasts.map(({ id, open, title:
|
|
1994
|
+
toasts.map(({ id, open, title: title6, description: description6, variant, duration: itemDuration, action: action3 }) => /* @__PURE__ */ jsxs26(
|
|
1257
1995
|
RadixToast.Root,
|
|
1258
1996
|
{
|
|
1259
1997
|
open,
|
|
@@ -1263,19 +2001,19 @@ function ToastProvider({ children, duration = 5e3, label: label4 = "\uC54C\uB9BC
|
|
|
1263
2001
|
},
|
|
1264
2002
|
className: toast({ variant }),
|
|
1265
2003
|
children: [
|
|
1266
|
-
/* @__PURE__ */
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
/* @__PURE__ */
|
|
2004
|
+
/* @__PURE__ */ jsx32(RadixToast.Title, { className: title5, children: title6 }),
|
|
2005
|
+
description6 && /* @__PURE__ */ jsx32(RadixToast.Description, { className: description5, children: description6 }),
|
|
2006
|
+
action3 && /* @__PURE__ */ jsx32(RadixToast.Action, { asChild: true, altText: action3.altText ?? action3.label, className: action2, children: /* @__PURE__ */ jsx32(Button, { size: "sm", variant: "soft", color: "neutral", onClick: action3.onClick, children: action3.label }) }),
|
|
2007
|
+
/* @__PURE__ */ jsx32(RadixToast.Close, { className: close, "aria-label": "\uB2EB\uAE30", children: /* @__PURE__ */ jsx32(XIcon5, { size: 16 }) })
|
|
1270
2008
|
]
|
|
1271
2009
|
},
|
|
1272
2010
|
id
|
|
1273
2011
|
)),
|
|
1274
|
-
/* @__PURE__ */
|
|
2012
|
+
/* @__PURE__ */ jsx32(RadixToast.Viewport, { className: cx(portal2.className, viewport2), style: portal2.style })
|
|
1275
2013
|
] }) });
|
|
1276
2014
|
}
|
|
1277
2015
|
function useToast() {
|
|
1278
|
-
const context =
|
|
2016
|
+
const context = useContext4(ToastContext);
|
|
1279
2017
|
if (!context) throw new Error("useToast \uB294 ToastProvider \uC548\uC5D0\uC11C \uC0AC\uC6A9\uD574\uC57C \uD569\uB2C8\uB2E4.");
|
|
1280
2018
|
return context;
|
|
1281
2019
|
}
|
|
@@ -1285,12 +2023,12 @@ import * as RadixTooltip from "@radix-ui/react-tooltip";
|
|
|
1285
2023
|
|
|
1286
2024
|
// src/components/Tooltip/Tooltip.css.ts
|
|
1287
2025
|
var arrow2 = "z7rufs1";
|
|
1288
|
-
var
|
|
2026
|
+
var content10 = "z7rufs0";
|
|
1289
2027
|
|
|
1290
2028
|
// src/components/Tooltip/Tooltip.tsx
|
|
1291
|
-
import { jsx as
|
|
2029
|
+
import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
1292
2030
|
function Tooltip({
|
|
1293
|
-
content:
|
|
2031
|
+
content: content11,
|
|
1294
2032
|
children,
|
|
1295
2033
|
side = "top",
|
|
1296
2034
|
align = "center",
|
|
@@ -1302,21 +2040,21 @@ function Tooltip({
|
|
|
1302
2040
|
className
|
|
1303
2041
|
}) {
|
|
1304
2042
|
const portal2 = usePortalProps();
|
|
1305
|
-
if (disabled ||
|
|
1306
|
-
return /* @__PURE__ */
|
|
1307
|
-
/* @__PURE__ */
|
|
1308
|
-
/* @__PURE__ */
|
|
2043
|
+
if (disabled || content11 == null || content11 === "") return children;
|
|
2044
|
+
return /* @__PURE__ */ jsx33(RadixTooltip.Provider, { delayDuration: delay, children: /* @__PURE__ */ jsxs27(RadixTooltip.Root, { open, defaultOpen, onOpenChange, children: [
|
|
2045
|
+
/* @__PURE__ */ jsx33(RadixTooltip.Trigger, { asChild: true, children }),
|
|
2046
|
+
/* @__PURE__ */ jsx33(RadixTooltip.Portal, { children: /* @__PURE__ */ jsxs27(
|
|
1309
2047
|
RadixTooltip.Content,
|
|
1310
2048
|
{
|
|
1311
2049
|
side,
|
|
1312
2050
|
align,
|
|
1313
2051
|
sideOffset: 6,
|
|
1314
2052
|
collisionPadding: 8,
|
|
1315
|
-
className: cx(portal2.className,
|
|
2053
|
+
className: cx(portal2.className, content10, className),
|
|
1316
2054
|
style: portal2.style,
|
|
1317
2055
|
children: [
|
|
1318
|
-
|
|
1319
|
-
/* @__PURE__ */
|
|
2056
|
+
content11,
|
|
2057
|
+
/* @__PURE__ */ jsx33(RadixTooltip.Arrow, { className: arrow2, width: 10, height: 5 })
|
|
1320
2058
|
]
|
|
1321
2059
|
}
|
|
1322
2060
|
) })
|
|
@@ -1324,14 +2062,14 @@ function Tooltip({
|
|
|
1324
2062
|
}
|
|
1325
2063
|
|
|
1326
2064
|
// src/components/Typography/Typography.tsx
|
|
1327
|
-
import { forwardRef as
|
|
2065
|
+
import { forwardRef as forwardRef29 } from "react";
|
|
1328
2066
|
|
|
1329
2067
|
// src/components/Typography/Typography.css.ts
|
|
1330
|
-
import { createRuntimeFn as
|
|
1331
|
-
var typography =
|
|
2068
|
+
import { createRuntimeFn as _7a46825 } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
2069
|
+
var typography = /* @__PURE__ */ _7a46825({ 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", warning: "kioliog", inherit: "kiolioh" }, weight: { regular: "kiolioi", medium: "kiolioj", semibold: "kioliok", bold: "kioliol" }, align: { start: "kioliom", center: "kiolion", end: "kiolioo" }, truncate: { true: "kioliop" } }, defaultVariants: { variant: "body", color: "default" }, compoundVariants: [] });
|
|
1332
2070
|
|
|
1333
2071
|
// src/components/Typography/Typography.tsx
|
|
1334
|
-
import { jsx as
|
|
2072
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
1335
2073
|
var defaultElement = {
|
|
1336
2074
|
display: "h1",
|
|
1337
2075
|
h1: "h1",
|
|
@@ -1343,9 +2081,9 @@ var defaultElement = {
|
|
|
1343
2081
|
"body-sm": "p",
|
|
1344
2082
|
caption: "span"
|
|
1345
2083
|
};
|
|
1346
|
-
var Typography = /* @__PURE__ */
|
|
2084
|
+
var Typography = /* @__PURE__ */ forwardRef29(function Typography2({ variant = "body", as, color, weight, align, truncate, className, ...rest }, ref) {
|
|
1347
2085
|
const Component = as ?? defaultElement[variant];
|
|
1348
|
-
return /* @__PURE__ */
|
|
2086
|
+
return /* @__PURE__ */ jsx34(
|
|
1349
2087
|
Component,
|
|
1350
2088
|
{
|
|
1351
2089
|
ref,
|
|
@@ -1357,15 +2095,20 @@ var Typography = /* @__PURE__ */ forwardRef21(function Typography2({ variant = "
|
|
|
1357
2095
|
export {
|
|
1358
2096
|
Accordion,
|
|
1359
2097
|
AccordionItem,
|
|
2098
|
+
Alert,
|
|
1360
2099
|
Avatar,
|
|
1361
2100
|
Badge,
|
|
2101
|
+
Breadcrumb,
|
|
1362
2102
|
Button,
|
|
1363
2103
|
Card,
|
|
1364
2104
|
CardBody,
|
|
1365
2105
|
CardFooter,
|
|
1366
2106
|
CardHeader,
|
|
1367
2107
|
Checkbox,
|
|
2108
|
+
Combobox,
|
|
1368
2109
|
Divider,
|
|
2110
|
+
Drawer,
|
|
2111
|
+
DrawerClose,
|
|
1369
2112
|
DropdownMenu,
|
|
1370
2113
|
DropdownMenuContent,
|
|
1371
2114
|
DropdownMenuGroup,
|
|
@@ -1373,18 +2116,29 @@ export {
|
|
|
1373
2116
|
DropdownMenuLabel,
|
|
1374
2117
|
DropdownMenuSeparator,
|
|
1375
2118
|
DropdownMenuTrigger,
|
|
2119
|
+
IconButton,
|
|
1376
2120
|
Input,
|
|
2121
|
+
Link,
|
|
1377
2122
|
Modal,
|
|
1378
2123
|
ModalClose,
|
|
1379
2124
|
Pagination,
|
|
1380
|
-
Popover,
|
|
2125
|
+
Popover2 as Popover,
|
|
1381
2126
|
PopoverClose,
|
|
2127
|
+
Progress,
|
|
1382
2128
|
RadioGroup,
|
|
1383
2129
|
Select,
|
|
1384
2130
|
Skeleton,
|
|
2131
|
+
Slider,
|
|
1385
2132
|
Spinner,
|
|
1386
2133
|
Stack,
|
|
1387
2134
|
Switch,
|
|
2135
|
+
Table,
|
|
2136
|
+
TableBody,
|
|
2137
|
+
TableCell,
|
|
2138
|
+
TableFooter,
|
|
2139
|
+
TableHead,
|
|
2140
|
+
TableHeader,
|
|
2141
|
+
TableRow,
|
|
1388
2142
|
Tabs,
|
|
1389
2143
|
TabsContent,
|
|
1390
2144
|
TabsList,
|