@sectile/vue 0.18.1 → 0.18.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordion.d.ts +1 -1
- package/dist/accordion.js +1 -1
- package/dist/carousel.d.ts +1 -1
- package/dist/carousel.js +1 -1
- package/dist/cascade-list.js +1 -1
- package/dist/cascade-list.js.map +1 -1
- package/dist/cascade-select.js +1 -1
- package/dist/cascade-select.js.map +1 -1
- package/dist/checkbox-group.js +1 -1
- package/dist/checkbox-group.js.map +1 -1
- package/dist/checkbox.d.ts +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/checkbox.js.map +1 -1
- package/dist/color-picker.js +1 -1
- package/dist/color-picker.js.map +1 -1
- package/dist/combobox.d.ts +1 -1
- package/dist/combobox.js +1 -1
- package/dist/combobox.js.map +1 -1
- package/dist/disclosure.d.ts +1 -1
- package/dist/disclosure.js +1 -1
- package/dist/editable.js +1 -1
- package/dist/editable.js.map +1 -1
- package/dist/{internal/form-context.d.ts → form/context.d.ts} +3 -2
- package/dist/{internal/form-context.js → form/context.js} +2 -2
- package/dist/form/context.js.map +1 -0
- package/dist/form/contracts.d.ts +219 -0
- package/dist/form/contracts.js +2 -0
- package/dist/form/contracts.js.map +1 -0
- package/dist/{internal/form-control-inventory.js → form/control-inventory.js} +1 -1
- package/dist/form/control-inventory.js.map +1 -0
- package/dist/form/control.js +2 -0
- package/dist/form/control.js.map +1 -0
- package/dist/form/field.d.ts +81 -0
- package/dist/form/field.js +2 -0
- package/dist/form/field.js.map +1 -0
- package/dist/form/native.d.ts +15 -0
- package/dist/form/native.js +2 -0
- package/dist/form/native.js.map +1 -0
- package/dist/form/part.d.ts +16 -0
- package/dist/form/part.js +2 -0
- package/dist/form/part.js.map +1 -0
- package/dist/form/parts.d.ts +93 -0
- package/dist/form/parts.js +2 -0
- package/dist/form/parts.js.map +1 -0
- package/dist/{internal/form-presence-parts.d.ts → form/presence-parts.d.ts} +1 -1
- package/dist/form/presence-parts.js +2 -0
- package/dist/form/presence-parts.js.map +1 -0
- package/dist/form/root.d.ts +2 -0
- package/dist/form/root.js +2 -0
- package/dist/form/root.js.map +1 -0
- package/dist/form/selectors.d.ts +7 -0
- package/dist/form/selectors.js +2 -0
- package/dist/form/selectors.js.map +1 -0
- package/dist/form.d.ts +8 -398
- package/dist/form.js +1 -1
- package/dist/form.js.map +1 -1
- package/dist/index.d.ts +10 -10
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/input/decimal-input.js.map +1 -0
- package/dist/input/native-field.js +2 -0
- package/dist/input/native-field.js.map +1 -0
- package/dist/input/native-input.js.map +1 -0
- package/dist/input/native-range-field.d.ts +86 -0
- package/dist/input/native-range-field.js +2 -0
- package/dist/input/native-range-field.js.map +1 -0
- package/dist/input/native-text-state.d.ts +2 -0
- package/dist/input/native-text-state.js +2 -0
- package/dist/input/native-text-state.js.map +1 -0
- package/dist/internal/cascade-choice.d.ts +1 -1
- package/dist/internal/cascade-choice.js +1 -1
- package/dist/internal/cascade-choice.js.map +1 -1
- package/dist/internal/controlled-state.js +1 -1
- package/dist/internal/controlled-state.js.map +1 -1
- package/dist/listbox.d.ts +1 -1
- package/dist/listbox.js +1 -1
- package/dist/listbox.js.map +1 -1
- package/dist/menu.js +1 -1
- package/dist/meter-group.js +1 -1
- package/dist/meter-group.js.map +1 -1
- package/dist/meter.js +1 -1
- package/dist/meter.js.map +1 -1
- package/dist/multi-thumb-slider.js +1 -1
- package/dist/multi-thumb-slider.js.map +1 -1
- package/dist/navigation-menu.d.ts +1 -1
- package/dist/navigation-menu.js +1 -1
- package/dist/number-field.d.ts +1 -1
- package/dist/number-field.js +1 -1
- package/dist/number-field.js.map +1 -1
- package/dist/{alert-dialog.d.ts → overlay/alert-dialog.d.ts} +1 -1
- package/dist/overlay/alert-dialog.js +2 -0
- package/dist/overlay/alert-dialog.js.map +1 -0
- package/dist/{dialog.d.ts → overlay/dialog.d.ts} +1 -1
- package/dist/overlay/dialog.js +2 -0
- package/dist/overlay/dialog.js.map +1 -0
- package/dist/{drawer.d.ts → overlay/drawer.d.ts} +1 -1
- package/dist/overlay/drawer.js +2 -0
- package/dist/overlay/drawer.js.map +1 -0
- package/dist/{popover.d.ts → overlay/popover.d.ts} +1 -1
- package/dist/overlay/popover.js +2 -0
- package/dist/overlay/popover.js.map +1 -0
- package/dist/overlay/popup.js +2 -0
- package/dist/overlay/popup.js.map +1 -0
- package/dist/{tooltip.d.ts → overlay/tooltip.d.ts} +1 -1
- package/dist/overlay/tooltip.js +2 -0
- package/dist/overlay/tooltip.js.map +1 -0
- package/dist/pin-input.js +1 -1
- package/dist/pin-input.js.map +1 -1
- package/dist/{internal → presence}/conditional-presence.js.map +1 -1
- package/dist/{internal → presence}/presence.js.map +1 -1
- package/dist/progress.js +1 -1
- package/dist/progress.js.map +1 -1
- package/dist/quantity-field.js +1 -1
- package/dist/quantity-field.js.map +1 -1
- package/dist/radio-group.d.ts +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/radio-group.js.map +1 -1
- package/dist/select.d.ts +1 -1
- package/dist/select.js +1 -1
- package/dist/select.js.map +1 -1
- package/dist/slider.js +1 -1
- package/dist/slider.js.map +1 -1
- package/dist/spin-button.js +1 -1
- package/dist/spin-button.js.map +1 -1
- package/dist/switch.js +1 -1
- package/dist/switch.js.map +1 -1
- package/dist/tabs.d.ts +1 -1
- package/dist/tabs.js +1 -1
- package/dist/{internal/tabular-components.d.ts → tabular/components.d.ts} +1 -1
- package/dist/{internal/tabular-components.js → tabular/components.js} +1 -1
- package/dist/tabular/components.js.map +1 -0
- package/dist/tabular/context.d.ts +16 -0
- package/dist/tabular/context.js +2 -0
- package/dist/tabular/context.js.map +1 -0
- package/dist/{internal/tabular-profile.d.ts → tabular/controller.d.ts} +2 -32
- package/dist/tabular/controller.js +2 -0
- package/dist/tabular/controller.js.map +1 -0
- package/dist/{data-grid.d.ts → tabular/data-grid.d.ts} +7 -5
- package/dist/tabular/data-grid.js +2 -0
- package/dist/tabular/data-grid.js.map +1 -0
- package/dist/{data-table.d.ts → tabular/data-table.d.ts} +9 -36
- package/dist/tabular/data-table.js +2 -0
- package/dist/tabular/data-table.js.map +1 -0
- package/dist/{data-tree-grid.d.ts → tabular/data-tree-grid.d.ts} +7 -5
- package/dist/tabular/data-tree-grid.js +2 -0
- package/dist/tabular/data-tree-grid.js.map +1 -0
- package/dist/{internal/tabular-parts.d.ts → tabular/parts.d.ts} +2 -1
- package/dist/tabular/parts.js +2 -0
- package/dist/tabular/parts.js.map +1 -0
- package/dist/tabular/schema.d.ts +35 -0
- package/dist/tabular/schema.js +2 -0
- package/dist/tabular/schema.js.map +1 -0
- package/dist/tabular/source.d.ts +20 -0
- package/dist/tabular/source.js +2 -0
- package/dist/tabular/source.js.map +1 -0
- package/dist/tags-input.js +1 -1
- package/dist/tags-input.js.map +1 -1
- package/dist/{calendar.d.ts → temporal/calendar.d.ts} +21 -21
- package/dist/temporal/calendar.js +2 -0
- package/dist/temporal/calendar.js.map +1 -0
- package/dist/temporal/capabilities/calendar.d.ts +1 -0
- package/dist/temporal/capabilities/calendar.js +2 -0
- package/dist/temporal/capabilities/calendar.js.map +1 -0
- package/dist/temporal/capabilities/date-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-picker.js +2 -0
- package/dist/temporal/capabilities/date-picker.js.map +1 -0
- package/dist/temporal/capabilities/date-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-range-picker.js +2 -0
- package/dist/temporal/capabilities/date-range-picker.js.map +1 -0
- package/dist/temporal/capabilities/date-time-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-time-picker.js +2 -0
- package/dist/temporal/capabilities/date-time-picker.js.map +1 -0
- package/dist/temporal/capabilities/date-time-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-time-range-picker.js +2 -0
- package/dist/temporal/capabilities/date-time-range-picker.js.map +1 -0
- package/dist/temporal/capabilities/month-picker.d.ts +1 -0
- package/dist/temporal/capabilities/month-picker.js +2 -0
- package/dist/temporal/capabilities/month-picker.js.map +1 -0
- package/dist/temporal/capabilities/month-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/month-range-picker.js +2 -0
- package/dist/temporal/capabilities/month-range-picker.js.map +1 -0
- package/dist/temporal/capabilities/range-calendar.d.ts +1 -0
- package/dist/temporal/capabilities/range-calendar.js +2 -0
- package/dist/temporal/capabilities/range-calendar.js.map +1 -0
- package/dist/temporal/capabilities/year-picker.d.ts +1 -0
- package/dist/temporal/capabilities/year-picker.js +2 -0
- package/dist/temporal/capabilities/year-picker.js.map +1 -0
- package/dist/temporal/capabilities/year-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/year-range-picker.js +2 -0
- package/dist/temporal/capabilities/year-range-picker.js.map +1 -0
- package/dist/{internal/picker-capability.js → temporal/capability.js} +1 -1
- package/dist/temporal/capability.js.map +1 -0
- package/dist/{date-field.d.ts → temporal/date-field.d.ts} +1 -1
- package/dist/temporal/date-field.js +2 -0
- package/dist/temporal/date-field.js.map +1 -0
- package/dist/{date-picker.d.ts → temporal/date-picker.d.ts} +24 -24
- package/dist/temporal/date-picker.js +2 -0
- package/dist/temporal/date-picker.js.map +1 -0
- package/dist/{date-range-field.d.ts → temporal/date-range-field.d.ts} +1 -1
- package/dist/temporal/date-range-field.js +2 -0
- package/dist/temporal/date-range-field.js.map +1 -0
- package/dist/{date-range-picker.d.ts → temporal/date-range-picker.d.ts} +27 -27
- package/dist/temporal/date-range-picker.js +2 -0
- package/dist/temporal/date-range-picker.js.map +1 -0
- package/dist/{date-time-field.d.ts → temporal/date-time-field.d.ts} +1 -1
- package/dist/temporal/date-time-field.js +2 -0
- package/dist/temporal/date-time-field.js.map +1 -0
- package/dist/{date-time-picker.d.ts → temporal/date-time-picker.d.ts} +30 -30
- package/dist/temporal/date-time-picker.js +2 -0
- package/dist/temporal/date-time-picker.js.map +1 -0
- package/dist/{date-time-range-picker.d.ts → temporal/date-time-range-picker.d.ts} +39 -39
- package/dist/temporal/date-time-range-picker.js +2 -0
- package/dist/temporal/date-time-range-picker.js.map +1 -0
- package/dist/{month-picker.d.ts → temporal/month-picker.d.ts} +14 -14
- package/dist/temporal/month-picker.js +2 -0
- package/dist/temporal/month-picker.js.map +1 -0
- package/dist/{month-range-picker.d.ts → temporal/month-range-picker.d.ts} +17 -17
- package/dist/temporal/month-range-picker.js +2 -0
- package/dist/temporal/month-range-picker.js.map +1 -0
- package/dist/{internal/date-picker.d.ts → temporal/picker.d.ts} +2 -3
- package/dist/temporal/picker.js +2 -0
- package/dist/temporal/picker.js.map +1 -0
- package/dist/{range-calendar.d.ts → temporal/range-calendar.d.ts} +11 -11
- package/dist/temporal/range-calendar.js +2 -0
- package/dist/temporal/range-calendar.js.map +1 -0
- package/dist/temporal/temporal-provider.js.map +1 -0
- package/dist/{time-field.d.ts → temporal/time-field.d.ts} +1 -1
- package/dist/temporal/time-field.js +2 -0
- package/dist/temporal/time-field.js.map +1 -0
- package/dist/{time-range-field.d.ts → temporal/time-range-field.d.ts} +1 -1
- package/dist/temporal/time-range-field.js +2 -0
- package/dist/temporal/time-range-field.js.map +1 -0
- package/dist/{year-picker.d.ts → temporal/year-picker.d.ts} +16 -16
- package/dist/temporal/year-picker.js +2 -0
- package/dist/temporal/year-picker.js.map +1 -0
- package/dist/{year-range-picker.d.ts → temporal/year-range-picker.d.ts} +19 -19
- package/dist/temporal/year-range-picker.js +2 -0
- package/dist/temporal/year-range-picker.js.map +1 -0
- package/dist/text.js +1 -1
- package/dist/text.js.map +1 -1
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/toggle-group.js.map +1 -1
- package/dist/tree-grid.d.ts +1 -1
- package/dist/tree-grid.js +1 -1
- package/dist/tree-grid.js.map +1 -1
- package/dist/tree-view.d.ts +1 -1
- package/dist/tree-view.js +1 -1
- package/dist/{internal → virtual}/virtual-collection.d.ts +1 -0
- package/dist/virtual/virtual-collection.js +2 -0
- package/dist/virtual/virtual-collection.js.map +1 -0
- package/dist/{internal → virtual}/virtual-core.d.ts +1 -0
- package/dist/virtual/virtual-core.js +2 -0
- package/dist/virtual/virtual-core.js.map +1 -0
- package/dist/{virtual-grid.d.ts → virtual/virtual-grid.d.ts} +1 -1
- package/dist/virtual/virtual-grid.js +2 -0
- package/dist/virtual/virtual-grid.js.map +1 -0
- package/dist/virtual/virtual-list.js +2 -0
- package/dist/virtual/virtual-list.js.map +1 -0
- package/dist/{virtual-masonry.d.ts → virtual/virtual-masonry.d.ts} +1 -1
- package/dist/virtual/virtual-masonry.js +2 -0
- package/dist/virtual/virtual-masonry.js.map +1 -0
- package/dist/{virtual-spatial.d.ts → virtual/virtual-spatial.d.ts} +1 -1
- package/dist/virtual/virtual-spatial.js +2 -0
- package/dist/virtual/virtual-spatial.js.map +1 -0
- package/dist/virtual-core.d.ts +1 -1
- package/dist/virtual-core.js +1 -1
- package/dist/virtual-list.d.ts +2 -2
- package/dist/virtual-list.js +1 -1
- package/package.json +94 -94
- package/dist/alert-dialog.js +0 -2
- package/dist/alert-dialog.js.map +0 -1
- package/dist/calendar.js +0 -2
- package/dist/calendar.js.map +0 -1
- package/dist/data-grid.js +0 -2
- package/dist/data-grid.js.map +0 -1
- package/dist/data-table.js +0 -2
- package/dist/data-table.js.map +0 -1
- package/dist/data-tree-grid.js +0 -2
- package/dist/data-tree-grid.js.map +0 -1
- package/dist/date-field.js +0 -2
- package/dist/date-field.js.map +0 -1
- package/dist/date-picker.js +0 -2
- package/dist/date-picker.js.map +0 -1
- package/dist/date-range-field.js +0 -2
- package/dist/date-range-field.js.map +0 -1
- package/dist/date-range-picker.js +0 -2
- package/dist/date-range-picker.js.map +0 -1
- package/dist/date-time-field.js +0 -2
- package/dist/date-time-field.js.map +0 -1
- package/dist/date-time-picker.js +0 -2
- package/dist/date-time-picker.js.map +0 -1
- package/dist/date-time-range-picker.js +0 -2
- package/dist/date-time-range-picker.js.map +0 -1
- package/dist/dialog.js +0 -2
- package/dist/dialog.js.map +0 -1
- package/dist/drawer.js +0 -2
- package/dist/drawer.js.map +0 -1
- package/dist/internal/calendar-capability.d.ts +0 -1
- package/dist/internal/calendar-capability.js +0 -2
- package/dist/internal/calendar-capability.js.map +0 -1
- package/dist/internal/date-picker-capability.d.ts +0 -1
- package/dist/internal/date-picker-capability.js +0 -2
- package/dist/internal/date-picker-capability.js.map +0 -1
- package/dist/internal/date-picker.js +0 -2
- package/dist/internal/date-picker.js.map +0 -1
- package/dist/internal/date-range-picker-capability.d.ts +0 -1
- package/dist/internal/date-range-picker-capability.js +0 -2
- package/dist/internal/date-range-picker-capability.js.map +0 -1
- package/dist/internal/date-time-picker-capability.d.ts +0 -1
- package/dist/internal/date-time-picker-capability.js +0 -2
- package/dist/internal/date-time-picker-capability.js.map +0 -1
- package/dist/internal/date-time-range-picker-capability.d.ts +0 -1
- package/dist/internal/date-time-range-picker-capability.js +0 -2
- package/dist/internal/date-time-range-picker-capability.js.map +0 -1
- package/dist/internal/decimal-input.js.map +0 -1
- package/dist/internal/form-context.js.map +0 -1
- package/dist/internal/form-control-inventory.js.map +0 -1
- package/dist/internal/form-control.js +0 -2
- package/dist/internal/form-control.js.map +0 -1
- package/dist/internal/form-presence-parts.js +0 -2
- package/dist/internal/form-presence-parts.js.map +0 -1
- package/dist/internal/month-picker-capability.d.ts +0 -1
- package/dist/internal/month-picker-capability.js +0 -2
- package/dist/internal/month-picker-capability.js.map +0 -1
- package/dist/internal/month-range-picker-capability.d.ts +0 -1
- package/dist/internal/month-range-picker-capability.js +0 -2
- package/dist/internal/month-range-picker-capability.js.map +0 -1
- package/dist/internal/native-field.js +0 -2
- package/dist/internal/native-field.js.map +0 -1
- package/dist/internal/native-input.js.map +0 -1
- package/dist/internal/picker-capability.js.map +0 -1
- package/dist/internal/popup.js +0 -2
- package/dist/internal/popup.js.map +0 -1
- package/dist/internal/range-calendar-capability.d.ts +0 -1
- package/dist/internal/range-calendar-capability.js +0 -2
- package/dist/internal/range-calendar-capability.js.map +0 -1
- package/dist/internal/tabular-components.js.map +0 -1
- package/dist/internal/tabular-parts.js +0 -2
- package/dist/internal/tabular-parts.js.map +0 -1
- package/dist/internal/tabular-profile.js +0 -2
- package/dist/internal/tabular-profile.js.map +0 -1
- package/dist/internal/virtual-collection.js +0 -2
- package/dist/internal/virtual-collection.js.map +0 -1
- package/dist/internal/virtual-core.js +0 -2
- package/dist/internal/virtual-core.js.map +0 -1
- package/dist/internal/virtual-list.js +0 -2
- package/dist/internal/virtual-list.js.map +0 -1
- package/dist/internal/year-picker-capability.d.ts +0 -1
- package/dist/internal/year-picker-capability.js +0 -2
- package/dist/internal/year-picker-capability.js.map +0 -1
- package/dist/internal/year-range-picker-capability.d.ts +0 -1
- package/dist/internal/year-range-picker-capability.js +0 -2
- package/dist/internal/year-range-picker-capability.js.map +0 -1
- package/dist/month-picker.js +0 -2
- package/dist/month-picker.js.map +0 -1
- package/dist/month-range-picker.js +0 -2
- package/dist/month-range-picker.js.map +0 -1
- package/dist/popover.js +0 -2
- package/dist/popover.js.map +0 -1
- package/dist/range-calendar.js +0 -2
- package/dist/range-calendar.js.map +0 -1
- package/dist/temporal-provider.js.map +0 -1
- package/dist/time-field.js +0 -2
- package/dist/time-field.js.map +0 -1
- package/dist/time-range-field.js +0 -2
- package/dist/time-range-field.js.map +0 -1
- package/dist/tooltip.js +0 -2
- package/dist/tooltip.js.map +0 -1
- package/dist/virtual-grid.js +0 -2
- package/dist/virtual-grid.js.map +0 -1
- package/dist/virtual-masonry.js +0 -2
- package/dist/virtual-masonry.js.map +0 -1
- package/dist/virtual-spatial.js +0 -2
- package/dist/virtual-spatial.js.map +0 -1
- package/dist/year-picker.js +0 -2
- package/dist/year-picker.js.map +0 -1
- package/dist/year-range-picker.js +0 -2
- package/dist/year-range-picker.js.map +0 -1
- /package/dist/{internal/form-control-inventory.d.ts → form/control-inventory.d.ts} +0 -0
- /package/dist/{internal/form-control.d.ts → form/control.d.ts} +0 -0
- /package/dist/{internal → input}/decimal-input.d.ts +0 -0
- /package/dist/{internal → input}/decimal-input.js +0 -0
- /package/dist/{internal → input}/native-field.d.ts +0 -0
- /package/dist/{internal → input}/native-input.d.ts +0 -0
- /package/dist/{internal → input}/native-input.js +0 -0
- /package/dist/{internal → overlay}/popup.d.ts +0 -0
- /package/dist/{internal → presence}/conditional-presence.d.ts +0 -0
- /package/dist/{internal → presence}/conditional-presence.js +0 -0
- /package/dist/{internal → presence}/presence.d.ts +0 -0
- /package/dist/{internal → presence}/presence.js +0 -0
- /package/dist/{internal/picker-capability.d.ts → temporal/capability.d.ts} +0 -0
- /package/dist/{temporal-provider.d.ts → temporal/temporal-provider.d.ts} +0 -0
- /package/dist/{temporal-provider.js → temporal/temporal-provider.js} +0 -0
- /package/dist/{internal → virtual}/virtual-list.d.ts +0 -0
package/dist/form.d.ts
CHANGED
|
@@ -1,398 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export
|
|
9
|
-
}
|
|
10
|
-
export interface FormFieldState extends DomainFormFieldState<string> {
|
|
11
|
-
}
|
|
12
|
-
export interface FormFieldMetaInput extends DomainFormFieldMetaInput {
|
|
13
|
-
}
|
|
14
|
-
export interface FormSubscribeOptions<Selected> {
|
|
15
|
-
readonly equals?: (previous: Selected, next: Selected) => boolean;
|
|
16
|
-
}
|
|
17
|
-
export type FormSelectorFunction<Selected> = (state: FormState) => Selected;
|
|
18
|
-
export type FormFieldSelectorFunction<Selected> = (field: FormFieldState | null) => Selected;
|
|
19
|
-
export interface FormIssue extends DomainFormIssue<string> {
|
|
20
|
-
}
|
|
21
|
-
export type { FormIssueSource, FormReinitializeOptions };
|
|
22
|
-
export type FormValues<Shape extends object = Record<string, unknown>> = Readonly<Shape>;
|
|
23
|
-
export type FormSchema<Input extends object = Record<string, unknown>, Output extends object = Input> = StandardSchemaV1<FormValues<Input>, FormValues<Output>>;
|
|
24
|
-
export type FormSchemaInput<Schema extends StandardSchemaV1> = StandardSchemaV1.InferInput<Schema>;
|
|
25
|
-
export type FormSchemaOutput<Schema extends StandardSchemaV1> = StandardSchemaV1.InferOutput<Schema>;
|
|
26
|
-
export interface FormSubmitEvent<Values extends object = Record<string, unknown>> {
|
|
27
|
-
readonly formData: FormData;
|
|
28
|
-
readonly values: FormValues<Values>;
|
|
29
|
-
readonly submitter: HTMLElement | null;
|
|
30
|
-
readonly state: FormState;
|
|
31
|
-
readonly reinitialize: (options?: FormReinitializeOptions) => void;
|
|
32
|
-
readonly nativeEvent: SubmitEvent;
|
|
33
|
-
readonly defaultPrevented: boolean;
|
|
34
|
-
preventDefault(): void;
|
|
35
|
-
stopPropagation(): void;
|
|
36
|
-
stopImmediatePropagation(): void;
|
|
37
|
-
}
|
|
38
|
-
export interface FormIssueInput {
|
|
39
|
-
readonly id?: string;
|
|
40
|
-
readonly message: string;
|
|
41
|
-
readonly path?: FormFieldPath;
|
|
42
|
-
readonly relatedPaths?: readonly FormFieldPath[];
|
|
43
|
-
}
|
|
44
|
-
export type FormSubmitIssue = FormIssueInput;
|
|
45
|
-
export type FormSubmitResult = void | {
|
|
46
|
-
readonly ok: true;
|
|
47
|
-
} | {
|
|
48
|
-
readonly ok: false;
|
|
49
|
-
readonly failure?: FormSubmissionFailure;
|
|
50
|
-
readonly issues?: readonly FormSubmitIssue[];
|
|
51
|
-
};
|
|
52
|
-
export type FormSubmitHandler<Values extends object = Record<string, unknown>> = (event: FormSubmitEvent<Values>) => FormSubmitResult | PromiseLike<FormSubmitResult>;
|
|
53
|
-
export interface FormSubmissionDefinition {
|
|
54
|
-
readonly schema?: never;
|
|
55
|
-
readonly onSubmit: FormSubmitHandler<Record<string, unknown>>;
|
|
56
|
-
}
|
|
57
|
-
export interface FormSchemaSubmissionDefinition<Schema extends FormSchema<object, object>> {
|
|
58
|
-
readonly schema: Schema;
|
|
59
|
-
readonly onSubmit: FormSubmitHandler<FormSchemaOutput<Schema>>;
|
|
60
|
-
}
|
|
61
|
-
export declare function defineFormSubmission<const Schema extends FormSchema<object, object>>(definition: FormSchemaSubmissionDefinition<Schema>): FormSchemaSubmissionDefinition<Schema>;
|
|
62
|
-
export declare function defineFormSubmission(definition: FormSubmissionDefinition): FormSubmissionDefinition;
|
|
63
|
-
export type FormSubmitErrorMapper = (reason: unknown) => FormSubmissionFailure | undefined;
|
|
64
|
-
export type FormResetHandler = () => void;
|
|
65
|
-
export type FormStateChangeHandler = (state: FormState) => void;
|
|
66
|
-
export type FormInteractionValidationTrigger = Exclude<FormValidationTrigger, 'submit'>;
|
|
67
|
-
export interface FormValidateContext {
|
|
68
|
-
readonly trigger: FormValidationTrigger;
|
|
69
|
-
readonly intent: FormValidationIntent;
|
|
70
|
-
readonly changedFieldId: string | null;
|
|
71
|
-
readonly signal: AbortSignal;
|
|
72
|
-
}
|
|
73
|
-
export interface FormValidationIssue {
|
|
74
|
-
readonly message: string;
|
|
75
|
-
readonly path?: FormFieldPath;
|
|
76
|
-
readonly relatedPaths?: readonly FormFieldPath[];
|
|
77
|
-
}
|
|
78
|
-
export interface FormValidationResult {
|
|
79
|
-
readonly issues?: readonly FormValidationIssue[];
|
|
80
|
-
}
|
|
81
|
-
export type FormValidateHandler<Values extends object = Record<string, unknown>> = (values: FormValues<Values>, context: FormValidateContext) => FormValidationResult | PromiseLike<FormValidationResult>;
|
|
82
|
-
export type FormSubmitStartedAction = () => number | null;
|
|
83
|
-
export type FormSubmitSucceededAction = (generation: number) => boolean;
|
|
84
|
-
export type FormSubmitFailedAction = (generation: number, result: {
|
|
85
|
-
readonly failure?: FormSubmissionFailure;
|
|
86
|
-
readonly issues?: readonly FormIssue[];
|
|
87
|
-
}) => boolean;
|
|
88
|
-
export type FormReplaceIssuesAction = (source: FormIssueSource, issues: readonly FormIssue[]) => boolean;
|
|
89
|
-
export type FormResetAction = () => void;
|
|
90
|
-
export type FormReinitializeAction = (options?: FormReinitializeOptions) => void;
|
|
91
|
-
export interface FormRootProps<Input extends object = Record<string, unknown>, Output extends object = Input> {
|
|
92
|
-
readonly issues?: readonly FormIssueInput[];
|
|
93
|
-
readonly schema?: FormSchema<Input, Output>;
|
|
94
|
-
readonly validate?: FormValidateHandler<Input>;
|
|
95
|
-
readonly validateOn?: readonly FormInteractionValidationTrigger[];
|
|
96
|
-
readonly revalidateOn?: readonly FormInteractionValidationTrigger[];
|
|
97
|
-
readonly onSubmit?: FormSubmitHandler<Output>;
|
|
98
|
-
readonly mapSubmitError?: FormSubmitErrorMapper;
|
|
99
|
-
}
|
|
100
|
-
export interface FormRootSlotProps {
|
|
101
|
-
readonly state: FormState;
|
|
102
|
-
readonly validation: FormState['validation'];
|
|
103
|
-
readonly submission: FormState['submission'];
|
|
104
|
-
readonly valid: boolean;
|
|
105
|
-
readonly touched: boolean;
|
|
106
|
-
readonly dirty: boolean;
|
|
107
|
-
readonly submitted: boolean;
|
|
108
|
-
readonly submitCount: number;
|
|
109
|
-
readonly submitStarted: FormSubmitStartedAction;
|
|
110
|
-
readonly submitSucceeded: FormSubmitSucceededAction;
|
|
111
|
-
readonly submitFailed: FormSubmitFailedAction;
|
|
112
|
-
readonly replaceIssues: FormReplaceIssuesAction;
|
|
113
|
-
readonly reinitialize: FormReinitializeAction;
|
|
114
|
-
readonly reset: FormResetAction;
|
|
115
|
-
}
|
|
116
|
-
export type FormRootPublicProps<Input extends object = Record<string, unknown>, Output extends object = Input> = FormRootProps<Input, Output> & VNodeProps & AllowedComponentProps & ComponentCustomProps & {
|
|
117
|
-
readonly onReset?: () => unknown;
|
|
118
|
-
readonly onStateChange?: (state: FormState) => unknown;
|
|
119
|
-
};
|
|
120
|
-
export interface FormRootComponent {
|
|
121
|
-
new <Input extends object = Record<string, unknown>, Output extends object = Input>(props: FormRootPublicProps<Input, Output>): {
|
|
122
|
-
$props: FormRootPublicProps<Input, Output>;
|
|
123
|
-
$slots: {
|
|
124
|
-
default?: (props: FormRootSlotProps) => VNodeChild;
|
|
125
|
-
};
|
|
126
|
-
submitStarted: FormSubmitStartedAction;
|
|
127
|
-
submitSucceeded: FormSubmitSucceededAction;
|
|
128
|
-
submitFailed: FormSubmitFailedAction;
|
|
129
|
-
replaceIssues: FormReplaceIssuesAction;
|
|
130
|
-
reinitialize: FormReinitializeAction;
|
|
131
|
-
reset: FormResetAction;
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
export interface FormFieldProps {
|
|
135
|
-
readonly id?: string;
|
|
136
|
-
readonly name?: FormFieldPath;
|
|
137
|
-
readonly form?: string;
|
|
138
|
-
readonly required?: boolean;
|
|
139
|
-
readonly disabled?: boolean;
|
|
140
|
-
readonly readonly?: boolean;
|
|
141
|
-
readonly as?: PrimitiveAs;
|
|
142
|
-
readonly asChild?: boolean;
|
|
143
|
-
}
|
|
144
|
-
export type FormFieldPublicProps = FormFieldProps & VNodeProps & AllowedComponentProps & ComponentCustomProps;
|
|
145
|
-
export interface FormFieldSlotProps {
|
|
146
|
-
readonly id: string;
|
|
147
|
-
readonly controlId: string;
|
|
148
|
-
readonly labelId: string;
|
|
149
|
-
readonly descriptionId: string;
|
|
150
|
-
readonly messageId: string;
|
|
151
|
-
readonly describedBy: string;
|
|
152
|
-
readonly valid: boolean;
|
|
153
|
-
readonly touched: boolean;
|
|
154
|
-
readonly dirty: boolean;
|
|
155
|
-
readonly issues: readonly FormIssue[];
|
|
156
|
-
readonly relatedIssues: readonly FormIssue[];
|
|
157
|
-
readonly setMeta: (meta: FormFieldMetaInput) => boolean;
|
|
158
|
-
readonly replaceIssues: (source: FormIssueSource, issues: readonly FormIssue[]) => boolean;
|
|
159
|
-
readonly upsertIssue: (issue: FormIssue) => boolean;
|
|
160
|
-
readonly removeIssue: (issueId: string | number) => boolean;
|
|
161
|
-
readonly clearIssues: (source?: FormIssueSource) => boolean;
|
|
162
|
-
}
|
|
163
|
-
export interface FormFieldController {
|
|
164
|
-
readonly state: Readonly<ShallowRef<FormFieldState | null>>;
|
|
165
|
-
setMeta(meta: FormFieldMetaInput): boolean;
|
|
166
|
-
replaceIssues(source: FormIssueSource, issues: readonly FormIssue[]): boolean;
|
|
167
|
-
upsertIssue(issue: FormIssue): boolean;
|
|
168
|
-
removeIssue(issueId: string | number): boolean;
|
|
169
|
-
clearIssues(source?: FormIssueSource): boolean;
|
|
170
|
-
}
|
|
171
|
-
export interface FormSelectorProps<Selected> {
|
|
172
|
-
readonly select: FormSelectorFunction<Selected>;
|
|
173
|
-
readonly equals?: NonNullable<FormSubscribeOptions<Selected>['equals']>;
|
|
174
|
-
}
|
|
175
|
-
export interface FormSelectorComponent {
|
|
176
|
-
new <Selected>(props: FormSelectorProps<Selected>): {
|
|
177
|
-
$props: FormSelectorProps<Selected>;
|
|
178
|
-
$slots: {
|
|
179
|
-
default?: (props: {
|
|
180
|
-
readonly selected: Selected;
|
|
181
|
-
}) => VNodeChild;
|
|
182
|
-
};
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
export interface FormFieldSelectorProps<Selected> {
|
|
186
|
-
readonly id: string;
|
|
187
|
-
readonly select: FormFieldSelectorFunction<Selected>;
|
|
188
|
-
readonly equals?: NonNullable<FormSubscribeOptions<Selected>['equals']>;
|
|
189
|
-
}
|
|
190
|
-
export interface FormFieldSelectorComponent {
|
|
191
|
-
new <Selected>(props: FormFieldSelectorProps<Selected>): {
|
|
192
|
-
$props: FormFieldSelectorProps<Selected>;
|
|
193
|
-
$slots: {
|
|
194
|
-
default?: (props: {
|
|
195
|
-
readonly selected: Selected;
|
|
196
|
-
}) => VNodeChild;
|
|
197
|
-
};
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
export interface FormSummarySlotProps {
|
|
201
|
-
readonly validation: FormState['validation'];
|
|
202
|
-
readonly submission: FormState['submission'];
|
|
203
|
-
readonly issues: readonly FormIssue[];
|
|
204
|
-
readonly serverIssues: readonly FormIssue[];
|
|
205
|
-
readonly firstIssue: FormIssue | null;
|
|
206
|
-
readonly valid: boolean;
|
|
207
|
-
}
|
|
208
|
-
export interface FormSubmitSlotProps {
|
|
209
|
-
readonly valid: boolean;
|
|
210
|
-
readonly submitting: boolean;
|
|
211
|
-
readonly canSubmit: boolean;
|
|
212
|
-
readonly submission: FormState['submission'];
|
|
213
|
-
}
|
|
214
|
-
export { compositeControlCapabilities, hiddenInputSubmissionCapabilities, hiddenSelectSubmissionCapabilities, hiddenValueSubmissionCapabilities, nativeInputControlCapabilities, provideFormControlOwner, useCompositeFormControl, useFormControl, useNativeInputFormControl, };
|
|
215
|
-
export type { FormControlCapabilities, FormControlParticipation, FormControlRegistration, FormElementSource, FormLabelMode, FormMetadataAttribute, FormSubmissionCapabilities, FormSubmissionRegistration, FormSubmissionSource, };
|
|
216
|
-
export interface FormPartProps {
|
|
217
|
-
readonly as?: PrimitiveAs;
|
|
218
|
-
readonly asChild?: boolean;
|
|
219
|
-
}
|
|
220
|
-
export interface FormMessageProps extends FormPartProps, ConditionalPresenceProps {
|
|
221
|
-
}
|
|
222
|
-
export interface FormSummaryProps extends FormPartProps, ConditionalPresenceProps {
|
|
223
|
-
}
|
|
224
|
-
export declare const FormRoot: FormRootComponent;
|
|
225
|
-
export declare function useFormSelector<Selected>(selector: FormSelectorFunction<Selected>, options?: FormSubscribeOptions<Selected>): Readonly<ShallowRef<Selected>>;
|
|
226
|
-
export declare function useFormFieldSelector<Selected>(id: string, selector: FormFieldSelectorFunction<Selected>, options?: FormSubscribeOptions<Selected>): Readonly<ShallowRef<Selected>>;
|
|
227
|
-
export declare function useFormFieldController(id: string): FormFieldController;
|
|
228
|
-
export declare const FormSelector: FormSelectorComponent;
|
|
229
|
-
export declare const FormFieldSelector: FormFieldSelectorComponent;
|
|
230
|
-
export declare const FormField: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
231
|
-
as: {
|
|
232
|
-
type: PropType<PrimitiveAs>;
|
|
233
|
-
default: string;
|
|
234
|
-
};
|
|
235
|
-
asChild: {
|
|
236
|
-
type: BooleanConstructor;
|
|
237
|
-
default: boolean;
|
|
238
|
-
};
|
|
239
|
-
id: {
|
|
240
|
-
type: StringConstructor;
|
|
241
|
-
default: undefined;
|
|
242
|
-
};
|
|
243
|
-
name: {
|
|
244
|
-
type: PropType<FormFieldPath>;
|
|
245
|
-
default: undefined;
|
|
246
|
-
};
|
|
247
|
-
form: {
|
|
248
|
-
type: StringConstructor;
|
|
249
|
-
default: undefined;
|
|
250
|
-
};
|
|
251
|
-
required: {
|
|
252
|
-
type: BooleanConstructor;
|
|
253
|
-
default: undefined;
|
|
254
|
-
};
|
|
255
|
-
disabled: {
|
|
256
|
-
type: BooleanConstructor;
|
|
257
|
-
default: undefined;
|
|
258
|
-
};
|
|
259
|
-
readonly: {
|
|
260
|
-
type: BooleanConstructor;
|
|
261
|
-
default: undefined;
|
|
262
|
-
};
|
|
263
|
-
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
264
|
-
as: {
|
|
265
|
-
type: PropType<PrimitiveAs>;
|
|
266
|
-
default: string;
|
|
267
|
-
};
|
|
268
|
-
asChild: {
|
|
269
|
-
type: BooleanConstructor;
|
|
270
|
-
default: boolean;
|
|
271
|
-
};
|
|
272
|
-
id: {
|
|
273
|
-
type: StringConstructor;
|
|
274
|
-
default: undefined;
|
|
275
|
-
};
|
|
276
|
-
name: {
|
|
277
|
-
type: PropType<FormFieldPath>;
|
|
278
|
-
default: undefined;
|
|
279
|
-
};
|
|
280
|
-
form: {
|
|
281
|
-
type: StringConstructor;
|
|
282
|
-
default: undefined;
|
|
283
|
-
};
|
|
284
|
-
required: {
|
|
285
|
-
type: BooleanConstructor;
|
|
286
|
-
default: undefined;
|
|
287
|
-
};
|
|
288
|
-
disabled: {
|
|
289
|
-
type: BooleanConstructor;
|
|
290
|
-
default: undefined;
|
|
291
|
-
};
|
|
292
|
-
readonly: {
|
|
293
|
-
type: BooleanConstructor;
|
|
294
|
-
default: undefined;
|
|
295
|
-
};
|
|
296
|
-
}>> & Readonly<{}>, {
|
|
297
|
-
as: PrimitiveAs;
|
|
298
|
-
asChild: boolean;
|
|
299
|
-
id: string;
|
|
300
|
-
name: FormFieldPath;
|
|
301
|
-
form: string;
|
|
302
|
-
required: boolean;
|
|
303
|
-
disabled: boolean;
|
|
304
|
-
readonly: boolean;
|
|
305
|
-
}, SlotsType<{
|
|
306
|
-
default: (props: FormFieldSlotProps) => VNodeChild;
|
|
307
|
-
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
308
|
-
export declare const FormLabel: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
309
|
-
as: {
|
|
310
|
-
type: PropType<PrimitiveAs>;
|
|
311
|
-
default: undefined;
|
|
312
|
-
};
|
|
313
|
-
asChild: {
|
|
314
|
-
type: BooleanConstructor;
|
|
315
|
-
default: boolean;
|
|
316
|
-
};
|
|
317
|
-
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
318
|
-
as: {
|
|
319
|
-
type: PropType<PrimitiveAs>;
|
|
320
|
-
default: undefined;
|
|
321
|
-
};
|
|
322
|
-
asChild: {
|
|
323
|
-
type: BooleanConstructor;
|
|
324
|
-
default: boolean;
|
|
325
|
-
};
|
|
326
|
-
}>> & Readonly<{}>, {
|
|
327
|
-
as: PrimitiveAs;
|
|
328
|
-
asChild: boolean;
|
|
329
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
330
|
-
export declare const FormDescription: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
331
|
-
asChild: {
|
|
332
|
-
type: BooleanConstructor;
|
|
333
|
-
default: boolean;
|
|
334
|
-
};
|
|
335
|
-
as: {
|
|
336
|
-
type: PropType<PrimitiveAs>;
|
|
337
|
-
default: string;
|
|
338
|
-
};
|
|
339
|
-
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
340
|
-
asChild: {
|
|
341
|
-
type: BooleanConstructor;
|
|
342
|
-
default: boolean;
|
|
343
|
-
};
|
|
344
|
-
as: {
|
|
345
|
-
type: PropType<PrimitiveAs>;
|
|
346
|
-
default: string;
|
|
347
|
-
};
|
|
348
|
-
}>> & Readonly<{}>, {
|
|
349
|
-
asChild: boolean;
|
|
350
|
-
as: PrimitiveAs;
|
|
351
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
352
|
-
export { FormMessage, FormSummary } from './internal/form-presence-parts.js';
|
|
353
|
-
export declare const FormReset: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
354
|
-
asChild: {
|
|
355
|
-
type: BooleanConstructor;
|
|
356
|
-
default: boolean;
|
|
357
|
-
};
|
|
358
|
-
as: {
|
|
359
|
-
type: PropType<PrimitiveAs>;
|
|
360
|
-
default: string;
|
|
361
|
-
};
|
|
362
|
-
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
363
|
-
asChild: {
|
|
364
|
-
type: BooleanConstructor;
|
|
365
|
-
default: boolean;
|
|
366
|
-
};
|
|
367
|
-
as: {
|
|
368
|
-
type: PropType<PrimitiveAs>;
|
|
369
|
-
default: string;
|
|
370
|
-
};
|
|
371
|
-
}>> & Readonly<{}>, {
|
|
372
|
-
asChild: boolean;
|
|
373
|
-
as: PrimitiveAs;
|
|
374
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
375
|
-
export declare const FormSubmit: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
376
|
-
asChild: {
|
|
377
|
-
type: BooleanConstructor;
|
|
378
|
-
default: boolean;
|
|
379
|
-
};
|
|
380
|
-
as: {
|
|
381
|
-
type: PropType<PrimitiveAs>;
|
|
382
|
-
default: string;
|
|
383
|
-
};
|
|
384
|
-
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
385
|
-
asChild: {
|
|
386
|
-
type: BooleanConstructor;
|
|
387
|
-
default: boolean;
|
|
388
|
-
};
|
|
389
|
-
as: {
|
|
390
|
-
type: PropType<PrimitiveAs>;
|
|
391
|
-
default: string;
|
|
392
|
-
};
|
|
393
|
-
}>> & Readonly<{}>, {
|
|
394
|
-
asChild: boolean;
|
|
395
|
-
as: PrimitiveAs;
|
|
396
|
-
}, SlotsType<{
|
|
397
|
-
default: (props: FormSubmitSlotProps) => VNodeChild;
|
|
398
|
-
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
1
|
+
export { type FormState, type FormFieldState, type FormFieldMetaInput, type FormSubscribeOptions, type FormSelectorFunction, type FormFieldSelectorFunction, type FormIssue, type FormValues, type FormSchema, type FormSchemaInput, type FormSchemaOutput, type FormSubmitEvent, type FormIssueInput, type FormSubmitIssue, type FormSubmitResult, type FormSubmitHandler, type FormSubmissionDefinition, type FormSchemaSubmissionDefinition, defineFormSubmission, type FormSubmitErrorMapper, type FormResetHandler, type FormStateChangeHandler, type FormInteractionValidationTrigger, type FormValidateContext, type FormValidationIssue, type FormValidationResult, type FormValidateHandler, type FormSubmitStartedAction, type FormSubmitSucceededAction, type FormSubmitFailedAction, type FormReplaceIssuesAction, type FormResetAction, type FormReinitializeAction, type FormRootProps, type FormRootSlotProps, type FormRootPublicProps, type FormRootComponent, type FormFieldProps, type FormFieldPublicProps, type FormFieldSlotProps, type FormFieldController, type FormSelectorProps, type FormSelectorComponent, type FormFieldSelectorProps, type FormFieldSelectorComponent, type FormSummarySlotProps, type FormSubmitSlotProps, type FormPartProps, type FormMessageProps, type FormSummaryProps, } from './form/contracts.js';
|
|
2
|
+
export type { FormIssueSource, FormReinitializeOptions } from '@sectile/form/state';
|
|
3
|
+
export { compositeControlCapabilities, hiddenInputSubmissionCapabilities, hiddenSelectSubmissionCapabilities, hiddenValueSubmissionCapabilities, nativeInputControlCapabilities, provideFormControlOwner, useCompositeFormControl, useFormControl, useNativeInputFormControl, type FormControlCapabilities, type FormControlParticipation, type FormControlRegistration, type FormElementSource, type FormLabelMode, type FormMetadataAttribute, type FormSubmissionCapabilities, type FormSubmissionRegistration, type FormSubmissionSource, } from './form/control.js';
|
|
4
|
+
export { FormRoot } from './form/root.js';
|
|
5
|
+
export { useFormSelector, useFormFieldSelector, useFormFieldController, FormSelector, FormFieldSelector, } from './form/selectors.js';
|
|
6
|
+
export { FormField } from './form/field.js';
|
|
7
|
+
export { FormLabel, FormDescription, FormReset, FormSubmit, } from './form/parts.js';
|
|
8
|
+
export { FormMessage, FormSummary } from './form/presence-parts.js';
|
package/dist/form.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,mergeProps,nextTick,onBeforeUnmount,onMounted,onScopeDispose,provide,shallowRef,watch}from"vue";import{createForm}from"@sectile/dom/form";import{getFormFieldIDByPath}from"@sectile/form/state";import{appendFormFieldPath,encodeFormFieldPath,tryCreateFormFieldPath}from"@sectile/form/path";import{compositeControlCapabilities,hiddenInputSubmissionCapabilities,hiddenSelectSubmissionCapabilities,hiddenValueSubmissionCapabilities,nativeInputControlCapabilities,provideFormControlFieldContext,provideFormControlOwner,useCompositeFormControl,useFormControl,useNativeInputFormControl}from"./internal/form-control.js";import{useNextTickTask}from"./internal/scheduled-task.js";import{Primitive}from"./primitive.js";import{useHostId}from"./host-provider.js";import{formContextKey,formFieldContextKey,useFormContext,useFormFieldContext,useFormSelectorFromContext}from"./internal/form-context.js";function defineFormSubmission(definition){return Object.freeze({...definition})}const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const FormRootImpl=defineComponent({name:"SectileFormRoot",inheritAttrs:false,props:{issues:{type:Array,default:()=>[]},schema:{type:Object,default:void 0},validate:{type:Function,default:void 0},validateOn:{type:Array,default:()=>[]},revalidateOn:{type:Array,default:()=>["input"]},onSubmit:{type:Function,default:void 0},mapSubmitError:{type:Function,default:void 0}},emits:{reset:()=>true,stateChange:_state=>true},slots:Object,setup(props,{attrs,emit,expose,slots}){const root=shallowRef(null);const summary=shallowRef(null);const summaryId=`${useHostId()}-summary`;const connection=shallowRef(null);const participants=new Map;const fieldDiagnostics=new Map;let syncConfiguredIssues=()=>{};let syncFieldDiagnostics=()=>{};const register=participant=>{const existing=participants.get(participant.id);existing?.unregister?.();const registered={participant};participants.set(participant.id,registered);if(connection.value!==null)registered.unregister=connection.value.registerParticipant(participant);void nextTick(()=>{syncConfiguredIssues();syncFieldDiagnostics()});return()=>{if(participants.get(participant.id)!==registered)return;registered.unregister?.();participants.delete(participant.id);void nextTick(()=>{syncConfiguredIssues();syncFieldDiagnostics()})}};const setFieldDiagnostic=(id,issue)=>{if(issue===null)fieldDiagnostics.delete(id);else fieldDiagnostics.set(id,issue);void nextTick(syncFieldDiagnostics)};const submit=payload=>{const handler=props.onSubmit;if(handler===void 0)return;const target=connection.value;if(target===null)return;const settle=resolved=>{if(typeof resolved!=="object"||resolved===null||resolved.ok!==false){return{ok:true}}const issues=resolveIssueInputs(target,"server",resolved.issues??[]);const failure=resolved.failure??(issues.length===0?submissionErrorFailure():void 0);return{ok:false,...failure===void 0?{}:{failure},...issues.length===0?{}:{issues}}};let result;try{const candidate=handler(toFormSubmitEvent(payload));if(isPromiseLike(candidate)){return Promise.resolve(candidate).then(settle,error=>({ok:false,failure:mapSubmissionError(props.mapSubmitError,error)}))}result=candidate}catch(error){return{ok:false,failure:mapSubmissionError(props.mapSubmitError,error)}}return settle(result)};const configuration=()=>({...summary.value===null?{}:{summary:summary.value},renderSummaryContent:false,manageSummaryVisibility:false,...props.schema===void 0?{}:{schema:props.schema},...props.validate===void 0?{}:{validate:props.validate},validateOn:props.validateOn,revalidateOn:props.revalidateOn,...props.onSubmit===void 0?{}:{onSubmit:submit},onReset:()=>{emit("reset");void nextTick(syncFieldDiagnostics)},onStateChange:next=>{emit("stateChange",next)}});syncConfiguredIssues=()=>{const target=connection.value;if(target===null)return;target.replaceIssues("form",resolveIssueInputs(target,"form",props.issues))};syncFieldDiagnostics=()=>{connection.value?.replaceIssues("field",[...fieldDiagnostics.values()])};const mount=()=>{if(root.value===null)return;connection.value?.destroy();connection.value=createForm({form:root.value,...configuration()});for(const registered of participants.values()){registered.unregister=connection.value.registerParticipant(registered.participant)}syncConfiguredIssues();syncFieldDiagnostics();emit("stateChange",connection.value.state)};const mountTask=useNextTickTask(mount);onMounted(mountTask.schedule);onBeforeUnmount(()=>{mountTask.cancel();connection.value?.destroy();connection.value=null});watch([summary,()=>props.schema,()=>props.validate,()=>[...props.validateOn],()=>[...props.revalidateOn],()=>props.onSubmit,()=>props.mapSubmitError],()=>{void nextTick(()=>connection.value?.reconfigure(configuration()))});watch(()=>props.issues,()=>{void nextTick(syncConfiguredIssues)},{deep:true});const actions={submitStarted:()=>connection.value?.submitStarted()??null,submitSucceeded:generation=>connection.value?.submitSucceeded(generation)??false,submitFailed:(generation,result)=>connection.value?.submitFailed(generation,result)??false,replaceIssues:(source,issues)=>connection.value?.replaceIssues(source,issues)??false,reinitialize:options=>connection.value?.reinitialize(options),reset:()=>connection.value?.reset()};const formContext={summary,summaryId,register,setFieldDiagnostic,connection};provide(formContextKey,formContext);const validation=useFormSelectorFromContext(formContext,()=>current=>current.validation);const submission=useFormSelectorFromContext(formContext,()=>current=>current.submission);const selectedState=useFormSelectorFromContext(formContext,()=>current=>current);const valid=useFormSelectorFromContext(formContext,()=>current=>current.valid);const touched=useFormSelectorFromContext(formContext,()=>current=>current.touched);const dirty=useFormSelectorFromContext(formContext,()=>current=>current.dirty);const slotProps=Object.freeze({get state(){return selectedState.value},get validation(){return validation.value},get submission(){return submission.value},get valid(){return valid.value},get touched(){return touched.value},get dirty(){return dirty.value},get submitted(){return submission.value.count>0},get submitCount(){return submission.value.count},...actions});expose(actions);return()=>h("form",mergeProps(attrs,{ref:element=>{root.value=element},"data-scope":"form","data-part":"root","data-validation-status":validation.value.status,"data-submission-status":submission.value.status}),slots["default"]?.(slotProps)??[])}});const FormRoot=FormRootImpl;function toFormSubmitEvent(payload){return Object.freeze({formData:payload.formData,values:payload.values,submitter:payload.submitter,state:payload.state,reinitialize:payload.reinitialize,nativeEvent:payload.event,get defaultPrevented(){return payload.event.defaultPrevented},preventDefault:()=>payload.event.preventDefault(),stopPropagation:()=>payload.event.stopPropagation(),stopImmediatePropagation:()=>payload.event.stopImmediatePropagation()})}function isPromiseLike(value){return typeof value==="object"&&value!==null&&"then"in value&&typeof value.then==="function"}function resolveIssueInputs(target,source,input){const state=target.getSnapshot().state;return Object.freeze(input.map((issue,index)=>{const owner=issue.path===void 0?null:getFormFieldIDByPath(state,issue.path);const relatedFieldIds=new Set;for(const path of issue.relatedPaths??[]){const related2=getFormFieldIDByPath(state,path);if(related2!==null&&related2!==owner)relatedFieldIds.add(related2)}const related=Object.freeze([...relatedFieldIds]);return Object.freeze({id:issue.id??`form-${source}-issue-${index+1}`,message:issue.message,source,...owner===null?{}:{fieldId:owner},...related.length===0?{}:{relatedFieldIds:related}})}))}function safeEncodeFormFieldPath(path){const result=tryCreateFormFieldPath(path);return result.ok?encodeFormFieldPath(result.value):null}function mapSubmissionError(mapper,reason){if(mapper!==void 0){try{const mapped=mapper(reason);if(mapped!==void 0)return Object.freeze({message:mapped.message})}catch{}}return submissionErrorFailure()}function submissionErrorFailure(){return Object.freeze({message:"Form submission failed."})}function useFormFieldSelectorFromContext(context,idSource,selectorSource,equalsSource=()=>Object.is){const initialSelector=selectorSource();const selected=shallowRef(initialSelector(context.connection.value?.getField(idSource())??null));let unsubscribe;const stop=watch([context.connection,idSource,selectorSource,equalsSource],([target,id,selector,equals])=>{unsubscribe?.();unsubscribe=void 0;const next=selector(target?.getField(id)??null);if(!equals(selected.value,next))selected.value=next;if(target!==null){unsubscribe=target.subscribeField(id,selector,value=>{selected.value=value},{equals})}},{immediate:true,flush:"sync"});onScopeDispose(()=>{unsubscribe?.();stop()});return selected}function useFormSelector(selector,options={}){const context=useFormContext("useFormSelector");return useFormSelectorFromContext(context,()=>selector,()=>options.equals??Object.is)}function useFormFieldSelector(id,selector,options={}){const context=useFormContext("useFormFieldSelector");return useFormFieldSelectorFromContext(context,()=>id,()=>selector,()=>options.equals??Object.is)}function useFormFieldController(id){const context=useFormContext("useFormFieldController");const state=useFormFieldSelectorFromContext(context,()=>id,()=>field=>field);return Object.freeze({state,setMeta:meta=>context.connection.value?.setFieldMeta(id,meta)??false,replaceIssues:(source,issues)=>context.connection.value?.replaceFieldIssues(id,source,issues)??false,upsertIssue:issue=>context.connection.value?.upsertFieldIssue(id,issue)??false,removeIssue:issueId=>context.connection.value?.removeFieldIssue(id,issueId)??false,clearIssues:source=>context.connection.value?.clearFieldIssues(id,source)??false})}const FormSelectorRuntime=defineComponent({name:"SectileFormSelector",props:{select:{type:Function,required:true},equals:{type:Function,default:Object.is}},slots:Object,setup(props,{slots}){const context=useFormContext("FormSelector");const selected=useFormSelectorFromContext(context,()=>props.select,()=>props.equals);return()=>slots["default"]?.({selected:selected.value})??[]}});const FormSelector=FormSelectorRuntime;const FormFieldSelectorRuntime=defineComponent({name:"SectileFormFieldSelector",props:{id:{type:String,required:true},select:{type:Function,required:true},equals:{type:Function,default:Object.is}},slots:Object,setup(props,{slots}){const context=useFormContext("FormFieldSelector");const selected=useFormFieldSelectorFromContext(context,()=>props.id,()=>props.select,()=>props.equals);return()=>slots["default"]?.({selected:selected.value})??[]}});const FormFieldSelector=FormFieldSelectorRuntime;const FormField=defineComponent({name:"SectileFormField",inheritAttrs:false,props:{id:{type:String,default:void 0},name:{type:[String,Array],default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},readonly:{type:Boolean,default:void 0},...partProps},slots:Object,setup(props,{attrs,slots}){const formContext=useFormContext("FormField");const generatedId=useHostId();const id=computed(()=>props.id??`form-field-${generatedId}`);const nameKey=computed(()=>props.name===void 0?void 0:safeEncodeFormFieldPath(props.name)??void 0);const root=shallowRef(null);const controls=shallowRef([]);const fallback=shallowRef(null);const nativeFallbackProblem=shallowRef(null);const appliedAttributes=new Map;let observer;let unregister;let diagnosticId;let observedTargets=[];let warnedMultipleControls=false;const activeRegistrations=computed(()=>controls.value.filter(registration=>resolveElement(registration.element)!==null));const activeControl=computed(()=>activeRegistrations.value.length===1?activeRegistrations.value[0]:controls.value.length===0?fallback.value:null);const labelMode=computed(()=>activeControl.value?.labelMode??"for");const semanticControl=()=>{const registration=activeControl.value;if(registration===void 0||registration===null)return null;return resolveElement(registration.semanticControl??registration.element)};const effectiveControlId=computed(()=>semanticControl()?.getAttribute("id")?.trim()||`${id.value}-control`);const fieldState=useFormFieldSelectorFromContext(formContext,()=>id.value,()=>field=>field);const fieldActions=Object.freeze({setMeta:meta=>formContext.connection.value?.setFieldMeta(id.value,meta)??false,replaceIssues:(source,issues)=>formContext.connection.value?.replaceFieldIssues(id.value,source,issues)??false,upsertIssue:issue=>formContext.connection.value?.upsertFieldIssue(id.value,issue)??false,removeIssue:issueId=>formContext.connection.value?.removeFieldIssue(id.value,issueId)??false,clearIssues:source=>formContext.connection.value?.clearFieldIssues(id.value,source)??false});const slotProps=computed(()=>{const current=fieldState.value;const descriptionId=`${id.value}-description`;const messageId=`${id.value}-message`;const relatedIssues=current?.relatedIssues??[];const describedBy=`${descriptionId} ${messageId}${relatedIssues.length===0?"":` ${formContext.summaryId}`}`;const valid=current?.valid??true;return Object.freeze({id:id.value,controlId:effectiveControlId.value,labelId:`${id.value}-label`,descriptionId,messageId,describedBy,valid,touched:current?.touched??false,dirty:current?.dirty??false,issues:current?.issues??[],relatedIssues,...fieldActions})});const attributesFor=registration=>{const explicit=new Set(registration.explicit??[]);const capabilities=registration.capabilities??{};const attributes={};const assign=(attribute,value)=>{if(!explicit.has(attribute)&&value!==void 0)attributes[attribute]=value};if(capabilities.id===true)assign("id",slotProps.value.controlId);if(capabilities.describedBy===true){assign("aria-describedby",slotProps.value.describedBy);assign("aria-errormessage",slotProps.value.issues.length>0?slotProps.value.messageId:slotProps.value.relatedIssues.length>0?formContext.summaryId:slotProps.value.messageId)}if(capabilities.invalid===true&&!slotProps.value.valid)assign("aria-invalid","true");if(capabilities.labelledBy===true&&labelMode.value==="labelledby"){assign("aria-labelledby",slotProps.value.labelId)}if(capabilities.required===true&&props.required===true)assign("required",true);else if(labelMode.value!=="for"&&props.required===true)assign("aria-required","true");if(capabilities.disabled===true&&props.disabled===true)assign("disabled",true);else if(labelMode.value!=="for"&&props.disabled===true)assign("aria-disabled","true");if(capabilities.readonly===true&&props.readonly===true)assign("readonly",true);else if(labelMode.value!=="for"&&props.readonly===true)assign("aria-readonly","true");if(labelMode.value!=="for"){const refreshValue=()=>{queueMicrotask(()=>formContext.connection.value?.refreshParticipant(id.value))};attributes["onClick"]=refreshValue;attributes["onKeydown"]=refreshValue}return Object.freeze(attributes)};const restoreControlAttributes=()=>{for(const[element,attributes]of appliedAttributes){for(const[name,previous]of attributes){if(previous===null)element.removeAttribute(name);else element.setAttribute(name,previous)}}appliedAttributes.clear()};const applyControlAttributes=()=>{restoreControlAttributes();const registration=activeControl.value;if(registration===void 0||registration===null)return;const semantic=resolveElement(registration.semanticControl??registration.element);if(semantic!==null){applyMetadata(semantic,attributesFor(registration),registration.explicit,appliedAttributes)}for(const submission of resolveSubmissionRegistrations(registration)){const element=resolveElement(submission.element);if(element===null)continue;const capabilities=submission.capabilities??nativeSubmissionCapabilities(element);const explicit=submission.explicit??registration.explicit;const attributes={};if(capabilities.name===true&&nameKey.value!==void 0){const submissionName=safeEncodeSubmissionName(nameKey.value,submission.relativeName);if(submissionName!==null)attributes["name"]=submissionName}if(capabilities.form===true&&props.form!==void 0)attributes["form"]=props.form;if(capabilities.required===true&&props.required===true)attributes["required"]=true;if(capabilities.disabled===true&&props.disabled===true)attributes["disabled"]=true;if(capabilities.readonly===true&&props.readonly===true)attributes["readonly"]=true;applyMetadata(element,attributes,explicit,appliedAttributes)}};const discoverNativeFallback=()=>{if(controls.value.length>0||root.value===null){fallback.value=null;nativeFallbackProblem.value=null;return}const candidates=nativeCandidates(root.value);const discovered=createNativeFallbackRegistration(root.value,candidates);nativeFallbackProblem.value=discovered.problem;if(discovered.registration===null){fallback.value=null;return}const next=discovered.registration;const current=fallback.value;if(current!==null&&resolveElement(current.semanticControl??current.element)===resolveElement(next.semanticControl??next.element)&&sameSubmissionElements(resolveSubmissionRegistrations(current),resolveSubmissionRegistrations(next)))return;fallback.value=next};const syncDiagnostic=()=>{const currentId=id.value;if(diagnosticId!==void 0&&diagnosticId!==currentId){formContext.setFieldDiagnostic(diagnosticId,null)}diagnosticId=currentId;let message=null;if(props.name!==void 0&&nameKey.value===void 0){message="FormField received an invalid field path."}else if(activeRegistrations.value.length>1){message="FormField received multiple active controls. Register one composite control with explicit targets."}else if(controls.value.length>0&&activeRegistrations.value.length===0){message="FormField has no mounted control target."}else if(nativeFallbackProblem.value!==null){message=nativeFallbackProblem.value}else{const registration=activeControl.value;if(registration!==null&®istration!==void 0){const invalidRelativeName=resolveSubmissionRegistrations(registration).some(submission=>submission.relativeName!==void 0&&nameKey.value!==void 0&&safeEncodeSubmissionName(nameKey.value,submission.relativeName)===null);if(invalidRelativeName)message="FormField received an invalid relative submission path."}}formContext.setFieldDiagnostic(currentId,message===null?null:Object.freeze({id:`${currentId}:composition`,fieldId:currentId,message,source:"field"}))};const refreshParticipantTargets=()=>{const registration=activeControl.value;const next=registration===null||registration===void 0?root.value===null?[]:[root.value]:[root.value,resolveElement(registration.semanticControl??registration.element),resolveElement(registration.focusTarget??registration.element),resolveElement(registration.validationTarget??registration.element),...resolveSubmissionRegistrations(registration).map(submission=>resolveElement(submission.element))].filter(element=>element!==null);if(next.length===observedTargets.length&&next.every((element,index)=>element===observedTargets[index]))return;observedTargets=Object.freeze([...next]);formContext.connection.value?.refreshParticipant(id.value)};const registerControl=registration=>{controls.value=[...controls.value,registration];fallback.value=null;void nextTick(()=>{if(!warnedMultipleControls&&activeRegistrations.value.length>1){warnedMultipleControls=true;console.warn("[Sectile] FormField received multiple active control registrations. Register one composite control with explicit semantic, focus, and submission targets.")}applyControlAttributes();syncDiagnostic();refreshParticipantTargets()});return()=>{controls.value=controls.value.filter(candidate=>candidate!==registration);discoverNativeFallback();void nextTick(()=>{applyControlAttributes();syncDiagnostic();refreshParticipantTargets()})}};const mount=()=>{unregister?.();unregister=void 0;if(root.value===null)return;discoverNativeFallback();observer?.disconnect();observer=new MutationObserver(()=>{discoverNativeFallback();applyControlAttributes();syncDiagnostic();refreshParticipantTargets()});observer.observe(root.value,{childList:true,subtree:true});applyControlAttributes();const participant={id:id.value,get element(){return root.value},get semanticControl(){return semanticControl()??root.value},get focusTarget(){const registration=activeControl.value;return registration===void 0||registration===null?root.value:resolveElement(registration.focusTarget??registration.semanticControl??registration.element)??root.value},get validationTarget(){const registration=activeControl.value;return registration===void 0||registration===null?root.value:resolveElement(registration.validationTarget??registration.semanticControl??registration.element)??root.value},get submissionElements(){const registration=activeControl.value;if(registration===void 0||registration===null)return[];return resolveSubmissionRegistrations(registration).map(submission=>resolveElement(submission.element)).filter(element=>element!==null)},focus:()=>{const registration=activeControl.value;const control=registration===void 0||registration===null?null:resolveElement(registration.focusTarget??registration.semanticControl??registration.element);control?.focus();return control!==null&&document.activeElement===control},reset:()=>activeControl.value?.reset?.(),get getValue(){return activeControl.value?.getValue},get isValueEqual(){return activeControl.value?.isValueEqual},...nameKey.value===void 0?{}:{name:nameKey.value}};unregister=formContext.register(participant);observedTargets=Object.freeze([participant.element,participant.semanticControl??participant.element,participant.focusTarget??participant.element,participant.validationTarget??participant.element,...participant.submissionElements??[]]);syncDiagnostic()};const mountTask=useNextTickTask(mount);onMounted(mountTask.schedule);onBeforeUnmount(()=>{mountTask.cancel();observer?.disconnect();observer=void 0;restoreControlAttributes();if(diagnosticId!==void 0)formContext.setFieldDiagnostic(diagnosticId,null);unregister?.();unregister=void 0});watch([id,nameKey],mountTask.schedule);watch([activeControl,effectiveControlId,labelMode,nameKey,()=>props.form,()=>props.required,()=>props.disabled,()=>props.readonly,()=>slotProps.value.valid],()=>{applyControlAttributes();syncDiagnostic()},{flush:"post"});provide(formFieldContextKey,{slotProps,labelMode,registerControl,attributesFor});provideFormControlFieldContext({registerControl,attributesFor});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.value=element},"data-scope":"form","data-part":"field","data-valid":slotProps.value.valid?"":void 0,"data-invalid":slotProps.value.valid?void 0:"","data-touched":slotProps.value.touched?"":void 0,"data-dirty":slotProps.value.dirty?"":void 0}),{default:()=>slots["default"]?.(slotProps.value)})}});const FormLabel=defineComponent({name:"SectileFormLabel",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:void 0},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const field=useFormFieldContext("FormLabel");return()=>{const mode=field.labelMode.value;return renderFieldPart({as:props.as??(mode==="legend"?"legend":mode==="for"?"label":"span"),asChild:props.asChild},attrs,slots,"label",{id:field.slotProps.value.labelId,...mode==="for"?{for:field.slotProps.value.controlId}:{}})}}});const FormDescription=defineComponent({name:"SectileFormDescription",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"p"}},setup(props,{attrs,slots}){const field=useFormFieldContext("FormDescription");return()=>renderFieldPart(props,attrs,slots,"description",{id:field.slotProps.value.descriptionId})}});import{FormMessage,FormSummary}from"./internal/form-presence-parts.js";const FormReset=defineComponent({name:"SectileFormReset",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"button"}},setup(props,{attrs,slots}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,...props.as==="button"&&!props.asChild?{type:"reset"}:{},"data-scope":"form","data-part":"reset"}),{default:()=>slots["default"]?.()})}});const FormSubmit=defineComponent({name:"SectileFormSubmit",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"button"}},slots:Object,setup(props,{attrs,slots}){const form=useFormContext("FormSubmit");const valid=useFormSelectorFromContext(form,()=>state=>state.valid);const submission=useFormSelectorFromContext(form,()=>state=>state.submission);const slotProps=computed(()=>{const submitting=submission.value.status==="submitting";return Object.freeze({valid:valid.value,submitting,canSubmit:valid.value&&!submitting,submission:submission.value})});const blockPendingSubmit=event=>{if(!slotProps.value.submitting)return;event.preventDefault();event.stopImmediatePropagation()};return()=>h(Primitive,mergeProps({onClickCapture:blockPendingSubmit},attrs,{as:props.as,asChild:props.asChild,...props.as==="button"&&!props.asChild?{type:"submit"}:{},...props.as==="button"&&!props.asChild&&slotProps.value.submitting?{disabled:true}:{},...props.asChild&&slotProps.value.submitting?{"aria-disabled":"true"}:{},"data-scope":"form","data-part":"submit","data-submission-status":slotProps.value.submission.status}),{default:()=>slots["default"]?.(slotProps.value)})}});function renderFieldPart(props,attrs,slots,part,attributes){return h(Primitive,mergeProps(attributes,attrs,{as:props.as,asChild:props.asChild,"data-scope":"form","data-part":part}),{default:()=>slots.default?.()})}function resolveElement(source){return typeof source==="function"?source():source.value??null}function resolveSubmissionRegistrations(registration){if(registration.submissions!==void 0){return typeof registration.submissions==="function"?registration.submissions():registration.submissions}const element=resolveElement(registration.element);if(element===null||!isFormSubmissionElement(element))return[];return[{element:()=>element,capabilities:nativeSubmissionCapabilities(element),...registration.explicit===void 0?{}:{explicit:registration.explicit}}]}function sameSubmissionElements(left,right){return left.length===right.length&&left.every((submission,index)=>resolveElement(submission.element)===resolveElement(right[index].element))}function nativeCandidates(root){const selector="fieldset, input, select, textarea";const candidates=[...root.matches(selector)?[root]:[],...root.querySelectorAll(selector)];return candidates.filter(candidate=>candidate.closest('[data-scope="form"][data-part="field"]')===root)}function createNativeFallbackRegistration(root,candidates){const semantic=nativeSemanticControl(candidates);if(semantic===void 0||isHiddenInput(semantic)){return{registration:null,problem:"FormField has no visible native semantic or focus target."}}const submissions=candidates.filter(isFormSubmissionElement);const visible=candidates.filter(candidate=>!isHiddenInput(candidate));const fieldset=visible.find(candidate=>candidate.tagName==="FIELDSET");if(fieldset!==void 0){return{registration:nativeFallbackForFieldset(fieldset,submissions),problem:null}}if(visible.length===1){return{registration:nativeFallbackForElement(semantic,submissions),problem:null}}if(isNativeCheckedGroup(visible)){const focusTarget=visible.find(candidate=>!candidate.disabled)??visible[0];return{registration:{element:()=>root,semanticControl:()=>root,focusTarget:()=>focusTarget,validationTarget:()=>root,submissions:submissions.map(element=>({element:()=>element,capabilities:Object.freeze({...nativeSubmissionCapabilities(element),required:false})})),labelMode:"labelledby",capabilities:compositeControlCapabilities},problem:null}}return{registration:null,problem:"FormField contains multiple unrelated native controls. Use a fieldset or one composite registration."}}function nativeFallbackForFieldset(fieldset,submissions){const visibleSubmissions=submissions.filter(element=>!isHiddenInput(element));const checkboxGroup=isNativeCheckedGroup(visibleSubmissions)&&visibleSubmissions[0]?.tagName==="INPUT"&&visibleSubmissions[0].type.toLowerCase()==="checkbox";return{element:()=>fieldset,semanticControl:()=>fieldset,focusTarget:()=>fieldsetFocusTarget(submissions)??fieldset,validationTarget:()=>fieldset,submissions:submissions.map(element=>({element:()=>element,capabilities:Object.freeze({...nativeSubmissionCapabilities(element),...checkboxGroup?{required:false}:{}})})),labelMode:"legend",capabilities:nativeControlCapabilities(fieldset)}}function fieldsetFocusTarget(submissions){const enabled=submissions.filter(element=>!isHiddenInput(element)&&!element.disabled&&!element.matches(":disabled"));const invalid=enabled.find(element=>element.willValidate&&!element.validity.valid);if(invalid!==void 0)return invalid;return enabled.find(element=>element.tagName==="INPUT"&&element.type.toLowerCase()==="radio"&&element.checked)??enabled[0]}function nativeFallbackForElement(semantic,submissions){return{element:()=>semantic,semanticControl:()=>semantic,focusTarget:()=>semantic,validationTarget:()=>semantic,submissions:submissions.map(element=>({element:()=>element,capabilities:nativeSubmissionCapabilities(element)})),labelMode:nativeLabelMode(semantic),capabilities:nativeControlCapabilities(semantic)}}function isHiddenInput(element){return element.tagName==="INPUT"&&element.getAttribute("type")?.toLowerCase()==="hidden"}function isNativeCheckedGroup(candidates){if(candidates.length<2)return false;const types=candidates.map(candidate=>candidate.tagName==="INPUT"?candidate.type.toLowerCase():null);return types.every(type=>type===types[0])&&(types[0]==="checkbox"||types[0]==="radio")}function nativeSemanticControl(candidates){return candidates.find(candidate=>!isHiddenInput(candidate))??candidates[0]}function isFormSubmissionElement(element){return["INPUT","SELECT","TEXTAREA"].includes(element.tagName)}function nativeLabelMode(element){if(element.tagName==="FIELDSET")return"legend";if(element.tagName==="INPUT"&&element.getAttribute("type")?.toLowerCase()==="hidden"){return"labelledby"}return["BUTTON","INPUT","SELECT","TEXTAREA"].includes(element.tagName)?"for":"labelledby"}function nativeControlCapabilities(element){const tag=element.tagName;const labelable=nativeLabelMode(element)==="for";return Object.freeze({id:true,describedBy:true,invalid:true,labelledBy:!labelable,required:["INPUT","SELECT","TEXTAREA"].includes(tag),disabled:["BUTTON","FIELDSET","INPUT","SELECT","TEXTAREA"].includes(tag),readonly:tag==="TEXTAREA"||tag==="INPUT"&&supportsReadonly(element)})}function nativeSubmissionCapabilities(element){const tag=element.tagName;return Object.freeze({name:true,form:true,required:["INPUT","SELECT","TEXTAREA"].includes(tag),disabled:true,readonly:tag==="TEXTAREA"||tag==="INPUT"&&supportsReadonly(element)})}function safeEncodeSubmissionName(base,relative){try{if(relative===void 0)return safeEncodeFormFieldPath(base);return safeEncodeFormFieldPath(appendFormFieldPath(base,relative))}catch{return null}}function applyMetadata(element,attributes,explicitAttributes,applied){const explicit=new Set(explicitAttributes??[]);for(const[name,value]of Object.entries(attributes)){if(name.startsWith("on")&&typeof value==="function")continue;if(value===void 0||value===false||explicit.has(name))continue;const previous=element.getAttribute(name);const mergeTokens=name==="aria-describedby"||name==="aria-labelledby";if(previous!==null&&!mergeTokens)continue;let changes=applied.get(element);if(changes===void 0){changes=new Map;applied.set(element,changes)}if(!changes.has(name))changes.set(name,previous);const next=mergeTokens&&previous!==null?[...new Set([...previous.split(/\s+/u),...String(value).split(/\s+/u)])].join(" "):value===true?"":String(value);element.setAttribute(name,next)}}function supportsReadonly(element){return!new Set(["button","checkbox","color","file","hidden","image","radio","range","reset","submit"]).has(element.type.toLowerCase())}export{FormDescription,FormField,FormFieldSelector,FormLabel,FormMessage,FormReset,FormRoot,FormSelector,FormSubmit,FormSummary,compositeControlCapabilities,defineFormSubmission,hiddenInputSubmissionCapabilities,hiddenSelectSubmissionCapabilities,hiddenValueSubmissionCapabilities,nativeInputControlCapabilities,provideFormControlOwner,useCompositeFormControl,useFormControl,useFormFieldController,useFormFieldSelector,useFormSelector,useNativeInputFormControl};
|
|
1
|
+
import{defineFormSubmission}from"./form/contracts.js";import{compositeControlCapabilities,hiddenInputSubmissionCapabilities,hiddenSelectSubmissionCapabilities,hiddenValueSubmissionCapabilities,nativeInputControlCapabilities,provideFormControlOwner,useCompositeFormControl,useFormControl,useNativeInputFormControl}from"./form/control.js";import{FormRoot}from"./form/root.js";import{useFormSelector,useFormFieldSelector,useFormFieldController,FormSelector,FormFieldSelector}from"./form/selectors.js";import{FormField}from"./form/field.js";import{FormLabel,FormDescription,FormReset,FormSubmit}from"./form/parts.js";import{FormMessage,FormSummary}from"./form/presence-parts.js";export{FormDescription,FormField,FormFieldSelector,FormLabel,FormMessage,FormReset,FormRoot,FormSelector,FormSubmit,FormSummary,compositeControlCapabilities,defineFormSubmission,hiddenInputSubmissionCapabilities,hiddenSelectSubmissionCapabilities,hiddenValueSubmissionCapabilities,nativeInputControlCapabilities,provideFormControlOwner,useCompositeFormControl,useFormControl,useFormFieldController,useFormFieldSelector,useFormSelector,useNativeInputFormControl};
|
|
2
2
|
//# sourceMappingURL=form.js.map
|
package/dist/form.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/form.ts"],"mappings":"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","names":["related"],"file":"form.js"}
|
|
1
|
+
{"version":3,"sources":["../src/form.ts"],"mappings":"AAAA,OAmBE,yBAgCK,sBAEP,OACE,6BACA,kCACA,mCACA,kCACA,+BACA,wBACA,wBACA,eACA,8BAUK,oBACP,OAAS,aAAgB,iBACzB,OACE,gBACA,qBACA,uBACA,aACA,sBACK,sBACP,OAAS,cAAiB,kBAC1B,OACE,UACA,gBACA,UACA,eACK,kBACP,OAAS,YAAa,gBAAmB","names":[],"file":"form.js"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
export { SequenceReorderItem, SequenceReorderRoot, TreeReorderItem, TreeReorderRoot, type ReorderItemProps, type ReorderItemSlotProps, type ReorderOrientation, type ReorderRootSlotProps, type SequenceReorderRootProps, type TreeReorderNode, type TreeReorderRootProps, type TreeReorderRootSlotProps, } from './reorder.js';
|
|
2
2
|
export { HostProvider, useHostDirection, useHostId, useHostPortalTarget, type HostDirection, type HostIdGenerator, type HostPortalTarget, type HostProviderProps, } from './host-provider.js';
|
|
3
3
|
export { AccordionContent, AccordionHeader, AccordionItem, AccordionRoot, AccordionTrigger, type AccordionItemProps, type AccordionItemSlotProps, type AccordionPartProps, type AccordionRootProps, type AccordionRootSlotProps, type AccordionType, type AccordionValue, } from './accordion.js';
|
|
4
|
-
export { AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogOverlay, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle, AlertDialogTrigger, type AlertDialogPartProps, type AlertDialogPortalProps, type AlertDialogInteractOutsideHandler, type AlertDialogRootProps, type AlertDialogRootSlotProps, } from './alert-dialog.js';
|
|
4
|
+
export { AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogOverlay, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle, AlertDialogTrigger, type AlertDialogPartProps, type AlertDialogPortalProps, type AlertDialogInteractOutsideHandler, type AlertDialogRootProps, type AlertDialogRootSlotProps, } from './overlay/alert-dialog.js';
|
|
5
5
|
export { CheckboxIndicator, CheckboxRoot, type CheckboxIndicatorProps, type CheckboxRootProps, type CheckboxSlotProps, type CheckboxValue, } from './checkbox.js';
|
|
6
6
|
export { Primitive, type PrimitiveAs, type PrimitiveProps } from './primitive.js';
|
|
7
7
|
export { DisclosureContent, DisclosureRoot, DisclosureTrigger, type DisclosureContentProps, type DisclosureRootProps, type DisclosureSlotProps, type DisclosureTriggerProps, } from './disclosure.js';
|
|
8
|
-
export { DialogClose, DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, DialogTrigger, type DialogPartProps, type DialogInteractOutsideHandler, type DialogPortalProps, type DialogRootProps, type DialogRootSlotProps, } from './dialog.js';
|
|
9
|
-
export { DrawerClose, DrawerContent, DrawerDescription, DrawerHandle, DrawerOverlay, DrawerPortal, DrawerRoot, DrawerTitle, DrawerTrigger, type DrawerInteractOutsideHandler, type DrawerPartProps, type DrawerPortalProps, type DrawerRootProps, type DrawerRootSlotProps, type DrawerSide, } from './drawer.js';
|
|
10
|
-
export { PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverDescription, PopoverPortal, PopoverRoot, PopoverTitle, PopoverTrigger, type PopoverPartProps, type PopoverInteractOutsideHandler, type PopoverPortalProps, type PopoverRootProps, type PopoverRootSlotProps, } from './popover.js';
|
|
11
|
-
export type { InteractOutsideEvent, InteractOutsideHandler } from './
|
|
8
|
+
export { DialogClose, DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, DialogTrigger, type DialogPartProps, type DialogInteractOutsideHandler, type DialogPortalProps, type DialogRootProps, type DialogRootSlotProps, } from './overlay/dialog.js';
|
|
9
|
+
export { DrawerClose, DrawerContent, DrawerDescription, DrawerHandle, DrawerOverlay, DrawerPortal, DrawerRoot, DrawerTitle, DrawerTrigger, type DrawerInteractOutsideHandler, type DrawerPartProps, type DrawerPortalProps, type DrawerRootProps, type DrawerRootSlotProps, type DrawerSide, } from './overlay/drawer.js';
|
|
10
|
+
export { PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverDescription, PopoverPortal, PopoverRoot, PopoverTitle, PopoverTrigger, type PopoverPartProps, type PopoverInteractOutsideHandler, type PopoverPortalProps, type PopoverRootProps, type PopoverRootSlotProps, } from './overlay/popover.js';
|
|
11
|
+
export type { InteractOutsideEvent, InteractOutsideHandler } from './overlay/popup.js';
|
|
12
12
|
export { NumberField, type NumberFieldProps } from './number-field.js';
|
|
13
13
|
export { SwitchRoot, SwitchThumb, type SwitchRootProps, type SwitchSlotProps, type SwitchThumbProps, } from './switch.js';
|
|
14
14
|
export { ToggleButton, type ToggleButtonProps, type ToggleButtonSlotProps, } from './toggle-button.js';
|
|
15
15
|
export { ToggleGroupItem, ToggleGroupRoot, type ToggleGroupItemProps, type ToggleGroupItemSlotProps, type ToggleGroupRootProps, type ToggleGroupRootSlotProps, } from './toggle-group.js';
|
|
16
|
-
export { TooltipContent, TooltipPortal, TooltipRoot, TooltipTrigger, type TooltipPartProps, type TooltipPortalProps, type TooltipRootProps, type TooltipRootSlotProps, } from './tooltip.js';
|
|
16
|
+
export { TooltipContent, TooltipPortal, TooltipRoot, TooltipTrigger, type TooltipPartProps, type TooltipPortalProps, type TooltipRootProps, type TooltipRootSlotProps, } from './overlay/tooltip.js';
|
|
17
17
|
export { TextField, type TextFieldModelModifiers, type TextFieldProps, } from './text.js';
|
|
18
18
|
export { EditableArea, EditableCancelTrigger, EditableEditTrigger, EditableInput, EditablePreview, EditableRoot, EditableSubmitTrigger, type EditablePartProps, type EditableRootProps, type EditableRootSlotProps, } from './editable.js';
|
|
19
19
|
export { ListboxItem, ListboxItemIndicator, ListboxItemText, ListboxRoot, type ListboxItemProps, type ListboxItemSlotProps, type ListboxPartProps, type ListboxRootProps, type ListboxRootSlotProps, type ListboxSelectionMode, type ListboxValue, } from './listbox.js';
|
|
@@ -92,10 +92,10 @@ export type { ToolbarInvokeHandler, ToolbarValueChangeHandler, } from './toolbar
|
|
|
92
92
|
export type { TreeGridEditModeChangeHandler, TreeGridExpandedValueChangeHandler, TreeGridHighlightedValueChangeHandler, TreeGridValueChangeHandler, } from './tree-grid.js';
|
|
93
93
|
export type { TreeViewExpandedValuesChangeHandler, TreeViewHighlightedValueChangeHandler, TreeViewValueChangeHandler, } from './tree-view.js';
|
|
94
94
|
export type { WindowSplitterValueChangeHandler, WindowSplitterValueFormatter, } from './window-splitter.js';
|
|
95
|
-
export type { DialogOpenChangeHandler, } from './dialog.js';
|
|
96
|
-
export type { PopoverOpenChangeHandler, } from './popover.js';
|
|
97
|
-
export type { AlertDialogOpenChangeHandler, } from './alert-dialog.js';
|
|
98
|
-
export type { TooltipOpenChangeHandler, } from './tooltip.js';
|
|
95
|
+
export type { DialogOpenChangeHandler, } from './overlay/dialog.js';
|
|
96
|
+
export type { PopoverOpenChangeHandler, } from './overlay/popover.js';
|
|
97
|
+
export type { AlertDialogOpenChangeHandler, } from './overlay/alert-dialog.js';
|
|
98
|
+
export type { TooltipOpenChangeHandler, } from './overlay/tooltip.js';
|
|
99
99
|
export type { MenuButtonInvokeHandler, MenuButtonOpenChangeHandler, MenuInvokeHandler, MenuOpenChangeHandler, MenubarInvokeHandler, MenubarOpenChangeHandler, NavigationMenuInvokeHandler, NavigationMenuOpenChangeHandler, } from './menu.js';
|
|
100
100
|
export { MeterIndicator, MeterRoot, MeterTrack, MeterValueText, type MeterPartProps, type MeterRootProps, type MeterRootSlotProps, type MeterValueFormatter, } from './meter.js';
|
|
101
101
|
export { MeterGroupIndicator, MeterGroupItem, MeterGroupItemIndicator, MeterGroupItemLabel, MeterGroupItemValue, MeterGroupList, MeterGroupRoot, MeterGroupSegment, MeterGroupTrack, MeterGroupValueText, type MeterGroupEntry, type MeterGroupItemProps, type MeterGroupItemSlotProps, type MeterGroupPartProps, type MeterGroupRootProps, type MeterGroupRootSlotProps, type MeterGroupSegmentProps, type MeterGroupSegmentSlotProps, type MeterGroupTotalFormatter, type MeterGroupValueFormatter, } from './meter-group.js';
|