foldkit 0.90.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/devTools/overlay.d.ts.map +1 -1
- package/dist/devTools/overlay.js +150 -150
- package/dist/runtime/crashUI.js +30 -30
- 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.js +10 -10
- 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/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/shared.d.ts.map +1 -1
- package/dist/ui/combobox/shared.js +102 -90
- 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/shared.d.ts.map +1 -1
- package/dist/ui/listbox/shared.js +85 -79
- package/dist/ui/menu/index.d.ts.map +1 -1
- package/dist/ui/menu/index.js +69 -67
- package/dist/ui/popover/index.d.ts.map +1 -1
- package/dist/ui/popover/index.js +41 -39
- 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.map +1 -1
- package/dist/ui/tooltip/index.js +23 -23
- package/dist/ui/virtualList/index.d.ts.map +1 -1
- package/dist/ui/virtualList/index.js +18 -15
- package/package.json +1 -1
|
@@ -390,7 +390,7 @@ export const PortalComboboxBackdrop = Mount.define('PortalComboboxBackdrop', Com
|
|
|
390
390
|
}));
|
|
391
391
|
/** Creates a combobox view function from variant-specific behavior. Shared rendering logic (input, items, transitions, keyboard navigation) is handled internally; only selection display varies by variant. */
|
|
392
392
|
export const makeView = (behavior) => (config) => {
|
|
393
|
-
const
|
|
393
|
+
const h = html();
|
|
394
394
|
const { model: { id, isOpen, immediate, animation: { transitionState }, maybeActiveItemIndex, }, toParentMessage, onSelectedItem, items, itemToConfig, itemToValue, itemToDisplayText, isItemDisabled, inputClassName, inputAttributes = [], inputPlaceholder, inputWrapperClassName, inputWrapperAttributes = [], itemsClassName, itemsAttributes = [], itemsScrollClassName, itemsScrollAttributes = [], backdropClassName, backdropAttributes = [], className, attributes = [], buttonContent, buttonClassName, buttonAttributes = [], formName, isDisabled, isInvalid, openOnFocus, itemGroupKey, groupToHeading, groupClassName, groupAttributes = [], separatorClassName, separatorAttributes = [], anchor, } = config;
|
|
395
395
|
const dispatchSelectedItem = (item, index) => onSelectedItem
|
|
396
396
|
? onSelectedItem(itemToValue(item, index))
|
|
@@ -401,19 +401,19 @@ export const makeView = (behavior) => (config) => {
|
|
|
401
401
|
const isLeaving = transitionState === 'LeaveStart' || transitionState === 'LeaveAnimating';
|
|
402
402
|
const isVisible = isOpen || isLeaving;
|
|
403
403
|
const animationAttributes = M.value(transitionState).pipe(M.when('EnterStart', () => [
|
|
404
|
-
DataAttribute('closed', ''),
|
|
405
|
-
DataAttribute('enter', ''),
|
|
406
|
-
DataAttribute('transition', ''),
|
|
404
|
+
h.DataAttribute('closed', ''),
|
|
405
|
+
h.DataAttribute('enter', ''),
|
|
406
|
+
h.DataAttribute('transition', ''),
|
|
407
407
|
]), M.when('EnterAnimating', () => [
|
|
408
|
-
DataAttribute('enter', ''),
|
|
409
|
-
DataAttribute('transition', ''),
|
|
408
|
+
h.DataAttribute('enter', ''),
|
|
409
|
+
h.DataAttribute('transition', ''),
|
|
410
410
|
]), M.when('LeaveStart', () => [
|
|
411
|
-
DataAttribute('leave', ''),
|
|
412
|
-
DataAttribute('transition', ''),
|
|
411
|
+
h.DataAttribute('leave', ''),
|
|
412
|
+
h.DataAttribute('transition', ''),
|
|
413
413
|
]), M.when('LeaveAnimating', () => [
|
|
414
|
-
DataAttribute('closed', ''),
|
|
415
|
-
DataAttribute('leave', ''),
|
|
416
|
-
DataAttribute('transition', ''),
|
|
414
|
+
h.DataAttribute('closed', ''),
|
|
415
|
+
h.DataAttribute('leave', ''),
|
|
416
|
+
h.DataAttribute('transition', ''),
|
|
417
417
|
]), M.orElse(() => []));
|
|
418
418
|
const isDisabledAtIndex = (index) => Predicate.isNotUndefined(isItemDisabled) &&
|
|
419
419
|
pipe(items, Array.get(index), Option.exists(item => isItemDisabled(item, index)));
|
|
@@ -474,61 +474,63 @@ export const makeView = (behavior) => (config) => {
|
|
|
474
474
|
}), M.orElse(() => Option.none()));
|
|
475
475
|
const maybeActiveDescendant = Option.match(maybeActiveItemIndex, {
|
|
476
476
|
onNone: () => [],
|
|
477
|
-
onSome: index => [AriaActiveDescendant(itemId(id, index))],
|
|
477
|
+
onSome: index => [h.AriaActiveDescendant(itemId(id, index))],
|
|
478
478
|
});
|
|
479
479
|
const resolvedInputAttributes = [
|
|
480
|
-
Id(`${id}-input`),
|
|
481
|
-
Role('combobox'),
|
|
482
|
-
AriaExpanded(isVisible),
|
|
483
|
-
AriaControls(`${id}-items`),
|
|
484
|
-
Attribute('aria-autocomplete', 'list'),
|
|
485
|
-
Attribute('aria-haspopup', 'listbox'),
|
|
486
|
-
Autocomplete('off'),
|
|
487
|
-
Value(config.model.inputValue),
|
|
480
|
+
h.Id(`${id}-input`),
|
|
481
|
+
h.Role('combobox'),
|
|
482
|
+
h.AriaExpanded(isVisible),
|
|
483
|
+
h.AriaControls(`${id}-items`),
|
|
484
|
+
h.Attribute('aria-autocomplete', 'list'),
|
|
485
|
+
h.Attribute('aria-haspopup', 'listbox'),
|
|
486
|
+
h.Autocomplete('off'),
|
|
487
|
+
h.Value(config.model.inputValue),
|
|
488
488
|
...maybeActiveDescendant,
|
|
489
|
-
...(inputPlaceholder ? [Placeholder(inputPlaceholder)] : []),
|
|
489
|
+
...(inputPlaceholder ? [h.Placeholder(inputPlaceholder)] : []),
|
|
490
490
|
...(isDisabled
|
|
491
|
-
? [AriaDisabled(true), DataAttribute('disabled', '')]
|
|
491
|
+
? [h.AriaDisabled(true), h.DataAttribute('disabled', '')]
|
|
492
492
|
: [
|
|
493
|
-
OnInput(value => toParentMessage(UpdatedInputValue({ value }))),
|
|
494
|
-
OnKeyDownPreventDefault(handleInputKeyDown),
|
|
495
|
-
OnBlur(toParentMessage(BlurredInput())),
|
|
493
|
+
h.OnInput(value => toParentMessage(UpdatedInputValue({ value }))),
|
|
494
|
+
h.OnKeyDownPreventDefault(handleInputKeyDown),
|
|
495
|
+
h.OnBlur(toParentMessage(BlurredInput())),
|
|
496
496
|
...(openOnFocus
|
|
497
497
|
? [
|
|
498
|
-
OnFocus(toParentMessage(Opened({ maybeActiveItemIndex: Option.none() }))),
|
|
498
|
+
h.OnFocus(toParentMessage(Opened({ maybeActiveItemIndex: Option.none() }))),
|
|
499
499
|
]
|
|
500
500
|
: []),
|
|
501
501
|
]),
|
|
502
|
-
...(isInvalid
|
|
503
|
-
|
|
502
|
+
...(isInvalid
|
|
503
|
+
? [h.AriaInvalid(true), h.DataAttribute('invalid', '')]
|
|
504
|
+
: []),
|
|
505
|
+
...(isVisible ? [h.DataAttribute('open', '')] : []),
|
|
504
506
|
...(config.model.selectInputOnFocus
|
|
505
507
|
? [
|
|
506
|
-
OnMount(Mount.mapMessage(AttachComboboxSelectOnFocus(), toParentMessage)),
|
|
508
|
+
h.OnMount(Mount.mapMessage(AttachComboboxSelectOnFocus(), toParentMessage)),
|
|
507
509
|
]
|
|
508
510
|
: []),
|
|
509
|
-
...(inputClassName ? [Class(inputClassName)] : []),
|
|
511
|
+
...(inputClassName ? [h.Class(inputClassName)] : []),
|
|
510
512
|
...inputAttributes,
|
|
511
513
|
];
|
|
512
514
|
const anchorAttributes = anchor
|
|
513
515
|
? [
|
|
514
|
-
Style({ position: 'absolute', margin: '0', visibility: 'hidden' }),
|
|
515
|
-
OnMount(Mount.mapMessage(AnchorCombobox({
|
|
516
|
+
h.Style({ position: 'absolute', margin: '0', visibility: 'hidden' }),
|
|
517
|
+
h.OnMount(Mount.mapMessage(AnchorCombobox({
|
|
516
518
|
buttonId: `${id}-input-wrapper`,
|
|
517
519
|
anchor,
|
|
518
520
|
}), toParentMessage)),
|
|
519
521
|
]
|
|
520
522
|
: [
|
|
521
|
-
OnMount(Mount.mapMessage(AttachComboboxPreventBlur(), toParentMessage)),
|
|
523
|
+
h.OnMount(Mount.mapMessage(AttachComboboxPreventBlur(), toParentMessage)),
|
|
522
524
|
];
|
|
523
525
|
const itemsContainerAttributes = [
|
|
524
|
-
Id(`${id}-items`),
|
|
525
|
-
Role('listbox'),
|
|
526
|
-
...(behavior.ariaMultiSelectable ? [AriaMultiSelectable(true)] : []),
|
|
527
|
-
AriaLabelledBy(`${id}-input`),
|
|
528
|
-
Tabindex(-1),
|
|
526
|
+
h.Id(`${id}-items`),
|
|
527
|
+
h.Role('listbox'),
|
|
528
|
+
...(behavior.ariaMultiSelectable ? [h.AriaMultiSelectable(true)] : []),
|
|
529
|
+
h.AriaLabelledBy(`${id}-input`),
|
|
530
|
+
h.Tabindex(-1),
|
|
529
531
|
...anchorAttributes,
|
|
530
532
|
...animationAttributes,
|
|
531
|
-
...(itemsClassName ? [Class(itemsClassName)] : []),
|
|
533
|
+
...(itemsClassName ? [h.Class(itemsClassName)] : []),
|
|
532
534
|
...itemsAttributes,
|
|
533
535
|
];
|
|
534
536
|
const comboboxItems = Array.map(items, (item, index) => {
|
|
@@ -541,27 +543,27 @@ export const makeView = (behavior) => (config) => {
|
|
|
541
543
|
isSelected: isSelectedItem,
|
|
542
544
|
});
|
|
543
545
|
const isInteractive = !isDisabledItem && !isLeaving;
|
|
544
|
-
return keyed('div')(itemId(id, index), [
|
|
545
|
-
Id(itemId(id, index)),
|
|
546
|
-
Role('option'),
|
|
547
|
-
AriaSelected(isSelectedItem),
|
|
548
|
-
...(isActiveItem ? [DataAttribute('active', '')] : []),
|
|
549
|
-
...(isSelectedItem ? [DataAttribute('selected', '')] : []),
|
|
546
|
+
return h.keyed('div')(itemId(id, index), [
|
|
547
|
+
h.Id(itemId(id, index)),
|
|
548
|
+
h.Role('option'),
|
|
549
|
+
h.AriaSelected(isSelectedItem),
|
|
550
|
+
...(isActiveItem ? [h.DataAttribute('active', '')] : []),
|
|
551
|
+
...(isSelectedItem ? [h.DataAttribute('selected', '')] : []),
|
|
550
552
|
...(isDisabledItem
|
|
551
|
-
? [AriaDisabled(true), DataAttribute('disabled', '')]
|
|
553
|
+
? [h.AriaDisabled(true), h.DataAttribute('disabled', '')]
|
|
552
554
|
: []),
|
|
553
555
|
...(isInteractive
|
|
554
556
|
? [
|
|
555
|
-
OnClick(dispatchSelectedItem(item, index)),
|
|
557
|
+
h.OnClick(dispatchSelectedItem(item, index)),
|
|
556
558
|
...(isActiveItem
|
|
557
559
|
? []
|
|
558
560
|
: [
|
|
559
|
-
OnPointerMove((screenX, screenY, pointerType) => OptionExt.when(pointerType !== 'touch', toParentMessage(MovedPointerOverItem({ index, screenX, screenY })))),
|
|
561
|
+
h.OnPointerMove((screenX, screenY, pointerType) => OptionExt.when(pointerType !== 'touch', toParentMessage(MovedPointerOverItem({ index, screenX, screenY })))),
|
|
560
562
|
]),
|
|
561
|
-
OnPointerLeave(pointerType => OptionExt.when(pointerType !== 'touch', toParentMessage(DeactivatedItem()))),
|
|
563
|
+
h.OnPointerLeave(pointerType => OptionExt.when(pointerType !== 'touch', toParentMessage(DeactivatedItem()))),
|
|
562
564
|
]
|
|
563
565
|
: []),
|
|
564
|
-
...(itemConfig.className ? [Class(itemConfig.className)] : []),
|
|
566
|
+
...(itemConfig.className ? [h.Class(itemConfig.className)] : []),
|
|
565
567
|
], [itemConfig.content]);
|
|
566
568
|
});
|
|
567
569
|
const renderGroupedItems = () => {
|
|
@@ -578,27 +580,31 @@ export const makeView = (behavior) => (config) => {
|
|
|
578
580
|
const headingElement = Option.match(maybeHeading, {
|
|
579
581
|
onNone: () => [],
|
|
580
582
|
onSome: heading => [
|
|
581
|
-
keyed('div')(headingId, [
|
|
582
|
-
Id(headingId),
|
|
583
|
-
Role('presentation'),
|
|
584
|
-
...(heading.className ? [Class(heading.className)] : []),
|
|
583
|
+
h.keyed('div')(headingId, [
|
|
584
|
+
h.Id(headingId),
|
|
585
|
+
h.Role('presentation'),
|
|
586
|
+
...(heading.className ? [h.Class(heading.className)] : []),
|
|
585
587
|
], [heading.content]),
|
|
586
588
|
],
|
|
587
589
|
});
|
|
588
590
|
const groupContent = [...headingElement, ...segment.items];
|
|
589
|
-
const groupElement = keyed('div')(`${id}-group-${segment.key}`, [
|
|
590
|
-
Role('group'),
|
|
591
|
-
...(Option.isSome(maybeHeading)
|
|
592
|
-
|
|
591
|
+
const groupElement = h.keyed('div')(`${id}-group-${segment.key}`, [
|
|
592
|
+
h.Role('group'),
|
|
593
|
+
...(Option.isSome(maybeHeading)
|
|
594
|
+
? [h.AriaLabelledBy(headingId)]
|
|
595
|
+
: []),
|
|
596
|
+
...(groupClassName ? [h.Class(groupClassName)] : []),
|
|
593
597
|
...groupAttributes,
|
|
594
598
|
], groupContent);
|
|
595
599
|
const separator = segmentIndex > 0 &&
|
|
596
600
|
(separatorClassName ||
|
|
597
601
|
Array.isReadonlyArrayNonEmpty(separatorAttributes))
|
|
598
602
|
? [
|
|
599
|
-
keyed('div')(`${id}-separator-${segmentIndex}`, [
|
|
600
|
-
Role('separator'),
|
|
601
|
-
...(separatorClassName
|
|
603
|
+
h.keyed('div')(`${id}-separator-${segmentIndex}`, [
|
|
604
|
+
h.Role('separator'),
|
|
605
|
+
...(separatorClassName
|
|
606
|
+
? [h.Class(separatorClassName)]
|
|
607
|
+
: []),
|
|
602
608
|
...separatorAttributes,
|
|
603
609
|
], []),
|
|
604
610
|
]
|
|
@@ -606,45 +612,47 @@ export const makeView = (behavior) => (config) => {
|
|
|
606
612
|
return [...separator, groupElement];
|
|
607
613
|
});
|
|
608
614
|
};
|
|
609
|
-
const backdrop = keyed('div')(`${id}-backdrop`, [
|
|
610
|
-
OnMount(Mount.mapMessage(PortalComboboxBackdrop(), toParentMessage)),
|
|
611
|
-
...(isLeaving ? [] : [OnClick(toParentMessage(Closed()))]),
|
|
612
|
-
...(backdropClassName ? [Class(backdropClassName)] : []),
|
|
615
|
+
const backdrop = h.keyed('div')(`${id}-backdrop`, [
|
|
616
|
+
h.OnMount(Mount.mapMessage(PortalComboboxBackdrop(), toParentMessage)),
|
|
617
|
+
...(isLeaving ? [] : [h.OnClick(toParentMessage(Closed()))]),
|
|
618
|
+
...(backdropClassName ? [h.Class(backdropClassName)] : []),
|
|
613
619
|
...backdropAttributes,
|
|
614
620
|
], []);
|
|
615
621
|
const renderedItems = renderGroupedItems();
|
|
616
622
|
const scrollableItems = itemsScrollClassName ||
|
|
617
623
|
Array.isReadonlyArrayNonEmpty(itemsScrollAttributes)
|
|
618
624
|
? [
|
|
619
|
-
div([
|
|
620
|
-
...(itemsScrollClassName
|
|
625
|
+
h.div([
|
|
626
|
+
...(itemsScrollClassName
|
|
627
|
+
? [h.Class(itemsScrollClassName)]
|
|
628
|
+
: []),
|
|
621
629
|
...itemsScrollAttributes,
|
|
622
630
|
], renderedItems),
|
|
623
631
|
]
|
|
624
632
|
: renderedItems;
|
|
625
633
|
const visibleContent = [
|
|
626
634
|
backdrop,
|
|
627
|
-
keyed('div')(`${id}-items-container`, itemsContainerAttributes, scrollableItems),
|
|
635
|
+
h.keyed('div')(`${id}-items-container`, itemsContainerAttributes, scrollableItems),
|
|
628
636
|
];
|
|
629
637
|
const resolvedInputWrapperAttributes = [
|
|
630
|
-
Id(`${id}-input-wrapper`),
|
|
631
|
-
...(inputWrapperClassName ? [Class(inputWrapperClassName)] : []),
|
|
638
|
+
h.Id(`${id}-input-wrapper`),
|
|
639
|
+
...(inputWrapperClassName ? [h.Class(inputWrapperClassName)] : []),
|
|
632
640
|
...inputWrapperAttributes,
|
|
633
641
|
];
|
|
634
642
|
const toggleButton = buttonContent
|
|
635
643
|
? [
|
|
636
|
-
keyed('button')(`${id}-button`, [
|
|
637
|
-
Id(`${id}-button`),
|
|
638
|
-
Type('button'),
|
|
639
|
-
Tabindex(-1),
|
|
640
|
-
AriaControls(`${id}-items`),
|
|
641
|
-
AriaExpanded(isVisible),
|
|
642
|
-
Attribute('aria-haspopup', 'listbox'),
|
|
644
|
+
h.keyed('button')(`${id}-button`, [
|
|
645
|
+
h.Id(`${id}-button`),
|
|
646
|
+
h.Type('button'),
|
|
647
|
+
h.Tabindex(-1),
|
|
648
|
+
h.AriaControls(`${id}-items`),
|
|
649
|
+
h.AriaExpanded(isVisible),
|
|
650
|
+
h.Attribute('aria-haspopup', 'listbox'),
|
|
643
651
|
...(isDisabled
|
|
644
|
-
? [AriaDisabled(true), DataAttribute('disabled', '')]
|
|
645
|
-
: [OnClick(toParentMessage(PressedToggleButton()))]),
|
|
646
|
-
OnMount(Mount.mapMessage(AttachComboboxPreventBlur(), toParentMessage)),
|
|
647
|
-
...(buttonClassName ? [Class(buttonClassName)] : []),
|
|
652
|
+
? [h.AriaDisabled(true), h.DataAttribute('disabled', '')]
|
|
653
|
+
: [h.OnClick(toParentMessage(PressedToggleButton()))]),
|
|
654
|
+
h.OnMount(Mount.mapMessage(AttachComboboxPreventBlur(), toParentMessage)),
|
|
655
|
+
...(buttonClassName ? [h.Class(buttonClassName)] : []),
|
|
648
656
|
...buttonAttributes,
|
|
649
657
|
], [buttonContent]),
|
|
650
658
|
]
|
|
@@ -655,20 +663,24 @@ export const makeView = (behavior) => (config) => {
|
|
|
655
663
|
}));
|
|
656
664
|
const hiddenInputs = formName
|
|
657
665
|
? Array.match(selectedValues, {
|
|
658
|
-
onEmpty: () => [input([Type('hidden'), Name(formName)])],
|
|
659
|
-
onNonEmpty: Array.map(selectedValue => input([
|
|
666
|
+
onEmpty: () => [h.input([h.Type('hidden'), h.Name(formName)])],
|
|
667
|
+
onNonEmpty: Array.map(selectedValue => h.input([
|
|
668
|
+
h.Type('hidden'),
|
|
669
|
+
h.Name(formName),
|
|
670
|
+
h.Value(selectedValue),
|
|
671
|
+
])),
|
|
660
672
|
})
|
|
661
673
|
: [];
|
|
662
674
|
const wrapperAttributes = [
|
|
663
|
-
...(className ? [Class(className)] : []),
|
|
675
|
+
...(className ? [h.Class(className)] : []),
|
|
664
676
|
...attributes,
|
|
665
|
-
...(isVisible ? [DataAttribute('open', '')] : []),
|
|
666
|
-
...(isDisabled ? [DataAttribute('disabled', '')] : []),
|
|
667
|
-
...(isInvalid ? [DataAttribute('invalid', '')] : []),
|
|
677
|
+
...(isVisible ? [h.DataAttribute('open', '')] : []),
|
|
678
|
+
...(isDisabled ? [h.DataAttribute('disabled', '')] : []),
|
|
679
|
+
...(isInvalid ? [h.DataAttribute('invalid', '')] : []),
|
|
668
680
|
];
|
|
669
|
-
return div(wrapperAttributes, [
|
|
670
|
-
div(resolvedInputWrapperAttributes, [
|
|
671
|
-
input(resolvedInputAttributes),
|
|
681
|
+
return h.div(wrapperAttributes, [
|
|
682
|
+
h.div(resolvedInputWrapperAttributes, [
|
|
683
|
+
h.input(resolvedInputAttributes),
|
|
672
684
|
...toggleButton,
|
|
673
685
|
]),
|
|
674
686
|
...(isVisible && Array.isReadonlyArrayNonEmpty(items)
|
|
@@ -217,7 +217,7 @@ const encodeIsoDate = S.encodeSync(Calendar.CalendarDateFromIsoString);
|
|
|
217
217
|
* provide the trigger face and the calendar grid layout, DatePicker handles
|
|
218
218
|
* focus choreography, open/close state, and form submission. */
|
|
219
219
|
export const view = (config) => {
|
|
220
|
-
const
|
|
220
|
+
const h = html();
|
|
221
221
|
const { model, toParentMessage, onSelectedDate, anchor, triggerContent, toCalendarView, isDisabled, name, className, attributes = [], triggerClassName, triggerAttributes = [], panelClassName, panelAttributes = [], backdropClassName, backdropAttributes = [], } = config;
|
|
222
222
|
const dispatchSelectedDate = (date) => onSelectedDate !== undefined
|
|
223
223
|
? onSelectedDate(date)
|
|
@@ -252,13 +252,13 @@ export const view = (config) => {
|
|
|
252
252
|
onSome: encodeIsoDate,
|
|
253
253
|
});
|
|
254
254
|
const maybeHiddenInput = name !== undefined
|
|
255
|
-
? [input([Type('hidden'), Name(name), Value(hiddenInputValue)])]
|
|
255
|
+
? [h.input([h.Type('hidden'), h.Name(name), h.Value(hiddenInputValue)])]
|
|
256
256
|
: [];
|
|
257
257
|
const wrapperAttributes = [
|
|
258
|
-
...(className !== undefined ? [Class(className)] : []),
|
|
258
|
+
...(className !== undefined ? [h.Class(className)] : []),
|
|
259
259
|
...attributes,
|
|
260
260
|
];
|
|
261
|
-
return div(wrapperAttributes, [popoverVNode, ...maybeHiddenInput]);
|
|
261
|
+
return h.div(wrapperAttributes, [popoverVNode, ...maybeHiddenInput]);
|
|
262
262
|
};
|
|
263
263
|
/** Creates a memoized date picker view. Static config is captured in a closure;
|
|
264
264
|
* only `model` and `toParentMessage` are compared per render via `createLazy`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/dialog/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/dialog/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/dialog/index.js
CHANGED
|
@@ -125,33 +125,33 @@ export const open = (model) => update(model, Opened());
|
|
|
125
125
|
export const close = (model) => update(model, Closed());
|
|
126
126
|
/** Renders a headless dialog component backed by the native `<dialog>` element with `showModal()`. */
|
|
127
127
|
export const view = (config) => {
|
|
128
|
-
const
|
|
128
|
+
const h = html();
|
|
129
129
|
const { model: { id, isOpen, animation: { transitionState }, }, toParentMessage, onClosed, panelContent, panelClassName, panelAttributes = [], backdropClassName, backdropAttributes = [], className, attributes = [], } = config;
|
|
130
130
|
const dispatchClosed = () => onClosed ? onClosed() : toParentMessage(Closed());
|
|
131
131
|
const isLeaving = transitionState === 'LeaveStart' || transitionState === 'LeaveAnimating';
|
|
132
132
|
const isVisible = isOpen || isLeaving;
|
|
133
133
|
const animationAttributes = M.value(transitionState).pipe(M.when('EnterStart', () => [
|
|
134
|
-
DataAttribute('closed', ''),
|
|
135
|
-
DataAttribute('enter', ''),
|
|
136
|
-
DataAttribute('transition', ''),
|
|
134
|
+
h.DataAttribute('closed', ''),
|
|
135
|
+
h.DataAttribute('enter', ''),
|
|
136
|
+
h.DataAttribute('transition', ''),
|
|
137
137
|
]), M.when('EnterAnimating', () => [
|
|
138
|
-
DataAttribute('enter', ''),
|
|
139
|
-
DataAttribute('transition', ''),
|
|
138
|
+
h.DataAttribute('enter', ''),
|
|
139
|
+
h.DataAttribute('transition', ''),
|
|
140
140
|
]), M.when('LeaveStart', () => [
|
|
141
|
-
DataAttribute('leave', ''),
|
|
142
|
-
DataAttribute('transition', ''),
|
|
141
|
+
h.DataAttribute('leave', ''),
|
|
142
|
+
h.DataAttribute('transition', ''),
|
|
143
143
|
]), M.when('LeaveAnimating', () => [
|
|
144
|
-
DataAttribute('closed', ''),
|
|
145
|
-
DataAttribute('leave', ''),
|
|
146
|
-
DataAttribute('transition', ''),
|
|
144
|
+
h.DataAttribute('closed', ''),
|
|
145
|
+
h.DataAttribute('leave', ''),
|
|
146
|
+
h.DataAttribute('transition', ''),
|
|
147
147
|
]), M.orElse(() => []));
|
|
148
148
|
const dialogAttributes = [
|
|
149
|
-
Id(id),
|
|
150
|
-
AriaLabelledBy(`${id}-title`),
|
|
151
|
-
AriaDescribedBy(`${id}-description`),
|
|
152
|
-
OnCancel(dispatchClosed()),
|
|
153
|
-
Open(isVisible),
|
|
154
|
-
Style({
|
|
149
|
+
h.Id(id),
|
|
150
|
+
h.AriaLabelledBy(`${id}-title`),
|
|
151
|
+
h.AriaDescribedBy(`${id}-description`),
|
|
152
|
+
h.OnCancel(dispatchClosed()),
|
|
153
|
+
h.Open(isVisible),
|
|
154
|
+
h.Style({
|
|
155
155
|
width: '100%',
|
|
156
156
|
height: '100%',
|
|
157
157
|
maxWidth: '100%',
|
|
@@ -163,25 +163,25 @@ export const view = (config) => {
|
|
|
163
163
|
? { position: 'fixed', inset: '0', zIndex: '2147483600' }
|
|
164
164
|
: {}),
|
|
165
165
|
}),
|
|
166
|
-
...(isVisible ? [DataAttribute('open', '')] : []),
|
|
167
|
-
...(className ? [Class(className)] : []),
|
|
166
|
+
...(isVisible ? [h.DataAttribute('open', '')] : []),
|
|
167
|
+
...(className ? [h.Class(className)] : []),
|
|
168
168
|
...attributes,
|
|
169
169
|
];
|
|
170
|
-
const backdrop = keyed('div')(`${id}-backdrop`, [
|
|
171
|
-
Style({ minHeight: '100vh' }),
|
|
170
|
+
const backdrop = h.keyed('div')(`${id}-backdrop`, [
|
|
171
|
+
h.Style({ minHeight: '100vh' }),
|
|
172
172
|
...animationAttributes,
|
|
173
|
-
...(isLeaving ? [] : [OnClick(dispatchClosed())]),
|
|
174
|
-
...(backdropClassName ? [Class(backdropClassName)] : []),
|
|
173
|
+
...(isLeaving ? [] : [h.OnClick(dispatchClosed())]),
|
|
174
|
+
...(backdropClassName ? [h.Class(backdropClassName)] : []),
|
|
175
175
|
...backdropAttributes,
|
|
176
176
|
], []);
|
|
177
|
-
const panel = keyed('div')(`${id}-panel`, [
|
|
178
|
-
Id(`${id}-panel`),
|
|
177
|
+
const panel = h.keyed('div')(`${id}-panel`, [
|
|
178
|
+
h.Id(`${id}-panel`),
|
|
179
179
|
...animationAttributes,
|
|
180
|
-
...(panelClassName ? [Class(panelClassName)] : []),
|
|
180
|
+
...(panelClassName ? [h.Class(panelClassName)] : []),
|
|
181
181
|
...panelAttributes,
|
|
182
182
|
], [panelContent]);
|
|
183
183
|
const content = isVisible ? [backdrop, panel] : [];
|
|
184
|
-
return keyed('dialog')(id, dialogAttributes, content);
|
|
184
|
+
return h.keyed('dialog')(id, dialogAttributes, content);
|
|
185
185
|
};
|
|
186
186
|
/** Creates a memoized dialog view. Static config (className, panelClassName,
|
|
187
187
|
* etc.) is captured in a closure. Dynamic fields — `model`, `toParentMessage`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/disclosure/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/disclosure/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,49 +53,51 @@ export const toggle = (model) => update(model, Toggled());
|
|
|
53
53
|
export const close = (model) => update(model, Closed());
|
|
54
54
|
/** Renders a headless disclosure component with accessible ARIA attributes and keyboard support. */
|
|
55
55
|
export const view = (config) => {
|
|
56
|
-
const
|
|
56
|
+
const h = html();
|
|
57
57
|
const { model: { id, isOpen }, toParentMessage, onToggled, buttonClassName, buttonAttributes = [], buttonContent, panelClassName, panelAttributes = [], panelContent, isDisabled, persistPanel, buttonElement = 'button', panelElement = 'div', className, attributes = [], } = config;
|
|
58
58
|
const dispatchToggled = () => onToggled ? onToggled() : toParentMessage(Toggled());
|
|
59
59
|
const isNativeButton = buttonElement === 'button';
|
|
60
60
|
const handleKeyDown = (key) => M.value(key).pipe(M.whenOr('Enter', ' ', () => Option.some(dispatchToggled())), M.orElse(() => Option.none()));
|
|
61
61
|
const disabledAttributes = [
|
|
62
|
-
Disabled(true),
|
|
63
|
-
AriaDisabled(true),
|
|
64
|
-
DataAttribute('disabled', ''),
|
|
62
|
+
h.Disabled(true),
|
|
63
|
+
h.AriaDisabled(true),
|
|
64
|
+
h.DataAttribute('disabled', ''),
|
|
65
65
|
];
|
|
66
66
|
const interactionAttributes = isDisabled
|
|
67
67
|
? disabledAttributes
|
|
68
68
|
: [
|
|
69
|
-
OnClick(dispatchToggled()),
|
|
70
|
-
...(!isNativeButton ? [OnKeyDownPreventDefault(handleKeyDown)] : []),
|
|
69
|
+
h.OnClick(dispatchToggled()),
|
|
70
|
+
...(!isNativeButton ? [h.OnKeyDownPreventDefault(handleKeyDown)] : []),
|
|
71
71
|
];
|
|
72
72
|
const resolvedButtonAttributes = [
|
|
73
|
-
Id(buttonId(id)),
|
|
74
|
-
AriaExpanded(isOpen),
|
|
75
|
-
AriaControls(panelId(id)),
|
|
76
|
-
...(isNativeButton ? [Type('button')] : [Tabindex(0)]),
|
|
77
|
-
...(isOpen ? [DataAttribute('open', '')] : []),
|
|
73
|
+
h.Id(buttonId(id)),
|
|
74
|
+
h.AriaExpanded(isOpen),
|
|
75
|
+
h.AriaControls(panelId(id)),
|
|
76
|
+
...(isNativeButton ? [h.Type('button')] : [h.Tabindex(0)]),
|
|
77
|
+
...(isOpen ? [h.DataAttribute('open', '')] : []),
|
|
78
78
|
...interactionAttributes,
|
|
79
|
-
...(buttonClassName ? [Class(buttonClassName)] : []),
|
|
79
|
+
...(buttonClassName ? [h.Class(buttonClassName)] : []),
|
|
80
80
|
...buttonAttributes,
|
|
81
81
|
];
|
|
82
82
|
const resolvedPanelAttributes = [
|
|
83
|
-
Id(panelId(id)),
|
|
84
|
-
...(isOpen ? [DataAttribute('open', '')] : []),
|
|
85
|
-
...(panelClassName ? [Class(panelClassName)] : []),
|
|
83
|
+
h.Id(panelId(id)),
|
|
84
|
+
...(isOpen ? [h.DataAttribute('open', '')] : []),
|
|
85
|
+
...(panelClassName ? [h.Class(panelClassName)] : []),
|
|
86
86
|
...panelAttributes,
|
|
87
87
|
];
|
|
88
|
-
const persistedPanel = keyed(panelElement)(panelId(id), [
|
|
88
|
+
const persistedPanel = h.keyed(panelElement)(panelId(id), [
|
|
89
89
|
...resolvedPanelAttributes,
|
|
90
|
-
Hidden(!isOpen),
|
|
91
|
-
...(isOpen ? [] : [Style({ display: 'none' })]),
|
|
90
|
+
h.Hidden(!isOpen),
|
|
91
|
+
...(isOpen ? [] : [h.Style({ display: 'none' })]),
|
|
92
92
|
], [panelContent]);
|
|
93
93
|
const activePanel = isOpen
|
|
94
|
-
? keyed(panelElement)(panelId(id), resolvedPanelAttributes, [
|
|
95
|
-
|
|
94
|
+
? h.keyed(panelElement)(panelId(id), resolvedPanelAttributes, [
|
|
95
|
+
panelContent,
|
|
96
|
+
])
|
|
97
|
+
: h.empty;
|
|
96
98
|
const panel = persistPanel ? persistedPanel : activePanel;
|
|
97
|
-
return div([...(className ? [Class(className)] : []), ...attributes], [
|
|
98
|
-
keyed(buttonElement)(buttonId(id), resolvedButtonAttributes, [
|
|
99
|
+
return h.div([...(className ? [h.Class(className)] : []), ...attributes], [
|
|
100
|
+
h.keyed(buttonElement)(buttonId(id), resolvedButtonAttributes, [
|
|
99
101
|
buttonContent,
|
|
100
102
|
]),
|
|
101
103
|
panel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/dragAndDrop/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/dragAndDrop/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -471,7 +471,7 @@ const LEFT_MOUSE_BUTTON = 0;
|
|
|
471
471
|
const arrowKeyToDirection = (key) => M.value(key).pipe(M.withReturnType(), M.when('ArrowUp', () => 'Up'), M.when('ArrowDown', () => 'Down'), M.when('ArrowLeft', () => 'Left'), M.when('ArrowRight', () => 'Right'), M.option);
|
|
472
472
|
/** Returns attributes the parent attaches to a draggable element. Handles pointer-down, keyboard activation, and ARIA. */
|
|
473
473
|
export const draggable = (config) => {
|
|
474
|
-
const
|
|
474
|
+
const h = html();
|
|
475
475
|
const isKeyboardDragActivationKey = (key) => key === ' ' || key === 'Enter';
|
|
476
476
|
const handleKeyDown = (key) => {
|
|
477
477
|
if (isKeyboardDragActivationKey(key) &&
|
|
@@ -485,20 +485,20 @@ export const draggable = (config) => {
|
|
|
485
485
|
return Option.none();
|
|
486
486
|
};
|
|
487
487
|
return [
|
|
488
|
-
DataAttribute('draggable-id', config.itemId),
|
|
489
|
-
DataAttribute('sortable-id', config.itemId),
|
|
490
|
-
Role('option'),
|
|
491
|
-
AriaRoleDescription('draggable'),
|
|
492
|
-
Tabindex(0),
|
|
493
|
-
OnPointerDown((_pointerType, button, screenX, screenY) => pipe(button, Option.liftPredicate(Equal.equals(LEFT_MOUSE_BUTTON)), Option.map(() => config.toParentMessage(PressedDraggable({
|
|
488
|
+
h.DataAttribute('draggable-id', config.itemId),
|
|
489
|
+
h.DataAttribute('sortable-id', config.itemId),
|
|
490
|
+
h.Role('option'),
|
|
491
|
+
h.AriaRoleDescription('draggable'),
|
|
492
|
+
h.Tabindex(0),
|
|
493
|
+
h.OnPointerDown((_pointerType, button, screenX, screenY) => pipe(button, Option.liftPredicate(Equal.equals(LEFT_MOUSE_BUTTON)), Option.map(() => config.toParentMessage(PressedDraggable({
|
|
494
494
|
itemId: config.itemId,
|
|
495
495
|
containerId: config.containerId,
|
|
496
496
|
index: config.index,
|
|
497
497
|
screenX,
|
|
498
498
|
screenY,
|
|
499
499
|
}))))),
|
|
500
|
-
OnKeyDownPreventDefault(handleKeyDown),
|
|
501
|
-
Style({
|
|
500
|
+
h.OnKeyDownPreventDefault(handleKeyDown),
|
|
501
|
+
h.Style({
|
|
502
502
|
'touch-action': 'none',
|
|
503
503
|
'user-select': 'none',
|
|
504
504
|
'-webkit-user-select': 'none',
|
|
@@ -507,17 +507,17 @@ export const draggable = (config) => {
|
|
|
507
507
|
};
|
|
508
508
|
/** Returns attributes the parent attaches to a droppable container element. */
|
|
509
509
|
export const droppable = (containerId, label) => {
|
|
510
|
-
const
|
|
510
|
+
const h = html();
|
|
511
511
|
return [
|
|
512
|
-
DataAttribute('droppable-id', containerId),
|
|
513
|
-
Role('listbox'),
|
|
514
|
-
...(label ? [AriaLabel(label)] : []),
|
|
512
|
+
h.DataAttribute('droppable-id', containerId),
|
|
513
|
+
h.Role('listbox'),
|
|
514
|
+
...(label ? [h.AriaLabel(label)] : []),
|
|
515
515
|
];
|
|
516
516
|
};
|
|
517
517
|
/** Returns attributes the parent attaches to a sortable item element. Typically combined with `draggable`. */
|
|
518
518
|
export const sortable = (itemId) => {
|
|
519
|
-
const
|
|
520
|
-
return [DataAttribute('sortable-id', itemId)];
|
|
519
|
+
const h = html();
|
|
520
|
+
return [h.DataAttribute('sortable-id', itemId)];
|
|
521
521
|
};
|
|
522
522
|
const ghostTransform = (clientX, clientY) => `translate3d(${String(clientX)}px, ${String(clientY)}px, 0)`;
|
|
523
523
|
/** Returns positioning styles for the ghost element, or None when not dragging with a pointer. */
|