@sectile/terminal 0.7.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.
Files changed (198) hide show
  1. package/dist/accordion.d.ts +0 -1
  2. package/dist/alert-dialog.d.ts +0 -1
  3. package/dist/appearance.d.ts +0 -1
  4. package/dist/calendar.d.ts +0 -1
  5. package/dist/carousel.d.ts +0 -1
  6. package/dist/cascade-list.d.ts +38 -0
  7. package/dist/cascade-list.js +102 -0
  8. package/dist/cascade-list.js.map +1 -0
  9. package/dist/cascade-select.d.ts +1 -2
  10. package/dist/cascade-select.js +11 -31
  11. package/dist/cascade-select.js.map +1 -1
  12. package/dist/checkbox-group.d.ts +0 -1
  13. package/dist/checkbox.d.ts +0 -1
  14. package/dist/color-picker.d.ts +0 -1
  15. package/dist/combobox.d.ts +0 -1
  16. package/dist/date-field.d.ts +0 -1
  17. package/dist/date-picker.d.ts +0 -1
  18. package/dist/date-range-field.d.ts +0 -1
  19. package/dist/date-range-picker.d.ts +0 -1
  20. package/dist/date-time-field.d.ts +0 -1
  21. package/dist/date-time-picker.d.ts +0 -1
  22. package/dist/date-time-range-picker.d.ts +0 -1
  23. package/dist/dialog.d.ts +0 -1
  24. package/dist/disclosure.d.ts +0 -1
  25. package/dist/drawer.d.ts +0 -1
  26. package/dist/editable.d.ts +0 -1
  27. package/dist/feed.d.ts +0 -1
  28. package/dist/grid.d.ts +2 -2
  29. package/dist/grid.js +7 -6
  30. package/dist/grid.js.map +1 -1
  31. package/dist/index.d.ts +5 -2
  32. package/dist/index.js +4 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/internal/cascade-choice.d.ts +21 -0
  35. package/dist/internal/cascade-choice.js +36 -0
  36. package/dist/internal/cascade-choice.js.map +1 -0
  37. package/dist/internal/checked-control.d.ts +2 -3
  38. package/dist/internal/checked-control.js +3 -5
  39. package/dist/internal/checked-control.js.map +1 -1
  40. package/dist/internal/disabled-items.d.ts +0 -1
  41. package/dist/internal/disabled-items.js +2 -12
  42. package/dist/internal/disabled-items.js.map +1 -1
  43. package/dist/internal/grapheme.d.ts +2 -1
  44. package/dist/internal/grapheme.js +67 -0
  45. package/dist/internal/grapheme.js.map +1 -1
  46. package/dist/internal/menu-control.d.ts +0 -1
  47. package/dist/internal/menu-control.js +14 -41
  48. package/dist/internal/menu-control.js.map +1 -1
  49. package/dist/internal/popup-control.d.ts +2 -3
  50. package/dist/internal/popup-control.js +3 -5
  51. package/dist/internal/popup-control.js.map +1 -1
  52. package/dist/internal/reference-date.d.ts +0 -1
  53. package/dist/internal/result.d.ts +0 -1
  54. package/dist/internal/text-input.d.ts +0 -1
  55. package/dist/keyboard.d.ts +0 -1
  56. package/dist/layer-stack.d.ts +0 -1
  57. package/dist/layout.d.ts +0 -1
  58. package/dist/layout.js +4 -5
  59. package/dist/layout.js.map +1 -1
  60. package/dist/listbox.d.ts +0 -1
  61. package/dist/menu-button.d.ts +0 -1
  62. package/dist/menu.d.ts +0 -1
  63. package/dist/menubar.d.ts +0 -1
  64. package/dist/meter-group.d.ts +28 -0
  65. package/dist/meter-group.js +120 -0
  66. package/dist/meter-group.js.map +1 -0
  67. package/dist/meter.d.ts +21 -0
  68. package/dist/meter.js +98 -0
  69. package/dist/meter.js.map +1 -0
  70. package/dist/month-picker.d.ts +0 -1
  71. package/dist/month-range-picker.d.ts +0 -1
  72. package/dist/multi-thumb-slider.d.ts +0 -1
  73. package/dist/navigation-menu.d.ts +0 -1
  74. package/dist/node.d.ts +0 -1
  75. package/dist/number-field.d.ts +0 -1
  76. package/dist/pagination.d.ts +0 -1
  77. package/dist/pin-input.d.ts +0 -1
  78. package/dist/popover.d.ts +0 -1
  79. package/dist/progress.d.ts +22 -0
  80. package/dist/progress.js +76 -0
  81. package/dist/progress.js.map +1 -0
  82. package/dist/quantity-field.d.ts +0 -1
  83. package/dist/radio-group.d.ts +0 -1
  84. package/dist/radio-group.js +9 -1
  85. package/dist/radio-group.js.map +1 -1
  86. package/dist/range-calendar.d.ts +0 -1
  87. package/dist/rating.d.ts +2 -3
  88. package/dist/rating.js +125 -28
  89. package/dist/rating.js.map +1 -1
  90. package/dist/reorder.d.ts +0 -1
  91. package/dist/screen.d.ts +0 -1
  92. package/dist/screen.js +107 -67
  93. package/dist/screen.js.map +1 -1
  94. package/dist/select.d.ts +0 -1
  95. package/dist/slider.d.ts +0 -1
  96. package/dist/spin-button.d.ts +0 -1
  97. package/dist/stepper.d.ts +0 -1
  98. package/dist/switch.d.ts +0 -1
  99. package/dist/tabs.d.ts +0 -1
  100. package/dist/tabs.js +7 -1
  101. package/dist/tabs.js.map +1 -1
  102. package/dist/tags-input.d.ts +0 -1
  103. package/dist/text.d.ts +0 -1
  104. package/dist/time-field.d.ts +0 -1
  105. package/dist/time-range-field.d.ts +0 -1
  106. package/dist/timer.d.ts +0 -1
  107. package/dist/toast.d.ts +0 -1
  108. package/dist/toggle-button.d.ts +0 -1
  109. package/dist/toggle-group.d.ts +0 -1
  110. package/dist/toolbar.d.ts +0 -1
  111. package/dist/tooltip.d.ts +0 -1
  112. package/dist/tree-grid.d.ts +0 -1
  113. package/dist/tree-view.d.ts +0 -1
  114. package/dist/tree-view.js +5 -5
  115. package/dist/tree-view.js.map +1 -1
  116. package/dist/window-splitter.d.ts +0 -1
  117. package/dist/year-picker.d.ts +0 -1
  118. package/dist/year-range-picker.d.ts +0 -1
  119. package/package.json +26 -12
  120. package/dist/accordion.d.ts.map +0 -1
  121. package/dist/alert-dialog.d.ts.map +0 -1
  122. package/dist/appearance.d.ts.map +0 -1
  123. package/dist/calendar.d.ts.map +0 -1
  124. package/dist/carousel.d.ts.map +0 -1
  125. package/dist/cascade-select.d.ts.map +0 -1
  126. package/dist/checkbox-group.d.ts.map +0 -1
  127. package/dist/checkbox.d.ts.map +0 -1
  128. package/dist/color-picker.d.ts.map +0 -1
  129. package/dist/combobox.d.ts.map +0 -1
  130. package/dist/date-field.d.ts.map +0 -1
  131. package/dist/date-picker.d.ts.map +0 -1
  132. package/dist/date-range-field.d.ts.map +0 -1
  133. package/dist/date-range-picker.d.ts.map +0 -1
  134. package/dist/date-time-field.d.ts.map +0 -1
  135. package/dist/date-time-picker.d.ts.map +0 -1
  136. package/dist/date-time-range-picker.d.ts.map +0 -1
  137. package/dist/dialog.d.ts.map +0 -1
  138. package/dist/disclosure.d.ts.map +0 -1
  139. package/dist/drawer.d.ts.map +0 -1
  140. package/dist/editable.d.ts.map +0 -1
  141. package/dist/feed.d.ts.map +0 -1
  142. package/dist/form.d.ts +0 -65
  143. package/dist/form.d.ts.map +0 -1
  144. package/dist/form.js +0 -234
  145. package/dist/form.js.map +0 -1
  146. package/dist/grid.d.ts.map +0 -1
  147. package/dist/index.d.ts.map +0 -1
  148. package/dist/internal/checked-control.d.ts.map +0 -1
  149. package/dist/internal/disabled-items.d.ts.map +0 -1
  150. package/dist/internal/grapheme.d.ts.map +0 -1
  151. package/dist/internal/menu-control.d.ts.map +0 -1
  152. package/dist/internal/popup-control.d.ts.map +0 -1
  153. package/dist/internal/reference-date.d.ts.map +0 -1
  154. package/dist/internal/result.d.ts.map +0 -1
  155. package/dist/internal/text-input.d.ts.map +0 -1
  156. package/dist/keyboard.d.ts.map +0 -1
  157. package/dist/layer-stack.d.ts.map +0 -1
  158. package/dist/layout.d.ts.map +0 -1
  159. package/dist/listbox.d.ts.map +0 -1
  160. package/dist/menu-button.d.ts.map +0 -1
  161. package/dist/menu.d.ts.map +0 -1
  162. package/dist/menubar.d.ts.map +0 -1
  163. package/dist/month-picker.d.ts.map +0 -1
  164. package/dist/month-range-picker.d.ts.map +0 -1
  165. package/dist/multi-thumb-slider.d.ts.map +0 -1
  166. package/dist/navigation-menu.d.ts.map +0 -1
  167. package/dist/node.d.ts.map +0 -1
  168. package/dist/number-field.d.ts.map +0 -1
  169. package/dist/pagination.d.ts.map +0 -1
  170. package/dist/pin-input.d.ts.map +0 -1
  171. package/dist/popover.d.ts.map +0 -1
  172. package/dist/quantity-field.d.ts.map +0 -1
  173. package/dist/radio-group.d.ts.map +0 -1
  174. package/dist/range-calendar.d.ts.map +0 -1
  175. package/dist/rating.d.ts.map +0 -1
  176. package/dist/reorder.d.ts.map +0 -1
  177. package/dist/screen.d.ts.map +0 -1
  178. package/dist/select.d.ts.map +0 -1
  179. package/dist/slider.d.ts.map +0 -1
  180. package/dist/spin-button.d.ts.map +0 -1
  181. package/dist/stepper.d.ts.map +0 -1
  182. package/dist/switch.d.ts.map +0 -1
  183. package/dist/tabs.d.ts.map +0 -1
  184. package/dist/tags-input.d.ts.map +0 -1
  185. package/dist/text.d.ts.map +0 -1
  186. package/dist/time-field.d.ts.map +0 -1
  187. package/dist/time-range-field.d.ts.map +0 -1
  188. package/dist/timer.d.ts.map +0 -1
  189. package/dist/toast.d.ts.map +0 -1
  190. package/dist/toggle-button.d.ts.map +0 -1
  191. package/dist/toggle-group.d.ts.map +0 -1
  192. package/dist/toolbar.d.ts.map +0 -1
  193. package/dist/tooltip.d.ts.map +0 -1
  194. package/dist/tree-grid.d.ts.map +0 -1
  195. package/dist/tree-view.d.ts.map +0 -1
  196. package/dist/window-splitter.d.ts.map +0 -1
  197. package/dist/year-picker.d.ts.map +0 -1
  198. package/dist/year-range-picker.d.ts.map +0 -1
