@sectile/core 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 +3 -2
- package/package.json +100 -2
- package/dist/accordion.d.ts +0 -43
- package/dist/accordion.d.ts.map +0 -1
- package/dist/accordion.js +0 -83
- 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 -9
- package/dist/alert-dialog.js.map +0 -1
- package/dist/calendar.d.ts +0 -2
- package/dist/calendar.d.ts.map +0 -1
- package/dist/calendar.js +0 -2
- package/dist/calendar.js.map +0 -1
- package/dist/carousel.d.ts +0 -40
- package/dist/carousel.d.ts.map +0 -1
- package/dist/carousel.js +0 -51
- package/dist/carousel.js.map +0 -1
- package/dist/checkbox-group.d.ts +0 -12
- package/dist/checkbox-group.d.ts.map +0 -1
- package/dist/checkbox-group.js +0 -12
- package/dist/checkbox-group.js.map +0 -1
- package/dist/checkbox.d.ts +0 -2
- package/dist/checkbox.d.ts.map +0 -1
- package/dist/checkbox.js +0 -2
- package/dist/checkbox.js.map +0 -1
- package/dist/combobox.d.ts +0 -16
- package/dist/combobox.d.ts.map +0 -1
- package/dist/combobox.js +0 -42
- package/dist/combobox.js.map +0 -1
- package/dist/date-field.d.ts +0 -58
- package/dist/date-field.d.ts.map +0 -1
- package/dist/date-field.js +0 -233
- package/dist/date-field.js.map +0 -1
- package/dist/date-picker.d.ts +0 -53
- package/dist/date-picker.d.ts.map +0 -1
- package/dist/date-picker.js +0 -157
- package/dist/date-picker.js.map +0 -1
- package/dist/date-range-picker.d.ts +0 -28
- package/dist/date-range-picker.d.ts.map +0 -1
- package/dist/date-range-picker.js +0 -85
- package/dist/date-range-picker.js.map +0 -1
- package/dist/date-time-field.d.ts +0 -53
- package/dist/date-time-field.d.ts.map +0 -1
- package/dist/date-time-field.js +0 -253
- package/dist/date-time-field.js.map +0 -1
- package/dist/date-time-picker.d.ts +0 -54
- package/dist/date-time-picker.d.ts.map +0 -1
- package/dist/date-time-picker.js +0 -151
- package/dist/date-time-picker.js.map +0 -1
- package/dist/date-time-range-picker.d.ts +0 -67
- package/dist/date-time-range-picker.d.ts.map +0 -1
- package/dist/date-time-range-picker.js +0 -226
- package/dist/date-time-range-picker.js.map +0 -1
- package/dist/dialog.d.ts +0 -16
- package/dist/dialog.d.ts.map +0 -1
- package/dist/dialog.js +0 -5
- package/dist/dialog.js.map +0 -1
- package/dist/disclosure.d.ts +0 -2
- package/dist/disclosure.d.ts.map +0 -1
- package/dist/disclosure.js +0 -2
- package/dist/disclosure.js.map +0 -1
- package/dist/feed.d.ts +0 -29
- package/dist/feed.d.ts.map +0 -1
- package/dist/feed.js +0 -26
- package/dist/feed.js.map +0 -1
- package/dist/index.d.ts +0 -17
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +0 -1
- package/dist/interaction.d.ts +0 -14
- package/dist/interaction.d.ts.map +0 -1
- package/dist/interaction.js +0 -38
- package/dist/interaction.js.map +0 -1
- package/dist/internal/composites/calendar.d.ts +0 -35
- package/dist/internal/composites/calendar.d.ts.map +0 -1
- package/dist/internal/composites/calendar.js +0 -139
- package/dist/internal/composites/calendar.js.map +0 -1
- package/dist/internal/composites/combobox.d.ts +0 -41
- package/dist/internal/composites/combobox.d.ts.map +0 -1
- package/dist/internal/composites/combobox.js +0 -184
- package/dist/internal/composites/combobox.js.map +0 -1
- package/dist/internal/composites/grid-control.d.ts +0 -36
- package/dist/internal/composites/grid-control.d.ts.map +0 -1
- package/dist/internal/composites/grid-control.js +0 -86
- package/dist/internal/composites/grid-control.js.map +0 -1
- package/dist/internal/composites/linear-action.d.ts +0 -35
- package/dist/internal/composites/linear-action.d.ts.map +0 -1
- package/dist/internal/composites/linear-action.js +0 -92
- package/dist/internal/composites/linear-action.js.map +0 -1
- package/dist/internal/composites/linear-choice.d.ts +0 -41
- package/dist/internal/composites/linear-choice.d.ts.map +0 -1
- package/dist/internal/composites/linear-choice.js +0 -139
- package/dist/internal/composites/linear-choice.js.map +0 -1
- package/dist/internal/composites/listbox.d.ts +0 -50
- package/dist/internal/composites/listbox.d.ts.map +0 -1
- package/dist/internal/composites/listbox.js +0 -243
- package/dist/internal/composites/listbox.js.map +0 -1
- package/dist/internal/composites/menu.d.ts +0 -28
- package/dist/internal/composites/menu.d.ts.map +0 -1
- package/dist/internal/composites/menu.js +0 -72
- package/dist/internal/composites/menu.js.map +0 -1
- package/dist/internal/composites/popup.d.ts +0 -20
- package/dist/internal/composites/popup.d.ts.map +0 -1
- package/dist/internal/composites/popup.js +0 -8
- package/dist/internal/composites/popup.js.map +0 -1
- package/dist/internal/composites/slider.d.ts +0 -20
- package/dist/internal/composites/slider.d.ts.map +0 -1
- package/dist/internal/composites/slider.js +0 -69
- package/dist/internal/composites/slider.js.map +0 -1
- package/dist/internal/composites/tree-grid.d.ts +0 -65
- package/dist/internal/composites/tree-grid.d.ts.map +0 -1
- package/dist/internal/composites/tree-grid.js +0 -274
- package/dist/internal/composites/tree-grid.js.map +0 -1
- package/dist/internal/composites/tree-view.d.ts +0 -39
- package/dist/internal/composites/tree-view.d.ts.map +0 -1
- package/dist/internal/composites/tree-view.js +0 -175
- package/dist/internal/composites/tree-view.js.map +0 -1
- package/dist/internal/editing/text.d.ts +0 -64
- package/dist/internal/editing/text.d.ts.map +0 -1
- package/dist/internal/editing/text.js +0 -238
- package/dist/internal/editing/text.js.map +0 -1
- package/dist/internal/kernel/decimal.d.ts +0 -22
- package/dist/internal/kernel/decimal.d.ts.map +0 -1
- package/dist/internal/kernel/decimal.js +0 -137
- package/dist/internal/kernel/decimal.js.map +0 -1
- package/dist/internal/kernel/foundation.d.ts +0 -12
- package/dist/internal/kernel/foundation.d.ts.map +0 -1
- package/dist/internal/kernel/foundation.js +0 -132
- package/dist/internal/kernel/foundation.js.map +0 -1
- package/dist/internal/kernel/indexed-sequence.d.ts +0 -26
- package/dist/internal/kernel/indexed-sequence.d.ts.map +0 -1
- package/dist/internal/kernel/indexed-sequence.js +0 -117
- package/dist/internal/kernel/indexed-sequence.js.map +0 -1
- package/dist/internal/kernel/machine.d.ts +0 -8
- package/dist/internal/kernel/machine.d.ts.map +0 -1
- package/dist/internal/kernel/machine.js +0 -6
- package/dist/internal/kernel/machine.js.map +0 -1
- package/dist/internal/runtime/revision.d.ts +0 -22
- package/dist/internal/runtime/revision.d.ts.map +0 -1
- package/dist/internal/runtime/revision.js +0 -72
- package/dist/internal/runtime/revision.js.map +0 -1
- package/dist/internal/state/checked.d.ts +0 -21
- package/dist/internal/state/checked.d.ts.map +0 -1
- package/dist/internal/state/checked.js +0 -29
- package/dist/internal/state/checked.js.map +0 -1
- package/dist/internal/state/cursor.d.ts +0 -13
- package/dist/internal/state/cursor.d.ts.map +0 -1
- package/dist/internal/state/cursor.js +0 -24
- package/dist/internal/state/cursor.js.map +0 -1
- package/dist/internal/state/expansion.d.ts +0 -8
- package/dist/internal/state/expansion.d.ts.map +0 -1
- package/dist/internal/state/expansion.js +0 -23
- package/dist/internal/state/expansion.js.map +0 -1
- package/dist/internal/state/open-state.d.ts +0 -16
- package/dist/internal/state/open-state.d.ts.map +0 -1
- package/dist/internal/state/open-state.js +0 -25
- package/dist/internal/state/open-state.js.map +0 -1
- package/dist/internal/state/selection.d.ts +0 -23
- package/dist/internal/state/selection.d.ts.map +0 -1
- package/dist/internal/state/selection.js +0 -110
- package/dist/internal/state/selection.js.map +0 -1
- package/dist/listbox.d.ts +0 -2
- package/dist/listbox.d.ts.map +0 -1
- package/dist/listbox.js +0 -2
- package/dist/listbox.js.map +0 -1
- package/dist/menu-button.d.ts +0 -3
- package/dist/menu-button.d.ts.map +0 -1
- package/dist/menu-button.js +0 -3
- 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 -4
- package/dist/menu.js.map +0 -1
- package/dist/menubar.d.ts +0 -3
- package/dist/menubar.d.ts.map +0 -1
- package/dist/menubar.js +0 -3
- package/dist/menubar.js.map +0 -1
- package/dist/multi-thumb-slider.d.ts +0 -35
- package/dist/multi-thumb-slider.d.ts.map +0 -1
- package/dist/multi-thumb-slider.js +0 -68
- package/dist/multi-thumb-slider.js.map +0 -1
- package/dist/number-field.d.ts +0 -49
- package/dist/number-field.d.ts.map +0 -1
- package/dist/number-field.js +0 -454
- package/dist/number-field.js.map +0 -1
- package/dist/pagination.d.ts +0 -63
- package/dist/pagination.d.ts.map +0 -1
- package/dist/pagination.js +0 -190
- package/dist/pagination.js.map +0 -1
- package/dist/pin-input.d.ts +0 -29
- package/dist/pin-input.d.ts.map +0 -1
- package/dist/pin-input.js +0 -49
- package/dist/pin-input.js.map +0 -1
- package/dist/quantity-field.d.ts +0 -58
- package/dist/quantity-field.d.ts.map +0 -1
- package/dist/quantity-field.js +0 -250
- package/dist/quantity-field.js.map +0 -1
- package/dist/radio-group.d.ts +0 -22
- package/dist/radio-group.d.ts.map +0 -1
- package/dist/radio-group.js +0 -16
- package/dist/radio-group.js.map +0 -1
- package/dist/rating.d.ts +0 -17
- package/dist/rating.d.ts.map +0 -1
- package/dist/rating.js +0 -15
- package/dist/rating.js.map +0 -1
- package/dist/result.d.ts +0 -10
- package/dist/result.d.ts.map +0 -1
- package/dist/result.js +0 -19
- package/dist/result.js.map +0 -1
- package/dist/revision.d.ts +0 -2
- package/dist/revision.d.ts.map +0 -1
- package/dist/revision.js +0 -2
- package/dist/revision.js.map +0 -1
- package/dist/select.d.ts +0 -30
- package/dist/select.d.ts.map +0 -1
- package/dist/select.js +0 -28
- package/dist/select.js.map +0 -1
- package/dist/shared.d.ts +0 -42
- package/dist/shared.d.ts.map +0 -1
- package/dist/shared.js +0 -3
- package/dist/shared.js.map +0 -1
- package/dist/slider.d.ts +0 -2
- package/dist/slider.d.ts.map +0 -1
- package/dist/slider.js +0 -2
- package/dist/slider.js.map +0 -1
- package/dist/spin-button.d.ts +0 -29
- package/dist/spin-button.d.ts.map +0 -1
- package/dist/spin-button.js +0 -61
- package/dist/spin-button.js.map +0 -1
- package/dist/stepper.d.ts +0 -17
- package/dist/stepper.d.ts.map +0 -1
- package/dist/stepper.js +0 -12
- package/dist/stepper.js.map +0 -1
- package/dist/structures/grid.d.ts +0 -27
- package/dist/structures/grid.d.ts.map +0 -1
- package/dist/structures/grid.js +0 -197
- package/dist/structures/grid.js.map +0 -1
- package/dist/structures/range.d.ts +0 -39
- package/dist/structures/range.d.ts.map +0 -1
- package/dist/structures/range.js +0 -242
- package/dist/structures/range.js.map +0 -1
- package/dist/structures/sequence.d.ts +0 -17
- package/dist/structures/sequence.d.ts.map +0 -1
- package/dist/structures/sequence.js +0 -24
- package/dist/structures/sequence.js.map +0 -1
- package/dist/structures/tree.d.ts +0 -32
- package/dist/structures/tree.d.ts.map +0 -1
- package/dist/structures/tree.js +0 -234
- package/dist/structures/tree.js.map +0 -1
- package/dist/switch.d.ts +0 -20
- package/dist/switch.d.ts.map +0 -1
- package/dist/switch.js +0 -4
- package/dist/switch.js.map +0 -1
- package/dist/tabs.d.ts +0 -15
- package/dist/tabs.d.ts.map +0 -1
- package/dist/tabs.js +0 -23
- package/dist/tabs.js.map +0 -1
- package/dist/tags-input.d.ts +0 -41
- package/dist/tags-input.d.ts.map +0 -1
- package/dist/tags-input.js +0 -44
- package/dist/tags-input.js.map +0 -1
- package/dist/text.d.ts +0 -2
- package/dist/text.d.ts.map +0 -1
- package/dist/text.js +0 -2
- package/dist/text.js.map +0 -1
- package/dist/time-field.d.ts +0 -46
- package/dist/time-field.d.ts.map +0 -1
- package/dist/time-field.js +0 -148
- package/dist/time-field.js.map +0 -1
- package/dist/toggle-button.d.ts +0 -19
- package/dist/toggle-button.d.ts.map +0 -1
- package/dist/toggle-button.js +0 -16
- package/dist/toggle-button.js.map +0 -1
- package/dist/toolbar.d.ts +0 -2
- package/dist/toolbar.d.ts.map +0 -1
- package/dist/toolbar.js +0 -2
- package/dist/toolbar.js.map +0 -1
- package/dist/tooltip.d.ts +0 -2
- package/dist/tooltip.d.ts.map +0 -1
- package/dist/tooltip.js +0 -2
- package/dist/tooltip.js.map +0 -1
- package/dist/tree-grid.d.ts +0 -10
- package/dist/tree-grid.d.ts.map +0 -1
- package/dist/tree-grid.js +0 -14
- package/dist/tree-grid.js.map +0 -1
- package/dist/tree-view.d.ts +0 -2
- package/dist/tree-view.d.ts.map +0 -1
- package/dist/tree-view.js +0 -2
- package/dist/tree-view.js.map +0 -1
- package/dist/units.d.ts +0 -72
- package/dist/units.d.ts.map +0 -1
- package/dist/units.js +0 -496
- package/dist/units.js.map +0 -1
- package/dist/window-splitter.d.ts +0 -2
- package/dist/window-splitter.d.ts.map +0 -1
- package/dist/window-splitter.js +0 -2
- package/dist/window-splitter.js.map +0 -1
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { fail, ok } from '../kernel/foundation.js';
|
|
2
|
-
import { createMachineUpdate } from '../kernel/machine.js';
|
|
3
|
-
export function createCheckedState(value = false, policies = {}) {
|
|
4
|
-
if (!valid(value) || (value === 'mixed' && policies.allowMixed === false)) {
|
|
5
|
-
return fail('construction', 'invalid-checked-value', 'Checked value must be permitted by the checked policy.');
|
|
6
|
-
}
|
|
7
|
-
return ok(Object.freeze({ checked: value }));
|
|
8
|
-
}
|
|
9
|
-
export function applyCheckedEvent(state, event, policies = {}) {
|
|
10
|
-
const validState = createCheckedState(state.checked, policies);
|
|
11
|
-
if (!validState.ok)
|
|
12
|
-
return { ok: false, error: { ...validState.error, class: 'transition-rejection' } };
|
|
13
|
-
let next = null;
|
|
14
|
-
if (event === 'toggle')
|
|
15
|
-
next = state.checked === 'mixed' ? (policies.mixedToggle ?? true) : !state.checked;
|
|
16
|
-
else if (typeof event === 'object' && event.type === 'set-checked' && valid(event.checked))
|
|
17
|
-
next = event.checked;
|
|
18
|
-
if (next === null || (next === 'mixed' && policies.allowMixed === false)) {
|
|
19
|
-
return fail('transition-rejection', 'invalid-checked-event', 'Checked event is not permitted by the checked policy.');
|
|
20
|
-
}
|
|
21
|
-
if (next === state.checked)
|
|
22
|
-
return createMachineUpdate(state);
|
|
23
|
-
const created = createCheckedState(next, policies);
|
|
24
|
-
if (!created.ok)
|
|
25
|
-
return created;
|
|
26
|
-
return createMachineUpdate(created.value, [{ type: 'checked-changed', checked: next }]);
|
|
27
|
-
}
|
|
28
|
-
function valid(value) { return value === true || value === false || value === 'mixed'; }
|
|
29
|
-
//# sourceMappingURL=checked.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checked.js","sourceRoot":"","sources":["../../../src/internal/state/checked.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAsB,MAAM,sBAAsB,CAAC;AAQ/E,MAAM,UAAU,kBAAkB,CAAC,KAAK,GAAiB,KAAK,EAAE,QAAQ,GAAoB,EAAE;IAC5F,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC,cAAc,EAAE,uBAAuB,EAAE,wDAAwD,CAAC,CAAC;IACjH,CAAC;IACD,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AACD,MAAM,UAAU,iBAAiB,CAAC,KAAmB,EAAE,KAAmB,EAAE,QAAQ,GAAoB,EAAE;IACxG,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,CAAC;IACxG,IAAI,IAAI,GAAwB,IAAI,CAAC;IACrC,IAAI,KAAK,KAAK,QAAQ;QAAE,IAAI,GAAG,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;SACtG,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;IACjH,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC,sBAAsB,EAAE,uBAAuB,EAAE,uDAAuD,CAAC,CAAC;IACxH,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,CAAC,OAAO;QAAE,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IACpF,OAAO,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1F,CAAC;AACD,SAAS,KAAK,CAAC,KAAc,IAA2B,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { StableID } from '../../shared.js';
|
|
2
|
-
export type CursorFallback = 'none' | 'first' | 'last';
|
|
3
|
-
export interface CursorDomain<ID extends StableID = StableID> {
|
|
4
|
-
readonly size: number;
|
|
5
|
-
at(index: number): ID | null;
|
|
6
|
-
contains(id: ID): boolean;
|
|
7
|
-
}
|
|
8
|
-
export interface CursorState<ID extends StableID = StableID> {
|
|
9
|
-
readonly current: ID | null;
|
|
10
|
-
}
|
|
11
|
-
export declare function createCursorState<ID extends StableID>(current?: ID | null): CursorState<ID>;
|
|
12
|
-
export declare function reconcileCursor<ID extends StableID>(state: CursorState<ID>, domain: CursorDomain<ID>, fallback: CursorFallback): CursorState<ID>;
|
|
13
|
-
//# sourceMappingURL=cursor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/internal/state/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,YAAY,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ;IACzD,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC;CAC7B;AAED,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,QAAQ,EACnD,OAAO,GAAE,EAAE,GAAG,IAAW,GACxB,WAAW,CAAC,EAAE,CAAC,CAEjB;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,QAAQ,EACjD,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,EACtB,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,EACxB,QAAQ,EAAE,cAAc,GACvB,WAAW,CAAC,EAAE,CAAC,CAmBjB"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { assertNever } from '../kernel/foundation.js';
|
|
2
|
-
export function createCursorState(current = null) {
|
|
3
|
-
return Object.freeze({ current });
|
|
4
|
-
}
|
|
5
|
-
export function reconcileCursor(state, domain, fallback) {
|
|
6
|
-
if (state.current !== null && domain.contains(state.current))
|
|
7
|
-
return state;
|
|
8
|
-
let next;
|
|
9
|
-
switch (fallback) {
|
|
10
|
-
case 'none':
|
|
11
|
-
next = null;
|
|
12
|
-
break;
|
|
13
|
-
case 'first':
|
|
14
|
-
next = domain.at(0);
|
|
15
|
-
break;
|
|
16
|
-
case 'last':
|
|
17
|
-
next = domain.at(domain.size - 1);
|
|
18
|
-
break;
|
|
19
|
-
default:
|
|
20
|
-
return assertNever(fallback);
|
|
21
|
-
}
|
|
22
|
-
return state.current === next ? state : createCursorState(next);
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=cursor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../src/internal/state/cursor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AActD,MAAM,UAAU,iBAAiB,CAC/B,OAAO,GAAc,IAAI;IAEzB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAsB,EACtB,MAAwB,EACxB,QAAwB;IAExB,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3E,IAAI,IAAe,CAAC;IACpB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,IAAI,GAAG,IAAI,CAAC;YACZ,MAAM;QACR,KAAK,OAAO;YACV,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM;QACR,KAAK,MAAM;YACT,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAClC,MAAM;QACR;YACE,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { StableID } from '../../shared.js';
|
|
2
|
-
import type { Expansion, Tree } from '../../structures/tree.js';
|
|
3
|
-
export type ExpansionState<ID extends StableID = StableID> = Expansion<ID>;
|
|
4
|
-
export declare function createExpansionState<ID extends StableID>(tree: Tree<ID>, expanded?: Iterable<ID>): ExpansionState<ID>;
|
|
5
|
-
export declare function reconcileExpansion<ID extends StableID>(state: ExpansionState<ID>, tree: Tree<ID>): ExpansionState<ID>;
|
|
6
|
-
export declare function setExpansionOpen<ID extends StableID>(state: ExpansionState<ID>, id: ID, open: boolean, tree: Tree<ID>): ExpansionState<ID>;
|
|
7
|
-
export declare function toggleExpansion<ID extends StableID>(state: ExpansionState<ID>, id: ID, tree: Tree<ID>): ExpansionState<ID>;
|
|
8
|
-
//# sourceMappingURL=expansion.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expansion.d.ts","sourceRoot":"","sources":["../../../src/internal/state/expansion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,MAAM,cAAc,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAE3E,wBAAgB,oBAAoB,CAAC,EAAE,SAAS,QAAQ,EACtD,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EACd,QAAQ,GAAE,QAAQ,CAAC,EAAE,CAAM,GAC1B,cAAc,CAAC,EAAE,CAAC,CAEpB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,QAAQ,EACpD,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,EACzB,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GACb,cAAc,CAAC,EAAE,CAAC,CAGpB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,QAAQ,EAClD,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,EACzB,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GACb,cAAc,CAAC,EAAE,CAAC,CAKpB;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,QAAQ,EACjD,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,EACzB,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GACb,cAAc,CAAC,EAAE,CAAC,CAEpB"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export function createExpansionState(tree, expanded = []) {
|
|
2
|
-
return tree.normalizeExpansion(expanded);
|
|
3
|
-
}
|
|
4
|
-
export function reconcileExpansion(state, tree) {
|
|
5
|
-
const result = tree.normalizeExpansion(state.ids);
|
|
6
|
-
return sameExpansion(state, result) ? state : result;
|
|
7
|
-
}
|
|
8
|
-
export function setExpansionOpen(state, id, open, tree) {
|
|
9
|
-
if (tree.isLeaf(id) !== false || state.has(id) === open)
|
|
10
|
-
return state;
|
|
11
|
-
const expanded = open ? [...state.ids, id] : state.ids.filter((current) => current !== id);
|
|
12
|
-
const result = tree.normalizeExpansion(expanded);
|
|
13
|
-
return sameExpansion(state, result) ? state : result;
|
|
14
|
-
}
|
|
15
|
-
export function toggleExpansion(state, id, tree) {
|
|
16
|
-
return setExpansionOpen(state, id, !state.has(id), tree);
|
|
17
|
-
}
|
|
18
|
-
function sameExpansion(left, right) {
|
|
19
|
-
if (left.ids.length !== right.ids.length)
|
|
20
|
-
return false;
|
|
21
|
-
return left.ids.every((id, index) => id === right.ids[index]);
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=expansion.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expansion.js","sourceRoot":"","sources":["../../../src/internal/state/expansion.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,oBAAoB,CAClC,IAAc,EACd,QAAQ,GAAiB,EAAE;IAE3B,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAyB,EACzB,IAAc;IAEd,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClD,OAAO,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,KAAyB,EACzB,EAAM,EACN,IAAa,EACb,IAAc;IAEd,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACjD,OAAO,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAyB,EACzB,EAAM,EACN,IAAc;IAEd,OAAO,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,aAAa,CACpB,IAAwB,EACxB,KAAyB;IAEzB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACvD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { Result } from '../../shared.js';
|
|
2
|
-
import { type MachineUpdate } from '../kernel/machine.js';
|
|
3
|
-
export interface OpenState {
|
|
4
|
-
readonly open: boolean;
|
|
5
|
-
}
|
|
6
|
-
export type OpenEvent = 'toggle' | 'open' | 'close' | {
|
|
7
|
-
readonly type: 'set-open';
|
|
8
|
-
readonly open: boolean;
|
|
9
|
-
};
|
|
10
|
-
export type OpenCommand = {
|
|
11
|
-
readonly type: 'open-changed';
|
|
12
|
-
readonly open: boolean;
|
|
13
|
-
};
|
|
14
|
-
export declare function createOpenState(open?: boolean): Result<OpenState>;
|
|
15
|
-
export declare function applyOpenEvent(state: OpenState, event: OpenEvent): Result<MachineUpdate<OpenState, OpenCommand>>;
|
|
16
|
-
//# sourceMappingURL=open-state.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"open-state.d.ts","sourceRoot":"","sources":["../../../src/internal/state/open-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE/E,MAAM,WAAW,SAAS;IAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE;AACrD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAC5G,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,wBAAgB,eAAe,CAAC,IAAI,UAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAI/D;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,GACf,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAc/C"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { fail, ok } from '../kernel/foundation.js';
|
|
2
|
-
import { createMachineUpdate } from '../kernel/machine.js';
|
|
3
|
-
export function createOpenState(open = false) {
|
|
4
|
-
return typeof open === 'boolean'
|
|
5
|
-
? ok(Object.freeze({ open }))
|
|
6
|
-
: fail('construction', 'invalid-open-state', 'Open state must be boolean.');
|
|
7
|
-
}
|
|
8
|
-
export function applyOpenEvent(state, event) {
|
|
9
|
-
if (typeof state.open !== 'boolean') {
|
|
10
|
-
return fail('transition-rejection', 'invalid-open-state', 'Open state must be boolean.');
|
|
11
|
-
}
|
|
12
|
-
const next = typeof event === 'object'
|
|
13
|
-
? event.type === 'set-open' && typeof event.open === 'boolean' ? event.open : null
|
|
14
|
-
: event === 'toggle' ? !state.open : event === 'open' ? true : event === 'close' ? false : null;
|
|
15
|
-
if (next === null) {
|
|
16
|
-
return fail('transition-rejection', 'invalid-open-event', 'Open event is not accepted.');
|
|
17
|
-
}
|
|
18
|
-
if (next === state.open)
|
|
19
|
-
return createMachineUpdate(state);
|
|
20
|
-
const created = createOpenState(next);
|
|
21
|
-
if (!created.ok)
|
|
22
|
-
return created;
|
|
23
|
-
return createMachineUpdate(created.value, [{ type: 'open-changed', open: next }]);
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=open-state.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"open-state.js","sourceRoot":"","sources":["../../../src/internal/state/open-state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAsB,MAAM,sBAAsB,CAAC;AAM/E,MAAM,UAAU,eAAe,CAAC,IAAI,GAAG,KAAK;IAC1C,OAAO,OAAO,IAAI,KAAK,SAAS;QAC9B,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,6BAA6B,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAAgB,EAChB,KAAgB;IAEhB,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,6BAA6B,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ;QACpC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAClF,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAClG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,6BAA6B,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI;QAAE,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC;IAChC,OAAO,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACpF,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { Result, StableID } from '../../shared.js';
|
|
2
|
-
import type { CursorDomain } from './cursor.js';
|
|
3
|
-
export type SelectionMode = 'single' | 'multiple';
|
|
4
|
-
export interface SelectionDomain<ID extends StableID = StableID> extends CursorDomain<ID> {
|
|
5
|
-
indexOf(id: ID): number | null;
|
|
6
|
-
}
|
|
7
|
-
export interface SelectionState<ID extends StableID = StableID> {
|
|
8
|
-
readonly selected: readonly ID[];
|
|
9
|
-
readonly anchor: ID | null;
|
|
10
|
-
readonly size: number;
|
|
11
|
-
has(id: ID): boolean;
|
|
12
|
-
}
|
|
13
|
-
export interface SelectionSnapshotInput<ID extends StableID = StableID> {
|
|
14
|
-
readonly selected?: readonly ID[];
|
|
15
|
-
readonly anchor?: ID | null;
|
|
16
|
-
}
|
|
17
|
-
export declare function createSelectionState<ID extends StableID>(domain: SelectionDomain<ID>, mode: SelectionMode, input?: SelectionSnapshotInput<ID>): Result<SelectionState<ID>>;
|
|
18
|
-
export declare function reconcileSelection<ID extends StableID>(state: SelectionState<ID>, domain: SelectionDomain<ID>, mode: SelectionMode): Result<SelectionState<ID>>;
|
|
19
|
-
export declare function selectOne<ID extends StableID>(state: SelectionState<ID>, id: ID, domain: SelectionDomain<ID>): SelectionState<ID>;
|
|
20
|
-
export declare function toggleMultipleSelection<ID extends StableID>(state: SelectionState<ID>, id: ID, domain: SelectionDomain<ID>): SelectionState<ID>;
|
|
21
|
-
export declare function clearSelection<ID extends StableID>(state: SelectionState<ID>): SelectionState<ID>;
|
|
22
|
-
export declare function selectInterval<ID extends StableID>(state: SelectionState<ID>, anchor: ID, extent: ID, domain: SelectionDomain<ID>, additive: boolean): SelectionState<ID>;
|
|
23
|
-
//# sourceMappingURL=selection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../src/internal/state/selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;AAElD,MAAM,WAAW,eAAe,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,YAAY,CAAC,EAAE,CAAC;IACvF,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,cAAc,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ;IAC5D,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ;IACpE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;CAC7B;AAuBD,wBAAgB,oBAAoB,CAAC,EAAE,SAAS,QAAQ,EACtD,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,EAC3B,IAAI,EAAE,aAAa,EACnB,KAAK,GAAE,sBAAsB,CAAC,EAAE,CAAM,GACrC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAqC5B;AAED,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,QAAQ,EACpD,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,EACzB,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,EAC3B,IAAI,EAAE,aAAa,GAClB,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CA0B5B;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAS,QAAQ,EAC3C,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,EACzB,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,GAC1B,cAAc,CAAC,EAAE,CAAC,CAIpB;AAED,wBAAgB,uBAAuB,CAAC,EAAE,SAAS,QAAQ,EACzD,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,EACzB,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,GAC1B,cAAc,CAAC,EAAE,CAAC,CAMpB;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,QAAQ,EAChD,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,GACxB,cAAc,CAAC,EAAE,CAAC,CAIpB;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,QAAQ,EAChD,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,EACzB,MAAM,EAAE,EAAE,EACV,MAAM,EAAE,EAAE,EACV,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,EAC3B,QAAQ,EAAE,OAAO,GAChB,cAAc,CAAC,EAAE,CAAC,CAapB"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { fail, freezeArray, ok } from '../kernel/foundation.js';
|
|
2
|
-
class ImmutableSelectionState {
|
|
3
|
-
selected;
|
|
4
|
-
anchor;
|
|
5
|
-
#selected;
|
|
6
|
-
constructor(selected, anchor) {
|
|
7
|
-
this.selected = freezeArray(selected);
|
|
8
|
-
this.anchor = anchor;
|
|
9
|
-
this.#selected = new Set(this.selected);
|
|
10
|
-
Object.freeze(this);
|
|
11
|
-
}
|
|
12
|
-
get size() {
|
|
13
|
-
return this.selected.length;
|
|
14
|
-
}
|
|
15
|
-
has(id) {
|
|
16
|
-
return this.#selected.has(id);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
export function createSelectionState(domain, mode, input = {}) {
|
|
20
|
-
if (!isSelectionMode(mode)) {
|
|
21
|
-
return fail('construction', 'invalid-selection-mode', 'Selection mode must be single or multiple.', {
|
|
22
|
-
mode,
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
const requested = new Set(input.selected ?? []);
|
|
26
|
-
if (mode === 'single' && requested.size > 1) {
|
|
27
|
-
return fail('construction', 'invalid-selection-cardinality', 'Single selection must contain at most one identity.', { selectedCount: requested.size });
|
|
28
|
-
}
|
|
29
|
-
for (const id of requested) {
|
|
30
|
-
if (!domain.contains(id)) {
|
|
31
|
-
return fail('construction', 'selected-id-outside-domain', 'Every selected identity must exist in the selection domain.', { id });
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
const anchor = input.anchor ?? null;
|
|
35
|
-
if (anchor !== null && !domain.contains(anchor)) {
|
|
36
|
-
return fail('construction', 'selection-anchor-outside-domain', 'Selection anchor must exist in the selection domain.', { anchor });
|
|
37
|
-
}
|
|
38
|
-
return ok(selectionFromSet(domain, requested, anchor));
|
|
39
|
-
}
|
|
40
|
-
export function reconcileSelection(state, domain, mode) {
|
|
41
|
-
if (!isSelectionMode(mode)) {
|
|
42
|
-
return fail('transition-rejection', 'invalid-selection-mode', 'Selection mode must be single or multiple.', { mode });
|
|
43
|
-
}
|
|
44
|
-
const selected = new Set(state.selected);
|
|
45
|
-
if (mode === 'single' && selected.size > 1) {
|
|
46
|
-
return fail('transition-rejection', 'invalid-selection-cardinality', 'A multiple selection snapshot cannot be reconciled in single mode.', { selectedCount: selected.size });
|
|
47
|
-
}
|
|
48
|
-
for (const id of selected) {
|
|
49
|
-
if (!domain.contains(id))
|
|
50
|
-
selected.delete(id);
|
|
51
|
-
}
|
|
52
|
-
const anchor = state.anchor !== null && domain.contains(state.anchor) ? state.anchor : null;
|
|
53
|
-
const result = selectionFromSet(domain, selected, anchor);
|
|
54
|
-
return ok(sameSelection(state, result) ? state : result);
|
|
55
|
-
}
|
|
56
|
-
export function selectOne(state, id, domain) {
|
|
57
|
-
if (!domain.contains(id))
|
|
58
|
-
return state;
|
|
59
|
-
if (state.size === 1 && state.has(id) && state.anchor === id)
|
|
60
|
-
return state;
|
|
61
|
-
return new ImmutableSelectionState([id], id);
|
|
62
|
-
}
|
|
63
|
-
export function toggleMultipleSelection(state, id, domain) {
|
|
64
|
-
if (!domain.contains(id))
|
|
65
|
-
return state;
|
|
66
|
-
const selected = new Set(state.selected);
|
|
67
|
-
if (selected.has(id))
|
|
68
|
-
selected.delete(id);
|
|
69
|
-
else
|
|
70
|
-
selected.add(id);
|
|
71
|
-
return selectionFromSet(domain, selected, id);
|
|
72
|
-
}
|
|
73
|
-
export function clearSelection(state) {
|
|
74
|
-
return state.size === 0 && state.anchor === null
|
|
75
|
-
? state
|
|
76
|
-
: new ImmutableSelectionState([], null);
|
|
77
|
-
}
|
|
78
|
-
export function selectInterval(state, anchor, extent, domain, additive) {
|
|
79
|
-
const anchorIndex = domain.indexOf(anchor);
|
|
80
|
-
const extentIndex = domain.indexOf(extent);
|
|
81
|
-
if (anchorIndex === null || extentIndex === null)
|
|
82
|
-
return state;
|
|
83
|
-
const selected = additive ? new Set(state.selected) : new Set();
|
|
84
|
-
const start = Math.min(anchorIndex, extentIndex);
|
|
85
|
-
const end = Math.max(anchorIndex, extentIndex);
|
|
86
|
-
for (let index = start; index <= end; index += 1) {
|
|
87
|
-
const id = domain.at(index);
|
|
88
|
-
if (id !== null)
|
|
89
|
-
selected.add(id);
|
|
90
|
-
}
|
|
91
|
-
return selectionFromSet(domain, selected, anchor);
|
|
92
|
-
}
|
|
93
|
-
function selectionFromSet(domain, selected, anchor) {
|
|
94
|
-
const ordered = [];
|
|
95
|
-
for (let index = 0; index < domain.size; index += 1) {
|
|
96
|
-
const id = domain.at(index);
|
|
97
|
-
if (id !== null && selected.has(id))
|
|
98
|
-
ordered.push(id);
|
|
99
|
-
}
|
|
100
|
-
return new ImmutableSelectionState(ordered, anchor);
|
|
101
|
-
}
|
|
102
|
-
function sameSelection(left, right) {
|
|
103
|
-
if (left.anchor !== right.anchor || left.selected.length !== right.selected.length)
|
|
104
|
-
return false;
|
|
105
|
-
return left.selected.every((id, index) => id === right.selected[index]);
|
|
106
|
-
}
|
|
107
|
-
function isSelectionMode(value) {
|
|
108
|
-
return value === 'single' || value === 'multiple';
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=selection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../src/internal/state/selection.ts"],"names":[],"mappings":"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"}
|
package/dist/listbox.d.ts
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { applyListboxEvent, createListboxState, findListboxTypeaheadMatch, type ListboxCommand, type ListboxEvent, type ListboxPolicies, type ListboxSelectionMode, type ListboxState, type ListboxStateInput, type ListboxTypeaheadOptions, type ListboxUpdate, } from './internal/composites/listbox.js';
|
|
2
|
-
//# sourceMappingURL=listbox.d.ts.map
|
package/dist/listbox.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"listbox.d.ts","sourceRoot":"","sources":["../src/listbox.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,aAAa,GACnB,MAAM,kCAAkC,CAAC"}
|
package/dist/listbox.js
DELETED
package/dist/listbox.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"listbox.js","sourceRoot":"","sources":["../src/listbox.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAS1B,MAAM,kCAAkC,CAAC"}
|
package/dist/menu-button.d.ts
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { applyMenuEvent as applyMenuButtonEvent, createMenuState as createMenuButtonState, type MenuCommand as MenuButtonCommand, type MenuEvent as MenuButtonEvent, type MenuState as MenuButtonState, type MenuUpdate as MenuButtonUpdate } from './internal/composites/menu.js';
|
|
2
|
-
export { createMenuModel as createMenuButtonModel, type MenuModel as MenuButtonModel } from './menu.js';
|
|
3
|
-
//# sourceMappingURL=menu-button.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"menu-button.d.ts","sourceRoot":"","sources":["../src/menu-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,eAAe,IAAI,qBAAqB,EAAE,KAAK,WAAW,IAAI,iBAAiB,EAAE,KAAK,SAAS,IAAI,eAAe,EAAE,KAAK,SAAS,IAAI,eAAe,EAAE,KAAK,UAAU,IAAI,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACnR,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,KAAK,SAAS,IAAI,eAAe,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/menu-button.js
DELETED
package/dist/menu-button.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"menu-button.js","sourceRoot":"","sources":["../src/menu-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,eAAe,IAAI,qBAAqB,EAAoJ,MAAM,+BAA+B,CAAC;AACnR,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAqC,MAAM,WAAW,CAAC"}
|
package/dist/menu.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { Result, StableID } from './shared.js';
|
|
2
|
-
import { type Tree, type TreeNodeInput, type TreeOptions } from './structures/tree.js';
|
|
3
|
-
export interface MenuModel<ID extends StableID = StableID> {
|
|
4
|
-
readonly tree: Tree<ID>;
|
|
5
|
-
}
|
|
6
|
-
export declare function createMenuModel<ID extends StableID>(items: readonly TreeNodeInput<ID>[], options?: TreeOptions): Result<MenuModel<ID>>;
|
|
7
|
-
export { applyMenuEvent, createMenuState, type MenuCommand, type MenuEvent, type MenuPolicies, type MenuState, type MenuUpdate } from './internal/composites/menu.js';
|
|
8
|
-
//# sourceMappingURL=menu.d.ts.map
|
package/dist/menu.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAc,KAAK,IAAI,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnG,MAAM,WAAW,SAAS,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ;IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;CAAE;AACtF,wBAAgB,eAAe,CAAC,EAAE,SAAS,QAAQ,EAAE,KAAK,EAAE,SAAS,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,GAAE,WAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAA+H;AAC1Q,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC"}
|
package/dist/menu.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { createTree } from './structures/tree.js';
|
|
2
|
-
export function createMenuModel(items, options = {}) { const tree = createTree(items, options); return tree.ok ? { ok: true, value: Object.freeze({ tree: tree.value }) } : tree; }
|
|
3
|
-
export { applyMenuEvent, createMenuState } from './internal/composites/menu.js';
|
|
4
|
-
//# sourceMappingURL=menu.js.map
|
package/dist/menu.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAmD,MAAM,sBAAsB,CAAC;AAEnG,MAAM,UAAU,eAAe,CAAsB,KAAmC,EAAE,OAAO,GAAgB,EAAE,IAA2B,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1Q,OAAO,EAAE,cAAc,EAAE,eAAe,EAAwF,MAAM,+BAA+B,CAAC"}
|
package/dist/menubar.d.ts
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { applyMenuEvent as applyMenubarEvent, createMenuState as createMenubarState, type MenuCommand as MenubarCommand, type MenuEvent as MenubarEvent, type MenuState as MenubarState, type MenuUpdate as MenubarUpdate } from './internal/composites/menu.js';
|
|
2
|
-
export { createMenuModel as createMenubarModel, type MenuModel as MenubarModel } from './menu.js';
|
|
3
|
-
//# sourceMappingURL=menubar.d.ts.map
|
package/dist/menubar.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"menubar.d.ts","sourceRoot":"","sources":["../src/menubar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,iBAAiB,EAAE,eAAe,IAAI,kBAAkB,EAAE,KAAK,WAAW,IAAI,cAAc,EAAE,KAAK,SAAS,IAAI,YAAY,EAAE,KAAK,SAAS,IAAI,YAAY,EAAE,KAAK,UAAU,IAAI,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACjQ,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,KAAK,SAAS,IAAI,YAAY,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/menubar.js
DELETED
package/dist/menubar.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"menubar.js","sourceRoot":"","sources":["../src/menubar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,iBAAiB,EAAE,eAAe,IAAI,kBAAkB,EAAwI,MAAM,+BAA+B,CAAC;AACjQ,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAkC,MAAM,WAAW,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { Result, StableID } from './shared.js';
|
|
2
|
-
import type { QuantizedRange } from './structures/range.js';
|
|
3
|
-
import type { Sequence } from './structures/sequence.js';
|
|
4
|
-
import { type CursorState } from './internal/state/cursor.js';
|
|
5
|
-
export interface MultiThumbSliderState<ID extends StableID = StableID> {
|
|
6
|
-
readonly cursor: CursorState<ID>;
|
|
7
|
-
readonly ticks: readonly number[];
|
|
8
|
-
}
|
|
9
|
-
export type MultiThumbSliderEvent<ID extends StableID = StableID> = 'next-thumb' | 'previous-thumb' | 'increment' | 'decrement' | 'home' | 'end' | {
|
|
10
|
-
readonly type: 'focus';
|
|
11
|
-
readonly id: ID;
|
|
12
|
-
} | {
|
|
13
|
-
readonly type: 'set-tick';
|
|
14
|
-
readonly id: ID;
|
|
15
|
-
readonly tick: number;
|
|
16
|
-
};
|
|
17
|
-
export type MultiThumbSliderCommand<ID extends StableID = StableID> = {
|
|
18
|
-
readonly type: 'focus';
|
|
19
|
-
readonly id: ID;
|
|
20
|
-
} | {
|
|
21
|
-
readonly type: 'announce-tick';
|
|
22
|
-
readonly id: ID;
|
|
23
|
-
readonly tick: number;
|
|
24
|
-
};
|
|
25
|
-
export interface MultiThumbSliderPolicies {
|
|
26
|
-
readonly minGap?: number;
|
|
27
|
-
readonly allowCross?: boolean;
|
|
28
|
-
}
|
|
29
|
-
export interface MultiThumbSliderUpdate<ID extends StableID = StableID> {
|
|
30
|
-
readonly state: MultiThumbSliderState<ID>;
|
|
31
|
-
readonly commands: readonly MultiThumbSliderCommand<ID>[];
|
|
32
|
-
}
|
|
33
|
-
export declare function createMultiThumbSliderState<ID extends StableID>(thumbs: Sequence<ID>, range: QuantizedRange, ticks: readonly number[], current?: ID | null, policies?: MultiThumbSliderPolicies): Result<MultiThumbSliderState<ID>>;
|
|
34
|
-
export declare function applyMultiThumbSliderEvent<ID extends StableID>(thumbs: Sequence<ID>, range: QuantizedRange, state: MultiThumbSliderState<ID>, event: MultiThumbSliderEvent<ID>, policies?: MultiThumbSliderPolicies): Result<MultiThumbSliderUpdate<ID>>;
|
|
35
|
-
//# sourceMappingURL=multi-thumb-slider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multi-thumb-slider.d.ts","sourceRoot":"","sources":["../src/multi-thumb-slider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEjF,MAAM,WAAW,qBAAqB,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ;IAAI,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE;AAC9I,MAAM,MAAM,qBAAqB,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ,IAAI,YAAY,GAAG,gBAAgB,GAAG,WAAW,GAAG,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AACvQ,MAAM,MAAM,uBAAuB,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ,IAAI;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC/L,MAAM,WAAW,wBAAwB;IAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE;AACrG,MAAM,WAAW,sBAAsB,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ;IAAI,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,uBAAuB,CAAC,EAAE,CAAC,EAAE,CAAA;CAAE;AAEhL,wBAAgB,2BAA2B,CAAC,EAAE,SAAS,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,EAAE,GAAG,IAAW,EAAE,QAAQ,GAAE,wBAA6B,GAAG,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAW7O;AAED,wBAAgB,0BAA0B,CAAC,EAAE,SAAS,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAE,wBAA6B,GAAG,MAAM,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAgC5P"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { fail, ok } from './internal/kernel/foundation.js';
|
|
2
|
-
import { createMachineUpdate } from './internal/kernel/machine.js';
|
|
3
|
-
import { createCursorState } from './internal/state/cursor.js';
|
|
4
|
-
export function createMultiThumbSliderState(thumbs, range, ticks, current = null, policies = {}) {
|
|
5
|
-
if (ticks.length !== thumbs.size)
|
|
6
|
-
return fail('construction', 'thumb-value-count-mismatch', 'Every thumb requires one tick.');
|
|
7
|
-
if (current !== null && !thumbs.contains(current))
|
|
8
|
-
return fail('construction', 'multi-thumb-cursor-outside-domain', 'Active thumb must exist.');
|
|
9
|
-
const gap = policies.minGap ?? 0;
|
|
10
|
-
if (!Number.isSafeInteger(gap) || gap < 0)
|
|
11
|
-
return fail('construction', 'invalid-thumb-gap', 'minGap must be a non-negative safe integer.');
|
|
12
|
-
for (let index = 0; index < ticks.length; index += 1) {
|
|
13
|
-
const tick = ticks[index];
|
|
14
|
-
if (tick === undefined || !Number.isSafeInteger(tick) || tick < 0 || tick > range.count)
|
|
15
|
-
return fail('construction', 'thumb-tick-outside-range', 'Every thumb tick must be inside the range.');
|
|
16
|
-
if (!policies.allowCross && index > 0 && ticks[index - 1] + gap > tick)
|
|
17
|
-
return fail('construction', 'thumb-order-violation', 'Thumb ticks must preserve order and minimum gap.');
|
|
18
|
-
}
|
|
19
|
-
return ok(Object.freeze({ cursor: createCursorState(current), ticks: Object.freeze([...ticks]) }));
|
|
20
|
-
}
|
|
21
|
-
export function applyMultiThumbSliderEvent(thumbs, range, state, event, policies = {}) {
|
|
22
|
-
const valid = createMultiThumbSliderState(thumbs, range, state.ticks, state.cursor.current, policies);
|
|
23
|
-
if (!valid.ok)
|
|
24
|
-
return { ok: false, error: { ...valid.error, class: 'transition-rejection' } };
|
|
25
|
-
if (event === 'next-thumb' || event === 'previous-thumb') {
|
|
26
|
-
if (thumbs.size === 0)
|
|
27
|
-
return createMachineUpdate(state);
|
|
28
|
-
const current = state.cursor.current;
|
|
29
|
-
let id;
|
|
30
|
-
if (current === null)
|
|
31
|
-
id = thumbs.at(event === 'next-thumb' ? 0 : thumbs.size - 1);
|
|
32
|
-
else {
|
|
33
|
-
const target = thumbs.move(current, event === 'next-thumb' ? 1 : -1, 'wrap');
|
|
34
|
-
id = target.kind === 'found' ? target.id : null;
|
|
35
|
-
}
|
|
36
|
-
if (id === null)
|
|
37
|
-
return createMachineUpdate(state);
|
|
38
|
-
return createMachineUpdate(Object.freeze({ cursor: createCursorState(id), ticks: state.ticks }), [{ type: 'focus', id }]);
|
|
39
|
-
}
|
|
40
|
-
const id = typeof event === 'object' ? event.id : state.cursor.current;
|
|
41
|
-
if (id === null)
|
|
42
|
-
return fail('transition-rejection', 'no-cursor', 'Multi-thumb change requires an active thumb.');
|
|
43
|
-
const index = thumbs.indexOf(id);
|
|
44
|
-
if (index === null)
|
|
45
|
-
return fail('transition-rejection', 'multi-thumb-target-unavailable', 'Thumb target must exist.');
|
|
46
|
-
if (typeof event === 'object' && event.type === 'focus')
|
|
47
|
-
return createMachineUpdate(Object.freeze({ cursor: createCursorState(id), ticks: state.ticks }), [{ type: 'focus', id }]);
|
|
48
|
-
const current = state.ticks[index];
|
|
49
|
-
let tick = typeof event === 'object' ? event.tick : event === 'increment' ? current + 1 : event === 'decrement' ? current - 1 : event === 'home' ? 0 : range.count;
|
|
50
|
-
tick = Math.max(0, Math.min(range.count, tick));
|
|
51
|
-
if (!policies.allowCross) {
|
|
52
|
-
const gap = policies.minGap ?? 0;
|
|
53
|
-
const lower = index === 0 ? 0 : state.ticks[index - 1] + gap;
|
|
54
|
-
const upper = index === state.ticks.length - 1 ? range.count : state.ticks[index + 1] - gap;
|
|
55
|
-
tick = Math.max(lower, Math.min(upper, tick));
|
|
56
|
-
}
|
|
57
|
-
if (!Number.isSafeInteger(tick))
|
|
58
|
-
return fail('transition-rejection', 'thumb-tick-outside-range', 'Thumb tick must be a safe range tick.');
|
|
59
|
-
const ticks = [...state.ticks];
|
|
60
|
-
ticks[index] = tick;
|
|
61
|
-
const commands = [];
|
|
62
|
-
if (state.cursor.current !== id)
|
|
63
|
-
commands.push({ type: 'focus', id });
|
|
64
|
-
if (current !== tick)
|
|
65
|
-
commands.push({ type: 'announce-tick', id, tick });
|
|
66
|
-
return createMachineUpdate(Object.freeze({ cursor: createCursorState(id), ticks: Object.freeze(ticks) }), commands);
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=multi-thumb-slider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multi-thumb-slider.js","sourceRoot":"","sources":["../src/multi-thumb-slider.ts"],"names":[],"mappings":"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"}
|
package/dist/number-field.d.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { Result } from './shared.js';
|
|
2
|
-
import { type DecimalRounding } from './internal/kernel/decimal.js';
|
|
3
|
-
import { type TextEditingState, type TextEvent } from './text.js';
|
|
4
|
-
export interface NumericExpressionResult {
|
|
5
|
-
readonly expression: string;
|
|
6
|
-
readonly value: string;
|
|
7
|
-
}
|
|
8
|
-
export interface NumericExpressionEvaluator {
|
|
9
|
-
evaluate(expression: string): Result<NumericExpressionResult>;
|
|
10
|
-
}
|
|
11
|
-
export interface CalculatorExpressionOptions {
|
|
12
|
-
readonly precision?: number;
|
|
13
|
-
readonly rounding?: DecimalRounding;
|
|
14
|
-
readonly maxCodeUnits?: number;
|
|
15
|
-
readonly maxTokens?: number;
|
|
16
|
-
readonly maxDepth?: number;
|
|
17
|
-
readonly maxOperations?: number;
|
|
18
|
-
readonly maxExponent?: number;
|
|
19
|
-
}
|
|
20
|
-
export interface NumberFieldState {
|
|
21
|
-
readonly value: string | null;
|
|
22
|
-
readonly inputState: TextEditingState;
|
|
23
|
-
}
|
|
24
|
-
export type NumberFieldEvent = {
|
|
25
|
-
readonly type: 'text';
|
|
26
|
-
readonly event: TextEvent;
|
|
27
|
-
} | 'commit' | 'cancel';
|
|
28
|
-
export type NumberFieldCommand = {
|
|
29
|
-
readonly type: 'input-state-changed';
|
|
30
|
-
readonly value: TextEditingState;
|
|
31
|
-
} | {
|
|
32
|
-
readonly type: 'value-committed';
|
|
33
|
-
readonly value: string | null;
|
|
34
|
-
readonly expression: string;
|
|
35
|
-
};
|
|
36
|
-
export interface NumberFieldPolicies {
|
|
37
|
-
readonly evaluator?: NumericExpressionEvaluator;
|
|
38
|
-
readonly min?: string;
|
|
39
|
-
readonly max?: string;
|
|
40
|
-
readonly required?: boolean;
|
|
41
|
-
}
|
|
42
|
-
export interface NumberFieldUpdate {
|
|
43
|
-
readonly state: NumberFieldState;
|
|
44
|
-
readonly commands: readonly NumberFieldCommand[];
|
|
45
|
-
}
|
|
46
|
-
export declare function createCalculatorExpression(options?: CalculatorExpressionOptions): Result<NumericExpressionEvaluator>;
|
|
47
|
-
export declare function createNumberFieldState(value?: string | null, inputState?: TextEditingState): Result<NumberFieldState>;
|
|
48
|
-
export declare function applyNumberFieldEvent(state: NumberFieldState, event: NumberFieldEvent, policies?: NumberFieldPolicies): Result<NumberFieldUpdate>;
|
|
49
|
-
//# sourceMappingURL=number-field.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"number-field.d.ts","sourceRoot":"","sources":["../src/number-field.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EASL,KAAK,eAAe,EAErB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;CACvC;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GACpD,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAErG,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,0BAA0B,CAAC;IAChD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAClD;AAyBD,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,2BAAgC,GACxC,MAAM,CAAC,0BAA0B,CAAC,CAQpC;AAED,wBAAgB,sBAAsB,CACpC,KAAK,GAAE,MAAM,GAAG,IAAW,EAC3B,UAAU,CAAC,EAAE,gBAAgB,GAC5B,MAAM,CAAC,gBAAgB,CAAC,CAiB1B;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,gBAAgB,EACvB,QAAQ,GAAE,mBAAwB,GACjC,MAAM,CAAC,iBAAiB,CAAC,CAoE3B"}
|