@sectile/dom 0.1.0 → 0.2.1
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 +6 -0
- package/dist/accordion.d.ts +68 -13
- package/dist/accordion.d.ts.map +1 -1
- package/dist/accordion.js +224 -78
- package/dist/accordion.js.map +1 -1
- package/dist/alert-dialog.d.ts +5 -0
- package/dist/alert-dialog.d.ts.map +1 -1
- package/dist/alert-dialog.js +2 -2
- package/dist/alert-dialog.js.map +1 -1
- package/dist/calendar.d.ts +6 -0
- package/dist/calendar.d.ts.map +1 -1
- package/dist/calendar.js +10 -10
- package/dist/calendar.js.map +1 -1
- package/dist/carousel.d.ts +11 -1
- package/dist/carousel.d.ts.map +1 -1
- package/dist/carousel.js +13 -8
- package/dist/carousel.js.map +1 -1
- package/dist/cascade-select.d.ts +61 -0
- package/dist/cascade-select.d.ts.map +1 -0
- package/dist/cascade-select.js +175 -0
- package/dist/cascade-select.js.map +1 -0
- package/dist/checkbox.d.ts +47 -1
- package/dist/checkbox.d.ts.map +1 -1
- package/dist/checkbox.js +54 -3
- package/dist/checkbox.js.map +1 -1
- package/dist/color-picker.d.ts +54 -0
- package/dist/color-picker.d.ts.map +1 -0
- package/dist/color-picker.js +316 -0
- package/dist/color-picker.js.map +1 -0
- package/dist/combobox.d.ts +9 -0
- package/dist/combobox.d.ts.map +1 -1
- package/dist/combobox.js +23 -12
- package/dist/combobox.js.map +1 -1
- package/dist/date-field.d.ts +6 -0
- package/dist/date-field.d.ts.map +1 -1
- package/dist/date-field.js +8 -5
- package/dist/date-field.js.map +1 -1
- package/dist/date-picker.d.ts +10 -1
- package/dist/date-picker.d.ts.map +1 -1
- package/dist/date-picker.js +15 -6
- package/dist/date-picker.js.map +1 -1
- package/dist/date-range-field.d.ts +48 -0
- package/dist/date-range-field.d.ts.map +1 -0
- package/dist/date-range-field.js +114 -0
- package/dist/date-range-field.js.map +1 -0
- package/dist/date-range-picker.d.ts +8 -1
- package/dist/date-range-picker.d.ts.map +1 -1
- package/dist/date-range-picker.js +14 -9
- package/dist/date-range-picker.js.map +1 -1
- package/dist/date-time-field.d.ts +6 -0
- package/dist/date-time-field.d.ts.map +1 -1
- package/dist/date-time-field.js +10 -7
- package/dist/date-time-field.js.map +1 -1
- package/dist/date-time-picker.d.ts +10 -1
- package/dist/date-time-picker.d.ts.map +1 -1
- package/dist/date-time-picker.js +49 -13
- package/dist/date-time-picker.js.map +1 -1
- package/dist/date-time-range-picker.d.ts +12 -2
- package/dist/date-time-range-picker.d.ts.map +1 -1
- package/dist/date-time-range-picker.js +62 -9
- package/dist/date-time-range-picker.js.map +1 -1
- package/dist/dialog.d.ts +4 -0
- package/dist/dialog.d.ts.map +1 -1
- package/dist/dialog.js +2 -2
- package/dist/dialog.js.map +1 -1
- package/dist/disclosure.d.ts +46 -0
- package/dist/disclosure.d.ts.map +1 -1
- package/dist/disclosure.js +99 -31
- package/dist/disclosure.js.map +1 -1
- package/dist/editable.d.ts +37 -0
- package/dist/editable.d.ts.map +1 -0
- package/dist/editable.js +83 -0
- package/dist/editable.js.map +1 -0
- package/dist/feed.d.ts +12 -2
- package/dist/feed.d.ts.map +1 -1
- package/dist/feed.js +128 -45
- package/dist/feed.js.map +1 -1
- package/dist/form.d.ts +82 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/form.js +473 -0
- package/dist/form.js.map +1 -0
- package/dist/grid.d.ts +12 -1
- package/dist/grid.d.ts.map +1 -1
- package/dist/grid.js +18 -11
- package/dist/grid.js.map +1 -1
- package/dist/index.d.ts +76 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -10
- package/dist/index.js.map +1 -1
- package/dist/internal/checked-control.d.ts +39 -0
- package/dist/internal/checked-control.d.ts.map +1 -1
- package/dist/internal/checked-control.js +111 -19
- package/dist/internal/checked-control.js.map +1 -1
- package/dist/internal/controller.js +2 -2
- package/dist/internal/controller.js.map +1 -1
- package/dist/internal/date-picker-cell.d.ts +2 -0
- package/dist/internal/date-picker-cell.d.ts.map +1 -0
- package/dist/internal/date-picker-cell.js +10 -0
- package/dist/internal/date-picker-cell.js.map +1 -0
- package/dist/internal/direction.d.ts +3 -0
- package/dist/internal/direction.d.ts.map +1 -0
- package/dist/internal/direction.js +8 -0
- package/dist/internal/direction.js.map +1 -0
- package/dist/internal/facade.d.ts +2 -1
- package/dist/internal/facade.d.ts.map +1 -1
- package/dist/internal/facade.js.map +1 -1
- package/dist/internal/floating-position.d.ts +26 -0
- package/dist/internal/floating-position.d.ts.map +1 -0
- package/dist/internal/floating-position.js +93 -0
- package/dist/internal/floating-position.js.map +1 -0
- package/dist/internal/layer-binding.d.ts +16 -0
- package/dist/internal/layer-binding.d.ts.map +1 -0
- package/dist/internal/layer-binding.js +99 -0
- package/dist/internal/layer-binding.js.map +1 -0
- package/dist/internal/layer-manager.d.ts +19 -0
- package/dist/internal/layer-manager.d.ts.map +1 -0
- package/dist/internal/layer-manager.js +81 -0
- package/dist/internal/layer-manager.js.map +1 -0
- package/dist/internal/menu-control.d.ts +4 -1
- package/dist/internal/menu-control.d.ts.map +1 -1
- package/dist/internal/menu-control.js +53 -25
- package/dist/internal/menu-control.js.map +1 -1
- package/dist/internal/popup-control.d.ts +1 -0
- package/dist/internal/popup-control.d.ts.map +1 -1
- package/dist/internal/popup-control.js +51 -2
- package/dist/internal/popup-control.js.map +1 -1
- package/dist/internal/semantic-controller.js +4 -4
- package/dist/internal/semantic-controller.js.map +1 -1
- package/dist/internal/text-element.d.ts.map +1 -1
- package/dist/internal/text-element.js +3 -1
- package/dist/internal/text-element.js.map +1 -1
- package/dist/listbox.d.ts +40 -1
- package/dist/listbox.d.ts.map +1 -1
- package/dist/listbox.js +85 -38
- package/dist/listbox.js.map +1 -1
- package/dist/menu.d.ts +2 -0
- package/dist/menu.d.ts.map +1 -1
- package/dist/menu.js.map +1 -1
- package/dist/month-picker.d.ts +5 -0
- package/dist/month-picker.d.ts.map +1 -0
- package/dist/month-picker.js +3 -0
- package/dist/month-picker.js.map +1 -0
- package/dist/month-range-picker.d.ts +4 -0
- package/dist/month-range-picker.d.ts.map +1 -0
- package/dist/month-range-picker.js +3 -0
- package/dist/month-range-picker.js.map +1 -0
- package/dist/multi-thumb-slider.d.ts +5 -0
- package/dist/multi-thumb-slider.d.ts.map +1 -1
- package/dist/multi-thumb-slider.js +8 -8
- package/dist/multi-thumb-slider.js.map +1 -1
- package/dist/navigation-menu.d.ts +8 -0
- package/dist/navigation-menu.d.ts.map +1 -0
- package/dist/navigation-menu.js +10 -0
- package/dist/navigation-menu.js.map +1 -0
- package/dist/number-field.d.ts +3 -0
- package/dist/number-field.d.ts.map +1 -1
- package/dist/number-field.js +8 -6
- package/dist/number-field.js.map +1 -1
- package/dist/pagination.d.ts +13 -0
- package/dist/pagination.d.ts.map +1 -1
- package/dist/pagination.js +35 -5
- package/dist/pagination.js.map +1 -1
- package/dist/pin-input.d.ts +4 -0
- package/dist/pin-input.d.ts.map +1 -1
- package/dist/pin-input.js +12 -4
- package/dist/pin-input.js.map +1 -1
- package/dist/popover.d.ts +54 -0
- package/dist/popover.d.ts.map +1 -0
- package/dist/popover.js +79 -0
- package/dist/popover.js.map +1 -0
- package/dist/quantity-field.d.ts +7 -0
- package/dist/quantity-field.d.ts.map +1 -1
- package/dist/quantity-field.js +24 -6
- package/dist/quantity-field.js.map +1 -1
- package/dist/radio-group.d.ts +30 -1
- package/dist/radio-group.d.ts.map +1 -1
- package/dist/radio-group.js +81 -28
- package/dist/radio-group.js.map +1 -1
- package/dist/range-calendar.d.ts +3 -0
- package/dist/range-calendar.d.ts.map +1 -0
- package/dist/range-calendar.js +2 -0
- package/dist/range-calendar.js.map +1 -0
- package/dist/rating.d.ts +1 -0
- package/dist/rating.d.ts.map +1 -1
- package/dist/rating.js.map +1 -1
- package/dist/reorder.d.ts +39 -0
- package/dist/reorder.d.ts.map +1 -0
- package/dist/reorder.js +308 -0
- package/dist/reorder.js.map +1 -0
- package/dist/select.d.ts +5 -0
- package/dist/select.d.ts.map +1 -1
- package/dist/select.js +11 -9
- package/dist/select.js.map +1 -1
- package/dist/slider.d.ts +35 -0
- package/dist/slider.d.ts.map +1 -1
- package/dist/slider.js +111 -34
- package/dist/slider.js.map +1 -1
- package/dist/spin-button.d.ts +3 -0
- package/dist/spin-button.d.ts.map +1 -1
- package/dist/spin-button.js +10 -7
- package/dist/spin-button.js.map +1 -1
- package/dist/switch.d.ts +30 -1
- package/dist/switch.d.ts.map +1 -1
- package/dist/switch.js +35 -3
- package/dist/switch.js.map +1 -1
- package/dist/tabs.d.ts +32 -1
- package/dist/tabs.d.ts.map +1 -1
- package/dist/tabs.js +98 -32
- package/dist/tabs.js.map +1 -1
- package/dist/tags-input.d.ts +6 -0
- package/dist/tags-input.d.ts.map +1 -1
- package/dist/tags-input.js +7 -8
- package/dist/tags-input.js.map +1 -1
- package/dist/text.d.ts +5 -0
- package/dist/text.d.ts.map +1 -1
- package/dist/text.js +32 -10
- package/dist/text.js.map +1 -1
- package/dist/time-field.d.ts +6 -0
- package/dist/time-field.d.ts.map +1 -1
- package/dist/time-field.js +6 -4
- package/dist/time-field.js.map +1 -1
- package/dist/time-range-field.d.ts +48 -0
- package/dist/time-range-field.d.ts.map +1 -0
- package/dist/time-range-field.js +98 -0
- package/dist/time-range-field.js.map +1 -0
- package/dist/timer.d.ts +32 -0
- package/dist/timer.d.ts.map +1 -0
- package/dist/timer.js +46 -0
- package/dist/timer.js.map +1 -0
- package/dist/toast.d.ts +34 -0
- package/dist/toast.d.ts.map +1 -0
- package/dist/toast.js +116 -0
- package/dist/toast.js.map +1 -0
- package/dist/toggle-button.d.ts +24 -1
- package/dist/toggle-button.d.ts.map +1 -1
- package/dist/toggle-button.js +28 -3
- package/dist/toggle-button.js.map +1 -1
- package/dist/toggle-group.d.ts +42 -0
- package/dist/toggle-group.d.ts.map +1 -0
- package/dist/toggle-group.js +91 -0
- package/dist/toggle-group.js.map +1 -0
- package/dist/toolbar.d.ts +7 -1
- package/dist/toolbar.d.ts.map +1 -1
- package/dist/toolbar.js +15 -12
- package/dist/toolbar.js.map +1 -1
- package/dist/tooltip.d.ts +27 -1
- package/dist/tooltip.d.ts.map +1 -1
- package/dist/tooltip.js +55 -2
- package/dist/tooltip.js.map +1 -1
- package/dist/tree-grid.d.ts +9 -0
- package/dist/tree-grid.d.ts.map +1 -1
- package/dist/tree-grid.js +33 -16
- package/dist/tree-grid.js.map +1 -1
- package/dist/tree-view.d.ts +19 -7
- package/dist/tree-view.d.ts.map +1 -1
- package/dist/tree-view.js +51 -28
- package/dist/tree-view.js.map +1 -1
- package/dist/year-picker.d.ts +3 -0
- package/dist/year-picker.d.ts.map +1 -0
- package/dist/year-picker.js +2 -0
- package/dist/year-picker.js.map +1 -0
- package/dist/year-range-picker.d.ts +3 -0
- package/dist/year-range-picker.d.ts.map +1 -0
- package/dist/year-range-picker.js +2 -0
- package/dist/year-range-picker.js.map +1 -0
- package/package.json +91 -3
package/README.md
CHANGED
|
@@ -8,9 +8,15 @@ DOM bindings for Sectile interaction semantics.
|
|
|
8
8
|
- Project ARIA state, focus requests, visibility, and element attributes
|
|
9
9
|
- Own controlled or uncontrolled runtime synchronization
|
|
10
10
|
- Preserve native text editing and IME behavior
|
|
11
|
+
- Delegate form, focus, and keyboard behavior to native elements where HTML already
|
|
12
|
+
defines it, while projecting the state those elements need
|
|
11
13
|
|
|
12
14
|
The package does not provide markup, components, styles, themes, or application data. Consumers choose the rendered structure and bind it to a Sectile connection.
|
|
13
15
|
|
|
16
|
+
## Floating surface positioning
|
|
17
|
+
|
|
18
|
+
Popover and tooltip placement use Floating UI. Offset, collision flip and shift, available-size data, arrow positioning, detached-anchor hiding, and open-only automatic updates are enabled by default. Boundaries, padding, strategy, update observers, and the middleware queue remain configurable. Floating UI middleware is re-exported from both component entry points for custom positioning.
|
|
19
|
+
|
|
14
20
|
## API shape
|
|
15
21
|
|
|
16
22
|
Direct `createX` factories return ready connections. Matching `tryCreateX` factories expose recoverable construction failure. Every facade provides `state`, `send`, `update`, `subscribe`, and `destroy` alongside component-specific binding methods. Lower-level controller and connection factories remain available for separate ownership.
|
package/dist/accordion.d.ts
CHANGED
|
@@ -1,36 +1,91 @@
|
|
|
1
1
|
import { type FacadeConnection } from './internal/facade.js';
|
|
2
2
|
import type { Result, StableID } from '@sectile/core';
|
|
3
|
-
import type { RevisionSnapshot } from '@sectile/core/revision';
|
|
4
|
-
import { type AccordionCommand, type AccordionEvent, type
|
|
3
|
+
import type { RevisionResult, RevisionSnapshot } from '@sectile/core/revision';
|
|
4
|
+
import { type AccordionCommand, type AccordionEvent, type AccordionState } from '@sectile/core/accordion';
|
|
5
5
|
import type { KeyboardInput } from './tabs.js';
|
|
6
6
|
export type AccordionEffect<ID extends StableID = StableID> = AccordionCommand<ID>;
|
|
7
|
-
export interface
|
|
8
|
-
readonly
|
|
7
|
+
export interface AccordionValueChangeDetails<ID extends StableID = StableID> {
|
|
8
|
+
readonly value: readonly ID[];
|
|
9
|
+
readonly previousValue: readonly ID[];
|
|
10
|
+
}
|
|
11
|
+
export interface AccordionHighlightChangeDetails<ID extends StableID = StableID> {
|
|
12
|
+
readonly value: ID | null;
|
|
13
|
+
readonly previousValue: ID | null;
|
|
14
|
+
}
|
|
15
|
+
export interface AccordionControllerOptions<ID extends StableID = StableID> {
|
|
9
16
|
readonly items: readonly ID[];
|
|
10
|
-
readonly
|
|
17
|
+
readonly expansion?: 'single' | 'multiple';
|
|
18
|
+
readonly collapsible?: boolean;
|
|
11
19
|
readonly disabledItems?: readonly ID[];
|
|
12
20
|
readonly disabled?: boolean;
|
|
13
|
-
readonly
|
|
14
|
-
readonly
|
|
21
|
+
readonly readOnly?: boolean;
|
|
22
|
+
readonly value?: readonly ID[];
|
|
23
|
+
readonly defaultValue?: readonly ID[];
|
|
15
24
|
readonly highlightedValue?: ID | null;
|
|
16
25
|
readonly defaultHighlightedValue?: ID | null;
|
|
26
|
+
readonly onValueChange?: (change: AccordionValueChangeDetails<ID>) => void;
|
|
27
|
+
readonly onHighlightedValueChange?: (change: AccordionHighlightChangeDetails<ID>) => void;
|
|
28
|
+
}
|
|
29
|
+
export type AccordionControllerValueChangeHandler<ID extends StableID = StableID> = NonNullable<AccordionControllerOptions<ID>['onValueChange']>;
|
|
30
|
+
export type AccordionControllerHighlightedValueChangeHandler<ID extends StableID = StableID> = NonNullable<AccordionControllerOptions<ID>['onHighlightedValueChange']>;
|
|
31
|
+
export interface AccordionControlledValues<ID extends StableID = StableID> {
|
|
32
|
+
readonly value?: readonly ID[];
|
|
33
|
+
readonly openIDs?: readonly ID[];
|
|
34
|
+
readonly highlightedValue?: ID | null;
|
|
35
|
+
}
|
|
36
|
+
export interface AccordionController<ID extends StableID = StableID> {
|
|
37
|
+
getSnapshot(): RevisionSnapshot<AccordionState<ID>>;
|
|
38
|
+
syncControlledValues(values: AccordionControlledValues<ID>): Result<RevisionSnapshot<AccordionState<ID>>>;
|
|
39
|
+
handleEvent(event: AccordionEvent<ID>, expectedRevision?: number): RevisionResult<AccordionState<ID>, AccordionEffect<ID>>;
|
|
40
|
+
}
|
|
41
|
+
export interface AccordionOptions<ID extends StableID = StableID> extends AccordionControllerOptions<ID> {
|
|
42
|
+
readonly root: HTMLElement;
|
|
43
|
+
readonly openIDs?: readonly ID[];
|
|
44
|
+
readonly defaultOpenIDs?: readonly ID[];
|
|
17
45
|
readonly label?: string;
|
|
18
46
|
readonly onOpenChange?: (openIDs: readonly ID[]) => void;
|
|
19
|
-
readonly onHighlightedValueChange?: (value: ID | null) => void;
|
|
20
47
|
readonly onUpdate?: () => void;
|
|
21
48
|
}
|
|
49
|
+
export type AccordionOpenChangeHandler<ID extends StableID = StableID> = NonNullable<AccordionOptions<ID>['onOpenChange']>;
|
|
50
|
+
export type AccordionUpdateHandler<ID extends StableID = StableID> = NonNullable<AccordionOptions<ID>['onUpdate']>;
|
|
51
|
+
export interface AccordionRootAttributesOptions {
|
|
52
|
+
readonly disabled?: boolean;
|
|
53
|
+
readonly readOnly?: boolean;
|
|
54
|
+
readonly label?: string;
|
|
55
|
+
}
|
|
56
|
+
export interface AccordionTriggerAttributes<ID extends StableID = StableID> {
|
|
57
|
+
readonly id: ID;
|
|
58
|
+
readonly triggerID?: string;
|
|
59
|
+
readonly panelID?: string;
|
|
60
|
+
readonly disabled?: boolean;
|
|
61
|
+
}
|
|
62
|
+
export interface AccordionTriggerAttributesOptions {
|
|
63
|
+
readonly disabled?: boolean;
|
|
64
|
+
readonly readOnly?: boolean;
|
|
65
|
+
readonly native?: boolean;
|
|
66
|
+
}
|
|
67
|
+
export interface AccordionPanelAttributesOptions {
|
|
68
|
+
readonly panelID?: string;
|
|
69
|
+
readonly triggerID?: string;
|
|
70
|
+
}
|
|
22
71
|
export interface AccordionConnection<ID extends StableID = StableID> {
|
|
23
72
|
getSnapshot(): RevisionSnapshot<AccordionState<ID>>;
|
|
24
|
-
syncControlledValues(values:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}): Result<RevisionSnapshot<AccordionState<ID>>>;
|
|
73
|
+
syncControlledValues(values: AccordionControlledValues<ID>): Result<RevisionSnapshot<AccordionState<ID>>>;
|
|
74
|
+
setRootAttributes(label?: string): void;
|
|
75
|
+
setTriggerAttributes(element: HTMLElement, attributes: AccordionTriggerAttributes<ID>): void;
|
|
28
76
|
setHeaderAttributes(element: HTMLElement, id: ID, panelID?: string, disabled?: boolean): void;
|
|
29
|
-
setPanelAttributes(element: HTMLElement, id: ID,
|
|
77
|
+
setPanelAttributes(element: HTMLElement, id: ID, attributes?: AccordionPanelAttributesOptions | string): void;
|
|
30
78
|
handleEvent(event: AccordionEvent<ID>): boolean;
|
|
31
79
|
disconnect(): void;
|
|
32
80
|
}
|
|
81
|
+
export declare function createAccordionController<ID extends StableID>(options: AccordionControllerOptions<ID>): Result<AccordionController<ID>>;
|
|
33
82
|
export declare function createAccordion<ID extends StableID>(options: AccordionOptions<ID>): FacadeConnection<AccordionConnection<ID>>;
|
|
34
83
|
export declare function tryCreateAccordion<ID extends StableID>(options: AccordionOptions<ID>): Result<FacadeConnection<AccordionConnection<ID>>>;
|
|
84
|
+
export declare function connectAccordion<ID extends StableID>(options: AccordionOptions<ID> & {
|
|
85
|
+
readonly controller: AccordionController<ID>;
|
|
86
|
+
}): AccordionConnection<ID>;
|
|
87
|
+
export declare function getAccordionRootAttributes(options?: AccordionRootAttributesOptions): Readonly<Record<string, string | undefined>>;
|
|
88
|
+
export declare function getAccordionTriggerAttributes<ID extends StableID>(state: Pick<AccordionState<ID>, 'has'>, attributes: AccordionTriggerAttributes<ID>, options?: AccordionTriggerAttributesOptions): Readonly<Record<string, string | number | boolean | undefined>>;
|
|
89
|
+
export declare function getAccordionPanelAttributes<ID extends StableID>(state: Pick<AccordionState<ID>, 'has'>, id: ID, options?: AccordionPanelAttributesOptions): Readonly<Record<string, string | boolean | undefined>>;
|
|
35
90
|
export declare function toAccordionEvent<ID extends StableID = StableID>(input: KeyboardInput): AccordionEvent<ID> | null;
|
|
36
91
|
//# sourceMappingURL=accordion.d.ts.map
|
package/dist/accordion.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../src/accordion.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/
|
|
1
|
+
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../src/accordion.ts"],"names":[],"mappings":"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"}
|
package/dist/accordion.js
CHANGED
|
@@ -1,52 +1,122 @@
|
|
|
1
1
|
import { createFacadeConnection } from './internal/facade.js';
|
|
2
2
|
import { unwrap } from '@sectile/core/result';
|
|
3
|
-
import {
|
|
4
|
-
import { applyAccordionEvent,
|
|
3
|
+
import { tryCreateSequence } from '@sectile/core/sequence';
|
|
4
|
+
import { applyAccordionEvent, tryCreateAccordionState, } from '@sectile/core/accordion';
|
|
5
5
|
import { findDelegatedID } from './internal/delegated-event.js';
|
|
6
6
|
import { createDisabledItems } from './internal/disabled-items.js';
|
|
7
7
|
import { createSemanticController } from './internal/semantic-controller.js';
|
|
8
8
|
import { setInteractionAttributes } from './internal/interaction.js';
|
|
9
|
-
export function
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
export function tryCreateAccordion(options) {
|
|
13
|
-
return createFacadeConnection(options, (options) => tryCreateAccordionConnection(options));
|
|
14
|
-
}
|
|
15
|
-
function tryCreateAccordionConnection(options) {
|
|
16
|
-
const domain = createSequence(options.items);
|
|
9
|
+
export function createAccordionController(options) {
|
|
10
|
+
const domain = tryCreateSequence(options.items);
|
|
17
11
|
if (!domain.ok)
|
|
18
12
|
return domain;
|
|
19
13
|
const disabled = createDisabledItems(domain.value, options.disabledItems);
|
|
20
14
|
if (!disabled.ok)
|
|
21
15
|
return disabled;
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const openControlled = options.openIDs !== undefined;
|
|
16
|
+
const policies = accordionPolicies(options, disabled.value);
|
|
17
|
+
const valueControlled = options.value !== undefined;
|
|
25
18
|
const highlightControlled = options.highlightedValue !== undefined;
|
|
26
|
-
const
|
|
27
|
-
?? (
|
|
19
|
+
const initialValue = options.value ?? options.defaultValue
|
|
20
|
+
?? (policies.collapsible === false && options.items[0] !== undefined ? [options.items[0]] : []);
|
|
28
21
|
const runtime = createSemanticController({
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
interaction: options,
|
|
23
|
+
interactionIntent: accordionIntent,
|
|
24
|
+
initial: tryCreateAccordionState(domain.value, {
|
|
25
|
+
openIDs: initialValue,
|
|
26
|
+
current: options.highlightedValue !== undefined
|
|
27
|
+
? options.highlightedValue
|
|
28
|
+
: options.defaultHighlightedValue ?? null,
|
|
32
29
|
}, policies),
|
|
33
30
|
reducer: (state, event) => applyAccordionEvent(domain.value, state, event, policies),
|
|
34
|
-
reconcile: (previous, proposed) =>
|
|
35
|
-
openIDs:
|
|
31
|
+
reconcile: (previous, proposed) => tryCreateAccordionState(domain.value, {
|
|
32
|
+
openIDs: valueControlled || options.readOnly === true ? previous.openIDs : proposed.openIDs,
|
|
36
33
|
current: highlightControlled ? previous.cursor.current : proposed.cursor.current,
|
|
37
34
|
}, policies),
|
|
38
35
|
notify: (previous, proposed) => {
|
|
39
|
-
if (!sameIDs(previous.openIDs, proposed.openIDs))
|
|
40
|
-
options.
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
if (!sameIDs(previous.openIDs, proposed.openIDs)) {
|
|
37
|
+
options.onValueChange?.({ value: proposed.openIDs, previousValue: previous.openIDs });
|
|
38
|
+
}
|
|
39
|
+
if (previous.cursor.current !== proposed.cursor.current) {
|
|
40
|
+
options.onHighlightedValueChange?.({
|
|
41
|
+
value: proposed.cursor.current,
|
|
42
|
+
previousValue: previous.cursor.current,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
43
45
|
},
|
|
44
46
|
toEffect: (command) => command,
|
|
45
|
-
interaction: options,
|
|
46
47
|
});
|
|
47
48
|
if (!runtime.ok)
|
|
48
49
|
return runtime;
|
|
49
|
-
return {
|
|
50
|
+
return {
|
|
51
|
+
ok: true,
|
|
52
|
+
value: new DOMAccordionController(domain.value, policies, runtime.value, valueControlled, highlightControlled),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export function createAccordion(options) {
|
|
56
|
+
return unwrap(tryCreateAccordion(options));
|
|
57
|
+
}
|
|
58
|
+
export function tryCreateAccordion(options) {
|
|
59
|
+
return createFacadeConnection(options, (resolved) => {
|
|
60
|
+
const controller = createAccordionController({
|
|
61
|
+
...resolved,
|
|
62
|
+
...((resolved.value ?? resolved.openIDs) === undefined
|
|
63
|
+
? {}
|
|
64
|
+
: { value: resolved.value ?? resolved.openIDs }),
|
|
65
|
+
...((resolved.defaultValue ?? resolved.defaultOpenIDs) === undefined
|
|
66
|
+
? {}
|
|
67
|
+
: { defaultValue: resolved.defaultValue ?? resolved.defaultOpenIDs }),
|
|
68
|
+
onValueChange: (change) => {
|
|
69
|
+
resolved.onValueChange?.(change);
|
|
70
|
+
resolved.onOpenChange?.(change.value);
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
if (!controller.ok)
|
|
74
|
+
return controller;
|
|
75
|
+
return { ok: true, value: connectAccordion({ ...resolved, controller: controller.value }) };
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
export function connectAccordion(options) {
|
|
79
|
+
return new DOMAccordionConnection(options);
|
|
80
|
+
}
|
|
81
|
+
export function getAccordionRootAttributes(options = {}) {
|
|
82
|
+
return Object.freeze({
|
|
83
|
+
'data-scope': 'accordion',
|
|
84
|
+
'data-part': 'root',
|
|
85
|
+
'data-disabled': options.disabled === true ? '' : undefined,
|
|
86
|
+
'data-readonly': options.readOnly === true ? '' : undefined,
|
|
87
|
+
'aria-label': options.label,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
export function getAccordionTriggerAttributes(state, attributes, options = {}) {
|
|
91
|
+
const unavailable = options.disabled === true || attributes.disabled === true;
|
|
92
|
+
const open = state.has(attributes.id);
|
|
93
|
+
return Object.freeze({
|
|
94
|
+
id: attributes.triggerID,
|
|
95
|
+
type: options.native === true ? 'button' : undefined,
|
|
96
|
+
disabled: options.native === true && unavailable ? true : undefined,
|
|
97
|
+
tabindex: unavailable ? -1 : 0,
|
|
98
|
+
'aria-expanded': String(open),
|
|
99
|
+
'aria-controls': attributes.panelID,
|
|
100
|
+
'aria-disabled': unavailable ? 'true' : undefined,
|
|
101
|
+
'data-scope': 'accordion',
|
|
102
|
+
'data-part': 'trigger',
|
|
103
|
+
'data-accordion-id': String(attributes.id),
|
|
104
|
+
'data-state': open ? 'open' : 'closed',
|
|
105
|
+
'data-disabled': unavailable ? '' : undefined,
|
|
106
|
+
'data-readonly': options.readOnly === true ? '' : undefined,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
export function getAccordionPanelAttributes(state, id, options = {}) {
|
|
110
|
+
const open = state.has(id);
|
|
111
|
+
return Object.freeze({
|
|
112
|
+
id: options.panelID,
|
|
113
|
+
role: 'region',
|
|
114
|
+
hidden: !open,
|
|
115
|
+
'aria-labelledby': options.triggerID,
|
|
116
|
+
'data-scope': 'accordion',
|
|
117
|
+
'data-part': 'content',
|
|
118
|
+
'data-state': open ? 'open' : 'closed',
|
|
119
|
+
});
|
|
50
120
|
}
|
|
51
121
|
export function toAccordionEvent(input) {
|
|
52
122
|
if (input.altKey || input.ctrlKey || input.metaKey)
|
|
@@ -63,81 +133,157 @@ export function toAccordionEvent(input) {
|
|
|
63
133
|
return 'toggle';
|
|
64
134
|
return null;
|
|
65
135
|
}
|
|
66
|
-
class
|
|
67
|
-
#options;
|
|
136
|
+
class DOMAccordionController {
|
|
68
137
|
#domain;
|
|
138
|
+
#policies;
|
|
69
139
|
#runtime;
|
|
70
|
-
#
|
|
140
|
+
#valueControlled;
|
|
71
141
|
#highlightControlled;
|
|
72
|
-
|
|
73
|
-
#disabledItems;
|
|
74
|
-
#keydown;
|
|
75
|
-
#click;
|
|
76
|
-
constructor(options, domain, runtime, openControlled, highlightControlled, policies, disabledItems) {
|
|
77
|
-
this.#options = options;
|
|
142
|
+
constructor(domain, policies, runtime, valueControlled, highlightControlled) {
|
|
78
143
|
this.#domain = domain;
|
|
144
|
+
this.#policies = policies;
|
|
79
145
|
this.#runtime = runtime;
|
|
80
|
-
this.#
|
|
146
|
+
this.#valueControlled = valueControlled;
|
|
81
147
|
this.#highlightControlled = highlightControlled;
|
|
82
|
-
this.#policies = policies;
|
|
83
|
-
this.#disabledItems = disabledItems;
|
|
84
|
-
if (options.label !== undefined)
|
|
85
|
-
options.root.setAttribute('aria-label', options.label);
|
|
86
|
-
setInteractionAttributes(options.root, options);
|
|
87
|
-
this.#keydown = (event) => { const semantic = toAccordionEvent(event); if (semantic !== null) {
|
|
88
|
-
event.preventDefault();
|
|
89
|
-
this.handleEvent(semantic);
|
|
90
|
-
} };
|
|
91
|
-
this.#click = (event) => { const id = findDelegatedID(event.target, options.root, 'accordionId'); if (id !== null)
|
|
92
|
-
this.handleEvent({ type: 'toggle', id: id }); };
|
|
93
|
-
options.root.addEventListener('keydown', this.#keydown);
|
|
94
|
-
options.root.addEventListener('click', this.#click);
|
|
95
148
|
}
|
|
96
149
|
getSnapshot() { return this.#runtime.getSnapshot(); }
|
|
97
150
|
syncControlledValues(values) {
|
|
98
|
-
|
|
99
|
-
|
|
151
|
+
const value = values.value ?? values.openIDs;
|
|
152
|
+
if (this.#valueControlled !== (value !== undefined)
|
|
153
|
+
|| this.#highlightControlled !== (values.highlightedValue !== undefined)) {
|
|
154
|
+
return { ok: false, error: {
|
|
155
|
+
class: 'construction',
|
|
156
|
+
code: 'controlled-shape-mismatch',
|
|
157
|
+
message: 'Controlled accordion values must preserve their construction-time shape.',
|
|
158
|
+
} };
|
|
100
159
|
}
|
|
101
160
|
const state = this.#runtime.getSnapshot().state;
|
|
102
|
-
|
|
103
|
-
openIDs: this.#
|
|
161
|
+
return this.#runtime.replace(tryCreateAccordionState(this.#domain, {
|
|
162
|
+
openIDs: this.#valueControlled ? value : state.openIDs,
|
|
104
163
|
current: this.#highlightControlled ? values.highlightedValue : state.cursor.current,
|
|
105
164
|
}, this.#policies));
|
|
165
|
+
}
|
|
166
|
+
handleEvent(event, expectedRevision) {
|
|
167
|
+
return this.#runtime.handle(event, expectedRevision);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
class DOMAccordionConnection {
|
|
171
|
+
#options;
|
|
172
|
+
#disabledItems;
|
|
173
|
+
#keydown;
|
|
174
|
+
#click;
|
|
175
|
+
constructor(options) {
|
|
176
|
+
this.#options = options;
|
|
177
|
+
this.#disabledItems = new Set(options.disabledItems ?? []);
|
|
178
|
+
this.setRootAttributes(options.label);
|
|
179
|
+
this.#keydown = (event) => {
|
|
180
|
+
const semantic = toAccordionEvent(event);
|
|
181
|
+
if (semantic === null)
|
|
182
|
+
return;
|
|
183
|
+
event.preventDefault();
|
|
184
|
+
this.handleEvent(semantic);
|
|
185
|
+
};
|
|
186
|
+
this.#click = (event) => {
|
|
187
|
+
const id = findDelegatedID(event.target, options.root, 'accordionId');
|
|
188
|
+
if (id !== null)
|
|
189
|
+
this.handleEvent({ type: 'toggle', id: id });
|
|
190
|
+
};
|
|
191
|
+
options.root.addEventListener('keydown', this.#keydown);
|
|
192
|
+
options.root.addEventListener('click', this.#click);
|
|
193
|
+
}
|
|
194
|
+
getSnapshot() { return this.#options.controller.getSnapshot(); }
|
|
195
|
+
syncControlledValues(values) {
|
|
196
|
+
const result = this.#options.controller.syncControlledValues({
|
|
197
|
+
...values,
|
|
198
|
+
...((values.value ?? values.openIDs) === undefined
|
|
199
|
+
? {}
|
|
200
|
+
: { value: values.value ?? values.openIDs }),
|
|
201
|
+
});
|
|
106
202
|
if (result.ok)
|
|
107
203
|
this.#options.onUpdate?.();
|
|
108
204
|
return result;
|
|
109
205
|
}
|
|
206
|
+
setRootAttributes(label = this.#options.label) {
|
|
207
|
+
applyAttributes(this.#options.root, getAccordionRootAttributes({
|
|
208
|
+
...(this.#options.disabled === undefined ? {} : { disabled: this.#options.disabled }),
|
|
209
|
+
...(this.#options.readOnly === undefined ? {} : { readOnly: this.#options.readOnly }),
|
|
210
|
+
...(label === undefined ? {} : { label }),
|
|
211
|
+
}));
|
|
212
|
+
setInteractionAttributes(this.#options.root, this.#options);
|
|
213
|
+
}
|
|
214
|
+
setTriggerAttributes(element, attributes) {
|
|
215
|
+
element.dataset['accordionId'] = String(attributes.id);
|
|
216
|
+
applyAttributes(element, getAccordionTriggerAttributes(this.getSnapshot().state, attributes, {
|
|
217
|
+
disabled: this.#options.disabled || this.#disabledItems.has(attributes.id),
|
|
218
|
+
...(this.#options.readOnly === undefined ? {} : { readOnly: this.#options.readOnly }),
|
|
219
|
+
native: element.tagName === 'BUTTON' || 'disabled' in element,
|
|
220
|
+
}));
|
|
221
|
+
}
|
|
110
222
|
setHeaderAttributes(element, id, panelID, disabled = false) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
element.setAttribute('aria-controls', panelID);
|
|
117
|
-
if (disabled || this.#disabledItems.has(id))
|
|
118
|
-
element.setAttribute('aria-disabled', 'true');
|
|
119
|
-
else
|
|
120
|
-
element.removeAttribute('aria-disabled');
|
|
223
|
+
this.setTriggerAttributes(element, {
|
|
224
|
+
id,
|
|
225
|
+
...(panelID === undefined ? {} : { panelID }),
|
|
226
|
+
disabled,
|
|
227
|
+
});
|
|
121
228
|
}
|
|
122
|
-
setPanelAttributes(element, id,
|
|
123
|
-
element.
|
|
124
|
-
element.hidden = !this.#runtime.getSnapshot().state.has(id);
|
|
125
|
-
if (headerID !== undefined)
|
|
126
|
-
element.setAttribute('aria-labelledby', headerID);
|
|
229
|
+
setPanelAttributes(element, id, attributes = {}) {
|
|
230
|
+
applyAttributes(element, getAccordionPanelAttributes(this.getSnapshot().state, id, typeof attributes === 'string' ? { triggerID: attributes } : attributes));
|
|
127
231
|
}
|
|
128
232
|
handleEvent(event) {
|
|
129
|
-
const result = this.#
|
|
130
|
-
if (result.ok)
|
|
131
|
-
queueMicrotask(() =>
|
|
132
|
-
for (const element of this.#options.root.querySelectorAll('[data-accordion-id]'))
|
|
133
|
-
if (element.dataset['accordionId'] === result.snapshot.state.cursor.current)
|
|
134
|
-
element.focus();
|
|
135
|
-
});
|
|
136
|
-
if (result.ok)
|
|
233
|
+
const result = this.#options.controller.handleEvent(event);
|
|
234
|
+
if (result.ok) {
|
|
235
|
+
queueMicrotask(() => focusCurrent(this.#options.root, result.snapshot.state.cursor.current));
|
|
137
236
|
this.#options.onUpdate?.();
|
|
237
|
+
}
|
|
138
238
|
return result.ok;
|
|
139
239
|
}
|
|
140
|
-
disconnect() {
|
|
240
|
+
disconnect() {
|
|
241
|
+
this.#options.root.removeEventListener('keydown', this.#keydown);
|
|
242
|
+
this.#options.root.removeEventListener('click', this.#click);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
function accordionPolicies(options, disabledItems) {
|
|
246
|
+
return Object.freeze({
|
|
247
|
+
expansion: options.expansion ?? 'single',
|
|
248
|
+
collapsible: options.collapsible ?? true,
|
|
249
|
+
eligible: (id) => !disabledItems.has(id),
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
function accordionIntent(event) {
|
|
253
|
+
return (typeof event === 'string' && ['next', 'previous', 'first', 'last'].includes(event))
|
|
254
|
+
|| (typeof event === 'object' && event.type === 'focus')
|
|
255
|
+
? 'navigate'
|
|
256
|
+
: 'mutate';
|
|
257
|
+
}
|
|
258
|
+
function focusCurrent(root, id) {
|
|
259
|
+
if (id === null)
|
|
260
|
+
return;
|
|
261
|
+
for (const element of root.querySelectorAll('[data-accordion-id]')) {
|
|
262
|
+
if (element.dataset['accordionId'] === String(id))
|
|
263
|
+
element.focus();
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
function applyAttributes(element, attributes) {
|
|
267
|
+
for (const [name, value] of Object.entries(attributes)) {
|
|
268
|
+
if (name === 'disabled' && 'disabled' in element) {
|
|
269
|
+
element.disabled = value === true;
|
|
270
|
+
continue;
|
|
271
|
+
}
|
|
272
|
+
if (name === 'hidden') {
|
|
273
|
+
element.hidden = value === true;
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
if (name === 'tabindex') {
|
|
277
|
+
element.tabIndex = Number(value ?? 0);
|
|
278
|
+
continue;
|
|
279
|
+
}
|
|
280
|
+
if (value === undefined || value === false)
|
|
281
|
+
element.removeAttribute(name);
|
|
282
|
+
else
|
|
283
|
+
element.setAttribute(name, value === true ? '' : String(value));
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
function sameIDs(left, right) {
|
|
287
|
+
return left.length === right.length && left.every((id, index) => id === right[index]);
|
|
141
288
|
}
|
|
142
|
-
function sameIDs(left, right) { return left.length === right.length && left.every((id, index) => id === right[index]); }
|
|
143
289
|
//# sourceMappingURL=accordion.js.map
|
package/dist/accordion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.js","sourceRoot":"","sources":["../src/accordion.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accordion.js","sourceRoot":"","sources":["../src/accordion.ts"],"names":[],"mappings":"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"}
|
package/dist/alert-dialog.d.ts
CHANGED
|
@@ -21,6 +21,11 @@ export interface AlertDialogOptions {
|
|
|
21
21
|
readonly onAnnounce?: () => void;
|
|
22
22
|
readonly onUpdate?: () => void;
|
|
23
23
|
}
|
|
24
|
+
export type AlertDialogOpenChangeHandler = NonNullable<AlertDialogOptions['onOpenChange']>;
|
|
25
|
+
export type AlertDialogInitialFocusHandler = NonNullable<AlertDialogOptions['onInitialFocus']>;
|
|
26
|
+
export type AlertDialogFocusRestoreHandler = NonNullable<AlertDialogOptions['onFocusRestore']>;
|
|
27
|
+
export type AlertDialogAnnounceHandler = NonNullable<AlertDialogOptions['onAnnounce']>;
|
|
28
|
+
export type AlertDialogUpdateHandler = NonNullable<AlertDialogOptions['onUpdate']>;
|
|
24
29
|
export type AlertDialogConnection = DOMPopupConnection<AlertDialogState, AlertDialogEvent>;
|
|
25
30
|
export declare function createAlertDialog(o: AlertDialogOptions): FacadeConnection<AlertDialogConnection>;
|
|
26
31
|
export declare function tryCreateAlertDialog(o: AlertDialogOptions): Result<FacadeConnection<AlertDialogConnection>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert-dialog.d.ts","sourceRoot":"","sources":["../src/alert-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"alert-dialog.d.ts","sourceRoot":"","sources":["../src/alert-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAA6E,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACrK,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACjJ,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IACxJ,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IACrJ,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACxG;AAED,MAAM,MAAM,4BAA4B,GAAG,WAAW,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC;AAC3F,MAAM,MAAM,8BAA8B,GAAG,WAAW,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC/F,MAAM,MAAM,8BAA8B,GAAG,WAAW,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC/F,MAAM,MAAM,0BAA0B,GAAG,WAAW,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;AACvF,MAAM,MAAM,wBAAwB,GAAG,WAAW,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;AACnF,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAC3F,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,CAEhG;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAE3G"}
|
package/dist/alert-dialog.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createFacadeConnection } from './internal/facade.js';
|
|
2
2
|
import { unwrap } from '@sectile/core/result';
|
|
3
|
-
import { applyAlertDialogEvent,
|
|
3
|
+
import { applyAlertDialogEvent, tryCreateAlertDialogState } from '@sectile/core/alert-dialog';
|
|
4
4
|
import { createDOMPopup } from './internal/popup-control.js';
|
|
5
5
|
export function createAlertDialog(o) {
|
|
6
6
|
return unwrap(tryCreateAlertDialog(o));
|
|
@@ -9,6 +9,6 @@ export function tryCreateAlertDialog(o) {
|
|
|
9
9
|
return createFacadeConnection(o, (o) => tryCreateAlertDialogConnection(o));
|
|
10
10
|
}
|
|
11
11
|
function tryCreateAlertDialogConnection(o) {
|
|
12
|
-
return createDOMPopup({ root: o.root, ...(o.trigger === undefined ? {} : { trigger: o.trigger }), role: 'alertdialog', modal: true, ...(o.label === undefined ? {} : { label: o.label }), ...(o.labelledBy === undefined ? {} : { labelledBy: o.labelledBy }), ...(o.describedBy === undefined ? {} : { describedBy: o.describedBy }), controlled: o.open !== undefined, initial:
|
|
12
|
+
return createDOMPopup({ root: o.root, ...(o.trigger === undefined ? {} : { trigger: o.trigger }), role: 'alertdialog', modal: true, ...(o.label === undefined ? {} : { label: o.label }), ...(o.labelledBy === undefined ? {} : { labelledBy: o.labelledBy }), ...(o.describedBy === undefined ? {} : { describedBy: o.describedBy }), controlled: o.open !== undefined, initial: tryCreateAlertDialogState(o.open ?? o.defaultOpen ?? false), open: 'open', toggle: 'toggle', close: 'close', reducer: applyAlertDialogEvent, create: tryCreateAlertDialogState, read: (s) => s.open, interaction: o, ...(o.initialFocus === undefined ? {} : { initialFocus: o.initialFocus }), autoFocus: o.autoFocus ?? true, restoreFocus: o.restoreFocus ?? true, trapFocus: o.trapFocus ?? true, onOpenChange: o.onOpenChange, command: (c) => c.type === 'request-initial-focus' ? o.onInitialFocus?.() : c.type === 'request-focus-restore' ? o.onFocusRestore?.() : o.onAnnounce?.(), onUpdate: o.onUpdate });
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=alert-dialog.js.map
|
package/dist/alert-dialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert-dialog.js","sourceRoot":"","sources":["../src/alert-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"alert-dialog.js","sourceRoot":"","sources":["../src/alert-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAyE,MAAM,4BAA4B,CAAC;AACrK,OAAO,EAAE,cAAc,EAA2B,MAAM,6BAA6B,CAAC;AAetF,MAAM,UAAU,iBAAiB,CAAC,CAAqB;IACrD,OAAO,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,CAAqB;IACxD,OAAO,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,8BAA8B,CAAC,CAAqB;IAC3D,OAAO,cAAc,CAAyD,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClgC,CAAC"}
|
package/dist/calendar.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type FacadeConnection } from './internal/facade.js';
|
|
2
2
|
import type { Result, StableID } from '@sectile/core';
|
|
3
3
|
import { type CalendarCommand, type CalendarEvent, type CalendarPolicies, type CalendarState } from '@sectile/core/calendar';
|
|
4
|
+
export type { CalendarPolicies } from '@sectile/core/calendar';
|
|
4
5
|
import { type Grid } from '@sectile/core/grid';
|
|
5
6
|
import { type RevisionResult, type RevisionSnapshot } from '@sectile/core/revision';
|
|
6
7
|
export interface KeyboardInput {
|
|
@@ -36,6 +37,8 @@ export interface CalendarControllerOptions<ID extends StableID = StableID> {
|
|
|
36
37
|
readonly onValueChange?: (change: CalendarValueChangeDetails<ID>) => void;
|
|
37
38
|
readonly onHighlightedValueChange?: (change: CalendarHighlightChangeDetails<ID>) => void;
|
|
38
39
|
}
|
|
40
|
+
export type CalendarControllerValueChangeHandler<ID extends StableID = StableID> = NonNullable<CalendarControllerOptions<ID>['onValueChange']>;
|
|
41
|
+
export type CalendarControllerHighlightedValueChangeHandler<ID extends StableID = StableID> = NonNullable<CalendarControllerOptions<ID>['onHighlightedValueChange']>;
|
|
39
42
|
export interface CalendarControlledValues<ID extends StableID = StableID> {
|
|
40
43
|
readonly value?: ID | null;
|
|
41
44
|
readonly highlightedValue?: ID | null;
|
|
@@ -63,6 +66,9 @@ export interface CalendarConnectionOptions<ID extends StableID = StableID> {
|
|
|
63
66
|
readonly onTransition?: (details: CalendarTransitionDetails<ID>) => void;
|
|
64
67
|
readonly onUpdate?: () => void;
|
|
65
68
|
}
|
|
69
|
+
export type CalendarConnectionPageRequestHandler<ID extends StableID = StableID> = NonNullable<CalendarConnectionOptions<ID>['onPageRequest']>;
|
|
70
|
+
export type CalendarConnectionTransitionHandler<ID extends StableID = StableID> = NonNullable<CalendarConnectionOptions<ID>['onTransition']>;
|
|
71
|
+
export type CalendarConnectionUpdateHandler<ID extends StableID = StableID> = NonNullable<CalendarConnectionOptions<ID>['onUpdate']>;
|
|
66
72
|
export interface CalendarCellAttributes<ID extends StableID = StableID> {
|
|
67
73
|
readonly id: ID;
|
|
68
74
|
readonly rowIndex: number;
|