@sectile/core 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +28 -3
- package/dist/internal/kernel/indexed-sequence.js +162 -12
- 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 +0 -1
- package/dist/structures/sequence.js +69 -7
- 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
package/dist/progress.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { unwrap } from './result.js';
|
|
2
|
+
import { boundedRatio, compareDecimal, decimalInClosedRange, DEFAULT_SCALAR_MAX, parseDecimal, tryParseBoundedScalar, } from './internal/kernel/bounded-scalar.js';
|
|
3
|
+
import { fail, ok } from './internal/kernel/foundation.js';
|
|
4
|
+
export function createProgressState(input = {}) {
|
|
5
|
+
return unwrap(tryCreateProgressState(input));
|
|
6
|
+
}
|
|
7
|
+
export function tryCreateProgressState(input = {}) {
|
|
8
|
+
const maxInput = input.max ?? DEFAULT_SCALAR_MAX;
|
|
9
|
+
const ceilings = {
|
|
10
|
+
...(input.maxDecimalCodeUnits === undefined ? {} : { maxDecimalCodeUnits: input.maxDecimalCodeUnits }),
|
|
11
|
+
...(input.maxScale === undefined ? {} : { maxScale: input.maxScale }),
|
|
12
|
+
};
|
|
13
|
+
const maximum = tryParseBoundedScalar({ min: maxInput, max: maxInput, value: maxInput }, ceilings);
|
|
14
|
+
if (!maximum.ok)
|
|
15
|
+
return maximum;
|
|
16
|
+
const zero = parseDecimal('0');
|
|
17
|
+
if (zero === null)
|
|
18
|
+
throw new Error('Internal invariant breach: zero decimal failed to parse.');
|
|
19
|
+
if (compareDecimal(maximum.value.value, zero) <= 0) {
|
|
20
|
+
return fail('construction', 'progress-maximum-not-positive', 'Progress max must be greater than zero.', {
|
|
21
|
+
max: maximum.value.canonicalValue,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
if (input.value === undefined || input.value === null) {
|
|
25
|
+
return ok(Object.freeze({
|
|
26
|
+
max: maximum.value.canonicalValue,
|
|
27
|
+
value: null,
|
|
28
|
+
ratio: null,
|
|
29
|
+
status: 'indeterminate',
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
const parsed = tryParseBoundedScalar({ min: '0', max: maximum.value.canonicalValue, value: input.value }, ceilings);
|
|
33
|
+
if (!parsed.ok)
|
|
34
|
+
return parsed;
|
|
35
|
+
if (!decimalInClosedRange(parsed.value.value, parsed.value.min, parsed.value.max)) {
|
|
36
|
+
return fail('construction', 'progress-value-outside-range', 'Progress value must be within zero and max.', {
|
|
37
|
+
max: parsed.value.canonicalMax,
|
|
38
|
+
value: parsed.value.canonicalValue,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
const ratio = boundedRatio(parsed.value.value, parsed.value.min, parsed.value.max);
|
|
42
|
+
return ok(Object.freeze({
|
|
43
|
+
max: parsed.value.canonicalMax,
|
|
44
|
+
value: parsed.value.canonicalValue,
|
|
45
|
+
ratio: Object.freeze({ numerator: ratio.numerator, denominator: ratio.denominator }),
|
|
46
|
+
status: compareDecimal(parsed.value.value, parsed.value.max) === 0 ? 'complete' : 'progressing',
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"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"}
|
package/dist/quantity-field.d.ts
CHANGED
|
@@ -56,4 +56,3 @@ export declare function createQuantityFieldState(policies: QuantityFieldPolicies
|
|
|
56
56
|
export declare function tryCreateQuantityFieldState(policies: QuantityFieldPolicies, quantity?: QuantityValue | null, displayUnit?: UnitID, inputState?: TextEditingState): Result<QuantityFieldState>;
|
|
57
57
|
export declare function applyQuantityFieldEvent(state: QuantityFieldState, event: QuantityFieldEvent, policies: QuantityFieldPolicies): Result<QuantityFieldUpdate>;
|
|
58
58
|
export declare function parseQuantityInput(input: string, options: QuantityInputParserOptions): Result<ParsedQuantityInput>;
|
|
59
|
-
//# sourceMappingURL=quantity-field.d.ts.map
|
package/dist/radio-group.d.ts
CHANGED
|
@@ -20,4 +20,3 @@ export type RadioGroupPolicies<ID extends StableID = StableID> = Omit<LinearChoi
|
|
|
20
20
|
export declare function createRadioGroupState<ID extends StableID>(domain: Sequence<ID>, input?: RadioGroupStateInput<ID>): RadioGroupState<ID>;
|
|
21
21
|
export declare function tryCreateRadioGroupState<ID extends StableID>(domain: Sequence<ID>, input?: RadioGroupStateInput<ID>): Result<RadioGroupState<ID>>;
|
|
22
22
|
export declare function applyRadioGroupEvent<ID extends StableID>(domain: Sequence<ID>, state: RadioGroupState<ID>, event: RadioGroupEvent<ID>, policies?: RadioGroupPolicies<ID>): Result<RadioGroupUpdate<ID>>;
|
|
23
|
-
//# sourceMappingURL=radio-group.d.ts.map
|
package/dist/rating.d.ts
CHANGED
|
@@ -15,4 +15,3 @@ export type RatingUpdate<ID extends StableID = StableID> = RadioGroupUpdate<ID>;
|
|
|
15
15
|
export declare function createRatingState<ID extends StableID>(domain: Sequence<ID>, value?: ID | null): RatingState<ID>;
|
|
16
16
|
export declare function tryCreateRatingState<ID extends StableID>(domain: Sequence<ID>, value?: ID | null): Result<RatingState<ID>>;
|
|
17
17
|
export declare function applyRatingEvent<ID extends StableID>(domain: Sequence<ID>, state: RatingState<ID>, event: RatingEvent<ID>, policies?: RatingPolicies<ID>): Result<RatingUpdate<ID>>;
|
|
18
|
-
//# sourceMappingURL=rating.d.ts.map
|
package/dist/reorder.d.ts
CHANGED
|
@@ -45,4 +45,3 @@ export declare function applySequenceReorderEvent<ID extends StableID>(state: Se
|
|
|
45
45
|
export declare function createTreeReorderState<ID extends StableID>(nodes: readonly TreeNodeInput<ID>[]): TreeReorderState<ID>;
|
|
46
46
|
export declare function tryCreateTreeReorderState<ID extends StableID>(nodes: readonly TreeNodeInput<ID>[]): Result<TreeReorderState<ID>>;
|
|
47
47
|
export declare function applyTreeReorderEvent<ID extends StableID>(state: TreeReorderState<ID>, event: TreeReorderEvent<ID>): Result<TreeReorderUpdate<ID>>;
|
|
48
|
-
//# sourceMappingURL=reorder.d.ts.map
|
package/dist/reorder.js
CHANGED
|
@@ -1,46 +1,58 @@
|
|
|
1
1
|
import { createMachineUpdate } from './internal/kernel/machine.js';
|
|
2
2
|
import { fail, ok } from './internal/kernel/foundation.js';
|
|
3
3
|
import { unwrap } from './result.js';
|
|
4
|
-
import { tryCreateSequence } from './structures/sequence.js';
|
|
4
|
+
import { applySequencePatch, tryCreateSequence, } from './structures/sequence.js';
|
|
5
5
|
import { tryCreateTree } from './structures/tree.js';
|
|
6
|
+
const sequenceReorderOwners = new WeakMap();
|
|
7
|
+
const treeReorderOwners = new WeakMap();
|
|
6
8
|
export function createSequenceReorderState(ids) {
|
|
7
9
|
return unwrap(tryCreateSequenceReorderState(ids));
|
|
8
10
|
}
|
|
9
11
|
export function tryCreateSequenceReorderState(ids) {
|
|
10
12
|
const sequence = tryCreateSequence(ids);
|
|
11
13
|
return sequence.ok
|
|
12
|
-
? ok(
|
|
14
|
+
? ok(sequenceReorderState(sequence.value))
|
|
13
15
|
: sequence;
|
|
14
16
|
}
|
|
15
17
|
export function applySequenceReorderEvent(state, event) {
|
|
16
|
-
|
|
17
|
-
if (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
let sequence = sequenceReorderOwners.get(state);
|
|
19
|
+
if (sequence === undefined) {
|
|
20
|
+
const valid = tryCreateSequenceReorderState(state.ids);
|
|
21
|
+
if (!valid.ok)
|
|
22
|
+
return transitionFailure(valid);
|
|
23
|
+
sequence = sequenceReorderOwners.get(valid.value);
|
|
24
|
+
}
|
|
25
|
+
const sourceIndex = sequence.indexOf(event.id);
|
|
26
|
+
if (sourceIndex === null)
|
|
21
27
|
return missingID(event.id);
|
|
22
28
|
if ((event.type === 'move-before' || event.type === 'move-after') && event.id === event.targetID) {
|
|
23
29
|
return createMachineUpdate(state);
|
|
24
30
|
}
|
|
25
|
-
const ids = state.ids.filter((id) => id !== event.id);
|
|
26
31
|
let destination;
|
|
27
32
|
if (event.type === 'move-to-start')
|
|
28
33
|
destination = 0;
|
|
29
34
|
else if (event.type === 'move-to-end')
|
|
30
|
-
destination =
|
|
35
|
+
destination = sequence.size - 1;
|
|
31
36
|
else {
|
|
32
|
-
const targetIndex =
|
|
33
|
-
if (targetIndex
|
|
37
|
+
const targetIndex = sequence.indexOf(event.targetID);
|
|
38
|
+
if (targetIndex === null)
|
|
34
39
|
return missingID(event.targetID);
|
|
35
|
-
|
|
40
|
+
const postRemovalTarget = targetIndex > sourceIndex ? targetIndex - 1 : targetIndex;
|
|
41
|
+
destination = postRemovalTarget + (event.type === 'move-after' ? 1 : 0);
|
|
36
42
|
}
|
|
37
|
-
|
|
38
|
-
|
|
43
|
+
const patch = Object.freeze({
|
|
44
|
+
type: 'move',
|
|
45
|
+
from: sourceIndex,
|
|
46
|
+
to: destination,
|
|
47
|
+
count: 1,
|
|
48
|
+
});
|
|
49
|
+
const nextSequence = applySequencePatch(sequence, patch);
|
|
50
|
+
if (nextSequence === sequence)
|
|
39
51
|
return createMachineUpdate(state);
|
|
40
|
-
const next =
|
|
52
|
+
const next = sequenceReorderState(nextSequence);
|
|
41
53
|
return createMachineUpdate(next, [{
|
|
42
54
|
type: 'sequence-order-changed',
|
|
43
|
-
patch
|
|
55
|
+
patch,
|
|
44
56
|
}]);
|
|
45
57
|
}
|
|
46
58
|
export function createTreeReorderState(nodes) {
|
|
@@ -50,61 +62,98 @@ export function tryCreateTreeReorderState(nodes) {
|
|
|
50
62
|
const tree = tryCreateTree(nodes);
|
|
51
63
|
if (!tree.ok)
|
|
52
64
|
return tree;
|
|
53
|
-
return ok(
|
|
65
|
+
return ok(treeReorderState(freezeNodes(nodes), tree.value));
|
|
54
66
|
}
|
|
55
67
|
export function applyTreeReorderEvent(state, event) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
68
|
+
let owner = treeReorderOwners.get(state);
|
|
69
|
+
let canonicalState = state;
|
|
70
|
+
if (owner === undefined) {
|
|
71
|
+
const valid = tryCreateTreeReorderState(state.nodes);
|
|
72
|
+
if (!valid.ok)
|
|
73
|
+
return transitionFailure(valid);
|
|
74
|
+
canonicalState = valid.value;
|
|
75
|
+
owner = treeReorderOwners.get(canonicalState);
|
|
76
|
+
}
|
|
77
|
+
const { tree, positions } = owner;
|
|
78
|
+
if (!tree.has(event.id))
|
|
60
79
|
return missingID(event.id);
|
|
61
|
-
if (event.parentID !== null && !tree.
|
|
80
|
+
if (event.parentID !== null && !tree.has(event.parentID))
|
|
62
81
|
return missingID(event.parentID);
|
|
63
|
-
if (event.parentID
|
|
64
|
-
|| (event.parentID !== null && tree.value.ancestorsOf(event.parentID)?.includes(event.id) === true)) {
|
|
82
|
+
if (event.parentID !== null && isWithinSubtree(tree, event.id, event.parentID)) {
|
|
65
83
|
return fail('transition-rejection', 'reorder-tree-cycle', 'A tree node cannot move below itself or one of its descendants.', { id: event.id, parentID: event.parentID });
|
|
66
84
|
}
|
|
67
85
|
const beforeID = event.beforeID ?? null;
|
|
68
86
|
if (beforeID === event.id)
|
|
69
87
|
return createMachineUpdate(state);
|
|
70
88
|
if (beforeID !== null
|
|
71
|
-
&& (!tree.
|
|
89
|
+
&& (!tree.has(beforeID) || tree.parentOf(beforeID) !== event.parentID)) {
|
|
72
90
|
return fail('transition-rejection', 'reorder-tree-sibling-invalid', 'beforeID must identify a sibling under the requested parent.', { beforeID, parentID: event.parentID });
|
|
73
91
|
}
|
|
74
|
-
const
|
|
75
|
-
const
|
|
92
|
+
const sourceIndex = positions.get(event.id);
|
|
93
|
+
const nodes = [...canonicalState.nodes];
|
|
94
|
+
nodes.splice(sourceIndex, 1);
|
|
76
95
|
let destination;
|
|
77
96
|
if (beforeID !== null) {
|
|
78
|
-
destination =
|
|
97
|
+
destination = postRemovalIndex(positions.get(beforeID), sourceIndex);
|
|
79
98
|
}
|
|
80
99
|
else {
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
100
|
+
const siblings = event.parentID === null ? tree.roots : tree.childrenOf(event.parentID);
|
|
101
|
+
let lastSibling = siblings.at(siblings.size - 1);
|
|
102
|
+
if (lastSibling === event.id)
|
|
103
|
+
lastSibling = siblings.at(siblings.size - 2);
|
|
104
|
+
if (lastSibling !== null) {
|
|
105
|
+
destination = postRemovalIndex(positions.get(lastSibling), sourceIndex) + 1;
|
|
106
|
+
}
|
|
107
|
+
else if (event.parentID === null) {
|
|
108
|
+
destination = nodes.length;
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
destination = postRemovalIndex(positions.get(event.parentID), sourceIndex) + 1;
|
|
112
|
+
}
|
|
88
113
|
}
|
|
89
|
-
|
|
90
|
-
|
|
114
|
+
if (destination === sourceIndex && tree.parentOf(event.id) === event.parentID) {
|
|
115
|
+
return createMachineUpdate(state);
|
|
116
|
+
}
|
|
117
|
+
nodes.splice(destination, 0, Object.freeze({ id: event.id, parentID: event.parentID }));
|
|
118
|
+
Object.freeze(nodes);
|
|
91
119
|
const nextTree = tryCreateTree(nodes);
|
|
92
120
|
if (!nextTree.ok)
|
|
93
121
|
return transitionFailure(nextTree);
|
|
94
|
-
|
|
95
|
-
return createMachineUpdate(state);
|
|
96
|
-
const next = Object.freeze({ nodes: freezeNodes(nodes) });
|
|
122
|
+
const next = treeReorderState(nodes, nextTree.value);
|
|
97
123
|
return createMachineUpdate(next, [{ type: 'tree-order-changed', nodes: next.nodes }]);
|
|
98
124
|
}
|
|
125
|
+
function sequenceReorderState(sequence) {
|
|
126
|
+
const state = Object.freeze({ ids: sequence.ids });
|
|
127
|
+
sequenceReorderOwners.set(state, sequence);
|
|
128
|
+
return state;
|
|
129
|
+
}
|
|
130
|
+
function treeReorderState(nodes, tree) {
|
|
131
|
+
const positions = new Map();
|
|
132
|
+
for (let index = 0; index < nodes.length; index += 1) {
|
|
133
|
+
positions.set(nodes[index].id, index);
|
|
134
|
+
}
|
|
135
|
+
const state = Object.freeze({ nodes });
|
|
136
|
+
treeReorderOwners.set(state, {
|
|
137
|
+
tree,
|
|
138
|
+
positions,
|
|
139
|
+
});
|
|
140
|
+
return state;
|
|
141
|
+
}
|
|
142
|
+
function isWithinSubtree(tree, root, candidate) {
|
|
143
|
+
const rootInterval = tree.subtreeIntervalOf(root);
|
|
144
|
+
const candidateInterval = tree.subtreeIntervalOf(candidate);
|
|
145
|
+
return candidateInterval.start >= rootInterval.start
|
|
146
|
+
&& candidateInterval.start < rootInterval.endExclusive;
|
|
147
|
+
}
|
|
148
|
+
function postRemovalIndex(index, removedIndex) {
|
|
149
|
+
return index > removedIndex ? index - 1 : index;
|
|
150
|
+
}
|
|
99
151
|
function missingID(id) {
|
|
100
152
|
return fail('transition-rejection', 'reorder-id-missing', 'Reorder identity must exist in the current domain.', { id });
|
|
101
153
|
}
|
|
102
154
|
function freezeNodes(nodes) {
|
|
103
155
|
return Object.freeze(nodes.map((node) => Object.freeze({ ...node })));
|
|
104
156
|
}
|
|
105
|
-
function sameNodes(left, right) {
|
|
106
|
-
return left.length === right.length && left.every((node, index) => (node.id === right[index]?.id && node.parentID === right[index]?.parentID));
|
|
107
|
-
}
|
|
108
157
|
function transitionFailure(result) {
|
|
109
158
|
if (result.ok)
|
|
110
159
|
throw new Error('Expected a failed result.');
|
package/dist/reorder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reorder.js","sourceRoot":"","sources":["../src/reorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAsB,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"reorder.js","sourceRoot":"","sources":["../src/reorder.ts"],"names":[],"mappings":"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"}
|
package/dist/result.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { ErrorClass, Result, SectileError } from './shared.js';
|
|
2
2
|
import type { CoreErrorCode } from './error-code.js';
|
|
3
|
+
export declare function okResult<T, Code extends string = CoreErrorCode>(value: T): Result<T, Code>;
|
|
4
|
+
export declare function failResult<T = never, Code extends string = CoreErrorCode>(errorClass: SectileError['class'], code: Code, message: string, details?: Readonly<Record<string, unknown>>): Result<T, Code>;
|
|
3
5
|
export declare class SectileResultError<Code extends string = CoreErrorCode> extends Error implements SectileError<Code> {
|
|
4
6
|
readonly class: ErrorClass;
|
|
5
7
|
readonly code: Code;
|
|
@@ -9,4 +11,3 @@ export declare class SectileResultError<Code extends string = CoreErrorCode> ext
|
|
|
9
11
|
export declare function unwrap<T, Code extends string>(result: Result<T, Code>): T;
|
|
10
12
|
export type { ErrorClass, Result, SectileError } from './shared.js';
|
|
11
13
|
export type { CoreErrorCode } from './error-code.js';
|
|
12
|
-
//# sourceMappingURL=result.d.ts.map
|
package/dist/result.js
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
export function okResult(value) {
|
|
2
|
+
return { ok: true, value };
|
|
3
|
+
}
|
|
4
|
+
export function failResult(errorClass, code, message, details) {
|
|
5
|
+
return {
|
|
6
|
+
ok: false,
|
|
7
|
+
error: {
|
|
8
|
+
class: errorClass,
|
|
9
|
+
code,
|
|
10
|
+
message,
|
|
11
|
+
...(details === undefined ? {} : { details }),
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
1
15
|
export class SectileResultError extends Error {
|
|
2
16
|
class;
|
|
3
17
|
code;
|
package/dist/result.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,kBACX,SAAQ,KAAK;IACG,KAAK,CAAa;IAClB,IAAI,CAAO;IACX,OAAO,CAAqC;IAE5D,YAAmB,KAAyB;QAC1C,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAChE,CAAC;CACF;AAED,MAAM,UAAU,MAAM,CAAyB,MAAuB;IACpE,IAAI,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IACnC,MAAM,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC"}
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,QAAQ,CAAyC,KAAQ;IACvE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,UAAiC,EACjC,IAAU,EACV,OAAe,EACf,OAA2C;IAE3C,OAAO;QACL,EAAE,EAAE,KAAK;QACT,KAAK,EAAE;YACL,KAAK,EAAE,UAAU;YACjB,IAAI;YACJ,OAAO;YACP,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;SAC9C;KACF,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,kBACX,SAAQ,KAAK;IACG,KAAK,CAAa;IAClB,IAAI,CAAO;IACX,OAAO,CAAqC;IAE5D,YAAmB,KAAyB;QAC1C,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAChE,CAAC;CACF;AAED,MAAM,UAAU,MAAM,CAAyB,MAAuB;IACpE,IAAI,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IACnC,MAAM,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7C,CAAC"}
|
package/dist/revision.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { applyRevisionedEvent, createRevisionSnapshot, mapRevisionCommands, rejectRevisionInput, type EventReducer, type MachineUpdate, type RevisionSnapshot, type RevisionResult, } from './internal/runtime/revision.js';
|
|
2
2
|
export { tryCreateRevisionSnapshot } from './internal/runtime/revision.js';
|
|
3
|
-
|
|
3
|
+
export { createMachineUpdate } from './internal/kernel/machine.js';
|
package/dist/revision.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { applyRevisionedEvent, createRevisionSnapshot, mapRevisionCommands, rejectRevisionInput, } from './internal/runtime/revision.js';
|
|
2
2
|
export { tryCreateRevisionSnapshot } from './internal/runtime/revision.js';
|
|
3
|
+
export { createMachineUpdate } from './internal/kernel/machine.js';
|
|
3
4
|
//# sourceMappingURL=revision.js.map
|
package/dist/revision.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revision.js","sourceRoot":"","sources":["../src/revision.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GAKpB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"revision.js","sourceRoot":"","sources":["../src/revision.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GAKpB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC"}
|
package/dist/select.d.ts
CHANGED
|
@@ -28,4 +28,3 @@ export interface SelectUpdate<ID extends StableID = StableID> {
|
|
|
28
28
|
export declare function createSelectState<ID extends StableID>(domain: Sequence<ID>, input?: SelectStateInput<ID>): SelectState<ID>;
|
|
29
29
|
export declare function tryCreateSelectState<ID extends StableID>(domain: Sequence<ID>, input?: SelectStateInput<ID>): Result<SelectState<ID>>;
|
|
30
30
|
export declare function applySelectEvent<ID extends StableID>(domain: Sequence<ID>, state: SelectState<ID>, event: SelectEvent<ID>, policies?: SelectPolicies<ID>): Result<SelectUpdate<ID>>;
|
|
31
|
-
//# sourceMappingURL=select.d.ts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Result, StableID } from './shared.js';
|
|
2
|
+
export type SelectionMode = 'single' | 'multiple';
|
|
3
|
+
export interface SelectionDomain<ID extends StableID = StableID> {
|
|
4
|
+
readonly size: number;
|
|
5
|
+
contains(id: ID): boolean;
|
|
6
|
+
at(index: number): ID | null;
|
|
7
|
+
indexOf(id: ID): number | null;
|
|
8
|
+
}
|
|
9
|
+
export interface SelectionState<ID extends StableID = StableID> {
|
|
10
|
+
readonly selected: readonly ID[];
|
|
11
|
+
readonly anchor: ID | null;
|
|
12
|
+
readonly size: number;
|
|
13
|
+
has(id: ID): boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface SelectionSnapshotInput<ID extends StableID = StableID> {
|
|
16
|
+
readonly selected?: readonly ID[];
|
|
17
|
+
readonly anchor?: ID | null;
|
|
18
|
+
}
|
|
19
|
+
export declare function createSelectionState<ID extends StableID>(domain: SelectionDomain<ID>, mode: SelectionMode, input?: SelectionSnapshotInput<ID>): Result<SelectionState<ID>>;
|
|
20
|
+
export declare function reconcileSelection<ID extends StableID>(state: SelectionState<ID>, domain: SelectionDomain<ID>, mode: SelectionMode): Result<SelectionState<ID>>;
|
|
21
|
+
export declare function selectOne<ID extends StableID>(state: SelectionState<ID>, id: ID, domain: SelectionDomain<ID>): SelectionState<ID>;
|
|
22
|
+
export declare function toggleMultipleSelection<ID extends StableID>(state: SelectionState<ID>, id: ID, domain: SelectionDomain<ID>): SelectionState<ID>;
|
|
23
|
+
export declare function clearSelection<ID extends StableID>(state: SelectionState<ID>): SelectionState<ID>;
|
|
24
|
+
export declare function selectInterval<ID extends StableID>(state: SelectionState<ID>, anchor: ID, extent: ID, domain: SelectionDomain<ID>, additive: boolean): SelectionState<ID>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { clearSelection as clearSelectionInternal, createSelectionState as createSelectionStateInternal, reconcileSelection as reconcileSelectionInternal, selectInterval as selectIntervalInternal, selectOne as selectOneInternal, toggleMultipleSelection as toggleMultipleSelectionInternal, } from './internal/state/selection.js';
|
|
2
|
+
export function createSelectionState(domain, mode, input = {}) {
|
|
3
|
+
return createSelectionStateInternal(domain, mode, input);
|
|
4
|
+
}
|
|
5
|
+
export function reconcileSelection(state, domain, mode) {
|
|
6
|
+
return reconcileSelectionInternal(state, domain, mode);
|
|
7
|
+
}
|
|
8
|
+
export function selectOne(state, id, domain) {
|
|
9
|
+
return selectOneInternal(state, id, domain);
|
|
10
|
+
}
|
|
11
|
+
export function toggleMultipleSelection(state, id, domain) {
|
|
12
|
+
return toggleMultipleSelectionInternal(state, id, domain);
|
|
13
|
+
}
|
|
14
|
+
export function clearSelection(state) {
|
|
15
|
+
return clearSelectionInternal(state);
|
|
16
|
+
}
|
|
17
|
+
export function selectInterval(state, anchor, extent, domain, additive) {
|
|
18
|
+
return selectIntervalInternal(state, anchor, extent, domain, additive);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.js","sourceRoot":"","sources":["../src/selection.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,IAAI,sBAAsB,EACxC,oBAAoB,IAAI,4BAA4B,EACpD,kBAAkB,IAAI,0BAA0B,EAChD,cAAc,IAAI,sBAAsB,EACxC,SAAS,IAAI,iBAAiB,EAC9B,uBAAuB,IAAI,+BAA+B,GAC3D,MAAM,+BAA+B,CAAC;AAuBvC,MAAM,UAAU,oBAAoB,CAClC,MAA2B,EAC3B,IAAmB,EACnB,KAAK,GAA+B,EAAE;IAEtC,OAAO,4BAA4B,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAyB,EACzB,MAA2B,EAC3B,IAAmB;IAEnB,OAAO,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,KAAyB,EACzB,EAAM,EACN,MAA2B;IAE3B,OAAO,iBAAiB,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAyB,EACzB,EAAM,EACN,MAA2B;IAE3B,OAAO,+BAA+B,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAAyB;IAEzB,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAAyB,EACzB,MAAU,EACV,MAAU,EACV,MAA2B,EAC3B,QAAiB;IAEjB,OAAO,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACzE,CAAC"}
|
package/dist/shared.d.ts
CHANGED
package/dist/slider.d.ts
CHANGED
package/dist/spin-button.d.ts
CHANGED
|
@@ -28,4 +28,3 @@ export interface SpinButtonUpdate {
|
|
|
28
28
|
export declare function createSpinButtonState(range: QuantizedRange, value?: string, draft?: string | null): SpinButtonState;
|
|
29
29
|
export declare function tryCreateSpinButtonState(range: QuantizedRange, value?: string, draft?: string | null): Result<SpinButtonState>;
|
|
30
30
|
export declare function applySpinButtonEvent(range: QuantizedRange, state: SpinButtonState, event: SpinButtonEvent, policies?: SpinButtonPolicies): Result<SpinButtonUpdate>;
|
|
31
|
-
//# sourceMappingURL=spin-button.d.ts.map
|
package/dist/stepper.d.ts
CHANGED
|
@@ -15,4 +15,3 @@ export type StepperUpdate<ID extends StableID = StableID> = LinearChoiceUpdate<I
|
|
|
15
15
|
export declare function createStepperState<ID extends StableID>(domain: Sequence<ID>, value?: ID | null, current?: ID | null): StepperState<ID>;
|
|
16
16
|
export declare function tryCreateStepperState<ID extends StableID>(domain: Sequence<ID>, value?: ID | null, current?: ID | null): Result<StepperState<ID>>;
|
|
17
17
|
export declare function applyStepperEvent<ID extends StableID>(domain: Sequence<ID>, state: StepperState<ID>, event: StepperEvent<ID>, policies?: StepperPolicies<ID>): Result<StepperUpdate<ID>>;
|
|
18
|
-
//# sourceMappingURL=stepper.d.ts.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Result } from '../shared.js';
|
|
2
|
+
import { type Insets, type Point, type Rect, type RectAlign, type RectOverflow, type RectSide, type Size } from './geometry.js';
|
|
3
|
+
export interface AnchoredLayoutOptions {
|
|
4
|
+
readonly side?: RectSide;
|
|
5
|
+
readonly align?: RectAlign;
|
|
6
|
+
readonly offset?: number;
|
|
7
|
+
readonly padding?: number | Partial<Insets>;
|
|
8
|
+
readonly flip?: boolean;
|
|
9
|
+
readonly shift?: boolean;
|
|
10
|
+
readonly arrow?: Size | null;
|
|
11
|
+
readonly arrowPadding?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface AnchoredLayoutInput extends AnchoredLayoutOptions {
|
|
14
|
+
readonly reference: Rect;
|
|
15
|
+
readonly floating: Size;
|
|
16
|
+
readonly boundary: Rect;
|
|
17
|
+
}
|
|
18
|
+
export interface AnchoredArrowLayout extends Point {
|
|
19
|
+
readonly centerOffset: number;
|
|
20
|
+
}
|
|
21
|
+
export interface AnchoredLayout {
|
|
22
|
+
readonly rect: Rect;
|
|
23
|
+
readonly side: RectSide;
|
|
24
|
+
readonly align: RectAlign;
|
|
25
|
+
readonly overflow: RectOverflow;
|
|
26
|
+
readonly availableSize: Size;
|
|
27
|
+
readonly arrow: AnchoredArrowLayout | null;
|
|
28
|
+
readonly referenceHidden: boolean;
|
|
29
|
+
readonly candidateCount: number;
|
|
30
|
+
}
|
|
31
|
+
export declare const MAX_ANCHORED_LAYOUT_CANDIDATES = 4;
|
|
32
|
+
export declare function solveAnchoredLayout(input: AnchoredLayoutInput): AnchoredLayout;
|
|
33
|
+
export declare function trySolveAnchoredLayout(input: AnchoredLayoutInput): Result<AnchoredLayout>;
|