@homecode/ui 5.1.9 → 5.1.10
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/dist/esm/index.js +109 -2
- package/dist/esm/node_modules/style-inject/dist/style-inject.es.js +28 -2
- package/dist/esm/src/components/AssistiveText/AssistiveText.js +10 -2
- package/dist/esm/src/components/AssistiveText/AssistiveText.styl.js +7 -2
- package/dist/esm/src/components/Autocomplete/Autocomplete.js +429 -2
- package/dist/esm/src/components/Autocomplete/Autocomplete.styl.js +7 -2
- package/dist/esm/src/components/Button/Button.helpers.js +12 -2
- package/dist/esm/src/components/Button/Button.js +38 -2
- package/dist/esm/src/components/Button/Button.styl.js +7 -2
- package/dist/esm/src/components/ButtonGroup/ButtonGroup.js +10 -2
- package/dist/esm/src/components/ButtonGroup/ButtonGroup.styl.js +7 -2
- package/dist/esm/src/components/Calendar/Calendar.helpers.js +65 -2
- package/dist/esm/src/components/Calendar/Calendar.js +136 -2
- package/dist/esm/src/components/Calendar/Calendar.styl.js +7 -2
- package/dist/esm/src/components/Card/Card.js +55 -2
- package/dist/esm/src/components/Card/Card.styl.js +7 -2
- package/dist/esm/src/components/Checkbox/Checkbox.js +19 -2
- package/dist/esm/src/components/Checkbox/Checkbox.styl.js +7 -2
- package/dist/esm/src/components/Chip/Chip.js +16 -2
- package/dist/esm/src/components/Chip/Chip.styl.js +7 -2
- package/dist/esm/src/components/Container/Container.js +13 -2
- package/dist/esm/src/components/Container/Container.styl.js +7 -2
- package/dist/esm/src/components/DatePicker/DatePicker.helpers.js +33 -2
- package/dist/esm/src/components/DatePicker/DatePicker.js +47 -2
- package/dist/esm/src/components/DatePicker/DatePicker.styl.js +7 -2
- package/dist/esm/src/components/DatePickerInput/DatePickerInput.js +44 -2
- package/dist/esm/src/components/DatePickerInput/DatePickerInput.styl.js +7 -2
- package/dist/esm/src/components/DateTime/DateTime.js +17 -2
- package/dist/esm/src/components/Dialogue/Dialogue.js +107 -2
- package/dist/esm/src/components/Dialogue/Dialogue.styl.js +7 -2
- package/dist/esm/src/components/Draggable/Draggable.js +147 -2
- package/dist/esm/src/components/Draggable/Draggable.styl.js +7 -2
- package/dist/esm/src/components/DropZone/DropZone.js +112 -2
- package/dist/esm/src/components/DropZone/DropZone.styl.js +7 -2
- package/dist/esm/src/components/Expand/Expand.js +24 -2
- package/dist/esm/src/components/Expand/Expand.styl.js +7 -2
- package/dist/esm/src/components/Flex/Flex.js +24 -2
- package/dist/esm/src/components/Flex/Flex.styl.js +7 -2
- package/dist/esm/src/components/Form/Form.helpers.js +42 -2
- package/dist/esm/src/components/Form/Form.js +272 -2
- package/dist/esm/src/components/Form/Form.styl.js +7 -2
- package/dist/esm/src/components/Form/Form.types.js +0 -1
- package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.js +8 -2
- package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.styl.js +7 -2
- package/dist/esm/src/components/Form/Validator.js +24 -6
- package/dist/esm/src/components/Gallery/Dots/Dots.js +9 -2
- package/dist/esm/src/components/Gallery/Dots/Dots.styl.js +7 -2
- package/dist/esm/src/components/Gallery/Gallery.js +222 -2
- package/dist/esm/src/components/Gallery/Gallery.styl.js +7 -2
- package/dist/esm/src/components/Heading/Heading.js +37 -2
- package/dist/esm/src/components/Heading/Heading.styl.js +7 -2
- package/dist/esm/src/components/Icon/Icon.js +21 -2
- package/dist/esm/src/components/Icon/Icon.styl.js +7 -2
- package/dist/esm/src/components/Icon/icons/apple.svg.js +16 -2
- package/dist/esm/src/components/Icon/icons/arrowDown.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/arrowLeft.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/arrowRight.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/arrowUp.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/attach.svg.js +19 -2
- package/dist/esm/src/components/Icon/icons/avatar.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/bookmark.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/bookmarkAdd.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/brain.svg.js +22 -2
- package/dist/esm/src/components/Icon/icons/brokenImage.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/call.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/camera.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/chat.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/check.svg.js +19 -2
- package/dist/esm/src/components/Icon/icons/checkers.svg.js +18 -2
- package/dist/esm/src/components/Icon/icons/chevronDown.svg.js +20 -2
- package/dist/esm/src/components/Icon/icons/chevronLeft.svg.js +20 -2
- package/dist/esm/src/components/Icon/icons/chevronRight.svg.js +20 -2
- package/dist/esm/src/components/Icon/icons/chevronUp.svg.js +20 -2
- package/dist/esm/src/components/Icon/icons/clearAll.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/close.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/colors.svg.js +60 -2
- package/dist/esm/src/components/Icon/icons/compass.svg.js +56 -2
- package/dist/esm/src/components/Icon/icons/copy.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/cubes.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/delete.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/discord.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/draft.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/dragHandlerHorizontal.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/dragHandlerVertical.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/edit.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/email.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/externalLink.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/eye.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/flyover.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/folder.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/folderOpen.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/forward.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/fullscreen.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/fullscreenExit.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/function.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/gear.svg.js +21 -2
- package/dist/esm/src/components/Icon/icons/geolocation.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/github.svg.js +18 -2
- package/dist/esm/src/components/Icon/icons/globe.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/google.svg.js +42 -2
- package/dist/esm/src/components/Icon/icons/group.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/history.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/home.svg.js +19 -2
- package/dist/esm/src/components/Icon/icons/image.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/index.js +95 -2
- package/dist/esm/src/components/Icon/icons/instagram.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/layers.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/link.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/linkedin.svg.js +20 -2
- package/dist/esm/src/components/Icon/icons/loader.svg.js +45 -2
- package/dist/esm/src/components/Icon/icons/lock.svg.js +19 -2
- package/dist/esm/src/components/Icon/icons/lockOpen.svg.js +19 -2
- package/dist/esm/src/components/Icon/icons/map.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/menu.svg.js +18 -2
- package/dist/esm/src/components/Icon/icons/mic.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/micMuted.svg.js +27 -2
- package/dist/esm/src/components/Icon/icons/minus.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/moreHorizontal.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/moreVertical.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/output.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/pause.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/play.svg.js +20 -2
- package/dist/esm/src/components/Icon/icons/plus.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/redo.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/requiredStar.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/rewind.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/rocket.svg.js +22 -2
- package/dist/esm/src/components/Icon/icons/route.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/routeFrom.svg.js +31 -2
- package/dist/esm/src/components/Icon/icons/routeTo.svg.js +31 -2
- package/dist/esm/src/components/Icon/icons/save.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/search.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/send.svg.js +16 -2
- package/dist/esm/src/components/Icon/icons/settings.svg.js +52 -2
- package/dist/esm/src/components/Icon/icons/shoppingBag.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/smile.svg.js +30 -2
- package/dist/esm/src/components/Icon/icons/soundWave.svg.js +66 -2
- package/dist/esm/src/components/Icon/icons/sparks.svg.js +21 -2
- package/dist/esm/src/components/Icon/icons/star.svg.js +18 -2
- package/dist/esm/src/components/Icon/icons/stop.svg.js +22 -2
- package/dist/esm/src/components/Icon/icons/stopInCircle.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/syncArrows.svg.js +22 -2
- package/dist/esm/src/components/Icon/icons/table.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/telegram.svg.js +19 -2
- package/dist/esm/src/components/Icon/icons/tool.svg.js +17 -2
- package/dist/esm/src/components/Icon/icons/trafficLight.svg.js +49 -2
- package/dist/esm/src/components/Icon/icons/undo.svg.js +15 -2
- package/dist/esm/src/components/Icon/icons/usage.svg.js +25 -2
- package/dist/esm/src/components/Icon/icons/youtube.svg.js +20 -2
- package/dist/esm/src/components/Input/Input.js +281 -2
- package/dist/esm/src/components/Input/Input.styl.js +7 -2
- package/dist/esm/src/components/InputFile/InputFile.js +314 -2
- package/dist/esm/src/components/InputFile/InputFile.styl.js +7 -2
- package/dist/esm/src/components/InputFile/InputFile.types.js +0 -1
- package/dist/esm/src/components/InputFile/Item/Item.js +18 -2
- package/dist/esm/src/components/InputFile/Item/Item.styl.js +7 -2
- package/dist/esm/src/components/Label/Label.constants.json.js +8 -2
- package/dist/esm/src/components/Label/Label.helpers.js +35 -2
- package/dist/esm/src/components/Label/Label.js +58 -2
- package/dist/esm/src/components/Label/Label.styl.js +7 -2
- package/dist/esm/src/components/LangSelector/LangSelector.js +10 -2
- package/dist/esm/src/components/Lazy/Lazy.js +74 -2
- package/dist/esm/src/components/LightBox/LightBox.js +28 -2
- package/dist/esm/src/components/LightBox/LightBox.styl.js +7 -2
- package/dist/esm/src/components/Menu/Menu.js +27 -2
- package/dist/esm/src/components/Menu/Menu.styl.js +7 -2
- package/dist/esm/src/components/Notifications/Notifications.constants.json.js +6 -2
- package/dist/esm/src/components/Notifications/Notifications.js +67 -2
- package/dist/esm/src/components/Notifications/Notifications.styl.js +7 -2
- package/dist/esm/src/components/Notifications/store.js +72 -2
- package/dist/esm/src/components/Paranja/Paranja.js +14 -2
- package/dist/esm/src/components/Paranja/Paranja.styl.js +7 -2
- package/dist/esm/src/components/Popup/Popup.helpers.js +130 -2
- package/dist/esm/src/components/Popup/Popup.js +484 -2
- package/dist/esm/src/components/Popup/Popup.styl.js +7 -2
- package/dist/esm/src/components/PopupMenu/PopupMenu.js +15 -2
- package/dist/esm/src/components/PopupMenu/PopupMenu.styl.js +7 -2
- package/dist/esm/src/components/Portal/Portal.js +33 -2
- package/dist/esm/src/components/Progress/Progress.helpers.js +5 -2
- package/dist/esm/src/components/Progress/Progress.js +12 -2
- package/dist/esm/src/components/Progress/Progress.styl.js +7 -2
- package/dist/esm/src/components/ProgressCircular/ProgressCircular.js +23 -2
- package/dist/esm/src/components/ProgressCircular/ProgressCircular.styl.js +7 -2
- package/dist/esm/src/components/RadioButton/RadioButton.js +33 -2
- package/dist/esm/src/components/RadioButton/RadioButton.styl.js +7 -2
- package/dist/esm/src/components/RadioGroup/RadioGroup.js +31 -2
- package/dist/esm/src/components/RadioGroup/RadioGroup.styl.js +7 -2
- package/dist/esm/src/components/RadioGroup/RadioGroupContext.js +8 -2
- package/dist/esm/src/components/RequiredStar/RequiredStar.js +12 -2
- package/dist/esm/src/components/RequiredStar/RequiredStar.styl.js +7 -2
- package/dist/esm/src/components/Router/Link/Link.js +62 -2
- package/dist/esm/src/components/Router/Link/Link.styl.js +7 -2
- package/dist/esm/src/components/Router/Redirect.js +12 -2
- package/dist/esm/src/components/Router/Route.js +6 -2
- package/dist/esm/src/components/Router/Router.helpers.js +33 -2
- package/dist/esm/src/components/Router/Router.js +72 -2
- package/dist/esm/src/components/Router/context.js +5 -2
- package/dist/esm/src/components/Router/store.js +75 -2
- package/dist/esm/src/components/Scroll/Scroll.js +308 -2
- package/dist/esm/src/components/Scroll/Scroll.styl.js +7 -2
- package/dist/esm/src/components/Select/Select.helpers.js +37 -2
- package/dist/esm/src/components/Select/Select.js +601 -2
- package/dist/esm/src/components/Select/Select.styl.js +7 -2
- package/dist/esm/src/components/Select/Select2.js +334 -2
- package/dist/esm/src/components/Shimmer/Shimmer.js +7 -2
- package/dist/esm/src/components/Shimmer/Shimmer.styl.js +7 -2
- package/dist/esm/src/components/Spinner/Spinner.js +11 -2
- package/dist/esm/src/components/Spinner/Spinner.styl.js +7 -2
- package/dist/esm/src/components/Spinner/spinner.svg.js +24 -2
- package/dist/esm/src/components/Table/Table.js +24 -2
- package/dist/esm/src/components/Table/Table.styl.js +7 -2
- package/dist/esm/src/components/Tabs/Tabs.js +48 -2
- package/dist/esm/src/components/Tabs/Tabs.styl.js +7 -2
- package/dist/esm/src/components/Text/Text.js +44 -2
- package/dist/esm/src/components/Text/Text.styl.js +7 -2
- package/dist/esm/src/components/TextShimmer/TextShimmer.js +29 -0
- package/dist/esm/src/components/TextShimmer/TextShimmer.styl.js +7 -0
- package/dist/esm/src/components/Theme/Theme.defaults.js +53 -2
- package/dist/esm/src/components/Theme/Theme.helpers.js +67 -2
- package/dist/esm/src/components/Theme/Theme.js +15 -2
- package/dist/esm/src/components/Theme/ThemeProvider.js +50 -2
- package/dist/esm/src/components/Toggle/Toggle.js +18 -2
- package/dist/esm/src/components/Toggle/Toggle.styl.js +7 -2
- package/dist/esm/src/components/Tooltip/Tooltip.js +86 -2
- package/dist/esm/src/components/Tooltip/Tooltip.styl.js +7 -2
- package/dist/esm/src/components/VH/VH.js +33 -2
- package/dist/esm/src/components/Virtualized/List/List.js +136 -2
- package/dist/esm/src/components/Virtualized/List/List.styl.js +7 -2
- package/dist/esm/src/components/Virtualized/List/ListScroll.js +22 -2
- package/dist/esm/src/components/Virtualized/List/ListScroll.styl.js +7 -2
- package/dist/esm/src/components/Virtualized/Virtualized.helpers.js +14 -2
- package/dist/esm/src/components/Virtualized/Virtualized.js +218 -2
- package/dist/esm/src/components/Virtualized/Virtualized.styl.js +7 -2
- package/dist/esm/src/components/Virtualized/Virtualized.types.js +0 -1
- package/dist/esm/src/hooks/useDebounce.js +11 -2
- package/dist/esm/src/hooks/useEvent.js +27 -2
- package/dist/esm/src/hooks/useIsMounted.js +11 -2
- package/dist/esm/src/hooks/useListKeyboardControl.js +50 -2
- package/dist/esm/src/hooks/useResizeObserver.js +15 -2
- package/dist/esm/src/hooks/useThrottle.js +31 -2
- package/dist/esm/src/hooks/useToggleState.js +35 -2
- package/dist/esm/src/services/i18n.js +112 -2
- package/dist/esm/src/tools/array.js +60 -2
- package/dist/esm/src/tools/config.js +9 -2
- package/dist/esm/src/tools/date.js +11 -2
- package/dist/esm/src/tools/debounce.js +11 -2
- package/dist/esm/src/tools/dom.js +57 -2
- package/dist/esm/src/tools/env.js +3 -2
- package/dist/esm/src/tools/file.js +11 -2
- package/dist/esm/src/tools/localStorage.js +31 -2
- package/dist/esm/src/tools/number.js +27 -2
- package/dist/esm/src/tools/object.js +5 -2
- package/dist/esm/src/tools/queryParams.js +40 -2
- package/dist/esm/src/tools/rangeMap.js +3 -2
- package/dist/esm/src/tools/resizeObserver.js +68 -2
- package/dist/esm/src/tools/scroll.js +41 -2
- package/dist/esm/src/tools/string.js +7 -2
- package/dist/esm/src/tools/throttle.js +30 -2
- package/dist/esm/src/tools/uid.js +7 -2
- package/dist/esm/types/src/components/Notifications/Notifications.types.d.ts +4 -2
- package/dist/esm/types/src/components/TextShimmer/TextShimmer.d.ts +5 -0
- package/dist/esm/types/src/components/TextShimmer/TextShimmer.types.d.ts +9 -0
- package/dist/esm/types/src/components/TextShimmer/index.d.ts +2 -0
- package/dist/esm/types/src/components/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/node_modules/style-inject/dist/style-inject.es.js.map +0 -1
- package/dist/esm/src/components/AssistiveText/AssistiveText.js.map +0 -1
- package/dist/esm/src/components/AssistiveText/AssistiveText.styl.js.map +0 -1
- package/dist/esm/src/components/Autocomplete/Autocomplete.js.map +0 -1
- package/dist/esm/src/components/Autocomplete/Autocomplete.styl.js.map +0 -1
- package/dist/esm/src/components/Button/Button.helpers.js.map +0 -1
- package/dist/esm/src/components/Button/Button.js.map +0 -1
- package/dist/esm/src/components/Button/Button.styl.js.map +0 -1
- package/dist/esm/src/components/ButtonGroup/ButtonGroup.js.map +0 -1
- package/dist/esm/src/components/ButtonGroup/ButtonGroup.styl.js.map +0 -1
- package/dist/esm/src/components/Calendar/Calendar.helpers.js.map +0 -1
- package/dist/esm/src/components/Calendar/Calendar.js.map +0 -1
- package/dist/esm/src/components/Calendar/Calendar.styl.js.map +0 -1
- package/dist/esm/src/components/Card/Card.js.map +0 -1
- package/dist/esm/src/components/Card/Card.styl.js.map +0 -1
- package/dist/esm/src/components/Checkbox/Checkbox.js.map +0 -1
- package/dist/esm/src/components/Checkbox/Checkbox.styl.js.map +0 -1
- package/dist/esm/src/components/Chip/Chip.js.map +0 -1
- package/dist/esm/src/components/Chip/Chip.styl.js.map +0 -1
- package/dist/esm/src/components/Container/Container.js.map +0 -1
- package/dist/esm/src/components/Container/Container.styl.js.map +0 -1
- package/dist/esm/src/components/DatePicker/DatePicker.helpers.js.map +0 -1
- package/dist/esm/src/components/DatePicker/DatePicker.js.map +0 -1
- package/dist/esm/src/components/DatePicker/DatePicker.styl.js.map +0 -1
- package/dist/esm/src/components/DatePickerInput/DatePickerInput.js.map +0 -1
- package/dist/esm/src/components/DatePickerInput/DatePickerInput.styl.js.map +0 -1
- package/dist/esm/src/components/DateTime/DateTime.js.map +0 -1
- package/dist/esm/src/components/Dialogue/Dialogue.js.map +0 -1
- package/dist/esm/src/components/Dialogue/Dialogue.styl.js.map +0 -1
- package/dist/esm/src/components/Draggable/Draggable.js.map +0 -1
- package/dist/esm/src/components/Draggable/Draggable.styl.js.map +0 -1
- package/dist/esm/src/components/DropZone/DropZone.js.map +0 -1
- package/dist/esm/src/components/DropZone/DropZone.styl.js.map +0 -1
- package/dist/esm/src/components/Expand/Expand.js.map +0 -1
- package/dist/esm/src/components/Expand/Expand.styl.js.map +0 -1
- package/dist/esm/src/components/Flex/Flex.js.map +0 -1
- package/dist/esm/src/components/Flex/Flex.styl.js.map +0 -1
- package/dist/esm/src/components/Form/Form.helpers.js.map +0 -1
- package/dist/esm/src/components/Form/Form.js.map +0 -1
- package/dist/esm/src/components/Form/Form.styl.js.map +0 -1
- package/dist/esm/src/components/Form/Form.types.js.map +0 -1
- package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.js.map +0 -1
- package/dist/esm/src/components/Form/SubmitButtons/SubmitButtons.styl.js.map +0 -1
- package/dist/esm/src/components/Form/Validator.js.map +0 -1
- package/dist/esm/src/components/Gallery/Dots/Dots.js.map +0 -1
- package/dist/esm/src/components/Gallery/Dots/Dots.styl.js.map +0 -1
- package/dist/esm/src/components/Gallery/Gallery.js.map +0 -1
- package/dist/esm/src/components/Gallery/Gallery.styl.js.map +0 -1
- package/dist/esm/src/components/Heading/Heading.js.map +0 -1
- package/dist/esm/src/components/Heading/Heading.styl.js.map +0 -1
- package/dist/esm/src/components/Icon/Icon.js.map +0 -1
- package/dist/esm/src/components/Icon/Icon.styl.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/apple.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/arrowDown.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/arrowLeft.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/arrowRight.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/arrowUp.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/attach.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/avatar.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/bookmark.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/bookmarkAdd.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/brain.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/brokenImage.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/call.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/camera.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/chat.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/check.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/checkers.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/chevronDown.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/chevronLeft.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/chevronRight.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/chevronUp.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/clearAll.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/close.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/colors.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/compass.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/copy.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/cubes.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/delete.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/discord.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/draft.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/dragHandlerHorizontal.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/dragHandlerVertical.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/edit.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/email.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/externalLink.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/eye.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/flyover.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/folder.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/folderOpen.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/forward.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/fullscreen.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/fullscreenExit.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/function.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/gear.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/geolocation.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/github.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/globe.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/google.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/group.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/history.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/home.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/image.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/index.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/instagram.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/layers.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/link.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/linkedin.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/loader.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/lock.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/lockOpen.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/map.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/menu.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/mic.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/micMuted.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/minus.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/moreHorizontal.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/moreVertical.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/output.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/pause.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/play.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/plus.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/redo.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/requiredStar.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/rewind.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/rocket.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/route.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/routeFrom.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/routeTo.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/save.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/search.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/send.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/settings.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/shoppingBag.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/smile.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/soundWave.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/sparks.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/star.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/stop.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/stopInCircle.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/syncArrows.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/table.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/telegram.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/tool.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/trafficLight.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/undo.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/usage.svg.js.map +0 -1
- package/dist/esm/src/components/Icon/icons/youtube.svg.js.map +0 -1
- package/dist/esm/src/components/Input/Input.js.map +0 -1
- package/dist/esm/src/components/Input/Input.styl.js.map +0 -1
- package/dist/esm/src/components/InputFile/InputFile.js.map +0 -1
- package/dist/esm/src/components/InputFile/InputFile.styl.js.map +0 -1
- package/dist/esm/src/components/InputFile/InputFile.types.js.map +0 -1
- package/dist/esm/src/components/InputFile/Item/Item.js.map +0 -1
- package/dist/esm/src/components/InputFile/Item/Item.styl.js.map +0 -1
- package/dist/esm/src/components/Label/Label.constants.json.js.map +0 -1
- package/dist/esm/src/components/Label/Label.helpers.js.map +0 -1
- package/dist/esm/src/components/Label/Label.js.map +0 -1
- package/dist/esm/src/components/Label/Label.styl.js.map +0 -1
- package/dist/esm/src/components/LangSelector/LangSelector.js.map +0 -1
- package/dist/esm/src/components/Lazy/Lazy.js.map +0 -1
- package/dist/esm/src/components/LightBox/LightBox.js.map +0 -1
- package/dist/esm/src/components/LightBox/LightBox.styl.js.map +0 -1
- package/dist/esm/src/components/Menu/Menu.js.map +0 -1
- package/dist/esm/src/components/Menu/Menu.styl.js.map +0 -1
- package/dist/esm/src/components/Notifications/Notifications.constants.json.js.map +0 -1
- package/dist/esm/src/components/Notifications/Notifications.js.map +0 -1
- package/dist/esm/src/components/Notifications/Notifications.styl.js.map +0 -1
- package/dist/esm/src/components/Notifications/store.js.map +0 -1
- package/dist/esm/src/components/Paranja/Paranja.js.map +0 -1
- package/dist/esm/src/components/Paranja/Paranja.styl.js.map +0 -1
- package/dist/esm/src/components/Popup/Popup.helpers.js.map +0 -1
- package/dist/esm/src/components/Popup/Popup.js.map +0 -1
- package/dist/esm/src/components/Popup/Popup.styl.js.map +0 -1
- package/dist/esm/src/components/PopupMenu/PopupMenu.js.map +0 -1
- package/dist/esm/src/components/PopupMenu/PopupMenu.styl.js.map +0 -1
- package/dist/esm/src/components/Portal/Portal.js.map +0 -1
- package/dist/esm/src/components/Progress/Progress.helpers.js.map +0 -1
- package/dist/esm/src/components/Progress/Progress.js.map +0 -1
- package/dist/esm/src/components/Progress/Progress.styl.js.map +0 -1
- package/dist/esm/src/components/ProgressCircular/ProgressCircular.js.map +0 -1
- package/dist/esm/src/components/ProgressCircular/ProgressCircular.styl.js.map +0 -1
- package/dist/esm/src/components/RadioButton/RadioButton.js.map +0 -1
- package/dist/esm/src/components/RadioButton/RadioButton.styl.js.map +0 -1
- package/dist/esm/src/components/RadioGroup/RadioGroup.js.map +0 -1
- package/dist/esm/src/components/RadioGroup/RadioGroup.styl.js.map +0 -1
- package/dist/esm/src/components/RadioGroup/RadioGroupContext.js.map +0 -1
- package/dist/esm/src/components/RequiredStar/RequiredStar.js.map +0 -1
- package/dist/esm/src/components/RequiredStar/RequiredStar.styl.js.map +0 -1
- package/dist/esm/src/components/Router/Link/Link.js.map +0 -1
- package/dist/esm/src/components/Router/Link/Link.styl.js.map +0 -1
- package/dist/esm/src/components/Router/Redirect.js.map +0 -1
- package/dist/esm/src/components/Router/Route.js.map +0 -1
- package/dist/esm/src/components/Router/Router.helpers.js.map +0 -1
- package/dist/esm/src/components/Router/Router.js.map +0 -1
- package/dist/esm/src/components/Router/context.js.map +0 -1
- package/dist/esm/src/components/Router/store.js.map +0 -1
- package/dist/esm/src/components/Scroll/Scroll.js.map +0 -1
- package/dist/esm/src/components/Scroll/Scroll.styl.js.map +0 -1
- package/dist/esm/src/components/Select/Select.helpers.js.map +0 -1
- package/dist/esm/src/components/Select/Select.js.map +0 -1
- package/dist/esm/src/components/Select/Select.styl.js.map +0 -1
- package/dist/esm/src/components/Select/Select2.js.map +0 -1
- package/dist/esm/src/components/Shimmer/Shimmer.js.map +0 -1
- package/dist/esm/src/components/Shimmer/Shimmer.styl.js.map +0 -1
- package/dist/esm/src/components/Spinner/Spinner.js.map +0 -1
- package/dist/esm/src/components/Spinner/Spinner.styl.js.map +0 -1
- package/dist/esm/src/components/Spinner/spinner.svg.js.map +0 -1
- package/dist/esm/src/components/Table/Table.js.map +0 -1
- package/dist/esm/src/components/Table/Table.styl.js.map +0 -1
- package/dist/esm/src/components/Tabs/Tabs.js.map +0 -1
- package/dist/esm/src/components/Tabs/Tabs.styl.js.map +0 -1
- package/dist/esm/src/components/Text/Text.js.map +0 -1
- package/dist/esm/src/components/Text/Text.styl.js.map +0 -1
- package/dist/esm/src/components/Theme/Theme.defaults.js.map +0 -1
- package/dist/esm/src/components/Theme/Theme.helpers.js.map +0 -1
- package/dist/esm/src/components/Theme/Theme.js.map +0 -1
- package/dist/esm/src/components/Theme/ThemeProvider.js.map +0 -1
- package/dist/esm/src/components/Toggle/Toggle.js.map +0 -1
- package/dist/esm/src/components/Toggle/Toggle.styl.js.map +0 -1
- package/dist/esm/src/components/Tooltip/Tooltip.js.map +0 -1
- package/dist/esm/src/components/Tooltip/Tooltip.styl.js.map +0 -1
- package/dist/esm/src/components/VH/VH.js.map +0 -1
- package/dist/esm/src/components/Virtualized/List/List.js.map +0 -1
- package/dist/esm/src/components/Virtualized/List/List.styl.js.map +0 -1
- package/dist/esm/src/components/Virtualized/List/ListScroll.js.map +0 -1
- package/dist/esm/src/components/Virtualized/List/ListScroll.styl.js.map +0 -1
- package/dist/esm/src/components/Virtualized/Virtualized.helpers.js.map +0 -1
- package/dist/esm/src/components/Virtualized/Virtualized.js.map +0 -1
- package/dist/esm/src/components/Virtualized/Virtualized.styl.js.map +0 -1
- package/dist/esm/src/components/Virtualized/Virtualized.types.js.map +0 -1
- package/dist/esm/src/hooks/useDebounce.js.map +0 -1
- package/dist/esm/src/hooks/useEvent.js.map +0 -1
- package/dist/esm/src/hooks/useIsMounted.js.map +0 -1
- package/dist/esm/src/hooks/useListKeyboardControl.js.map +0 -1
- package/dist/esm/src/hooks/useResizeObserver.js.map +0 -1
- package/dist/esm/src/hooks/useThrottle.js.map +0 -1
- package/dist/esm/src/hooks/useToggleState.js.map +0 -1
- package/dist/esm/src/services/i18n.js.map +0 -1
- package/dist/esm/src/tools/array.js.map +0 -1
- package/dist/esm/src/tools/config.js.map +0 -1
- package/dist/esm/src/tools/date.js.map +0 -1
- package/dist/esm/src/tools/debounce.js.map +0 -1
- package/dist/esm/src/tools/dom.js.map +0 -1
- package/dist/esm/src/tools/env.js.map +0 -1
- package/dist/esm/src/tools/file.js.map +0 -1
- package/dist/esm/src/tools/localStorage.js.map +0 -1
- package/dist/esm/src/tools/number.js.map +0 -1
- package/dist/esm/src/tools/object.js.map +0 -1
- package/dist/esm/src/tools/queryParams.js.map +0 -1
- package/dist/esm/src/tools/rangeMap.js.map +0 -1
- package/dist/esm/src/tools/resizeObserver.js.map +0 -1
- package/dist/esm/src/tools/scroll.js.map +0 -1
- package/dist/esm/src/tools/string.js.map +0 -1
- package/dist/esm/src/tools/throttle.js.map +0 -1
- package/dist/esm/src/tools/uid.js.map +0 -1
|
@@ -1,2 +1,334 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { useRef, useState, useMemo, useEffect, useCallback, createElement } from 'react';
|
|
2
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
|
+
import { mapById, isMultiple, renderLabel } from './Select.helpers.js';
|
|
4
|
+
import { INTERACTION_MODE, getInteractionMode } from '../../tools/dom.js';
|
|
5
|
+
import cn from 'classnames';
|
|
6
|
+
import omit from 'lodash.omit';
|
|
7
|
+
import { AssistiveText } from '../AssistiveText/AssistiveText.js';
|
|
8
|
+
import { Button } from '../Button/Button.js';
|
|
9
|
+
import { Chip } from '../Chip/Chip.js';
|
|
10
|
+
import { Input } from '../Input/Input.js';
|
|
11
|
+
import { Icon } from '../Icon/Icon.js';
|
|
12
|
+
import { Label } from '../Label/Label.js';
|
|
13
|
+
import { Popup } from '../Popup/Popup.js';
|
|
14
|
+
import { RequiredStar } from '../RequiredStar/RequiredStar.js';
|
|
15
|
+
import { Scroll } from '../Scroll/Scroll.js';
|
|
16
|
+
import { useThrottle } from '../../hooks/useThrottle.js';
|
|
17
|
+
import useEvent from '../../hooks/useEvent.js';
|
|
18
|
+
import S from './Select.styl.js';
|
|
19
|
+
|
|
20
|
+
function Select2(props) {
|
|
21
|
+
const { className, value, onChange, onChipClick, onSearchChange, disableTriggerArrow, inputProps, popupProps, scrollProps, size = 'm', round, optionClassName, selectedChipClassName, additionalOptions = [], options, variant, label, additionalLabel, error, blur, disabled, trigger, required, hideRequiredStar, isSearchable, presets = [], selectAllButton, clearButton, showSelectedCount, disableLabel, selectedChipRemoveTooltip, selectedChipIds, onOpen, onClose, } = props;
|
|
22
|
+
const isMultiple$1 = isMultiple(value);
|
|
23
|
+
const closeOnSelect = props.closeOnSelect ?? !isMultiple$1;
|
|
24
|
+
const contentRef = useRef(null);
|
|
25
|
+
const scrollInnerRef = useRef(null);
|
|
26
|
+
const focusedItemId = useRef(null);
|
|
27
|
+
const focusedElem = useRef(null);
|
|
28
|
+
const maxIndex = useRef(-1);
|
|
29
|
+
const isFirstSelectedMeet = useRef(false);
|
|
30
|
+
const searchValLower = useRef('');
|
|
31
|
+
const [searchVal, _setSearchVal] = useState('');
|
|
32
|
+
const setSearchVal = (val) => {
|
|
33
|
+
_setSearchVal(val);
|
|
34
|
+
searchValLower.current = val.toLowerCase();
|
|
35
|
+
};
|
|
36
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
37
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
38
|
+
const [labelClipPath, setLabelClipPath] = useState('');
|
|
39
|
+
const [focusedItemIndex, setFocusedItemIndex] = useState(-1);
|
|
40
|
+
// Add tree-related state from Select.tsx
|
|
41
|
+
const [items, setItems] = useState([]);
|
|
42
|
+
const ids = useMemo(() => mapById(props.options), [props.options]);
|
|
43
|
+
// Add basic selection state
|
|
44
|
+
const [selected, setSelected] = useState(isMultiple$1 ? value : [value]);
|
|
45
|
+
const [optionsUpdated, setOptionsUpdated] = useState(0);
|
|
46
|
+
const isErrorVisible = !isOpen && !!error;
|
|
47
|
+
const triggerProps = useMemo(() => ({
|
|
48
|
+
label,
|
|
49
|
+
size,
|
|
50
|
+
round,
|
|
51
|
+
variant,
|
|
52
|
+
...props.triggerProps,
|
|
53
|
+
}), [props.triggerProps, label, size, round, variant]);
|
|
54
|
+
const isSelected = (id) => isMultiple$1
|
|
55
|
+
? selected.includes(id)
|
|
56
|
+
: selected[0] === id;
|
|
57
|
+
const isClickedInside = (elem) => !!(elem instanceof Element &&
|
|
58
|
+
(elem.closest(`.${S.root}`) || elem.closest(`.${S.options}`)));
|
|
59
|
+
const setNewItems = (newItems) => {
|
|
60
|
+
maxIndex.current = newItems.length - 1;
|
|
61
|
+
setItems(newItems);
|
|
62
|
+
setOptionsUpdated(optionsUpdated + 1);
|
|
63
|
+
if (focusedItemIndex > maxIndex.current && maxIndex.current >= 0) {
|
|
64
|
+
setFocusedItemIndex(maxIndex.current);
|
|
65
|
+
focusedItemId.current = newItems[maxIndex.current]?.id;
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
const setItemFocus = index => {
|
|
69
|
+
focusedItemId.current = items[index]?.id;
|
|
70
|
+
setFocusedItemIndex(index);
|
|
71
|
+
};
|
|
72
|
+
const [isSearchActive, setIsSearchActive] = useState(false);
|
|
73
|
+
const handleSearchChange = (e, value) => {
|
|
74
|
+
setSearchVal(value);
|
|
75
|
+
setIsSearchActive(true);
|
|
76
|
+
onSearchChange?.(value);
|
|
77
|
+
setNewItems(options.filter(filterOption));
|
|
78
|
+
};
|
|
79
|
+
const selectAll = () => {
|
|
80
|
+
const newValue = options.map(({ id }) => id);
|
|
81
|
+
setSelected(newValue);
|
|
82
|
+
onChange?.(newValue);
|
|
83
|
+
};
|
|
84
|
+
const dropSelected = () => {
|
|
85
|
+
setSelected([]);
|
|
86
|
+
onChange?.([]);
|
|
87
|
+
};
|
|
88
|
+
const onFocusedElemRef = elem => {
|
|
89
|
+
focusedElem.current = elem;
|
|
90
|
+
if (elem) {
|
|
91
|
+
const content = contentRef.current;
|
|
92
|
+
if (!content)
|
|
93
|
+
return;
|
|
94
|
+
const { top, bottom } = elem.getBoundingClientRect();
|
|
95
|
+
const rect = contentRef.current.getBoundingClientRect();
|
|
96
|
+
const list = scrollInnerRef.current;
|
|
97
|
+
if (top < rect.top) {
|
|
98
|
+
list.scrollTop -= rect.top - top;
|
|
99
|
+
}
|
|
100
|
+
else if (bottom > rect.bottom) {
|
|
101
|
+
list.scrollTop += bottom - rect.bottom;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
const onPopupOpen = () => {
|
|
106
|
+
setIsOpen(true);
|
|
107
|
+
if (focusedItemIndex === -1) {
|
|
108
|
+
setItemFocus(0);
|
|
109
|
+
}
|
|
110
|
+
popupProps?.onOpen?.();
|
|
111
|
+
onOpen?.();
|
|
112
|
+
};
|
|
113
|
+
const onPopupClose = () => {
|
|
114
|
+
setIsOpen(false);
|
|
115
|
+
setSearchVal('');
|
|
116
|
+
setIsSearchActive(false);
|
|
117
|
+
setItemFocus(0);
|
|
118
|
+
popupProps?.onClose?.();
|
|
119
|
+
onClose?.();
|
|
120
|
+
};
|
|
121
|
+
const onFocus = () => {
|
|
122
|
+
setIsFocused(true);
|
|
123
|
+
};
|
|
124
|
+
const onBlur = () => {
|
|
125
|
+
setIsFocused(false);
|
|
126
|
+
};
|
|
127
|
+
const onOptionHover = useThrottle(id => {
|
|
128
|
+
const mode = getInteractionMode();
|
|
129
|
+
if (mode !== INTERACTION_MODE.POINTER)
|
|
130
|
+
return;
|
|
131
|
+
const index = items.findIndex(item => item.id === id);
|
|
132
|
+
setItemFocus(index);
|
|
133
|
+
}, 100, { trailing: true });
|
|
134
|
+
const onItemToggle = (id) => {
|
|
135
|
+
if (isMultiple$1) {
|
|
136
|
+
const newValue = isSelected(id)
|
|
137
|
+
? selected.filter(i => i !== id)
|
|
138
|
+
: [...selected, id];
|
|
139
|
+
setSelected(newValue);
|
|
140
|
+
onChange?.(newValue);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
// mono select
|
|
144
|
+
const newValue = isSelected(id) ? null : id;
|
|
145
|
+
const newSelected = isSelected(id) ? [] : [id];
|
|
146
|
+
setSelected(newSelected);
|
|
147
|
+
onChange?.(newValue);
|
|
148
|
+
}
|
|
149
|
+
setSearchVal('');
|
|
150
|
+
if (closeOnSelect)
|
|
151
|
+
setIsOpen(false);
|
|
152
|
+
};
|
|
153
|
+
const getLabel = (id) => ids.items[id]?.label || '';
|
|
154
|
+
const getFieldLabel = (label) => {
|
|
155
|
+
if (disableLabel)
|
|
156
|
+
return null;
|
|
157
|
+
// @ts-ignore
|
|
158
|
+
const length = value?.length;
|
|
159
|
+
if (isMultiple$1 && length && showSelectedCount)
|
|
160
|
+
return `${label} (${length})`;
|
|
161
|
+
return label;
|
|
162
|
+
};
|
|
163
|
+
const filterOption = ({ label }) => {
|
|
164
|
+
return label.toLowerCase().includes(searchValLower.current);
|
|
165
|
+
};
|
|
166
|
+
const selectedLabel = useMemo(() => {
|
|
167
|
+
if (!isMultiple$1)
|
|
168
|
+
return getLabel(value);
|
|
169
|
+
if (!value)
|
|
170
|
+
return '';
|
|
171
|
+
return (value
|
|
172
|
+
// @ts-ignore
|
|
173
|
+
.reduce((acc, id) => {
|
|
174
|
+
const label = getLabel(id);
|
|
175
|
+
return label ? [...acc, label] : acc;
|
|
176
|
+
}, [])
|
|
177
|
+
.join(', '));
|
|
178
|
+
}, [isMultiple$1, value, ids]);
|
|
179
|
+
const renderSelectedChips = () => {
|
|
180
|
+
if (!isMultiple$1 || !value || !value.length)
|
|
181
|
+
return null;
|
|
182
|
+
return value.map(id => {
|
|
183
|
+
const label = getLabel(id);
|
|
184
|
+
if (!label)
|
|
185
|
+
return null;
|
|
186
|
+
return (jsx(Chip, { className: cn(S.chip, selectedChipIds?.includes(id) && selectedChipClassName, ids.items[id]?.chipClassName), size: size, selected: selectedChipIds?.includes(id), onRemove: () => onItemToggle(id), onClick: () => onChipClick?.(id), removeTooltip: selectedChipRemoveTooltip, children: label }, id));
|
|
187
|
+
});
|
|
188
|
+
};
|
|
189
|
+
const triggerArrow = useMemo(() => {
|
|
190
|
+
if (disableTriggerArrow || (inputProps?.hasClear && searchVal))
|
|
191
|
+
return null;
|
|
192
|
+
return (jsx(Icon, { type: "chevronDown", className: cn(S.triggerArrow, isOpen && S.isOpen), size: size }));
|
|
193
|
+
}, [isOpen, searchVal]);
|
|
194
|
+
const renderTriggerInput = () => {
|
|
195
|
+
const hasChips = isMultiple$1 && value && value.length > 0;
|
|
196
|
+
const inputValue = isMultiple$1
|
|
197
|
+
? isFocused && isSearchActive
|
|
198
|
+
? searchVal
|
|
199
|
+
: ''
|
|
200
|
+
: isFocused && isSearchActive
|
|
201
|
+
? searchVal
|
|
202
|
+
: selectedLabel;
|
|
203
|
+
return (jsx(Input, { ...triggerProps, ...inputProps,
|
|
204
|
+
// TODO: autoComplete
|
|
205
|
+
addonRight: triggerArrow, error: isErrorVisible, value: inputValue, onChange: handleSearchChange, label: getFieldLabel(label), placeholder: hasChips && !inputValue ? '' : inputProps?.placeholder }));
|
|
206
|
+
};
|
|
207
|
+
const renderTriggerButton = () => {
|
|
208
|
+
const { label, className, ...rest } = triggerProps;
|
|
209
|
+
const props = omit(rest, ['name', 'inputProps']);
|
|
210
|
+
isMultiple$1 && value && value.length > 0;
|
|
211
|
+
const fullSelectedLabel = [selectedLabel, additionalLabel].filter(Boolean);
|
|
212
|
+
const hasSelected = fullSelectedLabel.length > 0;
|
|
213
|
+
const displayLabel = hasSelected ? fullSelectedLabel : label;
|
|
214
|
+
const title = hasSelected && !isMultiple$1 ? fullSelectedLabel : null;
|
|
215
|
+
const isError = isErrorVisible;
|
|
216
|
+
const classes = cn(S.triggerButton, isError && S.isError, triggerArrow && S.hasTriggerArrow, className);
|
|
217
|
+
return (jsxs("div", { children: [jsxs(Button, { className: classes, variant: "default", ...props, style: { clipPath: labelClipPath }, title: title?.join?.(', '), children: [jsx("div", { className: cn(S.triggerButtonLabel, hasSelected && S.hasSelected), children: displayLabel }), triggerArrow] }), !isMultiple$1 && (jsx(Label, { size: size, isOnTop: hasSelected, isError: isError, onClipPathChange: setLabelClipPath, children: getFieldLabel(label) }))] }));
|
|
218
|
+
};
|
|
219
|
+
const renderTrigger = () => {
|
|
220
|
+
if (trigger)
|
|
221
|
+
return trigger;
|
|
222
|
+
const triggerElem = isSearchable
|
|
223
|
+
? renderTriggerInput()
|
|
224
|
+
: renderTriggerButton();
|
|
225
|
+
const hasChips = isMultiple$1 && value && value.length > 0;
|
|
226
|
+
return (jsxs("div", { className: S.trigger, children: [hasChips && (jsx(Scroll, { y: true, className: S.chipsContainer, innerClassName: S.chipContainerInner, size: size, fadeSize: size, autoHide: true, children: renderSelectedChips() })), triggerElem, required && !hideRequiredStar && jsx(RequiredStar, { size: size })] }));
|
|
227
|
+
};
|
|
228
|
+
const renderPresets = () => {
|
|
229
|
+
const items = presets.map(({ label, ids }) => ({
|
|
230
|
+
children: label,
|
|
231
|
+
onClick: () => setSelected(ids),
|
|
232
|
+
key: label,
|
|
233
|
+
}));
|
|
234
|
+
if (selectAllButton) {
|
|
235
|
+
items.push({
|
|
236
|
+
children: 'Select all',
|
|
237
|
+
onClick: selectAll,
|
|
238
|
+
key: 'select-all-button',
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
if (clearButton) {
|
|
242
|
+
items.push({
|
|
243
|
+
children: 'Clear',
|
|
244
|
+
onClick: dropSelected,
|
|
245
|
+
key: 'clear-button',
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
if (items.length === 0)
|
|
249
|
+
return null;
|
|
250
|
+
return (jsx("div", { className: S.presetPanel, children: items.map(props => (jsx(Button, { className: S.presetButton, variant: "clear", ...props }))) }, "preset-panel"));
|
|
251
|
+
};
|
|
252
|
+
const renderOption = (item, level = 0) => {
|
|
253
|
+
const { id, isGroupHeader } = item;
|
|
254
|
+
const isFocused = id === focusedItemId.current;
|
|
255
|
+
const isSelected = selected.includes(id);
|
|
256
|
+
const items = [];
|
|
257
|
+
const className = cn(S.option, isGroupHeader && S.isGroup, isFocused && S.isFocused, isSelected && S.isSelected, S[`level-${level}`], optionClassName);
|
|
258
|
+
const optionProps = {
|
|
259
|
+
className,
|
|
260
|
+
onPointerUp: () => onItemToggle(id),
|
|
261
|
+
onPointerEnter: () => onOptionHover(id),
|
|
262
|
+
};
|
|
263
|
+
// @ts-ignore
|
|
264
|
+
if (isFocused)
|
|
265
|
+
optionProps.ref = onFocusedElemRef;
|
|
266
|
+
if (isSelected && !isFirstSelectedMeet.current) {
|
|
267
|
+
isFirstSelectedMeet.current = true;
|
|
268
|
+
}
|
|
269
|
+
if (filterOption(item)) {
|
|
270
|
+
items.unshift(jsx("div", { ...optionProps, children: renderLabel(item) }, id));
|
|
271
|
+
}
|
|
272
|
+
return items;
|
|
273
|
+
};
|
|
274
|
+
const renderOptions = () => {
|
|
275
|
+
isFirstSelectedMeet.current = false;
|
|
276
|
+
return [...additionalOptions, ...items]
|
|
277
|
+
.map(item => renderOption(item))
|
|
278
|
+
.flat();
|
|
279
|
+
};
|
|
280
|
+
useEffect(() => {
|
|
281
|
+
const items = additionalOptions?.length
|
|
282
|
+
? [...additionalOptions, ...options]
|
|
283
|
+
: options;
|
|
284
|
+
setNewItems(items);
|
|
285
|
+
}, [options]);
|
|
286
|
+
useEffect(() => {
|
|
287
|
+
setIsOpen(props.isOpen);
|
|
288
|
+
}, [props.isOpen]);
|
|
289
|
+
useEffect(() => {
|
|
290
|
+
const searchVal = props.searchValue;
|
|
291
|
+
if (searchVal)
|
|
292
|
+
setSearchVal(searchVal);
|
|
293
|
+
}, [props.searchValue]);
|
|
294
|
+
const onKeyDown = useCallback((e) => {
|
|
295
|
+
const currIndex = focusedItemIndex;
|
|
296
|
+
if (e.key === 'ArrowUp') {
|
|
297
|
+
if (currIndex > 0)
|
|
298
|
+
setItemFocus(currIndex - 1);
|
|
299
|
+
}
|
|
300
|
+
if (e.key === 'ArrowDown') {
|
|
301
|
+
if (currIndex < maxIndex.current)
|
|
302
|
+
setItemFocus(currIndex + 1);
|
|
303
|
+
}
|
|
304
|
+
if (currIndex === -1 || !isOpen)
|
|
305
|
+
return;
|
|
306
|
+
if (e.key === 'Enter') {
|
|
307
|
+
e.preventDefault();
|
|
308
|
+
e.stopPropagation();
|
|
309
|
+
onItemToggle(items[currIndex].id);
|
|
310
|
+
}
|
|
311
|
+
}, [items, focusedItemIndex, isOpen, selected]);
|
|
312
|
+
useEvent({
|
|
313
|
+
event: 'keydown',
|
|
314
|
+
isActive: isOpen,
|
|
315
|
+
callback: onKeyDown,
|
|
316
|
+
});
|
|
317
|
+
useEvent({
|
|
318
|
+
event: 'click',
|
|
319
|
+
// isActive: isMultiple,
|
|
320
|
+
callback: e => {
|
|
321
|
+
if (!isClickedInside(e.target)) {
|
|
322
|
+
setIsOpen(false);
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
});
|
|
326
|
+
const optionsList = useMemo(() => (jsxs("div", { ref: contentRef, children: [renderPresets(), createElement(Scroll, { y: true, ...scrollProps, offset: { y: { before: 10, after: 10 } }, className: cn(S.options, S[`size-${size}`], scrollProps?.className), onInnerRef: elem => (scrollInnerRef.current = elem), key: "items-scroll" }, renderOptions())] })), [items, searchVal, focusedItemIndex, selected]);
|
|
327
|
+
const classes = cn(S.root, className, S[`size-${size}`]);
|
|
328
|
+
return (jsxs(Fragment, { children: [jsx(Popup, { className: classes, direction: "bottom", size: size, focusControl: true, hoverControl: isFocused, blur: blur, isOpen: isOpen, disabled: disabled, ...popupProps, onOpen: onPopupOpen, onClose: onPopupClose, trigger: renderTrigger(), triggerProps: {
|
|
329
|
+
onFocus: onFocus,
|
|
330
|
+
onBlur: onBlur,
|
|
331
|
+
}, content: optionsList }), isErrorVisible && (jsx(AssistiveText, { variant: "danger", size: size, children: error }))] }));
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
export { Select2 };
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import{jsx}from
|
|
2
|
-
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import S from './Shimmer.styl.js';
|
|
3
|
+
import cn from 'classnames';
|
|
4
|
+
|
|
5
|
+
const Shimmer = ({ className, size = 'm', round = false, children, }) => (jsx("div", { className: cn(S.root, className, S[`size-${size}`], round && S.round), children: jsx("div", { className: S.inner, children: children }) }));
|
|
6
|
+
|
|
7
|
+
export { Shimmer };
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import styleInject from
|
|
2
|
-
|
|
1
|
+
import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".Shimmer_root__XaY5r{height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%}.Shimmer_inner__zssMV{animation:Shimmer_shimmer__hGfzF 1.5s linear infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2) 50%,transparent);background:linear-gradient(90deg,transparent 0,var(--shimmer-color,var(--accent-color-alpha-200,hsla(0,0%,100%,.2))) 50%,transparent 100%);inset:0;position:absolute}.Shimmer_size-xs__RAP4h{border-radius:4px}.Shimmer_round__rwhjn.Shimmer_size-xs__RAP4h{border-radius:12px}.Shimmer_size-s__EYKhC{border-radius:4px}.Shimmer_round__rwhjn.Shimmer_size-s__EYKhC{border-radius:16px}.Shimmer_size-m__AYziL{border-radius:6px}.Shimmer_round__rwhjn.Shimmer_size-m__AYziL{border-radius:20px}.Shimmer_size-l__GqE0a{border-radius:8px}.Shimmer_round__rwhjn.Shimmer_size-l__GqE0a{border-radius:24px}.Shimmer_size-xl__VwXMx{border-radius:10px}.Shimmer_round__rwhjn.Shimmer_size-xl__VwXMx{border-radius:28px}@keyframes Shimmer_shimmer__hGfzF{0%{transform:translateX(-100%)}50%{transform:translateX(100%)}to{transform:translateX(100%)}}";
|
|
4
|
+
var S = {"root":"Shimmer_root__XaY5r","inner":"Shimmer_inner__zssMV","shimmer":"Shimmer_shimmer__hGfzF","size-xs":"Shimmer_size-xs__RAP4h","round":"Shimmer_round__rwhjn","size-s":"Shimmer_size-s__EYKhC","size-m":"Shimmer_size-m__AYziL","size-l":"Shimmer_size-l__GqE0a","size-xl":"Shimmer_size-xl__VwXMx"};
|
|
5
|
+
styleInject(css_248z);
|
|
6
|
+
|
|
7
|
+
export { S as default };
|
|
@@ -1,2 +1,11 @@
|
|
|
1
|
-
import{jsx}from
|
|
2
|
-
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import cn from 'classnames';
|
|
3
|
+
import SvgSpinner from './spinner.svg.js';
|
|
4
|
+
import S from './Spinner.styl.js';
|
|
5
|
+
|
|
6
|
+
const Spinner = ({ size = 'm', className = '', ...props }) => {
|
|
7
|
+
const classes = cn(S.root, S[`size-${size}`], className);
|
|
8
|
+
return jsx(SvgSpinner, { className: classes, ...props });
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { Spinner };
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import styleInject from
|
|
2
|
-
|
|
1
|
+
import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".Spinner_root__DsSOz{animation:Spinner_spin__7XKOR .5s linear infinite;color:inherit;display:inline-block}.Spinner_size-xs__rhfme{height:12px;width:12px}.Spinner_size-s__sc9kC{height:16px;width:16px}.Spinner_size-m__MY4q0{height:20px;width:20px}.Spinner_size-l__p16ZU{height:30px;width:30px}.Spinner_size-xl__vqU9I{height:38px;width:38px}@keyframes Spinner_spin__7XKOR{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}";
|
|
4
|
+
var S = {"root":"Spinner_root__DsSOz","spin":"Spinner_spin__7XKOR","size-xs":"Spinner_size-xs__rhfme","size-s":"Spinner_size-s__sc9kC","size-m":"Spinner_size-m__MY4q0","size-l":"Spinner_size-l__p16ZU","size-xl":"Spinner_size-xl__vqU9I"};
|
|
5
|
+
styleInject(css_248z);
|
|
6
|
+
|
|
7
|
+
export { S as default };
|
|
@@ -1,2 +1,24 @@
|
|
|
1
|
-
import*as React from
|
|
2
|
-
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
var _circle;
|
|
4
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
5
|
+
var SvgSpinner = function SvgSpinner(props) {
|
|
6
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
7
|
+
width: 50,
|
|
8
|
+
height: 50,
|
|
9
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
10
|
+
viewBox: "0 0 100 100",
|
|
11
|
+
preserveAspectRatio: "xMidYMid"
|
|
12
|
+
}, props), _circle || (_circle = /*#__PURE__*/React.createElement("circle", {
|
|
13
|
+
cx: 50,
|
|
14
|
+
cy: 50,
|
|
15
|
+
fill: "none",
|
|
16
|
+
stroke: "currentColor",
|
|
17
|
+
strokeWidth: 8,
|
|
18
|
+
r: 45,
|
|
19
|
+
strokeDasharray: "212.05750411731105 72.68583470577035",
|
|
20
|
+
transform: "rotate(270 50 50)"
|
|
21
|
+
})));
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { SvgSpinner as default };
|
|
@@ -1,2 +1,24 @@
|
|
|
1
|
-
import{jsx,jsxs}from
|
|
2
|
-
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { Component } from 'react';
|
|
3
|
+
import cn from 'classnames';
|
|
4
|
+
import { Paranja } from '../Paranja/Paranja.js';
|
|
5
|
+
import { Scroll } from '../Scroll/Scroll.js';
|
|
6
|
+
import { Spinner } from '../Spinner/Spinner.js';
|
|
7
|
+
import S from './Table.styl.js';
|
|
8
|
+
|
|
9
|
+
class Table extends Component {
|
|
10
|
+
renderHeaderColumn = ({ id, label, sticky }) => (jsx("th", { className: cn(sticky && S.sticky), children: label }, id));
|
|
11
|
+
renderRow = (data) => {
|
|
12
|
+
const { columns } = this.props;
|
|
13
|
+
return (jsx("tr", { className: data.className, children: columns.map(param => this.renderDataCol(param, data)) }, data.id));
|
|
14
|
+
};
|
|
15
|
+
renderDataCol({ id, dataField, render, sticky }, data) {
|
|
16
|
+
return (jsx("td", { className: cn(sticky && S.sticky), children: render ? render(data) : data[dataField || id] }, id));
|
|
17
|
+
}
|
|
18
|
+
render() {
|
|
19
|
+
const { className, columns, isLoading = false, loadingText, blur, data, } = this.props;
|
|
20
|
+
return (jsxs("div", { className: cn(S.root, blur && S.blur, className), children: [jsx(Scroll, { x: true, y: true, offset: { x: { before: 10, after: 10 } }, className: S.scroll, xScrollbarClassName: S.xScrollbar, yScrollbarClassName: S.yScrollbar, children: jsxs("table", { children: [jsx("thead", { children: jsx("tr", { children: columns.map(this.renderHeaderColumn) }) }), jsx("tbody", { children: data.map(this.renderRow) })] }) }), jsx(Paranja, { inline: true, visible: isLoading, blur: blur, children: isLoading && (loadingText ?? jsx(Spinner, {})) })] }));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { Table };
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import styleInject from
|
|
2
|
-
|
|
1
|
+
import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".Table_root__PxLR-{--brad:var(--border-radius-l);border-radius:var(--border-radius-l);border-radius:var(--brad);box-shadow:0 0 0 2px var(--accent-color-alpha-100);max-height:100%;overflow:hidden;position:relative}.Table_root__PxLR- table{min-width:100%}.Table_root__PxLR- tbody{overflow-scrolling:touch;overflow:auto}.Table_root__PxLR- thead{position:sticky;top:0;z-index:1}.Table_root__PxLR- td{box-shadow:inset 0 1px 0 0 var(--accent-color-alpha-100)}.Table_root__PxLR- td,.Table_root__PxLR- th{min-width:5em;padding:var(--p-3);text-align:left}.Table_root__PxLR- th{background-color:var(--accent-color-alpha-100);padding-bottom:16px}.Table_root__PxLR- td{vertical-align:top}.Table_root__PxLR- tr:last-child td{border-bottom-left-radius:var(--brad);border-bottom-right-radius:var(--brad);padding-bottom:var(--p-8)}.Table_scroll__a04XZ{position:static}.Table_xScrollbar__FODoD{transform:translateY(4px)}.Table_yScrollbar__KwMOv{transform:translateX(4px)}.Table_sticky__99lks{background-color:var(--decent-color);left:0;position:sticky;z-index:1}th.Table_sticky__99lks{background-color:var(--accent-color);color:var(--decent-color)}.Table_blur__UwMAo .Table_sticky__99lks{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background-color:var(--decent-color-alpha-500)}.Table_blur__UwMAo th.Table_sticky__99lks{background-color:var(--accent-color-alpha-500);color:var(--decent-color-alpha-800)}";
|
|
4
|
+
var S = {"root":"Table_root__PxLR-","scroll":"Table_scroll__a04XZ","xScrollbar":"Table_xScrollbar__FODoD","yScrollbar":"Table_yScrollbar__KwMOv","sticky":"Table_sticky__99lks","blur":"Table_blur__UwMAo"};
|
|
5
|
+
styleInject(css_248z);
|
|
6
|
+
|
|
7
|
+
export { S as default };
|
|
@@ -1,2 +1,48 @@
|
|
|
1
|
-
import{useState,useEffect,useCallback,createElement
|
|
2
|
-
|
|
1
|
+
import { useState, useEffect, useCallback, createElement } from 'react';
|
|
2
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
|
+
import cn from 'classnames';
|
|
4
|
+
import { Scroll } from '../Scroll/Scroll.js';
|
|
5
|
+
import { Button } from '../Button/Button.js';
|
|
6
|
+
import { ButtonGroup } from '../ButtonGroup/ButtonGroup.js';
|
|
7
|
+
import S from './Tabs.styl.js';
|
|
8
|
+
|
|
9
|
+
const isId = id => ['string', 'number'].includes(typeof id);
|
|
10
|
+
function Tabs(props) {
|
|
11
|
+
const { size = 'm', className, tabsWrapperClassName, tabsClassName, contentClassName, items, hideTabsIfSingle = false, allowEmpty = false, onChange, renderAll, activeId: initialId, children, ...rest } = props;
|
|
12
|
+
const [activeId, setActiveId] = useState(isId(initialId) ? initialId : allowEmpty ? null : items[0].id);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
if (isId(initialId)) {
|
|
15
|
+
setActiveId(initialId);
|
|
16
|
+
}
|
|
17
|
+
}, [initialId]);
|
|
18
|
+
const onTabClick = useCallback((e, { id, onClick } = {}) => {
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
if (onClick && !onClick(e)) {
|
|
21
|
+
e.preventDefault();
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const newId = allowEmpty && id === activeId ? null : id;
|
|
25
|
+
setActiveId(newId);
|
|
26
|
+
onChange?.(newId);
|
|
27
|
+
}, [activeId]);
|
|
28
|
+
const tabsContent = [];
|
|
29
|
+
const tabsButtons = items.map((params) => {
|
|
30
|
+
const { id, label, forceRender, content, contentClassName: currContentClassName, ...rest } = params;
|
|
31
|
+
const isActive = activeId === id;
|
|
32
|
+
const tabContent = typeof content === 'function' ? content() : content;
|
|
33
|
+
if (renderAll || forceRender || isActive) {
|
|
34
|
+
tabsContent.push(jsx("div", { className: cn(contentClassName, currContentClassName, !isActive && S.inactive), children: tabContent }, id));
|
|
35
|
+
}
|
|
36
|
+
return (createElement(Button, { ...rest, className: cn(S.tab, rest.className), size: size, key: id, onClick: e => onTabClick(e, params), checked: isActive }, label));
|
|
37
|
+
});
|
|
38
|
+
const tabs = tabsButtons.length === 1 && hideTabsIfSingle ? null : (jsx(Scroll, { x: true, offset: { x: { before: 10, after: 10 } }, className: tabsWrapperClassName, innerClassName: cn(S.tabsScroll, S[`size-${size}`]), autoHide: true, fadeSize: size, size: size, children: jsx(ButtonGroup, { className: tabsClassName, ...rest, children: tabsButtons }) }));
|
|
39
|
+
if (typeof children === 'function') {
|
|
40
|
+
return children({
|
|
41
|
+
tabs,
|
|
42
|
+
content: tabsContent,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return (jsxs(Fragment, { children: [tabs, children, tabsContent] }));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export { Tabs };
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import styleInject from
|
|
2
|
-
|
|
1
|
+
import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
|
+
|
|
3
|
+
var css_248z = "div .Tabs_inactive__H0mPh{display:none}.Tabs_tabsScroll__7Dj0S{padding-bottom:var(--p-5)}.Tabs_size-xs__J0-xo.Tabs_tabsScroll__7Dj0S{padding-bottom:var(--p-3)}.Tabs_size-s__bz7NO.Tabs_tabsScroll__7Dj0S{padding-bottom:var(--p-4)}.Tabs_size-l__emJzX.Tabs_tabsScroll__7Dj0S{padding-bottom:calc(var(--p-5)*1.2)}.Tabs_size-xl__Kqzt-.Tabs_tabsScroll__7Dj0S{padding-bottom:calc(var(--p-5)*1.35)}.Tabs_tab__-oN-g{flex-shrink:0;white-space:nowrap}";
|
|
4
|
+
var S = {"inactive":"Tabs_inactive__H0mPh","tabsScroll":"Tabs_tabsScroll__7Dj0S","size-xs":"Tabs_size-xs__J0-xo","size-s":"Tabs_size-s__bz7NO","size-l":"Tabs_size-l__emJzX","size-xl":"Tabs_size-xl__Kqzt-","tab":"Tabs_tab__-oN-g"};
|
|
5
|
+
styleInject(css_248z);
|
|
6
|
+
|
|
7
|
+
export { S as default };
|
|
@@ -1,2 +1,44 @@
|
|
|
1
|
-
import{jsx,jsxs,Fragment}from
|
|
2
|
-
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import cn from 'classnames';
|
|
3
|
+
import { useCallback } from 'react';
|
|
4
|
+
import { Link } from '../Router/Link/Link.js';
|
|
5
|
+
import { isBrowser } from '../../tools/env.js';
|
|
6
|
+
import 'nanoid';
|
|
7
|
+
import '../../tools/dom.js';
|
|
8
|
+
import 'timen';
|
|
9
|
+
import 'compareq';
|
|
10
|
+
import 'lodash.pick';
|
|
11
|
+
import '../../tools/queryParams.js';
|
|
12
|
+
import S from './Text.styl.js';
|
|
13
|
+
|
|
14
|
+
const textToAnchorId = text => text.toLowerCase().split(' ').join('_');
|
|
15
|
+
const getPath = () => (isBrowser && location.pathname) ?? '/';
|
|
16
|
+
const scrollIntoHeader = id => document.getElementById(id)?.scrollIntoView();
|
|
17
|
+
function useAnchor(text) {
|
|
18
|
+
if (typeof text !== 'string')
|
|
19
|
+
return [];
|
|
20
|
+
const id = textToAnchorId(text);
|
|
21
|
+
const href = `${getPath()}#${id}`;
|
|
22
|
+
const scrollUp = useCallback(() => scrollIntoHeader(id), [id]);
|
|
23
|
+
return [
|
|
24
|
+
id,
|
|
25
|
+
jsxs(Fragment, { children: ["\u00A0", jsx(Link, { href: href, className: S.anchor, onClick: scrollUp, children: "#" })] }),
|
|
26
|
+
];
|
|
27
|
+
}
|
|
28
|
+
function H({ As, className, children, anchor, ...rest }) {
|
|
29
|
+
const [id, anchorEl] = useAnchor(anchor ?? children);
|
|
30
|
+
return (jsxs(As, { ...rest, className: cn(S.heading, className), id: id, children: [children, anchorEl] }));
|
|
31
|
+
}
|
|
32
|
+
const H1 = props => jsx(H, { ...props, As: "h1", anchor: false });
|
|
33
|
+
const H2 = props => jsx(H, { ...props, As: "h2" });
|
|
34
|
+
const H3 = props => jsx(H, { ...props, As: "h3" });
|
|
35
|
+
const H4 = props => jsx(H, { ...props, As: "h4" });
|
|
36
|
+
const H5 = props => jsx(H, { ...props, As: "h5" });
|
|
37
|
+
const H6 = props => jsx(H, { ...props, As: "h6" });
|
|
38
|
+
if (isBrowser) {
|
|
39
|
+
window.addEventListener('load', () => {
|
|
40
|
+
scrollIntoHeader(location.hash.slice(1));
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export { H1, H2, H3, H4, H5, H6 };
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import styleInject from
|
|
2
|
-
|
|
1
|
+
import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".Text_heading__DR-MG{position:relative}.Text_anchor__hq6W6{align-items:flex-start;border-radius:50%;height:100%;opacity:0;padding:0 .5em;transform:translateX(-1em);transition:.2s ease-out;transition-property:transform,opacity;-webkit-user-select:none;-moz-user-select:none;user-select:none}.Text_anchor__hq6W6:before{background:none!important;height:100%;position:absolute;width:2em}.Text_heading__DR-MG:hover .Text_anchor__hq6W6{opacity:1;transform:translateX(0)}.Text_heading__DR-MG .Text_anchor__hq6W6:hover{color:var(--active-color)}";
|
|
4
|
+
var S = {"heading":"Text_heading__DR-MG","anchor":"Text_anchor__hq6W6"};
|
|
5
|
+
styleInject(css_248z);
|
|
6
|
+
|
|
7
|
+
export { S as default };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import cn from 'classnames';
|
|
3
|
+
import React__default, { useMemo } from 'react';
|
|
4
|
+
import S from './TextShimmer.styl.js';
|
|
5
|
+
|
|
6
|
+
function TextShimmerComponent({ children, as: Component = 'p', className, duration = 1, spread = 3, inverted = false, active = true, }) {
|
|
7
|
+
const { backgroundGradient } = useMemo(() => {
|
|
8
|
+
const raw = Math.min(48, 3.5 + Math.max(0, Math.min(1, spread / 10)) * 100.5);
|
|
9
|
+
// Wide blend stops “vertical knife” artefacts when the ramp only spans few pixels inside the glyph mask.
|
|
10
|
+
const ridgeHalf = Math.min(49, Math.max(36, raw + 17));
|
|
11
|
+
const baseColor = inverted
|
|
12
|
+
? 'var(--txt-sh-highlight)'
|
|
13
|
+
: 'var(--txt-sh-fill)';
|
|
14
|
+
const bandColor = inverted
|
|
15
|
+
? 'var(--txt-sh-fill)'
|
|
16
|
+
: 'var(--txt-sh-highlight)';
|
|
17
|
+
const backgroundGradient = `linear-gradient(90deg, ${baseColor} calc(50% - ${ridgeHalf}%), ${bandColor} 50%, ${baseColor} calc(50% + ${ridgeHalf}%))`;
|
|
18
|
+
return { backgroundGradient };
|
|
19
|
+
}, [spread, inverted]);
|
|
20
|
+
if (!active)
|
|
21
|
+
return jsx(Fragment, { children: children });
|
|
22
|
+
return (jsx(Component, { className: cn(S.root, className), style: {
|
|
23
|
+
'--text-shimmer-duration': `${duration}s`,
|
|
24
|
+
backgroundImage: backgroundGradient,
|
|
25
|
+
}, children: children }));
|
|
26
|
+
}
|
|
27
|
+
const TextShimmer = React__default.memo(TextShimmerComponent);
|
|
28
|
+
|
|
29
|
+
export { TextShimmer };
|