@timeax/form-palette 0.0.3 → 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 +4 -4
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone.d.ts","sourceRoot":"","sources":["../../../src/presets/shadcn-variants/phone.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAY7E,KAAK,SAAS,GAAG,gBAAgB,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IAChC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAElD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAChC;AAKD,KAAK,WAAW,GAAG,IAAI,CACpB,sBAAsB,EAEtB,MAAM,GAAG,WAAW,GAAG,gBAAgB,GAAG,OAAO,GAAG,SAAS,CAC/D,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAC9C,kBAAkB,GAClB,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;AAmWxC,eAAO,MAAM,kBAAkB,kJA8K7B,CAAC"}
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// src/presets/shadcn-variants/phone.tsx
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Input } from "@/presets/ui/input";
|
|
5
|
+
import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem, } from "@/presets/ui/select";
|
|
6
|
+
import { cn } from "@/lib/utils";
|
|
7
|
+
import { getGlobalCountryList } from "@/lib/get-global-countries";
|
|
8
|
+
// ———————————————————————————————
|
|
9
|
+
// Defaults
|
|
10
|
+
// ———————————————————————————————
|
|
11
|
+
// ———————————————————————————————
|
|
12
|
+
// Mask helpers (lightweight legacy port)
|
|
13
|
+
// ———————————————————————————————
|
|
14
|
+
const TOKEN_CHARS = new Set(["9", "a", "*"]);
|
|
15
|
+
/**
|
|
16
|
+
* Phone only ever really uses digit masks, so we keep this compact.
|
|
17
|
+
*/
|
|
18
|
+
function compileMask(pattern, placeholderChar = "_") {
|
|
19
|
+
return { pattern, placeholderChar };
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Apply a simple token-based mask:
|
|
23
|
+
* - '9' → digit
|
|
24
|
+
* - 'a' → letter
|
|
25
|
+
* - '*' → alphanumeric
|
|
26
|
+
*
|
|
27
|
+
* `keepCharPositions` keeps literal chars/placeholders even when not filled.
|
|
28
|
+
*/
|
|
29
|
+
function applyMask(mask, raw, keepCharPositions) {
|
|
30
|
+
const { pattern, placeholderChar } = mask;
|
|
31
|
+
let result = "";
|
|
32
|
+
let rawIndex = 0;
|
|
33
|
+
const len = pattern.length;
|
|
34
|
+
const hasTokenAhead = (pos) => {
|
|
35
|
+
for (let j = pos + 1; j < len; j++) {
|
|
36
|
+
if (TOKEN_CHARS.has(pattern[j]))
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
return false;
|
|
40
|
+
};
|
|
41
|
+
for (let i = 0; i < len; i++) {
|
|
42
|
+
const ch = pattern[i];
|
|
43
|
+
const isToken = TOKEN_CHARS.has(ch);
|
|
44
|
+
if (isToken) {
|
|
45
|
+
if (rawIndex >= raw.length) {
|
|
46
|
+
if (keepCharPositions) {
|
|
47
|
+
result += placeholderChar;
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
const next = raw[rawIndex++];
|
|
53
|
+
result += next;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
// Literal character in the mask.
|
|
57
|
+
const rawRemaining = rawIndex < raw.length;
|
|
58
|
+
const tokenAhead = hasTokenAhead(i);
|
|
59
|
+
// No tokens ahead → trailing literal.
|
|
60
|
+
if (!tokenAhead) {
|
|
61
|
+
if (keepCharPositions) {
|
|
62
|
+
result += ch;
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
if (rawRemaining) {
|
|
68
|
+
// We still have digits to place → include the literal.
|
|
69
|
+
result += ch;
|
|
70
|
+
}
|
|
71
|
+
else if (keepCharPositions) {
|
|
72
|
+
// No digits left, but want full skeleton.
|
|
73
|
+
result += ch;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// No digits left, and we don't keep skeleton → stop.
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Strip everything except digits.
|
|
84
|
+
*/
|
|
85
|
+
function digitsOnly(input) {
|
|
86
|
+
return (input ?? "").replace(/\D+/g, "");
|
|
87
|
+
}
|
|
88
|
+
// ———————————————————————————————
|
|
89
|
+
// Value ↔ display helpers
|
|
90
|
+
// ———————————————————————————————
|
|
91
|
+
function dialPrefixFor(country) {
|
|
92
|
+
return `+${country.dial} `;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* From any stored value (masked, e164, or national) extract
|
|
96
|
+
* the NATIONAL digits for a given country.
|
|
97
|
+
*
|
|
98
|
+
* Strategy: remove all non-digits, then strip leading dial code
|
|
99
|
+
* if present.
|
|
100
|
+
*/
|
|
101
|
+
function valueToNationalDigits(value, country) {
|
|
102
|
+
const digits = digitsOnly(value);
|
|
103
|
+
if (!digits)
|
|
104
|
+
return "";
|
|
105
|
+
if (digits.startsWith(country.dial)) {
|
|
106
|
+
return digits.slice(country.dial.length);
|
|
107
|
+
}
|
|
108
|
+
return digits;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Build the display string shown in the input for a given value.
|
|
112
|
+
*
|
|
113
|
+
* Always renders "+<dial> " plus an optionally masked national part.
|
|
114
|
+
*/
|
|
115
|
+
function computeDisplayFromValue(value, country, keepCharPositions) {
|
|
116
|
+
const prefix = dialPrefixFor(country);
|
|
117
|
+
const national = valueToNationalDigits(value, country);
|
|
118
|
+
if (!national) {
|
|
119
|
+
return prefix;
|
|
120
|
+
}
|
|
121
|
+
const mask = compileMask(country.mask);
|
|
122
|
+
const maskedNational = applyMask(mask, national, keepCharPositions);
|
|
123
|
+
if (!maskedNational) {
|
|
124
|
+
return prefix;
|
|
125
|
+
}
|
|
126
|
+
return prefix + maskedNational;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Given raw user input in the field, compute:
|
|
130
|
+
* - display string (what we show in the input)
|
|
131
|
+
* - next form value (according to valueMode)
|
|
132
|
+
* - nationalDigits (for metadata)
|
|
133
|
+
*/
|
|
134
|
+
function computeNextFromInput(rawInput, country, mode, keepCharPositions) {
|
|
135
|
+
const prefix = dialPrefixFor(country);
|
|
136
|
+
const allDigits = digitsOnly(rawInput);
|
|
137
|
+
let national = allDigits;
|
|
138
|
+
if (national.startsWith(country.dial)) {
|
|
139
|
+
national = national.slice(country.dial.length);
|
|
140
|
+
}
|
|
141
|
+
const mask = compileMask(country.mask);
|
|
142
|
+
const maskedNational = applyMask(mask, national, keepCharPositions);
|
|
143
|
+
const display = national.length === 0 ? prefix : (prefix + maskedNational || prefix);
|
|
144
|
+
let nextValue;
|
|
145
|
+
if (!national.length) {
|
|
146
|
+
nextValue = undefined;
|
|
147
|
+
}
|
|
148
|
+
else if (mode === "masked") {
|
|
149
|
+
nextValue = display;
|
|
150
|
+
}
|
|
151
|
+
else if (mode === "e164") {
|
|
152
|
+
nextValue = country.dial + national;
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
// "national"
|
|
156
|
+
nextValue = national;
|
|
157
|
+
}
|
|
158
|
+
return { display, nextValue, nationalDigits: national };
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* When the country changes, re-interpret the existing value's
|
|
162
|
+
* digits into the new country's mask/dial.
|
|
163
|
+
*/
|
|
164
|
+
function remapToCountry(value, from, to, mode, keepCharPositions) {
|
|
165
|
+
if (!value) {
|
|
166
|
+
const prefix = dialPrefixFor(to);
|
|
167
|
+
return { display: prefix, nextValue: undefined };
|
|
168
|
+
}
|
|
169
|
+
const digitsAll = digitsOnly(value);
|
|
170
|
+
let national = digitsAll;
|
|
171
|
+
if (digitsAll.startsWith(from.dial)) {
|
|
172
|
+
national = digitsAll.slice(from.dial.length);
|
|
173
|
+
}
|
|
174
|
+
const prefix = dialPrefixFor(to);
|
|
175
|
+
const mask = compileMask(to.mask);
|
|
176
|
+
const masked = applyMask(mask, national, keepCharPositions);
|
|
177
|
+
const display = national.length === 0 ? prefix : (prefix + masked || prefix);
|
|
178
|
+
let nextValue;
|
|
179
|
+
if (!national.length) {
|
|
180
|
+
nextValue = undefined;
|
|
181
|
+
}
|
|
182
|
+
else if (mode === "masked") {
|
|
183
|
+
nextValue = display;
|
|
184
|
+
}
|
|
185
|
+
else if (mode === "e164") {
|
|
186
|
+
nextValue = to.dial + national;
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
nextValue = national;
|
|
190
|
+
}
|
|
191
|
+
return { display, nextValue };
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* If no placeholder is passed, we show the dial prefix plus an
|
|
195
|
+
* underscore-skeleton version of the national mask.
|
|
196
|
+
*/
|
|
197
|
+
function buildPlaceholder(country) {
|
|
198
|
+
const prefix = dialPrefixFor(country);
|
|
199
|
+
const skeleton = country.mask.replace(/[9a\*]/g, "_");
|
|
200
|
+
return prefix + skeleton;
|
|
201
|
+
}
|
|
202
|
+
const CountrySelect = ({ countries, value, onChange, showFlag, showSelectedLabel, showSelectedDial, showDialInList, countrySelectClassName, countryTriggerClassName, countryValueClassName, countryContentClassName, countryItemClassName, }) => {
|
|
203
|
+
const selected = countries.find((c) => c.code === value) ?? countries[0] ?? null;
|
|
204
|
+
const triggerLabel = selected
|
|
205
|
+
? [
|
|
206
|
+
showFlag && selected.flag ? selected.flag : null,
|
|
207
|
+
showSelectedDial ? `+${selected.dial}` : null,
|
|
208
|
+
showSelectedLabel ? selected.label : null,
|
|
209
|
+
]
|
|
210
|
+
.filter(Boolean)
|
|
211
|
+
.join(" ")
|
|
212
|
+
: "";
|
|
213
|
+
return (_jsx("div", { className: countrySelectClassName, children: _jsxs(Select, { value: selected?.code ?? "", onValueChange: onChange, children: [_jsx(SelectTrigger, { className: cn("h-full min-w-18 px-2 focus-visible:ring-0 py-0 shadow-none rounded-none border-l-0 border-t-0 border-b-0 border-r text-xs whitespace-nowrap", countryTriggerClassName), children: _jsx(SelectValue, { placeholder: "Code", className: countryValueClassName, children: triggerLabel || selected?.code || "—" }) }), _jsx(SelectContent, { className: countryContentClassName, children: countries.map((c) => {
|
|
214
|
+
const parts = [];
|
|
215
|
+
if (showFlag && c.flag) {
|
|
216
|
+
parts.push(String(c.flag));
|
|
217
|
+
}
|
|
218
|
+
if (showDialInList) {
|
|
219
|
+
parts.push(`+${c.dial}`);
|
|
220
|
+
}
|
|
221
|
+
parts.push(c.label);
|
|
222
|
+
return (_jsx(SelectItem, { value: c.code, className: countryItemClassName, children: parts.join(" ") }, c.code));
|
|
223
|
+
}) })] }) }));
|
|
224
|
+
};
|
|
225
|
+
// ———————————————————————————————
|
|
226
|
+
// Main variant component
|
|
227
|
+
// ———————————————————————————————
|
|
228
|
+
export const ShadcnPhoneVariant = React.forwardRef(function ShadcnPhoneVariant(props, ref) {
|
|
229
|
+
const { countries: countriesProp, defaultCountry, onCountryChange, showCountry = true, showFlag = true, showSelectedLabel = false, showSelectedDial = false, showDialInList = true, valueMode = "e164", keepCharPositions = false, value, onValue, countryPlaceholder: placeholder, error, countrySelectClassName, countryTriggerClassName, countryValueClassName, countryContentClassName, countryItemClassName, ...restTextProps } = props;
|
|
230
|
+
let DEFAULT_COUNTRIES = getGlobalCountryList();
|
|
231
|
+
const countries = countriesProp && countriesProp.length > 0
|
|
232
|
+
? countriesProp
|
|
233
|
+
: DEFAULT_COUNTRIES;
|
|
234
|
+
const [country, setCountry] = React.useState(() => {
|
|
235
|
+
if (defaultCountry) {
|
|
236
|
+
const found = countries.find((c) => c.code === defaultCountry);
|
|
237
|
+
if (found)
|
|
238
|
+
return found;
|
|
239
|
+
}
|
|
240
|
+
return countries[0] ?? DEFAULT_COUNTRIES[0];
|
|
241
|
+
});
|
|
242
|
+
// Keep active country in sync if list/default changes.
|
|
243
|
+
React.useEffect(() => {
|
|
244
|
+
setCountry((prev) => {
|
|
245
|
+
if (defaultCountry) {
|
|
246
|
+
const found = countries.find((c) => c.code === defaultCountry);
|
|
247
|
+
if (found)
|
|
248
|
+
return found;
|
|
249
|
+
}
|
|
250
|
+
const stillThere = countries.find((c) => c.code === prev.code);
|
|
251
|
+
return stillThere ?? countries[0] ?? prev;
|
|
252
|
+
});
|
|
253
|
+
}, [countries, defaultCountry]);
|
|
254
|
+
const [local, setLocal] = React.useState(() => computeDisplayFromValue(value, country, keepCharPositions));
|
|
255
|
+
// Sync local display when external value or country changes.
|
|
256
|
+
React.useEffect(() => {
|
|
257
|
+
setLocal(computeDisplayFromValue(value, country, keepCharPositions));
|
|
258
|
+
}, [value, country, keepCharPositions]);
|
|
259
|
+
const handleInputChange = React.useCallback((event) => {
|
|
260
|
+
const rawInput = event.target.value ?? "";
|
|
261
|
+
const { display, nextValue, nationalDigits } = computeNextFromInput(rawInput, country, valueMode, keepCharPositions);
|
|
262
|
+
setLocal(display);
|
|
263
|
+
if (onValue) {
|
|
264
|
+
const detail = {
|
|
265
|
+
source: "variant",
|
|
266
|
+
raw: rawInput,
|
|
267
|
+
nativeEvent: event,
|
|
268
|
+
meta: {
|
|
269
|
+
country,
|
|
270
|
+
nationalDigits,
|
|
271
|
+
},
|
|
272
|
+
};
|
|
273
|
+
onValue(nextValue, detail);
|
|
274
|
+
}
|
|
275
|
+
}, [country, valueMode, keepCharPositions, onValue]);
|
|
276
|
+
const handleCountryChange = React.useCallback((nextCode) => {
|
|
277
|
+
const nextCountry = countries.find((c) => c.code === nextCode) ?? countries[0];
|
|
278
|
+
if (!nextCountry)
|
|
279
|
+
return;
|
|
280
|
+
setCountry(nextCountry);
|
|
281
|
+
onCountryChange?.(nextCountry);
|
|
282
|
+
const { display, nextValue } = remapToCountry(value, country, nextCountry, valueMode, keepCharPositions);
|
|
283
|
+
setLocal(display);
|
|
284
|
+
if (onValue) {
|
|
285
|
+
const detail = {
|
|
286
|
+
source: "variant",
|
|
287
|
+
raw: undefined,
|
|
288
|
+
meta: {
|
|
289
|
+
from: country,
|
|
290
|
+
to: nextCountry,
|
|
291
|
+
},
|
|
292
|
+
};
|
|
293
|
+
onValue(nextValue, detail);
|
|
294
|
+
}
|
|
295
|
+
}, [
|
|
296
|
+
countries,
|
|
297
|
+
country,
|
|
298
|
+
keepCharPositions,
|
|
299
|
+
onCountryChange,
|
|
300
|
+
onValue,
|
|
301
|
+
value,
|
|
302
|
+
valueMode,
|
|
303
|
+
]);
|
|
304
|
+
const effectivePlaceholder = placeholder ?? buildPlaceholder(country);
|
|
305
|
+
const leadingControl = showCountry ? (_jsx(CountrySelect, { countries: countries, value: country.code, onChange: handleCountryChange, showFlag: showFlag, showSelectedLabel: showSelectedLabel, showSelectedDial: showSelectedDial, showDialInList: showDialInList, countrySelectClassName: countrySelectClassName, countryTriggerClassName: countryTriggerClassName, countryValueClassName: countryValueClassName, countryContentClassName: countryContentClassName, countryItemClassName: countryItemClassName })) : undefined;
|
|
306
|
+
return (_jsx(Input, { ref: ref, ...restTextProps, type: "tel", inputMode: "tel", value: local, onChange: handleInputChange, leadingControl: leadingControl, placeholder: effectivePlaceholder, "aria-invalid": error ? "true" : undefined }));
|
|
307
|
+
});
|
|
308
|
+
//# sourceMappingURL=phone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone.js","sourceRoot":"","sources":["../../../src/presets/shadcn-variants/phone.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { VariantBaseProps } from "@/variants/shared";
|
|
3
|
+
import { RadioGroup } from "@/presets/ui/radio-group";
|
|
4
|
+
/**
|
|
5
|
+
* Visual size of the radio UI.
|
|
6
|
+
*/
|
|
7
|
+
export type RadioSize = "sm" | "md" | "lg";
|
|
8
|
+
/**
|
|
9
|
+
* Vertical density of each radio row.
|
|
10
|
+
*
|
|
11
|
+
* Names aligned with your FieldDensity, but local to this variant.
|
|
12
|
+
*/
|
|
13
|
+
export type RadioDensity = "compact" | "comfortable" | "loose";
|
|
14
|
+
/**
|
|
15
|
+
* Layout mode for the group.
|
|
16
|
+
*
|
|
17
|
+
* - "list" → stacked rows
|
|
18
|
+
* - "grid" → CSS grid with `columns`
|
|
19
|
+
*/
|
|
20
|
+
export type RadioLayoutMode = "list" | "grid";
|
|
21
|
+
/**
|
|
22
|
+
* Base radio item shape.
|
|
23
|
+
*/
|
|
24
|
+
export interface RadioItem<TValue> {
|
|
25
|
+
value: TValue;
|
|
26
|
+
label: React.ReactNode;
|
|
27
|
+
description?: React.ReactNode;
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
key?: React.Key;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Mapping functions used when TItem is not `RadioItem<TValue>`.
|
|
33
|
+
*/
|
|
34
|
+
export interface RadioMappers<TItem, TValue> {
|
|
35
|
+
getValue: (item: TItem, index: number) => TValue;
|
|
36
|
+
getLabel: (item: TItem, index: number) => React.ReactNode;
|
|
37
|
+
getDescription?: (item: TItem, index: number) => React.ReactNode;
|
|
38
|
+
isDisabled?: (item: TItem, index: number) => boolean;
|
|
39
|
+
getKey?: (item: TItem, index: number) => React.Key;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Context passed to a custom renderOption callback.
|
|
43
|
+
*/
|
|
44
|
+
export interface RadioRenderOptionContext<TValue> {
|
|
45
|
+
item: RadioItem<TValue>;
|
|
46
|
+
index: number;
|
|
47
|
+
selected: boolean;
|
|
48
|
+
disabled: boolean;
|
|
49
|
+
size: RadioSize;
|
|
50
|
+
density: RadioDensity;
|
|
51
|
+
/**
|
|
52
|
+
* DOM id of this option (tied to the underlying RadioGroupItem).
|
|
53
|
+
*/
|
|
54
|
+
optionId?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Prebuilt radio control for convenience.
|
|
57
|
+
* You can ignore this and render your own if you want.
|
|
58
|
+
*/
|
|
59
|
+
radio: React.ReactNode;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* UI-specific radio props (independent of VariantBaseProps).
|
|
63
|
+
*/
|
|
64
|
+
export interface ShadcnRadioUiProps<TItem, TValue> {
|
|
65
|
+
/**
|
|
66
|
+
* Items to render as choices.
|
|
67
|
+
*
|
|
68
|
+
* Can be:
|
|
69
|
+
* - `RadioItem<TValue>[]`, or
|
|
70
|
+
* - any custom TItem[] when used with mapping functions
|
|
71
|
+
* or optionValue/optionLabel keys.
|
|
72
|
+
*/
|
|
73
|
+
items: readonly TItem[];
|
|
74
|
+
/**
|
|
75
|
+
* Mapping functions for TItem → value/label/etc.
|
|
76
|
+
*
|
|
77
|
+
* Takes precedence over optionValue/optionLabel if provided.
|
|
78
|
+
*/
|
|
79
|
+
mappers?: RadioMappers<TItem, TValue>;
|
|
80
|
+
/**
|
|
81
|
+
* Property name on TItem that holds the **value**.
|
|
82
|
+
*
|
|
83
|
+
* Example:
|
|
84
|
+
* items = [{ id: "free", title: "Free" }]
|
|
85
|
+
* optionValue = "id"
|
|
86
|
+
*/
|
|
87
|
+
optionValue?: keyof TItem;
|
|
88
|
+
/**
|
|
89
|
+
* Property name on TItem that holds the **label**.
|
|
90
|
+
*
|
|
91
|
+
* Example:
|
|
92
|
+
* items = [{ id: "free", title: "Free" }]
|
|
93
|
+
* optionLabel = "title"
|
|
94
|
+
*/
|
|
95
|
+
optionLabel?: keyof TItem;
|
|
96
|
+
/**
|
|
97
|
+
* Optional custom renderer for each option.
|
|
98
|
+
*
|
|
99
|
+
* If provided, the default label/description layout is skipped and
|
|
100
|
+
* this function is responsible for rendering the row.
|
|
101
|
+
*/
|
|
102
|
+
renderOption?: (ctx: RadioRenderOptionContext<TValue>) => React.ReactNode;
|
|
103
|
+
/**
|
|
104
|
+
* Layout mode for the group.
|
|
105
|
+
* Default: "list".
|
|
106
|
+
*/
|
|
107
|
+
layout?: RadioLayoutMode;
|
|
108
|
+
/**
|
|
109
|
+
* Number of columns in grid mode.
|
|
110
|
+
* Default: 2.
|
|
111
|
+
*/
|
|
112
|
+
columns?: number;
|
|
113
|
+
/**
|
|
114
|
+
* Gap between items (list rows or grid cells) in px.
|
|
115
|
+
* If omitted, Tailwind gaps/classes can handle spacing.
|
|
116
|
+
*/
|
|
117
|
+
itemGapPx?: number;
|
|
118
|
+
/**
|
|
119
|
+
* Visual size of the radios.
|
|
120
|
+
* Default: "md".
|
|
121
|
+
*/
|
|
122
|
+
size?: RadioSize;
|
|
123
|
+
/**
|
|
124
|
+
* Vertical density (padding) of each row.
|
|
125
|
+
* Default: "comfortable".
|
|
126
|
+
*/
|
|
127
|
+
density?: RadioDensity;
|
|
128
|
+
/**
|
|
129
|
+
* ARIA overrides for the group.
|
|
130
|
+
*/
|
|
131
|
+
"aria-label"?: string;
|
|
132
|
+
"aria-labelledby"?: string;
|
|
133
|
+
/**
|
|
134
|
+
* Wrapper class for the whole radio group.
|
|
135
|
+
*/
|
|
136
|
+
groupClassName?: string;
|
|
137
|
+
/**
|
|
138
|
+
* Extra classes for each radio option row.
|
|
139
|
+
*/
|
|
140
|
+
optionClassName?: string;
|
|
141
|
+
/**
|
|
142
|
+
* Extra classes for the option label node.
|
|
143
|
+
*/
|
|
144
|
+
labelClassName?: string;
|
|
145
|
+
/**
|
|
146
|
+
* Extra classes for the description text under the label.
|
|
147
|
+
*/
|
|
148
|
+
descriptionClassName?: string;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Full props for the Shadcn-based radio variant.
|
|
152
|
+
*/
|
|
153
|
+
export type ShadcnRadioVariantProps<TValue, TItem = RadioItem<TValue>> = ShadcnRadioUiProps<TItem, TValue> & Pick<VariantBaseProps<TValue | undefined>, "value" | "onValue" | "error" | "disabled" | "required"> & Pick<React.ComponentProps<typeof RadioGroup>, "name"> & {
|
|
154
|
+
id?: string;
|
|
155
|
+
className?: string;
|
|
156
|
+
"aria-describedby"?: string;
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* Convenience type for the concrete React component.
|
|
160
|
+
*/
|
|
161
|
+
export interface ShadcnRadioVariantComponent<TValue, TItem = RadioItem<TValue>> extends React.ForwardRefExoticComponent<ShadcnRadioVariantProps<TValue, TItem> & React.RefAttributes<HTMLDivElement>> {
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Concrete Shadcn radio variant component.
|
|
165
|
+
*
|
|
166
|
+
* Cast to a generic-friendly type so TS can still infer TValue/TItem.
|
|
167
|
+
*/
|
|
168
|
+
export declare const ShadcnRadioVariant: <TValue, TItem = RadioItem<TValue>>(props: ShadcnRadioVariantProps<TValue, TItem> & {
|
|
169
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
170
|
+
}) => React.ReactElement | null;
|
|
171
|
+
export default ShadcnRadioVariant;
|
|
172
|
+
//# sourceMappingURL=radio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio.d.ts","sourceRoot":"","sources":["../../../src/presets/shadcn-variants/radio.tsx"],"names":[],"mappings":"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"}
|