foldkit 0.89.0 → 0.90.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 +19 -10
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +3 -11
- package/dist/devTools/overlay.d.ts +3 -3
- package/dist/devTools/overlay.d.ts.map +1 -1
- package/dist/devTools/overlay.js +209 -171
- package/dist/devTools/protocol.d.ts +77 -19
- package/dist/devTools/protocol.d.ts.map +1 -1
- package/dist/devTools/protocol.js +10 -5
- package/dist/devTools/serialize.d.ts +8 -2
- package/dist/devTools/serialize.d.ts.map +1 -1
- package/dist/devTools/serialize.js +11 -2
- package/dist/devTools/store.d.ts +9 -5
- package/dist/devTools/store.d.ts.map +1 -1
- package/dist/devTools/store.js +13 -13
- package/dist/devTools/webSocketBridge.d.ts.map +1 -1
- package/dist/devTools/webSocketBridge.js +2 -2
- package/dist/html/index.d.ts +12 -0
- package/dist/html/index.d.ts.map +1 -1
- package/dist/html/index.js +20 -4
- package/dist/mount/index.d.ts +64 -21
- package/dist/mount/index.d.ts.map +1 -1
- package/dist/mount/index.js +43 -32
- package/dist/mount/public.d.ts +1 -1
- package/dist/mount/public.d.ts.map +1 -1
- package/dist/runtime/crashUI.js +30 -30
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +4 -4
- package/dist/test/apps/bubbling.js +4 -4
- package/dist/test/apps/disabledButton.js +10 -10
- package/dist/test/apps/fileUpload.d.ts.map +1 -1
- package/dist/test/apps/fileUpload.js +13 -13
- package/dist/test/apps/interactions.d.ts.map +1 -1
- package/dist/test/apps/interactions.js +15 -15
- package/dist/test/apps/keypress.js +8 -8
- package/dist/test/apps/login.d.ts.map +1 -1
- package/dist/test/apps/login.js +32 -24
- package/dist/test/apps/logoutButton.d.ts.map +1 -1
- package/dist/test/apps/logoutButton.js +2 -2
- package/dist/test/apps/mountPanel.d.ts +19 -3
- package/dist/test/apps/mountPanel.d.ts.map +1 -1
- package/dist/test/apps/mountPanel.js +41 -20
- package/dist/test/apps/multiRole.js +3 -3
- package/dist/test/apps/pointer.d.ts.map +1 -1
- package/dist/test/apps/pointer.js +11 -11
- package/dist/test/apps/resumeUpload.d.ts.map +1 -1
- package/dist/test/apps/resumeUpload.js +8 -8
- package/dist/test/internal.d.ts +50 -20
- package/dist/test/internal.d.ts.map +1 -1
- package/dist/test/internal.js +65 -74
- package/dist/test/scene.d.ts +7 -7
- package/dist/test/scene.d.ts.map +1 -1
- package/dist/test/scene.js +42 -37
- package/dist/test/story.d.ts.map +1 -1
- package/dist/test/story.js +2 -2
- package/dist/ui/anchor.d.ts +12 -8
- package/dist/ui/anchor.d.ts.map +1 -1
- package/dist/ui/anchor.js +41 -16
- package/dist/ui/animation/index.js +24 -24
- package/dist/ui/button/index.d.ts.map +1 -1
- package/dist/ui/button/index.js +6 -6
- package/dist/ui/calendar/index.d.ts.map +1 -1
- package/dist/ui/calendar/index.js +101 -99
- package/dist/ui/checkbox/index.d.ts.map +1 -1
- package/dist/ui/checkbox/index.js +15 -15
- package/dist/ui/combobox/multi.d.ts +1 -7
- package/dist/ui/combobox/multi.d.ts.map +1 -1
- package/dist/ui/combobox/shared.d.ts +14 -5
- package/dist/ui/combobox/shared.d.ts.map +1 -1
- package/dist/ui/combobox/shared.js +137 -125
- package/dist/ui/combobox/single.d.ts +1 -7
- package/dist/ui/combobox/single.d.ts.map +1 -1
- package/dist/ui/datePicker/index.js +4 -4
- package/dist/ui/dialog/index.d.ts.map +1 -1
- package/dist/ui/dialog/index.js +27 -27
- package/dist/ui/disclosure/index.d.ts.map +1 -1
- package/dist/ui/disclosure/index.js +24 -22
- package/dist/ui/dragAndDrop/index.d.ts.map +1 -1
- package/dist/ui/dragAndDrop/index.js +15 -15
- package/dist/ui/fieldset/index.js +6 -6
- package/dist/ui/fileDrop/index.d.ts +2 -2
- package/dist/ui/fileDrop/index.d.ts.map +1 -1
- package/dist/ui/fileDrop/index.js +16 -16
- package/dist/ui/input/index.d.ts.map +1 -1
- package/dist/ui/input/index.js +15 -13
- package/dist/ui/listbox/multi.d.ts +1 -7
- package/dist/ui/listbox/multi.d.ts.map +1 -1
- package/dist/ui/listbox/shared.d.ts +12 -3
- package/dist/ui/listbox/shared.d.ts.map +1 -1
- package/dist/ui/listbox/shared.js +91 -89
- package/dist/ui/listbox/single.d.ts +1 -7
- package/dist/ui/listbox/single.d.ts.map +1 -1
- package/dist/ui/menu/index.d.ts +12 -3
- package/dist/ui/menu/index.d.ts.map +1 -1
- package/dist/ui/menu/index.js +75 -77
- package/dist/ui/popover/index.d.ts +13 -3
- package/dist/ui/popover/index.d.ts.map +1 -1
- package/dist/ui/popover/index.js +62 -53
- package/dist/ui/radioGroup/index.d.ts.map +1 -1
- package/dist/ui/radioGroup/index.js +20 -20
- package/dist/ui/select/index.d.ts.map +1 -1
- package/dist/ui/select/index.js +13 -11
- package/dist/ui/slider/index.d.ts.map +1 -1
- package/dist/ui/slider/index.js +26 -26
- package/dist/ui/switch/index.d.ts.map +1 -1
- package/dist/ui/switch/index.js +14 -14
- package/dist/ui/tabs/index.d.ts.map +1 -1
- package/dist/ui/tabs/index.js +40 -36
- package/dist/ui/textarea/index.d.ts.map +1 -1
- package/dist/ui/textarea/index.js +15 -13
- package/dist/ui/toast/index.d.ts.map +1 -1
- package/dist/ui/toast/index.js +27 -27
- package/dist/ui/tooltip/index.d.ts +11 -2
- package/dist/ui/tooltip/index.d.ts.map +1 -1
- package/dist/ui/tooltip/index.js +33 -33
- package/dist/ui/virtualList/index.d.ts.map +1 -1
- package/dist/ui/virtualList/index.js +18 -15
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@ import { html, } from '../../html/index.js';
|
|
|
6
6
|
import { m } from '../../message/index.js';
|
|
7
7
|
import * as Mount from '../../mount/index.js';
|
|
8
8
|
import { makeConstrainedEvo } from '../../struct/index.js';
|
|
9
|
-
import { anchorSetup, portalToBody } from '../anchor.js';
|
|
9
|
+
import { AnchorConfig, anchorSetup, portalToBody } from '../anchor.js';
|
|
10
10
|
// NOTE: Animation imports are split across schema + update to avoid a circular
|
|
11
11
|
// dependency: animation → html → runtime → devtools → listbox → animation.
|
|
12
12
|
// The barrel (../animation) imports from html, which starts the cycle.
|
|
@@ -363,17 +363,19 @@ export const makeUpdate = (handleSelectedItem) => {
|
|
|
363
363
|
/** The anchor-positioning Mount this Listbox renders when an anchor is
|
|
364
364
|
* configured. Exposed so Scene tests can call
|
|
365
365
|
* `Scene.Mount.resolve(AnchorListbox, CompletedAnchorListbox())`. */
|
|
366
|
-
export const AnchorListbox = Mount.define('AnchorListbox', CompletedAnchorListbox)
|
|
366
|
+
export const AnchorListbox = Mount.define('AnchorListbox', { buttonId: S.String, anchor: AnchorConfig }, CompletedAnchorListbox)(({ buttonId, anchor }) => (element) => Effect.sync(() => {
|
|
367
|
+
const cleanup = anchorSetup({ buttonId, anchor })(element);
|
|
368
|
+
return { message: CompletedAnchorListbox(), cleanup };
|
|
369
|
+
}));
|
|
367
370
|
/** The backdrop-portaling Mount this Listbox renders. Exposed so Scene tests can
|
|
368
371
|
* call `Scene.Mount.resolve(PortalListboxBackdrop, CompletedPortalListboxBackdrop())` to
|
|
369
372
|
* acknowledge the mount produced by the rendered backdrop. */
|
|
370
|
-
export const PortalListboxBackdrop = Mount.define('PortalListboxBackdrop', CompletedPortalListboxBackdrop)
|
|
371
|
-
const portalListboxBackdrop = PortalListboxBackdrop((element) => Effect.sync(() => {
|
|
373
|
+
export const PortalListboxBackdrop = Mount.define('PortalListboxBackdrop', CompletedPortalListboxBackdrop)((element) => Effect.sync(() => {
|
|
372
374
|
const cleanup = portalToBody(element);
|
|
373
375
|
return { message: CompletedPortalListboxBackdrop(), cleanup };
|
|
374
376
|
}));
|
|
375
377
|
export const makeView = (behavior) => (config) => {
|
|
376
|
-
const
|
|
378
|
+
const h = html();
|
|
377
379
|
const { model: { id, isOpen, orientation, animation: { transitionState }, maybeActiveItemIndex, searchQuery, maybeLastButtonPointerType, }, toParentMessage, onSelectedItem, items, itemToConfig, isItemDisabled, isButtonDisabled, buttonContent, buttonClassName, buttonAttributes = [], itemsClassName, itemsAttributes = [], itemsScrollClassName, itemsScrollAttributes = [], backdropClassName, backdropAttributes = [], className, attributes = [], itemGroupKey, groupToHeading, groupClassName, groupAttributes = [], separatorClassName, separatorAttributes = [], anchor, name, form, isDisabled, isInvalid, } = config;
|
|
378
380
|
const itemToValue = config.itemToValue ?? (item => String(item));
|
|
379
381
|
const itemToSearchText = config.itemToSearchText ?? (item => itemToValue(item));
|
|
@@ -383,19 +385,19 @@ export const makeView = (behavior) => (config) => {
|
|
|
383
385
|
const isLeaving = transitionState === 'LeaveStart' || transitionState === 'LeaveAnimating';
|
|
384
386
|
const isVisible = isOpen || isLeaving;
|
|
385
387
|
const animationAttributes = M.value(transitionState).pipe(M.when('EnterStart', () => [
|
|
386
|
-
DataAttribute('closed', ''),
|
|
387
|
-
DataAttribute('enter', ''),
|
|
388
|
-
DataAttribute('transition', ''),
|
|
388
|
+
h.DataAttribute('closed', ''),
|
|
389
|
+
h.DataAttribute('enter', ''),
|
|
390
|
+
h.DataAttribute('transition', ''),
|
|
389
391
|
]), M.when('EnterAnimating', () => [
|
|
390
|
-
DataAttribute('enter', ''),
|
|
391
|
-
DataAttribute('transition', ''),
|
|
392
|
+
h.DataAttribute('enter', ''),
|
|
393
|
+
h.DataAttribute('transition', ''),
|
|
392
394
|
]), M.when('LeaveStart', () => [
|
|
393
|
-
DataAttribute('leave', ''),
|
|
394
|
-
DataAttribute('transition', ''),
|
|
395
|
+
h.DataAttribute('leave', ''),
|
|
396
|
+
h.DataAttribute('transition', ''),
|
|
395
397
|
]), M.when('LeaveAnimating', () => [
|
|
396
|
-
DataAttribute('closed', ''),
|
|
397
|
-
DataAttribute('leave', ''),
|
|
398
|
-
DataAttribute('transition', ''),
|
|
398
|
+
h.DataAttribute('closed', ''),
|
|
399
|
+
h.DataAttribute('leave', ''),
|
|
400
|
+
h.DataAttribute('transition', ''),
|
|
399
401
|
]), M.orElse(() => []));
|
|
400
402
|
const isItemDisabledByIndex = (index) => Predicate.isNotUndefined(isItemDisabled) &&
|
|
401
403
|
pipe(items, Array.get(index), Option.exists(item => isItemDisabled(item, index)));
|
|
@@ -457,63 +459,57 @@ export const makeView = (behavior) => (config) => {
|
|
|
457
459
|
activationTrigger: 'Keyboard',
|
|
458
460
|
})))), M.when(isPrintableKey, () => searchForKey(key)), M.orElse(() => Option.none()));
|
|
459
461
|
const resolvedButtonAttributes = [
|
|
460
|
-
Id(`${id}-button`),
|
|
461
|
-
Type('button'),
|
|
462
|
-
AriaHasPopup('listbox'),
|
|
463
|
-
AriaExpanded(isVisible),
|
|
464
|
-
AriaControls(`${id}-items`),
|
|
462
|
+
h.Id(`${id}-button`),
|
|
463
|
+
h.Type('button'),
|
|
464
|
+
h.AriaHasPopup('listbox'),
|
|
465
|
+
h.AriaExpanded(isVisible),
|
|
466
|
+
h.AriaControls(`${id}-items`),
|
|
465
467
|
...(isButtonEffectivelyDisabled
|
|
466
|
-
? [AriaDisabled(true), DataAttribute('disabled', '')]
|
|
468
|
+
? [h.AriaDisabled(true), h.DataAttribute('disabled', '')]
|
|
467
469
|
: [
|
|
468
|
-
OnPointerDown(handleButtonPointerDown),
|
|
469
|
-
OnKeyDownPreventDefault(handleButtonKeyDown),
|
|
470
|
-
OnKeyUpPreventDefault(handleSpaceKeyUp),
|
|
471
|
-
OnClick(handleButtonClick()),
|
|
470
|
+
h.OnPointerDown(handleButtonPointerDown),
|
|
471
|
+
h.OnKeyDownPreventDefault(handleButtonKeyDown),
|
|
472
|
+
h.OnKeyUpPreventDefault(handleSpaceKeyUp),
|
|
473
|
+
h.OnClick(handleButtonClick()),
|
|
472
474
|
]),
|
|
473
475
|
...(isVisible
|
|
474
476
|
? [
|
|
475
|
-
DataAttribute('open', ''),
|
|
476
|
-
Style({ position: 'relative', zIndex: '1' }),
|
|
477
|
+
h.DataAttribute('open', ''),
|
|
478
|
+
h.Style({ position: 'relative', zIndex: '1' }),
|
|
477
479
|
]
|
|
478
480
|
: []),
|
|
479
|
-
...(isInvalid ? [DataAttribute('invalid', '')] : []),
|
|
480
|
-
...(buttonClassName ? [Class(buttonClassName)] : []),
|
|
481
|
+
...(isInvalid ? [h.DataAttribute('invalid', '')] : []),
|
|
482
|
+
...(buttonClassName ? [h.Class(buttonClassName)] : []),
|
|
481
483
|
...buttonAttributes,
|
|
482
484
|
];
|
|
483
485
|
const maybeActiveDescendant = Option.match(maybeActiveItemIndex, {
|
|
484
486
|
onNone: () => [],
|
|
485
|
-
onSome: index => [AriaActiveDescendant(itemId(id, index))],
|
|
487
|
+
onSome: index => [h.AriaActiveDescendant(itemId(id, index))],
|
|
486
488
|
});
|
|
487
489
|
const anchorAttributes = anchor
|
|
488
490
|
? [
|
|
489
|
-
Style({ position: 'absolute', margin: '0', visibility: 'hidden' }),
|
|
490
|
-
OnMount(Mount.mapMessage(AnchorListbox(
|
|
491
|
-
const cleanup = anchorSetup({
|
|
492
|
-
buttonId: `${id}-button`,
|
|
493
|
-
anchor,
|
|
494
|
-
})(items);
|
|
495
|
-
return { message: CompletedAnchorListbox(), cleanup };
|
|
496
|
-
})), toParentMessage)),
|
|
491
|
+
h.Style({ position: 'absolute', margin: '0', visibility: 'hidden' }),
|
|
492
|
+
h.OnMount(Mount.mapMessage(AnchorListbox({ buttonId: `${id}-button`, anchor }), toParentMessage)),
|
|
497
493
|
]
|
|
498
494
|
: [];
|
|
499
495
|
const itemsContainerAttributes = [
|
|
500
|
-
Id(`${id}-items`),
|
|
501
|
-
Role('listbox'),
|
|
502
|
-
AriaOrientation(Str.toLowerCase(orientation)),
|
|
503
|
-
...(behavior.ariaMultiSelectable ? [AriaMultiSelectable(true)] : []),
|
|
504
|
-
AriaLabelledBy(`${id}-button`),
|
|
496
|
+
h.Id(`${id}-items`),
|
|
497
|
+
h.Role('listbox'),
|
|
498
|
+
h.AriaOrientation(Str.toLowerCase(orientation)),
|
|
499
|
+
...(behavior.ariaMultiSelectable ? [h.AriaMultiSelectable(true)] : []),
|
|
500
|
+
h.AriaLabelledBy(`${id}-button`),
|
|
505
501
|
...maybeActiveDescendant,
|
|
506
|
-
Tabindex(0),
|
|
502
|
+
h.Tabindex(0),
|
|
507
503
|
...anchorAttributes,
|
|
508
504
|
...animationAttributes,
|
|
509
505
|
...(isLeaving
|
|
510
506
|
? []
|
|
511
507
|
: [
|
|
512
|
-
OnKeyDownPreventDefault(handleItemsKeyDown),
|
|
513
|
-
OnKeyUpPreventDefault(handleSpaceKeyUp),
|
|
514
|
-
OnBlur(toParentMessage(BlurredItems())),
|
|
508
|
+
h.OnKeyDownPreventDefault(handleItemsKeyDown),
|
|
509
|
+
h.OnKeyUpPreventDefault(handleSpaceKeyUp),
|
|
510
|
+
h.OnBlur(toParentMessage(BlurredItems())),
|
|
515
511
|
]),
|
|
516
|
-
...(itemsClassName ? [Class(itemsClassName)] : []),
|
|
512
|
+
...(itemsClassName ? [h.Class(itemsClassName)] : []),
|
|
517
513
|
...itemsAttributes,
|
|
518
514
|
];
|
|
519
515
|
const listboxItems = Array.map(items, (item, index) => {
|
|
@@ -526,27 +522,27 @@ export const makeView = (behavior) => (config) => {
|
|
|
526
522
|
isSelected: isSelectedItem,
|
|
527
523
|
});
|
|
528
524
|
const isInteractive = !isDisabledItem && !isLeaving;
|
|
529
|
-
return keyed('div')(itemId(id, index), [
|
|
530
|
-
Id(itemId(id, index)),
|
|
531
|
-
Role('option'),
|
|
532
|
-
AriaSelected(isSelectedItem),
|
|
533
|
-
...(isActiveItem ? [DataAttribute('active', '')] : []),
|
|
534
|
-
...(isSelectedItem ? [DataAttribute('selected', '')] : []),
|
|
525
|
+
return h.keyed('div')(itemId(id, index), [
|
|
526
|
+
h.Id(itemId(id, index)),
|
|
527
|
+
h.Role('option'),
|
|
528
|
+
h.AriaSelected(isSelectedItem),
|
|
529
|
+
...(isActiveItem ? [h.DataAttribute('active', '')] : []),
|
|
530
|
+
...(isSelectedItem ? [h.DataAttribute('selected', '')] : []),
|
|
535
531
|
...(isDisabledItem
|
|
536
|
-
? [AriaDisabled(true), DataAttribute('disabled', '')]
|
|
532
|
+
? [h.AriaDisabled(true), h.DataAttribute('disabled', '')]
|
|
537
533
|
: []),
|
|
538
534
|
...(isInteractive
|
|
539
535
|
? [
|
|
540
|
-
OnClick(dispatchSelectedItem(itemToValue(item))),
|
|
536
|
+
h.OnClick(dispatchSelectedItem(itemToValue(item))),
|
|
541
537
|
...(isActiveItem
|
|
542
538
|
? []
|
|
543
539
|
: [
|
|
544
|
-
OnPointerMove((screenX, screenY, pointerType) => OptionExt.when(pointerType !== 'touch', toParentMessage(MovedPointerOverItem({ index, screenX, screenY })))),
|
|
540
|
+
h.OnPointerMove((screenX, screenY, pointerType) => OptionExt.when(pointerType !== 'touch', toParentMessage(MovedPointerOverItem({ index, screenX, screenY })))),
|
|
545
541
|
]),
|
|
546
|
-
OnPointerLeave(pointerType => OptionExt.when(pointerType !== 'touch', toParentMessage(DeactivatedItem()))),
|
|
542
|
+
h.OnPointerLeave(pointerType => OptionExt.when(pointerType !== 'touch', toParentMessage(DeactivatedItem()))),
|
|
547
543
|
]
|
|
548
544
|
: []),
|
|
549
|
-
...(itemConfig.className ? [Class(itemConfig.className)] : []),
|
|
545
|
+
...(itemConfig.className ? [h.Class(itemConfig.className)] : []),
|
|
550
546
|
], [itemConfig.content]);
|
|
551
547
|
});
|
|
552
548
|
const renderGroupedItems = () => {
|
|
@@ -563,27 +559,31 @@ export const makeView = (behavior) => (config) => {
|
|
|
563
559
|
const headingElement = Option.match(maybeHeading, {
|
|
564
560
|
onNone: () => [],
|
|
565
561
|
onSome: heading => [
|
|
566
|
-
keyed('div')(headingId, [
|
|
567
|
-
Id(headingId),
|
|
568
|
-
Role('presentation'),
|
|
569
|
-
...(heading.className ? [Class(heading.className)] : []),
|
|
562
|
+
h.keyed('div')(headingId, [
|
|
563
|
+
h.Id(headingId),
|
|
564
|
+
h.Role('presentation'),
|
|
565
|
+
...(heading.className ? [h.Class(heading.className)] : []),
|
|
570
566
|
], [heading.content]),
|
|
571
567
|
],
|
|
572
568
|
});
|
|
573
569
|
const groupContent = [...headingElement, ...segment.items];
|
|
574
|
-
const groupElement = keyed('div')(`${id}-group-${segment.key}`, [
|
|
575
|
-
Role('group'),
|
|
576
|
-
...(Option.isSome(maybeHeading)
|
|
577
|
-
|
|
570
|
+
const groupElement = h.keyed('div')(`${id}-group-${segment.key}`, [
|
|
571
|
+
h.Role('group'),
|
|
572
|
+
...(Option.isSome(maybeHeading)
|
|
573
|
+
? [h.AriaLabelledBy(headingId)]
|
|
574
|
+
: []),
|
|
575
|
+
...(groupClassName ? [h.Class(groupClassName)] : []),
|
|
578
576
|
...groupAttributes,
|
|
579
577
|
], groupContent);
|
|
580
578
|
const separator = segmentIndex > 0 &&
|
|
581
579
|
(separatorClassName ||
|
|
582
580
|
Array.isReadonlyArrayNonEmpty(separatorAttributes))
|
|
583
581
|
? [
|
|
584
|
-
keyed('div')(`${id}-separator-${segmentIndex}`, [
|
|
585
|
-
Role('separator'),
|
|
586
|
-
...(separatorClassName
|
|
582
|
+
h.keyed('div')(`${id}-separator-${segmentIndex}`, [
|
|
583
|
+
h.Role('separator'),
|
|
584
|
+
...(separatorClassName
|
|
585
|
+
? [h.Class(separatorClassName)]
|
|
586
|
+
: []),
|
|
587
587
|
...separatorAttributes,
|
|
588
588
|
], []),
|
|
589
589
|
]
|
|
@@ -591,50 +591,52 @@ export const makeView = (behavior) => (config) => {
|
|
|
591
591
|
return [...separator, groupElement];
|
|
592
592
|
});
|
|
593
593
|
};
|
|
594
|
-
const backdrop = keyed('div')(`${id}-backdrop`, [
|
|
595
|
-
OnMount(Mount.mapMessage(
|
|
596
|
-
...(isLeaving ? [] : [OnClick(toParentMessage(Closed()))]),
|
|
597
|
-
...(backdropClassName ? [Class(backdropClassName)] : []),
|
|
594
|
+
const backdrop = h.keyed('div')(`${id}-backdrop`, [
|
|
595
|
+
h.OnMount(Mount.mapMessage(PortalListboxBackdrop(), toParentMessage)),
|
|
596
|
+
...(isLeaving ? [] : [h.OnClick(toParentMessage(Closed()))]),
|
|
597
|
+
...(backdropClassName ? [h.Class(backdropClassName)] : []),
|
|
598
598
|
...backdropAttributes,
|
|
599
599
|
], []);
|
|
600
600
|
const renderedItems = renderGroupedItems();
|
|
601
601
|
const scrollableItems = itemsScrollClassName ||
|
|
602
602
|
Array.isReadonlyArrayNonEmpty(itemsScrollAttributes)
|
|
603
603
|
? [
|
|
604
|
-
div([
|
|
605
|
-
...(itemsScrollClassName
|
|
604
|
+
h.div([
|
|
605
|
+
...(itemsScrollClassName
|
|
606
|
+
? [h.Class(itemsScrollClassName)]
|
|
607
|
+
: []),
|
|
606
608
|
...itemsScrollAttributes,
|
|
607
609
|
], renderedItems),
|
|
608
610
|
]
|
|
609
611
|
: renderedItems;
|
|
610
612
|
const visibleContent = [
|
|
611
613
|
backdrop,
|
|
612
|
-
keyed('div')(`${id}-items-container`, itemsContainerAttributes, scrollableItems),
|
|
614
|
+
h.keyed('div')(`${id}-items-container`, itemsContainerAttributes, scrollableItems),
|
|
613
615
|
];
|
|
614
|
-
const formAttribute = form ? [Attribute('form', form)] : [];
|
|
616
|
+
const formAttribute = form ? [h.Attribute('form', form)] : [];
|
|
615
617
|
const selectedValues = pipe(items, Array.filter(item => behavior.isItemSelected(config.model, itemToValue(item))), Array.map(itemToValue));
|
|
616
618
|
const hiddenInputs = name
|
|
617
619
|
? Array.match(selectedValues, {
|
|
618
620
|
onEmpty: () => [
|
|
619
|
-
input([Type('hidden'), Name(name), ...formAttribute]),
|
|
621
|
+
h.input([h.Type('hidden'), h.Name(name), ...formAttribute]),
|
|
620
622
|
],
|
|
621
|
-
onNonEmpty: Array.map(selectedValue => input([
|
|
622
|
-
Type('hidden'),
|
|
623
|
-
Name(name),
|
|
624
|
-
Value(selectedValue),
|
|
623
|
+
onNonEmpty: Array.map(selectedValue => h.input([
|
|
624
|
+
h.Type('hidden'),
|
|
625
|
+
h.Name(name),
|
|
626
|
+
h.Value(selectedValue),
|
|
625
627
|
...formAttribute,
|
|
626
628
|
])),
|
|
627
629
|
})
|
|
628
630
|
: [];
|
|
629
631
|
const wrapperAttributes = [
|
|
630
|
-
...(className ? [Class(className)] : []),
|
|
632
|
+
...(className ? [h.Class(className)] : []),
|
|
631
633
|
...attributes,
|
|
632
|
-
...(isVisible ? [DataAttribute('open', '')] : []),
|
|
633
|
-
...(isDisabled ? [DataAttribute('disabled', '')] : []),
|
|
634
|
-
...(isInvalid ? [DataAttribute('invalid', '')] : []),
|
|
634
|
+
...(isVisible ? [h.DataAttribute('open', '')] : []),
|
|
635
|
+
...(isDisabled ? [h.DataAttribute('disabled', '')] : []),
|
|
636
|
+
...(isInvalid ? [h.DataAttribute('invalid', '')] : []),
|
|
635
637
|
];
|
|
636
|
-
return div(wrapperAttributes, [
|
|
637
|
-
keyed('button')(`${id}-button`, resolvedButtonAttributes, [
|
|
638
|
+
return h.div(wrapperAttributes, [
|
|
639
|
+
h.keyed('button')(`${id}-button`, resolvedButtonAttributes, [
|
|
638
640
|
buttonContent,
|
|
639
641
|
]),
|
|
640
642
|
...hiddenInputs,
|
|
@@ -224,13 +224,7 @@ export declare const view: <ParentMessage, Item>(config: Readonly<{
|
|
|
224
224
|
groupAttributes?: readonly import("../../html/index.js").Attribute<ParentMessage>[];
|
|
225
225
|
separatorClassName?: string;
|
|
226
226
|
separatorAttributes?: readonly import("../../html/index.js").Attribute<ParentMessage>[];
|
|
227
|
-
anchor?:
|
|
228
|
-
placement?: import("@floating-ui/dom").Placement;
|
|
229
|
-
gap?: number;
|
|
230
|
-
offset?: number;
|
|
231
|
-
padding?: number;
|
|
232
|
-
portal?: boolean;
|
|
233
|
-
}>;
|
|
227
|
+
anchor?: import("./public.js").AnchorConfig;
|
|
234
228
|
name?: string;
|
|
235
229
|
form?: string;
|
|
236
230
|
isDisabled?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/single.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEnD,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,mJAAmJ;AACnJ,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,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAC,CAAA;AAEJ,6HAA6H;AAC7H,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAGxC,CAAA;AAIF,qIAAqI;AACrI,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;gGACgG;AAChG,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,uEAAuE;AACvE,MAAM,MAAM,UAAU,CAAC,aAAa,EAAE,IAAI,IAAI,cAAc,CAC1D,aAAa,EACb,IAAI,EACJ,KAAK,CACN,CAAA;AAED,2JAA2J;AAC3J,eAAO,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../../../src/ui/listbox/single.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEnD,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,mJAAmJ;AACnJ,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,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAC,CAAA;AAEJ,6HAA6H;AAC7H,eAAO,MAAM,IAAI,GAAI,QAAQ,UAAU,KAAG,KAGxC,CAAA;AAIF,qIAAqI;AACrI,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;gGACgG;AAChG,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,uEAAuE;AACvE,MAAM,MAAM,UAAU,CAAC,aAAa,EAAE,IAAI,IAAI,cAAc,CAC1D,aAAa,EACb,IAAI,EACJ,KAAK,CACN,CAAA;AAED,2JAA2J;AAC3J,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAWf,CAAA;AAEF;mFACmF;AACnF,eAAO,MAAM,IAAI,GAAI,aAAa,EAAE,IAAI,EACtC,cAAc,IAAI,CAChB,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,EAC/B,OAAO,GAAG,iBAAiB,GAAG,gBAAgB,CAC/C,KACA,CAAC,CACF,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,cAAc,CAC7B,aAAa,EACb,IAAI,EACJ,KAAK,CACN,CAAC,iBAAiB,CAAC,KACjB,IAAI,CAoBR,CAAA"}
|
package/dist/ui/menu/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Effect, Schema as S } from 'effect';
|
|
|
2
2
|
import * as Command from '../../command/index.js';
|
|
3
3
|
import { type Attribute, type Html } from '../../html/index.js';
|
|
4
4
|
import * as Mount from '../../mount/index.js';
|
|
5
|
-
import
|
|
5
|
+
import { AnchorConfig } from '../anchor.js';
|
|
6
6
|
import { groupContiguous } from '../group.js';
|
|
7
7
|
import { resolveTypeaheadMatch } from '../typeahead.js';
|
|
8
8
|
/** Schema for the activation trigger — whether the user interacted via mouse or keyboard. */
|
|
@@ -243,13 +243,22 @@ export declare const update: (model: Model, message: Message) => UpdateReturn;
|
|
|
243
243
|
/** The anchor-positioning Mount this Menu renders on its panel. Exposed so
|
|
244
244
|
* Scene tests can call `Scene.Mount.resolve(AnchorMenu, CompletedAnchorMenu())`
|
|
245
245
|
* to acknowledge the mount produced by the rendered panel. */
|
|
246
|
-
export declare const AnchorMenu: Mount.
|
|
246
|
+
export declare const AnchorMenu: Mount.MountDefinitionWithArgs<"AnchorMenu", {
|
|
247
|
+
buttonId: S.String;
|
|
248
|
+
anchor: S.Struct<{
|
|
249
|
+
readonly placement: S.optional<S.Literals<readonly ["top", "right", "bottom", "left", "top-start", "top-end", "right-start", "right-end", "bottom-start", "bottom-end", "left-start", "left-end"]>>;
|
|
250
|
+
readonly gap: S.optional<S.Number>;
|
|
251
|
+
readonly offset: S.optional<S.Number>;
|
|
252
|
+
readonly padding: S.optional<S.Number>;
|
|
253
|
+
readonly portal: S.optional<S.Boolean>;
|
|
254
|
+
}>;
|
|
255
|
+
}, {
|
|
247
256
|
readonly _tag: "CompletedAnchorMenu";
|
|
248
257
|
}>;
|
|
249
258
|
/** The backdrop-portaling Mount this Menu renders. Exposed so Scene tests can
|
|
250
259
|
* call `Scene.Mount.resolve(PortalMenuBackdrop, CompletedPortalMenuBackdrop())` to
|
|
251
260
|
* acknowledge the mount produced by the rendered backdrop. */
|
|
252
|
-
export declare const PortalMenuBackdrop: Mount.
|
|
261
|
+
export declare const PortalMenuBackdrop: Mount.MountDefinitionNoArgs<"PortalMenuBackdrop", {
|
|
253
262
|
readonly _tag: "CompletedPortalMenuBackdrop";
|
|
254
263
|
}>;
|
|
255
264
|
/** Programmatically opens the menu, updating the model and returning
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAKN,MAAM,IAAI,CAAC,EAGZ,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAA;AAGjD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,IAAI,EAIV,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/menu/index.ts"],"names":[],"mappings":"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"}
|