@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
package/dist/structures/tree.js
DELETED
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_MAX_ID_CODE_UNITS, } from '../shared.js';
|
|
2
|
-
import { fail, freezeArray, ok, validateSafeCeiling, validateStableID, } from '../internal/kernel/foundation.js';
|
|
3
|
-
import { IndexedSequence } from '../internal/kernel/indexed-sequence.js';
|
|
4
|
-
class NormalizedExpansion {
|
|
5
|
-
ids;
|
|
6
|
-
#set;
|
|
7
|
-
constructor(ids) {
|
|
8
|
-
this.ids = freezeArray(ids);
|
|
9
|
-
this.#set = new Set(ids);
|
|
10
|
-
Object.freeze(this);
|
|
11
|
-
}
|
|
12
|
-
get size() {
|
|
13
|
-
return this.ids.length;
|
|
14
|
-
}
|
|
15
|
-
has(id) {
|
|
16
|
-
return this.#set.has(id);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
class IndexedTree {
|
|
20
|
-
size;
|
|
21
|
-
roots;
|
|
22
|
-
#parent;
|
|
23
|
-
#children;
|
|
24
|
-
#depth;
|
|
25
|
-
#preorder;
|
|
26
|
-
#postorder;
|
|
27
|
-
constructor(roots, parent, children, depth, preorder, postorder) {
|
|
28
|
-
this.size = preorder.length;
|
|
29
|
-
this.roots = new IndexedSequence(roots);
|
|
30
|
-
this.#parent = parent;
|
|
31
|
-
this.#children = children;
|
|
32
|
-
this.#depth = depth;
|
|
33
|
-
this.#preorder = freezeArray(preorder);
|
|
34
|
-
this.#postorder = freezeArray(postorder);
|
|
35
|
-
Object.freeze(this);
|
|
36
|
-
}
|
|
37
|
-
has(id) {
|
|
38
|
-
return this.#parent.has(id);
|
|
39
|
-
}
|
|
40
|
-
parentOf(id) {
|
|
41
|
-
return this.#parent.get(id) ?? null;
|
|
42
|
-
}
|
|
43
|
-
childrenOf(id) {
|
|
44
|
-
const children = this.#children.get(id);
|
|
45
|
-
return children === undefined ? null : new IndexedSequence(children);
|
|
46
|
-
}
|
|
47
|
-
isLeaf(id) {
|
|
48
|
-
const children = this.#children.get(id);
|
|
49
|
-
return children === undefined ? null : children.length === 0;
|
|
50
|
-
}
|
|
51
|
-
depthOf(id) {
|
|
52
|
-
return this.#depth.get(id) ?? null;
|
|
53
|
-
}
|
|
54
|
-
ancestorsOf(id) {
|
|
55
|
-
if (!this.#parent.has(id))
|
|
56
|
-
return null;
|
|
57
|
-
const result = [];
|
|
58
|
-
let current = this.#parent.get(id) ?? null;
|
|
59
|
-
while (current !== null) {
|
|
60
|
-
result.push(current);
|
|
61
|
-
current = this.#parent.get(current) ?? null;
|
|
62
|
-
}
|
|
63
|
-
return freezeArray(result);
|
|
64
|
-
}
|
|
65
|
-
preorder() {
|
|
66
|
-
return new IndexedSequence(this.#preorder);
|
|
67
|
-
}
|
|
68
|
-
postorder() {
|
|
69
|
-
return new IndexedSequence(this.#postorder);
|
|
70
|
-
}
|
|
71
|
-
normalizeExpansion(expanded) {
|
|
72
|
-
const requested = new Set(expanded);
|
|
73
|
-
const normalized = this.#preorder.filter((id) => requested.has(id) && (this.#children.get(id)?.length ?? 0) > 0);
|
|
74
|
-
return new NormalizedExpansion(normalized);
|
|
75
|
-
}
|
|
76
|
-
visible(expansion) {
|
|
77
|
-
const normalized = expansion instanceof NormalizedExpansion
|
|
78
|
-
? expansion
|
|
79
|
-
: this.normalizeExpansion(isExpansion(expansion) ? expansion.ids : expansion);
|
|
80
|
-
const result = [];
|
|
81
|
-
const stack = [...this.roots.ids].reverse();
|
|
82
|
-
while (stack.length > 0) {
|
|
83
|
-
const id = stack.pop();
|
|
84
|
-
if (id === undefined)
|
|
85
|
-
continue;
|
|
86
|
-
result.push(id);
|
|
87
|
-
if (!normalized.has(id))
|
|
88
|
-
continue;
|
|
89
|
-
const children = this.#children.get(id) ?? [];
|
|
90
|
-
for (let index = children.length - 1; index >= 0; index -= 1) {
|
|
91
|
-
const child = children[index];
|
|
92
|
-
if (child !== undefined)
|
|
93
|
-
stack.push(child);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return new IndexedSequence(result);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
export function createTree(nodes, options = {}) {
|
|
100
|
-
const maxItems = options.maxItems ?? 100_000;
|
|
101
|
-
const maxDepth = options.maxDepth ?? 1_024;
|
|
102
|
-
const maxIDCodeUnits = options.maxIDCodeUnits ?? DEFAULT_MAX_ID_CODE_UNITS;
|
|
103
|
-
for (const [value, name] of [
|
|
104
|
-
[maxItems, 'maxItems'],
|
|
105
|
-
[maxDepth, 'maxDepth'],
|
|
106
|
-
[maxIDCodeUnits, 'maxIDCodeUnits'],
|
|
107
|
-
]) {
|
|
108
|
-
const error = validateSafeCeiling(value, name);
|
|
109
|
-
if (error !== null)
|
|
110
|
-
return { ok: false, error };
|
|
111
|
-
}
|
|
112
|
-
if (maxIDCodeUnits < 1) {
|
|
113
|
-
return fail('construction', 'invalid-max-id-code-units', 'maxIDCodeUnits must be a positive safe integer.', { maxIDCodeUnits });
|
|
114
|
-
}
|
|
115
|
-
if (nodes.length > maxItems) {
|
|
116
|
-
return fail('resource-rejection', 'item-ceiling-exceeded', 'Tree exceeds maxItems.', {
|
|
117
|
-
size: nodes.length,
|
|
118
|
-
maxItems,
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
const parent = new Map();
|
|
122
|
-
const ids = [];
|
|
123
|
-
for (let index = 0; index < nodes.length; index += 1) {
|
|
124
|
-
const node = nodes[index];
|
|
125
|
-
if (node === undefined) {
|
|
126
|
-
return fail('construction', 'invalid-node', 'Tree input must not contain sparse or missing nodes.', { index });
|
|
127
|
-
}
|
|
128
|
-
const idError = validateStableID(node.id, maxIDCodeUnits);
|
|
129
|
-
if (idError !== null)
|
|
130
|
-
return { ok: false, error: idError };
|
|
131
|
-
if (parent.has(node.id)) {
|
|
132
|
-
return fail('construction', 'duplicate-id', 'Tree identities must be unique.', {
|
|
133
|
-
id: node.id,
|
|
134
|
-
index,
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
if (node.parentID === node.id) {
|
|
138
|
-
return fail('construction', 'self-parent', 'A tree node cannot be its own parent.', {
|
|
139
|
-
id: node.id,
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
parent.set(node.id, node.parentID);
|
|
143
|
-
ids.push(node.id);
|
|
144
|
-
}
|
|
145
|
-
for (const id of ids) {
|
|
146
|
-
const parentID = parent.get(id) ?? null;
|
|
147
|
-
if (parentID !== null && !parent.has(parentID)) {
|
|
148
|
-
return fail('construction', 'missing-parent', 'Every non-root parent must exist.', {
|
|
149
|
-
id,
|
|
150
|
-
parentID,
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
const childrenMutable = new Map();
|
|
155
|
-
for (const id of ids)
|
|
156
|
-
childrenMutable.set(id, []);
|
|
157
|
-
const roots = [];
|
|
158
|
-
for (const id of ids) {
|
|
159
|
-
const parentID = parent.get(id) ?? null;
|
|
160
|
-
if (parentID === null)
|
|
161
|
-
roots.push(id);
|
|
162
|
-
else
|
|
163
|
-
childrenMutable.get(parentID)?.push(id);
|
|
164
|
-
}
|
|
165
|
-
const marks = new Map();
|
|
166
|
-
const depth = new Map();
|
|
167
|
-
const preorder = [];
|
|
168
|
-
const postorder = [];
|
|
169
|
-
for (const root of roots) {
|
|
170
|
-
const stack = [{ id: root, depth: 0, nextChild: 0 }];
|
|
171
|
-
while (stack.length > 0) {
|
|
172
|
-
const frame = stack[stack.length - 1];
|
|
173
|
-
if (frame === undefined)
|
|
174
|
-
break;
|
|
175
|
-
if (frame.nextChild === 0) {
|
|
176
|
-
const mark = marks.get(frame.id) ?? 0;
|
|
177
|
-
if (mark === 1) {
|
|
178
|
-
return fail('construction', 'cycle', 'Tree parent relation must be acyclic.', {
|
|
179
|
-
id: frame.id,
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
if (mark === 2) {
|
|
183
|
-
stack.pop();
|
|
184
|
-
continue;
|
|
185
|
-
}
|
|
186
|
-
if (frame.depth > maxDepth) {
|
|
187
|
-
return fail('resource-rejection', 'depth-ceiling-exceeded', 'Tree exceeds maxDepth.', {
|
|
188
|
-
id: frame.id,
|
|
189
|
-
depth: frame.depth,
|
|
190
|
-
maxDepth,
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
marks.set(frame.id, 1);
|
|
194
|
-
depth.set(frame.id, frame.depth);
|
|
195
|
-
preorder.push(frame.id);
|
|
196
|
-
}
|
|
197
|
-
const children = childrenMutable.get(frame.id) ?? [];
|
|
198
|
-
const child = children[frame.nextChild];
|
|
199
|
-
if (child !== undefined) {
|
|
200
|
-
frame.nextChild += 1;
|
|
201
|
-
const childMark = marks.get(child) ?? 0;
|
|
202
|
-
if (childMark === 1) {
|
|
203
|
-
return fail('construction', 'cycle', 'Tree parent relation must be acyclic.', {
|
|
204
|
-
id: child,
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
if (childMark === 0) {
|
|
208
|
-
stack.push({ id: child, depth: frame.depth + 1, nextChild: 0 });
|
|
209
|
-
}
|
|
210
|
-
continue;
|
|
211
|
-
}
|
|
212
|
-
marks.set(frame.id, 2);
|
|
213
|
-
postorder.push(frame.id);
|
|
214
|
-
stack.pop();
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
if (preorder.length !== ids.length) {
|
|
218
|
-
const unvisited = ids.find((id) => (marks.get(id) ?? 0) !== 2);
|
|
219
|
-
return fail('construction', 'cycle', 'Every tree node must be reachable from a root.', {
|
|
220
|
-
...(unvisited === undefined ? {} : { id: unvisited }),
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
const children = new Map();
|
|
224
|
-
for (const [id, values] of childrenMutable)
|
|
225
|
-
children.set(id, freezeArray(values));
|
|
226
|
-
return ok(new IndexedTree(roots, parent, children, depth, preorder, postorder));
|
|
227
|
-
}
|
|
228
|
-
function isExpansion(value) {
|
|
229
|
-
return (typeof value === 'object' &&
|
|
230
|
-
value !== null &&
|
|
231
|
-
'ids' in value &&
|
|
232
|
-
Array.isArray(value.ids));
|
|
233
|
-
}
|
|
234
|
-
//# sourceMappingURL=tree.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/structures/tree.ts"],"names":[],"mappings":"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"}
|
package/dist/switch.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Result } from './shared.js';
|
|
2
|
-
import { type CheckedState } from './internal/state/checked.js';
|
|
3
|
-
export type SwitchState = CheckedState & {
|
|
4
|
-
readonly checked: boolean;
|
|
5
|
-
};
|
|
6
|
-
export type SwitchEvent = 'toggle' | {
|
|
7
|
-
readonly type: 'set-checked';
|
|
8
|
-
readonly checked: boolean;
|
|
9
|
-
};
|
|
10
|
-
export type SwitchCommand = {
|
|
11
|
-
readonly type: 'checked-changed';
|
|
12
|
-
readonly checked: boolean;
|
|
13
|
-
};
|
|
14
|
-
export interface SwitchUpdate {
|
|
15
|
-
readonly state: SwitchState;
|
|
16
|
-
readonly commands: readonly SwitchCommand[];
|
|
17
|
-
}
|
|
18
|
-
export declare function createSwitchState(checked?: boolean): Result<SwitchState>;
|
|
19
|
-
export declare function applySwitchEvent(state: SwitchState, event: SwitchEvent): Result<SwitchUpdate>;
|
|
20
|
-
//# sourceMappingURL=switch.d.ts.map
|
package/dist/switch.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../src/switch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAyC,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACvG,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AACvE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AACjG,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAC5F,MAAM,WAAW,YAAY;IAAG,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE;AAC1G,wBAAgB,iBAAiB,CAAC,OAAO,UAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAsF;AAC7J,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,CAA2F"}
|
package/dist/switch.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { applyCheckedEvent, createCheckedState } from './internal/state/checked.js';
|
|
2
|
-
export function createSwitchState(checked = false) { return createCheckedState(checked, { allowMixed: false }); }
|
|
3
|
-
export function applySwitchEvent(state, event) { return applyCheckedEvent(state, event, { allowMixed: false }); }
|
|
4
|
-
//# sourceMappingURL=switch.js.map
|
package/dist/switch.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switch.js","sourceRoot":"","sources":["../src/switch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAqB,MAAM,6BAA6B,CAAC;AAKvG,MAAM,UAAU,iBAAiB,CAAC,OAAO,GAAG,KAAK,IAAyB,OAAO,kBAAkB,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAwB,CAAC,CAAC,CAAC;AAC7J,MAAM,UAAU,gBAAgB,CAAC,KAAkB,EAAE,KAAkB,IAA0B,OAAO,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAyB,CAAC,CAAC,CAAC"}
|
package/dist/tabs.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { Result, StableID } from './shared.js';
|
|
2
|
-
import type { Sequence } from './structures/sequence.js';
|
|
3
|
-
import { type LinearChoiceCommand, type LinearChoiceEvent, type LinearChoicePolicies, type LinearChoiceState, type LinearChoiceStateInput, type LinearChoiceUpdate } from './internal/composites/linear-choice.js';
|
|
4
|
-
export type TabsActivationMode = 'manual' | 'automatic';
|
|
5
|
-
export type TabsEvent<ID extends StableID = StableID> = LinearChoiceEvent<ID>;
|
|
6
|
-
export type TabsCommand<ID extends StableID = StableID> = LinearChoiceCommand<ID>;
|
|
7
|
-
export type TabsState<ID extends StableID = StableID> = LinearChoiceState<ID>;
|
|
8
|
-
export type TabsStateInput<ID extends StableID = StableID> = LinearChoiceStateInput<ID>;
|
|
9
|
-
export type TabsUpdate<ID extends StableID = StableID> = LinearChoiceUpdate<ID>;
|
|
10
|
-
export interface TabsPolicies<ID extends StableID = StableID> extends Omit<LinearChoicePolicies<ID>, 'selectionFollowsFocus'> {
|
|
11
|
-
readonly activation?: TabsActivationMode;
|
|
12
|
-
}
|
|
13
|
-
export declare function createTabsState<ID extends StableID>(domain: Sequence<ID>, input?: TabsStateInput<ID>): Result<TabsState<ID>>;
|
|
14
|
-
export declare function applyTabsEvent<ID extends StableID>(domain: Sequence<ID>, state: TabsState<ID>, event: TabsEvent<ID>, policies?: TabsPolicies<ID>): Result<TabsUpdate<ID>>;
|
|
15
|
-
//# sourceMappingURL=tabs.d.ts.map
|
package/dist/tabs.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../src/tabs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACxB,MAAM,wCAAwC,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,WAAW,CAAC;AACxD,MAAM,MAAM,SAAS,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC9E,MAAM,MAAM,WAAW,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC;AAClF,MAAM,MAAM,SAAS,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC9E,MAAM,MAAM,cAAc,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ,IAAI,sBAAsB,CAAC,EAAE,CAAC,CAAC;AACxF,MAAM,MAAM,UAAU,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAEhF,MAAM,WAAW,YAAY,CAAC,EAAE,SAAS,QAAQ,GAAG,QAAQ,CAC1D,SAAQ,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,uBAAuB,CAAC;IAC/D,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,QAAQ,EACjD,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,EACpB,KAAK,GAAE,cAAc,CAAC,EAAE,CAAM,GAC7B,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAEvB;AAED,wBAAgB,cAAc,CAAC,EAAE,SAAS,QAAQ,EAChD,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,EACpB,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EACpB,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EACpB,QAAQ,GAAE,YAAY,CAAC,EAAE,CAAM,GAC9B,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAiBxB"}
|
package/dist/tabs.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { applyLinearChoiceEvent, createLinearChoiceState, } from './internal/composites/linear-choice.js';
|
|
2
|
-
export function createTabsState(domain, input = {}) {
|
|
3
|
-
return createLinearChoiceState(domain, input);
|
|
4
|
-
}
|
|
5
|
-
export function applyTabsEvent(domain, state, event, policies = {}) {
|
|
6
|
-
const activation = policies.activation ?? 'manual';
|
|
7
|
-
if (activation !== 'manual' && activation !== 'automatic') {
|
|
8
|
-
return {
|
|
9
|
-
ok: false,
|
|
10
|
-
error: {
|
|
11
|
-
class: 'transition-rejection',
|
|
12
|
-
code: 'invalid-tabs-activation',
|
|
13
|
-
message: 'Tabs activation must be manual or automatic.',
|
|
14
|
-
details: { activation },
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
return applyLinearChoiceEvent(domain, state, event, {
|
|
19
|
-
...policies,
|
|
20
|
-
selectionFollowsFocus: activation === 'automatic',
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=tabs.js.map
|
package/dist/tabs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../src/tabs.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GAOxB,MAAM,wCAAwC,CAAC;AAchD,MAAM,UAAU,eAAe,CAC7B,MAAoB,EACpB,KAAK,GAAuB,EAAE;IAE9B,OAAO,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAoB,EACpB,KAAoB,EACpB,KAAoB,EACpB,QAAQ,GAAqB,EAAE;IAE/B,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC;IACnD,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QAC1D,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,KAAK,EAAE,sBAAsB;gBAC7B,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE,8CAA8C;gBACvD,OAAO,EAAE,EAAE,UAAU,EAAE;aACxB;SACF,CAAC;IACJ,CAAC;IACD,OAAO,sBAAsB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;QAClD,GAAG,QAAQ;QACX,qBAAqB,EAAE,UAAU,KAAK,WAAW;KAClD,CAAC,CAAC;AACL,CAAC"}
|
package/dist/tags-input.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import type { Result } from './shared.js';
|
|
2
|
-
export interface TagsInputState {
|
|
3
|
-
readonly tags: readonly string[];
|
|
4
|
-
readonly draft: string;
|
|
5
|
-
readonly current: number | null;
|
|
6
|
-
}
|
|
7
|
-
export type TagsInputEvent = {
|
|
8
|
-
readonly type: 'input';
|
|
9
|
-
readonly value: string;
|
|
10
|
-
} | {
|
|
11
|
-
readonly type: 'add';
|
|
12
|
-
readonly value?: string;
|
|
13
|
-
} | {
|
|
14
|
-
readonly type: 'remove';
|
|
15
|
-
readonly index: number;
|
|
16
|
-
} | 'remove-current' | 'next' | 'previous' | 'focus-input' | {
|
|
17
|
-
readonly type: 'focus-tag';
|
|
18
|
-
readonly index: number;
|
|
19
|
-
};
|
|
20
|
-
export type TagsInputCommand = {
|
|
21
|
-
readonly type: 'focus-tag';
|
|
22
|
-
readonly index: number;
|
|
23
|
-
} | {
|
|
24
|
-
readonly type: 'focus-input';
|
|
25
|
-
} | {
|
|
26
|
-
readonly type: 'announce-tag';
|
|
27
|
-
readonly action: 'added' | 'removed';
|
|
28
|
-
readonly value: string;
|
|
29
|
-
};
|
|
30
|
-
export interface TagsInputPolicies {
|
|
31
|
-
readonly maxTags?: number;
|
|
32
|
-
readonly normalize?: (value: string) => string;
|
|
33
|
-
readonly allowDuplicate?: boolean;
|
|
34
|
-
}
|
|
35
|
-
export interface TagsInputUpdate {
|
|
36
|
-
readonly state: TagsInputState;
|
|
37
|
-
readonly commands: readonly TagsInputCommand[];
|
|
38
|
-
}
|
|
39
|
-
export declare function createTagsInputState(tags?: readonly string[], draft?: string, current?: number | null): Result<TagsInputState>;
|
|
40
|
-
export declare function applyTagsInputEvent(state: TagsInputState, event: TagsInputEvent, policies?: TagsInputPolicies): Result<TagsInputUpdate>;
|
|
41
|
-
//# sourceMappingURL=tags-input.d.ts.map
|
package/dist/tags-input.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tags-input.d.ts","sourceRoot":"","sources":["../src/tags-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,MAAM,WAAW,cAAc;IAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE;AAC7H,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,gBAAgB,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5S,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC3N,MAAM,WAAW,iBAAiB;IAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE;AACnJ,MAAM,WAAW,eAAe;IAAG,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAA;CAAE;AAEnH,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,SAAS,MAAM,EAAO,EAAE,KAAK,SAAK,EAAE,OAAO,GAAE,MAAM,GAAG,IAAW,GAAG,MAAM,CAAC,cAAc,CAAC,CAIpI;AACD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,GAAE,iBAAsB,GAAG,MAAM,CAAC,eAAe,CAAC,CAa3I"}
|
package/dist/tags-input.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { fail, freezeArray, ok } from './internal/kernel/foundation.js';
|
|
2
|
-
import { createMachineUpdate } from './internal/kernel/machine.js';
|
|
3
|
-
export function createTagsInputState(tags = [], draft = '', current = null) {
|
|
4
|
-
if (!Array.isArray(tags) || tags.some((tag) => typeof tag !== 'string' || tag.length === 0) || typeof draft !== 'string')
|
|
5
|
-
return fail('construction', 'invalid-tags-input-value', 'Tags input requires non-empty text tags and a text draft.');
|
|
6
|
-
if (current !== null && (!Number.isSafeInteger(current) || current < 0 || current >= tags.length))
|
|
7
|
-
return fail('construction', 'invalid-tags-input-current', 'Tags input current index must identify an existing tag.');
|
|
8
|
-
return ok(Object.freeze({ tags: freezeArray(tags), draft, current }));
|
|
9
|
-
}
|
|
10
|
-
export function applyTagsInputEvent(state, event, policies = {}) {
|
|
11
|
-
const valid = createTagsInputState(state.tags, state.draft, state.current);
|
|
12
|
-
if (!valid.ok)
|
|
13
|
-
return { ok: false, error: { ...valid.error, class: 'transition-rejection' } };
|
|
14
|
-
const focus = (current) => createMachineUpdate(Object.freeze({ tags: state.tags, draft: state.draft, current }), [current === null ? { type: 'focus-input' } : { type: 'focus-tag', index: current }]);
|
|
15
|
-
if (event === 'focus-input')
|
|
16
|
-
return focus(null);
|
|
17
|
-
if (event === 'next')
|
|
18
|
-
return focus(state.current === null || state.current >= state.tags.length - 1 ? null : state.current + 1);
|
|
19
|
-
if (event === 'previous')
|
|
20
|
-
return focus(state.tags.length === 0 ? null : state.current === null ? state.tags.length - 1 : Math.max(0, state.current - 1));
|
|
21
|
-
if (typeof event === 'object' && event.type === 'focus-tag')
|
|
22
|
-
return event.index >= 0 && event.index < state.tags.length ? focus(event.index) : fail('transition-rejection', 'tags-input-index-outside-domain', 'Tags input focus index must identify an existing tag.');
|
|
23
|
-
if (typeof event === 'object' && event.type === 'input')
|
|
24
|
-
return typeof event.value === 'string' ? createMachineUpdate(Object.freeze({ tags: state.tags, draft: event.value, current: null })) : fail('transition-rejection', 'invalid-tags-input-draft', 'Tags input draft must be text.');
|
|
25
|
-
if (typeof event === 'object' && event.type === 'add') {
|
|
26
|
-
const normalize = policies.normalize ?? ((value) => value.trim());
|
|
27
|
-
const value = normalize(event.value ?? state.draft);
|
|
28
|
-
if (value.length === 0)
|
|
29
|
-
return fail('transition-rejection', 'empty-tag', 'Tags input cannot add an empty tag.');
|
|
30
|
-
if (policies.allowDuplicate !== true && state.tags.includes(value))
|
|
31
|
-
return fail('transition-rejection', 'duplicate-tag', 'Tags input does not allow duplicate tags by default.', { value });
|
|
32
|
-
if (policies.maxTags !== undefined && state.tags.length >= policies.maxTags)
|
|
33
|
-
return fail('resource-rejection', 'max-tags-exceeded', 'Tags input reached its configured tag ceiling.', { maxTags: policies.maxTags });
|
|
34
|
-
return createMachineUpdate(Object.freeze({ tags: freezeArray([...state.tags, value]), draft: '', current: null }), [{ type: 'announce-tag', action: 'added', value }]);
|
|
35
|
-
}
|
|
36
|
-
const index = event === 'remove-current' ? state.current : typeof event === 'object' && event.type === 'remove' ? event.index : null;
|
|
37
|
-
if (index === null || index < 0 || index >= state.tags.length)
|
|
38
|
-
return fail('transition-rejection', 'tags-input-index-outside-domain', 'Tags input removal requires an existing tag.');
|
|
39
|
-
const value = state.tags[index] ?? '';
|
|
40
|
-
const tags = state.tags.filter((_, candidate) => candidate !== index);
|
|
41
|
-
const current = tags.length === 0 ? null : Math.min(index, tags.length - 1);
|
|
42
|
-
return createMachineUpdate(Object.freeze({ tags: freezeArray(tags), draft: state.draft, current }), [{ type: 'announce-tag', action: 'removed', value }, ...(current === null ? [{ type: 'focus-input' }] : [{ type: 'focus-tag', index: current }])]);
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=tags-input.js.map
|
package/dist/tags-input.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tags-input.js","sourceRoot":"","sources":["../src/tags-input.ts"],"names":[],"mappings":"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"}
|
package/dist/text.d.ts
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { applyTextEvent, cancelTextComposition, commitTextComposition, createTextEditingState, createTextSnapshot, isTextCodeUnitBoundary, isWellFormedPlainText, normalizeTextEditingState, replacePlainText, replaceTextState, slicePlainText, startTextComposition, updateTextComposition, type TextComposition, type TextEditingState, type TextEvent, type TextSelection, type TextSelectionDirection, type TextSelectionInput, type TextSnapshot, type TextUpdate, } from './internal/editing/text.js';
|
|
2
|
-
//# sourceMappingURL=text.d.ts.map
|
package/dist/text.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,4BAA4B,CAAC"}
|
package/dist/text.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { applyTextEvent, cancelTextComposition, commitTextComposition, createTextEditingState, createTextSnapshot, isTextCodeUnitBoundary, isWellFormedPlainText, normalizeTextEditingState, replacePlainText, replaceTextState, slicePlainText, startTextComposition, updateTextComposition, } from './internal/editing/text.js';
|
|
2
|
-
//# sourceMappingURL=text.js.map
|
package/dist/text.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,GAStB,MAAM,4BAA4B,CAAC"}
|
package/dist/time-field.d.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import type { Result } from './shared.js';
|
|
2
|
-
import { type TextEditingState, type TextEvent } from './text.js';
|
|
3
|
-
export interface TimeValue {
|
|
4
|
-
readonly hour: number;
|
|
5
|
-
readonly minute: number;
|
|
6
|
-
readonly second: number;
|
|
7
|
-
readonly millisecond: number;
|
|
8
|
-
}
|
|
9
|
-
export type TimeSegment = 'hour' | 'minute' | 'second' | 'millisecond';
|
|
10
|
-
export interface TimeFieldState {
|
|
11
|
-
readonly value: TimeValue | null;
|
|
12
|
-
readonly inputState: TextEditingState;
|
|
13
|
-
}
|
|
14
|
-
export type TimeFieldEvent = {
|
|
15
|
-
readonly type: 'text';
|
|
16
|
-
readonly event: TextEvent;
|
|
17
|
-
} | {
|
|
18
|
-
readonly type: 'set-value';
|
|
19
|
-
readonly value: TimeValue | null;
|
|
20
|
-
} | 'increment-segment' | 'decrement-segment' | 'commit' | 'cancel';
|
|
21
|
-
export type TimeFieldCommand = {
|
|
22
|
-
readonly type: 'input-state-changed';
|
|
23
|
-
readonly value: TextEditingState;
|
|
24
|
-
} | {
|
|
25
|
-
readonly type: 'value-committed';
|
|
26
|
-
readonly value: TimeValue | null;
|
|
27
|
-
};
|
|
28
|
-
export interface TimeFieldPolicies {
|
|
29
|
-
readonly min?: TimeValue;
|
|
30
|
-
readonly max?: TimeValue;
|
|
31
|
-
readonly required?: boolean;
|
|
32
|
-
readonly step?: Partial<Record<TimeSegment, number>>;
|
|
33
|
-
}
|
|
34
|
-
export interface TimeFieldUpdate {
|
|
35
|
-
readonly state: TimeFieldState;
|
|
36
|
-
readonly commands: readonly TimeFieldCommand[];
|
|
37
|
-
}
|
|
38
|
-
export declare function createTimeValue(hour: number, minute?: number, second?: number, millisecond?: number): Result<TimeValue>;
|
|
39
|
-
export declare function parseTimeValue(text: string): Result<TimeValue>;
|
|
40
|
-
export declare function formatTimeValue(value: TimeValue): string;
|
|
41
|
-
export declare function compareTimeValues(left: TimeValue, right: TimeValue): -1 | 0 | 1;
|
|
42
|
-
export declare function addTimeMilliseconds(value: TimeValue, amount: number): Result<TimeValue>;
|
|
43
|
-
export declare function createTimeFieldState(value?: TimeValue | null, inputState?: TextEditingState): Result<TimeFieldState>;
|
|
44
|
-
export declare function applyTimeFieldEvent(state: TimeFieldState, event: TimeFieldEvent, policies?: TimeFieldPolicies): Result<TimeFieldUpdate>;
|
|
45
|
-
export declare function timeSegmentAt(offset: number): TimeSegment;
|
|
46
|
-
//# sourceMappingURL=time-field.d.ts.map
|
package/dist/time-field.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"time-field.d.ts","sourceRoot":"","sources":["../src/time-field.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAqE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAErI,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;AAEvE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;CACvC;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,GAChE,mBAAmB,GACnB,mBAAmB,GACnB,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,MAAM,gBAAgB,GACxB;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,SAAS,GAAG,IAAI,CAAA;CAAE,CAAC;AAE3E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAChD;AAID,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAI,EAAE,MAAM,SAAI,EAAE,WAAW,SAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAOxG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAK9D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAIxD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAI/E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAQvF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,GAAE,SAAS,GAAG,IAAW,EAAE,UAAU,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAAC,CAO1H;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,GAAE,iBAAsB,GAAG,MAAM,CAAC,eAAe,CAAC,CAkC3I;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAEzD"}
|