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,134 @@
|
|
|
1
|
+
import { LazyMotion, domAnimation, m } from './chunk-Y3CWICHE.js';
|
|
2
|
+
import { __objRest, __spreadProps, __spreadValues, cn } from './chunk-MVGUWG27.js';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
5
|
+
import { cva } from 'class-variance-authority';
|
|
6
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var buttonVariants = cva(
|
|
9
|
+
[
|
|
10
|
+
"inline-flex items-center justify-center",
|
|
11
|
+
"font-semibold rounded-xl",
|
|
12
|
+
"transition-colors duration-150",
|
|
13
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
|
|
14
|
+
"disabled:pointer-events-none disabled:opacity-40",
|
|
15
|
+
"select-none cursor-pointer"
|
|
16
|
+
],
|
|
17
|
+
{
|
|
18
|
+
variants: {
|
|
19
|
+
variant: {
|
|
20
|
+
primary: [
|
|
21
|
+
"bg-[var(--color-primary)] text-white",
|
|
22
|
+
"hover:bg-[var(--color-primary-hover)]",
|
|
23
|
+
"focus-visible:ring-[var(--color-primary)]"
|
|
24
|
+
],
|
|
25
|
+
secondary: [
|
|
26
|
+
"bg-[var(--color-muted)] text-[var(--color-foreground)]",
|
|
27
|
+
"hover:bg-[var(--color-gray-200)]"
|
|
28
|
+
],
|
|
29
|
+
outline: [
|
|
30
|
+
"border border-[var(--color-border)] bg-transparent text-[var(--color-foreground)]",
|
|
31
|
+
"hover:bg-[var(--color-muted)]"
|
|
32
|
+
],
|
|
33
|
+
ghost: [
|
|
34
|
+
"bg-transparent text-[var(--color-foreground)]",
|
|
35
|
+
"hover:bg-[var(--color-muted)]"
|
|
36
|
+
],
|
|
37
|
+
danger: [
|
|
38
|
+
"bg-[var(--color-negative)] text-white",
|
|
39
|
+
"hover:opacity-90"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
size: {
|
|
43
|
+
sm: "h-9 px-4 text-sm gap-1.5",
|
|
44
|
+
md: "h-11 px-5 text-body1 gap-2",
|
|
45
|
+
lg: "h-14 px-6 text-body1 gap-2"
|
|
46
|
+
},
|
|
47
|
+
fullWidth: {
|
|
48
|
+
true: "w-full"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
defaultVariants: {
|
|
52
|
+
variant: "primary",
|
|
53
|
+
size: "md"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
var Button = React.forwardRef(
|
|
58
|
+
(_a, ref) => {
|
|
59
|
+
var _b = _a, {
|
|
60
|
+
className,
|
|
61
|
+
variant,
|
|
62
|
+
size,
|
|
63
|
+
fullWidth,
|
|
64
|
+
asChild = false,
|
|
65
|
+
loading = false,
|
|
66
|
+
disabled,
|
|
67
|
+
children
|
|
68
|
+
} = _b, props = __objRest(_b, [
|
|
69
|
+
"className",
|
|
70
|
+
"variant",
|
|
71
|
+
"size",
|
|
72
|
+
"fullWidth",
|
|
73
|
+
"asChild",
|
|
74
|
+
"loading",
|
|
75
|
+
"disabled",
|
|
76
|
+
"children"
|
|
77
|
+
]);
|
|
78
|
+
const Comp = asChild ? Slot : "button";
|
|
79
|
+
return /* @__PURE__ */ jsx(LazyMotion, { features: domAnimation, children: /* @__PURE__ */ jsx(
|
|
80
|
+
m.div,
|
|
81
|
+
{
|
|
82
|
+
whileTap: { scale: disabled || loading ? 1 : 0.96 },
|
|
83
|
+
transition: { type: "spring", stiffness: 400, damping: 17 },
|
|
84
|
+
style: { display: "inline-flex", width: fullWidth ? "100%" : void 0 },
|
|
85
|
+
children: /* @__PURE__ */ jsx(
|
|
86
|
+
Comp,
|
|
87
|
+
__spreadProps(__spreadValues({
|
|
88
|
+
ref,
|
|
89
|
+
className: cn(buttonVariants({ variant, size, fullWidth, className })),
|
|
90
|
+
disabled: disabled || loading,
|
|
91
|
+
"aria-disabled": disabled || loading
|
|
92
|
+
}, props), {
|
|
93
|
+
children: loading ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
94
|
+
/* @__PURE__ */ jsx(Spinner, { size: size === "sm" ? 14 : 16 }),
|
|
95
|
+
children
|
|
96
|
+
] }) : children
|
|
97
|
+
})
|
|
98
|
+
)
|
|
99
|
+
}
|
|
100
|
+
) });
|
|
101
|
+
}
|
|
102
|
+
);
|
|
103
|
+
Button.displayName = "Button";
|
|
104
|
+
function Spinner({ size = 16 }) {
|
|
105
|
+
return /* @__PURE__ */ jsx(
|
|
106
|
+
m.svg,
|
|
107
|
+
{
|
|
108
|
+
width: size,
|
|
109
|
+
height: size,
|
|
110
|
+
viewBox: "0 0 16 16",
|
|
111
|
+
fill: "none",
|
|
112
|
+
animate: { rotate: 360 },
|
|
113
|
+
transition: { duration: 0.8, repeat: Infinity, ease: "linear" },
|
|
114
|
+
"aria-hidden": "true",
|
|
115
|
+
children: /* @__PURE__ */ jsx(
|
|
116
|
+
"circle",
|
|
117
|
+
{
|
|
118
|
+
cx: "8",
|
|
119
|
+
cy: "8",
|
|
120
|
+
r: "6",
|
|
121
|
+
stroke: "currentColor",
|
|
122
|
+
strokeWidth: "2",
|
|
123
|
+
strokeLinecap: "round",
|
|
124
|
+
strokeDasharray: "25 13",
|
|
125
|
+
opacity: "0.8"
|
|
126
|
+
}
|
|
127
|
+
)
|
|
128
|
+
}
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export { Button, buttonVariants };
|
|
133
|
+
//# sourceMappingURL=chunk-4C6E37KK.js.map
|
|
134
|
+
//# sourceMappingURL=chunk-4C6E37KK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Button/Button.tsx"],"names":[],"mappings":";;;;;;;AAMA,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB;AAAA,IACE,yCAAA;AAAA,IACA,0BAAA;AAAA,IACA,gCAAA;AAAA,IACA,6EAAA;AAAA,IACA,kDAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS;AAAA,UACP,sCAAA;AAAA,UACA,uCAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,SAAA,EAAW;AAAA,UACT,wDAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,OAAA,EAAS;AAAA,UACP,mFAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,KAAA,EAAO;AAAA,UACL,+CAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,uCAAA;AAAA,UACA;AAAA;AACF,OACF;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,0BAAA;AAAA,QACJ,EAAA,EAAI,4BAAA;AAAA,QACJ,EAAA,EAAI;AAAA,OACN;AAAA,MACA,SAAA,EAAW;AAAA,QACT,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AASA,IAAM,MAAA,GAAe,KAAA,CAAA,UAAA;AAAA,EACnB,CACE,IAWA,GAAA,KACG;AAZH,IAAA,IAAA,EAAA,GAAA,EAAA,EACE;AAAA,MAAA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,IAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA,GAAU,KAAA;AAAA,MACV,OAAA,GAAU,KAAA;AAAA,MACV,QAAA;AAAA,MACA;AAAA,KAzEN,GAiEI,EAAA,EASK,KAAA,GAAA,SAAA,CATL,EAAA,EASK;AAAA,MARH,WAAA;AAAA,MACA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA;AAAA,MACA;AAAA,KAAA,CAAA;AAKF,IAAA,MAAM,IAAA,GAAO,UAAU,IAAA,GAAO,QAAA;AAE9B,IAAA,uBACE,GAAA,CAAC,UAAA,EAAA,EAAW,QAAA,EAAU,YAAA,EACpB,QAAA,kBAAA,GAAA;AAAA,MAAC,CAAA,CAAE,GAAA;AAAA,MAAF;AAAA,QACC,UAAU,EAAE,KAAA,EAAO,QAAA,IAAY,OAAA,GAAU,IAAI,IAAA,EAAK;AAAA,QAClD,YAAY,EAAE,IAAA,EAAM,UAAU,SAAA,EAAW,GAAA,EAAK,SAAS,EAAA,EAAG;AAAA,QAC1D,OAAO,EAAE,OAAA,EAAS,eAAe,KAAA,EAAO,SAAA,GAAY,SAAS,MAAA,EAAU;AAAA,QAEvE,QAAA,kBAAA,GAAA;AAAA,UAAC,IAAA;AAAA,UAAA,aAAA,CAAA,cAAA,CAAA;AAAA,YACC,GAAA;AAAA,YACA,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,SAAA,EAAW,CAAC,CAAA;AAAA,YACrE,UAAU,QAAA,IAAY,OAAA;AAAA,YACtB,iBAAe,QAAA,IAAY;AAAA,WAAA,EACvB,KAAA,CAAA,EALL;AAAA,YAOE,oCACC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,IAAA,EAAM,IAAA,KAAS,IAAA,GAAO,KAAK,EAAA,EAAI,CAAA;AAAA,cACvC;AAAA,aAAA,EACH,CAAA,GAEA;AAAA,WAAA;AAAA;AAEJ;AAAA,KACF,EACF,CAAA;AAAA,EAEJ;AACF;AACA,MAAA,CAAO,WAAA,GAAc,QAAA;AAErB,SAAS,OAAA,CAAQ,EAAE,IAAA,GAAO,EAAA,EAAG,EAAsB;AACjD,EAAA,uBACE,GAAA;AAAA,IAAC,CAAA,CAAE,GAAA;AAAA,IAAF;AAAA,MACC,KAAA,EAAO,IAAA;AAAA,MACP,MAAA,EAAQ,IAAA;AAAA,MACR,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,OAAA,EAAS,EAAE,MAAA,EAAQ,GAAA,EAAI;AAAA,MACvB,YAAY,EAAE,QAAA,EAAU,KAAK,MAAA,EAAQ,QAAA,EAAU,MAAM,QAAA,EAAS;AAAA,MAC9D,aAAA,EAAY,MAAA;AAAA,MAEZ,QAAA,kBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAG,GAAA;AAAA,UACH,EAAA,EAAG,GAAA;AAAA,UACH,CAAA,EAAE,GAAA;AAAA,UACF,MAAA,EAAO,cAAA;AAAA,UACP,WAAA,EAAY,GAAA;AAAA,UACZ,aAAA,EAAc,OAAA;AAAA,UACd,eAAA,EAAgB,OAAA;AAAA,UAChB,OAAA,EAAQ;AAAA;AAAA;AACV;AAAA,GACF;AAEJ","file":"chunk-4C6E37KK.js","sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { m, LazyMotion, domAnimation } from \"../../utils/motion\";\nimport { cn } from \"../../utils/cn\";\n\nconst buttonVariants = cva(\n [\n \"inline-flex items-center justify-center\",\n \"font-semibold rounded-xl\",\n \"transition-colors duration-150\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2\",\n \"disabled:pointer-events-none disabled:opacity-40\",\n \"select-none cursor-pointer\",\n ],\n {\n variants: {\n variant: {\n primary: [\n \"bg-[var(--color-primary)] text-white\",\n \"hover:bg-[var(--color-primary-hover)]\",\n \"focus-visible:ring-[var(--color-primary)]\",\n ],\n secondary: [\n \"bg-[var(--color-muted)] text-[var(--color-foreground)]\",\n \"hover:bg-[var(--color-gray-200)]\",\n ],\n outline: [\n \"border border-[var(--color-border)] bg-transparent text-[var(--color-foreground)]\",\n \"hover:bg-[var(--color-muted)]\",\n ],\n ghost: [\n \"bg-transparent text-[var(--color-foreground)]\",\n \"hover:bg-[var(--color-muted)]\",\n ],\n danger: [\n \"bg-[var(--color-negative)] text-white\",\n \"hover:opacity-90\",\n ],\n },\n size: {\n sm: \"h-9 px-4 text-sm gap-1.5\",\n md: \"h-11 px-5 text-body1 gap-2\",\n lg: \"h-14 px-6 text-body1 gap-2\",\n },\n fullWidth: {\n true: \"w-full\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n loading?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n fullWidth,\n asChild = false,\n loading = false,\n disabled,\n children,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <LazyMotion features={domAnimation}>\n <m.div\n whileTap={{ scale: disabled || loading ? 1 : 0.96 }}\n transition={{ type: \"spring\", stiffness: 400, damping: 17 }}\n style={{ display: \"inline-flex\", width: fullWidth ? \"100%\" : undefined }}\n >\n <Comp\n ref={ref}\n className={cn(buttonVariants({ variant, size, fullWidth, className }))}\n disabled={disabled || loading}\n aria-disabled={disabled || loading}\n {...props}\n >\n {loading ? (\n <>\n <Spinner size={size === \"sm\" ? 14 : 16} />\n {children}\n </>\n ) : (\n children\n )}\n </Comp>\n </m.div>\n </LazyMotion>\n );\n }\n);\nButton.displayName = \"Button\";\n\nfunction Spinner({ size = 16 }: { size?: number }) {\n return (\n <m.svg\n width={size}\n height={size}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n animate={{ rotate: 360 }}\n transition={{ duration: 0.8, repeat: Infinity, ease: \"linear\" }}\n aria-hidden=\"true\"\n >\n <circle\n cx=\"8\"\n cy=\"8\"\n r=\"6\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeDasharray=\"25 13\"\n opacity=\"0.8\"\n />\n </m.svg>\n );\n}\n\nexport { Button, buttonVariants };\n"]}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
|
|
4
|
+
var AccordionPrimitive = require('@radix-ui/react-accordion');
|
|
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 AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrimitive);
|
|
26
|
+
|
|
27
|
+
var Accordion = (_a) => {
|
|
28
|
+
var _b = _a, {
|
|
29
|
+
items,
|
|
30
|
+
type = "single",
|
|
31
|
+
defaultValue,
|
|
32
|
+
collapsible = true,
|
|
33
|
+
className
|
|
34
|
+
} = _b; chunk4V3IOZPC_cjs.__objRest(_b, [
|
|
35
|
+
"items",
|
|
36
|
+
"type",
|
|
37
|
+
"defaultValue",
|
|
38
|
+
"collapsible",
|
|
39
|
+
"className"
|
|
40
|
+
]);
|
|
41
|
+
const rootProps = type === "single" ? {
|
|
42
|
+
type: "single",
|
|
43
|
+
defaultValue,
|
|
44
|
+
collapsible
|
|
45
|
+
} : {
|
|
46
|
+
type: "multiple",
|
|
47
|
+
defaultValue
|
|
48
|
+
};
|
|
49
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
50
|
+
AccordionPrimitive__namespace.Root,
|
|
51
|
+
chunk4V3IOZPC_cjs.__spreadProps(chunk4V3IOZPC_cjs.__spreadValues({}, rootProps), {
|
|
52
|
+
className: chunk4V3IOZPC_cjs.cn("w-full divide-y divide-[var(--color-border)]", className),
|
|
53
|
+
children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
54
|
+
AccordionPrimitive__namespace.Item,
|
|
55
|
+
{
|
|
56
|
+
value: item.value,
|
|
57
|
+
disabled: item.disabled,
|
|
58
|
+
className: "group",
|
|
59
|
+
children: [
|
|
60
|
+
/* @__PURE__ */ jsxRuntime.jsx(AccordionPrimitive__namespace.Header, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
61
|
+
AccordionPrimitive__namespace.Trigger,
|
|
62
|
+
{
|
|
63
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
64
|
+
"flex w-full items-center justify-between py-4 px-0",
|
|
65
|
+
"text-[15px] font-medium text-[var(--color-foreground)]",
|
|
66
|
+
"transition-colors duration-150 text-left",
|
|
67
|
+
"hover:text-[var(--color-primary)]",
|
|
68
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2 rounded-md",
|
|
69
|
+
"disabled:opacity-40 disabled:cursor-not-allowed",
|
|
70
|
+
"[&[data-state=open]>svg]:rotate-180"
|
|
71
|
+
),
|
|
72
|
+
children: [
|
|
73
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 pr-4", children: item.trigger }),
|
|
74
|
+
/* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, { className: "shrink-0 text-[var(--color-muted-foreground)] transition-transform duration-200" })
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
) }),
|
|
78
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
79
|
+
AccordionPrimitive__namespace.Content,
|
|
80
|
+
{
|
|
81
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
82
|
+
"overflow-hidden text-[14px] text-[var(--color-muted-foreground)]",
|
|
83
|
+
"data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up"
|
|
84
|
+
),
|
|
85
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pb-4", children: item.content })
|
|
86
|
+
}
|
|
87
|
+
)
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
item.value
|
|
91
|
+
))
|
|
92
|
+
})
|
|
93
|
+
);
|
|
94
|
+
};
|
|
95
|
+
function ChevronDownIcon({ className }) {
|
|
96
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
97
|
+
"svg",
|
|
98
|
+
{
|
|
99
|
+
width: "18",
|
|
100
|
+
height: "18",
|
|
101
|
+
viewBox: "0 0 24 24",
|
|
102
|
+
fill: "none",
|
|
103
|
+
stroke: "currentColor",
|
|
104
|
+
strokeWidth: "2",
|
|
105
|
+
strokeLinecap: "round",
|
|
106
|
+
strokeLinejoin: "round",
|
|
107
|
+
className,
|
|
108
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m6 9 6 6 6-6" })
|
|
109
|
+
}
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
exports.Accordion = Accordion;
|
|
114
|
+
//# sourceMappingURL=chunk-4S23TNFZ.cjs.map
|
|
115
|
+
//# sourceMappingURL=chunk-4S23TNFZ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Accordion/Accordion.tsx"],"names":["__objRest","jsx","AccordionPrimitive","__spreadProps","cn","jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,IAAM,SAAA,GAAY,CAAC,EAAA,KAOG;AAPH,EAAA,IAAA,EAAA,GAAA,EAAA,CAAA,CACjB;AAAA,IAAA,KAAA;AAAA,IACA,IAAA,GAAO,QAAA;AAAA,IACP,YAAA;AAAA,IACA,WAAA,GAAc,IAAA;AAAA,IACd;AAAA,GA1BF,GAqBmB,EAAA,CAAA,CAMdA,2BAAA,CANc,EAAA,EAMd;AAAA,IALH,OAAA;AAAA,IACA,MAAA;AAAA,IACA,cAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GAAA;AAGA,EAAA,MAAM,SAAA,GACJ,SAAS,QAAA,GACL;AAAA,IACE,IAAA,EAAM,QAAA;AAAA,IACN,YAAA;AAAA,IACA;AAAA,GACF,GACA;AAAA,IACE,IAAA,EAAM,UAAA;AAAA,IACN;AAAA,GACF;AAEN,EAAA,uBACEC,cAAA;AAAA,IAAoBC,6BAAA,CAAA,IAAA;AAAA,IAAnBC,qEACK,SAAA,CAAA,EADL;AAAA,MAEC,SAAA,EAAWC,oBAAA,CAAG,8CAAA,EAAgD,SAAS,CAAA;AAAA,MAEtE,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBACVC,eAAA;AAAA,QAAoBH,6BAAA,CAAA,IAAA;AAAA,QAAnB;AAAA,UAEC,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,SAAA,EAAU,OAAA;AAAA,UAEV,QAAA,EAAA;AAAA,4BAAAD,cAAA,CAAoBC,sCAAnB,EACC,QAAA,kBAAAG,eAAA;AAAA,cAAoBH,6BAAA,CAAA,OAAA;AAAA,cAAnB;AAAA,gBACC,SAAA,EAAWE,oBAAA;AAAA,kBACT,oDAAA;AAAA,kBACA,wDAAA;AAAA,kBACA,0CAAA;AAAA,kBACA,mCAAA;AAAA,kBACA,kIAAA;AAAA,kBACA,iDAAA;AAAA,kBACA;AAAA,iBACF;AAAA,gBAEA,QAAA,EAAA;AAAA,kCAAAH,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAe,QAAA,EAAA,IAAA,CAAK,OAAA,EAAQ,CAAA;AAAA,kCAC5CA,cAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,iFAAA,EAAkF;AAAA;AAAA;AAAA,aAC/G,EACF,CAAA;AAAA,4BACAA,cAAA;AAAA,cAAoBC,6BAAA,CAAA,OAAA;AAAA,cAAnB;AAAA,gBACC,SAAA,EAAWE,oBAAA;AAAA,kBACT,kEAAA;AAAA,kBACA;AAAA,iBACF;AAAA,gBAEA,QAAA,kBAAAH,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,MAAA,EAAQ,eAAK,OAAA,EAAQ;AAAA;AAAA;AACtC;AAAA,SAAA;AAAA,QA5BK,IAAA,CAAK;AAAA,OA8Bb;AAAA,KAAA;AAAA,GACH;AAEJ;AAEA,SAAS,eAAA,CAAgB,EAAE,SAAA,EAAU,EAA2B;AAC9D,EAAA,uBACEA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,IAAA;AAAA,MACN,MAAA,EAAO,IAAA;AAAA,MACP,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,SAAA;AAAA,MAEA,QAAA,kBAAAA,cAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,cAAA,EAAe;AAAA;AAAA,GACzB;AAEJ","file":"chunk-4S23TNFZ.cjs","sourcesContent":["import * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface AccordionItem {\n value: string;\n trigger: React.ReactNode;\n content: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface AccordionProps {\n items: AccordionItem[];\n type?: \"single\" | \"multiple\";\n defaultValue?: string | string[];\n value?: string | string[];\n onValueChange?: ((value: string) => void) & ((value: string[]) => void);\n collapsible?: boolean;\n className?: string;\n}\n\nconst Accordion = ({\n items,\n type = \"single\",\n defaultValue,\n collapsible = true,\n className,\n ...props\n}: AccordionProps) => {\n const rootProps =\n type === \"single\"\n ? {\n type: \"single\" as const,\n defaultValue: defaultValue as string | undefined,\n collapsible,\n }\n : {\n type: \"multiple\" as const,\n defaultValue: defaultValue as string[] | undefined,\n };\n\n return (\n <AccordionPrimitive.Root\n {...rootProps}\n className={cn(\"w-full divide-y divide-[var(--color-border)]\", className)}\n >\n {items.map((item) => (\n <AccordionPrimitive.Item\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n className=\"group\"\n >\n <AccordionPrimitive.Header>\n <AccordionPrimitive.Trigger\n className={cn(\n \"flex w-full items-center justify-between py-4 px-0\",\n \"text-[15px] font-medium text-[var(--color-foreground)]\",\n \"transition-colors duration-150 text-left\",\n \"hover:text-[var(--color-primary)]\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2 rounded-md\",\n \"disabled:opacity-40 disabled:cursor-not-allowed\",\n \"[&[data-state=open]>svg]:rotate-180\"\n )}\n >\n <span className=\"flex-1 pr-4\">{item.trigger}</span>\n <ChevronDownIcon className=\"shrink-0 text-[var(--color-muted-foreground)] transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n <AccordionPrimitive.Content\n className={cn(\n \"overflow-hidden text-[14px] text-[var(--color-muted-foreground)]\",\n \"data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up\"\n )}\n >\n <div className=\"pb-4\">{item.content}</div>\n </AccordionPrimitive.Content>\n </AccordionPrimitive.Item>\n ))}\n </AccordionPrimitive.Root>\n );\n};\n\nfunction ChevronDownIcon({ className }: { className?: string }) {\n return (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n );\n}\n\nexport { Accordion };\n"]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var clsx = require('clsx');
|
|
4
|
+
var tailwindMerge = require('tailwind-merge');
|
|
5
|
+
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __defProps = Object.defineProperties;
|
|
8
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
9
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
12
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
13
|
+
var __spreadValues = (a, b) => {
|
|
14
|
+
for (var prop in b || (b = {}))
|
|
15
|
+
if (__hasOwnProp.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
if (__getOwnPropSymbols)
|
|
18
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
19
|
+
if (__propIsEnum.call(b, prop))
|
|
20
|
+
__defNormalProp(a, prop, b[prop]);
|
|
21
|
+
}
|
|
22
|
+
return a;
|
|
23
|
+
};
|
|
24
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
25
|
+
var __objRest = (source, exclude) => {
|
|
26
|
+
var target = {};
|
|
27
|
+
for (var prop in source)
|
|
28
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
29
|
+
target[prop] = source[prop];
|
|
30
|
+
if (source != null && __getOwnPropSymbols)
|
|
31
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
32
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
33
|
+
target[prop] = source[prop];
|
|
34
|
+
}
|
|
35
|
+
return target;
|
|
36
|
+
};
|
|
37
|
+
var twMerge = tailwindMerge.extendTailwindMerge({
|
|
38
|
+
extend: {
|
|
39
|
+
classGroups: {
|
|
40
|
+
"font-size": [
|
|
41
|
+
"text-display1",
|
|
42
|
+
"text-title1",
|
|
43
|
+
"text-title2",
|
|
44
|
+
"text-title3",
|
|
45
|
+
"text-body1",
|
|
46
|
+
"text-body2",
|
|
47
|
+
"text-caption1"
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
function cn(...inputs) {
|
|
53
|
+
return twMerge(clsx.clsx(inputs));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
exports.__objRest = __objRest;
|
|
57
|
+
exports.__spreadProps = __spreadProps;
|
|
58
|
+
exports.__spreadValues = __spreadValues;
|
|
59
|
+
exports.cn = cn;
|
|
60
|
+
//# sourceMappingURL=chunk-4V3IOZPC.cjs.map
|
|
61
|
+
//# sourceMappingURL=chunk-4V3IOZPC.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/cn.ts"],"names":["extendTailwindMerge","clsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAM,UAAUA,iCAAA,CAAoB;AAAA,EAClC,MAAA,EAAQ;AAAA,IACN,WAAA,EAAa;AAAA,MACX,WAAA,EAAa;AAAA,QACX,eAAA;AAAA,QACA,aAAA;AAAA,QACA,aAAA;AAAA,QACA,aAAA;AAAA,QACA,YAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA;AACF;AACF;AAEJ,CAAC,CAAA;AAEM,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQC,SAAA,CAAK,MAAM,CAAC,CAAA;AAC7B","file":"chunk-4V3IOZPC.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst twMerge = extendTailwindMerge({\n extend: {\n classGroups: {\n \"font-size\": [\n \"text-display1\",\n \"text-title1\",\n \"text-title2\",\n \"text-title3\",\n \"text-body1\",\n \"text-body2\",\n \"text-caption1\",\n ],\n },\n },\n});\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
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
|
+
|
|
28
|
+
var badgeVariants = classVarianceAuthority.cva(
|
|
29
|
+
"inline-flex items-center justify-center font-semibold rounded-full select-none",
|
|
30
|
+
{
|
|
31
|
+
variants: {
|
|
32
|
+
variant: {
|
|
33
|
+
primary: "bg-[var(--color-primary)] text-white",
|
|
34
|
+
positive: "bg-[var(--color-positive)] text-white",
|
|
35
|
+
negative: "bg-[var(--color-negative)] text-white",
|
|
36
|
+
warning: "bg-[var(--color-warning)] text-white",
|
|
37
|
+
neutral: "bg-[var(--color-muted)] text-[var(--color-muted-foreground)]",
|
|
38
|
+
outline: "border border-[var(--color-border)] text-[var(--color-foreground)] bg-transparent"
|
|
39
|
+
},
|
|
40
|
+
size: {
|
|
41
|
+
sm: "text-[10px] px-1.5 h-4",
|
|
42
|
+
md: "text-[12px] px-2 h-5",
|
|
43
|
+
lg: "text-[13px] px-2.5 h-6"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
defaultVariants: {
|
|
47
|
+
variant: "primary",
|
|
48
|
+
size: "md"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
var Badge = React__namespace.forwardRef(
|
|
53
|
+
(_a, ref) => {
|
|
54
|
+
var _b = _a, { className, variant, size } = _b, props = chunk4V3IOZPC_cjs.__objRest(_b, ["className", "variant", "size"]);
|
|
55
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
56
|
+
"span",
|
|
57
|
+
chunk4V3IOZPC_cjs.__spreadValues({
|
|
58
|
+
ref,
|
|
59
|
+
className: chunk4V3IOZPC_cjs.cn(badgeVariants({ variant, size }), className)
|
|
60
|
+
}, props)
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
Badge.displayName = "Badge";
|
|
65
|
+
|
|
66
|
+
exports.Badge = Badge;
|
|
67
|
+
exports.badgeVariants = badgeVariants;
|
|
68
|
+
//# sourceMappingURL=chunk-4YQPDHZP.cjs.map
|
|
69
|
+
//# sourceMappingURL=chunk-4YQPDHZP.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Badge/Badge.tsx"],"names":["cva","React","__objRest","jsx","__spreadValues","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAM,aAAA,GAAgBA,0BAAA;AAAA,EACpB,gFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,sCAAA;AAAA,QACT,QAAA,EAAU,uCAAA;AAAA,QACV,QAAA,EAAU,uCAAA;AAAA,QACV,OAAA,EAAS,sCAAA;AAAA,QACT,OAAA,EAAS,8DAAA;AAAA,QACT,OAAA,EAAS;AAAA,OACX;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,wBAAA;AAAA,QACJ,EAAA,EAAI,sBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAMA,IAAM,KAAA,GAAcC,gBAAA,CAAA,UAAA;AAAA,EAClB,CAAC,IAAwC,GAAA,KAAK;AAA7C,IAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAAW,SAAS,IAAA,EAlCzB,GAkCG,IAA+B,KAAA,GAAAC,2BAAA,CAA/B,EAAA,EAA+B,CAA7B,WAAA,EAAW,SAAA,EAAS,MAAA,CAAA,CAAA;AACrB,IAAA,uBAAAC,cAAA;AAAA,MAAC,MAAA;AAAA,MAAAC,gCAAA,CAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWC,qBAAG,aAAA,CAAc,EAAE,SAAS,IAAA,EAAM,GAAG,SAAS;AAAA,OAAA,EACrD,KAAA;AAAA,KACN;AAAA,EAAA;AAEJ;AACA,KAAA,CAAM,WAAA,GAAc,OAAA","file":"chunk-4YQPDHZP.cjs","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center font-semibold rounded-full select-none\",\n {\n variants: {\n variant: {\n primary: \"bg-[var(--color-primary)] text-white\",\n positive: \"bg-[var(--color-positive)] text-white\",\n negative: \"bg-[var(--color-negative)] text-white\",\n warning: \"bg-[var(--color-warning)] text-white\",\n neutral: \"bg-[var(--color-muted)] text-[var(--color-muted-foreground)]\",\n outline: \"border border-[var(--color-border)] text-[var(--color-foreground)] bg-transparent\",\n },\n size: {\n sm: \"text-[10px] px-1.5 h-4\",\n md: \"text-[12px] px-2 h-5\",\n lg: \"text-[13px] px-2.5 h-6\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {}\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, size, ...props }, ref) => (\n <span\n ref={ref}\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n />\n )\n);\nBadge.displayName = \"Badge\";\n\nexport { Badge, badgeVariants };\n"]}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { cn, __objRest, __spreadProps, __spreadValues } from './chunk-MVGUWG27.js';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
function range(start, end) {
|
|
6
|
+
return Array.from({ length: end - start + 1 }, (_, i) => start + i);
|
|
7
|
+
}
|
|
8
|
+
function usePaginationRange(page, totalPages, siblingCount) {
|
|
9
|
+
return React.useMemo(() => {
|
|
10
|
+
const totalPageNumbers = siblingCount * 2 + 5;
|
|
11
|
+
if (totalPages <= totalPageNumbers) {
|
|
12
|
+
return range(1, totalPages);
|
|
13
|
+
}
|
|
14
|
+
const leftSiblingIndex = Math.max(page - siblingCount, 1);
|
|
15
|
+
const rightSiblingIndex = Math.min(page + siblingCount, totalPages);
|
|
16
|
+
const showLeftDots = leftSiblingIndex > 2;
|
|
17
|
+
const showRightDots = rightSiblingIndex < totalPages - 1;
|
|
18
|
+
if (!showLeftDots && showRightDots) {
|
|
19
|
+
const leftRange = range(1, 3 + 2 * siblingCount);
|
|
20
|
+
return [...leftRange, "...", totalPages];
|
|
21
|
+
}
|
|
22
|
+
if (showLeftDots && !showRightDots) {
|
|
23
|
+
const rightRange = range(totalPages - (3 + 2 * siblingCount) + 1, totalPages);
|
|
24
|
+
return [1, "...", ...rightRange];
|
|
25
|
+
}
|
|
26
|
+
const middleRange = range(leftSiblingIndex, rightSiblingIndex);
|
|
27
|
+
return [1, "...", ...middleRange, "...", totalPages];
|
|
28
|
+
}, [page, totalPages, siblingCount]);
|
|
29
|
+
}
|
|
30
|
+
var Pagination = ({ page, totalPages, onPageChange, siblingCount = 1, className }) => {
|
|
31
|
+
const pages = usePaginationRange(page, totalPages, siblingCount);
|
|
32
|
+
return /* @__PURE__ */ jsxs("nav", { "aria-label": "\uD398\uC774\uC9C0 \uD0D0\uC0C9", className: cn("flex items-center gap-1", className), children: [
|
|
33
|
+
/* @__PURE__ */ jsx(
|
|
34
|
+
PaginationButton,
|
|
35
|
+
{
|
|
36
|
+
onClick: () => onPageChange(page - 1),
|
|
37
|
+
disabled: page <= 1,
|
|
38
|
+
"aria-label": "\uC774\uC804 \uD398\uC774\uC9C0",
|
|
39
|
+
children: /* @__PURE__ */ jsx(ChevronLeftIcon, {})
|
|
40
|
+
}
|
|
41
|
+
),
|
|
42
|
+
pages.map(
|
|
43
|
+
(p, i) => p === "..." ? /* @__PURE__ */ jsx(
|
|
44
|
+
"span",
|
|
45
|
+
{
|
|
46
|
+
className: "flex h-9 w-9 items-center justify-center text-[14px] text-[var(--color-muted-foreground)] select-none",
|
|
47
|
+
children: "\u2026"
|
|
48
|
+
},
|
|
49
|
+
`dots-${i}`
|
|
50
|
+
) : /* @__PURE__ */ jsx(
|
|
51
|
+
PaginationButton,
|
|
52
|
+
{
|
|
53
|
+
onClick: () => onPageChange(p),
|
|
54
|
+
isActive: p === page,
|
|
55
|
+
"aria-label": `${p}\uD398\uC774\uC9C0`,
|
|
56
|
+
"aria-current": p === page ? "page" : void 0,
|
|
57
|
+
children: p
|
|
58
|
+
},
|
|
59
|
+
p
|
|
60
|
+
)
|
|
61
|
+
),
|
|
62
|
+
/* @__PURE__ */ jsx(
|
|
63
|
+
PaginationButton,
|
|
64
|
+
{
|
|
65
|
+
onClick: () => onPageChange(page + 1),
|
|
66
|
+
disabled: page >= totalPages,
|
|
67
|
+
"aria-label": "\uB2E4\uC74C \uD398\uC774\uC9C0",
|
|
68
|
+
children: /* @__PURE__ */ jsx(ChevronRightIcon, {})
|
|
69
|
+
}
|
|
70
|
+
)
|
|
71
|
+
] });
|
|
72
|
+
};
|
|
73
|
+
function PaginationButton(_a) {
|
|
74
|
+
var _b = _a, { isActive, className, children } = _b, props = __objRest(_b, ["isActive", "className", "children"]);
|
|
75
|
+
return /* @__PURE__ */ jsx(
|
|
76
|
+
"button",
|
|
77
|
+
__spreadProps(__spreadValues({
|
|
78
|
+
type: "button",
|
|
79
|
+
className: cn(
|
|
80
|
+
"flex h-9 w-9 items-center justify-center rounded-xl text-[14px] font-medium",
|
|
81
|
+
"transition-colors duration-150 select-none",
|
|
82
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2",
|
|
83
|
+
"disabled:opacity-40 disabled:cursor-not-allowed",
|
|
84
|
+
isActive ? "bg-[var(--color-primary)] text-white" : "text-[var(--color-foreground)] hover:bg-[var(--color-muted)]",
|
|
85
|
+
className
|
|
86
|
+
)
|
|
87
|
+
}, props), {
|
|
88
|
+
children
|
|
89
|
+
})
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
function ChevronLeftIcon() {
|
|
93
|
+
return /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx("path", { d: "m15 18-6-6 6-6" }) });
|
|
94
|
+
}
|
|
95
|
+
function ChevronRightIcon() {
|
|
96
|
+
return /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx("path", { d: "m9 18 6-6-6-6" }) });
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export { Pagination };
|
|
100
|
+
//# sourceMappingURL=chunk-6CMR4MT4.js.map
|
|
101
|
+
//# sourceMappingURL=chunk-6CMR4MT4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":"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","file":"chunk-6CMR4MT4.js","sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface PaginationProps {\n page: number;\n totalPages: number;\n onPageChange: (page: number) => void;\n siblingCount?: number;\n className?: string;\n}\n\nfunction range(start: number, end: number) {\n return Array.from({ length: end - start + 1 }, (_, i) => start + i);\n}\n\nfunction usePaginationRange(page: number, totalPages: number, siblingCount: number) {\n return React.useMemo(() => {\n const totalPageNumbers = siblingCount * 2 + 5; // siblings + first + last + current + 2 dots\n\n if (totalPages <= totalPageNumbers) {\n return range(1, totalPages);\n }\n\n const leftSiblingIndex = Math.max(page - siblingCount, 1);\n const rightSiblingIndex = Math.min(page + siblingCount, totalPages);\n\n const showLeftDots = leftSiblingIndex > 2;\n const showRightDots = rightSiblingIndex < totalPages - 1;\n\n if (!showLeftDots && showRightDots) {\n const leftRange = range(1, 3 + 2 * siblingCount);\n return [...leftRange, \"...\", totalPages];\n }\n\n if (showLeftDots && !showRightDots) {\n const rightRange = range(totalPages - (3 + 2 * siblingCount) + 1, totalPages);\n return [1, \"...\", ...rightRange];\n }\n\n const middleRange = range(leftSiblingIndex, rightSiblingIndex);\n return [1, \"...\", ...middleRange, \"...\", totalPages];\n }, [page, totalPages, siblingCount]);\n}\n\nconst Pagination = ({ page, totalPages, onPageChange, siblingCount = 1, className }: PaginationProps) => {\n const pages = usePaginationRange(page, totalPages, siblingCount);\n\n return (\n <nav aria-label=\"페이지 탐색\" className={cn(\"flex items-center gap-1\", className)}>\n <PaginationButton\n onClick={() => onPageChange(page - 1)}\n disabled={page <= 1}\n aria-label=\"이전 페이지\"\n >\n <ChevronLeftIcon />\n </PaginationButton>\n\n {pages.map((p, i) =>\n p === \"...\" ? (\n <span\n key={`dots-${i}`}\n className=\"flex h-9 w-9 items-center justify-center text-[14px] text-[var(--color-muted-foreground)] select-none\"\n >\n …\n </span>\n ) : (\n <PaginationButton\n key={p}\n onClick={() => onPageChange(p as number)}\n isActive={p === page}\n aria-label={`${p}페이지`}\n aria-current={p === page ? \"page\" : undefined}\n >\n {p}\n </PaginationButton>\n )\n )}\n\n <PaginationButton\n onClick={() => onPageChange(page + 1)}\n disabled={page >= totalPages}\n aria-label=\"다음 페이지\"\n >\n <ChevronRightIcon />\n </PaginationButton>\n </nav>\n );\n};\n\ninterface PaginationButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n isActive?: boolean;\n}\n\nfunction PaginationButton({ isActive, className, children, ...props }: PaginationButtonProps) {\n return (\n <button\n type=\"button\"\n className={cn(\n \"flex h-9 w-9 items-center justify-center rounded-xl text-[14px] font-medium\",\n \"transition-colors duration-150 select-none\",\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 isActive\n ? \"bg-[var(--color-primary)] text-white\"\n : \"text-[var(--color-foreground)] hover:bg-[var(--color-muted)]\",\n className\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nfunction ChevronLeftIcon() {\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=\"m15 18-6-6 6-6\" />\n </svg>\n );\n}\n\nfunction ChevronRightIcon() {\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=\"m9 18 6-6-6-6\" />\n </svg>\n );\n}\n\nexport { Pagination };\n"]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { LazyMotion, domAnimation, m } from './chunk-Y3CWICHE.js';
|
|
2
|
+
import { __objRest, __spreadProps, __spreadValues, cn } from './chunk-MVGUWG27.js';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
5
|
+
import * as Label from '@radix-ui/react-label';
|
|
6
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var Checkbox = React.forwardRef((_a, ref) => {
|
|
9
|
+
var _b = _a, { className, label, id } = _b, props = __objRest(_b, ["className", "label", "id"]);
|
|
10
|
+
const generatedId = React.useId();
|
|
11
|
+
const checkboxId = id != null ? id : generatedId;
|
|
12
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5", children: [
|
|
13
|
+
/* @__PURE__ */ jsx(
|
|
14
|
+
CheckboxPrimitive.Root,
|
|
15
|
+
__spreadProps(__spreadValues({
|
|
16
|
+
ref,
|
|
17
|
+
id: checkboxId,
|
|
18
|
+
className: cn(
|
|
19
|
+
"h-5 w-5 rounded-md shrink-0",
|
|
20
|
+
"border-2 border-[var(--color-border)]",
|
|
21
|
+
"bg-[var(--color-background)]",
|
|
22
|
+
"transition-colors duration-150",
|
|
23
|
+
"data-[state=checked]:bg-[var(--color-primary)] data-[state=checked]:border-[var(--color-primary)]",
|
|
24
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2",
|
|
25
|
+
"disabled:opacity-40 disabled:cursor-not-allowed",
|
|
26
|
+
className
|
|
27
|
+
)
|
|
28
|
+
}, props), {
|
|
29
|
+
children: /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx(LazyMotion, { features: domAnimation, children: /* @__PURE__ */ jsx(
|
|
30
|
+
m.svg,
|
|
31
|
+
{
|
|
32
|
+
width: "11",
|
|
33
|
+
height: "8",
|
|
34
|
+
viewBox: "0 0 11 8",
|
|
35
|
+
fill: "none",
|
|
36
|
+
initial: { pathLength: 0, opacity: 0 },
|
|
37
|
+
animate: { pathLength: 1, opacity: 1 },
|
|
38
|
+
transition: { duration: 0.2, ease: "easeOut" },
|
|
39
|
+
children: /* @__PURE__ */ jsx(
|
|
40
|
+
m.path,
|
|
41
|
+
{
|
|
42
|
+
d: "M1 3.5L4 6.5L10 1",
|
|
43
|
+
stroke: "white",
|
|
44
|
+
strokeWidth: "1.8",
|
|
45
|
+
strokeLinecap: "round",
|
|
46
|
+
strokeLinejoin: "round"
|
|
47
|
+
}
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
) }) })
|
|
51
|
+
})
|
|
52
|
+
),
|
|
53
|
+
label && /* @__PURE__ */ jsx(
|
|
54
|
+
Label.Root,
|
|
55
|
+
{
|
|
56
|
+
htmlFor: checkboxId,
|
|
57
|
+
className: "text-[16px] text-[var(--color-foreground)] cursor-pointer select-none",
|
|
58
|
+
children: label
|
|
59
|
+
}
|
|
60
|
+
)
|
|
61
|
+
] });
|
|
62
|
+
});
|
|
63
|
+
Checkbox.displayName = "Checkbox";
|
|
64
|
+
|
|
65
|
+
export { Checkbox };
|
|
66
|
+
//# sourceMappingURL=chunk-7B6U7GED.js.map
|
|
67
|
+
//# sourceMappingURL=chunk-7B6U7GED.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Checkbox/Checkbox.tsx"],"names":[],"mappings":";;;;;;;AAWA,IAAM,QAAA,GAAiB,KAAA,CAAA,UAAA,CAGrB,CAAC,EAAA,EAAoC,GAAA,KAAQ;AAA5C,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAAW,OAAO,EAAA,EAdvB,GAcG,IAA2B,KAAA,GAAA,SAAA,CAA3B,EAAA,EAA2B,CAAzB,WAAA,EAAW,OAAA,EAAO,IAAA,CAAA,CAAA;AACrB,EAAA,MAAM,cAAoB,KAAA,CAAA,KAAA,EAAM;AAChC,EAAA,MAAM,aAAa,EAAA,IAAA,IAAA,GAAA,EAAA,GAAM,WAAA;AAEzB,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAmB,iBAAA,CAAA,IAAA;AAAA,MAAlB,aAAA,CAAA,cAAA,CAAA;AAAA,QACC,GAAA;AAAA,QACA,EAAA,EAAI,UAAA;AAAA,QACJ,SAAA,EAAW,EAAA;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,kBAAA,GAAA,CAAmB,6BAAlB,EAA4B,SAAA,EAAU,oCACrC,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,UAAU,YAAA,EACpB,QAAA,kBAAA,GAAA;AAAA,UAAC,CAAA,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,kBAAA,GAAA;AAAA,cAAC,CAAA,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,oBACC,GAAA;AAAA,MAAO,KAAA,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-7B6U7GED.js","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"]}
|