mokona-ui 0.0.1
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 +273 -0
- package/dist/accordion.cjs +13 -0
- package/dist/accordion.cjs.map +1 -0
- package/dist/accordion.d.cts +21 -0
- package/dist/accordion.d.ts +21 -0
- package/dist/accordion.js +4 -0
- package/dist/accordion.js.map +1 -0
- package/dist/alert.cjs +13 -0
- package/dist/alert.cjs.map +1 -0
- package/dist/alert.d.cts +14 -0
- package/dist/alert.d.ts +14 -0
- package/dist/alert.js +4 -0
- package/dist/alert.js.map +1 -0
- package/dist/amount.cjs +18 -0
- package/dist/amount.cjs.map +1 -0
- package/dist/amount.d.cts +39 -0
- package/dist/amount.d.ts +39 -0
- package/dist/amount.js +5 -0
- package/dist/amount.js.map +1 -0
- package/dist/avatar.cjs +13 -0
- package/dist/avatar.cjs.map +1 -0
- package/dist/avatar.d.cts +16 -0
- package/dist/avatar.d.ts +16 -0
- package/dist/avatar.js +4 -0
- package/dist/avatar.js.map +1 -0
- package/dist/badge.cjs +17 -0
- package/dist/badge.cjs.map +1 -0
- package/dist/badge.d.cts +13 -0
- package/dist/badge.d.ts +13 -0
- package/dist/badge.js +4 -0
- package/dist/badge.js.map +1 -0
- package/dist/bottom-sheet.cjs +14 -0
- package/dist/bottom-sheet.cjs.map +1 -0
- package/dist/bottom-sheet.d.cts +14 -0
- package/dist/bottom-sheet.d.ts +14 -0
- package/dist/bottom-sheet.js +5 -0
- package/dist/bottom-sheet.js.map +1 -0
- package/dist/button.cjs +18 -0
- package/dist/button.cjs.map +1 -0
- package/dist/button.d.cts +16 -0
- package/dist/button.d.ts +16 -0
- package/dist/button.js +5 -0
- package/dist/button.js.map +1 -0
- package/dist/calendar.cjs +14 -0
- package/dist/calendar.cjs.map +1 -0
- package/dist/calendar.d.cts +13 -0
- package/dist/calendar.d.ts +13 -0
- package/dist/calendar.js +5 -0
- package/dist/calendar.js.map +1 -0
- package/dist/card.cjs +18 -0
- package/dist/card.cjs.map +1 -0
- package/dist/card.d.cts +14 -0
- package/dist/card.d.ts +14 -0
- package/dist/card.js +5 -0
- package/dist/card.js.map +1 -0
- package/dist/checkbox.cjs +14 -0
- package/dist/checkbox.cjs.map +1 -0
- package/dist/checkbox.d.cts +9 -0
- package/dist/checkbox.d.ts +9 -0
- package/dist/checkbox.js +5 -0
- package/dist/checkbox.js.map +1 -0
- package/dist/chip.cjs +14 -0
- package/dist/chip.cjs.map +1 -0
- package/dist/chip.d.cts +9 -0
- package/dist/chip.d.ts +9 -0
- package/dist/chip.js +5 -0
- package/dist/chip.js.map +1 -0
- package/dist/chunk-27EKI7CM.cjs +74 -0
- package/dist/chunk-27EKI7CM.cjs.map +1 -0
- package/dist/chunk-2AOEUASU.cjs +123 -0
- package/dist/chunk-2AOEUASU.cjs.map +1 -0
- package/dist/chunk-355VBEHS.js +51 -0
- package/dist/chunk-355VBEHS.js.map +1 -0
- package/dist/chunk-4C6E37KK.js +134 -0
- package/dist/chunk-4C6E37KK.js.map +1 -0
- package/dist/chunk-4S23TNFZ.cjs +115 -0
- package/dist/chunk-4S23TNFZ.cjs.map +1 -0
- package/dist/chunk-4V3IOZPC.cjs +61 -0
- package/dist/chunk-4V3IOZPC.cjs.map +1 -0
- package/dist/chunk-4YQPDHZP.cjs +69 -0
- package/dist/chunk-4YQPDHZP.cjs.map +1 -0
- package/dist/chunk-6CMR4MT4.js +101 -0
- package/dist/chunk-6CMR4MT4.js.map +1 -0
- package/dist/chunk-7B6U7GED.js +67 -0
- package/dist/chunk-7B6U7GED.js.map +1 -0
- package/dist/chunk-7GQ4YVJR.js +68 -0
- package/dist/chunk-7GQ4YVJR.js.map +1 -0
- package/dist/chunk-AFX7CBRR.cjs +97 -0
- package/dist/chunk-AFX7CBRR.cjs.map +1 -0
- package/dist/chunk-ARXXD2ZI.cjs +75 -0
- package/dist/chunk-ARXXD2ZI.cjs.map +1 -0
- package/dist/chunk-BCX5S6PO.js +41 -0
- package/dist/chunk-BCX5S6PO.js.map +1 -0
- package/dist/chunk-BJWRAJEH.cjs +61 -0
- package/dist/chunk-BJWRAJEH.cjs.map +1 -0
- package/dist/chunk-CX55SVMP.js +68 -0
- package/dist/chunk-CX55SVMP.js.map +1 -0
- package/dist/chunk-CZ4RHRM2.cjs +130 -0
- package/dist/chunk-CZ4RHRM2.cjs.map +1 -0
- package/dist/chunk-DDV6JQEW.js +57 -0
- package/dist/chunk-DDV6JQEW.js.map +1 -0
- package/dist/chunk-DR6JPBH7.js +126 -0
- package/dist/chunk-DR6JPBH7.js.map +1 -0
- package/dist/chunk-EVF7QZMA.cjs +46 -0
- package/dist/chunk-EVF7QZMA.cjs.map +1 -0
- package/dist/chunk-EXARWE5B.js +56 -0
- package/dist/chunk-EXARWE5B.js.map +1 -0
- package/dist/chunk-FUIIR7CU.js +32 -0
- package/dist/chunk-FUIIR7CU.js.map +1 -0
- package/dist/chunk-FXOOVZWB.js +39 -0
- package/dist/chunk-FXOOVZWB.js.map +1 -0
- package/dist/chunk-FYFPGECC.js +39 -0
- package/dist/chunk-FYFPGECC.js.map +1 -0
- package/dist/chunk-GFZKSV7F.cjs +73 -0
- package/dist/chunk-GFZKSV7F.cjs.map +1 -0
- package/dist/chunk-GGXFXP6U.js +130 -0
- package/dist/chunk-GGXFXP6U.js.map +1 -0
- package/dist/chunk-HLRY4SDE.js +43 -0
- package/dist/chunk-HLRY4SDE.js.map +1 -0
- package/dist/chunk-HYWJ73QZ.cjs +155 -0
- package/dist/chunk-HYWJ73QZ.cjs.map +1 -0
- package/dist/chunk-I2ANUQHL.js +81 -0
- package/dist/chunk-I2ANUQHL.js.map +1 -0
- package/dist/chunk-IDASIFTM.js +56 -0
- package/dist/chunk-IDASIFTM.js.map +1 -0
- package/dist/chunk-IH7OSDQI.js +70 -0
- package/dist/chunk-IH7OSDQI.js.map +1 -0
- package/dist/chunk-IOBAQ35P.js +42 -0
- package/dist/chunk-IOBAQ35P.js.map +1 -0
- package/dist/chunk-IVANXF6O.js +107 -0
- package/dist/chunk-IVANXF6O.js.map +1 -0
- package/dist/chunk-JGO5TBYB.cjs +58 -0
- package/dist/chunk-JGO5TBYB.cjs.map +1 -0
- package/dist/chunk-JQ55FV4C.js +75 -0
- package/dist/chunk-JQ55FV4C.js.map +1 -0
- package/dist/chunk-JQDD6AYM.js +52 -0
- package/dist/chunk-JQDD6AYM.js.map +1 -0
- package/dist/chunk-JWE5X3SW.cjs +80 -0
- package/dist/chunk-JWE5X3SW.cjs.map +1 -0
- package/dist/chunk-KFFQVTKW.cjs +91 -0
- package/dist/chunk-KFFQVTKW.cjs.map +1 -0
- package/dist/chunk-LC5SUZE5.cjs +80 -0
- package/dist/chunk-LC5SUZE5.cjs.map +1 -0
- package/dist/chunk-LCABZUFW.js +3 -0
- package/dist/chunk-LCABZUFW.js.map +1 -0
- package/dist/chunk-MFRGAZ4M.cjs +157 -0
- package/dist/chunk-MFRGAZ4M.cjs.map +1 -0
- package/dist/chunk-MIR34HKE.cjs +91 -0
- package/dist/chunk-MIR34HKE.cjs.map +1 -0
- package/dist/chunk-MP442EWS.cjs +152 -0
- package/dist/chunk-MP442EWS.cjs.map +1 -0
- package/dist/chunk-MTIJTTKO.cjs +75 -0
- package/dist/chunk-MTIJTTKO.cjs.map +1 -0
- package/dist/chunk-MVGUWG27.js +56 -0
- package/dist/chunk-MVGUWG27.js.map +1 -0
- package/dist/chunk-MWP6IFVJ.cjs +93 -0
- package/dist/chunk-MWP6IFVJ.cjs.map +1 -0
- package/dist/chunk-NF7D4E7V.js +52 -0
- package/dist/chunk-NF7D4E7V.js.map +1 -0
- package/dist/chunk-NRBDDNYV.cjs +107 -0
- package/dist/chunk-NRBDDNYV.cjs.map +1 -0
- package/dist/chunk-OBDN7ROH.cjs +490 -0
- package/dist/chunk-OBDN7ROH.cjs.map +1 -0
- package/dist/chunk-OE7M66OR.cjs +56 -0
- package/dist/chunk-OE7M66OR.cjs.map +1 -0
- package/dist/chunk-PGUGP5EL.cjs +135 -0
- package/dist/chunk-PGUGP5EL.cjs.map +1 -0
- package/dist/chunk-Q7764J2G.cjs +61 -0
- package/dist/chunk-Q7764J2G.cjs.map +1 -0
- package/dist/chunk-QYQDCGOD.js +82 -0
- package/dist/chunk-QYQDCGOD.js.map +1 -0
- package/dist/chunk-RDYETV4X.cjs +64 -0
- package/dist/chunk-RDYETV4X.cjs.map +1 -0
- package/dist/chunk-RIXU7XN6.cjs +90 -0
- package/dist/chunk-RIXU7XN6.cjs.map +1 -0
- package/dist/chunk-RKGIGQ5C.cjs +4 -0
- package/dist/chunk-RKGIGQ5C.cjs.map +1 -0
- package/dist/chunk-RS457SPB.js +464 -0
- package/dist/chunk-RS457SPB.js.map +1 -0
- package/dist/chunk-SG5Z3YFN.cjs +83 -0
- package/dist/chunk-SG5Z3YFN.cjs.map +1 -0
- package/dist/chunk-SHEMISNH.cjs +81 -0
- package/dist/chunk-SHEMISNH.cjs.map +1 -0
- package/dist/chunk-SPHRMXOV.js +85 -0
- package/dist/chunk-SPHRMXOV.js.map +1 -0
- package/dist/chunk-TIWBLISD.js +87 -0
- package/dist/chunk-TIWBLISD.js.map +1 -0
- package/dist/chunk-TMR56BBE.js +3 -0
- package/dist/chunk-TMR56BBE.js.map +1 -0
- package/dist/chunk-U5KHRCO4.cjs +105 -0
- package/dist/chunk-U5KHRCO4.cjs.map +1 -0
- package/dist/chunk-UPW5X46R.js +58 -0
- package/dist/chunk-UPW5X46R.js.map +1 -0
- package/dist/chunk-UXYAKGI2.cjs +24 -0
- package/dist/chunk-UXYAKGI2.cjs.map +1 -0
- package/dist/chunk-VBT7USXE.cjs +63 -0
- package/dist/chunk-VBT7USXE.cjs.map +1 -0
- package/dist/chunk-VIA2FAQY.js +46 -0
- package/dist/chunk-VIA2FAQY.js.map +1 -0
- package/dist/chunk-WEVRQAGZ.js +57 -0
- package/dist/chunk-WEVRQAGZ.js.map +1 -0
- package/dist/chunk-WWQNTWRL.js +107 -0
- package/dist/chunk-WWQNTWRL.js.map +1 -0
- package/dist/chunk-X4QHDEEJ.cjs +4 -0
- package/dist/chunk-X4QHDEEJ.cjs.map +1 -0
- package/dist/chunk-XJZNX76V.js +66 -0
- package/dist/chunk-XJZNX76V.js.map +1 -0
- package/dist/chunk-XRUGFKB3.js +34 -0
- package/dist/chunk-XRUGFKB3.js.map +1 -0
- package/dist/chunk-XURQVDCN.cjs +4 -0
- package/dist/chunk-XURQVDCN.cjs.map +1 -0
- package/dist/chunk-XVIQ4OUN.cjs +89 -0
- package/dist/chunk-XVIQ4OUN.cjs.map +1 -0
- package/dist/chunk-XWKZ72LI.cjs +80 -0
- package/dist/chunk-XWKZ72LI.cjs.map +1 -0
- package/dist/chunk-Y3CWICHE.js +3 -0
- package/dist/chunk-Y3CWICHE.js.map +1 -0
- package/dist/chunk-Z3U3EZRC.js +93 -0
- package/dist/chunk-Z3U3EZRC.js.map +1 -0
- package/dist/chunk-Z4JZDLTZ.cjs +109 -0
- package/dist/chunk-Z4JZDLTZ.cjs.map +1 -0
- package/dist/chunk-ZDARKNSQ.cjs +54 -0
- package/dist/chunk-ZDARKNSQ.cjs.map +1 -0
- package/dist/chunk-ZH3KC4ES.js +51 -0
- package/dist/chunk-ZH3KC4ES.js.map +1 -0
- package/dist/chunk-ZPUYNM37.js +3 -0
- package/dist/chunk-ZPUYNM37.js.map +1 -0
- package/dist/chunk-ZUODIL43.js +113 -0
- package/dist/chunk-ZUODIL43.js.map +1 -0
- package/dist/chunk-ZXL4IUJ4.cjs +129 -0
- package/dist/chunk-ZXL4IUJ4.cjs.map +1 -0
- package/dist/date-picker.cjs +15 -0
- package/dist/date-picker.cjs.map +1 -0
- package/dist/date-picker.d.cts +19 -0
- package/dist/date-picker.d.ts +19 -0
- package/dist/date-picker.js +6 -0
- package/dist/date-picker.js.map +1 -0
- package/dist/divider.cjs +13 -0
- package/dist/divider.cjs.map +1 -0
- package/dist/divider.d.cts +9 -0
- package/dist/divider.d.ts +9 -0
- package/dist/divider.js +4 -0
- package/dist/divider.js.map +1 -0
- package/dist/dropdown-menu.cjs +13 -0
- package/dist/dropdown-menu.cjs.map +1 -0
- package/dist/dropdown-menu.d.cts +23 -0
- package/dist/dropdown-menu.d.ts +23 -0
- package/dist/dropdown-menu.js +4 -0
- package/dist/dropdown-menu.js.map +1 -0
- package/dist/empty.cjs +13 -0
- package/dist/empty.cjs.map +1 -0
- package/dist/empty.d.cts +11 -0
- package/dist/empty.d.ts +11 -0
- package/dist/empty.js +4 -0
- package/dist/empty.js.map +1 -0
- package/dist/form.cjs +33 -0
- package/dist/form.cjs.map +1 -0
- package/dist/form.d.cts +18 -0
- package/dist/form.d.ts +18 -0
- package/dist/form.js +4 -0
- package/dist/form.js.map +1 -0
- package/dist/icon.cjs +13 -0
- package/dist/icon.cjs.map +1 -0
- package/dist/icon.d.cts +12 -0
- package/dist/icon.d.ts +12 -0
- package/dist/icon.js +4 -0
- package/dist/icon.js.map +1 -0
- package/dist/index.cjs +350 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +167 -0
- package/dist/index.d.ts +167 -0
- package/dist/index.js +130 -0
- package/dist/index.js.map +1 -0
- package/dist/modal.cjs +13 -0
- package/dist/modal.cjs.map +1 -0
- package/dist/modal.d.cts +17 -0
- package/dist/modal.d.ts +17 -0
- package/dist/modal.js +4 -0
- package/dist/modal.js.map +1 -0
- package/dist/otp-input.cjs +13 -0
- package/dist/otp-input.cjs.map +1 -0
- package/dist/otp-input.d.cts +17 -0
- package/dist/otp-input.d.ts +17 -0
- package/dist/otp-input.js +4 -0
- package/dist/otp-input.js.map +1 -0
- package/dist/pagination.cjs +13 -0
- package/dist/pagination.cjs.map +1 -0
- package/dist/pagination.d.cts +12 -0
- package/dist/pagination.d.ts +12 -0
- package/dist/pagination.js +4 -0
- package/dist/pagination.js.map +1 -0
- package/dist/popover.cjs +14 -0
- package/dist/popover.cjs.map +1 -0
- package/dist/popover.d.cts +16 -0
- package/dist/popover.d.ts +16 -0
- package/dist/popover.js +5 -0
- package/dist/popover.js.map +1 -0
- package/dist/progress.cjs +13 -0
- package/dist/progress.cjs.map +1 -0
- package/dist/progress.d.cts +12 -0
- package/dist/progress.d.ts +12 -0
- package/dist/progress.js +4 -0
- package/dist/progress.js.map +1 -0
- package/dist/radio.cjs +13 -0
- package/dist/radio.cjs.map +1 -0
- package/dist/radio.d.cts +16 -0
- package/dist/radio.d.ts +16 -0
- package/dist/radio.js +4 -0
- package/dist/radio.js.map +1 -0
- package/dist/select.cjs +13 -0
- package/dist/select.cjs.map +1 -0
- package/dist/select.d.cts +23 -0
- package/dist/select.d.ts +23 -0
- package/dist/select.js +4 -0
- package/dist/select.js.map +1 -0
- package/dist/skeleton.cjs +13 -0
- package/dist/skeleton.cjs.map +1 -0
- package/dist/skeleton.d.cts +11 -0
- package/dist/skeleton.d.ts +11 -0
- package/dist/skeleton.js +4 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/slider.cjs +13 -0
- package/dist/slider.cjs.map +1 -0
- package/dist/slider.d.cts +11 -0
- package/dist/slider.d.ts +11 -0
- package/dist/slider.js +4 -0
- package/dist/slider.js.map +1 -0
- package/dist/spinner.cjs +14 -0
- package/dist/spinner.cjs.map +1 -0
- package/dist/spinner.d.cts +18 -0
- package/dist/spinner.d.ts +18 -0
- package/dist/spinner.js +5 -0
- package/dist/spinner.js.map +1 -0
- package/dist/stepper.cjs +13 -0
- package/dist/stepper.cjs.map +1 -0
- package/dist/stepper.d.cts +15 -0
- package/dist/stepper.d.ts +15 -0
- package/dist/stepper.js +4 -0
- package/dist/stepper.js.map +1 -0
- package/dist/table.cjs +13 -0
- package/dist/table.cjs.map +1 -0
- package/dist/table.d.cts +23 -0
- package/dist/table.d.ts +23 -0
- package/dist/table.js +4 -0
- package/dist/table.js.map +1 -0
- package/dist/tabs.cjs +13 -0
- package/dist/tabs.cjs.map +1 -0
- package/dist/tabs.d.cts +16 -0
- package/dist/tabs.d.ts +16 -0
- package/dist/tabs.js +4 -0
- package/dist/tabs.js.map +1 -0
- package/dist/text.cjs +18 -0
- package/dist/text.cjs.map +1 -0
- package/dist/text.d.cts +18 -0
- package/dist/text.d.ts +18 -0
- package/dist/text.js +5 -0
- package/dist/text.js.map +1 -0
- package/dist/textarea.cjs +13 -0
- package/dist/textarea.cjs.map +1 -0
- package/dist/textarea.d.cts +13 -0
- package/dist/textarea.d.ts +13 -0
- package/dist/textarea.js +4 -0
- package/dist/textarea.js.map +1 -0
- package/dist/textfield.cjs +13 -0
- package/dist/textfield.cjs.map +1 -0
- package/dist/textfield.d.cts +11 -0
- package/dist/textfield.d.ts +11 -0
- package/dist/textfield.js +4 -0
- package/dist/textfield.js.map +1 -0
- package/dist/toast.cjs +37 -0
- package/dist/toast.cjs.map +1 -0
- package/dist/toast.d.cts +53 -0
- package/dist/toast.d.ts +53 -0
- package/dist/toast.js +4 -0
- package/dist/toast.js.map +1 -0
- package/dist/toggle.cjs +13 -0
- package/dist/toggle.cjs.map +1 -0
- package/dist/toggle.d.cts +10 -0
- package/dist/toggle.d.ts +10 -0
- package/dist/toggle.js +4 -0
- package/dist/toggle.js.map +1 -0
- package/dist/tooltip.cjs +13 -0
- package/dist/tooltip.cjs.map +1 -0
- package/dist/tooltip.d.cts +15 -0
- package/dist/tooltip.d.ts +15 -0
- package/dist/tooltip.js +4 -0
- package/dist/tooltip.js.map +1 -0
- package/package.json +276 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { LazyMotion, domAnimation, AnimatePresence, m } from './chunk-Y3CWICHE.js';
|
|
2
|
+
import { cn } from './chunk-MVGUWG27.js';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
5
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
function BottomSheet({
|
|
8
|
+
open: openProp,
|
|
9
|
+
onOpenChange,
|
|
10
|
+
title,
|
|
11
|
+
description,
|
|
12
|
+
children,
|
|
13
|
+
trigger
|
|
14
|
+
}) {
|
|
15
|
+
const [internalOpen, setInternalOpen] = React.useState(false);
|
|
16
|
+
const isControlled = openProp !== void 0;
|
|
17
|
+
const open = isControlled ? openProp : internalOpen;
|
|
18
|
+
const handleOpenChange = (value) => {
|
|
19
|
+
if (!isControlled) setInternalOpen(value);
|
|
20
|
+
onOpenChange == null ? void 0 : onOpenChange(value);
|
|
21
|
+
};
|
|
22
|
+
return /* @__PURE__ */ jsx(LazyMotion, { features: domAnimation, children: /* @__PURE__ */ jsxs(DialogPrimitive.Root, { open, onOpenChange: handleOpenChange, children: [
|
|
23
|
+
trigger && /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { asChild: true, children: trigger }),
|
|
24
|
+
/* @__PURE__ */ jsx(AnimatePresence, { children: open && /* @__PURE__ */ jsxs(DialogPrimitive.Portal, { children: [
|
|
25
|
+
/* @__PURE__ */ jsx(DialogPrimitive.Overlay, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
26
|
+
m.div,
|
|
27
|
+
{
|
|
28
|
+
className: "fixed inset-0 z-50 bg-[var(--color-overlay)]",
|
|
29
|
+
initial: { opacity: 0 },
|
|
30
|
+
animate: { opacity: 1 },
|
|
31
|
+
exit: { opacity: 0 },
|
|
32
|
+
transition: { duration: 0.2 }
|
|
33
|
+
}
|
|
34
|
+
) }),
|
|
35
|
+
/* @__PURE__ */ jsx(DialogPrimitive.Content, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
36
|
+
m.div,
|
|
37
|
+
{
|
|
38
|
+
className: cn(
|
|
39
|
+
"fixed bottom-0 left-0 right-0 z-50",
|
|
40
|
+
"bg-[var(--color-background)] rounded-t-3xl",
|
|
41
|
+
"shadow-[var(--shadow-overlay)]",
|
|
42
|
+
"px-5 pb-safe"
|
|
43
|
+
),
|
|
44
|
+
initial: { y: "100%" },
|
|
45
|
+
animate: { y: 0 },
|
|
46
|
+
exit: { y: "100%" },
|
|
47
|
+
transition: { type: "spring", stiffness: 300, damping: 30 },
|
|
48
|
+
drag: "y",
|
|
49
|
+
dragConstraints: { top: 0 },
|
|
50
|
+
dragElastic: { top: 0, bottom: 0.3 },
|
|
51
|
+
onDragEnd: (_, info) => {
|
|
52
|
+
if (info.offset.y > 80) handleOpenChange(false);
|
|
53
|
+
},
|
|
54
|
+
children: [
|
|
55
|
+
/* @__PURE__ */ jsx("div", { className: "flex justify-center pt-3 pb-4", children: /* @__PURE__ */ jsx("div", { className: "w-9 h-1 rounded-full bg-[var(--color-gray-300)]" }) }),
|
|
56
|
+
title && /* @__PURE__ */ jsx(DialogPrimitive.Title, { className: "text-[18px] font-bold text-[var(--color-foreground)] mb-1", children: title }),
|
|
57
|
+
description && /* @__PURE__ */ jsx(DialogPrimitive.Description, { className: "text-[14px] text-[var(--color-muted-foreground)] mb-4", children: description }),
|
|
58
|
+
/* @__PURE__ */ jsx("div", { className: "pb-8", children })
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
) })
|
|
62
|
+
] }) })
|
|
63
|
+
] }) });
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export { BottomSheet };
|
|
67
|
+
//# sourceMappingURL=chunk-7GQ4YVJR.js.map
|
|
68
|
+
//# sourceMappingURL=chunk-7GQ4YVJR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"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","file":"chunk-7GQ4YVJR.js","sourcesContent":["import * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { m, LazyMotion, domAnimation, AnimatePresence } from \"../../utils/motion\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface BottomSheetProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n title?: string;\n description?: string;\n children?: React.ReactNode;\n trigger?: React.ReactNode;\n}\n\nfunction BottomSheet({\n open: openProp,\n onOpenChange,\n title,\n description,\n children,\n trigger,\n}: BottomSheetProps) {\n const [internalOpen, setInternalOpen] = React.useState(false);\n const isControlled = openProp !== undefined;\n const open = isControlled ? openProp : internalOpen;\n\n const handleOpenChange = (value: boolean) => {\n if (!isControlled) setInternalOpen(value);\n onOpenChange?.(value);\n };\n\n return (\n <LazyMotion features={domAnimation}>\n <DialogPrimitive.Root open={open} onOpenChange={handleOpenChange}>\n {trigger && (\n <DialogPrimitive.Trigger asChild>{trigger}</DialogPrimitive.Trigger>\n )}\n <AnimatePresence>\n {open && (\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay asChild>\n <m.div\n className=\"fixed inset-0 z-50 bg-[var(--color-overlay)]\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.2 }}\n />\n </DialogPrimitive.Overlay>\n <DialogPrimitive.Content asChild>\n <m.div\n className={cn(\n \"fixed bottom-0 left-0 right-0 z-50\",\n \"bg-[var(--color-background)] rounded-t-3xl\",\n \"shadow-[var(--shadow-overlay)]\",\n \"px-5 pb-safe\"\n )}\n initial={{ y: \"100%\" }}\n animate={{ y: 0 }}\n exit={{ y: \"100%\" }}\n transition={{ type: \"spring\", stiffness: 300, damping: 30 }}\n drag=\"y\"\n dragConstraints={{ top: 0 }}\n dragElastic={{ top: 0, bottom: 0.3 }}\n onDragEnd={(_, info) => {\n if (info.offset.y > 80) handleOpenChange(false);\n }}\n >\n {/* 드래그 핸들 */}\n <div className=\"flex justify-center pt-3 pb-4\">\n <div className=\"w-9 h-1 rounded-full bg-[var(--color-gray-300)]\" />\n </div>\n\n {title && (\n <DialogPrimitive.Title className=\"text-[18px] font-bold text-[var(--color-foreground)] mb-1\">\n {title}\n </DialogPrimitive.Title>\n )}\n {description && (\n <DialogPrimitive.Description className=\"text-[14px] text-[var(--color-muted-foreground)] mb-4\">\n {description}\n </DialogPrimitive.Description>\n )}\n <div className=\"pb-8\">{children}</div>\n </m.div>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n )}\n </AnimatePresence>\n </DialogPrimitive.Root>\n </LazyMotion>\n );\n}\n\nexport { BottomSheet };\n"]}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
|
|
4
|
+
var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
function _interopNamespace(e) {
|
|
8
|
+
if (e && e.__esModule) return e;
|
|
9
|
+
var n = Object.create(null);
|
|
10
|
+
if (e) {
|
|
11
|
+
Object.keys(e).forEach(function (k) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return e[k]; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMenuPrimitive);
|
|
26
|
+
|
|
27
|
+
var DropdownMenu = ({
|
|
28
|
+
trigger,
|
|
29
|
+
items,
|
|
30
|
+
open,
|
|
31
|
+
onOpenChange,
|
|
32
|
+
align = "start",
|
|
33
|
+
sideOffset = 6
|
|
34
|
+
}) => /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuPrimitive__namespace.Root, { open, onOpenChange, children: [
|
|
35
|
+
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Trigger, { asChild: true, children: trigger }),
|
|
36
|
+
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
37
|
+
DropdownMenuPrimitive__namespace.Content,
|
|
38
|
+
{
|
|
39
|
+
align,
|
|
40
|
+
sideOffset,
|
|
41
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
42
|
+
"z-50 min-w-[180px] overflow-hidden rounded-2xl",
|
|
43
|
+
"border border-[var(--color-border)] bg-[var(--color-background)] shadow-lg",
|
|
44
|
+
"p-1.5",
|
|
45
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
46
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
47
|
+
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
48
|
+
"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2"
|
|
49
|
+
),
|
|
50
|
+
children: items.map((item, i) => {
|
|
51
|
+
if (item.type === "separator") {
|
|
52
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
53
|
+
DropdownMenuPrimitive__namespace.Separator,
|
|
54
|
+
{
|
|
55
|
+
className: "my-1 h-px bg-[var(--color-border)]"
|
|
56
|
+
},
|
|
57
|
+
i
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
if (item.type === "label") {
|
|
61
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
62
|
+
DropdownMenuPrimitive__namespace.Label,
|
|
63
|
+
{
|
|
64
|
+
className: "px-3 py-1.5 text-[12px] font-semibold text-[var(--color-muted-foreground)] select-none",
|
|
65
|
+
children: item.label
|
|
66
|
+
},
|
|
67
|
+
i
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
71
|
+
DropdownMenuPrimitive__namespace.Item,
|
|
72
|
+
{
|
|
73
|
+
disabled: item.disabled,
|
|
74
|
+
onSelect: item.onSelect,
|
|
75
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
76
|
+
"relative flex cursor-pointer select-none items-center gap-2.5 rounded-xl px-3 py-2.5",
|
|
77
|
+
"text-[15px] outline-none transition-colors duration-100",
|
|
78
|
+
"focus:bg-[var(--color-muted)] data-[highlighted]:bg-[var(--color-muted)]",
|
|
79
|
+
item.destructive ? "text-[var(--color-negative)]" : "text-[var(--color-foreground)]",
|
|
80
|
+
"data-[disabled]:opacity-40 data-[disabled]:pointer-events-none"
|
|
81
|
+
),
|
|
82
|
+
children: [
|
|
83
|
+
item.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-[var(--color-muted-foreground)]", children: item.icon }),
|
|
84
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1", children: item.label }),
|
|
85
|
+
item.shortcut && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto text-[12px] text-[var(--color-muted-foreground)]", children: item.shortcut })
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
i
|
|
89
|
+
);
|
|
90
|
+
})
|
|
91
|
+
}
|
|
92
|
+
) })
|
|
93
|
+
] });
|
|
94
|
+
|
|
95
|
+
exports.DropdownMenu = DropdownMenu;
|
|
96
|
+
//# sourceMappingURL=chunk-AFX7CBRR.cjs.map
|
|
97
|
+
//# sourceMappingURL=chunk-AFX7CBRR.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/DropdownMenu/DropdownMenu.tsx"],"names":["jsxs","DropdownMenuPrimitive","jsx","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAM,eAAe,CAAC;AAAA,EACpB,OAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,YAAA;AAAA,EACA,KAAA,GAAQ,OAAA;AAAA,EACR,UAAA,GAAa;AACf,CAAA,qBACEA,eAAA,CAAuBC,gCAAA,CAAA,IAAA,EAAtB,EAA2B,IAAA,EAAY,YAAA,EACtC,QAAA,EAAA;AAAA,kBAAAC,cAAA,CAAuBD,gCAAA,CAAA,OAAA,EAAtB,EAA8B,OAAA,EAAO,IAAA,EAAE,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,kBAEhDC,cAAA,CAAuBD,yCAAtB,EACC,QAAA,kBAAAC,cAAA;AAAA,IAAuBD,gCAAA,CAAA,OAAA;AAAA,IAAtB;AAAA,MACC,KAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAWE,oBAAA;AAAA,QACT,gDAAA;AAAA,QACA,4EAAA;AAAA,QACA,OAAA;AAAA,QACA,8DAAA;AAAA,QACA,4DAAA;AAAA,QACA,8DAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,KAAM;AACtB,QAAA,IAAI,IAAA,CAAK,SAAS,WAAA,EAAa;AAC7B,UAAA,uBACED,cAAA;AAAA,YAAuBD,gCAAA,CAAA,SAAA;AAAA,YAAtB;AAAA,cAEC,SAAA,EAAU;AAAA,aAAA;AAAA,YADL;AAAA,WAEP;AAAA,QAEJ;AAEA,QAAA,IAAI,IAAA,CAAK,SAAS,OAAA,EAAS;AACzB,UAAA,uBACEC,cAAA;AAAA,YAAuBD,gCAAA,CAAA,KAAA;AAAA,YAAtB;AAAA,cAEC,SAAA,EAAU,wFAAA;AAAA,cAET,QAAA,EAAA,IAAA,CAAK;AAAA,aAAA;AAAA,YAHD;AAAA,WAIP;AAAA,QAEJ;AAEA,QAAA,uBACED,eAAA;AAAA,UAAuBC,gCAAA,CAAA,IAAA;AAAA,UAAtB;AAAA,YAEC,UAAU,IAAA,CAAK,QAAA;AAAA,YACf,UAAU,IAAA,CAAK,QAAA;AAAA,YACf,SAAA,EAAWE,oBAAA;AAAA,cACT,sFAAA;AAAA,cACA,yDAAA;AAAA,cACA,0EAAA;AAAA,cACA,IAAA,CAAK,cACD,8BAAA,GACA,gCAAA;AAAA,cACJ;AAAA,aACF;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,IAAA,CAAK,wBACJD,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+CAAA,EACb,eAAK,IAAA,EACR,CAAA;AAAA,8BAEFA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAU,eAAK,KAAA,EAAM,CAAA;AAAA,cACpC,KAAK,QAAA,oBACJA,cAAA,CAAC,UAAK,SAAA,EAAU,0DAAA,EACb,eAAK,QAAA,EACR;AAAA;AAAA,WAAA;AAAA,UAtBG;AAAA,SAwBP;AAAA,MAEJ,CAAC;AAAA;AAAA,GACH,EACF;AAAA,CAAA,EACF","file":"chunk-AFX7CBRR.cjs","sourcesContent":["import * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DropdownMenuItem {\n type?: \"item\" | \"separator\" | \"label\";\n label?: string;\n icon?: React.ReactNode;\n shortcut?: string;\n disabled?: boolean;\n destructive?: boolean;\n onSelect?: () => void;\n}\n\nexport interface DropdownMenuProps {\n trigger: React.ReactNode;\n items: DropdownMenuItem[];\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n align?: \"start\" | \"center\" | \"end\";\n sideOffset?: number;\n}\n\nconst DropdownMenu = ({\n trigger,\n items,\n open,\n onOpenChange,\n align = \"start\",\n sideOffset = 6,\n}: DropdownMenuProps) => (\n <DropdownMenuPrimitive.Root open={open} onOpenChange={onOpenChange}>\n <DropdownMenuPrimitive.Trigger asChild>{trigger}</DropdownMenuPrimitive.Trigger>\n\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[180px] overflow-hidden rounded-2xl\",\n \"border border-[var(--color-border)] bg-[var(--color-background)] shadow-lg\",\n \"p-1.5\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\"\n )}\n >\n {items.map((item, i) => {\n if (item.type === \"separator\") {\n return (\n <DropdownMenuPrimitive.Separator\n key={i}\n className=\"my-1 h-px bg-[var(--color-border)]\"\n />\n );\n }\n\n if (item.type === \"label\") {\n return (\n <DropdownMenuPrimitive.Label\n key={i}\n className=\"px-3 py-1.5 text-[12px] font-semibold text-[var(--color-muted-foreground)] select-none\"\n >\n {item.label}\n </DropdownMenuPrimitive.Label>\n );\n }\n\n return (\n <DropdownMenuPrimitive.Item\n key={i}\n disabled={item.disabled}\n onSelect={item.onSelect}\n className={cn(\n \"relative flex cursor-pointer select-none items-center gap-2.5 rounded-xl px-3 py-2.5\",\n \"text-[15px] outline-none transition-colors duration-100\",\n \"focus:bg-[var(--color-muted)] data-[highlighted]:bg-[var(--color-muted)]\",\n item.destructive\n ? \"text-[var(--color-negative)]\"\n : \"text-[var(--color-foreground)]\",\n \"data-[disabled]:opacity-40 data-[disabled]:pointer-events-none\"\n )}\n >\n {item.icon && (\n <span className=\"shrink-0 text-[var(--color-muted-foreground)]\">\n {item.icon}\n </span>\n )}\n <span className=\"flex-1\">{item.label}</span>\n {item.shortcut && (\n <span className=\"ml-auto text-[12px] text-[var(--color-muted-foreground)]\">\n {item.shortcut}\n </span>\n )}\n </DropdownMenuPrimitive.Item>\n );\n })}\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n </DropdownMenuPrimitive.Root>\n);\n\nexport { DropdownMenu };\n"]}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var ProgressPrimitive = require('@radix-ui/react-progress');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
|
|
8
|
+
function _interopNamespace(e) {
|
|
9
|
+
if (e && e.__esModule) return e;
|
|
10
|
+
var n = Object.create(null);
|
|
11
|
+
if (e) {
|
|
12
|
+
Object.keys(e).forEach(function (k) {
|
|
13
|
+
if (k !== 'default') {
|
|
14
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return e[k]; }
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
n.default = e;
|
|
23
|
+
return Object.freeze(n);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
27
|
+
var ProgressPrimitive__namespace = /*#__PURE__*/_interopNamespace(ProgressPrimitive);
|
|
28
|
+
|
|
29
|
+
var sizeMap = { sm: "h-1", md: "h-2", lg: "h-3" };
|
|
30
|
+
var colorMap = {
|
|
31
|
+
primary: "bg-[var(--color-primary)]",
|
|
32
|
+
positive: "bg-[var(--color-positive)]",
|
|
33
|
+
negative: "bg-[var(--color-negative)]",
|
|
34
|
+
warning: "bg-[var(--color-warning)]"
|
|
35
|
+
};
|
|
36
|
+
var Progress = React__namespace.forwardRef((_a, ref) => {
|
|
37
|
+
var _b = _a, { className, value = 0, size = "md", color = "primary", showLabel = false } = _b, props = chunk4V3IOZPC_cjs.__objRest(_b, ["className", "value", "size", "color", "showLabel"]);
|
|
38
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full flex flex-col gap-1.5", children: [
|
|
39
|
+
showLabel && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between text-[12px] text-[var(--color-muted-foreground)]", children: [
|
|
40
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "\uC9C4\uD589\uB960" }),
|
|
41
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
42
|
+
Math.round(value),
|
|
43
|
+
"%"
|
|
44
|
+
] })
|
|
45
|
+
] }),
|
|
46
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
47
|
+
ProgressPrimitive__namespace.Root,
|
|
48
|
+
chunk4V3IOZPC_cjs.__spreadProps(chunk4V3IOZPC_cjs.__spreadValues({
|
|
49
|
+
ref,
|
|
50
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
51
|
+
"relative w-full overflow-hidden rounded-full bg-[var(--color-muted)]",
|
|
52
|
+
sizeMap[size],
|
|
53
|
+
className
|
|
54
|
+
),
|
|
55
|
+
value
|
|
56
|
+
}, props), {
|
|
57
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
58
|
+
ProgressPrimitive__namespace.Indicator,
|
|
59
|
+
{
|
|
60
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
61
|
+
"h-full transition-all duration-500 ease-out rounded-full",
|
|
62
|
+
colorMap[color]
|
|
63
|
+
),
|
|
64
|
+
style: { width: `${Math.min(100, Math.max(0, value))}%` }
|
|
65
|
+
}
|
|
66
|
+
)
|
|
67
|
+
})
|
|
68
|
+
)
|
|
69
|
+
] });
|
|
70
|
+
});
|
|
71
|
+
Progress.displayName = "Progress";
|
|
72
|
+
|
|
73
|
+
exports.Progress = Progress;
|
|
74
|
+
//# sourceMappingURL=chunk-ARXXD2ZI.cjs.map
|
|
75
|
+
//# sourceMappingURL=chunk-ARXXD2ZI.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Progress/Progress.tsx"],"names":["React","__objRest","jsxs","jsx","ProgressPrimitive","__spreadProps","__spreadValues","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,IAAM,UAAU,EAAE,EAAA,EAAI,OAAO,EAAA,EAAI,KAAA,EAAO,IAAI,KAAA,EAAM;AAClD,IAAM,QAAA,GAAW;AAAA,EACf,OAAA,EAAS,2BAAA;AAAA,EACT,QAAA,EAAU,4BAAA;AAAA,EACV,QAAA,EAAU,4BAAA;AAAA,EACV,OAAA,EAAS;AACX,CAAA;AAEA,IAAM,QAAA,GAAiBA,gBAAA,CAAA,UAAA,CAGrB,CAAC,EAAA,EAAuF,GAAA,KAAK;AAA5F,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,aAAW,KAAA,GAAQ,CAAA,EAAG,IAAA,GAAO,IAAA,EAAM,QAAQ,SAAA,EAAW,SAAA,GAAY,KAAA,EAvBvE,GAuBG,IAA8E,KAAA,GAAAC,2BAAA,CAA9E,EAAA,EAA8E,CAA5E,WAAA,EAAW,OAAA,EAAW,QAAa,OAAA,EAAmB,WAAA,CAAA,CAAA;AACzD,EAAA,uBAAAC,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,8BAAA,EACZ,QAAA,EAAA;AAAA,IAAA,SAAA,oBACCA,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uEAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,cAAA,CAAC,UAAK,QAAA,EAAA,oBAAA,EAAG,CAAA;AAAA,sCACR,MAAA,EAAA,EAAM,QAAA,EAAA;AAAA,QAAA,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA,QAAE;AAAA,OAAA,EAAC;AAAA,KAAA,EAC5B,CAAA;AAAA,oBAEFA,cAAA;AAAA,MAAmBC,4BAAA,CAAA,IAAA;AAAA,MAAlBC,+BAAA,CAAAC,gCAAA,CAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWC,oBAAA;AAAA,UACT,sEAAA;AAAA,UACA,QAAQ,IAAI,CAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACA;AAAA,OAAA,EACI,KAAA,CAAA,EARL;AAAA,QAUC,QAAA,kBAAAJ,cAAA;AAAA,UAAmBC,4BAAA,CAAA,SAAA;AAAA,UAAlB;AAAA,YACC,SAAA,EAAWG,oBAAA;AAAA,cACT,0DAAA;AAAA,cACA,SAAS,KAAK;AAAA,aAChB;AAAA,YACA,KAAA,EAAO,EAAE,KAAA,EAAO,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,KAAK,CAAC,CAAC,CAAA,CAAA,CAAA;AAAI;AAAA;AAC1D,OAAA;AAAA;AACF,GAAA,EACF,CAAA;AAAA,CACD;AACD,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-ARXXD2ZI.cjs","sourcesContent":["import * as React from \"react\";\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ProgressProps\n extends React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> {\n value?: number;\n size?: \"sm\" | \"md\" | \"lg\";\n color?: \"primary\" | \"positive\" | \"negative\" | \"warning\";\n showLabel?: boolean;\n}\n\nconst sizeMap = { sm: \"h-1\", md: \"h-2\", lg: \"h-3\" };\nconst colorMap = {\n primary: \"bg-[var(--color-primary)]\",\n positive: \"bg-[var(--color-positive)]\",\n negative: \"bg-[var(--color-negative)]\",\n warning: \"bg-[var(--color-warning)]\",\n};\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n ProgressProps\n>(({ className, value = 0, size = \"md\", color = \"primary\", showLabel = false, ...props }, ref) => (\n <div className=\"w-full flex flex-col gap-1.5\">\n {showLabel && (\n <div className=\"flex justify-between text-[12px] text-[var(--color-muted-foreground)]\">\n <span>진행률</span>\n <span>{Math.round(value)}%</span>\n </div>\n )}\n <ProgressPrimitive.Root\n ref={ref}\n className={cn(\n \"relative w-full overflow-hidden rounded-full bg-[var(--color-muted)]\",\n sizeMap[size],\n className\n )}\n value={value}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className={cn(\n \"h-full transition-all duration-500 ease-out rounded-full\",\n colorMap[color]\n )}\n style={{ width: `${Math.min(100, Math.max(0, value))}%` }}\n />\n </ProgressPrimitive.Root>\n </div>\n));\nProgress.displayName = \"Progress\";\n\nexport { Progress };\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { __objRest, cn, __spreadValues } from './chunk-MVGUWG27.js';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var spacingMap = {
|
|
6
|
+
none: "",
|
|
7
|
+
sm: "my-2",
|
|
8
|
+
md: "my-4",
|
|
9
|
+
lg: "my-6"
|
|
10
|
+
};
|
|
11
|
+
var Divider = React.forwardRef(
|
|
12
|
+
(_a, ref) => {
|
|
13
|
+
var _b = _a, { className, orientation = "horizontal", spacing = "none" } = _b, props = __objRest(_b, ["className", "orientation", "spacing"]);
|
|
14
|
+
if (orientation === "vertical") {
|
|
15
|
+
return /* @__PURE__ */ jsx(
|
|
16
|
+
"div",
|
|
17
|
+
{
|
|
18
|
+
className: cn("inline-block w-px self-stretch bg-[var(--color-border)]", className),
|
|
19
|
+
role: "separator",
|
|
20
|
+
"aria-orientation": "vertical"
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
return /* @__PURE__ */ jsx(
|
|
25
|
+
"hr",
|
|
26
|
+
__spreadValues({
|
|
27
|
+
ref,
|
|
28
|
+
className: cn(
|
|
29
|
+
"border-none h-px bg-[var(--color-border)]",
|
|
30
|
+
spacingMap[spacing],
|
|
31
|
+
className
|
|
32
|
+
)
|
|
33
|
+
}, props)
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
Divider.displayName = "Divider";
|
|
38
|
+
|
|
39
|
+
export { Divider };
|
|
40
|
+
//# sourceMappingURL=chunk-BCX5S6PO.js.map
|
|
41
|
+
//# sourceMappingURL=chunk-BCX5S6PO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Divider/Divider.tsx"],"names":[],"mappings":";;;;AAQA,IAAM,UAAA,GAAa;AAAA,EACjB,IAAA,EAAM,EAAA;AAAA,EACN,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI,MAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,OAAA,GAAgB,KAAA,CAAA,UAAA;AAAA,EACpB,CAAC,IAAuE,GAAA,KAAQ;AAA/E,IAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAAW,WAAA,GAAc,YAAA,EAAc,OAAA,GAAU,MAAA,EAhBtD,GAgBG,EAAA,EAA8D,KAAA,GAAA,SAAA,CAA9D,EAAA,EAA8D,CAA5D,WAAA,EAAW,aAAA,EAA4B,SAAA,CAAA,CAAA;AACxC,IAAA,IAAI,gBAAgB,UAAA,EAAY;AAC9B,MAAA,uBACE,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA,CAAG,yDAAA,EAA2D,SAAS,CAAA;AAAA,UAClF,IAAA,EAAK,WAAA;AAAA,UACL,kBAAA,EAAiB;AAAA;AAAA,OACnB;AAAA,IAEJ;AAEA,IAAA,uBACE,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA,cAAA,CAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,2CAAA;AAAA,UACA,WAAW,OAAO,CAAA;AAAA,UAClB;AAAA;AACF,OAAA,EACI,KAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-BCX5S6PO.js","sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DividerProps extends React.HTMLAttributes<HTMLHRElement> {\n orientation?: \"horizontal\" | \"vertical\";\n spacing?: \"none\" | \"sm\" | \"md\" | \"lg\";\n}\n\nconst spacingMap = {\n none: \"\",\n sm: \"my-2\",\n md: \"my-4\",\n lg: \"my-6\",\n};\n\nconst Divider = React.forwardRef<HTMLHRElement, DividerProps>(\n ({ className, orientation = \"horizontal\", spacing = \"none\", ...props }, ref) => {\n if (orientation === \"vertical\") {\n return (\n <div\n className={cn(\"inline-block w-px self-stretch bg-[var(--color-border)]\", className)}\n role=\"separator\"\n aria-orientation=\"vertical\"\n />\n );\n }\n\n return (\n <hr\n ref={ref}\n className={cn(\n \"border-none h-px bg-[var(--color-border)]\",\n spacingMap[spacing],\n className\n )}\n {...props}\n />\n );\n }\n);\nDivider.displayName = \"Divider\";\n\nexport { Divider };\n"]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
|
|
4
|
+
var PopoverPrimitive = require('@radix-ui/react-popover');
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
function _interopNamespace(e) {
|
|
8
|
+
if (e && e.__esModule) return e;
|
|
9
|
+
var n = Object.create(null);
|
|
10
|
+
if (e) {
|
|
11
|
+
Object.keys(e).forEach(function (k) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return e[k]; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
|
|
26
|
+
|
|
27
|
+
var Popover = ({
|
|
28
|
+
trigger,
|
|
29
|
+
children,
|
|
30
|
+
open,
|
|
31
|
+
onOpenChange,
|
|
32
|
+
side = "bottom",
|
|
33
|
+
align = "start",
|
|
34
|
+
sideOffset = 8,
|
|
35
|
+
className
|
|
36
|
+
}) => /* @__PURE__ */ jsxRuntime.jsxs(PopoverPrimitive__namespace.Root, { open, onOpenChange, children: [
|
|
37
|
+
/* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Trigger, { asChild: true, children: trigger }),
|
|
38
|
+
/* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
39
|
+
PopoverPrimitive__namespace.Content,
|
|
40
|
+
{
|
|
41
|
+
side,
|
|
42
|
+
align,
|
|
43
|
+
sideOffset,
|
|
44
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
45
|
+
"z-50 rounded-2xl border border-[var(--color-border)] bg-[var(--color-background)] shadow-lg",
|
|
46
|
+
"outline-none",
|
|
47
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
48
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
49
|
+
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
50
|
+
"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2",
|
|
51
|
+
"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2",
|
|
52
|
+
className
|
|
53
|
+
),
|
|
54
|
+
children
|
|
55
|
+
}
|
|
56
|
+
) })
|
|
57
|
+
] });
|
|
58
|
+
|
|
59
|
+
exports.Popover = Popover;
|
|
60
|
+
//# sourceMappingURL=chunk-BJWRAJEH.cjs.map
|
|
61
|
+
//# sourceMappingURL=chunk-BJWRAJEH.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Popover/Popover.tsx"],"names":["jsxs","PopoverPrimitive","jsx","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAM,UAAU,CAAC;AAAA,EACf,OAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,YAAA;AAAA,EACA,IAAA,GAAO,QAAA;AAAA,EACP,KAAA,GAAQ,OAAA;AAAA,EACR,UAAA,GAAa,CAAA;AAAA,EACb;AACF,CAAA,qBACEA,eAAA,CAAkBC,2BAAA,CAAA,IAAA,EAAjB,EAAsB,IAAA,EAAY,YAAA,EACjC,QAAA,EAAA;AAAA,kBAAAC,cAAA,CAAkBD,2BAAA,CAAA,OAAA,EAAjB,EAAyB,OAAA,EAAO,IAAA,EAAE,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,kBAC3CC,cAAA,CAAkBD,oCAAjB,EACC,QAAA,kBAAAC,cAAA;AAAA,IAAkBD,2BAAA,CAAA,OAAA;AAAA,IAAjB;AAAA,MACC,IAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAWE,oBAAA;AAAA,QACT,6FAAA;AAAA,QACA,cAAA;AAAA,QACA,8DAAA;AAAA,QACA,4DAAA;AAAA,QACA,8DAAA;AAAA,QACA,+EAAA;AAAA,QACA,+EAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH,EACF;AAAA,CAAA,EACF","file":"chunk-BJWRAJEH.cjs","sourcesContent":["import * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface PopoverProps {\n trigger: React.ReactNode;\n children: React.ReactNode;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n align?: \"start\" | \"center\" | \"end\";\n sideOffset?: number;\n className?: string;\n}\n\nconst Popover = ({\n trigger,\n children,\n open,\n onOpenChange,\n side = \"bottom\",\n align = \"start\",\n sideOffset = 8,\n className,\n}: PopoverProps) => (\n <PopoverPrimitive.Root open={open} onOpenChange={onOpenChange}>\n <PopoverPrimitive.Trigger asChild>{trigger}</PopoverPrimitive.Trigger>\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n side={side}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 rounded-2xl border border-[var(--color-border)] bg-[var(--color-background)] shadow-lg\",\n \"outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2\",\n className\n )}\n >\n {children}\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n);\n\nexport { Popover };\n"]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { __objRest, __spreadProps, __spreadValues, cn } from './chunk-MVGUWG27.js';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { cva } from 'class-variance-authority';
|
|
4
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var alertVariants = cva(
|
|
7
|
+
"flex gap-3 w-full rounded-2xl px-4 py-3.5 text-[14px]",
|
|
8
|
+
{
|
|
9
|
+
variants: {
|
|
10
|
+
variant: {
|
|
11
|
+
info: "bg-blue-50 text-blue-800 [&_svg]:text-blue-500",
|
|
12
|
+
positive: "bg-green-50 text-green-800 [&_svg]:text-[var(--color-positive)]",
|
|
13
|
+
negative: "bg-red-50 text-red-800 [&_svg]:text-[var(--color-negative)]",
|
|
14
|
+
warning: "bg-orange-50 text-orange-800 [&_svg]:text-[var(--color-warning)]",
|
|
15
|
+
neutral: "bg-[var(--color-muted)] text-[var(--color-foreground)] [&_svg]:text-[var(--color-muted-foreground)]"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
defaultVariants: { variant: "info" }
|
|
19
|
+
}
|
|
20
|
+
);
|
|
21
|
+
var icons = {
|
|
22
|
+
info: /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, children: [
|
|
23
|
+
/* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7", stroke: "currentColor", strokeWidth: "1.5" }),
|
|
24
|
+
/* @__PURE__ */ jsx("path", { d: "M8 7v4M8 5.5v.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
|
|
25
|
+
] }),
|
|
26
|
+
positive: /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, children: [
|
|
27
|
+
/* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7", stroke: "currentColor", strokeWidth: "1.5" }),
|
|
28
|
+
/* @__PURE__ */ jsx("path", { d: "M5 8l2 2 4-4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
|
|
29
|
+
] }),
|
|
30
|
+
negative: /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, children: [
|
|
31
|
+
/* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7", stroke: "currentColor", strokeWidth: "1.5" }),
|
|
32
|
+
/* @__PURE__ */ jsx("path", { d: "M8 5v3M8 10.5v.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
|
|
33
|
+
] }),
|
|
34
|
+
warning: /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, children: [
|
|
35
|
+
/* @__PURE__ */ jsx("path", { d: "M8 2L14.5 13H1.5L8 2z", stroke: "currentColor", strokeWidth: "1.5", strokeLinejoin: "round" }),
|
|
36
|
+
/* @__PURE__ */ jsx("path", { d: "M8 6v3M8 10.5v.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
|
|
37
|
+
] }),
|
|
38
|
+
neutral: /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": true, children: [
|
|
39
|
+
/* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "7", stroke: "currentColor", strokeWidth: "1.5" }),
|
|
40
|
+
/* @__PURE__ */ jsx("path", { d: "M8 7v4M8 5.5v.5", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
|
|
41
|
+
] })
|
|
42
|
+
};
|
|
43
|
+
var Alert = React.forwardRef(
|
|
44
|
+
(_a, ref) => {
|
|
45
|
+
var _b = _a, { className, variant = "info", title, icon = true, children } = _b, props = __objRest(_b, ["className", "variant", "title", "icon", "children"]);
|
|
46
|
+
return /* @__PURE__ */ jsxs(
|
|
47
|
+
"div",
|
|
48
|
+
__spreadProps(__spreadValues({
|
|
49
|
+
ref,
|
|
50
|
+
role: "alert",
|
|
51
|
+
className: cn(alertVariants({ variant }), className)
|
|
52
|
+
}, props), {
|
|
53
|
+
children: [
|
|
54
|
+
icon && /* @__PURE__ */ jsx("span", { className: "mt-0.5 shrink-0", children: icons[variant != null ? variant : "info"] }),
|
|
55
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5", children: [
|
|
56
|
+
title && /* @__PURE__ */ jsx("p", { className: "font-semibold", children: title }),
|
|
57
|
+
children && /* @__PURE__ */ jsx("p", { className: "leading-snug opacity-90", children })
|
|
58
|
+
] })
|
|
59
|
+
]
|
|
60
|
+
})
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
Alert.displayName = "Alert";
|
|
65
|
+
|
|
66
|
+
export { Alert };
|
|
67
|
+
//# sourceMappingURL=chunk-CX55SVMP.js.map
|
|
68
|
+
//# sourceMappingURL=chunk-CX55SVMP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Alert/Alert.tsx"],"names":[],"mappings":"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","file":"chunk-CX55SVMP.js","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst alertVariants = cva(\n \"flex gap-3 w-full rounded-2xl px-4 py-3.5 text-[14px]\",\n {\n variants: {\n variant: {\n info: \"bg-blue-50 text-blue-800 [&_svg]:text-blue-500\",\n positive: \"bg-green-50 text-green-800 [&_svg]:text-[var(--color-positive)]\",\n negative: \"bg-red-50 text-red-800 [&_svg]:text-[var(--color-negative)]\",\n warning: \"bg-orange-50 text-orange-800 [&_svg]:text-[var(--color-warning)]\",\n neutral: \"bg-[var(--color-muted)] text-[var(--color-foreground)] [&_svg]:text-[var(--color-muted-foreground)]\",\n },\n },\n defaultVariants: { variant: \"info\" },\n }\n);\n\nconst icons: Record<string, React.ReactNode> = {\n info: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 7v4M8 5.5v.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ),\n positive: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M5 8l2 2 4-4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n ),\n negative: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 5v3M8 10.5v.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ),\n warning: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M8 2L14.5 13H1.5L8 2z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n <path d=\"M8 6v3M8 10.5v.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ),\n neutral: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 7v4M8 5.5v.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ),\n};\n\nexport interface AlertProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {\n title?: string;\n icon?: boolean;\n}\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant = \"info\", title, icon = true, children, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n {icon && (\n <span className=\"mt-0.5 shrink-0\">{icons[variant ?? \"info\"]}</span>\n )}\n <div className=\"flex flex-col gap-0.5\">\n {title && <p className=\"font-semibold\">{title}</p>}\n {children && <p className=\"leading-snug opacity-90\">{children}</p>}\n </div>\n </div>\n )\n);\nAlert.displayName = \"Alert\";\n\nexport { Alert };\n"]}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var SelectPrimitive = require('@radix-ui/react-select');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
|
|
8
|
+
function _interopNamespace(e) {
|
|
9
|
+
if (e && e.__esModule) return e;
|
|
10
|
+
var n = Object.create(null);
|
|
11
|
+
if (e) {
|
|
12
|
+
Object.keys(e).forEach(function (k) {
|
|
13
|
+
if (k !== 'default') {
|
|
14
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return e[k]; }
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
n.default = e;
|
|
23
|
+
return Object.freeze(n);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
27
|
+
var SelectPrimitive__namespace = /*#__PURE__*/_interopNamespace(SelectPrimitive);
|
|
28
|
+
|
|
29
|
+
var Select = React__namespace.forwardRef(
|
|
30
|
+
({
|
|
31
|
+
options,
|
|
32
|
+
value,
|
|
33
|
+
defaultValue,
|
|
34
|
+
onValueChange,
|
|
35
|
+
placeholder = "\uC120\uD0DD\uD558\uC138\uC694",
|
|
36
|
+
label,
|
|
37
|
+
helperText,
|
|
38
|
+
errorMessage,
|
|
39
|
+
isError,
|
|
40
|
+
disabled,
|
|
41
|
+
className
|
|
42
|
+
}, ref) => {
|
|
43
|
+
const id = React__namespace.useId();
|
|
44
|
+
const showError = isError && errorMessage;
|
|
45
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4V3IOZPC_cjs.cn("flex flex-col gap-1.5", className), children: [
|
|
46
|
+
label && /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: id, className: "text-[14px] font-medium text-[var(--color-foreground)]", children: label }),
|
|
47
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
48
|
+
SelectPrimitive__namespace.Root,
|
|
49
|
+
{
|
|
50
|
+
value,
|
|
51
|
+
defaultValue,
|
|
52
|
+
onValueChange,
|
|
53
|
+
disabled,
|
|
54
|
+
children: [
|
|
55
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
56
|
+
SelectPrimitive__namespace.Trigger,
|
|
57
|
+
{
|
|
58
|
+
ref,
|
|
59
|
+
id,
|
|
60
|
+
"aria-invalid": isError,
|
|
61
|
+
"aria-describedby": showError ? `${id}-error` : helperText ? `${id}-helper` : void 0,
|
|
62
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
63
|
+
"flex h-12 w-full items-center justify-between rounded-xl px-4",
|
|
64
|
+
"border border-[var(--color-border)] bg-[var(--color-input)] text-[16px]",
|
|
65
|
+
"transition-colors duration-150",
|
|
66
|
+
"focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)] focus:ring-offset-0 focus:border-[var(--color-primary)]",
|
|
67
|
+
"data-[placeholder]:text-[var(--color-muted-foreground)]",
|
|
68
|
+
isError && "border-[var(--color-negative)] focus:ring-[var(--color-negative)]",
|
|
69
|
+
"disabled:opacity-40 disabled:cursor-not-allowed",
|
|
70
|
+
"select-none"
|
|
71
|
+
),
|
|
72
|
+
children: [
|
|
73
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Value, { placeholder }),
|
|
74
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { className: "ml-2 shrink-0 text-[var(--color-muted-foreground)]", children: /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, {}) })
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
),
|
|
78
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
79
|
+
SelectPrimitive__namespace.Content,
|
|
80
|
+
{
|
|
81
|
+
position: "popper",
|
|
82
|
+
sideOffset: 6,
|
|
83
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
84
|
+
"relative z-50 min-w-[8rem] w-[var(--radix-select-trigger-width)] overflow-hidden",
|
|
85
|
+
"rounded-xl border border-[var(--color-border)] bg-[var(--color-background)] shadow-lg",
|
|
86
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
87
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
88
|
+
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
89
|
+
"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2"
|
|
90
|
+
),
|
|
91
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Viewport, { className: "p-1.5", children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
92
|
+
SelectPrimitive__namespace.Item,
|
|
93
|
+
{
|
|
94
|
+
value: option.value,
|
|
95
|
+
disabled: option.disabled,
|
|
96
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
97
|
+
"relative flex w-full cursor-pointer select-none items-center rounded-lg px-3 py-2.5",
|
|
98
|
+
"text-[15px] text-[var(--color-foreground)]",
|
|
99
|
+
"outline-none transition-colors duration-100",
|
|
100
|
+
"focus:bg-[var(--color-muted)] data-[highlighted]:bg-[var(--color-muted)]",
|
|
101
|
+
"data-[state=checked]:text-[var(--color-primary)] data-[state=checked]:font-medium",
|
|
102
|
+
"data-[disabled]:opacity-40 data-[disabled]:pointer-events-none"
|
|
103
|
+
),
|
|
104
|
+
children: [
|
|
105
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children: option.label }),
|
|
106
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { className: "ml-auto pl-2", children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, {}) })
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
option.value
|
|
110
|
+
)) })
|
|
111
|
+
}
|
|
112
|
+
) })
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
),
|
|
116
|
+
showError ? /* @__PURE__ */ jsxRuntime.jsx("p", { id: `${id}-error`, role: "alert", className: "text-[13px] text-[var(--color-negative)]", children: errorMessage }) : helperText ? /* @__PURE__ */ jsxRuntime.jsx("p", { id: `${id}-helper`, className: "text-[13px] text-[var(--color-muted-foreground)]", children: helperText }) : null
|
|
117
|
+
] });
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
Select.displayName = "Select";
|
|
121
|
+
function ChevronDownIcon() {
|
|
122
|
+
return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m6 9 6 6 6-6" }) });
|
|
123
|
+
}
|
|
124
|
+
function CheckIcon() {
|
|
125
|
+
return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20 6 9 17l-5-5" }) });
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
exports.Select = Select;
|
|
129
|
+
//# sourceMappingURL=chunk-CZ4RHRM2.cjs.map
|
|
130
|
+
//# sourceMappingURL=chunk-CZ4RHRM2.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Select/Select.tsx"],"names":["React","cn","jsxs","SelectPrimitive","jsx"],"mappings":"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","file":"chunk-CZ4RHRM2.cjs","sourcesContent":["import * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface SelectOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectProps {\n options: SelectOption[];\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n placeholder?: string;\n label?: string;\n helperText?: string;\n errorMessage?: string;\n isError?: boolean;\n disabled?: boolean;\n className?: string;\n}\n\nconst Select = React.forwardRef<HTMLButtonElement, SelectProps>(\n (\n {\n options,\n value,\n defaultValue,\n onValueChange,\n placeholder = \"선택하세요\",\n label,\n helperText,\n errorMessage,\n isError,\n disabled,\n className,\n },\n ref\n ) => {\n const id = React.useId();\n const showError = isError && errorMessage;\n\n return (\n <div className={cn(\"flex flex-col gap-1.5\", className)}>\n {label && (\n <label htmlFor={id} className=\"text-[14px] font-medium text-[var(--color-foreground)]\">\n {label}\n </label>\n )}\n <SelectPrimitive.Root\n value={value}\n defaultValue={defaultValue}\n onValueChange={onValueChange}\n disabled={disabled}\n >\n <SelectPrimitive.Trigger\n ref={ref}\n id={id}\n aria-invalid={isError}\n aria-describedby={showError ? `${id}-error` : helperText ? `${id}-helper` : undefined}\n className={cn(\n \"flex h-12 w-full items-center justify-between rounded-xl px-4\",\n \"border border-[var(--color-border)] bg-[var(--color-input)] text-[16px]\",\n \"transition-colors duration-150\",\n \"focus:outline-none focus:ring-2 focus:ring-[var(--color-primary)] focus:ring-offset-0 focus:border-[var(--color-primary)]\",\n \"data-[placeholder]:text-[var(--color-muted-foreground)]\",\n isError && \"border-[var(--color-negative)] focus:ring-[var(--color-negative)]\",\n \"disabled:opacity-40 disabled:cursor-not-allowed\",\n \"select-none\"\n )}\n >\n <SelectPrimitive.Value placeholder={placeholder} />\n <SelectPrimitive.Icon className=\"ml-2 shrink-0 text-[var(--color-muted-foreground)]\">\n <ChevronDownIcon />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n position=\"popper\"\n sideOffset={6}\n className={cn(\n \"relative z-50 min-w-[8rem] w-[var(--radix-select-trigger-width)] overflow-hidden\",\n \"rounded-xl border border-[var(--color-border)] bg-[var(--color-background)] shadow-lg\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\"\n )}\n >\n <SelectPrimitive.Viewport className=\"p-1.5\">\n {options.map((option) => (\n <SelectPrimitive.Item\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n className={cn(\n \"relative flex w-full cursor-pointer select-none items-center rounded-lg px-3 py-2.5\",\n \"text-[15px] text-[var(--color-foreground)]\",\n \"outline-none transition-colors duration-100\",\n \"focus:bg-[var(--color-muted)] data-[highlighted]:bg-[var(--color-muted)]\",\n \"data-[state=checked]:text-[var(--color-primary)] data-[state=checked]:font-medium\",\n \"data-[disabled]:opacity-40 data-[disabled]:pointer-events-none\"\n )}\n >\n <SelectPrimitive.ItemText>{option.label}</SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator className=\"ml-auto pl-2\">\n <CheckIcon />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n ))}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n\n {showError ? (\n <p id={`${id}-error`} role=\"alert\" className=\"text-[13px] text-[var(--color-negative)]\">\n {errorMessage}\n </p>\n ) : helperText ? (\n <p id={`${id}-helper`} className=\"text-[13px] text-[var(--color-muted-foreground)]\">\n {helperText}\n </p>\n ) : null}\n </div>\n );\n }\n);\nSelect.displayName = \"Select\";\n\nfunction ChevronDownIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n );\n}\n\nfunction CheckIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n\nexport { Select };\n"]}
|