@epic-web/workshop-app 5.0.1 → 5.0.3
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/build/client/assets/{_-D0Tgngwe.js → _-ZHCWB__B.js} +2 -2
- package/build/client/assets/{_-D0Tgngwe.js.map → _-ZHCWB__B.js.map} +1 -1
- package/build/client/assets/_exerciseNumber-BFTlBdr4.js +2 -0
- package/build/client/assets/_exerciseNumber-BFTlBdr4.js.map +1 -0
- package/build/client/assets/{_exerciseNumber_._stepNumber-7kSd_6hH.js → _exerciseNumber_._stepNumber-_687iGFh.js} +2 -2
- package/build/client/assets/{_exerciseNumber_._stepNumber-7kSd_6hH.js.map → _exerciseNumber_._stepNumber-_687iGFh.js.map} +1 -1
- package/build/client/assets/_exerciseNumber_.finished-BEfn-nJi.js +2 -0
- package/build/client/assets/_exerciseNumber_.finished-BEfn-nJi.js.map +1 -0
- package/build/client/assets/{_layout-BwzhY4NI.js → _layout-BLJr2x2F.js} +2 -2
- package/build/client/assets/{_layout-BwzhY4NI.js.map → _layout-BLJr2x2F.js.map} +1 -1
- package/build/client/assets/_layout-BriOqd2R.js +2 -0
- package/build/client/assets/_layout-BriOqd2R.js.map +1 -0
- package/build/client/assets/{_layout-BUs3av-e.js → _layout-Cfbi6StB.js} +2 -2
- package/build/client/assets/{_layout-BUs3av-e.js.map → _layout-Cfbi6StB.js.map} +1 -1
- package/build/client/assets/_layout-frPHZWgR.js +6 -0
- package/build/client/assets/_layout-frPHZWgR.js.map +1 -0
- package/build/client/assets/{accordion-OfO-5m5D.js → accordion-DuE9VejZ.js} +2 -2
- package/build/client/assets/{accordion-OfO-5m5D.js.map → accordion-DuE9VejZ.js.map} +1 -1
- package/build/client/assets/{account-BatJhmSV.js → account-DDuV9rZX.js} +2 -2
- package/build/client/assets/{account-BatJhmSV.js.map → account-DDuV9rZX.js.map} +1 -1
- package/build/client/assets/app-wbMCZEiv.js +2 -0
- package/build/client/assets/{app-CJ9ElQg6.js.map → app-wbMCZEiv.js.map} +1 -1
- package/build/client/assets/{button-EE0aPg10.js → button-CMkJ8p0a.js} +2 -2
- package/build/client/assets/{button-EE0aPg10.js.map → button-CMkJ8p0a.js.map} +1 -1
- package/build/client/assets/{components-CME-nGId.js → components-DZ8XIeZ3.js} +2 -2
- package/build/client/assets/{components-CME-nGId.js.map → components-DZ8XIeZ3.js.map} +1 -1
- package/build/client/assets/diff-B6thd_Sf.js +2 -0
- package/build/client/assets/diff-B6thd_Sf.js.map +1 -0
- package/build/client/assets/diff-BEk79KPK.js +2 -0
- package/build/client/assets/{diff-Cvtc-qzL.js.map → diff-BEk79KPK.js.map} +1 -1
- package/build/client/assets/{discord-BRTW4Rnh.js → discord-C9bVfiZ6.js} +2 -2
- package/build/client/assets/{discord-BRTW4Rnh.js.map → discord-C9bVfiZ6.js.map} +1 -1
- package/build/client/assets/discord-DYeU0QX6.js +2 -0
- package/build/client/assets/discord-DYeU0QX6.js.map +1 -0
- package/build/client/assets/{entry.client-3M2p-8I3.js → entry.client-CW5CUf_W.js} +2 -2
- package/build/client/assets/{entry.client-3M2p-8I3.js.map → entry.client-CW5CUf_W.js.map} +1 -1
- package/build/client/assets/{epic-video-yrWoJVFy.js → epic-video-bs7WmhbC.js} +2 -2
- package/build/client/assets/{epic-video-yrWoJVFy.js.map → epic-video-bs7WmhbC.js.map} +1 -1
- package/build/client/assets/{error-boundary-COkPRBOZ.js → error-boundary-BcGxKpte.js} +2 -2
- package/build/client/assets/{error-boundary-COkPRBOZ.js.map → error-boundary-BcGxKpte.js.map} +1 -1
- package/build/client/assets/finished-C2dgX1d-.js +2 -0
- package/build/client/assets/finished-C2dgX1d-.js.map +1 -0
- package/build/client/assets/{index-BwhlO_gF.js → index-BczhSZ3e.js} +2 -2
- package/build/client/assets/{index-BwhlO_gF.js.map → index-BczhSZ3e.js.map} +1 -1
- package/build/client/assets/{index-CXyf3Reb.js → index-BjNhezSK.js} +2 -2
- package/build/client/assets/{index-CXyf3Reb.js.map → index-BjNhezSK.js.map} +1 -1
- package/build/client/assets/{index-YNIH4TH8.js → index-BvihEwfB.js} +2 -2
- package/build/client/assets/{index-YNIH4TH8.js.map → index-BvihEwfB.js.map} +1 -1
- package/build/client/assets/index-C2yr7Uiu.js +2 -0
- package/build/client/assets/index-C2yr7Uiu.js.map +1 -0
- package/build/client/assets/{index-R-sUGQfT.js → index-CuV1bRbu.js} +2 -2
- package/build/client/assets/{index-R-sUGQfT.js.map → index-CuV1bRbu.js.map} +1 -1
- package/build/client/assets/{index-Dx5GmdYq.js → index-DBrRQJxF.js} +2 -2
- package/build/client/assets/{index-Dx5GmdYq.js.map → index-DBrRQJxF.js.map} +1 -1
- package/build/client/assets/{index-1cKOJFpX.js → index-DF_XBInP.js} +2 -2
- package/build/client/assets/{index-1cKOJFpX.js.map → index-DF_XBInP.js.map} +1 -1
- package/build/client/assets/{index-B-hHvmeV.js → index-YtpQLUzj.js} +2 -2
- package/build/client/assets/{index-B-hHvmeV.js.map → index-YtpQLUzj.js.map} +1 -1
- package/build/client/assets/{loading-sXkYDMsx.js → loading-Br41_Pbf.js} +2 -2
- package/build/client/assets/{loading-sXkYDMsx.js.map → loading-Br41_Pbf.js.map} +1 -1
- package/build/client/assets/{login-Cc73KLYm.js → login-kjV7hrVt.js} +2 -2
- package/build/client/assets/{login-Cc73KLYm.js.map → login-kjV7hrVt.js.map} +1 -1
- package/build/client/assets/manifest-d7c89645.js +1 -0
- package/build/client/assets/{mdx-CpyquP9i.js → mdx-CRxPouxB.js} +2 -2
- package/build/client/assets/{mdx-CpyquP9i.js.map → mdx-CRxPouxB.js.map} +1 -1
- package/build/client/assets/{misc-CxCgA-_O.js → misc-BE75ioh8.js} +2 -2
- package/build/client/assets/{misc-CxCgA-_O.js.map → misc-BE75ioh8.js.map} +1 -1
- package/build/client/assets/{nav-chevrons-g-C0ilNz.js → nav-chevrons-DYiI8EMU.js} +2 -2
- package/build/client/assets/{nav-chevrons-g-C0ilNz.js.map → nav-chevrons-DYiI8EMU.js.map} +1 -1
- package/build/client/assets/{onboarding-B7TLVi2l.js → onboarding-B4Z_yevk.js} +2 -2
- package/build/client/assets/{onboarding-B7TLVi2l.js.map → onboarding-B4Z_yevk.js.map} +1 -1
- package/build/client/assets/{pe-CUZaIcdt.js → pe-CvPIToj6.js} +2 -2
- package/build/client/assets/{pe-CUZaIcdt.js.map → pe-CvPIToj6.js.map} +1 -1
- package/build/client/assets/{presence-Cr--lRCr.js → presence-Dd98AJ_5.js} +2 -2
- package/build/client/assets/{presence-Cr--lRCr.js.map → presence-Dd98AJ_5.js.map} +1 -1
- package/build/client/assets/{preview-C7dtR2VR.js → preview-DZcdG4kw.js} +2 -2
- package/build/client/assets/{preview-C7dtR2VR.js.map → preview-DZcdG4kw.js.map} +1 -1
- package/build/client/assets/{product-BAWG1Vut.js → product-mjsTrqXs.js} +2 -2
- package/build/client/assets/{product-BAWG1Vut.js.map → product-mjsTrqXs.js.map} +1 -1
- package/build/client/assets/{progress-BFm2U-l5.js → progress-Co-59mG2.js} +2 -2
- package/build/client/assets/{progress-BFm2U-l5.js.map → progress-Co-59mG2.js.map} +1 -1
- package/build/client/assets/{progress-bar-D3kudPcr.js → progress-bar-F8_2mvYp.js} +2 -2
- package/build/client/assets/{progress-bar-D3kudPcr.js.map → progress-bar-F8_2mvYp.js.map} +1 -1
- package/build/client/assets/{request-info-CEhUGODY.js → request-info-DGnmXtfj.js} +2 -2
- package/build/client/assets/{request-info-CEhUGODY.js.map → request-info-DGnmXtfj.js.map} +1 -1
- package/build/client/assets/revalidation-ws-DcvYvzyj.js +2 -0
- package/build/client/assets/revalidation-ws-DcvYvzyj.js.map +1 -0
- package/build/client/assets/root-Cl86OUog.js +11 -0
- package/build/client/assets/root-Cl86OUog.js.map +1 -0
- package/build/client/assets/{set-playground-DW0yVaNn.js → set-playground-pMKmtPtz.js} +2 -2
- package/build/client/assets/{set-playground-DW0yVaNn.js.map → set-playground-pMKmtPtz.js.map} +1 -1
- package/build/client/assets/{support-hcqGIpir.js → support-B0E_F4Zh.js} +2 -2
- package/build/client/assets/{support-hcqGIpir.js.map → support-B0E_F4Zh.js.map} +1 -1
- package/build/client/assets/test-B6zIK2V6.js +2 -0
- package/build/client/assets/{test-DbZkv25C.js.map → test-B6zIK2V6.js.map} +1 -1
- package/build/client/assets/{tests-BR7RFlr5.js → tests-BeAEgPAw.js} +2 -2
- package/build/client/assets/{tests-BR7RFlr5.js.map → tests-BeAEgPAw.js.map} +1 -1
- package/build/client/assets/{tooltip-kD4kSf1i.js → tooltip-6-WS-Xux.js} +2 -2
- package/build/client/assets/{tooltip-kD4kSf1i.js.map → tooltip-6-WS-Xux.js.map} +1 -1
- package/build/client/assets/{use-event-source-A_0lEOPX.js → use-event-source-CCGBLG92.js} +2 -2
- package/build/client/assets/{use-event-source-A_0lEOPX.js.map → use-event-source-CCGBLG92.js.map} +1 -1
- package/build/client/assets/{user-DvujSs-t.js → user-Boua6jiU.js} +2 -2
- package/build/client/assets/{user-DvujSs-t.js.map → user-Boua6jiU.js.map} +1 -1
- package/build/client/assets/{workshop-config-CL4F08kr.js → workshop-config-Ce9sSc3I.js} +2 -2
- package/build/client/assets/{workshop-config-CL4F08kr.js.map → workshop-config-Ce9sSc3I.js.map} +1 -1
- package/build/server/index.js +768 -692
- package/build/server/index.js.map +1 -1
- package/dist/server/index.js +83 -34
- package/package.json +4 -4
- package/build/client/assets/_exerciseNumber-1JworToC.js +0 -2
- package/build/client/assets/_exerciseNumber-1JworToC.js.map +0 -1
- package/build/client/assets/_exerciseNumber_.finished-B4D2ZAmj.js +0 -2
- package/build/client/assets/_exerciseNumber_.finished-B4D2ZAmj.js.map +0 -1
- package/build/client/assets/_layout-BPwIOXxN.js +0 -6
- package/build/client/assets/_layout-BPwIOXxN.js.map +0 -1
- package/build/client/assets/_layout-CKnDy_9Z.js +0 -2
- package/build/client/assets/_layout-CKnDy_9Z.js.map +0 -1
- package/build/client/assets/app-CJ9ElQg6.js +0 -2
- package/build/client/assets/diff-Cvtc-qzL.js +0 -2
- package/build/client/assets/diff-jgZ_RGra.js +0 -2
- package/build/client/assets/diff-jgZ_RGra.js.map +0 -1
- package/build/client/assets/discord-BhzUjmbI.js +0 -2
- package/build/client/assets/discord-BhzUjmbI.js.map +0 -1
- package/build/client/assets/finished-Ct6I1SZV.js +0 -2
- package/build/client/assets/finished-Ct6I1SZV.js.map +0 -1
- package/build/client/assets/index-Ccssehd9.js +0 -2
- package/build/client/assets/index-Ccssehd9.js.map +0 -1
- package/build/client/assets/manifest-f5f44d87.js +0 -1
- package/build/client/assets/root-9wVBEzOq.js +0 -68
- package/build/client/assets/root-9wVBEzOq.js.map +0 -1
- package/build/client/assets/test-DbZkv25C.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-YNIH4TH8.js","sources":["../../../../../node_modules/@conform-to/dom/_virtual/_rollupPluginBabelHelpers.mjs","../../../../../node_modules/@conform-to/dom/formdata.mjs","../../../../../node_modules/@conform-to/dom/util.mjs","../../../../../node_modules/@conform-to/dom/dom.mjs","../../../../../node_modules/@conform-to/dom/submission.mjs","../../../../../node_modules/@conform-to/dom/form.mjs","../../../../../node_modules/@conform-to/react/_virtual/_rollupPluginBabelHelpers.mjs","../../../../../node_modules/@conform-to/react/context.mjs","../../../../../node_modules/@conform-to/react/hooks.mjs","../../../../../node_modules/@conform-to/react/helpers.mjs","../../../../../node_modules/@conform-to/zod/_virtual/_rollupPluginBabelHelpers.mjs","../../../../../node_modules/@conform-to/zod/coercion.mjs","../../../../../node_modules/@conform-to/zod/parse.mjs","../../../../../node_modules/@epic-web/client-hints/dist/index.js","../../../../../node_modules/@epic-web/client-hints/dist/color-scheme.js","../../../../../node_modules/@epic-web/client-hints/dist/reduced-motion.js","../../../../../node_modules/@epic-web/client-hints/dist/time-zone.js","../../../app/utils/client-hints.tsx","../../../app/utils/forms.tsx","../../../app/routes/theme/index.tsx"],"sourcesContent":["function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nexport { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };\n","/**\n * Construct a form data with the submitter value.\n * It utilizes the submitter argument on the FormData constructor from modern browsers\n * with fallback to append the submitter value in case it is not unsupported.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData#parameters\n */\nfunction getFormData(form, submitter) {\n var payload = new FormData(form, submitter);\n if (submitter && submitter.type === 'submit' && submitter.name !== '') {\n var entries = payload.getAll(submitter.name);\n\n // This assumes the submitter value to be always unique, which should be fine in most cases\n if (!entries.includes(submitter.value)) {\n payload.append(submitter.name, submitter.value);\n }\n }\n return payload;\n}\n\n/**\n * Returns the paths from a name based on the JS syntax convention\n * @example\n * ```js\n * const paths = getPaths('todos[0].content'); // ['todos', 0, 'content']\n * ```\n */\nfunction getPaths(name) {\n if (!name) {\n return [];\n }\n return name.split(/\\.|(\\[\\d*\\])/).reduce((result, segment) => {\n if (typeof segment !== 'undefined' && segment !== '' && segment !== '__proto__' && segment !== 'constructor' && segment !== 'prototype') {\n if (segment.startsWith('[') && segment.endsWith(']')) {\n var index = segment.slice(1, -1);\n result.push(Number(index));\n } else {\n result.push(segment);\n }\n }\n return result;\n }, []);\n}\n\n/**\n * Returns a formatted name from the paths based on the JS syntax convention\n * @example\n * ```js\n * const name = formatPaths(['todos', 0, 'content']); // \"todos[0].content\"\n * ```\n */\nfunction formatPaths(paths) {\n return paths.reduce((name, path) => {\n if (typeof path === 'number') {\n return \"\".concat(name, \"[\").concat(Number.isNaN(path) ? '' : path, \"]\");\n }\n if (name === '' || path === '') {\n return [name, path].join('');\n }\n return [name, path].join('.');\n }, '');\n}\n\n/**\n * Format based on a prefix and a path\n */\nfunction formatName(prefix, path) {\n return typeof path !== 'undefined' ? formatPaths([...getPaths(prefix), path]) : prefix !== null && prefix !== void 0 ? prefix : '';\n}\n\n/**\n * Check if a name match the prefix paths\n */\nfunction isPrefix(name, prefix) {\n var paths = getPaths(name);\n var prefixPaths = getPaths(prefix);\n return paths.length >= prefixPaths.length && prefixPaths.every((path, index) => paths[index] === path);\n}\n\n/**\n * Assign a value to a target object by following the paths\n */\nfunction setValue(target, name, valueFn) {\n var paths = getPaths(name);\n var length = paths.length;\n var lastIndex = length - 1;\n var index = -1;\n var pointer = target;\n while (pointer != null && ++index < length) {\n var key = paths[index];\n var nextKey = paths[index + 1];\n var newValue = index != lastIndex ? Object.prototype.hasOwnProperty.call(pointer, key) && pointer[key] !== null ? pointer[key] : typeof nextKey === 'number' ? [] : {} : valueFn(pointer[key]);\n pointer[key] = newValue;\n pointer = pointer[key];\n }\n}\n\n/**\n * Retrive the value from a target object by following the paths\n */\nfunction getValue(target, name) {\n var pointer = target;\n for (var path of getPaths(name)) {\n if (typeof pointer === 'undefined' || pointer == null) {\n break;\n }\n if (!Object.prototype.hasOwnProperty.call(pointer, path)) {\n return;\n }\n if (isPlainObject(pointer) && typeof path === 'string') {\n pointer = pointer[path];\n } else if (Array.isArray(pointer) && typeof path === 'number') {\n pointer = pointer[path];\n } else {\n return;\n }\n }\n return pointer;\n}\n\n/**\n * Check if the value is a plain object\n */\nfunction isPlainObject(obj) {\n return !!obj && obj.constructor === Object && Object.getPrototypeOf(obj) === Object.prototype;\n}\n\n/**\n * Check if the value is a File\n */\nfunction isFile(obj) {\n // Skip checking if File is not defined\n if (typeof File === 'undefined') {\n return false;\n }\n return obj instanceof File;\n}\n\n/**\n * Normalize value by removing empty object or array, empty string and null values\n */\n\nfunction normalize(value) {\n var acceptFile = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (isPlainObject(value)) {\n var obj = Object.keys(value).sort().reduce((result, key) => {\n var data = normalize(value[key], acceptFile);\n if (typeof data !== 'undefined') {\n result[key] = data;\n }\n return result;\n }, {});\n if (Object.keys(obj).length === 0) {\n return;\n }\n return obj;\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined;\n }\n return value.map(item => normalize(item, acceptFile));\n }\n if (typeof value === 'string' && value === '' || value === null || isFile(value) && (!acceptFile || value.size === 0)) {\n return;\n }\n return value;\n}\n\n/**\n * Flatten a tree into a dictionary\n */\nfunction flatten(data) {\n var _options$resolve;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var result = {};\n var resolve = (_options$resolve = options.resolve) !== null && _options$resolve !== void 0 ? _options$resolve : data => data;\n function process(data, prefix) {\n var value = normalize(resolve(data));\n if (typeof value !== 'undefined') {\n result[prefix] = value;\n }\n if (Array.isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n process(data[i], \"\".concat(prefix, \"[\").concat(i, \"]\"));\n }\n } else if (isPlainObject(data)) {\n for (var [key, _value] of Object.entries(data)) {\n process(_value, prefix ? \"\".concat(prefix, \".\").concat(key) : key);\n }\n }\n }\n if (data) {\n var _options$prefix;\n process(data, (_options$prefix = options.prefix) !== null && _options$prefix !== void 0 ? _options$prefix : '');\n }\n return result;\n}\n\nexport { flatten, formatName, formatPaths, getFormData, getPaths, getValue, isFile, isPlainObject, isPrefix, normalize, setValue };\n","function invariant(expectedCondition, message) {\n if (!expectedCondition) {\n throw new Error(message);\n }\n}\nfunction generateId() {\n return (Date.now() * Math.random()).toString(36);\n}\nfunction clone(data) {\n return JSON.parse(JSON.stringify(data));\n}\n\nexport { clone, generateId, invariant };\n","import { invariant } from './util.mjs';\n\n/**\n * Element that user can interact with,\n * includes `<input>`, `<select>` and `<textarea>`.\n */\n\n/**\n * HTML Element that can be used as a form control,\n * includes `<input>`, `<select>`, `<textarea>` and `<button>`.\n */\n\n/**\n * Form Control element. It can either be a submit button or a submit input.\n */\n\n/**\n * A type guard to check if the provided element is a form control\n */\nfunction isFormControl(element) {\n return element instanceof Element && (element.tagName === 'INPUT' || element.tagName === 'SELECT' || element.tagName === 'TEXTAREA' || element.tagName === 'BUTTON');\n}\n\n/**\n * A type guard to check if the provided element is a field element, which\n * is a form control excluding submit, button and reset type.\n */\nfunction isFieldElement(element) {\n return isFormControl(element) && element.type !== 'submit' && element.type !== 'button' && element.type !== 'reset';\n}\n\n/**\n * Resolves the action from the submit event\n * with respect to the submitter `formaction` attribute.\n */\nfunction getFormAction(event) {\n var _ref, _submitter$getAttribu;\n var form = event.target;\n var submitter = event.submitter;\n return (_ref = (_submitter$getAttribu = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute('formaction')) !== null && _submitter$getAttribu !== void 0 ? _submitter$getAttribu : form.getAttribute('action')) !== null && _ref !== void 0 ? _ref : \"\".concat(location.pathname).concat(location.search);\n}\n\n/**\n * Resolves the encoding type from the submit event\n * with respect to the submitter `formenctype` attribute.\n */\nfunction getFormEncType(event) {\n var _submitter$getAttribu2;\n var form = event.target;\n var submitter = event.submitter;\n var encType = (_submitter$getAttribu2 = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute('formenctype')) !== null && _submitter$getAttribu2 !== void 0 ? _submitter$getAttribu2 : form.enctype;\n if (encType === 'multipart/form-data') {\n return encType;\n }\n return 'application/x-www-form-urlencoded';\n}\n\n/**\n * Resolves the method from the submit event\n * with respect to the submitter `formmethod` attribute.\n */\nfunction getFormMethod(event) {\n var _ref2, _submitter$getAttribu3;\n var form = event.target;\n var submitter = event.submitter;\n var method = (_ref2 = (_submitter$getAttribu3 = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute('formmethod')) !== null && _submitter$getAttribu3 !== void 0 ? _submitter$getAttribu3 : form.getAttribute('method')) === null || _ref2 === void 0 ? void 0 : _ref2.toUpperCase();\n switch (method) {\n case 'POST':\n case 'PUT':\n case 'PATCH':\n case 'DELETE':\n return method;\n }\n return 'GET';\n}\n\n/**\n * Trigger a form submit event with an optional submitter.\n * If the submitter is not mounted, it will be appended to the form and removed after submission.\n */\nfunction requestSubmit(form, submitter) {\n invariant(!!form, 'Failed to submit the form. The element provided is null or undefined.');\n if (typeof form.requestSubmit === 'function') {\n form.requestSubmit(submitter);\n } else {\n var event = new SubmitEvent('submit', {\n bubbles: true,\n cancelable: true,\n submitter\n });\n form.dispatchEvent(event);\n }\n}\n\nexport { getFormAction, getFormEncType, getFormMethod, isFieldElement, isFormControl, requestSubmit };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { formatName, setValue, isPlainObject, getValue, normalize, flatten, isPrefix } from './formdata.mjs';\nimport { invariant } from './util.mjs';\n\n/**\n * The name to be used when submitting a form control\n */\nvar INTENT = '__intent__';\n\n/**\n * The name to be used when submitting a state\n */\nvar STATE = '__state__';\nfunction getSubmissionContext(body) {\n var intent = body.get(INTENT);\n var state = body.get(STATE);\n invariant((typeof intent === 'string' || intent === null) && (typeof state === 'string' || state === null), \"The input name \\\"\".concat(INTENT, \"\\\" and \\\"\").concat(STATE, \"\\\" are reserved by Conform. Please use another name for your input.\"));\n var context = {\n payload: {},\n fields: new Set(),\n intent: getIntent(intent)\n };\n if (state) {\n context.state = JSON.parse(state);\n }\n var _loop = function _loop(next) {\n if (name === INTENT || name === STATE) {\n return 1; // continue\n }\n context.fields.add(name);\n setValue(context.payload, name, prev => {\n if (!prev) {\n return next;\n } else if (Array.isArray(prev)) {\n return prev.concat(next);\n } else {\n return [prev, next];\n }\n });\n };\n for (var [name, next] of body.entries()) {\n if (_loop(next)) continue;\n }\n return context;\n}\nfunction parse(payload, options) {\n var context = getSubmissionContext(payload);\n var intent = context.intent;\n if (intent) {\n switch (intent.type) {\n case 'update':\n {\n var name = formatName(intent.payload.name, intent.payload.index);\n var _value = intent.payload.value;\n if (typeof intent.payload.value !== 'undefined') {\n if (name) {\n setValue(context.payload, name, () => _value);\n } else {\n context.payload = _value;\n }\n }\n break;\n }\n case 'reset':\n {\n var _name = formatName(intent.payload.name, intent.payload.index);\n if (_name) {\n setValue(context.payload, _name, () => undefined);\n } else {\n context.payload = {};\n }\n break;\n }\n case 'insert':\n case 'remove':\n case 'reorder':\n {\n setListValue(context.payload, intent);\n break;\n }\n }\n }\n var result = options.resolve(context.payload, intent);\n var mergeResolveResult = resolved => createSubmission(_objectSpread2(_objectSpread2({}, context), {}, {\n value: resolved.value,\n error: resolved.error\n }));\n if (result instanceof Promise) {\n return result.then(mergeResolveResult);\n }\n return mergeResolveResult(result);\n}\nfunction createSubmission(context) {\n if (context.intent || !context.value || context.error) {\n return {\n status: !context.intent ? 'error' : undefined,\n payload: context.payload,\n error: typeof context.error !== 'undefined' ? context.error : {},\n reply(options) {\n return replySubmission(context, options);\n }\n };\n }\n return {\n status: 'success',\n payload: context.payload,\n value: context.value,\n reply(options) {\n return replySubmission(context, options);\n }\n };\n}\nfunction replySubmission(context) {\n var _context$intent, _context$intent$paylo, _options$formErrors, _normalize;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if ('resetForm' in options && options.resetForm || ((_context$intent = context.intent) === null || _context$intent === void 0 ? void 0 : _context$intent.type) === 'reset' && ((_context$intent$paylo = context.intent.payload.name) !== null && _context$intent$paylo !== void 0 ? _context$intent$paylo : '') === '') {\n return {\n initialValue: null\n };\n }\n if ('hideFields' in options && options.hideFields) {\n for (var name of options.hideFields) {\n var _value2 = getValue(context.payload, name);\n if (typeof _value2 !== 'undefined') {\n setValue(context.payload, name, () => undefined);\n }\n }\n }\n var extraError = 'formErrors' in options || 'fieldErrors' in options ? normalize(_objectSpread2({\n '': (_options$formErrors = options.formErrors) !== null && _options$formErrors !== void 0 ? _options$formErrors : null\n }, options.fieldErrors)) : null;\n var error = context.error || extraError ? _objectSpread2(_objectSpread2({}, context.error), extraError) : undefined;\n return {\n status: context.intent ? undefined : error ? 'error' : 'success',\n intent: context.intent ? context.intent : undefined,\n initialValue: (_normalize = normalize(context.payload,\n // We can't serialize the file and send it back from the server, but we can preserve it in the client\n typeof document !== 'undefined')) !== null && _normalize !== void 0 ? _normalize : {},\n error,\n state: context.state,\n fields: Array.from(context.fields)\n };\n}\nfunction getIntent(serializedIntent) {\n if (!serializedIntent) {\n return null;\n }\n var control = JSON.parse(serializedIntent);\n if (typeof control.type !== 'string' || typeof control.payload === 'undefined') {\n throw new Error('Unknown form control intent');\n }\n return control;\n}\nfunction serializeIntent(intent) {\n switch (intent.type) {\n case 'insert':\n return JSON.stringify({\n type: intent.type,\n payload: _objectSpread2(_objectSpread2({}, intent.payload), {}, {\n defaultValue: serialize(intent.payload.defaultValue)\n })\n });\n case 'update':\n return JSON.stringify({\n type: intent.type,\n payload: _objectSpread2(_objectSpread2({}, intent.payload), {}, {\n value: serialize(intent.payload.value)\n })\n });\n default:\n return JSON.stringify(intent);\n }\n}\nfunction updateList(list, intent) {\n var _intent$payload$index;\n invariant(Array.isArray(list), \"Failed to update list. The value is not an array.\");\n switch (intent.type) {\n case 'insert':\n list.splice((_intent$payload$index = intent.payload.index) !== null && _intent$payload$index !== void 0 ? _intent$payload$index : list.length, 0, intent.payload.defaultValue);\n break;\n case 'remove':\n list.splice(intent.payload.index, 1);\n break;\n case 'reorder':\n list.splice(intent.payload.to, 0, ...list.splice(intent.payload.from, 1));\n break;\n default:\n throw new Error('Unknown list intent received');\n }\n}\nfunction setListValue(data, intent) {\n setValue(data, intent.payload.name, value => {\n var list = value !== null && value !== void 0 ? value : [];\n updateList(list, intent);\n return list;\n });\n}\n\n/**\n * A placeholder symbol for the root value of a nested object\n */\nvar root = Symbol.for('root');\nfunction setState(state, name, valueFn) {\n // The keys are sorted in desc so that the root value is handled last\n var keys = Object.keys(state).sort((prev, next) => next.localeCompare(prev));\n var target = {};\n var _loop2 = function _loop2() {\n var value = state[key];\n if (isPrefix(key, name) && key !== name) {\n setValue(target, key, currentValue => {\n if (typeof currentValue === 'undefined') {\n return value;\n }\n\n // As the key should be unique, if currentValue is already defined,\n // it must be either an object or an array\n\n // @ts-expect-error\n currentValue[root] = value;\n return currentValue;\n });\n\n // Remove the value from the data\n delete state[key];\n }\n };\n for (var key of keys) {\n _loop2();\n }\n var result = valueFn(getValue(target, name));\n Object.assign(state, flatten(result, {\n resolve(data) {\n if (isPlainObject(data) || Array.isArray(data)) {\n var _data$root;\n // @ts-expect-error\n return (_data$root = data[root]) !== null && _data$root !== void 0 ? _data$root : null;\n }\n return data;\n },\n prefix: name\n }));\n}\nfunction setListState(state, intent, getDefaultValue) {\n setState(state, intent.payload.name, value => {\n var list = value !== null && value !== void 0 ? value : [];\n switch (intent.type) {\n case 'insert':\n updateList(list, {\n type: intent.type,\n payload: _objectSpread2(_objectSpread2({}, intent.payload), {}, {\n defaultValue: getDefaultValue === null || getDefaultValue === void 0 ? void 0 : getDefaultValue(intent.payload.defaultValue)\n })\n });\n break;\n default:\n updateList(list, intent);\n break;\n }\n return list;\n });\n}\nfunction serialize(defaultValue) {\n if (isPlainObject(defaultValue)) {\n // @ts-expect-error FIXME\n return Object.entries(defaultValue).reduce((result, _ref) => {\n var [key, value] = _ref;\n result[key] = serialize(value);\n return result;\n }, {});\n } else if (Array.isArray(defaultValue)) {\n // @ts-expect-error FIXME\n return defaultValue.map(serialize);\n } else if (defaultValue instanceof Date) {\n // @ts-expect-error FIXME\n return defaultValue.toISOString();\n } else if (typeof defaultValue === 'boolean') {\n // @ts-expect-error FIXME\n return defaultValue ? 'on' : undefined;\n } else if (typeof defaultValue === 'number' || typeof defaultValue === 'bigint') {\n // @ts-expect-error FIXME\n return defaultValue.toString();\n } else {\n // @ts-expect-error FIXME\n return defaultValue !== null && defaultValue !== void 0 ? defaultValue : undefined;\n }\n}\n\nexport { INTENT, STATE, createSubmission, getIntent, getSubmissionContext, parse, replySubmission, root, serialize, serializeIntent, setListState, setListValue, setState, updateList };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { flatten, formatName, getValue, isPlainObject, isPrefix, setValue, normalize, getFormData, getPaths, formatPaths } from './formdata.mjs';\nimport { getFormAction, getFormEncType, getFormMethod, isFieldElement, requestSubmit } from './dom.mjs';\nimport { generateId, clone, invariant } from './util.mjs';\nimport { serialize, setListState, setListValue, setState, INTENT, serializeIntent, root, getSubmissionContext } from './submission.mjs';\n\nfunction createFormMeta(options, initialized) {\n var _lastResult$initialVa, _options$constraint, _lastResult$state$val, _lastResult$state, _ref;\n var lastResult = !initialized ? options.lastResult : undefined;\n var defaultValue = options.defaultValue ? serialize(options.defaultValue) : {};\n var initialValue = (_lastResult$initialVa = lastResult === null || lastResult === void 0 ? void 0 : lastResult.initialValue) !== null && _lastResult$initialVa !== void 0 ? _lastResult$initialVa : defaultValue;\n var result = {\n formId: options.formId,\n isValueUpdated: false,\n submissionStatus: lastResult === null || lastResult === void 0 ? void 0 : lastResult.status,\n defaultValue,\n initialValue,\n value: initialValue,\n constraint: (_options$constraint = options.constraint) !== null && _options$constraint !== void 0 ? _options$constraint : {},\n validated: (_lastResult$state$val = lastResult === null || lastResult === void 0 || (_lastResult$state = lastResult.state) === null || _lastResult$state === void 0 ? void 0 : _lastResult$state.validated) !== null && _lastResult$state$val !== void 0 ? _lastResult$state$val : {},\n key: !initialized ? getDefaultKey(defaultValue) : _objectSpread2({\n '': generateId()\n }, getDefaultKey(defaultValue)),\n // The `lastResult` should comes from the server which we won't expect the error to be null\n // We can consider adding a warning if it happens\n error: (_ref = lastResult === null || lastResult === void 0 ? void 0 : lastResult.error) !== null && _ref !== void 0 ? _ref : {}\n };\n handleIntent(result, lastResult === null || lastResult === void 0 ? void 0 : lastResult.intent, lastResult === null || lastResult === void 0 ? void 0 : lastResult.fields);\n return result;\n}\nfunction getDefaultKey(defaultValue, prefix) {\n return Object.entries(flatten(defaultValue, {\n prefix\n })).reduce((result, _ref2) => {\n var [key, value] = _ref2;\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n result[formatName(key, i)] = generateId();\n }\n }\n return result;\n }, {});\n}\nfunction setFieldsValidated(meta, fields) {\n for (var _name of Object.keys(meta.error).concat(fields !== null && fields !== void 0 ? fields : [])) {\n meta.validated[_name] = true;\n }\n}\nfunction handleIntent(meta, intent, fields, initialized) {\n var _fields$filter;\n if (!intent) {\n setFieldsValidated(meta, fields);\n return;\n }\n switch (intent.type) {\n case 'validate':\n {\n if (intent.payload.name) {\n meta.validated[intent.payload.name] = true;\n } else {\n setFieldsValidated(meta, fields);\n }\n break;\n }\n case 'update':\n {\n var {\n validated,\n value\n } = intent.payload;\n var _name2 = formatName(intent.payload.name, intent.payload.index);\n if (typeof value !== 'undefined') {\n updateValue(meta, _name2 !== null && _name2 !== void 0 ? _name2 : '', value);\n }\n if (typeof validated !== 'undefined') {\n // Clean up previous validated state\n if (_name2) {\n setState(meta.validated, _name2, () => undefined);\n } else {\n meta.validated = {};\n }\n if (validated) {\n if (isPlainObject(value) || Array.isArray(value)) {\n Object.assign(meta.validated, flatten(value, {\n resolve() {\n return true;\n },\n prefix: _name2\n }));\n }\n meta.validated[_name2 !== null && _name2 !== void 0 ? _name2 : ''] = true;\n } else if (_name2) {\n delete meta.validated[_name2];\n }\n }\n break;\n }\n case 'reset':\n {\n var _name3 = formatName(intent.payload.name, intent.payload.index);\n var _value = getValue(meta.defaultValue, _name3);\n updateValue(meta, _name3, _value);\n if (_name3) {\n setState(meta.validated, _name3, () => undefined);\n delete meta.validated[_name3];\n } else {\n meta.validated = {};\n }\n break;\n }\n case 'insert':\n case 'remove':\n case 'reorder':\n {\n if (initialized) {\n meta.initialValue = clone(meta.initialValue);\n meta.key = clone(meta.key);\n setListState(meta.key, intent, defaultValue => {\n if (!Array.isArray(defaultValue) && !isPlainObject(defaultValue)) {\n return generateId();\n }\n return Object.assign(getDefaultKey(defaultValue), {\n [root]: generateId()\n });\n });\n setListValue(meta.initialValue, intent);\n }\n setListState(meta.validated, intent);\n meta.validated[intent.payload.name] = true;\n break;\n }\n }\n var validatedFields = (_fields$filter = fields === null || fields === void 0 ? void 0 : fields.filter(name => meta.validated[name])) !== null && _fields$filter !== void 0 ? _fields$filter : [];\n meta.error = Object.entries(meta.error).reduce((result, _ref3) => {\n var [name, error] = _ref3;\n if (meta.validated[name] || validatedFields.some(field => isPrefix(name, field))) {\n result[name] = error;\n }\n return result;\n }, {});\n}\nfunction updateValue(meta, name, value) {\n if (name === '') {\n meta.initialValue = value;\n meta.value = value;\n meta.key = _objectSpread2(_objectSpread2({}, getDefaultKey(value)), {}, {\n '': generateId()\n });\n return;\n }\n meta.initialValue = clone(meta.initialValue);\n meta.value = clone(meta.value);\n meta.key = clone(meta.key);\n setValue(meta.initialValue, name, () => value);\n setValue(meta.value, name, () => value);\n if (isPlainObject(value) || Array.isArray(value)) {\n setState(meta.key, name, () => undefined);\n Object.assign(meta.key, getDefaultKey(value, name));\n }\n meta.key[name] = generateId();\n}\nfunction createStateProxy(fn) {\n var cache = {};\n return new Proxy(cache, {\n get(_, name, receiver) {\n var _cache$name;\n if (typeof name !== 'string') {\n return;\n }\n return (_cache$name = cache[name]) !== null && _cache$name !== void 0 ? _cache$name : cache[name] = fn(name, receiver);\n }\n });\n}\nfunction createValueProxy(value) {\n var val = normalize(value);\n return createStateProxy((name, proxy) => {\n if (name === '') {\n return val;\n }\n var paths = getPaths(name);\n var basename = formatPaths(paths.slice(0, -1));\n var key = formatPaths(paths.slice(-1));\n var parentValue = proxy[basename];\n return getValue(parentValue, key);\n });\n}\nfunction createConstraintProxy(constraint) {\n return createStateProxy((name, proxy) => {\n var _result;\n var result = constraint[name];\n if (!result) {\n var paths = getPaths(name);\n for (var i = paths.length - 1; i >= 0; i--) {\n var path = paths[i];\n if (typeof path === 'number' && !Number.isNaN(path)) {\n paths[i] = Number.NaN;\n break;\n }\n }\n var alternative = formatPaths(paths);\n if (name !== alternative) {\n result = proxy[alternative];\n }\n }\n return (_result = result) !== null && _result !== void 0 ? _result : {};\n });\n}\nfunction createKeyProxy(key) {\n return createStateProxy((name, proxy) => {\n var currentKey = key[name];\n var paths = getPaths(name);\n if (paths.length === 0) {\n return currentKey;\n }\n var parentKey = proxy[formatPaths(paths.slice(0, -1))];\n if (typeof parentKey === 'undefined') {\n return currentKey;\n }\n return \"\".concat(parentKey, \"/\").concat(currentKey !== null && currentKey !== void 0 ? currentKey : paths.at(-1));\n });\n}\nfunction createValidProxy(error) {\n return createStateProxy(name => {\n var keys = Object.keys(error);\n if (name === '') {\n return keys.length === 0;\n }\n for (var key of keys) {\n if (isPrefix(key, name) && typeof error[key] !== 'undefined') {\n return false;\n }\n }\n return true;\n });\n}\nfunction createDirtyProxy(defaultValue, value, shouldDirtyConsider) {\n return createStateProxy(name => JSON.stringify(defaultValue[name]) !== JSON.stringify(value[name], (key, value) => {\n if (name === '' && key === '' && value) {\n return Object.entries(value).reduce((result, _ref4) => {\n var [name, value] = _ref4;\n if (!shouldDirtyConsider(name)) {\n return result;\n }\n return Object.assign(result !== null && result !== void 0 ? result : {}, {\n [name]: value\n });\n }, undefined);\n }\n return value;\n }));\n}\nfunction shouldNotify(prev, next, cache, scope) {\n var compareFn = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : (prev, next) => JSON.stringify(prev) !== JSON.stringify(next);\n if (scope && prev !== next) {\n var _scope$prefix, _scope$name;\n var prefixes = (_scope$prefix = scope.prefix) !== null && _scope$prefix !== void 0 ? _scope$prefix : [];\n var names = (_scope$name = scope.name) !== null && _scope$name !== void 0 ? _scope$name : [];\n var list = prefixes.length === 0 ? names : Array.from(new Set([...Object.keys(prev), ...Object.keys(next)]));\n var _loop = function _loop(_name4) {\n if (prefixes.length === 0 || names.includes(_name4) || prefixes.some(prefix => isPrefix(_name4, prefix))) {\n var _cache$_name;\n (_cache$_name = cache[_name4]) !== null && _cache$_name !== void 0 ? _cache$_name : cache[_name4] = compareFn(prev[_name4], next[_name4]);\n if (cache[_name4]) {\n return {\n v: true\n };\n }\n }\n },\n _ret;\n for (var _name4 of list) {\n _ret = _loop(_name4);\n if (_ret) return _ret.v;\n }\n }\n return false;\n}\nfunction createFormContext(options) {\n var subscribers = [];\n var latestOptions = options;\n var meta = createFormMeta(options);\n var state = createFormState(meta);\n function getFormElement() {\n return document.forms.namedItem(latestOptions.formId);\n }\n function createFormState(next) {\n var prev = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : next;\n var state = arguments.length > 2 ? arguments[2] : undefined;\n var defaultValue = !state || prev.defaultValue !== next.defaultValue ? createValueProxy(next.defaultValue) : state.defaultValue;\n var initialValue = next.initialValue === next.defaultValue ? defaultValue : !state || prev.initialValue !== next.initialValue ? createValueProxy(next.initialValue) : state.initialValue;\n var value = next.value === next.initialValue ? initialValue : !state || prev.value !== next.value ? createValueProxy(next.value) : state.value;\n return {\n submissionStatus: next.submissionStatus,\n defaultValue,\n initialValue,\n value,\n error: !state || prev.error !== next.error ? next.error : state.error,\n validated: next.validated,\n constraint: !state || prev.constraint !== next.constraint ? createConstraintProxy(next.constraint) : state.constraint,\n key: !state || prev.key !== next.key ? createKeyProxy(next.key) : state.key,\n valid: !state || prev.error !== next.error ? createValidProxy(next.error) : state.valid,\n dirty: !state || prev.defaultValue !== next.defaultValue || prev.value !== next.value ? createDirtyProxy(defaultValue, value, key => {\n var _latestOptions$should, _latestOptions$should2;\n return (_latestOptions$should = (_latestOptions$should2 = latestOptions.shouldDirtyConsider) === null || _latestOptions$should2 === void 0 ? void 0 : _latestOptions$should2.call(latestOptions, key)) !== null && _latestOptions$should !== void 0 ? _latestOptions$should : true;\n }) : state.dirty\n };\n }\n function updateFormMeta(nextMeta) {\n var prevMeta = meta;\n var prevState = state;\n var nextState = createFormState(nextMeta, prevMeta, prevState);\n\n // Apply change before notifying subscribers\n meta = nextMeta;\n state = nextState;\n var cache = {\n value: {},\n error: {},\n initialValue: {},\n key: {},\n valid: {},\n dirty: {}\n };\n for (var subscriber of subscribers) {\n var _subscriber$getSubjec;\n var subject = (_subscriber$getSubjec = subscriber.getSubject) === null || _subscriber$getSubjec === void 0 ? void 0 : _subscriber$getSubjec.call(subscriber);\n if (!subject || subject.formId && prevMeta.formId !== nextMeta.formId || subject.status && prevState.submissionStatus !== nextState.submissionStatus || shouldNotify(prevState.error, nextState.error, cache.error, subject.error) || shouldNotify(prevState.initialValue, nextState.initialValue, cache.initialValue, subject.initialValue) || shouldNotify(prevState.key, nextState.key, cache.key, subject.key, (prev, next) => prev !== next) || shouldNotify(prevState.valid, nextState.valid, cache.valid, subject.valid, compareBoolean) || shouldNotify(prevState.dirty, nextState.dirty, cache.dirty, subject.dirty, compareBoolean) || shouldNotify(prevState.value, nextState.value, cache.value, subject.value)) {\n subscriber.callback();\n }\n }\n }\n function compareBoolean() {\n var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return prev !== next;\n }\n function getSerializedState() {\n return JSON.stringify({\n validated: meta.validated\n });\n }\n function submit(event) {\n var form = event.target;\n var submitter = event.submitter;\n invariant(form === getFormElement(), \"The submit event is dispatched by form#\".concat(form.id, \" instead of form#\").concat(latestOptions.formId));\n var formData = getFormData(form, submitter);\n var result = {\n formData,\n action: getFormAction(event),\n encType: getFormEncType(event),\n method: getFormMethod(event)\n };\n if (typeof (latestOptions === null || latestOptions === void 0 ? void 0 : latestOptions.onValidate) === 'undefined') {\n return result;\n }\n var submission = latestOptions.onValidate({\n form,\n formData,\n submitter\n });\n if (submission.status === 'success' || submission.error !== null) {\n var _result2 = submission.reply();\n report(_objectSpread2(_objectSpread2({}, _result2), {}, {\n status: _result2.status !== 'success' ? _result2.status : undefined\n }));\n }\n return _objectSpread2(_objectSpread2({}, result), {}, {\n submission\n });\n }\n function resolveTarget(event) {\n var form = getFormElement();\n var element = event.target;\n if (!form || !isFieldElement(element) || element.form !== form || !element.form.isConnected || element.name === '') {\n return null;\n }\n return element;\n }\n function willValidate(element, eventName) {\n var {\n shouldValidate = 'onSubmit',\n shouldRevalidate = shouldValidate\n } = latestOptions;\n var validated = meta.validated[element.name];\n return validated ? shouldRevalidate === eventName && (eventName === 'onInput' || meta.isValueUpdated) : shouldValidate === eventName;\n }\n function updateFormValue(form) {\n var formData = new FormData(form);\n var result = getSubmissionContext(formData);\n updateFormMeta(_objectSpread2(_objectSpread2({}, meta), {}, {\n isValueUpdated: true,\n value: result.payload\n }));\n }\n function onInput(event) {\n var element = resolveTarget(event);\n if (!element || !element.form) {\n return;\n }\n if (event.defaultPrevented || !willValidate(element, 'onInput')) {\n updateFormValue(element.form);\n } else {\n dispatch({\n type: 'validate',\n payload: {\n name: element.name\n }\n });\n }\n }\n function onBlur(event) {\n var element = resolveTarget(event);\n if (!element || event.defaultPrevented || !willValidate(element, 'onBlur')) {\n return;\n }\n dispatch({\n type: 'validate',\n payload: {\n name: element.name\n }\n });\n }\n function reset() {\n updateFormMeta(createFormMeta(latestOptions, true));\n }\n function onReset(event) {\n var element = getFormElement();\n if (event.type !== 'reset' || event.target !== element || event.defaultPrevented) {\n return;\n }\n reset();\n }\n function report(result) {\n var _result$error, _result$state;\n var formElement = getFormElement();\n if (!result.initialValue) {\n reset();\n return;\n }\n var error = Object.entries((_result$error = result.error) !== null && _result$error !== void 0 ? _result$error : {}).reduce((result, _ref5) => {\n var [name, newError] = _ref5;\n var error = newError === null ? meta.error[name] : newError;\n if (error) {\n result[name] = error;\n }\n return result;\n }, {});\n var update = _objectSpread2(_objectSpread2({}, meta), {}, {\n isValueUpdated: false,\n submissionStatus: result.status,\n value: result.initialValue,\n validated: _objectSpread2(_objectSpread2({}, meta.validated), (_result$state = result.state) === null || _result$state === void 0 ? void 0 : _result$state.validated),\n error\n });\n handleIntent(update, result.intent, result.fields, true);\n updateFormMeta(update);\n if (formElement && result.status === 'error') {\n for (var element of formElement.elements) {\n if (isFieldElement(element) && meta.error[element.name]) {\n element.focus();\n break;\n }\n }\n }\n }\n function onUpdate(options) {\n var currentFormId = latestOptions.formId;\n var currentResult = latestOptions.lastResult;\n\n // Merge new options with the latest options\n Object.assign(latestOptions, options);\n if (latestOptions.formId !== currentFormId) {\n reset();\n } else if (options.lastResult && options.lastResult !== currentResult) {\n report(options.lastResult);\n }\n }\n function subscribe(callback, getSubject) {\n var subscriber = {\n callback,\n getSubject\n };\n subscribers.push(subscriber);\n return () => {\n subscribers = subscribers.filter(current => current !== subscriber);\n };\n }\n function getState() {\n return state;\n }\n function dispatch(intent) {\n var form = getFormElement();\n var submitter = document.createElement('button');\n var buttonProps = getControlButtonProps(intent);\n submitter.name = buttonProps.name;\n submitter.value = buttonProps.value;\n submitter.hidden = true;\n submitter.formNoValidate = true;\n form === null || form === void 0 || form.appendChild(submitter);\n requestSubmit(form, submitter);\n form === null || form === void 0 || form.removeChild(submitter);\n }\n function getControlButtonProps(intent) {\n return {\n name: INTENT,\n value: serializeIntent(intent),\n form: latestOptions.formId,\n formNoValidate: true\n };\n }\n function createFormControl(type) {\n var control = function control() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return dispatch({\n type,\n payload\n });\n };\n return Object.assign(control, {\n getButtonProps() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return getControlButtonProps({\n type,\n payload\n });\n }\n });\n }\n function observe() {\n var observer = new MutationObserver(mutations => {\n var form = getFormElement();\n if (!form) {\n return;\n }\n for (var mutation of mutations) {\n var nodes = mutation.type === 'childList' ? [...mutation.addedNodes, ...mutation.removedNodes] : [mutation.target];\n for (var node of nodes) {\n var element = isFieldElement(node) ? node : node instanceof HTMLElement ? node.querySelector('input,select,textarea') : null;\n if ((element === null || element === void 0 ? void 0 : element.form) === form) {\n updateFormValue(form);\n return;\n }\n }\n }\n });\n observer.observe(document, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: ['form', 'name']\n });\n return () => {\n observer.disconnect();\n };\n }\n return {\n getFormId() {\n return meta.formId;\n },\n submit,\n onReset,\n onInput,\n onBlur,\n onUpdate,\n validate: createFormControl('validate'),\n reset: createFormControl('reset'),\n update: createFormControl('update'),\n insert: createFormControl('insert'),\n remove: createFormControl('remove'),\n reorder: createFormControl('reorder'),\n subscribe,\n getState,\n getSerializedState,\n observe\n };\n}\n\nexport { createFormContext };\n","function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nexport { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { STATE, formatPaths, getPaths, unstable_createFormContext, INTENT, isPrefix } from '@conform-to/dom';\nimport { useContext, useMemo, createContext, useCallback, useSyncExternalStore, useRef } from 'react';\nimport { jsx } from 'react/jsx-runtime';\n\nvar Form = /*#__PURE__*/createContext([]);\n\n// To hide the FormContext type from the public API\nvar wrappedSymbol = Symbol('wrapped');\nfunction getWrappedFormContext(context) {\n return context[wrappedSymbol];\n}\nfunction useFormContext(formId) {\n var contexts = useContext(Form);\n var form = formId ? contexts.find(context => formId === context.getFormId()) : contexts[0];\n if (!form) {\n throw new Error('Form context is not available');\n }\n return form;\n}\nfunction useFormState(form, subjectRef) {\n var subscribe = useCallback(callback => form.subscribe(callback, () => subjectRef === null || subjectRef === void 0 ? void 0 : subjectRef.current), [form, subjectRef]);\n return useSyncExternalStore(subscribe, form.getState, form.getState);\n}\nfunction FormProvider(props) {\n var forms = useContext(Form);\n var context = getWrappedFormContext(props.context);\n var value = useMemo(() => [context].concat(forms),\n // Put the latest form context first\n [forms, context]);\n return /*#__PURE__*/jsx(Form.Provider, {\n value: value,\n children: props.children\n });\n}\nfunction FormStateInput(props) {\n var context = useFormContext(props.formId);\n return /*#__PURE__*/jsx(\"input\", {\n type: \"hidden\",\n name: STATE,\n value: context.getSerializedState(),\n form: props.formId\n });\n}\nfunction useSubjectRef() {\n var initialSubject = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var subjectRef = useRef(initialSubject);\n\n // Reset the subject everytime the component is rerendered\n // This let us subscribe to data used in the last render only\n subjectRef.current = initialSubject;\n return subjectRef;\n}\nfunction updateSubjectRef(ref, subject, scope, name) {\n if (subject === 'status' || subject === 'formId') {\n ref.current[subject] = true;\n } else if (typeof scope !== 'undefined' && typeof name !== 'undefined') {\n var _ref$current$subject$, _ref$current$subject;\n ref.current[subject] = _objectSpread2(_objectSpread2({}, ref.current[subject]), {}, {\n [scope]: ((_ref$current$subject$ = (_ref$current$subject = ref.current[subject]) === null || _ref$current$subject === void 0 ? void 0 : _ref$current$subject[scope]) !== null && _ref$current$subject$ !== void 0 ? _ref$current$subject$ : []).concat(name)\n });\n }\n}\nfunction getMetadata(context, subjectRef, stateSnapshot) {\n var name = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var id = name ? \"\".concat(context.getFormId(), \"-\").concat(name) : context.getFormId();\n var state = context.getState();\n return new Proxy({\n id,\n name,\n errorId: \"\".concat(id, \"-error\"),\n descriptionId: \"\".concat(id, \"-description\"),\n get initialValue() {\n return state.initialValue[name];\n },\n get value() {\n return state.value[name];\n },\n get errors() {\n return state.error[name];\n },\n get key() {\n return state.key[name];\n },\n get valid() {\n return state.valid[name];\n },\n get dirty() {\n return state.dirty[name];\n },\n get allErrors() {\n if (name === '') {\n return state.error;\n }\n var result = {};\n for (var [key, error] of Object.entries(state.error)) {\n if (isPrefix(key, name)) {\n result[key] = error;\n }\n }\n return result;\n },\n get getFieldset() {\n return () => new Proxy({}, {\n get(target, key, receiver) {\n if (typeof key === 'string') {\n return getFieldMetadata(context, subjectRef, stateSnapshot, name, key);\n }\n return Reflect.get(target, key, receiver);\n }\n });\n }\n }, {\n get(target, key, receiver) {\n // We want to minize re-render by identifying whether the field is used in a callback only\n // but there is no clear way to know if it is accessed during render or not\n // if the stateSnapshot is not the latest, then it must be accessed in a callback\n if (state === stateSnapshot) {\n switch (key) {\n case 'id':\n case 'errorId':\n case 'descriptionId':\n updateSubjectRef(subjectRef, 'formId');\n break;\n case 'key':\n case 'initialValue':\n case 'value':\n case 'valid':\n case 'dirty':\n updateSubjectRef(subjectRef, key, 'name', name);\n break;\n case 'errors':\n case 'allErrors':\n updateSubjectRef(subjectRef, 'error', key === 'errors' ? 'name' : 'prefix', name);\n break;\n }\n }\n return Reflect.get(target, key, receiver);\n }\n });\n}\nfunction getFieldMetadata(context, subjectRef, stateSnapshot) {\n var prefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var key = arguments.length > 4 ? arguments[4] : undefined;\n var name = typeof key === 'undefined' ? prefix : formatPaths([...getPaths(prefix), key]);\n return new Proxy({}, {\n get(_, key, receiver) {\n var _state$constraint$nam;\n var metadata = getMetadata(context, subjectRef, stateSnapshot, name);\n var state = context.getState();\n switch (key) {\n case 'formId':\n if (state === stateSnapshot) {\n updateSubjectRef(subjectRef, 'formId');\n }\n return context.getFormId();\n case 'required':\n case 'minLength':\n case 'maxLength':\n case 'min':\n case 'max':\n case 'pattern':\n case 'step':\n case 'multiple':\n return (_state$constraint$nam = state.constraint[name]) === null || _state$constraint$nam === void 0 ? void 0 : _state$constraint$nam[key];\n case 'getFieldList':\n {\n return () => {\n var _state$initialValue$n;\n var initialValue = (_state$initialValue$n = state.initialValue[name]) !== null && _state$initialValue$n !== void 0 ? _state$initialValue$n : [];\n if (state === stateSnapshot) {\n updateSubjectRef(subjectRef, 'initialValue', 'name', name);\n }\n if (!Array.isArray(initialValue)) {\n throw new Error('The initial value at the given name is not a list');\n }\n return Array(initialValue.length).fill(0).map((_, index) => getFieldMetadata(context, subjectRef, stateSnapshot, name, index));\n };\n }\n }\n return Reflect.get(metadata, key, receiver);\n }\n });\n}\nfunction getFormMetadata(context, subjectRef, stateSnapshot, noValidate) {\n return new Proxy({}, {\n get(_, key, receiver) {\n var metadata = getMetadata(context, subjectRef, stateSnapshot);\n var state = context.getState();\n switch (key) {\n case 'context':\n return {\n [wrappedSymbol]: context\n };\n case 'status':\n if (state === stateSnapshot) {\n updateSubjectRef(subjectRef, 'status');\n }\n return state.submissionStatus;\n case 'validate':\n case 'update':\n case 'reset':\n case 'insert':\n case 'remove':\n case 'reorder':\n return context[key];\n case 'onSubmit':\n return context.submit;\n case 'noValidate':\n return noValidate;\n }\n return Reflect.get(metadata, key, receiver);\n }\n });\n}\nfunction createFormContext(options) {\n var {\n onSubmit\n } = options;\n var context = unstable_createFormContext(options);\n return _objectSpread2(_objectSpread2({}, context), {}, {\n submit(event) {\n var submitEvent = event.nativeEvent;\n var result = context.submit(submitEvent);\n if (!result.submission || result.submission.status === 'success' || result.submission.error === null) {\n if (!result.formData.has(INTENT)) {\n var _onSubmit;\n (_onSubmit = onSubmit) === null || _onSubmit === void 0 || _onSubmit(event, result);\n }\n } else {\n event.preventDefault();\n }\n },\n onUpdate(options) {\n onSubmit = options.onSubmit;\n context.onUpdate(options);\n }\n });\n}\n\nexport { Form, FormProvider, FormStateInput, createFormContext, getFieldMetadata, getFormMetadata, getMetadata, getWrappedFormContext, updateSubjectRef, useFormContext, useFormState, useSubjectRef };\n","import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { useState, useEffect, useLayoutEffect, useId } from 'react';\nimport { createFormContext, useSubjectRef, useFormState, getFormMetadata, useFormContext, getFieldMetadata } from './context.mjs';\n\nvar _excluded = [\"id\"];\n\n/**\n * useLayoutEffect is client-only.\n * This basically makes it a no-op on server\n */\nvar useSafeLayoutEffect = typeof document === 'undefined' ? useEffect : useLayoutEffect;\nfunction useFormId(preferredId) {\n var id = useId();\n return preferredId !== null && preferredId !== void 0 ? preferredId : id;\n}\nfunction useNoValidate() {\n var defaultNoValidate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var [noValidate, setNoValidate] = useState(defaultNoValidate);\n useSafeLayoutEffect(() => {\n // This is necessary to fix an issue in strict mode with related to our proxy setup\n // It avoids the component from being rerendered without re-rendering the child\n // Which reset the proxy but failed to capture its usage within child component\n if (!noValidate) {\n setNoValidate(true);\n }\n }, [noValidate]);\n return noValidate;\n}\nfunction useForm(options) {\n var {\n id\n } = options,\n formConfig = _objectWithoutProperties(options, _excluded);\n var formId = useFormId(id);\n var [context] = useState(() => createFormContext(_objectSpread2(_objectSpread2({}, formConfig), {}, {\n formId\n })));\n useSafeLayoutEffect(() => {\n var disconnect = context.observe();\n document.addEventListener('input', context.onInput);\n document.addEventListener('focusout', context.onBlur);\n document.addEventListener('reset', context.onReset);\n return () => {\n disconnect();\n document.removeEventListener('input', context.onInput);\n document.removeEventListener('focusout', context.onBlur);\n document.removeEventListener('reset', context.onReset);\n };\n }, [context]);\n useSafeLayoutEffect(() => {\n context.onUpdate(_objectSpread2(_objectSpread2({}, formConfig), {}, {\n formId\n }));\n });\n var subjectRef = useSubjectRef();\n var stateSnapshot = useFormState(context, subjectRef);\n var noValidate = useNoValidate(options.defaultNoValidate);\n var form = getFormMetadata(context, subjectRef, stateSnapshot, noValidate);\n return [form, form.getFieldset()];\n}\nfunction useFormMetadata(formId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var subjectRef = useSubjectRef();\n var context = useFormContext(formId);\n var stateSnapshot = useFormState(context, subjectRef);\n var noValidate = useNoValidate(options.defaultNoValidate);\n return getFormMetadata(context, subjectRef, stateSnapshot, noValidate);\n}\nfunction useField(name) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var subjectRef = useSubjectRef();\n var context = useFormContext(options.formId);\n var stateSnapshot = useFormState(context, subjectRef);\n var field = getFieldMetadata(context, subjectRef, stateSnapshot, name);\n var form = getFormMetadata(context, subjectRef, stateSnapshot, false);\n return [field, form];\n}\n\nexport { useField, useForm, useFormId, useFormMetadata, useNoValidate, useSafeLayoutEffect };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\n\n/**\n * Cleanup `undefined` from the result.\n * To minimize conflicts when merging with user defined props\n */\nfunction simplify(props) {\n for (var key in props) {\n if (props[key] === undefined) {\n delete props[key];\n }\n }\n return props;\n}\n\n/**\n * Derives aria attributes of a form control based on the field metadata.\n */\nfunction getAriaAttributes(metadata) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (typeof options.ariaAttributes !== 'undefined' && !options.ariaAttributes) {\n return {};\n }\n var invalid = options.ariaInvalid === 'allErrors' ? !metadata.valid : typeof metadata.errors !== 'undefined';\n var ariaDescribedBy = options.ariaDescribedBy;\n return simplify({\n 'aria-invalid': invalid || undefined,\n 'aria-describedby': invalid ? \"\".concat(metadata.errorId, \" \").concat(ariaDescribedBy !== null && ariaDescribedBy !== void 0 ? ariaDescribedBy : '').trim() : ariaDescribedBy\n });\n}\n\n/**\n * Derives the properties of a form element based on the form metadata,\n * including `id`, `onSubmit`, `noValidate`, `aria-invalid` and `aria-describedby`.\n *\n * @example\n * ```tsx\n * <form {...getFormProps(metadata)} />\n * ```\n */\nfunction getFormProps(metadata, options) {\n return simplify(_objectSpread2({\n id: metadata.id,\n onSubmit: metadata.onSubmit,\n noValidate: metadata.noValidate\n }, getAriaAttributes(metadata, options)));\n}\n\n/**\n * Derives the properties of a fieldset element based on the field metadata,\n * including `id`, `name`, `form`, `aria-invalid` and `aria-describedby`.\n *\n * @example\n * ```tsx\n * <fieldset {...getFieldsetProps(metadata)} />\n * ```\n */\nfunction getFieldsetProps(metadata, options) {\n return simplify(_objectSpread2({\n id: metadata.id,\n name: metadata.name,\n form: metadata.formId\n }, getAriaAttributes(metadata, options)));\n}\n\n/**\n * Derives common properties of a form control based on the field metadata,\n * including `key`, `id`, `name`, `form`, `required`, `autoFocus`, `aria-invalid` and `aria-describedby`.\n */\nfunction getFormControlProps(metadata, options) {\n return simplify(_objectSpread2({\n key: metadata.key,\n required: metadata.required || undefined\n }, getFieldsetProps(metadata, options)));\n}\n\n/**\n * Derives the properties of an input element based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby`\n * and constraint attributes such as `type`, `required`, `minLength`, `maxLength`, `min`, `max`, `step`, `pattern`, `multiple`.\n * Depends on the provided options, it will also set `defaultChecked` / `checked` if it is a checkbox or radio button,\n * or otherwise `defaultValue` / `value`.\n *\n * @see https://conform.guide/api/react/getInputProps\n * @example\n * ```tsx\n * // To setup an uncontrolled input\n * <input {...getInputProps(metadata, { type: 'text' })} />\n * // To setup an uncontrolled checkbox\n * <input {...getInputProps(metadata, { type: 'checkbox' })} />\n * // To setup an input without defaultValue\n * <input {...getInputProps(metadata, { value: false })} />\n * // To setup a radio button without defaultChecked state\n * <input {...getInputProps(metadata, { type: 'radio', value: false })} />\n * ```\n */\nfunction getInputProps(metadata, options) {\n var props = _objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n type: options.type,\n minLength: metadata.minLength,\n maxLength: metadata.maxLength,\n min: metadata.min,\n max: metadata.max,\n step: metadata.step,\n pattern: metadata.pattern,\n multiple: metadata.multiple\n });\n if (typeof options.value === 'undefined' || options.value) {\n if (options.type === 'checkbox' || options.type === 'radio') {\n props.value = typeof options.value === 'string' ? options.value : 'on';\n props.defaultChecked = Array.isArray(metadata.initialValue) ? metadata.initialValue.includes(options.value) : metadata.initialValue === props.value;\n } else if (typeof metadata.initialValue === 'string') {\n props.defaultValue = metadata.initialValue;\n }\n }\n return simplify(props);\n}\n\n/**\n * Derives the properties of a select element based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby`\n * and constraint attributes such as `required` or `multiple`.\n * Depends on the provided options, it will also set `defaultValue` / `value`.\n *\n * @see https://conform.guide/api/react/getSelectProps\n * @example\n * ```tsx\n * // To setup an uncontrolled select\n * <select {...getSelectProps(metadata)} />\n * // To setup a select without defaultValue\n * <select {...getSelectProps(metadata, { value: false })} />\n * ```\n */\nfunction getSelectProps(metadata) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var props = _objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n multiple: metadata.multiple\n });\n if (typeof options.value === 'undefined' || options.value) {\n var _metadata$initialValu;\n props.defaultValue = Array.isArray(metadata.initialValue) ? metadata.initialValue.map(item => \"\".concat(item !== null && item !== void 0 ? item : '')) : (_metadata$initialValu = metadata.initialValue) === null || _metadata$initialValu === void 0 ? void 0 : _metadata$initialValu.toString();\n }\n return simplify(props);\n}\n\n/**\n * Derives the properties of a textarea element based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby`\n * and constraint attributes such as `required`, `minLength` or `maxLength`.\n * Depends on the provided options, it will also set `defaultValue` / `value`.\n *\n * @see https://conform.guide/api/react/getTextareaProps\n * @example\n * ```tsx\n * // To setup an uncontrolled textarea\n * <textarea {...getTextareaProps(metadata)} />\n * // To setup a textarea without defaultValue\n * <textarea {...getTextareaProps(metadata, { value: false })} />\n * ```\n */\nfunction getTextareaProps(metadata) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var props = _objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n minLength: metadata.minLength,\n maxLength: metadata.maxLength\n });\n if (typeof options.value === 'undefined' || options.value) {\n var _metadata$initialValu2;\n props.defaultValue = (_metadata$initialValu2 = metadata.initialValue) === null || _metadata$initialValu2 === void 0 ? void 0 : _metadata$initialValu2.toString();\n }\n return simplify(props);\n}\n\n/**\n * Derives the properties of a collection of checkboxes or radio buttons based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby` and `required`.\n *\n * @see https://conform.guide/api/react/getCollectionProps\n * @example\n * ```tsx\n * <fieldset>\n * {getCollectionProps(metadata, {\n * type: 'checkbox',\n * options: ['a', 'b', 'c']\n * }).map((props) => (\n * <div key={props.key}>\n * <label htmlFor={props.id}>{props.value}</label>\n * <input {...props} />\n * </div>\n * ))}\n * </fieldset>\n * ```\n */\nfunction getCollectionProps(metadata, options) {\n return options.options.map(value => {\n var _metadata$key;\n return simplify(_objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n key: \"\".concat((_metadata$key = metadata.key) !== null && _metadata$key !== void 0 ? _metadata$key : '').concat(value),\n id: \"\".concat(metadata.id, \"-\").concat(value),\n type: options.type,\n value,\n defaultChecked: typeof options.value === 'undefined' || options.value ? options.type === 'checkbox' && Array.isArray(metadata.initialValue) ? metadata.initialValue.includes(value) : metadata.initialValue === value : undefined,\n // The required attribute doesn't make sense for checkbox group\n // As it would require all checkboxes to be checked instead of at least one\n // It is overriden with `undefiend` so it could be cleaned up properly\n required: options.type === 'checkbox' ? undefined : metadata.required\n }));\n });\n}\n\nexport { getAriaAttributes, getCollectionProps, getFieldsetProps, getFormControlProps, getFormProps, getInputProps, getSelectProps, getTextareaProps };\n","function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nexport { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { any, ZodArray, ZodObject, ZodEffects, ZodOptional, ZodDefault, ZodCatch, ZodIntersection, ZodUnion, ZodDiscriminatedUnion, ZodTuple, ZodNullable, ZodPipeline, lazy } from 'zod';\n\n/**\n * Helpers for coercing string value\n * Modify the value only if it's a string, otherwise return the value as-is\n */\nfunction coerceString(value, transform) {\n if (typeof value !== 'string') {\n return value;\n }\n if (value === '') {\n return undefined;\n }\n if (typeof transform !== 'function') {\n return value;\n }\n return transform(value);\n}\n\n/**\n * Helpers for coercing file\n * Modify the value only if it's a file, otherwise return the value as-is\n */\nfunction coerceFile(file) {\n if (typeof File !== 'undefined' && file instanceof File && file.name === '' && file.size === 0) {\n return undefined;\n }\n return file;\n}\n\n/**\n * A file schema is usually defined as `z.instanceof(File)`\n * which is implemented based on ZodAny with `superRefine`\n * Check the `instanceOfType` function on zod for more info\n */\nfunction isFileSchema(schema) {\n if (typeof File === 'undefined') {\n return false;\n }\n return schema._def.effect.type === 'refinement' && schema.innerType()._def.typeName === 'ZodAny' && schema.safeParse(new File([], '')).success && !schema.safeParse('').success;\n}\n\n/**\n * Reconstruct the provided schema with additional preprocessing steps\n * This coerce empty values to undefined and transform strings to the correct type\n */\nfunction enableTypeCoercion(type) {\n var cache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Map();\n var result = cache.get(type);\n\n // Return the cached schema if it's already processed\n // This is to prevent infinite recursion caused by z.lazy()\n if (result) {\n return result;\n }\n var schema = type;\n var def = type._def;\n if (def.typeName === 'ZodString' || def.typeName === 'ZodLiteral' || def.typeName === 'ZodEnum' || def.typeName === 'ZodNativeEnum') {\n schema = any().transform(value => coerceString(value)).pipe(type);\n } else if (def.typeName === 'ZodNumber') {\n schema = any().transform(value => coerceString(value, text => text.trim() === '' ? Number.NaN : Number(text))).pipe(type);\n } else if (def.typeName === 'ZodBoolean') {\n schema = any().transform(value => coerceString(value, text => text === 'on' ? true : text)).pipe(type);\n } else if (def.typeName === 'ZodDate') {\n schema = any().transform(value => coerceString(value, timestamp => {\n var date = new Date(timestamp);\n\n // z.date() does not expose a quick way to set invalid_date error\n // This gets around it by returning the original string if it's invalid\n // See https://github.com/colinhacks/zod/issues/1526\n if (isNaN(date.getTime())) {\n return timestamp;\n }\n return date;\n })).pipe(type);\n } else if (def.typeName === 'ZodBigInt') {\n schema = any().transform(value => coerceString(value, BigInt)).pipe(type);\n } else if (def.typeName === 'ZodArray') {\n schema = any().transform(value => {\n // No preprocess needed if the value is already an array\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === 'undefined' || typeof coerceFile(coerceString(value)) === 'undefined') {\n return [];\n }\n\n // Wrap it in an array otherwise\n return [value];\n }).pipe(new ZodArray(_objectSpread2(_objectSpread2({}, def), {}, {\n type: enableTypeCoercion(def.type, cache)\n })));\n } else if (def.typeName === 'ZodObject') {\n var _shape = Object.fromEntries(Object.entries(def.shape()).map(_ref => {\n var [key, def] = _ref;\n return [key,\n // @ts-expect-error see message above\n enableTypeCoercion(def, cache)];\n }));\n schema = new ZodObject(_objectSpread2(_objectSpread2({}, def), {}, {\n shape: () => _shape\n }));\n } else if (def.typeName === 'ZodEffects') {\n if (isFileSchema(type)) {\n schema = any().transform(value => coerceFile(value)).pipe(type);\n } else {\n schema = new ZodEffects(_objectSpread2(_objectSpread2({}, def), {}, {\n schema: enableTypeCoercion(def.schema, cache)\n }));\n }\n } else if (def.typeName === 'ZodOptional') {\n schema = any().transform(value => coerceFile(coerceString(value))).pipe(new ZodOptional(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, cache)\n })));\n } else if (def.typeName === 'ZodDefault') {\n schema = any().transform(value => coerceFile(coerceString(value))).pipe(new ZodDefault(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, cache)\n })));\n } else if (def.typeName === 'ZodCatch') {\n schema = new ZodCatch(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, cache)\n }));\n } else if (def.typeName === 'ZodIntersection') {\n schema = new ZodIntersection(_objectSpread2(_objectSpread2({}, def), {}, {\n left: enableTypeCoercion(def.left, cache),\n right: enableTypeCoercion(def.right, cache)\n }));\n } else if (def.typeName === 'ZodUnion') {\n schema = new ZodUnion(_objectSpread2(_objectSpread2({}, def), {}, {\n options: def.options.map(option => enableTypeCoercion(option, cache))\n }));\n } else if (def.typeName === 'ZodDiscriminatedUnion') {\n schema = new ZodDiscriminatedUnion(_objectSpread2(_objectSpread2({}, def), {}, {\n options: def.options.map(option => enableTypeCoercion(option, cache)),\n optionsMap: new Map(Array.from(def.optionsMap.entries()).map(_ref2 => {\n var [discriminator, option] = _ref2;\n return [discriminator, enableTypeCoercion(option, cache)];\n }))\n }));\n } else if (def.typeName === 'ZodTuple') {\n schema = new ZodTuple(_objectSpread2(_objectSpread2({}, def), {}, {\n items: def.items.map(item => enableTypeCoercion(item, cache))\n }));\n } else if (def.typeName === 'ZodNullable') {\n schema = new ZodNullable(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, cache)\n }));\n } else if (def.typeName === 'ZodPipeline') {\n schema = new ZodPipeline(_objectSpread2(_objectSpread2({}, def), {}, {\n in: enableTypeCoercion(def.in, cache),\n out: enableTypeCoercion(def.out, cache)\n }));\n } else if (def.typeName === 'ZodLazy') {\n var inner = def.getter();\n schema = lazy(() => enableTypeCoercion(inner, cache));\n }\n if (type !== schema) {\n cache.set(type, schema);\n }\n return schema;\n}\n\nexport { coerceFile, coerceString, enableTypeCoercion, isFileSchema };\n","import { parse, formatPaths } from '@conform-to/dom';\nimport { enableTypeCoercion } from './coercion.mjs';\n\nfunction getError(zodError, formatError) {\n var result = {};\n for (var issue of zodError.errors) {\n var name = formatPaths(issue.path);\n switch (issue.message) {\n case conformZodMessage.VALIDATION_UNDEFINED:\n return null;\n case conformZodMessage.VALIDATION_SKIPPED:\n result[name] = null;\n break;\n default:\n {\n var _issues = result[name];\n if (_issues !== null) {\n if (_issues) {\n result[name] = _issues.concat(issue);\n } else {\n result[name] = [issue];\n }\n }\n break;\n }\n }\n }\n return Object.entries(result).reduce((result, _ref) => {\n var [name, issues] = _ref;\n result[name] = issues ? formatError(issues) : null;\n return result;\n }, {});\n}\nfunction parseWithZod(payload, options) {\n return parse(payload, {\n resolve(payload, intent) {\n var errorMap = options.errorMap;\n var schema = enableTypeCoercion(typeof options.schema === 'function' ? options.schema(intent) : options.schema);\n var resolveSubmission = result => {\n var _options$formatError;\n return {\n value: result.success ? result.data : undefined,\n error: !result.success ? getError(result.error, (_options$formatError = options.formatError) !== null && _options$formatError !== void 0 ? _options$formatError : issues => issues.map(issue => issue.message)) : undefined\n };\n };\n return options.async ? schema.safeParseAsync(payload, {\n errorMap\n }).then(result => resolveSubmission(result)) : resolveSubmission(schema.safeParse(payload, {\n errorMap\n }));\n }\n });\n}\nvar conformZodMessage = {\n VALIDATION_SKIPPED: '__skipped__',\n VALIDATION_UNDEFINED: '__undefined__'\n};\n\nexport { conformZodMessage, parseWithZod };\n","export function getHintUtils(hints) {\n function getCookieValue(cookieString, name) {\n const hint = hints[name];\n if (!hint) {\n throw new Error(`Unknown client hint: ${typeof name === 'string' ? name : 'Unknown'}`);\n }\n const value = cookieString\n .split(';')\n .map((c) => c.trim())\n .find((c) => c.startsWith(hint.cookieName + '='))\n ?.split('=')[1];\n return value ? decodeURIComponent(value) : null;\n }\n function getHints(request) {\n const cookieString = typeof document !== 'undefined'\n ? document.cookie\n : typeof request !== 'undefined'\n ? request.headers.get('Cookie') ?? ''\n : '';\n return Object.entries(hints).reduce((acc, [name, hint]) => {\n const hintName = name;\n if ('transform' in hint) {\n // @ts-expect-error - this is fine (PRs welcome though)\n acc[hintName] = hint.transform(getCookieValue(cookieString, hintName) ?? hint.fallback);\n }\n else {\n // @ts-expect-error - this is fine (PRs welcome though)\n acc[hintName] = getCookieValue(cookieString, hintName) ?? hint.fallback;\n }\n return acc;\n }, {});\n }\n /**\n * This returns a string of JavaScript that can be used to check if the client\n * hints have changed and will reload the page if they have.\n */\n function getClientHintCheckScript() {\n return `\n// This block of code allows us to check if the client hints have changed and\n// force a reload of the page with updated hints if they have so you don't get\n// a flash of incorrect content.\nfunction checkClientHints() {\n\tif (!navigator.cookieEnabled) return;\n\n\t// set a short-lived cookie to make sure we can set cookies\n\tdocument.cookie = \"canSetCookies=1; Max-Age=60; SameSite=Lax\";\n\tconst canSetCookies = document.cookie.includes(\"canSetCookies=1\");\n\tdocument.cookie = \"canSetCookies=; Max-Age=-1; path=/\";\n\tif (!canSetCookies) return;\n\n\tconst cookies = document.cookie.split(';').map(c => c.trim()).reduce((acc, cur) => {\n\t\tconst [key, value] = cur.split('=');\n\t\tacc[key] = value;\n\t\treturn acc;\n\t}, {});\n\n\tlet cookieChanged = false;\n\tconst hints = [\n\t${Object.values(hints)\n .map((hint) => {\n const cookieName = JSON.stringify(hint.cookieName);\n return `{ name: ${cookieName}, actual: String(${hint.getValueCode}), value: cookies[${cookieName}] != null ? cookies[${cookieName}] : encodeURIComponent(\"${hint.fallback}\") }`;\n })\n .join(',\\n')}\n\t];\n\tfor (const hint of hints) {\n\t\tdocument.cookie = encodeURIComponent(hint.name) + '=' + encodeURIComponent(hint.actual) + '; Max-Age=31536000; path=/';\n\t\tif (decodeURIComponent(hint.value) !== hint.actual) {\n\t\t\tcookieChanged = true;\n\t\t}\n\t}\n\tif (cookieChanged) window.location.reload();\n}\n\ncheckClientHints();\n`;\n }\n return { getHints, getClientHintCheckScript };\n}\n","export const clientHint = {\n cookieName: 'CH-prefers-color-scheme',\n getValueCode: `window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'`,\n fallback: 'light',\n transform(value) {\n return value === 'dark' ? 'dark' : 'light';\n },\n};\n/**\n * Subscribe to changes in the user's color scheme preference. Optionally pass\n * in a cookie name to use for the cookie that will be set if different from the\n * default.\n */\nexport function subscribeToSchemeChange(subscriber, cookieName = clientHint.cookieName) {\n const schemaMatch = window.matchMedia('(prefers-color-scheme: dark)');\n function handleThemeChange() {\n const value = schemaMatch.matches ? 'dark' : 'light';\n document.cookie = `${cookieName}=${value}; Max-Age=31536000; Path=/`;\n subscriber(value);\n }\n schemaMatch.addEventListener('change', handleThemeChange);\n return function cleanupSchemaChange() {\n schemaMatch.removeEventListener('change', handleThemeChange);\n };\n}\n","export const clientHint = {\n cookieName: 'CH-reduced-motion',\n getValueCode: `window.matchMedia('(prefers-reduced-motion: reduce)').matches ? 'reduce' : 'no-preference'`,\n fallback: 'no-preference',\n transform(value) {\n return value === 'reduce' ? 'reduce' : 'no-preference';\n },\n};\n/**\n * Subscribe to changes in the user's motion preference. Optionally pass\n * in a cookie name to use for the cookie that will be set if different from the\n * default.\n */\nexport function subscribeToMotionChange(subscriber, cookieName = clientHint.cookieName) {\n const motionMatch = window.matchMedia('(prefers-reduced-motion: reduce)');\n function handleMotionChange() {\n const value = motionMatch.matches ? 'reduce' : 'no-preference';\n document.cookie = `${cookieName}=${value}; Max-Age=31536000; Path=/`;\n subscriber(value);\n }\n motionMatch.addEventListener('change', handleMotionChange);\n return function cleanupMotionChange() {\n motionMatch.removeEventListener('change', handleMotionChange);\n };\n}\n","export const clientHint = {\n cookieName: 'CH-time-zone',\n getValueCode: 'Intl.DateTimeFormat().resolvedOptions().timeZone',\n fallback: 'UTC',\n};\n","/**\n * This file contains utilities for using client hints for user preference which\n * are needed by the server, but are only known by the browser.\n */\nimport { getHintUtils } from '@epic-web/client-hints'\nimport {\n\tclientHint as colorSchemeHint,\n\tsubscribeToSchemeChange,\n} from '@epic-web/client-hints/color-scheme'\nimport {\n\tclientHint as reducedMotionHint,\n\tsubscribeToMotionChange,\n} from '@epic-web/client-hints/reduced-motion'\nimport { clientHint as timeZoneHint } from '@epic-web/client-hints/time-zone'\nimport { useRevalidator } from '@remix-run/react'\nimport * as React from 'react'\nimport { useRequestInfo } from './request-info.ts'\n\nconst themeCookieName = 'EpicShop_CH-prefers-color-scheme'\nconst motionCookieName = 'EpicShop_CH-reduced-motion'\nconst hintsUtils = getHintUtils({\n\ttheme: {\n\t\t...colorSchemeHint,\n\t\tcookieName: themeCookieName,\n\t},\n\ttimeZone: {\n\t\t...timeZoneHint,\n\t\tcookieName: 'EpicShop_CH-time-zone',\n\t},\n\treducedMotion: {\n\t\t...reducedMotionHint,\n\t\tcookieName: motionCookieName,\n\t},\n\t// add other hints here\n})\n\nexport const { getHints } = hintsUtils\n\n/**\n * @returns an object with the client hints and their values\n */\nexport function useHints() {\n\tconst requestInfo = useRequestInfo()\n\treturn requestInfo.hints\n}\n\n/**\n * @returns inline script element that checks for client hints and sets cookies\n * if they are not set then reloads the page if any cookie was set to an\n * inaccurate value.\n */\nexport function ClientHintCheck() {\n\tconst { revalidate } = useRevalidator()\n\tReact.useEffect(\n\t\t() => subscribeToSchemeChange(() => revalidate(), themeCookieName),\n\t\t[revalidate],\n\t)\n\tReact.useEffect(\n\t\t() => subscribeToMotionChange(() => revalidate(), motionCookieName),\n\t\t[revalidate],\n\t)\n\n\treturn (\n\t\t<script\n\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t__html: hintsUtils.getClientHintCheckScript(),\n\t\t\t}}\n\t\t/>\n\t)\n}\n","export type ListOfErrors = Array<string | null | undefined> | null | undefined\n\nexport function ErrorList({\n\tid,\n\terrors,\n}: {\n\terrors?: ListOfErrors\n\tid?: string\n}) {\n\tconst errorsToRender = errors?.filter(Boolean)\n\tif (!errorsToRender?.length) return null\n\treturn (\n\t\t<ul id={id} className=\"space-y-1\">\n\t\t\t{errorsToRender.map((e) => (\n\t\t\t\t<li key={e} className=\"text-danger text-[10px]\">\n\t\t\t\t\t{e}\n\t\t\t\t</li>\n\t\t\t))}\n\t\t</ul>\n\t)\n}\n","import { getFormProps, useForm } from '@conform-to/react'\nimport { parseWithZod } from '@conform-to/zod'\nimport { json, type ActionFunctionArgs } from '@remix-run/node'\nimport { useFetcher, useFetchers } from '@remix-run/react'\nimport { z } from 'zod'\nimport { Icon } from '#app/components/icons.tsx'\nimport { SimpleTooltip } from '#app/components/ui/tooltip.tsx'\nimport { useHints } from '#app/utils/client-hints.tsx'\nimport { ErrorList } from '#app/utils/forms.tsx'\nimport { jsonWithPE, usePERedirectInput } from '#app/utils/pe.js'\nimport { useRequestInfo } from '#app/utils/request-info.ts'\nimport { setTheme } from './theme-session.server.ts'\n\nconst ROUTE_PATH = '/theme'\n\nconst ThemeFormSchema = z.object({\n\ttheme: z.enum(['system', 'light', 'dark']),\n})\n\nexport async function action({ request }: ActionFunctionArgs) {\n\tconst formData = await request.formData()\n\tconst submission = parseWithZod(formData, {\n\t\tschema: ThemeFormSchema,\n\t})\n\tif (submission.status !== 'success') {\n\t\treturn json(submission.reply(), {\n\t\t\t// You can also use the status to determine the HTTP status code\n\t\t\tstatus: submission.status === 'error' ? 400 : 200,\n\t\t})\n\t}\n\tconst { theme } = submission.value\n\n\tconst responseInit = {\n\t\theaders: { 'set-cookie': setTheme(theme) },\n\t}\n\treturn jsonWithPE(formData, submission.reply(), responseInit)\n}\n\nexport function ThemeSwitch() {\n\tconst requestInfo = useRequestInfo()\n\tconst peRedirectInput = usePERedirectInput()\n\tconst fetcher = useFetcher<typeof action>()\n\n\tconst [form] = useForm({\n\t\tlastResult: fetcher.data,\n\t\tonValidate({ formData }) {\n\t\t\treturn parseWithZod(formData, { schema: ThemeFormSchema })\n\t\t},\n\t})\n\n\tconst mode = requestInfo.session.theme ?? 'system'\n\tconst nextMode =\n\t\tmode === 'system' ? 'light' : mode === 'light' ? 'dark' : 'system'\n\tconst modeLabel = {\n\t\tlight: <Icon size=\"md\" name=\"Sun\" title=\"Light mode\" />,\n\t\tdark: <Icon size=\"md\" name=\"Moon\" title=\"Dark mode\" />,\n\t\tsystem: <Icon size=\"md\" name=\"Laptop\" title=\"System mode\" />,\n\t}\n\n\treturn (\n\t\t<fetcher.Form method=\"POST\" action={ROUTE_PATH} {...getFormProps(form)}>\n\t\t\t<div className=\"flex gap-2\">\n\t\t\t\t{peRedirectInput}\n\t\t\t\t<input type=\"hidden\" name=\"theme\" value={nextMode} />\n\t\t\t\t<SimpleTooltip content={`Change theme from ${mode} mode`}>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tname=\"intent\"\n\t\t\t\t\t\tvalue=\"update-theme\"\n\t\t\t\t\t\tclassName=\"flex h-8 w-8 cursor-pointer items-center justify-center\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{modeLabel[mode]}\n\t\t\t\t\t</button>\n\t\t\t\t</SimpleTooltip>\n\t\t\t</div>\n\t\t\t<ErrorList errors={form.errors} id={form.errorId} />\n\t\t</fetcher.Form>\n\t)\n}\n\n/**\n * @returns the user's theme preference, or the client hint theme if the user\n * has not set a preference.\n */\nexport function useTheme() {\n\tconst hints = useHints()\n\tconst requestInfo = useRequestInfo()\n\tconst fetchers = useFetchers()\n\tconst fetcher = fetchers.find(\n\t\t(f) => f.formData?.get('intent') === 'update-theme',\n\t)\n\tconst optimisticTheme = fetcher?.formData?.get('theme')\n\tif (optimisticTheme === 'system') return hints.theme\n\tif (optimisticTheme === 'light' || optimisticTheme === 'dark') {\n\t\treturn optimisticTheme\n\t}\n\treturn requestInfo.session.theme ?? hints.theme\n}\n"],"names":["ownKeys","o","r","_objectSpread2","_defineProperty","obj","key","value","_toPropertyKey","_toPrimitive","input","hint","prim","res","arg","getFormData","form","submitter","payload","entries","getPaths","name","result","segment","index","formatPaths","paths","path","formatName","prefix","isPrefix","prefixPaths","setValue","target","valueFn","length","lastIndex","pointer","nextKey","newValue","getValue","isPlainObject","isFile","normalize","acceptFile","data","item","flatten","_options$resolve","options","resolve","process","i","_value","_options$prefix","invariant","expectedCondition","message","generateId","clone","isFormControl","element","isFieldElement","getFormAction","event","_ref","_submitter$getAttribu","getFormEncType","_submitter$getAttribu2","encType","getFormMethod","_ref2","_submitter$getAttribu3","method","requestSubmit","INTENT","STATE","getSubmissionContext","body","intent","state","context","getIntent","_loop","next","prev","parse","_name","setListValue","mergeResolveResult","resolved","createSubmission","replySubmission","_context$intent","_context$intent$paylo","_options$formErrors","_normalize","_value2","extraError","error","serializedIntent","control","serializeIntent","serialize","updateList","list","_intent$payload$index","root","setState","keys","_loop2","currentValue","_data$root","setListState","getDefaultValue","defaultValue","createFormMeta","initialized","_lastResult$initialVa","_options$constraint","_lastResult$state$val","_lastResult$state","lastResult","initialValue","getDefaultKey","handleIntent","setFieldsValidated","meta","fields","_fields$filter","validated","_name2","updateValue","_name3","validatedFields","_ref3","field","createStateProxy","fn","cache","_","receiver","_cache$name","createValueProxy","val","proxy","basename","parentValue","createConstraintProxy","constraint","_result","alternative","createKeyProxy","currentKey","parentKey","createValidProxy","createDirtyProxy","shouldDirtyConsider","_ref4","shouldNotify","scope","compareFn","_scope$prefix","_scope$name","prefixes","names","_name4","_cache$_name","_ret","createFormContext","subscribers","latestOptions","createFormState","getFormElement","_latestOptions$should","_latestOptions$should2","updateFormMeta","nextMeta","prevMeta","prevState","nextState","subscriber","_subscriber$getSubjec","subject","compareBoolean","getSerializedState","submit","formData","submission","_result2","report","resolveTarget","willValidate","eventName","shouldValidate","shouldRevalidate","updateFormValue","onInput","dispatch","onBlur","reset","onReset","_result$error","_result$state","formElement","_ref5","newError","update","onUpdate","currentFormId","currentResult","subscribe","callback","getSubject","current","getState","buttonProps","getControlButtonProps","createFormControl","type","observe","observer","mutations","mutation","nodes","node","_objectWithoutPropertiesLoose","source","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","wrappedSymbol","useFormState","subjectRef","useCallback","useSyncExternalStore","useSubjectRef","initialSubject","useRef","updateSubjectRef","ref","_ref$current$subject$","_ref$current$subject","getMetadata","stateSnapshot","id","getFieldMetadata","_state$constraint$nam","metadata","_state$initialValue$n","getFormMetadata","noValidate","onSubmit","unstable_createFormContext","submitEvent","_onSubmit","_excluded","useSafeLayoutEffect","useEffect","useLayoutEffect","useFormId","preferredId","useId","useNoValidate","defaultNoValidate","setNoValidate","useState","useForm","formConfig","formId","disconnect","simplify","props","getAriaAttributes","invalid","ariaDescribedBy","getFormProps","coerceString","transform","coerceFile","file","isFileSchema","schema","enableTypeCoercion","def","any","text","timestamp","date","ZodArray","_shape","ZodObject","ZodEffects","ZodOptional","ZodDefault","ZodCatch","ZodIntersection","ZodUnion","option","ZodDiscriminatedUnion","discriminator","ZodTuple","ZodNullable","ZodPipeline","inner","lazy","getError","zodError","formatError","issue","conformZodMessage","_issues","issues","parseWithZod","errorMap","resolveSubmission","_options$formatError","getHintUtils","hints","getCookieValue","cookieString","_a","c","getHints","request","acc","hintName","getClientHintCheckScript","cookieName","clientHint","subscribeToSchemeChange","schemaMatch","handleThemeChange","subscribeToMotionChange","motionMatch","handleMotionChange","themeCookieName","motionCookieName","hintsUtils","colorSchemeHint","timeZoneHint","reducedMotionHint","useHints","useRequestInfo","ClientHintCheck","revalidate","useRevalidator","React.useEffect","jsx","ErrorList","errors","errorsToRender","e","ROUTE_PATH","ThemeFormSchema","z","object","theme","enum","ThemeSwitch","requestInfo","peRedirectInput","usePERedirectInput","fetcher","useFetcher","onValidate","mode","session","nextMode","modeLabel","light","Icon","size","title","dark","system","jsxs","Form","action","children","className","SimpleTooltip","content","errorId","useTheme","useFetchers","find","f","get","optimisticTheme"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]}
|
|
1
|
+
{"version":3,"file":"index-BvihEwfB.js","sources":["../../../../../node_modules/@conform-to/dom/_virtual/_rollupPluginBabelHelpers.mjs","../../../../../node_modules/@conform-to/dom/formdata.mjs","../../../../../node_modules/@conform-to/dom/util.mjs","../../../../../node_modules/@conform-to/dom/dom.mjs","../../../../../node_modules/@conform-to/dom/submission.mjs","../../../../../node_modules/@conform-to/dom/form.mjs","../../../../../node_modules/@conform-to/react/_virtual/_rollupPluginBabelHelpers.mjs","../../../../../node_modules/@conform-to/react/context.mjs","../../../../../node_modules/@conform-to/react/hooks.mjs","../../../../../node_modules/@conform-to/react/helpers.mjs","../../../../../node_modules/@conform-to/zod/_virtual/_rollupPluginBabelHelpers.mjs","../../../../../node_modules/@conform-to/zod/coercion.mjs","../../../../../node_modules/@conform-to/zod/parse.mjs","../../../../../node_modules/@epic-web/client-hints/dist/index.js","../../../../../node_modules/@epic-web/client-hints/dist/color-scheme.js","../../../../../node_modules/@epic-web/client-hints/dist/reduced-motion.js","../../../../../node_modules/@epic-web/client-hints/dist/time-zone.js","../../../app/utils/client-hints.tsx","../../../app/utils/forms.tsx","../../../app/routes/theme/index.tsx"],"sourcesContent":["function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nexport { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };\n","/**\n * Construct a form data with the submitter value.\n * It utilizes the submitter argument on the FormData constructor from modern browsers\n * with fallback to append the submitter value in case it is not unsupported.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData#parameters\n */\nfunction getFormData(form, submitter) {\n var payload = new FormData(form, submitter);\n if (submitter && submitter.type === 'submit' && submitter.name !== '') {\n var entries = payload.getAll(submitter.name);\n\n // This assumes the submitter value to be always unique, which should be fine in most cases\n if (!entries.includes(submitter.value)) {\n payload.append(submitter.name, submitter.value);\n }\n }\n return payload;\n}\n\n/**\n * Returns the paths from a name based on the JS syntax convention\n * @example\n * ```js\n * const paths = getPaths('todos[0].content'); // ['todos', 0, 'content']\n * ```\n */\nfunction getPaths(name) {\n if (!name) {\n return [];\n }\n return name.split(/\\.|(\\[\\d*\\])/).reduce((result, segment) => {\n if (typeof segment !== 'undefined' && segment !== '' && segment !== '__proto__' && segment !== 'constructor' && segment !== 'prototype') {\n if (segment.startsWith('[') && segment.endsWith(']')) {\n var index = segment.slice(1, -1);\n result.push(Number(index));\n } else {\n result.push(segment);\n }\n }\n return result;\n }, []);\n}\n\n/**\n * Returns a formatted name from the paths based on the JS syntax convention\n * @example\n * ```js\n * const name = formatPaths(['todos', 0, 'content']); // \"todos[0].content\"\n * ```\n */\nfunction formatPaths(paths) {\n return paths.reduce((name, path) => {\n if (typeof path === 'number') {\n return \"\".concat(name, \"[\").concat(Number.isNaN(path) ? '' : path, \"]\");\n }\n if (name === '' || path === '') {\n return [name, path].join('');\n }\n return [name, path].join('.');\n }, '');\n}\n\n/**\n * Format based on a prefix and a path\n */\nfunction formatName(prefix, path) {\n return typeof path !== 'undefined' ? formatPaths([...getPaths(prefix), path]) : prefix !== null && prefix !== void 0 ? prefix : '';\n}\n\n/**\n * Check if a name match the prefix paths\n */\nfunction isPrefix(name, prefix) {\n var paths = getPaths(name);\n var prefixPaths = getPaths(prefix);\n return paths.length >= prefixPaths.length && prefixPaths.every((path, index) => paths[index] === path);\n}\n\n/**\n * Assign a value to a target object by following the paths\n */\nfunction setValue(target, name, valueFn) {\n var paths = getPaths(name);\n var length = paths.length;\n var lastIndex = length - 1;\n var index = -1;\n var pointer = target;\n while (pointer != null && ++index < length) {\n var key = paths[index];\n var nextKey = paths[index + 1];\n var newValue = index != lastIndex ? Object.prototype.hasOwnProperty.call(pointer, key) && pointer[key] !== null ? pointer[key] : typeof nextKey === 'number' ? [] : {} : valueFn(pointer[key]);\n pointer[key] = newValue;\n pointer = pointer[key];\n }\n}\n\n/**\n * Retrive the value from a target object by following the paths\n */\nfunction getValue(target, name) {\n var pointer = target;\n for (var path of getPaths(name)) {\n if (typeof pointer === 'undefined' || pointer == null) {\n break;\n }\n if (!Object.prototype.hasOwnProperty.call(pointer, path)) {\n return;\n }\n if (isPlainObject(pointer) && typeof path === 'string') {\n pointer = pointer[path];\n } else if (Array.isArray(pointer) && typeof path === 'number') {\n pointer = pointer[path];\n } else {\n return;\n }\n }\n return pointer;\n}\n\n/**\n * Check if the value is a plain object\n */\nfunction isPlainObject(obj) {\n return !!obj && obj.constructor === Object && Object.getPrototypeOf(obj) === Object.prototype;\n}\n\n/**\n * Check if the value is a File\n */\nfunction isFile(obj) {\n // Skip checking if File is not defined\n if (typeof File === 'undefined') {\n return false;\n }\n return obj instanceof File;\n}\n\n/**\n * Normalize value by removing empty object or array, empty string and null values\n */\n\nfunction normalize(value) {\n var acceptFile = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (isPlainObject(value)) {\n var obj = Object.keys(value).sort().reduce((result, key) => {\n var data = normalize(value[key], acceptFile);\n if (typeof data !== 'undefined') {\n result[key] = data;\n }\n return result;\n }, {});\n if (Object.keys(obj).length === 0) {\n return;\n }\n return obj;\n }\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return undefined;\n }\n return value.map(item => normalize(item, acceptFile));\n }\n if (typeof value === 'string' && value === '' || value === null || isFile(value) && (!acceptFile || value.size === 0)) {\n return;\n }\n return value;\n}\n\n/**\n * Flatten a tree into a dictionary\n */\nfunction flatten(data) {\n var _options$resolve;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var result = {};\n var resolve = (_options$resolve = options.resolve) !== null && _options$resolve !== void 0 ? _options$resolve : data => data;\n function process(data, prefix) {\n var value = normalize(resolve(data));\n if (typeof value !== 'undefined') {\n result[prefix] = value;\n }\n if (Array.isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n process(data[i], \"\".concat(prefix, \"[\").concat(i, \"]\"));\n }\n } else if (isPlainObject(data)) {\n for (var [key, _value] of Object.entries(data)) {\n process(_value, prefix ? \"\".concat(prefix, \".\").concat(key) : key);\n }\n }\n }\n if (data) {\n var _options$prefix;\n process(data, (_options$prefix = options.prefix) !== null && _options$prefix !== void 0 ? _options$prefix : '');\n }\n return result;\n}\n\nexport { flatten, formatName, formatPaths, getFormData, getPaths, getValue, isFile, isPlainObject, isPrefix, normalize, setValue };\n","function invariant(expectedCondition, message) {\n if (!expectedCondition) {\n throw new Error(message);\n }\n}\nfunction generateId() {\n return (Date.now() * Math.random()).toString(36);\n}\nfunction clone(data) {\n return JSON.parse(JSON.stringify(data));\n}\n\nexport { clone, generateId, invariant };\n","import { invariant } from './util.mjs';\n\n/**\n * Element that user can interact with,\n * includes `<input>`, `<select>` and `<textarea>`.\n */\n\n/**\n * HTML Element that can be used as a form control,\n * includes `<input>`, `<select>`, `<textarea>` and `<button>`.\n */\n\n/**\n * Form Control element. It can either be a submit button or a submit input.\n */\n\n/**\n * A type guard to check if the provided element is a form control\n */\nfunction isFormControl(element) {\n return element instanceof Element && (element.tagName === 'INPUT' || element.tagName === 'SELECT' || element.tagName === 'TEXTAREA' || element.tagName === 'BUTTON');\n}\n\n/**\n * A type guard to check if the provided element is a field element, which\n * is a form control excluding submit, button and reset type.\n */\nfunction isFieldElement(element) {\n return isFormControl(element) && element.type !== 'submit' && element.type !== 'button' && element.type !== 'reset';\n}\n\n/**\n * Resolves the action from the submit event\n * with respect to the submitter `formaction` attribute.\n */\nfunction getFormAction(event) {\n var _ref, _submitter$getAttribu;\n var form = event.target;\n var submitter = event.submitter;\n return (_ref = (_submitter$getAttribu = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute('formaction')) !== null && _submitter$getAttribu !== void 0 ? _submitter$getAttribu : form.getAttribute('action')) !== null && _ref !== void 0 ? _ref : \"\".concat(location.pathname).concat(location.search);\n}\n\n/**\n * Resolves the encoding type from the submit event\n * with respect to the submitter `formenctype` attribute.\n */\nfunction getFormEncType(event) {\n var _submitter$getAttribu2;\n var form = event.target;\n var submitter = event.submitter;\n var encType = (_submitter$getAttribu2 = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute('formenctype')) !== null && _submitter$getAttribu2 !== void 0 ? _submitter$getAttribu2 : form.enctype;\n if (encType === 'multipart/form-data') {\n return encType;\n }\n return 'application/x-www-form-urlencoded';\n}\n\n/**\n * Resolves the method from the submit event\n * with respect to the submitter `formmethod` attribute.\n */\nfunction getFormMethod(event) {\n var _ref2, _submitter$getAttribu3;\n var form = event.target;\n var submitter = event.submitter;\n var method = (_ref2 = (_submitter$getAttribu3 = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute('formmethod')) !== null && _submitter$getAttribu3 !== void 0 ? _submitter$getAttribu3 : form.getAttribute('method')) === null || _ref2 === void 0 ? void 0 : _ref2.toUpperCase();\n switch (method) {\n case 'POST':\n case 'PUT':\n case 'PATCH':\n case 'DELETE':\n return method;\n }\n return 'GET';\n}\n\n/**\n * Trigger a form submit event with an optional submitter.\n * If the submitter is not mounted, it will be appended to the form and removed after submission.\n */\nfunction requestSubmit(form, submitter) {\n invariant(!!form, 'Failed to submit the form. The element provided is null or undefined.');\n if (typeof form.requestSubmit === 'function') {\n form.requestSubmit(submitter);\n } else {\n var event = new SubmitEvent('submit', {\n bubbles: true,\n cancelable: true,\n submitter\n });\n form.dispatchEvent(event);\n }\n}\n\nexport { getFormAction, getFormEncType, getFormMethod, isFieldElement, isFormControl, requestSubmit };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { formatName, setValue, isPlainObject, getValue, normalize, flatten, isPrefix } from './formdata.mjs';\nimport { invariant } from './util.mjs';\n\n/**\n * The name to be used when submitting a form control\n */\nvar INTENT = '__intent__';\n\n/**\n * The name to be used when submitting a state\n */\nvar STATE = '__state__';\nfunction getSubmissionContext(body) {\n var intent = body.get(INTENT);\n var state = body.get(STATE);\n invariant((typeof intent === 'string' || intent === null) && (typeof state === 'string' || state === null), \"The input name \\\"\".concat(INTENT, \"\\\" and \\\"\").concat(STATE, \"\\\" are reserved by Conform. Please use another name for your input.\"));\n var context = {\n payload: {},\n fields: new Set(),\n intent: getIntent(intent)\n };\n if (state) {\n context.state = JSON.parse(state);\n }\n var _loop = function _loop(next) {\n if (name === INTENT || name === STATE) {\n return 1; // continue\n }\n context.fields.add(name);\n setValue(context.payload, name, prev => {\n if (!prev) {\n return next;\n } else if (Array.isArray(prev)) {\n return prev.concat(next);\n } else {\n return [prev, next];\n }\n });\n };\n for (var [name, next] of body.entries()) {\n if (_loop(next)) continue;\n }\n return context;\n}\nfunction parse(payload, options) {\n var context = getSubmissionContext(payload);\n var intent = context.intent;\n if (intent) {\n switch (intent.type) {\n case 'update':\n {\n var name = formatName(intent.payload.name, intent.payload.index);\n var _value = intent.payload.value;\n if (typeof intent.payload.value !== 'undefined') {\n if (name) {\n setValue(context.payload, name, () => _value);\n } else {\n context.payload = _value;\n }\n }\n break;\n }\n case 'reset':\n {\n var _name = formatName(intent.payload.name, intent.payload.index);\n if (_name) {\n setValue(context.payload, _name, () => undefined);\n } else {\n context.payload = {};\n }\n break;\n }\n case 'insert':\n case 'remove':\n case 'reorder':\n {\n setListValue(context.payload, intent);\n break;\n }\n }\n }\n var result = options.resolve(context.payload, intent);\n var mergeResolveResult = resolved => createSubmission(_objectSpread2(_objectSpread2({}, context), {}, {\n value: resolved.value,\n error: resolved.error\n }));\n if (result instanceof Promise) {\n return result.then(mergeResolveResult);\n }\n return mergeResolveResult(result);\n}\nfunction createSubmission(context) {\n if (context.intent || !context.value || context.error) {\n return {\n status: !context.intent ? 'error' : undefined,\n payload: context.payload,\n error: typeof context.error !== 'undefined' ? context.error : {},\n reply(options) {\n return replySubmission(context, options);\n }\n };\n }\n return {\n status: 'success',\n payload: context.payload,\n value: context.value,\n reply(options) {\n return replySubmission(context, options);\n }\n };\n}\nfunction replySubmission(context) {\n var _context$intent, _context$intent$paylo, _options$formErrors, _normalize;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if ('resetForm' in options && options.resetForm || ((_context$intent = context.intent) === null || _context$intent === void 0 ? void 0 : _context$intent.type) === 'reset' && ((_context$intent$paylo = context.intent.payload.name) !== null && _context$intent$paylo !== void 0 ? _context$intent$paylo : '') === '') {\n return {\n initialValue: null\n };\n }\n if ('hideFields' in options && options.hideFields) {\n for (var name of options.hideFields) {\n var _value2 = getValue(context.payload, name);\n if (typeof _value2 !== 'undefined') {\n setValue(context.payload, name, () => undefined);\n }\n }\n }\n var extraError = 'formErrors' in options || 'fieldErrors' in options ? normalize(_objectSpread2({\n '': (_options$formErrors = options.formErrors) !== null && _options$formErrors !== void 0 ? _options$formErrors : null\n }, options.fieldErrors)) : null;\n var error = context.error || extraError ? _objectSpread2(_objectSpread2({}, context.error), extraError) : undefined;\n return {\n status: context.intent ? undefined : error ? 'error' : 'success',\n intent: context.intent ? context.intent : undefined,\n initialValue: (_normalize = normalize(context.payload,\n // We can't serialize the file and send it back from the server, but we can preserve it in the client\n typeof document !== 'undefined')) !== null && _normalize !== void 0 ? _normalize : {},\n error,\n state: context.state,\n fields: Array.from(context.fields)\n };\n}\nfunction getIntent(serializedIntent) {\n if (!serializedIntent) {\n return null;\n }\n var control = JSON.parse(serializedIntent);\n if (typeof control.type !== 'string' || typeof control.payload === 'undefined') {\n throw new Error('Unknown form control intent');\n }\n return control;\n}\nfunction serializeIntent(intent) {\n switch (intent.type) {\n case 'insert':\n return JSON.stringify({\n type: intent.type,\n payload: _objectSpread2(_objectSpread2({}, intent.payload), {}, {\n defaultValue: serialize(intent.payload.defaultValue)\n })\n });\n case 'update':\n return JSON.stringify({\n type: intent.type,\n payload: _objectSpread2(_objectSpread2({}, intent.payload), {}, {\n value: serialize(intent.payload.value)\n })\n });\n default:\n return JSON.stringify(intent);\n }\n}\nfunction updateList(list, intent) {\n var _intent$payload$index;\n invariant(Array.isArray(list), \"Failed to update list. The value is not an array.\");\n switch (intent.type) {\n case 'insert':\n list.splice((_intent$payload$index = intent.payload.index) !== null && _intent$payload$index !== void 0 ? _intent$payload$index : list.length, 0, intent.payload.defaultValue);\n break;\n case 'remove':\n list.splice(intent.payload.index, 1);\n break;\n case 'reorder':\n list.splice(intent.payload.to, 0, ...list.splice(intent.payload.from, 1));\n break;\n default:\n throw new Error('Unknown list intent received');\n }\n}\nfunction setListValue(data, intent) {\n setValue(data, intent.payload.name, value => {\n var list = value !== null && value !== void 0 ? value : [];\n updateList(list, intent);\n return list;\n });\n}\n\n/**\n * A placeholder symbol for the root value of a nested object\n */\nvar root = Symbol.for('root');\nfunction setState(state, name, valueFn) {\n // The keys are sorted in desc so that the root value is handled last\n var keys = Object.keys(state).sort((prev, next) => next.localeCompare(prev));\n var target = {};\n var _loop2 = function _loop2() {\n var value = state[key];\n if (isPrefix(key, name) && key !== name) {\n setValue(target, key, currentValue => {\n if (typeof currentValue === 'undefined') {\n return value;\n }\n\n // As the key should be unique, if currentValue is already defined,\n // it must be either an object or an array\n\n // @ts-expect-error\n currentValue[root] = value;\n return currentValue;\n });\n\n // Remove the value from the data\n delete state[key];\n }\n };\n for (var key of keys) {\n _loop2();\n }\n var result = valueFn(getValue(target, name));\n Object.assign(state, flatten(result, {\n resolve(data) {\n if (isPlainObject(data) || Array.isArray(data)) {\n var _data$root;\n // @ts-expect-error\n return (_data$root = data[root]) !== null && _data$root !== void 0 ? _data$root : null;\n }\n return data;\n },\n prefix: name\n }));\n}\nfunction setListState(state, intent, getDefaultValue) {\n setState(state, intent.payload.name, value => {\n var list = value !== null && value !== void 0 ? value : [];\n switch (intent.type) {\n case 'insert':\n updateList(list, {\n type: intent.type,\n payload: _objectSpread2(_objectSpread2({}, intent.payload), {}, {\n defaultValue: getDefaultValue === null || getDefaultValue === void 0 ? void 0 : getDefaultValue(intent.payload.defaultValue)\n })\n });\n break;\n default:\n updateList(list, intent);\n break;\n }\n return list;\n });\n}\nfunction serialize(defaultValue) {\n if (isPlainObject(defaultValue)) {\n // @ts-expect-error FIXME\n return Object.entries(defaultValue).reduce((result, _ref) => {\n var [key, value] = _ref;\n result[key] = serialize(value);\n return result;\n }, {});\n } else if (Array.isArray(defaultValue)) {\n // @ts-expect-error FIXME\n return defaultValue.map(serialize);\n } else if (defaultValue instanceof Date) {\n // @ts-expect-error FIXME\n return defaultValue.toISOString();\n } else if (typeof defaultValue === 'boolean') {\n // @ts-expect-error FIXME\n return defaultValue ? 'on' : undefined;\n } else if (typeof defaultValue === 'number' || typeof defaultValue === 'bigint') {\n // @ts-expect-error FIXME\n return defaultValue.toString();\n } else {\n // @ts-expect-error FIXME\n return defaultValue !== null && defaultValue !== void 0 ? defaultValue : undefined;\n }\n}\n\nexport { INTENT, STATE, createSubmission, getIntent, getSubmissionContext, parse, replySubmission, root, serialize, serializeIntent, setListState, setListValue, setState, updateList };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { flatten, formatName, getValue, isPlainObject, isPrefix, setValue, normalize, getFormData, getPaths, formatPaths } from './formdata.mjs';\nimport { getFormAction, getFormEncType, getFormMethod, isFieldElement, requestSubmit } from './dom.mjs';\nimport { generateId, clone, invariant } from './util.mjs';\nimport { serialize, setListState, setListValue, setState, INTENT, serializeIntent, root, getSubmissionContext } from './submission.mjs';\n\nfunction createFormMeta(options, initialized) {\n var _lastResult$initialVa, _options$constraint, _lastResult$state$val, _lastResult$state, _ref;\n var lastResult = !initialized ? options.lastResult : undefined;\n var defaultValue = options.defaultValue ? serialize(options.defaultValue) : {};\n var initialValue = (_lastResult$initialVa = lastResult === null || lastResult === void 0 ? void 0 : lastResult.initialValue) !== null && _lastResult$initialVa !== void 0 ? _lastResult$initialVa : defaultValue;\n var result = {\n formId: options.formId,\n isValueUpdated: false,\n submissionStatus: lastResult === null || lastResult === void 0 ? void 0 : lastResult.status,\n defaultValue,\n initialValue,\n value: initialValue,\n constraint: (_options$constraint = options.constraint) !== null && _options$constraint !== void 0 ? _options$constraint : {},\n validated: (_lastResult$state$val = lastResult === null || lastResult === void 0 || (_lastResult$state = lastResult.state) === null || _lastResult$state === void 0 ? void 0 : _lastResult$state.validated) !== null && _lastResult$state$val !== void 0 ? _lastResult$state$val : {},\n key: !initialized ? getDefaultKey(defaultValue) : _objectSpread2({\n '': generateId()\n }, getDefaultKey(defaultValue)),\n // The `lastResult` should comes from the server which we won't expect the error to be null\n // We can consider adding a warning if it happens\n error: (_ref = lastResult === null || lastResult === void 0 ? void 0 : lastResult.error) !== null && _ref !== void 0 ? _ref : {}\n };\n handleIntent(result, lastResult === null || lastResult === void 0 ? void 0 : lastResult.intent, lastResult === null || lastResult === void 0 ? void 0 : lastResult.fields);\n return result;\n}\nfunction getDefaultKey(defaultValue, prefix) {\n return Object.entries(flatten(defaultValue, {\n prefix\n })).reduce((result, _ref2) => {\n var [key, value] = _ref2;\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n result[formatName(key, i)] = generateId();\n }\n }\n return result;\n }, {});\n}\nfunction setFieldsValidated(meta, fields) {\n for (var _name of Object.keys(meta.error).concat(fields !== null && fields !== void 0 ? fields : [])) {\n meta.validated[_name] = true;\n }\n}\nfunction handleIntent(meta, intent, fields, initialized) {\n var _fields$filter;\n if (!intent) {\n setFieldsValidated(meta, fields);\n return;\n }\n switch (intent.type) {\n case 'validate':\n {\n if (intent.payload.name) {\n meta.validated[intent.payload.name] = true;\n } else {\n setFieldsValidated(meta, fields);\n }\n break;\n }\n case 'update':\n {\n var {\n validated,\n value\n } = intent.payload;\n var _name2 = formatName(intent.payload.name, intent.payload.index);\n if (typeof value !== 'undefined') {\n updateValue(meta, _name2 !== null && _name2 !== void 0 ? _name2 : '', value);\n }\n if (typeof validated !== 'undefined') {\n // Clean up previous validated state\n if (_name2) {\n setState(meta.validated, _name2, () => undefined);\n } else {\n meta.validated = {};\n }\n if (validated) {\n if (isPlainObject(value) || Array.isArray(value)) {\n Object.assign(meta.validated, flatten(value, {\n resolve() {\n return true;\n },\n prefix: _name2\n }));\n }\n meta.validated[_name2 !== null && _name2 !== void 0 ? _name2 : ''] = true;\n } else if (_name2) {\n delete meta.validated[_name2];\n }\n }\n break;\n }\n case 'reset':\n {\n var _name3 = formatName(intent.payload.name, intent.payload.index);\n var _value = getValue(meta.defaultValue, _name3);\n updateValue(meta, _name3, _value);\n if (_name3) {\n setState(meta.validated, _name3, () => undefined);\n delete meta.validated[_name3];\n } else {\n meta.validated = {};\n }\n break;\n }\n case 'insert':\n case 'remove':\n case 'reorder':\n {\n if (initialized) {\n meta.initialValue = clone(meta.initialValue);\n meta.key = clone(meta.key);\n setListState(meta.key, intent, defaultValue => {\n if (!Array.isArray(defaultValue) && !isPlainObject(defaultValue)) {\n return generateId();\n }\n return Object.assign(getDefaultKey(defaultValue), {\n [root]: generateId()\n });\n });\n setListValue(meta.initialValue, intent);\n }\n setListState(meta.validated, intent);\n meta.validated[intent.payload.name] = true;\n break;\n }\n }\n var validatedFields = (_fields$filter = fields === null || fields === void 0 ? void 0 : fields.filter(name => meta.validated[name])) !== null && _fields$filter !== void 0 ? _fields$filter : [];\n meta.error = Object.entries(meta.error).reduce((result, _ref3) => {\n var [name, error] = _ref3;\n if (meta.validated[name] || validatedFields.some(field => isPrefix(name, field))) {\n result[name] = error;\n }\n return result;\n }, {});\n}\nfunction updateValue(meta, name, value) {\n if (name === '') {\n meta.initialValue = value;\n meta.value = value;\n meta.key = _objectSpread2(_objectSpread2({}, getDefaultKey(value)), {}, {\n '': generateId()\n });\n return;\n }\n meta.initialValue = clone(meta.initialValue);\n meta.value = clone(meta.value);\n meta.key = clone(meta.key);\n setValue(meta.initialValue, name, () => value);\n setValue(meta.value, name, () => value);\n if (isPlainObject(value) || Array.isArray(value)) {\n setState(meta.key, name, () => undefined);\n Object.assign(meta.key, getDefaultKey(value, name));\n }\n meta.key[name] = generateId();\n}\nfunction createStateProxy(fn) {\n var cache = {};\n return new Proxy(cache, {\n get(_, name, receiver) {\n var _cache$name;\n if (typeof name !== 'string') {\n return;\n }\n return (_cache$name = cache[name]) !== null && _cache$name !== void 0 ? _cache$name : cache[name] = fn(name, receiver);\n }\n });\n}\nfunction createValueProxy(value) {\n var val = normalize(value);\n return createStateProxy((name, proxy) => {\n if (name === '') {\n return val;\n }\n var paths = getPaths(name);\n var basename = formatPaths(paths.slice(0, -1));\n var key = formatPaths(paths.slice(-1));\n var parentValue = proxy[basename];\n return getValue(parentValue, key);\n });\n}\nfunction createConstraintProxy(constraint) {\n return createStateProxy((name, proxy) => {\n var _result;\n var result = constraint[name];\n if (!result) {\n var paths = getPaths(name);\n for (var i = paths.length - 1; i >= 0; i--) {\n var path = paths[i];\n if (typeof path === 'number' && !Number.isNaN(path)) {\n paths[i] = Number.NaN;\n break;\n }\n }\n var alternative = formatPaths(paths);\n if (name !== alternative) {\n result = proxy[alternative];\n }\n }\n return (_result = result) !== null && _result !== void 0 ? _result : {};\n });\n}\nfunction createKeyProxy(key) {\n return createStateProxy((name, proxy) => {\n var currentKey = key[name];\n var paths = getPaths(name);\n if (paths.length === 0) {\n return currentKey;\n }\n var parentKey = proxy[formatPaths(paths.slice(0, -1))];\n if (typeof parentKey === 'undefined') {\n return currentKey;\n }\n return \"\".concat(parentKey, \"/\").concat(currentKey !== null && currentKey !== void 0 ? currentKey : paths.at(-1));\n });\n}\nfunction createValidProxy(error) {\n return createStateProxy(name => {\n var keys = Object.keys(error);\n if (name === '') {\n return keys.length === 0;\n }\n for (var key of keys) {\n if (isPrefix(key, name) && typeof error[key] !== 'undefined') {\n return false;\n }\n }\n return true;\n });\n}\nfunction createDirtyProxy(defaultValue, value, shouldDirtyConsider) {\n return createStateProxy(name => JSON.stringify(defaultValue[name]) !== JSON.stringify(value[name], (key, value) => {\n if (name === '' && key === '' && value) {\n return Object.entries(value).reduce((result, _ref4) => {\n var [name, value] = _ref4;\n if (!shouldDirtyConsider(name)) {\n return result;\n }\n return Object.assign(result !== null && result !== void 0 ? result : {}, {\n [name]: value\n });\n }, undefined);\n }\n return value;\n }));\n}\nfunction shouldNotify(prev, next, cache, scope) {\n var compareFn = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : (prev, next) => JSON.stringify(prev) !== JSON.stringify(next);\n if (scope && prev !== next) {\n var _scope$prefix, _scope$name;\n var prefixes = (_scope$prefix = scope.prefix) !== null && _scope$prefix !== void 0 ? _scope$prefix : [];\n var names = (_scope$name = scope.name) !== null && _scope$name !== void 0 ? _scope$name : [];\n var list = prefixes.length === 0 ? names : Array.from(new Set([...Object.keys(prev), ...Object.keys(next)]));\n var _loop = function _loop(_name4) {\n if (prefixes.length === 0 || names.includes(_name4) || prefixes.some(prefix => isPrefix(_name4, prefix))) {\n var _cache$_name;\n (_cache$_name = cache[_name4]) !== null && _cache$_name !== void 0 ? _cache$_name : cache[_name4] = compareFn(prev[_name4], next[_name4]);\n if (cache[_name4]) {\n return {\n v: true\n };\n }\n }\n },\n _ret;\n for (var _name4 of list) {\n _ret = _loop(_name4);\n if (_ret) return _ret.v;\n }\n }\n return false;\n}\nfunction createFormContext(options) {\n var subscribers = [];\n var latestOptions = options;\n var meta = createFormMeta(options);\n var state = createFormState(meta);\n function getFormElement() {\n return document.forms.namedItem(latestOptions.formId);\n }\n function createFormState(next) {\n var prev = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : next;\n var state = arguments.length > 2 ? arguments[2] : undefined;\n var defaultValue = !state || prev.defaultValue !== next.defaultValue ? createValueProxy(next.defaultValue) : state.defaultValue;\n var initialValue = next.initialValue === next.defaultValue ? defaultValue : !state || prev.initialValue !== next.initialValue ? createValueProxy(next.initialValue) : state.initialValue;\n var value = next.value === next.initialValue ? initialValue : !state || prev.value !== next.value ? createValueProxy(next.value) : state.value;\n return {\n submissionStatus: next.submissionStatus,\n defaultValue,\n initialValue,\n value,\n error: !state || prev.error !== next.error ? next.error : state.error,\n validated: next.validated,\n constraint: !state || prev.constraint !== next.constraint ? createConstraintProxy(next.constraint) : state.constraint,\n key: !state || prev.key !== next.key ? createKeyProxy(next.key) : state.key,\n valid: !state || prev.error !== next.error ? createValidProxy(next.error) : state.valid,\n dirty: !state || prev.defaultValue !== next.defaultValue || prev.value !== next.value ? createDirtyProxy(defaultValue, value, key => {\n var _latestOptions$should, _latestOptions$should2;\n return (_latestOptions$should = (_latestOptions$should2 = latestOptions.shouldDirtyConsider) === null || _latestOptions$should2 === void 0 ? void 0 : _latestOptions$should2.call(latestOptions, key)) !== null && _latestOptions$should !== void 0 ? _latestOptions$should : true;\n }) : state.dirty\n };\n }\n function updateFormMeta(nextMeta) {\n var prevMeta = meta;\n var prevState = state;\n var nextState = createFormState(nextMeta, prevMeta, prevState);\n\n // Apply change before notifying subscribers\n meta = nextMeta;\n state = nextState;\n var cache = {\n value: {},\n error: {},\n initialValue: {},\n key: {},\n valid: {},\n dirty: {}\n };\n for (var subscriber of subscribers) {\n var _subscriber$getSubjec;\n var subject = (_subscriber$getSubjec = subscriber.getSubject) === null || _subscriber$getSubjec === void 0 ? void 0 : _subscriber$getSubjec.call(subscriber);\n if (!subject || subject.formId && prevMeta.formId !== nextMeta.formId || subject.status && prevState.submissionStatus !== nextState.submissionStatus || shouldNotify(prevState.error, nextState.error, cache.error, subject.error) || shouldNotify(prevState.initialValue, nextState.initialValue, cache.initialValue, subject.initialValue) || shouldNotify(prevState.key, nextState.key, cache.key, subject.key, (prev, next) => prev !== next) || shouldNotify(prevState.valid, nextState.valid, cache.valid, subject.valid, compareBoolean) || shouldNotify(prevState.dirty, nextState.dirty, cache.dirty, subject.dirty, compareBoolean) || shouldNotify(prevState.value, nextState.value, cache.value, subject.value)) {\n subscriber.callback();\n }\n }\n }\n function compareBoolean() {\n var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return prev !== next;\n }\n function getSerializedState() {\n return JSON.stringify({\n validated: meta.validated\n });\n }\n function submit(event) {\n var form = event.target;\n var submitter = event.submitter;\n invariant(form === getFormElement(), \"The submit event is dispatched by form#\".concat(form.id, \" instead of form#\").concat(latestOptions.formId));\n var formData = getFormData(form, submitter);\n var result = {\n formData,\n action: getFormAction(event),\n encType: getFormEncType(event),\n method: getFormMethod(event)\n };\n if (typeof (latestOptions === null || latestOptions === void 0 ? void 0 : latestOptions.onValidate) === 'undefined') {\n return result;\n }\n var submission = latestOptions.onValidate({\n form,\n formData,\n submitter\n });\n if (submission.status === 'success' || submission.error !== null) {\n var _result2 = submission.reply();\n report(_objectSpread2(_objectSpread2({}, _result2), {}, {\n status: _result2.status !== 'success' ? _result2.status : undefined\n }));\n }\n return _objectSpread2(_objectSpread2({}, result), {}, {\n submission\n });\n }\n function resolveTarget(event) {\n var form = getFormElement();\n var element = event.target;\n if (!form || !isFieldElement(element) || element.form !== form || !element.form.isConnected || element.name === '') {\n return null;\n }\n return element;\n }\n function willValidate(element, eventName) {\n var {\n shouldValidate = 'onSubmit',\n shouldRevalidate = shouldValidate\n } = latestOptions;\n var validated = meta.validated[element.name];\n return validated ? shouldRevalidate === eventName && (eventName === 'onInput' || meta.isValueUpdated) : shouldValidate === eventName;\n }\n function updateFormValue(form) {\n var formData = new FormData(form);\n var result = getSubmissionContext(formData);\n updateFormMeta(_objectSpread2(_objectSpread2({}, meta), {}, {\n isValueUpdated: true,\n value: result.payload\n }));\n }\n function onInput(event) {\n var element = resolveTarget(event);\n if (!element || !element.form) {\n return;\n }\n if (event.defaultPrevented || !willValidate(element, 'onInput')) {\n updateFormValue(element.form);\n } else {\n dispatch({\n type: 'validate',\n payload: {\n name: element.name\n }\n });\n }\n }\n function onBlur(event) {\n var element = resolveTarget(event);\n if (!element || event.defaultPrevented || !willValidate(element, 'onBlur')) {\n return;\n }\n dispatch({\n type: 'validate',\n payload: {\n name: element.name\n }\n });\n }\n function reset() {\n updateFormMeta(createFormMeta(latestOptions, true));\n }\n function onReset(event) {\n var element = getFormElement();\n if (event.type !== 'reset' || event.target !== element || event.defaultPrevented) {\n return;\n }\n reset();\n }\n function report(result) {\n var _result$error, _result$state;\n var formElement = getFormElement();\n if (!result.initialValue) {\n reset();\n return;\n }\n var error = Object.entries((_result$error = result.error) !== null && _result$error !== void 0 ? _result$error : {}).reduce((result, _ref5) => {\n var [name, newError] = _ref5;\n var error = newError === null ? meta.error[name] : newError;\n if (error) {\n result[name] = error;\n }\n return result;\n }, {});\n var update = _objectSpread2(_objectSpread2({}, meta), {}, {\n isValueUpdated: false,\n submissionStatus: result.status,\n value: result.initialValue,\n validated: _objectSpread2(_objectSpread2({}, meta.validated), (_result$state = result.state) === null || _result$state === void 0 ? void 0 : _result$state.validated),\n error\n });\n handleIntent(update, result.intent, result.fields, true);\n updateFormMeta(update);\n if (formElement && result.status === 'error') {\n for (var element of formElement.elements) {\n if (isFieldElement(element) && meta.error[element.name]) {\n element.focus();\n break;\n }\n }\n }\n }\n function onUpdate(options) {\n var currentFormId = latestOptions.formId;\n var currentResult = latestOptions.lastResult;\n\n // Merge new options with the latest options\n Object.assign(latestOptions, options);\n if (latestOptions.formId !== currentFormId) {\n reset();\n } else if (options.lastResult && options.lastResult !== currentResult) {\n report(options.lastResult);\n }\n }\n function subscribe(callback, getSubject) {\n var subscriber = {\n callback,\n getSubject\n };\n subscribers.push(subscriber);\n return () => {\n subscribers = subscribers.filter(current => current !== subscriber);\n };\n }\n function getState() {\n return state;\n }\n function dispatch(intent) {\n var form = getFormElement();\n var submitter = document.createElement('button');\n var buttonProps = getControlButtonProps(intent);\n submitter.name = buttonProps.name;\n submitter.value = buttonProps.value;\n submitter.hidden = true;\n submitter.formNoValidate = true;\n form === null || form === void 0 || form.appendChild(submitter);\n requestSubmit(form, submitter);\n form === null || form === void 0 || form.removeChild(submitter);\n }\n function getControlButtonProps(intent) {\n return {\n name: INTENT,\n value: serializeIntent(intent),\n form: latestOptions.formId,\n formNoValidate: true\n };\n }\n function createFormControl(type) {\n var control = function control() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return dispatch({\n type,\n payload\n });\n };\n return Object.assign(control, {\n getButtonProps() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return getControlButtonProps({\n type,\n payload\n });\n }\n });\n }\n function observe() {\n var observer = new MutationObserver(mutations => {\n var form = getFormElement();\n if (!form) {\n return;\n }\n for (var mutation of mutations) {\n var nodes = mutation.type === 'childList' ? [...mutation.addedNodes, ...mutation.removedNodes] : [mutation.target];\n for (var node of nodes) {\n var element = isFieldElement(node) ? node : node instanceof HTMLElement ? node.querySelector('input,select,textarea') : null;\n if ((element === null || element === void 0 ? void 0 : element.form) === form) {\n updateFormValue(form);\n return;\n }\n }\n }\n });\n observer.observe(document, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: ['form', 'name']\n });\n return () => {\n observer.disconnect();\n };\n }\n return {\n getFormId() {\n return meta.formId;\n },\n submit,\n onReset,\n onInput,\n onBlur,\n onUpdate,\n validate: createFormControl('validate'),\n reset: createFormControl('reset'),\n update: createFormControl('update'),\n insert: createFormControl('insert'),\n remove: createFormControl('remove'),\n reorder: createFormControl('reorder'),\n subscribe,\n getState,\n getSerializedState,\n observe\n };\n}\n\nexport { createFormContext };\n","function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nexport { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { STATE, formatPaths, getPaths, unstable_createFormContext, INTENT, isPrefix } from '@conform-to/dom';\nimport { useContext, useMemo, createContext, useCallback, useSyncExternalStore, useRef } from 'react';\nimport { jsx } from 'react/jsx-runtime';\n\nvar Form = /*#__PURE__*/createContext([]);\n\n// To hide the FormContext type from the public API\nvar wrappedSymbol = Symbol('wrapped');\nfunction getWrappedFormContext(context) {\n return context[wrappedSymbol];\n}\nfunction useFormContext(formId) {\n var contexts = useContext(Form);\n var form = formId ? contexts.find(context => formId === context.getFormId()) : contexts[0];\n if (!form) {\n throw new Error('Form context is not available');\n }\n return form;\n}\nfunction useFormState(form, subjectRef) {\n var subscribe = useCallback(callback => form.subscribe(callback, () => subjectRef === null || subjectRef === void 0 ? void 0 : subjectRef.current), [form, subjectRef]);\n return useSyncExternalStore(subscribe, form.getState, form.getState);\n}\nfunction FormProvider(props) {\n var forms = useContext(Form);\n var context = getWrappedFormContext(props.context);\n var value = useMemo(() => [context].concat(forms),\n // Put the latest form context first\n [forms, context]);\n return /*#__PURE__*/jsx(Form.Provider, {\n value: value,\n children: props.children\n });\n}\nfunction FormStateInput(props) {\n var context = useFormContext(props.formId);\n return /*#__PURE__*/jsx(\"input\", {\n type: \"hidden\",\n name: STATE,\n value: context.getSerializedState(),\n form: props.formId\n });\n}\nfunction useSubjectRef() {\n var initialSubject = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var subjectRef = useRef(initialSubject);\n\n // Reset the subject everytime the component is rerendered\n // This let us subscribe to data used in the last render only\n subjectRef.current = initialSubject;\n return subjectRef;\n}\nfunction updateSubjectRef(ref, subject, scope, name) {\n if (subject === 'status' || subject === 'formId') {\n ref.current[subject] = true;\n } else if (typeof scope !== 'undefined' && typeof name !== 'undefined') {\n var _ref$current$subject$, _ref$current$subject;\n ref.current[subject] = _objectSpread2(_objectSpread2({}, ref.current[subject]), {}, {\n [scope]: ((_ref$current$subject$ = (_ref$current$subject = ref.current[subject]) === null || _ref$current$subject === void 0 ? void 0 : _ref$current$subject[scope]) !== null && _ref$current$subject$ !== void 0 ? _ref$current$subject$ : []).concat(name)\n });\n }\n}\nfunction getMetadata(context, subjectRef, stateSnapshot) {\n var name = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var id = name ? \"\".concat(context.getFormId(), \"-\").concat(name) : context.getFormId();\n var state = context.getState();\n return new Proxy({\n id,\n name,\n errorId: \"\".concat(id, \"-error\"),\n descriptionId: \"\".concat(id, \"-description\"),\n get initialValue() {\n return state.initialValue[name];\n },\n get value() {\n return state.value[name];\n },\n get errors() {\n return state.error[name];\n },\n get key() {\n return state.key[name];\n },\n get valid() {\n return state.valid[name];\n },\n get dirty() {\n return state.dirty[name];\n },\n get allErrors() {\n if (name === '') {\n return state.error;\n }\n var result = {};\n for (var [key, error] of Object.entries(state.error)) {\n if (isPrefix(key, name)) {\n result[key] = error;\n }\n }\n return result;\n },\n get getFieldset() {\n return () => new Proxy({}, {\n get(target, key, receiver) {\n if (typeof key === 'string') {\n return getFieldMetadata(context, subjectRef, stateSnapshot, name, key);\n }\n return Reflect.get(target, key, receiver);\n }\n });\n }\n }, {\n get(target, key, receiver) {\n // We want to minize re-render by identifying whether the field is used in a callback only\n // but there is no clear way to know if it is accessed during render or not\n // if the stateSnapshot is not the latest, then it must be accessed in a callback\n if (state === stateSnapshot) {\n switch (key) {\n case 'id':\n case 'errorId':\n case 'descriptionId':\n updateSubjectRef(subjectRef, 'formId');\n break;\n case 'key':\n case 'initialValue':\n case 'value':\n case 'valid':\n case 'dirty':\n updateSubjectRef(subjectRef, key, 'name', name);\n break;\n case 'errors':\n case 'allErrors':\n updateSubjectRef(subjectRef, 'error', key === 'errors' ? 'name' : 'prefix', name);\n break;\n }\n }\n return Reflect.get(target, key, receiver);\n }\n });\n}\nfunction getFieldMetadata(context, subjectRef, stateSnapshot) {\n var prefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var key = arguments.length > 4 ? arguments[4] : undefined;\n var name = typeof key === 'undefined' ? prefix : formatPaths([...getPaths(prefix), key]);\n return new Proxy({}, {\n get(_, key, receiver) {\n var _state$constraint$nam;\n var metadata = getMetadata(context, subjectRef, stateSnapshot, name);\n var state = context.getState();\n switch (key) {\n case 'formId':\n if (state === stateSnapshot) {\n updateSubjectRef(subjectRef, 'formId');\n }\n return context.getFormId();\n case 'required':\n case 'minLength':\n case 'maxLength':\n case 'min':\n case 'max':\n case 'pattern':\n case 'step':\n case 'multiple':\n return (_state$constraint$nam = state.constraint[name]) === null || _state$constraint$nam === void 0 ? void 0 : _state$constraint$nam[key];\n case 'getFieldList':\n {\n return () => {\n var _state$initialValue$n;\n var initialValue = (_state$initialValue$n = state.initialValue[name]) !== null && _state$initialValue$n !== void 0 ? _state$initialValue$n : [];\n if (state === stateSnapshot) {\n updateSubjectRef(subjectRef, 'initialValue', 'name', name);\n }\n if (!Array.isArray(initialValue)) {\n throw new Error('The initial value at the given name is not a list');\n }\n return Array(initialValue.length).fill(0).map((_, index) => getFieldMetadata(context, subjectRef, stateSnapshot, name, index));\n };\n }\n }\n return Reflect.get(metadata, key, receiver);\n }\n });\n}\nfunction getFormMetadata(context, subjectRef, stateSnapshot, noValidate) {\n return new Proxy({}, {\n get(_, key, receiver) {\n var metadata = getMetadata(context, subjectRef, stateSnapshot);\n var state = context.getState();\n switch (key) {\n case 'context':\n return {\n [wrappedSymbol]: context\n };\n case 'status':\n if (state === stateSnapshot) {\n updateSubjectRef(subjectRef, 'status');\n }\n return state.submissionStatus;\n case 'validate':\n case 'update':\n case 'reset':\n case 'insert':\n case 'remove':\n case 'reorder':\n return context[key];\n case 'onSubmit':\n return context.submit;\n case 'noValidate':\n return noValidate;\n }\n return Reflect.get(metadata, key, receiver);\n }\n });\n}\nfunction createFormContext(options) {\n var {\n onSubmit\n } = options;\n var context = unstable_createFormContext(options);\n return _objectSpread2(_objectSpread2({}, context), {}, {\n submit(event) {\n var submitEvent = event.nativeEvent;\n var result = context.submit(submitEvent);\n if (!result.submission || result.submission.status === 'success' || result.submission.error === null) {\n if (!result.formData.has(INTENT)) {\n var _onSubmit;\n (_onSubmit = onSubmit) === null || _onSubmit === void 0 || _onSubmit(event, result);\n }\n } else {\n event.preventDefault();\n }\n },\n onUpdate(options) {\n onSubmit = options.onSubmit;\n context.onUpdate(options);\n }\n });\n}\n\nexport { Form, FormProvider, FormStateInput, createFormContext, getFieldMetadata, getFormMetadata, getMetadata, getWrappedFormContext, updateSubjectRef, useFormContext, useFormState, useSubjectRef };\n","import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { useState, useEffect, useLayoutEffect, useId } from 'react';\nimport { createFormContext, useSubjectRef, useFormState, getFormMetadata, useFormContext, getFieldMetadata } from './context.mjs';\n\nvar _excluded = [\"id\"];\n\n/**\n * useLayoutEffect is client-only.\n * This basically makes it a no-op on server\n */\nvar useSafeLayoutEffect = typeof document === 'undefined' ? useEffect : useLayoutEffect;\nfunction useFormId(preferredId) {\n var id = useId();\n return preferredId !== null && preferredId !== void 0 ? preferredId : id;\n}\nfunction useNoValidate() {\n var defaultNoValidate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var [noValidate, setNoValidate] = useState(defaultNoValidate);\n useSafeLayoutEffect(() => {\n // This is necessary to fix an issue in strict mode with related to our proxy setup\n // It avoids the component from being rerendered without re-rendering the child\n // Which reset the proxy but failed to capture its usage within child component\n if (!noValidate) {\n setNoValidate(true);\n }\n }, [noValidate]);\n return noValidate;\n}\nfunction useForm(options) {\n var {\n id\n } = options,\n formConfig = _objectWithoutProperties(options, _excluded);\n var formId = useFormId(id);\n var [context] = useState(() => createFormContext(_objectSpread2(_objectSpread2({}, formConfig), {}, {\n formId\n })));\n useSafeLayoutEffect(() => {\n var disconnect = context.observe();\n document.addEventListener('input', context.onInput);\n document.addEventListener('focusout', context.onBlur);\n document.addEventListener('reset', context.onReset);\n return () => {\n disconnect();\n document.removeEventListener('input', context.onInput);\n document.removeEventListener('focusout', context.onBlur);\n document.removeEventListener('reset', context.onReset);\n };\n }, [context]);\n useSafeLayoutEffect(() => {\n context.onUpdate(_objectSpread2(_objectSpread2({}, formConfig), {}, {\n formId\n }));\n });\n var subjectRef = useSubjectRef();\n var stateSnapshot = useFormState(context, subjectRef);\n var noValidate = useNoValidate(options.defaultNoValidate);\n var form = getFormMetadata(context, subjectRef, stateSnapshot, noValidate);\n return [form, form.getFieldset()];\n}\nfunction useFormMetadata(formId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var subjectRef = useSubjectRef();\n var context = useFormContext(formId);\n var stateSnapshot = useFormState(context, subjectRef);\n var noValidate = useNoValidate(options.defaultNoValidate);\n return getFormMetadata(context, subjectRef, stateSnapshot, noValidate);\n}\nfunction useField(name) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var subjectRef = useSubjectRef();\n var context = useFormContext(options.formId);\n var stateSnapshot = useFormState(context, subjectRef);\n var field = getFieldMetadata(context, subjectRef, stateSnapshot, name);\n var form = getFormMetadata(context, subjectRef, stateSnapshot, false);\n return [field, form];\n}\n\nexport { useField, useForm, useFormId, useFormMetadata, useNoValidate, useSafeLayoutEffect };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\n\n/**\n * Cleanup `undefined` from the result.\n * To minimize conflicts when merging with user defined props\n */\nfunction simplify(props) {\n for (var key in props) {\n if (props[key] === undefined) {\n delete props[key];\n }\n }\n return props;\n}\n\n/**\n * Derives aria attributes of a form control based on the field metadata.\n */\nfunction getAriaAttributes(metadata) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (typeof options.ariaAttributes !== 'undefined' && !options.ariaAttributes) {\n return {};\n }\n var invalid = options.ariaInvalid === 'allErrors' ? !metadata.valid : typeof metadata.errors !== 'undefined';\n var ariaDescribedBy = options.ariaDescribedBy;\n return simplify({\n 'aria-invalid': invalid || undefined,\n 'aria-describedby': invalid ? \"\".concat(metadata.errorId, \" \").concat(ariaDescribedBy !== null && ariaDescribedBy !== void 0 ? ariaDescribedBy : '').trim() : ariaDescribedBy\n });\n}\n\n/**\n * Derives the properties of a form element based on the form metadata,\n * including `id`, `onSubmit`, `noValidate`, `aria-invalid` and `aria-describedby`.\n *\n * @example\n * ```tsx\n * <form {...getFormProps(metadata)} />\n * ```\n */\nfunction getFormProps(metadata, options) {\n return simplify(_objectSpread2({\n id: metadata.id,\n onSubmit: metadata.onSubmit,\n noValidate: metadata.noValidate\n }, getAriaAttributes(metadata, options)));\n}\n\n/**\n * Derives the properties of a fieldset element based on the field metadata,\n * including `id`, `name`, `form`, `aria-invalid` and `aria-describedby`.\n *\n * @example\n * ```tsx\n * <fieldset {...getFieldsetProps(metadata)} />\n * ```\n */\nfunction getFieldsetProps(metadata, options) {\n return simplify(_objectSpread2({\n id: metadata.id,\n name: metadata.name,\n form: metadata.formId\n }, getAriaAttributes(metadata, options)));\n}\n\n/**\n * Derives common properties of a form control based on the field metadata,\n * including `key`, `id`, `name`, `form`, `required`, `autoFocus`, `aria-invalid` and `aria-describedby`.\n */\nfunction getFormControlProps(metadata, options) {\n return simplify(_objectSpread2({\n key: metadata.key,\n required: metadata.required || undefined\n }, getFieldsetProps(metadata, options)));\n}\n\n/**\n * Derives the properties of an input element based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby`\n * and constraint attributes such as `type`, `required`, `minLength`, `maxLength`, `min`, `max`, `step`, `pattern`, `multiple`.\n * Depends on the provided options, it will also set `defaultChecked` / `checked` if it is a checkbox or radio button,\n * or otherwise `defaultValue` / `value`.\n *\n * @see https://conform.guide/api/react/getInputProps\n * @example\n * ```tsx\n * // To setup an uncontrolled input\n * <input {...getInputProps(metadata, { type: 'text' })} />\n * // To setup an uncontrolled checkbox\n * <input {...getInputProps(metadata, { type: 'checkbox' })} />\n * // To setup an input without defaultValue\n * <input {...getInputProps(metadata, { value: false })} />\n * // To setup a radio button without defaultChecked state\n * <input {...getInputProps(metadata, { type: 'radio', value: false })} />\n * ```\n */\nfunction getInputProps(metadata, options) {\n var props = _objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n type: options.type,\n minLength: metadata.minLength,\n maxLength: metadata.maxLength,\n min: metadata.min,\n max: metadata.max,\n step: metadata.step,\n pattern: metadata.pattern,\n multiple: metadata.multiple\n });\n if (typeof options.value === 'undefined' || options.value) {\n if (options.type === 'checkbox' || options.type === 'radio') {\n props.value = typeof options.value === 'string' ? options.value : 'on';\n props.defaultChecked = Array.isArray(metadata.initialValue) ? metadata.initialValue.includes(options.value) : metadata.initialValue === props.value;\n } else if (typeof metadata.initialValue === 'string') {\n props.defaultValue = metadata.initialValue;\n }\n }\n return simplify(props);\n}\n\n/**\n * Derives the properties of a select element based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby`\n * and constraint attributes such as `required` or `multiple`.\n * Depends on the provided options, it will also set `defaultValue` / `value`.\n *\n * @see https://conform.guide/api/react/getSelectProps\n * @example\n * ```tsx\n * // To setup an uncontrolled select\n * <select {...getSelectProps(metadata)} />\n * // To setup a select without defaultValue\n * <select {...getSelectProps(metadata, { value: false })} />\n * ```\n */\nfunction getSelectProps(metadata) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var props = _objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n multiple: metadata.multiple\n });\n if (typeof options.value === 'undefined' || options.value) {\n var _metadata$initialValu;\n props.defaultValue = Array.isArray(metadata.initialValue) ? metadata.initialValue.map(item => \"\".concat(item !== null && item !== void 0 ? item : '')) : (_metadata$initialValu = metadata.initialValue) === null || _metadata$initialValu === void 0 ? void 0 : _metadata$initialValu.toString();\n }\n return simplify(props);\n}\n\n/**\n * Derives the properties of a textarea element based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby`\n * and constraint attributes such as `required`, `minLength` or `maxLength`.\n * Depends on the provided options, it will also set `defaultValue` / `value`.\n *\n * @see https://conform.guide/api/react/getTextareaProps\n * @example\n * ```tsx\n * // To setup an uncontrolled textarea\n * <textarea {...getTextareaProps(metadata)} />\n * // To setup a textarea without defaultValue\n * <textarea {...getTextareaProps(metadata, { value: false })} />\n * ```\n */\nfunction getTextareaProps(metadata) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var props = _objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n minLength: metadata.minLength,\n maxLength: metadata.maxLength\n });\n if (typeof options.value === 'undefined' || options.value) {\n var _metadata$initialValu2;\n props.defaultValue = (_metadata$initialValu2 = metadata.initialValue) === null || _metadata$initialValu2 === void 0 ? void 0 : _metadata$initialValu2.toString();\n }\n return simplify(props);\n}\n\n/**\n * Derives the properties of a collection of checkboxes or radio buttons based on the field metadata,\n * including common form control attributes like `key`, `id`, `name`, `form`, `autoFocus`, `aria-invalid`, `aria-describedby` and `required`.\n *\n * @see https://conform.guide/api/react/getCollectionProps\n * @example\n * ```tsx\n * <fieldset>\n * {getCollectionProps(metadata, {\n * type: 'checkbox',\n * options: ['a', 'b', 'c']\n * }).map((props) => (\n * <div key={props.key}>\n * <label htmlFor={props.id}>{props.value}</label>\n * <input {...props} />\n * </div>\n * ))}\n * </fieldset>\n * ```\n */\nfunction getCollectionProps(metadata, options) {\n return options.options.map(value => {\n var _metadata$key;\n return simplify(_objectSpread2(_objectSpread2({}, getFormControlProps(metadata, options)), {}, {\n key: \"\".concat((_metadata$key = metadata.key) !== null && _metadata$key !== void 0 ? _metadata$key : '').concat(value),\n id: \"\".concat(metadata.id, \"-\").concat(value),\n type: options.type,\n value,\n defaultChecked: typeof options.value === 'undefined' || options.value ? options.type === 'checkbox' && Array.isArray(metadata.initialValue) ? metadata.initialValue.includes(value) : metadata.initialValue === value : undefined,\n // The required attribute doesn't make sense for checkbox group\n // As it would require all checkboxes to be checked instead of at least one\n // It is overriden with `undefiend` so it could be cleaned up properly\n required: options.type === 'checkbox' ? undefined : metadata.required\n }));\n });\n}\n\nexport { getAriaAttributes, getCollectionProps, getFieldsetProps, getFormControlProps, getFormProps, getInputProps, getSelectProps, getTextareaProps };\n","function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nexport { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };\n","import { objectSpread2 as _objectSpread2 } from './_virtual/_rollupPluginBabelHelpers.mjs';\nimport { any, ZodArray, ZodObject, ZodEffects, ZodOptional, ZodDefault, ZodCatch, ZodIntersection, ZodUnion, ZodDiscriminatedUnion, ZodTuple, ZodNullable, ZodPipeline, lazy } from 'zod';\n\n/**\n * Helpers for coercing string value\n * Modify the value only if it's a string, otherwise return the value as-is\n */\nfunction coerceString(value, transform) {\n if (typeof value !== 'string') {\n return value;\n }\n if (value === '') {\n return undefined;\n }\n if (typeof transform !== 'function') {\n return value;\n }\n return transform(value);\n}\n\n/**\n * Helpers for coercing file\n * Modify the value only if it's a file, otherwise return the value as-is\n */\nfunction coerceFile(file) {\n if (typeof File !== 'undefined' && file instanceof File && file.name === '' && file.size === 0) {\n return undefined;\n }\n return file;\n}\n\n/**\n * A file schema is usually defined as `z.instanceof(File)`\n * which is implemented based on ZodAny with `superRefine`\n * Check the `instanceOfType` function on zod for more info\n */\nfunction isFileSchema(schema) {\n if (typeof File === 'undefined') {\n return false;\n }\n return schema._def.effect.type === 'refinement' && schema.innerType()._def.typeName === 'ZodAny' && schema.safeParse(new File([], '')).success && !schema.safeParse('').success;\n}\n\n/**\n * Reconstruct the provided schema with additional preprocessing steps\n * This coerce empty values to undefined and transform strings to the correct type\n */\nfunction enableTypeCoercion(type) {\n var cache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Map();\n var result = cache.get(type);\n\n // Return the cached schema if it's already processed\n // This is to prevent infinite recursion caused by z.lazy()\n if (result) {\n return result;\n }\n var schema = type;\n var def = type._def;\n if (def.typeName === 'ZodString' || def.typeName === 'ZodLiteral' || def.typeName === 'ZodEnum' || def.typeName === 'ZodNativeEnum') {\n schema = any().transform(value => coerceString(value)).pipe(type);\n } else if (def.typeName === 'ZodNumber') {\n schema = any().transform(value => coerceString(value, text => text.trim() === '' ? Number.NaN : Number(text))).pipe(type);\n } else if (def.typeName === 'ZodBoolean') {\n schema = any().transform(value => coerceString(value, text => text === 'on' ? true : text)).pipe(type);\n } else if (def.typeName === 'ZodDate') {\n schema = any().transform(value => coerceString(value, timestamp => {\n var date = new Date(timestamp);\n\n // z.date() does not expose a quick way to set invalid_date error\n // This gets around it by returning the original string if it's invalid\n // See https://github.com/colinhacks/zod/issues/1526\n if (isNaN(date.getTime())) {\n return timestamp;\n }\n return date;\n })).pipe(type);\n } else if (def.typeName === 'ZodBigInt') {\n schema = any().transform(value => coerceString(value, BigInt)).pipe(type);\n } else if (def.typeName === 'ZodArray') {\n schema = any().transform(value => {\n // No preprocess needed if the value is already an array\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === 'undefined' || typeof coerceFile(coerceString(value)) === 'undefined') {\n return [];\n }\n\n // Wrap it in an array otherwise\n return [value];\n }).pipe(new ZodArray(_objectSpread2(_objectSpread2({}, def), {}, {\n type: enableTypeCoercion(def.type, cache)\n })));\n } else if (def.typeName === 'ZodObject') {\n var _shape = Object.fromEntries(Object.entries(def.shape()).map(_ref => {\n var [key, def] = _ref;\n return [key,\n // @ts-expect-error see message above\n enableTypeCoercion(def, cache)];\n }));\n schema = new ZodObject(_objectSpread2(_objectSpread2({}, def), {}, {\n shape: () => _shape\n }));\n } else if (def.typeName === 'ZodEffects') {\n if (isFileSchema(type)) {\n schema = any().transform(value => coerceFile(value)).pipe(type);\n } else {\n schema = new ZodEffects(_objectSpread2(_objectSpread2({}, def), {}, {\n schema: enableTypeCoercion(def.schema, cache)\n }));\n }\n } else if (def.typeName === 'ZodOptional') {\n schema = any().transform(value => coerceFile(coerceString(value))).pipe(new ZodOptional(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, cache)\n })));\n } else if (def.typeName === 'ZodDefault') {\n schema = any().transform(value => coerceFile(coerceString(value))).pipe(new ZodDefault(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, cache)\n })));\n } else if (def.typeName === 'ZodCatch') {\n schema = new ZodCatch(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, cache)\n }));\n } else if (def.typeName === 'ZodIntersection') {\n schema = new ZodIntersection(_objectSpread2(_objectSpread2({}, def), {}, {\n left: enableTypeCoercion(def.left, cache),\n right: enableTypeCoercion(def.right, cache)\n }));\n } else if (def.typeName === 'ZodUnion') {\n schema = new ZodUnion(_objectSpread2(_objectSpread2({}, def), {}, {\n options: def.options.map(option => enableTypeCoercion(option, cache))\n }));\n } else if (def.typeName === 'ZodDiscriminatedUnion') {\n schema = new ZodDiscriminatedUnion(_objectSpread2(_objectSpread2({}, def), {}, {\n options: def.options.map(option => enableTypeCoercion(option, cache)),\n optionsMap: new Map(Array.from(def.optionsMap.entries()).map(_ref2 => {\n var [discriminator, option] = _ref2;\n return [discriminator, enableTypeCoercion(option, cache)];\n }))\n }));\n } else if (def.typeName === 'ZodTuple') {\n schema = new ZodTuple(_objectSpread2(_objectSpread2({}, def), {}, {\n items: def.items.map(item => enableTypeCoercion(item, cache))\n }));\n } else if (def.typeName === 'ZodNullable') {\n schema = new ZodNullable(_objectSpread2(_objectSpread2({}, def), {}, {\n innerType: enableTypeCoercion(def.innerType, cache)\n }));\n } else if (def.typeName === 'ZodPipeline') {\n schema = new ZodPipeline(_objectSpread2(_objectSpread2({}, def), {}, {\n in: enableTypeCoercion(def.in, cache),\n out: enableTypeCoercion(def.out, cache)\n }));\n } else if (def.typeName === 'ZodLazy') {\n var inner = def.getter();\n schema = lazy(() => enableTypeCoercion(inner, cache));\n }\n if (type !== schema) {\n cache.set(type, schema);\n }\n return schema;\n}\n\nexport { coerceFile, coerceString, enableTypeCoercion, isFileSchema };\n","import { parse, formatPaths } from '@conform-to/dom';\nimport { enableTypeCoercion } from './coercion.mjs';\n\nfunction getError(zodError, formatError) {\n var result = {};\n for (var issue of zodError.errors) {\n var name = formatPaths(issue.path);\n switch (issue.message) {\n case conformZodMessage.VALIDATION_UNDEFINED:\n return null;\n case conformZodMessage.VALIDATION_SKIPPED:\n result[name] = null;\n break;\n default:\n {\n var _issues = result[name];\n if (_issues !== null) {\n if (_issues) {\n result[name] = _issues.concat(issue);\n } else {\n result[name] = [issue];\n }\n }\n break;\n }\n }\n }\n return Object.entries(result).reduce((result, _ref) => {\n var [name, issues] = _ref;\n result[name] = issues ? formatError(issues) : null;\n return result;\n }, {});\n}\nfunction parseWithZod(payload, options) {\n return parse(payload, {\n resolve(payload, intent) {\n var errorMap = options.errorMap;\n var schema = enableTypeCoercion(typeof options.schema === 'function' ? options.schema(intent) : options.schema);\n var resolveSubmission = result => {\n var _options$formatError;\n return {\n value: result.success ? result.data : undefined,\n error: !result.success ? getError(result.error, (_options$formatError = options.formatError) !== null && _options$formatError !== void 0 ? _options$formatError : issues => issues.map(issue => issue.message)) : undefined\n };\n };\n return options.async ? schema.safeParseAsync(payload, {\n errorMap\n }).then(result => resolveSubmission(result)) : resolveSubmission(schema.safeParse(payload, {\n errorMap\n }));\n }\n });\n}\nvar conformZodMessage = {\n VALIDATION_SKIPPED: '__skipped__',\n VALIDATION_UNDEFINED: '__undefined__'\n};\n\nexport { conformZodMessage, parseWithZod };\n","export function getHintUtils(hints) {\n function getCookieValue(cookieString, name) {\n const hint = hints[name];\n if (!hint) {\n throw new Error(`Unknown client hint: ${typeof name === 'string' ? name : 'Unknown'}`);\n }\n const value = cookieString\n .split(';')\n .map((c) => c.trim())\n .find((c) => c.startsWith(hint.cookieName + '='))\n ?.split('=')[1];\n return value ? decodeURIComponent(value) : null;\n }\n function getHints(request) {\n const cookieString = typeof document !== 'undefined'\n ? document.cookie\n : typeof request !== 'undefined'\n ? request.headers.get('Cookie') ?? ''\n : '';\n return Object.entries(hints).reduce((acc, [name, hint]) => {\n const hintName = name;\n if ('transform' in hint) {\n // @ts-expect-error - this is fine (PRs welcome though)\n acc[hintName] = hint.transform(getCookieValue(cookieString, hintName) ?? hint.fallback);\n }\n else {\n // @ts-expect-error - this is fine (PRs welcome though)\n acc[hintName] = getCookieValue(cookieString, hintName) ?? hint.fallback;\n }\n return acc;\n }, {});\n }\n /**\n * This returns a string of JavaScript that can be used to check if the client\n * hints have changed and will reload the page if they have.\n */\n function getClientHintCheckScript() {\n return `\n// This block of code allows us to check if the client hints have changed and\n// force a reload of the page with updated hints if they have so you don't get\n// a flash of incorrect content.\nfunction checkClientHints() {\n\tif (!navigator.cookieEnabled) return;\n\n\t// set a short-lived cookie to make sure we can set cookies\n\tdocument.cookie = \"canSetCookies=1; Max-Age=60; SameSite=Lax\";\n\tconst canSetCookies = document.cookie.includes(\"canSetCookies=1\");\n\tdocument.cookie = \"canSetCookies=; Max-Age=-1; path=/\";\n\tif (!canSetCookies) return;\n\n\tconst cookies = document.cookie.split(';').map(c => c.trim()).reduce((acc, cur) => {\n\t\tconst [key, value] = cur.split('=');\n\t\tacc[key] = value;\n\t\treturn acc;\n\t}, {});\n\n\tlet cookieChanged = false;\n\tconst hints = [\n\t${Object.values(hints)\n .map((hint) => {\n const cookieName = JSON.stringify(hint.cookieName);\n return `{ name: ${cookieName}, actual: String(${hint.getValueCode}), value: cookies[${cookieName}] != null ? cookies[${cookieName}] : encodeURIComponent(\"${hint.fallback}\") }`;\n })\n .join(',\\n')}\n\t];\n\tfor (const hint of hints) {\n\t\tdocument.cookie = encodeURIComponent(hint.name) + '=' + encodeURIComponent(hint.actual) + '; Max-Age=31536000; path=/';\n\t\tif (decodeURIComponent(hint.value) !== hint.actual) {\n\t\t\tcookieChanged = true;\n\t\t}\n\t}\n\tif (cookieChanged) window.location.reload();\n}\n\ncheckClientHints();\n`;\n }\n return { getHints, getClientHintCheckScript };\n}\n","export const clientHint = {\n cookieName: 'CH-prefers-color-scheme',\n getValueCode: `window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'`,\n fallback: 'light',\n transform(value) {\n return value === 'dark' ? 'dark' : 'light';\n },\n};\n/**\n * Subscribe to changes in the user's color scheme preference. Optionally pass\n * in a cookie name to use for the cookie that will be set if different from the\n * default.\n */\nexport function subscribeToSchemeChange(subscriber, cookieName = clientHint.cookieName) {\n const schemaMatch = window.matchMedia('(prefers-color-scheme: dark)');\n function handleThemeChange() {\n const value = schemaMatch.matches ? 'dark' : 'light';\n document.cookie = `${cookieName}=${value}; Max-Age=31536000; Path=/`;\n subscriber(value);\n }\n schemaMatch.addEventListener('change', handleThemeChange);\n return function cleanupSchemaChange() {\n schemaMatch.removeEventListener('change', handleThemeChange);\n };\n}\n","export const clientHint = {\n cookieName: 'CH-reduced-motion',\n getValueCode: `window.matchMedia('(prefers-reduced-motion: reduce)').matches ? 'reduce' : 'no-preference'`,\n fallback: 'no-preference',\n transform(value) {\n return value === 'reduce' ? 'reduce' : 'no-preference';\n },\n};\n/**\n * Subscribe to changes in the user's motion preference. Optionally pass\n * in a cookie name to use for the cookie that will be set if different from the\n * default.\n */\nexport function subscribeToMotionChange(subscriber, cookieName = clientHint.cookieName) {\n const motionMatch = window.matchMedia('(prefers-reduced-motion: reduce)');\n function handleMotionChange() {\n const value = motionMatch.matches ? 'reduce' : 'no-preference';\n document.cookie = `${cookieName}=${value}; Max-Age=31536000; Path=/`;\n subscriber(value);\n }\n motionMatch.addEventListener('change', handleMotionChange);\n return function cleanupMotionChange() {\n motionMatch.removeEventListener('change', handleMotionChange);\n };\n}\n","export const clientHint = {\n cookieName: 'CH-time-zone',\n getValueCode: 'Intl.DateTimeFormat().resolvedOptions().timeZone',\n fallback: 'UTC',\n};\n","/**\n * This file contains utilities for using client hints for user preference which\n * are needed by the server, but are only known by the browser.\n */\nimport { getHintUtils } from '@epic-web/client-hints'\nimport {\n\tclientHint as colorSchemeHint,\n\tsubscribeToSchemeChange,\n} from '@epic-web/client-hints/color-scheme'\nimport {\n\tclientHint as reducedMotionHint,\n\tsubscribeToMotionChange,\n} from '@epic-web/client-hints/reduced-motion'\nimport { clientHint as timeZoneHint } from '@epic-web/client-hints/time-zone'\nimport { useRevalidator } from '@remix-run/react'\nimport * as React from 'react'\nimport { useRequestInfo } from './request-info.ts'\n\nconst themeCookieName = 'EpicShop_CH-prefers-color-scheme'\nconst motionCookieName = 'EpicShop_CH-reduced-motion'\nconst hintsUtils = getHintUtils({\n\ttheme: {\n\t\t...colorSchemeHint,\n\t\tcookieName: themeCookieName,\n\t},\n\ttimeZone: {\n\t\t...timeZoneHint,\n\t\tcookieName: 'EpicShop_CH-time-zone',\n\t},\n\treducedMotion: {\n\t\t...reducedMotionHint,\n\t\tcookieName: motionCookieName,\n\t},\n\t// add other hints here\n})\n\nexport const { getHints } = hintsUtils\n\n/**\n * @returns an object with the client hints and their values\n */\nexport function useHints() {\n\tconst requestInfo = useRequestInfo()\n\treturn requestInfo.hints\n}\n\n/**\n * @returns inline script element that checks for client hints and sets cookies\n * if they are not set then reloads the page if any cookie was set to an\n * inaccurate value.\n */\nexport function ClientHintCheck() {\n\tconst { revalidate } = useRevalidator()\n\tReact.useEffect(\n\t\t() => subscribeToSchemeChange(() => revalidate(), themeCookieName),\n\t\t[revalidate],\n\t)\n\tReact.useEffect(\n\t\t() => subscribeToMotionChange(() => revalidate(), motionCookieName),\n\t\t[revalidate],\n\t)\n\n\treturn (\n\t\t<script\n\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t__html: hintsUtils.getClientHintCheckScript(),\n\t\t\t}}\n\t\t/>\n\t)\n}\n","export type ListOfErrors = Array<string | null | undefined> | null | undefined\n\nexport function ErrorList({\n\tid,\n\terrors,\n}: {\n\terrors?: ListOfErrors\n\tid?: string\n}) {\n\tconst errorsToRender = errors?.filter(Boolean)\n\tif (!errorsToRender?.length) return null\n\treturn (\n\t\t<ul id={id} className=\"space-y-1\">\n\t\t\t{errorsToRender.map((e) => (\n\t\t\t\t<li key={e} className=\"text-danger text-[10px]\">\n\t\t\t\t\t{e}\n\t\t\t\t</li>\n\t\t\t))}\n\t\t</ul>\n\t)\n}\n","import { getFormProps, useForm } from '@conform-to/react'\nimport { parseWithZod } from '@conform-to/zod'\nimport { json, type ActionFunctionArgs } from '@remix-run/node'\nimport { useFetcher, useFetchers } from '@remix-run/react'\nimport { z } from 'zod'\nimport { Icon } from '#app/components/icons.tsx'\nimport { SimpleTooltip } from '#app/components/ui/tooltip.tsx'\nimport { useHints } from '#app/utils/client-hints.tsx'\nimport { ErrorList } from '#app/utils/forms.tsx'\nimport { jsonWithPE, usePERedirectInput } from '#app/utils/pe.js'\nimport { useRequestInfo } from '#app/utils/request-info.ts'\nimport { setTheme } from './theme-session.server.ts'\n\nconst ROUTE_PATH = '/theme'\n\nconst ThemeFormSchema = z.object({\n\ttheme: z.enum(['system', 'light', 'dark']),\n})\n\nexport async function action({ request }: ActionFunctionArgs) {\n\tconst formData = await request.formData()\n\tconst submission = parseWithZod(formData, {\n\t\tschema: ThemeFormSchema,\n\t})\n\tif (submission.status !== 'success') {\n\t\treturn json(submission.reply(), {\n\t\t\t// You can also use the status to determine the HTTP status code\n\t\t\tstatus: submission.status === 'error' ? 400 : 200,\n\t\t})\n\t}\n\tconst { theme } = submission.value\n\n\tconst responseInit = {\n\t\theaders: { 'set-cookie': setTheme(theme) },\n\t}\n\treturn jsonWithPE(formData, submission.reply(), responseInit)\n}\n\nexport function ThemeSwitch() {\n\tconst requestInfo = useRequestInfo()\n\tconst peRedirectInput = usePERedirectInput()\n\tconst fetcher = useFetcher<typeof action>()\n\n\tconst [form] = useForm({\n\t\tlastResult: fetcher.data,\n\t\tonValidate({ formData }) {\n\t\t\treturn parseWithZod(formData, { schema: ThemeFormSchema })\n\t\t},\n\t})\n\n\tconst mode = requestInfo.session.theme ?? 'system'\n\tconst nextMode =\n\t\tmode === 'system' ? 'light' : mode === 'light' ? 'dark' : 'system'\n\tconst modeLabel = {\n\t\tlight: <Icon size=\"md\" name=\"Sun\" title=\"Light mode\" />,\n\t\tdark: <Icon size=\"md\" name=\"Moon\" title=\"Dark mode\" />,\n\t\tsystem: <Icon size=\"md\" name=\"Laptop\" title=\"System mode\" />,\n\t}\n\n\treturn (\n\t\t<fetcher.Form method=\"POST\" action={ROUTE_PATH} {...getFormProps(form)}>\n\t\t\t<div className=\"flex gap-2\">\n\t\t\t\t{peRedirectInput}\n\t\t\t\t<input type=\"hidden\" name=\"theme\" value={nextMode} />\n\t\t\t\t<SimpleTooltip content={`Change theme from ${mode} mode`}>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tname=\"intent\"\n\t\t\t\t\t\tvalue=\"update-theme\"\n\t\t\t\t\t\tclassName=\"flex h-8 w-8 cursor-pointer items-center justify-center\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{modeLabel[mode]}\n\t\t\t\t\t</button>\n\t\t\t\t</SimpleTooltip>\n\t\t\t</div>\n\t\t\t<ErrorList errors={form.errors} id={form.errorId} />\n\t\t</fetcher.Form>\n\t)\n}\n\n/**\n * @returns the user's theme preference, or the client hint theme if the user\n * has not set a preference.\n */\nexport function useTheme() {\n\tconst hints = useHints()\n\tconst requestInfo = useRequestInfo()\n\tconst fetchers = useFetchers()\n\tconst fetcher = fetchers.find(\n\t\t(f) => f.formData?.get('intent') === 'update-theme',\n\t)\n\tconst optimisticTheme = fetcher?.formData?.get('theme')\n\tif (optimisticTheme === 'system') return hints.theme\n\tif (optimisticTheme === 'light' || optimisticTheme === 'dark') {\n\t\treturn optimisticTheme\n\t}\n\treturn requestInfo.session.theme ?? hints.theme\n}\n"],"names":["ownKeys","o","r","_objectSpread2","_defineProperty","obj","key","value","_toPropertyKey","_toPrimitive","input","hint","prim","res","arg","getFormData","form","submitter","payload","entries","getPaths","name","result","segment","index","formatPaths","paths","path","formatName","prefix","isPrefix","prefixPaths","setValue","target","valueFn","length","lastIndex","pointer","nextKey","newValue","getValue","isPlainObject","isFile","normalize","acceptFile","data","item","flatten","_options$resolve","options","resolve","process","i","_value","_options$prefix","invariant","expectedCondition","message","generateId","clone","isFormControl","element","isFieldElement","getFormAction","event","_ref","_submitter$getAttribu","getFormEncType","_submitter$getAttribu2","encType","getFormMethod","_ref2","_submitter$getAttribu3","method","requestSubmit","INTENT","STATE","getSubmissionContext","body","intent","state","context","getIntent","_loop","next","prev","parse","_name","setListValue","mergeResolveResult","resolved","createSubmission","replySubmission","_context$intent","_context$intent$paylo","_options$formErrors","_normalize","_value2","extraError","error","serializedIntent","control","serializeIntent","serialize","updateList","list","_intent$payload$index","root","setState","keys","_loop2","currentValue","_data$root","setListState","getDefaultValue","defaultValue","createFormMeta","initialized","_lastResult$initialVa","_options$constraint","_lastResult$state$val","_lastResult$state","lastResult","initialValue","getDefaultKey","handleIntent","setFieldsValidated","meta","fields","_fields$filter","validated","_name2","updateValue","_name3","validatedFields","_ref3","field","createStateProxy","fn","cache","_","receiver","_cache$name","createValueProxy","val","proxy","basename","parentValue","createConstraintProxy","constraint","_result","alternative","createKeyProxy","currentKey","parentKey","createValidProxy","createDirtyProxy","shouldDirtyConsider","_ref4","shouldNotify","scope","compareFn","_scope$prefix","_scope$name","prefixes","names","_name4","_cache$_name","_ret","createFormContext","subscribers","latestOptions","createFormState","getFormElement","_latestOptions$should","_latestOptions$should2","updateFormMeta","nextMeta","prevMeta","prevState","nextState","subscriber","_subscriber$getSubjec","subject","compareBoolean","getSerializedState","submit","formData","submission","_result2","report","resolveTarget","willValidate","eventName","shouldValidate","shouldRevalidate","updateFormValue","onInput","dispatch","onBlur","reset","onReset","_result$error","_result$state","formElement","_ref5","newError","update","onUpdate","currentFormId","currentResult","subscribe","callback","getSubject","current","getState","buttonProps","getControlButtonProps","createFormControl","type","observe","observer","mutations","mutation","nodes","node","_objectWithoutPropertiesLoose","source","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","wrappedSymbol","useFormState","subjectRef","useCallback","useSyncExternalStore","useSubjectRef","initialSubject","useRef","updateSubjectRef","ref","_ref$current$subject$","_ref$current$subject","getMetadata","stateSnapshot","id","getFieldMetadata","_state$constraint$nam","metadata","_state$initialValue$n","getFormMetadata","noValidate","onSubmit","unstable_createFormContext","submitEvent","_onSubmit","_excluded","useSafeLayoutEffect","useEffect","useLayoutEffect","useFormId","preferredId","useId","useNoValidate","defaultNoValidate","setNoValidate","useState","useForm","formConfig","formId","disconnect","simplify","props","getAriaAttributes","invalid","ariaDescribedBy","getFormProps","coerceString","transform","coerceFile","file","isFileSchema","schema","enableTypeCoercion","def","any","text","timestamp","date","ZodArray","_shape","ZodObject","ZodEffects","ZodOptional","ZodDefault","ZodCatch","ZodIntersection","ZodUnion","option","ZodDiscriminatedUnion","discriminator","ZodTuple","ZodNullable","ZodPipeline","inner","lazy","getError","zodError","formatError","issue","conformZodMessage","_issues","issues","parseWithZod","errorMap","resolveSubmission","_options$formatError","getHintUtils","hints","getCookieValue","cookieString","_a","c","getHints","request","acc","hintName","getClientHintCheckScript","cookieName","clientHint","subscribeToSchemeChange","schemaMatch","handleThemeChange","subscribeToMotionChange","motionMatch","handleMotionChange","themeCookieName","motionCookieName","hintsUtils","colorSchemeHint","timeZoneHint","reducedMotionHint","useHints","useRequestInfo","ClientHintCheck","revalidate","useRevalidator","React.useEffect","jsx","ErrorList","errors","errorsToRender","e","ROUTE_PATH","ThemeFormSchema","z","object","theme","enum","ThemeSwitch","requestInfo","peRedirectInput","usePERedirectInput","fetcher","useFetcher","onValidate","mode","session","nextMode","modeLabel","light","Icon","size","title","dark","system","jsxs","Form","action","children","className","SimpleTooltip","content","errorId","useTheme","useFetchers","find","f","get","optimisticTheme"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]}
|