@@ -31,4 +31,3 @@ export interface AccordionConnection<ID extends StableID = StableID> {
31
31
  export declare function createAccordion<ID extends StableID>(options: AccordionOptions<ID>): FacadeConnection<AccordionConnection<ID>>;
32
32
  export declare function tryCreateAccordion<ID extends StableID>(options: AccordionOptions<ID>): Result<FacadeConnection<AccordionConnection<ID>>>;
33
33
  export declare function toAccordionEvent<ID extends StableID = StableID>(input: TerminalKeyboardInput): AccordionEvent<ID> | null;
34
- //# sourceMappingURL=accordion.d.ts.map
@@ -20,4 +20,3 @@ export type AlertDialogUpdateHandler = NonNullable<AlertDialogOptions['onUpdate'
20
20
  export type AlertDialogConnection = TerminalPopupConnection<AlertDialogState, AlertDialogEvent>;
21
21
  export declare function createAlertDialog(o?: AlertDialogOptions): FacadeConnection<AlertDialogConnection>;
22
22
  export declare function tryCreateAlertDialog(o?: AlertDialogOptions): Result<FacadeConnection<AlertDialogConnection>>;
23
- //# sourceMappingURL=alert-dialog.d.ts.map
@@ -47,4 +47,3 @@ export interface TerminalAppearance {
47
47
  export declare const defaultTerminalCapabilities: TerminalCapabilities;
48
48
  export declare const defaultTerminalTheme: TerminalTheme;
49
49
  export declare function createTerminalAppearance(options?: TerminalAppearanceOptions): TerminalAppearance;
50
- //# sourceMappingURL=appearance.d.ts.map
@@ -39,4 +39,3 @@ export interface CalendarConnection {
39
39
  export declare function createCalendar(options?: CalendarOptions): FacadeConnection<CalendarConnection>;
40
40
  export declare function tryCreateCalendar(options?: CalendarOptions): TerminalTemporalResult<FacadeConnection<CalendarConnection>>;
41
41
  export declare function toCalendarEvent(input: TerminalKeyboardInput): CalendarEvent | null;
42
- //# sourceMappingURL=calendar.d.ts.map
@@ -46,4 +46,3 @@ export interface CarouselConnection<ID extends StableID = StableID> {
46
46
  }
47
47
  export declare function createCarousel<ID extends StableID>(options: CarouselOptions<ID>): FacadeConnection<CarouselConnection<ID>>;
48
48
  export declare function tryCreateCarousel<ID extends StableID>(options: CarouselOptions<ID>): Result<FacadeConnection<CarouselConnection<ID>>>;
49
- //# sourceMappingURL=carousel.d.ts.map
@@ -0,0 +1,38 @@
1
+ import { type FacadeConnection } from '@sectile/core/adapter-runtime';
2
+ import type { Result, StableID } from '@sectile/core';
3
+ import { type CascadeListEvent, type CascadeListPolicies, type CascadeListState } from '@sectile/core/cascade-list';
4
+ import type { RevisionSnapshot } from '@sectile/core/revision';
5
+ import type { Tree, TreeNodeInput } from '@sectile/core/tree';
6
+ import type { TerminalKeyboardInput } from './keyboard.js';
7
+ export interface CascadeListOptions<ID extends StableID = StableID> {
8
+ readonly nodes: readonly TreeNodeInput<ID>[];
9
+ readonly disabledItems?: readonly ID[];
10
+ readonly policies?: CascadeListPolicies<ID>;
11
+ readonly disabled?: boolean;
12
+ readonly readOnly?: boolean;
13
+ readonly value?: ID | null;
14
+ readonly defaultValue?: ID | null;
15
+ readonly highlightedValue?: ID | null;
16
+ readonly defaultHighlightedValue?: ID | null;
17
+ readonly onValueChange?: (value: ID | null) => void;
18
+ readonly onHighlightedValueChange?: (value: ID | null) => void;
19
+ readonly onUpdate?: () => void;
20
+ }
21
+ export type CascadeListValueChangeHandler<ID extends StableID = StableID> = NonNullable<CascadeListOptions<ID>['onValueChange']>;
22
+ export type CascadeListHighlightedValueChangeHandler<ID extends StableID = StableID> = NonNullable<CascadeListOptions<ID>['onHighlightedValueChange']>;
23
+ export type CascadeListUpdateHandler<ID extends StableID = StableID> = NonNullable<CascadeListOptions<ID>['onUpdate']>;
24
+ export interface CascadeListControlledValues<ID extends StableID = StableID> {
25
+ readonly value?: ID | null;
26
+ readonly highlightedValue?: ID | null;
27
+ }
28
+ export interface CascadeListConnection<ID extends StableID = StableID> {
29
+ readonly tree: Tree<ID>;
30
+ getSnapshot(): RevisionSnapshot<CascadeListState<ID>>;
31
+ getColumns(): readonly (readonly ID[])[];
32
+ getValuePath(): readonly ID[];
33
+ syncControlledValues(values: CascadeListControlledValues<ID>): Result<RevisionSnapshot<CascadeListState<ID>>>;
34
+ handleEvent(event: CascadeListEvent<ID>): boolean;
35
+ handleKeyboardInput(input: TerminalKeyboardInput): boolean;
36
+ }
37
+ export declare function createCascadeList<ID extends StableID>(options: CascadeListOptions<ID>): FacadeConnection<CascadeListConnection<ID>>;
38
+ export declare function tryCreateCascadeList<ID extends StableID>(options: CascadeListOptions<ID>): Result<FacadeConnection<CascadeListConnection<ID>>>;
@@ -0,0 +1,102 @@
1
+ import { createFacadeConnection, createSemanticController } from '@sectile/core/adapter-runtime';
2
+ import { applyCascadeListEvent, getCascadeListColumns, getCascadeListValuePath, tryCreateCascadeListState, } from '@sectile/core/cascade-list';
3
+ import { unwrap } from '@sectile/core/result';
4
+ import { toTerminalCascadeChoiceEvent, tryCreateTerminalCascadeChoiceDomain, withDisabledCascadeChoicePolicies, } from './internal/cascade-choice.js';
5
+ export function createCascadeList(options) {
6
+ return unwrap(tryCreateCascadeList(options));
7
+ }
8
+ export function tryCreateCascadeList(options) {
9
+ return createFacadeConnection(options, (input) => tryCreateCascadeListConnection(input));
10
+ }
11
+ function tryCreateCascadeListConnection(options) {
12
+ const domain = tryCreateTerminalCascadeChoiceDomain(options.nodes, options.disabledItems, 'cascade list');
13
+ if (!domain.ok)
14
+ return domain;
15
+ const policies = withDisabledCascadeChoicePolicies(options.policies, domain.value.disabledItems);
16
+ const controlled = {
17
+ value: options.value !== undefined,
18
+ highlighted: options.highlightedValue !== undefined,
19
+ };
20
+ const runtime = createSemanticController({
21
+ interaction: options,
22
+ interactionIntent: (event) => event === 'select' || (typeof event === 'object' && event.type === 'select')
23
+ ? 'mutate'
24
+ : 'navigate',
25
+ initial: tryCreateCascadeListState(domain.value.tree, {
26
+ value: options.value ?? options.defaultValue ?? null,
27
+ highlighted: options.highlightedValue ?? options.defaultHighlightedValue ?? options.value ?? options.defaultValue ?? null,
28
+ }),
29
+ reducer: (state, event) => applyCascadeListEvent(domain.value.tree, state, event, policies),
30
+ reconcile: (previous, proposed) => tryCreateCascadeListState(domain.value.tree, {
31
+ value: controlled.value ? previous.value : proposed.value,
32
+ highlighted: controlled.highlighted ? previous.highlighted : proposed.highlighted,
33
+ path: proposed.path,
34
+ }),
35
+ notify: (previous, proposed) => {
36
+ if (previous.value !== proposed.value)
37
+ options.onValueChange?.(proposed.value);
38
+ if (previous.highlighted !== proposed.highlighted)
39
+ options.onHighlightedValueChange?.(proposed.highlighted);
40
+ },
41
+ toEffect: (command) => command,
42
+ });
43
+ if (!runtime.ok)
44
+ return runtime;
45
+ return {
46
+ ok: true,
47
+ value: new TerminalCascadeListConnection(options, domain.value.tree, runtime.value, controlled),
48
+ };
49
+ }
50
+ class TerminalCascadeListConnection {
51
+ tree;
52
+ #options;
53
+ #runtime;
54
+ #controlled;
55
+ constructor(options, tree, runtime, controlled) {
56
+ this.#options = options;
57
+ this.tree = tree;
58
+ this.#runtime = runtime;
59
+ this.#controlled = controlled;
60
+ }
61
+ getSnapshot() {
62
+ return this.#runtime.getSnapshot();
63
+ }
64
+ getColumns() {
65
+ return getCascadeListColumns(this.tree, this.getSnapshot().state);
66
+ }
67
+ getValuePath() {
68
+ return getCascadeListValuePath(this.tree, this.getSnapshot().state.value);
69
+ }
70
+ syncControlledValues(values) {
71
+ if (this.#controlled.value !== (values.value !== undefined)
72
+ || this.#controlled.highlighted !== (values.highlightedValue !== undefined)) {
73
+ return {
74
+ ok: false,
75
+ error: {
76
+ class: 'construction',
77
+ code: 'controlled-shape-mismatch',
78
+ message: 'Controlled cascade list values must preserve their construction-time shape.',
79
+ },
80
+ };
81
+ }
82
+ const state = this.getSnapshot().state;
83
+ const result = this.#runtime.replace(tryCreateCascadeListState(this.tree, {
84
+ value: this.#controlled.value ? values.value ?? null : state.value,
85
+ highlighted: this.#controlled.highlighted ? values.highlightedValue ?? null : state.highlighted,
86
+ }));
87
+ if (result.ok)
88
+ this.#options.onUpdate?.();
89
+ return result;
90
+ }
91
+ handleEvent(event) {
92
+ const result = this.#runtime.handle(event);
93
+ if (result.ok)
94
+ this.#options.onUpdate?.();
95
+ return result.ok;
96
+ }
97
+ handleKeyboardInput(input) {
98
+ const event = toTerminalCascadeChoiceEvent(input);
99
+ return event === null ? false : this.handleEvent(event);
100
+ }
101
+ }
102
+ //# sourceMappingURL=cascade-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cascade-list.js","sourceRoot":"","sources":["../src/cascade-list.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { type FacadeConnection } from '@sectile/core/adapter-runtime';
2
2
  import type { Result, StableID } from '@sectile/core';
3
- import { type Tree, type TreeNodeInput } from '@sectile/core/tree';
3
+ import type { Tree, TreeNodeInput } from '@sectile/core/tree';
4
4
  import type { RevisionSnapshot } from '@sectile/core/revision';
5
5
  import { type CascadeSelectEvent, type CascadeSelectPolicies, type CascadeSelectState } from '@sectile/core/cascade-select';
6
6
  import type { TerminalKeyboardInput } from './keyboard.js';
@@ -40,4 +40,3 @@ export interface CascadeSelectConnection<ID extends StableID = StableID> {
40
40
  }
41
41
  export declare function createCascadeSelect<ID extends StableID>(options: CascadeSelectOptions<ID>): FacadeConnection<CascadeSelectConnection<ID>>;
42
42
  export declare function tryCreateCascadeSelect<ID extends StableID>(options: CascadeSelectOptions<ID>): Result<FacadeConnection<CascadeSelectConnection<ID>>>;
43
- //# sourceMappingURL=cascade-select.d.ts.map
@@ -1,8 +1,8 @@
1
1
  import { createFacadeConnection } from '@sectile/core/adapter-runtime';
2
2
  import { unwrap } from '@sectile/core/result';
3
- import { tryCreateTree } from '@sectile/core/tree';
4
3
  import { applyCascadeSelectEvent, tryCreateCascadeSelectState, getCascadeSelectColumns, getCascadeSelectValuePath, } from '@sectile/core/cascade-select';
5
4
  import { createSemanticController } from '@sectile/core/adapter-runtime';
5
+ import { toTerminalCascadeChoiceEvent, tryCreateTerminalCascadeChoiceDomain, withDisabledCascadeChoicePolicies, } from './internal/cascade-choice.js';
6
6
  export function createCascadeSelect(options) {
7
7
  return unwrap(tryCreateCascadeSelect(options));
8
8
  }
@@ -10,28 +10,24 @@ export function tryCreateCascadeSelect(options) {
10
10
  return createFacadeConnection(options, (options) => tryCreateCascadeSelectConnection(options));
11
11
  }
12
12
  function tryCreateCascadeSelectConnection(options) {
13
- const tree = tryCreateTree(options.nodes);
14
- if (!tree.ok)
15
- return tree;
16
- const disabled = new Set(options.disabledItems ?? []);
17
- for (const id of disabled)
18
- if (!tree.value.has(id))
19
- return { ok: false, error: { class: 'construction', code: 'disabled-item-outside-domain', message: 'Every disabled cascade select item must exist in the tree.' } };
20
- const suppliedEligibility = options.policies?.eligible;
21
- const policies = { ...options.policies, eligible: (id) => !disabled.has(id) && (suppliedEligibility?.(id) ?? true) };
13
+ const domain = tryCreateTerminalCascadeChoiceDomain(options.nodes, options.disabledItems, 'cascade select');
14
+ if (!domain.ok)
15
+ return domain;
16
+ const tree = domain.value.tree;
17
+ const policies = withDisabledCascadeChoicePolicies(options.policies, domain.value.disabledItems);
22
18
  const controlled = { value: options.value !== undefined, highlighted: options.highlightedValue !== undefined, open: options.open !== undefined };
23
19
  const runtime = createSemanticController({
24
20
  interaction: options, interactionIntent: (event) => event === 'select' || (typeof event === 'object' && event.type === 'select') ? 'mutate' : 'navigate',
25
- initial: tryCreateCascadeSelectState(tree.value, { value: options.value ?? options.defaultValue ?? null, highlighted: options.highlightedValue ?? options.defaultHighlightedValue ?? options.value ?? options.defaultValue ?? null, open: options.open ?? options.defaultOpen ?? false }),
26
- reducer: (state, event) => applyCascadeSelectEvent(tree.value, state, event, policies),
27
- reconcile: (previous, proposed) => tryCreateCascadeSelectState(tree.value, { value: controlled.value ? previous.value : proposed.value, highlighted: controlled.highlighted ? previous.highlighted : proposed.highlighted, open: controlled.open ? previous.open : proposed.open, path: proposed.path }),
21
+ initial: tryCreateCascadeSelectState(tree, { value: options.value ?? options.defaultValue ?? null, highlighted: options.highlightedValue ?? options.defaultHighlightedValue ?? options.value ?? options.defaultValue ?? null, open: options.open ?? options.defaultOpen ?? false }),
22
+ reducer: (state, event) => applyCascadeSelectEvent(tree, state, event, policies),
23
+ reconcile: (previous, proposed) => tryCreateCascadeSelectState(tree, { value: controlled.value ? previous.value : proposed.value, highlighted: controlled.highlighted ? previous.highlighted : proposed.highlighted, open: controlled.open ? previous.open : proposed.open, path: proposed.path }),
28
24
  notify: (previous, proposed) => { if (previous.value !== proposed.value)
29
25
  options.onValueChange?.(proposed.value); if (previous.highlighted !== proposed.highlighted)
30
26
  options.onHighlightedValueChange?.(proposed.highlighted); if (previous.open !== proposed.open)
31
27
  options.onOpenChange?.(proposed.open); },
32
28
  toEffect: (command) => command,
33
29
  });
34
- return runtime.ok ? { ok: true, value: new TerminalCascadeSelectConnection(options, tree.value, runtime.value, controlled) } : runtime;
30
+ return runtime.ok ? { ok: true, value: new TerminalCascadeSelectConnection(options, tree, runtime.value, controlled) } : runtime;
35
31
  }
36
32
  class TerminalCascadeSelectConnection {
37
33
  tree;
@@ -50,22 +46,6 @@ class TerminalCascadeSelectConnection {
50
46
  handleKeyboardInput(input) { const event = toCascadeSelectEvent(input); return event === null ? false : this.handleEvent(event); }
51
47
  }
52
48
  function toCascadeSelectEvent(input) {
53
- if (input.key === 'down')
54
- return 'next';
55
- if (input.key === 'up')
56
- return 'previous';
57
- if (input.key === 'right')
58
- return 'right';
59
- if (input.key === 'left')
60
- return 'left';
61
- if (input.key === 'home')
62
- return 'first';
63
- if (input.key === 'end')
64
- return 'last';
65
- if (input.key === 'enter' || input.key === 'space')
66
- return 'select';
67
- if (input.key === 'escape')
68
- return 'close';
69
- return null;
49
+ return input.key === 'escape' ? 'close' : toTerminalCascadeChoiceEvent(input);
70
50
  }
71
51
  //# sourceMappingURL=cascade-select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cascade-select.js","sourceRoot":"","sources":["../src/cascade-select.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cascade-select.js","sourceRoot":"","sources":["../src/cascade-select.ts"],"names":[],"mappings":"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"}
@@ -16,4 +16,3 @@ export interface CheckboxGroupConnection<ID extends StableID = StableID> {
16
16
  }
17
17
  export declare function createCheckboxGroup<ID extends StableID>(options: CheckboxGroupOptions<ID>): FacadeConnection<CheckboxGroupConnection<ID>>;
18
18
  export declare function tryCreateCheckboxGroup<ID extends StableID>(options: CheckboxGroupOptions<ID>): Result<FacadeConnection<CheckboxGroupConnection<ID>>>;
19
- //# sourceMappingURL=checkbox-group.d.ts.map
@@ -16,4 +16,3 @@ export type CheckboxUpdateHandler = NonNullable<CheckboxOptions['onUpdate']>;
16
16
  export type CheckboxConnection = TerminalCheckedControl<CheckboxState, CheckboxEvent, CheckboxValue>;
17
17
  export declare function createCheckbox(options?: CheckboxOptions): FacadeConnection<CheckboxConnection>;
18
18
  export declare function tryCreateCheckbox(options?: CheckboxOptions): Result<FacadeConnection<CheckboxConnection>>;
19
- //# sourceMappingURL=checkbox.d.ts.map
@@ -36,4 +36,3 @@ export interface ColorPickerConnection {
36
36
  }
37
37
  export declare function createColorPicker(options?: ColorPickerOptions): FacadeConnection<ColorPickerConnection>;
38
38
  export declare function tryCreateColorPicker(options?: ColorPickerOptions): Result<FacadeConnection<ColorPickerConnection>>;
39
- //# sourceMappingURL=color-picker.d.ts.map
@@ -104,4 +104,3 @@ export declare function connectCombobox<ID extends StableID>(options: ComboboxCo
104
104
  export declare function toComboboxEvent<ID extends StableID = StableID>(input: KeyboardInput): ComboboxEvent<ID> | null;
105
105
  export declare function toComboboxTextEvent<ID extends StableID = StableID>(input: TextInput): ComboboxEvent<ID> | null;
106
106
  export declare function toComboboxEffect<ID extends StableID>(command: ComboboxCommand<ID>): ComboboxEffect<ID>;
107
- //# sourceMappingURL=combobox.d.ts.map
@@ -36,4 +36,3 @@ export interface DateFieldConnection {
36
36
  }
37
37
  export declare function createDateField(options?: DateFieldOptions): FacadeConnection<DateFieldConnection>;
38
38
  export declare function tryCreateDateField(options?: DateFieldOptions): TerminalTemporalResult<FacadeConnection<DateFieldConnection>>;
39
- //# sourceMappingURL=date-field.d.ts.map
@@ -40,4 +40,3 @@ export interface DatePickerConnection {
40
40
  export declare function createDatePicker(options?: DatePickerOptions): FacadeConnection<DatePickerConnection>;
41
41
  export declare function tryCreateDatePicker(options?: DatePickerOptions): TerminalTemporalResult<FacadeConnection<DatePickerConnection>>;
42
42
  export declare function toDatePickerEvent(input: TerminalKeyboardInput): DatePickerEvent | null;
43
- //# sourceMappingURL=date-picker.d.ts.map
@@ -40,4 +40,3 @@ export interface DateRangeFieldConnection {
40
40
  }
41
41
  export declare function createDateRangeField(options?: DateRangeFieldOptions): FacadeConnection<DateRangeFieldConnection>;
42
42
  export declare function tryCreateDateRangeField(options?: DateRangeFieldOptions): TerminalTemporalResult<FacadeConnection<DateRangeFieldConnection>>;
43
- //# sourceMappingURL=date-range-field.d.ts.map
@@ -40,4 +40,3 @@ export interface DateRangePickerConnection {
40
40
  }
41
41
  export declare function createDateRangePicker(options?: DateRangePickerOptions): FacadeConnection<DateRangePickerConnection>;
42
42
  export declare function tryCreateDateRangePicker(options?: DateRangePickerOptions): TerminalTemporalResult<FacadeConnection<DateRangePickerConnection>>;
43
- //# sourceMappingURL=date-range-picker.d.ts.map
@@ -36,4 +36,3 @@ export interface DateTimeFieldConnection {
36
36
  }
37
37
  export declare function createDateTimeField(options?: DateTimeFieldOptions): FacadeConnection<DateTimeFieldConnection>;
38
38
  export declare function tryCreateDateTimeField(options?: DateTimeFieldOptions): TerminalTemporalResult<FacadeConnection<DateTimeFieldConnection>>;
39
- //# sourceMappingURL=date-time-field.d.ts.map
@@ -40,4 +40,3 @@ export interface DateTimePickerConnection {
40
40
  }
41
41
  export declare function createDateTimePicker(options?: DateTimePickerOptions): FacadeConnection<DateTimePickerConnection>;
42
42
  export declare function tryCreateDateTimePicker(options?: DateTimePickerOptions): TerminalTemporalResult<FacadeConnection<DateTimePickerConnection>>;
43
- //# sourceMappingURL=date-time-picker.d.ts.map
@@ -40,4 +40,3 @@ export interface DateTimeRangePickerConnection {
40
40
  }
41
41
  export declare function createDateTimeRangePicker(options?: DateTimeRangePickerOptions): FacadeConnection<DateTimeRangePickerConnection>;
42
42
  export declare function tryCreateDateTimeRangePicker(options?: DateTimeRangePickerOptions): TerminalTemporalResult<FacadeConnection<DateTimeRangePickerConnection>>;
43
- //# sourceMappingURL=date-time-range-picker.d.ts.map
package/dist/dialog.d.ts CHANGED
@@ -18,4 +18,3 @@ export type DialogUpdateHandler = NonNullable<DialogOptions['onUpdate']>;
18
18
  export type DialogConnection = TerminalPopupConnection<DialogState, DialogEvent>;
19
19
  export declare function createDialog(o?: DialogOptions): FacadeConnection<DialogConnection>;
20
20
  export declare function tryCreateDialog(o?: DialogOptions): Result<FacadeConnection<DialogConnection>>;
21
- //# sourceMappingURL=dialog.d.ts.map
@@ -21,4 +21,3 @@ export interface DisclosureConnection {
21
21
  export declare function createDisclosure(options?: DisclosureOptions): FacadeConnection<DisclosureConnection>;
22
22
  export declare function tryCreateDisclosure(options?: DisclosureOptions): Result<FacadeConnection<DisclosureConnection>>;
23
23
  export declare function toDisclosureEvent(input: TerminalKeyboardInput): DisclosureEvent | null;
24
- //# sourceMappingURL=disclosure.d.ts.map
package/dist/drawer.d.ts CHANGED
@@ -20,4 +20,3 @@ export type DrawerUpdateHandler = NonNullable<DrawerOptions['onUpdate']>;
20
20
  export type DrawerConnection = TerminalPopupConnection<DrawerState, DrawerEvent>;
21
21
  export declare function createDrawer(options?: DrawerOptions): FacadeConnection<DrawerConnection>;
22
22
  export declare function tryCreateDrawer(options?: DrawerOptions): Result<FacadeConnection<DrawerConnection>>;
23
- //# sourceMappingURL=drawer.d.ts.map
@@ -24,4 +24,3 @@ export interface EditableConnection {
24
24
  }
25
25
  export declare function createEditable(options?: EditableOptions): FacadeConnection<EditableConnection>;
26
26
  export declare function tryCreateEditable(options?: EditableOptions): Result<FacadeConnection<EditableConnection>>;
27
- //# sourceMappingURL=editable.d.ts.map
package/dist/feed.d.ts CHANGED
@@ -33,4 +33,3 @@ export interface FeedConnection<ID extends StableID = StableID> {
33
33
  }
34
34
  export declare function createFeed<ID extends StableID>(options: FeedOptions<ID>): FacadeConnection<FeedConnection<ID>>;
35
35
  export declare function tryCreateFeed<ID extends StableID>(options: FeedOptions<ID>): Result<FacadeConnection<FeedConnection<ID>>>;
36
- //# sourceMappingURL=feed.d.ts.map
package/dist/grid.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { type FacadeConnection } from '@sectile/core/adapter-runtime';
2
2
  import type { Result, StableID } from '@sectile/core';
3
- import { type Grid, type GridEditMode, type GridEvent, type GridOptions as StructureGridOptions, type GridPolicies, type GridState } from '@sectile/core/grid';
3
+ import { type Grid, type GridOptions as StructureGridOptions } from '@sectile/core/grid';
4
+ import { type GridEditMode, type GridEvent, type GridPolicies, type GridState } from '@sectile/core/grid-control';
4
5
  import type { RevisionSnapshot } from '@sectile/core/revision';
5
6
  import type { TerminalKeyboardInput } from './keyboard.js';
6
7
  export interface GridOptions<ID extends StableID = StableID> extends StructureGridOptions {
@@ -44,4 +45,3 @@ export interface GridConnection<ID extends StableID = StableID> {
44
45
  }
45
46
  export declare function createGridControl<ID extends StableID>(options: GridOptions<ID>): FacadeConnection<GridConnection<ID>>;
46
47
  export declare function tryCreateGridControl<ID extends StableID>(options: GridOptions<ID>): Result<FacadeConnection<GridConnection<ID>>>;
47
- //# sourceMappingURL=grid.d.ts.map
package/dist/grid.js CHANGED
@@ -1,6 +1,7 @@
1
- import { createFacadeConnection } from '@sectile/core/adapter-runtime';
1
+ import { createFacadeConnection, tryCreateDisabledIdentitySet } from '@sectile/core/adapter-runtime';
2
2
  import { unwrap } from '@sectile/core/result';
3
- import { applyGridEvent, tryCreateGrid, tryCreateGridState } from '@sectile/core/grid';
3
+ import { tryCreateGrid } from '@sectile/core/grid';
4
+ import { applyGridEvent, tryCreateGridState } from '@sectile/core/grid-control';
4
5
  import { createSemanticController } from '@sectile/core/adapter-runtime';
5
6
  export function createGridControl(options) {
6
7
  return unwrap(tryCreateGridControl(options));
@@ -12,10 +13,10 @@ function tryCreateGridControlConnection(options) {
12
13
  const grid = tryCreateGrid(options.rows, options);
13
14
  if (!grid.ok)
14
15
  return grid;
15
- const disabled = new Set(options.disabledItems ?? []);
16
- for (const id of disabled)
17
- if (grid.value.positionOf(id) === null)
18
- return { ok: false, error: { class: 'construction', code: 'disabled-item-outside-domain', message: 'Every disabled grid cell must exist in the grid.', details: { id } } };
16
+ const disabledResult = tryCreateDisabledIdentitySet({ contains: (id) => grid.value.positionOf(id) !== null }, options.disabledItems);
17
+ if (!disabledResult.ok)
18
+ return disabledResult;
19
+ const disabled = disabledResult.value;
19
20
  const supplied = options.policies?.eligible;
20
21
  const policies = { ...options.policies, eligible: (id) => !disabled.has(id) && (supplied?.(id) ?? true) };
21
22
  const vc = options.value !== undefined, hc = options.highlightedValue !== undefined, ec = options.editMode !== undefined;
package/dist/grid.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"grid.js","sourceRoot":"","sources":["../src/grid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grid.js","sourceRoot":"","sources":["../src/grid.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  export type { FacadeConnection } from '@sectile/core/adapter-runtime';
2
2
  export { createLayerStack, tryCreateLayerStack, type TerminalLayerRegistration, type TerminalLayerScope, } from './layer-stack.js';
3
3
  export { createReorder, tryCreateReorder, type TerminalSequenceReorderConnection, type TerminalSequenceReorderOptions, type TerminalTreeReorderConnection, type TerminalTreeReorderOptions, } from './reorder.js';
4
- export { createForm, tryCreateForm, type TerminalFormConnection, type TerminalFormAnnounceSummaryHandler, type TerminalFormCurrentFieldChangeHandler, type TerminalFormField, type TerminalFormFieldResetHandler, type TerminalFormFieldValidation, type TerminalFormFieldValidator, type TerminalFormOptions, type TerminalFormSnapshot, type TerminalFormSnapshotListener, type TerminalFormStateChangeHandler, type TerminalFormSubmitHandler, type TerminalFormSubmitPayload, type TerminalFormUpdateHandler, } from './form.js';
5
4
  export { connectListbox, createListbox, tryCreateListbox, createListboxController, toListboxEffect, toListboxEvent, type KeyboardInput, type ListboxControlledValues, type ListboxConnection, type ListboxConnectionOptions, type ListboxController, type ListboxControllerOptions, type ListboxEffect, type ListboxHighlightChangeDetails, type ListboxOptions, type ListboxTransitionDetails, type ListboxValueChangeDetails, } from './listbox.js';
6
5
  export { createCheckboxGroup, tryCreateCheckboxGroup, type CheckboxGroupConnection, type CheckboxGroupOptions } from './checkbox-group.js';
7
6
  export { createSelect, tryCreateSelect, type SelectConnection, type SelectEffect, type SelectOptions } from './select.js';
@@ -51,6 +50,7 @@ export { createTimeField, tryCreateTimeField, type TimeFieldConnection, type Tim
51
50
  export { createTimeRangeField, tryCreateTimeRangeField, type TimeRangeFieldConnection, type TimeRangeFieldControlledValues, type TimeRangeFieldOptions } from './time-range-field.js';
52
51
  export { createToast, tryCreateToast, type ToastConnection, type ToastOptions } from './toast.js';
53
52
  export { createTimer, tryCreateTimer, type TimerConnection, type TimerOptions } from './timer.js';
53
+ export { createCascadeList, tryCreateCascadeList, type CascadeListConnection, type CascadeListControlledValues, type CascadeListOptions } from './cascade-list.js';
54
54
  export { createCascadeSelect, tryCreateCascadeSelect, type CascadeSelectConnection, type CascadeSelectOptions } from './cascade-select.js';
55
55
  export { createColorPicker, tryCreateColorPicker, type ColorPickerConnection, type ColorPickerOptions } from './color-picker.js';
56
56
  export { createDatePicker, tryCreateDatePicker, toDatePickerEvent, type DatePickerConnection, type DatePickerControlledValues, type DatePickerOptions } from './date-picker.js';
@@ -66,6 +66,7 @@ export type { AccordionHighlightedValueChangeHandler, AccordionOpenChangeHandler
66
66
  export type { AlertDialogAnnounceHandler, AlertDialogFocusRestoreHandler, AlertDialogInitialFocusHandler, AlertDialogOpenChangeHandler, AlertDialogUpdateHandler, } from './alert-dialog.js';
67
67
  export type { CalendarHighlightedValueChangeHandler, CalendarUpdateHandler, CalendarValueChangeHandler, } from './calendar.js';
68
68
  export type { CarouselAnnounceHandler, CarouselPausedChangeHandler, CarouselUpdateHandler, CarouselValueChangeHandler, } from './carousel.js';
69
+ export type { CascadeListHighlightedValueChangeHandler, CascadeListUpdateHandler, CascadeListValueChangeHandler, } from './cascade-list.js';
69
70
  export type { CascadeSelectHighlightedValueChangeHandler, CascadeSelectOpenChangeHandler, CascadeSelectUpdateHandler, CascadeSelectValueChangeHandler, } from './cascade-select.js';
70
71
  export type { CheckboxUpdateHandler, CheckboxValueChangeHandler, } from './checkbox.js';
71
72
  export type { ColorPickerDraftChangeHandler, ColorPickerFormatChangeHandler, ColorPickerUpdateHandler, ColorPickerValueChangeHandler, } from './color-picker.js';
@@ -109,4 +110,6 @@ export type { TooltipOpenChangeHandler, TooltipUpdateHandler, } from './tooltip.
109
110
  export type { TreeGridConnectionCellValueResolver, TreeGridConnectionCellValueSetter, TreeGridConnectionTransitionHandler, TreeGridConnectionUpdateHandler, TreeGridControllerEditModeChangeHandler, TreeGridControllerExpandedValueChangeHandler, TreeGridControllerHighlightedValueChangeHandler, TreeGridControllerValueChangeHandler, } from './tree-grid.js';
110
111
  export type { TreeViewConnectionTransitionHandler, TreeViewConnectionUpdateHandler, TreeViewControllerExpandedValuesChangeHandler, TreeViewControllerHighlightedValueChangeHandler, TreeViewControllerValueChangeHandler, } from './tree-view.js';
111
112
  export type { FacadeSnapshotListener } from '@sectile/core/adapter-runtime';
112
- //# sourceMappingURL=index.d.ts.map
113
+ export { createMeter, tryCreateMeter, type MeterConnection, type MeterControlledValues, type MeterOptions, type MeterRenderPlan, } from './meter.js';
114
+ export { createMeterGroup, tryCreateMeterGroup, type MeterGroupConnection, type MeterGroupControlledValues, type MeterGroupOptions, type MeterGroupRenderPlan, type MeterGroupRenderSegment, } from './meter-group.js';
115
+ export { createProgress, tryCreateProgress, type ProgressConnection, type ProgressControlledValues, type ProgressOptions, type ProgressRenderPlan, } from './progress.js';
package/dist/index.js CHANGED
@@ -1,6 +1,5 @@
1
1
  export { createLayerStack, tryCreateLayerStack, } from './layer-stack.js';
2
2
  export { createReorder, tryCreateReorder, } from './reorder.js';
3
- export { createForm, tryCreateForm, } from './form.js';
4
3
  export { connectListbox, createListbox, tryCreateListbox, createListboxController, toListboxEffect, toListboxEvent, } from './listbox.js';
5
4
  export { createCheckboxGroup, tryCreateCheckboxGroup } from './checkbox-group.js';
6
5
  export { createSelect, tryCreateSelect } from './select.js';
@@ -49,6 +48,7 @@ export { createTimeField, tryCreateTimeField } from './time-field.js';
49
48
  export { createTimeRangeField, tryCreateTimeRangeField } from './time-range-field.js';
50
49
  export { createToast, tryCreateToast } from './toast.js';
51
50
  export { createTimer, tryCreateTimer } from './timer.js';
51
+ export { createCascadeList, tryCreateCascadeList } from './cascade-list.js';
52
52
  export { createCascadeSelect, tryCreateCascadeSelect } from './cascade-select.js';
53
53
  export { createColorPicker, tryCreateColorPicker } from './color-picker.js';
54
54
  export { createDatePicker, tryCreateDatePicker, toDatePickerEvent } from './date-picker.js';
@@ -60,4 +60,7 @@ export { createYearPicker, tryCreateYearPicker, toYearPickerEvent } from './year
60
60
  export { createYearRangePicker, tryCreateYearRangePicker } from './year-range-picker.js';
61
61
  export { createDateTimePicker, tryCreateDateTimePicker } from './date-time-picker.js';
62
62
  export { createDateTimeRangePicker, tryCreateDateTimeRangePicker } from './date-time-range-picker.js';
63
+ export { createMeter, tryCreateMeter, } from './meter.js';
64
+ export { createMeterGroup, tryCreateMeterGroup, } from './meter-group.js';
65
+ export { createProgress, tryCreateProgress, } from './progress.js';
63
66
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Result, StableID } from '@sectile/core';
2
+ import { type Tree, type TreeNodeInput } from '@sectile/core/tree';
3
+ import type { TerminalKeyboardInput } from '../keyboard.js';
4
+ export type TerminalCascadeChoiceEvent<ID extends StableID = StableID> = 'next' | 'previous' | 'first' | 'last' | 'right' | 'left' | 'select' | {
5
+ readonly type: 'focus';
6
+ readonly id: ID;
7
+ } | {
8
+ readonly type: 'select';
9
+ readonly id: ID;
10
+ };
11
+ export interface TerminalCascadeChoicePolicies<ID extends StableID = StableID> {
12
+ readonly eligible?: (id: ID) => boolean;
13
+ readonly selectable?: (id: ID, leaf: boolean) => boolean;
14
+ }
15
+ export interface TerminalCascadeChoiceDomain<ID extends StableID = StableID> {
16
+ readonly tree: Tree<ID>;
17
+ readonly disabledItems: ReadonlySet<ID>;
18
+ }
19
+ export declare function tryCreateTerminalCascadeChoiceDomain<ID extends StableID>(nodes: readonly TreeNodeInput<ID>[], disabledItems: readonly ID[] | undefined, _label: 'cascade list' | 'cascade select'): Result<TerminalCascadeChoiceDomain<ID>>;
20
+ export declare function withDisabledCascadeChoicePolicies<ID extends StableID, Policies extends TerminalCascadeChoicePolicies<ID>>(policies: Policies | undefined, disabledItems: ReadonlySet<ID>): Policies;
21
+ export declare function toTerminalCascadeChoiceEvent<ID extends StableID>(input: TerminalKeyboardInput): TerminalCascadeChoiceEvent<ID> | null;