@sectile/core 0.1.0 → 0.2.1
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/dist/accordion.d.ts +2 -1
- package/dist/accordion.d.ts.map +1 -1
- package/dist/accordion.js +5 -1
- package/dist/accordion.js.map +1 -1
- package/dist/alert-dialog.d.ts +2 -1
- package/dist/alert-dialog.d.ts.map +1 -1
- package/dist/alert-dialog.js +2 -1
- package/dist/alert-dialog.js.map +1 -1
- package/dist/calendar.d.ts +1 -0
- package/dist/calendar.d.ts.map +1 -1
- package/dist/calendar.js +1 -0
- package/dist/calendar.js.map +1 -1
- package/dist/carousel.d.ts +2 -1
- package/dist/carousel.d.ts.map +1 -1
- package/dist/carousel.js +5 -1
- package/dist/carousel.js.map +1 -1
- package/dist/cascade-select.d.ts +48 -0
- package/dist/cascade-select.d.ts.map +1 -0
- package/dist/cascade-select.js +148 -0
- package/dist/cascade-select.js.map +1 -0
- package/dist/checkbox-group.d.ts +2 -1
- package/dist/checkbox-group.d.ts.map +1 -1
- package/dist/checkbox-group.js +6 -2
- package/dist/checkbox-group.js.map +1 -1
- package/dist/checkbox.d.ts +1 -0
- package/dist/checkbox.d.ts.map +1 -1
- package/dist/checkbox.js +1 -0
- package/dist/checkbox.js.map +1 -1
- package/dist/collection-window.d.ts +51 -0
- package/dist/collection-window.d.ts.map +1 -0
- package/dist/collection-window.js +111 -0
- package/dist/collection-window.js.map +1 -0
- package/dist/color-picker.d.ts +101 -0
- package/dist/color-picker.d.ts.map +1 -0
- package/dist/color-picker.js +503 -0
- package/dist/color-picker.js.map +1 -0
- package/dist/combobox.d.ts +2 -1
- package/dist/combobox.d.ts.map +1 -1
- package/dist/combobox.js +8 -4
- package/dist/combobox.js.map +1 -1
- package/dist/date-field.d.ts +7 -3
- package/dist/date-field.d.ts.map +1 -1
- package/dist/date-field.js +26 -14
- package/dist/date-field.js.map +1 -1
- package/dist/date-picker.d.ts +25 -2
- package/dist/date-picker.d.ts.map +1 -1
- package/dist/date-picker.js +119 -15
- package/dist/date-picker.js.map +1 -1
- package/dist/date-range-field.d.ts +47 -0
- package/dist/date-range-field.d.ts.map +1 -0
- package/dist/date-range-field.js +66 -0
- package/dist/date-range-field.js.map +1 -0
- package/dist/date-range-picker.d.ts +2 -1
- package/dist/date-range-picker.d.ts.map +1 -1
- package/dist/date-range-picker.js +14 -10
- package/dist/date-range-picker.js.map +1 -1
- package/dist/date-time-field.d.ts +7 -3
- package/dist/date-time-field.d.ts.map +1 -1
- package/dist/date-time-field.js +33 -19
- package/dist/date-time-field.js.map +1 -1
- package/dist/date-time-picker.d.ts +19 -2
- package/dist/date-time-picker.d.ts.map +1 -1
- package/dist/date-time-picker.js +21 -16
- package/dist/date-time-picker.js.map +1 -1
- package/dist/date-time-range-picker.d.ts +22 -2
- package/dist/date-time-range-picker.d.ts.map +1 -1
- package/dist/date-time-range-picker.js +49 -23
- package/dist/date-time-range-picker.js.map +1 -1
- package/dist/dialog.d.ts +2 -1
- package/dist/dialog.d.ts.map +1 -1
- package/dist/dialog.js +2 -1
- package/dist/dialog.js.map +1 -1
- package/dist/disclosure.d.ts +1 -0
- package/dist/disclosure.d.ts.map +1 -1
- package/dist/disclosure.js +1 -0
- package/dist/disclosure.js.map +1 -1
- package/dist/editable.d.ts +29 -0
- package/dist/editable.d.ts.map +1 -0
- package/dist/editable.js +34 -0
- package/dist/editable.js.map +1 -0
- package/dist/feed.d.ts +24 -4
- package/dist/feed.d.ts.map +1 -1
- package/dist/feed.js +121 -23
- package/dist/feed.js.map +1 -1
- package/dist/form.d.ts +135 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/form.js +627 -0
- package/dist/form.js.map +1 -0
- package/dist/index.d.ts +21 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/interaction.d.ts +2 -1
- package/dist/interaction.d.ts.map +1 -1
- package/dist/interaction.js +4 -0
- package/dist/interaction.js.map +1 -1
- package/dist/internal/composites/calendar.d.ts +2 -1
- package/dist/internal/composites/calendar.d.ts.map +1 -1
- package/dist/internal/composites/calendar.js +4 -0
- package/dist/internal/composites/calendar.js.map +1 -1
- package/dist/internal/composites/combobox.d.ts +2 -1
- package/dist/internal/composites/combobox.d.ts.map +1 -1
- package/dist/internal/composites/combobox.js +6 -2
- package/dist/internal/composites/combobox.js.map +1 -1
- package/dist/internal/composites/grid-control.d.ts +2 -1
- package/dist/internal/composites/grid-control.d.ts.map +1 -1
- package/dist/internal/composites/grid-control.js +5 -1
- package/dist/internal/composites/grid-control.js.map +1 -1
- package/dist/internal/composites/linear-action.d.ts +2 -1
- package/dist/internal/composites/linear-action.d.ts.map +1 -1
- package/dist/internal/composites/linear-action.js +4 -0
- package/dist/internal/composites/linear-action.js.map +1 -1
- package/dist/internal/composites/listbox.d.ts +3 -1
- package/dist/internal/composites/listbox.d.ts.map +1 -1
- package/dist/internal/composites/listbox.js +12 -4
- package/dist/internal/composites/listbox.js.map +1 -1
- package/dist/internal/composites/menu.d.ts +2 -1
- package/dist/internal/composites/menu.d.ts.map +1 -1
- package/dist/internal/composites/menu.js +5 -1
- package/dist/internal/composites/menu.js.map +1 -1
- package/dist/internal/composites/popup.d.ts +2 -1
- package/dist/internal/composites/popup.d.ts.map +1 -1
- package/dist/internal/composites/popup.js +3 -1
- package/dist/internal/composites/popup.js.map +1 -1
- package/dist/internal/composites/slider.d.ts +2 -1
- package/dist/internal/composites/slider.d.ts.map +1 -1
- package/dist/internal/composites/slider.js +4 -0
- package/dist/internal/composites/slider.js.map +1 -1
- package/dist/internal/composites/tree-grid.d.ts +4 -2
- package/dist/internal/composites/tree-grid.d.ts.map +1 -1
- package/dist/internal/composites/tree-grid.js +7 -0
- package/dist/internal/composites/tree-grid.js.map +1 -1
- package/dist/internal/composites/tree-view.d.ts +4 -1
- package/dist/internal/composites/tree-view.d.ts.map +1 -1
- package/dist/internal/composites/tree-view.js +28 -7
- package/dist/internal/composites/tree-view.js.map +1 -1
- package/dist/internal/editing/text.d.ts +4 -2
- package/dist/internal/editing/text.d.ts.map +1 -1
- package/dist/internal/editing/text.js +10 -0
- package/dist/internal/editing/text.js.map +1 -1
- package/dist/internal/runtime/revision.d.ts +2 -1
- package/dist/internal/runtime/revision.d.ts.map +1 -1
- package/dist/internal/runtime/revision.js +4 -0
- package/dist/internal/runtime/revision.js.map +1 -1
- package/dist/internal/state/checked.d.ts +2 -1
- package/dist/internal/state/checked.d.ts.map +1 -1
- package/dist/internal/state/checked.js +6 -2
- package/dist/internal/state/checked.js.map +1 -1
- package/dist/internal/state/open-state.d.ts +2 -1
- package/dist/internal/state/open-state.d.ts.map +1 -1
- package/dist/internal/state/open-state.js +5 -1
- package/dist/internal/state/open-state.js.map +1 -1
- package/dist/layer-stack.d.ts +47 -0
- package/dist/layer-stack.d.ts.map +1 -0
- package/dist/layer-stack.js +115 -0
- package/dist/layer-stack.js.map +1 -0
- package/dist/listbox.d.ts +1 -0
- package/dist/listbox.d.ts.map +1 -1
- package/dist/listbox.js +1 -0
- package/dist/listbox.js.map +1 -1
- package/dist/menu-button.d.ts +2 -0
- package/dist/menu-button.d.ts.map +1 -1
- package/dist/menu-button.js +2 -0
- package/dist/menu-button.js.map +1 -1
- package/dist/menu.d.ts +3 -1
- package/dist/menu.d.ts.map +1 -1
- package/dist/menu.js +7 -2
- package/dist/menu.js.map +1 -1
- package/dist/menubar.d.ts +2 -0
- package/dist/menubar.d.ts.map +1 -1
- package/dist/menubar.js +2 -0
- package/dist/menubar.js.map +1 -1
- package/dist/month-picker.d.ts +5 -0
- package/dist/month-picker.d.ts.map +1 -0
- package/dist/month-picker.js +4 -0
- package/dist/month-picker.js.map +1 -0
- package/dist/month-range-picker.d.ts +6 -0
- package/dist/month-range-picker.d.ts.map +1 -0
- package/dist/month-range-picker.js +5 -0
- package/dist/month-range-picker.js.map +1 -0
- package/dist/multi-thumb-slider.d.ts +2 -1
- package/dist/multi-thumb-slider.d.ts.map +1 -1
- package/dist/multi-thumb-slider.js +5 -1
- package/dist/multi-thumb-slider.js.map +1 -1
- package/dist/navigation-menu.d.ts +6 -0
- package/dist/navigation-menu.d.ts.map +1 -0
- package/dist/navigation-menu.js +5 -0
- package/dist/navigation-menu.js.map +1 -0
- package/dist/number-field.d.ts +4 -2
- package/dist/number-field.d.ts.map +1 -1
- package/dist/number-field.js +10 -3
- package/dist/number-field.js.map +1 -1
- package/dist/pagination.d.ts +4 -2
- package/dist/pagination.d.ts.map +1 -1
- package/dist/pagination.js +13 -6
- package/dist/pagination.js.map +1 -1
- package/dist/pin-input.d.ts +3 -1
- package/dist/pin-input.d.ts.map +1 -1
- package/dist/pin-input.js +5 -1
- package/dist/pin-input.js.map +1 -1
- package/dist/popover.d.ts +17 -0
- package/dist/popover.d.ts.map +1 -0
- package/dist/popover.js +6 -0
- package/dist/popover.js.map +1 -0
- package/dist/quantity-field.d.ts +2 -1
- package/dist/quantity-field.d.ts.map +1 -1
- package/dist/quantity-field.js +15 -11
- package/dist/quantity-field.js.map +1 -1
- package/dist/radio-group.d.ts +2 -1
- package/dist/radio-group.d.ts.map +1 -1
- package/dist/radio-group.js +4 -0
- package/dist/radio-group.js.map +1 -1
- package/dist/range-calendar.d.ts +6 -0
- package/dist/range-calendar.d.ts.map +1 -0
- package/dist/range-calendar.js +5 -0
- package/dist/range-calendar.js.map +1 -0
- package/dist/rating.d.ts +2 -1
- package/dist/rating.d.ts.map +1 -1
- package/dist/rating.js +6 -2
- package/dist/rating.js.map +1 -1
- package/dist/reorder.d.ts +47 -0
- package/dist/reorder.d.ts.map +1 -0
- package/dist/reorder.js +110 -0
- package/dist/reorder.js.map +1 -0
- package/dist/revision.d.ts +1 -0
- package/dist/revision.d.ts.map +1 -1
- package/dist/revision.js +1 -0
- package/dist/revision.js.map +1 -1
- package/dist/select.d.ts +2 -1
- package/dist/select.d.ts.map +1 -1
- package/dist/select.js +5 -1
- package/dist/select.js.map +1 -1
- package/dist/shared.d.ts +1 -0
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.js.map +1 -1
- package/dist/slider.d.ts +1 -0
- package/dist/slider.d.ts.map +1 -1
- package/dist/slider.js +1 -0
- package/dist/slider.js.map +1 -1
- package/dist/spin-button.d.ts +3 -1
- package/dist/spin-button.d.ts.map +1 -1
- package/dist/spin-button.js +7 -3
- package/dist/spin-button.js.map +1 -1
- package/dist/stepper.d.ts +2 -1
- package/dist/stepper.d.ts.map +1 -1
- package/dist/stepper.js +4 -0
- package/dist/stepper.js.map +1 -1
- package/dist/structures/grid.d.ts +3 -1
- package/dist/structures/grid.d.ts.map +1 -1
- package/dist/structures/grid.js +5 -0
- package/dist/structures/grid.js.map +1 -1
- package/dist/structures/range.d.ts +4 -2
- package/dist/structures/range.d.ts.map +1 -1
- package/dist/structures/range.js +8 -1
- package/dist/structures/range.js.map +1 -1
- package/dist/structures/sequence.d.ts +4 -2
- package/dist/structures/sequence.d.ts.map +1 -1
- package/dist/structures/sequence.js +4 -0
- package/dist/structures/sequence.js.map +1 -1
- package/dist/structures/tree.d.ts +2 -1
- package/dist/structures/tree.d.ts.map +1 -1
- package/dist/structures/tree.js +4 -0
- package/dist/structures/tree.js.map +1 -1
- package/dist/switch.d.ts +2 -1
- package/dist/switch.d.ts.map +1 -1
- package/dist/switch.js +6 -2
- package/dist/switch.js.map +1 -1
- package/dist/tabs.d.ts +2 -1
- package/dist/tabs.d.ts.map +1 -1
- package/dist/tabs.js +4 -0
- package/dist/tabs.js.map +1 -1
- package/dist/tags-input.d.ts +3 -1
- package/dist/tags-input.d.ts.map +1 -1
- package/dist/tags-input.js +5 -1
- package/dist/tags-input.js.map +1 -1
- package/dist/text.d.ts +2 -0
- package/dist/text.d.ts.map +1 -1
- package/dist/text.js +2 -0
- package/dist/text.js.map +1 -1
- package/dist/time-field.d.ts +4 -2
- package/dist/time-field.d.ts.map +1 -1
- package/dist/time-field.js +20 -11
- package/dist/time-field.js.map +1 -1
- package/dist/time-range-field.d.ts +53 -0
- package/dist/time-range-field.d.ts.map +1 -0
- package/dist/time-range-field.js +75 -0
- package/dist/time-range-field.js.map +1 -0
- package/dist/timer.d.ts +37 -0
- package/dist/timer.d.ts.map +1 -0
- package/dist/timer.js +84 -0
- package/dist/timer.js.map +1 -0
- package/dist/toast.d.ts +56 -0
- package/dist/toast.d.ts.map +1 -0
- package/dist/toast.js +87 -0
- package/dist/toast.js.map +1 -0
- package/dist/toggle-button.d.ts +2 -1
- package/dist/toggle-button.d.ts.map +1 -1
- package/dist/toggle-button.js +6 -2
- package/dist/toggle-button.js.map +1 -1
- package/dist/toggle-group.d.ts +25 -0
- package/dist/toggle-group.d.ts.map +1 -0
- package/dist/toggle-group.js +30 -0
- package/dist/toggle-group.js.map +1 -0
- package/dist/toolbar.d.ts +1 -0
- package/dist/toolbar.d.ts.map +1 -1
- package/dist/toolbar.js +1 -0
- package/dist/toolbar.js.map +1 -1
- package/dist/tooltip.d.ts +1 -0
- package/dist/tooltip.d.ts.map +1 -1
- package/dist/tooltip.js +1 -0
- package/dist/tooltip.js.map +1 -1
- package/dist/tree-grid.d.ts +4 -1
- package/dist/tree-grid.d.ts.map +1 -1
- package/dist/tree-grid.js +12 -6
- package/dist/tree-grid.js.map +1 -1
- package/dist/tree-view.d.ts +2 -1
- package/dist/tree-view.d.ts.map +1 -1
- package/dist/tree-view.js +1 -0
- package/dist/tree-view.js.map +1 -1
- package/dist/units.d.ts +10 -5
- package/dist/units.d.ts.map +1 -1
- package/dist/units.js +19 -3
- package/dist/units.js.map +1 -1
- package/dist/window-splitter.d.ts +1 -0
- package/dist/window-splitter.d.ts.map +1 -1
- package/dist/window-splitter.js +1 -0
- package/dist/window-splitter.js.map +1 -1
- package/dist/year-picker.d.ts +10 -0
- package/dist/year-picker.d.ts.map +1 -0
- package/dist/year-picker.js +27 -0
- package/dist/year-picker.js.map +1 -0
- package/dist/year-range-picker.d.ts +6 -0
- package/dist/year-range-picker.d.ts.map +1 -0
- package/dist/year-range-picker.js +5 -0
- package/dist/year-range-picker.js.map +1 -0
- package/package.json +100 -2
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { createMachineUpdate } from './internal/kernel/machine.js';
|
|
2
|
+
import { fail, ok, validateStableID } from './internal/kernel/foundation.js';
|
|
3
|
+
import { unwrap } from './result.js';
|
|
4
|
+
export function createCollectionWindowState(input = {}) {
|
|
5
|
+
return unwrap(tryCreateCollectionWindowState(input));
|
|
6
|
+
}
|
|
7
|
+
export function tryCreateCollectionWindowState(input = {}) {
|
|
8
|
+
const revision = input.revision ?? 0;
|
|
9
|
+
const requestGeneration = input.requestGeneration ?? 0;
|
|
10
|
+
const start = input.start ?? 0;
|
|
11
|
+
const size = input.size ?? 0;
|
|
12
|
+
const total = input.total ?? null;
|
|
13
|
+
for (const [value, code] of [
|
|
14
|
+
[revision, 'collection-window-revision-invalid'],
|
|
15
|
+
[requestGeneration, 'collection-window-generation-invalid'],
|
|
16
|
+
[start, 'collection-window-start-invalid'],
|
|
17
|
+
[size, 'collection-window-size-invalid'],
|
|
18
|
+
]) {
|
|
19
|
+
if (!Number.isSafeInteger(value) || value < 0) {
|
|
20
|
+
return fail('construction', code, 'Collection window indices and generations must be non-negative safe integers.');
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (start > Number.MAX_SAFE_INTEGER - size) {
|
|
24
|
+
return fail('construction', 'collection-window-range-invalid', 'Collection window range must end at a safe integer.', { start, size });
|
|
25
|
+
}
|
|
26
|
+
if (total !== null && (!Number.isSafeInteger(total) || total < 0 || start + size > total)) {
|
|
27
|
+
return fail('construction', 'collection-window-total-invalid', 'Collection window total must contain the complete loaded range.', { start, size, total });
|
|
28
|
+
}
|
|
29
|
+
const pending = input.pending ?? null;
|
|
30
|
+
if (pending !== null) {
|
|
31
|
+
const anchorError = pending.anchor === null ? null : validateStableID(pending.anchor);
|
|
32
|
+
if (anchorError !== null)
|
|
33
|
+
return { ok: false, error: anchorError };
|
|
34
|
+
if (pending.generation !== requestGeneration
|
|
35
|
+
|| pending.revision !== revision
|
|
36
|
+
|| (pending.direction !== 'before' && pending.direction !== 'after')) {
|
|
37
|
+
return fail('construction', 'collection-window-pending-invalid', 'Pending request must match the current window revision and request generation.');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return ok(Object.freeze({ revision, requestGeneration, start, size, total, pending }));
|
|
41
|
+
}
|
|
42
|
+
export function applyCollectionWindowEvent(state, event) {
|
|
43
|
+
const valid = tryCreateCollectionWindowState(state);
|
|
44
|
+
if (!valid.ok)
|
|
45
|
+
return transitionFailure(valid);
|
|
46
|
+
if (event.type === 'clear-request') {
|
|
47
|
+
if (event.generation !== undefined && state.pending?.generation !== event.generation) {
|
|
48
|
+
return fail('transition-rejection', 'collection-window-request-stale', 'Request generation does not identify the active collection window request.');
|
|
49
|
+
}
|
|
50
|
+
return state.pending === null
|
|
51
|
+
? createMachineUpdate(state)
|
|
52
|
+
: createMachineUpdate(Object.freeze({ ...state, pending: null }));
|
|
53
|
+
}
|
|
54
|
+
if (event.direction !== 'before' && event.direction !== 'after') {
|
|
55
|
+
return fail('transition-rejection', 'collection-window-direction-invalid', 'Window direction is invalid.');
|
|
56
|
+
}
|
|
57
|
+
const anchorError = event.anchor === null ? null : validateStableID(event.anchor);
|
|
58
|
+
if (anchorError !== null) {
|
|
59
|
+
return fail('transition-rejection', anchorError.code, anchorError.message, anchorError.details);
|
|
60
|
+
}
|
|
61
|
+
if (state.pending !== null || !canRequestCollectionWindow(state, event.direction)) {
|
|
62
|
+
return createMachineUpdate(state);
|
|
63
|
+
}
|
|
64
|
+
if (state.requestGeneration === Number.MAX_SAFE_INTEGER) {
|
|
65
|
+
return fail('resource-rejection', 'collection-window-generation-exhausted', 'Collection window request generation cannot advance beyond the safe-integer ceiling.');
|
|
66
|
+
}
|
|
67
|
+
const request = Object.freeze({
|
|
68
|
+
generation: state.requestGeneration + 1,
|
|
69
|
+
direction: event.direction,
|
|
70
|
+
anchor: event.anchor,
|
|
71
|
+
revision: state.revision,
|
|
72
|
+
});
|
|
73
|
+
return createMachineUpdate(Object.freeze({ ...state, requestGeneration: request.generation, pending: request }), [{ type: 'request-window', request }]);
|
|
74
|
+
}
|
|
75
|
+
export function synchronizeCollectionWindow(state, replacement) {
|
|
76
|
+
const valid = tryCreateCollectionWindowState(state);
|
|
77
|
+
if (!valid.ok)
|
|
78
|
+
return transitionFailure(valid);
|
|
79
|
+
if (!Number.isSafeInteger(replacement.revision) || replacement.revision <= state.revision) {
|
|
80
|
+
return fail('transition-rejection', 'collection-window-revision-stale', 'Replacement revision must be newer than the current collection window.', { revision: replacement.revision, currentRevision: state.revision });
|
|
81
|
+
}
|
|
82
|
+
if (state.pending !== null && replacement.requestGeneration === undefined) {
|
|
83
|
+
return fail('transition-rejection', 'collection-window-request-generation-required', 'A replacement that resolves a pending request must identify its generation.', { currentGeneration: state.pending.generation });
|
|
84
|
+
}
|
|
85
|
+
if (replacement.requestGeneration !== undefined
|
|
86
|
+
&& replacement.requestGeneration !== state.pending?.generation) {
|
|
87
|
+
return fail('transition-rejection', 'collection-window-request-stale', 'Replacement request generation does not identify the active request.', {
|
|
88
|
+
requestGeneration: replacement.requestGeneration,
|
|
89
|
+
currentGeneration: state.pending?.generation ?? null,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
return tryCreateCollectionWindowState({
|
|
93
|
+
revision: replacement.revision,
|
|
94
|
+
requestGeneration: state.requestGeneration,
|
|
95
|
+
start: replacement.start,
|
|
96
|
+
size: replacement.size,
|
|
97
|
+
total: replacement.total ?? null,
|
|
98
|
+
pending: null,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
export function canRequestCollectionWindow(state, direction) {
|
|
102
|
+
if (direction === 'before')
|
|
103
|
+
return state.total === null || state.start > 0;
|
|
104
|
+
return state.total === null || state.start + state.size < state.total;
|
|
105
|
+
}
|
|
106
|
+
function transitionFailure(result) {
|
|
107
|
+
if (result.ok)
|
|
108
|
+
throw new Error('Expected a failed result.');
|
|
109
|
+
return fail('transition-rejection', result.error.code, result.error.message, result.error.details);
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=collection-window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-window.js","sourceRoot":"","sources":["../src/collection-window.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { Result } from './shared.js';
|
|
2
|
+
export type ColorChannel = 'red' | 'green' | 'blue' | 'alpha';
|
|
3
|
+
export type ColorFormat = 'hex' | 'rgb' | 'hsl' | 'hsv' | 'cmyk' | 'oklch';
|
|
4
|
+
export type ColorModel = Exclude<ColorFormat, 'hex'>;
|
|
5
|
+
export type ColorCoordinate = ColorChannel | 'hue' | 'saturation' | 'lightness' | 'value' | 'cyan' | 'magenta' | 'yellow' | 'black' | 'chroma';
|
|
6
|
+
export interface ColorCoordinateValue {
|
|
7
|
+
readonly coordinate: ColorCoordinate;
|
|
8
|
+
readonly label: string;
|
|
9
|
+
readonly value: number;
|
|
10
|
+
readonly min: number;
|
|
11
|
+
readonly max: number;
|
|
12
|
+
readonly step: number;
|
|
13
|
+
readonly unit: '' | '%' | '°';
|
|
14
|
+
}
|
|
15
|
+
export interface ColorAreaValue {
|
|
16
|
+
/** Saturation in the inclusive 0..1 interval. */
|
|
17
|
+
readonly x: number;
|
|
18
|
+
/** Brightness in the inclusive 0..1 interval. */
|
|
19
|
+
readonly y: number;
|
|
20
|
+
readonly hue: number;
|
|
21
|
+
/** Opacity in the inclusive 0..1 interval. */
|
|
22
|
+
readonly alpha: number;
|
|
23
|
+
}
|
|
24
|
+
export interface ColorValue {
|
|
25
|
+
readonly red: number;
|
|
26
|
+
readonly green: number;
|
|
27
|
+
readonly blue: number;
|
|
28
|
+
/** Integer opacity in the inclusive 0..255 interval. */
|
|
29
|
+
readonly alpha: number;
|
|
30
|
+
}
|
|
31
|
+
export interface ColorPickerState {
|
|
32
|
+
readonly value: ColorValue;
|
|
33
|
+
readonly draft: string | null;
|
|
34
|
+
readonly format: ColorFormat;
|
|
35
|
+
readonly channel: ColorChannel;
|
|
36
|
+
}
|
|
37
|
+
export interface ColorPickerStateInput {
|
|
38
|
+
readonly value?: ColorValue | string;
|
|
39
|
+
readonly draft?: string | null;
|
|
40
|
+
readonly format?: ColorFormat;
|
|
41
|
+
readonly channel?: ColorChannel;
|
|
42
|
+
}
|
|
43
|
+
export interface ColorPickerPolicies {
|
|
44
|
+
readonly allowAlpha?: boolean;
|
|
45
|
+
readonly channelStep?: number;
|
|
46
|
+
readonly alphaStep?: number;
|
|
47
|
+
}
|
|
48
|
+
export type ColorPickerEvent = 'commit' | 'cancel' | 'increment' | 'decrement' | {
|
|
49
|
+
readonly type: 'input';
|
|
50
|
+
readonly text: string;
|
|
51
|
+
} | {
|
|
52
|
+
readonly type: 'set-color';
|
|
53
|
+
readonly value: ColorValue | string;
|
|
54
|
+
} | {
|
|
55
|
+
readonly type: 'set-channel';
|
|
56
|
+
readonly channel: ColorChannel;
|
|
57
|
+
readonly value: number;
|
|
58
|
+
} | {
|
|
59
|
+
readonly type: 'set-coordinate';
|
|
60
|
+
readonly format: ColorModel;
|
|
61
|
+
readonly coordinate: ColorCoordinate;
|
|
62
|
+
readonly value: number;
|
|
63
|
+
} | {
|
|
64
|
+
readonly type: 'set-area';
|
|
65
|
+
readonly x: number;
|
|
66
|
+
readonly y: number;
|
|
67
|
+
} | {
|
|
68
|
+
readonly type: 'set-hue';
|
|
69
|
+
readonly value: number;
|
|
70
|
+
} | {
|
|
71
|
+
readonly type: 'set-alpha';
|
|
72
|
+
readonly value: number;
|
|
73
|
+
} | {
|
|
74
|
+
readonly type: 'focus-channel';
|
|
75
|
+
readonly channel: ColorChannel;
|
|
76
|
+
} | {
|
|
77
|
+
readonly type: 'set-format';
|
|
78
|
+
readonly format: ColorFormat;
|
|
79
|
+
};
|
|
80
|
+
export type ColorPickerCommand = {
|
|
81
|
+
readonly type: 'color-change';
|
|
82
|
+
readonly value: ColorValue;
|
|
83
|
+
} | {
|
|
84
|
+
readonly type: 'announce-color';
|
|
85
|
+
readonly text: string;
|
|
86
|
+
};
|
|
87
|
+
export interface ColorPickerUpdate {
|
|
88
|
+
readonly state: ColorPickerState;
|
|
89
|
+
readonly commands: readonly ColorPickerCommand[];
|
|
90
|
+
}
|
|
91
|
+
export declare function createColorValue(red: number, green: number, blue: number, alpha?: number): ColorValue;
|
|
92
|
+
export declare function tryCreateColorValue(red: number, green: number, blue: number, alpha?: number): Result<ColorValue>;
|
|
93
|
+
export declare function parseColorValue(text: string): Result<ColorValue>;
|
|
94
|
+
export declare function formatColorValue(value: ColorValue, format?: ColorFormat): Result<string>;
|
|
95
|
+
export declare function getColorAreaValue(value: ColorValue): Result<ColorAreaValue>;
|
|
96
|
+
export declare function getColorCoordinates(value: ColorValue, format: ColorFormat): Result<readonly ColorCoordinateValue[]>;
|
|
97
|
+
export declare function setColorCoordinate(value: ColorValue, format: ColorModel, name: ColorCoordinate, next: number): Result<ColorValue>;
|
|
98
|
+
export declare function createColorPickerState(input?: ColorPickerStateInput, policies?: ColorPickerPolicies): ColorPickerState;
|
|
99
|
+
export declare function tryCreateColorPickerState(input?: ColorPickerStateInput, policies?: ColorPickerPolicies): Result<ColorPickerState>;
|
|
100
|
+
export declare function applyColorPickerEvent(state: ColorPickerState, event: ColorPickerEvent, policies?: ColorPickerPolicies): Result<ColorPickerUpdate>;
|
|
101
|
+
//# sourceMappingURL=color-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-picker.d.ts","sourceRoot":"","sources":["../src/color-picker.ts"],"names":[],"mappings":"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"}
|