@sectile/vue 0.18.2 → 0.19.0
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/README.md +53 -14
- package/dist/accordion.js +1 -1
- package/dist/accordion.js.map +1 -1
- package/dist/carousel.d.ts +20 -0
- package/dist/carousel.js +1 -1
- package/dist/carousel.js.map +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/chart.js +1 -1
- package/dist/chart.js.map +1 -1
- package/dist/checkbox-group.js +1 -1
- package/dist/checkbox-group.js.map +1 -1
- package/dist/checkbox-tree.d.ts +102 -0
- package/dist/checkbox-tree.js +2 -0
- package/dist/checkbox-tree.js.map +1 -0
- package/dist/checkbox.js +1 -1
- package/dist/checkbox.js.map +1 -1
- package/dist/color-picker.d.ts +24 -0
- package/dist/color-picker.js +1 -1
- package/dist/color-picker.js.map +1 -1
- package/dist/combobox.d.ts +47 -1
- package/dist/combobox.js +1 -1
- package/dist/combobox.js.map +1 -1
- package/dist/component-handle.d.ts +8 -0
- package/dist/component-handle.js +2 -0
- package/dist/component-handle.js.map +1 -0
- package/dist/context-menu.d.ts +1 -0
- package/dist/context-menu.js +2 -0
- package/dist/context-menu.js.map +1 -0
- package/dist/drag-drop.d.ts +23 -0
- package/dist/drag-drop.js +2 -0
- package/dist/drag-drop.js.map +1 -0
- package/dist/editable.d.ts +3 -0
- package/dist/editable.js +1 -1
- package/dist/editable.js.map +1 -1
- package/dist/form/context.d.ts +3 -0
- package/dist/form/context.js +1 -1
- package/dist/form/context.js.map +1 -1
- package/dist/form/contracts.d.ts +1 -0
- package/dist/form/control-inventory.d.ts +20 -0
- package/dist/form/control-inventory.js +1 -1
- package/dist/form/control-inventory.js.map +1 -1
- package/dist/form/control.d.ts +44 -1
- package/dist/form/control.js +1 -1
- package/dist/form/control.js.map +1 -1
- package/dist/form/field.d.ts +10 -0
- package/dist/form/field.js +1 -1
- package/dist/form/field.js.map +1 -1
- package/dist/form/file-input.d.ts +229 -0
- package/dist/form/file-input.js +2 -0
- package/dist/form/file-input.js.map +1 -0
- package/dist/form/file-upload/group.d.ts +28 -0
- package/dist/form/file-upload/group.js +2 -0
- package/dist/form/file-upload/group.js.map +1 -0
- package/dist/form/file-upload.d.ts +26 -0
- package/dist/form/file-upload.js +2 -0
- package/dist/form/file-upload.js.map +1 -0
- package/dist/form/root.js +1 -1
- package/dist/form/root.js.map +1 -1
- package/dist/form-boundary.d.ts +2 -0
- package/dist/form-boundary.js +2 -0
- package/dist/form-boundary.js.map +1 -0
- package/dist/fullscreen.d.ts +16 -0
- package/dist/fullscreen.js +2 -0
- package/dist/fullscreen.js.map +1 -0
- package/dist/host-provider.d.ts +99 -1
- package/dist/host-provider.js +1 -1
- package/dist/host-provider.js.map +1 -1
- package/dist/image.d.ts +24 -0
- package/dist/image.js +2 -0
- package/dist/image.js.map +1 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/input/native-field.d.ts +25 -6
- package/dist/input/native-field.js +1 -1
- package/dist/input/native-field.js.map +1 -1
- package/dist/input/native-range-field.d.ts +95 -0
- package/dist/input/native-range-field.js +2 -0
- package/dist/input/native-range-field.js.map +1 -0
- package/dist/internal/cascade-choice.js +1 -1
- package/dist/internal/cascade-choice.js.map +1 -1
- package/dist/internal/connection-lifetime.d.ts +10 -0
- package/dist/internal/connection-lifetime.js +2 -0
- package/dist/internal/connection-lifetime.js.map +1 -0
- package/dist/internal/controlled-state.js +1 -1
- package/dist/internal/controlled-state.js.map +1 -1
- package/dist/internal/popup-presentation.d.ts +32 -0
- package/dist/internal/popup-presentation.js +2 -0
- package/dist/internal/popup-presentation.js.map +1 -0
- package/dist/internal/portal-move.d.ts +11 -0
- package/dist/internal/portal-move.js +2 -0
- package/dist/internal/portal-move.js.map +1 -0
- package/dist/internal/scheduled-task.js +1 -1
- package/dist/internal/scheduled-task.js.map +1 -1
- package/dist/internal/tabs-context.d.ts +11 -0
- package/dist/internal/tabs-context.js +1 -1
- package/dist/internal/tabs-context.js.map +1 -1
- package/dist/internal/tree-parts.d.ts +142 -0
- package/dist/internal/tree-parts.js +2 -0
- package/dist/internal/tree-parts.js.map +1 -0
- package/dist/listbox.d.ts +11 -0
- package/dist/listbox.js +1 -1
- package/dist/listbox.js.map +1 -1
- package/dist/media-gesture.d.ts +20 -0
- package/dist/media-gesture.js +2 -0
- package/dist/media-gesture.js.map +1 -0
- package/dist/menu.d.ts +239 -0
- package/dist/menu.js +1 -1
- package/dist/menu.js.map +1 -1
- package/dist/meter-group.js +1 -1
- package/dist/meter-group.js.map +1 -1
- package/dist/multi-thumb-slider.js +1 -1
- package/dist/multi-thumb-slider.js.map +1 -1
- package/dist/overlay/dialog.d.ts +1 -0
- package/dist/overlay/dialog.js.map +1 -1
- package/dist/overlay/drawer.d.ts +33 -4
- package/dist/overlay/drawer.js +1 -1
- package/dist/overlay/drawer.js.map +1 -1
- package/dist/overlay/popover.d.ts +2 -1
- package/dist/overlay/popover.js.map +1 -1
- package/dist/overlay/popup.d.ts +46 -2
- package/dist/overlay/popup.js +1 -1
- package/dist/overlay/popup.js.map +1 -1
- package/dist/overlay/tooltip.d.ts +37 -3
- package/dist/overlay/tooltip.js +1 -1
- package/dist/overlay/tooltip.js.map +1 -1
- package/dist/pagination.js +1 -1
- package/dist/pagination.js.map +1 -1
- package/dist/pin-input.js +1 -1
- package/dist/pin-input.js.map +1 -1
- package/dist/presence/presence.d.ts +1 -1
- package/dist/presence/presence.js +1 -1
- package/dist/presence/presence.js.map +1 -1
- package/dist/primitive.d.ts +37 -3
- package/dist/primitive.js +1 -1
- package/dist/primitive.js.map +1 -1
- package/dist/quantity-field.js +1 -1
- package/dist/quantity-field.js.map +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/radio-group.js.map +1 -1
- package/dist/rating.js +1 -1
- package/dist/rating.js.map +1 -1
- package/dist/reorder.d.ts +156 -77
- package/dist/reorder.js +1 -1
- package/dist/reorder.js.map +1 -1
- package/dist/select.d.ts +21 -0
- 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.d.ts +19 -0
- package/dist/spin-button.js +1 -1
- package/dist/spin-button.js.map +1 -1
- package/dist/stepper.js +1 -1
- package/dist/stepper.js.map +1 -1
- package/dist/switch.js +1 -1
- package/dist/switch.js.map +1 -1
- package/dist/tabs.d.ts +2 -0
- package/dist/tabs.js +1 -1
- package/dist/tabs.js.map +1 -1
- package/dist/tabular/components.d.ts +5 -0
- package/dist/tabular/components.js.map +1 -1
- package/dist/tabular/controller.d.ts +1 -0
- package/dist/tabular/controller.js +1 -1
- package/dist/tabular/controller.js.map +1 -1
- package/dist/tabular/data-grid.d.ts +4 -4
- package/dist/tabular/data-grid.js +1 -1
- package/dist/tabular/data-grid.js.map +1 -1
- package/dist/tabular/data-table.d.ts +4 -4
- package/dist/tabular/data-table.js +1 -1
- package/dist/tabular/data-table.js.map +1 -1
- package/dist/tabular/data-tree-grid.d.ts +4 -4
- package/dist/tabular/data-tree-grid.js +1 -1
- package/dist/tabular/data-tree-grid.js.map +1 -1
- package/dist/tabular/parts.d.ts +11 -1
- package/dist/tabular/parts.js +1 -1
- package/dist/tabular/parts.js.map +1 -1
- package/dist/tabular/source.js +1 -1
- package/dist/tabular/source.js.map +1 -1
- package/dist/tags-input.d.ts +12 -1
- package/dist/tags-input.js +1 -1
- package/dist/tags-input.js.map +1 -1
- package/dist/temporal/calendar.d.ts +27 -123
- package/dist/temporal/calendar.js +1 -1
- package/dist/temporal/calendar.js.map +1 -1
- package/dist/temporal/capabilities/date-picker.js +1 -1
- package/dist/temporal/capabilities/date-picker.js.map +1 -1
- package/dist/temporal/capabilities/date-time-picker.js +1 -1
- package/dist/temporal/capabilities/date-time-picker.js.map +1 -1
- package/dist/temporal/capabilities/date-time-range-picker.js +1 -1
- package/dist/temporal/capabilities/date-time-range-picker.js.map +1 -1
- package/dist/temporal/capability.d.ts +13 -1
- package/dist/temporal/capability.js.map +1 -1
- package/dist/temporal/date-field.d.ts +1 -1
- package/dist/temporal/date-field.js +1 -1
- package/dist/temporal/date-field.js.map +1 -1
- package/dist/temporal/date-picker.d.ts +16 -14
- package/dist/temporal/date-picker.js +1 -1
- package/dist/temporal/date-picker.js.map +1 -1
- package/dist/temporal/date-range-field.d.ts +21 -1
- package/dist/temporal/date-range-field.js +1 -1
- package/dist/temporal/date-range-field.js.map +1 -1
- package/dist/temporal/date-range-picker.d.ts +16 -14
- package/dist/temporal/date-range-picker.js +1 -1
- package/dist/temporal/date-range-picker.js.map +1 -1
- package/dist/temporal/date-time-field.d.ts +4 -1
- package/dist/temporal/date-time-field.js +1 -1
- package/dist/temporal/date-time-field.js.map +1 -1
- package/dist/temporal/date-time-picker.d.ts +16 -14
- package/dist/temporal/date-time-picker.js +1 -1
- package/dist/temporal/date-time-picker.js.map +1 -1
- package/dist/temporal/date-time-range-field.d.ts +158 -0
- package/dist/temporal/date-time-range-field.js +2 -0
- package/dist/temporal/date-time-range-field.js.map +1 -0
- package/dist/temporal/date-time-range-picker.d.ts +16 -14
- package/dist/temporal/date-time-range-picker.js +1 -1
- package/dist/temporal/date-time-range-picker.js.map +1 -1
- package/dist/temporal/internal/time-presentation.d.ts +15 -0
- package/dist/temporal/internal/time-presentation.js +2 -0
- package/dist/temporal/internal/time-presentation.js.map +1 -0
- package/dist/temporal/month-picker.d.ts +9 -7
- package/dist/temporal/month-picker.js +1 -1
- package/dist/temporal/month-picker.js.map +1 -1
- package/dist/temporal/month-range-picker.d.ts +9 -7
- package/dist/temporal/month-range-picker.js +1 -1
- package/dist/temporal/month-range-picker.js.map +1 -1
- package/dist/temporal/picker.d.ts +24 -3
- package/dist/temporal/picker.js +1 -1
- package/dist/temporal/picker.js.map +1 -1
- package/dist/temporal/range-calendar.d.ts +125 -8
- package/dist/temporal/range-calendar.js +1 -1
- package/dist/temporal/range-calendar.js.map +1 -1
- package/dist/temporal/temporal-provider.d.ts +23 -0
- package/dist/temporal/temporal-provider.js +1 -1
- package/dist/temporal/temporal-provider.js.map +1 -1
- package/dist/temporal/time-field.d.ts +4 -1
- package/dist/temporal/time-field.js +1 -1
- package/dist/temporal/time-field.js.map +1 -1
- package/dist/temporal/time-picker.d.ts +112 -0
- package/dist/temporal/time-picker.js +2 -0
- package/dist/temporal/time-picker.js.map +1 -0
- package/dist/temporal/time-range-field.d.ts +33 -2
- package/dist/temporal/time-range-field.js +1 -1
- package/dist/temporal/time-range-field.js.map +1 -1
- package/dist/temporal/year-picker.d.ts +9 -7
- package/dist/temporal/year-picker.js +1 -1
- package/dist/temporal/year-picker.js.map +1 -1
- package/dist/temporal/year-range-picker.d.ts +9 -7
- package/dist/temporal/year-range-picker.js +1 -1
- package/dist/temporal/year-range-picker.js.map +1 -1
- package/dist/text.d.ts +43 -1
- package/dist/text.js +1 -1
- package/dist/text.js.map +1 -1
- package/dist/timer.d.ts +16 -5
- package/dist/timer.js +1 -1
- package/dist/timer.js.map +1 -1
- package/dist/toast.js +1 -1
- package/dist/toast.js.map +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/toggle-group.js.map +1 -1
- package/dist/toolbar.js +1 -1
- package/dist/toolbar.js.map +1 -1
- package/dist/transfer.d.ts +191 -0
- package/dist/transfer.js +2 -0
- package/dist/transfer.js.map +1 -0
- package/dist/tree-grid.d.ts +122 -0
- package/dist/tree-grid.js +1 -1
- package/dist/tree-grid.js.map +1 -1
- package/dist/tree-select.d.ts +186 -0
- package/dist/tree-select.js +2 -0
- package/dist/tree-select.js.map +1 -0
- package/dist/tree-view.js +1 -1
- package/dist/tree-view.js.map +1 -1
- package/dist/virtual/virtual-collection.d.ts +3 -0
- package/dist/virtual/virtual-collection.js +1 -1
- package/dist/virtual/virtual-collection.js.map +1 -1
- package/dist/virtual/virtual-core.d.ts +1 -0
- package/dist/virtual/virtual-core.js +1 -1
- package/dist/virtual/virtual-core.js.map +1 -1
- package/dist/virtual/virtual-grid.d.ts +12 -2
- package/dist/virtual/virtual-grid.js +1 -1
- package/dist/virtual/virtual-grid.js.map +1 -1
- package/dist/virtual/virtual-list.d.ts +12 -3
- package/dist/virtual/virtual-list.js +1 -1
- package/dist/virtual/virtual-list.js.map +1 -1
- package/dist/virtual/virtual-masonry.d.ts +12 -2
- package/dist/virtual/virtual-masonry.js +1 -1
- package/dist/virtual/virtual-masonry.js.map +1 -1
- package/dist/virtual/virtual-spatial.d.ts +12 -2
- package/dist/virtual/virtual-spatial.js +1 -1
- package/dist/virtual/virtual-spatial.js.map +1 -1
- package/dist/window-splitter.js +1 -1
- package/dist/window-splitter.js.map +1 -1
- package/package.json +86 -16
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DateRangePickerOptions } from '@sectile/dom/temporal/date-range-picker';
|
|
2
2
|
import type { DateRange, DateValue } from '@sectile/dom/temporal/date-field';
|
|
3
|
-
import { type PickerCellSlotProps, type PickerPartProps, type PickerRootSlotProps } from './picker.js';
|
|
3
|
+
import { type PickerRootPartComponent, type PickerCellSlotProps, type PickerMonthCellSlotProps, type PickerPartProps, type PickerRootSlotProps } from './picker.js';
|
|
4
4
|
export interface RangeCalendarRootProps extends PickerPartProps {
|
|
5
5
|
readonly modelValue?: DateRange | null;
|
|
6
6
|
readonly defaultValue?: DateRange | null;
|
|
@@ -21,8 +21,8 @@ export type RangeCalendarRootSlotProps = PickerRootSlotProps<DateRange | null>;
|
|
|
21
21
|
export type RangeCalendarValueChangeHandler = NonNullable<InstanceType<typeof RangeCalendarRoot>['$props']['onUpdate:modelValue']>;
|
|
22
22
|
export type RangeCalendarOpenChangeHandler = NonNullable<InstanceType<typeof RangeCalendarRoot>['$props']['onUpdate:open']>;
|
|
23
23
|
export type RangeCalendarHighlightedValueChangeHandler = NonNullable<InstanceType<typeof RangeCalendarRoot>['$props']['onUpdate:highlightedValue']>;
|
|
24
|
-
export declare const RangeCalendarContent:
|
|
25
|
-
export declare const RangeCalendarGrid:
|
|
24
|
+
export declare const RangeCalendarContent: PickerRootPartComponent<'date-range'>;
|
|
25
|
+
export declare const RangeCalendarGrid: PickerRootPartComponent<'date-range'>;
|
|
26
26
|
export declare const RangeCalendarCell: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
27
27
|
value: {
|
|
28
28
|
type: import("vue").PropType<DateValue>;
|
|
@@ -55,8 +55,125 @@ export declare const RangeCalendarCell: import("vue").DefineComponent<import("vu
|
|
|
55
55
|
}, import("vue").SlotsType<{
|
|
56
56
|
default: (props: PickerCellSlotProps) => import("vue").VNodeChild;
|
|
57
57
|
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
58
|
-
export declare const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
58
|
+
export declare const RangeCalendarMonthCell: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
59
|
+
value: {
|
|
60
|
+
type: import("vue").PropType<import("@sectile/temporal").CalendarMonthValue>;
|
|
61
|
+
required: true;
|
|
62
|
+
};
|
|
63
|
+
as: {
|
|
64
|
+
type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
|
|
65
|
+
default: string;
|
|
66
|
+
};
|
|
67
|
+
asChild: {
|
|
68
|
+
type: BooleanConstructor;
|
|
69
|
+
default: boolean;
|
|
70
|
+
};
|
|
71
|
+
}>, () => import("vue").VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
72
|
+
value: {
|
|
73
|
+
type: import("vue").PropType<import("@sectile/temporal").CalendarMonthValue>;
|
|
74
|
+
required: true;
|
|
75
|
+
};
|
|
76
|
+
as: {
|
|
77
|
+
type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
|
|
78
|
+
default: string;
|
|
79
|
+
};
|
|
80
|
+
asChild: {
|
|
81
|
+
type: BooleanConstructor;
|
|
82
|
+
default: boolean;
|
|
83
|
+
};
|
|
84
|
+
}>> & Readonly<{}>, {
|
|
85
|
+
as: import("../primitive.js").PrimitiveAs;
|
|
86
|
+
asChild: boolean;
|
|
87
|
+
}, import("vue").SlotsType<{
|
|
88
|
+
default: (props: PickerMonthCellSlotProps) => import("vue").VNodeChild;
|
|
89
|
+
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
90
|
+
export declare const RangeCalendarStartInput: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
91
|
+
name: {
|
|
92
|
+
type: StringConstructor;
|
|
93
|
+
default: undefined;
|
|
94
|
+
};
|
|
95
|
+
form: {
|
|
96
|
+
type: StringConstructor;
|
|
97
|
+
default: undefined;
|
|
98
|
+
};
|
|
99
|
+
as: {
|
|
100
|
+
type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
|
|
101
|
+
default: string;
|
|
102
|
+
};
|
|
103
|
+
asChild: {
|
|
104
|
+
type: BooleanConstructor;
|
|
105
|
+
default: boolean;
|
|
106
|
+
};
|
|
107
|
+
}>, () => import("vue").VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
108
|
+
name: {
|
|
109
|
+
type: StringConstructor;
|
|
110
|
+
default: undefined;
|
|
111
|
+
};
|
|
112
|
+
form: {
|
|
113
|
+
type: StringConstructor;
|
|
114
|
+
default: undefined;
|
|
115
|
+
};
|
|
116
|
+
as: {
|
|
117
|
+
type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
|
|
118
|
+
default: string;
|
|
119
|
+
};
|
|
120
|
+
asChild: {
|
|
121
|
+
type: BooleanConstructor;
|
|
122
|
+
default: boolean;
|
|
123
|
+
};
|
|
124
|
+
}>> & Readonly<{}>, {
|
|
125
|
+
name: string;
|
|
126
|
+
form: string;
|
|
127
|
+
as: import("../primitive.js").PrimitiveAs;
|
|
128
|
+
asChild: boolean;
|
|
129
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
130
|
+
export declare const RangeCalendarEndInput: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
131
|
+
name: {
|
|
132
|
+
type: StringConstructor;
|
|
133
|
+
default: undefined;
|
|
134
|
+
};
|
|
135
|
+
form: {
|
|
136
|
+
type: StringConstructor;
|
|
137
|
+
default: undefined;
|
|
138
|
+
};
|
|
139
|
+
as: {
|
|
140
|
+
type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
|
|
141
|
+
default: string;
|
|
142
|
+
};
|
|
143
|
+
asChild: {
|
|
144
|
+
type: BooleanConstructor;
|
|
145
|
+
default: boolean;
|
|
146
|
+
};
|
|
147
|
+
}>, () => import("vue").VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
148
|
+
name: {
|
|
149
|
+
type: StringConstructor;
|
|
150
|
+
default: undefined;
|
|
151
|
+
};
|
|
152
|
+
form: {
|
|
153
|
+
type: StringConstructor;
|
|
154
|
+
default: undefined;
|
|
155
|
+
};
|
|
156
|
+
as: {
|
|
157
|
+
type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
|
|
158
|
+
default: string;
|
|
159
|
+
};
|
|
160
|
+
asChild: {
|
|
161
|
+
type: BooleanConstructor;
|
|
162
|
+
default: boolean;
|
|
163
|
+
};
|
|
164
|
+
}>> & Readonly<{}>, {
|
|
165
|
+
name: string;
|
|
166
|
+
form: string;
|
|
167
|
+
as: import("../primitive.js").PrimitiveAs;
|
|
168
|
+
asChild: boolean;
|
|
169
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
170
|
+
export declare const RangeCalendarPreviousWeek: PickerRootPartComponent<'date-range'>;
|
|
171
|
+
export declare const RangeCalendarNextWeek: PickerRootPartComponent<'date-range'>;
|
|
172
|
+
export declare const RangeCalendarPreviousMonth: PickerRootPartComponent<'date-range'>;
|
|
173
|
+
export declare const RangeCalendarNextMonth: PickerRootPartComponent<'date-range'>;
|
|
174
|
+
export declare const RangeCalendarPreviousYear: PickerRootPartComponent<'date-range'>;
|
|
175
|
+
export declare const RangeCalendarNextYear: PickerRootPartComponent<'date-range'>;
|
|
176
|
+
export declare const RangeCalendarWeekViewTrigger: PickerRootPartComponent<'date-range'>;
|
|
177
|
+
export declare const RangeCalendarMonthViewTrigger: PickerRootPartComponent<'date-range'>;
|
|
178
|
+
export declare const RangeCalendarYearViewTrigger: PickerRootPartComponent<'date-range'>;
|
|
179
|
+
export type { DateRange, DateValue, PickerCellSlotProps as RangeCalendarCellSlotProps, PickerMonthCellSlotProps as RangeCalendarMonthCellSlotProps, PickerPartProps as RangeCalendarPartProps, };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{PickerCell,PickerContent,PickerGrid,createPickerMove,createPickerRoot,
|
|
1
|
+
import{PickerCell,PickerMonthCell,PickerContent,PickerGrid,createPickerInput,createPickerMove,createPickerRoot,createPickerViewTrigger}from'./picker.js';import{rangeCalendarCapability}from'./capabilities/range-calendar.js';export const RangeCalendarRoot=/* @__PURE__ */createPickerRoot(rangeCalendarCapability,'SectileRangeCalendarRoot',{scope:'range-calendar',defaultOpen:true,defaultView:'month',inline:true});export const RangeCalendarContent=PickerContent;export const RangeCalendarGrid=PickerGrid;export const RangeCalendarCell=PickerCell;export const RangeCalendarMonthCell=PickerMonthCell;export const RangeCalendarStartInput=/* @__PURE__ */createPickerInput('start-input','SectileRangeCalendarStartInput','hidden');export const RangeCalendarEndInput=/* @__PURE__ */createPickerInput('end-input','SectileRangeCalendarEndInput','hidden');export const RangeCalendarPreviousWeek=/* @__PURE__ */createPickerMove('week',-1,'SectileRangeCalendarPreviousWeek');export const RangeCalendarNextWeek=/* @__PURE__ */createPickerMove('week',1,'SectileRangeCalendarNextWeek');export const RangeCalendarPreviousMonth=/* @__PURE__ */createPickerMove('month',-1,'SectileRangeCalendarPreviousMonth');export const RangeCalendarNextMonth=/* @__PURE__ */createPickerMove('month',1,'SectileRangeCalendarNextMonth');export const RangeCalendarPreviousYear=/* @__PURE__ */createPickerMove('year',-1,'SectileRangeCalendarPreviousYear');export const RangeCalendarNextYear=/* @__PURE__ */createPickerMove('year',1,'SectileRangeCalendarNextYear');export const RangeCalendarWeekViewTrigger=/* @__PURE__ */createPickerViewTrigger('week','SectileRangeCalendarWeekViewTrigger');export const RangeCalendarMonthViewTrigger=/* @__PURE__ */createPickerViewTrigger('month','SectileRangeCalendarMonthViewTrigger');export const RangeCalendarYearViewTrigger=/* @__PURE__ */createPickerViewTrigger('year','SectileRangeCalendarYearViewTrigger');
|
|
2
2
|
//# sourceMappingURL=range-calendar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range-calendar.js","names":["PickerCell","PickerContent","PickerGrid","createPickerMove","createPickerRoot","
|
|
1
|
+
{"version":3,"file":"range-calendar.js","names":["PickerCell","PickerMonthCell","PickerContent","PickerGrid","createPickerInput","createPickerMove","createPickerRoot","createPickerViewTrigger","rangeCalendarCapability","RangeCalendarRoot","scope","defaultOpen","defaultView","inline","RangeCalendarContent","RangeCalendarGrid","RangeCalendarCell","RangeCalendarMonthCell","RangeCalendarStartInput","RangeCalendarEndInput","RangeCalendarPreviousWeek","RangeCalendarNextWeek","RangeCalendarPreviousMonth","RangeCalendarNextMonth","RangeCalendarPreviousYear","RangeCalendarNextYear","RangeCalendarWeekViewTrigger","RangeCalendarMonthViewTrigger","RangeCalendarYearViewTrigger"],"sources":["../../src/temporal/range-calendar.ts"],"mappings":"OAGEA,WAAYC,gBAAiBC,cAAeC,WAAYC,kBAAmBC,iBAAkBC,iBAAkBC,4BAE1G,qBACEC,4BAA+B,0CAiBjC,MAAMC,iCAAoCH,iBAAiBE,wBAAyB,2BAA4B,CACrHE,MAAO,iBACPC,YAAa,KACbC,YAAa,QACbC,OAAQ,cAMH,MAAMC,qBAAuBZ,qBAC7B,MAAMa,kBAAoBZ,kBAC1B,MAAMa,kBAAoBhB,kBAC1B,MAAMiB,uBAAyBhB,uBAC/B,MAAMiB,uCAA0Cd,kBAAkB,cAAe,iCAAkC,iBACnH,MAAMe,qCAAwCf,kBAAkB,YAAa,+BAAgC,iBAC7G,MAAMgB,yCAA4Cf,iBAAiB,QAAS,EAAG,2CAC/E,MAAMgB,qCAAwChB,iBAAiB,OAAQ,EAAG,uCAC1E,MAAMiB,0CAA6CjB,iBAAiB,SAAU,EAAG,4CACjF,MAAMkB,sCAAyClB,iBAAiB,QAAS,EAAG,wCAC5E,MAAMmB,yCAA4CnB,iBAAiB,QAAS,EAAG,2CAC/E,MAAMoB,qCAAwCpB,iBAAiB,OAAQ,EAAG,uCAC1E,MAAMqB,4CAA+CnB,wBAAwB,OAAQ,8CACrF,MAAMoB,6CAAgDpB,wBAAwB,QAAS,+CACvF,MAAMqB,4CAA+CrB,wBAAwB,OAAQ","ignoreList":[]}
|
|
@@ -1,21 +1,44 @@
|
|
|
1
1
|
import { type ComputedRef, type PropType, type SlotsType, type VNodeChild } from 'vue';
|
|
2
2
|
import type { DateValue } from '@sectile/dom/temporal/date-field';
|
|
3
|
+
import { type TemporalFormatter, type TemporalFormatterOptions } from '@sectile/dom/temporal/format';
|
|
4
|
+
export type { TemporalFormatter, TemporalFormatterOptions } from '@sectile/dom/temporal/format';
|
|
3
5
|
export interface TemporalProviderProps {
|
|
4
6
|
readonly referenceDate?: DateValue;
|
|
7
|
+
readonly referenceInstant?: number;
|
|
8
|
+
readonly formatting?: TemporalFormatterOptions;
|
|
5
9
|
}
|
|
6
10
|
export declare const TemporalProvider: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
7
11
|
referenceDate: {
|
|
8
12
|
type: PropType<DateValue>;
|
|
9
13
|
default: undefined;
|
|
10
14
|
};
|
|
15
|
+
referenceInstant: {
|
|
16
|
+
type: NumberConstructor;
|
|
17
|
+
default: undefined;
|
|
18
|
+
};
|
|
19
|
+
formatting: {
|
|
20
|
+
type: PropType<TemporalFormatterOptions>;
|
|
21
|
+
default: undefined;
|
|
22
|
+
};
|
|
11
23
|
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
12
24
|
referenceDate: {
|
|
13
25
|
type: PropType<DateValue>;
|
|
14
26
|
default: undefined;
|
|
15
27
|
};
|
|
28
|
+
referenceInstant: {
|
|
29
|
+
type: NumberConstructor;
|
|
30
|
+
default: undefined;
|
|
31
|
+
};
|
|
32
|
+
formatting: {
|
|
33
|
+
type: PropType<TemporalFormatterOptions>;
|
|
34
|
+
default: undefined;
|
|
35
|
+
};
|
|
16
36
|
}>> & Readonly<{}>, {
|
|
17
37
|
referenceDate: DateValue;
|
|
38
|
+
referenceInstant: number;
|
|
39
|
+
formatting: TemporalFormatterOptions;
|
|
18
40
|
}, SlotsType<{
|
|
19
41
|
default: () => VNodeChild;
|
|
20
42
|
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
21
43
|
export declare function useTemporalReferenceDate(): ComputedRef<DateValue>;
|
|
44
|
+
export declare function useTemporalFormatter(): ComputedRef<TemporalFormatter | undefined>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Fragment,computed,defineComponent,h,inject,provide}from
|
|
1
|
+
import{Fragment,computed,defineComponent,h,inject,provide}from'vue';import{unwrap}from'@sectile/core/result';import{createTemporalFormatter}from'@sectile/dom/temporal/format';const temporalContextKey=Symbol('SectileTemporal');export const TemporalProvider=/* @__PURE__ */defineComponent({name:'SectileTemporalProvider',inheritAttrs:false,props:{referenceDate:{type:Object,default:undefined},referenceInstant:{type:Number,default:undefined},formatting:{type:Object,default:undefined}},slots:Object,setup(props,{slots}){const parent=inject(temporalContextKey,undefined);let fallbackInstant=props.referenceDate===undefined&&props.referenceInstant===undefined&&parent===undefined?Date.now():undefined;const formatter=computed(()=>props.formatting===undefined?parent?.formatter.value:createTemporalFormatter(props.formatting));const referenceInstant=computed(()=>props.referenceDate!==undefined?undefined:props.referenceInstant??parent?.referenceInstant.value);const referenceDate=computed(()=>{if(props.referenceDate!==undefined)return props.referenceDate;const instant=referenceInstant.value;const format=formatter.value;if(instant!==undefined){if(format===undefined)throw new TypeError('TemporalProvider referenceInstant requires formatting in this provider or an ancestor.');return unwrap(format.dateAt(instant))}if(parent!==undefined)return parent.referenceDate.value;fallbackInstant??=Date.now();return format===undefined?currentReferenceDate(new Date(fallbackInstant)):unwrap(format.dateAt(fallbackInstant))});void formatter.value;void referenceDate.value;provide(temporalContextKey,{referenceDate,referenceInstant,formatter});return()=>h(Fragment,null,slots['default']?.()??[])}});export function useTemporalReferenceDate(){const context=inject(temporalContextKey,undefined);if(context!==undefined)return context.referenceDate;const fallback=currentReferenceDate();return computed(()=>fallback)}export function useTemporalFormatter(){const context=inject(temporalContextKey,undefined);return context?.formatter??computed(()=>undefined)}function currentReferenceDate(now=new Date){return Object.freeze({year:now.getFullYear(),month:now.getMonth()+1,day:now.getDate()})}
|
|
2
2
|
//# sourceMappingURL=temporal-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/temporal/temporal-provider.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"temporal-provider.js","names":["Fragment","computed","defineComponent","h","inject","provide","unwrap","createTemporalFormatter","temporalContextKey","Symbol","TemporalProvider","name","inheritAttrs","props","referenceDate","type","Object","default","undefined","referenceInstant","Number","formatting","slots","setup","parent","fallbackInstant","Date","now","formatter","value","instant","format","TypeError","dateAt","currentReferenceDate","useTemporalReferenceDate","context","fallback","useTemporalFormatter","freeze","year","getFullYear","month","getMonth","day","getDate"],"sources":["../../src/temporal/temporal-provider.ts"],"mappings":"OACEA,SACAC,SACAC,gBACAC,EACAC,OACAC,YAMK,aAEEC,WAAc,8BACdC,4BAAsF,+BAgB/F,MAAMC,mBAAqBC,OAAO,0BAE3B,MAAMC,gCAAmCR,gBAAgB,CAC9DS,KAAM,0BACNC,aAAc,MACdC,MAAO,CACLC,cAAe,CAAEC,KAAMC,OAA+BC,QAASC,WAC/DC,iBAAkB,CAAEJ,KAAMK,OAAQH,QAASC,WAC3CG,WAAY,CAAEN,KAAMC,OAA8CC,QAASC,YAE7EI,MAAON,OACP,KAAAO,CAAMV,OAAOS,QACX,MAAME,OAASpB,OAAoCI,mBAAoBU,WACvE,IAAIO,gBAAkBZ,MAAMC,gBAAkBI,WAAaL,MAAMM,mBAAqBD,WAAaM,SAAWN,UAAYQ,KAAKC,MAAQT,UACvI,MAAMU,UAAY3B,SAAS,IAAMY,MAAMQ,aAAeH,UAAYM,QAAQI,UAAUC,MAAQtB,wBAAwBM,MAAMQ,aAC1H,MAAMF,iBAAmBlB,SAAS,IAAMY,MAAMC,gBAAkBI,UAAYA,UAAYL,MAAMM,kBAAoBK,QAAQL,iBAAiBU,OAC3I,MAAMf,cAAgBb,SAAS,KAC7B,GAAIY,MAAMC,gBAAkBI,UAAW,OAAOL,MAAMC,cACpD,MAAMgB,QAAUX,iBAAiBU,MACjC,MAAME,OAASH,UAAUC,MACzB,GAAIC,UAAYZ,UAAW,CACzB,GAAIa,SAAWb,UAAW,MAAM,IAAIc,UAAU,0FAC9C,OAAO1B,OAAOyB,OAAOE,OAAOH,SAC9B,CACA,GAAIN,SAAWN,UAAW,OAAOM,OAAOV,cAAce,MACtDJ,kBAAoBC,KAAKC,MACzB,OAAOI,SAAWb,UAAYgB,qBAAqB,IAAIR,KAAKD,kBAAoBnB,OAAOyB,OAAOE,OAAOR,yBAGlGG,UAAUC,WACVf,cAAce,MACnBxB,QAAyBG,mBAAoB,CAAEM,cAAeK,iBAAkBS,YAChF,MAAO,IAAkBzB,EAAEH,SAAuB,KAAMsB,MAAM,gBAAkB,GAClF,WAGI,SAAUa,2BACd,MAAMC,QAAUhC,OAAoCI,mBAAoBU,WACxE,GAAIkB,UAAYlB,UAAW,OAAOkB,QAAQtB,cAC1C,MAAMuB,SAAWH,uBACjB,OAAOjC,SAAS,IAAMoC,SACxB,QAEM,SAAUC,uBACd,MAAMF,QAAUhC,OAAoCI,mBAAoBU,WACxE,OAAOkB,SAASR,WAAa3B,SAAS,IAAMiB,UAC9C,CAEA,SAASgB,qBAAqBP,IAAY,IAAID,MAC5C,OAAOV,OAAOuB,OAAO,CACnBC,KAAMb,IAAIc,cACVC,MAAOf,IAAIgB,WAAa,EACxBC,IAAKjB,IAAIkB,WAEb","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type TimeFieldPrecision } from '@sectile/temporal/time-field';
|
|
1
2
|
import { type TimeFieldOptions } from '@sectile/dom/temporal/time-field';
|
|
2
3
|
export type TimeValue = NonNullable<TimeFieldOptions['value']>;
|
|
3
4
|
export interface TimeFieldProps {
|
|
@@ -9,6 +10,8 @@ export interface TimeFieldProps {
|
|
|
9
10
|
readonly required?: boolean;
|
|
10
11
|
readonly label?: string;
|
|
11
12
|
readonly native?: boolean;
|
|
13
|
+
/** Custom editing precision; Provider defaults to lossless milliseconds. Native mode retains ISO behavior. */
|
|
14
|
+
readonly precision?: TimeFieldPrecision;
|
|
12
15
|
}
|
|
13
|
-
export declare const TimeField: import("vue").DefineComponent<import("../input/native-field.js").NativeFieldPublicProps<import("@sectile/
|
|
16
|
+
export declare const TimeField: import("vue").DefineComponent<import("../input/native-field.js").NativeFieldPublicProps<import("@sectile/temporal/time-field").TimeValue, import("@sectile/temporal/time-field").TimeFieldPolicies> & Pick<TimeFieldProps, "precision">>;
|
|
14
17
|
export type TimeFieldValueChangeHandler = (value: TimeValue | null) => void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{}from
|
|
1
|
+
import{}from'vue';import{unwrap}from'@sectile/core/result';import{createTimeFieldState,formatTimeFieldValue,reformatTimeFieldState}from'@sectile/temporal/time-field';import{createTimeField,formatTimeValue,getTimeFieldPlaceholder}from'@sectile/dom/temporal/time-field';import{createNativeFieldComponent}from'../input/native-field.js';import{useTimePresentation}from'./internal/time-presentation.js';function rebase(value,inputState,previousFormat,format){return unwrap(reformatTimeFieldState(createTimeFieldState(value,inputState,previousFormat),format)).inputState}export const TimeField=/* @__PURE__ */createNativeFieldComponent({name:'SectileTimeField',scope:'time-field',inputMode:'numeric',nativeInputType:'time',placeholder:'HH:mm',formatValue:formatTimeValue,valueType:Object,create:createTimeField,commitValue:(connection,value)=>connection.handleEvent({type:'set-value',value}),presentationProps:{precision:{type:String,default:undefined}},rebase:(value,inputState,previousFormat)=>rebase(value,inputState,previousFormat),usePresentation(props){return useTimePresentation(props,format=>({format,inputMode:format.dayPeriods===undefined?'numeric':'text',placeholder:getTimeFieldPlaceholder(format),formatValue:value=>formatTimeFieldValue(value,format),create:options=>createTimeField({...options,format}),rebase:(value,inputState,previousFormat)=>rebase(value,inputState,previousFormat,format)}))}});
|
|
2
2
|
//# sourceMappingURL=time-field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/temporal/time-field.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"time-field.js","names":["unwrap","createTimeFieldState","formatTimeFieldValue","reformatTimeFieldState","createTimeField","formatTimeValue","getTimeFieldPlaceholder","createNativeFieldComponent","useTimePresentation","rebase","value","inputState","previousFormat","format","TimeField","name","scope","inputMode","nativeInputType","placeholder","formatValue","valueType","Object","create","commitValue","connection","handleEvent","type","presentationProps","precision","String","default","undefined","usePresentation","props","dayPeriods","options"],"sources":["../../src/temporal/time-field.ts"],"mappings":"YAA8B,aACrBA,WAAc,8BACdC,qBAAsBC,qBAAsBC,2BAA6E,sCAEhIC,gBACAC,gBACAC,4BAGK,0CACEC,+BAAgE,kCAChEC,wBAA2B,kCAkBpC,SAASC,OAAOC,MAAyBC,WAAwDC,eAA6CC,QAC5I,OAAOb,OAAOG,uBAAuBF,qBAAqBS,MAAOC,WAAYC,gBAAiBC,SAASF,UACzG,QAEO,MAAMG,yBAA4BP,2BAA6G,CACpJQ,KAAM,mBACNC,MAAO,aACPC,UAAW,UACXC,gBAAiB,OACjBC,YAAa,QACbC,YAAaf,gBACbgB,UAAWC,OACXC,OAAQnB,gBACRoB,YAAa,CAACC,WAAYf,QAAWe,WAAmCC,YAAY,CAAEC,KAAM,YAAajB,QACzGkB,kBAAmB,CAAEC,UAAW,CAAEF,KAAMG,OAAwCC,QAASC,YACzFvB,OAAQ,CAACC,MAAOC,WAAYC,iBAAmBH,OAAOC,MAAOC,WAAYC,gBACzE,eAAAqB,CAAgBC,OACd,OAAO1B,oBAA4F0B,MAAOrB,SACjG,CAAEA,OAAQI,UAAWJ,OAAOsB,aAAeH,UAAY,UAAY,OAAQb,YAAab,wBAAwBO,QACrHO,YAAcV,OAAqBR,qBAAqBQ,MAAOG,QAASU,OAAQa,SAAWhC,gBAAgB,IAAKgC,QAASvB,SACzHJ,OAAQ,CAACC,MAAOC,WAAYC,iBAAmBH,OAAOC,MAAOC,WAAYC,eAAgBC,UAE/F","ignoreList":[]}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { type DefineSetupFnComponent, type EmitsToProps, type PublicProps, type SlotsType, type VNodeChild } from 'vue';
|
|
2
|
+
import { type TimePickerChoice, type TimePickerColumn as ChoiceColumn } from '@sectile/temporal/time-picker';
|
|
3
|
+
import { type TimeFieldFormatPart, type TimeFieldPolicies, type TimeFieldPrecision, type TimeValue } from '@sectile/temporal/time-field';
|
|
4
|
+
import type { InteractOutsideEvent, PopupCloseReason } from '@sectile/dom/popover';
|
|
5
|
+
import { type PopoverRootProps, type PopoverRootSlotProps, type PopoverPartProps } from '../overlay/popover.js';
|
|
6
|
+
import { type PrimitiveAs } from '../primitive.js';
|
|
7
|
+
export type TimePickerPart = TimeFieldFormatPart;
|
|
8
|
+
export type TimePickerColumnState = ChoiceColumn;
|
|
9
|
+
export type { TimeValue, TimePickerChoice };
|
|
10
|
+
export interface TimePickerRootProps extends Omit<PopoverRootProps, 'disabled'> {
|
|
11
|
+
readonly modelValue?: TimeValue | null;
|
|
12
|
+
readonly defaultValue?: TimeValue | null;
|
|
13
|
+
readonly policies?: TimeFieldPolicies;
|
|
14
|
+
readonly precision?: TimeFieldPrecision;
|
|
15
|
+
readonly name?: string | undefined;
|
|
16
|
+
readonly form?: string | undefined;
|
|
17
|
+
readonly disabled?: boolean | undefined;
|
|
18
|
+
readonly readonly?: boolean | undefined;
|
|
19
|
+
readonly required?: boolean | undefined;
|
|
20
|
+
readonly as?: PrimitiveAs;
|
|
21
|
+
readonly asChild?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface TimePickerExpose {
|
|
24
|
+
readonly element: HTMLInputElement | null;
|
|
25
|
+
focus(options?: FocusOptions): void;
|
|
26
|
+
select(): void;
|
|
27
|
+
requestClose(): void;
|
|
28
|
+
selectChoice(part: TimePickerPart, choice: number): boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface TimePickerRootSlotProps extends Omit<PopoverRootSlotProps, 'disabled'> {
|
|
31
|
+
readonly value: TimeValue | null;
|
|
32
|
+
readonly parts: readonly TimePickerPart[];
|
|
33
|
+
readonly disabled: boolean;
|
|
34
|
+
readonly readonly: boolean;
|
|
35
|
+
readonly required: boolean;
|
|
36
|
+
readonly composing: boolean;
|
|
37
|
+
readonly selectChoice: TimePickerExpose['selectChoice'];
|
|
38
|
+
}
|
|
39
|
+
export type TimePickerRootSlots = {
|
|
40
|
+
default: (state: TimePickerRootSlotProps) => VNodeChild;
|
|
41
|
+
};
|
|
42
|
+
export type TimePickerRootEmits = {
|
|
43
|
+
'update:modelValue': [value: TimeValue | null];
|
|
44
|
+
'update:open': [open: boolean];
|
|
45
|
+
closeRequest: [reason: PopupCloseReason];
|
|
46
|
+
afterClose: [];
|
|
47
|
+
interactOutside: [event: InteractOutsideEvent];
|
|
48
|
+
};
|
|
49
|
+
export interface TimePickerInputProps {
|
|
50
|
+
readonly label?: string;
|
|
51
|
+
}
|
|
52
|
+
export type TimePickerInputExpose = Pick<TimePickerExpose, 'element' | 'focus' | 'select'>;
|
|
53
|
+
export interface TimePickerContentSlotProps {
|
|
54
|
+
readonly value: TimeValue | null;
|
|
55
|
+
readonly columns: readonly TimePickerColumnState[];
|
|
56
|
+
readonly disabled: boolean;
|
|
57
|
+
readonly readonly: boolean;
|
|
58
|
+
readonly composing: boolean;
|
|
59
|
+
}
|
|
60
|
+
export type TimePickerContentSlots = {
|
|
61
|
+
default: (state: TimePickerContentSlotProps) => VNodeChild;
|
|
62
|
+
};
|
|
63
|
+
export interface TimePickerColumnProps extends PopoverPartProps {
|
|
64
|
+
readonly part: TimePickerPart;
|
|
65
|
+
readonly label: string;
|
|
66
|
+
/** IDs of currently rendered choices; selection still uses the full column. */
|
|
67
|
+
readonly renderedChoices?: readonly number[] | undefined;
|
|
68
|
+
}
|
|
69
|
+
export interface TimePickerColumnSlotProps {
|
|
70
|
+
readonly part: TimePickerPart;
|
|
71
|
+
readonly choices: readonly TimePickerChoice[];
|
|
72
|
+
readonly selected: number | null;
|
|
73
|
+
readonly highlighted: number | null;
|
|
74
|
+
readonly disabled: boolean;
|
|
75
|
+
readonly readonly: boolean;
|
|
76
|
+
}
|
|
77
|
+
export type TimePickerColumnSlots = {
|
|
78
|
+
default: (state: TimePickerColumnSlotProps) => VNodeChild;
|
|
79
|
+
};
|
|
80
|
+
export type TimePickerColumnEmits = {
|
|
81
|
+
highlight: [choice: number | null];
|
|
82
|
+
activate: [choice: number];
|
|
83
|
+
};
|
|
84
|
+
export interface TimePickerItemProps extends PopoverPartProps {
|
|
85
|
+
readonly value: number;
|
|
86
|
+
}
|
|
87
|
+
export interface TimePickerItemSlotProps {
|
|
88
|
+
readonly choice: TimePickerChoice;
|
|
89
|
+
readonly selected: boolean;
|
|
90
|
+
readonly highlighted: boolean;
|
|
91
|
+
readonly disabled: boolean;
|
|
92
|
+
}
|
|
93
|
+
export type TimePickerItemSlots = {
|
|
94
|
+
default: (state: TimePickerItemSlotProps) => VNodeChild;
|
|
95
|
+
};
|
|
96
|
+
type RootProps = TimePickerRootProps & PublicProps & EmitsToProps<TimePickerRootEmits>;
|
|
97
|
+
type RootInstance = InstanceType<DefineSetupFnComponent<TimePickerRootProps, TimePickerRootEmits, SlotsType<TimePickerRootSlots>>> & TimePickerExpose;
|
|
98
|
+
export declare const TimePickerRoot: new (props: RootProps) => Omit<RootInstance, '$props'> & {
|
|
99
|
+
readonly $props: RootProps;
|
|
100
|
+
};
|
|
101
|
+
type InputInstance = InstanceType<DefineSetupFnComponent<TimePickerInputProps>> & TimePickerInputExpose;
|
|
102
|
+
export declare const TimePickerInput: new (props: TimePickerInputProps & PublicProps) => Omit<InputInstance, '$props'> & {
|
|
103
|
+
readonly $props: TimePickerInputProps & PublicProps;
|
|
104
|
+
};
|
|
105
|
+
export declare const TimePickerContent: DefineSetupFnComponent<import("../overlay/popup.js").PopupPartProps, {}, SlotsType<TimePickerContentSlots>, import("../overlay/popup.js").PopupPartProps & {}, PublicProps>;
|
|
106
|
+
export declare const TimePickerColumn: DefineSetupFnComponent<TimePickerColumnProps, TimePickerColumnEmits, SlotsType<TimePickerColumnSlots>, TimePickerColumnProps & {
|
|
107
|
+
onActivate?: (choice: number) => any;
|
|
108
|
+
onHighlight?: (choice: number | null) => any;
|
|
109
|
+
}, PublicProps>;
|
|
110
|
+
export declare const TimePickerItem: DefineSetupFnComponent<TimePickerItemProps, {}, SlotsType<TimePickerItemSlots>, TimePickerItemProps & {}, PublicProps>;
|
|
111
|
+
export { PopoverTrigger as TimePickerTrigger, PopoverAnchor as TimePickerAnchor, PopoverPortal as TimePickerPortal, PopoverTitle as TimePickerTitle, PopoverDescription as TimePickerDescription, PopoverClose as TimePickerClose, } from '../overlay/popover.js';
|
|
112
|
+
export type { PopoverPartProps as TimePickerPartProps, PopoverPortalProps as TimePickerPortalProps } from '../overlay/popover.js';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,provide,shallowRef}from'vue';import{unwrap}from'@sectile/core/result';import{createTimePicker}from'@sectile/temporal/time-picker';import{tryCreateTimeFieldState}from'@sectile/temporal/time-field';import{createComponentHandle}from'../component-handle.js';import{provideFormBoundary}from'../form/context.js';import{hiddenInputSubmissionCapabilities,provideFormControlReset,useFormFieldDefaults,useFormMetadataPresence,useFormSubmissionProps}from'../form/control.js';import{useHostActive}from'../host-provider.js';import{provideNativeFieldValueControl}from'../input/native-field.js';import{sameIDs}from'../internal/collection.js';import{useControlledStateInvariant}from'../internal/controlled-state.js';import{ListboxRoot,ListboxItem}from'../listbox.js';import{PopoverRoot,PopoverContent}from'../overlay/popover.js';import{Primitive}from'../primitive.js';import{TimeField}from'./time-field.js';import{useTimePresentation}from'./internal/time-presentation.js';const pickerKey=Symbol('SectileTimePicker');const columnKey=Symbol('SectileTimePickerColumn');const emptyIDs=Object.freeze([]);function usePicker(){const context=inject(pickerKey,undefined);if(context===undefined)throw new TypeError('TimePicker parts require TimePickerRoot.');return context}function projectView(current){return{get element(){return current()?.input?.element??null},focus(options){current()?.input?.element?.focus(options)},select(){current()?.input?.element?.select()},requestClose(){current()?.popup?.requestClose()},selectChoice(part,choice){return current()?.selectChoice(part,choice)??false}}}function inputView(view){return{get element(){return view.element},focus:view.focus,select:view.select}}function columnMetadata(model){return Object.freeze(unwrap(model.resolve(null)).columns.map(column=>{const labels=column.choices.map(choice=>choice.label);return Object.freeze({part:column.part,items:Object.freeze(column.choices.map(choice=>String(choice.id))),textValue:id=>labels[Number(id)]??id})}))}function createTimePickerRoot(){const popupProps=PopoverRoot.props;const popupKeys=Object.keys(popupProps);return defineComponent((props,{attrs,slots,emit,expose})=>{const controlled=useControlledStateInvariant('TimePickerRoot','modelValue',()=>props.modelValue);const active=useHostActive(),inherited=useFormFieldDefaults(),explicit=useFormMetadataPresence();const presentation=useTimePresentation(props,format=>format);const minimum=computed(()=>props.policies?.min),maximum=computed(()=>props.policies?.max);const model=computed(()=>createTimePicker({...presentation.value===undefined?{}:{format:presentation.value},...minimum.value===undefined?{}:{min:minimum.value},...maximum.value===undefined?{}:{max:maximum.value}}));const initial=unwrap(tryCreateTimeFieldState((controlled?props.modelValue:props.defaultValue)??null,undefined,model.value.format)).value;const local=shallowRef(initial);const value=computed(()=>unwrap(tryCreateTimeFieldState((controlled?props.modelValue:local.value)??null,undefined,model.value.format)).value);const effective=key=>explicit.value.includes(key)?props[key]===true:inherited?.value[key]??props[key]===true;const disabled=computed(()=>!active.value||effective('disabled'));const readonly=computed(()=>effective('readonly')),required=computed(()=>effective('required'));const input=shallowRef(null);const composing=computed(()=>input.value?.composing.value??false);const state=computed(()=>unwrap(model.value.resolve(value.value)));const metadata=computed(()=>columnMetadata(model.value));let popup=null,inputs=0,disposed=false;const handle=createComponentHandle(projectView);const publish=next=>{if(disposed||disabled.value||readonly.value||composing.value)return false;if(!controlled)local.value=next;emit('update:modelValue',next);return true};handle.set({get input(){return input.value},get popup(){return popup},selectChoice(part,choice){if(disposed||disabled.value||readonly.value||composing.value)return false;const selected=model.value.select(value.value,part,choice);if(!selected.ok)return false;return input.value===null?publish(selected.value):input.value.commit(selected.value)}});expose(handle.view);provideFormControlReset(()=>{if(!controlled&&!disposed)local.value=initial});const submission=useFormSubmissionProps({element:()=>input.value?.element??null,capabilities:hiddenInputSubmissionCapabilities});const inputProps=computed(()=>{const result={...submission.value,modelValue:value.value,policies:props.policies,precision:props.precision??'minute',disabled:disabled.value,readonly:readonly.value,required:required.value,label:props.label};for(const key of['name','form'])if(explicit.value.includes(key))result[key]=props[key];return result});provide(pickerKey,{value,state,metadata,disabled,readonly,composing,inputProps,view:handle.view,publish,attach(control){input.value=control;return()=>{if(input.value===control)input.value=null}},registerInput(){if(inputs!==0)throw new TypeError('TimePickerRoot accepts at most one TimePickerInput.');inputs++;return()=>{inputs--;input.value=null}}});onBeforeUnmount(()=>{disposed=true;handle.release();input.value=null;popup=null});return()=>{const forwarded={};for(const key of popupKeys)if(props[key]!==undefined)forwarded[key]=props[key];return h(PopoverRoot,{...forwarded,disabled:disabled.value,unmountOnExit:props.unmountOnExit??true,ref:next=>{popup=next},'onUpdate:open':open=>{if(!disposed)emit('update:open',open)},onCloseRequest:reason=>{if(!disposed)emit('closeRequest',reason)},onAfterClose:()=>{if(!disposed)emit('afterClose')},onInteractOutside:event=>{if(!disposed)emit('interactOutside',event)}},{default:popupState=>h(Primitive,mergeProps(attrs,{as:props.as??'div',asChild:props.asChild??false,role:'group','aria-label':props.label,'data-scope':'time-picker','data-part':'root'}),{default:()=>slots.default?.({...popupState,value:value.value,parts:model.value.format.order,disabled:disabled.value,readonly:readonly.value,required:required.value,composing:composing.value,selectChoice:handle.view.selectChoice})})})}},{name:'SectileTimePickerRoot',inheritAttrs:false,props:{...popupProps,modelValue:{type:Object,default:undefined},defaultValue:{type:Object,default:null},policies:{type:Object,default:undefined},precision:{type:String,default:'minute'},name:{type:String,default:undefined},form:{type:String,default:undefined},disabled:{type:Boolean,default:undefined},readonly:{type:Boolean,default:undefined},required:{type:Boolean,default:undefined},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false},unmountOnExit:{type:Boolean,default:true}},emits:['update:modelValue','update:open','closeRequest','afterClose','interactOutside']})}const Root=/* @__PURE__ */createTimePickerRoot();export const TimePickerRoot=Root;const Input=/* @__PURE__ */defineComponent((props,{attrs,expose})=>{const context=usePicker();const unregister=context.registerInput();onBeforeUnmount(unregister);provideNativeFieldValueControl(context.attach);expose(inputView(context.view));return()=>h(TimeField,mergeProps(attrs,context.inputProps.value,{...props.label===undefined?{}:{label:props.label},'onUpdate:modelValue':context.publish}))},{name:'SectileTimePickerInput',inheritAttrs:false,props:{label:{type:String,default:undefined}}});export const TimePickerInput=Input;export const TimePickerContent=/* @__PURE__ */defineComponent((props,{attrs,slots})=>{const context=usePicker();provideFormBoundary();return()=>h(PopoverContent,mergeProps(attrs,{...props}),{default:()=>slots.default?.({value:context.value.value,columns:context.state.value.columns,disabled:context.disabled.value,readonly:context.readonly.value,composing:context.composing.value})})},{name:'SectileTimePickerContent',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}}});export const TimePickerColumn=/* @__PURE__ */defineComponent((props,{attrs,slots,emit})=>{const context=usePicker();provideFormBoundary();const column=computed(()=>{const found=context.state.value.columns.find(current=>current.part===props.part);if(found===undefined)throw new TypeError('TimePickerColumn part must be visible in the current format.');return found});const metadata=computed(()=>context.metadata.value.find(current=>current.part===props.part));const disabledItems=computed(previous=>{const next=column.value.choices.filter(choice=>choice.disabled).map(choice=>String(choice.id));return previous!==undefined&&sameIDs(previous,next)?previous:next.length===0?emptyIDs:next});const renderedItems=computed(previous=>{const next=props.renderedChoices?.map(String);return previous!==undefined&&next!==undefined&&sameIDs(previous,next)?previous:next});provide(columnKey,{column});return()=>h(ListboxRoot,{...attrs,items:metadata.value.items,textValue:metadata.value.textValue,disabledItems:disabledItems.value,renderedItems:renderedItems.value,modelValue:column.value.selected===null?'':String(column.value.selected),disabled:context.disabled.value,readonly:context.readonly.value||context.composing.value,as:props.as??'div',asChild:props.asChild??false,'aria-label':props.label,'data-scope':'time-picker','data-part':'column','data-time-part':props.part,onHighlight:id=>emit('highlight',id===null?null:Number(id)),onActivate:id=>{if(context.view.selectChoice(props.part,Number(id)))emit('activate',Number(id))}},{default:state=>slots.default?.({part:props.part,choices:column.value.choices,selected:column.value.selected,highlighted:state.highlightedValue===null?null:Number(state.highlightedValue),disabled:state.disabled,readonly:state.readonly})})},{name:'SectileTimePickerColumn',inheritAttrs:false,props:{part:{type:String,required:true},label:{type:String,required:true},renderedChoices:{type:Array,default:undefined},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},emits:['highlight','activate']});export const TimePickerItem=/* @__PURE__ */defineComponent((props,{attrs,slots})=>{const context=inject(columnKey,undefined);if(context===undefined)throw new TypeError('TimePickerItem requires TimePickerColumn.');return()=>{const choice=context.column.value.choices[props.value];if(choice===undefined)throw new TypeError('TimePickerItem value must be a choice ID from its column.');return h(ListboxItem,{...attrs,value:String(choice.id),as:props.as??'div',asChild:props.asChild??false,'data-scope':'time-picker','data-part':'item'},{default:state=>slots.default?.({choice,selected:state.selected,highlighted:state.highlighted,disabled:state.disabled})??choice.label})}},{name:'SectileTimePickerItem',inheritAttrs:false,props:{value:{type:Number,required:true},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}}});export{PopoverTrigger as TimePickerTrigger,PopoverAnchor as TimePickerAnchor,PopoverPortal as TimePickerPortal,PopoverTitle as TimePickerTitle,PopoverDescription as TimePickerDescription,PopoverClose as TimePickerClose}from'../overlay/popover.js';
|
|
2
|
+
//# sourceMappingURL=time-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time-picker.js","names":["computed","defineComponent","h","inject","mergeProps","onBeforeUnmount","provide","shallowRef","unwrap","createTimePicker","tryCreateTimeFieldState","createComponentHandle","provideFormBoundary","hiddenInputSubmissionCapabilities","provideFormControlReset","useFormFieldDefaults","useFormMetadataPresence","useFormSubmissionProps","useHostActive","provideNativeFieldValueControl","sameIDs","useControlledStateInvariant","ListboxRoot","ListboxItem","PopoverRoot","PopoverContent","Primitive","TimeField","useTimePresentation","pickerKey","Symbol","columnKey","emptyIDs","Object","freeze","usePicker","context","undefined","TypeError","projectView","current","element","input","focus","options","select","requestClose","popup","selectChoice","part","choice","inputView","view","columnMetadata","model","resolve","columns","map","column","labels","choices","label","items","String","id","textValue","Number","createTimePickerRoot","popupProps","props","popupKeys","keys","attrs","slots","emit","expose","controlled","modelValue","active","inherited","explicit","presentation","format","minimum","policies","min","maximum","max","value","initial","defaultValue","local","effective","key","includes","disabled","readonly","required","composing","state","metadata","inputs","disposed","handle","publish","next","set","selected","ok","commit","submission","capabilities","inputProps","result","precision","attach","control","registerInput","release","forwarded","unmountOnExit","ref","open","onCloseRequest","reason","onAfterClose","onInteractOutside","event","default","popupState","as","asChild","role","parts","order","name","inheritAttrs","type","form","Boolean","Function","emits","Root","TimePickerRoot","Input","unregister","TimePickerInput","TimePickerContent","TimePickerColumn","found","find","disabledItems","previous","filter","length","renderedItems","renderedChoices","onHighlight","onActivate","highlighted","highlightedValue","Array","TimePickerItem","PopoverTrigger","PopoverAnchor","PopoverPortal","PopoverTitle","PopoverDescription","PopoverClose"],"sources":["../../src/temporal/time-picker.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { type PropType, type SlotsType, type VNodeChild } from 'vue';
|
|
2
2
|
import { type TimeRangeFieldPolicies } from '@sectile/dom/temporal/time-range-field';
|
|
3
|
-
import type
|
|
4
|
-
import {
|
|
3
|
+
import { type TimeRange } from '@sectile/temporal/time-range-field';
|
|
4
|
+
import type { TimeFieldPrecision } from '@sectile/temporal/time-field';
|
|
5
|
+
import type { PrimitiveAs } from '../primitive.js';
|
|
5
6
|
export interface TimeRangeFieldRootProps {
|
|
7
|
+
readonly name?: string | undefined;
|
|
8
|
+
readonly form?: string | undefined;
|
|
6
9
|
readonly modelValue?: TimeRange | null;
|
|
7
10
|
readonly defaultValue?: TimeRange | null;
|
|
8
11
|
readonly policies?: TimeRangeFieldPolicies;
|
|
12
|
+
readonly precision?: TimeFieldPrecision;
|
|
9
13
|
readonly disabled?: boolean;
|
|
10
14
|
readonly?: boolean;
|
|
11
15
|
readonly required?: boolean;
|
|
@@ -23,6 +27,18 @@ export interface TimeRangeFieldRootSlotProps {
|
|
|
23
27
|
readonly: boolean;
|
|
24
28
|
}
|
|
25
29
|
export declare const TimeRangeFieldRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
30
|
+
name: {
|
|
31
|
+
type: PropType<string | undefined>;
|
|
32
|
+
default: undefined;
|
|
33
|
+
};
|
|
34
|
+
form: {
|
|
35
|
+
type: PropType<string | undefined>;
|
|
36
|
+
default: undefined;
|
|
37
|
+
};
|
|
38
|
+
precision: {
|
|
39
|
+
type: PropType<TimeFieldPrecision>;
|
|
40
|
+
default: undefined;
|
|
41
|
+
};
|
|
26
42
|
modelValue: {
|
|
27
43
|
type: PropType<TimeRange | null>;
|
|
28
44
|
default: undefined;
|
|
@@ -66,6 +82,18 @@ export declare const TimeRangeFieldRoot: import("vue").DefineComponent<import("v
|
|
|
66
82
|
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
67
83
|
'update:modelValue': (_value: TimeRange | null) => boolean;
|
|
68
84
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
85
|
+
name: {
|
|
86
|
+
type: PropType<string | undefined>;
|
|
87
|
+
default: undefined;
|
|
88
|
+
};
|
|
89
|
+
form: {
|
|
90
|
+
type: PropType<string | undefined>;
|
|
91
|
+
default: undefined;
|
|
92
|
+
};
|
|
93
|
+
precision: {
|
|
94
|
+
type: PropType<TimeFieldPrecision>;
|
|
95
|
+
default: undefined;
|
|
96
|
+
};
|
|
69
97
|
modelValue: {
|
|
70
98
|
type: PropType<TimeRange | null>;
|
|
71
99
|
default: undefined;
|
|
@@ -109,6 +137,9 @@ export declare const TimeRangeFieldRoot: import("vue").DefineComponent<import("v
|
|
|
109
137
|
}>> & Readonly<{
|
|
110
138
|
"onUpdate:modelValue"?: (_value: TimeRange | null) => any;
|
|
111
139
|
}>, {
|
|
140
|
+
name: string | undefined;
|
|
141
|
+
form: string | undefined;
|
|
142
|
+
precision: TimeFieldPrecision;
|
|
112
143
|
modelValue: TimeRange | null;
|
|
113
144
|
defaultValue: TimeRange | null;
|
|
114
145
|
policies: TimeRangeFieldPolicies;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{defineComponent}from'vue';import{createTimeRangeField,tryCreateTimeRangeFieldState}from'@sectile/dom/temporal/time-range-field';import{reformatTimeRangeFieldState}from'@sectile/temporal/time-range-field';import{getTimeFieldPlaceholder}from'@sectile/dom/temporal/time-field';import{setupNativeRangeField,createNativeRangeFieldInput}from'../input/native-range-field.js';import{useTimePresentation}from'./internal/time-presentation.js';const contextKey=Symbol('SectileTimeRangeField');const config={name:'TimeRangeFieldRoot',scope:'time-range-field',contextKey,reset:true,initial:tryCreateTimeRangeFieldState,create:createTimeRangeField,rebase:(state,start,end)=>reformatTimeRangeFieldState({...state,start:{...state.start,inputState:start},end:{...state.end,inputState:end}})};export const TimeRangeFieldRoot=/* @__PURE__ */defineComponent({__sectileFormLabelMode:'labelledby',name:'SectileTimeRangeFieldRoot',inheritAttrs:false,props:{name:{type:String,default:undefined},form:{type:String,default:undefined},precision:{type:String,default:undefined},modelValue:{type:Object,default:undefined},defaultValue:{type:Object,default:null},policies:{type:Object,default:undefined},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},required:{type:Boolean,default:false},startLabel:{type:String,default:undefined},endLabel:{type:String,default:undefined},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},emits:{'update:modelValue':_value=>true},slots:Object,setup(props,context){const presentation=useTimePresentation(props,format=>({inputMode:format.dayPeriods===undefined?'numeric':'text',placeholder:getTimeFieldPlaceholder(format),initial:options=>tryCreateTimeRangeFieldState({...options,startFormat:format,endFormat:format}),create:options=>createTimeRangeField({...options,format}),rebase:(state,start,end)=>reformatTimeRangeFieldState({...state,start:{...state.start,inputState:start},end:{...state.end,inputState:end}},format)}));return setupNativeRangeField({...config,usePresentation:()=>presentation},props,context)}});export const TimeRangeFieldStartInput=/* @__PURE__ */createNativeRangeFieldInput(contextKey,'time-range-field','HH:mm','start','SectileTimeRangeFieldStartInput','TimeRangeFieldRoot');export const TimeRangeFieldEndInput=/* @__PURE__ */createNativeRangeFieldInput(contextKey,'time-range-field','HH:mm','end','SectileTimeRangeFieldEndInput','TimeRangeFieldRoot');
|
|
2
2
|
//# sourceMappingURL=time-range-field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"time-range-field.js","names":["defineComponent","createTimeRangeField","tryCreateTimeRangeFieldState","reformatTimeRangeFieldState","getTimeFieldPlaceholder","setupNativeRangeField","createNativeRangeFieldInput","useTimePresentation","contextKey","Symbol","config","name","scope","reset","initial","create","rebase","state","start","end","inputState","TimeRangeFieldRoot","__sectileFormLabelMode","inheritAttrs","props","type","String","default","undefined","form","precision","modelValue","Object","defaultValue","policies","disabled","Boolean","readonly","required","startLabel","endLabel","as","Function","asChild","emits","_value","slots","setup","context","presentation","format","inputMode","dayPeriods","placeholder","options","startFormat","endFormat","usePresentation","TimeRangeFieldStartInput","TimeRangeFieldEndInput"],"sources":["../../src/temporal/time-range-field.ts"],"mappings":"OAASA,oBAAuE,aACvEC,qBAAsBC,iCAA2F,gDACjHC,gCAAmD,4CAEnDC,4BAA+B,0CAC/BC,sBAAuBC,gCAA8F,wCACrHC,wBAA2B,kCAKpC,MAAMC,WAAaC,OAAO,yBAE1B,MAAMC,OAAyF,CAC7FC,KAAM,qBAAsBC,MAAO,mBAAoBJ,WACvDK,MAAO,KACPC,QAASZ,6BAA8Ba,OAAQd,qBAC/Ce,OAAQ,CAACC,MAAOC,MAAOC,MAAQhB,4BAA4B,IAAKc,MAAOC,MAAO,IAAKD,MAAMC,MAAOE,WAAYF,OAASC,IAAK,IAAKF,MAAME,IAAKC,WAAYD,eAGjJ,MAAME,kCAAqCrB,gBAAgB,CAChEsB,uBAAwB,aACxBX,KAAM,4BAA6BY,aAAc,MACjDC,MAAO,CAAEb,KAAM,CAAEc,KAAMC,OAAwCC,QAASC,WAAaC,KAAM,CAAEJ,KAAMC,OAAwCC,QAASC,WAAaE,UAAW,CAAEL,KAAMC,OAAwCC,QAASC,WAAaG,WAAY,CAAEN,KAAMO,OAAsCL,QAASC,WAAaK,aAAc,CAAER,KAAMO,OAAsCL,QAAS,MAAQO,SAAU,CAAET,KAAMO,OAA4CL,QAASC,WAAaO,SAAU,CAAEV,KAAMW,QAAST,QAAS,OAASU,SAAU,CAAEZ,KAAMW,QAAST,QAAS,OAASW,SAAU,CAAEb,KAAMW,QAAST,QAAS,OAASY,WAAY,CAAEd,KAAMC,OAAQC,QAASC,WAAaY,SAAU,CAAEf,KAAMC,OAAQC,QAASC,WAAaa,GAAI,CAAEhB,KAAM,CAACC,OAAQM,OAAQU,UAAoCf,QAAS,OAASgB,QAAS,CAAElB,KAAMW,QAAST,QAAS,QACl0BiB,MAAO,CAAE,oBAAsBC,QAAsC,MAAQC,MAAOd,OACpF,KAAAe,CAAMvB,MAAOwB,SACX,MAAMC,aAAe1C,oBAAqGiB,MAAO0B,SAAU,CACzIC,UAAWD,OAAOE,aAAexB,UAAY,UAAY,OAAQyB,YAAajD,wBAAwB8C,QACtGpC,QAASwC,SAAWpD,6BAA6B,IAAKoD,QAASC,YAAaL,OAAQM,UAAWN,SAC/FnC,OAAQuC,SAAWrD,qBAAqB,IAAKqD,QAASJ,SACtDlC,OAAQ,CAACC,MAAOC,MAAOC,MAAQhB,4BAA4B,IAAKc,MAAOC,MAAO,IAAKD,MAAMC,MAAOE,WAAYF,OAASC,IAAK,IAAKF,MAAME,IAAKC,WAAYD,MAAS+B,WAEjK,OAAO7C,sBAAsB,IAAKK,OAAQ+C,gBAAiB,IAAMR,cAAgBzB,MAAOwB,QAC1F,WAIK,MAAMU,wCAA2CpD,4BAA4BE,WAAY,mBAAoB,QAAS,QAAS,kCAAmC,6BAClK,MAAMmD,sCAAyCrD,4BAA4BE,WAAY,mBAAoB,QAAS,MAAO,gCAAiC","ignoreList":[]}
|