@lumx/vue 4.17.1-alpha.2 → 4.17.1-alpha.3
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 +31 -0
- package/_internal/_virtual/_rolldown/runtime.js +34 -0
- package/_internal/components/alert-dialog/AlertDialog.d.ts +45 -0
- package/_internal/components/alert-dialog/AlertDialog.js +79 -0
- package/_internal/components/alert-dialog/index.d.ts +1 -0
- package/_internal/components/avatar/Avatar.d.ts +30 -0
- package/_internal/components/avatar/Avatar.js +50 -0
- package/_internal/components/avatar/index.d.ts +2 -0
- package/_internal/components/badge/Badge.d.ts +16 -0
- package/_internal/components/badge/Badge.js +25 -0
- package/_internal/components/badge/BadgeWrapper.d.ts +10 -0
- package/_internal/components/badge/BadgeWrapper.js +22 -0
- package/_internal/components/badge/index.d.ts +2 -0
- package/_internal/components/button/Button.d.ts +18 -0
- package/_internal/components/button/Button.js +66 -0
- package/_internal/components/button/ButtonGroup.d.ts +16 -0
- package/_internal/components/button/ButtonGroup.js +25 -0
- package/_internal/components/button/IconButton.d.ts +33 -0
- package/_internal/components/button/IconButton.js +53 -0
- package/_internal/components/button/index.d.ts +4 -0
- package/_internal/components/checkbox/Checkbox.d.ts +20 -0
- package/_internal/components/checkbox/Checkbox.js +55 -0
- package/_internal/components/checkbox/index.d.ts +1 -0
- package/_internal/components/chip/Chip.d.ts +26 -0
- package/_internal/components/chip/Chip.js +74 -0
- package/_internal/components/chip/ChipGroup.d.ts +10 -0
- package/_internal/components/chip/ChipGroup.js +19 -0
- package/_internal/components/chip/SelectionChipGroup.d.ts +48 -0
- package/_internal/components/chip/SelectionChipGroup.js +91 -0
- package/_internal/components/chip/index.d.ts +3 -0
- package/_internal/components/combobox/ComboboxButton.d.ts +15 -0
- package/_internal/components/combobox/ComboboxButton.js +63 -0
- package/_internal/components/combobox/ComboboxInput.d.ts +20 -0
- package/_internal/components/combobox/ComboboxInput.js +97 -0
- package/_internal/components/combobox/ComboboxList.d.ts +7 -0
- package/_internal/components/combobox/ComboboxList.js +54 -0
- package/_internal/components/combobox/ComboboxOption.d.ts +11 -0
- package/_internal/components/combobox/ComboboxOption.js +79 -0
- package/_internal/components/combobox/ComboboxOptionAction.d.ts +9 -0
- package/_internal/components/combobox/ComboboxOptionAction.js +40 -0
- package/_internal/components/combobox/ComboboxOptionMoreInfo.d.ts +9 -0
- package/_internal/components/combobox/ComboboxOptionMoreInfo.js +78 -0
- package/_internal/components/combobox/ComboboxOptionSkeleton.d.ts +7 -0
- package/_internal/components/combobox/ComboboxOptionSkeleton.js +37 -0
- package/_internal/components/combobox/ComboboxPopover.d.ts +13 -0
- package/_internal/components/combobox/ComboboxPopover.js +46 -0
- package/_internal/components/combobox/ComboboxProvider.d.ts +7 -0
- package/_internal/components/combobox/ComboboxProvider.js +46 -0
- package/_internal/components/combobox/ComboboxSection.d.ts +7 -0
- package/_internal/components/combobox/ComboboxSection.js +51 -0
- package/_internal/components/combobox/ComboboxState.d.ts +7 -0
- package/_internal/components/combobox/ComboboxState.js +61 -0
- package/_internal/components/combobox/context/ComboboxContext.js +21 -0
- package/_internal/components/combobox/context/ComboboxListContext.js +19 -0
- package/_internal/components/combobox/context/ComboboxOptionContext.js +22 -0
- package/_internal/components/combobox/context/useComboboxEvent.js +20 -0
- package/_internal/components/combobox/context/useComboboxOpen.js +17 -0
- package/_internal/components/combobox/index.d.ts +115 -0
- package/_internal/components/combobox/index.js +44 -0
- package/_internal/components/combobox/useWrappedRenderOptionSlot.js +46 -0
- package/_internal/components/combobox/useWrappedRenderSectionTitleSlot.js +18 -0
- package/_internal/components/dialog/Dialog.d.ts +42 -0
- package/_internal/components/dialog/Dialog.js +109 -0
- package/_internal/components/dialog/index.d.ts +2 -0
- package/_internal/components/divider/Divider.d.ts +16 -0
- package/_internal/components/divider/Divider.js +29 -0
- package/_internal/components/divider/index.d.ts +1 -0
- package/_internal/components/drag-handle/DragHandle.d.ts +16 -0
- package/_internal/components/drag-handle/DragHandle.js +29 -0
- package/_internal/components/drag-handle/index.d.ts +1 -0
- package/_internal/components/expansion-panel/ExpansionPanel.d.ts +34 -0
- package/_internal/components/expansion-panel/ExpansionPanel.js +86 -0
- package/_internal/components/expansion-panel/index.d.ts +1 -0
- package/_internal/components/flag/Flag.d.ts +16 -0
- package/_internal/components/flag/Flag.js +30 -0
- package/_internal/components/flag/index.d.ts +2 -0
- package/_internal/components/flex-box/FlexBox.d.ts +24 -0
- package/_internal/components/flex-box/FlexBox.js +30 -0
- package/_internal/components/flex-box/index.d.ts +2 -0
- package/_internal/components/generic-block/GenericBlock.d.ts +59 -0
- package/_internal/components/generic-block/GenericBlock.js +55 -0
- package/_internal/components/generic-block/index.d.ts +2 -0
- package/_internal/components/grid-column/GridColumn.d.ts +9 -0
- package/_internal/components/grid-column/GridColumn.js +19 -0
- package/_internal/components/grid-column/index.d.ts +2 -0
- package/_internal/components/heading/Heading.d.ts +16 -0
- package/_internal/components/heading/Heading.js +36 -0
- package/_internal/components/heading/HeadingLevelProvider.d.ts +14 -0
- package/_internal/components/heading/HeadingLevelProvider.js +29 -0
- package/_internal/components/heading/context.js +4 -0
- package/_internal/components/heading/index.d.ts +4 -0
- package/_internal/components/heading/useHeadingLevel.d.ts +11 -0
- package/_internal/components/heading/useHeadingLevel.js +14 -0
- package/_internal/components/icon/Icon.d.ts +16 -0
- package/_internal/components/icon/Icon.js +27 -0
- package/_internal/components/icon/index.d.ts +2 -0
- package/_internal/components/image-block/ImageBlock.d.ts +19 -0
- package/_internal/components/image-block/ImageBlock.js +38 -0
- package/_internal/components/image-block/ImageCaption.js +30 -0
- package/_internal/components/image-block/index.d.ts +2 -0
- package/_internal/components/inline-list/InlineList.d.ts +16 -0
- package/_internal/components/inline-list/InlineList.js +25 -0
- package/_internal/components/inline-list/index.d.ts +1 -0
- package/_internal/components/input-helper/InputHelper.d.ts +16 -0
- package/_internal/components/input-helper/InputHelper.js +28 -0
- package/_internal/components/input-helper/index.d.ts +1 -0
- package/_internal/components/input-label/InputLabel.d.ts +16 -0
- package/_internal/components/input-label/InputLabel.js +28 -0
- package/_internal/components/input-label/index.d.ts +1 -0
- package/_internal/components/lightbox/Lightbox.d.ts +22 -0
- package/_internal/components/lightbox/Lightbox.js +63 -0
- package/_internal/components/lightbox/index.d.ts +1 -0
- package/_internal/components/link/Link.d.ts +20 -0
- package/_internal/components/link/Link.js +43 -0
- package/_internal/components/link/index.d.ts +1 -0
- package/_internal/components/link-preview/LinkPreview.d.ts +20 -0
- package/_internal/components/link-preview/LinkPreview.js +36 -0
- package/_internal/components/link-preview/index.d.ts +1 -0
- package/_internal/components/list/List.d.ts +16 -0
- package/_internal/components/list/List.js +25 -0
- package/_internal/components/list/ListDivider.d.ts +16 -0
- package/_internal/components/list/ListDivider.js +22 -0
- package/_internal/components/list/ListItem.d.ts +27 -0
- package/_internal/components/list/ListItem.js +47 -0
- package/_internal/components/list/ListItemAction.d.ts +27 -0
- package/_internal/components/list/ListItemAction.js +41 -0
- package/_internal/components/list/ListSection.d.ts +16 -0
- package/_internal/components/list/ListSection.js +30 -0
- package/_internal/components/list/index.d.ts +6 -0
- package/_internal/components/menu-button/MenuButton.d.ts +48 -0
- package/_internal/components/menu-button/MenuButton.js +59 -0
- package/_internal/components/menu-button/MenuItem.d.ts +40 -0
- package/_internal/components/menu-button/MenuItem.js +86 -0
- package/_internal/components/menu-button/MenuList.js +43 -0
- package/_internal/components/menu-button/MenuPopover.d.ts +8 -0
- package/_internal/components/menu-button/MenuPopover.js +36 -0
- package/_internal/components/menu-button/MenuProvider.js +49 -0
- package/_internal/components/menu-button/MenuTrigger.js +52 -0
- package/_internal/components/menu-button/context.js +15 -0
- package/_internal/components/menu-button/index.d.ts +3 -0
- package/_internal/components/menu-button/useMenuEvent.js +17 -0
- package/_internal/components/menu-button/useMenuOpen.js +11 -0
- package/_internal/components/message/Message.d.ts +22 -0
- package/_internal/components/message/Message.js +31 -0
- package/_internal/components/message/index.d.ts +1 -0
- package/_internal/components/mosaic/Mosaic.d.ts +28 -0
- package/_internal/components/mosaic/Mosaic.js +36 -0
- package/_internal/components/mosaic/index.d.ts +1 -0
- package/_internal/components/popover/Popover.d.ts +35 -0
- package/_internal/components/popover/Popover.js +76 -0
- package/_internal/components/popover/index.d.ts +3 -0
- package/_internal/components/popover/usePopoverStyle.js +55 -0
- package/_internal/components/popover-dialog/PopoverDialog.d.ts +28 -0
- package/_internal/components/popover-dialog/PopoverDialog.js +34 -0
- package/_internal/components/popover-dialog/index.d.ts +1 -0
- package/_internal/components/progress/ProgressCircular.d.ts +10 -0
- package/_internal/components/progress/ProgressCircular.js +28 -0
- package/_internal/components/progress/ProgressLinear.d.ts +10 -0
- package/_internal/components/progress/ProgressLinear.js +23 -0
- package/_internal/components/progress/index.d.ts +3 -0
- package/_internal/components/radio-button/RadioButton.d.ts +20 -0
- package/_internal/components/radio-button/RadioButton.js +50 -0
- package/_internal/components/radio-button/RadioGroup.d.ts +15 -0
- package/_internal/components/radio-button/RadioGroup.js +25 -0
- package/_internal/components/radio-button/index.d.ts +2 -0
- package/_internal/components/select-button/SelectButton.d.ts +172 -0
- package/_internal/components/select-button/SelectButton.js +164 -0
- package/_internal/components/select-button/index.d.ts +21 -0
- package/_internal/components/select-button/index.js +7 -0
- package/_internal/components/select-text-field/SelectTextField.d.ts +122 -0
- package/_internal/components/select-text-field/SelectTextField.js +195 -0
- package/_internal/components/select-text-field/index.d.ts +51 -0
- package/_internal/components/select-text-field/index.js +19 -0
- package/_internal/components/skeleton/SkeletonCircle.d.ts +15 -0
- package/_internal/components/skeleton/SkeletonCircle.js +29 -0
- package/_internal/components/skeleton/SkeletonRectangle.d.ts +15 -0
- package/_internal/components/skeleton/SkeletonRectangle.js +29 -0
- package/_internal/components/skeleton/SkeletonTypography.d.ts +15 -0
- package/_internal/components/skeleton/SkeletonTypography.js +29 -0
- package/_internal/components/skeleton/index.d.ts +4 -0
- package/_internal/components/switch/Switch.d.ts +20 -0
- package/_internal/components/switch/Switch.js +50 -0
- package/_internal/components/switch/index.d.ts +1 -0
- package/_internal/components/table/Table.d.ts +10 -0
- package/_internal/components/table/Table.js +24 -0
- package/_internal/components/table/TableBody.d.ts +10 -0
- package/_internal/components/table/TableBody.js +21 -0
- package/_internal/components/table/TableCell.d.ts +17 -0
- package/_internal/components/table/TableCell.js +28 -0
- package/_internal/components/table/TableHeader.d.ts +10 -0
- package/_internal/components/table/TableHeader.js +21 -0
- package/_internal/components/table/TableRow.d.ts +14 -0
- package/_internal/components/table/TableRow.js +28 -0
- package/_internal/components/table/index.d.ts +6 -0
- package/_internal/components/tabs/Tab.d.ts +16 -0
- package/_internal/components/tabs/Tab.js +52 -0
- package/_internal/components/tabs/TabList.d.ts +22 -0
- package/_internal/components/tabs/TabList.js +42 -0
- package/_internal/components/tabs/TabPanel.d.ts +18 -0
- package/_internal/components/tabs/TabPanel.js +36 -0
- package/_internal/components/tabs/TabProvider.d.ts +25 -0
- package/_internal/components/tabs/TabProvider.js +60 -0
- package/_internal/components/tabs/index.d.ts +5 -0
- package/_internal/components/tabs/state.js +53 -0
- package/_internal/components/text/Text.d.ts +16 -0
- package/_internal/components/text/Text.js +50 -0
- package/_internal/components/text/index.d.ts +1 -0
- package/_internal/components/text-field/RawInputText.d.ts +27 -0
- package/_internal/components/text-field/RawInputText.js +55 -0
- package/_internal/components/text-field/RawInputTextarea.d.ts +27 -0
- package/_internal/components/text-field/RawInputTextarea.js +59 -0
- package/_internal/components/text-field/TextField.d.ts +52 -0
- package/_internal/components/text-field/TextField.js +123 -0
- package/_internal/components/text-field/index.d.ts +3 -0
- package/_internal/components/text-field/useFitRowsToContent.js +25 -0
- package/_internal/components/thumbnail/Thumbnail.d.ts +29 -0
- package/_internal/components/thumbnail/Thumbnail.js +89 -0
- package/_internal/components/thumbnail/index.d.ts +2 -0
- package/_internal/components/thumbnail/useFocusPointStyle.js +50 -0
- package/_internal/components/thumbnail/useImageLoad.js +38 -0
- package/_internal/components/time-picker-field/TimePickerField.d.ts +37 -0
- package/_internal/components/time-picker-field/TimePickerField.js +104 -0
- package/_internal/components/time-picker-field/index.d.ts +2 -0
- package/_internal/components/toolbar/Toolbar.d.ts +10 -0
- package/_internal/components/toolbar/Toolbar.js +23 -0
- package/_internal/components/toolbar/index.d.ts +2 -0
- package/_internal/components/tooltip/Tooltip.d.ts +18 -0
- package/_internal/components/tooltip/Tooltip.js +77 -0
- package/_internal/components/tooltip/context.js +20 -0
- package/_internal/components/tooltip/index.d.ts +2 -0
- package/_internal/components/tooltip/useInjectTooltipRef.js +46 -0
- package/_internal/components/tooltip/useTooltipOpen.js +39 -0
- package/_internal/components/uploader/Uploader.d.ts +30 -0
- package/_internal/components/uploader/Uploader.js +77 -0
- package/_internal/components/uploader/index.d.ts +2 -0
- package/_internal/components/user-block/UserBlock.d.ts +31 -0
- package/_internal/components/user-block/UserBlock.js +120 -0
- package/_internal/components/user-block/index.d.ts +2 -0
- package/_internal/composables/useAttrFallback.js +39 -0
- package/_internal/composables/useCallbackOnEscape.js +42 -0
- package/_internal/composables/useClassName.js +21 -0
- package/_internal/composables/useDisableBodyScroll.js +17 -0
- package/_internal/composables/useDisableStateProps.js +36 -0
- package/_internal/composables/useDisabledState.js +8 -0
- package/_internal/composables/useFocus.js +23 -0
- package/_internal/composables/useFocusTrap.js +38 -0
- package/_internal/composables/useHasEventListener.js +13 -0
- package/_internal/composables/useId.js +14 -0
- package/_internal/composables/useOverflowTooltipLabel.js +28 -0
- package/_internal/composables/useRestoreFocusOnClose.js +37 -0
- package/_internal/composables/useRovingTabIndexContainer.js +26 -0
- package/_internal/composables/useSlot.js +15 -0
- package/_internal/composables/useTransitionVisibility.js +40 -0
- package/_internal/composables/useWatchDisposable.js +24 -0
- package/_internal/node_modules/@floating-ui/core/dist/floating-ui.core.js +536 -0
- package/_internal/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +528 -0
- package/_internal/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +144 -0
- package/_internal/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +135 -0
- package/_internal/node_modules/@floating-ui/vue/dist/floating-ui.vue.js +145 -0
- package/_internal/node_modules/@vue/reactivity/dist/reactivity.d.ts +104 -0
- package/_internal/node_modules/@vue/runtime-core/dist/runtime-core.d.ts +1179 -0
- package/_internal/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts +90 -0
- package/_internal/node_modules/@vue/shared/dist/shared.d.ts +7 -0
- package/_internal/node_modules/@vueuse/core/dist/index.js +289 -0
- package/_internal/node_modules/@vueuse/shared/dist/index.js +49 -0
- package/_internal/node_modules/classnames/index.js +45 -0
- package/_internal/node_modules/lodash/_DataView.js +10 -0
- package/_internal/node_modules/lodash/_Hash.js +34 -0
- package/_internal/node_modules/lodash/_ListCache.js +34 -0
- package/_internal/node_modules/lodash/_Map.js +10 -0
- package/_internal/node_modules/lodash/_MapCache.js +34 -0
- package/_internal/node_modules/lodash/_Promise.js +10 -0
- package/_internal/node_modules/lodash/_Set.js +10 -0
- package/_internal/node_modules/lodash/_Symbol.js +9 -0
- package/_internal/node_modules/lodash/_WeakMap.js +10 -0
- package/_internal/node_modules/lodash/_apply.js +27 -0
- package/_internal/node_modules/lodash/_arrayMap.js +22 -0
- package/_internal/node_modules/lodash/_arrayPush.js +21 -0
- package/_internal/node_modules/lodash/_assignValue.js +27 -0
- package/_internal/node_modules/lodash/_assocIndexOf.js +23 -0
- package/_internal/node_modules/lodash/_baseAssignValue.js +28 -0
- package/_internal/node_modules/lodash/_baseFindIndex.js +24 -0
- package/_internal/node_modules/lodash/_baseFlatten.js +34 -0
- package/_internal/node_modules/lodash/_baseGet.js +25 -0
- package/_internal/node_modules/lodash/_baseGetTag.js +27 -0
- package/_internal/node_modules/lodash/_baseHasIn.js +19 -0
- package/_internal/node_modules/lodash/_baseIndexOf.js +24 -0
- package/_internal/node_modules/lodash/_baseIndexOfWith.js +23 -0
- package/_internal/node_modules/lodash/_baseIsArguments.js +23 -0
- package/_internal/node_modules/lodash/_baseIsNaN.js +18 -0
- package/_internal/node_modules/lodash/_baseIsNative.js +40 -0
- package/_internal/node_modules/lodash/_baseIsTypedArray.js +29 -0
- package/_internal/node_modules/lodash/_baseKeys.js +26 -0
- package/_internal/node_modules/lodash/_basePick.js +25 -0
- package/_internal/node_modules/lodash/_basePickBy.js +29 -0
- package/_internal/node_modules/lodash/_basePullAll.js +40 -0
- package/_internal/node_modules/lodash/_baseRest.js +23 -0
- package/_internal/node_modules/lodash/_baseSet.js +41 -0
- package/_internal/node_modules/lodash/_baseSetToString.js +19 -0
- package/_internal/node_modules/lodash/_baseSlice.js +28 -0
- package/_internal/node_modules/lodash/_baseToString.js +32 -0
- package/_internal/node_modules/lodash/_baseTrim.js +22 -0
- package/_internal/node_modules/lodash/_baseUnary.js +20 -0
- package/_internal/node_modules/lodash/_castPath.js +25 -0
- package/_internal/node_modules/lodash/_copyArray.js +22 -0
- package/_internal/node_modules/lodash/_coreJsData.js +9 -0
- package/_internal/node_modules/lodash/_defineProperty.js +16 -0
- package/_internal/node_modules/lodash/_flatRest.js +22 -0
- package/_internal/node_modules/lodash/_freeGlobal.js +8 -0
- package/_internal/node_modules/lodash/_getMapData.js +22 -0
- package/_internal/node_modules/lodash/_getNative.js +23 -0
- package/_internal/node_modules/lodash/_getRawTag.js +40 -0
- package/_internal/node_modules/lodash/_getTag.js +40 -0
- package/_internal/node_modules/lodash/_getValue.js +19 -0
- package/_internal/node_modules/lodash/_hasPath.js +36 -0
- package/_internal/node_modules/lodash/_hashClear.js +21 -0
- package/_internal/node_modules/lodash/_hashDelete.js +23 -0
- package/_internal/node_modules/lodash/_hashGet.js +31 -0
- package/_internal/node_modules/lodash/_hashHas.js +25 -0
- package/_internal/node_modules/lodash/_hashSet.js +28 -0
- package/_internal/node_modules/lodash/_isFlattenable.js +24 -0
- package/_internal/node_modules/lodash/_isIndex.js +25 -0
- package/_internal/node_modules/lodash/_isKey.js +27 -0
- package/_internal/node_modules/lodash/_isKeyable.js +19 -0
- package/_internal/node_modules/lodash/_isMasked.js +25 -0
- package/_internal/node_modules/lodash/_isPrototype.js +21 -0
- package/_internal/node_modules/lodash/_listCacheClear.js +19 -0
- package/_internal/node_modules/lodash/_listCacheDelete.js +29 -0
- package/_internal/node_modules/lodash/_listCacheGet.js +23 -0
- package/_internal/node_modules/lodash/_listCacheHas.js +22 -0
- package/_internal/node_modules/lodash/_listCacheSet.js +28 -0
- package/_internal/node_modules/lodash/_mapCacheClear.js +27 -0
- package/_internal/node_modules/lodash/_mapCacheDelete.js +24 -0
- package/_internal/node_modules/lodash/_mapCacheGet.js +22 -0
- package/_internal/node_modules/lodash/_mapCacheHas.js +22 -0
- package/_internal/node_modules/lodash/_mapCacheSet.js +26 -0
- package/_internal/node_modules/lodash/_memoizeCapped.js +28 -0
- package/_internal/node_modules/lodash/_nativeCreate.js +9 -0
- package/_internal/node_modules/lodash/_nativeKeys.js +9 -0
- package/_internal/node_modules/lodash/_nodeUtil.js +22 -0
- package/_internal/node_modules/lodash/_objectToString.js +24 -0
- package/_internal/node_modules/lodash/_overArg.js +21 -0
- package/_internal/node_modules/lodash/_overRest.js +32 -0
- package/_internal/node_modules/lodash/_root.js +12 -0
- package/_internal/node_modules/lodash/_setToString.js +11 -0
- package/_internal/node_modules/lodash/_shortOut.js +31 -0
- package/_internal/node_modules/lodash/_strictIndexOf.js +23 -0
- package/_internal/node_modules/lodash/_stringToPath.js +21 -0
- package/_internal/node_modules/lodash/_toKey.js +24 -0
- package/_internal/node_modules/lodash/_toSource.js +28 -0
- package/_internal/node_modules/lodash/_trimmedEndIndex.js +23 -0
- package/_internal/node_modules/lodash/castArray.js +48 -0
- package/_internal/node_modules/lodash/constant.js +32 -0
- package/_internal/node_modules/lodash/eq.js +43 -0
- package/_internal/node_modules/lodash/flatten.js +27 -0
- package/_internal/node_modules/lodash/hasIn.js +40 -0
- package/_internal/node_modules/lodash/identity.js +27 -0
- package/_internal/node_modules/lodash/isArguments.js +21 -0
- package/_internal/node_modules/lodash/isArray.js +8 -0
- package/_internal/node_modules/lodash/isArrayLike.js +39 -0
- package/_internal/node_modules/lodash/isBuffer.js +17 -0
- package/_internal/node_modules/lodash/isEmpty.js +63 -0
- package/_internal/node_modules/lodash/isFunction.js +35 -0
- package/_internal/node_modules/lodash/isInteger.js +39 -0
- package/_internal/node_modules/lodash/isLength.js +39 -0
- package/_internal/node_modules/lodash/isObject.js +37 -0
- package/_internal/node_modules/lodash/isObjectLike.js +35 -0
- package/_internal/node_modules/lodash/isSymbol.js +33 -0
- package/_internal/node_modules/lodash/isTypedArray.js +13 -0
- package/_internal/node_modules/lodash/last.js +26 -0
- package/_internal/node_modules/lodash/memoize.js +69 -0
- package/_internal/node_modules/lodash/pick.js +13 -0
- package/_internal/node_modules/lodash/pull.js +10 -0
- package/_internal/node_modules/lodash/pullAll.js +33 -0
- package/_internal/node_modules/lodash/set.js +41 -0
- package/_internal/node_modules/lodash/stubFalse.js +24 -0
- package/_internal/node_modules/lodash/take.js +41 -0
- package/_internal/node_modules/lodash/toFinite.js +41 -0
- package/_internal/node_modules/lodash/toInteger.js +40 -0
- package/_internal/node_modules/lodash/toNumber.js +57 -0
- package/_internal/node_modules/lodash/toString.js +34 -0
- package/_internal/node_modules/vue/jsx-runtime/index.d.ts +1 -0
- package/_internal/node_modules/vue-demi/lib/index.js +34 -0
- package/_internal/packages/lumx-core/src/js/components/AlertDialog/index.d.ts +15 -0
- package/_internal/packages/lumx-core/src/js/components/AlertDialog/index.js +107 -0
- package/_internal/packages/lumx-core/src/js/components/Avatar/index.d.ts +27 -0
- package/_internal/packages/lumx-core/src/js/components/Avatar/index.js +29 -0
- package/_internal/packages/lumx-core/src/js/components/Badge/BadgeWrapper.d.ts +14 -0
- package/_internal/packages/lumx-core/src/js/components/Badge/BadgeWrapper.js +12 -0
- package/_internal/packages/lumx-core/src/js/components/Badge/index.d.ts +18 -0
- package/_internal/packages/lumx-core/src/js/components/Badge/index.js +36 -0
- package/_internal/packages/lumx-core/src/js/components/Button/Button.d.ts +19 -0
- package/_internal/packages/lumx-core/src/js/components/Button/Button.js +49 -0
- package/_internal/packages/lumx-core/src/js/components/Button/ButtonGroup.d.ts +17 -0
- package/_internal/packages/lumx-core/src/js/components/Button/ButtonGroup.js +33 -0
- package/_internal/packages/lumx-core/src/js/components/Button/ButtonRoot.d.ts +46 -0
- package/_internal/packages/lumx-core/src/js/components/Button/ButtonRoot.js +77 -0
- package/_internal/packages/lumx-core/src/js/components/Button/IconButton.d.ts +24 -0
- package/_internal/packages/lumx-core/src/js/components/Button/IconButton.js +46 -0
- package/_internal/packages/lumx-core/src/js/components/Checkbox/index.d.ts +35 -0
- package/_internal/packages/lumx-core/src/js/components/Checkbox/index.js +60 -0
- package/_internal/packages/lumx-core/src/js/components/Chip/ChipGroup.d.ts +21 -0
- package/_internal/packages/lumx-core/src/js/components/Chip/ChipGroup.js +19 -0
- package/_internal/packages/lumx-core/src/js/components/Chip/SelectionChipGroup.d.ts +29 -0
- package/_internal/packages/lumx-core/src/js/components/Chip/SelectionChipGroup.js +66 -0
- package/_internal/packages/lumx-core/src/js/components/Chip/index.d.ts +63 -0
- package/_internal/packages/lumx-core/src/js/components/Chip/index.js +65 -0
- package/_internal/packages/lumx-core/src/js/components/Chip/setupSelectionChipGroupEvents.js +97 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxButton.d.ts +34 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxButton.js +58 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxInput.d.ts +34 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxInput.js +47 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxList.d.ts +36 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxList.js +30 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxOption.d.ts +53 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxOption.js +75 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxOptionAction.d.ts +20 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxOptionAction.js +29 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxOptionMoreInfo.d.ts +29 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxOptionMoreInfo.js +60 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxOptionSkeleton.d.ts +32 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxOptionSkeleton.js +40 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxPopover.d.ts +16 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxPopover.js +52 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxSection.d.ts +36 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxSection.js +43 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxState.d.ts +64 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/ComboboxState.js +85 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/constants.js +4 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/setupCombobox.js +350 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/setupComboboxButton.js +84 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/setupComboboxInput.js +95 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/setupListbox.js +84 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/subscribeComboboxState.js +43 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/types.d.ts +142 -0
- package/_internal/packages/lumx-core/src/js/components/Combobox/utils.js +63 -0
- package/_internal/packages/lumx-core/src/js/components/Dialog/index.d.ts +20 -0
- package/_internal/packages/lumx-core/src/js/components/Dialog/index.js +59 -0
- package/_internal/packages/lumx-core/src/js/components/Divider/index.d.ts +13 -0
- package/_internal/packages/lumx-core/src/js/components/Divider/index.js +21 -0
- package/_internal/packages/lumx-core/src/js/components/DragHandle/index.d.ts +13 -0
- package/_internal/packages/lumx-core/src/js/components/DragHandle/index.js +28 -0
- package/_internal/packages/lumx-core/src/js/components/ExpansionPanel/index.d.ts +51 -0
- package/_internal/packages/lumx-core/src/js/components/ExpansionPanel/index.js +63 -0
- package/_internal/packages/lumx-core/src/js/components/Flag/index.d.ts +24 -0
- package/_internal/packages/lumx-core/src/js/components/Flag/index.js +36 -0
- package/_internal/packages/lumx-core/src/js/components/FlexBox/index.d.ts +34 -0
- package/_internal/packages/lumx-core/src/js/components/FlexBox/index.js +37 -0
- package/_internal/packages/lumx-core/src/js/components/FlexBox/types.d.ts +9 -0
- package/_internal/packages/lumx-core/src/js/components/GenericBlock/constants.d.ts +22 -0
- package/_internal/packages/lumx-core/src/js/components/GenericBlock/constants.js +15 -0
- package/_internal/packages/lumx-core/src/js/components/GenericBlock/index.d.ts +60 -0
- package/_internal/packages/lumx-core/src/js/components/GenericBlock/index.js +45 -0
- package/_internal/packages/lumx-core/src/js/components/GridColumn/GridColumn.d.ts +27 -0
- package/_internal/packages/lumx-core/src/js/components/GridColumn/GridColumn.js +50 -0
- package/_internal/packages/lumx-core/src/js/components/GridColumn/index.d.ts +1 -0
- package/_internal/packages/lumx-core/src/js/components/Heading/constants.d.ts +10 -0
- package/_internal/packages/lumx-core/src/js/components/Heading/constants.js +19 -0
- package/_internal/packages/lumx-core/src/js/components/Heading/index.d.ts +14 -0
- package/_internal/packages/lumx-core/src/js/components/Heading/index.js +26 -0
- package/_internal/packages/lumx-core/src/js/components/Heading/utils.js +14 -0
- package/_internal/packages/lumx-core/src/js/components/Icon/constants.d.ts +4 -0
- package/_internal/packages/lumx-core/src/js/components/Icon/index.d.ts +34 -0
- package/_internal/packages/lumx-core/src/js/components/Icon/index.js +63 -0
- package/_internal/packages/lumx-core/src/js/components/ImageBlock/ImageCaption.d.ts +19 -0
- package/_internal/packages/lumx-core/src/js/components/ImageBlock/ImageCaption.js +52 -0
- package/_internal/packages/lumx-core/src/js/components/ImageBlock/index.d.ts +52 -0
- package/_internal/packages/lumx-core/src/js/components/ImageBlock/index.js +67 -0
- package/_internal/packages/lumx-core/src/js/components/InlineList/index.d.ts +34 -0
- package/_internal/packages/lumx-core/src/js/components/InlineList/index.js +48 -0
- package/_internal/packages/lumx-core/src/js/components/InputHelper/constants.js +9 -0
- package/_internal/packages/lumx-core/src/js/components/InputHelper/index.d.ts +21 -0
- package/_internal/packages/lumx-core/src/js/components/InputHelper/index.js +32 -0
- package/_internal/packages/lumx-core/src/js/components/InputLabel/index.d.ts +24 -0
- package/_internal/packages/lumx-core/src/js/components/InputLabel/index.js +31 -0
- package/_internal/packages/lumx-core/src/js/components/Lightbox/index.d.ts +14 -0
- package/_internal/packages/lumx-core/src/js/components/Lightbox/index.js +46 -0
- package/_internal/packages/lumx-core/src/js/components/Link/index.d.ts +34 -0
- package/_internal/packages/lumx-core/src/js/components/Link/index.js +36 -0
- package/_internal/packages/lumx-core/src/js/components/LinkPreview/index.d.ts +35 -0
- package/_internal/packages/lumx-core/src/js/components/LinkPreview/index.js +64 -0
- package/_internal/packages/lumx-core/src/js/components/List/ListDivider.d.ts +12 -0
- package/_internal/packages/lumx-core/src/js/components/List/ListDivider.js +37 -0
- package/_internal/packages/lumx-core/src/js/components/List/ListItem.d.ts +40 -0
- package/_internal/packages/lumx-core/src/js/components/List/ListItem.js +56 -0
- package/_internal/packages/lumx-core/src/js/components/List/ListItemAction.js +27 -0
- package/_internal/packages/lumx-core/src/js/components/List/ListSection.d.ts +27 -0
- package/_internal/packages/lumx-core/src/js/components/List/ListSection.js +46 -0
- package/_internal/packages/lumx-core/src/js/components/List/index.d.ts +20 -0
- package/_internal/packages/lumx-core/src/js/components/List/index.js +39 -0
- package/_internal/packages/lumx-core/src/js/components/Menu/MenuButton.d.ts +28 -0
- package/_internal/packages/lumx-core/src/js/components/Menu/MenuButton.js +21 -0
- package/_internal/packages/lumx-core/src/js/components/Menu/MenuItem.d.ts +27 -0
- package/_internal/packages/lumx-core/src/js/components/Menu/MenuItem.js +33 -0
- package/_internal/packages/lumx-core/src/js/components/Menu/MenuList.js +19 -0
- package/_internal/packages/lumx-core/src/js/components/Menu/MenuPopover.d.ts +12 -0
- package/_internal/packages/lumx-core/src/js/components/Menu/MenuPopover.js +33 -0
- package/_internal/packages/lumx-core/src/js/components/Menu/MenuTrigger.js +21 -0
- package/_internal/packages/lumx-core/src/js/components/Menu/setupMenu.js +256 -0
- package/_internal/packages/lumx-core/src/js/components/Menu/utils.js +16 -0
- package/_internal/packages/lumx-core/src/js/components/Message/index.d.ts +31 -0
- package/_internal/packages/lumx-core/src/js/components/Message/index.js +83 -0
- package/_internal/packages/lumx-core/src/js/components/Mosaic/index.d.ts +18 -0
- package/_internal/packages/lumx-core/src/js/components/Mosaic/index.js +48 -0
- package/_internal/packages/lumx-core/src/js/components/Popover/constants.d.ts +39 -0
- package/_internal/packages/lumx-core/src/js/components/Popover/constants.js +37 -0
- package/_internal/packages/lumx-core/src/js/components/Popover/index.d.ts +65 -0
- package/_internal/packages/lumx-core/src/js/components/Popover/index.js +71 -0
- package/_internal/packages/lumx-core/src/js/components/Popover/types.d.ts +39 -0
- package/_internal/packages/lumx-core/src/js/components/Popover/utils/buildPopoverMiddleware.js +53 -0
- package/_internal/packages/lumx-core/src/js/components/Popover/utils/computeArrowStyles.js +13 -0
- package/_internal/packages/lumx-core/src/js/components/Popover/utils/getFloatingPlacement.js +10 -0
- package/_internal/packages/lumx-core/src/js/components/Popover/utils/parseAutoPlacement.js +21 -0
- package/_internal/packages/lumx-core/src/js/components/Popover/utils/parseFitWidth.js +12 -0
- package/_internal/packages/lumx-core/src/js/components/PopoverDialog/index.d.ts +13 -0
- package/_internal/packages/lumx-core/src/js/components/PopoverDialog/index.js +15 -0
- package/_internal/packages/lumx-core/src/js/components/ProgressCircular/index.d.ts +32 -0
- package/_internal/packages/lumx-core/src/js/components/ProgressCircular/index.js +43 -0
- package/_internal/packages/lumx-core/src/js/components/ProgressLinear/index.d.ts +13 -0
- package/_internal/packages/lumx-core/src/js/components/ProgressLinear/index.js +21 -0
- package/_internal/packages/lumx-core/src/js/components/RadioButton/index.d.ts +35 -0
- package/_internal/packages/lumx-core/src/js/components/RadioButton/index.js +51 -0
- package/_internal/packages/lumx-core/src/js/components/RadioGroup/index.d.ts +1 -0
- package/_internal/packages/lumx-core/src/js/components/RadioGroup/index.js +33 -0
- package/_internal/packages/lumx-core/src/js/components/RawClickable/index.d.ts +14 -0
- package/_internal/packages/lumx-core/src/js/components/RawClickable/index.js +33 -0
- package/_internal/packages/lumx-core/src/js/components/SelectButton/index.d.ts +58 -0
- package/_internal/packages/lumx-core/src/js/components/SelectButton/index.js +85 -0
- package/_internal/packages/lumx-core/src/js/components/SelectTextField/index.js +70 -0
- package/_internal/packages/lumx-core/src/js/components/Skeleton/SkeletonCircle.d.ts +18 -0
- package/_internal/packages/lumx-core/src/js/components/Skeleton/SkeletonCircle.js +25 -0
- package/_internal/packages/lumx-core/src/js/components/Skeleton/SkeletonRectangle.d.ts +34 -0
- package/_internal/packages/lumx-core/src/js/components/Skeleton/SkeletonRectangle.js +40 -0
- package/_internal/packages/lumx-core/src/js/components/Skeleton/SkeletonTypography.d.ts +24 -0
- package/_internal/packages/lumx-core/src/js/components/Skeleton/SkeletonTypography.js +31 -0
- package/_internal/packages/lumx-core/src/js/components/Skeleton/index.d.ts +3 -0
- package/_internal/packages/lumx-core/src/js/components/Switch/index.d.ts +37 -0
- package/_internal/packages/lumx-core/src/js/components/Switch/index.js +58 -0
- package/_internal/packages/lumx-core/src/js/components/Table/TableBody.d.ts +15 -0
- package/_internal/packages/lumx-core/src/js/components/Table/TableBody.js +20 -0
- package/_internal/packages/lumx-core/src/js/components/Table/TableCell.d.ts +42 -0
- package/_internal/packages/lumx-core/src/js/components/Table/TableCell.js +79 -0
- package/_internal/packages/lumx-core/src/js/components/Table/TableHeader.d.ts +15 -0
- package/_internal/packages/lumx-core/src/js/components/Table/TableHeader.js +20 -0
- package/_internal/packages/lumx-core/src/js/components/Table/TableRow.d.ts +22 -0
- package/_internal/packages/lumx-core/src/js/components/Table/TableRow.js +25 -0
- package/_internal/packages/lumx-core/src/js/components/Table/constants.d.ts +1 -0
- package/_internal/packages/lumx-core/src/js/components/Table/constants.js +7 -0
- package/_internal/packages/lumx-core/src/js/components/Table/index.d.ts +20 -0
- package/_internal/packages/lumx-core/src/js/components/Table/index.js +22 -0
- package/_internal/packages/lumx-core/src/js/components/Tabs/Tab.d.ts +54 -0
- package/_internal/packages/lumx-core/src/js/components/Tabs/Tab.js +66 -0
- package/_internal/packages/lumx-core/src/js/components/Tabs/TabList.d.ts +27 -0
- package/_internal/packages/lumx-core/src/js/components/Tabs/TabList.js +42 -0
- package/_internal/packages/lumx-core/src/js/components/Tabs/TabPanel.d.ts +26 -0
- package/_internal/packages/lumx-core/src/js/components/Tabs/TabPanel.js +28 -0
- package/_internal/packages/lumx-core/src/js/components/Tabs/constants.js +7 -0
- package/_internal/packages/lumx-core/src/js/components/Tabs/state.js +53 -0
- package/_internal/packages/lumx-core/src/js/components/Text/index.d.ts +55 -0
- package/_internal/packages/lumx-core/src/js/components/Text/index.js +37 -0
- package/_internal/packages/lumx-core/src/js/components/TextField/RawInputText.d.ts +21 -0
- package/_internal/packages/lumx-core/src/js/components/TextField/RawInputText.js +42 -0
- package/_internal/packages/lumx-core/src/js/components/TextField/RawInputTextarea.d.ts +19 -0
- package/_internal/packages/lumx-core/src/js/components/TextField/RawInputTextarea.js +42 -0
- package/_internal/packages/lumx-core/src/js/components/TextField/TextField.d.ts +70 -0
- package/_internal/packages/lumx-core/src/js/components/TextField/TextField.js +127 -0
- package/_internal/packages/lumx-core/src/js/components/TextField/constants.d.ts +1 -0
- package/_internal/packages/lumx-core/src/js/components/TextField/constants.js +11 -0
- package/_internal/packages/lumx-core/src/js/components/Thumbnail/index.d.ts +60 -0
- package/_internal/packages/lumx-core/src/js/components/Thumbnail/index.js +99 -0
- package/_internal/packages/lumx-core/src/js/components/Thumbnail/types.d.ts +47 -0
- package/_internal/packages/lumx-core/src/js/components/Thumbnail/types.js +18 -0
- package/_internal/packages/lumx-core/src/js/components/Thumbnail/utils.d.ts +1 -0
- package/_internal/packages/lumx-core/src/js/components/Thumbnail/utils.js +76 -0
- package/_internal/packages/lumx-core/src/js/components/TimePickerField/index.d.ts +61 -0
- package/_internal/packages/lumx-core/src/js/components/TimePickerField/index.js +72 -0
- package/_internal/packages/lumx-core/src/js/components/Toolbar/index.d.ts +23 -0
- package/_internal/packages/lumx-core/src/js/components/Toolbar/index.js +36 -0
- package/_internal/packages/lumx-core/src/js/components/Tooltip/constants.d.ts +4 -0
- package/_internal/packages/lumx-core/src/js/components/Tooltip/constants.js +8 -0
- package/_internal/packages/lumx-core/src/js/components/Tooltip/index.d.ts +25 -0
- package/_internal/packages/lumx-core/src/js/components/Tooltip/index.js +56 -0
- package/_internal/packages/lumx-core/src/js/components/Tooltip/tooltipOpenManager.js +93 -0
- package/_internal/packages/lumx-core/src/js/components/Uploader/index.d.ts +59 -0
- package/_internal/packages/lumx-core/src/js/components/Uploader/index.js +64 -0
- package/_internal/packages/lumx-core/src/js/components/UserBlock/index.d.ts +124 -0
- package/_internal/packages/lumx-core/src/js/components/UserBlock/index.js +88 -0
- package/_internal/packages/lumx-core/src/js/constants/browser/index.js +7 -0
- package/_internal/packages/lumx-core/src/js/constants/components/index.js +19 -0
- package/_internal/packages/lumx-core/src/js/constants/enums/index.d.ts +184 -0
- package/_internal/packages/lumx-core/src/js/constants/enums/index.js +140 -0
- package/_internal/packages/lumx-core/src/js/constants/index.d.ts +1 -0
- package/_internal/packages/lumx-core/src/js/types/AriaAttributes.d.ts +32 -0
- package/_internal/packages/lumx-core/src/js/types/Booleanish.d.ts +4 -0
- package/_internal/packages/lumx-core/src/js/types/CommonRef.d.ts +4 -0
- package/_internal/packages/lumx-core/src/js/types/GenericProps.d.ts +14 -0
- package/_internal/packages/lumx-core/src/js/types/HasAriaDisabled.d.ts +9 -0
- package/_internal/packages/lumx-core/src/js/types/HasAriaLabelOrLabelledBy.d.ts +19 -0
- package/_internal/packages/lumx-core/src/js/types/HasChecked.d.ts +9 -0
- package/_internal/packages/lumx-core/src/js/types/HasClassName.d.ts +9 -0
- package/_internal/packages/lumx-core/src/js/types/HasCloseMode.d.ts +10 -0
- package/_internal/packages/lumx-core/src/js/types/HasDisabled.d.ts +9 -0
- package/_internal/packages/lumx-core/src/js/types/HasPolymorphicAs.d.ts +12 -0
- package/_internal/packages/lumx-core/src/js/types/HasRequiredLinkHref.d.ts +6 -0
- package/_internal/packages/lumx-core/src/js/types/HasTheme.d.ts +10 -0
- package/_internal/packages/lumx-core/src/js/types/HeadingElement.d.ts +5 -0
- package/_internal/packages/lumx-core/src/js/types/JSXElement.d.ts +13 -0
- package/_internal/packages/lumx-core/src/js/types/Selector.d.ts +11 -0
- package/_internal/packages/lumx-core/src/js/types/TextElement.d.ts +7 -0
- package/_internal/packages/lumx-core/src/js/types/ValueOf.d.ts +5 -0
- package/_internal/packages/lumx-core/src/js/types/index.d.ts +17 -0
- package/_internal/packages/lumx-core/src/js/utils/ClickAway/index.d.ts +7 -0
- package/_internal/packages/lumx-core/src/js/utils/ClickAway/index.js +37 -0
- package/_internal/packages/lumx-core/src/js/utils/InfiniteScroll/index.d.ts +9 -0
- package/_internal/packages/lumx-core/src/js/utils/InfiniteScroll/index.js +21 -0
- package/_internal/packages/lumx-core/src/js/utils/InfiniteScroll/setupInfiniteScrollObserver.js +18 -0
- package/_internal/packages/lumx-core/src/js/utils/Portal/index.d.ts +28 -0
- package/_internal/packages/lumx-core/src/js/utils/_internal/color/resolveColorWithVariants.js +9 -0
- package/_internal/packages/lumx-core/src/js/utils/browser/createSelectorTreeWalker.js +20 -0
- package/_internal/packages/lumx-core/src/js/utils/browser/css/combineSize.js +14 -0
- package/_internal/packages/lumx-core/src/js/utils/browser/css/resolveCssSize.js +8 -0
- package/_internal/packages/lumx-core/src/js/utils/browser/css/types.d.ts +7 -0
- package/_internal/packages/lumx-core/src/js/utils/browser/isFocusVisible.js +11 -0
- package/_internal/packages/lumx-core/src/js/utils/browser/isHoverNotSupported.js +5 -0
- package/_internal/packages/lumx-core/src/js/utils/browser/isPrintableKey.js +12 -0
- package/_internal/packages/lumx-core/src/js/utils/browser/lastDescendant.js +9 -0
- package/_internal/packages/lumx-core/src/js/utils/browser/querySelectorInclusive.js +18 -0
- package/_internal/packages/lumx-core/src/js/utils/browser/trackContainerFocus.js +28 -0
- package/_internal/packages/lumx-core/src/js/utils/classNames/action-area/index.js +22 -0
- package/_internal/packages/lumx-core/src/js/utils/classNames/bem/block.js +18 -0
- package/_internal/packages/lumx-core/src/js/utils/classNames/bem/element.js +7 -0
- package/_internal/packages/lumx-core/src/js/utils/classNames/bem/index.js +22 -0
- package/_internal/packages/lumx-core/src/js/utils/classNames/bem/modifier.js +19 -0
- package/_internal/packages/lumx-core/src/js/utils/classNames/color/index.js +38 -0
- package/_internal/packages/lumx-core/src/js/utils/classNames/index.js +12 -0
- package/_internal/packages/lumx-core/src/js/utils/classNames/spacing/index.js +31 -0
- package/_internal/packages/lumx-core/src/js/utils/classNames/typography/index.js +10 -0
- package/_internal/packages/lumx-core/src/js/utils/classNames/visually-hidden/index.js +9 -0
- package/_internal/packages/lumx-core/src/js/utils/disabledState/index.js +13 -0
- package/_internal/packages/lumx-core/src/js/utils/events/keyboard.js +27 -0
- package/_internal/packages/lumx-core/src/js/utils/focus/constants.js +13 -0
- package/_internal/packages/lumx-core/src/js/utils/focus/getFirstAndLastFocusable.js +20 -0
- package/_internal/packages/lumx-core/src/js/utils/focus/getFocusableElements.js +8 -0
- package/_internal/packages/lumx-core/src/js/utils/focus/setupFocusTrap.js +83 -0
- package/_internal/packages/lumx-core/src/js/utils/focusNavigation/createActiveItemState.js +38 -0
- package/_internal/packages/lumx-core/src/js/utils/focusNavigation/createGridFocusNavigation.js +182 -0
- package/_internal/packages/lumx-core/src/js/utils/focusNavigation/createListFocusNavigation.js +151 -0
- package/_internal/packages/lumx-core/src/js/utils/focusNavigation/createPendingNavigation.js +23 -0
- package/_internal/packages/lumx-core/src/js/utils/focusNavigation/setupRovingTabIndex.js +167 -0
- package/_internal/packages/lumx-core/src/js/utils/focusNavigation/types.d.ts +40 -0
- package/_internal/packages/lumx-core/src/js/utils/function/listenerTower.js +28 -0
- package/_internal/packages/lumx-core/src/js/utils/iterable/first.js +8 -0
- package/_internal/packages/lumx-core/src/js/utils/locale/getCurrentLocale.js +10 -0
- package/_internal/packages/lumx-core/src/js/utils/select/findOptionById.js +19 -0
- package/_internal/packages/lumx-core/src/js/utils/select/getOptionDisplayName.js +19 -0
- package/_internal/packages/lumx-core/src/js/utils/select/renderSelectOptions.js +55 -0
- package/_internal/packages/lumx-core/src/js/utils/select/toggleSelection.js +39 -0
- package/_internal/packages/lumx-core/src/js/utils/select/types.d.ts +224 -0
- package/_internal/packages/lumx-core/src/js/utils/selectors/getWithSelector.js +9 -0
- package/_internal/packages/lumx-core/src/js/utils/selectors/groupBySelector.js +21 -0
- package/_internal/packages/lumx-core/src/js/utils/time/buildTimeList.js +36 -0
- package/_internal/packages/lumx-core/src/js/utils/time/formatTime.js +14 -0
- package/_internal/packages/lumx-core/src/js/utils/time/getDateAtTime.js +12 -0
- package/_internal/packages/lumx-core/src/js/utils/time/isDateOnTime.js +10 -0
- package/_internal/packages/lumx-core/src/js/utils/time/parseTimeInput.js +46 -0
- package/_internal/packages/lumx-core/src/js/utils/time/snapTimeToBounds.js +21 -0
- package/_internal/packages/lumx-core/src/js/utils/time/timeOfDayMinutes.js +9 -0
- package/_internal/packages/lumx-core/src/js/utils/typeahead/index.js +77 -0
- package/_internal/utils/ClickAway/ClickAwayProvider.d.ts +19 -0
- package/_internal/utils/ClickAway/ClickAwayProvider.js +58 -0
- package/_internal/utils/ClickAway/index.d.ts +2 -0
- package/_internal/utils/ClickAway/useClickAway.d.ts +25 -0
- package/_internal/utils/ClickAway/useClickAway.js +25 -0
- package/_internal/utils/InfiniteScroll/InfiniteScroll.d.ts +9 -0
- package/_internal/utils/InfiniteScroll/InfiniteScroll.js +23 -0
- package/_internal/utils/InfiniteScroll/index.d.ts +2 -0
- package/_internal/utils/Portal/Portal.d.ts +10 -0
- package/_internal/utils/Portal/Portal.js +37 -0
- package/_internal/utils/Portal/PortalProvider.d.ts +8 -0
- package/_internal/utils/Portal/PortalProvider.js +19 -0
- package/_internal/utils/Portal/index.d.ts +3 -0
- package/_internal/utils/VueToJSX.d.ts +38 -0
- package/_internal/utils/VueToJSX.js +11 -0
- package/_internal/utils/isComponentType.js +9 -0
- package/_internal/utils/theme/ResetTheme.js +11 -0
- package/_internal/utils/theme/ThemeProvider.d.ts +14 -0
- package/_internal/utils/theme/ThemeProvider.js +18 -0
- package/_internal/utils/theme/index.d.ts +2 -0
- package/_internal/utils/theme/useTheme.d.ts +14 -0
- package/_internal/utils/theme/useTheme.js +14 -0
- package/_internal/utils/wrapChildrenIconWithSpaces.js +37 -0
- package/index.d.ts +114 -48
- package/index.js +83 -11709
- package/package.json +6 -9
- package/utils/index.d.ts +10 -7
- package/utils/index.js +8 -24
- package/_internal/CHaqSUjw.js +0 -159
- package/_internal/CHaqSUjw.js.map +0 -1
- package/components/alert-dialog/AlertDialog.d.ts +0 -45
- package/components/alert-dialog/AlertDialog.stories.d.ts +0 -104
- package/components/alert-dialog/index.d.ts +0 -1
- package/components/avatar/Avatar.d.ts +0 -42
- package/components/avatar/Avatar.stories.d.ts +0 -146
- package/components/avatar/index.d.ts +0 -1
- package/components/badge/Badge.d.ts +0 -13
- package/components/badge/Badge.stories.d.ts +0 -34
- package/components/badge/BadgeWrapper.d.ts +0 -8
- package/components/badge/BadgeWrapper.stories.d.ts +0 -18
- package/components/badge/index.d.ts +0 -4
- package/components/button/Button.d.ts +0 -19
- package/components/button/ButtonGroup.d.ts +0 -13
- package/components/button/IconButton.d.ts +0 -35
- package/components/button/index.d.ts +0 -6
- package/components/checkbox/Checkbox.d.ts +0 -21
- package/components/checkbox/index.d.ts +0 -3
- package/components/chip/Chip.d.ts +0 -30
- package/components/chip/Chip.stories.d.ts +0 -121
- package/components/chip/ChipGroup.d.ts +0 -7
- package/components/chip/ChipGroup.stories.d.ts +0 -12
- package/components/chip/SelectionChipGroup.d.ts +0 -51
- package/components/chip/SelectionChipGroup.stories.d.ts +0 -66
- package/components/chip/Stories/CustomRender.vue.d.ts +0 -2
- package/components/chip/Stories/InTextField.vue.d.ts +0 -2
- package/components/chip/index.d.ts +0 -3
- package/components/combobox/Combobox.stories.d.ts +0 -153
- package/components/combobox/Combobox.test.stories.d.ts +0 -165
- package/components/combobox/ComboboxButton.d.ts +0 -48
- package/components/combobox/ComboboxInput.d.ts +0 -41
- package/components/combobox/ComboboxList.d.ts +0 -15
- package/components/combobox/ComboboxOption.d.ts +0 -32
- package/components/combobox/ComboboxOption.test.d.ts +0 -1
- package/components/combobox/ComboboxOptionAction.d.ts +0 -20
- package/components/combobox/ComboboxOptionMoreInfo.d.ts +0 -29
- package/components/combobox/ComboboxOptionSkeleton.d.ts +0 -14
- package/components/combobox/ComboboxPopover.d.ts +0 -20
- package/components/combobox/ComboboxProvider.d.ts +0 -20
- package/components/combobox/ComboboxSection.d.ts +0 -14
- package/components/combobox/ComboboxState.d.ts +0 -14
- package/components/combobox/context/ComboboxContext.d.ts +0 -23
- package/components/combobox/context/ComboboxListContext.d.ts +0 -14
- package/components/combobox/context/ComboboxOptionContext.d.ts +0 -16
- package/components/combobox/context/useComboboxEvent.d.ts +0 -7
- package/components/combobox/context/useComboboxOpen.d.ts +0 -7
- package/components/combobox/index.d.ts +0 -112
- package/components/combobox/useWrappedRenderOptionSlot.d.ts +0 -11
- package/components/combobox/useWrappedRenderSectionTitleSlot.d.ts +0 -10
- package/components/dialog/Dialog.d.ts +0 -67
- package/components/dialog/Dialog.stories.d.ts +0 -106
- package/components/dialog/index.d.ts +0 -2
- package/components/divider/Divider.d.ts +0 -14
- package/components/divider/index.d.ts +0 -2
- package/components/drag-handle/DragHandle.d.ts +0 -14
- package/components/drag-handle/index.d.ts +0 -2
- package/components/expansion-panel/ExpansionPanel.d.ts +0 -39
- package/components/expansion-panel/ExpansionPanel.stories.d.ts +0 -54
- package/components/expansion-panel/index.d.ts +0 -1
- package/components/flag/Flag.d.ts +0 -13
- package/components/flag/Flag.stories.d.ts +0 -108
- package/components/flag/index.d.ts +0 -4
- package/components/flex-box/FlexBox.d.ts +0 -28
- package/components/flex-box/index.d.ts +0 -4
- package/components/generic-block/GenericBlock.d.ts +0 -62
- package/components/generic-block/GenericBlock.stories.d.ts +0 -65
- package/components/generic-block/index.d.ts +0 -4
- package/components/grid-column/GridColumn.d.ts +0 -9
- package/components/grid-column/GridColumn.stories.d.ts +0 -42
- package/components/grid-column/index.d.ts +0 -2
- package/components/heading/Heading.d.ts +0 -13
- package/components/heading/HeadingLevelProvider.d.ts +0 -12
- package/components/heading/context.d.ts +0 -3
- package/components/heading/index.d.ts +0 -6
- package/components/heading/useHeadingLevel.d.ts +0 -7
- package/components/icon/Icon.d.ts +0 -13
- package/components/icon/index.d.ts +0 -4
- package/components/image-block/ImageBlock.d.ts +0 -19
- package/components/image-block/ImageBlock.stories.d.ts +0 -178
- package/components/image-block/ImageCaption.d.ts +0 -19
- package/components/image-block/index.d.ts +0 -1
- package/components/inline-list/InlineList.d.ts +0 -13
- package/components/inline-list/InlineList.stories.d.ts +0 -53
- package/components/inline-list/index.d.ts +0 -3
- package/components/input-helper/InputHelper.d.ts +0 -13
- package/components/input-helper/index.d.ts +0 -3
- package/components/input-label/InputLabel.d.ts +0 -13
- package/components/input-label/index.d.ts +0 -3
- package/components/lightbox/Lightbox.d.ts +0 -28
- package/components/lightbox/Lightbox.stories.d.ts +0 -27
- package/components/lightbox/index.d.ts +0 -1
- package/components/link/Link.d.ts +0 -20
- package/components/link/Link.stories.d.ts +0 -268
- package/components/link/index.d.ts +0 -3
- package/components/link-preview/LinkPreview.d.ts +0 -20
- package/components/link-preview/LinkPreview.stories.d.ts +0 -55
- package/components/link-preview/index.d.ts +0 -3
- package/components/list/List.d.ts +0 -13
- package/components/list/List.stories.d.ts +0 -24
- package/components/list/ListDivider.d.ts +0 -13
- package/components/list/ListDivider.stories.d.ts +0 -7
- package/components/list/ListItem.d.ts +0 -26
- package/components/list/ListItem.stories.d.ts +0 -80
- package/components/list/ListItemAction.d.ts +0 -31
- package/components/list/ListSection.d.ts +0 -13
- package/components/list/ListSection.stories.d.ts +0 -112
- package/components/list/index.d.ts +0 -5
- package/components/menu-button/MenuButton.d.ts +0 -52
- package/components/menu-button/MenuButton.stories.d.ts +0 -46
- package/components/menu-button/MenuButton.test.d.ts +0 -1
- package/components/menu-button/MenuButton.test.stories.d.ts +0 -26
- package/components/menu-button/MenuItem.d.ts +0 -44
- package/components/menu-button/MenuItem.test.d.ts +0 -1
- package/components/menu-button/MenuList.d.ts +0 -15
- package/components/menu-button/MenuPopover.d.ts +0 -15
- package/components/menu-button/MenuProvider.d.ts +0 -15
- package/components/menu-button/MenuTrigger.d.ts +0 -15
- package/components/menu-button/Stories/WithLinkItems.vue.d.ts +0 -8
- package/components/menu-button/context.d.ts +0 -13
- package/components/menu-button/index.d.ts +0 -3
- package/components/menu-button/useMenuEvent.d.ts +0 -3
- package/components/menu-button/useMenuOpen.d.ts +0 -2
- package/components/message/Message.d.ts +0 -25
- package/components/message/index.d.ts +0 -3
- package/components/mosaic/Mosaic.d.ts +0 -30
- package/components/mosaic/Mosaic.stories.d.ts +0 -93
- package/components/mosaic/index.d.ts +0 -1
- package/components/popover/Popover.d.ts +0 -47
- package/components/popover/Popover.stories.d.ts +0 -138
- package/components/popover/Popover.test.stories.d.ts +0 -26
- package/components/popover/index.d.ts +0 -3
- package/components/popover/usePopoverStyle.d.ts +0 -31
- package/components/popover-dialog/PopoverDialog.d.ts +0 -27
- package/components/popover-dialog/PopoverDialog.stories.d.ts +0 -32
- package/components/popover-dialog/PopoverDialog.test.stories.d.ts +0 -99
- package/components/popover-dialog/index.d.ts +0 -1
- package/components/progress/ProgressCircular.d.ts +0 -9
- package/components/progress/ProgressCircular.stories.d.ts +0 -22
- package/components/progress/ProgressLinear.d.ts +0 -8
- package/components/progress/index.d.ts +0 -4
- package/components/radio-button/RadioButton.d.ts +0 -21
- package/components/radio-button/RadioGroup.d.ts +0 -15
- package/components/radio-button/index.d.ts +0 -4
- package/components/select-button/SelectButton.d.ts +0 -176
- package/components/select-button/SelectButton.stories.d.ts +0 -126
- package/components/select-button/SelectButton.test.d.ts +0 -1
- package/components/select-button/SelectButton.test.stories.d.ts +0 -41
- package/components/select-button/Stories/CustomRender.vue.d.ts +0 -2
- package/components/select-button/Stories/WithInfiniteScroll.vue.d.ts +0 -2
- package/components/select-button/index.d.ts +0 -13
- package/components/select-text-field/SelectTextField.d.ts +0 -133
- package/components/select-text-field/SelectTextField.stories.d.ts +0 -203
- package/components/select-text-field/SelectTextField.test.d.ts +0 -1
- package/components/select-text-field/SelectTextField.test.stories.d.ts +0 -37
- package/components/select-text-field/Stories/CustomRender.vue.d.ts +0 -2
- package/components/select-text-field/Stories/MultipleWithSearch.vue.d.ts +0 -2
- package/components/select-text-field/Stories/WithCreatableOptions.vue.d.ts +0 -2
- package/components/select-text-field/Stories/WithInfiniteScroll.vue.d.ts +0 -2
- package/components/select-text-field/Stories/WithSearch.vue.d.ts +0 -2
- package/components/select-text-field/index.d.ts +0 -36
- package/components/skeleton/SkeletonCircle.d.ts +0 -14
- package/components/skeleton/SkeletonRectangle.d.ts +0 -14
- package/components/skeleton/SkeletonTypography.d.ts +0 -14
- package/components/skeleton/index.d.ts +0 -10
- package/components/switch/Switch.d.ts +0 -21
- package/components/switch/index.d.ts +0 -2
- package/components/table/Table.d.ts +0 -7
- package/components/table/TableBody.d.ts +0 -7
- package/components/table/TableCell.d.ts +0 -16
- package/components/table/TableHeader.d.ts +0 -7
- package/components/table/TableRow.d.ts +0 -13
- package/components/table/index.d.ts +0 -10
- package/components/tabs/Tab.d.ts +0 -26
- package/components/tabs/TabList.d.ts +0 -21
- package/components/tabs/TabPanel.d.ts +0 -16
- package/components/tabs/TabProvider.d.ts +0 -26
- package/components/tabs/TabProvider.stories.d.ts +0 -53
- package/components/tabs/TabProvider.test.d.ts +0 -1
- package/components/tabs/index.d.ts +0 -4
- package/components/tabs/state.d.ts +0 -19
- package/components/text/Text.d.ts +0 -13
- package/components/text/index.d.ts +0 -3
- package/components/text-field/RawInputText.d.ts +0 -30
- package/components/text-field/RawInputText.stories.d.ts +0 -13
- package/components/text-field/RawInputTextarea.d.ts +0 -30
- package/components/text-field/RawInputTextarea.stories.d.ts +0 -18
- package/components/text-field/Stories/WithChips.vue.d.ts +0 -2
- package/components/text-field/TextField.d.ts +0 -75
- package/components/text-field/TextField.stories.d.ts +0 -101
- package/components/text-field/index.d.ts +0 -3
- package/components/text-field/useFitRowsToContent.d.ts +0 -5
- package/components/thumbnail/Stories/ThumbnailClickable.vue.d.ts +0 -20
- package/components/thumbnail/Thumbnail.d.ts +0 -35
- package/components/thumbnail/Thumbnail.stories.d.ts +0 -169
- package/components/thumbnail/index.d.ts +0 -4
- package/components/thumbnail/useFocusPointStyle.d.ts +0 -20
- package/components/thumbnail/useImageLoad.d.ts +0 -10
- package/components/time-picker-field/TimePickerField.d.ts +0 -45
- package/components/time-picker-field/TimePickerField.stories.d.ts +0 -54
- package/components/time-picker-field/TimePickerField.test.d.ts +0 -1
- package/components/time-picker-field/index.d.ts +0 -2
- package/components/toolbar/Toolbar.d.ts +0 -8
- package/components/toolbar/Toolbar.stories.d.ts +0 -19
- package/components/toolbar/index.d.ts +0 -3
- package/components/tooltip/Tooltip.d.ts +0 -15
- package/components/tooltip/Tooltip.stories.d.ts +0 -51
- package/components/tooltip/Tooltip.test.stories.d.ts +0 -63
- package/components/tooltip/context.d.ts +0 -13
- package/components/tooltip/index.d.ts +0 -1
- package/components/tooltip/useInjectTooltipRef.d.ts +0 -22
- package/components/tooltip/useTooltipOpen.d.ts +0 -14
- package/components/uploader/Uploader.d.ts +0 -38
- package/components/uploader/index.d.ts +0 -2
- package/components/user-block/UserBlock.d.ts +0 -39
- package/components/user-block/UserBlock.stories.d.ts +0 -151
- package/components/user-block/index.d.ts +0 -1
- package/composables/useAttrFallback.d.ts +0 -28
- package/composables/useCallbackOnEscape.d.ts +0 -13
- package/composables/useClassName.d.ts +0 -16
- package/composables/useDisableBodyScroll.d.ts +0 -8
- package/composables/useDisableStateProps.d.ts +0 -16
- package/composables/useDisabledState.d.ts +0 -3
- package/composables/useFocus.d.ts +0 -9
- package/composables/useFocusTrap.d.ts +0 -13
- package/composables/useHasEventListener.d.ts +0 -7
- package/composables/useId.d.ts +0 -7
- package/composables/useOverflowTooltipLabel.d.ts +0 -7
- package/composables/useRestoreFocusOnClose.d.ts +0 -15
- package/composables/useRovingTabIndexContainer.d.ts +0 -32
- package/composables/useSlot.d.ts +0 -6
- package/composables/useTheme.d.ts +0 -1
- package/composables/useTransitionVisibility.d.ts +0 -11
- package/composables/useWatchDisposable.d.ts +0 -19
- package/index.js.map +0 -1
- package/stories/decorators/withChromaticForceScreenSize.d.ts +0 -2
- package/stories/decorators/withCombinations.d.ts +0 -6
- package/stories/decorators/withNestedProps.d.ts +0 -10
- package/stories/decorators/withResizableBox.d.ts +0 -12
- package/stories/decorators/withThemedBackground.d.ts +0 -12
- package/stories/decorators/withTheming.d.ts +0 -26
- package/stories/decorators/withValueOnChange.d.ts +0 -12
- package/stories/decorators/withWrapper.d.ts +0 -10
- package/stories/utils/CustomLink.vue.d.ts +0 -29
- package/stories/utils/useAttrsWithoutHandlers.d.ts +0 -27
- package/stories/utils/withRender.d.ts +0 -54
- package/utils/ClickAway/ClickAwayProvider.d.ts +0 -21
- package/utils/ClickAway/ClickAwayProvider.stories.d.ts +0 -25
- package/utils/ClickAway/index.d.ts +0 -2
- package/utils/ClickAway/useClickAway.d.ts +0 -18
- package/utils/InfiniteScroll/InfiniteScroll.d.ts +0 -7
- package/utils/InfiniteScroll/InfiniteScroll.test.stories.d.ts +0 -39
- package/utils/InfiniteScroll/index.d.ts +0 -1
- package/utils/Portal/Portal.d.ts +0 -7
- package/utils/Portal/PortalProvider.d.ts +0 -9
- package/utils/Portal/PortalProvider.stories.d.ts +0 -19
- package/utils/Portal/index.d.ts +0 -2
- package/utils/VueToJSX.d.ts +0 -40
- package/utils/action-area/ActionArea.stories.d.ts +0 -28
- package/utils/index.js.map +0 -1
- package/utils/isComponentType.d.ts +0 -6
- package/utils/theme/ResetTheme.d.ts +0 -3
- package/utils/theme/ThemeProvider.d.ts +0 -10
- package/utils/theme/index.d.ts +0 -3
- package/utils/theme/useTheme.d.ts +0 -10
- package/utils/wrapChildrenIconWithSpaces.d.ts +0 -3
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { __toESM } from "../../../../../../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { require_last } from "../../../../../../node_modules/lodash/last.js";
|
|
3
|
+
import { require_pull } from "../../../../../../node_modules/lodash/pull.js";
|
|
4
|
+
//#region ../lumx-core/src/js/utils/function/listenerTower.ts
|
|
5
|
+
var import_last = /* @__PURE__ */ __toESM(require_last(), 1);
|
|
6
|
+
var import_pull = /* @__PURE__ */ __toESM(require_pull(), 1);
|
|
7
|
+
/**
|
|
8
|
+
* Keep track of listeners, only the last registered listener gets activated at any point (previously registered
|
|
9
|
+
* listener are disabled).
|
|
10
|
+
* When a listener gets unregistered, the previously registered listener gets enabled again.
|
|
11
|
+
*/
|
|
12
|
+
function makeListenerTowerContext() {
|
|
13
|
+
const LISTENERS = [];
|
|
14
|
+
return {
|
|
15
|
+
register(listener) {
|
|
16
|
+
(0, import_last.default)(LISTENERS)?.disable();
|
|
17
|
+
LISTENERS.push(listener);
|
|
18
|
+
listener.enable();
|
|
19
|
+
},
|
|
20
|
+
unregister(listener) {
|
|
21
|
+
listener.disable();
|
|
22
|
+
(0, import_pull.default)(LISTENERS, listener);
|
|
23
|
+
(0, import_last.default)(LISTENERS)?.enable();
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { makeListenerTowerContext };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region ../lumx-core/src/js/utils/iterable/first.ts
|
|
2
|
+
/** Return the first item of an iterable, or `null` if it is empty. */
|
|
3
|
+
function first(iterable) {
|
|
4
|
+
const { value, done } = iterable[Symbol.iterator]().next();
|
|
5
|
+
return done ? null : value;
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { first };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region ../lumx-core/src/js/utils/locale/getCurrentLocale.ts
|
|
2
|
+
/**
|
|
3
|
+
* Get current browser locale (BCP-47 string).
|
|
4
|
+
*
|
|
5
|
+
* Reads `navigator.languages[0]` (the user's preferred language) with a
|
|
6
|
+
* fallback to `navigator.language`.
|
|
7
|
+
*/
|
|
8
|
+
var getCurrentLocale = () => navigator.languages?.[0] || navigator.language;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { getCurrentLocale };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { getWithSelector } from "../selectors/getWithSelector.js";
|
|
2
|
+
//#region ../lumx-core/src/js/utils/select/findOptionById.ts
|
|
3
|
+
/**
|
|
4
|
+
* Find the option whose id matches the given value.
|
|
5
|
+
*
|
|
6
|
+
* Used by Select* wrappers to resolve a selection event (which carries the option id
|
|
7
|
+
* as `selectedOption.value`) back to the original option object.
|
|
8
|
+
*
|
|
9
|
+
* @param options The list of options.
|
|
10
|
+
* @param getOptionId Selector returning the option id (matches `<Combobox.Option value>`).
|
|
11
|
+
* @param id The id to match against.
|
|
12
|
+
* @return The matching option, or `undefined` if none is found / inputs are nullish.
|
|
13
|
+
*/
|
|
14
|
+
function findOptionById(options, getOptionId, id) {
|
|
15
|
+
if (id == null) return void 0;
|
|
16
|
+
return options?.find((option) => getWithSelector(getOptionId, option) === id);
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { findOptionById };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { getWithSelector } from "../selectors/getWithSelector.js";
|
|
2
|
+
//#region ../lumx-core/src/js/utils/select/getOptionDisplayName.ts
|
|
3
|
+
/**
|
|
4
|
+
* Get the display name for a single option value.
|
|
5
|
+
*
|
|
6
|
+
* Resolves the option's display name by trying `getOptionName` first,
|
|
7
|
+
* then falling back to `getOptionId`, returning `''` for nullish values.
|
|
8
|
+
*/
|
|
9
|
+
function getOptionDisplayName(value, getOptionName, getOptionId) {
|
|
10
|
+
if (value === void 0 || value === null) return "";
|
|
11
|
+
if (getOptionName) {
|
|
12
|
+
const name = getWithSelector(getOptionName, value);
|
|
13
|
+
if (name != null) return String(name);
|
|
14
|
+
}
|
|
15
|
+
if (getOptionId) return String(getWithSelector(getOptionId, value));
|
|
16
|
+
return "";
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { getOptionDisplayName };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { getWithSelector } from "../selectors/getWithSelector.js";
|
|
2
|
+
import { groupBySelector } from "../selectors/groupBySelector.js";
|
|
3
|
+
import { createVNode, isVNode } from "vue";
|
|
4
|
+
//#region ../lumx-core/src/js/utils/select/renderSelectOptions.tsx
|
|
5
|
+
function _isSlot(s) {
|
|
6
|
+
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Render options as ComboboxOption elements.
|
|
10
|
+
* Framework-specific components are passed as a second argument.
|
|
11
|
+
*/
|
|
12
|
+
function renderSelectOptions(props, components) {
|
|
13
|
+
const { options, getOptionId, getOptionName, getOptionDescription, renderOption, selected, getSectionId, renderSectionTitle } = props;
|
|
14
|
+
const { Combobox } = components;
|
|
15
|
+
if (getSectionId && options) {
|
|
16
|
+
const sections = groupBySelector(options, (option) => getWithSelector(getSectionId, option));
|
|
17
|
+
return Array.from(sections.entries()).map(([sectionId, sectionOptions]) => {
|
|
18
|
+
let _slot;
|
|
19
|
+
const sectionLabel = renderSectionTitle ? renderSectionTitle(sectionId, sectionOptions) : sectionId;
|
|
20
|
+
return createVNode(Combobox.Section, {
|
|
21
|
+
"key": sectionId,
|
|
22
|
+
"label": sectionLabel
|
|
23
|
+
}, _isSlot(_slot = renderSelectOptions({
|
|
24
|
+
options: sectionOptions,
|
|
25
|
+
getOptionId,
|
|
26
|
+
getOptionName,
|
|
27
|
+
getOptionDescription,
|
|
28
|
+
renderOption,
|
|
29
|
+
selected
|
|
30
|
+
}, components)) ? _slot : { default: () => [_slot] });
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const selectedIds = selected ? new Set((Array.isArray(selected) ? selected : [selected]).map((s) => getWithSelector(getOptionId, s))) : void 0;
|
|
34
|
+
return options?.map((item, index) => {
|
|
35
|
+
const id = getWithSelector(getOptionId || getOptionName, item);
|
|
36
|
+
const name = getWithSelector(getOptionName || getOptionId, item) || id;
|
|
37
|
+
const description = getOptionDescription && getWithSelector(getOptionDescription, item);
|
|
38
|
+
const isSelected = selectedIds?.has(id) ?? false;
|
|
39
|
+
if (renderOption) return renderOption(item, {
|
|
40
|
+
index,
|
|
41
|
+
value: id,
|
|
42
|
+
name,
|
|
43
|
+
isSelected,
|
|
44
|
+
description
|
|
45
|
+
});
|
|
46
|
+
return createVNode(Combobox.Option, {
|
|
47
|
+
"key": id,
|
|
48
|
+
"value": id,
|
|
49
|
+
"description": description,
|
|
50
|
+
"isSelected": isSelected
|
|
51
|
+
}, _isSlot(name) ? name : { default: () => [name] });
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
export { renderSelectOptions };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { getWithSelector } from "../selectors/getWithSelector.js";
|
|
2
|
+
import { findOptionById } from "./findOptionById.js";
|
|
3
|
+
//#region ../lumx-core/src/js/utils/select/toggleSelection.ts
|
|
4
|
+
/**
|
|
5
|
+
* Compute the next selection state after a user toggles an option.
|
|
6
|
+
*
|
|
7
|
+
* Single-mode behaviour (`isMultiple=false`):
|
|
8
|
+
* - Returns the option matched by id (or `undefined` if none matches the id —
|
|
9
|
+
* e.g. when the consumer triggers a custom action via `beforeOptions`).
|
|
10
|
+
*
|
|
11
|
+
* Multi-mode behaviour (`isMultiple=true`):
|
|
12
|
+
* - If the option is already in the current value array → returns a new array with it removed.
|
|
13
|
+
* - Otherwise → returns a new array with the option appended.
|
|
14
|
+
* - If the id matches no option in `options` (e.g. custom actions), the current array is returned unchanged.
|
|
15
|
+
*
|
|
16
|
+
* Pure function: never mutates `currentValue`.
|
|
17
|
+
*
|
|
18
|
+
* @param options The list of options.
|
|
19
|
+
* @param getOptionId Selector returning the option id (matches `<Combobox.Option value>`).
|
|
20
|
+
* @param currentValue Current selection (option, array of options, or undefined).
|
|
21
|
+
* @param selectedOptionId Id of the option the user just selected.
|
|
22
|
+
* @param isMultiple Whether to use multi-select semantics.
|
|
23
|
+
* @return The new selection — `O | undefined` in single mode, `O[]` in multi mode.
|
|
24
|
+
*/
|
|
25
|
+
function toggleSelection(options, getOptionId, currentValue, selectedOptionId, isMultiple) {
|
|
26
|
+
const newOption = findOptionById(options, getOptionId, selectedOptionId);
|
|
27
|
+
if (!isMultiple) return newOption;
|
|
28
|
+
const currentArray = Array.isArray(currentValue) ? currentValue : [];
|
|
29
|
+
const existingIndex = currentArray.findIndex((item) => getWithSelector(getOptionId, item) === selectedOptionId);
|
|
30
|
+
if (existingIndex === -1) {
|
|
31
|
+
if (!newOption) return currentArray;
|
|
32
|
+
return [...currentArray, newOption];
|
|
33
|
+
}
|
|
34
|
+
const updated = [...currentArray];
|
|
35
|
+
updated.splice(existingIndex, 1);
|
|
36
|
+
return updated;
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
export { toggleSelection };
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { HasTheme } from "../../types/HasTheme.js";
|
|
2
|
+
import { JSXElement } from "../../types/JSXElement.js";
|
|
3
|
+
import { HasAriaDisabled } from "../../types/HasAriaDisabled.js";
|
|
4
|
+
import { Selector } from "../../types/Selector.js";
|
|
5
|
+
//#region ../lumx-core/src/js/utils/select/types.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Status of the select dropdown list.
|
|
8
|
+
*
|
|
9
|
+
* - `'idle'` — Default state, no loading indicators.
|
|
10
|
+
* - `'loading'` — Full loading: shows skeleton placeholders, hides real options.
|
|
11
|
+
* - `'loadingMore'` — Paginated loading: appends a skeleton after existing options.
|
|
12
|
+
* - `'error'` — Error state: shows an error message in the dropdown.
|
|
13
|
+
*/
|
|
14
|
+
type SelectListStatus = 'idle' | 'loading' | 'loadingMore' | 'error';
|
|
15
|
+
/**
|
|
16
|
+
* Context passed to the `renderOption` callback alongside the option object.
|
|
17
|
+
* Contains core-computed values that the consumer should forward to `<Combobox.Option>`.
|
|
18
|
+
*/
|
|
19
|
+
interface RenderOptionContext {
|
|
20
|
+
/** Index of the option in the current (possibly section-filtered) list. */
|
|
21
|
+
index: number;
|
|
22
|
+
/** Resolved option id (from `getOptionId`). Should be passed as `value` to `<Combobox.Option>`. */
|
|
23
|
+
value: any;
|
|
24
|
+
/** Resolved option name (from `getOptionName`, falling back to `getOptionId`). */
|
|
25
|
+
name: string;
|
|
26
|
+
/** Whether this option is currently selected. Should be forwarded as `isSelected`. */
|
|
27
|
+
isSelected: boolean;
|
|
28
|
+
/** Resolved description string (from `getOptionDescription`), if any. Should be forwarded as `description`. */
|
|
29
|
+
description?: string | null;
|
|
30
|
+
}
|
|
31
|
+
interface BaseSelectProps<O> {
|
|
32
|
+
/** List of option objects. */
|
|
33
|
+
options?: Array<O>;
|
|
34
|
+
/** Option object id selector. */
|
|
35
|
+
getOptionId: Selector<O>;
|
|
36
|
+
/** Option object name selector (falls back to id if not defined). */
|
|
37
|
+
getOptionName?: Selector<O, string | undefined | null>;
|
|
38
|
+
/** Option object description selector. */
|
|
39
|
+
getOptionDescription?: Selector<O, string | undefined | null>;
|
|
40
|
+
/**
|
|
41
|
+
* Custom option render function (core/Vue contract).
|
|
42
|
+
* Receives the option object and a `RenderOptionContext` with core-computed props (`value`,
|
|
43
|
+
* `isSelected`, `description`, `index`). The callee must render a `<Combobox.Option>` and
|
|
44
|
+
* forward those context values, including a unique `key`.
|
|
45
|
+
*
|
|
46
|
+
* @example (Vue / core level)
|
|
47
|
+
* renderOption={(fruit, { value, isSelected, description }) => (
|
|
48
|
+
* <Combobox.Option key={value} value={value} isSelected={isSelected} description={description}>
|
|
49
|
+
* <strong>{fruit.name}</strong>
|
|
50
|
+
* </Combobox.Option>
|
|
51
|
+
* )}
|
|
52
|
+
*/
|
|
53
|
+
renderOption?: (option: O, context: RenderOptionContext) => JSXElement;
|
|
54
|
+
/**
|
|
55
|
+
* Selector returning a section id string for each option. Options with the same
|
|
56
|
+
* section id are grouped together. The id is also used as the default displayed
|
|
57
|
+
* label unless `renderSectionTitle` is provided.
|
|
58
|
+
*/
|
|
59
|
+
getSectionId?: Selector<O, string | undefined>;
|
|
60
|
+
/**
|
|
61
|
+
* Custom section title render function. Receives the section id and the options
|
|
62
|
+
* in that section. Returns custom JSX to display as the section header.
|
|
63
|
+
* When not provided, the section id is used as a plain text label.
|
|
64
|
+
*/
|
|
65
|
+
renderSectionTitle?: (sectionId: string | undefined, options: O[]) => JSXElement;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Shared translation labels for SelectTextField wrappers (React and Vue).
|
|
69
|
+
*/
|
|
70
|
+
interface SelectTextFieldTranslations {
|
|
71
|
+
/** Accessible label for the clear button. */
|
|
72
|
+
clearLabel?: string;
|
|
73
|
+
/** Accessible label for the show-suggestions toggle button. When omitted, the toggle button is not rendered. */
|
|
74
|
+
showSuggestionsLabel?: string;
|
|
75
|
+
/** Accessible label for the chip group. */
|
|
76
|
+
chipGroupLabel?: string;
|
|
77
|
+
/** Accessible label for the remove action on chips (used in visually hidden text). */
|
|
78
|
+
chipRemoveLabel?: string;
|
|
79
|
+
/** Screen reader loading announcement (e.g. "Loading…"). */
|
|
80
|
+
loadingMessage?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Message to display when the list has no visible options.
|
|
83
|
+
* Can be a plain string or a function receiving the current input value (for dynamic messages).
|
|
84
|
+
* When omitted, the empty state is not shown.
|
|
85
|
+
*/
|
|
86
|
+
emptyMessage?: string | ((inputValue: string) => string);
|
|
87
|
+
/**
|
|
88
|
+
* Message callback to display the number of available options.
|
|
89
|
+
* Called with the current visible option count and should return a human-readable string
|
|
90
|
+
* (e.g. `(n) => \`${n} result(s) available\``).
|
|
91
|
+
* Displayed when the combobox is open, not empty, not loading, and not in error.
|
|
92
|
+
* When omitted, no option count message is shown.
|
|
93
|
+
*/
|
|
94
|
+
nbOptionMessage?: (optionsLength: number) => string;
|
|
95
|
+
/** Error title displayed in the dropdown (e.g. "Failed to load"). */
|
|
96
|
+
errorMessage?: string;
|
|
97
|
+
/** Secondary error message (e.g. "Please try again"). */
|
|
98
|
+
errorTryReloadMessage?: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Shared translation labels for SelectButton wrappers (React and Vue).
|
|
102
|
+
*/
|
|
103
|
+
interface SelectButtonTranslations {
|
|
104
|
+
/** Screen reader loading announcement (e.g. "Loading…"). */
|
|
105
|
+
loadingMessage?: string;
|
|
106
|
+
/**
|
|
107
|
+
* Message to display when the list has no visible options.
|
|
108
|
+
* Can be a plain string or a function receiving the current input value (for dynamic messages).
|
|
109
|
+
* When omitted, the empty state is not shown.
|
|
110
|
+
*/
|
|
111
|
+
emptyMessage?: string | ((inputValue: string) => string);
|
|
112
|
+
/**
|
|
113
|
+
* Message callback to display the number of available options.
|
|
114
|
+
* Called with the current visible option count and should return a human-readable string.
|
|
115
|
+
* Displayed when the dropdown is open, not empty, not loading, and not in error.
|
|
116
|
+
* When omitted, no option count message is shown.
|
|
117
|
+
*/
|
|
118
|
+
nbOptionMessage?: (optionsLength: number) => string;
|
|
119
|
+
/** Error title displayed in the dropdown (e.g. "Failed to load"). */
|
|
120
|
+
errorMessage?: string;
|
|
121
|
+
/** Secondary error message (e.g. "Please try again"). */
|
|
122
|
+
errorTryReloadMessage?: string;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Wrapper-level props shared between React and Vue SelectButton implementations.
|
|
126
|
+
* These are framework-specific concerns (not part of the core template) that both
|
|
127
|
+
* wrappers need — extracted here to avoid duplication.
|
|
128
|
+
*/
|
|
129
|
+
interface BaseSelectButtonWrapperProps<O> extends Pick<BaseSelectProps<O>, 'options' | 'getOptionId' | 'getOptionName' | 'getOptionDescription' | 'getSectionId'> {
|
|
130
|
+
/**
|
|
131
|
+
* Selection type. Discriminator that wrappers expand into a typed union:
|
|
132
|
+
* `'single'` (default) → `value?: O`, `'multiple'` → `value: O[]`.
|
|
133
|
+
*/
|
|
134
|
+
selectionType?: 'single' | 'multiple';
|
|
135
|
+
/** Button label (used for ARIA and when no selection). */
|
|
136
|
+
label: string;
|
|
137
|
+
/**
|
|
138
|
+
* Status of the dropdown list.
|
|
139
|
+
* @default 'idle'
|
|
140
|
+
*/
|
|
141
|
+
listStatus?: SelectListStatus;
|
|
142
|
+
/** Optional translations for screen-reader announcements (loading/empty/error/option count). */
|
|
143
|
+
translations?: SelectButtonTranslations;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Wrapper-level props shared between React and Vue SelectTextField implementations.
|
|
147
|
+
* These are framework-specific concerns (not part of the core template) that both
|
|
148
|
+
* wrappers need — extracted here to avoid duplication.
|
|
149
|
+
*/
|
|
150
|
+
interface BaseSelectTextFieldWrapperProps<O> extends Pick<BaseSelectProps<O>, 'options' | 'getOptionId' | 'getOptionName' | 'getOptionDescription' | 'getSectionId'>, HasAriaDisabled, HasTheme {
|
|
151
|
+
/** Selection type: 'single' or 'multiple'. */
|
|
152
|
+
selectionType: 'single' | 'multiple';
|
|
153
|
+
/**
|
|
154
|
+
* Status of the dropdown list.
|
|
155
|
+
* @default 'idle'
|
|
156
|
+
*/
|
|
157
|
+
listStatus?: SelectListStatus;
|
|
158
|
+
/**
|
|
159
|
+
* Controls how the combobox filters options as the user types.
|
|
160
|
+
*
|
|
161
|
+
* - `'auto'` — Options that do not match the input value are hidden client-side.
|
|
162
|
+
* - `'manual'` — All options remain visible; filtering is the consumer's
|
|
163
|
+
* responsibility (e.g. by updating the `options` prop in response to `onSearch`).
|
|
164
|
+
* - `'off'` — Like `'manual'`, but the input is also set to `readOnly` and
|
|
165
|
+
* `openOnFocus` defaults to `true` (useful for static dropdowns / pure pickers).
|
|
166
|
+
*
|
|
167
|
+
* This prop is independent of `onSearch`: you can use both together (e.g. client-side
|
|
168
|
+
* filtering + tracking search text for a "create" action), or use `filter: 'manual'`
|
|
169
|
+
* without `onSearch` for static dropdowns.
|
|
170
|
+
*/
|
|
171
|
+
filter: 'auto' | 'manual' | 'off';
|
|
172
|
+
/**
|
|
173
|
+
* Controlled search input value.
|
|
174
|
+
* When provided, this value seeds (and resets) the visible search text in the input.
|
|
175
|
+
* Setting it to `''` (empty string) resets the input.
|
|
176
|
+
*/
|
|
177
|
+
searchInputValue?: string;
|
|
178
|
+
/**
|
|
179
|
+
* Whether to show a clear button when a value is selected.
|
|
180
|
+
* @default true
|
|
181
|
+
*/
|
|
182
|
+
hasClearButton?: boolean;
|
|
183
|
+
/**
|
|
184
|
+
* When true, the dropdown opens automatically when the input receives focus.
|
|
185
|
+
* When false (default), the dropdown only opens on click, typing, or keyboard navigation.
|
|
186
|
+
*
|
|
187
|
+
* @default false
|
|
188
|
+
*/
|
|
189
|
+
openOnFocus?: boolean;
|
|
190
|
+
/** Field label (required). Also used as aria-label for the listbox. */
|
|
191
|
+
label: string;
|
|
192
|
+
/** Input placeholder text. */
|
|
193
|
+
placeholder?: string;
|
|
194
|
+
/** Leading icon (SVG path). */
|
|
195
|
+
icon?: string;
|
|
196
|
+
/** Disabled state. */
|
|
197
|
+
isDisabled?: boolean;
|
|
198
|
+
/** Required field indicator. */
|
|
199
|
+
isRequired?: boolean;
|
|
200
|
+
/** Error state flag. */
|
|
201
|
+
hasError?: boolean;
|
|
202
|
+
/** Error message text. */
|
|
203
|
+
error?: string;
|
|
204
|
+
/** Helper text below the field. */
|
|
205
|
+
helper?: string;
|
|
206
|
+
/** Native input id attribute. */
|
|
207
|
+
id?: string;
|
|
208
|
+
/** Native input name attribute. */
|
|
209
|
+
name?: string;
|
|
210
|
+
/** Whether displayed with valid style. */
|
|
211
|
+
isValid?: boolean;
|
|
212
|
+
/** Maximum string length (shows character counter). */
|
|
213
|
+
maxLength?: number;
|
|
214
|
+
/** Accessible label for the input element (overrides the visual label for screen readers). */
|
|
215
|
+
ariaLabel?: string;
|
|
216
|
+
/** Additional props forwarded to the Combobox.Input (and ultimately to TextField). */
|
|
217
|
+
inputProps?: Record<string, any>;
|
|
218
|
+
/** Props forwarded to the Combobox.Popover. */
|
|
219
|
+
popoverProps?: Record<string, any>;
|
|
220
|
+
/** Labels for the clear button, toggle button, and chip group. */
|
|
221
|
+
translations: SelectTextFieldTranslations;
|
|
222
|
+
}
|
|
223
|
+
//#endregion
|
|
224
|
+
export { BaseSelectButtonWrapperProps, BaseSelectProps, BaseSelectTextFieldWrapperProps, SelectButtonTranslations, SelectListStatus, SelectTextFieldTranslations };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region ../lumx-core/src/js/utils/selectors/getWithSelector.ts
|
|
2
|
+
/** Get value with a string of function selector */
|
|
3
|
+
var getWithSelector = (selector, object) => {
|
|
4
|
+
if (typeof selector === "function") return selector(object);
|
|
5
|
+
if (typeof selector === "string") return object[selector];
|
|
6
|
+
return String(object);
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { getWithSelector };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { getWithSelector } from "./getWithSelector.js";
|
|
2
|
+
//#region ../lumx-core/src/js/utils/selectors/groupBySelector.ts
|
|
3
|
+
/**
|
|
4
|
+
* Equivalent to `lodash/groupBy` but returns a `Map` of groups items (instead of an object)
|
|
5
|
+
* (has the major advantage to not forcing the keys to be string!)
|
|
6
|
+
*/
|
|
7
|
+
function groupBySelector(array, selector) {
|
|
8
|
+
const groups = /* @__PURE__ */ new Map();
|
|
9
|
+
for (const item of array) {
|
|
10
|
+
const key = getWithSelector(selector, item);
|
|
11
|
+
let group = groups.get(key);
|
|
12
|
+
if (!group) {
|
|
13
|
+
group = [];
|
|
14
|
+
groups.set(key, group);
|
|
15
|
+
}
|
|
16
|
+
group.push(item);
|
|
17
|
+
}
|
|
18
|
+
return groups;
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { groupBySelector };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { formatTime } from "./formatTime.js";
|
|
2
|
+
import { getDateAtTime } from "./getDateAtTime.js";
|
|
3
|
+
import { timeOfDayMinutes } from "./timeOfDayMinutes.js";
|
|
4
|
+
//#region ../lumx-core/src/js/utils/time/buildTimeList.ts
|
|
5
|
+
var MINUTES_IN_HOUR = 60;
|
|
6
|
+
var MINUTES_IN_DAY = 24 * MINUTES_IN_HOUR;
|
|
7
|
+
/**
|
|
8
|
+
* Build a full-day list of `TimeOfDay` entries spaced `step` minutes apart.
|
|
9
|
+
* Out-of-bounds entries are kept (with `outOfRange: true`) so consumers can
|
|
10
|
+
* render them as visible-but-unselectable. Returns `[]` for invalid `step`.
|
|
11
|
+
*/
|
|
12
|
+
function buildTimeList(options = {}) {
|
|
13
|
+
const { step = 30, minTime, maxTime, locale } = options;
|
|
14
|
+
if (!Number.isInteger(step) || step <= 0) return [];
|
|
15
|
+
const minMinutes = minTime ? timeOfDayMinutes(minTime) : void 0;
|
|
16
|
+
const maxMinutes = maxTime ? timeOfDayMinutes(maxTime) : void 0;
|
|
17
|
+
const list = [];
|
|
18
|
+
for (let minutes = 0; minutes < MINUTES_IN_DAY; minutes += step) {
|
|
19
|
+
const hour = Math.floor(minutes / MINUTES_IN_HOUR);
|
|
20
|
+
const minute = minutes % MINUTES_IN_HOUR;
|
|
21
|
+
const outOfRange = minMinutes !== void 0 && minutes < minMinutes || maxMinutes !== void 0 && minutes > maxMinutes || void 0;
|
|
22
|
+
const name = locale ? formatTime(getDateAtTime({
|
|
23
|
+
hour,
|
|
24
|
+
minute
|
|
25
|
+
}), locale) : void 0;
|
|
26
|
+
list.push({
|
|
27
|
+
hour,
|
|
28
|
+
minute,
|
|
29
|
+
name,
|
|
30
|
+
outOfRange
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return list;
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
export { buildTimeList };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region ../lumx-core/src/js/utils/time/formatTime.ts
|
|
2
|
+
/**
|
|
3
|
+
* Format a time-of-day as a locale-aware short time (e.g. `'10:30 AM'`,
|
|
4
|
+
* `'10:30'`). Hour is `numeric` (not `'2-digit'`); some locales insert a
|
|
5
|
+
* narrow no-break space (U+202F) before AM/PM.
|
|
6
|
+
*/
|
|
7
|
+
function formatTime(date, locale) {
|
|
8
|
+
return date.toLocaleTimeString(locale, {
|
|
9
|
+
hour: "numeric",
|
|
10
|
+
minute: "2-digit"
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
export { formatTime };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region ../lumx-core/src/js/utils/time/getDateAtTime.ts
|
|
2
|
+
/**
|
|
3
|
+
* Build a new `Date` with the given time-of-day, inheriting the date part of
|
|
4
|
+
* `reference` (or today). Seconds/ms zeroed; `reference` is not mutated.
|
|
5
|
+
*/
|
|
6
|
+
function getDateAtTime({ hour, minute }, reference) {
|
|
7
|
+
const next = reference ? new Date(reference) : /* @__PURE__ */ new Date();
|
|
8
|
+
next.setHours(hour, minute, 0, 0);
|
|
9
|
+
return next;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { getDateAtTime };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region ../lumx-core/src/js/utils/time/isDateOnTime.ts
|
|
2
|
+
/**
|
|
3
|
+
* Returns `true` when the time-of-day of `date` matches `time` (hour and
|
|
4
|
+
* minute). Seconds and milliseconds are ignored.
|
|
5
|
+
*/
|
|
6
|
+
function isDateOnTime(date, time) {
|
|
7
|
+
return date.getHours() === time.hour && date.getMinutes() === time.minute;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { isDateOnTime };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
//#region ../lumx-core/src/js/utils/time/parseTimeInput.ts
|
|
2
|
+
/**
|
|
3
|
+
* Match a free-form time. Supports:
|
|
4
|
+
* - 12h with am/pm suffix (`a`, `am`, `p`, `pm`, `a.m.`, `p.m.`), optional whitespace
|
|
5
|
+
* - 24h with colon (`15:45`), dot (`15.45`), `h` (`15h45`) or no separator (`1545`)
|
|
6
|
+
* - Optional seconds segment (ignored): `15:45:00`, `15.45.00`
|
|
7
|
+
* - Optional ISO `T` prefix and trailing `Z` (UTC marker)
|
|
8
|
+
*
|
|
9
|
+
* Capture groups:
|
|
10
|
+
* 1: hour, 2: minutes (optional), 3: am/pm marker (optional)
|
|
11
|
+
*/
|
|
12
|
+
var RE_TIME = /^T?(\d{1,2})(?:[:.h]?([0-5]\d)(?:[:.]?[0-5]\d)?)?\s*(a\.?m?\.?|p\.?m?\.?)?Z?$/i;
|
|
13
|
+
/**
|
|
14
|
+
* Parse a free-form user time input into a 24h `TimeOfDay`. Accepts a wide
|
|
15
|
+
* range of formats:
|
|
16
|
+
*
|
|
17
|
+
* - 12h AM/PM: `'2pm'`, `'2 PM'`, `'2:30pm'`, `'3.45 PM'`, `'3:45 p.m.'`
|
|
18
|
+
* - 24h colon: `'10:30'`, `'15:45'`
|
|
19
|
+
* - 24h dot (DE/FR/IT): `'15.45'`
|
|
20
|
+
* - 24h French: `'15h45'`
|
|
21
|
+
* - Military / no separator: `'1545'`, `'1030pm'`
|
|
22
|
+
* - With seconds (ignored): `'15:45:00'`
|
|
23
|
+
* - ISO 8601: `'T15:45'`, `'15:45Z'`
|
|
24
|
+
*
|
|
25
|
+
* Whitespace is trimmed. Returns `undefined` if no format matches.
|
|
26
|
+
*/
|
|
27
|
+
function parseTimeInput(raw) {
|
|
28
|
+
if (typeof raw !== "string") return void 0;
|
|
29
|
+
const match = raw.trim().match(RE_TIME);
|
|
30
|
+
if (!match) return void 0;
|
|
31
|
+
const [, rawHour, rawMinute, ampm] = match;
|
|
32
|
+
let hour = Number(rawHour);
|
|
33
|
+
const minute = rawMinute ? Number(rawMinute) : 0;
|
|
34
|
+
if (ampm) {
|
|
35
|
+
if (hour < 1 || hour > 12) return void 0;
|
|
36
|
+
const isPm = ampm[0].toLowerCase() === "p";
|
|
37
|
+
if (hour === 12) hour = isPm ? 12 : 0;
|
|
38
|
+
else if (isPm) hour += 12;
|
|
39
|
+
} else if (hour > 23) return;
|
|
40
|
+
return {
|
|
41
|
+
hour,
|
|
42
|
+
minute
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//#endregion
|
|
46
|
+
export { parseTimeInput };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { timeOfDayMinutes } from "./timeOfDayMinutes.js";
|
|
2
|
+
//#region ../lumx-core/src/js/utils/time/snapTimeToBounds.ts
|
|
3
|
+
/**
|
|
4
|
+
* Clamp `time` to `[minTime, maxTime]`. Inputs strictly before `minTime` snap
|
|
5
|
+
* up; inputs strictly after `maxTime` snap down; otherwise returned unchanged.
|
|
6
|
+
* Only the time-of-day of `minTime`/`maxTime` is used.
|
|
7
|
+
*/
|
|
8
|
+
function snapTimeToBounds(time, minTime, maxTime) {
|
|
9
|
+
const totalMinutes = time.hour * 60 + time.minute;
|
|
10
|
+
if (minTime && totalMinutes < timeOfDayMinutes(minTime)) return {
|
|
11
|
+
hour: minTime.getHours(),
|
|
12
|
+
minute: minTime.getMinutes()
|
|
13
|
+
};
|
|
14
|
+
if (maxTime && totalMinutes > timeOfDayMinutes(maxTime)) return {
|
|
15
|
+
hour: maxTime.getHours(),
|
|
16
|
+
minute: maxTime.getMinutes()
|
|
17
|
+
};
|
|
18
|
+
return time;
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { snapTimeToBounds };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region ../lumx-core/src/js/utils/time/timeOfDayMinutes.ts
|
|
2
|
+
/**
|
|
3
|
+
* Return the time-of-day of `date` in minutes since 00:00 (date part ignored).
|
|
4
|
+
*/
|
|
5
|
+
function timeOfDayMinutes(date) {
|
|
6
|
+
return date.getHours() * 60 + date.getMinutes();
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { timeOfDayMinutes };
|