@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
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
type MaskMode = "raw" | "masked";
|
|
3
|
+
export interface InputMaskProps {
|
|
4
|
+
mask?: string;
|
|
5
|
+
maskDefinitions?: Record<string, RegExp>;
|
|
6
|
+
slotChar?: string;
|
|
7
|
+
autoClear?: boolean;
|
|
8
|
+
unmask?: MaskMode | boolean;
|
|
9
|
+
maskInsertMode?: "stream" | "caret";
|
|
10
|
+
}
|
|
11
|
+
export interface InputAffixProps {
|
|
12
|
+
prefix?: string;
|
|
13
|
+
suffix?: string;
|
|
14
|
+
/**
|
|
15
|
+
* If true (default), we assume the model value does NOT contain the prefix
|
|
16
|
+
* and we only add it visually at render time.
|
|
17
|
+
*/
|
|
18
|
+
stripPrefix?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* If true (default), we assume the model value does NOT contain the suffix
|
|
21
|
+
* and we only add it visually at render time.
|
|
22
|
+
*/
|
|
23
|
+
stripSuffix?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface InputIconControlProps {
|
|
26
|
+
leadingIcons?: React.ReactNode[];
|
|
27
|
+
trailingIcons?: React.ReactNode[];
|
|
28
|
+
icon?: React.ReactNode;
|
|
29
|
+
iconGap?: number;
|
|
30
|
+
leadingIconSpacing?: number;
|
|
31
|
+
trailingIconSpacing?: number;
|
|
32
|
+
leadingControl?: React.ReactNode;
|
|
33
|
+
trailingControl?: React.ReactNode;
|
|
34
|
+
leadingControlClassName?: string;
|
|
35
|
+
trailingControlClassName?: string;
|
|
36
|
+
joinControls?: boolean;
|
|
37
|
+
extendBoxToControls?: boolean;
|
|
38
|
+
px?: number;
|
|
39
|
+
py?: number;
|
|
40
|
+
ps?: number;
|
|
41
|
+
pe?: number;
|
|
42
|
+
pb?: number;
|
|
43
|
+
inputClassName?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface InputSizeProps {
|
|
46
|
+
size?: "sm" | "md" | "lg" | (string & {});
|
|
47
|
+
density?: "compact" | "normal" | "relaxed" | "dense" | "loose" | (string & {});
|
|
48
|
+
}
|
|
49
|
+
export type InputKeyFilter = string | RegExp | ((nextValue: string, ctx: {
|
|
50
|
+
event: any;
|
|
51
|
+
currentValue: string;
|
|
52
|
+
input: HTMLInputElement;
|
|
53
|
+
}) => boolean);
|
|
54
|
+
export interface InputKeyFilterProps {
|
|
55
|
+
/**
|
|
56
|
+
* Filter that constrains what can be typed / pasted.
|
|
57
|
+
*
|
|
58
|
+
* - string preset: "int" | "num" | "money" | "hex" | "alpha" | "alphanum" | "email"
|
|
59
|
+
* - string pattern: converted to new RegExp(pattern)
|
|
60
|
+
* - RegExp: used directly
|
|
61
|
+
* - function: custom validator
|
|
62
|
+
*/
|
|
63
|
+
keyFilter?: InputKeyFilter;
|
|
64
|
+
/**
|
|
65
|
+
* Which keyboard event to hook for filtering:
|
|
66
|
+
* - "keydown"
|
|
67
|
+
* - "keypress" (closest to PrimeReact default)
|
|
68
|
+
* - "beforeinput"
|
|
69
|
+
*
|
|
70
|
+
* Default: "keypress"
|
|
71
|
+
*/
|
|
72
|
+
keyFilterOn?: "keydown" | "keypress" | "beforeinput";
|
|
73
|
+
/**
|
|
74
|
+
* Whether to apply keyFilter to paste events.
|
|
75
|
+
* Default: true
|
|
76
|
+
*/
|
|
77
|
+
keyFilterOnPaste?: boolean;
|
|
78
|
+
}
|
|
79
|
+
export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">, InputMaskProps, InputAffixProps, InputIconControlProps, InputSizeProps, InputKeyFilterProps {
|
|
80
|
+
}
|
|
81
|
+
export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
82
|
+
export {};
|
|
83
|
+
//# sourceMappingURL=input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/presets/ui/input.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,KAAK,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;AAGjC,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CACvC;AAGD,MAAM,WAAW,eAAe;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAGD,MAAM,WAAW,qBAAqB;IAClC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAClC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;CAClF;AAMD,MAAM,MAAM,cAAc,GACpB,MAAM,GACN,MAAM,GACN,CAAC,CACC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE;IACD,KAAK,EAAE,GAAG,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,gBAAgB,CAAC;CAC3B,KACA,OAAO,CAAC,CAAC;AAElB,MAAM,WAAW,mBAAmB;IAChC;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;IAErD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAuHD,MAAM,WAAW,UACb,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,EACjE,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB;CAAI;AAE3B,eAAO,MAAM,KAAK,qFAowBjB,CAAC"}
|
|
@@ -0,0 +1,436 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// src/presets/ui/input.tsx
|
|
3
|
+
// @ts-nocheck
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { cn } from "@/lib/utils";
|
|
6
|
+
import { InputMask } from "../ui/input-mask";
|
|
7
|
+
function cx(...parts) {
|
|
8
|
+
return cn(...parts);
|
|
9
|
+
}
|
|
10
|
+
function resolveKeyFilterPattern(filter) {
|
|
11
|
+
if (!filter)
|
|
12
|
+
return null;
|
|
13
|
+
if (filter instanceof RegExp) {
|
|
14
|
+
// remove stateful flags for safety
|
|
15
|
+
const flags = filter.flags.replace("g", "").replace("y", "");
|
|
16
|
+
return new RegExp(filter.source, flags);
|
|
17
|
+
}
|
|
18
|
+
const presets = {
|
|
19
|
+
int: /^[+-]?\d*$/,
|
|
20
|
+
num: /^-?\d*(\.\d*)?$/,
|
|
21
|
+
money: /^-?\d*(\.\d{0,2})?$/,
|
|
22
|
+
hex: /^[0-9a-f]*$/i,
|
|
23
|
+
alpha: /^[A-Za-z]*$/,
|
|
24
|
+
alphanum: /^[A-Za-z0-9]*$/,
|
|
25
|
+
email: /^[^\s@]*@?[^\s@]*$/, // lenient while typing
|
|
26
|
+
};
|
|
27
|
+
const preset = presets[filter];
|
|
28
|
+
if (preset)
|
|
29
|
+
return preset;
|
|
30
|
+
try {
|
|
31
|
+
return new RegExp(filter);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function runKeyFilter(filter, nextValue, input, event) {
|
|
38
|
+
if (!filter)
|
|
39
|
+
return true;
|
|
40
|
+
// Always allow empty so users can clear the field
|
|
41
|
+
if (nextValue === "")
|
|
42
|
+
return true;
|
|
43
|
+
if (typeof filter === "function") {
|
|
44
|
+
return filter(nextValue, {
|
|
45
|
+
event,
|
|
46
|
+
currentValue: input.value,
|
|
47
|
+
input,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
const pattern = resolveKeyFilterPattern(filter);
|
|
51
|
+
if (!pattern)
|
|
52
|
+
return true;
|
|
53
|
+
return pattern.test(nextValue);
|
|
54
|
+
}
|
|
55
|
+
function computeNextFromInsertion(input, inserted) {
|
|
56
|
+
const value = input.value ?? "";
|
|
57
|
+
const start = input.selectionStart ?? value.length;
|
|
58
|
+
const end = input.selectionEnd ?? start;
|
|
59
|
+
return value.slice(0, start) + inserted + value.slice(end);
|
|
60
|
+
}
|
|
61
|
+
// Same logic as in ShadcnTextVariant
|
|
62
|
+
function resolveBasePadding(size, density) {
|
|
63
|
+
let px = 12;
|
|
64
|
+
let py = 4;
|
|
65
|
+
const s = size ?? "md";
|
|
66
|
+
const d = density ?? "normal";
|
|
67
|
+
if (s === "sm") {
|
|
68
|
+
px = 10;
|
|
69
|
+
py = 3;
|
|
70
|
+
}
|
|
71
|
+
else if (s === "lg") {
|
|
72
|
+
px = 14;
|
|
73
|
+
py = 5;
|
|
74
|
+
}
|
|
75
|
+
if (d === "dense" || d === "compact") {
|
|
76
|
+
py = Math.max(2, py - 1);
|
|
77
|
+
}
|
|
78
|
+
else if (d === "relaxed" || d === "loose") {
|
|
79
|
+
py = py + 1;
|
|
80
|
+
}
|
|
81
|
+
return { px, py };
|
|
82
|
+
}
|
|
83
|
+
// Same logic as in ShadcnTextVariant
|
|
84
|
+
function resolveSizeDensityClasses(size, density) {
|
|
85
|
+
const s = size ?? "md";
|
|
86
|
+
const d = density ?? "normal";
|
|
87
|
+
let heightCls = "h-9";
|
|
88
|
+
let textCls = "text-base md:text-sm";
|
|
89
|
+
if (s === "sm") {
|
|
90
|
+
heightCls = "h-8";
|
|
91
|
+
textCls = "text-sm";
|
|
92
|
+
}
|
|
93
|
+
else if (s === "lg") {
|
|
94
|
+
heightCls = "h-10";
|
|
95
|
+
textCls = "text-base";
|
|
96
|
+
}
|
|
97
|
+
let densityCls = "";
|
|
98
|
+
if (d === "dense" || d === "compact") {
|
|
99
|
+
densityCls = "leading-tight";
|
|
100
|
+
}
|
|
101
|
+
else if (d === "relaxed" || d === "loose") {
|
|
102
|
+
densityCls = "leading-relaxed";
|
|
103
|
+
}
|
|
104
|
+
return { heightCls, textCls, densityCls };
|
|
105
|
+
}
|
|
106
|
+
export const Input = React.forwardRef(function Input(rawProps, forwardedRef) {
|
|
107
|
+
const {
|
|
108
|
+
// base
|
|
109
|
+
className, style, type, disabled, readOnly, required,
|
|
110
|
+
// size / density
|
|
111
|
+
size = "md", density = "normal",
|
|
112
|
+
// mask
|
|
113
|
+
mask, maskDefinitions, // reserved
|
|
114
|
+
slotChar, autoClear, unmask, maskInsertMode,
|
|
115
|
+
// affixes (value-level)
|
|
116
|
+
prefix, suffix, stripPrefix = true, stripSuffix = true,
|
|
117
|
+
// icons / controls
|
|
118
|
+
leadingIcons, trailingIcons, icon, iconGap, leadingIconSpacing, trailingIconSpacing, leadingControl, trailingControl, leadingControlClassName, trailingControlClassName, joinControls = true, extendBoxToControls = true, px, py, ps, pe, pb, inputClassName,
|
|
119
|
+
// key filter
|
|
120
|
+
keyFilter, keyFilterOn = "keypress", keyFilterOnPaste = true,
|
|
121
|
+
// events
|
|
122
|
+
onChange, onFocus, onBlur, onKeyDown, onKeyPress, onBeforeInput, onPaste,
|
|
123
|
+
// rest of native props (value, defaultValue, placeholder, etc.)
|
|
124
|
+
...rest } = rawProps;
|
|
125
|
+
const sizeKey = size ?? "md";
|
|
126
|
+
const densityKey = density ?? "normal";
|
|
127
|
+
const isMasked = Boolean(mask);
|
|
128
|
+
const innerRef = React.useRef(null);
|
|
129
|
+
React.useImperativeHandle(forwardedRef, () => innerRef.current, []);
|
|
130
|
+
// Icons ONLY (prefix/suffix are NOT treated as icons)
|
|
131
|
+
const resolvedLeadingIcons = (() => {
|
|
132
|
+
if (leadingIcons && leadingIcons.length)
|
|
133
|
+
return leadingIcons;
|
|
134
|
+
if (icon)
|
|
135
|
+
return [icon];
|
|
136
|
+
return [];
|
|
137
|
+
})();
|
|
138
|
+
const resolvedTrailingIcons = trailingIcons ?? [];
|
|
139
|
+
const hasLeadingIcons = resolvedLeadingIcons.length > 0;
|
|
140
|
+
const hasTrailingIcons = resolvedTrailingIcons.length > 0;
|
|
141
|
+
const hasLeadingControl = !!leadingControl;
|
|
142
|
+
const hasTrailingControl = !!trailingControl;
|
|
143
|
+
const hasControls = hasLeadingControl || hasTrailingControl;
|
|
144
|
+
const hasIcons = hasLeadingIcons || hasTrailingIcons;
|
|
145
|
+
const hasExtras = hasControls || hasIcons;
|
|
146
|
+
const baseIconGap = iconGap ?? 4;
|
|
147
|
+
const leadingGap = leadingIconSpacing ?? baseIconGap;
|
|
148
|
+
const trailingGap = trailingIconSpacing ?? baseIconGap;
|
|
149
|
+
// Measure icon widths (for padding vars)
|
|
150
|
+
const leadingIconsRef = React.useRef(null);
|
|
151
|
+
const trailingIconsRef = React.useRef(null);
|
|
152
|
+
const [leadingIconsWidth, setLeadingIconsWidth] = React.useState(0);
|
|
153
|
+
const [trailingIconsWidth, setTrailingIconsWidth] = React.useState(0);
|
|
154
|
+
React.useLayoutEffect(() => {
|
|
155
|
+
if (typeof window === "undefined")
|
|
156
|
+
return;
|
|
157
|
+
if (typeof ResizeObserver === "undefined")
|
|
158
|
+
return;
|
|
159
|
+
const leadingEl = leadingIconsRef.current;
|
|
160
|
+
const trailingEl = trailingIconsRef.current;
|
|
161
|
+
if (!leadingEl && !trailingEl)
|
|
162
|
+
return;
|
|
163
|
+
const observer = new ResizeObserver((entries) => {
|
|
164
|
+
for (const entry of entries) {
|
|
165
|
+
const width = entry.contentRect.width;
|
|
166
|
+
if (entry.target === leadingIconsRef.current) {
|
|
167
|
+
setLeadingIconsWidth(width);
|
|
168
|
+
}
|
|
169
|
+
else if (entry.target === trailingIconsRef.current) {
|
|
170
|
+
setTrailingIconsWidth(width);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
if (leadingEl)
|
|
175
|
+
observer.observe(leadingEl);
|
|
176
|
+
if (trailingEl)
|
|
177
|
+
observer.observe(trailingEl);
|
|
178
|
+
return () => observer.disconnect();
|
|
179
|
+
}, [hasLeadingIcons, hasTrailingIcons]);
|
|
180
|
+
// Padding vars (same idea as ShadcnTextVariant, feeding into Tailwind
|
|
181
|
+
// utilities on the actual “box” via CSS variables)
|
|
182
|
+
const { px: pxDefault, py: pyDefault } = resolveBasePadding(size, density);
|
|
183
|
+
const extraPx = typeof px === "number" ? px : 0;
|
|
184
|
+
const extraPy = typeof py === "number" ? py : 0;
|
|
185
|
+
const extraPs = typeof ps === "number" ? ps : 0;
|
|
186
|
+
const extraPe = typeof pe === "number" ? pe : 0;
|
|
187
|
+
const extraPb = typeof pb === "number" ? pb : 0;
|
|
188
|
+
let paddingStart = pxDefault + extraPx + extraPs;
|
|
189
|
+
let paddingEnd = pxDefault + extraPx + extraPe;
|
|
190
|
+
const paddingTop = pyDefault + extraPy;
|
|
191
|
+
const paddingBottom = pyDefault + extraPy + extraPb;
|
|
192
|
+
const textGap = baseIconGap;
|
|
193
|
+
if (hasLeadingIcons && leadingIconsWidth > 0) {
|
|
194
|
+
paddingStart += leadingIconsWidth + textGap;
|
|
195
|
+
}
|
|
196
|
+
if (hasTrailingIcons && trailingIconsWidth > 0) {
|
|
197
|
+
paddingEnd += trailingIconsWidth + textGap;
|
|
198
|
+
}
|
|
199
|
+
const varsStyle = {
|
|
200
|
+
...(style ?? {}),
|
|
201
|
+
"--fp-pl": `${paddingStart}px`,
|
|
202
|
+
"--fp-pr": `${paddingEnd}px`,
|
|
203
|
+
"--fp-pt": `${paddingTop}px`,
|
|
204
|
+
"--fp-pb": `${paddingBottom}px`,
|
|
205
|
+
};
|
|
206
|
+
const { heightCls, textCls, densityCls } = resolveSizeDensityClasses(size, density);
|
|
207
|
+
// Core “box” classes (border, radius, focus, size/density),
|
|
208
|
+
// WITHOUT padding – padding is applied only on the actual box element.
|
|
209
|
+
const baseBoxClasses = cx("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30", "border-input w-full min-w-0 rounded-md border bg-transparent shadow-xs", "transition-[color,box-shadow] outline-none", "file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium", "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", "focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", heightCls, textCls, densityCls);
|
|
210
|
+
// Padding classes driven by CSS vars
|
|
211
|
+
const boxPaddingClasses = cx("px-(--fp-pl,--spacing(3)) pr-(--fp-pr,--spacing(3))", "pt-(--fp-pt,--spacing(1)) pb-(--fp-pb,--spacing(1))");
|
|
212
|
+
// Inner neutral input (used when the *wrapper* carries the box)
|
|
213
|
+
const innerInputNeutral = cx("w-full min-w-0 bg-transparent border-none shadow-none outline-none", "px-0 py-0", "focus-visible:outline-none focus-visible:ring-0 focus-visible:border-transparent", "placeholder:text-muted-foreground", inputClassName);
|
|
214
|
+
const maskMode = unmask === true || unmask === "raw" ? "raw" : "masked";
|
|
215
|
+
// Focus handler with prefix/suffix selection logic
|
|
216
|
+
const handleFocus = React.useCallback((event) => {
|
|
217
|
+
onFocus?.(event);
|
|
218
|
+
if (!prefix && !suffix)
|
|
219
|
+
return;
|
|
220
|
+
const inputEl = event.currentTarget;
|
|
221
|
+
const inputValue = inputEl.value;
|
|
222
|
+
const prefixLength = (prefix || "").length;
|
|
223
|
+
const suffixLength = (suffix || "").length;
|
|
224
|
+
const end = inputValue.length === 0
|
|
225
|
+
? 0
|
|
226
|
+
: inputValue.length - suffixLength;
|
|
227
|
+
try {
|
|
228
|
+
inputEl.setSelectionRange(prefixLength, end);
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
// ignore if unsupported
|
|
232
|
+
}
|
|
233
|
+
}, [onFocus, prefix, suffix]);
|
|
234
|
+
const focusInput = () => {
|
|
235
|
+
if (innerRef.current) {
|
|
236
|
+
innerRef.current.focus();
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
const handleIconMouseDown = (e) => {
|
|
240
|
+
e.preventDefault();
|
|
241
|
+
focusInput();
|
|
242
|
+
};
|
|
243
|
+
const placeholder = typeof mask === "string" && mask
|
|
244
|
+
? mask
|
|
245
|
+
: rest.placeholder;
|
|
246
|
+
const hasCustomPadding = typeof px === "number" ||
|
|
247
|
+
typeof py === "number" ||
|
|
248
|
+
typeof ps === "number" ||
|
|
249
|
+
typeof pe === "number" ||
|
|
250
|
+
typeof pb === "number";
|
|
251
|
+
const hasKeyFilter = !!keyFilter;
|
|
252
|
+
// Key filter wrappers
|
|
253
|
+
const handleKeyDownWrapped = React.useCallback((event) => {
|
|
254
|
+
if (hasKeyFilter &&
|
|
255
|
+
keyFilterOn === "keydown" &&
|
|
256
|
+
!event.ctrlKey &&
|
|
257
|
+
!event.metaKey &&
|
|
258
|
+
!event.altKey &&
|
|
259
|
+
event.key &&
|
|
260
|
+
event.key.length === 1) {
|
|
261
|
+
const inputEl = event.currentTarget;
|
|
262
|
+
const nextValue = computeNextFromInsertion(inputEl, event.key);
|
|
263
|
+
if (!runKeyFilter(keyFilter, nextValue, inputEl, event)) {
|
|
264
|
+
event.preventDefault();
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
onKeyDown?.(event);
|
|
269
|
+
}, [hasKeyFilter, keyFilterOn, keyFilter, onKeyDown]);
|
|
270
|
+
const handleKeyPressWrapped = React.useCallback((event) => {
|
|
271
|
+
if (hasKeyFilter &&
|
|
272
|
+
keyFilterOn === "keypress" &&
|
|
273
|
+
!event.ctrlKey &&
|
|
274
|
+
!event.metaKey &&
|
|
275
|
+
!event.altKey &&
|
|
276
|
+
event.key &&
|
|
277
|
+
event.key.length === 1) {
|
|
278
|
+
const inputEl = event.currentTarget;
|
|
279
|
+
const nextValue = computeNextFromInsertion(inputEl, event.key);
|
|
280
|
+
if (!runKeyFilter(keyFilter, nextValue, inputEl, event)) {
|
|
281
|
+
event.preventDefault();
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
onKeyPress?.(event);
|
|
286
|
+
}, [hasKeyFilter, keyFilterOn, keyFilter, onKeyPress]);
|
|
287
|
+
const handleBeforeInputWrapped = React.useCallback((event) => {
|
|
288
|
+
if (hasKeyFilter &&
|
|
289
|
+
keyFilterOn === "beforeinput" &&
|
|
290
|
+
event?.nativeEvent) {
|
|
291
|
+
const inputEl = event.currentTarget;
|
|
292
|
+
const data = event.nativeEvent.data;
|
|
293
|
+
const inputType = event.nativeEvent.inputType;
|
|
294
|
+
// We only care about text insertions; deletions/etc. pass through.
|
|
295
|
+
if (data && inputType && inputType.startsWith("insert")) {
|
|
296
|
+
const nextValue = computeNextFromInsertion(inputEl, data);
|
|
297
|
+
if (!runKeyFilter(keyFilter, nextValue, inputEl, event)) {
|
|
298
|
+
event.preventDefault();
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
onBeforeInput?.(event);
|
|
304
|
+
}, [hasKeyFilter, keyFilterOn, keyFilter, onBeforeInput]);
|
|
305
|
+
const handlePasteWrapped = React.useCallback((event) => {
|
|
306
|
+
if (hasKeyFilter && keyFilterOnPaste) {
|
|
307
|
+
const pasted = event.clipboardData?.getData("text") ?? "";
|
|
308
|
+
if (pasted) {
|
|
309
|
+
const inputEl = event.currentTarget;
|
|
310
|
+
const nextValue = computeNextFromInsertion(inputEl, pasted);
|
|
311
|
+
if (!runKeyFilter(keyFilter, nextValue, inputEl, event)) {
|
|
312
|
+
event.preventDefault();
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
onPaste?.(event);
|
|
318
|
+
}, [hasKeyFilter, keyFilterOnPaste, keyFilter, onPaste]);
|
|
319
|
+
// Core renderer (mask vs plain)
|
|
320
|
+
const renderBaseInput = (extra) => {
|
|
321
|
+
const useInnerNeutral = extra.inner !== false;
|
|
322
|
+
// MASKED: we delegate value semantics to caller.
|
|
323
|
+
if (isMasked && mask) {
|
|
324
|
+
let maskWithAffixes = mask;
|
|
325
|
+
if (prefix) {
|
|
326
|
+
maskWithAffixes = `${prefix}${maskWithAffixes}`;
|
|
327
|
+
}
|
|
328
|
+
if (suffix) {
|
|
329
|
+
maskWithAffixes = `${maskWithAffixes}${suffix}`;
|
|
330
|
+
}
|
|
331
|
+
return (
|
|
332
|
+
//@ts-ignore
|
|
333
|
+
_jsx(InputMask, { ref: innerRef, mask: maskWithAffixes, slotChar: slotChar ?? "_", unmask: maskMode === "raw", disabled: disabled, readOnly: readOnly, onChange: onChange, onBlur: onBlur, onFocus: handleFocus, onKeyDown: handleKeyDownWrapped, onKeyPress: handleKeyPressWrapped, onBeforeInput: handleBeforeInputWrapped, onPaste: handlePasteWrapped, "aria-required": required ? "true" : undefined, "data-size": sizeKey, "data-density": densityKey, placeholder: placeholder, className: cx(useInnerNeutral ? innerInputNeutral : "", extra.className), style: extra.style, "data-slot": "input", ...rest }));
|
|
334
|
+
}
|
|
335
|
+
// PLAIN: value-level prefix/suffix
|
|
336
|
+
const modelValue = (rest.value ??
|
|
337
|
+
rest.defaultValue ??
|
|
338
|
+
"");
|
|
339
|
+
let displayValue = typeof modelValue === "string"
|
|
340
|
+
? modelValue
|
|
341
|
+
: Array.isArray(modelValue)
|
|
342
|
+
? modelValue.join(",")
|
|
343
|
+
: String(modelValue ?? "");
|
|
344
|
+
if (prefix) {
|
|
345
|
+
const hasPrefix = displayValue.startsWith(prefix);
|
|
346
|
+
if (stripPrefix) {
|
|
347
|
+
const withoutPrefix = hasPrefix
|
|
348
|
+
? displayValue.slice(prefix.length)
|
|
349
|
+
: displayValue;
|
|
350
|
+
displayValue = prefix + withoutPrefix;
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
displayValue = hasPrefix
|
|
354
|
+
? displayValue
|
|
355
|
+
: prefix + displayValue;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
if (suffix) {
|
|
359
|
+
const hasSuffix = displayValue.endsWith(suffix);
|
|
360
|
+
if (stripSuffix) {
|
|
361
|
+
const withoutSuffix = hasSuffix
|
|
362
|
+
? displayValue.slice(0, displayValue.length - suffix.length)
|
|
363
|
+
: displayValue;
|
|
364
|
+
displayValue = withoutSuffix + suffix;
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
displayValue = hasSuffix
|
|
368
|
+
? displayValue
|
|
369
|
+
: displayValue + suffix;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
return (
|
|
373
|
+
//@ts-ignore
|
|
374
|
+
_jsx("input", { ref: innerRef, type: type, "data-slot": "input", className: cx(useInnerNeutral ? innerInputNeutral : "", extra.className), style: extra.style, disabled: disabled, readOnly: readOnly, "aria-required": required ? "true" : undefined, "data-size": sizeKey, "data-density": densityKey, placeholder: placeholder, value: displayValue, onChange: onChange, onBlur: onBlur, onFocus: handleFocus, onKeyDown: handleKeyDownWrapped, onKeyPress: handleKeyPressWrapped, onBeforeInput: handleBeforeInputWrapped, onPaste: handlePasteWrapped, ...rest }));
|
|
375
|
+
};
|
|
376
|
+
// RENDER MODES
|
|
377
|
+
// 1. No controls, no icons → simple input (input is the box)
|
|
378
|
+
if (!hasControls && !hasIcons && !hasCustomPadding) {
|
|
379
|
+
return renderBaseInput({
|
|
380
|
+
inner: false,
|
|
381
|
+
className: cx(baseBoxClasses, boxPaddingClasses, className),
|
|
382
|
+
style: varsStyle,
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
// 2. No controls, but icons and/or custom padding → wrapper + box input
|
|
386
|
+
if (!hasControls) {
|
|
387
|
+
return (_jsxs("div", { className: cx("relative w-full"), style: style, "data-slot": "input-wrapper", "data-has-icons": hasIcons ? "true" : "false", children: [renderBaseInput({
|
|
388
|
+
inner: false,
|
|
389
|
+
className: cx(baseBoxClasses, boxPaddingClasses, className),
|
|
390
|
+
style: varsStyle,
|
|
391
|
+
}), hasLeadingIcons && (_jsx("div", { ref: leadingIconsRef, className: "pointer-events-auto absolute inset-y-0 left-0 flex items-center cursor-pointer", style: {
|
|
392
|
+
gap: leadingGap,
|
|
393
|
+
paddingLeft: `${pxDefault}px`,
|
|
394
|
+
}, "data-slot": "leading-icons", onMouseDown: handleIconMouseDown, children: resolvedLeadingIcons.map((node, idx) => (_jsx("span", { className: "flex items-center justify-center", children: node }, idx))) })), hasTrailingIcons && (_jsx("div", { ref: trailingIconsRef, className: "pointer-events-auto absolute inset-y-0 right-0 flex items-center cursor-pointer", style: {
|
|
395
|
+
gap: trailingGap,
|
|
396
|
+
paddingRight: `${pxDefault}px`,
|
|
397
|
+
}, "data-slot": "trailing-icons", onMouseDown: handleIconMouseDown, children: resolvedTrailingIcons.map((node, idx) => (_jsx("span", { className: "flex items-center justify-center", children: node }, idx))) }))] }));
|
|
398
|
+
}
|
|
399
|
+
// From here: we have controls → we take over the box.
|
|
400
|
+
// data-slot="input-group" NEVER carries padding; padding is on input-region / input-box.
|
|
401
|
+
const innerInputClassJoined = innerInputNeutral;
|
|
402
|
+
// 3. Joined mode: controls + input share one visual box
|
|
403
|
+
if (hasControls && joinControls) {
|
|
404
|
+
const groupClassName = cx("flex items-stretch w-full overflow-hidden", extendBoxToControls && cx("relative", baseBoxClasses), // box is the group
|
|
405
|
+
!extendBoxToControls &&
|
|
406
|
+
"relative border-none shadow-none bg-transparent", className);
|
|
407
|
+
const inputRegionClassName = cx("relative flex-1 flex items-center min-w-0",
|
|
408
|
+
// When the group isn't the box, the region becomes the box.
|
|
409
|
+
!extendBoxToControls && baseBoxClasses, "pl-[var(--fp-pl)] pr-[var(--fp-pr)] pt-[var(--fp-pt)] pb-[var(--fp-pb)]");
|
|
410
|
+
return (_jsxs("div", { className: groupClassName, style: varsStyle, "data-slot": "input-group", "data-has-extras": hasExtras ? "true" : "false", "data-disabled": disabled ? "true" : "false", "data-size": sizeKey, "data-density": densityKey, children: [hasLeadingControl && (_jsx("div", { className: cx("flex items-center", leadingControlClassName), "data-slot": "leading-control", children: leadingControl })), _jsxs("div", { className: inputRegionClassName, "data-slot": "input-region", children: [renderBaseInput({
|
|
411
|
+
inner: true,
|
|
412
|
+
className: innerInputClassJoined,
|
|
413
|
+
style: undefined,
|
|
414
|
+
}), hasLeadingIcons && (_jsx("div", { ref: leadingIconsRef, className: "absolute inset-y-0 left-0 flex items-center cursor-pointer", style: {
|
|
415
|
+
gap: leadingGap,
|
|
416
|
+
paddingLeft: `${pxDefault}px`,
|
|
417
|
+
}, "data-slot": "leading-icons", onMouseDown: handleIconMouseDown, children: resolvedLeadingIcons.map((node, idx) => (_jsx("span", { className: "flex items-center justify-center", children: node }, idx))) })), hasTrailingIcons && (_jsx("div", { ref: trailingIconsRef, className: "absolute inset-y-0 right-0 flex items-center cursor-pointer", style: {
|
|
418
|
+
gap: trailingGap,
|
|
419
|
+
paddingRight: `${pxDefault}px`,
|
|
420
|
+
}, "data-slot": "trailing-icons", onMouseDown: handleIconMouseDown, children: resolvedTrailingIcons.map((node, idx) => (_jsx("span", { className: "flex items-center justify-center", children: node }, idx))) }))] }), hasTrailingControl && (_jsx("div", { className: cx("flex items-center", trailingControlClassName), "data-slot": "trailing-control", children: trailingControl }))] }));
|
|
421
|
+
}
|
|
422
|
+
// 4. Separate mode: input box + separate neighbour controls
|
|
423
|
+
const standaloneBoxClassName = cx("relative", baseBoxClasses, "pl-[var(--fp-pl)] pr-[var(--fp-pr)] pt-[var(--fp-pt)] pb-[var(--fp-pb)]", className);
|
|
424
|
+
return (_jsxs("div", { className: "flex items-stretch gap-1 w-full", children: [hasLeadingControl && (_jsx("div", { className: cx("flex items-center", leadingControlClassName), "data-slot": "leading-control", children: leadingControl })), _jsx("div", { className: "flex-1 min-w-0", children: _jsxs("div", { className: standaloneBoxClassName, style: varsStyle, "data-slot": "input-box", "data-has-extras": hasExtras ? "true" : "false", "data-disabled": disabled ? "true" : "false", "data-size": sizeKey, "data-density": densityKey, children: [renderBaseInput({
|
|
425
|
+
inner: true,
|
|
426
|
+
className: innerInputNeutral,
|
|
427
|
+
style: undefined,
|
|
428
|
+
}), hasLeadingIcons && (_jsx("div", { ref: leadingIconsRef, className: "absolute inset-y-0 left-0 flex items-center cursor-pointer", style: {
|
|
429
|
+
gap: leadingGap,
|
|
430
|
+
paddingLeft: `${pxDefault}px`,
|
|
431
|
+
}, "data-slot": "leading-icons", onMouseDown: handleIconMouseDown, children: resolvedLeadingIcons.map((node, idx) => (_jsx("span", { className: "flex items-center justify-center", children: node }, idx))) })), hasTrailingIcons && (_jsx("div", { ref: trailingIconsRef, className: "absolute inset-y-0 right-0 flex items-center cursor-pointer", style: {
|
|
432
|
+
gap: trailingGap,
|
|
433
|
+
paddingRight: `${pxDefault}px`,
|
|
434
|
+
}, "data-slot": "trailing-icons", onMouseDown: handleIconMouseDown, children: resolvedTrailingIcons.map((node, idx) => (_jsx("span", { className: "flex items-center justify-center", children: node }, idx))) }))] }) }), hasTrailingControl && (_jsx("div", { className: cx("flex items-center", trailingControlClassName), "data-slot": "trailing-control", children: trailingControl }))] }));
|
|
435
|
+
});
|
|
436
|
+
//# sourceMappingURL=input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/presets/ui/input.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
3
|
+
declare function Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export { Label };
|
|
5
|
+
//# sourceMappingURL=label.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../src/presets/ui/label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AAIvD,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,2CAWlD;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
3
|
+
import { cn } from "@/lib/utils";
|
|
4
|
+
function Label({ className, ...props }) {
|
|
5
|
+
return (_jsx(LabelPrimitive.Root, { "data-slot": "label", className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className), ...props }));
|
|
6
|
+
}
|
|
7
|
+
export { Label };
|
|
8
|
+
//# sourceMappingURL=label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/presets/ui/label.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AAEvD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AAEhC,SAAS,KAAK,CAAC,EACb,SAAS,EACT,GAAG,KAAK,EACyC;IACjD,OAAO,CACL,KAAC,cAAc,CAAC,IAAI,iBACR,OAAO,EACjB,SAAS,EAAE,EAAE,CACX,qNAAqN,EACrN,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { ShadcnTextVariantProps } from "../shadcn-variants/text";
|
|
3
|
+
import { FieldSize } from "@/variants/shared";
|
|
4
|
+
type InputRef = HTMLInputElement;
|
|
5
|
+
export interface InputNumberValueChangeEvent {
|
|
6
|
+
originalEvent: React.SyntheticEvent<any> | null;
|
|
7
|
+
value: number | null;
|
|
8
|
+
stopPropagation(): void;
|
|
9
|
+
preventDefault(): void;
|
|
10
|
+
target: {
|
|
11
|
+
name?: string | null;
|
|
12
|
+
id?: string | null;
|
|
13
|
+
value: number | null;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export interface InputNumberProps extends Omit<ShadcnTextVariantProps, 'min' | 'max' | 'value'>, Omit<React.InputHTMLAttributes<HTMLInputElement>, "value" | "defaultValue" | "onChange" | "onInput" | "onKeyDown" | "onKeyUp" | "size" | 'max' | 'min'> {
|
|
17
|
+
onKeyUp?(event: React.KeyboardEvent<HTMLInputElement>): unknown;
|
|
18
|
+
onKeyDown?(event: React.KeyboardEvent<HTMLInputElement>): unknown;
|
|
19
|
+
value?: number | null;
|
|
20
|
+
/**
|
|
21
|
+
* Emitted when the numeric value changes (Prime-style).
|
|
22
|
+
*/
|
|
23
|
+
onValueChange?: (e: InputNumberValueChangeEvent) => void;
|
|
24
|
+
/**
|
|
25
|
+
* Optional simple change handler (numeric value).
|
|
26
|
+
*/
|
|
27
|
+
onChange?: (e: {
|
|
28
|
+
originalEvent: React.SyntheticEvent<any>;
|
|
29
|
+
value: number | null;
|
|
30
|
+
}) => void;
|
|
31
|
+
locale?: string;
|
|
32
|
+
localeMatcher?: Intl.NumberFormatOptions["localeMatcher"];
|
|
33
|
+
mode?: "decimal" | "currency";
|
|
34
|
+
currency?: string;
|
|
35
|
+
currencyDisplay?: Intl.NumberFormatOptions["currencyDisplay"];
|
|
36
|
+
useGrouping?: boolean;
|
|
37
|
+
minFractionDigits?: number;
|
|
38
|
+
maxFractionDigits?: number;
|
|
39
|
+
roundingMode?: Intl.NumberFormatOptions["roundingMode"];
|
|
40
|
+
min?: number | null;
|
|
41
|
+
max?: number | null;
|
|
42
|
+
step?: number;
|
|
43
|
+
allowEmpty?: boolean;
|
|
44
|
+
format?: boolean;
|
|
45
|
+
inputId?: string;
|
|
46
|
+
inputClassName?: string;
|
|
47
|
+
inputStyle?: React.CSSProperties;
|
|
48
|
+
inputRef?: React.Ref<InputRef> | null;
|
|
49
|
+
/**
|
|
50
|
+
* String prefix/suffix (like Prime). They are part of formatting logic.
|
|
51
|
+
* You can ALSO forward them to your text variant as visual adornments.
|
|
52
|
+
*/
|
|
53
|
+
prefix?: string;
|
|
54
|
+
suffix?: string;
|
|
55
|
+
size?: FieldSize;
|
|
56
|
+
invalid?: boolean;
|
|
57
|
+
}
|
|
58
|
+
export declare const InputNumber: React.MemoExoticComponent<React.ForwardRefExoticComponent<InputNumberProps & React.RefAttributes<HTMLInputElement>>>;
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=number.d.ts.map
|