@sectile/terminal 0.1.0 → 0.2.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 +15 -1
- package/package.json +103 -3
- package/dist/accordion.d.ts +0 -31
- package/dist/accordion.d.ts.map +0 -1
- package/dist/accordion.js +0 -76
- package/dist/accordion.js.map +0 -1
- package/dist/alert-dialog.d.ts +0 -18
- package/dist/alert-dialog.d.ts.map +0 -1
- package/dist/alert-dialog.js +0 -12
- package/dist/alert-dialog.js.map +0 -1
- package/dist/calendar.d.ts +0 -75
- package/dist/calendar.d.ts.map +0 -1
- package/dist/calendar.js +0 -217
- package/dist/calendar.js.map +0 -1
- package/dist/carousel.d.ts +0 -44
- package/dist/carousel.d.ts.map +0 -1
- package/dist/carousel.js +0 -129
- package/dist/carousel.js.map +0 -1
- package/dist/checkbox-group.d.ts +0 -19
- package/dist/checkbox-group.d.ts.map +0 -1
- package/dist/checkbox-group.js +0 -14
- package/dist/checkbox-group.js.map +0 -1
- package/dist/checkbox.d.ts +0 -17
- package/dist/checkbox.d.ts.map +0 -1
- package/dist/checkbox.js +0 -12
- package/dist/checkbox.js.map +0 -1
- package/dist/combobox.d.ts +0 -100
- package/dist/combobox.d.ts.map +0 -1
- package/dist/combobox.js +0 -286
- package/dist/combobox.js.map +0 -1
- package/dist/date-field.d.ts +0 -36
- package/dist/date-field.d.ts.map +0 -1
- package/dist/date-field.js +0 -46
- package/dist/date-field.js.map +0 -1
- package/dist/date-picker.d.ts +0 -38
- package/dist/date-picker.d.ts.map +0 -1
- package/dist/date-picker.js +0 -40
- package/dist/date-picker.js.map +0 -1
- package/dist/date-range-picker.d.ts +0 -38
- package/dist/date-range-picker.d.ts.map +0 -1
- package/dist/date-range-picker.js +0 -29
- package/dist/date-range-picker.js.map +0 -1
- package/dist/date-time-field.d.ts +0 -36
- package/dist/date-time-field.d.ts.map +0 -1
- package/dist/date-time-field.js +0 -133
- package/dist/date-time-field.js.map +0 -1
- package/dist/date-time-picker.d.ts +0 -38
- package/dist/date-time-picker.d.ts.map +0 -1
- package/dist/date-time-picker.js +0 -127
- package/dist/date-time-picker.js.map +0 -1
- package/dist/date-time-range-picker.d.ts +0 -38
- package/dist/date-time-range-picker.d.ts.map +0 -1
- package/dist/date-time-range-picker.js +0 -136
- package/dist/date-time-range-picker.js.map +0 -1
- package/dist/dialog.d.ts +0 -17
- package/dist/dialog.d.ts.map +0 -1
- package/dist/dialog.js +0 -12
- package/dist/dialog.js.map +0 -1
- package/dist/disclosure.d.ts +0 -22
- package/dist/disclosure.d.ts.map +0 -1
- package/dist/disclosure.js +0 -56
- package/dist/disclosure.js.map +0 -1
- package/dist/feed.d.ts +0 -28
- package/dist/feed.d.ts.map +0 -1
- package/dist/feed.js +0 -32
- package/dist/feed.js.map +0 -1
- package/dist/grid.d.ts +0 -40
- package/dist/grid.d.ts.map +0 -1
- package/dist/grid.js +0 -68
- package/dist/grid.js.map +0 -1
- package/dist/index.d.ts +0 -46
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -44
- package/dist/index.js.map +0 -1
- package/dist/internal/checked-control.d.ts +0 -23
- package/dist/internal/checked-control.d.ts.map +0 -1
- package/dist/internal/checked-control.js +0 -22
- package/dist/internal/checked-control.js.map +0 -1
- package/dist/internal/controller.d.ts +0 -6
- package/dist/internal/controller.d.ts.map +0 -1
- package/dist/internal/controller.js +0 -35
- package/dist/internal/controller.js.map +0 -1
- package/dist/internal/disabled-items.d.ts +0 -6
- package/dist/internal/disabled-items.d.ts.map +0 -1
- package/dist/internal/disabled-items.js +0 -15
- package/dist/internal/disabled-items.js.map +0 -1
- package/dist/internal/facade.d.ts +0 -44
- package/dist/internal/facade.d.ts.map +0 -1
- package/dist/internal/facade.js +0 -58
- package/dist/internal/facade.js.map +0 -1
- package/dist/internal/menu-control.d.ts +0 -34
- package/dist/internal/menu-control.d.ts.map +0 -1
- package/dist/internal/menu-control.js +0 -48
- package/dist/internal/menu-control.js.map +0 -1
- package/dist/internal/popup-control.d.ts +0 -24
- package/dist/internal/popup-control.d.ts.map +0 -1
- package/dist/internal/popup-control.js +0 -23
- package/dist/internal/popup-control.js.map +0 -1
- package/dist/internal/semantic-controller.d.ts +0 -20
- package/dist/internal/semantic-controller.d.ts.map +0 -1
- package/dist/internal/semantic-controller.js +0 -42
- package/dist/internal/semantic-controller.js.map +0 -1
- package/dist/internal/text-input.d.ts +0 -5
- package/dist/internal/text-input.d.ts.map +0 -1
- package/dist/internal/text-input.js +0 -53
- package/dist/internal/text-input.js.map +0 -1
- package/dist/keyboard.d.ts +0 -10
- package/dist/keyboard.d.ts.map +0 -1
- package/dist/keyboard.js +0 -16
- package/dist/keyboard.js.map +0 -1
- package/dist/layout.d.ts +0 -2
- package/dist/layout.d.ts.map +0 -1
- package/dist/layout.js +0 -24
- package/dist/layout.js.map +0 -1
- package/dist/listbox.d.ts +0 -87
- package/dist/listbox.d.ts.map +0 -1
- package/dist/listbox.js +0 -323
- package/dist/listbox.js.map +0 -1
- package/dist/menu-button.d.ts +0 -8
- package/dist/menu-button.d.ts.map +0 -1
- package/dist/menu-button.js +0 -11
- package/dist/menu-button.js.map +0 -1
- package/dist/menu.d.ts +0 -8
- package/dist/menu.d.ts.map +0 -1
- package/dist/menu.js +0 -11
- package/dist/menu.js.map +0 -1
- package/dist/menubar.d.ts +0 -8
- package/dist/menubar.d.ts.map +0 -1
- package/dist/menubar.js +0 -11
- package/dist/menubar.js.map +0 -1
- package/dist/multi-thumb-slider.d.ts +0 -32
- package/dist/multi-thumb-slider.d.ts.map +0 -1
- package/dist/multi-thumb-slider.js +0 -67
- package/dist/multi-thumb-slider.js.map +0 -1
- package/dist/node.d.ts +0 -15
- package/dist/node.d.ts.map +0 -1
- package/dist/node.js +0 -78
- package/dist/node.js.map +0 -1
- package/dist/number-field.d.ts +0 -44
- package/dist/number-field.d.ts.map +0 -1
- package/dist/number-field.js +0 -157
- package/dist/number-field.js.map +0 -1
- package/dist/pagination.d.ts +0 -35
- package/dist/pagination.d.ts.map +0 -1
- package/dist/pagination.js +0 -103
- package/dist/pagination.js.map +0 -1
- package/dist/pin-input.d.ts +0 -25
- package/dist/pin-input.d.ts.map +0 -1
- package/dist/pin-input.js +0 -30
- package/dist/pin-input.js.map +0 -1
- package/dist/quantity-field.d.ts +0 -45
- package/dist/quantity-field.d.ts.map +0 -1
- package/dist/quantity-field.js +0 -168
- package/dist/quantity-field.js.map +0 -1
- package/dist/radio-group.d.ts +0 -37
- package/dist/radio-group.d.ts.map +0 -1
- package/dist/radio-group.js +0 -126
- package/dist/radio-group.js.map +0 -1
- package/dist/rating.d.ts +0 -22
- package/dist/rating.d.ts.map +0 -1
- package/dist/rating.js +0 -38
- package/dist/rating.js.map +0 -1
- package/dist/select.d.ts +0 -41
- package/dist/select.d.ts.map +0 -1
- package/dist/select.js +0 -50
- package/dist/select.js.map +0 -1
- package/dist/slider.d.ts +0 -59
- package/dist/slider.d.ts.map +0 -1
- package/dist/slider.js +0 -156
- package/dist/slider.js.map +0 -1
- package/dist/spin-button.d.ts +0 -35
- package/dist/spin-button.d.ts.map +0 -1
- package/dist/spin-button.js +0 -78
- package/dist/spin-button.js.map +0 -1
- package/dist/stepper.d.ts +0 -19
- package/dist/stepper.d.ts.map +0 -1
- package/dist/stepper.js +0 -14
- package/dist/stepper.js.map +0 -1
- package/dist/switch.d.ts +0 -15
- package/dist/switch.d.ts.map +0 -1
- package/dist/switch.js +0 -12
- package/dist/switch.js.map +0 -1
- package/dist/tabs.d.ts +0 -42
- package/dist/tabs.d.ts.map +0 -1
- package/dist/tabs.js +0 -128
- package/dist/tabs.js.map +0 -1
- package/dist/tags-input.d.ts +0 -29
- package/dist/tags-input.d.ts.map +0 -1
- package/dist/tags-input.js +0 -27
- package/dist/tags-input.js.map +0 -1
- package/dist/text.d.ts +0 -60
- package/dist/text.d.ts.map +0 -1
- package/dist/text.js +0 -143
- package/dist/text.js.map +0 -1
- package/dist/time-field.d.ts +0 -36
- package/dist/time-field.d.ts.map +0 -1
- package/dist/time-field.js +0 -40
- package/dist/time-field.js.map +0 -1
- package/dist/toggle-button.d.ts +0 -15
- package/dist/toggle-button.d.ts.map +0 -1
- package/dist/toggle-button.js +0 -12
- package/dist/toggle-button.js.map +0 -1
- package/dist/toolbar.d.ts +0 -34
- package/dist/toolbar.d.ts.map +0 -1
- package/dist/toolbar.js +0 -108
- package/dist/toolbar.js.map +0 -1
- package/dist/tooltip.d.ts +0 -15
- package/dist/tooltip.d.ts.map +0 -1
- package/dist/tooltip.js +0 -12
- package/dist/tooltip.js.map +0 -1
- package/dist/tree-grid.d.ts +0 -94
- package/dist/tree-grid.d.ts.map +0 -1
- package/dist/tree-grid.js +0 -308
- package/dist/tree-grid.js.map +0 -1
- package/dist/tree-view.d.ts +0 -75
- package/dist/tree-view.d.ts.map +0 -1
- package/dist/tree-view.js +0 -213
- package/dist/tree-view.js.map +0 -1
- package/dist/window-splitter.d.ts +0 -19
- package/dist/window-splitter.d.ts.map +0 -1
- package/dist/window-splitter.js +0 -48
- package/dist/window-splitter.js.map +0 -1
package/dist/calendar.js
DELETED
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
import { createFacadeConnection } from './internal/facade.js';
|
|
2
|
-
import { unwrap } from '@sectile/core/result';
|
|
3
|
-
import { createInteractionState, requireInteraction, } from '@sectile/core/interaction';
|
|
4
|
-
import { applyCalendarEvent, createCalendarState, } from '@sectile/core/calendar';
|
|
5
|
-
import { createGrid } from '@sectile/core/grid';
|
|
6
|
-
import { createRevisionSnapshot, rejectRevisionInput, } from '@sectile/core/revision';
|
|
7
|
-
import { applyControllerEvent, synchronizeControllerState } from './internal/controller.js';
|
|
8
|
-
export function createCalendarController(options) {
|
|
9
|
-
const value = options.value !== undefined ? options.value : options.defaultValue ?? null;
|
|
10
|
-
const current = options.highlightedValue !== undefined
|
|
11
|
-
? options.highlightedValue
|
|
12
|
-
: options.defaultHighlightedValue ?? null;
|
|
13
|
-
const initial = createCalendarState(options.grid, {
|
|
14
|
-
selected: value === null ? [] : [value],
|
|
15
|
-
anchor: value,
|
|
16
|
-
current,
|
|
17
|
-
});
|
|
18
|
-
if (!initial.ok)
|
|
19
|
-
return initial;
|
|
20
|
-
const snapshot = createRevisionSnapshot(initial.value);
|
|
21
|
-
if (!snapshot.ok)
|
|
22
|
-
return snapshot;
|
|
23
|
-
const interaction = createInteractionState(options);
|
|
24
|
-
if (!interaction.ok)
|
|
25
|
-
return interaction;
|
|
26
|
-
return { ok: true, value: new TerminalCalendarController(options, snapshot.value, interaction.value) };
|
|
27
|
-
}
|
|
28
|
-
export function createCalendar(options) {
|
|
29
|
-
return unwrap(tryCreateCalendar(options));
|
|
30
|
-
}
|
|
31
|
-
export function tryCreateCalendar(options) {
|
|
32
|
-
return createFacadeConnection(options, (options) => tryCreateCalendarConnection(options));
|
|
33
|
-
}
|
|
34
|
-
function tryCreateCalendarConnection(options) {
|
|
35
|
-
const grid = createGrid(options.rows);
|
|
36
|
-
if (!grid.ok)
|
|
37
|
-
return grid;
|
|
38
|
-
const controller = createCalendarController({ ...options, grid: grid.value });
|
|
39
|
-
if (!controller.ok)
|
|
40
|
-
return controller;
|
|
41
|
-
return { ok: true, value: connectCalendar({ ...options, controller: controller.value }) };
|
|
42
|
-
}
|
|
43
|
-
export function connectCalendar(options) {
|
|
44
|
-
return new TerminalCalendarConnection(options);
|
|
45
|
-
}
|
|
46
|
-
export function toCalendarEvent(input) {
|
|
47
|
-
if (input.key === 'left')
|
|
48
|
-
return 'left';
|
|
49
|
-
if (input.key === 'right')
|
|
50
|
-
return 'right';
|
|
51
|
-
if (input.key === 'up')
|
|
52
|
-
return 'up';
|
|
53
|
-
if (input.key === 'down')
|
|
54
|
-
return 'down';
|
|
55
|
-
if (input.key === 'space' || input.key === 'enter')
|
|
56
|
-
return 'select';
|
|
57
|
-
if (input.key === 'page-up')
|
|
58
|
-
return 'previous-page';
|
|
59
|
-
if (input.key === 'page-down')
|
|
60
|
-
return 'next-page';
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
export function toCalendarEffect(command) {
|
|
64
|
-
return Object.freeze(command.type === 'focus'
|
|
65
|
-
? { type: 'move-highlight', id: command.id }
|
|
66
|
-
: { type: 'request-page', direction: command.direction, from: command.from });
|
|
67
|
-
}
|
|
68
|
-
class TerminalCalendarConnection {
|
|
69
|
-
grid;
|
|
70
|
-
#controller;
|
|
71
|
-
#onPageRequest;
|
|
72
|
-
#onTransition;
|
|
73
|
-
#onUpdate;
|
|
74
|
-
constructor(options) {
|
|
75
|
-
this.#controller = options.controller;
|
|
76
|
-
this.grid = options.controller.grid;
|
|
77
|
-
this.#onPageRequest = options.onPageRequest;
|
|
78
|
-
this.#onTransition = options.onTransition;
|
|
79
|
-
this.#onUpdate = options.onUpdate;
|
|
80
|
-
}
|
|
81
|
-
getSnapshot() {
|
|
82
|
-
return this.#controller.getSnapshot();
|
|
83
|
-
}
|
|
84
|
-
syncControlledValues(values) {
|
|
85
|
-
const result = this.#controller.syncControlledValues(values);
|
|
86
|
-
if (result.ok)
|
|
87
|
-
this.#onUpdate?.();
|
|
88
|
-
return result;
|
|
89
|
-
}
|
|
90
|
-
handleKeyboardInput(input) {
|
|
91
|
-
const event = toCalendarEvent(input);
|
|
92
|
-
if (event === null)
|
|
93
|
-
return false;
|
|
94
|
-
const result = this.#controller.handleKeyboardInput(input);
|
|
95
|
-
if (result.ok) {
|
|
96
|
-
for (const effect of result.commands) {
|
|
97
|
-
if (effect.type !== 'request-page')
|
|
98
|
-
continue;
|
|
99
|
-
this.#onPageRequest?.(Object.freeze({ direction: effect.direction, from: effect.from }));
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
this.#onTransition?.(Object.freeze({ event, result }));
|
|
103
|
-
if (result.ok)
|
|
104
|
-
this.#onUpdate?.();
|
|
105
|
-
return result.ok;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
class TerminalCalendarController {
|
|
109
|
-
grid;
|
|
110
|
-
#grid;
|
|
111
|
-
#policies;
|
|
112
|
-
#valueControlled;
|
|
113
|
-
#highlightControlled;
|
|
114
|
-
#onValueChange;
|
|
115
|
-
#onHighlightedValueChange;
|
|
116
|
-
#interaction;
|
|
117
|
-
#snapshot;
|
|
118
|
-
constructor(options, snapshot, interaction) {
|
|
119
|
-
this.grid = options.grid;
|
|
120
|
-
this.#grid = options.grid;
|
|
121
|
-
this.#policies = options.policies ?? {};
|
|
122
|
-
this.#valueControlled = options.value !== undefined;
|
|
123
|
-
this.#highlightControlled = options.highlightedValue !== undefined;
|
|
124
|
-
this.#onValueChange = options.onValueChange;
|
|
125
|
-
this.#onHighlightedValueChange = options.onHighlightedValueChange;
|
|
126
|
-
this.#interaction = interaction;
|
|
127
|
-
this.#snapshot = snapshot;
|
|
128
|
-
}
|
|
129
|
-
getSnapshot() {
|
|
130
|
-
return this.#snapshot;
|
|
131
|
-
}
|
|
132
|
-
syncControlledValues(values) {
|
|
133
|
-
const error = controlledInputError(this.#valueControlled, this.#highlightControlled, values);
|
|
134
|
-
if (error !== null)
|
|
135
|
-
return { ok: false, error };
|
|
136
|
-
const selected = this.#valueControlled
|
|
137
|
-
? values.value
|
|
138
|
-
: selectedValue(this.#snapshot.state);
|
|
139
|
-
const state = createCalendarState(this.#grid, {
|
|
140
|
-
selected: selected === null ? [] : [selected],
|
|
141
|
-
anchor: this.#valueControlled ? selected : this.#snapshot.state.selection.anchor,
|
|
142
|
-
current: this.#highlightControlled
|
|
143
|
-
? values.highlightedValue
|
|
144
|
-
: this.#snapshot.state.cursor.current,
|
|
145
|
-
});
|
|
146
|
-
const snapshot = synchronizeControllerState(this.#snapshot, state);
|
|
147
|
-
if (!snapshot.ok)
|
|
148
|
-
return snapshot;
|
|
149
|
-
this.#snapshot = snapshot.value;
|
|
150
|
-
return snapshot;
|
|
151
|
-
}
|
|
152
|
-
handleKeyboardInput(input, expectedRevision = this.#snapshot.revision) {
|
|
153
|
-
const event = toCalendarEvent(input);
|
|
154
|
-
if (event === null) {
|
|
155
|
-
return rejectRevisionInput(this.#snapshot, {
|
|
156
|
-
class: 'transition-rejection',
|
|
157
|
-
code: 'unsupported-terminal-key',
|
|
158
|
-
message: 'Terminal keyboard input does not map to a calendar semantic event.',
|
|
159
|
-
details: { key: input.key },
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
const permitted = requireInteraction(this.#interaction, 'navigate');
|
|
163
|
-
if (!permitted.ok)
|
|
164
|
-
return rejectRevisionInput(this.#snapshot, permitted.error);
|
|
165
|
-
const result = applyControllerEvent(this.#snapshot, expectedRevision, event, (state, semanticEvent) => applyCalendarEvent(this.#grid, state, semanticEvent, this.#policies), (previous, proposed) => controlledState(this.#grid, previous, proposed, this.#valueControlled, this.#highlightControlled), (previous, proposed) => this.#notify(previous, proposed), toCalendarEffect);
|
|
166
|
-
if (result.ok)
|
|
167
|
-
this.#snapshot = result.snapshot;
|
|
168
|
-
return result;
|
|
169
|
-
}
|
|
170
|
-
#notify(previous, proposed) {
|
|
171
|
-
const previousValue = selectedValue(previous);
|
|
172
|
-
const value = selectedValue(proposed);
|
|
173
|
-
if (previousValue !== value) {
|
|
174
|
-
this.#onValueChange?.(Object.freeze({ value, previousValue }));
|
|
175
|
-
}
|
|
176
|
-
if (previous.cursor.current !== proposed.cursor.current) {
|
|
177
|
-
this.#onHighlightedValueChange?.(Object.freeze({
|
|
178
|
-
value: proposed.cursor.current,
|
|
179
|
-
previousValue: previous.cursor.current,
|
|
180
|
-
}));
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
function controlledState(grid, previous, proposed, valueControlled, highlightControlled) {
|
|
185
|
-
return createCalendarState(grid, {
|
|
186
|
-
selected: valueControlled ? previous.selection.selected : proposed.selection.selected,
|
|
187
|
-
anchor: valueControlled ? previous.selection.anchor : proposed.selection.anchor,
|
|
188
|
-
current: highlightControlled ? previous.cursor.current : proposed.cursor.current,
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
function selectedValue(state) {
|
|
192
|
-
return state.selection.selected[0] ?? null;
|
|
193
|
-
}
|
|
194
|
-
function controlledInputError(valueControlled, highlightControlled, values) {
|
|
195
|
-
if (valueControlled !== (values.value !== undefined)) {
|
|
196
|
-
return {
|
|
197
|
-
class: 'construction',
|
|
198
|
-
code: valueControlled ? 'controlled-value-required' : 'uncontrolled-value-update',
|
|
199
|
-
message: valueControlled
|
|
200
|
-
? 'Controlled calendar selection sync requires value.'
|
|
201
|
-
: 'Uncontrolled calendar selection cannot be synchronized externally.',
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
if (highlightControlled !== (values.highlightedValue !== undefined)) {
|
|
205
|
-
return {
|
|
206
|
-
class: 'construction',
|
|
207
|
-
code: highlightControlled
|
|
208
|
-
? 'controlled-highlighted-value-required'
|
|
209
|
-
: 'uncontrolled-highlighted-value-update',
|
|
210
|
-
message: highlightControlled
|
|
211
|
-
? 'Controlled calendar highlight sync requires highlightedValue.'
|
|
212
|
-
: 'Uncontrolled calendar highlight cannot be synchronized externally.',
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
return null;
|
|
216
|
-
}
|
|
217
|
-
//# sourceMappingURL=calendar.js.map
|
package/dist/calendar.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../src/calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GAKpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAa,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GAGpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAgF5F,MAAM,UAAU,wBAAwB,CACtC,OAAsC;IAEtC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;IACzF,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,KAAK,SAAS;QACpD,CAAC,CAAC,OAAO,CAAC,gBAAgB;QAC1B,CAAC,CAAC,OAAO,CAAC,uBAAuB,IAAI,IAAI,CAAC;IAC5C,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE;QAChD,QAAQ,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACvC,MAAM,EAAE,KAAK;QACb,OAAO;KACR,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IAChC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC;IAClC,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,CAAC,WAAW,CAAC,EAAE;QAAE,OAAO,WAAW,CAAC;IACxC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;AACzG,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,OAA4B;IAE5B,OAAO,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAA4B;IAE5B,OAAO,sBAAsB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,2BAA2B,CAClC,OAA4B;IAE5B,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,UAAU,GAAG,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,UAAU,CAAC;IACtC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAAsC;IAEtC,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAoB;IAEpB,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC;IACpE,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC;IACpD,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC;IAClD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAA4B;IAE5B,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO;QAC3C,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE;QAC5C,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,0BAA0B;IACd,IAAI,CAAW;IACtB,WAAW,CAAyB;IACpC,cAAc,CAAkE;IAChF,aAAa,CAAiE;IAC9E,SAAS,CAA2B;IAE7C,YAAmB,OAAsC;QACvD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;IACpC,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAEM,oBAAoB,CACzB,MAAoC;QAEpC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,EAAE;YAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,mBAAmB,CAAC,KAAoB;QAC7C,MAAM,KAAK,GAAG,eAAe,CAAK,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrC,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc;oBAAE,SAAS;gBAC7C,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,EAAE;YAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,EAAE,CAAC;IACnB,CAAC;CACF;AAED,MAAM,0BAA0B;IACd,IAAI,CAAW;IACtB,KAAK,CAAW;IAChB,SAAS,CAAuB;IAChC,gBAAgB,CAAU;IAC1B,oBAAoB,CAAU;IAC9B,cAAc,CAAiE;IAC/E,yBAAyB,CAEpB;IACL,YAAY,CAAmB;IACxC,SAAS,CAAsC;IAE/C,YACE,OAAsC,EACtC,QAA6C,EAC7C,WAA6B;QAE7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC;QACpD,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,KAAK,SAAS,CAAC;QACnE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC;QAClE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEM,oBAAoB,CACzB,MAAoC;QAEpC,MAAM,KAAK,GAAG,oBAAoB,CAChC,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,oBAAoB,EACzB,MAAM,CACP,CAAC;QACF,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB;YACpC,CAAC,CAAE,MAAM,CAAC,KAAmB;YAC7B,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE;YAC5C,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC7C,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;YAChF,OAAO,EAAE,IAAI,CAAC,oBAAoB;gBAChC,CAAC,CAAE,MAAM,CAAC,gBAA8B;gBACxC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;SACxC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,0BAA0B,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,QAAQ,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;QAChC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,mBAAmB,CACxB,KAAoB,EACpB,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;QAE1C,MAAM,KAAK,GAAG,eAAe,CAAK,KAAK,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE;gBACzC,KAAK,EAAE,sBAAsB;gBAC7B,IAAI,EAAE,0BAA0B;gBAChC,OAAO,EAAE,oEAAoE;gBAC7E,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS,CAAC,EAAE;YAAE,OAAO,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,oBAAoB,CACjC,IAAI,CAAC,SAAS,EACd,gBAAgB,EAChB,KAAK,EACL,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAC1C,IAAI,CAAC,KAAK,EACV,KAAK,EACL,aAAa,EACb,IAAI,CAAC,SAAS,CACf,EACD,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,eAAe,CACrC,IAAI,CAAC,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,oBAAoB,CAC1B,EACD,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACxD,gBAAgB,CACjB,CAAC;QACF,IAAI,MAAM,CAAC,EAAE;YAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,QAA2B,EAAE,QAA2B;QAC9D,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxD,IAAI,CAAC,yBAAyB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC7C,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO;gBAC9B,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO;aACvC,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC;CACF;AAED,SAAS,eAAe,CACtB,IAAc,EACd,QAA2B,EAC3B,QAA2B,EAC3B,eAAwB,EACxB,mBAA4B;IAE5B,OAAO,mBAAmB,CAAC,IAAI,EAAE;QAC/B,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ;QACrF,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM;QAC/E,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO;KACjF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAsB,KAAwB;IAClE,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,oBAAoB,CAC3B,eAAwB,EACxB,mBAA4B,EAC5B,MAAoC;IAEpC,IAAI,eAAe,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC;QACrD,OAAO;YACL,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,2BAA2B;YACjF,OAAO,EAAE,eAAe;gBACtB,CAAC,CAAC,oDAAoD;gBACtD,CAAC,CAAC,oEAAoE;SACzE,CAAC;IACJ,CAAC;IACD,IAAI,mBAAmB,KAAK,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAAC,EAAE,CAAC;QACpE,OAAO;YACL,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,mBAAmB;gBACvB,CAAC,CAAC,uCAAuC;gBACzC,CAAC,CAAC,uCAAuC;YAC3C,OAAO,EAAE,mBAAmB;gBAC1B,CAAC,CAAC,+DAA+D;gBACjE,CAAC,CAAC,oEAAoE;SACzE,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/carousel.d.ts
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { type FacadeConnection } from './internal/facade.js';
|
|
2
|
-
import type { Result, StableID } from '@sectile/core';
|
|
3
|
-
import { type CarouselEvent, type CarouselPolicies, type CarouselPosition, type CarouselState } from '@sectile/core/carousel';
|
|
4
|
-
import type { RevisionSnapshot } from '@sectile/core/revision';
|
|
5
|
-
import type { TerminalKeyboardInput } from './keyboard.js';
|
|
6
|
-
export interface CarouselScheduler {
|
|
7
|
-
schedule(callback: () => void, delayMs: number): unknown;
|
|
8
|
-
cancel(token: unknown): void;
|
|
9
|
-
}
|
|
10
|
-
export interface CarouselAutoplayOptions {
|
|
11
|
-
readonly delayMs?: number;
|
|
12
|
-
readonly stopOnInteraction?: boolean;
|
|
13
|
-
readonly scheduler?: CarouselScheduler;
|
|
14
|
-
}
|
|
15
|
-
export interface CarouselOptions<ID extends StableID = StableID> {
|
|
16
|
-
readonly slides: readonly ID[];
|
|
17
|
-
readonly value?: ID | null;
|
|
18
|
-
readonly defaultValue?: ID | null;
|
|
19
|
-
readonly paused?: boolean;
|
|
20
|
-
readonly defaultPaused?: boolean;
|
|
21
|
-
readonly disabled?: boolean;
|
|
22
|
-
readonly policies?: CarouselPolicies;
|
|
23
|
-
readonly orientation?: 'horizontal' | 'vertical';
|
|
24
|
-
readonly autoplay?: boolean | CarouselAutoplayOptions;
|
|
25
|
-
readonly onValueChange?: (value: ID | null) => void;
|
|
26
|
-
readonly onPausedChange?: (paused: boolean) => void;
|
|
27
|
-
readonly onAnnounce?: (id: ID) => void;
|
|
28
|
-
readonly onUpdate?: () => void;
|
|
29
|
-
}
|
|
30
|
-
export interface CarouselControlledValues<ID extends StableID = StableID> {
|
|
31
|
-
readonly value?: ID | null;
|
|
32
|
-
readonly paused?: boolean;
|
|
33
|
-
}
|
|
34
|
-
export interface CarouselConnection<ID extends StableID = StableID> {
|
|
35
|
-
getSnapshot(): RevisionSnapshot<CarouselState<ID>>;
|
|
36
|
-
getPosition(): CarouselPosition;
|
|
37
|
-
syncControlledValues(values: CarouselControlledValues<ID>): Result<RevisionSnapshot<CarouselState<ID>>>;
|
|
38
|
-
handleEvent(event: CarouselEvent<ID>): boolean;
|
|
39
|
-
handleKeyboardInput(input: TerminalKeyboardInput): boolean;
|
|
40
|
-
disconnect(): void;
|
|
41
|
-
}
|
|
42
|
-
export declare function createCarousel<ID extends StableID>(options: CarouselOptions<ID>): FacadeConnection<CarouselConnection<ID>>;
|
|
43
|
-
export declare function tryCreateCarousel<ID extends StableID>(options: CarouselOptions<ID>): Result<FacadeConnection<CarouselConnection<ID>>>;
|
|
44
|
-
//# sourceMappingURL=carousel.d.ts.map
|
package/dist/carousel.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../src/carousel.ts"],"names":[],"mappings":"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"}
|
package/dist/carousel.js
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { createFacadeConnection } from './internal/facade.js';
|
|
2
|
-
import { unwrap } from '@sectile/core/result';
|
|
3
|
-
import { createSequence } from '@sectile/core/sequence';
|
|
4
|
-
import { applyCarouselEvent, createCarouselState, getCarouselPosition, isCarouselRotationPaused, } from '@sectile/core/carousel';
|
|
5
|
-
import { createSemanticController } from './internal/semantic-controller.js';
|
|
6
|
-
export function createCarousel(options) {
|
|
7
|
-
return unwrap(tryCreateCarousel(options));
|
|
8
|
-
}
|
|
9
|
-
export function tryCreateCarousel(options) {
|
|
10
|
-
return createFacadeConnection(options, (options) => tryCreateCarouselConnection(options));
|
|
11
|
-
}
|
|
12
|
-
function tryCreateCarouselConnection(options) {
|
|
13
|
-
const slides = createSequence(options.slides);
|
|
14
|
-
if (!slides.ok)
|
|
15
|
-
return slides;
|
|
16
|
-
const autoplay = normalizeAutoplay(options.autoplay);
|
|
17
|
-
if (!autoplay.ok)
|
|
18
|
-
return autoplay;
|
|
19
|
-
const valueControlled = options.value !== undefined;
|
|
20
|
-
const pausedControlled = options.paused !== undefined;
|
|
21
|
-
const runtime = createSemanticController({
|
|
22
|
-
initial: createCarouselState(slides.value, options.value !== undefined ? options.value : options.defaultValue ?? options.slides[0] ?? null, options.paused ?? options.defaultPaused ?? false),
|
|
23
|
-
reducer: (state, event) => applyCarouselEvent(slides.value, state, event, options.policies),
|
|
24
|
-
reconcile: (previous, proposed) => createCarouselState(slides.value, valueControlled ? previous.cursor.current : proposed.cursor.current, pausedControlled ? previous.paused : proposed.paused, proposed.pauseReasons),
|
|
25
|
-
notify: (previous, proposed) => {
|
|
26
|
-
if (previous.cursor.current !== proposed.cursor.current)
|
|
27
|
-
options.onValueChange?.(proposed.cursor.current);
|
|
28
|
-
if (previous.paused !== proposed.paused)
|
|
29
|
-
options.onPausedChange?.(proposed.paused);
|
|
30
|
-
},
|
|
31
|
-
toEffect: (command) => command,
|
|
32
|
-
interaction: options,
|
|
33
|
-
});
|
|
34
|
-
return runtime.ok
|
|
35
|
-
? { ok: true, value: new TerminalCarousel(options, slides.value, runtime.value, autoplay.value, valueControlled, pausedControlled) }
|
|
36
|
-
: runtime;
|
|
37
|
-
}
|
|
38
|
-
class TerminalCarousel {
|
|
39
|
-
#options;
|
|
40
|
-
#slides;
|
|
41
|
-
#runtime;
|
|
42
|
-
#autoplay;
|
|
43
|
-
#valueControlled;
|
|
44
|
-
#pausedControlled;
|
|
45
|
-
#timer = noCarouselTimer;
|
|
46
|
-
constructor(options, slides, runtime, autoplay, valueControlled, pausedControlled) {
|
|
47
|
-
this.#options = options;
|
|
48
|
-
this.#slides = slides;
|
|
49
|
-
this.#runtime = runtime;
|
|
50
|
-
this.#autoplay = autoplay;
|
|
51
|
-
this.#valueControlled = valueControlled;
|
|
52
|
-
this.#pausedControlled = pausedControlled;
|
|
53
|
-
this.#resetTimer();
|
|
54
|
-
}
|
|
55
|
-
getSnapshot() { return this.#runtime.getSnapshot(); }
|
|
56
|
-
getPosition() { return getCarouselPosition(this.#slides, this.getSnapshot().state); }
|
|
57
|
-
syncControlledValues(values) {
|
|
58
|
-
if (this.#valueControlled !== (values.value !== undefined) || this.#pausedControlled !== (values.paused !== undefined)) {
|
|
59
|
-
return { ok: false, error: { class: 'construction', code: 'controlled-shape-mismatch', message: 'Controlled carousel values must preserve their construction-time shape.' } };
|
|
60
|
-
}
|
|
61
|
-
const state = this.getSnapshot().state;
|
|
62
|
-
const result = this.#runtime.replace(createCarouselState(this.#slides, this.#valueControlled ? values.value : state.cursor.current, this.#pausedControlled ? values.paused : state.paused, state.pauseReasons));
|
|
63
|
-
if (result.ok) {
|
|
64
|
-
this.#resetTimer();
|
|
65
|
-
this.#options.onUpdate?.();
|
|
66
|
-
}
|
|
67
|
-
return result;
|
|
68
|
-
}
|
|
69
|
-
handleEvent(event) {
|
|
70
|
-
const before = this.getSnapshot().state.cursor.current;
|
|
71
|
-
const result = this.#runtime.handle(event);
|
|
72
|
-
if (result.ok) {
|
|
73
|
-
for (const command of result.commands)
|
|
74
|
-
this.#options.onAnnounce?.(command.id);
|
|
75
|
-
this.#resetTimer();
|
|
76
|
-
if (this.#autoplay !== null && this.#options.policies?.wrap === false && event === 'next' && before === this.getSnapshot().state.cursor.current)
|
|
77
|
-
this.#clearTimer();
|
|
78
|
-
}
|
|
79
|
-
this.#options.onUpdate?.();
|
|
80
|
-
return result.ok;
|
|
81
|
-
}
|
|
82
|
-
handleKeyboardInput(input) {
|
|
83
|
-
const vertical = this.#options.orientation === 'vertical';
|
|
84
|
-
const event = input.key === (vertical ? 'down' : 'right') ? 'next'
|
|
85
|
-
: input.key === (vertical ? 'up' : 'left') ? 'previous'
|
|
86
|
-
: input.key === 'home' ? 'first'
|
|
87
|
-
: input.key === 'end' ? 'last'
|
|
88
|
-
: input.key === 'space' ? 'toggle-pause'
|
|
89
|
-
: null;
|
|
90
|
-
if (event === null)
|
|
91
|
-
return false;
|
|
92
|
-
this.handleEvent(event);
|
|
93
|
-
if (this.#autoplay?.stopOnInteraction && event !== 'toggle-pause')
|
|
94
|
-
this.handleEvent('pause');
|
|
95
|
-
return true;
|
|
96
|
-
}
|
|
97
|
-
disconnect() { this.#clearTimer(); }
|
|
98
|
-
#resetTimer() {
|
|
99
|
-
this.#clearTimer();
|
|
100
|
-
if (this.#autoplay === null || this.#slides.size < 2 || isCarouselRotationPaused(this.getSnapshot().state))
|
|
101
|
-
return;
|
|
102
|
-
this.#timer = this.#autoplay.scheduler.schedule(() => {
|
|
103
|
-
this.#timer = noCarouselTimer;
|
|
104
|
-
this.handleEvent('next');
|
|
105
|
-
}, this.#autoplay.delayMs);
|
|
106
|
-
}
|
|
107
|
-
#clearTimer() {
|
|
108
|
-
if (this.#timer === noCarouselTimer || this.#autoplay === null)
|
|
109
|
-
return;
|
|
110
|
-
this.#autoplay.scheduler.cancel(this.#timer);
|
|
111
|
-
this.#timer = noCarouselTimer;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
const noCarouselTimer = Symbol('no-carousel-timer');
|
|
115
|
-
function normalizeAutoplay(autoplay) {
|
|
116
|
-
if (autoplay === undefined || autoplay === false)
|
|
117
|
-
return { ok: true, value: null };
|
|
118
|
-
const config = autoplay === true ? {} : autoplay;
|
|
119
|
-
const delayMs = config.delayMs ?? 5000;
|
|
120
|
-
if (!Number.isFinite(delayMs) || delayMs <= 0) {
|
|
121
|
-
return { ok: false, error: { class: 'construction', code: 'carousel-autoplay-delay-invalid', message: 'Carousel autoplay delay must be a positive finite number.' } };
|
|
122
|
-
}
|
|
123
|
-
const scheduler = config.scheduler ?? {
|
|
124
|
-
schedule: (callback, delay) => globalThis.setTimeout(callback, delay),
|
|
125
|
-
cancel: (token) => { globalThis.clearTimeout(token); },
|
|
126
|
-
};
|
|
127
|
-
return { ok: true, value: { delayMs, stopOnInteraction: config.stopOnInteraction ?? true, scheduler } };
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=carousel.js.map
|
package/dist/carousel.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"carousel.js","sourceRoot":"","sources":["../src/carousel.ts"],"names":[],"mappings":"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"}
|
package/dist/checkbox-group.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { type FacadeConnection } from './internal/facade.js';
|
|
2
|
-
import type { Result, StableID } from '@sectile/core';
|
|
3
|
-
import type { CheckboxGroupEvent, CheckboxGroupState } from '@sectile/core/checkbox-group';
|
|
4
|
-
import type { RevisionSnapshot } from '@sectile/core/revision';
|
|
5
|
-
import { type ListboxOptions } from './listbox.js';
|
|
6
|
-
import type { TerminalKeyboardInput } from './keyboard.js';
|
|
7
|
-
export type CheckboxGroupOptions<ID extends StableID = StableID> = Omit<ListboxOptions<ID>, 'selectionMode'>;
|
|
8
|
-
export interface CheckboxGroupConnection<ID extends StableID = StableID> {
|
|
9
|
-
getSnapshot(): RevisionSnapshot<CheckboxGroupState<ID>>;
|
|
10
|
-
syncControlledValues(values: {
|
|
11
|
-
readonly value?: readonly ID[];
|
|
12
|
-
readonly highlightedValue?: ID | null;
|
|
13
|
-
}): Result<RevisionSnapshot<CheckboxGroupState<ID>>>;
|
|
14
|
-
handleEvent(event: CheckboxGroupEvent<ID>): boolean;
|
|
15
|
-
handleKeyboardInput(input: TerminalKeyboardInput): boolean;
|
|
16
|
-
}
|
|
17
|
-
export declare function createCheckboxGroup<ID extends StableID>(options: CheckboxGroupOptions<ID>): FacadeConnection<CheckboxGroupConnection<ID>>;
|
|
18
|
-
export declare function tryCreateCheckboxGroup<ID extends StableID>(options: CheckboxGroupOptions<ID>): Result<FacadeConnection<CheckboxGroupConnection<ID>>>;
|
|
19
|
-
//# sourceMappingURL=checkbox-group.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-group.d.ts","sourceRoot":"","sources":["../src/checkbox-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAA4C,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,MAAM,oBAAoB,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;AAC7G,MAAM,WAAW,uBAAuB,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ;IACrE,WAAW,IAAI,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,oBAAoB,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC;QAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,IAAI,CAAA;KAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1J,WAAW,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;IACpD,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC;CAC5D;AACD,wBAAgB,mBAAmB,CAAC,EAAE,SAAS,QAAQ,EAAE,OAAO,EAAE,oBAAoB,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAEzI;AAED,wBAAgB,sBAAsB,CAAC,EAAE,SAAS,QAAQ,EAAE,OAAO,EAAE,oBAAoB,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC,CAEpJ"}
|
package/dist/checkbox-group.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { createFacadeConnection } from './internal/facade.js';
|
|
2
|
-
import { unwrap } from '@sectile/core/result';
|
|
3
|
-
import { tryCreateListbox } from './listbox.js';
|
|
4
|
-
export function createCheckboxGroup(options) {
|
|
5
|
-
return unwrap(tryCreateCheckboxGroup(options));
|
|
6
|
-
}
|
|
7
|
-
export function tryCreateCheckboxGroup(options) {
|
|
8
|
-
return createFacadeConnection(options, (options) => tryCreateCheckboxGroupConnection(options));
|
|
9
|
-
}
|
|
10
|
-
function tryCreateCheckboxGroupConnection(options) {
|
|
11
|
-
const result = tryCreateListbox({ ...options, selectionMode: 'multiple' });
|
|
12
|
-
return result.ok ? { ok: true, value: result.value } : result;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=checkbox-group.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-group.js","sourceRoot":"","sources":["../src/checkbox-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,OAAO,EAAE,gBAAgB,EAA+C,MAAM,cAAc,CAAC;AAU7F,MAAM,UAAU,mBAAmB,CAAsB,OAAiC;IACxF,OAAO,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAsB,OAAiC;IAC3F,OAAO,sBAAsB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,gCAAgC,CAAsB,OAAiC;IAC9F,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3E,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAA6D,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AACxH,CAAC"}
|
package/dist/checkbox.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type FacadeConnection } from './internal/facade.js';
|
|
2
|
-
import type { Result } from '@sectile/core';
|
|
3
|
-
import { type CheckboxEvent, type CheckboxPolicies, type CheckboxState, type CheckboxValue } from '@sectile/core/checkbox';
|
|
4
|
-
import { type TerminalCheckedControl } from './internal/checked-control.js';
|
|
5
|
-
export interface CheckboxOptions {
|
|
6
|
-
readonly value?: CheckboxValue;
|
|
7
|
-
readonly defaultValue?: CheckboxValue;
|
|
8
|
-
readonly policies?: CheckboxPolicies;
|
|
9
|
-
readonly disabled?: boolean;
|
|
10
|
-
readonly readOnly?: boolean;
|
|
11
|
-
readonly onValueChange?: (value: CheckboxValue) => void;
|
|
12
|
-
readonly onUpdate?: () => void;
|
|
13
|
-
}
|
|
14
|
-
export type CheckboxConnection = TerminalCheckedControl<CheckboxState, CheckboxEvent, CheckboxValue>;
|
|
15
|
-
export declare function createCheckbox(options?: CheckboxOptions): FacadeConnection<CheckboxConnection>;
|
|
16
|
-
export declare function tryCreateCheckbox(options?: CheckboxOptions): Result<FacadeConnection<CheckboxConnection>>;
|
|
17
|
-
//# sourceMappingURL=checkbox.d.ts.map
|
package/dist/checkbox.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../src/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAAC,OAAO,EAAiE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAAC,OAAO,EAAgC,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAClV,MAAM,WAAW,eAAe;IAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE;AACnS,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AACrG,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAoB,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAElG;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,eAAoB,GAAG,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAE7G"}
|
package/dist/checkbox.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { createFacadeConnection } from './internal/facade.js';
|
|
2
|
-
import { unwrap } from '@sectile/core/result';
|
|
3
|
-
import { applyCheckboxEvent, createCheckboxState } from '@sectile/core/checkbox';
|
|
4
|
-
import { createTerminalCheckedControl } from './internal/checked-control.js';
|
|
5
|
-
export function createCheckbox(options = {}) {
|
|
6
|
-
return unwrap(tryCreateCheckbox(options));
|
|
7
|
-
}
|
|
8
|
-
export function tryCreateCheckbox(options = {}) {
|
|
9
|
-
return createFacadeConnection(options, (options) => tryCreateCheckboxConnection(options));
|
|
10
|
-
}
|
|
11
|
-
function tryCreateCheckboxConnection(options = {}) { return createTerminalCheckedControl({ controlled: options.value !== undefined, initial: createCheckboxState(options.value ?? options.defaultValue ?? false, options.policies), toggleEvent: 'toggle', reducer: (state, event) => applyCheckboxEvent(state, event, options.policies), create: (value) => createCheckboxState(value, options.policies), read: (state) => state.checked, interaction: options, onChange: options.onValueChange, onUpdate: options.onUpdate }); }
|
|
12
|
-
//# sourceMappingURL=checkbox.js.map
|
package/dist/checkbox.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../src/checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAA2G,MAAM,wBAAwB,CAAC;AAAC,OAAO,EAAE,4BAA4B,EAA+B,MAAM,+BAA+B,CAAC;AAGlV,MAAM,UAAU,cAAc,CAAC,OAAO,GAAoB,EAAE;IAC1D,OAAO,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAO,GAAoB,EAAE;IAC7D,OAAO,sBAAsB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,2BAA2B,CAAC,OAAO,GAAoB,EAAE,IAAgC,OAAO,4BAA4B,CAA+D,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,YAAY,IAAI,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/combobox.d.ts
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { type FacadeConnection } from './internal/facade.js';
|
|
2
|
-
import type { Result, StableID } from '@sectile/core';
|
|
3
|
-
import { type ComboboxCommand, type ComboboxEvent, type ComboboxPolicies, type ComboboxState } from '@sectile/core/combobox';
|
|
4
|
-
import { type RevisionResult, type RevisionSnapshot } from '@sectile/core/revision';
|
|
5
|
-
import { type Sequence } from '@sectile/core/sequence';
|
|
6
|
-
import { type TextEditingState } from '@sectile/core/text';
|
|
7
|
-
import { type TextInput } from './text.js';
|
|
8
|
-
import type { TerminalKeyboardInput } from './keyboard.js';
|
|
9
|
-
export type KeyboardInput = TerminalKeyboardInput;
|
|
10
|
-
export type ComboboxEffect<ID extends StableID = StableID> = {
|
|
11
|
-
readonly type: 'highlight-candidate';
|
|
12
|
-
readonly id: ID;
|
|
13
|
-
} | {
|
|
14
|
-
readonly type: 'submit-candidate';
|
|
15
|
-
readonly id: ID;
|
|
16
|
-
};
|
|
17
|
-
export interface ComboboxValueChangeDetails<ID extends StableID = StableID> {
|
|
18
|
-
readonly value: ID | null;
|
|
19
|
-
readonly previousValue: ID | null;
|
|
20
|
-
}
|
|
21
|
-
export interface ComboboxInputStateChangeDetails {
|
|
22
|
-
readonly value: TextEditingState;
|
|
23
|
-
readonly previousValue: TextEditingState;
|
|
24
|
-
}
|
|
25
|
-
export interface ComboboxOpenChangeDetails {
|
|
26
|
-
readonly value: boolean;
|
|
27
|
-
readonly previousValue: boolean;
|
|
28
|
-
}
|
|
29
|
-
export interface ComboboxHighlightChangeDetails<ID extends StableID = StableID> {
|
|
30
|
-
readonly value: ID | null;
|
|
31
|
-
readonly previousValue: ID | null;
|
|
32
|
-
}
|
|
33
|
-
export interface ComboboxControllerOptions<ID extends StableID = StableID> {
|
|
34
|
-
readonly domain: Sequence<ID>;
|
|
35
|
-
readonly labels: ReadonlyMap<ID, string>;
|
|
36
|
-
readonly policies?: ComboboxPolicies<ID>;
|
|
37
|
-
readonly value?: ID | null;
|
|
38
|
-
readonly defaultValue?: ID | null;
|
|
39
|
-
readonly inputState?: TextEditingState;
|
|
40
|
-
readonly defaultInputState?: TextEditingState;
|
|
41
|
-
readonly open?: boolean;
|
|
42
|
-
readonly defaultOpen?: boolean;
|
|
43
|
-
readonly highlightedValue?: ID | null;
|
|
44
|
-
readonly defaultHighlightedValue?: ID | null;
|
|
45
|
-
readonly disabled?: boolean;
|
|
46
|
-
readonly readOnly?: boolean;
|
|
47
|
-
readonly onValueChange?: (change: ComboboxValueChangeDetails<ID>) => void;
|
|
48
|
-
readonly onInputStateChange?: (change: ComboboxInputStateChangeDetails) => void;
|
|
49
|
-
readonly onOpenChange?: (change: ComboboxOpenChangeDetails) => void;
|
|
50
|
-
readonly onHighlightedValueChange?: (change: ComboboxHighlightChangeDetails<ID>) => void;
|
|
51
|
-
}
|
|
52
|
-
export interface ComboboxControlledValues<ID extends StableID = StableID> {
|
|
53
|
-
readonly value?: ID | null;
|
|
54
|
-
readonly inputState?: TextEditingState;
|
|
55
|
-
readonly open?: boolean;
|
|
56
|
-
readonly highlightedValue?: ID | null;
|
|
57
|
-
}
|
|
58
|
-
export interface ComboboxController<ID extends StableID = StableID> {
|
|
59
|
-
readonly domain: Sequence<ID>;
|
|
60
|
-
readonly labels: ReadonlyMap<ID, string>;
|
|
61
|
-
getSnapshot(): RevisionSnapshot<ComboboxState<ID>>;
|
|
62
|
-
syncControlledValues(values: ComboboxControlledValues<ID>): Result<RevisionSnapshot<ComboboxState<ID>>>;
|
|
63
|
-
handleKeyboardInput(input: KeyboardInput, expectedRevision?: number): RevisionResult<ComboboxState<ID>, ComboboxEffect<ID>>;
|
|
64
|
-
handleTextInput(input: TextInput, expectedRevision?: number): RevisionResult<ComboboxState<ID>, ComboboxEffect<ID>>;
|
|
65
|
-
}
|
|
66
|
-
export interface ComboboxItem<ID extends StableID = StableID> {
|
|
67
|
-
readonly id: ID;
|
|
68
|
-
readonly label: string;
|
|
69
|
-
}
|
|
70
|
-
export interface ComboboxTransitionDetails<ID extends StableID = StableID> {
|
|
71
|
-
readonly event: ComboboxEvent<ID>;
|
|
72
|
-
readonly result: RevisionResult<ComboboxState<ID>, ComboboxEffect<ID>>;
|
|
73
|
-
}
|
|
74
|
-
export interface ComboboxConnectionOptions<ID extends StableID = StableID> {
|
|
75
|
-
readonly controller: ComboboxController<ID>;
|
|
76
|
-
readonly disabled?: boolean;
|
|
77
|
-
readonly readOnly?: boolean;
|
|
78
|
-
readonly onAccept?: (id: ID) => void;
|
|
79
|
-
readonly onTransition?: (details: ComboboxTransitionDetails<ID>) => void;
|
|
80
|
-
readonly onUpdate?: () => void;
|
|
81
|
-
}
|
|
82
|
-
export interface ComboboxConnection<ID extends StableID = StableID> {
|
|
83
|
-
readonly domain: Sequence<ID>;
|
|
84
|
-
readonly labels: ReadonlyMap<ID, string>;
|
|
85
|
-
getSnapshot(): RevisionSnapshot<ComboboxState<ID>>;
|
|
86
|
-
getInputValue(): string;
|
|
87
|
-
syncControlledValues(values: ComboboxControlledValues<ID>): Result<RevisionSnapshot<ComboboxState<ID>>>;
|
|
88
|
-
handleKeyboardInput(input: KeyboardInput): boolean;
|
|
89
|
-
}
|
|
90
|
-
export type ComboboxOptions<ID extends StableID = StableID> = Omit<ComboboxControllerOptions<ID>, 'domain' | 'labels'> & Omit<ComboboxConnectionOptions<ID>, 'controller'> & {
|
|
91
|
-
readonly items: readonly ComboboxItem<ID>[];
|
|
92
|
-
};
|
|
93
|
-
export declare function createComboboxController<ID extends StableID>(options: ComboboxControllerOptions<ID>): Result<ComboboxController<ID>>;
|
|
94
|
-
export declare function createCombobox<ID extends StableID>(options: ComboboxOptions<ID>): FacadeConnection<ComboboxConnection<ID>>;
|
|
95
|
-
export declare function tryCreateCombobox<ID extends StableID>(options: ComboboxOptions<ID>): Result<FacadeConnection<ComboboxConnection<ID>>>;
|
|
96
|
-
export declare function connectCombobox<ID extends StableID>(options: ComboboxConnectionOptions<ID>): ComboboxConnection<ID>;
|
|
97
|
-
export declare function toComboboxEvent<ID extends StableID = StableID>(input: KeyboardInput): ComboboxEvent<ID> | null;
|
|
98
|
-
export declare function toComboboxTextEvent<ID extends StableID = StableID>(input: TextInput): ComboboxEvent<ID> | null;
|
|
99
|
-
export declare function toComboboxEffect<ID extends StableID>(command: ComboboxCommand<ID>): ComboboxEffect<ID>;
|
|
100
|
-
//# sourceMappingURL=combobox.d.ts.map
|
package/dist/combobox.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../src/combobox.ts"],"names":[],"mappings":"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"}
|