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
package/dist/ui/menu/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { createLazy, 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 { evo } 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 → menu → animation.
|
|
12
12
|
// The barrel (../animation) imports from html, which starts the cycle.
|
|
@@ -391,12 +391,14 @@ export const update = (model, message) => {
|
|
|
391
391
|
/** The anchor-positioning Mount this Menu renders on its panel. Exposed so
|
|
392
392
|
* Scene tests can call `Scene.Mount.resolve(AnchorMenu, CompletedAnchorMenu())`
|
|
393
393
|
* to acknowledge the mount produced by the rendered panel. */
|
|
394
|
-
export const AnchorMenu = Mount.define('AnchorMenu', CompletedAnchorMenu)
|
|
394
|
+
export const AnchorMenu = Mount.define('AnchorMenu', { buttonId: S.String, anchor: AnchorConfig }, CompletedAnchorMenu)(({ buttonId, anchor }) => (element) => Effect.sync(() => {
|
|
395
|
+
const cleanup = anchorSetup({ buttonId, anchor })(element);
|
|
396
|
+
return { message: CompletedAnchorMenu(), cleanup };
|
|
397
|
+
}));
|
|
395
398
|
/** The backdrop-portaling Mount this Menu renders. Exposed so Scene tests can
|
|
396
399
|
* call `Scene.Mount.resolve(PortalMenuBackdrop, CompletedPortalMenuBackdrop())` to
|
|
397
400
|
* acknowledge the mount produced by the rendered backdrop. */
|
|
398
|
-
export const PortalMenuBackdrop = Mount.define('PortalMenuBackdrop', CompletedPortalMenuBackdrop)
|
|
399
|
-
const portalMenuBackdrop = PortalMenuBackdrop((element) => Effect.sync(() => {
|
|
401
|
+
export const PortalMenuBackdrop = Mount.define('PortalMenuBackdrop', CompletedPortalMenuBackdrop)((element) => Effect.sync(() => {
|
|
400
402
|
const cleanup = portalToBody(element);
|
|
401
403
|
return { message: CompletedPortalMenuBackdrop(), cleanup };
|
|
402
404
|
}));
|
|
@@ -413,7 +415,7 @@ export { groupContiguous, resolveTypeaheadMatch };
|
|
|
413
415
|
const itemId = (id, index) => `${id}-item-${index}`;
|
|
414
416
|
/** Renders a headless menu with typeahead search, keyboard navigation, and aria-activedescendant focus management. */
|
|
415
417
|
export const view = (config) => {
|
|
416
|
-
const
|
|
418
|
+
const h = html();
|
|
417
419
|
const { model: { id, isOpen, animation: { transitionState }, maybeActiveItemIndex, searchQuery, maybeLastButtonPointerType, }, toParentMessage, onSelectedItem, items, itemToConfig, isItemDisabled, itemToSearchText = (item) => item, isButtonDisabled, buttonContent, buttonClassName, buttonAttributes = [], itemsClassName, itemsAttributes = [], itemsScrollClassName, itemsScrollAttributes = [], backdropClassName, backdropAttributes = [], className, attributes = [], itemGroupKey, groupToHeading, groupClassName, groupAttributes = [], separatorClassName, separatorAttributes = [], anchor, } = config;
|
|
418
420
|
const dispatchSelectedItem = (index) => onSelectedItem
|
|
419
421
|
? onSelectedItem(index)
|
|
@@ -421,19 +423,19 @@ export const view = (config) => {
|
|
|
421
423
|
const isLeaving = transitionState === 'LeaveStart' || transitionState === 'LeaveAnimating';
|
|
422
424
|
const isVisible = isOpen || isLeaving;
|
|
423
425
|
const animationAttributes = M.value(transitionState).pipe(M.when('EnterStart', () => [
|
|
424
|
-
DataAttribute('closed', ''),
|
|
425
|
-
DataAttribute('enter', ''),
|
|
426
|
-
DataAttribute('transition', ''),
|
|
426
|
+
h.DataAttribute('closed', ''),
|
|
427
|
+
h.DataAttribute('enter', ''),
|
|
428
|
+
h.DataAttribute('transition', ''),
|
|
427
429
|
]), M.when('EnterAnimating', () => [
|
|
428
|
-
DataAttribute('enter', ''),
|
|
429
|
-
DataAttribute('transition', ''),
|
|
430
|
+
h.DataAttribute('enter', ''),
|
|
431
|
+
h.DataAttribute('transition', ''),
|
|
430
432
|
]), M.when('LeaveStart', () => [
|
|
431
|
-
DataAttribute('leave', ''),
|
|
432
|
-
DataAttribute('transition', ''),
|
|
433
|
+
h.DataAttribute('leave', ''),
|
|
434
|
+
h.DataAttribute('transition', ''),
|
|
433
435
|
]), M.when('LeaveAnimating', () => [
|
|
434
|
-
DataAttribute('closed', ''),
|
|
435
|
-
DataAttribute('leave', ''),
|
|
436
|
-
DataAttribute('transition', ''),
|
|
436
|
+
h.DataAttribute('closed', ''),
|
|
437
|
+
h.DataAttribute('leave', ''),
|
|
438
|
+
h.DataAttribute('transition', ''),
|
|
437
439
|
]), M.orElse(() => []));
|
|
438
440
|
const isDisabled = (index) => Predicate.isNotUndefined(isItemDisabled) &&
|
|
439
441
|
pipe(items, Array.get(index), Option.exists(item => isItemDisabled(item, index)));
|
|
@@ -483,61 +485,55 @@ export const view = (config) => {
|
|
|
483
485
|
})))), M.when(isPrintableKey, () => searchForKey(key)), M.orElse(() => Option.none()));
|
|
484
486
|
const handleItemsPointerUp = (screenX, screenY, pointerType, timeStamp) => OptionExt.when(pointerType === 'mouse', toParentMessage(ReleasedPointerOnItems({ screenX, screenY, timeStamp })));
|
|
485
487
|
const resolvedButtonAttributes = [
|
|
486
|
-
Id(`${id}-button`),
|
|
487
|
-
Type('button'),
|
|
488
|
-
AriaHasPopup('menu'),
|
|
489
|
-
AriaExpanded(isVisible),
|
|
490
|
-
AriaControls(`${id}-items`),
|
|
488
|
+
h.Id(`${id}-button`),
|
|
489
|
+
h.Type('button'),
|
|
490
|
+
h.AriaHasPopup('menu'),
|
|
491
|
+
h.AriaExpanded(isVisible),
|
|
492
|
+
h.AriaControls(`${id}-items`),
|
|
491
493
|
...(isButtonDisabled
|
|
492
|
-
? [AriaDisabled(true), DataAttribute('disabled', '')]
|
|
494
|
+
? [h.AriaDisabled(true), h.DataAttribute('disabled', '')]
|
|
493
495
|
: [
|
|
494
|
-
OnPointerDown(handleButtonPointerDown),
|
|
495
|
-
OnKeyDownPreventDefault(handleButtonKeyDown),
|
|
496
|
-
OnKeyUpPreventDefault(handleSpaceKeyUp),
|
|
497
|
-
OnClick(handleButtonClick()),
|
|
496
|
+
h.OnPointerDown(handleButtonPointerDown),
|
|
497
|
+
h.OnKeyDownPreventDefault(handleButtonKeyDown),
|
|
498
|
+
h.OnKeyUpPreventDefault(handleSpaceKeyUp),
|
|
499
|
+
h.OnClick(handleButtonClick()),
|
|
498
500
|
]),
|
|
499
501
|
...(isVisible
|
|
500
502
|
? [
|
|
501
|
-
DataAttribute('open', ''),
|
|
502
|
-
Style({ position: 'relative', zIndex: '1' }),
|
|
503
|
+
h.DataAttribute('open', ''),
|
|
504
|
+
h.Style({ position: 'relative', zIndex: '1' }),
|
|
503
505
|
]
|
|
504
506
|
: []),
|
|
505
|
-
...(buttonClassName ? [Class(buttonClassName)] : []),
|
|
507
|
+
...(buttonClassName ? [h.Class(buttonClassName)] : []),
|
|
506
508
|
...buttonAttributes,
|
|
507
509
|
];
|
|
508
510
|
const maybeActiveDescendant = Option.match(maybeActiveItemIndex, {
|
|
509
511
|
onNone: () => [],
|
|
510
|
-
onSome: index => [AriaActiveDescendant(itemId(id, index))],
|
|
512
|
+
onSome: index => [h.AriaActiveDescendant(itemId(id, index))],
|
|
511
513
|
});
|
|
512
514
|
const anchorAttributes = anchor
|
|
513
515
|
? [
|
|
514
|
-
Style({ position: 'absolute', margin: '0', visibility: 'hidden' }),
|
|
515
|
-
OnMount(Mount.mapMessage(AnchorMenu(
|
|
516
|
-
const cleanup = anchorSetup({
|
|
517
|
-
buttonId: `${id}-button`,
|
|
518
|
-
anchor,
|
|
519
|
-
})(items);
|
|
520
|
-
return { message: CompletedAnchorMenu(), cleanup };
|
|
521
|
-
})), toParentMessage)),
|
|
516
|
+
h.Style({ position: 'absolute', margin: '0', visibility: 'hidden' }),
|
|
517
|
+
h.OnMount(Mount.mapMessage(AnchorMenu({ buttonId: `${id}-button`, anchor }), toParentMessage)),
|
|
522
518
|
]
|
|
523
519
|
: [];
|
|
524
520
|
const itemsContainerAttributes = [
|
|
525
|
-
Id(`${id}-items`),
|
|
526
|
-
Role('menu'),
|
|
527
|
-
AriaLabelledBy(`${id}-button`),
|
|
521
|
+
h.Id(`${id}-items`),
|
|
522
|
+
h.Role('menu'),
|
|
523
|
+
h.AriaLabelledBy(`${id}-button`),
|
|
528
524
|
...maybeActiveDescendant,
|
|
529
|
-
Tabindex(0),
|
|
525
|
+
h.Tabindex(0),
|
|
530
526
|
...anchorAttributes,
|
|
531
527
|
...animationAttributes,
|
|
532
528
|
...(isLeaving
|
|
533
529
|
? []
|
|
534
530
|
: [
|
|
535
|
-
OnKeyDownPreventDefault(handleItemsKeyDown),
|
|
536
|
-
OnKeyUpPreventDefault(handleSpaceKeyUp),
|
|
537
|
-
OnPointerUp(handleItemsPointerUp),
|
|
538
|
-
OnBlur(toParentMessage(BlurredItems())),
|
|
531
|
+
h.OnKeyDownPreventDefault(handleItemsKeyDown),
|
|
532
|
+
h.OnKeyUpPreventDefault(handleSpaceKeyUp),
|
|
533
|
+
h.OnPointerUp(handleItemsPointerUp),
|
|
534
|
+
h.OnBlur(toParentMessage(BlurredItems())),
|
|
539
535
|
]),
|
|
540
|
-
...(itemsClassName ? [Class(itemsClassName)] : []),
|
|
536
|
+
...(itemsClassName ? [h.Class(itemsClassName)] : []),
|
|
541
537
|
...itemsAttributes,
|
|
542
538
|
];
|
|
543
539
|
const menuItems = Array.map(items, (item, index) => {
|
|
@@ -548,25 +544,25 @@ export const view = (config) => {
|
|
|
548
544
|
isDisabled: isDisabledItem,
|
|
549
545
|
});
|
|
550
546
|
const isInteractive = !isDisabledItem && !isLeaving;
|
|
551
|
-
return keyed('div')(itemId(id, index), [
|
|
552
|
-
Id(itemId(id, index)),
|
|
553
|
-
Role('menuitem'),
|
|
554
|
-
...(isActiveItem ? [DataAttribute('active', '')] : []),
|
|
547
|
+
return h.keyed('div')(itemId(id, index), [
|
|
548
|
+
h.Id(itemId(id, index)),
|
|
549
|
+
h.Role('menuitem'),
|
|
550
|
+
...(isActiveItem ? [h.DataAttribute('active', '')] : []),
|
|
555
551
|
...(isDisabledItem
|
|
556
|
-
? [AriaDisabled(true), DataAttribute('disabled', '')]
|
|
552
|
+
? [h.AriaDisabled(true), h.DataAttribute('disabled', '')]
|
|
557
553
|
: []),
|
|
558
554
|
...(isInteractive
|
|
559
555
|
? [
|
|
560
|
-
OnClick(dispatchSelectedItem(index)),
|
|
556
|
+
h.OnClick(dispatchSelectedItem(index)),
|
|
561
557
|
...(isActiveItem
|
|
562
558
|
? []
|
|
563
559
|
: [
|
|
564
|
-
OnPointerMove((screenX, screenY, pointerType) => OptionExt.when(pointerType !== 'touch', toParentMessage(MovedPointerOverItem({ index, screenX, screenY })))),
|
|
560
|
+
h.OnPointerMove((screenX, screenY, pointerType) => OptionExt.when(pointerType !== 'touch', toParentMessage(MovedPointerOverItem({ index, screenX, screenY })))),
|
|
565
561
|
]),
|
|
566
|
-
OnPointerLeave(pointerType => OptionExt.when(pointerType !== 'touch', toParentMessage(DeactivatedItem()))),
|
|
562
|
+
h.OnPointerLeave(pointerType => OptionExt.when(pointerType !== 'touch', toParentMessage(DeactivatedItem()))),
|
|
567
563
|
]
|
|
568
564
|
: []),
|
|
569
|
-
...(itemConfig.className ? [Class(itemConfig.className)] : []),
|
|
565
|
+
...(itemConfig.className ? [h.Class(itemConfig.className)] : []),
|
|
570
566
|
], [itemConfig.content]);
|
|
571
567
|
});
|
|
572
568
|
const renderGroupedItems = () => {
|
|
@@ -583,27 +579,27 @@ export const view = (config) => {
|
|
|
583
579
|
const headingElement = Option.match(maybeHeading, {
|
|
584
580
|
onNone: () => [],
|
|
585
581
|
onSome: heading => [
|
|
586
|
-
keyed('div')(headingId, [
|
|
587
|
-
Id(headingId),
|
|
588
|
-
Role('presentation'),
|
|
589
|
-
...(heading.className ? [Class(heading.className)] : []),
|
|
582
|
+
h.keyed('div')(headingId, [
|
|
583
|
+
h.Id(headingId),
|
|
584
|
+
h.Role('presentation'),
|
|
585
|
+
...(heading.className ? [h.Class(heading.className)] : []),
|
|
590
586
|
], [heading.content]),
|
|
591
587
|
],
|
|
592
588
|
});
|
|
593
589
|
const groupContent = [...headingElement, ...segment.items];
|
|
594
|
-
const groupElement = keyed('div')(`${id}-group-${segment.key}`, [
|
|
595
|
-
Role('group'),
|
|
596
|
-
...(Option.isSome(maybeHeading) ? [AriaLabelledBy(headingId)] : []),
|
|
597
|
-
...(groupClassName ? [Class(groupClassName)] : []),
|
|
590
|
+
const groupElement = h.keyed('div')(`${id}-group-${segment.key}`, [
|
|
591
|
+
h.Role('group'),
|
|
592
|
+
...(Option.isSome(maybeHeading) ? [h.AriaLabelledBy(headingId)] : []),
|
|
593
|
+
...(groupClassName ? [h.Class(groupClassName)] : []),
|
|
598
594
|
...groupAttributes,
|
|
599
595
|
], groupContent);
|
|
600
596
|
const separator = segmentIndex > 0 &&
|
|
601
597
|
(separatorClassName ||
|
|
602
598
|
Array.isReadonlyArrayNonEmpty(separatorAttributes))
|
|
603
599
|
? [
|
|
604
|
-
keyed('div')(`${id}-separator-${segmentIndex}`, [
|
|
605
|
-
Role('separator'),
|
|
606
|
-
...(separatorClassName ? [Class(separatorClassName)] : []),
|
|
600
|
+
h.keyed('div')(`${id}-separator-${segmentIndex}`, [
|
|
601
|
+
h.Role('separator'),
|
|
602
|
+
...(separatorClassName ? [h.Class(separatorClassName)] : []),
|
|
607
603
|
...separatorAttributes,
|
|
608
604
|
], []),
|
|
609
605
|
]
|
|
@@ -611,32 +607,34 @@ export const view = (config) => {
|
|
|
611
607
|
return [...separator, groupElement];
|
|
612
608
|
});
|
|
613
609
|
};
|
|
614
|
-
const backdrop = keyed('div')(`${id}-backdrop`, [
|
|
615
|
-
OnMount(Mount.mapMessage(
|
|
616
|
-
...(isLeaving ? [] : [OnClick(toParentMessage(Closed()))]),
|
|
617
|
-
...(backdropClassName ? [Class(backdropClassName)] : []),
|
|
610
|
+
const backdrop = h.keyed('div')(`${id}-backdrop`, [
|
|
611
|
+
h.OnMount(Mount.mapMessage(PortalMenuBackdrop(), toParentMessage)),
|
|
612
|
+
...(isLeaving ? [] : [h.OnClick(toParentMessage(Closed()))]),
|
|
613
|
+
...(backdropClassName ? [h.Class(backdropClassName)] : []),
|
|
618
614
|
...backdropAttributes,
|
|
619
615
|
], []);
|
|
620
616
|
const renderedItems = renderGroupedItems();
|
|
621
617
|
const scrollableItems = itemsScrollClassName || Array.isReadonlyArrayNonEmpty(itemsScrollAttributes)
|
|
622
618
|
? [
|
|
623
|
-
div([
|
|
624
|
-
...(itemsScrollClassName ? [Class(itemsScrollClassName)] : []),
|
|
619
|
+
h.div([
|
|
620
|
+
...(itemsScrollClassName ? [h.Class(itemsScrollClassName)] : []),
|
|
625
621
|
...itemsScrollAttributes,
|
|
626
622
|
], renderedItems),
|
|
627
623
|
]
|
|
628
624
|
: renderedItems;
|
|
629
625
|
const visibleContent = [
|
|
630
626
|
backdrop,
|
|
631
|
-
keyed('div')(`${id}-items-container`, itemsContainerAttributes, scrollableItems),
|
|
627
|
+
h.keyed('div')(`${id}-items-container`, itemsContainerAttributes, scrollableItems),
|
|
632
628
|
];
|
|
633
629
|
const wrapperAttributes = [
|
|
634
|
-
...(className ? [Class(className)] : []),
|
|
630
|
+
...(className ? [h.Class(className)] : []),
|
|
635
631
|
...attributes,
|
|
636
|
-
...(isVisible ? [DataAttribute('open', '')] : []),
|
|
632
|
+
...(isVisible ? [h.DataAttribute('open', '')] : []),
|
|
637
633
|
];
|
|
638
|
-
return div(wrapperAttributes, [
|
|
639
|
-
keyed('button')(`${id}-button`, resolvedButtonAttributes, [
|
|
634
|
+
return h.div(wrapperAttributes, [
|
|
635
|
+
h.keyed('button')(`${id}-button`, resolvedButtonAttributes, [
|
|
636
|
+
buttonContent,
|
|
637
|
+
]),
|
|
640
638
|
...(isVisible ? visibleContent : []),
|
|
641
639
|
]);
|
|
642
640
|
};
|
|
@@ -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
|
/** Schema for the popover component's state, tracking open/closed status and animation lifecycle. */
|
|
7
7
|
export declare const Model: S.Struct<{
|
|
8
8
|
readonly id: S.String;
|
|
@@ -140,13 +140,23 @@ export declare const update: (model: Model, message: Message) => UpdateReturn;
|
|
|
140
140
|
/** The anchor-positioning Mount this Popover renders on its panel. Exposed so
|
|
141
141
|
* Scene tests can call `Scene.Mount.resolve(AnchorPopover, CompletedAnchorPopover())`
|
|
142
142
|
* to acknowledge the mount produced by the rendered panel. */
|
|
143
|
-
export declare const AnchorPopover: Mount.
|
|
143
|
+
export declare const AnchorPopover: Mount.MountDefinitionWithArgs<"AnchorPopover", {
|
|
144
|
+
buttonId: S.String;
|
|
145
|
+
anchor: S.Struct<{
|
|
146
|
+
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"]>>;
|
|
147
|
+
readonly gap: S.optional<S.Number>;
|
|
148
|
+
readonly offset: S.optional<S.Number>;
|
|
149
|
+
readonly padding: S.optional<S.Number>;
|
|
150
|
+
readonly portal: S.optional<S.Boolean>;
|
|
151
|
+
}>;
|
|
152
|
+
focusSelector: S.optional<S.String>;
|
|
153
|
+
}, {
|
|
144
154
|
readonly _tag: "CompletedAnchorPopover";
|
|
145
155
|
}>;
|
|
146
156
|
/** The backdrop-portaling Mount this Popover renders. Exposed so Scene tests can
|
|
147
157
|
* call `Scene.Mount.resolve(PortalPopoverBackdrop, CompletedPortalPopoverBackdrop())` to
|
|
148
158
|
* acknowledge the mount produced by the rendered backdrop. */
|
|
149
|
-
export declare const PortalPopoverBackdrop: Mount.
|
|
159
|
+
export declare const PortalPopoverBackdrop: Mount.MountDefinitionNoArgs<"PortalPopoverBackdrop", {
|
|
150
160
|
readonly _tag: "CompletedPortalPopoverBackdrop";
|
|
151
161
|
}>;
|
|
152
162
|
/** Programmatically opens the popover, updating the model and returning
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/popover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAA6B,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE9E,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/popover/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/popover/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { createLazy, 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 { evo } 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 → popover → animation.
|
|
12
12
|
// The barrel (../animation) imports from html, which starts the cycle.
|
|
@@ -208,12 +208,24 @@ export const update = (model, message) => {
|
|
|
208
208
|
/** The anchor-positioning Mount this Popover renders on its panel. Exposed so
|
|
209
209
|
* Scene tests can call `Scene.Mount.resolve(AnchorPopover, CompletedAnchorPopover())`
|
|
210
210
|
* to acknowledge the mount produced by the rendered panel. */
|
|
211
|
-
export const AnchorPopover = Mount.define('AnchorPopover',
|
|
211
|
+
export const AnchorPopover = Mount.define('AnchorPopover', {
|
|
212
|
+
buttonId: S.String,
|
|
213
|
+
anchor: AnchorConfig,
|
|
214
|
+
focusSelector: S.optional(S.String),
|
|
215
|
+
}, CompletedAnchorPopover)(({ buttonId, anchor, focusSelector }) => (element) => Effect.sync(() => {
|
|
216
|
+
const cleanup = anchorSetup({
|
|
217
|
+
buttonId,
|
|
218
|
+
anchor,
|
|
219
|
+
interceptTab: false,
|
|
220
|
+
focusAfterPosition: true,
|
|
221
|
+
...(focusSelector !== undefined && { focusSelector }),
|
|
222
|
+
})(element);
|
|
223
|
+
return { message: CompletedAnchorPopover(), cleanup };
|
|
224
|
+
}));
|
|
212
225
|
/** The backdrop-portaling Mount this Popover renders. Exposed so Scene tests can
|
|
213
226
|
* call `Scene.Mount.resolve(PortalPopoverBackdrop, CompletedPortalPopoverBackdrop())` to
|
|
214
227
|
* acknowledge the mount produced by the rendered backdrop. */
|
|
215
|
-
export const PortalPopoverBackdrop = Mount.define('PortalPopoverBackdrop', CompletedPortalPopoverBackdrop)
|
|
216
|
-
const portalPopoverBackdrop = PortalPopoverBackdrop((element) => Effect.sync(() => {
|
|
228
|
+
export const PortalPopoverBackdrop = Mount.define('PortalPopoverBackdrop', CompletedPortalPopoverBackdrop)((element) => Effect.sync(() => {
|
|
217
229
|
const cleanup = portalToBody(element);
|
|
218
230
|
return { message: CompletedPortalPopoverBackdrop(), cleanup };
|
|
219
231
|
}));
|
|
@@ -225,26 +237,26 @@ export const open = (model) => update(model, Opened());
|
|
|
225
237
|
export const close = (model) => update(model, Closed());
|
|
226
238
|
/** Renders a headless popover with a trigger button and a floating panel. Uses the disclosure ARIA pattern (aria-expanded + aria-controls) with no role on the panel. */
|
|
227
239
|
export const view = (config) => {
|
|
228
|
-
const
|
|
240
|
+
const h = html();
|
|
229
241
|
const { model: { id, isOpen, contentFocus, animation: { transitionState }, maybeLastButtonPointerType, }, toParentMessage, onOpened, onClosed, anchor, buttonContent, buttonClassName, buttonAttributes = [], panelContent, panelClassName, panelAttributes = [], backdropClassName, backdropAttributes = [], isDisabled, focusSelector, className, attributes = [], } = config;
|
|
230
242
|
const dispatchOpened = () => onOpened ? onOpened() : toParentMessage(Opened());
|
|
231
243
|
const dispatchClosed = () => onClosed ? onClosed() : toParentMessage(Closed());
|
|
232
244
|
const isLeaving = transitionState === 'LeaveStart' || transitionState === 'LeaveAnimating';
|
|
233
245
|
const isVisible = isOpen || isLeaving;
|
|
234
246
|
const animationAttributes = M.value(transitionState).pipe(M.when('EnterStart', () => [
|
|
235
|
-
DataAttribute('closed', ''),
|
|
236
|
-
DataAttribute('enter', ''),
|
|
237
|
-
DataAttribute('transition', ''),
|
|
247
|
+
h.DataAttribute('closed', ''),
|
|
248
|
+
h.DataAttribute('enter', ''),
|
|
249
|
+
h.DataAttribute('transition', ''),
|
|
238
250
|
]), M.when('EnterAnimating', () => [
|
|
239
|
-
DataAttribute('enter', ''),
|
|
240
|
-
DataAttribute('transition', ''),
|
|
251
|
+
h.DataAttribute('enter', ''),
|
|
252
|
+
h.DataAttribute('transition', ''),
|
|
241
253
|
]), M.when('LeaveStart', () => [
|
|
242
|
-
DataAttribute('leave', ''),
|
|
243
|
-
DataAttribute('transition', ''),
|
|
254
|
+
h.DataAttribute('leave', ''),
|
|
255
|
+
h.DataAttribute('transition', ''),
|
|
244
256
|
]), M.when('LeaveAnimating', () => [
|
|
245
|
-
DataAttribute('closed', ''),
|
|
246
|
-
DataAttribute('leave', ''),
|
|
247
|
-
DataAttribute('transition', ''),
|
|
257
|
+
h.DataAttribute('closed', ''),
|
|
258
|
+
h.DataAttribute('leave', ''),
|
|
259
|
+
h.DataAttribute('transition', ''),
|
|
248
260
|
]), M.orElse(() => []));
|
|
249
261
|
const handleButtonKeyDown = (key) => M.value(key).pipe(M.whenOr('Enter', ' ', 'ArrowDown', () => Option.some(isOpen ? dispatchClosed() : dispatchOpened())), M.when('Escape', () => OptionExt.when(isOpen, dispatchClosed())), M.orElse(() => Option.none()));
|
|
250
262
|
const handleButtonPointerDown = (pointerType, button) => Option.some(toParentMessage(PressedPointerOnButton({
|
|
@@ -266,74 +278,71 @@ export const view = (config) => {
|
|
|
266
278
|
const handleSpaceKeyUp = (key) => OptionExt.when(key === ' ', toParentMessage(SuppressedSpaceScroll()));
|
|
267
279
|
const handlePanelKeyDown = (key) => M.value(key).pipe(M.when('Escape', () => Option.some(dispatchClosed())), M.orElse(() => Option.none()));
|
|
268
280
|
const resolvedButtonAttributes = [
|
|
269
|
-
Id(`${id}-button`),
|
|
270
|
-
Type('button'),
|
|
271
|
-
AriaExpanded(isVisible),
|
|
272
|
-
AriaControls(`${id}-panel`),
|
|
281
|
+
h.Id(`${id}-button`),
|
|
282
|
+
h.Type('button'),
|
|
283
|
+
h.AriaExpanded(isVisible),
|
|
284
|
+
h.AriaControls(`${id}-panel`),
|
|
273
285
|
...(isDisabled
|
|
274
|
-
? [AriaDisabled(true), DataAttribute('disabled', '')]
|
|
286
|
+
? [h.AriaDisabled(true), h.DataAttribute('disabled', '')]
|
|
275
287
|
: [
|
|
276
|
-
OnPointerDown(handleButtonPointerDown),
|
|
277
|
-
OnKeyDownPreventDefault(handleButtonKeyDown),
|
|
278
|
-
OnKeyUpPreventDefault(handleSpaceKeyUp),
|
|
279
|
-
OnClick(handleButtonClick()),
|
|
288
|
+
h.OnPointerDown(handleButtonPointerDown),
|
|
289
|
+
h.OnKeyDownPreventDefault(handleButtonKeyDown),
|
|
290
|
+
h.OnKeyUpPreventDefault(handleSpaceKeyUp),
|
|
291
|
+
h.OnClick(handleButtonClick()),
|
|
280
292
|
]),
|
|
281
293
|
...(isVisible
|
|
282
294
|
? [
|
|
283
|
-
DataAttribute('open', ''),
|
|
284
|
-
Style({ position: 'relative', zIndex: '1' }),
|
|
295
|
+
h.DataAttribute('open', ''),
|
|
296
|
+
h.Style({ position: 'relative', zIndex: '1' }),
|
|
285
297
|
]
|
|
286
298
|
: []),
|
|
287
|
-
...(buttonClassName ? [Class(buttonClassName)] : []),
|
|
299
|
+
...(buttonClassName ? [h.Class(buttonClassName)] : []),
|
|
288
300
|
...buttonAttributes,
|
|
289
301
|
];
|
|
290
|
-
const anchorPopover = Mount.mapMessage(AnchorPopover(
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
focusAfterPosition: true,
|
|
296
|
-
...(focusSelector !== undefined && { focusSelector }),
|
|
297
|
-
})(items);
|
|
298
|
-
return { message: CompletedAnchorPopover(), cleanup };
|
|
299
|
-
})), toParentMessage);
|
|
302
|
+
const anchorPopover = Mount.mapMessage(AnchorPopover({
|
|
303
|
+
buttonId: `${id}-button`,
|
|
304
|
+
anchor,
|
|
305
|
+
...(focusSelector !== undefined && { focusSelector }),
|
|
306
|
+
}), toParentMessage);
|
|
300
307
|
const anchorAttributes = [
|
|
301
|
-
Style({ position: 'absolute', margin: '0', visibility: 'hidden' }),
|
|
302
|
-
OnMount(anchorPopover),
|
|
308
|
+
h.Style({ position: 'absolute', margin: '0', visibility: 'hidden' }),
|
|
309
|
+
h.OnMount(anchorPopover),
|
|
303
310
|
];
|
|
304
311
|
const resolvedPanelAttributes = [
|
|
305
|
-
Id(`${id}-panel`),
|
|
306
|
-
...(contentFocus ? [] : [Tabindex(0)]),
|
|
312
|
+
h.Id(`${id}-panel`),
|
|
313
|
+
...(contentFocus ? [] : [h.Tabindex(0)]),
|
|
307
314
|
...anchorAttributes,
|
|
308
315
|
...animationAttributes,
|
|
309
316
|
...(isLeaving
|
|
310
317
|
? []
|
|
311
318
|
: [
|
|
312
|
-
OnKeyDownPreventDefault(handlePanelKeyDown),
|
|
313
|
-
...(contentFocus ? [] : [OnBlur(toParentMessage(BlurredPanel()))]),
|
|
319
|
+
h.OnKeyDownPreventDefault(handlePanelKeyDown),
|
|
320
|
+
...(contentFocus ? [] : [h.OnBlur(toParentMessage(BlurredPanel()))]),
|
|
314
321
|
]),
|
|
315
|
-
...(panelClassName ? [Class(panelClassName)] : []),
|
|
322
|
+
...(panelClassName ? [h.Class(panelClassName)] : []),
|
|
316
323
|
...panelAttributes,
|
|
317
324
|
];
|
|
318
|
-
const backdrop = keyed('div')(`${id}-backdrop`, [
|
|
319
|
-
OnMount(Mount.mapMessage(
|
|
320
|
-
...(isLeaving ? [] : [OnClick(dispatchClosed())]),
|
|
321
|
-
...(backdropClassName ? [Class(backdropClassName)] : []),
|
|
325
|
+
const backdrop = h.keyed('div')(`${id}-backdrop`, [
|
|
326
|
+
h.OnMount(Mount.mapMessage(PortalPopoverBackdrop(), toParentMessage)),
|
|
327
|
+
...(isLeaving ? [] : [h.OnClick(dispatchClosed())]),
|
|
328
|
+
...(backdropClassName ? [h.Class(backdropClassName)] : []),
|
|
322
329
|
...backdropAttributes,
|
|
323
330
|
], []);
|
|
324
331
|
const visibleContent = [
|
|
325
332
|
backdrop,
|
|
326
|
-
keyed('div')(`${id}-panel-container`, resolvedPanelAttributes, [
|
|
333
|
+
h.keyed('div')(`${id}-panel-container`, resolvedPanelAttributes, [
|
|
327
334
|
panelContent,
|
|
328
335
|
]),
|
|
329
336
|
];
|
|
330
337
|
const wrapperAttributes = [
|
|
331
|
-
...(className ? [Class(className)] : []),
|
|
338
|
+
...(className ? [h.Class(className)] : []),
|
|
332
339
|
...attributes,
|
|
333
|
-
...(isVisible ? [DataAttribute('open', '')] : []),
|
|
340
|
+
...(isVisible ? [h.DataAttribute('open', '')] : []),
|
|
334
341
|
];
|
|
335
|
-
return div(wrapperAttributes, [
|
|
336
|
-
keyed('button')(`${id}-button`, resolvedButtonAttributes, [
|
|
342
|
+
return h.div(wrapperAttributes, [
|
|
343
|
+
h.keyed('button')(`${id}-button`, resolvedButtonAttributes, [
|
|
344
|
+
buttonContent,
|
|
345
|
+
]),
|
|
337
346
|
...(isVisible ? visibleContent : []),
|
|
338
347
|
]);
|
|
339
348
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/radioGroup/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/radioGroup/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,7 @@ const labelId = (id, index) => `${id}-option-${index}-label`;
|
|
|
52
52
|
const descriptionId = (id, index) => `${id}-option-${index}-description`;
|
|
53
53
|
/** Renders an accessible radio group by building ARIA attribute groups and delegating layout to the consumer's `optionToConfig` callback. */
|
|
54
54
|
export const view = (config) => {
|
|
55
|
-
const
|
|
55
|
+
const h = html();
|
|
56
56
|
const { model, model: { id, selectedValue }, toParentMessage, onSelected, options, optionToConfig, isOptionDisabled: isOptionDisabledFn, orientation = model.orientation, ariaLabel, className, attributes = [], name, isDisabled: isGroupDisabled = false, } = config;
|
|
57
57
|
const dispatchSelected = (value, index) => onSelected
|
|
58
58
|
? onSelected(value, index)
|
|
@@ -98,33 +98,33 @@ export const view = (config) => {
|
|
|
98
98
|
isActive: isFocusable,
|
|
99
99
|
isDisabled: isOptionDisabled,
|
|
100
100
|
});
|
|
101
|
-
const checkedAttributes = isSelected ? [DataAttribute('checked', '')] : [];
|
|
102
|
-
const activeAttributes = isFocusable ? [DataAttribute('active', '')] : [];
|
|
101
|
+
const checkedAttributes = isSelected ? [h.DataAttribute('checked', '')] : [];
|
|
102
|
+
const activeAttributes = isFocusable ? [h.DataAttribute('active', '')] : [];
|
|
103
103
|
const disabledAttributes = isOptionDisabled
|
|
104
|
-
? [AriaDisabled(true), DataAttribute('disabled', '')]
|
|
104
|
+
? [h.AriaDisabled(true), h.DataAttribute('disabled', '')]
|
|
105
105
|
: [];
|
|
106
106
|
const optionAttributes = [
|
|
107
|
-
Id(optionId(id, index)),
|
|
108
|
-
Role('radio'),
|
|
109
|
-
AriaChecked(isSelected),
|
|
110
|
-
AriaLabelledBy(labelId(id, index)),
|
|
111
|
-
AriaDescribedBy(descriptionId(id, index)),
|
|
112
|
-
Tabindex(isFocusable ? 0 : -1),
|
|
107
|
+
h.Id(optionId(id, index)),
|
|
108
|
+
h.Role('radio'),
|
|
109
|
+
h.AriaChecked(isSelected),
|
|
110
|
+
h.AriaLabelledBy(labelId(id, index)),
|
|
111
|
+
h.AriaDescribedBy(descriptionId(id, index)),
|
|
112
|
+
h.Tabindex(isFocusable ? 0 : -1),
|
|
113
113
|
...checkedAttributes,
|
|
114
114
|
...activeAttributes,
|
|
115
115
|
...disabledAttributes,
|
|
116
116
|
...(isOptionDisabled
|
|
117
117
|
? []
|
|
118
118
|
: [
|
|
119
|
-
OnClick(dispatchSelected(optionConfig.value, index)),
|
|
120
|
-
OnKeyDownPreventDefault(handleKeyDown(index)),
|
|
119
|
+
h.OnClick(dispatchSelected(optionConfig.value, index)),
|
|
120
|
+
h.OnKeyDownPreventDefault(handleKeyDown(index)),
|
|
121
121
|
]),
|
|
122
122
|
];
|
|
123
123
|
const labelAttributes = [
|
|
124
|
-
Id(labelId(id, index)),
|
|
124
|
+
h.Id(labelId(id, index)),
|
|
125
125
|
];
|
|
126
126
|
const descriptionAttributes = [
|
|
127
|
-
Id(descriptionId(id, index)),
|
|
127
|
+
h.Id(descriptionId(id, index)),
|
|
128
128
|
];
|
|
129
129
|
return optionConfig.content({
|
|
130
130
|
option: optionAttributes,
|
|
@@ -132,18 +132,18 @@ export const view = (config) => {
|
|
|
132
132
|
description: descriptionAttributes,
|
|
133
133
|
});
|
|
134
134
|
});
|
|
135
|
-
const hiddenInputs = pipe(name, Option.fromNullishOr, Option.flatMap(inputName => pipe(selectedValue, Option.map(value => input([Type('hidden'), Name(inputName), Value(value)])))), Option.match({
|
|
135
|
+
const hiddenInputs = pipe(name, Option.fromNullishOr, Option.flatMap(inputName => pipe(selectedValue, Option.map(value => h.input([h.Type('hidden'), h.Name(inputName), h.Value(value)])))), Option.match({
|
|
136
136
|
onNone: () => [],
|
|
137
137
|
onSome: hiddenInput => [hiddenInput],
|
|
138
138
|
}));
|
|
139
139
|
const groupAttributes = [
|
|
140
|
-
Role('radiogroup'),
|
|
141
|
-
AriaOrientation(String.toLowerCase(orientation)),
|
|
142
|
-
AriaLabel(ariaLabel),
|
|
143
|
-
...(className ? [Class(className)] : []),
|
|
140
|
+
h.Role('radiogroup'),
|
|
141
|
+
h.AriaOrientation(String.toLowerCase(orientation)),
|
|
142
|
+
h.AriaLabel(ariaLabel),
|
|
143
|
+
...(className ? [h.Class(className)] : []),
|
|
144
144
|
...attributes,
|
|
145
145
|
];
|
|
146
|
-
return div(groupAttributes, [...renderedOptions, ...hiddenInputs]);
|
|
146
|
+
return h.div(groupAttributes, [...renderedOptions, ...hiddenInputs]);
|
|
147
147
|
};
|
|
148
148
|
/** Creates a memoized radio group view. Static config is captured in a closure;
|
|
149
149
|
* only `model` and `toParentMessage` are compared per render via `createLazy`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/select/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAI/C,0FAA0F;AAC1F,MAAM,MAAM,gBAAgB,CAAC,aAAa,IAAI,QAAQ,CAAC;IACrD,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;IAC/C,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;IAC9C,WAAW,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;CACrD,CAAC,CAAA;AAEF,wDAAwD;AACxD,MAAM,MAAM,UAAU,CAAC,aAAa,IAAI,QAAQ,CAAC;IAC/C,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAA;IAC7D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,aAAa,CAAA;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAC,CAAA;AAEF,sEAAsE;AACtE,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,KAAG,MAA6B,CAAA;AAExE,gIAAgI;AAChI,eAAO,MAAM,IAAI,GAAI,aAAa,EAChC,QAAQ,UAAU,CAAC,aAAa,CAAC,KAChC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/select/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAI/C,0FAA0F;AAC1F,MAAM,MAAM,gBAAgB,CAAC,aAAa,IAAI,QAAQ,CAAC;IACrD,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;IAC/C,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;IAC9C,WAAW,EAAE,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;CACrD,CAAC,CAAA;AAEF,wDAAwD;AACxD,MAAM,MAAM,UAAU,CAAC,aAAa,IAAI,QAAQ,CAAC;IAC/C,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,aAAa,CAAC,KAAK,IAAI,CAAA;IAC7D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,aAAa,CAAA;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAC,CAAA;AAEF,sEAAsE;AACtE,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,KAAG,MAA6B,CAAA;AAExE,gIAAgI;AAChI,eAAO,MAAM,IAAI,GAAI,aAAa,EAChC,QAAQ,UAAU,CAAC,aAAa,CAAC,KAChC,IAuDF,CAAA"}
|