@timeax/form-palette 0.0.2 → 0.0.4
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/dist/adapters/axios.d.ts +21 -0
- package/dist/adapters/axios.d.ts.map +1 -0
- package/dist/adapters/axios.js +74 -0
- package/dist/adapters/axios.js.map +1 -0
- package/dist/adapters/index.d.ts +35 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +74 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/inertia.d.ts +24 -0
- package/dist/adapters/inertia.d.ts.map +1 -0
- package/dist/adapters/inertia.js +126 -0
- package/dist/adapters/inertia.js.map +1 -0
- package/dist/core/adapter-registry.d.ts +30 -0
- package/dist/core/adapter-registry.d.ts.map +1 -0
- package/{src/core/adapter-registry.ts → dist/core/adapter-registry.js} +10 -28
- package/dist/core/adapter-registry.js.map +1 -0
- package/{src/core/bound/bind-host.ts → dist/core/bound/bind-host.d.ts} +2 -3
- package/dist/core/bound/bind-host.d.ts.map +1 -0
- package/dist/core/bound/bind-host.js +2 -0
- package/dist/core/bound/bind-host.js.map +1 -0
- package/dist/core/bound/observe-bound-field.d.ts +21 -0
- package/dist/core/bound/observe-bound-field.d.ts.map +1 -0
- package/dist/core/bound/observe-bound-field.js +116 -0
- package/dist/core/bound/observe-bound-field.js.map +1 -0
- package/dist/core/bound/wait-for-bound-field.d.ts +5 -0
- package/dist/core/bound/wait-for-bound-field.d.ts.map +1 -0
- package/dist/core/bound/wait-for-bound-field.js +35 -0
- package/dist/core/bound/wait-for-bound-field.js.map +1 -0
- package/{src/core/context.ts → dist/core/context.d.ts} +2 -6
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +11 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/core-provider.d.ts +22 -0
- package/dist/core/core-provider.d.ts.map +1 -0
- package/{src/core/core-provider.tsx → dist/core/core-provider.js} +209 -364
- package/dist/core/core-provider.js.map +1 -0
- package/dist/core/core-root.d.ts +26 -0
- package/dist/core/core-root.d.ts.map +1 -0
- package/dist/core/core-root.js +38 -0
- package/dist/core/core-root.js.map +1 -0
- package/dist/core/core-shell.d.ts +22 -0
- package/dist/core/core-shell.d.ts.map +1 -0
- package/dist/core/core-shell.js +8 -0
- package/dist/core/core-shell.js.map +1 -0
- package/{src/core/errors/error-strip.tsx → dist/core/errors/error-strip.d.ts} +2 -39
- package/dist/core/errors/error-strip.d.ts.map +1 -0
- package/dist/core/errors/error-strip.js +18 -0
- package/dist/core/errors/error-strip.js.map +1 -0
- package/dist/core/errors/index.d.ts +4 -0
- package/dist/core/errors/index.d.ts.map +1 -0
- package/dist/core/errors/index.js +4 -0
- package/dist/core/errors/index.js.map +1 -0
- package/dist/core/errors/map-error-bag.d.ts +24 -0
- package/dist/core/errors/map-error-bag.d.ts.map +1 -0
- package/{src/core/errors/map-error-bag.ts → dist/core/errors/map-error-bag.js} +10 -22
- package/dist/core/errors/map-error-bag.js.map +1 -0
- package/dist/core/errors/map-zod.d.ts +18 -0
- package/dist/core/errors/map-zod.d.ts.map +1 -0
- package/{src/core/errors/map-zod.ts → dist/core/errors/map-zod.js} +7 -19
- package/dist/core/errors/map-zod.js.map +1 -0
- package/dist/core/hooks/use-button.d.ts +73 -0
- package/dist/core/hooks/use-button.d.ts.map +1 -0
- package/dist/core/hooks/use-button.js +116 -0
- package/dist/core/hooks/use-button.js.map +1 -0
- package/dist/core/hooks/use-core-context.d.ts +9 -0
- package/dist/core/hooks/use-core-context.d.ts.map +1 -0
- package/{src/core/hooks/use-core-context.ts → dist/core/hooks/use-core-context.js} +3 -6
- package/dist/core/hooks/use-core-context.js.map +1 -0
- package/dist/core/hooks/use-core-utility.d.ts +1 -0
- package/dist/core/hooks/use-core-utility.d.ts.map +1 -0
- package/dist/core/hooks/use-core-utility.js +2 -0
- package/dist/core/hooks/use-core-utility.js.map +1 -0
- package/{src/core/hooks/use-core.ts → dist/core/hooks/use-core.d.ts} +9 -13
- package/dist/core/hooks/use-core.d.ts.map +1 -0
- package/dist/core/hooks/use-core.js +11 -0
- package/dist/core/hooks/use-core.js.map +1 -0
- package/dist/core/hooks/use-field.d.ts +141 -0
- package/dist/core/hooks/use-field.d.ts.map +1 -0
- package/dist/core/hooks/use-field.js +256 -0
- package/dist/core/hooks/use-field.js.map +1 -0
- package/dist/core/hooks/use-optional-field.d.ts +9 -0
- package/dist/core/hooks/use-optional-field.d.ts.map +1 -0
- package/dist/core/hooks/use-optional-field.js +146 -0
- package/dist/core/hooks/use-optional-field.js.map +1 -0
- package/dist/core/index.d.ts +11 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +11 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/registry/binder-registry.d.ts +38 -0
- package/dist/core/registry/binder-registry.d.ts.map +1 -0
- package/dist/core/registry/binder-registry.js +52 -0
- package/dist/core/registry/binder-registry.js.map +1 -0
- package/dist/core/registry/field-registry.d.ts +86 -0
- package/dist/core/registry/field-registry.d.ts.map +1 -0
- package/{src/core/registry/field-registry.ts → dist/core/registry/field-registry.js} +56 -70
- package/dist/core/registry/field-registry.js.map +1 -0
- package/dist/core/test.d.ts +2 -0
- package/dist/core/test.d.ts.map +1 -0
- package/dist/core/test.js +9 -0
- package/dist/core/test.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/{src/index.ts → dist/index.js} +5 -47
- package/dist/index.js.map +1 -0
- package/{src/input/index.ts → dist/input/index.d.ts} +1 -2
- package/dist/input/index.d.ts.map +1 -0
- package/dist/input/index.js +3 -0
- package/dist/input/index.js.map +1 -0
- package/dist/input/input-field.d.ts +15 -0
- package/dist/input/input-field.d.ts.map +1 -0
- package/dist/input/input-field.js +413 -0
- package/dist/input/input-field.js.map +1 -0
- package/dist/input/input-layout-graph.d.ts +77 -0
- package/dist/input/input-layout-graph.d.ts.map +1 -0
- package/dist/input/input-layout-graph.js +108 -0
- package/dist/input/input-layout-graph.js.map +1 -0
- package/{src/input/input-props.ts → dist/input/input-props.d.ts} +22 -84
- package/dist/input/input-props.d.ts.map +1 -0
- package/dist/input/input-props.js +4 -0
- package/dist/input/input-props.js.map +1 -0
- package/dist/lib/get-global-countries.d.ts +3 -0
- package/dist/lib/get-global-countries.d.ts.map +1 -0
- package/dist/lib/get-global-countries.js +70 -0
- package/dist/lib/get-global-countries.js.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/presets/index.d.ts +1 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +2 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/presets/shadcn-preset.d.ts +1 -0
- package/dist/presets/shadcn-preset.d.ts.map +1 -0
- package/dist/presets/shadcn-preset.js +2 -0
- package/dist/presets/shadcn-preset.js.map +1 -0
- package/dist/presets/shadcn-variants/checkbox.d.ts +212 -0
- package/dist/presets/shadcn-variants/checkbox.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/checkbox.js +315 -0
- package/dist/presets/shadcn-variants/checkbox.js.map +1 -0
- package/dist/presets/shadcn-variants/chips.d.ts +154 -0
- package/dist/presets/shadcn-variants/chips.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/chips.js +266 -0
- package/dist/presets/shadcn-variants/chips.js.map +1 -0
- package/dist/presets/shadcn-variants/color.d.ts +63 -0
- package/dist/presets/shadcn-variants/color.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/color.js +96 -0
- package/dist/presets/shadcn-variants/color.js.map +1 -0
- package/dist/presets/shadcn-variants/custom.d.ts +94 -0
- package/dist/presets/shadcn-variants/custom.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/custom.js +80 -0
- package/dist/presets/shadcn-variants/custom.js.map +1 -0
- package/dist/presets/shadcn-variants/date.d.ts +114 -0
- package/dist/presets/shadcn-variants/date.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/date.js +414 -0
- package/dist/presets/shadcn-variants/date.js.map +1 -0
- package/dist/presets/shadcn-variants/file.d.ts +79 -0
- package/dist/presets/shadcn-variants/file.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/file.js +289 -0
- package/dist/presets/shadcn-variants/file.js.map +1 -0
- package/dist/presets/shadcn-variants/keyvalue.d.ts +35 -0
- package/dist/presets/shadcn-variants/keyvalue.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/keyvalue.js +215 -0
- package/dist/presets/shadcn-variants/keyvalue.js.map +1 -0
- package/dist/presets/shadcn-variants/multiselect.d.ts +210 -0
- package/dist/presets/shadcn-variants/multiselect.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/multiselect.js +352 -0
- package/dist/presets/shadcn-variants/multiselect.js.map +1 -0
- package/dist/presets/shadcn-variants/number.d.ts +31 -0
- package/dist/presets/shadcn-variants/number.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/number.js +64 -0
- package/dist/presets/shadcn-variants/number.js.map +1 -0
- package/dist/presets/shadcn-variants/password.d.ts +195 -0
- package/dist/presets/shadcn-variants/password.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/password.js +296 -0
- package/dist/presets/shadcn-variants/password.js.map +1 -0
- package/dist/presets/shadcn-variants/phone.d.ts +69 -0
- package/dist/presets/shadcn-variants/phone.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/phone.js +308 -0
- package/dist/presets/shadcn-variants/phone.js.map +1 -0
- package/dist/presets/shadcn-variants/radio.d.ts +172 -0
- package/dist/presets/shadcn-variants/radio.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/radio.js +192 -0
- package/dist/presets/shadcn-variants/radio.js.map +1 -0
- package/dist/presets/shadcn-variants/select.d.ts +203 -0
- package/dist/presets/shadcn-variants/select.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/select.js +285 -0
- package/dist/presets/shadcn-variants/select.js.map +1 -0
- package/dist/presets/shadcn-variants/slider.d.ts +131 -0
- package/dist/presets/shadcn-variants/slider.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/slider.js +151 -0
- package/dist/presets/shadcn-variants/slider.js.map +1 -0
- package/dist/presets/shadcn-variants/text.d.ts +155 -0
- package/dist/presets/shadcn-variants/text.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/text.js +98 -0
- package/dist/presets/shadcn-variants/text.js.map +1 -0
- package/dist/presets/shadcn-variants/textarea.d.ts +18 -0
- package/dist/presets/shadcn-variants/textarea.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/textarea.js +24 -0
- package/dist/presets/shadcn-variants/textarea.js.map +1 -0
- package/dist/presets/shadcn-variants/toggle.d.ts +61 -0
- package/dist/presets/shadcn-variants/toggle.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/toggle.js +67 -0
- package/dist/presets/shadcn-variants/toggle.js.map +1 -0
- package/dist/presets/shadcn-variants/treeselect.d.ts +81 -0
- package/dist/presets/shadcn-variants/treeselect.d.ts.map +1 -0
- package/dist/presets/shadcn-variants/treeselect.js +317 -0
- package/dist/presets/shadcn-variants/treeselect.js.map +1 -0
- package/dist/presets/ui/badge.d.ts +10 -0
- package/dist/presets/ui/badge.d.ts.map +1 -0
- package/dist/presets/ui/badge.js +23 -0
- package/dist/presets/ui/badge.js.map +1 -0
- package/dist/presets/ui/button.d.ts +11 -0
- package/dist/presets/ui/button.d.ts.map +1 -0
- package/dist/presets/ui/button.js +34 -0
- package/dist/presets/ui/button.js.map +1 -0
- package/dist/presets/ui/calendar.d.ts +9 -0
- package/dist/presets/ui/calendar.d.ts.map +1 -0
- package/dist/presets/ui/calendar.js +76 -0
- package/dist/presets/ui/calendar.js.map +1 -0
- package/dist/presets/ui/checkbox.d.ts +18 -0
- package/dist/presets/ui/checkbox.d.ts.map +1 -0
- package/dist/presets/ui/checkbox.js +61 -0
- package/dist/presets/ui/checkbox.js.map +1 -0
- package/dist/presets/ui/custom.d.ts +1 -0
- package/dist/presets/ui/custom.d.ts.map +1 -0
- package/dist/presets/ui/custom.js +2 -0
- package/dist/presets/ui/custom.js.map +1 -0
- package/dist/presets/ui/dialog.d.ts +16 -0
- package/dist/presets/ui/dialog.d.ts.map +1 -0
- package/dist/presets/ui/dialog.js +36 -0
- package/dist/presets/ui/dialog.js.map +1 -0
- package/dist/presets/ui/field.d.ts +25 -0
- package/dist/presets/ui/field.d.ts.map +1 -0
- package/dist/presets/ui/field.js +76 -0
- package/dist/presets/ui/field.js.map +1 -0
- package/dist/presets/ui/input-mask.d.ts +34 -0
- package/dist/presets/ui/input-mask.d.ts.map +1 -0
- package/dist/presets/ui/input-mask.js +561 -0
- package/dist/presets/ui/input-mask.js.map +1 -0
- package/dist/presets/ui/input-otp.d.ts +12 -0
- package/dist/presets/ui/input-otp.d.ts.map +1 -0
- package/dist/presets/ui/input-otp.js +22 -0
- package/dist/presets/ui/input-otp.js.map +1 -0
- package/dist/presets/ui/input.d.ts +83 -0
- package/dist/presets/ui/input.d.ts.map +1 -0
- package/dist/presets/ui/input.js +436 -0
- package/dist/presets/ui/input.js.map +1 -0
- package/dist/presets/ui/label.d.ts +5 -0
- package/dist/presets/ui/label.d.ts.map +1 -0
- package/dist/presets/ui/label.js +8 -0
- package/dist/presets/ui/label.js.map +1 -0
- package/dist/presets/ui/number.d.ts +60 -0
- package/dist/presets/ui/number.d.ts.map +1 -0
- package/dist/presets/ui/number.js +1078 -0
- package/dist/presets/ui/number.js.map +1 -0
- package/dist/presets/ui/popover.d.ts +8 -0
- package/dist/presets/ui/popover.d.ts.map +1 -0
- package/dist/presets/ui/popover.js +17 -0
- package/dist/presets/ui/popover.js.map +1 -0
- package/dist/presets/ui/radio-group.d.ts +6 -0
- package/dist/presets/ui/radio-group.d.ts.map +1 -0
- package/dist/presets/ui/radio-group.js +12 -0
- package/dist/presets/ui/radio-group.js.map +1 -0
- package/dist/presets/ui/scroll-area.d.ts +6 -0
- package/dist/presets/ui/scroll-area.d.ts.map +1 -0
- package/dist/presets/ui/scroll-area.js +13 -0
- package/dist/presets/ui/scroll-area.js.map +1 -0
- package/dist/presets/ui/select.d.ts +21 -0
- package/dist/presets/ui/select.d.ts.map +1 -0
- package/dist/presets/ui/select.js +38 -0
- package/dist/presets/ui/select.js.map +1 -0
- package/dist/presets/ui/separator.d.ts +5 -0
- package/dist/presets/ui/separator.d.ts.map +1 -0
- package/dist/presets/ui/separator.js +9 -0
- package/dist/presets/ui/separator.js.map +1 -0
- package/dist/presets/ui/slider.d.ts +5 -0
- package/dist/presets/ui/slider.d.ts.map +1 -0
- package/dist/presets/ui/slider.js +14 -0
- package/dist/presets/ui/slider.js.map +1 -0
- package/dist/presets/ui/switch.d.ts +7 -0
- package/dist/presets/ui/switch.d.ts.map +1 -0
- package/dist/presets/ui/switch.js +9 -0
- package/dist/presets/ui/switch.js.map +1 -0
- package/dist/presets/ui/textarea.d.ts +76 -0
- package/dist/presets/ui/textarea.d.ts.map +1 -0
- package/dist/presets/ui/textarea.js +291 -0
- package/dist/presets/ui/textarea.js.map +1 -0
- package/dist/presets/ui/time-dropdowns.d.ts +58 -0
- package/dist/presets/ui/time-dropdowns.d.ts.map +1 -0
- package/dist/presets/ui/time-dropdowns.js +133 -0
- package/dist/presets/ui/time-dropdowns.js.map +1 -0
- package/{src/schema/adapter.ts → dist/schema/adapter.d.ts} +7 -35
- package/dist/schema/adapter.d.ts.map +1 -0
- package/dist/schema/adapter.js +3 -0
- package/dist/schema/adapter.js.map +1 -0
- package/{src/schema/core.ts → dist/schema/core.d.ts} +17 -117
- package/dist/schema/core.d.ts.map +1 -0
- package/dist/schema/core.js +4 -0
- package/dist/schema/core.js.map +1 -0
- package/dist/schema/field-map.d.ts +1 -0
- package/dist/schema/field-map.d.ts.map +1 -0
- package/dist/schema/field-map.js +2 -0
- package/dist/schema/field-map.js.map +1 -0
- package/{src/schema/field.ts → dist/schema/field.d.ts} +1 -34
- package/dist/schema/field.d.ts.map +1 -0
- package/dist/schema/field.js +4 -0
- package/dist/schema/field.js.map +1 -0
- package/dist/schema/index.d.ts +1 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +2 -0
- package/dist/schema/index.js.map +1 -0
- package/{src/schema/input-field.ts → dist/schema/input-field.d.ts} +6 -43
- package/dist/schema/input-field.d.ts.map +1 -0
- package/dist/schema/input-field.js +3 -0
- package/dist/schema/input-field.js.map +1 -0
- package/dist/schema/presets.d.ts +1 -0
- package/dist/schema/presets.d.ts.map +1 -0
- package/dist/schema/presets.js +2 -0
- package/dist/schema/presets.js.map +1 -0
- package/{src/schema/variant.ts → dist/schema/variant.d.ts} +24 -64
- package/dist/schema/variant.d.ts.map +1 -0
- package/dist/schema/variant.js +3 -0
- package/dist/schema/variant.js.map +1 -0
- package/dist/variants/core/checkbox.d.ts +15 -0
- package/dist/variants/core/checkbox.d.ts.map +1 -0
- package/dist/variants/core/checkbox.js +27 -0
- package/dist/variants/core/checkbox.js.map +1 -0
- package/dist/variants/core/chips.d.ts +3 -0
- package/dist/variants/core/chips.d.ts.map +1 -0
- package/dist/variants/core/chips.js +20 -0
- package/dist/variants/core/chips.js.map +1 -0
- package/dist/variants/core/color.d.ts +3 -0
- package/dist/variants/core/color.d.ts.map +1 -0
- package/dist/variants/core/color.js +14 -0
- package/dist/variants/core/color.js.map +1 -0
- package/dist/variants/core/custom.d.ts +11 -0
- package/dist/variants/core/custom.d.ts.map +1 -0
- package/{src/variants/core/custom.tsx → dist/variants/core/custom.js} +15 -18
- package/dist/variants/core/custom.js.map +1 -0
- package/dist/variants/core/date.d.ts +3 -0
- package/dist/variants/core/date.d.ts.map +1 -0
- package/dist/variants/core/date.js +20 -0
- package/dist/variants/core/date.js.map +1 -0
- package/dist/variants/core/file.d.ts +3 -0
- package/dist/variants/core/file.d.ts.map +1 -0
- package/dist/variants/core/file.js +6 -0
- package/dist/variants/core/file.js.map +1 -0
- package/dist/variants/core/keyvalue.d.ts +3 -0
- package/dist/variants/core/keyvalue.d.ts.map +1 -0
- package/dist/variants/core/keyvalue.js +9 -0
- package/dist/variants/core/keyvalue.js.map +1 -0
- package/dist/variants/core/multiselect.d.ts +11 -0
- package/dist/variants/core/multiselect.d.ts.map +1 -0
- package/dist/variants/core/multiselect.js +15 -0
- package/dist/variants/core/multiselect.js.map +1 -0
- package/dist/variants/core/number.d.ts +38 -0
- package/dist/variants/core/number.d.ts.map +1 -0
- package/dist/variants/core/number.js +62 -0
- package/dist/variants/core/number.js.map +1 -0
- package/dist/variants/core/password.d.ts +11 -0
- package/dist/variants/core/password.d.ts.map +1 -0
- package/dist/variants/core/password.js +29 -0
- package/dist/variants/core/password.js.map +1 -0
- package/dist/variants/core/phone.d.ts +3 -0
- package/dist/variants/core/phone.d.ts.map +1 -0
- package/dist/variants/core/phone.js +14 -0
- package/dist/variants/core/phone.js.map +1 -0
- package/dist/variants/core/radio.d.ts +8 -0
- package/dist/variants/core/radio.d.ts.map +1 -0
- package/dist/variants/core/radio.js +34 -0
- package/dist/variants/core/radio.js.map +1 -0
- package/dist/variants/core/select.d.ts +5 -0
- package/dist/variants/core/select.d.ts.map +1 -0
- package/dist/variants/core/select.js +11 -0
- package/dist/variants/core/select.js.map +1 -0
- package/dist/variants/core/slider.d.ts +19 -0
- package/dist/variants/core/slider.d.ts.map +1 -0
- package/dist/variants/core/slider.js +36 -0
- package/dist/variants/core/slider.js.map +1 -0
- package/dist/variants/core/text.d.ts +38 -0
- package/dist/variants/core/text.d.ts.map +1 -0
- package/{src/variants/core/text.tsx → dist/variants/core/text.js} +4 -56
- package/dist/variants/core/text.js.map +1 -0
- package/dist/variants/core/textarea.d.ts +3 -0
- package/dist/variants/core/textarea.d.ts.map +1 -0
- package/dist/variants/core/textarea.js +20 -0
- package/dist/variants/core/textarea.js.map +1 -0
- package/dist/variants/core/toggle.d.ts +6 -0
- package/dist/variants/core/toggle.d.ts.map +1 -0
- package/dist/variants/core/toggle.js +41 -0
- package/dist/variants/core/toggle.js.map +1 -0
- package/dist/variants/core/treeselect.d.ts +4 -0
- package/dist/variants/core/treeselect.d.ts.map +1 -0
- package/dist/variants/core/treeselect.js +7 -0
- package/dist/variants/core/treeselect.js.map +1 -0
- package/dist/variants/helpers/selection-summary.d.ts +24 -0
- package/dist/variants/helpers/selection-summary.d.ts.map +1 -0
- package/dist/variants/helpers/selection-summary.js +105 -0
- package/dist/variants/helpers/selection-summary.js.map +1 -0
- package/dist/variants/index.d.ts +16 -0
- package/dist/variants/index.d.ts.map +1 -0
- package/{src/variants/index.ts → dist/variants/index.js} +7 -27
- package/dist/variants/index.js.map +1 -0
- package/dist/variants/registry.d.ts +19 -0
- package/dist/variants/registry.d.ts.map +1 -0
- package/dist/variants/registry.js +29 -0
- package/dist/variants/registry.js.map +1 -0
- package/dist/variants/select-shared.d.ts +1 -0
- package/dist/variants/select-shared.d.ts.map +1 -0
- package/dist/variants/select-shared.js +2 -0
- package/dist/variants/select-shared.js.map +1 -0
- package/{src/variants/shared.ts → dist/variants/shared.d.ts} +3 -22
- package/dist/variants/shared.d.ts.map +1 -0
- package/dist/variants/shared.js +3 -0
- package/dist/variants/shared.js.map +1 -0
- package/package.json +5 -5
- package/.scaffold-cache.json +0 -537
- package/src/.scaffold-cache.json +0 -544
- package/src/adapters/axios.ts +0 -117
- package/src/adapters/index.ts +0 -91
- package/src/adapters/inertia.ts +0 -187
- package/src/core/bound/observe-bound-field.ts +0 -172
- package/src/core/bound/wait-for-bound-field.ts +0 -57
- package/src/core/core-root.tsx +0 -72
- package/src/core/core-shell.tsx +0 -44
- package/src/core/errors/index.ts +0 -2
- package/src/core/hooks/use-button.ts +0 -220
- package/src/core/hooks/use-core-utility.ts +0 -0
- package/src/core/hooks/use-field.ts +0 -497
- package/src/core/hooks/use-optional-field.ts +0 -28
- package/src/core/index.ts +0 -0
- package/src/core/registry/binder-registry.ts +0 -82
- package/src/core/test.tsx +0 -17
- package/src/global.d.ts +0 -14
- package/src/input/input-field.tsx +0 -854
- package/src/input/input-layout-graph.ts +0 -230
- package/src/lib/get-global-countries.ts +0 -87
- package/src/lib/utils.ts +0 -6
- package/src/presets/index.ts +0 -0
- package/src/presets/shadcn-preset.ts +0 -0
- package/src/presets/shadcn-variants/checkbox.tsx +0 -849
- package/src/presets/shadcn-variants/chips.tsx +0 -756
- package/src/presets/shadcn-variants/color.tsx +0 -284
- package/src/presets/shadcn-variants/custom.tsx +0 -227
- package/src/presets/shadcn-variants/date.tsx +0 -796
- package/src/presets/shadcn-variants/file.tsx +0 -764
- package/src/presets/shadcn-variants/keyvalue.tsx +0 -556
- package/src/presets/shadcn-variants/multiselect.tsx +0 -1132
- package/src/presets/shadcn-variants/number.tsx +0 -176
- package/src/presets/shadcn-variants/password.tsx +0 -737
- package/src/presets/shadcn-variants/phone.tsx +0 -628
- package/src/presets/shadcn-variants/radio.tsx +0 -578
- package/src/presets/shadcn-variants/select.tsx +0 -956
- package/src/presets/shadcn-variants/slider.tsx +0 -622
- package/src/presets/shadcn-variants/text.tsx +0 -343
- package/src/presets/shadcn-variants/textarea.tsx +0 -66
- package/src/presets/shadcn-variants/toggle.tsx +0 -218
- package/src/presets/shadcn-variants/treeselect.tsx +0 -784
- package/src/presets/ui/badge.tsx +0 -46
- package/src/presets/ui/button.tsx +0 -60
- package/src/presets/ui/calendar.tsx +0 -214
- package/src/presets/ui/checkbox.tsx +0 -115
- package/src/presets/ui/custom.tsx +0 -0
- package/src/presets/ui/dialog.tsx +0 -141
- package/src/presets/ui/field.tsx +0 -246
- package/src/presets/ui/input-mask.tsx +0 -739
- package/src/presets/ui/input-otp.tsx +0 -77
- package/src/presets/ui/input.tsx +0 -1011
- package/src/presets/ui/label.tsx +0 -22
- package/src/presets/ui/number.tsx +0 -1370
- package/src/presets/ui/popover.tsx +0 -46
- package/src/presets/ui/radio-group.tsx +0 -43
- package/src/presets/ui/scroll-area.tsx +0 -56
- package/src/presets/ui/select.tsx +0 -190
- package/src/presets/ui/separator.tsx +0 -28
- package/src/presets/ui/slider.tsx +0 -61
- package/src/presets/ui/switch.tsx +0 -32
- package/src/presets/ui/textarea.tsx +0 -634
- package/src/presets/ui/time-dropdowns.tsx +0 -350
- package/src/schema/field-map.ts +0 -0
- package/src/schema/index.ts +0 -0
- package/src/schema/presets.ts +0 -0
- package/src/variants/core/checkbox.tsx +0 -54
- package/src/variants/core/chips.tsx +0 -22
- package/src/variants/core/color.tsx +0 -16
- package/src/variants/core/date.tsx +0 -25
- package/src/variants/core/file.tsx +0 -9
- package/src/variants/core/keyvalue.tsx +0 -12
- package/src/variants/core/multiselect.tsx +0 -28
- package/src/variants/core/number.tsx +0 -115
- package/src/variants/core/password.tsx +0 -35
- package/src/variants/core/phone.tsx +0 -16
- package/src/variants/core/radio.tsx +0 -38
- package/src/variants/core/select.tsx +0 -15
- package/src/variants/core/slider.tsx +0 -55
- package/src/variants/core/textarea.tsx +0 -22
- package/src/variants/core/toggle.tsx +0 -50
- package/src/variants/core/treeselect.tsx +0 -11
- package/src/variants/helpers/selection-summary.tsx +0 -236
- package/src/variants/registry.ts +0 -38
- package/src/variants/select-shared.ts +0 -0
- package/tsconfig.json +0 -14
|
@@ -1,74 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
2
|
// src/core/core-provider.tsx
|
|
2
3
|
// noinspection JSConstantReassignment,JSUnusedGlobalSymbols,GrazieInspection
|
|
3
|
-
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
|
|
6
5
|
import { CoreContextReact } from "@/core/context";
|
|
7
6
|
import { mapZodError } from "@/core/errors/map-zod";
|
|
8
7
|
import { mapErrorBag } from "@/core/errors/map-error-bag";
|
|
9
8
|
import { getAdapter, localAdapter } from "@/core/adapter-registry";
|
|
10
9
|
import { FieldRegistry } from "@/core/registry/field-registry";
|
|
11
|
-
|
|
12
|
-
import type { z } from "zod";
|
|
13
|
-
import type { AdapterKey, AdapterResult, Method } from "@/schema/adapter";
|
|
14
|
-
import type {
|
|
15
|
-
CoreContext,
|
|
16
|
-
CoreProps,
|
|
17
|
-
Dict,
|
|
18
|
-
InferFromSchema,
|
|
19
|
-
SubmitEvent,
|
|
20
|
-
ValuesResult,
|
|
21
|
-
} from "@/schema/core";
|
|
22
|
-
import type { ButtonRef, Field } from "@/schema/field";
|
|
23
|
-
|
|
24
|
-
type Props<
|
|
25
|
-
V extends Dict,
|
|
26
|
-
S extends z.ZodType | undefined,
|
|
27
|
-
K extends AdapterKey,
|
|
28
|
-
> = CoreProps<V, S, K> & {
|
|
29
|
-
children?: React.ReactNode;
|
|
30
|
-
};
|
|
31
|
-
|
|
32
10
|
// ─────────────────────────────────────────────────────────────
|
|
33
11
|
// Internal helpers (generic utils)
|
|
34
12
|
// ─────────────────────────────────────────────────────────────
|
|
35
|
-
function isPlainObject(value
|
|
13
|
+
function isPlainObject(value) {
|
|
36
14
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
37
15
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
16
|
+
function deepEqual(a, b) {
|
|
17
|
+
if (a === b)
|
|
18
|
+
return true;
|
|
42
19
|
// NaN === NaN
|
|
43
20
|
if (typeof a === "number" && typeof b === "number") {
|
|
44
|
-
if (Number.isNaN(a) && Number.isNaN(b))
|
|
21
|
+
if (Number.isNaN(a) && Number.isNaN(b))
|
|
22
|
+
return true;
|
|
45
23
|
}
|
|
46
|
-
|
|
47
24
|
if (Array.isArray(a) && Array.isArray(b)) {
|
|
48
|
-
if (a.length !== b.length)
|
|
25
|
+
if (a.length !== b.length)
|
|
26
|
+
return false;
|
|
49
27
|
for (let i = 0; i < a.length; i++) {
|
|
50
|
-
if (!deepEqual(a[i], b[i]))
|
|
28
|
+
if (!deepEqual(a[i], b[i]))
|
|
29
|
+
return false;
|
|
51
30
|
}
|
|
52
31
|
return true;
|
|
53
32
|
}
|
|
54
|
-
|
|
55
33
|
if (isPlainObject(a) && isPlainObject(b)) {
|
|
56
34
|
const aKeys = Object.keys(a);
|
|
57
35
|
const bKeys = Object.keys(b);
|
|
58
|
-
if (aKeys.length !== bKeys.length)
|
|
36
|
+
if (aKeys.length !== bKeys.length)
|
|
37
|
+
return false;
|
|
59
38
|
for (const key of aKeys) {
|
|
60
|
-
if (!Object.prototype.hasOwnProperty.call(b, key))
|
|
61
|
-
|
|
39
|
+
if (!Object.prototype.hasOwnProperty.call(b, key))
|
|
40
|
+
return false;
|
|
41
|
+
if (!deepEqual(a[key], b[key]))
|
|
42
|
+
return false;
|
|
62
43
|
}
|
|
63
44
|
return true;
|
|
64
45
|
}
|
|
65
|
-
|
|
66
46
|
return false;
|
|
67
47
|
}
|
|
68
48
|
// ─────────────────────────────────────────────────────────────
|
|
69
49
|
// CoreProvider
|
|
70
50
|
// ─────────────────────────────────────────────────────────────
|
|
71
|
-
|
|
72
51
|
/**
|
|
73
52
|
* CoreProvider: owns the form/core runtime state and implements CoreContext.
|
|
74
53
|
*
|
|
@@ -81,92 +60,80 @@ function deepEqual(a: unknown, b: unknown): boolean {
|
|
|
81
60
|
* - Builds values snapshots (including bucket values)
|
|
82
61
|
* - Orchestrates submission via the adapter registry
|
|
83
62
|
*/
|
|
84
|
-
export function CoreProvider
|
|
85
|
-
V extends Dict,
|
|
86
|
-
S extends z.ZodType | undefined,
|
|
87
|
-
K extends AdapterKey = "local",
|
|
88
|
-
>(props: Props<V, S, K>) {
|
|
89
|
-
type Values = InferFromSchema<S, V>;
|
|
90
|
-
|
|
63
|
+
export function CoreProvider(props) {
|
|
91
64
|
// Single input store: FieldRegistry
|
|
92
|
-
const registryRef = React.useRef
|
|
93
|
-
|
|
65
|
+
const registryRef = React.useRef(new FieldRegistry());
|
|
94
66
|
// bucket, errors, button
|
|
95
|
-
const bucketRef = React.useRef
|
|
96
|
-
const uncaughtRef = React.useRef
|
|
97
|
-
const buttonRef = React.useRef
|
|
98
|
-
const activeButtonNameRef = React.useRef
|
|
99
|
-
|
|
67
|
+
const bucketRef = React.useRef({});
|
|
68
|
+
const uncaughtRef = React.useRef([]);
|
|
69
|
+
const buttonRef = React.useRef(null);
|
|
70
|
+
const activeButtonNameRef = React.useRef(null);
|
|
100
71
|
/**
|
|
101
72
|
* Original snapshot used for "dirty" checks.
|
|
102
73
|
* Lazily captured on first dirty-check.
|
|
103
74
|
*/
|
|
104
|
-
const originalRef = React.useRef
|
|
105
|
-
|
|
75
|
+
const originalRef = React.useRef(null);
|
|
106
76
|
// latest props
|
|
107
77
|
const propsRef = React.useRef(props);
|
|
108
78
|
React.useEffect(() => {
|
|
109
79
|
propsRef.current = props;
|
|
110
80
|
}, [props]);
|
|
111
|
-
|
|
112
|
-
const adapterKey = (props.adapter ?? "local") as AdapterKey;
|
|
81
|
+
const adapterKey = (props.adapter ?? "local");
|
|
113
82
|
const schema = props.schema;
|
|
114
|
-
|
|
115
|
-
let context!: CoreContext<Values>;
|
|
116
|
-
|
|
83
|
+
let context;
|
|
117
84
|
// ─────────────────────────────────────────────────────────
|
|
118
85
|
// Common helpers
|
|
119
86
|
// ─────────────────────────────────────────────────────────
|
|
120
|
-
|
|
121
|
-
function fetchAllNamedFields(): Field[] {
|
|
87
|
+
function fetchAllNamedFields() {
|
|
122
88
|
return registryRef.current.getAllNamed();
|
|
123
89
|
}
|
|
124
|
-
|
|
125
90
|
function clearFieldErrors() {
|
|
126
91
|
for (const field of fetchAllNamedFields()) {
|
|
127
|
-
const anyField = field
|
|
92
|
+
const anyField = field;
|
|
128
93
|
if (typeof anyField.setError === "function") {
|
|
129
94
|
anyField.setError(undefined);
|
|
130
|
-
}
|
|
95
|
+
}
|
|
96
|
+
else if ("error" in anyField) {
|
|
131
97
|
anyField.error = undefined;
|
|
132
98
|
}
|
|
133
99
|
}
|
|
134
100
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
101
|
+
function findFieldForErrorKey(key) {
|
|
102
|
+
if (!key)
|
|
103
|
+
return undefined;
|
|
138
104
|
return fetchAllNamedFields().find((f) => {
|
|
139
105
|
const raw = f.name;
|
|
140
|
-
if (!raw)
|
|
106
|
+
if (!raw)
|
|
107
|
+
return false;
|
|
141
108
|
const trimmed = raw.trim();
|
|
142
|
-
if (!trimmed)
|
|
143
|
-
|
|
109
|
+
if (!trimmed)
|
|
110
|
+
return false;
|
|
144
111
|
const base = trimmed.replace(/\[]$/, "");
|
|
145
|
-
if (key === base || key === trimmed)
|
|
146
|
-
|
|
147
|
-
const sharedKey =
|
|
148
|
-
if (!sharedKey)
|
|
149
|
-
|
|
112
|
+
if (key === base || key === trimmed)
|
|
113
|
+
return true;
|
|
114
|
+
const sharedKey = f.shared;
|
|
115
|
+
if (!sharedKey)
|
|
116
|
+
return false;
|
|
150
117
|
const sharedBase = `${sharedKey}.${base}`;
|
|
151
118
|
const sharedRaw = `${sharedKey}.${trimmed}`;
|
|
152
119
|
return key === sharedBase || key === sharedRaw;
|
|
153
120
|
});
|
|
154
121
|
}
|
|
155
|
-
|
|
156
|
-
function setFieldError(name: string, message: string) {
|
|
122
|
+
function setFieldError(name, message) {
|
|
157
123
|
const field = findFieldForErrorKey(name);
|
|
158
124
|
if (field) {
|
|
159
|
-
const anyField = field
|
|
125
|
+
const anyField = field;
|
|
160
126
|
if (typeof anyField.setError === "function") {
|
|
161
127
|
anyField.setError(message);
|
|
162
|
-
}
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
163
130
|
anyField.error = message;
|
|
164
131
|
}
|
|
165
|
-
}
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
166
134
|
uncaughtRef.current.push(message);
|
|
167
135
|
}
|
|
168
136
|
}
|
|
169
|
-
|
|
170
137
|
/**
|
|
171
138
|
* Collect values from inputs into a Values object.
|
|
172
139
|
*
|
|
@@ -176,95 +143,83 @@ export function CoreProvider<
|
|
|
176
143
|
* - bucketRef.current is merged in and overridden by live field values.
|
|
177
144
|
* - `exceptions` can hide keys (e.g. ["password", "profile.ssn"])
|
|
178
145
|
*/
|
|
179
|
-
function collectValues()
|
|
146
|
+
function collectValues() {
|
|
180
147
|
const exceptions = propsRef.current.exceptions ?? [];
|
|
181
|
-
const list
|
|
182
|
-
const shared
|
|
183
|
-
|
|
148
|
+
const list = {};
|
|
149
|
+
const shared = {};
|
|
184
150
|
for (const item of fetchAllNamedFields()) {
|
|
185
151
|
const rawName = item.name;
|
|
186
|
-
if (!rawName)
|
|
187
|
-
|
|
152
|
+
if (!rawName)
|
|
153
|
+
continue;
|
|
188
154
|
const trimmed = rawName.trim();
|
|
189
|
-
if (!trimmed)
|
|
190
|
-
|
|
155
|
+
if (!trimmed)
|
|
156
|
+
continue;
|
|
191
157
|
const isArray = trimmed.endsWith("[]");
|
|
192
158
|
const base = trimmed.replace(/\[]$/, "");
|
|
193
|
-
const sharedKey =
|
|
194
|
-
|
|
159
|
+
const sharedKey = item.shared;
|
|
195
160
|
const target = sharedKey
|
|
196
161
|
? (shared[sharedKey] ?? (shared[sharedKey] = {}))
|
|
197
162
|
: list;
|
|
198
|
-
|
|
199
163
|
const fullPath = sharedKey ? `${sharedKey}.${base}` : base;
|
|
200
|
-
if (
|
|
201
|
-
exceptions.includes(trimmed) ||
|
|
164
|
+
if (exceptions.includes(trimmed) ||
|
|
202
165
|
exceptions.includes(base) ||
|
|
203
|
-
exceptions.includes(fullPath)
|
|
204
|
-
) {
|
|
166
|
+
exceptions.includes(fullPath)) {
|
|
205
167
|
continue;
|
|
206
168
|
}
|
|
207
|
-
|
|
208
|
-
const
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
? (anyField.getValue() as unknown)
|
|
212
|
-
: (anyField.value as unknown);
|
|
213
|
-
|
|
169
|
+
const anyField = item;
|
|
170
|
+
const val = typeof anyField.getValue === "function"
|
|
171
|
+
? anyField.getValue()
|
|
172
|
+
: anyField.value;
|
|
214
173
|
if (isArray) {
|
|
215
174
|
const existing = target[base];
|
|
216
175
|
if (Array.isArray(existing)) {
|
|
217
176
|
target[base] = [...existing, val];
|
|
218
|
-
}
|
|
177
|
+
}
|
|
178
|
+
else if (typeof existing === "undefined") {
|
|
219
179
|
target[base] = [val];
|
|
220
|
-
}
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
221
182
|
target[base] = [existing, val];
|
|
222
183
|
}
|
|
223
|
-
}
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
224
186
|
target[base] = val;
|
|
225
187
|
}
|
|
226
188
|
}
|
|
227
|
-
|
|
228
|
-
const
|
|
229
|
-
const merged: Dict = {
|
|
189
|
+
const fromFields = { ...list, ...shared };
|
|
190
|
+
const merged = {
|
|
230
191
|
...bucketRef.current,
|
|
231
192
|
...fromFields,
|
|
232
193
|
};
|
|
233
|
-
|
|
234
|
-
return merged as Values;
|
|
194
|
+
return merged;
|
|
235
195
|
}
|
|
236
|
-
|
|
237
|
-
function validateInternal(report: boolean = false): boolean {
|
|
196
|
+
function validateInternal(report = false) {
|
|
238
197
|
let valid = true;
|
|
239
|
-
|
|
240
198
|
if (report) {
|
|
241
199
|
uncaughtRef.current = [];
|
|
242
200
|
clearFieldErrors();
|
|
243
201
|
}
|
|
244
|
-
|
|
245
202
|
// field-level
|
|
246
203
|
for (const field of fetchAllNamedFields()) {
|
|
247
|
-
const anyField = field
|
|
204
|
+
const anyField = field;
|
|
248
205
|
if (typeof anyField.validate === "function") {
|
|
249
206
|
const ok = anyField.validate(report);
|
|
250
|
-
if (!ok)
|
|
207
|
+
if (!ok)
|
|
208
|
+
valid = false;
|
|
251
209
|
}
|
|
252
210
|
}
|
|
253
|
-
|
|
254
211
|
// schema-level
|
|
255
212
|
if (schema) {
|
|
256
213
|
try {
|
|
257
214
|
schema.parse(collectValues());
|
|
258
|
-
}
|
|
215
|
+
}
|
|
216
|
+
catch (err) {
|
|
259
217
|
valid = false;
|
|
260
|
-
|
|
261
218
|
if (report && err && typeof err === "object") {
|
|
262
|
-
const anyErr = err
|
|
219
|
+
const anyErr = err;
|
|
263
220
|
if (anyErr.issues) {
|
|
264
221
|
const { fieldErrors, uncaught } = mapZodError(anyErr);
|
|
265
|
-
for (const [name, message] of Object.entries(
|
|
266
|
-
fieldErrors
|
|
267
|
-
)) {
|
|
222
|
+
for (const [name, message] of Object.entries(fieldErrors)) {
|
|
268
223
|
setFieldError(name, message);
|
|
269
224
|
}
|
|
270
225
|
if (uncaught.length) {
|
|
@@ -274,48 +229,35 @@ export function CoreProvider<
|
|
|
274
229
|
}
|
|
275
230
|
}
|
|
276
231
|
}
|
|
277
|
-
|
|
278
232
|
return valid;
|
|
279
233
|
}
|
|
280
|
-
|
|
281
234
|
// ─────────────────────────────────────────────────────────
|
|
282
235
|
// Submission
|
|
283
236
|
// ─────────────────────────────────────────────────────────
|
|
284
|
-
|
|
285
|
-
async function submitWithAdapter(
|
|
286
|
-
method: Method,
|
|
287
|
-
route: string,
|
|
288
|
-
extra?: Partial<Values>,
|
|
289
|
-
ignoreForm?: boolean,
|
|
290
|
-
autoErr: boolean = true,
|
|
291
|
-
autoRun: boolean = true
|
|
292
|
-
): Promise<AdapterResult<any> | undefined> {
|
|
237
|
+
async function submitWithAdapter(method, route, extra, ignoreForm, autoErr = true, autoRun = true) {
|
|
293
238
|
const currentProps = propsRef.current;
|
|
294
|
-
|
|
295
239
|
// active button + loading
|
|
296
|
-
const btn = buttonRef.current
|
|
240
|
+
const btn = buttonRef.current;
|
|
297
241
|
const activeName = activeButtonNameRef.current;
|
|
298
|
-
const isActiveButton =
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
if (!isActiveButton) return;
|
|
242
|
+
const isActiveButton = !!btn && typeof btn === "object" && btn.name === activeName;
|
|
243
|
+
const setButtonLoading = (loading) => {
|
|
244
|
+
if (!isActiveButton)
|
|
245
|
+
return;
|
|
303
246
|
if (typeof btn.setLoading === "function") {
|
|
304
247
|
btn.setLoading(loading);
|
|
305
|
-
}
|
|
248
|
+
}
|
|
249
|
+
else if ("loading" in btn) {
|
|
306
250
|
btn.loading = loading;
|
|
307
251
|
}
|
|
308
252
|
};
|
|
309
|
-
|
|
310
253
|
setButtonLoading(true);
|
|
311
|
-
|
|
312
254
|
let finished = false;
|
|
313
255
|
const finish = () => {
|
|
314
|
-
if (finished)
|
|
256
|
+
if (finished)
|
|
257
|
+
return;
|
|
315
258
|
finished = true;
|
|
316
259
|
setButtonLoading(false);
|
|
317
260
|
};
|
|
318
|
-
|
|
319
261
|
if (!ignoreForm) {
|
|
320
262
|
const ok = validateInternal(true);
|
|
321
263
|
if (!ok) {
|
|
@@ -323,13 +265,11 @@ export function CoreProvider<
|
|
|
323
265
|
return undefined;
|
|
324
266
|
}
|
|
325
267
|
}
|
|
326
|
-
|
|
327
|
-
let submissionValues: Values = {
|
|
268
|
+
let submissionValues = {
|
|
328
269
|
...collectValues(),
|
|
329
270
|
...(extra ?? {}),
|
|
330
271
|
};
|
|
331
|
-
|
|
332
|
-
const event: SubmitEvent<Values> = {
|
|
272
|
+
const event = {
|
|
333
273
|
preventDefault() {
|
|
334
274
|
this.continue = false;
|
|
335
275
|
},
|
|
@@ -339,67 +279,56 @@ export function CoreProvider<
|
|
|
339
279
|
submissionValues = result;
|
|
340
280
|
}
|
|
341
281
|
},
|
|
342
|
-
setRoute(newRoute
|
|
282
|
+
setRoute(newRoute) {
|
|
343
283
|
route = newRoute;
|
|
344
284
|
},
|
|
345
|
-
setMethod(newMethod
|
|
285
|
+
setMethod(newMethod) {
|
|
346
286
|
method = newMethod;
|
|
347
287
|
},
|
|
348
|
-
|
|
349
288
|
button: buttonRef.current ?? undefined,
|
|
350
289
|
get formData() {
|
|
351
290
|
return submissionValues;
|
|
352
291
|
},
|
|
353
|
-
|
|
354
292
|
form: context,
|
|
355
293
|
continue: true,
|
|
356
294
|
};
|
|
357
|
-
|
|
358
295
|
if (currentProps.onSubmit) {
|
|
359
296
|
try {
|
|
360
|
-
await currentProps.onSubmit(event
|
|
361
|
-
}
|
|
297
|
+
await currentProps.onSubmit(event);
|
|
298
|
+
}
|
|
299
|
+
catch (err) {
|
|
362
300
|
// host blew up: end this submit cycle
|
|
363
301
|
finish();
|
|
364
302
|
throw err;
|
|
365
303
|
}
|
|
366
304
|
}
|
|
367
|
-
|
|
368
305
|
if (!event.continue) {
|
|
369
306
|
finish();
|
|
370
307
|
return undefined;
|
|
371
308
|
}
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
getAdapter(adapterKey) ??
|
|
375
|
-
(localAdapter as unknown as (cfg: any) => AdapterResult<any>);
|
|
376
|
-
|
|
309
|
+
const factory = getAdapter(adapterKey) ??
|
|
310
|
+
localAdapter;
|
|
377
311
|
const adapter = factory({
|
|
378
312
|
method,
|
|
379
313
|
url: route,
|
|
380
314
|
data: submissionValues,
|
|
381
315
|
callbacks: {
|
|
382
|
-
onSuccess(ok
|
|
316
|
+
onSuccess(ok) {
|
|
383
317
|
const maybe = propsRef.current.onSubmitted;
|
|
384
318
|
if (maybe) {
|
|
385
|
-
void maybe(context, ok
|
|
319
|
+
void maybe(context, ok, () => {
|
|
386
320
|
finish();
|
|
387
321
|
});
|
|
388
322
|
}
|
|
389
323
|
},
|
|
390
|
-
onError(err
|
|
324
|
+
onError(err) {
|
|
391
325
|
if (!autoErr || !err || typeof err !== "object") {
|
|
392
326
|
return;
|
|
393
327
|
}
|
|
394
|
-
|
|
395
|
-
const anyErr = err as any;
|
|
328
|
+
const anyErr = err;
|
|
396
329
|
if (anyErr.errors && typeof anyErr.errors === "object") {
|
|
397
|
-
const { fieldErrors, uncaught } = mapErrorBag(
|
|
398
|
-
|
|
399
|
-
);
|
|
400
|
-
for (const [name, message] of Object.entries(
|
|
401
|
-
fieldErrors
|
|
402
|
-
)) {
|
|
330
|
+
const { fieldErrors, uncaught } = mapErrorBag(anyErr.errors);
|
|
331
|
+
for (const [name, message] of Object.entries(fieldErrors)) {
|
|
403
332
|
setFieldError(name, message);
|
|
404
333
|
}
|
|
405
334
|
if (uncaught.length) {
|
|
@@ -416,124 +345,97 @@ export function CoreProvider<
|
|
|
416
345
|
},
|
|
417
346
|
},
|
|
418
347
|
});
|
|
419
|
-
|
|
420
348
|
if (autoRun) {
|
|
421
349
|
try {
|
|
422
350
|
await adapter.send();
|
|
423
|
-
}
|
|
351
|
+
}
|
|
352
|
+
catch {
|
|
424
353
|
// errors flow via callbacks; adapter may still call onFinish
|
|
425
354
|
}
|
|
426
355
|
}
|
|
427
|
-
|
|
428
356
|
return adapter;
|
|
429
357
|
}
|
|
430
|
-
|
|
431
358
|
// No separate inputs view: expose registry directly via context.inputs
|
|
432
|
-
|
|
433
359
|
// ─────────────────────────────────────────────────────────
|
|
434
360
|
// CoreContext implementation
|
|
435
361
|
// ─────────────────────────────────────────────────────────
|
|
436
|
-
|
|
437
362
|
context = {
|
|
438
|
-
values()
|
|
363
|
+
values() {
|
|
439
364
|
return collectValues();
|
|
440
365
|
},
|
|
441
|
-
|
|
442
|
-
submit(): ValuesResult<Values> {
|
|
366
|
+
submit() {
|
|
443
367
|
const valid = validateInternal(true);
|
|
444
368
|
const vals = collectValues();
|
|
445
369
|
return { values: vals, valid };
|
|
446
370
|
},
|
|
447
|
-
|
|
448
|
-
getBind(id: string): Field | undefined {
|
|
371
|
+
getBind(id) {
|
|
449
372
|
return registryRef.current.getByBind(id);
|
|
450
373
|
},
|
|
451
|
-
|
|
452
|
-
validate(report?: boolean): boolean {
|
|
374
|
+
validate(report) {
|
|
453
375
|
return validateInternal(report);
|
|
454
376
|
},
|
|
455
|
-
|
|
456
|
-
addField(field: Field): void {
|
|
377
|
+
addField(field) {
|
|
457
378
|
// Normalise name
|
|
458
379
|
const rawName = field.name ?? "";
|
|
459
|
-
|
|
460
|
-
|
|
380
|
+
field.name = rawName.trim();
|
|
461
381
|
// hydrate from valueBag before registering
|
|
462
382
|
const { valueBag, valueFeed } = propsRef.current;
|
|
463
383
|
const trimmed = (field.name ?? "").trim();
|
|
464
384
|
const hasName = !!trimmed;
|
|
465
385
|
const isArray = hasName && trimmed.endsWith("[]");
|
|
466
386
|
const base = hasName ? trimmed.replace(/\[]$/, "") : "";
|
|
467
|
-
const sharedKey =
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
: valueBag;
|
|
474
|
-
|
|
475
|
-
let value: unknown = undefined;
|
|
476
|
-
|
|
387
|
+
const sharedKey = field.shared;
|
|
388
|
+
if (valueBag && !field.ignore && hasName) {
|
|
389
|
+
const sourceRoot = sharedKey && valueBag[sharedKey]
|
|
390
|
+
? valueBag[sharedKey]
|
|
391
|
+
: valueBag;
|
|
392
|
+
let value = undefined;
|
|
477
393
|
if (sourceRoot && typeof sourceRoot === "object") {
|
|
478
394
|
if (isArray && Array.isArray(sourceRoot[base])) {
|
|
479
395
|
const siblings = fetchAllNamedFields().filter((f) => {
|
|
480
396
|
const rn = (f.name ?? "").trim();
|
|
481
|
-
return (
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
sharedKey
|
|
485
|
-
);
|
|
397
|
+
return (rn === trimmed &&
|
|
398
|
+
f.shared ===
|
|
399
|
+
sharedKey);
|
|
486
400
|
});
|
|
487
401
|
const idx = siblings.length;
|
|
488
|
-
value =
|
|
489
|
-
}
|
|
402
|
+
value = sourceRoot[base][idx];
|
|
403
|
+
}
|
|
404
|
+
else {
|
|
490
405
|
value = sourceRoot[base];
|
|
491
406
|
}
|
|
492
407
|
}
|
|
493
|
-
|
|
494
|
-
let hydrated: unknown = value;
|
|
408
|
+
let hydrated = value;
|
|
495
409
|
if (valueFeed) {
|
|
496
|
-
const maybe = valueFeed(
|
|
497
|
-
base as keyof Values,
|
|
498
|
-
value as any,
|
|
499
|
-
context as any
|
|
500
|
-
);
|
|
410
|
+
const maybe = valueFeed(base, value, context);
|
|
501
411
|
if (typeof maybe !== "undefined") {
|
|
502
412
|
hydrated = maybe;
|
|
503
413
|
}
|
|
504
414
|
}
|
|
505
|
-
|
|
506
415
|
if (typeof hydrated !== "undefined") {
|
|
507
|
-
const anyField = field
|
|
416
|
+
const anyField = field;
|
|
508
417
|
if (typeof anyField.setValue === "function") {
|
|
509
418
|
anyField.setValue(hydrated);
|
|
510
|
-
}
|
|
419
|
+
}
|
|
420
|
+
else {
|
|
511
421
|
anyField.value = hydrated;
|
|
512
422
|
}
|
|
513
423
|
}
|
|
514
424
|
}
|
|
515
|
-
|
|
516
425
|
// finally register into the single store (name/bindId/groupId)
|
|
517
426
|
registryRef.current.add(field);
|
|
518
427
|
},
|
|
519
|
-
|
|
520
428
|
// Expose registry view as inputs (delegates to FieldRegistry instance)
|
|
521
429
|
inputs: registryRef.current,
|
|
522
|
-
|
|
523
430
|
// Also expose raw list of fields for compatibility is defined later as a getter
|
|
524
|
-
|
|
525
431
|
bucket: bucketRef.current,
|
|
526
|
-
|
|
527
|
-
error(
|
|
528
|
-
nameOrBag: string | Record<string, string>,
|
|
529
|
-
maybeMsg?: string
|
|
530
|
-
): void {
|
|
432
|
+
error(nameOrBag, maybeMsg) {
|
|
531
433
|
if (typeof nameOrBag === "string") {
|
|
532
|
-
if (!maybeMsg)
|
|
434
|
+
if (!maybeMsg)
|
|
435
|
+
return;
|
|
533
436
|
setFieldError(nameOrBag, maybeMsg);
|
|
534
437
|
return;
|
|
535
438
|
}
|
|
536
|
-
|
|
537
439
|
const { fieldErrors, uncaught } = mapErrorBag(nameOrBag);
|
|
538
440
|
for (const [name, message] of Object.entries(fieldErrors)) {
|
|
539
441
|
setFieldError(name, message);
|
|
@@ -542,138 +444,99 @@ export function CoreProvider<
|
|
|
542
444
|
uncaughtRef.current.push(...uncaught);
|
|
543
445
|
}
|
|
544
446
|
},
|
|
545
|
-
|
|
546
|
-
controlButton(): void {
|
|
447
|
+
controlButton() {
|
|
547
448
|
const { activateButtonOnChange } = propsRef.current;
|
|
548
|
-
if (!activateButtonOnChange)
|
|
549
|
-
|
|
550
|
-
const btn = buttonRef.current
|
|
449
|
+
if (!activateButtonOnChange)
|
|
450
|
+
return;
|
|
451
|
+
const btn = buttonRef.current;
|
|
551
452
|
const activeName = activeButtonNameRef.current;
|
|
552
|
-
|
|
553
453
|
// If there is no active button or it doesn't match, nothing to control.
|
|
554
454
|
if (!btn || btn.name !== activeName) {
|
|
555
455
|
return;
|
|
556
456
|
}
|
|
557
|
-
|
|
558
457
|
// Capture original snapshot lazily.
|
|
559
458
|
if (!originalRef.current) {
|
|
560
459
|
originalRef.current = collectValues();
|
|
561
460
|
}
|
|
562
|
-
|
|
563
461
|
const current = collectValues();
|
|
564
|
-
const original = originalRef.current
|
|
565
|
-
|
|
462
|
+
const original = originalRef.current;
|
|
566
463
|
const dirty = !deepEqual(original, current);
|
|
567
|
-
|
|
568
|
-
const setDisabled = (disabled: boolean) => {
|
|
464
|
+
const setDisabled = (disabled) => {
|
|
569
465
|
if (typeof btn.setDisabled === "function") {
|
|
570
466
|
btn.setDisabled(disabled);
|
|
571
|
-
}
|
|
467
|
+
}
|
|
468
|
+
else if ("disabled" in btn) {
|
|
572
469
|
btn.disabled = disabled;
|
|
573
470
|
}
|
|
574
471
|
};
|
|
575
|
-
|
|
576
472
|
// Dirty ⇒ enable button, clean ⇒ disable button
|
|
577
473
|
setDisabled(!dirty);
|
|
578
474
|
},
|
|
579
|
-
|
|
580
475
|
isDirty() {
|
|
581
476
|
if (!originalRef.current) {
|
|
582
477
|
originalRef.current = collectValues();
|
|
583
478
|
}
|
|
584
|
-
|
|
585
479
|
const current = collectValues();
|
|
586
|
-
const original = originalRef.current
|
|
587
|
-
|
|
480
|
+
const original = originalRef.current;
|
|
588
481
|
return !deepEqual(original, current);
|
|
589
482
|
},
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
type: Method,
|
|
593
|
-
route: string,
|
|
594
|
-
extra?: Partial<Values>,
|
|
595
|
-
ignoreForm?: boolean,
|
|
596
|
-
autoErr?: boolean
|
|
597
|
-
): Promise<AdapterResult<any> | undefined> {
|
|
598
|
-
return submitWithAdapter(
|
|
599
|
-
type,
|
|
600
|
-
route,
|
|
601
|
-
extra,
|
|
602
|
-
ignoreForm,
|
|
603
|
-
autoErr,
|
|
604
|
-
false
|
|
605
|
-
);
|
|
483
|
+
async prepare(type, route, extra, ignoreForm, autoErr) {
|
|
484
|
+
return submitWithAdapter(type, route, extra, ignoreForm, autoErr, false);
|
|
606
485
|
},
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
data
|
|
610
|
-
|
|
611
|
-
): void {
|
|
612
|
-
const seen: Record<string, number> = {};
|
|
613
|
-
const root = data as any;
|
|
614
|
-
|
|
615
|
-
const useFeed =
|
|
616
|
-
feed ||
|
|
486
|
+
persist(data, feed) {
|
|
487
|
+
const seen = {};
|
|
488
|
+
const root = data;
|
|
489
|
+
const useFeed = feed ||
|
|
617
490
|
(propsRef.current.valueFeed
|
|
618
|
-
? (
|
|
619
|
-
|
|
620
|
-
value
|
|
621
|
-
original: unknown
|
|
622
|
-
): unknown => {
|
|
623
|
-
const vf = propsRef.current.valueFeed!;
|
|
624
|
-
const maybe = vf(
|
|
625
|
-
name as keyof Values,
|
|
626
|
-
value as any,
|
|
627
|
-
context as any
|
|
628
|
-
);
|
|
491
|
+
? (name, value, original) => {
|
|
492
|
+
const vf = propsRef.current.valueFeed;
|
|
493
|
+
const maybe = vf(name, value, context);
|
|
629
494
|
return typeof maybe === "undefined"
|
|
630
495
|
? original
|
|
631
496
|
: maybe;
|
|
632
497
|
}
|
|
633
498
|
: undefined);
|
|
634
|
-
|
|
635
499
|
for (const field of fetchAllNamedFields()) {
|
|
636
500
|
const rawName = field.name;
|
|
637
|
-
if (!rawName)
|
|
638
|
-
|
|
639
|
-
|
|
501
|
+
if (!rawName)
|
|
502
|
+
continue;
|
|
503
|
+
if (field.ignore)
|
|
504
|
+
continue;
|
|
640
505
|
const trimmed = rawName.trim();
|
|
641
|
-
if (!trimmed)
|
|
642
|
-
|
|
506
|
+
if (!trimmed)
|
|
507
|
+
continue;
|
|
643
508
|
const isArray = trimmed.endsWith("[]");
|
|
644
509
|
const base = trimmed.replace(/\[]$/, "");
|
|
645
|
-
const sharedKey =
|
|
510
|
+
const sharedKey = field.shared;
|
|
646
511
|
const key = sharedKey ? `${sharedKey}.${base}` : base;
|
|
647
|
-
|
|
648
|
-
let value: unknown = undefined;
|
|
649
|
-
|
|
512
|
+
let value = undefined;
|
|
650
513
|
if (sharedKey) {
|
|
651
514
|
const group = root[sharedKey];
|
|
652
515
|
if (group && typeof group === "object") {
|
|
653
516
|
if (isArray && Array.isArray(group[base])) {
|
|
654
517
|
const idx = seen[key] ?? 0;
|
|
655
|
-
value =
|
|
518
|
+
value = group[base][idx];
|
|
656
519
|
seen[key] = idx + 1;
|
|
657
|
-
}
|
|
520
|
+
}
|
|
521
|
+
else {
|
|
658
522
|
value = group[base];
|
|
659
523
|
}
|
|
660
524
|
}
|
|
661
|
-
}
|
|
525
|
+
}
|
|
526
|
+
else {
|
|
662
527
|
if (isArray && Array.isArray(root[base])) {
|
|
663
528
|
const idx = seen[key] ?? 0;
|
|
664
|
-
value =
|
|
529
|
+
value = root[base][idx];
|
|
665
530
|
seen[key] = idx + 1;
|
|
666
|
-
}
|
|
531
|
+
}
|
|
532
|
+
else {
|
|
667
533
|
value = root[base];
|
|
668
534
|
}
|
|
669
535
|
}
|
|
670
|
-
|
|
671
|
-
const
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
? anyField.getValue()
|
|
675
|
-
: anyField.value;
|
|
676
|
-
|
|
536
|
+
const anyField = field;
|
|
537
|
+
const original = typeof anyField.getValue === "function"
|
|
538
|
+
? anyField.getValue()
|
|
539
|
+
: anyField.value;
|
|
677
540
|
let next = value;
|
|
678
541
|
if (useFeed) {
|
|
679
542
|
const maybe = useFeed(base, value, original);
|
|
@@ -682,117 +545,104 @@ export function CoreProvider<
|
|
|
682
545
|
}
|
|
683
546
|
next = maybe;
|
|
684
547
|
}
|
|
685
|
-
|
|
686
548
|
if (typeof anyField.setValue === "function") {
|
|
687
549
|
anyField.setValue(next);
|
|
688
|
-
}
|
|
550
|
+
}
|
|
551
|
+
else {
|
|
689
552
|
anyField.value = next;
|
|
690
553
|
}
|
|
691
554
|
}
|
|
692
|
-
|
|
693
555
|
if (propsRef.current.onUpdate) {
|
|
694
556
|
propsRef.current.onUpdate(collectValues());
|
|
695
557
|
}
|
|
696
558
|
},
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
let sharedKey: string | undefined;
|
|
559
|
+
setValue(name, value) {
|
|
560
|
+
if (!name)
|
|
561
|
+
return;
|
|
562
|
+
let sharedKey;
|
|
702
563
|
let base = name;
|
|
703
|
-
|
|
704
564
|
if (name.includes(".")) {
|
|
705
565
|
const [group, field] = name.split(".", 2);
|
|
706
566
|
sharedKey = group;
|
|
707
567
|
base = field;
|
|
708
568
|
}
|
|
709
|
-
|
|
710
569
|
const targetField = fetchAllNamedFields().find((f) => {
|
|
711
570
|
const raw = (f.name ?? "").trim();
|
|
712
|
-
if (!raw)
|
|
713
|
-
|
|
571
|
+
if (!raw)
|
|
572
|
+
return false;
|
|
714
573
|
const isArray = raw.endsWith("[]");
|
|
715
574
|
const rawBase = raw.replace(/\[]$/, "");
|
|
716
|
-
const fShared =
|
|
717
|
-
|
|
575
|
+
const fShared = f.shared;
|
|
718
576
|
const sameGroup = fShared === sharedKey;
|
|
719
|
-
const sameName =
|
|
720
|
-
raw === name ||
|
|
577
|
+
const sameName = raw === name ||
|
|
721
578
|
rawBase === base ||
|
|
722
579
|
`${fShared}.${rawBase}` === name;
|
|
723
|
-
|
|
724
580
|
return (!sharedKey || sameGroup) && sameName && !isArray;
|
|
725
581
|
});
|
|
726
|
-
|
|
727
582
|
if (targetField) {
|
|
728
|
-
const anyField = targetField
|
|
583
|
+
const anyField = targetField;
|
|
729
584
|
if (typeof anyField.setValue === "function") {
|
|
730
585
|
anyField.setValue(value);
|
|
731
|
-
}
|
|
586
|
+
}
|
|
587
|
+
else {
|
|
732
588
|
anyField.value = value;
|
|
733
589
|
}
|
|
734
|
-
}
|
|
590
|
+
}
|
|
591
|
+
else {
|
|
735
592
|
bucketRef.current[name] = value;
|
|
736
593
|
}
|
|
737
|
-
|
|
738
594
|
if (propsRef.current.onUpdate) {
|
|
739
595
|
propsRef.current.onUpdate(collectValues());
|
|
740
596
|
}
|
|
741
597
|
},
|
|
742
|
-
|
|
743
|
-
go(data?: Partial<Values>, ignoreForm?: boolean): void {
|
|
598
|
+
go(data, ignoreForm) {
|
|
744
599
|
void submitWithAdapter("post", "", data, ignoreForm, true, true);
|
|
745
600
|
},
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
601
|
+
reset(inputs) {
|
|
602
|
+
if (!inputs.length)
|
|
603
|
+
return;
|
|
750
604
|
for (const field of fetchAllNamedFields()) {
|
|
751
605
|
const raw = field.name;
|
|
752
|
-
if (!raw)
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
606
|
+
if (!raw)
|
|
607
|
+
continue;
|
|
608
|
+
if (!inputs.includes(raw))
|
|
609
|
+
continue;
|
|
610
|
+
const anyField = field;
|
|
756
611
|
if (typeof anyField.reset === "function") {
|
|
757
612
|
anyField.reset();
|
|
758
|
-
}
|
|
613
|
+
}
|
|
614
|
+
else if (typeof anyField.setValue === "function") {
|
|
759
615
|
anyField.setValue(undefined);
|
|
760
|
-
}
|
|
616
|
+
}
|
|
617
|
+
else {
|
|
761
618
|
anyField.value = undefined;
|
|
762
619
|
}
|
|
763
620
|
}
|
|
764
621
|
},
|
|
765
|
-
|
|
766
|
-
set button(btn: ButtonRef) {
|
|
622
|
+
set button(btn) {
|
|
767
623
|
buttonRef.current = btn;
|
|
768
624
|
},
|
|
769
|
-
|
|
770
|
-
async forceSubmit(): Promise<void> {
|
|
625
|
+
async forceSubmit() {
|
|
771
626
|
await submitWithAdapter("post", "", undefined, false, true, true);
|
|
772
627
|
},
|
|
773
|
-
|
|
774
|
-
get fields(): Field[] {
|
|
628
|
+
get fields() {
|
|
775
629
|
return fetchAllNamedFields();
|
|
776
630
|
},
|
|
777
|
-
|
|
778
631
|
get props() {
|
|
779
632
|
const { formRef, valueBag, ...rest } = propsRef.current;
|
|
780
|
-
return rest
|
|
633
|
+
return rest;
|
|
781
634
|
},
|
|
782
|
-
|
|
783
|
-
setActiveButton(name: string): void {
|
|
635
|
+
setActiveButton(name) {
|
|
784
636
|
activeButtonNameRef.current = name;
|
|
785
637
|
},
|
|
786
|
-
|
|
787
|
-
getUncaught(): readonly string[] {
|
|
638
|
+
getUncaught() {
|
|
788
639
|
return uncaughtRef.current;
|
|
789
640
|
},
|
|
790
|
-
}
|
|
791
|
-
|
|
641
|
+
};
|
|
792
642
|
// formRef exposure
|
|
793
643
|
React.useEffect(() => {
|
|
794
|
-
if (!props.formRef)
|
|
795
|
-
|
|
644
|
+
if (!props.formRef)
|
|
645
|
+
return;
|
|
796
646
|
props.formRef.current = context;
|
|
797
647
|
return () => {
|
|
798
648
|
if (props.formRef) {
|
|
@@ -801,7 +651,6 @@ export function CoreProvider<
|
|
|
801
651
|
};
|
|
802
652
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
803
653
|
}, [context]);
|
|
804
|
-
|
|
805
654
|
// init hook once
|
|
806
655
|
React.useEffect(() => {
|
|
807
656
|
if (props.init) {
|
|
@@ -809,10 +658,6 @@ export function CoreProvider<
|
|
|
809
658
|
}
|
|
810
659
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
811
660
|
}, []);
|
|
812
|
-
|
|
813
|
-
return (
|
|
814
|
-
<CoreContextReact.Provider value={context as any}>
|
|
815
|
-
{props.children}
|
|
816
|
-
</CoreContextReact.Provider>
|
|
817
|
-
);
|
|
661
|
+
return (_jsx(CoreContextReact.Provider, { value: context, children: props.children }));
|
|
818
662
|
}
|
|
663
|
+
//# sourceMappingURL=core-provider.js.map
|