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,42 @@
|
|
|
1
|
+
import { cn } from './chunk-MVGUWG27.js';
|
|
2
|
+
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var Tooltip = ({
|
|
6
|
+
content,
|
|
7
|
+
children,
|
|
8
|
+
side = "top",
|
|
9
|
+
align = "center",
|
|
10
|
+
sideOffset = 6,
|
|
11
|
+
delayDuration = 300,
|
|
12
|
+
className
|
|
13
|
+
}) => /* @__PURE__ */ jsx(TooltipPrimitive.Provider, { delayDuration, children: /* @__PURE__ */ jsxs(TooltipPrimitive.Root, { children: [
|
|
14
|
+
/* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { asChild: true, children }),
|
|
15
|
+
/* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
16
|
+
TooltipPrimitive.Content,
|
|
17
|
+
{
|
|
18
|
+
side,
|
|
19
|
+
align,
|
|
20
|
+
sideOffset,
|
|
21
|
+
className: cn(
|
|
22
|
+
"z-50 max-w-[280px] rounded-xl px-3 py-2",
|
|
23
|
+
"bg-[var(--color-foreground)] text-[var(--color-background)]",
|
|
24
|
+
"text-[13px] leading-snug shadow-lg",
|
|
25
|
+
"data-[state=delayed-open]:animate-in data-[state=closed]:animate-out",
|
|
26
|
+
"data-[state=closed]:fade-out-0 data-[state=delayed-open]:fade-in-0",
|
|
27
|
+
"data-[state=closed]:zoom-out-95 data-[state=delayed-open]:zoom-in-95",
|
|
28
|
+
"data-[side=bottom]:slide-in-from-top-1 data-[side=top]:slide-in-from-bottom-1",
|
|
29
|
+
"data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1",
|
|
30
|
+
className
|
|
31
|
+
),
|
|
32
|
+
children: [
|
|
33
|
+
content,
|
|
34
|
+
/* @__PURE__ */ jsx(TooltipPrimitive.Arrow, { className: "fill-[var(--color-foreground)]", width: 10, height: 5 })
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
) })
|
|
38
|
+
] }) });
|
|
39
|
+
|
|
40
|
+
export { Tooltip };
|
|
41
|
+
//# sourceMappingURL=chunk-IOBAQ35P.js.map
|
|
42
|
+
//# sourceMappingURL=chunk-IOBAQ35P.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Tooltip/Tooltip.tsx"],"names":[],"mappings":";;;;AAcA,IAAM,UAAU,CAAC;AAAA,EACf,OAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA,GAAO,KAAA;AAAA,EACP,KAAA,GAAQ,QAAA;AAAA,EACR,UAAA,GAAa,CAAA;AAAA,EACb,aAAA,GAAgB,GAAA;AAAA,EAChB;AACF,CAAA,yBACoB,gBAAA,CAAA,QAAA,EAAjB,EAA0B,aAAA,EACzB,QAAA,kBAAA,IAAA,CAAkB,uBAAjB,EACC,QAAA,EAAA;AAAA,kBAAA,GAAA,CAAkB,gBAAA,CAAA,OAAA,EAAjB,EAAyB,OAAA,EAAO,IAAA,EAAE,QAAA,EAAS,CAAA;AAAA,kBAC5C,GAAA,CAAkB,yBAAjB,EACC,QAAA,kBAAA,IAAA;AAAA,IAAkB,gBAAA,CAAA,OAAA;AAAA,IAAjB;AAAA,MACC,IAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,yCAAA;AAAA,QACA,6DAAA;AAAA,QACA,oCAAA;AAAA,QACA,sEAAA;AAAA,QACA,oEAAA;AAAA,QACA,sEAAA;AAAA,QACA,+EAAA;AAAA,QACA,+EAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,OAAA;AAAA,wBACD,GAAA,CAAkB,wBAAjB,EAAuB,SAAA,EAAU,kCAAiC,KAAA,EAAO,EAAA,EAAI,QAAQ,CAAA,EAAG;AAAA;AAAA;AAAA,GAC3F,EACF;AAAA,CAAA,EACF,CAAA,EACF","file":"chunk-IOBAQ35P.js","sourcesContent":["import * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface TooltipProps {\n content: React.ReactNode;\n children: React.ReactNode;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n align?: \"start\" | \"center\" | \"end\";\n sideOffset?: number;\n delayDuration?: number;\n className?: string;\n}\n\nconst Tooltip = ({\n content,\n children,\n side = \"top\",\n align = \"center\",\n sideOffset = 6,\n delayDuration = 300,\n className,\n}: TooltipProps) => (\n <TooltipPrimitive.Provider delayDuration={delayDuration}>\n <TooltipPrimitive.Root>\n <TooltipPrimitive.Trigger asChild>{children}</TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n side={side}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 max-w-[280px] rounded-xl px-3 py-2\",\n \"bg-[var(--color-foreground)] text-[var(--color-background)]\",\n \"text-[13px] leading-snug shadow-lg\",\n \"data-[state=delayed-open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=delayed-open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=delayed-open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-1 data-[side=top]:slide-in-from-bottom-1\",\n \"data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1\",\n className\n )}\n >\n {content}\n <TooltipPrimitive.Arrow className=\"fill-[var(--color-foreground)]\" width={10} height={5} />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.Provider>\n);\n\nexport { Tooltip };\n"]}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { cn } from './chunk-MVGUWG27.js';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var OTPInput = ({
|
|
6
|
+
length = 6,
|
|
7
|
+
value,
|
|
8
|
+
defaultValue: defaultValueProp,
|
|
9
|
+
onChange,
|
|
10
|
+
onComplete,
|
|
11
|
+
masked = false,
|
|
12
|
+
disabled = false,
|
|
13
|
+
isError = false,
|
|
14
|
+
autoFocus = false,
|
|
15
|
+
className
|
|
16
|
+
}) => {
|
|
17
|
+
const isControlled = value !== void 0;
|
|
18
|
+
const [internalValue, setInternalValue] = React.useState(defaultValueProp != null ? defaultValueProp : "");
|
|
19
|
+
const current = isControlled ? value : internalValue;
|
|
20
|
+
const refs = React.useRef([]);
|
|
21
|
+
const digits = Array.from({ length }, (_, i) => {
|
|
22
|
+
var _a;
|
|
23
|
+
return (_a = current[i]) != null ? _a : "";
|
|
24
|
+
});
|
|
25
|
+
function update(next) {
|
|
26
|
+
if (!isControlled) setInternalValue(next);
|
|
27
|
+
onChange == null ? void 0 : onChange(next);
|
|
28
|
+
if (next.length === length) onComplete == null ? void 0 : onComplete(next);
|
|
29
|
+
}
|
|
30
|
+
function handleChange(index, raw) {
|
|
31
|
+
var _a;
|
|
32
|
+
const char = raw.replace(/\D/g, "").slice(-1);
|
|
33
|
+
if (!char) return;
|
|
34
|
+
const arr = digits.slice();
|
|
35
|
+
arr[index] = char;
|
|
36
|
+
const next = arr.join("");
|
|
37
|
+
update(next);
|
|
38
|
+
if (index < length - 1) {
|
|
39
|
+
(_a = refs.current[index + 1]) == null ? void 0 : _a.focus();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function handleKeyDown(index, e) {
|
|
43
|
+
var _a, _b, _c, _d;
|
|
44
|
+
if (e.key === "Backspace") {
|
|
45
|
+
e.preventDefault();
|
|
46
|
+
const arr = digits.slice();
|
|
47
|
+
if (digits[index]) {
|
|
48
|
+
arr[index] = "";
|
|
49
|
+
update(arr.join(""));
|
|
50
|
+
if (index > 0) (_a = refs.current[index - 1]) == null ? void 0 : _a.focus();
|
|
51
|
+
} else if (index > 0) {
|
|
52
|
+
arr[index - 1] = "";
|
|
53
|
+
update(arr.join(""));
|
|
54
|
+
(_b = refs.current[index - 1]) == null ? void 0 : _b.focus();
|
|
55
|
+
}
|
|
56
|
+
} else if (e.key === "ArrowLeft" && index > 0) {
|
|
57
|
+
(_c = refs.current[index - 1]) == null ? void 0 : _c.focus();
|
|
58
|
+
} else if (e.key === "ArrowRight" && index < length - 1) {
|
|
59
|
+
(_d = refs.current[index + 1]) == null ? void 0 : _d.focus();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function handlePaste(e) {
|
|
63
|
+
var _a;
|
|
64
|
+
e.preventDefault();
|
|
65
|
+
const pasted = e.clipboardData.getData("text").replace(/\D/g, "").slice(0, length);
|
|
66
|
+
if (!pasted) return;
|
|
67
|
+
update(pasted.padEnd(length, "").slice(0, length).replace(/\s/g, ""));
|
|
68
|
+
const focusIndex = Math.min(pasted.length, length - 1);
|
|
69
|
+
(_a = refs.current[focusIndex]) == null ? void 0 : _a.focus();
|
|
70
|
+
}
|
|
71
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex gap-3", className), children: digits.map((digit, i) => /* @__PURE__ */ jsx(
|
|
72
|
+
"input",
|
|
73
|
+
{
|
|
74
|
+
ref: (el) => {
|
|
75
|
+
refs.current[i] = el;
|
|
76
|
+
},
|
|
77
|
+
type: masked ? "password" : "text",
|
|
78
|
+
inputMode: "numeric",
|
|
79
|
+
maxLength: 1,
|
|
80
|
+
value: digit,
|
|
81
|
+
disabled,
|
|
82
|
+
autoFocus: autoFocus && i === 0,
|
|
83
|
+
"aria-label": `${i + 1}\uBC88\uC9F8 \uC785\uB825`,
|
|
84
|
+
onChange: (e) => handleChange(i, e.target.value),
|
|
85
|
+
onKeyDown: (e) => handleKeyDown(i, e),
|
|
86
|
+
onPaste: handlePaste,
|
|
87
|
+
onFocus: (e) => e.target.select(),
|
|
88
|
+
className: cn(
|
|
89
|
+
"h-14 w-12 rounded-2xl border-2 text-center text-[20px] font-semibold",
|
|
90
|
+
"text-[var(--color-foreground)] bg-[var(--color-background)]",
|
|
91
|
+
"transition-colors duration-150 outline-none",
|
|
92
|
+
"caret-transparent select-none",
|
|
93
|
+
isError ? "border-[var(--color-negative)] focus:border-[var(--color-negative)]" : [
|
|
94
|
+
"border-[var(--color-border)]",
|
|
95
|
+
"focus:border-[var(--color-primary)]",
|
|
96
|
+
digit && "border-[var(--color-primary)]"
|
|
97
|
+
],
|
|
98
|
+
"disabled:opacity-40 disabled:cursor-not-allowed"
|
|
99
|
+
)
|
|
100
|
+
},
|
|
101
|
+
i
|
|
102
|
+
)) });
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
export { OTPInput };
|
|
106
|
+
//# sourceMappingURL=chunk-IVANXF6O.js.map
|
|
107
|
+
//# sourceMappingURL=chunk-IVANXF6O.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/OTPInput/OTPInput.tsx"],"names":[],"mappings":"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","file":"chunk-IVANXF6O.js","sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface OTPInputProps {\n length?: number;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n onComplete?: (value: string) => void;\n masked?: boolean;\n disabled?: boolean;\n isError?: boolean;\n autoFocus?: boolean;\n className?: string;\n}\n\nconst OTPInput = ({\n length = 6,\n value,\n defaultValue: defaultValueProp,\n onChange,\n onComplete,\n masked = false,\n disabled = false,\n isError = false,\n autoFocus = false,\n className,\n}: OTPInputProps) => {\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = React.useState(defaultValueProp ?? \"\");\n const current = isControlled ? value : internalValue;\n\n const refs = React.useRef<(HTMLInputElement | null)[]>([]);\n\n const digits = Array.from({ length }, (_, i) => current[i] ?? \"\");\n\n function update(next: string) {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n if (next.length === length) onComplete?.(next);\n }\n\n function handleChange(index: number, raw: string) {\n // 숫자만 허용\n const char = raw.replace(/\\D/g, \"\").slice(-1);\n if (!char) return;\n\n const arr = digits.slice();\n arr[index] = char;\n const next = arr.join(\"\");\n update(next);\n\n // 다음 셀로 포커스 이동\n if (index < length - 1) {\n refs.current[index + 1]?.focus();\n }\n }\n\n function handleKeyDown(index: number, e: React.KeyboardEvent<HTMLInputElement>) {\n if (e.key === \"Backspace\") {\n e.preventDefault();\n const arr = digits.slice();\n if (digits[index]) {\n // 현재 셀에 값 있으면 지우고 이전으로 이동\n arr[index] = \"\";\n update(arr.join(\"\"));\n if (index > 0) refs.current[index - 1]?.focus();\n } else if (index > 0) {\n // 현재 셀 비어있으면 이전 셀 지우고 이동\n arr[index - 1] = \"\";\n update(arr.join(\"\"));\n refs.current[index - 1]?.focus();\n }\n } else if (e.key === \"ArrowLeft\" && index > 0) {\n refs.current[index - 1]?.focus();\n } else if (e.key === \"ArrowRight\" && index < length - 1) {\n refs.current[index + 1]?.focus();\n }\n }\n\n function handlePaste(e: React.ClipboardEvent) {\n e.preventDefault();\n const pasted = e.clipboardData.getData(\"text\").replace(/\\D/g, \"\").slice(0, length);\n if (!pasted) return;\n update(pasted.padEnd(length, \"\").slice(0, length).replace(/\\s/g, \"\"));\n // 실제로는 붙여넣은 길이만큼 채우고 마지막 셀로 포커스\n const focusIndex = Math.min(pasted.length, length - 1);\n refs.current[focusIndex]?.focus();\n }\n\n return (\n <div className={cn(\"flex gap-3\", className)}>\n {digits.map((digit, i) => (\n <input\n key={i}\n ref={(el) => { refs.current[i] = el; }}\n type={masked ? \"password\" : \"text\"}\n inputMode=\"numeric\"\n maxLength={1}\n value={digit}\n disabled={disabled}\n autoFocus={autoFocus && i === 0}\n aria-label={`${i + 1}번째 입력`}\n onChange={(e) => handleChange(i, e.target.value)}\n onKeyDown={(e) => handleKeyDown(i, e)}\n onPaste={handlePaste}\n onFocus={(e) => e.target.select()}\n className={cn(\n \"h-14 w-12 rounded-2xl border-2 text-center text-[20px] font-semibold\",\n \"text-[var(--color-foreground)] bg-[var(--color-background)]\",\n \"transition-colors duration-150 outline-none\",\n \"caret-transparent select-none\",\n isError\n ? \"border-[var(--color-negative)] focus:border-[var(--color-negative)]\"\n : [\n \"border-[var(--color-border)]\",\n \"focus:border-[var(--color-primary)]\",\n digit && \"border-[var(--color-primary)]\",\n ],\n \"disabled:opacity-40 disabled:cursor-not-allowed\"\n )}\n />\n ))}\n </div>\n );\n};\n\nexport { OTPInput };\n"]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkUXYAKGI2_cjs = require('./chunk-UXYAKGI2.cjs');
|
|
4
|
+
var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
|
|
5
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
|
|
8
|
+
var spinnerVariants = classVarianceAuthority.cva("", {
|
|
9
|
+
variants: {
|
|
10
|
+
size: {
|
|
11
|
+
sm: "w-4 h-4",
|
|
12
|
+
md: "w-6 h-6",
|
|
13
|
+
lg: "w-8 h-8",
|
|
14
|
+
xl: "w-12 h-12"
|
|
15
|
+
},
|
|
16
|
+
color: {
|
|
17
|
+
primary: "text-[var(--color-primary)]",
|
|
18
|
+
white: "text-white",
|
|
19
|
+
muted: "text-[var(--color-muted-foreground)]"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
defaultVariants: {
|
|
23
|
+
size: "md",
|
|
24
|
+
color: "primary"
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
function Spinner({ className, size, color, label = "\uB85C\uB529 \uC911" }) {
|
|
28
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkUXYAKGI2_cjs.LazyMotion, { features: chunkUXYAKGI2_cjs.domAnimation, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
29
|
+
chunkUXYAKGI2_cjs.m.svg,
|
|
30
|
+
{
|
|
31
|
+
className: chunk4V3IOZPC_cjs.cn(spinnerVariants({ size, color }), className),
|
|
32
|
+
viewBox: "0 0 24 24",
|
|
33
|
+
fill: "none",
|
|
34
|
+
"aria-label": label,
|
|
35
|
+
role: "status",
|
|
36
|
+
animate: { rotate: 360 },
|
|
37
|
+
transition: { duration: 0.8, repeat: Infinity, ease: "linear" },
|
|
38
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
39
|
+
"circle",
|
|
40
|
+
{
|
|
41
|
+
cx: "12",
|
|
42
|
+
cy: "12",
|
|
43
|
+
r: "9",
|
|
44
|
+
stroke: "currentColor",
|
|
45
|
+
strokeWidth: "2.5",
|
|
46
|
+
strokeLinecap: "round",
|
|
47
|
+
strokeDasharray: "40 16",
|
|
48
|
+
opacity: "0.9"
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
) });
|
|
53
|
+
}
|
|
54
|
+
Spinner.displayName = "Spinner";
|
|
55
|
+
|
|
56
|
+
exports.Spinner = Spinner;
|
|
57
|
+
//# sourceMappingURL=chunk-JGO5TBYB.cjs.map
|
|
58
|
+
//# sourceMappingURL=chunk-JGO5TBYB.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Spinner/Spinner.tsx"],"names":["cva","jsx","LazyMotion","domAnimation","m","cn"],"mappings":";;;;;;;AAKA,IAAM,eAAA,GAAkBA,2BAAI,EAAA,EAAI;AAAA,EAC9B,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI;AAAA,KACN;AAAA,IACA,KAAA,EAAO;AAAA,MACL,OAAA,EAAS,6BAAA;AAAA,MACT,KAAA,EAAO,YAAA;AAAA,MACP,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,IAAA;AAAA,IACN,KAAA,EAAO;AAAA;AAEX,CAAC,CAAA;AAOD,SAAS,QAAQ,EAAE,SAAA,EAAW,MAAM,KAAA,EAAO,KAAA,GAAQ,uBAAO,EAAiB;AACzE,EAAA,uBACEC,cAAA,CAACC,4BAAA,EAAA,EAAW,QAAA,EAAUC,8BAAA,EACpB,QAAA,kBAAAF,cAAA;AAAA,IAACG,mBAAA,CAAE,GAAA;AAAA,IAAF;AAAA,MACC,SAAA,EAAWC,qBAAG,eAAA,CAAgB,EAAE,MAAM,KAAA,EAAO,GAAG,SAAS,CAAA;AAAA,MACzD,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,YAAA,EAAY,KAAA;AAAA,MACZ,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAS,EAAE,MAAA,EAAQ,GAAA,EAAI;AAAA,MACvB,YAAY,EAAE,QAAA,EAAU,KAAK,MAAA,EAAQ,QAAA,EAAU,MAAM,QAAA,EAAS;AAAA,MAE9D,QAAA,kBAAAJ,cAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAG,IAAA;AAAA,UACH,EAAA,EAAG,IAAA;AAAA,UACH,CAAA,EAAE,GAAA;AAAA,UACF,MAAA,EAAO,cAAA;AAAA,UACP,WAAA,EAAY,KAAA;AAAA,UACZ,aAAA,EAAc,OAAA;AAAA,UACd,eAAA,EAAgB,OAAA;AAAA,UAChB,OAAA,EAAQ;AAAA;AAAA;AACV;AAAA,GACF,EACF,CAAA;AAEJ;AACA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-JGO5TBYB.cjs","sourcesContent":["import * as React from \"react\";\nimport { m, LazyMotion, domAnimation } from \"../../utils/motion\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst spinnerVariants = cva(\"\", {\n variants: {\n size: {\n sm: \"w-4 h-4\",\n md: \"w-6 h-6\",\n lg: \"w-8 h-8\",\n xl: \"w-12 h-12\",\n },\n color: {\n primary: \"text-[var(--color-primary)]\",\n white: \"text-white\",\n muted: \"text-[var(--color-muted-foreground)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n color: \"primary\",\n },\n});\n\nexport type SpinnerProps = VariantProps<typeof spinnerVariants> & {\n label?: string;\n className?: string;\n};\n\nfunction Spinner({ className, size, color, label = \"로딩 중\" }: SpinnerProps) {\n return (\n <LazyMotion features={domAnimation}>\n <m.svg\n className={cn(spinnerVariants({ size, color }), className)}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-label={label}\n role=\"status\"\n animate={{ rotate: 360 }}\n transition={{ duration: 0.8, repeat: Infinity, ease: \"linear\" }}\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"9\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeDasharray=\"40 16\"\n opacity=\"0.9\"\n />\n </m.svg>\n </LazyMotion>\n );\n}\nSpinner.displayName = \"Spinner\";\n\nexport { Spinner };\n"]}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { cn } from './chunk-MVGUWG27.js';
|
|
2
|
+
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
3
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var DropdownMenu = ({
|
|
6
|
+
trigger,
|
|
7
|
+
items,
|
|
8
|
+
open,
|
|
9
|
+
onOpenChange,
|
|
10
|
+
align = "start",
|
|
11
|
+
sideOffset = 6
|
|
12
|
+
}) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.Root, { open, onOpenChange, children: [
|
|
13
|
+
/* @__PURE__ */ jsx(DropdownMenuPrimitive.Trigger, { asChild: true, children: trigger }),
|
|
14
|
+
/* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
15
|
+
DropdownMenuPrimitive.Content,
|
|
16
|
+
{
|
|
17
|
+
align,
|
|
18
|
+
sideOffset,
|
|
19
|
+
className: cn(
|
|
20
|
+
"z-50 min-w-[180px] overflow-hidden rounded-2xl",
|
|
21
|
+
"border border-[var(--color-border)] bg-[var(--color-background)] shadow-lg",
|
|
22
|
+
"p-1.5",
|
|
23
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
24
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
25
|
+
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
26
|
+
"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2"
|
|
27
|
+
),
|
|
28
|
+
children: items.map((item, i) => {
|
|
29
|
+
if (item.type === "separator") {
|
|
30
|
+
return /* @__PURE__ */ jsx(
|
|
31
|
+
DropdownMenuPrimitive.Separator,
|
|
32
|
+
{
|
|
33
|
+
className: "my-1 h-px bg-[var(--color-border)]"
|
|
34
|
+
},
|
|
35
|
+
i
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
if (item.type === "label") {
|
|
39
|
+
return /* @__PURE__ */ jsx(
|
|
40
|
+
DropdownMenuPrimitive.Label,
|
|
41
|
+
{
|
|
42
|
+
className: "px-3 py-1.5 text-[12px] font-semibold text-[var(--color-muted-foreground)] select-none",
|
|
43
|
+
children: item.label
|
|
44
|
+
},
|
|
45
|
+
i
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
return /* @__PURE__ */ jsxs(
|
|
49
|
+
DropdownMenuPrimitive.Item,
|
|
50
|
+
{
|
|
51
|
+
disabled: item.disabled,
|
|
52
|
+
onSelect: item.onSelect,
|
|
53
|
+
className: cn(
|
|
54
|
+
"relative flex cursor-pointer select-none items-center gap-2.5 rounded-xl px-3 py-2.5",
|
|
55
|
+
"text-[15px] outline-none transition-colors duration-100",
|
|
56
|
+
"focus:bg-[var(--color-muted)] data-[highlighted]:bg-[var(--color-muted)]",
|
|
57
|
+
item.destructive ? "text-[var(--color-negative)]" : "text-[var(--color-foreground)]",
|
|
58
|
+
"data-[disabled]:opacity-40 data-[disabled]:pointer-events-none"
|
|
59
|
+
),
|
|
60
|
+
children: [
|
|
61
|
+
item.icon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[var(--color-muted-foreground)]", children: item.icon }),
|
|
62
|
+
/* @__PURE__ */ jsx("span", { className: "flex-1", children: item.label }),
|
|
63
|
+
item.shortcut && /* @__PURE__ */ jsx("span", { className: "ml-auto text-[12px] text-[var(--color-muted-foreground)]", children: item.shortcut })
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
i
|
|
67
|
+
);
|
|
68
|
+
})
|
|
69
|
+
}
|
|
70
|
+
) })
|
|
71
|
+
] });
|
|
72
|
+
|
|
73
|
+
export { DropdownMenu };
|
|
74
|
+
//# sourceMappingURL=chunk-JQ55FV4C.js.map
|
|
75
|
+
//# sourceMappingURL=chunk-JQ55FV4C.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/DropdownMenu/DropdownMenu.tsx"],"names":[],"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,qBACE,IAAA,CAAuB,qBAAA,CAAA,IAAA,EAAtB,EAA2B,IAAA,EAAY,YAAA,EACtC,QAAA,EAAA;AAAA,kBAAA,GAAA,CAAuB,qBAAA,CAAA,OAAA,EAAtB,EAA8B,OAAA,EAAO,IAAA,EAAE,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,kBAEhD,GAAA,CAAuB,8BAAtB,EACC,QAAA,kBAAA,GAAA;AAAA,IAAuB,qBAAA,CAAA,OAAA;AAAA,IAAtB;AAAA,MACC,KAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,EAAA;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,uBACE,GAAA;AAAA,YAAuB,qBAAA,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,uBACE,GAAA;AAAA,YAAuB,qBAAA,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,uBACE,IAAA;AAAA,UAAuB,qBAAA,CAAA,IAAA;AAAA,UAAtB;AAAA,YAEC,UAAU,IAAA,CAAK,QAAA;AAAA,YACf,UAAU,IAAA,CAAK,QAAA;AAAA,YACf,SAAA,EAAW,EAAA;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,wBACJ,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,+CAAA,EACb,eAAK,IAAA,EACR,CAAA;AAAA,8BAEF,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAU,eAAK,KAAA,EAAM,CAAA;AAAA,cACpC,KAAK,QAAA,oBACJ,GAAA,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-JQ55FV4C.js","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,52 @@
|
|
|
1
|
+
import { __objRest, __spreadProps, __spreadValues, cn } from './chunk-MVGUWG27.js';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
4
|
+
import { cva } from 'class-variance-authority';
|
|
5
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var avatarVariants = cva("relative inline-flex shrink-0 overflow-hidden rounded-full", {
|
|
8
|
+
variants: {
|
|
9
|
+
size: {
|
|
10
|
+
xs: "w-6 h-6 text-[10px]",
|
|
11
|
+
sm: "w-8 h-8 text-[12px]",
|
|
12
|
+
md: "w-10 h-10 text-[14px]",
|
|
13
|
+
lg: "w-12 h-12 text-[16px]",
|
|
14
|
+
xl: "w-16 h-16 text-[20px]"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
defaultVariants: { size: "md" }
|
|
18
|
+
});
|
|
19
|
+
var Avatar = React.forwardRef((_a, ref) => {
|
|
20
|
+
var _b = _a, { className, size, src, alt, fallback } = _b, props = __objRest(_b, ["className", "size", "src", "alt", "fallback"]);
|
|
21
|
+
var _a2;
|
|
22
|
+
return /* @__PURE__ */ jsxs(
|
|
23
|
+
AvatarPrimitive.Root,
|
|
24
|
+
__spreadProps(__spreadValues({
|
|
25
|
+
ref,
|
|
26
|
+
className: cn(avatarVariants({ size }), className)
|
|
27
|
+
}, props), {
|
|
28
|
+
children: [
|
|
29
|
+
/* @__PURE__ */ jsx(
|
|
30
|
+
AvatarPrimitive.Image,
|
|
31
|
+
{
|
|
32
|
+
src,
|
|
33
|
+
alt,
|
|
34
|
+
className: "w-full h-full object-cover"
|
|
35
|
+
}
|
|
36
|
+
),
|
|
37
|
+
/* @__PURE__ */ jsx(
|
|
38
|
+
AvatarPrimitive.Fallback,
|
|
39
|
+
{
|
|
40
|
+
className: "w-full h-full flex items-center justify-center bg-[var(--color-muted)] text-[var(--color-muted-foreground)] font-semibold",
|
|
41
|
+
children: (_a2 = fallback != null ? fallback : alt == null ? void 0 : alt.slice(0, 1).toUpperCase()) != null ? _a2 : "?"
|
|
42
|
+
}
|
|
43
|
+
)
|
|
44
|
+
]
|
|
45
|
+
})
|
|
46
|
+
);
|
|
47
|
+
});
|
|
48
|
+
Avatar.displayName = "Avatar";
|
|
49
|
+
|
|
50
|
+
export { Avatar };
|
|
51
|
+
//# sourceMappingURL=chunk-JQDD6AYM.js.map
|
|
52
|
+
//# sourceMappingURL=chunk-JQDD6AYM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Avatar/Avatar.tsx"],"names":["_a"],"mappings":";;;;;;AAKA,IAAM,cAAA,GAAiB,IAAI,4DAAA,EAA8D;AAAA,EACvF,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,qBAAA;AAAA,MACJ,EAAA,EAAI,qBAAA;AAAA,MACJ,EAAA,EAAI,uBAAA;AAAA,MACJ,EAAA,EAAI,uBAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB,EAAE,IAAA,EAAM,IAAA;AAC3B,CAAC,CAAA;AAUD,IAAM,MAAA,GAAe,KAAA,CAAA,UAAA,CAGnB,CAAC,EAAA,EAAmD,GAAA,KAAK;AAAxD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAAW,IAAA,EAAM,GAAA,EAAK,GAAA,EAAK,QAAA,EA7BhC,GA6BG,EAAA,EAA0C,KAAA,GAAA,SAAA,CAA1C,EAAA,EAA0C,CAAxC,WAAA,EAAW,MAAA,EAAM,OAAK,KAAA,EAAK,UAAA,CAAA,CAAA;AA7BhC,EAAA,IAAAA,GAAAA;AA8BE,EAAA,uBAAA,IAAA;AAAA,IAAiB,eAAA,CAAA,IAAA;AAAA,IAAhB,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAW,EAAA,CAAG,cAAA,CAAe,EAAE,IAAA,EAAM,GAAG,SAAS;AAAA,KAAA,EAC7C,KAAA,CAAA,EAHL;AAAA,MAKC,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAiB,eAAA,CAAA,KAAA;AAAA,UAAhB;AAAA,YACC,GAAA;AAAA,YACA,GAAA;AAAA,YACA,SAAA,EAAU;AAAA;AAAA,SACZ;AAAA,wBACA,GAAA;AAAA,UAAiB,eAAA,CAAA,QAAA;AAAA,UAAhB;AAAA,YACC,SAAA,EAAU,2HAAA;AAAA,YAET,QAAA,EAAA,CAAAA,MAAA,QAAA,IAAA,IAAA,GAAA,QAAA,GAAY,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,MAAM,CAAA,EAAG,CAAA,CAAA,CAAG,WAAA,EAAA,KAA7B,IAAA,GAAAA,GAAAA,GAA8C;AAAA;AAAA;AACjD;AAAA,KAAA;AAAA,GACF;AAAA,CACD;AACD,MAAA,CAAO,WAAA,GAAc,QAAA","file":"chunk-JQDD6AYM.js","sourcesContent":["import * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst avatarVariants = cva(\"relative inline-flex shrink-0 overflow-hidden rounded-full\", {\n variants: {\n size: {\n xs: \"w-6 h-6 text-[10px]\",\n sm: \"w-8 h-8 text-[12px]\",\n md: \"w-10 h-10 text-[14px]\",\n lg: \"w-12 h-12 text-[16px]\",\n xl: \"w-16 h-16 text-[20px]\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport interface AvatarProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>,\n VariantProps<typeof avatarVariants> {\n src?: string;\n alt?: string;\n fallback?: string;\n}\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n AvatarProps\n>(({ className, size, src, alt, fallback, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(avatarVariants({ size }), className)}\n {...props}\n >\n <AvatarPrimitive.Image\n src={src}\n alt={alt}\n className=\"w-full h-full object-cover\"\n />\n <AvatarPrimitive.Fallback\n className=\"w-full h-full flex items-center justify-center bg-[var(--color-muted)] text-[var(--color-muted-foreground)] font-semibold\"\n >\n {fallback ?? alt?.slice(0, 1).toUpperCase() ?? \"?\"}\n </AvatarPrimitive.Fallback>\n </AvatarPrimitive.Root>\n));\nAvatar.displayName = \"Avatar\";\n\nexport { Avatar };\n"]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkUXYAKGI2_cjs = require('./chunk-UXYAKGI2.cjs');
|
|
4
|
+
var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
|
|
9
|
+
function _interopNamespace(e) {
|
|
10
|
+
if (e && e.__esModule) return e;
|
|
11
|
+
var n = Object.create(null);
|
|
12
|
+
if (e) {
|
|
13
|
+
Object.keys(e).forEach(function (k) {
|
|
14
|
+
if (k !== 'default') {
|
|
15
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return e[k]; }
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
n.default = e;
|
|
24
|
+
return Object.freeze(n);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
28
|
+
|
|
29
|
+
var cardVariants = classVarianceAuthority.cva(
|
|
30
|
+
"rounded-2xl bg-[var(--color-background)] overflow-hidden",
|
|
31
|
+
{
|
|
32
|
+
variants: {
|
|
33
|
+
variant: {
|
|
34
|
+
elevated: "shadow-[var(--shadow-md)]",
|
|
35
|
+
outlined: "border border-[var(--color-border)]",
|
|
36
|
+
filled: "bg-[var(--color-muted)]"
|
|
37
|
+
},
|
|
38
|
+
padding: {
|
|
39
|
+
none: "",
|
|
40
|
+
sm: "p-4",
|
|
41
|
+
md: "p-5",
|
|
42
|
+
lg: "p-6"
|
|
43
|
+
},
|
|
44
|
+
interactive: {
|
|
45
|
+
true: "cursor-pointer"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
defaultVariants: {
|
|
49
|
+
variant: "elevated",
|
|
50
|
+
padding: "md"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
);
|
|
54
|
+
var Card = React__namespace.forwardRef(
|
|
55
|
+
({ className, variant, padding, interactive, onClick, children, style, id, "aria-label": ariaLabel }, ref) => {
|
|
56
|
+
const isInteractive = interactive || !!onClick;
|
|
57
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkUXYAKGI2_cjs.LazyMotion, { features: chunkUXYAKGI2_cjs.domAnimation, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
58
|
+
chunkUXYAKGI2_cjs.m.div,
|
|
59
|
+
{
|
|
60
|
+
ref,
|
|
61
|
+
id,
|
|
62
|
+
"aria-label": ariaLabel,
|
|
63
|
+
style,
|
|
64
|
+
className: chunk4V3IOZPC_cjs.cn(cardVariants({ variant, padding, interactive: isInteractive || void 0 }), className),
|
|
65
|
+
whileTap: isInteractive ? { scale: 0.98 } : void 0,
|
|
66
|
+
transition: isInteractive ? { type: "spring", stiffness: 400, damping: 20 } : void 0,
|
|
67
|
+
onClick,
|
|
68
|
+
role: onClick ? "button" : void 0,
|
|
69
|
+
tabIndex: onClick ? 0 : void 0,
|
|
70
|
+
children
|
|
71
|
+
}
|
|
72
|
+
) });
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
Card.displayName = "Card";
|
|
76
|
+
|
|
77
|
+
exports.Card = Card;
|
|
78
|
+
exports.cardVariants = cardVariants;
|
|
79
|
+
//# sourceMappingURL=chunk-JWE5X3SW.cjs.map
|
|
80
|
+
//# sourceMappingURL=chunk-JWE5X3SW.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Card/Card.tsx"],"names":["cva","React","jsx","LazyMotion","domAnimation","m","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAM,YAAA,GAAeA,0BAAA;AAAA,EACnB,0DAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,QAAA,EAAU,2BAAA;AAAA,QACV,QAAA,EAAU,qCAAA;AAAA,QACV,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,OAAA,EAAS;AAAA,QACP,IAAA,EAAM,EAAA;AAAA,QACN,EAAA,EAAI,KAAA;AAAA,QACJ,EAAA,EAAI,KAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,WAAA,EAAa;AAAA,QACX,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,UAAA;AAAA,MACT,OAAA,EAAS;AAAA;AACX;AAEJ;AAMA,IAAM,IAAA,GAAaC,gBAAA,CAAA,UAAA;AAAA,EACjB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,OAAA,EAAS,WAAA,EAAa,OAAA,EAAS,QAAA,EAAU,KAAA,EAAO,EAAA,EAAI,YAAA,EAAc,SAAA,IAAa,GAAA,KAAQ;AAC5G,IAAA,MAAM,aAAA,GAAgB,WAAA,IAAe,CAAC,CAAC,OAAA;AAEvC,IAAA,uBACEC,cAAA,CAACC,4BAAA,EAAA,EAAW,QAAA,EAAUC,8BAAA,EACpB,QAAA,kBAAAF,cAAA;AAAA,MAACG,mBAAA,CAAE,GAAA;AAAA,MAAF;AAAA,QACC,GAAA;AAAA,QACA,EAAA;AAAA,QACA,YAAA,EAAY,SAAA;AAAA,QACZ,KAAA;AAAA,QACA,SAAA,EAAWC,oBAAA,CAAG,YAAA,CAAa,EAAE,OAAA,EAAS,OAAA,EAAS,WAAA,EAAa,aAAA,IAAiB,MAAA,EAAW,CAAA,EAAG,SAAS,CAAA;AAAA,QACpG,QAAA,EAAU,aAAA,GAAgB,EAAE,KAAA,EAAO,MAAK,GAAI,MAAA;AAAA,QAC5C,UAAA,EAAY,gBAAgB,EAAE,IAAA,EAAM,UAAU,SAAA,EAAW,GAAA,EAAK,OAAA,EAAS,EAAA,EAAG,GAAI,MAAA;AAAA,QAC9E,OAAA;AAAA,QACA,IAAA,EAAM,UAAU,QAAA,GAAW,MAAA;AAAA,QAC3B,QAAA,EAAU,UAAU,CAAA,GAAI,MAAA;AAAA,QAEvB;AAAA;AAAA,KACH,EACF,CAAA;AAAA,EAEJ;AACF;AACA,IAAA,CAAK,WAAA,GAAc,MAAA","file":"chunk-JWE5X3SW.cjs","sourcesContent":["import * as React from \"react\";\nimport { m, LazyMotion, domAnimation } from \"../../utils/motion\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst cardVariants = cva(\n \"rounded-2xl bg-[var(--color-background)] overflow-hidden\",\n {\n variants: {\n variant: {\n elevated: \"shadow-[var(--shadow-md)]\",\n outlined: \"border border-[var(--color-border)]\",\n filled: \"bg-[var(--color-muted)]\",\n },\n padding: {\n none: \"\",\n sm: \"p-4\",\n md: \"p-5\",\n lg: \"p-6\",\n },\n interactive: {\n true: \"cursor-pointer\",\n },\n },\n defaultVariants: {\n variant: \"elevated\",\n padding: \"md\",\n },\n }\n);\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, padding, interactive, onClick, children, style, id, \"aria-label\": ariaLabel }, ref) => {\n const isInteractive = interactive || !!onClick;\n\n return (\n <LazyMotion features={domAnimation}>\n <m.div\n ref={ref}\n id={id}\n aria-label={ariaLabel}\n style={style}\n className={cn(cardVariants({ variant, padding, interactive: isInteractive || undefined }), className)}\n whileTap={isInteractive ? { scale: 0.98 } : undefined}\n transition={isInteractive ? { type: \"spring\", stiffness: 400, damping: 20 } : undefined}\n onClick={onClick as React.MouseEventHandler<HTMLDivElement>}\n role={onClick ? \"button\" : undefined}\n tabIndex={onClick ? 0 : undefined}\n >\n {children}\n </m.div>\n </LazyMotion>\n );\n }\n);\nCard.displayName = \"Card\";\n\nexport { Card, cardVariants };\n"]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkUXYAKGI2_cjs = require('./chunk-UXYAKGI2.cjs');
|
|
4
|
+
var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var CheckboxPrimitive = require('@radix-ui/react-checkbox');
|
|
7
|
+
var Label = require('@radix-ui/react-label');
|
|
8
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
|
|
10
|
+
function _interopNamespace(e) {
|
|
11
|
+
if (e && e.__esModule) return e;
|
|
12
|
+
var n = Object.create(null);
|
|
13
|
+
if (e) {
|
|
14
|
+
Object.keys(e).forEach(function (k) {
|
|
15
|
+
if (k !== 'default') {
|
|
16
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
17
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return e[k]; }
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
n.default = e;
|
|
25
|
+
return Object.freeze(n);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
29
|
+
var CheckboxPrimitive__namespace = /*#__PURE__*/_interopNamespace(CheckboxPrimitive);
|
|
30
|
+
var Label__namespace = /*#__PURE__*/_interopNamespace(Label);
|
|
31
|
+
|
|
32
|
+
var Checkbox = React__namespace.forwardRef((_a, ref) => {
|
|
33
|
+
var _b = _a, { className, label, id } = _b, props = chunk4V3IOZPC_cjs.__objRest(_b, ["className", "label", "id"]);
|
|
34
|
+
const generatedId = React__namespace.useId();
|
|
35
|
+
const checkboxId = id != null ? id : generatedId;
|
|
36
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2.5", children: [
|
|
37
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
38
|
+
CheckboxPrimitive__namespace.Root,
|
|
39
|
+
chunk4V3IOZPC_cjs.__spreadProps(chunk4V3IOZPC_cjs.__spreadValues({
|
|
40
|
+
ref,
|
|
41
|
+
id: checkboxId,
|
|
42
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
43
|
+
"h-5 w-5 rounded-md shrink-0",
|
|
44
|
+
"border-2 border-[var(--color-border)]",
|
|
45
|
+
"bg-[var(--color-background)]",
|
|
46
|
+
"transition-colors duration-150",
|
|
47
|
+
"data-[state=checked]:bg-[var(--color-primary)] data-[state=checked]:border-[var(--color-primary)]",
|
|
48
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2",
|
|
49
|
+
"disabled:opacity-40 disabled:cursor-not-allowed",
|
|
50
|
+
className
|
|
51
|
+
)
|
|
52
|
+
}, props), {
|
|
53
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(CheckboxPrimitive__namespace.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(chunkUXYAKGI2_cjs.LazyMotion, { features: chunkUXYAKGI2_cjs.domAnimation, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
54
|
+
chunkUXYAKGI2_cjs.m.svg,
|
|
55
|
+
{
|
|
56
|
+
width: "11",
|
|
57
|
+
height: "8",
|
|
58
|
+
viewBox: "0 0 11 8",
|
|
59
|
+
fill: "none",
|
|
60
|
+
initial: { pathLength: 0, opacity: 0 },
|
|
61
|
+
animate: { pathLength: 1, opacity: 1 },
|
|
62
|
+
transition: { duration: 0.2, ease: "easeOut" },
|
|
63
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
64
|
+
chunkUXYAKGI2_cjs.m.path,
|
|
65
|
+
{
|
|
66
|
+
d: "M1 3.5L4 6.5L10 1",
|
|
67
|
+
stroke: "white",
|
|
68
|
+
strokeWidth: "1.8",
|
|
69
|
+
strokeLinecap: "round",
|
|
70
|
+
strokeLinejoin: "round"
|
|
71
|
+
}
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
) }) })
|
|
75
|
+
})
|
|
76
|
+
),
|
|
77
|
+
label && /* @__PURE__ */ jsxRuntime.jsx(
|
|
78
|
+
Label__namespace.Root,
|
|
79
|
+
{
|
|
80
|
+
htmlFor: checkboxId,
|
|
81
|
+
className: "text-[16px] text-[var(--color-foreground)] cursor-pointer select-none",
|
|
82
|
+
children: label
|
|
83
|
+
}
|
|
84
|
+
)
|
|
85
|
+
] });
|
|
86
|
+
});
|
|
87
|
+
Checkbox.displayName = "Checkbox";
|
|
88
|
+
|
|
89
|
+
exports.Checkbox = Checkbox;
|
|
90
|
+
//# sourceMappingURL=chunk-KFFQVTKW.cjs.map
|
|
91
|
+
//# sourceMappingURL=chunk-KFFQVTKW.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Checkbox/Checkbox.tsx"],"names":["React","__objRest","jsxs","jsx","CheckboxPrimitive","__spreadProps","__spreadValues","cn","LazyMotion","domAnimation","m","Label"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,IAAM,QAAA,GAAiBA,gBAAA,CAAA,UAAA,CAGrB,CAAC,EAAA,EAAoC,GAAA,KAAQ;AAA5C,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAAW,OAAO,EAAA,EAdvB,GAcG,IAA2B,KAAA,GAAAC,2BAAA,CAA3B,EAAA,EAA2B,CAAzB,WAAA,EAAW,OAAA,EAAO,IAAA,CAAA,CAAA;AACrB,EAAA,MAAM,cAAoBD,gBAAA,CAAA,KAAA,EAAM;AAChC,EAAA,MAAM,aAAa,EAAA,IAAA,IAAA,GAAA,EAAA,GAAM,WAAA;AAEzB,EAAA,uBACEE,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAAmBC,4BAAA,CAAA,IAAA;AAAA,MAAlBC,+BAAA,CAAAC,gCAAA,CAAA;AAAA,QACC,GAAA;AAAA,QACA,EAAA,EAAI,UAAA;AAAA,QACJ,SAAA,EAAWC,oBAAA;AAAA,UACT,6BAAA;AAAA,UACA,uCAAA;AAAA,UACA,8BAAA;AAAA,UACA,gCAAA;AAAA,UACA,mGAAA;AAAA,UACA,uHAAA;AAAA,UACA,iDAAA;AAAA,UACA;AAAA;AACF,OAAA,EACI,KAAA,CAAA,EAbL;AAAA,QAeC,QAAA,kBAAAJ,cAAA,CAAmBC,wCAAlB,EAA4B,SAAA,EAAU,oCACrC,QAAA,kBAAAD,cAAA,CAACK,4BAAA,EAAA,EAAW,UAAUC,8BAAA,EACpB,QAAA,kBAAAN,cAAA;AAAA,UAACO,mBAAA,CAAE,GAAA;AAAA,UAAF;AAAA,YACC,KAAA,EAAM,IAAA;AAAA,YACN,MAAA,EAAO,GAAA;AAAA,YACP,OAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAK,MAAA;AAAA,YACL,OAAA,EAAS,EAAE,UAAA,EAAY,CAAA,EAAG,SAAS,CAAA,EAAE;AAAA,YACrC,OAAA,EAAS,EAAE,UAAA,EAAY,CAAA,EAAG,SAAS,CAAA,EAAE;AAAA,YACrC,UAAA,EAAY,EAAE,QAAA,EAAU,GAAA,EAAK,MAAM,SAAA,EAAU;AAAA,YAE7C,QAAA,kBAAAP,cAAA;AAAA,cAACO,mBAAA,CAAE,IAAA;AAAA,cAAF;AAAA,gBACC,CAAA,EAAE,mBAAA;AAAA,gBACF,MAAA,EAAO,OAAA;AAAA,gBACP,WAAA,EAAY,KAAA;AAAA,gBACZ,aAAA,EAAc,OAAA;AAAA,gBACd,cAAA,EAAe;AAAA;AAAA;AACjB;AAAA,WAEJ,CAAA,EACF;AAAA,OAAA;AAAA,KACF;AAAA,IACC,KAAA,oBACCP,cAAA;AAAA,MAAOQ,gBAAA,CAAA,IAAA;AAAA,MAAN;AAAA,QACC,OAAA,EAAS,UAAA;AAAA,QACT,SAAA,EAAU,uEAAA;AAAA,QAET,QAAA,EAAA;AAAA;AAAA;AACH,GAAA,EAEJ,CAAA;AAEJ,CAAC;AACD,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-KFFQVTKW.cjs","sourcesContent":["import * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport * as Label from \"@radix-ui/react-label\";\nimport { m, LazyMotion, domAnimation } from \"../../utils/motion\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface CheckboxProps\n extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {\n label?: string;\n}\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\n>(({ className, label, id, ...props }, ref) => {\n const generatedId = React.useId();\n const checkboxId = id ?? generatedId;\n\n return (\n <div className=\"flex items-center gap-2.5\">\n <CheckboxPrimitive.Root\n ref={ref}\n id={checkboxId}\n className={cn(\n \"h-5 w-5 rounded-md shrink-0\",\n \"border-2 border-[var(--color-border)]\",\n \"bg-[var(--color-background)]\",\n \"transition-colors duration-150\",\n \"data-[state=checked]:bg-[var(--color-primary)] data-[state=checked]:border-[var(--color-primary)]\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2\",\n \"disabled:opacity-40 disabled:cursor-not-allowed\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center\">\n <LazyMotion features={domAnimation}>\n <m.svg\n width=\"11\"\n height=\"8\"\n viewBox=\"0 0 11 8\"\n fill=\"none\"\n initial={{ pathLength: 0, opacity: 0 }}\n animate={{ pathLength: 1, opacity: 1 }}\n transition={{ duration: 0.2, ease: \"easeOut\" }}\n >\n <m.path\n d=\"M1 3.5L4 6.5L10 1\"\n stroke=\"white\"\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </m.svg>\n </LazyMotion>\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n {label && (\n <Label.Root\n htmlFor={checkboxId}\n className=\"text-[16px] text-[var(--color-foreground)] cursor-pointer select-none\"\n >\n {label}\n </Label.Root>\n )}\n </div>\n );\n});\nCheckbox.displayName = \"Checkbox\";\n\nexport { Checkbox };\n"]}
|