@sectile/dom 0.6.0 → 0.8.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 +3 -1
- package/dist/accordion.d.ts +0 -1
- package/dist/accordion.js +4 -1
- package/dist/accordion.js.map +1 -1
- package/dist/alert-dialog.d.ts +0 -1
- package/dist/calendar.d.ts +0 -1
- package/dist/calendar.js +4 -1
- package/dist/calendar.js.map +1 -1
- package/dist/carousel.d.ts +0 -1
- package/dist/carousel.js +5 -1
- package/dist/carousel.js.map +1 -1
- package/dist/cascade-list.d.ts +51 -0
- package/dist/cascade-list.js +166 -0
- package/dist/cascade-list.js.map +1 -0
- package/dist/cascade-select.d.ts +1 -2
- package/dist/cascade-select.js +20 -47
- package/dist/cascade-select.js.map +1 -1
- package/dist/checkbox-group.d.ts +0 -1
- package/dist/checkbox.d.ts +0 -1
- package/dist/color-picker.d.ts +0 -1
- package/dist/combobox.d.ts +0 -1
- package/dist/combobox.js +32 -2
- package/dist/combobox.js.map +1 -1
- package/dist/data-grid.d.ts +66 -0
- package/dist/data-grid.js +50 -0
- package/dist/data-grid.js.map +1 -0
- package/dist/data-table.d.ts +100 -0
- package/dist/data-table.js +359 -0
- package/dist/data-table.js.map +1 -0
- package/dist/data-tree-grid.d.ts +73 -0
- package/dist/data-tree-grid.js +53 -0
- package/dist/data-tree-grid.js.map +1 -0
- package/dist/date-field.d.ts +1 -2
- package/dist/date-field.js +17 -5
- package/dist/date-field.js.map +1 -1
- package/dist/date-picker.d.ts +3 -2
- package/dist/date-picker.js +13 -4
- package/dist/date-picker.js.map +1 -1
- package/dist/date-range-field.d.ts +0 -1
- package/dist/date-range-field.js +7 -2
- package/dist/date-range-field.js.map +1 -1
- package/dist/date-range-picker.d.ts +2 -2
- package/dist/date-range-picker.js +10 -5
- package/dist/date-range-picker.js.map +1 -1
- package/dist/date-time-field.d.ts +1 -2
- package/dist/date-time-field.js +15 -4
- package/dist/date-time-field.js.map +1 -1
- package/dist/date-time-picker.d.ts +2 -2
- package/dist/date-time-picker.js +23 -10
- package/dist/date-time-picker.js.map +1 -1
- package/dist/date-time-range-picker.d.ts +2 -2
- package/dist/date-time-range-picker.js +26 -12
- package/dist/date-time-range-picker.js.map +1 -1
- package/dist/dialog.d.ts +0 -1
- package/dist/disclosure.d.ts +0 -1
- package/dist/drawer.d.ts +0 -1
- package/dist/editable.d.ts +0 -1
- package/dist/feed.d.ts +0 -1
- package/dist/feed.js +4 -0
- package/dist/feed.js.map +1 -1
- package/dist/form.d.ts +51 -11
- package/dist/form.js +608 -58
- package/dist/form.js.map +1 -1
- package/dist/grid.d.ts +3 -3
- package/dist/grid.js +8 -4
- package/dist/grid.js.map +1 -1
- package/dist/index.d.ts +8 -30
- package/dist/index.js +4 -17
- package/dist/index.js.map +1 -1
- package/dist/interact-outside.d.ts +0 -1
- package/dist/internal/cascade-choice-binding.d.ts +34 -0
- package/dist/internal/cascade-choice-binding.js +112 -0
- package/dist/internal/cascade-choice-binding.js.map +1 -0
- package/dist/internal/checked-control.d.ts +4 -5
- package/dist/internal/checked-control.js +14 -27
- package/dist/internal/checked-control.js.map +1 -1
- package/dist/internal/controlled-field-input.d.ts +9 -0
- package/dist/internal/controlled-field-input.js +25 -0
- package/dist/internal/controlled-field-input.js.map +1 -0
- package/dist/internal/date-picker-cell.d.ts +0 -1
- package/dist/internal/delegated-event.d.ts +0 -1
- package/dist/internal/direction.d.ts +0 -1
- package/dist/internal/disabled-items.d.ts +0 -1
- package/dist/internal/disabled-items.js +2 -12
- package/dist/internal/disabled-items.js.map +1 -1
- package/dist/internal/exact-percentage.d.ts +2 -0
- package/dist/internal/exact-percentage.js +5 -0
- package/dist/internal/exact-percentage.js.map +1 -0
- package/dist/internal/interaction.d.ts +0 -1
- package/dist/internal/layer-binding.d.ts +0 -1
- package/dist/internal/layer-manager.d.ts +0 -1
- package/dist/internal/menu-control.d.ts +0 -1
- package/dist/internal/menu-control.js +48 -97
- package/dist/internal/menu-control.js.map +1 -1
- package/dist/internal/modal-effects.d.ts +0 -1
- package/dist/internal/picker-position.d.ts +7 -0
- package/dist/internal/picker-position.js +19 -0
- package/dist/internal/picker-position.js.map +1 -0
- package/dist/internal/popup-control.d.ts +2 -3
- package/dist/internal/popup-control.js +8 -10
- package/dist/internal/popup-control.js.map +1 -1
- package/dist/internal/position-connection.d.ts +22 -0
- package/dist/internal/position-connection.js +57 -0
- package/dist/internal/position-connection.js.map +1 -0
- package/dist/internal/positioning/engine.d.ts +65 -0
- package/dist/internal/positioning/engine.js +488 -0
- package/dist/internal/positioning/engine.js.map +1 -0
- package/dist/internal/reference-date.d.ts +0 -1
- package/dist/internal/result.d.ts +0 -3
- package/dist/internal/result.js.map +1 -1
- package/dist/internal/tabular-dom.d.ts +109 -0
- package/dist/internal/tabular-dom.js +316 -0
- package/dist/internal/tabular-dom.js.map +1 -0
- package/dist/internal/tabular-grid-dom.d.ts +151 -0
- package/dist/internal/tabular-grid-dom.js +524 -0
- package/dist/internal/tabular-grid-dom.js.map +1 -0
- package/dist/internal/text-element.d.ts +0 -1
- package/dist/listbox.d.ts +0 -1
- package/dist/listbox.js +5 -0
- package/dist/listbox.js.map +1 -1
- package/dist/menu-button.d.ts +0 -1
- package/dist/menu.d.ts +0 -1
- package/dist/menubar.d.ts +0 -1
- package/dist/meter-group.d.ts +39 -0
- package/dist/meter-group.js +182 -0
- package/dist/meter-group.js.map +1 -0
- package/dist/meter.d.ts +35 -0
- package/dist/meter.js +111 -0
- package/dist/meter.js.map +1 -0
- package/dist/month-picker.d.ts +0 -1
- package/dist/month-range-picker.d.ts +0 -1
- package/dist/multi-thumb-slider.d.ts +0 -1
- package/dist/navigation-menu.d.ts +0 -1
- package/dist/number-field.d.ts +0 -1
- package/dist/number-field.js +8 -1
- package/dist/number-field.js.map +1 -1
- package/dist/pagination.d.ts +0 -1
- package/dist/pin-input.d.ts +0 -1
- package/dist/pin-input.js +5 -3
- package/dist/pin-input.js.map +1 -1
- package/dist/popover.d.ts +6 -22
- package/dist/popover.js +6 -9
- package/dist/popover.js.map +1 -1
- package/dist/position.d.ts +19 -0
- package/dist/position.js +2 -0
- package/dist/position.js.map +1 -0
- package/dist/progress.d.ts +35 -0
- package/dist/progress.js +105 -0
- package/dist/progress.js.map +1 -0
- package/dist/quantity-field.d.ts +0 -1
- package/dist/quantity-field.js +12 -1
- package/dist/quantity-field.js.map +1 -1
- package/dist/radio-group.d.ts +0 -1
- package/dist/radio-group.js +13 -1
- package/dist/radio-group.js.map +1 -1
- package/dist/range-calendar.d.ts +0 -1
- package/dist/rating.d.ts +1 -2
- package/dist/rating.js +191 -27
- package/dist/rating.js.map +1 -1
- package/dist/reorder.d.ts +0 -1
- package/dist/select.d.ts +2 -15
- package/dist/select.js +7 -5
- package/dist/select.js.map +1 -1
- package/dist/slider.d.ts +0 -1
- package/dist/spin-button.d.ts +0 -1
- package/dist/stepper.d.ts +0 -1
- package/dist/switch.d.ts +0 -1
- package/dist/tabs.d.ts +0 -1
- package/dist/tabs.js +11 -2
- package/dist/tabs.js.map +1 -1
- package/dist/tabular.d.ts +3 -0
- package/dist/tabular.js +4 -0
- package/dist/tabular.js.map +1 -0
- package/dist/tags-input.d.ts +0 -1
- package/dist/tags-input.js +8 -4
- package/dist/tags-input.js.map +1 -1
- package/dist/text.d.ts +0 -1
- package/dist/time-field.d.ts +1 -2
- package/dist/time-field.js +11 -5
- package/dist/time-field.js.map +1 -1
- package/dist/time-range-field.d.ts +0 -1
- package/dist/time-range-field.js +3 -1
- package/dist/time-range-field.js.map +1 -1
- package/dist/timer.d.ts +0 -1
- package/dist/toast.d.ts +0 -1
- package/dist/toast.js +32 -5
- package/dist/toast.js.map +1 -1
- package/dist/toggle-button.d.ts +0 -1
- package/dist/toggle-group.d.ts +0 -1
- package/dist/toolbar.d.ts +0 -1
- package/dist/toolbar.js +4 -0
- package/dist/toolbar.js.map +1 -1
- package/dist/tooltip.d.ts +5 -23
- package/dist/tooltip.js +3 -6
- package/dist/tooltip.js.map +1 -1
- package/dist/tree-grid.d.ts +0 -1
- package/dist/tree-grid.js +14 -1
- package/dist/tree-grid.js.map +1 -1
- package/dist/tree-view.d.ts +0 -1
- package/dist/tree-view.js +4 -0
- package/dist/tree-view.js.map +1 -1
- package/dist/virtual.d.ts +2 -3
- package/dist/virtual.js +76 -28
- package/dist/virtual.js.map +1 -1
- package/dist/window-splitter.d.ts +0 -1
- package/dist/year-picker.d.ts +0 -1
- package/dist/year-range-picker.d.ts +0 -1
- package/package.json +135 -85
- package/dist/accordion.d.ts.map +0 -1
- package/dist/alert-dialog.d.ts.map +0 -1
- package/dist/calendar.d.ts.map +0 -1
- package/dist/carousel.d.ts.map +0 -1
- package/dist/cascade-select.d.ts.map +0 -1
- package/dist/checkbox-group.d.ts.map +0 -1
- package/dist/checkbox.d.ts.map +0 -1
- package/dist/color-picker.d.ts.map +0 -1
- package/dist/combobox.d.ts.map +0 -1
- package/dist/date-field.d.ts.map +0 -1
- package/dist/date-picker.d.ts.map +0 -1
- package/dist/date-range-field.d.ts.map +0 -1
- package/dist/date-range-picker.d.ts.map +0 -1
- package/dist/date-time-field.d.ts.map +0 -1
- package/dist/date-time-picker.d.ts.map +0 -1
- package/dist/date-time-range-picker.d.ts.map +0 -1
- package/dist/dialog.d.ts.map +0 -1
- package/dist/disclosure.d.ts.map +0 -1
- package/dist/drawer.d.ts.map +0 -1
- package/dist/editable.d.ts.map +0 -1
- package/dist/feed.d.ts.map +0 -1
- package/dist/form.d.ts.map +0 -1
- package/dist/grid.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/interact-outside.d.ts.map +0 -1
- package/dist/internal/checked-control.d.ts.map +0 -1
- package/dist/internal/date-picker-cell.d.ts.map +0 -1
- package/dist/internal/delegated-event.d.ts.map +0 -1
- package/dist/internal/direction.d.ts.map +0 -1
- package/dist/internal/disabled-items.d.ts.map +0 -1
- package/dist/internal/floating-position.d.ts +0 -26
- package/dist/internal/floating-position.d.ts.map +0 -1
- package/dist/internal/floating-position.js +0 -107
- package/dist/internal/floating-position.js.map +0 -1
- package/dist/internal/interaction.d.ts.map +0 -1
- package/dist/internal/layer-binding.d.ts.map +0 -1
- package/dist/internal/layer-manager.d.ts.map +0 -1
- package/dist/internal/menu-control.d.ts.map +0 -1
- package/dist/internal/modal-effects.d.ts.map +0 -1
- package/dist/internal/popup-control.d.ts.map +0 -1
- package/dist/internal/reference-date.d.ts.map +0 -1
- package/dist/internal/result.d.ts.map +0 -1
- package/dist/internal/text-element.d.ts.map +0 -1
- package/dist/listbox.d.ts.map +0 -1
- package/dist/menu-button.d.ts.map +0 -1
- package/dist/menu.d.ts.map +0 -1
- package/dist/menubar.d.ts.map +0 -1
- package/dist/month-picker.d.ts.map +0 -1
- package/dist/month-range-picker.d.ts.map +0 -1
- package/dist/multi-thumb-slider.d.ts.map +0 -1
- package/dist/navigation-menu.d.ts.map +0 -1
- package/dist/number-field.d.ts.map +0 -1
- package/dist/pagination.d.ts.map +0 -1
- package/dist/pin-input.d.ts.map +0 -1
- package/dist/popover.d.ts.map +0 -1
- package/dist/quantity-field.d.ts.map +0 -1
- package/dist/radio-group.d.ts.map +0 -1
- package/dist/range-calendar.d.ts.map +0 -1
- package/dist/rating.d.ts.map +0 -1
- package/dist/reorder.d.ts.map +0 -1
- package/dist/select.d.ts.map +0 -1
- package/dist/slider.d.ts.map +0 -1
- package/dist/spin-button.d.ts.map +0 -1
- package/dist/stepper.d.ts.map +0 -1
- package/dist/switch.d.ts.map +0 -1
- package/dist/tabs.d.ts.map +0 -1
- package/dist/tags-input.d.ts.map +0 -1
- package/dist/text.d.ts.map +0 -1
- package/dist/time-field.d.ts.map +0 -1
- package/dist/time-range-field.d.ts.map +0 -1
- package/dist/timer.d.ts.map +0 -1
- package/dist/toast.d.ts.map +0 -1
- package/dist/toggle-button.d.ts.map +0 -1
- package/dist/toggle-group.d.ts.map +0 -1
- package/dist/toolbar.d.ts.map +0 -1
- package/dist/tooltip.d.ts.map +0 -1
- package/dist/tree-grid.d.ts.map +0 -1
- package/dist/tree-view.d.ts.map +0 -1
- package/dist/virtual.d.ts.map +0 -1
- package/dist/window-splitter.d.ts.map +0 -1
- package/dist/year-picker.d.ts.map +0 -1
- package/dist/year-range-picker.d.ts.map +0 -1
|
@@ -13,7 +13,7 @@ export interface CheckedControlController<State, Event, Value> {
|
|
|
13
13
|
syncControlledValue(value: Value): Result<RevisionSnapshot<State>>;
|
|
14
14
|
handleEvent(event: Event): boolean;
|
|
15
15
|
}
|
|
16
|
-
export interface CheckedControlControllerOptions<State, Event, Command, Value> {
|
|
16
|
+
export interface CheckedControlControllerOptions<State, Event, Command extends object, Value> {
|
|
17
17
|
readonly controlled: boolean;
|
|
18
18
|
readonly initial: Result<State>;
|
|
19
19
|
readonly reducer: (state: State, event: Event) => Result<MachineUpdate<State, Command>>;
|
|
@@ -22,7 +22,7 @@ export interface CheckedControlControllerOptions<State, Event, Command, Value> {
|
|
|
22
22
|
readonly onChange: ((value: Value) => void) | undefined;
|
|
23
23
|
readonly interaction?: InteractionStateInput;
|
|
24
24
|
}
|
|
25
|
-
export interface DOMCheckedControlOptions<State, Event, Command, Value> {
|
|
25
|
+
export interface DOMCheckedControlOptions<State, Event, Command extends object, Value> {
|
|
26
26
|
readonly element: HTMLElement;
|
|
27
27
|
readonly role?: string;
|
|
28
28
|
readonly attribute: 'aria-checked' | 'aria-pressed';
|
|
@@ -51,7 +51,7 @@ export interface CheckedControlAttributes {
|
|
|
51
51
|
readonly disabled: boolean | undefined;
|
|
52
52
|
readonly readOnly: boolean | undefined;
|
|
53
53
|
}
|
|
54
|
-
export declare function createCheckedControlController<State, Event, Command, Value>(options: CheckedControlControllerOptions<State, Event, Command, Value>): Result<CheckedControlController<State, Event, Value>>;
|
|
54
|
+
export declare function createCheckedControlController<State, Event, Command extends object, Value>(options: CheckedControlControllerOptions<State, Event, Command, Value>): Result<CheckedControlController<State, Event, Value>>;
|
|
55
55
|
export declare function getCheckedControlAttributes<Value>(options: {
|
|
56
56
|
readonly role?: string;
|
|
57
57
|
readonly attribute: 'aria-checked' | 'aria-pressed';
|
|
@@ -63,5 +63,4 @@ export declare function getCheckedControlAttributes<Value>(options: {
|
|
|
63
63
|
readonly native?: boolean;
|
|
64
64
|
readonly nativeReadOnly?: boolean;
|
|
65
65
|
}): CheckedControlAttributes;
|
|
66
|
-
export declare function createDOMCheckedControl<State, Event, Command, Value>(options: DOMCheckedControlOptions<State, Event, Command, Value>): Result<DOMCheckedControl<State, Event, Value>>;
|
|
67
|
-
//# sourceMappingURL=checked-control.d.ts.map
|
|
66
|
+
export declare function createDOMCheckedControl<State, Event, Command extends object, Value>(options: DOMCheckedControlOptions<State, Event, Command, Value>): Result<DOMCheckedControl<State, Event, Value>>;
|
|
@@ -1,22 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createControlledComponentController, } from '@sectile/core/adapter-runtime';
|
|
2
2
|
export function createCheckedControlController(options) {
|
|
3
|
-
const runtime =
|
|
3
|
+
const runtime = createControlledComponentController({
|
|
4
|
+
controlled: options.controlled,
|
|
4
5
|
initial: options.initial,
|
|
5
6
|
reducer: options.reducer,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (options.read(previous) !== options.read(proposed)) {
|
|
11
|
-
options.onChange?.(options.read(proposed));
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
toEffect: (command) => command,
|
|
15
|
-
interaction: options.interaction,
|
|
7
|
+
create: (value) => options.create(value),
|
|
8
|
+
read: options.read,
|
|
9
|
+
onChange: (value) => options.onChange?.(value),
|
|
10
|
+
...(options.interaction === undefined ? {} : { interaction: options.interaction }),
|
|
16
11
|
});
|
|
17
12
|
if (!runtime.ok)
|
|
18
13
|
return runtime;
|
|
19
|
-
return { ok: true, value:
|
|
14
|
+
return { ok: true, value: checkedControlAdapter(runtime.value) };
|
|
20
15
|
}
|
|
21
16
|
export function getCheckedControlAttributes(options) {
|
|
22
17
|
const disabled = options.disabled ?? false;
|
|
@@ -92,20 +87,12 @@ class DOMCheckedControlImpl {
|
|
|
92
87
|
}
|
|
93
88
|
disconnect() { this.#options.element.removeEventListener('click', this.#click); }
|
|
94
89
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
getSnapshot() { return this.#runtime.getSnapshot(); }
|
|
103
|
-
syncControlledValue(value) {
|
|
104
|
-
if (!this.#options.controlled)
|
|
105
|
-
return { ok: false, error: { class: 'construction', code: 'uncontrolled-controller-sync', message: 'An uncontrolled checked control cannot be synchronized externally.' } };
|
|
106
|
-
return this.#runtime.replace(this.#options.create(value));
|
|
107
|
-
}
|
|
108
|
-
handleEvent(event) { return this.#runtime.handle(event).ok; }
|
|
90
|
+
function checkedControlAdapter(controller) {
|
|
91
|
+
return Object.freeze({
|
|
92
|
+
getSnapshot: () => controller.getSnapshot(),
|
|
93
|
+
syncControlledValue: (value) => controller.syncControlledValue(value),
|
|
94
|
+
handleEvent: (event) => controller.handle(event).ok,
|
|
95
|
+
});
|
|
109
96
|
}
|
|
110
97
|
function applyCheckedControlAttributes(element, attributes) {
|
|
111
98
|
setOptionalAttribute(element, 'role', attributes.role);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checked-control.js","sourceRoot":"","sources":["../../src/internal/checked-control.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"checked-control.js","sourceRoot":"","sources":["../../src/internal/checked-control.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type TextEditingState } from '@sectile/core/text';
|
|
2
|
+
interface SelectionElement {
|
|
3
|
+
readonly selectionStart: number | null;
|
|
4
|
+
readonly selectionEnd: number | null;
|
|
5
|
+
readonly selectionDirection: 'forward' | 'backward' | 'none' | null;
|
|
6
|
+
}
|
|
7
|
+
export declare function synchronizeFieldInputSelection(inputState: TextEditingState, element: SelectionElement): TextEditingState;
|
|
8
|
+
export declare function synchronizeControlledFieldInput(inputState: TextEditingState, previousText: string, nextText: string): TextEditingState;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createTextEditingState, tryCreateTextEditingState, } from '@sectile/core/text';
|
|
2
|
+
export function synchronizeFieldInputSelection(inputState, element) {
|
|
3
|
+
if (inputState.composition !== null || element.selectionStart === null)
|
|
4
|
+
return inputState;
|
|
5
|
+
const start = element.selectionStart;
|
|
6
|
+
const end = element.selectionEnd ?? start;
|
|
7
|
+
const backward = element.selectionDirection === 'backward';
|
|
8
|
+
const result = tryCreateTextEditingState(inputState.snapshot.text, {
|
|
9
|
+
anchorCodeUnitOffset: backward ? end : start,
|
|
10
|
+
focusCodeUnitOffset: backward ? start : end,
|
|
11
|
+
});
|
|
12
|
+
return result.ok ? result.value : inputState;
|
|
13
|
+
}
|
|
14
|
+
export function synchronizeControlledFieldInput(inputState, previousText, nextText) {
|
|
15
|
+
if (inputState.composition !== null || inputState.snapshot.text !== previousText) {
|
|
16
|
+
return inputState;
|
|
17
|
+
}
|
|
18
|
+
const selection = inputState.snapshot.selection;
|
|
19
|
+
const mapOffset = (offset) => (offset === previousText.length ? nextText.length : Math.min(offset, nextText.length));
|
|
20
|
+
return createTextEditingState(nextText, {
|
|
21
|
+
anchorCodeUnitOffset: mapOffset(selection.anchorCodeUnitOffset),
|
|
22
|
+
focusCodeUnitOffset: mapOffset(selection.focusCodeUnitOffset),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=controlled-field-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controlled-field-input.js","sourceRoot":"","sources":["../../src/internal/controlled-field-input.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAE1B,MAAM,oBAAoB,CAAC;AAQ5B,MAAM,UAAU,8BAA8B,CAC5C,UAA4B,EAC5B,OAAyB;IAEzB,IAAI,UAAU,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI;QAAE,OAAO,UAAU,CAAC;IAC1F,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC;IACrC,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,KAAK,UAAU,CAAC;IAC3D,MAAM,MAAM,GAAG,yBAAyB,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE;QACjE,oBAAoB,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;QAC5C,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;KAC5C,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,UAA4B,EAC5B,YAAoB,EACpB,QAAgB;IAEhB,IAAI,UAAU,CAAC,WAAW,KAAK,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACjF,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;IAChD,MAAM,SAAS,GAAG,CAAC,MAAc,EAAU,EAAE,CAAC,CAC5C,MAAM,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CACrF,CAAC;IACF,OAAO,sBAAsB,CAAC,QAAQ,EAAE;QACtC,oBAAoB,EAAE,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC;QAC/D,mBAAmB,EAAE,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC;KAC9D,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -3,4 +3,3 @@ export interface IdentityDomain<ID extends StableID> {
|
|
|
3
3
|
contains(id: ID): boolean;
|
|
4
4
|
}
|
|
5
5
|
export declare function createDisabledItems<ID extends StableID>(domain: IdentityDomain<ID>, items?: readonly ID[]): Result<ReadonlySet<ID>>;
|
|
6
|
-
//# sourceMappingURL=disabled-items.d.ts.map
|
|
@@ -1,15 +1,5 @@
|
|
|
1
|
+
import { tryCreateDisabledIdentitySet } from '@sectile/core/adapter-runtime';
|
|
1
2
|
export function createDisabledItems(domain, items = []) {
|
|
2
|
-
|
|
3
|
-
for (const id of disabled) {
|
|
4
|
-
if (!domain.contains(id)) {
|
|
5
|
-
return { ok: false, error: {
|
|
6
|
-
class: 'construction',
|
|
7
|
-
code: 'disabled-item-outside-domain',
|
|
8
|
-
message: 'Every disabled item must exist in the component domain.',
|
|
9
|
-
details: { id },
|
|
10
|
-
} };
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
return { ok: true, value: disabled };
|
|
3
|
+
return tryCreateDisabledIdentitySet(domain, items);
|
|
14
4
|
}
|
|
15
5
|
//# sourceMappingURL=disabled-items.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disabled-items.js","sourceRoot":"","sources":["../../src/internal/disabled-items.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"disabled-items.js","sourceRoot":"","sources":["../../src/internal/disabled-items.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAM7E,MAAM,UAAU,mBAAmB,CACjC,MAA0B,EAC1B,KAAK,GAAkB,EAAE;IAEzB,OAAO,4BAA4B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-percentage.js","sourceRoot":"","sources":["../../src/internal/exact-percentage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAmB,MAAM,qBAAqB,CAAC;AAElF,MAAM,UAAU,qBAAqB,CAAC,KAAiB;IACrD,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -1,63 +1,70 @@
|
|
|
1
1
|
import { applyMenuEvent, tryCreateMenuModel, tryCreateMenuState } from '@sectile/core/menu';
|
|
2
|
-
import {
|
|
2
|
+
import { createControlledComponentController, tryCreateDisabledIdentitySet, } from '@sectile/core/adapter-runtime';
|
|
3
3
|
import { setInteractionAttributes } from './interaction.js';
|
|
4
4
|
import { horizontalArrow } from './direction.js';
|
|
5
5
|
import { createDOMLayerBinding } from './layer-binding.js';
|
|
6
|
+
import { createPosition } from './position-connection.js';
|
|
6
7
|
export function createMenuControl(options) {
|
|
7
8
|
const model = tryCreateMenuModel(options.items);
|
|
8
9
|
if (!model.ok)
|
|
9
10
|
return model;
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
const disabledResult = tryCreateDisabledIdentitySet({ contains: (id) => model.value.tree.has(id) }, options.disabledItems);
|
|
12
|
+
if (!disabledResult.ok)
|
|
13
|
+
return disabledResult;
|
|
14
|
+
const disabled = disabledResult.value;
|
|
14
15
|
const suppliedDisabled = options.policies?.disabled;
|
|
15
16
|
const policies = { ...options.policies, disabled: (id) => disabled.has(id) || (suppliedDisabled?.(id) ?? false) };
|
|
16
17
|
const openControlled = options.kind === 'menu-button' && options.open !== undefined;
|
|
17
18
|
const initialOpen = options.kind === 'menu-button' ? options.open ?? options.defaultOpen ?? false : true;
|
|
18
|
-
const runtime =
|
|
19
|
-
|
|
19
|
+
const runtime = createControlledComponentController({
|
|
20
|
+
controlled: openControlled,
|
|
20
21
|
initial: tryCreateMenuState(model.value.tree, initialOpen, initialOpen ? options.defaultHighlightedValue ?? null : null, []),
|
|
21
22
|
reducer: (state, event) => applyMenuEvent(model.value.tree, state, event, policies),
|
|
22
|
-
|
|
23
|
-
const open = options.kind === 'menu-button' ?
|
|
23
|
+
create: (requestedOpen, proposed) => {
|
|
24
|
+
const open = options.kind === 'menu-button' ? requestedOpen : true;
|
|
24
25
|
return tryCreateMenuState(model.value.tree, open, open ? proposed.cursor.current : null, open ? proposed.openPath : []);
|
|
25
26
|
},
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
read: (state) => state.open,
|
|
28
|
+
onChange: (open) => options.onOpenChange?.(open),
|
|
29
|
+
interaction: options,
|
|
29
30
|
});
|
|
30
|
-
return runtime.ok ? { ok: true, value: new DOMMenuControl(options, model.value.tree, runtime.value, policies
|
|
31
|
+
return runtime.ok ? { ok: true, value: new DOMMenuControl(options, model.value.tree, runtime.value, policies) } : runtime;
|
|
31
32
|
}
|
|
32
33
|
class DOMMenuControl {
|
|
33
34
|
#options;
|
|
34
35
|
#tree;
|
|
35
36
|
#runtime;
|
|
36
37
|
#policies;
|
|
37
|
-
#openControlled;
|
|
38
38
|
#elements = new Map();
|
|
39
39
|
#submenus = new Map();
|
|
40
40
|
#keydown;
|
|
41
41
|
#click;
|
|
42
42
|
#triggerClick;
|
|
43
|
-
#reposition;
|
|
44
|
-
#view;
|
|
45
43
|
#instanceID;
|
|
46
44
|
#layer;
|
|
45
|
+
#popupPosition;
|
|
46
|
+
#submenuPositions = new Map();
|
|
47
47
|
#typeaheadBuffer = '';
|
|
48
48
|
#lastTypeaheadAt = Number.NEGATIVE_INFINITY;
|
|
49
|
-
constructor(options, tree, runtime, policies
|
|
49
|
+
constructor(options, tree, runtime, policies) {
|
|
50
50
|
this.#options = options;
|
|
51
51
|
this.#tree = tree;
|
|
52
52
|
this.#runtime = runtime;
|
|
53
53
|
this.#policies = policies;
|
|
54
|
-
this.#openControlled = openControlled;
|
|
55
54
|
setInteractionAttributes(options.root, options);
|
|
56
55
|
if (options.trigger !== undefined)
|
|
57
56
|
setInteractionAttributes(options.trigger, options, { native: true });
|
|
58
|
-
this.#view = options.root.ownerDocument?.defaultView ?? null;
|
|
59
57
|
this.#instanceID = options.baseID ?? String(nextMenuControlID += 1);
|
|
60
58
|
this.#layer = options.kind === 'menu-button' && options.trigger !== undefined ? createDOMLayerBinding({ surface: options.root, owner: options.trigger, dismissOnInteractOutside: true, readOpen: () => this.getSnapshot().state.open, close: () => { this.handleEvent('close-popup'); } }) : undefined;
|
|
59
|
+
this.#popupPosition = options.kind === 'menu-button' && options.trigger !== undefined
|
|
60
|
+
? createPosition({
|
|
61
|
+
root: options.root,
|
|
62
|
+
reference: options.trigger,
|
|
63
|
+
side: 'bottom',
|
|
64
|
+
align: 'center',
|
|
65
|
+
sideOffset: 8,
|
|
66
|
+
})
|
|
67
|
+
: undefined;
|
|
61
68
|
this.#keydown = (event) => { if (this.#handleTypeahead(event)) {
|
|
62
69
|
event.preventDefault();
|
|
63
70
|
return;
|
|
@@ -72,20 +79,14 @@ class DOMMenuControl {
|
|
|
72
79
|
return;
|
|
73
80
|
} };
|
|
74
81
|
this.#triggerClick = () => { this.handleEvent(this.getSnapshot().state.open ? 'close-popup' : 'open-popup'); };
|
|
75
|
-
this.#reposition = () => { this.#positionPopup(); this.#positionSubmenus(); };
|
|
76
82
|
options.root.addEventListener('keydown', this.#keydown);
|
|
77
83
|
options.root.addEventListener('click', this.#click);
|
|
78
84
|
options.trigger?.addEventListener('click', this.#triggerClick);
|
|
79
|
-
this.#view?.addEventListener('resize', this.#reposition);
|
|
80
|
-
this.#view?.addEventListener('scroll', this.#reposition, true);
|
|
81
85
|
this.#refresh();
|
|
82
86
|
}
|
|
83
87
|
getSnapshot() { return this.#runtime.getSnapshot(); }
|
|
84
88
|
syncControlledValue(open) {
|
|
85
|
-
|
|
86
|
-
return { ok: false, error: { class: 'construction', code: 'uncontrolled-controller-sync', message: 'Only a controlled menu button can synchronize open state.' } };
|
|
87
|
-
const state = this.getSnapshot().state;
|
|
88
|
-
const result = this.#runtime.replace(tryCreateMenuState(this.#tree, open, open ? state.cursor.current : null, open ? state.openPath : []));
|
|
89
|
+
const result = this.#runtime.syncControlledValue(open);
|
|
89
90
|
if (result.ok) {
|
|
90
91
|
this.#refresh();
|
|
91
92
|
this.#options.onUpdate?.();
|
|
@@ -94,6 +95,7 @@ class DOMMenuControl {
|
|
|
94
95
|
}
|
|
95
96
|
setItemAttributes(element, id) { if (this.#tree.has(id)) {
|
|
96
97
|
this.#elements.set(id, element);
|
|
98
|
+
this.#connectSubmenuPosition(id);
|
|
97
99
|
this.#refresh();
|
|
98
100
|
} }
|
|
99
101
|
setSubmenuAttributes(element, parentID) {
|
|
@@ -102,6 +104,7 @@ class DOMMenuControl {
|
|
|
102
104
|
this.#submenus.set(parentID, element);
|
|
103
105
|
if (element.id.length === 0)
|
|
104
106
|
element.id = `sectile-menu-${this.#instanceID}-submenu-${this.#submenus.size}`;
|
|
107
|
+
this.#connectSubmenuPosition(parentID);
|
|
105
108
|
this.#refresh();
|
|
106
109
|
}
|
|
107
110
|
handleEvent(event) { const result = this.#runtime.handle(event); if (result.ok) {
|
|
@@ -116,7 +119,8 @@ class DOMMenuControl {
|
|
|
116
119
|
}
|
|
117
120
|
this.#options.onUpdate?.();
|
|
118
121
|
} return result.ok; }
|
|
119
|
-
disconnect() { this.#layer?.disconnect(); this.#
|
|
122
|
+
disconnect() { this.#layer?.disconnect(); this.#popupPosition?.disconnect(); for (const position of this.#submenuPositions.values())
|
|
123
|
+
position.disconnect(); this.#submenuPositions.clear(); this.#options.root.removeEventListener('keydown', this.#keydown); this.#options.root.removeEventListener('click', this.#click); this.#options.trigger?.removeEventListener('click', this.#triggerClick); this.#elements.clear(); this.#submenus.clear(); }
|
|
120
124
|
#refresh() {
|
|
121
125
|
const state = this.getSnapshot().state;
|
|
122
126
|
this.#options.root.setAttribute('role', this.#options.kind === 'navigation-menu' ? 'navigation' : this.#options.kind === 'menubar' ? 'menubar' : 'menu');
|
|
@@ -153,80 +157,27 @@ class DOMMenuControl {
|
|
|
153
157
|
else
|
|
154
158
|
submenu.setAttribute('role', 'menu');
|
|
155
159
|
submenu.hidden = !open;
|
|
156
|
-
if (!open) {
|
|
157
|
-
submenu.removeAttribute('data-placement');
|
|
158
|
-
this.#elements.get(parentID)?.removeAttribute('data-submenu-placement');
|
|
159
|
-
}
|
|
160
160
|
}
|
|
161
|
-
if (!state.open)
|
|
162
|
-
this.#options.root.removeAttribute('data-placement');
|
|
163
161
|
this.#layer?.sync();
|
|
164
|
-
this.#
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
const viewport = this.#view;
|
|
168
|
-
const trigger = this.#options.trigger;
|
|
169
|
-
if (this.#options.kind !== 'menu-button' || this.#options.root.hidden || viewport === null || trigger === undefined)
|
|
170
|
-
return;
|
|
171
|
-
const gutter = 8;
|
|
172
|
-
const gap = 4;
|
|
173
|
-
const anchorRect = trigger.getBoundingClientRect();
|
|
174
|
-
const popupRect = this.#options.root.getBoundingClientRect();
|
|
175
|
-
const spaceBelow = viewport.innerHeight - anchorRect.bottom - gutter;
|
|
176
|
-
const spaceAbove = anchorRect.top - gutter;
|
|
177
|
-
const placeAbove = popupRect.height > spaceBelow && spaceAbove > spaceBelow;
|
|
178
|
-
const rawLeft = anchorRect.left + ((anchorRect.width - popupRect.width) / 2);
|
|
179
|
-
const rawTop = placeAbove ? anchorRect.top - popupRect.height - gap : anchorRect.bottom + gap;
|
|
180
|
-
const left = Math.max(gutter, Math.min(rawLeft, viewport.innerWidth - popupRect.width - gutter));
|
|
181
|
-
const top = Math.max(gutter, Math.min(rawTop, viewport.innerHeight - popupRect.height - gutter));
|
|
182
|
-
this.#options.root.style.position = 'fixed';
|
|
183
|
-
this.#options.root.style.left = `${left}px`;
|
|
184
|
-
this.#options.root.style.top = `${top}px`;
|
|
185
|
-
this.#options.root.dataset['placement'] = placeAbove ? 'top-center' : 'bottom-center';
|
|
162
|
+
this.#popupPosition?.update();
|
|
163
|
+
for (const position of this.#submenuPositions.values())
|
|
164
|
+
position.update();
|
|
186
165
|
}
|
|
187
|
-
#
|
|
188
|
-
const
|
|
189
|
-
|
|
166
|
+
#connectSubmenuPosition(parentID) {
|
|
167
|
+
const anchor = this.#elements.get(parentID);
|
|
168
|
+
const submenu = this.#submenus.get(parentID);
|
|
169
|
+
if (anchor === undefined || submenu === undefined)
|
|
190
170
|
return;
|
|
191
|
-
|
|
192
|
-
const
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
const opensFromMenubar = (this.#options.kind === 'menubar' || this.#options.kind === 'navigation-menu') && this.#tree.parentOf(parentID) === null;
|
|
202
|
-
let rawLeft;
|
|
203
|
-
let rawTop;
|
|
204
|
-
let placement;
|
|
205
|
-
if (opensFromMenubar) {
|
|
206
|
-
const spaceBelow = viewport.innerHeight - anchorRect.bottom - gutter;
|
|
207
|
-
const spaceAbove = anchorRect.top - gutter;
|
|
208
|
-
const placeAbove = submenuRect.height > spaceBelow && spaceAbove > spaceBelow;
|
|
209
|
-
rawLeft = this.#options.direction === 'rtl' ? anchorRect.right - submenuRect.width : anchorRect.left;
|
|
210
|
-
rawTop = placeAbove ? anchorRect.top - submenuRect.height - gap : anchorRect.bottom + gap;
|
|
211
|
-
placement = placeAbove ? 'top-start' : 'bottom-start';
|
|
212
|
-
}
|
|
213
|
-
else {
|
|
214
|
-
const spaceRight = viewport.innerWidth - anchorRect.right - gutter;
|
|
215
|
-
const spaceLeft = anchorRect.left - gutter;
|
|
216
|
-
const preferLeft = this.#options.direction === 'rtl';
|
|
217
|
-
const placeLeft = preferLeft ? !(submenuRect.width > spaceLeft && spaceRight > spaceLeft) : submenuRect.width > spaceRight && spaceLeft > spaceRight;
|
|
218
|
-
rawLeft = placeLeft ? anchorRect.left - submenuRect.width - gap : anchorRect.right + gap;
|
|
219
|
-
rawTop = anchorRect.top;
|
|
220
|
-
placement = placeLeft ? 'left-start' : 'right-start';
|
|
221
|
-
}
|
|
222
|
-
const left = Math.max(gutter, Math.min(rawLeft, viewport.innerWidth - submenuRect.width - gutter));
|
|
223
|
-
const top = Math.max(gutter, Math.min(rawTop, viewport.innerHeight - submenuRect.height - gutter));
|
|
224
|
-
submenu.style.position = 'fixed';
|
|
225
|
-
submenu.style.left = `${left}px`;
|
|
226
|
-
submenu.style.top = `${top}px`;
|
|
227
|
-
submenu.dataset['placement'] = placement;
|
|
228
|
-
anchor.dataset['submenuPlacement'] = placement;
|
|
229
|
-
}
|
|
171
|
+
this.#submenuPositions.get(parentID)?.disconnect();
|
|
172
|
+
const opensFromMenubar = (this.#options.kind === 'menubar' || this.#options.kind === 'navigation-menu') && this.#tree.parentOf(parentID) === null;
|
|
173
|
+
const position = createPosition({
|
|
174
|
+
root: submenu,
|
|
175
|
+
reference: anchor,
|
|
176
|
+
side: opensFromMenubar ? 'bottom' : this.#options.direction === 'rtl' ? 'left' : 'right',
|
|
177
|
+
align: opensFromMenubar && this.#options.direction === 'rtl' ? 'end' : 'start',
|
|
178
|
+
sideOffset: 8,
|
|
179
|
+
});
|
|
180
|
+
this.#submenuPositions.set(parentID, position);
|
|
230
181
|
}
|
|
231
182
|
#handleTypeahead(event) {
|
|
232
183
|
const config = this.#options.typeahead;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-control.js","sourceRoot":"","sources":["../../src/internal/menu-control.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menu-control.js","sourceRoot":"","sources":["../../src/internal/menu-control.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type PositionConnection } from './position-connection.js';
|
|
2
|
+
import type { PositionOptions } from '../position.js';
|
|
3
|
+
export interface PickerPositionOptions extends PositionOptions {
|
|
4
|
+
readonly position?: boolean;
|
|
5
|
+
readonly anchor?: HTMLElement;
|
|
6
|
+
}
|
|
7
|
+
export declare function createPickerPosition(root: HTMLElement, trigger: HTMLElement, options: PickerPositionOptions): PositionConnection;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { createPosition, manualPositionConnection, } from './position-connection.js';
|
|
2
|
+
export function createPickerPosition(root, trigger, options) {
|
|
3
|
+
if (options.position === false)
|
|
4
|
+
return manualPositionConnection;
|
|
5
|
+
return createPosition({
|
|
6
|
+
root,
|
|
7
|
+
reference: options.anchor ?? trigger,
|
|
8
|
+
side: options.side,
|
|
9
|
+
align: options.align,
|
|
10
|
+
sideOffset: options.sideOffset,
|
|
11
|
+
collisionPadding: options.collisionPadding,
|
|
12
|
+
collisionBoundary: options.collisionBoundary,
|
|
13
|
+
avoidCollisions: options.avoidCollisions,
|
|
14
|
+
hideWhenDetached: options.hideWhenDetached,
|
|
15
|
+
strategy: options.strategy,
|
|
16
|
+
tracking: options.tracking,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=picker-position.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"picker-position.js","sourceRoot":"","sources":["../../src/internal/picker-position.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,wBAAwB,GAEzB,MAAM,0BAA0B,CAAC;AAQlC,MAAM,UAAU,oBAAoB,CAClC,IAAiB,EACjB,OAAoB,EACpB,OAA8B;IAE9B,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO,wBAAwB,CAAC;IAChE,OAAO,cAAc,CAAC;QACpB,IAAI;QACJ,SAAS,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO;QACpC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -9,7 +9,7 @@ export interface DOMPopupConnection<State, Event> {
|
|
|
9
9
|
refresh(): void;
|
|
10
10
|
disconnect(): void;
|
|
11
11
|
}
|
|
12
|
-
export interface DOMPopupOptions<State, Event, Command> {
|
|
12
|
+
export interface DOMPopupOptions<State, Event, Command extends object> {
|
|
13
13
|
readonly root: HTMLElement;
|
|
14
14
|
readonly trigger?: HTMLElement;
|
|
15
15
|
readonly role: 'dialog' | 'alertdialog' | 'tooltip';
|
|
@@ -41,5 +41,4 @@ export interface DOMPopupOptions<State, Event, Command> {
|
|
|
41
41
|
readonly interaction?: InteractionStateInput;
|
|
42
42
|
readonly manageVisibility?: boolean;
|
|
43
43
|
}
|
|
44
|
-
export declare function createDOMPopup<State, Event, Command>(options: DOMPopupOptions<State, Event, Command>): Result<DOMPopupConnection<State, Event>>;
|
|
45
|
-
//# sourceMappingURL=popup-control.d.ts.map
|
|
44
|
+
export declare function createDOMPopup<State, Event, Command extends object>(options: DOMPopupOptions<State, Event, Command>): Result<DOMPopupConnection<State, Event>>;
|