@sectile/core 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordion.d.ts +0 -1
- package/dist/adapter-runtime.d.ts +53 -2
- package/dist/adapter-runtime.js +224 -25
- package/dist/adapter-runtime.js.map +1 -1
- package/dist/alert-dialog.d.ts +0 -1
- package/dist/carousel.d.ts +0 -1
- package/dist/cascade-list.d.ts +16 -0
- package/dist/cascade-list.js +33 -0
- package/dist/cascade-list.js.map +1 -0
- package/dist/cascade-select.d.ts +0 -1
- package/dist/cascade-select.js +47 -119
- package/dist/cascade-select.js.map +1 -1
- package/dist/checkbox-group.d.ts +0 -1
- package/dist/checkbox.d.ts +0 -1
- package/dist/collection-window.d.ts +0 -1
- package/dist/color-picker.d.ts +3 -8
- package/dist/color-picker.js +60 -305
- package/dist/color-picker.js.map +1 -1
- package/dist/combobox.d.ts +0 -1
- package/dist/dialog.d.ts +0 -1
- package/dist/disclosure.d.ts +0 -1
- package/dist/drawer.d.ts +0 -1
- package/dist/editable.d.ts +0 -1
- package/dist/editing/color-text.d.ts +7 -0
- package/dist/editing/color-text.js +199 -0
- package/dist/editing/color-text.js.map +1 -0
- package/dist/error-code.d.ts +1 -2
- package/dist/feed.d.ts +0 -1
- package/dist/grid-control.d.ts +3 -0
- package/dist/grid-control.js +2 -0
- package/dist/grid-control.js.map +1 -0
- package/dist/identity.d.ts +10 -0
- package/dist/identity.js +16 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/interaction.d.ts +0 -1
- package/dist/internal/composites/cascade-choice.d.ts +54 -0
- package/dist/internal/composites/cascade-choice.js +154 -0
- package/dist/internal/composites/cascade-choice.js.map +1 -0
- package/dist/internal/composites/combobox.d.ts +0 -1
- package/dist/internal/composites/combobox.js +28 -11
- package/dist/internal/composites/combobox.js.map +1 -1
- package/dist/internal/composites/grid-control.d.ts +0 -1
- package/dist/internal/composites/grid-control.js +18 -23
- package/dist/internal/composites/grid-control.js.map +1 -1
- package/dist/internal/composites/linear-action.d.ts +0 -1
- package/dist/internal/composites/linear-action.js +20 -14
- package/dist/internal/composites/linear-action.js.map +1 -1
- package/dist/internal/composites/linear-choice.d.ts +0 -1
- package/dist/internal/composites/linear-choice.js +15 -8
- package/dist/internal/composites/linear-choice.js.map +1 -1
- package/dist/internal/composites/listbox.d.ts +0 -1
- package/dist/internal/composites/listbox.js +15 -13
- package/dist/internal/composites/listbox.js.map +1 -1
- package/dist/internal/composites/menu.d.ts +0 -1
- package/dist/internal/composites/menu.js +38 -17
- package/dist/internal/composites/menu.js.map +1 -1
- package/dist/internal/composites/popup.d.ts +0 -1
- package/dist/internal/composites/slider.d.ts +0 -1
- package/dist/internal/composites/tree-grid.d.ts +0 -1
- package/dist/internal/composites/tree-grid.js +70 -48
- package/dist/internal/composites/tree-grid.js.map +1 -1
- package/dist/internal/composites/tree-view.d.ts +0 -1
- package/dist/internal/composites/tree-view.js +32 -20
- package/dist/internal/composites/tree-view.js.map +1 -1
- package/dist/internal/editing/text.d.ts +0 -1
- package/dist/internal/editing/text.js +40 -27
- package/dist/internal/editing/text.js.map +1 -1
- package/dist/internal/kernel/bounded-scalar.d.ts +31 -0
- package/dist/internal/kernel/bounded-scalar.js +78 -0
- package/dist/internal/kernel/bounded-scalar.js.map +1 -0
- package/dist/internal/kernel/decimal.d.ts +0 -1
- package/dist/internal/kernel/exact-ratio.d.ts +5 -0
- package/dist/internal/kernel/exact-ratio.js +2 -0
- package/dist/internal/kernel/exact-ratio.js.map +1 -0
- package/dist/internal/kernel/foundation.d.ts +8 -6
- package/dist/internal/kernel/foundation.js +35 -16
- package/dist/internal/kernel/foundation.js.map +1 -1
- package/dist/internal/kernel/indexed-sequence.d.ts +32 -3
- package/dist/internal/kernel/indexed-sequence.js +167 -13
- package/dist/internal/kernel/indexed-sequence.js.map +1 -1
- package/dist/internal/kernel/machine.d.ts +1 -2
- package/dist/internal/kernel/machine.js +5 -2
- package/dist/internal/kernel/machine.js.map +1 -1
- package/dist/internal/runtime/revision.d.ts +0 -1
- package/dist/internal/state/checked.d.ts +0 -1
- package/dist/internal/state/cursor.d.ts +0 -1
- package/dist/internal/state/expansion.d.ts +0 -1
- package/dist/internal/state/open-state.d.ts +0 -1
- package/dist/internal/state/selection.d.ts +0 -1
- package/dist/internal/state/selection.js +99 -27
- package/dist/internal/state/selection.js.map +1 -1
- package/dist/layer-stack.d.ts +0 -1
- package/dist/listbox.d.ts +0 -1
- package/dist/menu-button.d.ts +0 -1
- package/dist/menu.d.ts +0 -1
- package/dist/menubar.d.ts +0 -1
- package/dist/meter-group.d.ts +38 -0
- package/dist/meter-group.js +103 -0
- package/dist/meter-group.js.map +1 -0
- package/dist/meter.d.ts +25 -0
- package/dist/meter.js +89 -0
- package/dist/meter.js.map +1 -0
- package/dist/multi-thumb-slider.d.ts +0 -1
- package/dist/navigation-menu.d.ts +0 -1
- package/dist/number-field.d.ts +0 -1
- package/dist/pagination.d.ts +0 -1
- package/dist/pin-input.d.ts +0 -1
- package/dist/popover.d.ts +0 -1
- package/dist/progress.d.ts +17 -0
- package/dist/progress.js +49 -0
- package/dist/progress.js.map +1 -0
- package/dist/quantity-field.d.ts +0 -1
- package/dist/radio-group.d.ts +0 -1
- package/dist/rating.d.ts +0 -1
- package/dist/reorder.d.ts +0 -1
- package/dist/reorder.js +92 -43
- package/dist/reorder.js.map +1 -1
- package/dist/result.d.ts +2 -1
- package/dist/result.js +14 -0
- package/dist/result.js.map +1 -1
- package/dist/revision.d.ts +1 -1
- package/dist/revision.js +1 -0
- package/dist/revision.js.map +1 -1
- package/dist/select.d.ts +0 -1
- package/dist/selection.d.ts +24 -0
- package/dist/selection.js +20 -0
- package/dist/selection.js.map +1 -0
- package/dist/shared.d.ts +0 -1
- package/dist/slider.d.ts +0 -1
- package/dist/spin-button.d.ts +0 -1
- package/dist/stepper.d.ts +0 -1
- package/dist/structures/anchored-layout.d.ts +33 -0
- package/dist/structures/anchored-layout.js +158 -0
- package/dist/structures/anchored-layout.js.map +1 -0
- package/dist/structures/color.d.ts +80 -0
- package/dist/structures/color.js +206 -0
- package/dist/structures/color.js.map +1 -0
- package/dist/structures/geometry.d.ts +53 -0
- package/dist/structures/geometry.js +165 -0
- package/dist/structures/geometry.js.map +1 -0
- package/dist/structures/grid.d.ts +20 -4
- package/dist/structures/grid.js +91 -50
- package/dist/structures/grid.js.map +1 -1
- package/dist/structures/index-span.d.ts +31 -0
- package/dist/structures/index-span.js +267 -0
- package/dist/structures/index-span.js.map +1 -0
- package/dist/structures/metric-index.d.ts +36 -0
- package/dist/structures/metric-index.js +390 -0
- package/dist/structures/metric-index.js.map +1 -0
- package/dist/structures/range.d.ts +21 -4
- package/dist/structures/range.js +156 -11
- package/dist/structures/range.js.map +1 -1
- package/dist/structures/selection-expression.d.ts +26 -0
- package/dist/structures/selection-expression.js +157 -0
- package/dist/structures/selection-expression.js.map +1 -0
- package/dist/structures/sequence.d.ts +2 -1
- package/dist/structures/sequence.js +69 -4
- package/dist/structures/sequence.js.map +1 -1
- package/dist/structures/tree.d.ts +5 -1
- package/dist/structures/tree.js +33 -5
- package/dist/structures/tree.js.map +1 -1
- package/dist/switch.d.ts +0 -1
- package/dist/tabs.d.ts +0 -1
- package/dist/tags-input.d.ts +0 -1
- package/dist/text.d.ts +0 -1
- package/dist/timer.d.ts +0 -1
- package/dist/toast.d.ts +2 -2
- package/dist/toast.js +3 -1
- package/dist/toast.js.map +1 -1
- package/dist/toggle-button.d.ts +0 -1
- package/dist/toggle-group.d.ts +0 -1
- package/dist/toolbar.d.ts +0 -1
- package/dist/tooltip.d.ts +0 -1
- package/dist/tree-grid.d.ts +0 -1
- package/dist/tree-view.d.ts +0 -1
- package/dist/units.d.ts +0 -1
- package/dist/window-splitter.d.ts +0 -1
- package/package.json +75 -12
- package/dist/accordion.d.ts.map +0 -1
- package/dist/adapter-runtime.d.ts.map +0 -1
- package/dist/alert-dialog.d.ts.map +0 -1
- package/dist/carousel.d.ts.map +0 -1
- package/dist/cascade-select.d.ts.map +0 -1
- package/dist/checkbox-group.d.ts.map +0 -1
- package/dist/checkbox.d.ts.map +0 -1
- package/dist/collection-window.d.ts.map +0 -1
- package/dist/color-picker.d.ts.map +0 -1
- package/dist/combobox.d.ts.map +0 -1
- package/dist/dialog.d.ts.map +0 -1
- package/dist/disclosure.d.ts.map +0 -1
- package/dist/drawer.d.ts.map +0 -1
- package/dist/editable.d.ts.map +0 -1
- package/dist/error-code.d.ts.map +0 -1
- package/dist/feed.d.ts.map +0 -1
- package/dist/form.d.ts +0 -135
- package/dist/form.d.ts.map +0 -1
- package/dist/form.js +0 -627
- package/dist/form.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/interaction.d.ts.map +0 -1
- package/dist/internal/composites/combobox.d.ts.map +0 -1
- package/dist/internal/composites/grid-control.d.ts.map +0 -1
- package/dist/internal/composites/linear-action.d.ts.map +0 -1
- package/dist/internal/composites/linear-choice.d.ts.map +0 -1
- package/dist/internal/composites/listbox.d.ts.map +0 -1
- package/dist/internal/composites/menu.d.ts.map +0 -1
- package/dist/internal/composites/popup.d.ts.map +0 -1
- package/dist/internal/composites/slider.d.ts.map +0 -1
- package/dist/internal/composites/tree-grid.d.ts.map +0 -1
- package/dist/internal/composites/tree-view.d.ts.map +0 -1
- package/dist/internal/editing/text.d.ts.map +0 -1
- package/dist/internal/kernel/decimal.d.ts.map +0 -1
- package/dist/internal/kernel/foundation.d.ts.map +0 -1
- package/dist/internal/kernel/indexed-sequence.d.ts.map +0 -1
- package/dist/internal/kernel/machine.d.ts.map +0 -1
- package/dist/internal/runtime/revision.d.ts.map +0 -1
- package/dist/internal/state/checked.d.ts.map +0 -1
- package/dist/internal/state/cursor.d.ts.map +0 -1
- package/dist/internal/state/expansion.d.ts.map +0 -1
- package/dist/internal/state/open-state.d.ts.map +0 -1
- package/dist/internal/state/selection.d.ts.map +0 -1
- package/dist/layer-stack.d.ts.map +0 -1
- package/dist/listbox.d.ts.map +0 -1
- package/dist/menu-button.d.ts.map +0 -1
- package/dist/menu.d.ts.map +0 -1
- package/dist/menubar.d.ts.map +0 -1
- package/dist/multi-thumb-slider.d.ts.map +0 -1
- package/dist/navigation-menu.d.ts.map +0 -1
- package/dist/number-field.d.ts.map +0 -1
- package/dist/pagination.d.ts.map +0 -1
- package/dist/pin-input.d.ts.map +0 -1
- package/dist/popover.d.ts.map +0 -1
- package/dist/quantity-field.d.ts.map +0 -1
- package/dist/radio-group.d.ts.map +0 -1
- package/dist/rating.d.ts.map +0 -1
- package/dist/reorder.d.ts.map +0 -1
- package/dist/result.d.ts.map +0 -1
- package/dist/revision.d.ts.map +0 -1
- package/dist/select.d.ts.map +0 -1
- package/dist/shared.d.ts.map +0 -1
- package/dist/slider.d.ts.map +0 -1
- package/dist/spin-button.d.ts.map +0 -1
- package/dist/stepper.d.ts.map +0 -1
- package/dist/structures/grid.d.ts.map +0 -1
- package/dist/structures/range.d.ts.map +0 -1
- package/dist/structures/sequence.d.ts.map +0 -1
- package/dist/structures/tree.d.ts.map +0 -1
- package/dist/switch.d.ts.map +0 -1
- package/dist/tabs.d.ts.map +0 -1
- package/dist/tags-input.d.ts.map +0 -1
- package/dist/text.d.ts.map +0 -1
- package/dist/timer.d.ts.map +0 -1
- package/dist/toast.d.ts.map +0 -1
- package/dist/toggle-button.d.ts.map +0 -1
- package/dist/toggle-group.d.ts.map +0 -1
- package/dist/toolbar.d.ts.map +0 -1
- package/dist/tooltip.d.ts.map +0 -1
- package/dist/tree-grid.d.ts.map +0 -1
- package/dist/tree-view.d.ts.map +0 -1
- package/dist/units.d.ts.map +0 -1
- package/dist/window-splitter.d.ts.map +0 -1
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { unwrap } from '../../result.js';
|
|
2
|
-
import { fail, ok } from '../kernel/foundation.js';
|
|
2
|
+
import { bindCanonicalState, fail, hasCanonicalState, memoizeWeakPair, ok } from '../kernel/foundation.js';
|
|
3
3
|
import { createMachineUpdate } from '../kernel/machine.js';
|
|
4
4
|
import { createCursorState } from '../state/cursor.js';
|
|
5
5
|
import { createExpansionState, setExpansionOpen, } from '../state/expansion.js';
|
|
6
6
|
import { createSelectionState, selectOne, toggleMultipleSelection, } from '../state/selection.js';
|
|
7
|
+
const treeVisibleViews = new WeakMap();
|
|
7
8
|
export function createTreeViewState(tree, input = {}, selectionMode = 'multiple') {
|
|
8
9
|
return unwrap(tryCreateTreeViewState(tree, input, selectionMode));
|
|
9
10
|
}
|
|
10
11
|
export function tryCreateTreeViewState(tree, input = {}, selectionMode = 'multiple') {
|
|
11
12
|
const expansion = createExpansionState(tree, input.expanded ?? []);
|
|
12
|
-
const visible = tree
|
|
13
|
+
const visible = treeVisible(tree, expansion);
|
|
13
14
|
const current = input.current ?? null;
|
|
14
15
|
if (current !== null && !visible.contains(current)) {
|
|
15
16
|
return fail('construction', 'tree-view-cursor-hidden', 'Tree-view cursor must be visible under the requested expansion.', { current });
|
|
@@ -17,13 +18,14 @@ export function tryCreateTreeViewState(tree, input = {}, selectionMode = 'multip
|
|
|
17
18
|
const selection = createSelectionState(tree.preorder(), selectionMode, input);
|
|
18
19
|
if (!selection.ok)
|
|
19
20
|
return selection;
|
|
20
|
-
return ok(treeViewState(expansion, createCursorState(current), selection.value));
|
|
21
|
+
return ok(treeViewState(tree, expansion, createCursorState(current), selection.value));
|
|
21
22
|
}
|
|
22
23
|
export function applyTreeViewEvent(tree, state, event, policies = {}) {
|
|
23
24
|
if (!isTreeViewEvent(event)) {
|
|
24
25
|
return fail('transition-rejection', 'invalid-tree-view-event', 'Tree-view event must be next, previous, right, left, or toggle-select.', { event });
|
|
25
26
|
}
|
|
26
|
-
const
|
|
27
|
+
const canonical = hasCanonicalState(tree, state);
|
|
28
|
+
const expansion = canonical ? state.expansion : createExpansionState(tree, state.expansion.ids);
|
|
27
29
|
if (policies.eligible !== undefined && typeof policies.eligible !== 'function') {
|
|
28
30
|
return fail('transition-rejection', 'invalid-eligibility-policy', 'Tree-view eligibility policy must be a function.');
|
|
29
31
|
}
|
|
@@ -32,25 +34,27 @@ export function applyTreeViewEvent(tree, state, event, policies = {}) {
|
|
|
32
34
|
if (selectionMode !== 'single' && selectionMode !== 'multiple') {
|
|
33
35
|
return fail('transition-rejection', 'invalid-selection-mode', 'Tree-view selection mode must be single or multiple.', { selectionMode });
|
|
34
36
|
}
|
|
35
|
-
const visible = tree
|
|
36
|
-
const stateError = validateTreeViewState(tree, visible, state, selectionMode);
|
|
37
|
+
const visible = treeVisible(tree, expansion);
|
|
38
|
+
const stateError = canonical ? null : validateTreeViewState(tree, visible, state, selectionMode);
|
|
37
39
|
if (stateError !== null)
|
|
38
40
|
return { ok: false, error: stateError };
|
|
39
41
|
const normalized = sameExpansion(expansion, state.expansion)
|
|
40
42
|
? state
|
|
41
|
-
: treeViewState(expansion, state.cursor, state.selection);
|
|
43
|
+
: treeViewState(tree, expansion, state.cursor, state.selection);
|
|
42
44
|
const current = state.cursor.current;
|
|
43
45
|
if (typeof event === 'object') {
|
|
44
46
|
if (!tree.has(event.id)) {
|
|
45
47
|
return fail('transition-rejection', 'tree-view-target-outside-tree', 'Direct tree-view events require an identity in the tree.', { id: event.id });
|
|
46
48
|
}
|
|
47
49
|
if (event.type === 'set-expanded') {
|
|
50
|
+
if (!visible.contains(event.id))
|
|
51
|
+
return fail('transition-rejection', 'tree-view-target-hidden', 'Expansion changes require a visible tree-view item.', { id: event.id });
|
|
48
52
|
if (!eligible(event.id))
|
|
49
53
|
return fail('transition-rejection', 'tree-view-target-ineligible', 'Disabled tree-view items cannot change expansion.', { id: event.id });
|
|
50
54
|
const nextExpansion = setExpansionOpen(expansion, event.id, event.open, tree);
|
|
51
|
-
const nextVisible = tree
|
|
55
|
+
const nextVisible = treeVisible(tree, nextExpansion);
|
|
52
56
|
const target = current !== null && nextVisible.contains(current) ? current : event.id;
|
|
53
|
-
return createMachineUpdate(treeViewState(nextExpansion, createCursorState(target), state.selection), target === current ? [] : [{ type: 'focus', id: target }]);
|
|
57
|
+
return createMachineUpdate(treeViewState(tree, nextExpansion, createCursorState(target), state.selection), target === current ? [] : [{ type: 'focus', id: target }]);
|
|
54
58
|
}
|
|
55
59
|
if (!visible.contains(event.id)) {
|
|
56
60
|
return fail('transition-rejection', 'tree-view-target-hidden', 'Direct tree-view focus and selection require a visible identity.', { id: event.id });
|
|
@@ -58,9 +62,9 @@ export function applyTreeViewEvent(tree, state, event, policies = {}) {
|
|
|
58
62
|
if (!eligible(event.id))
|
|
59
63
|
return fail('transition-rejection', 'tree-view-target-ineligible', 'Direct tree-view focus and selection require an eligible identity.', { id: event.id });
|
|
60
64
|
if (event.type === 'focus') {
|
|
61
|
-
return createMachineUpdate(treeViewState(expansion, createCursorState(event.id), state.selection), [{ type: 'focus', id: event.id }]);
|
|
65
|
+
return createMachineUpdate(treeViewState(tree, expansion, createCursorState(event.id), state.selection), [{ type: 'focus', id: event.id }]);
|
|
62
66
|
}
|
|
63
|
-
return createMachineUpdate(treeViewState(expansion, createCursorState(event.id), selectForMode(state.selection, event.id, tree.preorder(), selectionMode)), [{ type: 'focus', id: event.id }]);
|
|
67
|
+
return createMachineUpdate(treeViewState(tree, expansion, createCursorState(event.id), selectForMode(state.selection, event.id, tree.preorder(), selectionMode)), [{ type: 'focus', id: event.id }]);
|
|
64
68
|
}
|
|
65
69
|
if (event === 'next' || event === 'previous') {
|
|
66
70
|
const target = current === null
|
|
@@ -68,7 +72,7 @@ export function applyTreeViewEvent(tree, state, event, policies = {}) {
|
|
|
68
72
|
: movementTarget(visible, current, event === 'next' ? 1 : -1, eligible);
|
|
69
73
|
if (target === null)
|
|
70
74
|
return createMachineUpdate(normalized);
|
|
71
|
-
return createMachineUpdate(treeViewState(expansion, createCursorState(target), state.selection), [{ type: 'focus', id: target }]);
|
|
75
|
+
return createMachineUpdate(treeViewState(tree, expansion, createCursorState(target), state.selection), [{ type: 'focus', id: target }]);
|
|
72
76
|
}
|
|
73
77
|
if (event === 'right') {
|
|
74
78
|
if (current === null)
|
|
@@ -77,30 +81,30 @@ export function applyTreeViewEvent(tree, state, event, policies = {}) {
|
|
|
77
81
|
if (children === null || children.size === 0)
|
|
78
82
|
return createMachineUpdate(normalized);
|
|
79
83
|
if (!expansion.has(current)) {
|
|
80
|
-
return createMachineUpdate(treeViewState(setExpansionOpen(expansion, current, true, tree), state.cursor, state.selection));
|
|
84
|
+
return createMachineUpdate(treeViewState(tree, setExpansionOpen(expansion, current, true, tree), state.cursor, state.selection));
|
|
81
85
|
}
|
|
82
86
|
const target = eligibleFromEdge(children, 1, eligible);
|
|
83
87
|
if (target === null)
|
|
84
88
|
return createMachineUpdate(normalized);
|
|
85
|
-
return createMachineUpdate(treeViewState(expansion, createCursorState(target), state.selection), [{ type: 'focus', id: target }]);
|
|
89
|
+
return createMachineUpdate(treeViewState(tree, expansion, createCursorState(target), state.selection), [{ type: 'focus', id: target }]);
|
|
86
90
|
}
|
|
87
91
|
if (event === 'left') {
|
|
88
92
|
if (current === null)
|
|
89
93
|
return createMachineUpdate(normalized);
|
|
90
94
|
if (expansion.has(current)) {
|
|
91
|
-
return createMachineUpdate(treeViewState(setExpansionOpen(expansion, current, false, tree), state.cursor, state.selection));
|
|
95
|
+
return createMachineUpdate(treeViewState(tree, setExpansionOpen(expansion, current, false, tree), state.cursor, state.selection));
|
|
92
96
|
}
|
|
93
97
|
const parent = eligibleAncestor(tree, current, eligible);
|
|
94
98
|
if (parent === null)
|
|
95
99
|
return createMachineUpdate(normalized);
|
|
96
|
-
return createMachineUpdate(treeViewState(expansion, createCursorState(parent), state.selection), [{ type: 'focus', id: parent }]);
|
|
100
|
+
return createMachineUpdate(treeViewState(tree, expansion, createCursorState(parent), state.selection), [{ type: 'focus', id: parent }]);
|
|
97
101
|
}
|
|
98
102
|
if (current === null) {
|
|
99
103
|
return fail('transition-rejection', 'no-cursor', 'Tree-view selection requires a cursor.');
|
|
100
104
|
}
|
|
101
105
|
if (!eligible(current))
|
|
102
106
|
return fail('transition-rejection', 'tree-view-target-ineligible', 'Tree-view selection requires an eligible cursor.', { id: current });
|
|
103
|
-
return createMachineUpdate(treeViewState(expansion, state.cursor, selectForMode(state.selection, current, tree.preorder(), selectionMode)));
|
|
107
|
+
return createMachineUpdate(treeViewState(tree, expansion, state.cursor, selectForMode(state.selection, current, tree.preorder(), selectionMode)));
|
|
104
108
|
}
|
|
105
109
|
function movementTarget(visible, current, direction, eligible) {
|
|
106
110
|
const index = visible.indexOf(current);
|
|
@@ -181,12 +185,20 @@ function selectForMode(state, id, domain, selectionMode) {
|
|
|
181
185
|
function sameExpansion(left, right) {
|
|
182
186
|
return left.ids.length === right.ids.length && left.ids.every((id, index) => id === right.ids[index]);
|
|
183
187
|
}
|
|
184
|
-
function treeViewState(expansion, cursor, selection) {
|
|
185
|
-
return Object.freeze({ expansion, cursor, selection });
|
|
188
|
+
function treeViewState(tree, expansion, cursor, selection) {
|
|
189
|
+
return bindCanonicalState(tree, Object.freeze({ expansion, cursor, selection }));
|
|
186
190
|
}
|
|
191
|
+
function treeVisible(tree, expansion) {
|
|
192
|
+
return memoizeWeakPair(treeVisibleViews, tree, expansion, createTreeVisible);
|
|
193
|
+
}
|
|
194
|
+
function createTreeVisible(owner, expansion) { return owner.visible(expansion); }
|
|
187
195
|
function isTreeViewEvent(value) {
|
|
188
196
|
if (typeof value === 'string') {
|
|
189
|
-
return
|
|
197
|
+
return value === 'next'
|
|
198
|
+
|| value === 'previous'
|
|
199
|
+
|| value === 'right'
|
|
200
|
+
|| value === 'left'
|
|
201
|
+
|| value === 'toggle-select';
|
|
190
202
|
}
|
|
191
203
|
return typeof value === 'object' && value !== null && 'type' in value && 'id' in value
|
|
192
204
|
&& typeof value.id === 'string'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-view.js","sourceRoot":"","sources":["../../../src/internal/composites/tree-view.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tree-view.js","sourceRoot":"","sources":["../../../src/internal/composites/tree-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,4 +64,3 @@ export declare function startTextComposition(state: TextEditingState, startCodeU
|
|
|
64
64
|
export declare function updateTextComposition(state: TextEditingState, composingText: string, selection: TextSelectionInput): Result<TextEditingState>;
|
|
65
65
|
export declare function commitTextComposition(state: TextEditingState): Result<TextEditingState>;
|
|
66
66
|
export declare function cancelTextComposition(state: TextEditingState): Result<TextEditingState>;
|
|
67
|
-
//# sourceMappingURL=text.d.ts.map
|
|
@@ -12,6 +12,7 @@ export function sameTextEditingState(left, right) {
|
|
|
12
12
|
left.composition.endCodeUnitOffset === right.composition.endCodeUnitOffset &&
|
|
13
13
|
left.composition.composingText === right.composition.composingText);
|
|
14
14
|
}
|
|
15
|
+
const canonicalTextStates = new WeakSet();
|
|
15
16
|
export function isWellFormedPlainText(text) {
|
|
16
17
|
return typeof text === 'string' && isWellFormedUTF16(text);
|
|
17
18
|
}
|
|
@@ -20,9 +21,7 @@ export function isTextCodeUnitBoundary(text, offset) {
|
|
|
20
21
|
return false;
|
|
21
22
|
if (offset < 0 || offset > text.length)
|
|
22
23
|
return false;
|
|
23
|
-
|
|
24
|
-
return true;
|
|
25
|
-
return !(isHighSurrogate(text.charCodeAt(offset - 1)) && isLowSurrogate(text.charCodeAt(offset)));
|
|
24
|
+
return isKnownTextCodeUnitBoundary(text, offset);
|
|
26
25
|
}
|
|
27
26
|
export function createTextSnapshot(text, selection) {
|
|
28
27
|
return unwrap(tryCreateTextSnapshot(text, selection));
|
|
@@ -90,10 +89,10 @@ export function replaceTextState(state, startCodeUnitOffset, endCodeUnitOffset,
|
|
|
90
89
|
if (state.composition !== null) {
|
|
91
90
|
return fail('transition-rejection', 'composition-active', 'Stable replacement requires composition to be inactive.');
|
|
92
91
|
}
|
|
93
|
-
const replaced = replaceChecked(state.snapshot.text, startCodeUnitOffset, endCodeUnitOffset, replacement, 'transition-rejection');
|
|
92
|
+
const replaced = replaceChecked(state.snapshot.text, startCodeUnitOffset, endCodeUnitOffset, replacement, 'transition-rejection', canonicalTextStates.has(state));
|
|
94
93
|
if (!replaced.ok)
|
|
95
94
|
return replaced;
|
|
96
|
-
const snapshot = createSnapshot(replaced.value, selection, 'transition-rejection');
|
|
95
|
+
const snapshot = createSnapshot(replaced.value, selection, 'transition-rejection', true);
|
|
97
96
|
if (!snapshot.ok)
|
|
98
97
|
return snapshot;
|
|
99
98
|
return ok(sameSnapshot(state.snapshot, snapshot.value) ? state : stateFromSnapshot(snapshot.value));
|
|
@@ -102,10 +101,10 @@ export function startTextComposition(state, startCodeUnitOffset, endCodeUnitOffs
|
|
|
102
101
|
if (state.composition !== null) {
|
|
103
102
|
return fail('transition-rejection', 'composition-active', 'A text composition is already active.');
|
|
104
103
|
}
|
|
105
|
-
const projected = replaceChecked(state.snapshot.text, startCodeUnitOffset, endCodeUnitOffset, composingText, 'transition-rejection');
|
|
104
|
+
const projected = replaceChecked(state.snapshot.text, startCodeUnitOffset, endCodeUnitOffset, composingText, 'transition-rejection', canonicalTextStates.has(state));
|
|
106
105
|
if (!projected.ok)
|
|
107
106
|
return projected;
|
|
108
|
-
const snapshot = createSnapshot(projected.value, selection, 'transition-rejection');
|
|
107
|
+
const snapshot = createSnapshot(projected.value, selection, 'transition-rejection', true);
|
|
109
108
|
if (!snapshot.ok)
|
|
110
109
|
return snapshot;
|
|
111
110
|
const composition = freezeComposition({
|
|
@@ -114,21 +113,21 @@ export function startTextComposition(state, startCodeUnitOffset, endCodeUnitOffs
|
|
|
114
113
|
endCodeUnitOffset,
|
|
115
114
|
composingText,
|
|
116
115
|
});
|
|
117
|
-
return ok(
|
|
116
|
+
return ok(textEditingState(snapshot.value, composition));
|
|
118
117
|
}
|
|
119
118
|
export function updateTextComposition(state, composingText, selection) {
|
|
120
119
|
const current = state.composition;
|
|
121
120
|
if (current === null) {
|
|
122
121
|
return fail('transition-rejection', 'composition-inactive', 'Text composition update requires an active composition.');
|
|
123
122
|
}
|
|
124
|
-
const projected = replaceChecked(current.baseline.text, current.startCodeUnitOffset, current.endCodeUnitOffset, composingText, 'transition-rejection');
|
|
123
|
+
const projected = replaceChecked(current.baseline.text, current.startCodeUnitOffset, current.endCodeUnitOffset, composingText, 'transition-rejection', canonicalTextStates.has(state));
|
|
125
124
|
if (!projected.ok)
|
|
126
125
|
return projected;
|
|
127
|
-
const snapshot = createSnapshot(projected.value, selection, 'transition-rejection');
|
|
126
|
+
const snapshot = createSnapshot(projected.value, selection, 'transition-rejection', true);
|
|
128
127
|
if (!snapshot.ok)
|
|
129
128
|
return snapshot;
|
|
130
129
|
const composition = freezeComposition({ ...current, composingText });
|
|
131
|
-
return ok(
|
|
130
|
+
return ok(textEditingState(snapshot.value, composition));
|
|
132
131
|
}
|
|
133
132
|
export function commitTextComposition(state) {
|
|
134
133
|
if (state.composition === null) {
|
|
@@ -142,8 +141,8 @@ export function cancelTextComposition(state) {
|
|
|
142
141
|
}
|
|
143
142
|
return ok(stateFromSnapshot(state.composition.baseline));
|
|
144
143
|
}
|
|
145
|
-
function createSnapshot(text, selection, errorClass) {
|
|
146
|
-
if (!isWellFormedPlainText(text)) {
|
|
144
|
+
function createSnapshot(text, selection, errorClass, textIsCanonical = false) {
|
|
145
|
+
if (!textIsCanonical && !isWellFormedPlainText(text)) {
|
|
147
146
|
return fail(errorClass, 'ill-formed-text', 'Plain text must be a well-formed UTF-16 string.');
|
|
148
147
|
}
|
|
149
148
|
if (!isObject(selection)) {
|
|
@@ -167,6 +166,8 @@ function createSnapshot(text, selection, errorClass) {
|
|
|
167
166
|
return ok(Object.freeze({ text, selection: textSelection }));
|
|
168
167
|
}
|
|
169
168
|
function normalizeEditingState(state, errorClass) {
|
|
169
|
+
if (isObject(state) && canonicalTextStates.has(state))
|
|
170
|
+
return ok(state);
|
|
170
171
|
if (!isObject(state)) {
|
|
171
172
|
return fail(errorClass, 'invalid-text-state', 'Text editing state must be an object.');
|
|
172
173
|
}
|
|
@@ -181,21 +182,18 @@ function normalizeEditingState(state, errorClass) {
|
|
|
181
182
|
const baseline = normalizeSnapshot(state.composition.baseline, errorClass);
|
|
182
183
|
if (!baseline.ok)
|
|
183
184
|
return baseline;
|
|
184
|
-
const projected = replaceChecked(baseline.value.text, state.composition.startCodeUnitOffset, state.composition.endCodeUnitOffset, state.composition.composingText, errorClass);
|
|
185
|
+
const projected = replaceChecked(baseline.value.text, state.composition.startCodeUnitOffset, state.composition.endCodeUnitOffset, state.composition.composingText, errorClass, true);
|
|
185
186
|
if (!projected.ok)
|
|
186
187
|
return projected;
|
|
187
188
|
if (projected.value !== snapshot.value.text) {
|
|
188
189
|
return fail(errorClass, 'inconsistent-composition-snapshot', 'Text composition snapshot must equal its baseline replacement.');
|
|
189
190
|
}
|
|
190
|
-
return ok(
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
composingText: state.composition.composingText,
|
|
197
|
-
}),
|
|
198
|
-
}));
|
|
191
|
+
return ok(textEditingState(snapshot.value, freezeComposition({
|
|
192
|
+
baseline: baseline.value,
|
|
193
|
+
startCodeUnitOffset: state.composition.startCodeUnitOffset,
|
|
194
|
+
endCodeUnitOffset: state.composition.endCodeUnitOffset,
|
|
195
|
+
composingText: state.composition.composingText,
|
|
196
|
+
})));
|
|
199
197
|
}
|
|
200
198
|
function normalizeSnapshot(snapshot, errorClass) {
|
|
201
199
|
if (!isObject(snapshot)) {
|
|
@@ -203,8 +201,10 @@ function normalizeSnapshot(snapshot, errorClass) {
|
|
|
203
201
|
}
|
|
204
202
|
return createSnapshot(snapshot.text, snapshot.selection, errorClass);
|
|
205
203
|
}
|
|
206
|
-
function replaceChecked(text, startCodeUnitOffset, endCodeUnitOffset, replacement, errorClass) {
|
|
207
|
-
const range =
|
|
204
|
+
function replaceChecked(text, startCodeUnitOffset, endCodeUnitOffset, replacement, errorClass, sourceIsCanonical = false) {
|
|
205
|
+
const range = sourceIsCanonical
|
|
206
|
+
? validateKnownTextRange(text, startCodeUnitOffset, endCodeUnitOffset, errorClass)
|
|
207
|
+
: validateRange(text, startCodeUnitOffset, endCodeUnitOffset, errorClass);
|
|
208
208
|
if (!range.ok)
|
|
209
209
|
return range;
|
|
210
210
|
if (!isWellFormedPlainText(replacement)) {
|
|
@@ -216,6 +216,9 @@ function validateRange(text, startCodeUnitOffset, endCodeUnitOffset, errorClass)
|
|
|
216
216
|
if (!isWellFormedPlainText(text)) {
|
|
217
217
|
return fail(errorClass, 'ill-formed-text', 'Plain text must be a well-formed UTF-16 string.');
|
|
218
218
|
}
|
|
219
|
+
return validateKnownTextRange(text, startCodeUnitOffset, endCodeUnitOffset, errorClass);
|
|
220
|
+
}
|
|
221
|
+
function validateKnownTextRange(text, startCodeUnitOffset, endCodeUnitOffset, errorClass) {
|
|
219
222
|
const startError = validateOffset(text, startCodeUnitOffset, 'startCodeUnitOffset', errorClass);
|
|
220
223
|
if (startError !== null)
|
|
221
224
|
return startError;
|
|
@@ -231,13 +234,18 @@ function validateOffset(text, offset, name, errorClass) {
|
|
|
231
234
|
if (!Number.isSafeInteger(offset) || offset < 0 || offset > text.length) {
|
|
232
235
|
return fail(errorClass, 'invalid-text-offset', `${name} must be a safe UTF-16 code-unit offset within the text.`, { [name]: offset, codeUnitLength: text.length });
|
|
233
236
|
}
|
|
234
|
-
if (!
|
|
237
|
+
if (!isKnownTextCodeUnitBoundary(text, offset)) {
|
|
235
238
|
return fail(errorClass, 'surrogate-boundary', `${name} must not split a UTF-16 surrogate pair.`, { [name]: offset });
|
|
236
239
|
}
|
|
237
240
|
return null;
|
|
238
241
|
}
|
|
239
242
|
function stateFromSnapshot(snapshot) {
|
|
240
|
-
return
|
|
243
|
+
return textEditingState(snapshot, null);
|
|
244
|
+
}
|
|
245
|
+
function textEditingState(snapshot, composition) {
|
|
246
|
+
const state = Object.freeze({ snapshot, composition });
|
|
247
|
+
canonicalTextStates.add(state);
|
|
248
|
+
return state;
|
|
241
249
|
}
|
|
242
250
|
function freezeComposition(composition) {
|
|
243
251
|
return Object.freeze(composition);
|
|
@@ -253,6 +261,11 @@ function isHighSurrogate(code) {
|
|
|
253
261
|
function isLowSurrogate(code) {
|
|
254
262
|
return code >= 0xdc00 && code <= 0xdfff;
|
|
255
263
|
}
|
|
264
|
+
function isKnownTextCodeUnitBoundary(text, offset) {
|
|
265
|
+
if (offset === 0 || offset === text.length)
|
|
266
|
+
return true;
|
|
267
|
+
return !(isHighSurrogate(text.charCodeAt(offset - 1)) && isLowSurrogate(text.charCodeAt(offset)));
|
|
268
|
+
}
|
|
256
269
|
function isObject(value) {
|
|
257
270
|
return typeof value === 'object' && value !== null;
|
|
258
271
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/internal/editing/text.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/internal/editing/text.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Result } from '../../shared.js';
|
|
2
|
+
import type { ExactRatio } from './exact-ratio.js';
|
|
3
|
+
import { addDecimal, compareDecimal, decimalToString, parseDecimal, subtractDecimal, type ExactDecimal } from './decimal.js';
|
|
4
|
+
export declare const DEFAULT_SCALAR_MIN = "0";
|
|
5
|
+
export declare const DEFAULT_SCALAR_MAX = "100";
|
|
6
|
+
export declare const DEFAULT_MAX_DECIMAL_CODE_UNITS = 1024;
|
|
7
|
+
export declare const DEFAULT_MAX_DECIMAL_SCALE = 100;
|
|
8
|
+
export declare const DEFAULT_PERCENTAGE_SCALE = 12;
|
|
9
|
+
export interface BoundedScalarCeilings {
|
|
10
|
+
readonly maxDecimalCodeUnits?: number;
|
|
11
|
+
readonly maxScale?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ParsedBoundedScalar {
|
|
14
|
+
readonly min: ExactDecimal;
|
|
15
|
+
readonly max: ExactDecimal;
|
|
16
|
+
readonly value: ExactDecimal;
|
|
17
|
+
readonly canonicalMin: string;
|
|
18
|
+
readonly canonicalMax: string;
|
|
19
|
+
readonly canonicalValue: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function tryParseBoundedScalar(values: {
|
|
22
|
+
readonly min: string;
|
|
23
|
+
readonly max: string;
|
|
24
|
+
readonly value: string;
|
|
25
|
+
}, ceilings?: BoundedScalarCeilings): Result<ParsedBoundedScalar>;
|
|
26
|
+
export declare function boundedRatio(value: ExactDecimal, min: ExactDecimal, max: ExactDecimal): ExactRatio;
|
|
27
|
+
export declare function midpointDecimal(min: ExactDecimal, max: ExactDecimal): ExactDecimal;
|
|
28
|
+
export declare function formatRatioPercentage(ratio: ExactRatio, scale?: number): string;
|
|
29
|
+
export declare function decimalInClosedRange(value: ExactDecimal, min: ExactDecimal, max: ExactDecimal): boolean;
|
|
30
|
+
export { addDecimal, compareDecimal, decimalToString, parseDecimal, subtractDecimal };
|
|
31
|
+
export type { ExactDecimal };
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { addDecimal, compareDecimal, decimalQuotient, decimalToString, divideDecimal, parseDecimal, reduceFraction, subtractDecimal, } from './decimal.js';
|
|
2
|
+
import { fail, ok, validateSafeCeiling } from './foundation.js';
|
|
3
|
+
export const DEFAULT_SCALAR_MIN = '0';
|
|
4
|
+
export const DEFAULT_SCALAR_MAX = '100';
|
|
5
|
+
export const DEFAULT_MAX_DECIMAL_CODE_UNITS = 1_024;
|
|
6
|
+
export const DEFAULT_MAX_DECIMAL_SCALE = 100;
|
|
7
|
+
export const DEFAULT_PERCENTAGE_SCALE = 12;
|
|
8
|
+
export function tryParseBoundedScalar(values, ceilings = {}) {
|
|
9
|
+
const maxDecimalCodeUnits = ceilings.maxDecimalCodeUnits ?? DEFAULT_MAX_DECIMAL_CODE_UNITS;
|
|
10
|
+
const maxScale = ceilings.maxScale ?? DEFAULT_MAX_DECIMAL_SCALE;
|
|
11
|
+
const codeUnitError = validateSafeCeiling(maxDecimalCodeUnits, 'maxDecimalCodeUnits', 1);
|
|
12
|
+
if (codeUnitError !== null)
|
|
13
|
+
return { ok: false, error: codeUnitError };
|
|
14
|
+
const scaleError = validateSafeCeiling(maxScale, 'maxScale');
|
|
15
|
+
if (scaleError !== null)
|
|
16
|
+
return { ok: false, error: scaleError };
|
|
17
|
+
for (const [name, value] of Object.entries(values)) {
|
|
18
|
+
if (typeof value !== 'string') {
|
|
19
|
+
return fail('construction', 'invalid-decimal', `${name} must be a decimal string.`, {
|
|
20
|
+
name,
|
|
21
|
+
receivedType: typeof value,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
if (value.length > maxDecimalCodeUnits) {
|
|
25
|
+
return fail('resource-rejection', 'decimal-code-unit-ceiling-exceeded', `${name} exceeds maxDecimalCodeUnits.`, { name, codeUnits: value.length, maxDecimalCodeUnits });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const min = parseDecimal(values.min);
|
|
29
|
+
const max = parseDecimal(values.max);
|
|
30
|
+
const value = parseDecimal(values.value);
|
|
31
|
+
if (min === null || max === null || value === null) {
|
|
32
|
+
return fail('construction', 'invalid-decimal', 'min, max, and value must be finite decimal spellings.');
|
|
33
|
+
}
|
|
34
|
+
if (min.scale > maxScale || max.scale > maxScale || value.scale > maxScale) {
|
|
35
|
+
return fail('resource-rejection', 'decimal-scale-ceiling-exceeded', 'Decimal scale exceeds maxScale.', { maxScale });
|
|
36
|
+
}
|
|
37
|
+
if (compareDecimal(max, min) < 0) {
|
|
38
|
+
return fail('construction', 'inverted-bounds', 'max must be greater than or equal to min.');
|
|
39
|
+
}
|
|
40
|
+
return ok(Object.freeze({
|
|
41
|
+
min,
|
|
42
|
+
max,
|
|
43
|
+
value,
|
|
44
|
+
canonicalMin: decimalToString(min),
|
|
45
|
+
canonicalMax: decimalToString(max),
|
|
46
|
+
canonicalValue: decimalToString(value),
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
export function boundedRatio(value, min, max) {
|
|
50
|
+
if (compareDecimal(min, max) === 0)
|
|
51
|
+
return Object.freeze({ numerator: 0n, denominator: 1n });
|
|
52
|
+
const [numerator, denominator] = decimalQuotient(subtractDecimal(value, min), subtractDecimal(max, min));
|
|
53
|
+
const [reducedNumerator, reducedDenominator] = reduceFraction(numerator, denominator);
|
|
54
|
+
return Object.freeze({ numerator: reducedNumerator, denominator: reducedDenominator });
|
|
55
|
+
}
|
|
56
|
+
export function midpointDecimal(min, max) {
|
|
57
|
+
const sum = addDecimal(min, max);
|
|
58
|
+
const midpoint = divideDecimal(sum, { coefficient: 2n, scale: 0 }, Math.max(min.scale, max.scale) + 1, 'toward-zero');
|
|
59
|
+
if (midpoint === null)
|
|
60
|
+
throw new Error('Internal invariant breach: midpoint division by two failed.');
|
|
61
|
+
return midpoint;
|
|
62
|
+
}
|
|
63
|
+
export function formatRatioPercentage(ratio, scale = DEFAULT_PERCENTAGE_SCALE) {
|
|
64
|
+
if (ratio.denominator <= 0n)
|
|
65
|
+
throw new RangeError('ratio denominator must be positive');
|
|
66
|
+
const scaleError = validateSafeCeiling(scale, 'precision');
|
|
67
|
+
if (scaleError !== null)
|
|
68
|
+
throw new RangeError(scaleError.message);
|
|
69
|
+
const percentage = divideDecimal({ coefficient: ratio.numerator * 100n, scale: 0 }, { coefficient: ratio.denominator, scale: 0 }, scale, 'half-even');
|
|
70
|
+
if (percentage === null)
|
|
71
|
+
throw new Error('Internal invariant breach: ratio percentage division failed.');
|
|
72
|
+
return decimalToString(percentage);
|
|
73
|
+
}
|
|
74
|
+
export function decimalInClosedRange(value, min, max) {
|
|
75
|
+
return compareDecimal(value, min) >= 0 && compareDecimal(value, max) <= 0;
|
|
76
|
+
}
|
|
77
|
+
export { addDecimal, compareDecimal, decimalToString, parseDecimal, subtractDecimal };
|
|
78
|
+
//# sourceMappingURL=bounded-scalar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bounded-scalar.js","sourceRoot":"","sources":["../../../src/internal/kernel/bounded-scalar.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,4 +19,3 @@ export declare function greatestCommonDivisor(left: bigint, right: bigint): bigi
|
|
|
19
19
|
export declare function reduceFraction(numerator: bigint, denominator: bigint): readonly [bigint, bigint];
|
|
20
20
|
export declare function floorFraction(numerator: bigint, denominator: bigint): bigint;
|
|
21
21
|
export declare function pow10(exponent: number): bigint;
|
|
22
|
-
//# sourceMappingURL=decimal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-ratio.js","sourceRoot":"","sources":["../../../src/internal/kernel/exact-ratio.ts"],"names":[],"mappings":""}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { type Result, type SectileError, type StableID } from '../../shared.js';
|
|
2
2
|
import type { CoreErrorCode } from '../../error-code.js';
|
|
3
|
+
import { failResult as fail, okResult as ok } from '../../result.js';
|
|
4
|
+
export { fail, ok };
|
|
3
5
|
type SafeCeilingName = 'columnCount' | 'count' | 'itemsPerPage' | 'maxCells' | 'maxCodeUnits' | 'maxColumns' | 'maxCount' | 'maxDecimalCodeUnits' | 'maxDepth' | 'maxExponent' | 'maxIDCodeUnits' | 'maxItems' | 'maxOperations' | 'maxRows' | 'maxScale' | 'maxTokens' | 'precision' | 'siblingCount' | 'total';
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
6
|
+
export declare function bindCanonicalState<State extends object>(owner: object, state: State): State;
|
|
7
|
+
export declare function hasCanonicalState(owner: object, state: object): boolean;
|
|
8
|
+
export declare function memoizeWeak<Key extends object, Value>(cache: WeakMap<Key, Value>, key: Key, create: (key: Key) => Value): Value;
|
|
9
|
+
export declare function memoizeWeakPair<Owner extends object, Key extends object, Value>(cache: WeakMap<Owner, WeakMap<Key, Value>>, owner: Owner, key: Key, create: (owner: Owner, key: Key) => Value): Value;
|
|
10
|
+
export declare function resourceError<Code extends string = CoreErrorCode>(code: Code, message: string, details?: Readonly<Record<string, unknown>>): SectileError<Code>;
|
|
7
11
|
export declare function isWellFormedUTF16(value: string): boolean;
|
|
8
12
|
export declare function validateStableID(id: string, maxIDCodeUnits?: number): SectileError | null;
|
|
9
13
|
export declare function validateSafeCeiling(value: number, name: SafeCeilingName, minimum?: number): SectileError | null;
|
|
10
14
|
export declare function normalizeMaxScan(maxScan: number | undefined): number | SectileError;
|
|
11
15
|
export declare function freezeArray<T>(values: readonly T[]): readonly T[];
|
|
12
16
|
export declare function assertNever(value: never): never;
|
|
13
|
-
export declare function validateUniqueIDs<ID extends StableID>(ids: readonly ID[], maxIDCodeUnits: number): Result<readonly ID[]>;
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=foundation.d.ts.map
|
|
17
|
+
export declare function validateUniqueIDs<ID extends StableID>(ids: readonly ID[], maxIDCodeUnits: number, indexByID?: Map<ID, number>): Result<readonly ID[]>;
|