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,490 @@
|
|
|
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 isCheckBoxInput = (element) => element.type === "checkbox";
|
|
28
|
+
var isDateObject = (value) => value instanceof Date;
|
|
29
|
+
var isNullOrUndefined = (value) => value == null;
|
|
30
|
+
var isObjectType = (value) => typeof value === "object";
|
|
31
|
+
var isObject = (value) => !isNullOrUndefined(value) && !Array.isArray(value) && isObjectType(value) && !isDateObject(value);
|
|
32
|
+
var getEventValue = (event) => isObject(event) && event.target ? isCheckBoxInput(event.target) ? event.target.checked : event.target.value : event;
|
|
33
|
+
var getNodeParentName = (name) => name.substring(0, name.search(/\.\d+(\.|$)/)) || name;
|
|
34
|
+
var isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));
|
|
35
|
+
var isPlainObject = (tempObject) => {
|
|
36
|
+
const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;
|
|
37
|
+
return isObject(prototypeCopy) && prototypeCopy.hasOwnProperty("isPrototypeOf");
|
|
38
|
+
};
|
|
39
|
+
var isWeb = typeof window !== "undefined" && typeof window.HTMLElement !== "undefined" && typeof document !== "undefined";
|
|
40
|
+
function cloneObject(data) {
|
|
41
|
+
if (data instanceof Date) {
|
|
42
|
+
return new Date(data);
|
|
43
|
+
}
|
|
44
|
+
const isFileListInstance = typeof FileList !== "undefined" && data instanceof FileList;
|
|
45
|
+
if (isWeb && (data instanceof Blob || isFileListInstance)) {
|
|
46
|
+
return data;
|
|
47
|
+
}
|
|
48
|
+
const isArray = Array.isArray(data);
|
|
49
|
+
if (!isArray && !(isObject(data) && isPlainObject(data))) {
|
|
50
|
+
return data;
|
|
51
|
+
}
|
|
52
|
+
const copy = isArray ? [] : Object.create(Object.getPrototypeOf(data));
|
|
53
|
+
for (const key in data) {
|
|
54
|
+
if (Object.prototype.hasOwnProperty.call(data, key)) {
|
|
55
|
+
copy[key] = cloneObject(data[key]);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return copy;
|
|
59
|
+
}
|
|
60
|
+
var isKey = (value) => /^\w*$/.test(value);
|
|
61
|
+
var isUndefined = (val) => val === void 0;
|
|
62
|
+
var compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];
|
|
63
|
+
var stringToPath = (input) => compact(input.replace(/["|']|\]/g, "").split(/\.|\[/));
|
|
64
|
+
var get = (object, path, defaultValue) => {
|
|
65
|
+
if (!path || !isObject(object)) {
|
|
66
|
+
return defaultValue;
|
|
67
|
+
}
|
|
68
|
+
const result = (isKey(path) ? [path] : stringToPath(path)).reduce((result2, key) => isNullOrUndefined(result2) ? result2 : result2[key], object);
|
|
69
|
+
return isUndefined(result) || result === object ? isUndefined(object[path]) ? defaultValue : object[path] : result;
|
|
70
|
+
};
|
|
71
|
+
var isBoolean = (value) => typeof value === "boolean";
|
|
72
|
+
var isFunction = (value) => typeof value === "function";
|
|
73
|
+
var set = (object, path, value) => {
|
|
74
|
+
let index = -1;
|
|
75
|
+
const tempPath = isKey(path) ? [path] : stringToPath(path);
|
|
76
|
+
const length = tempPath.length;
|
|
77
|
+
const lastIndex = length - 1;
|
|
78
|
+
while (++index < length) {
|
|
79
|
+
const key = tempPath[index];
|
|
80
|
+
let newValue = value;
|
|
81
|
+
if (index !== lastIndex) {
|
|
82
|
+
const objValue = object[key];
|
|
83
|
+
newValue = isObject(objValue) || Array.isArray(objValue) ? objValue : !isNaN(+tempPath[index + 1]) ? [] : {};
|
|
84
|
+
}
|
|
85
|
+
if (key === "__proto__" || key === "constructor" || key === "prototype") {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
object[key] = newValue;
|
|
89
|
+
object = object[key];
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
var EVENTS = {
|
|
93
|
+
BLUR: "blur",
|
|
94
|
+
CHANGE: "change"};
|
|
95
|
+
var VALIDATION_MODE = {
|
|
96
|
+
all: "all"
|
|
97
|
+
};
|
|
98
|
+
var HookFormControlContext = React__namespace.default.createContext(null);
|
|
99
|
+
HookFormControlContext.displayName = "HookFormControlContext";
|
|
100
|
+
var useFormControlContext = () => React__namespace.default.useContext(HookFormControlContext);
|
|
101
|
+
var getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {
|
|
102
|
+
const result = {
|
|
103
|
+
defaultValues: control._defaultValues
|
|
104
|
+
};
|
|
105
|
+
for (const key in formState) {
|
|
106
|
+
Object.defineProperty(result, key, {
|
|
107
|
+
get: () => {
|
|
108
|
+
const _key = key;
|
|
109
|
+
if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {
|
|
110
|
+
control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;
|
|
111
|
+
}
|
|
112
|
+
localProxyFormState && (localProxyFormState[_key] = true);
|
|
113
|
+
return formState[_key];
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return result;
|
|
118
|
+
};
|
|
119
|
+
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? React__namespace.default.useLayoutEffect : React__namespace.default.useEffect;
|
|
120
|
+
function useFormState(props) {
|
|
121
|
+
const formControl = useFormControlContext();
|
|
122
|
+
const { control = formControl, disabled, name, exact } = props || {};
|
|
123
|
+
const [formState, updateFormState] = React__namespace.default.useState(control._formState);
|
|
124
|
+
const _localProxyFormState = React__namespace.default.useRef({
|
|
125
|
+
isDirty: false,
|
|
126
|
+
isLoading: false,
|
|
127
|
+
dirtyFields: false,
|
|
128
|
+
touchedFields: false,
|
|
129
|
+
validatingFields: false,
|
|
130
|
+
isValidating: false,
|
|
131
|
+
isValid: false,
|
|
132
|
+
errors: false
|
|
133
|
+
});
|
|
134
|
+
useIsomorphicLayoutEffect(() => control._subscribe({
|
|
135
|
+
name,
|
|
136
|
+
formState: _localProxyFormState.current,
|
|
137
|
+
exact,
|
|
138
|
+
callback: (formState2) => {
|
|
139
|
+
!disabled && updateFormState(chunk4V3IOZPC_cjs.__spreadValues(chunk4V3IOZPC_cjs.__spreadValues({}, control._formState), formState2));
|
|
140
|
+
}
|
|
141
|
+
}), [name, disabled, exact]);
|
|
142
|
+
React__namespace.default.useEffect(() => {
|
|
143
|
+
_localProxyFormState.current.isValid && control._setValid(true);
|
|
144
|
+
}, [control]);
|
|
145
|
+
return React__namespace.default.useMemo(() => getProxyFormState(formState, control, _localProxyFormState.current, false), [formState, control]);
|
|
146
|
+
}
|
|
147
|
+
var isString = (value) => typeof value === "string";
|
|
148
|
+
var generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {
|
|
149
|
+
if (isString(names)) {
|
|
150
|
+
return get(formValues, names, defaultValue);
|
|
151
|
+
}
|
|
152
|
+
if (Array.isArray(names)) {
|
|
153
|
+
return names.map((fieldName) => (get(formValues, fieldName)));
|
|
154
|
+
}
|
|
155
|
+
return formValues;
|
|
156
|
+
};
|
|
157
|
+
var isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);
|
|
158
|
+
function deepEqual(object1, object2, _internal_visited = /* @__PURE__ */ new WeakSet()) {
|
|
159
|
+
if (isPrimitive(object1) || isPrimitive(object2)) {
|
|
160
|
+
return Object.is(object1, object2);
|
|
161
|
+
}
|
|
162
|
+
if (isDateObject(object1) && isDateObject(object2)) {
|
|
163
|
+
return Object.is(object1.getTime(), object2.getTime());
|
|
164
|
+
}
|
|
165
|
+
const keys1 = Object.keys(object1);
|
|
166
|
+
const keys2 = Object.keys(object2);
|
|
167
|
+
if (keys1.length !== keys2.length) {
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
if (_internal_visited.has(object1) || _internal_visited.has(object2)) {
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
_internal_visited.add(object1);
|
|
174
|
+
_internal_visited.add(object2);
|
|
175
|
+
for (const key of keys1) {
|
|
176
|
+
const val1 = object1[key];
|
|
177
|
+
if (!keys2.includes(key)) {
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
if (key !== "ref") {
|
|
181
|
+
const val2 = object2[key];
|
|
182
|
+
if (isDateObject(val1) && isDateObject(val2) || isObject(val1) && isObject(val2) || Array.isArray(val1) && Array.isArray(val2) ? !deepEqual(val1, val2, _internal_visited) : !Object.is(val1, val2)) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
function useWatch(props) {
|
|
190
|
+
const formControl = useFormControlContext();
|
|
191
|
+
const { control = formControl, name, defaultValue, disabled, exact, compute } = props || {};
|
|
192
|
+
const _defaultValue = React__namespace.default.useRef(defaultValue);
|
|
193
|
+
const _compute = React__namespace.default.useRef(compute);
|
|
194
|
+
const _computeFormValues = React__namespace.default.useRef(void 0);
|
|
195
|
+
const _prevControl = React__namespace.default.useRef(control);
|
|
196
|
+
const _prevName = React__namespace.default.useRef(name);
|
|
197
|
+
_compute.current = compute;
|
|
198
|
+
const [value, updateValue] = React__namespace.default.useState(() => {
|
|
199
|
+
const defaultValue2 = control._getWatch(name, _defaultValue.current);
|
|
200
|
+
return _compute.current ? _compute.current(defaultValue2) : defaultValue2;
|
|
201
|
+
});
|
|
202
|
+
const getCurrentOutput = React__namespace.default.useCallback((values) => {
|
|
203
|
+
const formValues = generateWatchOutput(name, control._names, values || control._formValues, false, _defaultValue.current);
|
|
204
|
+
return _compute.current ? _compute.current(formValues) : formValues;
|
|
205
|
+
}, [control._formValues, control._names, name]);
|
|
206
|
+
const refreshValue = React__namespace.default.useCallback((values) => {
|
|
207
|
+
if (!disabled) {
|
|
208
|
+
const formValues = generateWatchOutput(name, control._names, values || control._formValues, false, _defaultValue.current);
|
|
209
|
+
if (_compute.current) {
|
|
210
|
+
const computedFormValues = _compute.current(formValues);
|
|
211
|
+
if (!deepEqual(computedFormValues, _computeFormValues.current)) {
|
|
212
|
+
updateValue(computedFormValues);
|
|
213
|
+
_computeFormValues.current = computedFormValues;
|
|
214
|
+
}
|
|
215
|
+
} else {
|
|
216
|
+
updateValue(formValues);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}, [control._formValues, control._names, disabled, name]);
|
|
220
|
+
useIsomorphicLayoutEffect(() => {
|
|
221
|
+
if (_prevControl.current !== control || !deepEqual(_prevName.current, name)) {
|
|
222
|
+
_prevControl.current = control;
|
|
223
|
+
_prevName.current = name;
|
|
224
|
+
refreshValue();
|
|
225
|
+
}
|
|
226
|
+
return control._subscribe({
|
|
227
|
+
name,
|
|
228
|
+
formState: {
|
|
229
|
+
values: true
|
|
230
|
+
},
|
|
231
|
+
exact,
|
|
232
|
+
callback: (formState) => {
|
|
233
|
+
refreshValue(formState.values);
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
}, [control, exact, name, refreshValue]);
|
|
237
|
+
React__namespace.default.useEffect(() => control._removeUnmounted());
|
|
238
|
+
const controlChanged = _prevControl.current !== control;
|
|
239
|
+
const prevName = _prevName.current;
|
|
240
|
+
const computedOutput = React__namespace.default.useMemo(() => {
|
|
241
|
+
if (disabled) {
|
|
242
|
+
return null;
|
|
243
|
+
}
|
|
244
|
+
const nameChanged = !controlChanged && !deepEqual(prevName, name);
|
|
245
|
+
const shouldReturnImmediate = controlChanged || nameChanged;
|
|
246
|
+
return shouldReturnImmediate ? getCurrentOutput() : null;
|
|
247
|
+
}, [disabled, controlChanged, name, prevName, getCurrentOutput]);
|
|
248
|
+
return computedOutput !== null ? computedOutput : value;
|
|
249
|
+
}
|
|
250
|
+
function useController(props) {
|
|
251
|
+
const formControl = useFormControlContext();
|
|
252
|
+
const { name, disabled, control = formControl, shouldUnregister, defaultValue, exact = true } = props;
|
|
253
|
+
const isArrayField = isNameInFieldArray(control._names.array, name);
|
|
254
|
+
const defaultValueMemo = React__namespace.default.useMemo(() => get(control._formValues, name, get(control._defaultValues, name, defaultValue)), [control, name, defaultValue]);
|
|
255
|
+
const value = useWatch({
|
|
256
|
+
control,
|
|
257
|
+
name,
|
|
258
|
+
defaultValue: defaultValueMemo,
|
|
259
|
+
exact
|
|
260
|
+
});
|
|
261
|
+
const formState = useFormState({
|
|
262
|
+
control,
|
|
263
|
+
name,
|
|
264
|
+
exact
|
|
265
|
+
});
|
|
266
|
+
const _props = React__namespace.default.useRef(props);
|
|
267
|
+
const _previousNameRef = React__namespace.default.useRef(void 0);
|
|
268
|
+
const _registerProps = React__namespace.default.useRef(control.register(name, chunk4V3IOZPC_cjs.__spreadValues(chunk4V3IOZPC_cjs.__spreadProps(chunk4V3IOZPC_cjs.__spreadValues({}, props.rules), {
|
|
269
|
+
value
|
|
270
|
+
}), isBoolean(props.disabled) ? { disabled: props.disabled } : {})));
|
|
271
|
+
_props.current = props;
|
|
272
|
+
const fieldState = React__namespace.default.useMemo(() => Object.defineProperties({}, {
|
|
273
|
+
invalid: {
|
|
274
|
+
enumerable: true,
|
|
275
|
+
get: () => !!get(formState.errors, name)
|
|
276
|
+
},
|
|
277
|
+
isDirty: {
|
|
278
|
+
enumerable: true,
|
|
279
|
+
get: () => !!get(formState.dirtyFields, name)
|
|
280
|
+
},
|
|
281
|
+
isTouched: {
|
|
282
|
+
enumerable: true,
|
|
283
|
+
get: () => !!get(formState.touchedFields, name)
|
|
284
|
+
},
|
|
285
|
+
isValidating: {
|
|
286
|
+
enumerable: true,
|
|
287
|
+
get: () => !!get(formState.validatingFields, name)
|
|
288
|
+
},
|
|
289
|
+
error: {
|
|
290
|
+
enumerable: true,
|
|
291
|
+
get: () => get(formState.errors, name)
|
|
292
|
+
}
|
|
293
|
+
}), [formState, name]);
|
|
294
|
+
const onChange = React__namespace.default.useCallback((event) => _registerProps.current.onChange({
|
|
295
|
+
target: {
|
|
296
|
+
value: getEventValue(event),
|
|
297
|
+
name
|
|
298
|
+
},
|
|
299
|
+
type: EVENTS.CHANGE
|
|
300
|
+
}), [name]);
|
|
301
|
+
const onBlur = React__namespace.default.useCallback(() => _registerProps.current.onBlur({
|
|
302
|
+
target: {
|
|
303
|
+
value: get(control._formValues, name),
|
|
304
|
+
name
|
|
305
|
+
},
|
|
306
|
+
type: EVENTS.BLUR
|
|
307
|
+
}), [name, control._formValues]);
|
|
308
|
+
const ref = React__namespace.default.useCallback((elm) => {
|
|
309
|
+
const field2 = get(control._fields, name);
|
|
310
|
+
if (field2 && field2._f && elm) {
|
|
311
|
+
field2._f.ref = {
|
|
312
|
+
focus: () => isFunction(elm.focus) && elm.focus(),
|
|
313
|
+
select: () => isFunction(elm.select) && elm.select(),
|
|
314
|
+
setCustomValidity: (message) => isFunction(elm.setCustomValidity) && elm.setCustomValidity(message),
|
|
315
|
+
reportValidity: () => isFunction(elm.reportValidity) && elm.reportValidity()
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
}, [control._fields, name]);
|
|
319
|
+
const field = React__namespace.default.useMemo(() => chunk4V3IOZPC_cjs.__spreadProps(chunk4V3IOZPC_cjs.__spreadValues({
|
|
320
|
+
name,
|
|
321
|
+
value
|
|
322
|
+
}, isBoolean(disabled) || formState.disabled ? { disabled: formState.disabled || disabled } : {}), {
|
|
323
|
+
onChange,
|
|
324
|
+
onBlur,
|
|
325
|
+
ref
|
|
326
|
+
}), [name, disabled, formState.disabled, onChange, onBlur, ref, value]);
|
|
327
|
+
React__namespace.default.useEffect(() => {
|
|
328
|
+
const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;
|
|
329
|
+
const previousName = _previousNameRef.current;
|
|
330
|
+
if (previousName && previousName !== name && !isArrayField) {
|
|
331
|
+
control.unregister(previousName);
|
|
332
|
+
}
|
|
333
|
+
control.register(name, chunk4V3IOZPC_cjs.__spreadValues(chunk4V3IOZPC_cjs.__spreadValues({}, _props.current.rules), isBoolean(_props.current.disabled) ? { disabled: _props.current.disabled } : {}));
|
|
334
|
+
const updateMounted = (name2, value2) => {
|
|
335
|
+
const field2 = get(control._fields, name2);
|
|
336
|
+
if (field2 && field2._f) {
|
|
337
|
+
field2._f.mount = value2;
|
|
338
|
+
}
|
|
339
|
+
};
|
|
340
|
+
updateMounted(name, true);
|
|
341
|
+
if (_shouldUnregisterField) {
|
|
342
|
+
const value2 = cloneObject(get(control._options.defaultValues, name, _props.current.defaultValue));
|
|
343
|
+
set(control._defaultValues, name, value2);
|
|
344
|
+
if (isUndefined(get(control._formValues, name))) {
|
|
345
|
+
set(control._formValues, name, value2);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
!isArrayField && control.register(name);
|
|
349
|
+
_previousNameRef.current = name;
|
|
350
|
+
return () => {
|
|
351
|
+
(isArrayField ? _shouldUnregisterField && !control._state.action : _shouldUnregisterField) ? control.unregister(name) : updateMounted(name, false);
|
|
352
|
+
};
|
|
353
|
+
}, [name, control, isArrayField, shouldUnregister]);
|
|
354
|
+
React__namespace.default.useEffect(() => {
|
|
355
|
+
control._setDisabledField({
|
|
356
|
+
disabled,
|
|
357
|
+
name
|
|
358
|
+
});
|
|
359
|
+
}, [disabled, name, control]);
|
|
360
|
+
return React__namespace.default.useMemo(() => ({
|
|
361
|
+
field,
|
|
362
|
+
formState,
|
|
363
|
+
fieldState
|
|
364
|
+
}), [field, formState, fieldState]);
|
|
365
|
+
}
|
|
366
|
+
var Controller = (props) => props.render(useController(props));
|
|
367
|
+
var HookFormContext = React__namespace.default.createContext(null);
|
|
368
|
+
HookFormContext.displayName = "HookFormContext";
|
|
369
|
+
var useFormContext = () => React__namespace.default.useContext(HookFormContext);
|
|
370
|
+
var FormProvider = (props) => {
|
|
371
|
+
const { children, watch, getValues, getFieldState, setError, clearErrors, setValue, trigger, formState, resetField, reset, handleSubmit, unregister, control, register, setFocus, subscribe } = props;
|
|
372
|
+
return React__namespace.default.createElement(
|
|
373
|
+
HookFormContext.Provider,
|
|
374
|
+
{ value: React__namespace.default.useMemo(() => ({
|
|
375
|
+
watch,
|
|
376
|
+
getValues,
|
|
377
|
+
getFieldState,
|
|
378
|
+
setError,
|
|
379
|
+
clearErrors,
|
|
380
|
+
setValue,
|
|
381
|
+
trigger,
|
|
382
|
+
formState,
|
|
383
|
+
resetField,
|
|
384
|
+
reset,
|
|
385
|
+
handleSubmit,
|
|
386
|
+
unregister,
|
|
387
|
+
control,
|
|
388
|
+
register,
|
|
389
|
+
setFocus,
|
|
390
|
+
subscribe
|
|
391
|
+
}), [
|
|
392
|
+
clearErrors,
|
|
393
|
+
control,
|
|
394
|
+
formState,
|
|
395
|
+
getFieldState,
|
|
396
|
+
getValues,
|
|
397
|
+
handleSubmit,
|
|
398
|
+
register,
|
|
399
|
+
reset,
|
|
400
|
+
resetField,
|
|
401
|
+
setError,
|
|
402
|
+
setFocus,
|
|
403
|
+
setValue,
|
|
404
|
+
subscribe,
|
|
405
|
+
trigger,
|
|
406
|
+
unregister,
|
|
407
|
+
watch
|
|
408
|
+
]) },
|
|
409
|
+
React__namespace.default.createElement(HookFormControlContext.Provider, { value: control }, children)
|
|
410
|
+
);
|
|
411
|
+
};
|
|
412
|
+
function FormRoot(_a) {
|
|
413
|
+
var _b = _a, {
|
|
414
|
+
form,
|
|
415
|
+
children
|
|
416
|
+
} = _b, props = chunk4V3IOZPC_cjs.__objRest(_b, [
|
|
417
|
+
"form",
|
|
418
|
+
"children"
|
|
419
|
+
]);
|
|
420
|
+
return /* @__PURE__ */ jsxRuntime.jsx(FormProvider, chunk4V3IOZPC_cjs.__spreadProps(chunk4V3IOZPC_cjs.__spreadValues({}, form), { children: /* @__PURE__ */ jsxRuntime.jsx("form", chunk4V3IOZPC_cjs.__spreadProps(chunk4V3IOZPC_cjs.__spreadValues({}, props), { children })) }));
|
|
421
|
+
}
|
|
422
|
+
function FormField(props) {
|
|
423
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Controller, chunk4V3IOZPC_cjs.__spreadValues({}, props));
|
|
424
|
+
}
|
|
425
|
+
var FormItemContext = React__namespace.createContext({ id: "" });
|
|
426
|
+
function FormItem(_a) {
|
|
427
|
+
var _b = _a, {
|
|
428
|
+
className
|
|
429
|
+
} = _b, props = chunk4V3IOZPC_cjs.__objRest(_b, [
|
|
430
|
+
"className"
|
|
431
|
+
]);
|
|
432
|
+
const id = React__namespace.useId();
|
|
433
|
+
return /* @__PURE__ */ jsxRuntime.jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsxRuntime.jsx("div", chunk4V3IOZPC_cjs.__spreadValues({ className: chunk4V3IOZPC_cjs.cn("flex flex-col gap-1.5", className) }, props)) });
|
|
434
|
+
}
|
|
435
|
+
function FormLabel(_a) {
|
|
436
|
+
var _b = _a, {
|
|
437
|
+
className
|
|
438
|
+
} = _b, props = chunk4V3IOZPC_cjs.__objRest(_b, [
|
|
439
|
+
"className"
|
|
440
|
+
]);
|
|
441
|
+
const { id } = React__namespace.useContext(FormItemContext);
|
|
442
|
+
useFormContext();
|
|
443
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
444
|
+
"label",
|
|
445
|
+
chunk4V3IOZPC_cjs.__spreadValues({
|
|
446
|
+
htmlFor: id,
|
|
447
|
+
className: chunk4V3IOZPC_cjs.cn("text-[14px] font-medium text-[var(--color-foreground)]", className)
|
|
448
|
+
}, props)
|
|
449
|
+
);
|
|
450
|
+
}
|
|
451
|
+
function FormDescription(_a) {
|
|
452
|
+
var _b = _a, {
|
|
453
|
+
className
|
|
454
|
+
} = _b, props = chunk4V3IOZPC_cjs.__objRest(_b, [
|
|
455
|
+
"className"
|
|
456
|
+
]);
|
|
457
|
+
const { id } = React__namespace.useContext(FormItemContext);
|
|
458
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
459
|
+
"p",
|
|
460
|
+
chunk4V3IOZPC_cjs.__spreadValues({
|
|
461
|
+
id: `${id}-description`,
|
|
462
|
+
className: chunk4V3IOZPC_cjs.cn("text-[13px] text-[var(--color-muted-foreground)]", className)
|
|
463
|
+
}, props)
|
|
464
|
+
);
|
|
465
|
+
}
|
|
466
|
+
function FormMessage(_a) {
|
|
467
|
+
var _b = _a, { error, className, children } = _b, props = chunk4V3IOZPC_cjs.__objRest(_b, ["error", "className", "children"]);
|
|
468
|
+
const { id } = React__namespace.useContext(FormItemContext);
|
|
469
|
+
const body = error != null ? error : children;
|
|
470
|
+
if (!body) return null;
|
|
471
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
472
|
+
"p",
|
|
473
|
+
chunk4V3IOZPC_cjs.__spreadProps(chunk4V3IOZPC_cjs.__spreadValues({
|
|
474
|
+
id: `${id}-message`,
|
|
475
|
+
role: "alert",
|
|
476
|
+
className: chunk4V3IOZPC_cjs.cn("text-[13px] text-[var(--color-negative)]", className)
|
|
477
|
+
}, props), {
|
|
478
|
+
children: body
|
|
479
|
+
})
|
|
480
|
+
);
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
exports.FormDescription = FormDescription;
|
|
484
|
+
exports.FormField = FormField;
|
|
485
|
+
exports.FormItem = FormItem;
|
|
486
|
+
exports.FormLabel = FormLabel;
|
|
487
|
+
exports.FormMessage = FormMessage;
|
|
488
|
+
exports.FormRoot = FormRoot;
|
|
489
|
+
//# sourceMappingURL=chunk-OBDN7ROH.cjs.map
|
|
490
|
+
//# sourceMappingURL=chunk-OBDN7ROH.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/isPlainObject.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/compact.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/get.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/set.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/constants.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/useFormControlContext.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/useIsomorphicLayoutEffect.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/useFormState.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/isString.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/useWatch.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/useController.ts","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/controller.tsx","../node_modules/.pnpm/react-hook-form@7.72.0_react@18.3.1/node_modules/react-hook-form/src/useFormContext.tsx","../src/components/Form/Form.tsx"],"names":["result","React","formState","__spreadValues","defaultValue","__spreadProps","field","name","value","__objRest","jsx","React2","cn"],"mappings":"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","file":"chunk-OBDN7ROH.cjs","sourcesContent":["import type { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","export default (value: unknown): value is Date => value instanceof Date;\n","export default (value: unknown): value is null | undefined => value == null;\n","import isDateObject from './isDateObject';\nimport isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown): value is object =>\n typeof value === 'object';\n\nexport default <T extends object>(value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n","import isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isObject from '../utils/isObject';\n\ntype Event = { target: any };\n\nexport default (event: unknown) =>\n isObject(event) && (event as Event).target\n ? isCheckBoxInput((event as Event).target)\n ? (event as Event).target.checked\n : (event as Event).target.value\n : event;\n","export default (name: string) =>\n name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n","import type { InternalFieldName } from '../types';\n\nimport getNodeParentName from './getNodeParentName';\n\nexport default (names: Set<InternalFieldName>, name: InternalFieldName) =>\n names.has(getNodeParentName(name));\n","import isObject from './isObject';\n\nexport default (tempObject: object) => {\n const prototypeCopy =\n tempObject.constructor && tempObject.constructor.prototype;\n\n return (\n isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf')\n );\n};\n","export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n","import isObject from './isObject';\nimport isPlainObject from './isPlainObject';\nimport isWeb from './isWeb';\n\nexport default function cloneObject<T>(data: T): T {\n if (data instanceof Date) {\n return new Date(data) as any;\n }\n\n const isFileListInstance =\n typeof FileList !== 'undefined' && data instanceof FileList;\n\n if (isWeb && (data instanceof Blob || isFileListInstance)) {\n return data;\n }\n\n const isArray = Array.isArray(data);\n\n if (!isArray && !(isObject(data) && isPlainObject(data))) {\n return data;\n }\n\n const copy = isArray ? [] : Object.create(Object.getPrototypeOf(data));\n\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n\n return copy;\n}\n","export default (value: string) => /^\\w*$/.test(value);\n","export default (val: unknown): val is undefined => val === undefined;\n","export default <TValue>(value: TValue[]) =>\n Array.isArray(value) ? value.filter(Boolean) : [];\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n","import isKey from './isKey';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nexport default <T>(\n object: T,\n path?: string | null,\n defaultValue?: unknown,\n): any => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n\n const result = (isKey(path) ? [path] : stringToPath(path)).reduce(\n (result, key) =>\n isNullOrUndefined(result) ? result : result[key as keyof T & object],\n object,\n );\n\n return isUndefined(result) || result === object\n ? isUndefined(object[path as keyof T])\n ? defaultValue\n : object[path as keyof T]\n : result;\n};\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import type { FieldPath, FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\n\nexport default (\n object: FieldValues,\n path: FieldPath<FieldValues>,\n value?: unknown,\n) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n object[key] = newValue;\n object = object[key];\n }\n};\n","export const EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n SUBMIT: 'submit',\n TRIGGER: 'trigger',\n VALID: 'valid',\n} as const;\n\nexport const VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n} as const;\n\nexport const INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n} as const;\n\nexport const FORM_ERROR_TYPE = 'form';\n\nexport const ROOT_ERROR_TYPE = 'root';\n","import React from 'react';\n\nimport type { Control, FieldValues } from './types';\n\n/**\n * Separate context for `control` to prevent unnecessary rerenders.\n * Internal hooks that only need control use this instead of full form context.\n */\nexport const HookFormControlContext = React.createContext<Control | null>(null);\nHookFormControlContext.displayName = 'HookFormControlContext';\n\n/**\n * @internal Internal hook to access only control from context.\n */\nexport const useFormControlContext = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n>(): Control<TFieldValues, TContext, TTransformedValues> =>\n React.useContext(HookFormControlContext) as Control<\n TFieldValues,\n TContext,\n TTransformedValues\n >;\n","import { VALIDATION_MODE } from '../constants';\nimport type { Control, FieldValues, FormState, ReadFormState } from '../types';\n\nexport default <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n>(\n formState: FormState<TFieldValues>,\n control: Control<TFieldValues, TContext, TTransformedValues>,\n localProxyFormState?: ReadFormState,\n isRoot = true,\n) => {\n const result = {\n defaultValues: control._defaultValues,\n } as typeof formState;\n\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key as keyof FormState<TFieldValues> & keyof ReadFormState;\n\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n\n return result;\n};\n","import React from 'react';\n\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n","import React from 'react';\n\nimport getProxyFormState from './logic/getProxyFormState';\nimport type {\n FieldValues,\n UseFormStateProps,\n UseFormStateReturn,\n} from './types';\nimport { useFormControlContext } from './useFormControlContext';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nexport function useFormState<\n TFieldValues extends FieldValues = FieldValues,\n TTransformedValues = TFieldValues,\n>(\n props?: UseFormStateProps<TFieldValues, TTransformedValues>,\n): UseFormStateReturn<TFieldValues> {\n const formControl = useFormControlContext<\n TFieldValues,\n any,\n TTransformedValues\n >();\n const { control = formControl, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n\n useIsomorphicLayoutEffect(\n () =>\n control._subscribe({\n name,\n formState: _localProxyFormState.current,\n exact,\n callback: (formState) => {\n !disabled &&\n updateFormState({\n ...control._formState,\n ...formState,\n });\n },\n }),\n [name, disabled, exact],\n );\n\n React.useEffect(() => {\n _localProxyFormState.current.isValid && control._setValid(true);\n }, [control]);\n\n return React.useMemo(\n () =>\n getProxyFormState(\n formState,\n control,\n _localProxyFormState.current,\n false,\n ),\n [formState, control],\n );\n}\n","export default (value: unknown): value is string => typeof value === 'string';\n","import type { DeepPartial, FieldValues, Names } from '../types';\nimport get from '../utils/get';\nimport isString from '../utils/isString';\n\nexport default <T>(\n names: string | string[] | undefined,\n _names: Names,\n formValues?: FieldValues,\n isGlobal?: boolean,\n defaultValue?: DeepPartial<T> | unknown,\n) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n\n if (Array.isArray(names)) {\n return names.map(\n (fieldName) => (\n isGlobal && _names.watch.add(fieldName),\n get(formValues, fieldName)\n ),\n );\n }\n\n isGlobal && (_names.watchAll = true);\n\n return formValues;\n};\n","import type { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isDateObject from './isDateObject';\nimport isObject from './isObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(\n object1: any,\n object2: any,\n _internal_visited = new WeakSet(),\n) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return Object.is(object1, object2);\n }\n\n if (isDateObject(object1) && isDateObject(object2)) {\n return Object.is(object1.getTime(), object2.getTime());\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n if (_internal_visited.has(object1) || _internal_visited.has(object2)) {\n return true;\n }\n _internal_visited.add(object1);\n _internal_visited.add(object2);\n\n for (const key of keys1) {\n const val1 = object1[key];\n\n if (!keys2.includes(key)) {\n return false;\n }\n\n if (key !== 'ref') {\n const val2 = object2[key];\n\n if (\n (isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2, _internal_visited)\n : !Object.is(val1, val2)\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n","import React from 'react';\n\nimport generateWatchOutput from './logic/generateWatchOutput';\nimport deepEqual from './utils/deepEqual';\nimport type {\n Control,\n DeepPartialSkipArrayKey,\n FieldPath,\n FieldPathValue,\n FieldPathValues,\n FieldValues,\n InternalFieldName,\n UseWatchProps,\n} from './types';\nimport { useFormControlContext } from './useFormControlContext';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n\n/**\n * Subscribe to the entire form values change and re-render at the hook level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * defaultValue: {\n * name: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TTransformedValues = TFieldValues,\n>(props: {\n name?: undefined;\n defaultValue?: DeepPartialSkipArrayKey<TFieldValues>;\n control?: Control<TFieldValues, any, TTransformedValues>;\n disabled?: boolean;\n exact?: boolean;\n compute?: undefined;\n}): DeepPartialSkipArrayKey<TFieldValues>;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * name: \"fieldA\",\n * defaultValue: \"default value\",\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n TTransformedValues = TFieldValues,\n>(props: {\n name: TFieldName;\n defaultValue?: FieldPathValue<TFieldValues, TFieldName>;\n control?: Control<TFieldValues, any, TTransformedValues>;\n disabled?: boolean;\n exact?: boolean;\n compute?: undefined;\n}): FieldPathValue<TFieldValues, TFieldName>;\n/**\n * Custom hook to subscribe to field change and compute function to produce state update\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * compute: (formValues) => formValues.fieldA\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TTransformedValues = TFieldValues,\n TComputeValue = unknown,\n>(props: {\n name?: undefined;\n defaultValue?: DeepPartialSkipArrayKey<TFieldValues>;\n control?: Control<TFieldValues, any, TTransformedValues>;\n disabled?: boolean;\n exact?: boolean;\n compute: (formValues: TFieldValues) => TComputeValue;\n}): TComputeValue;\n/**\n * Custom hook to subscribe to field change and compute function to produce state update\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * name: \"fieldA\",\n * defaultValue: \"default value\",\n * exact: false,\n * compute: (fieldValue) => fieldValue === \"data\" ? fieldValue : null,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n TTransformedValues = TFieldValues,\n TComputeValue = unknown,\n>(props: {\n name: TFieldName;\n defaultValue?: FieldPathValue<TFieldValues, TFieldName>;\n control?: Control<TFieldValues, any, TTransformedValues>;\n disabled?: boolean;\n exact?: boolean;\n compute: (\n fieldValue: FieldPathValue<TFieldValues, TFieldName>,\n ) => TComputeValue;\n}): TComputeValue;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * name: [\"fieldA\", \"fieldB\"],\n * defaultValue: {\n * fieldA: \"data\",\n * fieldB: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldNames extends readonly FieldPath<TFieldValues>[] =\n readonly FieldPath<TFieldValues>[],\n TTransformedValues = TFieldValues,\n>(props: {\n name: readonly [...TFieldNames];\n defaultValue?: DeepPartialSkipArrayKey<TFieldValues>;\n control?: Control<TFieldValues, any, TTransformedValues>;\n disabled?: boolean;\n exact?: boolean;\n compute?: undefined;\n}): FieldPathValues<TFieldValues, TFieldNames>;\n/**\n * Custom hook to subscribe to field change and compute function to produce state update\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * name: [\"fieldA\", \"fieldB\"],\n * defaultValue: {\n * fieldA: \"data\",\n * fieldB: 0\n * },\n * compute: ([fieldAValue, fieldBValue]) => fieldB === 2 ? fieldA : null,\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldNames extends readonly FieldPath<TFieldValues>[] =\n readonly FieldPath<TFieldValues>[],\n TTransformedValues = TFieldValues,\n TComputeValue = unknown,\n>(props: {\n name: readonly [...TFieldNames];\n defaultValue?: DeepPartialSkipArrayKey<TFieldValues>;\n control?: Control<TFieldValues, any, TTransformedValues>;\n disabled?: boolean;\n exact?: boolean;\n compute: (\n fieldValue: FieldPathValues<TFieldValues, TFieldNames>,\n ) => TComputeValue;\n}): TComputeValue;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * // can skip passing down the control into useWatch if the form is wrapped with the FormProvider\n * const values = useWatch()\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(): DeepPartialSkipArrayKey<TFieldValues>;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nexport function useWatch<TFieldValues extends FieldValues>(\n props?: UseWatchProps<TFieldValues>,\n) {\n const formControl = useFormControlContext<TFieldValues>();\n const {\n control = formControl,\n name,\n defaultValue,\n disabled,\n exact,\n compute,\n } = props || {};\n const _defaultValue = React.useRef(defaultValue);\n const _compute = React.useRef(compute);\n const _computeFormValues = React.useRef<undefined | unknown>(undefined);\n\n const _prevControl = React.useRef(control);\n const _prevName = React.useRef(name);\n\n _compute.current = compute;\n\n const [value, updateValue] = React.useState(() => {\n const defaultValue = control._getWatch(\n name as InternalFieldName,\n _defaultValue.current as DeepPartialSkipArrayKey<TFieldValues>,\n );\n\n return _compute.current ? _compute.current(defaultValue) : defaultValue;\n });\n\n const getCurrentOutput = React.useCallback(\n (values?: TFieldValues) => {\n const formValues = generateWatchOutput(\n name as InternalFieldName | InternalFieldName[],\n control._names,\n values || control._formValues,\n false,\n _defaultValue.current,\n );\n\n return _compute.current ? _compute.current(formValues) : formValues;\n },\n [control._formValues, control._names, name],\n );\n\n const refreshValue = React.useCallback(\n (values?: TFieldValues) => {\n if (!disabled) {\n const formValues = generateWatchOutput(\n name as InternalFieldName | InternalFieldName[],\n control._names,\n values || control._formValues,\n false,\n _defaultValue.current,\n );\n\n if (_compute.current) {\n const computedFormValues = _compute.current(formValues);\n\n if (!deepEqual(computedFormValues, _computeFormValues.current)) {\n updateValue(computedFormValues);\n _computeFormValues.current = computedFormValues;\n }\n } else {\n updateValue(formValues);\n }\n }\n },\n [control._formValues, control._names, disabled, name],\n );\n\n useIsomorphicLayoutEffect(() => {\n if (\n _prevControl.current !== control ||\n !deepEqual(_prevName.current, name)\n ) {\n _prevControl.current = control;\n _prevName.current = name;\n refreshValue();\n }\n\n return control._subscribe({\n name,\n formState: {\n values: true,\n },\n exact,\n callback: (formState) => {\n refreshValue(formState.values);\n },\n });\n }, [control, exact, name, refreshValue]);\n\n React.useEffect(() => control._removeUnmounted());\n\n // If name or control changed for this render, synchronously reflect the\n // latest value so callers (like useController) see the correct value\n // immediately on the same render.\n\n // Optimize: Check control reference first before expensive deepEqual\n const controlChanged = _prevControl.current !== control;\n const prevName = _prevName.current;\n\n // Cache the computed output to avoid duplicate calls within the same render\n // We include shouldReturnImmediate in deps to ensure proper recomputation\n const computedOutput = React.useMemo(() => {\n if (disabled) {\n return null;\n }\n\n const nameChanged = !controlChanged && !deepEqual(prevName, name);\n const shouldReturnImmediate = controlChanged || nameChanged;\n\n return shouldReturnImmediate ? getCurrentOutput() : null;\n }, [disabled, controlChanged, name, prevName, getCurrentOutput]);\n\n return computedOutput !== null ? computedOutput : value;\n}\n","import React from 'react';\n\nimport getEventValue from './logic/getEventValue';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport cloneObject from './utils/cloneObject';\nimport get from './utils/get';\nimport isBoolean from './utils/isBoolean';\nimport isFunction from './utils/isFunction';\nimport isUndefined from './utils/isUndefined';\nimport set from './utils/set';\nimport { EVENTS } from './constants';\nimport type {\n ControllerFieldState,\n Field,\n FieldPath,\n FieldPathValue,\n FieldValues,\n InternalFieldName,\n UseControllerProps,\n UseControllerReturn,\n} from './types';\nimport { useFormControlContext } from './useFormControlContext';\nimport { useFormState } from './useFormState';\nimport { useWatch } from './useWatch';\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n * <div>\n * <input {...field} placeholder={props.name} />\n * <p>{fieldState.isTouched && \"Touched\"}</p>\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * </div>\n * );\n * }\n * ```\n */\nexport function useController<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n TTransformedValues = TFieldValues,\n>(\n props: UseControllerProps<TFieldValues, TName, TTransformedValues>,\n): UseControllerReturn<TFieldValues, TName> {\n const formControl = useFormControlContext<\n TFieldValues,\n any,\n TTransformedValues\n >();\n const {\n name,\n disabled,\n control = formControl,\n shouldUnregister,\n defaultValue,\n exact = true,\n } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n\n const defaultValueMemo = React.useMemo(\n () =>\n get(\n control._formValues,\n name,\n get(control._defaultValues, name, defaultValue),\n ),\n [control, name, defaultValue],\n );\n\n const value = useWatch({\n control,\n name,\n defaultValue: defaultValueMemo,\n exact,\n }) as FieldPathValue<TFieldValues, TName>;\n\n const formState = useFormState({\n control,\n name,\n exact,\n });\n\n const _props = React.useRef(props);\n\n const _previousNameRef = React.useRef<string | undefined>(undefined);\n\n const _registerProps = React.useRef(\n control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }),\n );\n\n _props.current = props;\n\n const fieldState = React.useMemo(\n () =>\n Object.defineProperties(\n {},\n {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n },\n ) as ControllerFieldState,\n [formState, name],\n );\n\n const onChange = React.useCallback(\n (event: any) =>\n _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name as InternalFieldName,\n },\n type: EVENTS.CHANGE,\n }),\n [name],\n );\n\n const onBlur = React.useCallback(\n () =>\n _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name as InternalFieldName,\n },\n type: EVENTS.BLUR,\n }),\n [name, control._formValues],\n );\n\n const ref = React.useCallback(\n (elm: any) => {\n const field = get(control._fields, name);\n\n if (field && field._f && elm) {\n field._f.ref = {\n focus: () => isFunction(elm.focus) && elm.focus(),\n select: () => isFunction(elm.select) && elm.select(),\n setCustomValidity: (message: string) =>\n isFunction(elm.setCustomValidity) && elm.setCustomValidity(message),\n reportValidity: () =>\n isFunction(elm.reportValidity) && elm.reportValidity(),\n };\n }\n },\n [control._fields, name],\n );\n\n const field = React.useMemo(\n () => ({\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange,\n onBlur,\n ref,\n }),\n [name, disabled, formState.disabled, onChange, onBlur, ref, value],\n );\n\n React.useEffect(() => {\n const _shouldUnregisterField =\n control._options.shouldUnregister || shouldUnregister;\n const previousName = _previousNameRef.current;\n\n if (previousName && previousName !== name && !isArrayField) {\n control.unregister(previousName as FieldPath<TFieldValues>);\n }\n\n control.register(name, {\n ..._props.current.rules,\n ...(isBoolean(_props.current.disabled)\n ? { disabled: _props.current.disabled }\n : {}),\n });\n\n const updateMounted = (name: InternalFieldName, value: boolean) => {\n const field: Field = get(control._fields, name);\n\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n\n updateMounted(name, true);\n\n if (_shouldUnregisterField) {\n const value = cloneObject(\n get(control._options.defaultValues, name, _props.current.defaultValue),\n );\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n\n !isArrayField && control.register(name);\n\n _previousNameRef.current = name;\n\n return () => {\n (\n isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField\n )\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n\n React.useEffect(() => {\n control._setDisabledField({\n disabled,\n name,\n });\n }, [disabled, name, control]);\n\n return React.useMemo(\n () => ({\n field,\n formState,\n fieldState,\n }),\n [field, formState, fieldState],\n );\n}\n","import type { ControllerProps, FieldPath, FieldValues } from './types';\nimport { useController } from './useController';\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm<FormValues>({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n * <form>\n * <Controller\n * control={control}\n * name=\"test\"\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n * <>\n * <input\n * onChange={onChange} // send value to hook form\n * onBlur={onBlur} // notify when input is touched\n * value={value} // return updated value\n * ref={ref} // set ref for focus management\n * />\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n * </>\n * )}\n * />\n * </form>\n * );\n * }\n * ```\n */\nconst Controller = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n TTransformedValues = TFieldValues,\n>(\n props: ControllerProps<TFieldValues, TName, TTransformedValues>,\n) =>\n props.render(useController<TFieldValues, TName, TTransformedValues>(props));\n\nexport { Controller };\n","import React from 'react';\n\nimport type {\n Control,\n FieldValues,\n FormProviderProps,\n UseFormReturn,\n} from './types';\nimport { HookFormControlContext } from './useFormControlContext';\n\nconst HookFormContext = React.createContext<UseFormReturn | null>(null);\nHookFormContext.displayName = 'HookFormContext';\n\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nexport const useFormContext = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n>(): UseFormReturn<TFieldValues, TContext, TTransformedValues> =>\n React.useContext(HookFormContext) as UseFormReturn<\n TFieldValues,\n TContext,\n TTransformedValues\n >;\n\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://react.dev/reference/react/useContext) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nexport const FormProvider = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n>(\n props: FormProviderProps<TFieldValues, TContext, TTransformedValues>,\n) => {\n const {\n children,\n watch,\n getValues,\n getFieldState,\n setError,\n clearErrors,\n setValue,\n trigger,\n formState,\n resetField,\n reset,\n handleSubmit,\n unregister,\n control,\n register,\n setFocus,\n subscribe,\n } = props;\n\n return (\n <HookFormContext.Provider\n value={\n React.useMemo(\n () => ({\n watch,\n getValues,\n getFieldState,\n setError,\n clearErrors,\n setValue,\n trigger,\n formState,\n resetField,\n reset,\n handleSubmit,\n unregister,\n control,\n register,\n setFocus,\n subscribe,\n }),\n [\n clearErrors,\n control,\n formState,\n getFieldState,\n getValues,\n handleSubmit,\n register,\n reset,\n resetField,\n setError,\n setFocus,\n setValue,\n subscribe,\n trigger,\n unregister,\n watch,\n ],\n ) as unknown as UseFormReturn\n }\n >\n <HookFormControlContext.Provider value={control as Control}>\n {children}\n </HookFormControlContext.Provider>\n </HookFormContext.Provider>\n );\n};\n","/**\n * Form compound components — react-hook-form 연동용\n *\n * 사용 예시:\n * const form = useForm<Schema>({ resolver: zodResolver(schema) });\n *\n * <FormRoot form={form} onSubmit={form.handleSubmit(onSubmit)}>\n * <FormField name=\"email\" control={form.control} render={({ field, fieldState }) => (\n * <FormItem>\n * <FormLabel>이메일</FormLabel>\n * <TextField {...field} isError={!!fieldState.error} />\n * <FormMessage error={fieldState.error?.message} />\n * </FormItem>\n * )} />\n * </FormRoot>\n */\nimport * as React from \"react\";\nimport {\n useFormContext,\n FormProvider,\n Controller,\n type FieldValues,\n type FieldPath,\n type ControllerProps,\n type UseFormReturn,\n} from \"react-hook-form\";\nimport { cn } from \"../../utils/cn\";\n\n// ── FormRoot ──────────────────────────────────────────────────────────────────\ninterface FormRootProps<T extends FieldValues>\n extends React.FormHTMLAttributes<HTMLFormElement> {\n form: UseFormReturn<T>;\n}\n\nfunction FormRoot<T extends FieldValues>({\n form,\n children,\n ...props\n}: FormRootProps<T>) {\n return (\n <FormProvider {...form}>\n <form {...props}>{children}</form>\n </FormProvider>\n );\n}\n\n// ── FormField ─────────────────────────────────────────────────────────────────\nfunction FormField<\n TFieldValues extends FieldValues,\n TName extends FieldPath<TFieldValues>,\n>(props: ControllerProps<TFieldValues, TName>) {\n return <Controller {...props} />;\n}\n\n// ── FormItem ──────────────────────────────────────────────────────────────────\nconst FormItemContext = React.createContext<{ id: string }>({ id: \"\" });\n\nfunction FormItem({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const id = React.useId();\n return (\n <FormItemContext.Provider value={{ id }}>\n <div className={cn(\"flex flex-col gap-1.5\", className)} {...props} />\n </FormItemContext.Provider>\n );\n}\n\n// ── FormLabel ─────────────────────────────────────────────────────────────────\nfunction FormLabel({\n className,\n ...props\n}: React.LabelHTMLAttributes<HTMLLabelElement>) {\n const { id } = React.useContext(FormItemContext);\n const form = useFormContext();\n // fieldState를 label에서 직접 읽을 수 없으므로 스타일링만 담당\n return (\n <label\n htmlFor={id}\n className={cn(\"text-[14px] font-medium text-[var(--color-foreground)]\", className)}\n {...props}\n />\n );\n}\n\n// ── FormDescription ───────────────────────────────────────────────────────────\nfunction FormDescription({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n const { id } = React.useContext(FormItemContext);\n return (\n <p\n id={`${id}-description`}\n className={cn(\"text-[13px] text-[var(--color-muted-foreground)]\", className)}\n {...props}\n />\n );\n}\n\n// ── FormMessage ───────────────────────────────────────────────────────────────\ninterface FormMessageProps extends React.HTMLAttributes<HTMLParagraphElement> {\n error?: string;\n}\n\nfunction FormMessage({ error, className, children, ...props }: FormMessageProps) {\n const { id } = React.useContext(FormItemContext);\n const body = error ?? children;\n if (!body) return null;\n\n return (\n <p\n id={`${id}-message`}\n role=\"alert\"\n className={cn(\"text-[13px] text-[var(--color-negative)]\", className)}\n {...props}\n >\n {body}\n </p>\n );\n}\n\nexport { FormRoot, FormField, FormItem, FormLabel, FormDescription, FormMessage };\n"]}
|