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,80 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var SwitchPrimitive = require('@radix-ui/react-switch');
|
|
6
|
+
var Label = require('@radix-ui/react-label');
|
|
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
|
+
var SwitchPrimitive__namespace = /*#__PURE__*/_interopNamespace(SwitchPrimitive);
|
|
29
|
+
var Label__namespace = /*#__PURE__*/_interopNamespace(Label);
|
|
30
|
+
|
|
31
|
+
var Toggle = React__namespace.forwardRef((_a, ref) => {
|
|
32
|
+
var _b = _a, { className, label, description, id } = _b, props = chunk4V3IOZPC_cjs.__objRest(_b, ["className", "label", "description", "id"]);
|
|
33
|
+
const toggleId = id != null ? id : React__namespace.useId();
|
|
34
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-4 w-full", children: [
|
|
35
|
+
(label || description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-0.5", children: [
|
|
36
|
+
label && /* @__PURE__ */ jsxRuntime.jsx(
|
|
37
|
+
Label__namespace.Root,
|
|
38
|
+
{
|
|
39
|
+
htmlFor: toggleId,
|
|
40
|
+
className: "text-[16px] font-medium text-[var(--color-foreground)] cursor-pointer select-none",
|
|
41
|
+
children: label
|
|
42
|
+
}
|
|
43
|
+
),
|
|
44
|
+
description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[13px] text-[var(--color-muted-foreground)]", children: description })
|
|
45
|
+
] }),
|
|
46
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
47
|
+
SwitchPrimitive__namespace.Root,
|
|
48
|
+
chunk4V3IOZPC_cjs.__spreadProps(chunk4V3IOZPC_cjs.__spreadValues({
|
|
49
|
+
ref,
|
|
50
|
+
id: toggleId,
|
|
51
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
52
|
+
"relative inline-flex h-7 w-12 shrink-0 cursor-pointer rounded-full",
|
|
53
|
+
"bg-[var(--color-gray-300)]",
|
|
54
|
+
"transition-colors duration-200 ease-in-out",
|
|
55
|
+
"data-[state=checked]:bg-[var(--color-primary)]",
|
|
56
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-2",
|
|
57
|
+
"disabled:opacity-40 disabled:cursor-not-allowed",
|
|
58
|
+
className
|
|
59
|
+
)
|
|
60
|
+
}, props), {
|
|
61
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
62
|
+
SwitchPrimitive__namespace.Thumb,
|
|
63
|
+
{
|
|
64
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
65
|
+
"pointer-events-none block h-5 w-5 rounded-full bg-white shadow-md",
|
|
66
|
+
"transition-transform duration-200 ease-in-out",
|
|
67
|
+
"translate-x-1",
|
|
68
|
+
"data-[state=checked]:translate-x-6"
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
)
|
|
72
|
+
})
|
|
73
|
+
)
|
|
74
|
+
] });
|
|
75
|
+
});
|
|
76
|
+
Toggle.displayName = "Toggle";
|
|
77
|
+
|
|
78
|
+
exports.Toggle = Toggle;
|
|
79
|
+
//# sourceMappingURL=chunk-LC5SUZE5.cjs.map
|
|
80
|
+
//# sourceMappingURL=chunk-LC5SUZE5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Toggle/Toggle.tsx"],"names":["React","__objRest","jsxs","jsx","Label","SwitchPrimitive","__spreadProps","__spreadValues","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,IAAM,MAAA,GAAeA,gBAAA,CAAA,UAAA,CAGnB,CAAC,EAAA,EAAiD,GAAA,KAAQ;AAAzD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAAW,KAAA,EAAO,WAAA,EAAa,EAAA,EAdpC,GAcG,EAAA,EAAwC,KAAA,GAAAC,2BAAA,CAAxC,EAAA,EAAwC,CAAtC,WAAA,EAAW,OAAA,EAAO,aAAA,EAAa,IAAA,CAAA,CAAA;AAClC,EAAA,MAAM,QAAA,GAAW,kBAAYD,gBAAA,CAAA,KAAA,EAAM;AAEnC,EAAA,uBACEE,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gDAAA,EACX,QAAA,EAAA;AAAA,IAAA,CAAA,KAAA,IAAS,WAAA,qBACTA,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,KAAA,oBACCC,cAAA;AAAA,QAAOC,gBAAA,CAAA,IAAA;AAAA,QAAN;AAAA,UACC,OAAA,EAAS,QAAA;AAAA,UACT,SAAA,EAAU,mFAAA;AAAA,UAET,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,MAED,WAAA,oBACCD,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oDAAoD,QAAA,EAAA,WAAA,EAAY;AAAA,KAAA,EAEjF,CAAA;AAAA,oBAEFA,cAAA;AAAA,MAAiBE,0BAAA,CAAA,IAAA;AAAA,MAAhBC,+BAAA,CAAAC,gCAAA,CAAA;AAAA,QACC,GAAA;AAAA,QACA,EAAA,EAAI,QAAA;AAAA,QACJ,SAAA,EAAWC,oBAAA;AAAA,UACT,oEAAA;AAAA,UACA,4BAAA;AAAA,UACA,4CAAA;AAAA,UACA,gDAAA;AAAA,UACA,uHAAA;AAAA,UACA,iDAAA;AAAA,UACA;AAAA;AACF,OAAA,EACI,KAAA,CAAA,EAZL;AAAA,QAcC,QAAA,kBAAAL,cAAA;AAAA,UAAiBE,0BAAA,CAAA,KAAA;AAAA,UAAhB;AAAA,YACC,SAAA,EAAWG,oBAAA;AAAA,cACT,mEAAA;AAAA,cACA,+CAAA;AAAA,cACA,eAAA;AAAA,cACA;AAAA;AACF;AAAA;AACF,OAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ,CAAC;AACD,MAAA,CAAO,WAAA,GAAc,QAAA","file":"chunk-LC5SUZE5.cjs","sourcesContent":["import * as React from \"react\";\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\";\nimport * as Label from \"@radix-ui/react-label\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ToggleProps\n extends React.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root> {\n label?: string;\n description?: string;\n}\n\nconst Toggle = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitive.Root>,\n ToggleProps\n>(({ className, label, description, id, ...props }, ref) => {\n const toggleId = id ?? React.useId();\n\n return (\n <div className=\"flex items-center justify-between gap-4 w-full\">\n {(label || description) && (\n <div className=\"flex flex-col gap-0.5\">\n {label && (\n <Label.Root\n htmlFor={toggleId}\n className=\"text-[16px] font-medium text-[var(--color-foreground)] cursor-pointer select-none\"\n >\n {label}\n </Label.Root>\n )}\n {description && (\n <p className=\"text-[13px] text-[var(--color-muted-foreground)]\">{description}</p>\n )}\n </div>\n )}\n <SwitchPrimitive.Root\n ref={ref}\n id={toggleId}\n className={cn(\n \"relative inline-flex h-7 w-12 shrink-0 cursor-pointer rounded-full\",\n \"bg-[var(--color-gray-300)]\",\n \"transition-colors duration-200 ease-in-out\",\n \"data-[state=checked]:bg-[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 <SwitchPrimitive.Thumb\n className={cn(\n \"pointer-events-none block h-5 w-5 rounded-full bg-white shadow-md\",\n \"transition-transform duration-200 ease-in-out\",\n \"translate-x-1\",\n \"data-[state=checked]:translate-x-6\"\n )}\n />\n </SwitchPrimitive.Root>\n </div>\n );\n});\nToggle.displayName = \"Toggle\";\n\nexport { Toggle };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-LCABZUFW.js"}
|
|
@@ -0,0 +1,157 @@
|
|
|
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 reactSlot = require('@radix-ui/react-slot');
|
|
7
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
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
|
+
|
|
30
|
+
var buttonVariants = classVarianceAuthority.cva(
|
|
31
|
+
[
|
|
32
|
+
"inline-flex items-center justify-center",
|
|
33
|
+
"font-semibold rounded-xl",
|
|
34
|
+
"transition-colors duration-150",
|
|
35
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
|
|
36
|
+
"disabled:pointer-events-none disabled:opacity-40",
|
|
37
|
+
"select-none cursor-pointer"
|
|
38
|
+
],
|
|
39
|
+
{
|
|
40
|
+
variants: {
|
|
41
|
+
variant: {
|
|
42
|
+
primary: [
|
|
43
|
+
"bg-[var(--color-primary)] text-white",
|
|
44
|
+
"hover:bg-[var(--color-primary-hover)]",
|
|
45
|
+
"focus-visible:ring-[var(--color-primary)]"
|
|
46
|
+
],
|
|
47
|
+
secondary: [
|
|
48
|
+
"bg-[var(--color-muted)] text-[var(--color-foreground)]",
|
|
49
|
+
"hover:bg-[var(--color-gray-200)]"
|
|
50
|
+
],
|
|
51
|
+
outline: [
|
|
52
|
+
"border border-[var(--color-border)] bg-transparent text-[var(--color-foreground)]",
|
|
53
|
+
"hover:bg-[var(--color-muted)]"
|
|
54
|
+
],
|
|
55
|
+
ghost: [
|
|
56
|
+
"bg-transparent text-[var(--color-foreground)]",
|
|
57
|
+
"hover:bg-[var(--color-muted)]"
|
|
58
|
+
],
|
|
59
|
+
danger: [
|
|
60
|
+
"bg-[var(--color-negative)] text-white",
|
|
61
|
+
"hover:opacity-90"
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
size: {
|
|
65
|
+
sm: "h-9 px-4 text-sm gap-1.5",
|
|
66
|
+
md: "h-11 px-5 text-body1 gap-2",
|
|
67
|
+
lg: "h-14 px-6 text-body1 gap-2"
|
|
68
|
+
},
|
|
69
|
+
fullWidth: {
|
|
70
|
+
true: "w-full"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
defaultVariants: {
|
|
74
|
+
variant: "primary",
|
|
75
|
+
size: "md"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
);
|
|
79
|
+
var Button = React__namespace.forwardRef(
|
|
80
|
+
(_a, ref) => {
|
|
81
|
+
var _b = _a, {
|
|
82
|
+
className,
|
|
83
|
+
variant,
|
|
84
|
+
size,
|
|
85
|
+
fullWidth,
|
|
86
|
+
asChild = false,
|
|
87
|
+
loading = false,
|
|
88
|
+
disabled,
|
|
89
|
+
children
|
|
90
|
+
} = _b, props = chunk4V3IOZPC_cjs.__objRest(_b, [
|
|
91
|
+
"className",
|
|
92
|
+
"variant",
|
|
93
|
+
"size",
|
|
94
|
+
"fullWidth",
|
|
95
|
+
"asChild",
|
|
96
|
+
"loading",
|
|
97
|
+
"disabled",
|
|
98
|
+
"children"
|
|
99
|
+
]);
|
|
100
|
+
const Comp = asChild ? reactSlot.Slot : "button";
|
|
101
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkUXYAKGI2_cjs.LazyMotion, { features: chunkUXYAKGI2_cjs.domAnimation, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
102
|
+
chunkUXYAKGI2_cjs.m.div,
|
|
103
|
+
{
|
|
104
|
+
whileTap: { scale: disabled || loading ? 1 : 0.96 },
|
|
105
|
+
transition: { type: "spring", stiffness: 400, damping: 17 },
|
|
106
|
+
style: { display: "inline-flex", width: fullWidth ? "100%" : void 0 },
|
|
107
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
108
|
+
Comp,
|
|
109
|
+
chunk4V3IOZPC_cjs.__spreadProps(chunk4V3IOZPC_cjs.__spreadValues({
|
|
110
|
+
ref,
|
|
111
|
+
className: chunk4V3IOZPC_cjs.cn(buttonVariants({ variant, size, fullWidth, className })),
|
|
112
|
+
disabled: disabled || loading,
|
|
113
|
+
"aria-disabled": disabled || loading
|
|
114
|
+
}, props), {
|
|
115
|
+
children: loading ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
116
|
+
/* @__PURE__ */ jsxRuntime.jsx(Spinner, { size: size === "sm" ? 14 : 16 }),
|
|
117
|
+
children
|
|
118
|
+
] }) : children
|
|
119
|
+
})
|
|
120
|
+
)
|
|
121
|
+
}
|
|
122
|
+
) });
|
|
123
|
+
}
|
|
124
|
+
);
|
|
125
|
+
Button.displayName = "Button";
|
|
126
|
+
function Spinner({ size = 16 }) {
|
|
127
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
128
|
+
chunkUXYAKGI2_cjs.m.svg,
|
|
129
|
+
{
|
|
130
|
+
width: size,
|
|
131
|
+
height: size,
|
|
132
|
+
viewBox: "0 0 16 16",
|
|
133
|
+
fill: "none",
|
|
134
|
+
animate: { rotate: 360 },
|
|
135
|
+
transition: { duration: 0.8, repeat: Infinity, ease: "linear" },
|
|
136
|
+
"aria-hidden": "true",
|
|
137
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
138
|
+
"circle",
|
|
139
|
+
{
|
|
140
|
+
cx: "8",
|
|
141
|
+
cy: "8",
|
|
142
|
+
r: "6",
|
|
143
|
+
stroke: "currentColor",
|
|
144
|
+
strokeWidth: "2",
|
|
145
|
+
strokeLinecap: "round",
|
|
146
|
+
strokeDasharray: "25 13",
|
|
147
|
+
opacity: "0.8"
|
|
148
|
+
}
|
|
149
|
+
)
|
|
150
|
+
}
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
exports.Button = Button;
|
|
155
|
+
exports.buttonVariants = buttonVariants;
|
|
156
|
+
//# sourceMappingURL=chunk-MFRGAZ4M.cjs.map
|
|
157
|
+
//# sourceMappingURL=chunk-MFRGAZ4M.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Button/Button.tsx"],"names":["cva","React","__objRest","Slot","jsx","LazyMotion","domAnimation","m","__spreadProps","__spreadValues","cn","jsxs","Fragment"],"mappings":"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","file":"chunk-MFRGAZ4M.cjs","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,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 DialogPrimitive = require('@radix-ui/react-dialog');
|
|
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
|
+
var DialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(DialogPrimitive);
|
|
29
|
+
|
|
30
|
+
function BottomSheet({
|
|
31
|
+
open: openProp,
|
|
32
|
+
onOpenChange,
|
|
33
|
+
title,
|
|
34
|
+
description,
|
|
35
|
+
children,
|
|
36
|
+
trigger
|
|
37
|
+
}) {
|
|
38
|
+
const [internalOpen, setInternalOpen] = React__namespace.useState(false);
|
|
39
|
+
const isControlled = openProp !== void 0;
|
|
40
|
+
const open = isControlled ? openProp : internalOpen;
|
|
41
|
+
const handleOpenChange = (value) => {
|
|
42
|
+
if (!isControlled) setInternalOpen(value);
|
|
43
|
+
onOpenChange == null ? void 0 : onOpenChange(value);
|
|
44
|
+
};
|
|
45
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkUXYAKGI2_cjs.LazyMotion, { features: chunkUXYAKGI2_cjs.domAnimation, children: /* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.Root, { open, onOpenChange: handleOpenChange, children: [
|
|
46
|
+
trigger && /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Trigger, { asChild: true, children: trigger }),
|
|
47
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUXYAKGI2_cjs.AnimatePresence, { children: open && /* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.Portal, { children: [
|
|
48
|
+
/* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Overlay, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
49
|
+
chunkUXYAKGI2_cjs.m.div,
|
|
50
|
+
{
|
|
51
|
+
className: "fixed inset-0 z-50 bg-[var(--color-overlay)]",
|
|
52
|
+
initial: { opacity: 0 },
|
|
53
|
+
animate: { opacity: 1 },
|
|
54
|
+
exit: { opacity: 0 },
|
|
55
|
+
transition: { duration: 0.2 }
|
|
56
|
+
}
|
|
57
|
+
) }),
|
|
58
|
+
/* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Content, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
59
|
+
chunkUXYAKGI2_cjs.m.div,
|
|
60
|
+
{
|
|
61
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
62
|
+
"fixed bottom-0 left-0 right-0 z-50",
|
|
63
|
+
"bg-[var(--color-background)] rounded-t-3xl",
|
|
64
|
+
"shadow-[var(--shadow-overlay)]",
|
|
65
|
+
"px-5 pb-safe"
|
|
66
|
+
),
|
|
67
|
+
initial: { y: "100%" },
|
|
68
|
+
animate: { y: 0 },
|
|
69
|
+
exit: { y: "100%" },
|
|
70
|
+
transition: { type: "spring", stiffness: 300, damping: 30 },
|
|
71
|
+
drag: "y",
|
|
72
|
+
dragConstraints: { top: 0 },
|
|
73
|
+
dragElastic: { top: 0, bottom: 0.3 },
|
|
74
|
+
onDragEnd: (_, info) => {
|
|
75
|
+
if (info.offset.y > 80) handleOpenChange(false);
|
|
76
|
+
},
|
|
77
|
+
children: [
|
|
78
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center pt-3 pb-4", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-9 h-1 rounded-full bg-[var(--color-gray-300)]" }) }),
|
|
79
|
+
title && /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Title, { className: "text-[18px] font-bold text-[var(--color-foreground)] mb-1", children: title }),
|
|
80
|
+
description && /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Description, { className: "text-[14px] text-[var(--color-muted-foreground)] mb-4", children: description }),
|
|
81
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pb-8", children })
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
) })
|
|
85
|
+
] }) })
|
|
86
|
+
] }) });
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
exports.BottomSheet = BottomSheet;
|
|
90
|
+
//# sourceMappingURL=chunk-MIR34HKE.cjs.map
|
|
91
|
+
//# sourceMappingURL=chunk-MIR34HKE.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/BottomSheet/BottomSheet.tsx"],"names":["React","jsx","LazyMotion","domAnimation","DialogPrimitive","AnimatePresence","jsxs","m","cn"],"mappings":"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","file":"chunk-MIR34HKE.cjs","sourcesContent":["import * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { m, LazyMotion, domAnimation, AnimatePresence } from \"../../utils/motion\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface BottomSheetProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n title?: string;\n description?: string;\n children?: React.ReactNode;\n trigger?: React.ReactNode;\n}\n\nfunction BottomSheet({\n open: openProp,\n onOpenChange,\n title,\n description,\n children,\n trigger,\n}: BottomSheetProps) {\n const [internalOpen, setInternalOpen] = React.useState(false);\n const isControlled = openProp !== undefined;\n const open = isControlled ? openProp : internalOpen;\n\n const handleOpenChange = (value: boolean) => {\n if (!isControlled) setInternalOpen(value);\n onOpenChange?.(value);\n };\n\n return (\n <LazyMotion features={domAnimation}>\n <DialogPrimitive.Root open={open} onOpenChange={handleOpenChange}>\n {trigger && (\n <DialogPrimitive.Trigger asChild>{trigger}</DialogPrimitive.Trigger>\n )}\n <AnimatePresence>\n {open && (\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay asChild>\n <m.div\n className=\"fixed inset-0 z-50 bg-[var(--color-overlay)]\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.2 }}\n />\n </DialogPrimitive.Overlay>\n <DialogPrimitive.Content asChild>\n <m.div\n className={cn(\n \"fixed bottom-0 left-0 right-0 z-50\",\n \"bg-[var(--color-background)] rounded-t-3xl\",\n \"shadow-[var(--shadow-overlay)]\",\n \"px-5 pb-safe\"\n )}\n initial={{ y: \"100%\" }}\n animate={{ y: 0 }}\n exit={{ y: \"100%\" }}\n transition={{ type: \"spring\", stiffness: 300, damping: 30 }}\n drag=\"y\"\n dragConstraints={{ top: 0 }}\n dragElastic={{ top: 0, bottom: 0.3 }}\n onDragEnd={(_, info) => {\n if (info.offset.y > 80) handleOpenChange(false);\n }}\n >\n {/* 드래그 핸들 */}\n <div className=\"flex justify-center pt-3 pb-4\">\n <div className=\"w-9 h-1 rounded-full bg-[var(--color-gray-300)]\" />\n </div>\n\n {title && (\n <DialogPrimitive.Title className=\"text-[18px] font-bold text-[var(--color-foreground)] mb-1\">\n {title}\n </DialogPrimitive.Title>\n )}\n {description && (\n <DialogPrimitive.Description className=\"text-[14px] text-[var(--color-muted-foreground)] mb-4\">\n {description}\n </DialogPrimitive.Description>\n )}\n <div className=\"pb-8\">{children}</div>\n </m.div>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n )}\n </AnimatePresence>\n </DialogPrimitive.Root>\n </LazyMotion>\n );\n}\n\nexport { BottomSheet };\n"]}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
|
|
4
|
+
var React = require('react');
|
|
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 React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
26
|
+
|
|
27
|
+
var DAYS = ["\uC77C", "\uC6D4", "\uD654", "\uC218", "\uBAA9", "\uAE08", "\uD1A0"];
|
|
28
|
+
var MONTHS = ["1\uC6D4", "2\uC6D4", "3\uC6D4", "4\uC6D4", "5\uC6D4", "6\uC6D4", "7\uC6D4", "8\uC6D4", "9\uC6D4", "10\uC6D4", "11\uC6D4", "12\uC6D4"];
|
|
29
|
+
function isSameDay(a, b) {
|
|
30
|
+
return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
|
|
31
|
+
}
|
|
32
|
+
function isDisabled(date, min, max) {
|
|
33
|
+
if (min && date < new Date(min.getFullYear(), min.getMonth(), min.getDate())) return true;
|
|
34
|
+
if (max && date > new Date(max.getFullYear(), max.getMonth(), max.getDate())) return true;
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
var Calendar = ({ value, defaultValue, onChange, minDate, maxDate, className }) => {
|
|
38
|
+
const [selectedDate, setSelectedDate] = React__namespace.useState(value != null ? value : defaultValue);
|
|
39
|
+
const [viewDate, setViewDate] = React__namespace.useState(() => {
|
|
40
|
+
var _a;
|
|
41
|
+
const d = (_a = value != null ? value : defaultValue) != null ? _a : /* @__PURE__ */ new Date();
|
|
42
|
+
return new Date(d.getFullYear(), d.getMonth(), 1);
|
|
43
|
+
});
|
|
44
|
+
React__namespace.useEffect(() => {
|
|
45
|
+
if (value !== void 0) setSelectedDate(value);
|
|
46
|
+
}, [value]);
|
|
47
|
+
const year = viewDate.getFullYear();
|
|
48
|
+
const month = viewDate.getMonth();
|
|
49
|
+
const firstDay = new Date(year, month, 1).getDay();
|
|
50
|
+
const daysInMonth = new Date(year, month + 1, 0).getDate();
|
|
51
|
+
const cells = [
|
|
52
|
+
...Array(firstDay).fill(null),
|
|
53
|
+
...Array.from({ length: daysInMonth }, (_, i) => new Date(year, month, i + 1))
|
|
54
|
+
];
|
|
55
|
+
while (cells.length % 7 !== 0) cells.push(null);
|
|
56
|
+
const today = /* @__PURE__ */ new Date();
|
|
57
|
+
function handleSelect(date) {
|
|
58
|
+
if (isDisabled(date, minDate, maxDate)) return;
|
|
59
|
+
setSelectedDate(date);
|
|
60
|
+
onChange == null ? void 0 : onChange(date);
|
|
61
|
+
}
|
|
62
|
+
function prevMonth() {
|
|
63
|
+
setViewDate(new Date(year, month - 1, 1));
|
|
64
|
+
}
|
|
65
|
+
function nextMonth() {
|
|
66
|
+
setViewDate(new Date(year, month + 1, 1));
|
|
67
|
+
}
|
|
68
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4V3IOZPC_cjs.cn("w-fit rounded-2xl border border-[var(--color-border)] bg-[var(--color-surface)] p-4 shadow-sm", className), children: [
|
|
69
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between mb-4", children: [
|
|
70
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
71
|
+
"button",
|
|
72
|
+
{
|
|
73
|
+
type: "button",
|
|
74
|
+
onClick: prevMonth,
|
|
75
|
+
"aria-label": "\uC774\uC804 \uB2EC",
|
|
76
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
77
|
+
"flex h-8 w-8 items-center justify-center rounded-lg",
|
|
78
|
+
"text-[var(--color-muted-foreground)] hover:bg-[var(--color-muted)] hover:text-[var(--color-foreground)]",
|
|
79
|
+
"transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)]"
|
|
80
|
+
),
|
|
81
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon, {})
|
|
82
|
+
}
|
|
83
|
+
),
|
|
84
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[15px] font-semibold text-[var(--color-foreground)]", children: [
|
|
85
|
+
year,
|
|
86
|
+
"\uB144 ",
|
|
87
|
+
MONTHS[month]
|
|
88
|
+
] }),
|
|
89
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
90
|
+
"button",
|
|
91
|
+
{
|
|
92
|
+
type: "button",
|
|
93
|
+
onClick: nextMonth,
|
|
94
|
+
"aria-label": "\uB2E4\uC74C \uB2EC",
|
|
95
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
96
|
+
"flex h-8 w-8 items-center justify-center rounded-lg",
|
|
97
|
+
"text-[var(--color-muted-foreground)] hover:bg-[var(--color-muted)] hover:text-[var(--color-foreground)]",
|
|
98
|
+
"transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)]"
|
|
99
|
+
),
|
|
100
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon, {})
|
|
101
|
+
}
|
|
102
|
+
)
|
|
103
|
+
] }),
|
|
104
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-7 mb-1", children: DAYS.map((day, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
105
|
+
"div",
|
|
106
|
+
{
|
|
107
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
108
|
+
"flex h-8 items-center justify-center text-[12px] font-medium",
|
|
109
|
+
i === 0 ? "text-[var(--color-negative)]" : i === 6 ? "text-[var(--color-primary)]" : "text-[var(--color-muted-foreground)]"
|
|
110
|
+
),
|
|
111
|
+
children: day
|
|
112
|
+
},
|
|
113
|
+
day
|
|
114
|
+
)) }),
|
|
115
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-7 gap-y-1", children: cells.map((date, i) => {
|
|
116
|
+
if (!date) return /* @__PURE__ */ jsxRuntime.jsx("div", {}, `empty-${i}`);
|
|
117
|
+
const disabled = isDisabled(date, minDate, maxDate);
|
|
118
|
+
const selected = selectedDate ? isSameDay(date, selectedDate) : false;
|
|
119
|
+
const isToday = isSameDay(date, today);
|
|
120
|
+
const dayOfWeek = date.getDay();
|
|
121
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
122
|
+
"button",
|
|
123
|
+
{
|
|
124
|
+
type: "button",
|
|
125
|
+
onClick: () => handleSelect(date),
|
|
126
|
+
disabled,
|
|
127
|
+
"aria-label": `${year}\uB144 ${month + 1}\uC6D4 ${date.getDate()}\uC77C`,
|
|
128
|
+
"aria-pressed": selected,
|
|
129
|
+
className: chunk4V3IOZPC_cjs.cn(
|
|
130
|
+
"flex h-9 w-9 items-center justify-center rounded-xl text-[14px] font-medium mx-auto",
|
|
131
|
+
"transition-colors duration-100 select-none",
|
|
132
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-1",
|
|
133
|
+
"disabled:opacity-30 disabled:cursor-not-allowed",
|
|
134
|
+
selected ? "bg-[var(--color-primary)] text-white" : isToday ? "border border-[var(--color-primary)] text-[var(--color-primary)]" : dayOfWeek === 0 ? "text-[var(--color-negative)] hover:bg-[var(--color-muted)]" : dayOfWeek === 6 ? "text-[var(--color-primary)] hover:bg-[var(--color-muted)]" : "text-[var(--color-foreground)] hover:bg-[var(--color-muted)]"
|
|
135
|
+
),
|
|
136
|
+
children: date.getDate()
|
|
137
|
+
},
|
|
138
|
+
date.toISOString()
|
|
139
|
+
);
|
|
140
|
+
}) })
|
|
141
|
+
] });
|
|
142
|
+
};
|
|
143
|
+
function ChevronLeftIcon() {
|
|
144
|
+
return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m15 18-6-6 6-6" }) });
|
|
145
|
+
}
|
|
146
|
+
function ChevronRightIcon() {
|
|
147
|
+
return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m9 18 6-6-6-6" }) });
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
exports.Calendar = Calendar;
|
|
151
|
+
//# sourceMappingURL=chunk-MP442EWS.cjs.map
|
|
152
|
+
//# sourceMappingURL=chunk-MP442EWS.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Calendar/Calendar.tsx"],"names":["React","cn","jsxs","jsx"],"mappings":"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","file":"chunk-MP442EWS.cjs","sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface CalendarProps {\n value?: Date;\n defaultValue?: Date;\n onChange?: (date: Date) => void;\n minDate?: Date;\n maxDate?: Date;\n className?: string;\n}\n\nconst DAYS = [\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\"];\nconst MONTHS = [\"1월\", \"2월\", \"3월\", \"4월\", \"5월\", \"6월\", \"7월\", \"8월\", \"9월\", \"10월\", \"11월\", \"12월\"];\n\nfunction isSameDay(a: Date, b: Date) {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\n}\n\nfunction isDisabled(date: Date, min?: Date, max?: Date) {\n if (min && date < new Date(min.getFullYear(), min.getMonth(), min.getDate())) return true;\n if (max && date > new Date(max.getFullYear(), max.getMonth(), max.getDate())) return true;\n return false;\n}\n\nconst Calendar = ({ value, defaultValue, onChange, minDate, maxDate, className }: CalendarProps) => {\n const [selectedDate, setSelectedDate] = React.useState<Date | undefined>(value ?? defaultValue);\n const [viewDate, setViewDate] = React.useState(() => {\n const d = value ?? defaultValue ?? new Date();\n return new Date(d.getFullYear(), d.getMonth(), 1);\n });\n\n React.useEffect(() => {\n if (value !== undefined) setSelectedDate(value);\n }, [value]);\n\n const year = viewDate.getFullYear();\n const month = viewDate.getMonth();\n\n const firstDay = new Date(year, month, 1).getDay();\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n\n const cells: (Date | null)[] = [\n ...Array<null>(firstDay).fill(null),\n ...Array.from({ length: daysInMonth }, (_, i) => new Date(year, month, i + 1)),\n ];\n\n // Pad to complete last row\n while (cells.length % 7 !== 0) cells.push(null);\n\n const today = new Date();\n\n function handleSelect(date: Date) {\n if (isDisabled(date, minDate, maxDate)) return;\n setSelectedDate(date);\n onChange?.(date);\n }\n\n function prevMonth() {\n setViewDate(new Date(year, month - 1, 1));\n }\n\n function nextMonth() {\n setViewDate(new Date(year, month + 1, 1));\n }\n\n return (\n <div className={cn(\"w-fit rounded-2xl border border-[var(--color-border)] bg-[var(--color-surface)] p-4 shadow-sm\", className)}>\n {/* Header */}\n <div className=\"flex items-center justify-between mb-4\">\n <button\n type=\"button\"\n onClick={prevMonth}\n aria-label=\"이전 달\"\n className={cn(\n \"flex h-8 w-8 items-center justify-center rounded-lg\",\n \"text-[var(--color-muted-foreground)] hover:bg-[var(--color-muted)] hover:text-[var(--color-foreground)]\",\n \"transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)]\"\n )}\n >\n <ChevronLeftIcon />\n </button>\n <span className=\"text-[15px] font-semibold text-[var(--color-foreground)]\">\n {year}년 {MONTHS[month]}\n </span>\n <button\n type=\"button\"\n onClick={nextMonth}\n aria-label=\"다음 달\"\n className={cn(\n \"flex h-8 w-8 items-center justify-center rounded-lg\",\n \"text-[var(--color-muted-foreground)] hover:bg-[var(--color-muted)] hover:text-[var(--color-foreground)]\",\n \"transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)]\"\n )}\n >\n <ChevronRightIcon />\n </button>\n </div>\n\n {/* Day headers */}\n <div className=\"grid grid-cols-7 mb-1\">\n {DAYS.map((day, i) => (\n <div\n key={day}\n className={cn(\n \"flex h-8 items-center justify-center text-[12px] font-medium\",\n i === 0 ? \"text-[var(--color-negative)]\" : i === 6 ? \"text-[var(--color-primary)]\" : \"text-[var(--color-muted-foreground)]\"\n )}\n >\n {day}\n </div>\n ))}\n </div>\n\n {/* Date cells */}\n <div className=\"grid grid-cols-7 gap-y-1\">\n {cells.map((date, i) => {\n if (!date) return <div key={`empty-${i}`} />;\n\n const disabled = isDisabled(date, minDate, maxDate);\n const selected = selectedDate ? isSameDay(date, selectedDate) : false;\n const isToday = isSameDay(date, today);\n const dayOfWeek = date.getDay();\n\n return (\n <button\n key={date.toISOString()}\n type=\"button\"\n onClick={() => handleSelect(date)}\n disabled={disabled}\n aria-label={`${year}년 ${month + 1}월 ${date.getDate()}일`}\n aria-pressed={selected}\n className={cn(\n \"flex h-9 w-9 items-center justify-center rounded-xl text-[14px] font-medium mx-auto\",\n \"transition-colors duration-100 select-none\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] focus-visible:ring-offset-1\",\n \"disabled:opacity-30 disabled:cursor-not-allowed\",\n selected\n ? \"bg-[var(--color-primary)] text-white\"\n : isToday\n ? \"border border-[var(--color-primary)] text-[var(--color-primary)]\"\n : dayOfWeek === 0\n ? \"text-[var(--color-negative)] hover:bg-[var(--color-muted)]\"\n : dayOfWeek === 6\n ? \"text-[var(--color-primary)] hover:bg-[var(--color-muted)]\"\n : \"text-[var(--color-foreground)] hover:bg-[var(--color-muted)]\"\n )}\n >\n {date.getDate()}\n </button>\n );\n })}\n </div>\n </div>\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 { Calendar };\n"]}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk4V3IOZPC_cjs = require('./chunk-4V3IOZPC.cjs');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var AvatarPrimitive = require('@radix-ui/react-avatar');
|
|
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
|
+
var AvatarPrimitive__namespace = /*#__PURE__*/_interopNamespace(AvatarPrimitive);
|
|
29
|
+
|
|
30
|
+
var avatarVariants = classVarianceAuthority.cva("relative inline-flex shrink-0 overflow-hidden rounded-full", {
|
|
31
|
+
variants: {
|
|
32
|
+
size: {
|
|
33
|
+
xs: "w-6 h-6 text-[10px]",
|
|
34
|
+
sm: "w-8 h-8 text-[12px]",
|
|
35
|
+
md: "w-10 h-10 text-[14px]",
|
|
36
|
+
lg: "w-12 h-12 text-[16px]",
|
|
37
|
+
xl: "w-16 h-16 text-[20px]"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
defaultVariants: { size: "md" }
|
|
41
|
+
});
|
|
42
|
+
var Avatar = React__namespace.forwardRef((_a, ref) => {
|
|
43
|
+
var _b = _a, { className, size, src, alt, fallback } = _b, props = chunk4V3IOZPC_cjs.__objRest(_b, ["className", "size", "src", "alt", "fallback"]);
|
|
44
|
+
var _a2;
|
|
45
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
46
|
+
AvatarPrimitive__namespace.Root,
|
|
47
|
+
chunk4V3IOZPC_cjs.__spreadProps(chunk4V3IOZPC_cjs.__spreadValues({
|
|
48
|
+
ref,
|
|
49
|
+
className: chunk4V3IOZPC_cjs.cn(avatarVariants({ size }), className)
|
|
50
|
+
}, props), {
|
|
51
|
+
children: [
|
|
52
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
53
|
+
AvatarPrimitive__namespace.Image,
|
|
54
|
+
{
|
|
55
|
+
src,
|
|
56
|
+
alt,
|
|
57
|
+
className: "w-full h-full object-cover"
|
|
58
|
+
}
|
|
59
|
+
),
|
|
60
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
61
|
+
AvatarPrimitive__namespace.Fallback,
|
|
62
|
+
{
|
|
63
|
+
className: "w-full h-full flex items-center justify-center bg-[var(--color-muted)] text-[var(--color-muted-foreground)] font-semibold",
|
|
64
|
+
children: (_a2 = fallback != null ? fallback : alt == null ? void 0 : alt.slice(0, 1).toUpperCase()) != null ? _a2 : "?"
|
|
65
|
+
}
|
|
66
|
+
)
|
|
67
|
+
]
|
|
68
|
+
})
|
|
69
|
+
);
|
|
70
|
+
});
|
|
71
|
+
Avatar.displayName = "Avatar";
|
|
72
|
+
|
|
73
|
+
exports.Avatar = Avatar;
|
|
74
|
+
//# sourceMappingURL=chunk-MTIJTTKO.cjs.map
|
|
75
|
+
//# sourceMappingURL=chunk-MTIJTTKO.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Avatar/Avatar.tsx"],"names":["cva","React","__objRest","_a","jsxs","AvatarPrimitive","__spreadProps","__spreadValues","cn","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAM,cAAA,GAAiBA,2BAAI,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,GAAeC,gBAAA,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,GAAAC,2BAAA,CAA1C,EAAA,EAA0C,CAAxC,WAAA,EAAW,MAAA,EAAM,OAAK,KAAA,EAAK,UAAA,CAAA,CAAA;AA7BhC,EAAA,IAAAC,GAAAA;AA8BE,EAAA,uBAAAC,eAAA;AAAA,IAAiBC,0BAAA,CAAA,IAAA;AAAA,IAAhBC,+BAAA,CAAAC,gCAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAWC,oBAAA,CAAG,cAAA,CAAe,EAAE,IAAA,EAAM,GAAG,SAAS;AAAA,KAAA,EAC7C,KAAA,CAAA,EAHL;AAAA,MAKC,QAAA,EAAA;AAAA,wBAAAC,cAAA;AAAA,UAAiBJ,0BAAA,CAAA,KAAA;AAAA,UAAhB;AAAA,YACC,GAAA;AAAA,YACA,GAAA;AAAA,YACA,SAAA,EAAU;AAAA;AAAA,SACZ;AAAA,wBACAI,cAAA;AAAA,UAAiBJ,0BAAA,CAAA,QAAA;AAAA,UAAhB;AAAA,YACC,SAAA,EAAU,2HAAA;AAAA,YAET,QAAA,EAAA,CAAAF,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-MTIJTTKO.cjs","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"]}
|