@lumx/react 3.0.2 → 3.0.3-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm/_internal/_rollupPluginBabelHelpers.js → _internal/ClickAwayProvider.js} +107 -2
- package/_internal/ClickAwayProvider.js.map +1 -0
- package/_internal/types.d.ts +271 -0
- package/index.d.ts +2686 -0
- package/index.js +12533 -0
- package/index.js.map +1 -0
- package/package.json +7 -6
- package/src/components/alert-dialog/AlertDialog.tsx +2 -1
- package/src/components/autocomplete/Autocomplete.tsx +2 -2
- package/src/components/autocomplete/AutocompleteMultiple.tsx +2 -1
- package/src/components/avatar/Avatar.tsx +2 -1
- package/src/components/badge/Badge.test.tsx +1 -1
- package/src/components/badge/Badge.tsx +2 -1
- package/src/components/button/Button.test.tsx +1 -1
- package/src/components/button/Button.tsx +2 -1
- package/src/components/button/ButtonGroup.tsx +2 -1
- package/src/components/button/ButtonRoot.test.tsx +1 -1
- package/src/components/button/ButtonRoot.tsx +2 -1
- package/src/components/button/IconButton.tsx +2 -1
- package/src/components/checkbox/Checkbox.test.tsx +1 -1
- package/src/components/checkbox/Checkbox.tsx +2 -1
- package/src/components/chip/Chip.test.tsx +1 -1
- package/src/components/chip/Chip.tsx +3 -1
- package/src/components/chip/ChipGroup.tsx +2 -1
- package/src/components/comment-block/CommentBlock.tsx +2 -1
- package/src/components/date-picker/DatePicker.tsx +1 -1
- package/src/components/date-picker/DatePickerControlled.tsx +1 -1
- package/src/components/date-picker/DatePickerField.tsx +1 -1
- package/src/components/date-picker/constants.ts +1 -1
- package/src/components/date-picker/types.ts +1 -1
- package/src/components/dialog/Dialog.tsx +4 -8
- package/src/components/divider/Divider.test.tsx +1 -1
- package/src/components/divider/Divider.tsx +3 -2
- package/src/components/drag-handle/DragHandle.tsx +2 -1
- package/src/components/dropdown/Dropdown.tsx +2 -1
- package/src/components/expansion-panel/ExpansionPanel.test.tsx +1 -1
- package/src/components/expansion-panel/ExpansionPanel.tsx +3 -10
- package/src/components/flag/Flag.test.tsx +1 -1
- package/src/components/flag/Flag.tsx +2 -1
- package/src/components/flex-box/FlexBox.stories.tsx +8 -0
- package/src/components/flex-box/FlexBox.tsx +7 -3
- package/src/components/flex-box/__snapshots__/FlexBox.test.tsx.snap +16 -0
- package/src/components/generic-block/GenericBlock.stories.jsx +23 -1
- package/src/components/generic-block/GenericBlock.tsx +18 -4
- package/src/components/generic-block/constants.ts +9 -0
- package/src/components/generic-block/index.ts +1 -0
- package/src/components/grid/Grid.tsx +2 -1
- package/src/components/grid/GridItem.tsx +2 -1
- package/src/components/heading/Heading.tsx +2 -1
- package/src/components/heading/HeadingLevelProvider.tsx +1 -1
- package/src/components/heading/context.tsx +1 -1
- package/src/components/icon/Icon.test.tsx +1 -1
- package/src/components/icon/Icon.tsx +2 -1
- package/src/components/image-block/ImageBlock.tsx +2 -1
- package/src/components/index.ts +1 -1
- package/src/components/inline-list/InlineList.stories.tsx +40 -0
- package/src/components/inline-list/InlineList.test.tsx +41 -0
- package/src/components/inline-list/InlineList.tsx +80 -0
- package/src/components/inline-list/index.ts +1 -0
- package/src/components/input-helper/InputHelper.tsx +2 -1
- package/src/components/input-label/InputLabel.tsx +2 -1
- package/src/components/lightbox/Lightbox.tsx +2 -1
- package/src/components/link/Link.tsx +2 -1
- package/src/components/link-preview/LinkPreview.test.tsx +1 -1
- package/src/components/link-preview/LinkPreview.tsx +2 -1
- package/src/components/list/List.tsx +2 -1
- package/src/components/list/ListDivider.tsx +2 -1
- package/src/components/list/ListItem.tsx +3 -8
- package/src/components/list/ListSubheader.tsx +2 -1
- package/src/components/list/useInteractiveList.tsx +1 -1
- package/src/components/message/Message.test.tsx +1 -1
- package/src/components/message/Message.tsx +2 -1
- package/src/components/mosaic/Mosaic.tsx +2 -1
- package/src/components/notification/Notification.tsx +2 -1
- package/src/components/popover/Popover.tsx +2 -1
- package/src/components/post-block/PostBlock.tsx +2 -1
- package/src/components/progress/Progress.tsx +2 -1
- package/src/components/progress-tracker/ProgressTracker.tsx +2 -1
- package/src/components/progress-tracker/ProgressTrackerStep.test.tsx +1 -1
- package/src/components/progress-tracker/ProgressTrackerStep.tsx +2 -1
- package/src/components/progress-tracker/ProgressTrackerStepPanel.tsx +2 -1
- package/src/components/radio-button/RadioButton.test.tsx +1 -1
- package/src/components/radio-button/RadioButton.tsx +2 -1
- package/src/components/radio-button/RadioGroup.tsx +2 -1
- package/src/components/select/Select.test.tsx +1 -1
- package/src/components/select/Select.tsx +2 -1
- package/src/components/select/SelectMultiple.test.tsx +1 -1
- package/src/components/select/SelectMultiple.tsx +2 -1
- package/src/components/select/WithSelectContext.tsx +1 -1
- package/src/components/select/constants.ts +1 -1
- package/src/components/side-navigation/SideNavigation.tsx +2 -1
- package/src/components/side-navigation/SideNavigationItem.test.tsx +1 -1
- package/src/components/side-navigation/SideNavigationItem.tsx +3 -9
- package/src/components/skeleton/SkeletonCircle.tsx +2 -1
- package/src/components/skeleton/SkeletonRectangle.tsx +2 -1
- package/src/components/skeleton/SkeletonTypography.tsx +2 -1
- package/src/components/slider/Slider.tsx +2 -1
- package/src/components/slideshow/Slides.tsx +2 -1
- package/src/components/slideshow/Slideshow.tsx +1 -1
- package/src/components/slideshow/SlideshowControls.tsx +2 -1
- package/src/components/slideshow/SlideshowItem.tsx +2 -1
- package/src/components/slideshow/SlideshowItemGroup.tsx +2 -1
- package/src/components/switch/Switch.test.tsx +1 -1
- package/src/components/switch/Switch.tsx +2 -1
- package/src/components/table/Table.tsx +2 -1
- package/src/components/table/TableBody.tsx +2 -1
- package/src/components/table/TableCell.tsx +3 -1
- package/src/components/table/TableHeader.tsx +2 -1
- package/src/components/table/TableRow.tsx +2 -1
- package/src/components/tabs/Tab.test.tsx +1 -1
- package/src/components/tabs/Tab.tsx +2 -1
- package/src/components/tabs/TabList.test.tsx +1 -1
- package/src/components/tabs/TabList.tsx +2 -1
- package/src/components/tabs/TabPanel.tsx +2 -1
- package/src/components/text/{Text.stories.tsx → Text.stories.jsx} +23 -28
- package/src/components/text/Text.test.tsx +15 -1
- package/src/components/text/Text.tsx +38 -12
- package/src/components/text-field/TextField.test.tsx +1 -1
- package/src/components/text-field/TextField.tsx +2 -1
- package/src/components/thumbnail/Thumbnail.tsx +2 -1
- package/src/components/thumbnail/types.ts +1 -1
- package/src/components/toolbar/Toolbar.tsx +2 -1
- package/src/components/tooltip/Tooltip.tsx +2 -1
- package/src/components/tooltip/useTooltipOpen.tsx +1 -1
- package/src/components/uploader/Uploader.test.tsx +1 -1
- package/src/components/uploader/Uploader.tsx +2 -1
- package/src/components/user-block/UserBlock.tsx +2 -1
- package/src/hooks/useCallbackOnEscape.ts +2 -1
- package/src/hooks/useClickAway.tsx +1 -1
- package/src/hooks/useDisableBodyScroll.ts +1 -1
- package/src/hooks/useFocusTrap.ts +1 -1
- package/src/hooks/useInterval.tsx +1 -1
- package/src/hooks/useOnResize.ts +1 -1
- package/src/index.ts +5 -0
- package/src/stories/generated/GenericBlock/Demos.stories.tsx +3 -1
- package/src/stories/generated/Heading/Demos.stories.tsx +6 -0
- package/src/stories/withResizableBox.tsx +18 -0
- package/src/testing/utils/commonTestsSuite.ts +1 -1
- package/src/utils/{getRootClassName.ts → className.ts} +19 -0
- package/src/utils/event.ts +1 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/type.ts +3 -0
- package/src/utils/utils.test.ts +1 -1
- package/types.d.ts +68 -11
- package/utils/index.d.ts +29 -0
- package/utils/index.js +2 -0
- package/utils/index.js.map +1 -0
- package/esm/_internal/AlertDialog.js +0 -141
- package/esm/_internal/AlertDialog.js.map +0 -1
- package/esm/_internal/AutocompleteMultiple.js +0 -257
- package/esm/_internal/AutocompleteMultiple.js.map +0 -1
- package/esm/_internal/Avatar2.js +0 -82
- package/esm/_internal/Avatar2.js.map +0 -1
- package/esm/_internal/Badge2.js +0 -54
- package/esm/_internal/Badge2.js.map +0 -1
- package/esm/_internal/Button2.js +0 -84
- package/esm/_internal/Button2.js.map +0 -1
- package/esm/_internal/ButtonGroup.js +0 -51
- package/esm/_internal/ButtonGroup.js.map +0 -1
- package/esm/_internal/ButtonRoot.js +0 -135
- package/esm/_internal/ButtonRoot.js.map +0 -1
- package/esm/_internal/Checkbox2.js +0 -116
- package/esm/_internal/Checkbox2.js.map +0 -1
- package/esm/_internal/Chip2.js +0 -118
- package/esm/_internal/Chip2.js.map +0 -1
- package/esm/_internal/ChipGroup.js +0 -122
- package/esm/_internal/ChipGroup.js.map +0 -1
- package/esm/_internal/ClickAwayProvider.js +0 -217
- package/esm/_internal/ClickAwayProvider.js.map +0 -1
- package/esm/_internal/CommentBlock.js +0 -124
- package/esm/_internal/CommentBlock.js.map +0 -1
- package/esm/_internal/DatePickerField.js +0 -347
- package/esm/_internal/DatePickerField.js.map +0 -1
- package/esm/_internal/Dialog2.js +0 -274
- package/esm/_internal/Dialog2.js.map +0 -1
- package/esm/_internal/Divider2.js +0 -53
- package/esm/_internal/Divider2.js.map +0 -1
- package/esm/_internal/DragHandle.js +0 -50
- package/esm/_internal/DragHandle.js.map +0 -1
- package/esm/_internal/Dropdown2.js +0 -157
- package/esm/_internal/Dropdown2.js.map +0 -1
- package/esm/_internal/ExpansionPanel.js +0 -156
- package/esm/_internal/ExpansionPanel.js.map +0 -1
- package/esm/_internal/Flag2.js +0 -48
- package/esm/_internal/Flag2.js.map +0 -1
- package/esm/_internal/FlexBox.js +0 -55
- package/esm/_internal/FlexBox.js.map +0 -1
- package/esm/_internal/GenericBlock.js +0 -125
- package/esm/_internal/GenericBlock.js.map +0 -1
- package/esm/_internal/GridItem.js +0 -96
- package/esm/_internal/GridItem.js.map +0 -1
- package/esm/_internal/HeadingLevelProvider.js +0 -112
- package/esm/_internal/HeadingLevelProvider.js.map +0 -1
- package/esm/_internal/Icon2.js +0 -120
- package/esm/_internal/Icon2.js.map +0 -1
- package/esm/_internal/IconButton.js +0 -74
- package/esm/_internal/IconButton.js.map +0 -1
- package/esm/_internal/ImageBlock.js +0 -101
- package/esm/_internal/ImageBlock.js.map +0 -1
- package/esm/_internal/InputHelper.js +0 -72
- package/esm/_internal/InputHelper.js.map +0 -1
- package/esm/_internal/InputLabel.js +0 -58
- package/esm/_internal/InputLabel.js.map +0 -1
- package/esm/_internal/Lightbox2.js +0 -123
- package/esm/_internal/Lightbox2.js.map +0 -1
- package/esm/_internal/Link2.js +0 -122
- package/esm/_internal/Link2.js.map +0 -1
- package/esm/_internal/LinkPreview.js +0 -105
- package/esm/_internal/LinkPreview.js.map +0 -1
- package/esm/_internal/List2.js +0 -799
- package/esm/_internal/List2.js.map +0 -1
- package/esm/_internal/ListSubheader.js +0 -79
- package/esm/_internal/ListSubheader.js.map +0 -1
- package/esm/_internal/Message2.js +0 -78
- package/esm/_internal/Message2.js.map +0 -1
- package/esm/_internal/Mosaic2.js +0 -89
- package/esm/_internal/Mosaic2.js.map +0 -1
- package/esm/_internal/Notification2.js +0 -133
- package/esm/_internal/Notification2.js.map +0 -1
- package/esm/_internal/Popover2.js +0 -2473
- package/esm/_internal/Popover2.js.map +0 -1
- package/esm/_internal/PostBlock.js +0 -96
- package/esm/_internal/PostBlock.js.map +0 -1
- package/esm/_internal/Progress2.js +0 -81
- package/esm/_internal/Progress2.js.map +0 -1
- package/esm/_internal/ProgressTrackerStepPanel.js +0 -313
- package/esm/_internal/ProgressTrackerStepPanel.js.map +0 -1
- package/esm/_internal/RadioGroup.js +0 -147
- package/esm/_internal/RadioGroup.js.map +0 -1
- package/esm/_internal/SelectMultiple.js +0 -424
- package/esm/_internal/SelectMultiple.js.map +0 -1
- package/esm/_internal/SideNavigationItem.js +0 -151
- package/esm/_internal/SideNavigationItem.js.map +0 -1
- package/esm/_internal/SkeletonTypography.js +0 -168
- package/esm/_internal/SkeletonTypography.js.map +0 -1
- package/esm/_internal/Slider2.js +0 -327
- package/esm/_internal/Slider2.js.map +0 -1
- package/esm/_internal/Slides.js +0 -864
- package/esm/_internal/Slides.js.map +0 -1
- package/esm/_internal/Switch2.js +0 -116
- package/esm/_internal/Switch2.js.map +0 -1
- package/esm/_internal/TabPanel.js +0 -280
- package/esm/_internal/TabPanel.js.map +0 -1
- package/esm/_internal/TableRow.js +0 -291
- package/esm/_internal/TableRow.js.map +0 -1
- package/esm/_internal/Text2.js +0 -63
- package/esm/_internal/Text2.js.map +0 -1
- package/esm/_internal/TextField.js +0 -322
- package/esm/_internal/TextField.js.map +0 -1
- package/esm/_internal/Thumbnail2.js +0 -301
- package/esm/_internal/Thumbnail2.js.map +0 -1
- package/esm/_internal/Toolbar2.js +0 -60
- package/esm/_internal/Toolbar2.js.map +0 -1
- package/esm/_internal/Tooltip2.js +0 -282
- package/esm/_internal/Tooltip2.js.map +0 -1
- package/esm/_internal/Uploader2.js +0 -84
- package/esm/_internal/Uploader2.js.map +0 -1
- package/esm/_internal/UserBlock.js +0 -132
- package/esm/_internal/UserBlock.js.map +0 -1
- package/esm/_internal/_rollupPluginBabelHelpers.js.map +0 -1
- package/esm/_internal/alert-dialog.js +0 -34
- package/esm/_internal/alert-dialog.js.map +0 -1
- package/esm/_internal/autocomplete.js +0 -32
- package/esm/_internal/autocomplete.js.map +0 -1
- package/esm/_internal/avatar.js +0 -13
- package/esm/_internal/avatar.js.map +0 -1
- package/esm/_internal/badge.js +0 -10
- package/esm/_internal/badge.js.map +0 -1
- package/esm/_internal/button.js +0 -25
- package/esm/_internal/button.js.map +0 -1
- package/esm/_internal/checkbox.js +0 -14
- package/esm/_internal/checkbox.js.map +0 -1
- package/esm/_internal/chip.js +0 -12
- package/esm/_internal/chip.js.map +0 -1
- package/esm/_internal/comment-block.js +0 -24
- package/esm/_internal/comment-block.js.map +0 -1
- package/esm/_internal/components.js +0 -156
- package/esm/_internal/components.js.map +0 -1
- package/esm/_internal/constants.js +0 -13
- package/esm/_internal/constants.js.map +0 -1
- package/esm/_internal/date-picker.js +0 -32
- package/esm/_internal/date-picker.js.map +0 -1
- package/esm/_internal/dialog.js +0 -27
- package/esm/_internal/dialog.js.map +0 -1
- package/esm/_internal/divider.js +0 -10
- package/esm/_internal/divider.js.map +0 -1
- package/esm/_internal/drag-handle.js +0 -11
- package/esm/_internal/drag-handle.js.map +0 -1
- package/esm/_internal/dropdown.js +0 -21
- package/esm/_internal/dropdown.js.map +0 -1
- package/esm/_internal/expansion-panel.js +0 -32
- package/esm/_internal/expansion-panel.js.map +0 -1
- package/esm/_internal/flag.js +0 -11
- package/esm/_internal/flag.js.map +0 -1
- package/esm/_internal/flex-box.js +0 -11
- package/esm/_internal/flex-box.js.map +0 -1
- package/esm/_internal/generic-block.js +0 -20
- package/esm/_internal/generic-block.js.map +0 -1
- package/esm/_internal/getRootClassName.js +0 -346
- package/esm/_internal/getRootClassName.js.map +0 -1
- package/esm/_internal/grid.js +0 -10
- package/esm/_internal/grid.js.map +0 -1
- package/esm/_internal/heading.js +0 -11
- package/esm/_internal/heading.js.map +0 -1
- package/esm/_internal/icon.js +0 -10
- package/esm/_internal/icon.js.map +0 -1
- package/esm/_internal/image-block.js +0 -14
- package/esm/_internal/image-block.js.map +0 -1
- package/esm/_internal/input-helper.js +0 -10
- package/esm/_internal/input-helper.js.map +0 -1
- package/esm/_internal/input-label.js +0 -10
- package/esm/_internal/input-label.js.map +0 -1
- package/esm/_internal/lightbox.js +0 -27
- package/esm/_internal/lightbox.js.map +0 -1
- package/esm/_internal/link-preview.js +0 -15
- package/esm/_internal/link-preview.js.map +0 -1
- package/esm/_internal/link.js +0 -12
- package/esm/_internal/link.js.map +0 -1
- package/esm/_internal/list.js +0 -15
- package/esm/_internal/list.js.map +0 -1
- package/esm/_internal/mergeRefs.js +0 -25
- package/esm/_internal/mergeRefs.js.map +0 -1
- package/esm/_internal/message.js +0 -11
- package/esm/_internal/message.js.map +0 -1
- package/esm/_internal/mosaic.js +0 -14
- package/esm/_internal/mosaic.js.map +0 -1
- package/esm/_internal/notification.js +0 -18
- package/esm/_internal/notification.js.map +0 -1
- package/esm/_internal/partitionMulti.js +0 -27
- package/esm/_internal/partitionMulti.js.map +0 -1
- package/esm/_internal/popover.js +0 -15
- package/esm/_internal/popover.js.map +0 -1
- package/esm/_internal/post-block.js +0 -15
- package/esm/_internal/post-block.js.map +0 -1
- package/esm/_internal/progress-tracker.js +0 -17
- package/esm/_internal/progress-tracker.js.map +0 -1
- package/esm/_internal/progress.js +0 -10
- package/esm/_internal/progress.js.map +0 -1
- package/esm/_internal/radio-button.js +0 -13
- package/esm/_internal/radio-button.js.map +0 -1
- package/esm/_internal/renderLink.js +0 -25
- package/esm/_internal/renderLink.js.map +0 -1
- package/esm/_internal/select.js +0 -31
- package/esm/_internal/select.js.map +0 -1
- package/esm/_internal/side-navigation.js +0 -25
- package/esm/_internal/side-navigation.js.map +0 -1
- package/esm/_internal/skeleton.js +0 -10
- package/esm/_internal/skeleton.js.map +0 -1
- package/esm/_internal/slider.js +0 -13
- package/esm/_internal/slider.js.map +0 -1
- package/esm/_internal/slideshow.js +0 -29
- package/esm/_internal/slideshow.js.map +0 -1
- package/esm/_internal/state.js +0 -145
- package/esm/_internal/state.js.map +0 -1
- package/esm/_internal/switch.js +0 -13
- package/esm/_internal/switch.js.map +0 -1
- package/esm/_internal/table.js +0 -12
- package/esm/_internal/table.js.map +0 -1
- package/esm/_internal/tabs.js +0 -15
- package/esm/_internal/tabs.js.map +0 -1
- package/esm/_internal/text-field.js +0 -26
- package/esm/_internal/text-field.js.map +0 -1
- package/esm/_internal/text.js +0 -10
- package/esm/_internal/text.js.map +0 -1
- package/esm/_internal/thumbnail.js +0 -13
- package/esm/_internal/thumbnail.js.map +0 -1
- package/esm/_internal/toolbar.js +0 -9
- package/esm/_internal/toolbar.js.map +0 -1
- package/esm/_internal/tooltip.js +0 -18
- package/esm/_internal/tooltip.js.map +0 -1
- package/esm/_internal/type.js +0 -40
- package/esm/_internal/type.js.map +0 -1
- package/esm/_internal/types.js +0 -23
- package/esm/_internal/types.js.map +0 -1
- package/esm/_internal/uploader.js +0 -11
- package/esm/_internal/uploader.js.map +0 -1
- package/esm/_internal/useDelayedVisibility.js +0 -47
- package/esm/_internal/useDelayedVisibility.js.map +0 -1
- package/esm/_internal/useDisableBodyScroll.js +0 -220
- package/esm/_internal/useDisableBodyScroll.js.map +0 -1
- package/esm/_internal/useFocusTrap.js +0 -86
- package/esm/_internal/useFocusTrap.js.map +0 -1
- package/esm/_internal/useRovingTabIndex.js +0 -87
- package/esm/_internal/useRovingTabIndex.js.map +0 -1
- package/esm/_internal/user-block.js +0 -17
- package/esm/_internal/user-block.js.map +0 -1
- package/esm/index.js +0 -95
- package/esm/index.js.map +0 -1
- package/esm/index2.js +0 -16
- package/esm/index2.js.map +0 -1
- package/src/utils/index.tsx +0 -7
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SideNavigationItem.js","sources":["../../../src/components/side-navigation/SideNavigation.tsx","../../../src/components/side-navigation/SideNavigationItem.tsx"],"sourcesContent":["import React, { Children, forwardRef, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { SideNavigationItem, Theme } from '@lumx/react';\n\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses, HasTheme, isComponent } from '@lumx/react/utils';\n\n/**\n * Defines the props of the component.\n */\nexport interface SideNavigationProps extends GenericProps, HasTheme {\n /** SideNavigationItem elements. */\n children: ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SideNavigation';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * SideNavigation component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SideNavigation: Comp<SideNavigationProps, HTMLUListElement> = forwardRef((props, ref) => {\n const { children, className, theme, ...forwardedProps } = props;\n const content = Children.toArray(children).filter(isComponent(SideNavigationItem));\n\n return (\n <ul\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n theme === Theme.dark && 'lumx-color-font-light-N',\n handleBasicClasses({ prefix: CLASSNAME }),\n )}\n >\n {content}\n </ul>\n );\n});\nSideNavigation.displayName = COMPONENT_NAME;\nSideNavigation.className = CLASSNAME;\n","import React, { Children, forwardRef, ReactNode } from 'react';\n\nimport classNames from 'classnames';\nimport isEmpty from 'lodash/isEmpty';\n\nimport { mdiChevronDown, mdiChevronUp } from '@lumx/icons';\n\nimport { Emphasis, Icon, Size, IconButton, IconButtonProps } from '@lumx/react';\n\nimport {\n Callback,\n Comp,\n GenericProps,\n getRootClassName,\n handleBasicClasses,\n isComponent,\n onEnterPressed,\n} from '@lumx/react/utils';\nimport { renderLink } from '@lumx/react/utils/renderLink';\n\n/**\n * Defines the props of the component.\n */\nexport interface SideNavigationItemProps extends GenericProps {\n /** SideNavigationItem elements. */\n children?: ReactNode;\n /** Emphasis variant. */\n emphasis?: Emphasis;\n /** Label content. */\n label: string | ReactNode;\n /** Icon (SVG path). */\n icon?: string;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Whether the component is selected or not. */\n isSelected?: boolean;\n /** Custom react component for the link (can be used to inject react router Link). */\n linkAs?: 'a' | any;\n /** Props to pass to the link (minus those already set by the SideNavigationItem props). */\n linkProps?: React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;\n /** Props to pass to the toggle button (minus those already set by the SideNavigationItem props). */\n toggleButtonProps: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color' | 'size'>;\n /**\n * Choose how the children are hidden when closed\n * ('hide' keeps the children in DOM but hide them, 'unmount' remove the children from the DOM).\n */\n closeMode?: 'hide' | 'unmount';\n /** On action button click callback. */\n onActionClick?(evt: React.MouseEvent): void;\n /** On click callback. */\n onClick?(evt: React.MouseEvent): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SideNavigationItem';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<SideNavigationItemProps> = {\n emphasis: Emphasis.high,\n closeMode: 'unmount',\n};\n\n/**\n * SideNavigationItem component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SideNavigationItem: Comp<SideNavigationItemProps, HTMLLIElement> = forwardRef((props, ref) => {\n const {\n children,\n className,\n emphasis,\n icon,\n isOpen,\n isSelected,\n label,\n linkAs,\n linkProps,\n onActionClick,\n onClick,\n toggleButtonProps,\n closeMode = 'unmount',\n ...forwardedProps\n } = props;\n\n const content = children && Children.toArray(children).filter(isComponent(SideNavigationItem));\n const hasContent = !isEmpty(content);\n const shouldSplitActions = Boolean(onActionClick);\n const showChildren = hasContent && isOpen;\n\n return (\n <li\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n emphasis,\n isOpen: showChildren,\n isSelected,\n prefix: CLASSNAME,\n }),\n )}\n >\n {shouldSplitActions ? (\n <div className={`${CLASSNAME}__wrapper`}>\n {renderLink(\n {\n linkAs,\n ...linkProps,\n className: `${CLASSNAME}__link`,\n onClick,\n tabIndex: 0,\n },\n icon && <Icon className={`${CLASSNAME}__icon`} icon={icon} size={Size.xs} />,\n <span>{label}</span>,\n )}\n\n <IconButton\n {...toggleButtonProps}\n className={`${CLASSNAME}__toggle`}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n size={Size.m}\n emphasis={Emphasis.low}\n onClick={onActionClick}\n />\n </div>\n ) : (\n renderLink(\n {\n linkAs,\n ...linkProps,\n className: `${CLASSNAME}__link`,\n tabIndex: 0,\n onClick,\n onKeyDown: onClick ? onEnterPressed(onClick as Callback) : undefined,\n },\n icon && <Icon className={`${CLASSNAME}__icon`} icon={icon} size={Size.xs} />,\n <span>{label}</span>,\n hasContent && (\n <Icon\n className={`${CLASSNAME}__chevron`}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n size={Size.xs}\n />\n ),\n )\n )}\n\n {(closeMode === 'hide' || showChildren) && <ul className={`${CLASSNAME}__children`}>{content}</ul>}\n </li>\n );\n});\nSideNavigationItem.displayName = COMPONENT_NAME;\nSideNavigationItem.className = CLASSNAME;\nSideNavigationItem.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","SideNavigation","forwardRef","props","ref","children","className","theme","forwardedProps","content","Children","toArray","filter","isComponent","SideNavigationItem","classNames","Theme","dark","handleBasicClasses","prefix","displayName","DEFAULT_PROPS","emphasis","Emphasis","high","closeMode","icon","isOpen","isSelected","label","linkAs","linkProps","onActionClick","onClick","toggleButtonProps","hasContent","isEmpty","shouldSplitActions","Boolean","showChildren","renderLink","tabIndex","Size","xs","mdiChevronUp","mdiChevronDown","m","low","onKeyDown","onEnterPressed","undefined","defaultProps"],"mappings":"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"}
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import { b as _objectWithoutProperties, c as _extends, _ as _objectSpread2 } from './_rollupPluginBabelHelpers.js';
|
|
2
|
-
import { Theme } from './components.js';
|
|
3
|
-
import React, { forwardRef } from 'react';
|
|
4
|
-
import { g as getRootClassName, c as classnames, h as handleBasicClasses } from './getRootClassName.js';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Defines the props of the component.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var DEFAULT_PROPS = {
|
|
11
|
-
theme: Theme.light
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* Component display name.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
var COMPONENT_NAME = 'SkeletonCircle';
|
|
18
|
-
/**
|
|
19
|
-
* Component default class name and class prefix.
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
var CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
23
|
-
/**
|
|
24
|
-
* SkeletonCircle component.
|
|
25
|
-
*
|
|
26
|
-
* @param props Component props.
|
|
27
|
-
* @param ref Component ref.
|
|
28
|
-
* @return React element.
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
var SkeletonCircle = forwardRef(function (props, ref) {
|
|
32
|
-
var className = props.className,
|
|
33
|
-
size = props.size,
|
|
34
|
-
color = props.color,
|
|
35
|
-
theme = props.theme,
|
|
36
|
-
forwardedProps = _objectWithoutProperties(props, ["className", "size", "color", "theme"]);
|
|
37
|
-
|
|
38
|
-
return React.createElement("div", _extends({
|
|
39
|
-
ref: ref
|
|
40
|
-
}, forwardedProps, {
|
|
41
|
-
className: classnames(className, handleBasicClasses({
|
|
42
|
-
prefix: CLASSNAME,
|
|
43
|
-
size: size,
|
|
44
|
-
color: color,
|
|
45
|
-
theme: theme
|
|
46
|
-
}))
|
|
47
|
-
}));
|
|
48
|
-
});
|
|
49
|
-
SkeletonCircle.displayName = COMPONENT_NAME;
|
|
50
|
-
SkeletonCircle.defaultProps = DEFAULT_PROPS;
|
|
51
|
-
SkeletonCircle.className = CLASSNAME;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Skeleton variants.
|
|
55
|
-
*/
|
|
56
|
-
|
|
57
|
-
var SkeletonRectangleVariant = {
|
|
58
|
-
squared: 'squared',
|
|
59
|
-
rounded: 'rounded',
|
|
60
|
-
pill: 'pill'
|
|
61
|
-
};
|
|
62
|
-
var DEFAULT_PROPS$1 = {
|
|
63
|
-
theme: Theme.light,
|
|
64
|
-
variant: SkeletonRectangleVariant.squared
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* Component display name.
|
|
68
|
-
*/
|
|
69
|
-
|
|
70
|
-
var COMPONENT_NAME$1 = 'SkeletonRectangle';
|
|
71
|
-
/**
|
|
72
|
-
* Component default class name and class prefix.
|
|
73
|
-
*/
|
|
74
|
-
|
|
75
|
-
var CLASSNAME$1 = getRootClassName(COMPONENT_NAME$1);
|
|
76
|
-
/**
|
|
77
|
-
* SkeletonRectangle component.
|
|
78
|
-
*
|
|
79
|
-
* @param props Component props.
|
|
80
|
-
* @param ref Component ref.
|
|
81
|
-
* @return React element.
|
|
82
|
-
*/
|
|
83
|
-
|
|
84
|
-
var SkeletonRectangle = forwardRef(function (props, ref) {
|
|
85
|
-
var aspectRatio = props.aspectRatio,
|
|
86
|
-
className = props.className,
|
|
87
|
-
height = props.height,
|
|
88
|
-
theme = props.theme,
|
|
89
|
-
variant = props.variant,
|
|
90
|
-
width = props.width,
|
|
91
|
-
color = props.color,
|
|
92
|
-
forwardedProps = _objectWithoutProperties(props, ["aspectRatio", "className", "height", "theme", "variant", "width", "color"]);
|
|
93
|
-
|
|
94
|
-
return React.createElement("div", _extends({
|
|
95
|
-
ref: ref
|
|
96
|
-
}, forwardedProps, {
|
|
97
|
-
className: classnames(className, handleBasicClasses({
|
|
98
|
-
prefix: CLASSNAME$1,
|
|
99
|
-
aspectRatio: aspectRatio,
|
|
100
|
-
height: aspectRatio ? undefined : height,
|
|
101
|
-
theme: theme,
|
|
102
|
-
variant: variant,
|
|
103
|
-
width: width,
|
|
104
|
-
color: color
|
|
105
|
-
}))
|
|
106
|
-
}), React.createElement("div", {
|
|
107
|
-
className: "".concat(CLASSNAME$1, "__inner")
|
|
108
|
-
}));
|
|
109
|
-
});
|
|
110
|
-
SkeletonRectangle.displayName = COMPONENT_NAME$1;
|
|
111
|
-
SkeletonRectangle.className = CLASSNAME$1;
|
|
112
|
-
SkeletonRectangle.defaultProps = DEFAULT_PROPS$1;
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Defines the props of the component.
|
|
116
|
-
*/
|
|
117
|
-
|
|
118
|
-
var DEFAULT_PROPS$2 = {
|
|
119
|
-
theme: Theme.light
|
|
120
|
-
};
|
|
121
|
-
/**
|
|
122
|
-
* Component display name.
|
|
123
|
-
*/
|
|
124
|
-
|
|
125
|
-
var COMPONENT_NAME$2 = 'SkeletonTypography';
|
|
126
|
-
/**
|
|
127
|
-
* Component default class name and class prefix.
|
|
128
|
-
*/
|
|
129
|
-
|
|
130
|
-
var CLASSNAME$2 = getRootClassName(COMPONENT_NAME$2);
|
|
131
|
-
/**
|
|
132
|
-
* SkeletonTypography component.
|
|
133
|
-
*
|
|
134
|
-
* @param props Component props.
|
|
135
|
-
* @param ref Component ref.
|
|
136
|
-
* @return React element.
|
|
137
|
-
*/
|
|
138
|
-
|
|
139
|
-
var SkeletonTypography = forwardRef(function (props, ref) {
|
|
140
|
-
var className = props.className,
|
|
141
|
-
theme = props.theme,
|
|
142
|
-
typography = props.typography,
|
|
143
|
-
width = props.width,
|
|
144
|
-
color = props.color,
|
|
145
|
-
forwardedProps = _objectWithoutProperties(props, ["className", "theme", "typography", "width", "color"]);
|
|
146
|
-
|
|
147
|
-
return React.createElement("div", _extends({
|
|
148
|
-
ref: ref
|
|
149
|
-
}, forwardedProps, {
|
|
150
|
-
className: classnames(className, handleBasicClasses({
|
|
151
|
-
prefix: CLASSNAME$2,
|
|
152
|
-
theme: theme,
|
|
153
|
-
typography: typography,
|
|
154
|
-
color: color
|
|
155
|
-
})),
|
|
156
|
-
style: _objectSpread2({}, forwardedProps.style, {
|
|
157
|
-
width: width
|
|
158
|
-
})
|
|
159
|
-
}), React.createElement("div", {
|
|
160
|
-
className: "".concat(CLASSNAME$2, "__inner")
|
|
161
|
-
}));
|
|
162
|
-
});
|
|
163
|
-
SkeletonTypography.displayName = COMPONENT_NAME$2;
|
|
164
|
-
SkeletonTypography.defaultProps = DEFAULT_PROPS$2;
|
|
165
|
-
SkeletonTypography.className = CLASSNAME$2;
|
|
166
|
-
|
|
167
|
-
export { SkeletonCircle as S, SkeletonRectangleVariant as a, SkeletonRectangle as b, SkeletonTypography as c };
|
|
168
|
-
//# sourceMappingURL=SkeletonTypography.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SkeletonTypography.js","sources":["../../../src/components/skeleton/SkeletonCircle.tsx","../../../src/components/skeleton/SkeletonRectangle.tsx","../../../src/components/skeleton/SkeletonTypography.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport React, { forwardRef } from 'react';\n\nimport { GlobalSize, Theme, ColorPalette } from '@lumx/react';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses, HasTheme } from '@lumx/react/utils';\n\n/**\n * Defines the props of the component.\n */\nexport interface SkeletonCircleProps extends GenericProps, HasTheme {\n /** Size variant. */\n size: GlobalSize;\n /** The color of the skeleton. */\n color?: ColorPalette;\n}\n\nconst DEFAULT_PROPS: Partial<SkeletonCircleProps> = {\n theme: Theme.light,\n};\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SkeletonCircle';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * SkeletonCircle component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SkeletonCircle: Comp<SkeletonCircleProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { className, size, color, theme, ...forwardedProps } = props;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, size, color, theme }))}\n />\n );\n});\nSkeletonCircle.displayName = COMPONENT_NAME;\nSkeletonCircle.defaultProps = DEFAULT_PROPS;\nSkeletonCircle.className = CLASSNAME;\n","import classNames from 'classnames';\nimport React, { forwardRef } from 'react';\n\nimport { AspectRatio, GlobalSize, Theme, ColorPalette } from '@lumx/react';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses, HasTheme, ValueOf } from '@lumx/react/utils';\n\n/**\n * Skeleton variants.\n */\nexport const SkeletonRectangleVariant = { squared: 'squared', rounded: 'rounded', pill: 'pill' } as const;\nexport type SkeletonRectangleVariant = ValueOf<typeof SkeletonRectangleVariant>;\n\n/**\n * Defines the props of the component.\n */\nexport interface SkeletonRectangleProps extends GenericProps, HasTheme {\n /** Aspect ratio (use with width and not height). */\n aspectRatio?: Extract<AspectRatio, 'square' | 'horizontal' | 'vertical' | 'wide'>;\n /** Height size. */\n height?: GlobalSize;\n /** Border variant. */\n variant?: SkeletonRectangleVariant;\n /** Width size. */\n width?: GlobalSize;\n /** The color of the skeleton. */\n color?: ColorPalette;\n}\n\nconst DEFAULT_PROPS: Partial<SkeletonRectangleProps> = {\n theme: Theme.light,\n variant: SkeletonRectangleVariant.squared,\n};\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SkeletonRectangle';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * SkeletonRectangle component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SkeletonRectangle: Comp<SkeletonRectangleProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { aspectRatio, className, height, theme, variant, width, color, ...forwardedProps } = props;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n aspectRatio,\n height: aspectRatio ? undefined : height,\n theme,\n variant,\n width,\n color,\n }),\n )}\n >\n <div className={`${CLASSNAME}__inner`} />\n </div>\n );\n});\nSkeletonRectangle.displayName = COMPONENT_NAME;\nSkeletonRectangle.className = CLASSNAME;\nSkeletonRectangle.defaultProps = DEFAULT_PROPS;\n","import classNames from 'classnames';\nimport React, { CSSProperties, forwardRef } from 'react';\n\nimport { Theme, TypographyInterface, ColorPalette } from '@lumx/react';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses, HasTheme } from '@lumx/react/utils';\n\n/**\n * Defines the props of the component.\n */\nexport interface SkeletonTypographyProps extends GenericProps, HasTheme {\n /** Typography variant. */\n typography: TypographyInterface;\n /** Width CSS property. */\n width?: CSSProperties['width'];\n /** The color of the skeleton. */\n color?: ColorPalette;\n}\n\nconst DEFAULT_PROPS: Partial<SkeletonTypographyProps> = {\n theme: Theme.light,\n};\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SkeletonTypography';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * SkeletonTypography component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SkeletonTypography: Comp<SkeletonTypographyProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { className, theme, typography, width, color, ...forwardedProps } = props;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, theme, typography, color }))}\n style={{ ...forwardedProps.style, width }}\n >\n <div className={`${CLASSNAME}__inner`} />\n </div>\n );\n});\nSkeletonTypography.displayName = COMPONENT_NAME;\nSkeletonTypography.defaultProps = DEFAULT_PROPS;\nSkeletonTypography.className = CLASSNAME;\n"],"names":["DEFAULT_PROPS","theme","Theme","light","COMPONENT_NAME","CLASSNAME","getRootClassName","SkeletonCircle","forwardRef","props","ref","className","size","color","forwardedProps","classNames","handleBasicClasses","prefix","displayName","defaultProps","SkeletonRectangleVariant","squared","rounded","pill","variant","SkeletonRectangle","aspectRatio","height","width","undefined","SkeletonTypography","typography","style"],"mappings":"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"}
|
package/esm/_internal/Slider2.js
DELETED
|
@@ -1,327 +0,0 @@
|
|
|
1
|
-
import { b as _objectWithoutProperties, c as _extends } from './_rollupPluginBabelHelpers.js';
|
|
2
|
-
import { Theme } from './components.js';
|
|
3
|
-
import React, { forwardRef, useMemo, useRef } from 'react';
|
|
4
|
-
import { g as getRootClassName, c as classnames, h as handleBasicClasses } from './getRootClassName.js';
|
|
5
|
-
import { u as uid } from '../index2.js';
|
|
6
|
-
import { I as InputHelper } from './InputHelper.js';
|
|
7
|
-
import { I as InputLabel } from './InputLabel.js';
|
|
8
|
-
|
|
9
|
-
var useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
|
|
10
|
-
/**
|
|
11
|
-
* https://github.com/facebook/react/issues/14099#issuecomment-440013892
|
|
12
|
-
*
|
|
13
|
-
* @param fn A function to run
|
|
14
|
-
* @return A React callback
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
function useEventCallback(fn) {
|
|
18
|
-
var ref = React.useRef(fn);
|
|
19
|
-
useEnhancedEffect(function () {
|
|
20
|
-
ref.current = fn;
|
|
21
|
-
});
|
|
22
|
-
return React.useCallback(function (event) {
|
|
23
|
-
return ref.current(event);
|
|
24
|
-
}, []);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Clamp value in range.
|
|
29
|
-
*
|
|
30
|
-
* @param value Value to clamp.
|
|
31
|
-
* @param min Minimum value.
|
|
32
|
-
* @param max Maximum value.
|
|
33
|
-
* @return Clamped value.
|
|
34
|
-
*/
|
|
35
|
-
var clamp = function clamp(value, min, max) {
|
|
36
|
-
if (value < min) {
|
|
37
|
-
return min;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (value > max) {
|
|
41
|
-
return max;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return value;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Defines the props of the component.
|
|
49
|
-
*/
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Component display name.
|
|
53
|
-
*/
|
|
54
|
-
var COMPONENT_NAME = 'Slider';
|
|
55
|
-
/**
|
|
56
|
-
* Component default class name and class prefix.
|
|
57
|
-
*/
|
|
58
|
-
|
|
59
|
-
var CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
60
|
-
/**
|
|
61
|
-
* Component default props.
|
|
62
|
-
*/
|
|
63
|
-
|
|
64
|
-
var DEFAULT_PROPS = {
|
|
65
|
-
precision: 0,
|
|
66
|
-
steps: 0,
|
|
67
|
-
theme: Theme.light
|
|
68
|
-
};
|
|
69
|
-
/**
|
|
70
|
-
* Convert a percent value to a value in range min - max.
|
|
71
|
-
*
|
|
72
|
-
* @param percent Value to convert.
|
|
73
|
-
* @param min Minimum value.
|
|
74
|
-
* @param max Maximum value.
|
|
75
|
-
* @param precision Precision.
|
|
76
|
-
* @return Value in range min - max
|
|
77
|
-
*/
|
|
78
|
-
|
|
79
|
-
var computeValueFromPercent = function computeValueFromPercent(percent, min, max) {
|
|
80
|
-
var precision = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
|
81
|
-
return Number((min + percent * (max - min)).toFixed(precision));
|
|
82
|
-
};
|
|
83
|
-
/**
|
|
84
|
-
* Convert a value in range min - max to a percent value.
|
|
85
|
-
*
|
|
86
|
-
* @param value Value to convert.
|
|
87
|
-
* @param min Minimum value.
|
|
88
|
-
* @param max Maximum value.
|
|
89
|
-
* @return Value in percent
|
|
90
|
-
*/
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
var computePercentFromValue = function computePercentFromValue(value, min, max) {
|
|
94
|
-
return Number((value - min) / (max - min));
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
* Slider component.
|
|
98
|
-
*
|
|
99
|
-
* @param props Component props.
|
|
100
|
-
* @param ref Component ref.
|
|
101
|
-
* @return React element.
|
|
102
|
-
*/
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
var Slider = forwardRef(function (props, ref) {
|
|
106
|
-
var className = props.className,
|
|
107
|
-
disabled = props.disabled,
|
|
108
|
-
helper = props.helper,
|
|
109
|
-
hideMinMaxLabel = props.hideMinMaxLabel,
|
|
110
|
-
id = props.id,
|
|
111
|
-
_props$isDisabled = props.isDisabled,
|
|
112
|
-
isDisabled = _props$isDisabled === void 0 ? disabled : _props$isDisabled,
|
|
113
|
-
label = props.label,
|
|
114
|
-
max = props.max,
|
|
115
|
-
min = props.min,
|
|
116
|
-
name = props.name,
|
|
117
|
-
onChange = props.onChange,
|
|
118
|
-
onMouseDown = props.onMouseDown,
|
|
119
|
-
precision = props.precision,
|
|
120
|
-
steps = props.steps,
|
|
121
|
-
theme = props.theme,
|
|
122
|
-
value = props.value,
|
|
123
|
-
forwardedProps = _objectWithoutProperties(props, ["className", "disabled", "helper", "hideMinMaxLabel", "id", "isDisabled", "label", "max", "min", "name", "onChange", "onMouseDown", "precision", "steps", "theme", "value"]);
|
|
124
|
-
|
|
125
|
-
var sliderId = useMemo(function () {
|
|
126
|
-
return id || "slider-".concat(uid());
|
|
127
|
-
}, [id]);
|
|
128
|
-
var sliderLabelId = useMemo(function () {
|
|
129
|
-
return "label-".concat(sliderId);
|
|
130
|
-
}, [sliderId]);
|
|
131
|
-
var sliderRef = useRef(null); // build a lookup array for the steps.
|
|
132
|
-
|
|
133
|
-
var availableSteps = useMemo(function () {
|
|
134
|
-
if (!steps) return [];
|
|
135
|
-
var available = [0];
|
|
136
|
-
var percentStep = 1 / ((max - min) / steps);
|
|
137
|
-
var ptr = 0;
|
|
138
|
-
|
|
139
|
-
while (ptr + percentStep < 1) {
|
|
140
|
-
ptr += percentStep;
|
|
141
|
-
available.push(ptr);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
return available;
|
|
145
|
-
}, [steps, min, max]);
|
|
146
|
-
/**
|
|
147
|
-
* Try to find the closest step to the current slider position.
|
|
148
|
-
*
|
|
149
|
-
* @param percentValue Reference value
|
|
150
|
-
* @return The closest step value
|
|
151
|
-
*/
|
|
152
|
-
|
|
153
|
-
var findClosestStep = function findClosestStep(percentValue) {
|
|
154
|
-
var closest = availableSteps.reduce(function (acc, step) {
|
|
155
|
-
var aDst = Math.abs(percentValue - step);
|
|
156
|
-
|
|
157
|
-
if (aDst < acc.dst) {
|
|
158
|
-
return {
|
|
159
|
-
dst: aDst,
|
|
160
|
-
val: step
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
return acc;
|
|
165
|
-
}, {
|
|
166
|
-
dst: Infinity,
|
|
167
|
-
val: -1
|
|
168
|
-
});
|
|
169
|
-
return closest.val;
|
|
170
|
-
};
|
|
171
|
-
/**
|
|
172
|
-
* Convert slider's handle position to percent.
|
|
173
|
-
*
|
|
174
|
-
* @param event The interaction event
|
|
175
|
-
* @param slider the slider element
|
|
176
|
-
* @return The computed percent value
|
|
177
|
-
*/
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
var getPercentValue = function getPercentValue(event, slider) {
|
|
181
|
-
var _slider$getBoundingCl = slider.getBoundingClientRect(),
|
|
182
|
-
width = _slider$getBoundingCl.width,
|
|
183
|
-
left = _slider$getBoundingCl.left;
|
|
184
|
-
|
|
185
|
-
var percent = (event.pageX - left - window.pageXOffset) / width;
|
|
186
|
-
percent = clamp(percent, 0, 1);
|
|
187
|
-
|
|
188
|
-
if (steps) {
|
|
189
|
-
percent = findClosestStep(percent);
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
return percent;
|
|
193
|
-
};
|
|
194
|
-
/**
|
|
195
|
-
* Register a handler for the mouse move event.
|
|
196
|
-
*/
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
var handleMove = useEventCallback(function (event) {
|
|
200
|
-
var slider = sliderRef.current;
|
|
201
|
-
if (!slider || !onChange) return;
|
|
202
|
-
var newValue = getPercentValue(event, slider);
|
|
203
|
-
onChange(computeValueFromPercent(newValue, min, max, precision), name, event);
|
|
204
|
-
});
|
|
205
|
-
/**
|
|
206
|
-
* Register a handler for the mouse up event.
|
|
207
|
-
* Clean a all listeners.
|
|
208
|
-
*/
|
|
209
|
-
|
|
210
|
-
var handleEnd = useEventCallback(function () {
|
|
211
|
-
document.body.removeEventListener('mousemove', handleMove);
|
|
212
|
-
document.body.removeEventListener('mouseup', handleEnd);
|
|
213
|
-
document.body.removeEventListener('touchmove', handleMove);
|
|
214
|
-
document.body.removeEventListener('touchend', handleEnd);
|
|
215
|
-
});
|
|
216
|
-
/**
|
|
217
|
-
* Move to the next or previous value (i.e. + or - 10%) or next step
|
|
218
|
-
* @param previous Should seek the previous value.
|
|
219
|
-
*/
|
|
220
|
-
|
|
221
|
-
var hopToValue = function hopToValue() {
|
|
222
|
-
var previous = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
223
|
-
var oldPercent = computePercentFromValue(value, min, max);
|
|
224
|
-
var percent = clamp(oldPercent + (previous ? -0.1 : 0.1), 0, 1);
|
|
225
|
-
|
|
226
|
-
if (steps) {
|
|
227
|
-
percent = oldPercent + availableSteps[1] * (previous ? -1 : 1);
|
|
228
|
-
percent = findClosestStep(percent);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
if (onChange) {
|
|
232
|
-
onChange(computeValueFromPercent(percent, min, max, precision), name);
|
|
233
|
-
}
|
|
234
|
-
};
|
|
235
|
-
/**
|
|
236
|
-
* Register a handler for keyboard interactions
|
|
237
|
-
*/
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
var handleKeyDown = useEventCallback(function (event) {
|
|
241
|
-
if (event.key === 'ArrowRight') {
|
|
242
|
-
hopToValue();
|
|
243
|
-
} else if (event.key === 'ArrowLeft') {
|
|
244
|
-
hopToValue(true);
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
/**
|
|
248
|
-
* Register a handler for the mouseDown event.
|
|
249
|
-
*/
|
|
250
|
-
|
|
251
|
-
var handleMouseDown = useEventCallback(function (event) {
|
|
252
|
-
onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(event);
|
|
253
|
-
var slider = sliderRef.current;
|
|
254
|
-
if (isDisabled || !slider) return;
|
|
255
|
-
var newValue = getPercentValue(event, slider);
|
|
256
|
-
|
|
257
|
-
if (onChange) {
|
|
258
|
-
onChange(computeValueFromPercent(newValue, min, max, precision), name, event);
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
document.body.addEventListener('mousemove', handleMove);
|
|
262
|
-
document.body.addEventListener('mouseup', handleEnd);
|
|
263
|
-
});
|
|
264
|
-
var percentString = "".concat(computePercentFromValue(value, min, max) * 100, "%");
|
|
265
|
-
return React.createElement("div", _extends({
|
|
266
|
-
ref: ref
|
|
267
|
-
}, forwardedProps, {
|
|
268
|
-
className: classnames(className, handleBasicClasses({
|
|
269
|
-
prefix: CLASSNAME,
|
|
270
|
-
theme: theme,
|
|
271
|
-
hasLabel: Boolean(label)
|
|
272
|
-
})),
|
|
273
|
-
onMouseDown: handleMouseDown,
|
|
274
|
-
"aria-disabled": isDisabled
|
|
275
|
-
}), label && React.createElement(InputLabel, {
|
|
276
|
-
id: sliderLabelId,
|
|
277
|
-
htmlFor: sliderId,
|
|
278
|
-
className: "".concat(CLASSNAME, "__label"),
|
|
279
|
-
theme: theme
|
|
280
|
-
}, label), helper && React.createElement(InputHelper, {
|
|
281
|
-
className: "".concat(CLASSNAME, "__helper"),
|
|
282
|
-
theme: theme
|
|
283
|
-
}, helper), React.createElement("div", {
|
|
284
|
-
className: "".concat(CLASSNAME, "__ui-wrapper")
|
|
285
|
-
}, !hideMinMaxLabel && React.createElement("span", {
|
|
286
|
-
className: "".concat(CLASSNAME, "__value-label ").concat(CLASSNAME, "__value-label--min")
|
|
287
|
-
}, min), React.createElement("div", {
|
|
288
|
-
className: "".concat(CLASSNAME, "__wrapper"),
|
|
289
|
-
ref: sliderRef
|
|
290
|
-
}, React.createElement("div", {
|
|
291
|
-
className: "".concat(CLASSNAME, "__track ").concat(CLASSNAME, "__track--background")
|
|
292
|
-
}), React.createElement("div", {
|
|
293
|
-
className: "".concat(CLASSNAME, "__track ").concat(CLASSNAME, "__track--active"),
|
|
294
|
-
style: {
|
|
295
|
-
width: percentString
|
|
296
|
-
}
|
|
297
|
-
}), steps ? React.createElement("div", {
|
|
298
|
-
className: "".concat(CLASSNAME, "__ticks")
|
|
299
|
-
}, availableSteps.map(function (step, idx) {
|
|
300
|
-
return React.createElement("div", {
|
|
301
|
-
key: "tick_".concat(idx),
|
|
302
|
-
className: "".concat(CLASSNAME, "__tick"),
|
|
303
|
-
style: {
|
|
304
|
-
left: "".concat(step * 100, "%")
|
|
305
|
-
}
|
|
306
|
-
});
|
|
307
|
-
})) : null, React.createElement("button", {
|
|
308
|
-
type: "button",
|
|
309
|
-
"aria-labelledby": sliderLabelId,
|
|
310
|
-
name: name,
|
|
311
|
-
id: sliderId,
|
|
312
|
-
className: "".concat(CLASSNAME, "__handle"),
|
|
313
|
-
style: {
|
|
314
|
-
left: percentString
|
|
315
|
-
},
|
|
316
|
-
onKeyDown: handleKeyDown,
|
|
317
|
-
disabled: isDisabled
|
|
318
|
-
})), !hideMinMaxLabel && React.createElement("span", {
|
|
319
|
-
className: "".concat(CLASSNAME, "__value-label ").concat(CLASSNAME, "__value-label--max")
|
|
320
|
-
}, max)));
|
|
321
|
-
});
|
|
322
|
-
Slider.displayName = COMPONENT_NAME;
|
|
323
|
-
Slider.className = CLASSNAME;
|
|
324
|
-
Slider.defaultProps = DEFAULT_PROPS;
|
|
325
|
-
|
|
326
|
-
export { Slider as S, clamp as c };
|
|
327
|
-
//# sourceMappingURL=Slider2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Slider2.js","sources":["../../../src/hooks/useEventCallback.tsx","../../../src/utils/clamp.ts","../../../src/components/slider/Slider.tsx"],"sourcesContent":["import React from 'react';\n\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @param fn A function to run\n * @return A React callback\n */\nexport default function useEventCallback(fn: (...args: any[]) => any): (event: any) => any {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useCallback((event: any) => ref.current(event), []);\n}\n","/**\n * Clamp value in range.\n *\n * @param value Value to clamp.\n * @param min Minimum value.\n * @param max Maximum value.\n * @return Clamped value.\n */\nexport const clamp = (value: number, min: number, max: number): number => {\n if (value < min) {\n return min;\n }\n if (value > max) {\n return max;\n }\n return value;\n};\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React, { forwardRef, SyntheticEvent, useMemo, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport { InputHelper, InputLabel, Theme } from '@lumx/react';\n\nimport useEventCallback from '@lumx/react/hooks/useEventCallback';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses, HasTheme } from '@lumx/react/utils';\n\nimport { uid } from 'uid';\nimport { clamp } from '@lumx/react/utils/clamp';\n\n/**\n * Defines the props of the component.\n */\nexport interface SliderProps extends GenericProps, HasTheme {\n /** Helper text. */\n helper?: string;\n /** Whether the min and max labels should be hidden or not. */\n hideMinMaxLabel?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Label text. */\n label?: string;\n /** Maximum value on the range. */\n max: number;\n /** Minimum value of the range. */\n min: number;\n /** Native input name property. */\n name?: string;\n /** Number of digits in the fractional part of the selected value. */\n precision?: number;\n /** Range step value. */\n steps?: number;\n /** Selected ranged value. */\n value: number;\n /** On change callback. */\n onChange(value: number, name?: string, event?: SyntheticEvent): void;\n /** On click callback. */\n onMouseDown?(event: React.SyntheticEvent): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Slider';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<SliderProps> = {\n precision: 0,\n steps: 0,\n theme: Theme.light,\n};\n\n/**\n * Convert a percent value to a value in range min - max.\n *\n * @param percent Value to convert.\n * @param min Minimum value.\n * @param max Maximum value.\n * @param precision Precision.\n * @return Value in range min - max\n */\nconst computeValueFromPercent = (percent: number, min: number, max: number, precision = 0): number =>\n Number((min + percent * (max - min)).toFixed(precision));\n\n/**\n * Convert a value in range min - max to a percent value.\n *\n * @param value Value to convert.\n * @param min Minimum value.\n * @param max Maximum value.\n * @return Value in percent\n */\nconst computePercentFromValue = (value: number, min: number, max: number): number =>\n Number((value - min) / (max - min));\n\n/**\n * Slider component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Slider: Comp<SliderProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n className,\n disabled,\n helper,\n hideMinMaxLabel,\n id,\n isDisabled = disabled,\n label,\n max,\n min,\n name,\n onChange,\n onMouseDown,\n precision,\n steps,\n theme,\n value,\n ...forwardedProps\n } = props;\n const sliderId = useMemo(() => id || `slider-${uid()}`, [id]);\n const sliderLabelId = useMemo(() => `label-${sliderId}`, [sliderId]);\n const sliderRef = useRef<HTMLDivElement>(null);\n\n // build a lookup array for the steps.\n const availableSteps = useMemo((): number[] => {\n if (!steps) return [];\n\n const available = [0];\n const percentStep = 1 / ((max - min) / steps);\n let ptr = 0;\n while (ptr + percentStep < 1) {\n ptr += percentStep;\n available.push(ptr);\n }\n return available;\n }, [steps, min, max]);\n\n /**\n * Try to find the closest step to the current slider position.\n *\n * @param percentValue Reference value\n * @return The closest step value\n */\n const findClosestStep = (percentValue: number): number => {\n const closest = availableSteps.reduce(\n (acc, step) => {\n const aDst = Math.abs(percentValue - step);\n if (aDst < acc.dst) {\n return { dst: aDst, val: step };\n }\n return acc;\n },\n { dst: Infinity, val: -1 },\n );\n return closest.val;\n };\n\n /**\n * Convert slider's handle position to percent.\n *\n * @param event The interaction event\n * @param slider the slider element\n * @return The computed percent value\n */\n const getPercentValue = (event: React.MouseEvent, slider: HTMLDivElement): number => {\n const { width, left } = slider.getBoundingClientRect();\n let percent = (event.pageX - left - window.pageXOffset) / width;\n percent = clamp(percent, 0, 1);\n if (steps) {\n percent = findClosestStep(percent);\n }\n return percent;\n };\n\n /**\n * Register a handler for the mouse move event.\n */\n const handleMove = useEventCallback((event: React.MouseEvent) => {\n const { current: slider } = sliderRef;\n if (!slider || !onChange) return;\n const newValue = getPercentValue(event, slider);\n onChange(computeValueFromPercent(newValue, min, max, precision), name, event);\n });\n\n /**\n * Register a handler for the mouse up event.\n * Clean a all listeners.\n */\n const handleEnd = useEventCallback(() => {\n document.body.removeEventListener('mousemove', handleMove);\n document.body.removeEventListener('mouseup', handleEnd);\n document.body.removeEventListener('touchmove', handleMove);\n document.body.removeEventListener('touchend', handleEnd);\n });\n\n /**\n * Move to the next or previous value (i.e. + or - 10%) or next step\n * @param previous Should seek the previous value.\n */\n const hopToValue = (previous = false) => {\n const oldPercent = computePercentFromValue(value, min, max);\n let percent = clamp(oldPercent + (previous ? -0.1 : 0.1), 0, 1);\n if (steps) {\n percent = oldPercent + availableSteps[1] * (previous ? -1 : 1);\n percent = findClosestStep(percent);\n }\n if (onChange) {\n onChange(computeValueFromPercent(percent, min, max, precision), name);\n }\n };\n\n /**\n * Register a handler for keyboard interactions\n */\n const handleKeyDown = useEventCallback((event: React.KeyboardEvent) => {\n if (event.key === 'ArrowRight') {\n hopToValue();\n } else if (event.key === 'ArrowLeft') {\n hopToValue(true);\n }\n });\n\n /**\n * Register a handler for the mouseDown event.\n */\n const handleMouseDown = useEventCallback((event: React.MouseEvent) => {\n onMouseDown?.(event);\n\n const { current: slider } = sliderRef;\n if (isDisabled || !slider) return;\n const newValue = getPercentValue(event, slider);\n if (onChange) {\n onChange(computeValueFromPercent(newValue, min, max, precision), name, event);\n }\n\n document.body.addEventListener('mousemove', handleMove);\n document.body.addEventListener('mouseup', handleEnd);\n });\n\n const percentString = `${computePercentFromValue(value, min, max) * 100}%`;\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({ prefix: CLASSNAME, theme, hasLabel: Boolean(label) }),\n )}\n onMouseDown={handleMouseDown}\n aria-disabled={isDisabled}\n >\n {label && (\n <InputLabel id={sliderLabelId} htmlFor={sliderId} className={`${CLASSNAME}__label`} theme={theme}>\n {label}\n </InputLabel>\n )}\n\n {helper && (\n <InputHelper className={`${CLASSNAME}__helper`} theme={theme}>\n {helper}\n </InputHelper>\n )}\n\n <div className={`${CLASSNAME}__ui-wrapper`}>\n {!hideMinMaxLabel && (\n <span className={`${CLASSNAME}__value-label ${CLASSNAME}__value-label--min`}>{min}</span>\n )}\n <div className={`${CLASSNAME}__wrapper`} ref={sliderRef}>\n <div className={`${CLASSNAME}__track ${CLASSNAME}__track--background`} />\n <div\n className={`${CLASSNAME}__track ${CLASSNAME}__track--active`}\n style={{ width: percentString }}\n />\n {steps ? (\n <div className={`${CLASSNAME}__ticks`}>\n {availableSteps.map((step, idx) => (\n <div\n key={`tick_${idx}`}\n className={`${CLASSNAME}__tick`}\n style={{ left: `${step * 100}%` }}\n />\n ))}\n </div>\n ) : null}\n <button\n type=\"button\"\n aria-labelledby={sliderLabelId}\n name={name}\n id={sliderId}\n className={`${CLASSNAME}__handle`}\n style={{ left: percentString }}\n onKeyDown={handleKeyDown}\n disabled={isDisabled}\n />\n </div>\n {!hideMinMaxLabel && (\n <span className={`${CLASSNAME}__value-label ${CLASSNAME}__value-label--max`}>{max}</span>\n )}\n </div>\n </div>\n );\n});\nSlider.displayName = COMPONENT_NAME;\nSlider.className = CLASSNAME;\nSlider.defaultProps = DEFAULT_PROPS;\n"],"names":["useEnhancedEffect","window","React","useLayoutEffect","useEffect","useEventCallback","fn","ref","useRef","current","useCallback","event","clamp","value","min","max","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","precision","steps","theme","Theme","light","computeValueFromPercent","percent","Number","toFixed","computePercentFromValue","Slider","forwardRef","props","className","disabled","helper","hideMinMaxLabel","id","isDisabled","label","name","onChange","onMouseDown","forwardedProps","sliderId","useMemo","uid","sliderLabelId","sliderRef","availableSteps","available","percentStep","ptr","push","findClosestStep","percentValue","closest","reduce","acc","step","aDst","Math","abs","dst","val","Infinity","getPercentValue","slider","getBoundingClientRect","width","left","pageX","pageXOffset","handleMove","newValue","handleEnd","document","body","removeEventListener","hopToValue","previous","oldPercent","handleKeyDown","key","handleMouseDown","addEventListener","percentString","classNames","handleBasicClasses","prefix","hasLabel","Boolean","map","idx","displayName","defaultProps"],"mappings":"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"}
|