foldkit 0.81.1 → 0.82.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 -3
- package/dist/calendar/calendarDate.d.ts +11 -11
- package/dist/calendar/calendarDate.d.ts.map +1 -1
- package/dist/calendar/calendarDate.js +14 -13
- package/dist/calendar/comparison.d.ts +3 -3
- package/dist/calendar/comparison.d.ts.map +1 -1
- package/dist/calendar/comparison.js +5 -5
- package/dist/calendar/info.d.ts +1 -1
- package/dist/calendar/info.d.ts.map +1 -1
- package/dist/calendar/info.js +9 -1
- package/dist/calendar/locale.d.ts +5 -5
- package/dist/calendar/locale.js +23 -2
- package/dist/command/index.d.ts +2 -2
- package/dist/command/index.d.ts.map +1 -1
- package/dist/devTools/overlay.d.ts.map +1 -1
- package/dist/devTools/overlay.js +49 -27
- package/dist/devTools/protocol.d.ts +192 -192
- package/dist/devTools/protocol.d.ts.map +1 -1
- package/dist/devTools/protocol.js +36 -12
- package/dist/devTools/serialize.d.ts.map +1 -1
- package/dist/devTools/serialize.js +4 -4
- package/dist/devTools/store.d.ts.map +1 -1
- package/dist/devTools/store.js +1 -2
- package/dist/devTools/submodelPath.d.ts +1 -1
- package/dist/devTools/summarize.d.ts +6 -6
- package/dist/devTools/summarize.d.ts.map +1 -1
- package/dist/devTools/summarize.js +6 -6
- package/dist/devTools/webSocketBridge.d.ts +1 -1
- package/dist/devTools/webSocketBridge.d.ts.map +1 -1
- package/dist/devTools/webSocketBridge.js +19 -18
- package/dist/fieldValidation/index.d.ts +11 -11
- package/dist/fieldValidation/index.d.ts.map +1 -1
- package/dist/fieldValidation/index.js +8 -7
- package/dist/file/error.d.ts +1 -1
- package/dist/file/file.d.ts +1 -1
- package/dist/file/file.js +1 -1
- package/dist/file/reader.d.ts +4 -4
- package/dist/file/reader.js +5 -5
- package/dist/file/select.js +1 -1
- package/dist/html/index.d.ts.map +1 -1
- package/dist/html/index.js +4 -3
- package/dist/html/lazy.d.ts.map +1 -1
- package/dist/html/lazy.js +6 -7
- package/dist/managedResource/index.d.ts +2 -2
- package/dist/managedResource/index.d.ts.map +1 -1
- package/dist/managedResource/index.js +2 -2
- package/dist/mount/index.d.ts +1 -1
- package/dist/mount/index.d.ts.map +1 -1
- package/dist/route/parser.d.ts +2 -2
- package/dist/route/parser.d.ts.map +1 -1
- package/dist/route/parser.js +5 -5
- package/dist/runtime/browserListeners.d.ts.map +1 -1
- package/dist/runtime/browserListeners.js +6 -7
- package/dist/runtime/deepFreeze.d.ts +1 -1
- package/dist/runtime/deepFreeze.js +2 -2
- package/dist/runtime/hmrProtocol.d.ts +22 -0
- package/dist/runtime/hmrProtocol.d.ts.map +1 -0
- package/dist/runtime/hmrProtocol.js +15 -0
- package/dist/runtime/hmrProtocolPublic.d.ts +2 -0
- package/dist/runtime/hmrProtocolPublic.d.ts.map +1 -0
- package/dist/runtime/hmrProtocolPublic.js +1 -0
- package/dist/runtime/runtime.d.ts +10 -7
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +116 -114
- package/dist/runtime/subscription.d.ts +5 -5
- package/dist/runtime/subscription.d.ts.map +1 -1
- package/dist/runtime/urlRequest.d.ts +15 -15
- package/dist/runtime/urlRequest.d.ts.map +1 -1
- package/dist/runtime/urlRequest.js +1 -1
- package/dist/schema/index.d.ts +3 -3
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +10 -4
- package/dist/task/dom.js +1 -1
- package/dist/task/elementMovement.js +1 -1
- package/dist/task/error.d.ts +2 -2
- package/dist/task/inert.d.ts.map +1 -1
- package/dist/task/inert.js +4 -7
- package/dist/task/time.d.ts +1 -1
- package/dist/task/time.js +1 -1
- package/dist/task/timing.d.ts +1 -1
- package/dist/task/timing.d.ts.map +1 -1
- package/dist/task/timing.js +2 -2
- package/dist/test/apps/bubbling.d.ts +3 -3
- package/dist/test/apps/bubbling.d.ts.map +1 -1
- package/dist/test/apps/bubbling.js +1 -1
- package/dist/test/apps/counter.d.ts +6 -6
- package/dist/test/apps/counter.d.ts.map +1 -1
- package/dist/test/apps/counter.js +7 -1
- package/dist/test/apps/disabledButton.d.ts +11 -11
- package/dist/test/apps/disabledButton.d.ts.map +1 -1
- package/dist/test/apps/disabledButton.js +1 -1
- package/dist/test/apps/fileUpload.d.ts +4 -4
- package/dist/test/apps/fileUpload.d.ts.map +1 -1
- package/dist/test/apps/fileUpload.js +1 -1
- package/dist/test/apps/formChild.d.ts +16 -16
- package/dist/test/apps/formChild.d.ts.map +1 -1
- package/dist/test/apps/formChild.js +9 -4
- package/dist/test/apps/interactions.d.ts +8 -8
- package/dist/test/apps/interactions.d.ts.map +1 -1
- package/dist/test/apps/interactions.js +8 -1
- package/dist/test/apps/keypress.d.ts +7 -7
- package/dist/test/apps/keypress.d.ts.map +1 -1
- package/dist/test/apps/keypress.js +1 -1
- package/dist/test/apps/login.d.ts +14 -14
- package/dist/test/apps/login.d.ts.map +1 -1
- package/dist/test/apps/login.js +9 -2
- package/dist/test/apps/logoutButton.d.ts +3 -3
- package/dist/test/apps/logoutButton.d.ts.map +1 -1
- package/dist/test/apps/logoutButton.js +2 -2
- package/dist/test/apps/multiRole.d.ts +2 -2
- package/dist/test/apps/multiRole.d.ts.map +1 -1
- package/dist/test/apps/multiRole.js +1 -1
- package/dist/test/apps/pointer.d.ts +6 -6
- package/dist/test/apps/pointer.d.ts.map +1 -1
- package/dist/test/apps/pointer.js +1 -1
- package/dist/test/apps/resumeUpload.d.ts +8 -8
- package/dist/test/apps/resumeUpload.d.ts.map +1 -1
- package/dist/test/apps/resumeUpload.js +12 -5
- package/dist/test/internal.js +10 -10
- package/dist/test/matchers.js +1 -1
- package/dist/test/query.d.ts.map +1 -1
- package/dist/test/query.js +13 -13
- package/dist/test/scene.d.ts.map +1 -1
- package/dist/test/scene.js +3 -3
- package/dist/test/story.js +1 -1
- package/dist/ui/animation/schema.d.ts +5 -5
- package/dist/ui/animation/schema.d.ts.map +1 -1
- package/dist/ui/animation/schema.js +9 -3
- package/dist/ui/calendar/index.d.ts +77 -77
- package/dist/ui/calendar/index.d.ts.map +1 -1
- package/dist/ui/calendar/index.js +26 -11
- package/dist/ui/checkbox/index.d.ts +2 -2
- package/dist/ui/combobox/multi.d.ts +38 -42
- package/dist/ui/combobox/multi.d.ts.map +1 -1
- package/dist/ui/combobox/multi.js +4 -1
- package/dist/ui/combobox/shared.d.ts +31 -31
- package/dist/ui/combobox/shared.d.ts.map +1 -1
- package/dist/ui/combobox/shared.js +34 -12
- package/dist/ui/combobox/single.d.ts +39 -43
- package/dist/ui/combobox/single.d.ts.map +1 -1
- package/dist/ui/combobox/single.js +7 -6
- package/dist/ui/datePicker/index.d.ts +86 -86
- package/dist/ui/datePicker/index.d.ts.map +1 -1
- package/dist/ui/datePicker/index.js +10 -3
- package/dist/ui/dialog/index.d.ts +8 -8
- package/dist/ui/dialog/index.d.ts.map +1 -1
- package/dist/ui/dialog/index.js +9 -3
- package/dist/ui/disclosure/index.d.ts +2 -2
- package/dist/ui/disclosure/index.d.ts.map +1 -1
- package/dist/ui/disclosure/index.js +1 -1
- package/dist/ui/dragAndDrop/index.d.ts +76 -76
- package/dist/ui/dragAndDrop/index.d.ts.map +1 -1
- package/dist/ui/dragAndDrop/index.js +47 -29
- package/dist/ui/fileDrop/index.d.ts +8 -8
- package/dist/ui/fileDrop/index.d.ts.map +1 -1
- package/dist/ui/fileDrop/index.js +7 -2
- package/dist/ui/listbox/multi.d.ts +36 -40
- package/dist/ui/listbox/multi.d.ts.map +1 -1
- package/dist/ui/listbox/multi.js +4 -1
- package/dist/ui/listbox/shared.d.ts +32 -32
- package/dist/ui/listbox/shared.d.ts.map +1 -1
- package/dist/ui/listbox/shared.js +36 -11
- package/dist/ui/listbox/single.d.ts +36 -40
- package/dist/ui/listbox/single.d.ts.map +1 -1
- package/dist/ui/listbox/single.js +5 -2
- package/dist/ui/menu/index.d.ts +40 -40
- package/dist/ui/menu/index.d.ts.map +1 -1
- package/dist/ui/menu/index.js +38 -11
- package/dist/ui/popover/index.d.ts +12 -12
- package/dist/ui/popover/index.d.ts.map +1 -1
- package/dist/ui/popover/index.js +17 -2
- package/dist/ui/radioGroup/index.d.ts +6 -6
- package/dist/ui/radioGroup/index.d.ts.map +1 -1
- package/dist/ui/radioGroup/index.js +5 -5
- package/dist/ui/slider/index.d.ts +26 -26
- package/dist/ui/slider/index.d.ts.map +1 -1
- package/dist/ui/slider/index.js +30 -16
- package/dist/ui/switch/index.d.ts +2 -2
- package/dist/ui/tabs/index.d.ts +8 -8
- package/dist/ui/tabs/index.d.ts.map +1 -1
- package/dist/ui/tabs/index.js +3 -3
- package/dist/ui/toast/index.d.ts +75 -75
- package/dist/ui/toast/index.d.ts.map +1 -1
- package/dist/ui/toast/index.js +1 -1
- package/dist/ui/toast/schema.d.ts +63 -63
- package/dist/ui/toast/schema.d.ts.map +1 -1
- package/dist/ui/toast/schema.js +19 -4
- package/dist/ui/toast/update.d.ts +67 -67
- package/dist/ui/toast/update.d.ts.map +1 -1
- package/dist/ui/toast/update.js +2 -2
- package/dist/ui/tooltip/index.d.ts +15 -15
- package/dist/ui/tooltip/index.d.ts.map +1 -1
- package/dist/ui/tooltip/index.js +14 -4
- package/dist/ui/virtualList/index.d.ts +16 -16
- package/dist/ui/virtualList/index.d.ts.map +1 -1
- package/dist/ui/virtualList/index.js +46 -42
- package/dist/url/index.d.ts +8 -8
- package/dist/url/index.d.ts.map +1 -1
- package/dist/url/index.js +14 -14
- package/package.json +11 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/dragAndDrop/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/dragAndDrop/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Array, Effect, Equal, Equivalence,
|
|
1
|
+
import { Array, Effect, Equal, Equivalence, Match as M, Option, Queue, Schema as S, Stream, pipe, } from 'effect';
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
3
|
import { html } from '../../html/index.js';
|
|
4
4
|
import { m } from '../../message/index.js';
|
|
@@ -7,7 +7,7 @@ import { ts } from '../../schema/index.js';
|
|
|
7
7
|
import { evo } from '../../struct/index.js';
|
|
8
8
|
import * as Task from '../../task/index.js';
|
|
9
9
|
// MODEL
|
|
10
|
-
const Orientation = S.
|
|
10
|
+
const Orientation = S.Literals(['Horizontal', 'Vertical']);
|
|
11
11
|
const ScreenPoint = S.Struct({
|
|
12
12
|
screenX: S.Number,
|
|
13
13
|
screenY: S.Number,
|
|
@@ -33,7 +33,7 @@ const Dragging = ts('Dragging', {
|
|
|
33
33
|
sourceIndex: S.Number,
|
|
34
34
|
origin: ScreenPoint,
|
|
35
35
|
current: ClientPoint,
|
|
36
|
-
maybeDropTarget: S.
|
|
36
|
+
maybeDropTarget: S.Option(DropTarget),
|
|
37
37
|
});
|
|
38
38
|
const KeyboardDragging = ts('KeyboardDragging', {
|
|
39
39
|
itemId: S.String,
|
|
@@ -42,7 +42,7 @@ const KeyboardDragging = ts('KeyboardDragging', {
|
|
|
42
42
|
targetContainerId: S.String,
|
|
43
43
|
targetIndex: S.Number,
|
|
44
44
|
});
|
|
45
|
-
const DragState = S.Union(Idle, Pending, Dragging, KeyboardDragging);
|
|
45
|
+
const DragState = S.Union([Idle, Pending, Dragging, KeyboardDragging]);
|
|
46
46
|
/** Schema for the drag-and-drop component's state, tracking its unique ID, orientation, and current drag phase. */
|
|
47
47
|
export const Model = S.Struct({
|
|
48
48
|
id: S.String,
|
|
@@ -65,7 +65,7 @@ export const MovedPointer = m('MovedPointer', {
|
|
|
65
65
|
screenY: S.Number,
|
|
66
66
|
clientX: S.Number,
|
|
67
67
|
clientY: S.Number,
|
|
68
|
-
maybeDropTarget: S.
|
|
68
|
+
maybeDropTarget: S.Option(DropTarget),
|
|
69
69
|
});
|
|
70
70
|
/** The pointer was released. */
|
|
71
71
|
export const ReleasedPointer = m('ReleasedPointer');
|
|
@@ -86,14 +86,32 @@ export const ResolvedKeyboardMove = m('ResolvedKeyboardMove', {
|
|
|
86
86
|
export const ConfirmedKeyboardDrop = m('ConfirmedKeyboardDrop');
|
|
87
87
|
/** The user pressed an arrow key during keyboard drag. */
|
|
88
88
|
export const PressedArrowKey = m('PressedArrowKey', {
|
|
89
|
-
direction: S.
|
|
89
|
+
direction: S.Literals([
|
|
90
|
+
'Up',
|
|
91
|
+
'Down',
|
|
92
|
+
'Left',
|
|
93
|
+
'Right',
|
|
94
|
+
'NextContainer',
|
|
95
|
+
'PreviousContainer',
|
|
96
|
+
]),
|
|
90
97
|
});
|
|
91
98
|
/** An animation frame fired during auto-scroll. */
|
|
92
99
|
export const CompletedAutoScroll = m('CompletedAutoScroll');
|
|
93
100
|
/** The FocusItem Command completed. */
|
|
94
101
|
export const CompletedFocusItem = m('CompletedFocusItem');
|
|
95
102
|
/** Union of all messages the drag-and-drop component can produce. */
|
|
96
|
-
export const Message = S.Union(
|
|
103
|
+
export const Message = S.Union([
|
|
104
|
+
PressedDraggable,
|
|
105
|
+
MovedPointer,
|
|
106
|
+
ReleasedPointer,
|
|
107
|
+
CancelledDrag,
|
|
108
|
+
ActivatedKeyboardDrag,
|
|
109
|
+
ResolvedKeyboardMove,
|
|
110
|
+
ConfirmedKeyboardDrop,
|
|
111
|
+
PressedArrowKey,
|
|
112
|
+
CompletedAutoScroll,
|
|
113
|
+
CompletedFocusItem,
|
|
114
|
+
]);
|
|
97
115
|
// OUT MESSAGE
|
|
98
116
|
/** Emitted when a drag completes with a valid drop target. The parent uses this to commit the reorder. */
|
|
99
117
|
export const Reordered = ts('Reordered', {
|
|
@@ -106,7 +124,7 @@ export const Reordered = ts('Reordered', {
|
|
|
106
124
|
/** Emitted when a drag is cancelled via Escape or pointer release without a drop target. */
|
|
107
125
|
export const Cancelled = ts('Cancelled');
|
|
108
126
|
/** Union of all out-messages the drag-and-drop component can emit to its parent. */
|
|
109
|
-
export const OutMessage = S.Union(Reordered, Cancelled);
|
|
127
|
+
export const OutMessage = S.Union([Reordered, Cancelled]);
|
|
110
128
|
// INIT
|
|
111
129
|
/** Configuration for creating a drag-and-drop model with `init`. */
|
|
112
130
|
const DEFAULT_ACTIVATION_THRESHOLD_PIXELS = 5;
|
|
@@ -298,9 +316,9 @@ export const update = (model, message) => M.value(message).pipe(withUpdateReturn
|
|
|
298
316
|
CompletedFocusItem: () => [model, [], Option.none()],
|
|
299
317
|
}));
|
|
300
318
|
// SUBSCRIPTION
|
|
301
|
-
const DragActivity = S.
|
|
302
|
-
const PointerDragActivity = S.
|
|
303
|
-
const KeyboardDragActivity = S.
|
|
319
|
+
const DragActivity = S.Literals(['Idle', 'Active']);
|
|
320
|
+
const PointerDragActivity = S.Literals(['Idle', 'Active']);
|
|
321
|
+
const KeyboardDragActivity = S.Literals(['Idle', 'Active']);
|
|
304
322
|
const resolveDropTarget = (clientX, clientY, orientation) => {
|
|
305
323
|
const maybeContainer = pipe(document.elementsFromPoint(clientX, clientY), Array.fromIterable, Array.findFirst(element => element.hasAttribute('data-droppable-id')));
|
|
306
324
|
return Option.flatMap(maybeContainer, container => {
|
|
@@ -367,26 +385,26 @@ export const subscriptions = makeSubscriptions(SubscriptionDeps)({
|
|
|
367
385
|
// NOTE: prevents text selection and locks cursor to grabbing during
|
|
368
386
|
// pointer drag. Uses a <style> element for cursor because inline styles
|
|
369
387
|
// on <html> don't override descendant elements' cursor values.
|
|
370
|
-
const documentDragStyles = Stream.
|
|
388
|
+
const documentDragStyles = Stream.callback(() => Effect.acquireRelease(Effect.sync(() => {
|
|
371
389
|
document.documentElement.style.setProperty('user-select', 'none');
|
|
372
390
|
document.documentElement.style.setProperty('-webkit-user-select', 'none');
|
|
373
391
|
const cursorStyle = document.createElement('style');
|
|
374
392
|
cursorStyle.textContent = '* { cursor: grabbing !important; }';
|
|
375
393
|
document.head.appendChild(cursorStyle);
|
|
376
|
-
return
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
});
|
|
382
|
-
return Stream.when(Stream.merge(pointerEvents, documentDragStyles), () => dragActivity === 'Active');
|
|
394
|
+
return cursorStyle;
|
|
395
|
+
}), cursorStyle => Effect.sync(() => {
|
|
396
|
+
document.documentElement.style.removeProperty('user-select');
|
|
397
|
+
document.documentElement.style.removeProperty('-webkit-user-select');
|
|
398
|
+
cursorStyle.remove();
|
|
399
|
+
})).pipe(Effect.flatMap(() => Effect.never)));
|
|
400
|
+
return Stream.when(Stream.merge(pointerEvents, documentDragStyles), Effect.sync(() => dragActivity === 'Active'));
|
|
383
401
|
},
|
|
384
402
|
},
|
|
385
403
|
documentEscape: {
|
|
386
404
|
modelToDependencies: model => ({
|
|
387
405
|
dragActivity: dragActivityFromModel(model),
|
|
388
406
|
}),
|
|
389
|
-
dependenciesToStream: ({ dragActivity }) => Stream.when(Stream.fromEventListener(document, 'keydown').pipe(Stream.filter(({ key }) => key === 'Escape'), Stream.map(() => CancelledDrag())), () => dragActivity === 'Active'),
|
|
407
|
+
dependenciesToStream: ({ dragActivity }) => Stream.when(Stream.fromEventListener(document, 'keydown').pipe(Stream.filter(({ key }) => key === 'Escape'), Stream.map(() => CancelledDrag())), Effect.sync(() => dragActivity === 'Active')),
|
|
390
408
|
},
|
|
391
409
|
documentKeyboard: {
|
|
392
410
|
modelToDependencies: model => ({
|
|
@@ -415,7 +433,7 @@ export const subscriptions = makeSubscriptions(SubscriptionDeps)({
|
|
|
415
433
|
event.preventDefault();
|
|
416
434
|
return PressedArrowKey({ direction });
|
|
417
435
|
});
|
|
418
|
-
})), Stream.
|
|
436
|
+
})), Stream.filter(Option.isSome), Stream.map(option => option.value)), Effect.sync(() => dragActivity === 'Active')),
|
|
419
437
|
},
|
|
420
438
|
autoScroll: {
|
|
421
439
|
modelToDependencies: model => ({
|
|
@@ -424,17 +442,17 @@ export const subscriptions = makeSubscriptions(SubscriptionDeps)({
|
|
|
424
442
|
? model.dragState.current.clientY
|
|
425
443
|
: 0,
|
|
426
444
|
}),
|
|
427
|
-
equivalence: Equivalence.
|
|
428
|
-
dependenciesToStream: ({ isDragging }, readDependencies) => Stream.when(Stream.
|
|
429
|
-
|
|
445
|
+
equivalence: Equivalence.Struct({ isDragging: Equivalence.Boolean }),
|
|
446
|
+
dependenciesToStream: ({ isDragging }, readDependencies) => Stream.when(Stream.callback(queue => Effect.acquireRelease(Effect.sync(() => {
|
|
447
|
+
const ref = { id: 0 };
|
|
430
448
|
const step = () => {
|
|
431
449
|
autoScroll(readDependencies().clientY);
|
|
432
|
-
|
|
433
|
-
|
|
450
|
+
Queue.offerUnsafe(queue, CompletedAutoScroll());
|
|
451
|
+
ref.id = requestAnimationFrame(step);
|
|
434
452
|
};
|
|
435
|
-
|
|
436
|
-
return
|
|
437
|
-
}), () => isDragging),
|
|
453
|
+
ref.id = requestAnimationFrame(step);
|
|
454
|
+
return ref;
|
|
455
|
+
}), ref => Effect.sync(() => cancelAnimationFrame(ref.id))).pipe(Effect.flatMap(() => Effect.never))), Effect.sync(() => isDragging)),
|
|
438
456
|
},
|
|
439
457
|
});
|
|
440
458
|
// VIEW
|
|
@@ -8,8 +8,8 @@ import { type Attribute, type Html } from '../../html/index.js';
|
|
|
8
8
|
* track the per-element active state internally so transitions between
|
|
9
9
|
* children of the zone do not flicker the boolean off-and-on. */
|
|
10
10
|
export declare const Model: S.Struct<{
|
|
11
|
-
id:
|
|
12
|
-
isDragOver:
|
|
11
|
+
readonly id: S.String;
|
|
12
|
+
readonly isDragOver: S.Boolean;
|
|
13
13
|
}>;
|
|
14
14
|
export type Model = typeof Model.Type;
|
|
15
15
|
/** Sent when a drag enters the drop zone. Flips `isDragOver` to true so
|
|
@@ -23,7 +23,7 @@ export declare const LeftDragZone: import("../../schema/index.js").CallableTagge
|
|
|
23
23
|
* objects, resets `isDragOver`, and emits `ReceivedFiles` as an
|
|
24
24
|
* OutMessage. */
|
|
25
25
|
export declare const DroppedFiles: import("../../schema/index.js").CallableTaggedStruct<"DroppedFiles", {
|
|
26
|
-
files: S.NonEmptyArray<S.Schema<File
|
|
26
|
+
files: S.NonEmptyArray<S.Schema<File>>;
|
|
27
27
|
}>;
|
|
28
28
|
/** Sent when a drop or input-change event fires without any files \u2014
|
|
29
29
|
* typically a drag of non-file data (text, URLs, images from another
|
|
@@ -32,23 +32,23 @@ export declare const DroppedFiles: import("../../schema/index.js").CallableTagge
|
|
|
32
32
|
* accepted"). */
|
|
33
33
|
export declare const DroppedWithoutFiles: import("../../schema/index.js").CallableTaggedStruct<"DroppedWithoutFiles", {}>;
|
|
34
34
|
/** Union of all messages the file-drop component can produce. */
|
|
35
|
-
export declare const Message: S.Union<[import("../../schema/index.js").CallableTaggedStruct<"EnteredDragZone", {}>, import("../../schema/index.js").CallableTaggedStruct<"LeftDragZone", {}>, import("../../schema/index.js").CallableTaggedStruct<"DroppedFiles", {
|
|
36
|
-
files: S.NonEmptyArray<S.Schema<File
|
|
35
|
+
export declare const Message: S.Union<readonly [import("../../schema/index.js").CallableTaggedStruct<"EnteredDragZone", {}>, import("../../schema/index.js").CallableTaggedStruct<"LeftDragZone", {}>, import("../../schema/index.js").CallableTaggedStruct<"DroppedFiles", {
|
|
36
|
+
files: S.NonEmptyArray<S.Schema<File>>;
|
|
37
37
|
}>, import("../../schema/index.js").CallableTaggedStruct<"DroppedWithoutFiles", {}>]>;
|
|
38
38
|
export type Message = typeof Message.Type;
|
|
39
39
|
/** Emitted when files arrive via drop or input-change. The consumer's
|
|
40
40
|
* parent update handles this to process the files (validate, upload,
|
|
41
41
|
* store in Model, etc.). The files list is non-empty. */
|
|
42
42
|
export declare const ReceivedFiles: import("../../schema/index.js").CallableTaggedStruct<"ReceivedFiles", {
|
|
43
|
-
files: S.NonEmptyArray<S.Schema<File
|
|
43
|
+
files: S.NonEmptyArray<S.Schema<File>>;
|
|
44
44
|
}>;
|
|
45
45
|
/** The file-drop component's OutMessages: `ReceivedFiles` on the happy
|
|
46
46
|
* path and `DroppedWithoutFiles` when a drop event fires without files.
|
|
47
47
|
* `DroppedWithoutFiles` is reused from the Message definitions \u2014 the
|
|
48
48
|
* fact is the same whether the component is handling it or reporting it
|
|
49
49
|
* up. */
|
|
50
|
-
export declare const OutMessage: S.Union<[import("../../schema/index.js").CallableTaggedStruct<"ReceivedFiles", {
|
|
51
|
-
files: S.NonEmptyArray<S.Schema<File
|
|
50
|
+
export declare const OutMessage: S.Union<readonly [import("../../schema/index.js").CallableTaggedStruct<"ReceivedFiles", {
|
|
51
|
+
files: S.NonEmptyArray<S.Schema<File>>;
|
|
52
52
|
}>, import("../../schema/index.js").CallableTaggedStruct<"DroppedWithoutFiles", {}>]>;
|
|
53
53
|
export type OutMessage = typeof OutMessage.Type;
|
|
54
54
|
/** Configuration for creating a file-drop model with `init`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/fileDrop/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE/D,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,IAAI,EAGV,MAAM,qBAAqB,CAAA;AAM5B;;;;;iEAKiE;AACjE,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC;oDACoD;AACpD,eAAO,MAAM,eAAe,6EAAuB,CAAA;AACnD;iCACiC;AACjC,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C;;;iBAGiB;AACjB,eAAO,MAAM,YAAY;;EAEvB,CAAA;AACF;;;;iBAIiB;AACjB,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAE3D,iEAAiE;AACjE,eAAO,MAAM,OAAO;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/fileDrop/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE/D,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,IAAI,EAGV,MAAM,qBAAqB,CAAA;AAM5B;;;;;iEAKiE;AACjE,eAAO,MAAM,KAAK;;;EAGhB,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC;oDACoD;AACpD,eAAO,MAAM,eAAe,6EAAuB,CAAA;AACnD;iCACiC;AACjC,eAAO,MAAM,YAAY,0EAAoB,CAAA;AAC7C;;;iBAGiB;AACjB,eAAO,MAAM,YAAY;;EAEvB,CAAA;AACF;;;;iBAIiB;AACjB,eAAO,MAAM,mBAAmB,iFAA2B,CAAA;AAE3D,iEAAiE;AACjE,eAAO,MAAM,OAAO;;qFAKlB,CAAA;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAA;AAIzC;;yDAEyD;AACzD,eAAO,MAAM,aAAa;;EAExB,CAAA;AAEF;;;;SAIS;AACT,eAAO,MAAM,UAAU;;qFAAgD,CAAA;AACvE,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAI/C,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC;IAChC,EAAE,EAAE,MAAM,CAAA;CACX,CAAC,CAAA;AAEF,qEAAqE;AACrE,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAGxC,CAAA;AAIF,KAAK,YAAY,GAAG,SAAS;IAC3B,KAAK;IACL,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;CAC1B,CAAA;AAED;8BAC8B;AAC9B,eAAO,MAAM,MAAM,GAAI,OAAO,KAAK,EAAE,SAAS,OAAO,KAAG,YAyBrD,CAAA;AAIH;;;yDAGyD;AACzD,MAAM,MAAM,kBAAkB,CAAC,aAAa,IAAI,QAAQ,CAAC;IACvD;;wCAEoC;IACpC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;IAC7C;;0BAEsB;IACtB,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;CAC/C,CAAC,CAAA;AAEF;;;;0BAI0B;AAC1B,MAAM,MAAM,UAAU,CAAC,aAAa,IAAI,QAAQ,CAAC;IAC/C,KAAK,EAAE,KAAK,CAAA;IACZ,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,aAAa,CAAA;IACpD,MAAM,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAA;IAC/D;;;kCAG8B;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC9B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;yEACqE;IACrE,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAC,CAAA;AAEF;;;;gBAIgB;AAChB,eAAO,MAAM,IAAI,GAAI,aAAa,EAChC,QAAQ,UAAU,CAAC,aAAa,CAAC,KAChC,IA0EF,CAAA;AAED;;mBAEmB;AACnB,eAAO,MAAM,IAAI,GAAI,aAAa,EAChC,cAAc,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC,KACzE,CAAC,CACF,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,iBAAiB,CAAC,KAC1D,IAAI,CAgBR,CAAA"}
|
|
@@ -35,7 +35,12 @@ export const DroppedFiles = m('DroppedFiles', {
|
|
|
35
35
|
* accepted"). */
|
|
36
36
|
export const DroppedWithoutFiles = m('DroppedWithoutFiles');
|
|
37
37
|
/** Union of all messages the file-drop component can produce. */
|
|
38
|
-
export const Message = S.Union(
|
|
38
|
+
export const Message = S.Union([
|
|
39
|
+
EnteredDragZone,
|
|
40
|
+
LeftDragZone,
|
|
41
|
+
DroppedFiles,
|
|
42
|
+
DroppedWithoutFiles,
|
|
43
|
+
]);
|
|
39
44
|
// OUT MESSAGE
|
|
40
45
|
/** Emitted when files arrive via drop or input-change. The consumer's
|
|
41
46
|
* parent update handles this to process the files (validate, upload,
|
|
@@ -48,7 +53,7 @@ export const ReceivedFiles = m('ReceivedFiles', {
|
|
|
48
53
|
* `DroppedWithoutFiles` is reused from the Message definitions \u2014 the
|
|
49
54
|
* fact is the same whether the component is handling it or reporting it
|
|
50
55
|
* up. */
|
|
51
|
-
export const OutMessage = S.Union(ReceivedFiles, DroppedWithoutFiles);
|
|
56
|
+
export const OutMessage = S.Union([ReceivedFiles, DroppedWithoutFiles]);
|
|
52
57
|
/** Creates an initial file-drop model. Drag state starts cleared. */
|
|
53
58
|
export const init = (config) => ({
|
|
54
59
|
id: config.id,
|
|
@@ -3,29 +3,28 @@ import type * as Command from '../../command/index.js';
|
|
|
3
3
|
import { type Html } from '../../html/index.js';
|
|
4
4
|
import { type BaseInitConfig, type BaseViewConfig, Closed, type Message, Opened, SelectedItem } from './shared.js';
|
|
5
5
|
/** Schema for the multi-select listbox component's state, tracking open/closed status, active item, selected items, activation trigger, and typeahead search. */
|
|
6
|
-
export declare const Model: S.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
6
|
+
export declare const Model: S.Struct<{
|
|
7
|
+
readonly selectedItems: S.$Array<S.String>;
|
|
8
|
+
readonly id: S.String;
|
|
9
|
+
readonly isOpen: S.Boolean;
|
|
10
|
+
readonly isAnimated: S.Boolean;
|
|
11
|
+
readonly isModal: S.Boolean;
|
|
12
|
+
readonly orientation: S.Literals<readonly ["Vertical", "Horizontal"]>;
|
|
13
|
+
readonly animation: S.Struct<{
|
|
14
|
+
readonly id: S.String;
|
|
15
|
+
readonly isShowing: S.Boolean;
|
|
16
|
+
readonly transitionState: S.Literals<readonly ["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
|
|
16
17
|
}>;
|
|
17
|
-
maybeActiveItemIndex: S.
|
|
18
|
-
activationTrigger: S.
|
|
19
|
-
searchQuery:
|
|
20
|
-
searchVersion:
|
|
21
|
-
maybeLastPointerPosition: S.
|
|
22
|
-
screenX:
|
|
23
|
-
screenY:
|
|
18
|
+
readonly maybeActiveItemIndex: S.Option<S.Number>;
|
|
19
|
+
readonly activationTrigger: S.Literals<readonly ["Pointer", "Keyboard"]>;
|
|
20
|
+
readonly searchQuery: S.String;
|
|
21
|
+
readonly searchVersion: S.Number;
|
|
22
|
+
readonly maybeLastPointerPosition: S.Option<S.Struct<{
|
|
23
|
+
readonly screenX: S.Number;
|
|
24
|
+
readonly screenY: S.Number;
|
|
24
25
|
}>>;
|
|
25
|
-
maybeLastButtonPointerType: S.
|
|
26
|
-
}
|
|
27
|
-
selectedItems: S.Array$<typeof S.String>;
|
|
28
|
-
}>>;
|
|
26
|
+
readonly maybeLastButtonPointerType: S.Option<S.String>;
|
|
27
|
+
}>;
|
|
29
28
|
export type Model = typeof Model.Type;
|
|
30
29
|
/** Configuration for creating a multi-select listbox model with `init`. `isAnimated` enables CSS transition coordination (default `false`). `isModal` locks page scroll and inerts other elements when open (default `false`). `selectedItems` sets the initial selection (default `[]`). */
|
|
31
30
|
export type InitConfig = BaseInitConfig & Readonly<{
|
|
@@ -36,6 +35,12 @@ export declare const init: (config: InitConfig) => Model;
|
|
|
36
35
|
/** Processes a listbox message and returns the next model and commands. Stays open on selection and toggles item membership (multi-select behavior). */
|
|
37
36
|
export declare const update: (model: {
|
|
38
37
|
readonly id: string;
|
|
38
|
+
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
39
|
+
readonly maybeLastPointerPosition: Option.Option<{
|
|
40
|
+
readonly screenX: number;
|
|
41
|
+
readonly screenY: number;
|
|
42
|
+
}>;
|
|
43
|
+
readonly maybeLastButtonPointerType: Option.Option<string>;
|
|
39
44
|
readonly isOpen: boolean;
|
|
40
45
|
readonly isAnimated: boolean;
|
|
41
46
|
readonly isModal: boolean;
|
|
@@ -45,19 +50,18 @@ export declare const update: (model: {
|
|
|
45
50
|
readonly isShowing: boolean;
|
|
46
51
|
readonly transitionState: "Idle" | "EnterStart" | "EnterAnimating" | "LeaveStart" | "LeaveAnimating";
|
|
47
52
|
};
|
|
48
|
-
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
49
53
|
readonly activationTrigger: "Pointer" | "Keyboard";
|
|
50
54
|
readonly searchQuery: string;
|
|
51
55
|
readonly searchVersion: number;
|
|
56
|
+
readonly selectedItems: readonly string[];
|
|
57
|
+
}, message: Message) => readonly [{
|
|
58
|
+
readonly id: string;
|
|
59
|
+
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
52
60
|
readonly maybeLastPointerPosition: Option.Option<{
|
|
53
61
|
readonly screenX: number;
|
|
54
62
|
readonly screenY: number;
|
|
55
63
|
}>;
|
|
56
64
|
readonly maybeLastButtonPointerType: Option.Option<string>;
|
|
57
|
-
} & {
|
|
58
|
-
readonly selectedItems: readonly string[];
|
|
59
|
-
}, message: Message) => readonly [{
|
|
60
|
-
readonly id: string;
|
|
61
65
|
readonly isOpen: boolean;
|
|
62
66
|
readonly isAnimated: boolean;
|
|
63
67
|
readonly isModal: boolean;
|
|
@@ -67,16 +71,9 @@ export declare const update: (model: {
|
|
|
67
71
|
readonly isShowing: boolean;
|
|
68
72
|
readonly transitionState: "Idle" | "EnterStart" | "EnterAnimating" | "LeaveStart" | "LeaveAnimating";
|
|
69
73
|
};
|
|
70
|
-
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
71
74
|
readonly activationTrigger: "Pointer" | "Keyboard";
|
|
72
75
|
readonly searchQuery: string;
|
|
73
76
|
readonly searchVersion: number;
|
|
74
|
-
readonly maybeLastPointerPosition: Option.Option<{
|
|
75
|
-
readonly screenX: number;
|
|
76
|
-
readonly screenY: number;
|
|
77
|
-
}>;
|
|
78
|
-
readonly maybeLastButtonPointerType: Option.Option<string>;
|
|
79
|
-
} & {
|
|
80
77
|
readonly selectedItems: readonly string[];
|
|
81
78
|
}, readonly Readonly<{
|
|
82
79
|
name: string;
|
|
@@ -166,6 +163,12 @@ export type ViewConfig<Message, Item> = BaseViewConfig<Message, Item, Model>;
|
|
|
166
163
|
export declare const view: <Message, Item>(config: Readonly<{
|
|
167
164
|
model: {
|
|
168
165
|
readonly id: string;
|
|
166
|
+
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
167
|
+
readonly maybeLastPointerPosition: Option.Option<{
|
|
168
|
+
readonly screenX: number;
|
|
169
|
+
readonly screenY: number;
|
|
170
|
+
}>;
|
|
171
|
+
readonly maybeLastButtonPointerType: Option.Option<string>;
|
|
169
172
|
readonly isOpen: boolean;
|
|
170
173
|
readonly isAnimated: boolean;
|
|
171
174
|
readonly isModal: boolean;
|
|
@@ -175,16 +178,9 @@ export declare const view: <Message, Item>(config: Readonly<{
|
|
|
175
178
|
readonly isShowing: boolean;
|
|
176
179
|
readonly transitionState: "Idle" | "EnterStart" | "EnterAnimating" | "LeaveStart" | "LeaveAnimating";
|
|
177
180
|
};
|
|
178
|
-
readonly maybeActiveItemIndex: Option.Option<number>;
|
|
179
181
|
readonly activationTrigger: "Pointer" | "Keyboard";
|
|
180
182
|
readonly searchQuery: string;
|
|
181
183
|
readonly searchVersion: number;
|
|
182
|
-
readonly maybeLastPointerPosition: Option.Option<{
|
|
183
|
-
readonly screenX: number;
|
|
184
|
-
readonly screenY: number;
|
|
185
|
-
}>;
|
|
186
|
-
readonly maybeLastButtonPointerType: Option.Option<string>;
|
|
187
|
-
} & {
|
|
188
184
|
readonly selectedItems: readonly string[];
|
|
189
185
|
};
|
|
190
186
|
toParentMessage: (message: Opened | Closed | import("./shared.js").BlurredItems | import("./shared.js").ActivatedItem | import("./shared.js").DeactivatedItem | SelectedItem | import("./shared.js").MovedPointerOverItem | import("./shared.js").RequestedItemClick | import("./shared.js").Searched | import("./shared.js").PressedPointerOnButton | import("./shared.js").IgnoredMouseClick | import("./shared.js").SuppressedSpaceScroll | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/multi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,IAAI,CAAC,EAAQ,MAAM,QAAQ,CAAA;AAEzD,OAAO,KAAK,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,MAAM,EACN,KAAK,OAAO,EACZ,MAAM,EACN,YAAY,EAIb,MAAM,aAAa,CAAA;AAIpB,iKAAiK;AACjK,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/multi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,IAAI,CAAC,EAAQ,MAAM,QAAQ,CAAA;AAEzD,OAAO,KAAK,KAAK,OAAO,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,MAAM,EACN,KAAK,OAAO,EACZ,MAAM,EACN,YAAY,EAIb,MAAM,aAAa,CAAA;AAIpB,iKAAiK;AACjK,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;EAGhB,CAAA;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAIrC,6RAA6R;AAC7R,MAAM,MAAM,UAAU,GAAG,cAAc,GACrC,QAAQ,CAAC;IACP,aAAa,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACtC,CAAC,CAAA;AAEJ,4HAA4H;AAC5H,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAGxC,CAAA;AAIF,wJAAwJ;AACxJ,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAMjB,CAAA;AAEF;uFACuF;AACvF,eAAO,MAAM,IAAI,GACf,OAAO,KAAK,KACX,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CACK,CAAA;AAEhE;wFACwF;AACxF,eAAO,MAAM,KAAK,GAChB,OAAO,KAAK,KACX,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAClC,CAAA;AAEzB,8IAA8I;AAC9I,eAAO,MAAM,UAAU,GACrB,OAAO,KAAK,EACZ,MAAM,MAAM,KACX,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CACpB,CAAA;AAIvC,sEAAsE;AACtE,MAAM,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;AAE5E,0JAA0J;AAC1J,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAYf,CAAA;AAEF;mFACmF;AACnF,eAAO,MAAM,IAAI,GAAI,OAAO,EAAE,IAAI,EAChC,cAAc,IAAI,CAChB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,EACzB,OAAO,GAAG,iBAAiB,GAAG,gBAAgB,CAC/C,KACA,CAAC,CACF,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,iBAAiB,CAAC,KACrE,IAAI,CAoBR,CAAA"}
|
package/dist/ui/listbox/multi.js
CHANGED
|
@@ -4,7 +4,10 @@ import { evo } from '../../struct/index.js';
|
|
|
4
4
|
import { BaseModel, Closed, Opened, SelectedItem, baseInit, makeUpdate, makeView, } from './shared.js';
|
|
5
5
|
// MODEL
|
|
6
6
|
/** Schema for the multi-select listbox component's state, tracking open/closed status, active item, selected items, activation trigger, and typeahead search. */
|
|
7
|
-
export const Model =
|
|
7
|
+
export const Model = S.Struct({
|
|
8
|
+
...BaseModel.fields,
|
|
9
|
+
selectedItems: S.Array(S.String),
|
|
10
|
+
});
|
|
8
11
|
/** Creates an initial multi-select listbox model from a config. Defaults to closed with no active item and no selection. */
|
|
9
12
|
export const init = (config) => ({
|
|
10
13
|
...baseInit(config),
|
|
@@ -5,32 +5,32 @@ import type { AnchorConfig } from '../anchor.js';
|
|
|
5
5
|
import { resolveTypeaheadMatch } from '../typeahead.js';
|
|
6
6
|
export { resolveTypeaheadMatch };
|
|
7
7
|
/** Schema for the activation trigger — whether the user interacted via mouse or keyboard. */
|
|
8
|
-
export declare const ActivationTrigger: S.
|
|
8
|
+
export declare const ActivationTrigger: S.Literals<readonly ["Pointer", "Keyboard"]>;
|
|
9
9
|
export type ActivationTrigger = typeof ActivationTrigger.Type;
|
|
10
10
|
/** Schema for the listbox orientation — whether items flow vertically or horizontally. */
|
|
11
|
-
export declare const Orientation: S.
|
|
11
|
+
export declare const Orientation: S.Literals<readonly ["Vertical", "Horizontal"]>;
|
|
12
12
|
export type Orientation = typeof Orientation.Type;
|
|
13
13
|
/** Schema fields shared by all listbox variants (single-select and multi-select). Spread into each variant's `S.Struct` to avoid duplicating field definitions. */
|
|
14
14
|
export declare const BaseModel: S.Struct<{
|
|
15
|
-
id:
|
|
16
|
-
isOpen:
|
|
17
|
-
isAnimated:
|
|
18
|
-
isModal:
|
|
19
|
-
orientation: S.
|
|
20
|
-
animation: S.Struct<{
|
|
21
|
-
id:
|
|
22
|
-
isShowing:
|
|
23
|
-
transitionState: S.
|
|
15
|
+
readonly id: S.String;
|
|
16
|
+
readonly isOpen: S.Boolean;
|
|
17
|
+
readonly isAnimated: S.Boolean;
|
|
18
|
+
readonly isModal: S.Boolean;
|
|
19
|
+
readonly orientation: S.Literals<readonly ["Vertical", "Horizontal"]>;
|
|
20
|
+
readonly animation: S.Struct<{
|
|
21
|
+
readonly id: S.String;
|
|
22
|
+
readonly isShowing: S.Boolean;
|
|
23
|
+
readonly transitionState: S.Literals<readonly ["Idle", "EnterStart", "EnterAnimating", "LeaveStart", "LeaveAnimating"]>;
|
|
24
24
|
}>;
|
|
25
|
-
maybeActiveItemIndex: S.
|
|
26
|
-
activationTrigger: S.
|
|
27
|
-
searchQuery:
|
|
28
|
-
searchVersion:
|
|
29
|
-
maybeLastPointerPosition: S.
|
|
30
|
-
screenX:
|
|
31
|
-
screenY:
|
|
25
|
+
readonly maybeActiveItemIndex: S.Option<S.Number>;
|
|
26
|
+
readonly activationTrigger: S.Literals<readonly ["Pointer", "Keyboard"]>;
|
|
27
|
+
readonly searchQuery: S.String;
|
|
28
|
+
readonly searchVersion: S.Number;
|
|
29
|
+
readonly maybeLastPointerPosition: S.Option<S.Struct<{
|
|
30
|
+
readonly screenX: S.Number;
|
|
31
|
+
readonly screenY: S.Number;
|
|
32
32
|
}>>;
|
|
33
|
-
maybeLastButtonPointerType: S.
|
|
33
|
+
readonly maybeLastButtonPointerType: S.Option<S.String>;
|
|
34
34
|
}>;
|
|
35
35
|
export type BaseModel = typeof BaseModel.Type;
|
|
36
36
|
/** Configuration fields shared by all listbox variant `init` functions. */
|
|
@@ -44,7 +44,7 @@ export type BaseInitConfig = Readonly<{
|
|
|
44
44
|
export declare const baseInit: (config: BaseInitConfig) => BaseModel;
|
|
45
45
|
/** Sent when the listbox opens via button click or keyboard. Contains an optional initial active item index — None for pointer, Some for keyboard. */
|
|
46
46
|
export declare const Opened: import("../../schema/index.js").CallableTaggedStruct<"Opened", {
|
|
47
|
-
maybeActiveItemIndex: S.
|
|
47
|
+
maybeActiveItemIndex: S.Option<S.Number>;
|
|
48
48
|
}>;
|
|
49
49
|
/** Sent when the listbox closes via Escape key or backdrop click. */
|
|
50
50
|
export declare const Closed: import("../../schema/index.js").CallableTaggedStruct<"Closed", {}>;
|
|
@@ -52,33 +52,33 @@ export declare const Closed: import("../../schema/index.js").CallableTaggedStruc
|
|
|
52
52
|
export declare const BlurredItems: import("../../schema/index.js").CallableTaggedStruct<"BlurredItems", {}>;
|
|
53
53
|
/** Sent when an item is highlighted via arrow keys or mouse hover. Includes activation trigger. */
|
|
54
54
|
export declare const ActivatedItem: import("../../schema/index.js").CallableTaggedStruct<"ActivatedItem", {
|
|
55
|
-
index:
|
|
56
|
-
activationTrigger: S.
|
|
55
|
+
index: S.Number;
|
|
56
|
+
activationTrigger: S.Literals<readonly ["Pointer", "Keyboard"]>;
|
|
57
57
|
}>;
|
|
58
58
|
/** Sent when the mouse leaves an enabled item. */
|
|
59
59
|
export declare const DeactivatedItem: import("../../schema/index.js").CallableTaggedStruct<"DeactivatedItem", {}>;
|
|
60
60
|
/** Sent when an item is selected via Enter, Space, or click. Contains the item's string value. */
|
|
61
61
|
export declare const SelectedItem: import("../../schema/index.js").CallableTaggedStruct<"SelectedItem", {
|
|
62
|
-
item:
|
|
62
|
+
item: S.String;
|
|
63
63
|
}>;
|
|
64
64
|
/** Sent when Enter or Space is pressed on the active item, triggering a programmatic click on the DOM element. */
|
|
65
65
|
export declare const RequestedItemClick: import("../../schema/index.js").CallableTaggedStruct<"RequestedItemClick", {
|
|
66
|
-
index:
|
|
66
|
+
index: S.Number;
|
|
67
67
|
}>;
|
|
68
68
|
/** Sent when a printable character is typed for typeahead search. */
|
|
69
69
|
export declare const Searched: import("../../schema/index.js").CallableTaggedStruct<"Searched", {
|
|
70
|
-
key:
|
|
71
|
-
maybeTargetIndex: S.
|
|
70
|
+
key: S.String;
|
|
71
|
+
maybeTargetIndex: S.Option<S.Number>;
|
|
72
72
|
}>;
|
|
73
73
|
/** Sent after the search debounce period to clear the accumulated query. */
|
|
74
74
|
export declare const ClearedSearch: import("../../schema/index.js").CallableTaggedStruct<"ClearedSearch", {
|
|
75
|
-
version:
|
|
75
|
+
version: S.Number;
|
|
76
76
|
}>;
|
|
77
77
|
/** Sent when the pointer moves over a listbox item, carrying screen coordinates for tracked-pointer comparison. */
|
|
78
78
|
export declare const MovedPointerOverItem: import("../../schema/index.js").CallableTaggedStruct<"MovedPointerOverItem", {
|
|
79
|
-
index:
|
|
80
|
-
screenX:
|
|
81
|
-
screenY:
|
|
79
|
+
index: S.Number;
|
|
80
|
+
screenX: S.Number;
|
|
81
|
+
screenY: S.Number;
|
|
82
82
|
}>;
|
|
83
83
|
/** Sent when the scroll lock command completes. */
|
|
84
84
|
export declare const CompletedLockScroll: import("../../schema/index.js").CallableTaggedStruct<"CompletedLockScroll", {}>;
|
|
@@ -110,8 +110,8 @@ export declare const GotAnimationMessage: import("../../schema/index.js").Callab
|
|
|
110
110
|
}>;
|
|
111
111
|
/** Sent when the user presses a pointer device on the listbox button. Records pointer type for click handling. */
|
|
112
112
|
export declare const PressedPointerOnButton: import("../../schema/index.js").CallableTaggedStruct<"PressedPointerOnButton", {
|
|
113
|
-
pointerType:
|
|
114
|
-
button:
|
|
113
|
+
pointerType: S.String;
|
|
114
|
+
button: S.Number;
|
|
115
115
|
}>;
|
|
116
116
|
/** Union of all messages the listbox component can produce. */
|
|
117
117
|
export declare const Message: S.Union<[
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAIN,MAAM,EAEN,MAAM,IAAI,CAAC,EAGZ,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,IAAI,EAGV,MAAM,qBAAqB,CAAA;AAM5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAoBhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAEvD,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAIhC,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/shared.ts"],"names":[],"mappings":"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"}
|