@lumx/react 3.10.1-alpha.2 → 3.10.1-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_internal/{8d67e1e3.d.ts → index.d.ts} +1 -1
- package/_internal/index.js +99 -0
- package/_internal/index.js.map +1 -0
- package/index.d.ts +3000 -66
- package/index.js +14554 -64
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/src/components/button/Button.tsx +4 -5
- package/src/components/button/ButtonRoot.tsx +1 -3
- package/src/components/chip/Chip.tsx +6 -10
- package/src/components/dialog/Dialog.tsx +1 -1
- package/src/components/expansion-panel/ExpansionPanel.tsx +14 -18
- package/src/components/flex-box/FlexBox.tsx +1 -1
- package/src/components/generic-block/GenericBlock.tsx +6 -7
- package/src/components/generic-block/constants.ts +9 -4
- package/src/components/grid-column/GridColumn.tsx +1 -2
- package/src/components/link/Link.tsx +3 -5
- package/src/components/list/ListItem.tsx +1 -2
- package/src/components/list/useInteractiveList.tsx +1 -2
- package/src/components/mosaic/Mosaic.test.tsx +3 -3
- package/src/components/mosaic/Mosaic.tsx +2 -3
- package/src/components/navigation/Navigation.tsx +42 -37
- package/src/components/navigation/NavigationSection.tsx +76 -79
- package/src/components/notification/Notification.tsx +1 -5
- package/src/components/post-block/PostBlock.tsx +4 -8
- package/src/components/progress-tracker/ProgressTracker.stories.tsx +11 -11
- package/src/components/select/Select.stories.tsx +14 -5
- package/src/components/select/Select.tsx +1 -2
- package/src/components/select/SelectMultiple.stories.tsx +12 -10
- package/src/components/side-navigation/SideNavigationItem.tsx +1 -1
- package/src/components/slideshow/Slides.tsx +1 -1
- package/src/components/slideshow/SlideshowControls.tsx +1 -1
- package/src/components/switch/Switch.tsx +1 -2
- package/src/components/tabs/Tabs.stories.tsx +3 -4
- package/src/components/text-field/TextField.test.tsx +2 -2
- package/src/components/text-field/TextField.tsx +2 -3
- package/src/components/user-block/UserBlock.tsx +7 -9
- package/src/hooks/useClickAway.tsx +1 -2
- package/src/hooks/useInterval.tsx +1 -4
- package/src/hooks/useKeyboardListNavigation.tsx +2 -4
- package/src/hooks/useStopPropagation.ts +1 -2
- package/src/stories/decorators/withCombinations.tsx +1 -1
- package/src/testing/utils/commonTestsSuiteRTL.tsx +2 -2
- package/src/utils/collection/castArray.test.ts +15 -0
- package/src/utils/collection/castArray.ts +3 -0
- package/src/utils/collection/chunk.test.ts +15 -0
- package/src/utils/collection/chunk.ts +6 -0
- package/src/utils/collection/isEmpty.test.js +20 -0
- package/src/utils/collection/isEmpty.ts +4 -0
- package/src/utils/collection/last.ts +2 -0
- package/src/utils/collection/partitionMulti.test.ts +35 -0
- package/src/utils/{partitionMulti.ts → collection/partitionMulti.ts} +13 -12
- package/src/utils/collection/pull.test.ts +17 -0
- package/src/utils/collection/pull.ts +7 -0
- package/src/utils/collection/range.test.js +9 -0
- package/src/utils/collection/range.ts +2 -0
- package/src/utils/date/getMonthCalendar.ts +3 -4
- package/src/utils/flattenChildren.ts +2 -3
- package/src/utils/makeListenerTowerContext.ts +2 -2
- package/src/utils/react/forwardRef.ts +3 -2
- package/src/utils/react/forwardRefPolymorphic.ts +1 -2
- package/src/utils/utils.test.ts +0 -27
- package/utils/index.d.ts +1 -1
- package/utils/index.js +1 -96
- package/utils/index.js.map +1 -1
- package/_internal/17c3ea1d.js +0 -137
- package/_internal/17c3ea1d.js.map +0 -1
- package/_internal/1da25128.js +0 -411
- package/_internal/1da25128.js.map +0 -1
- package/_internal/230173a8.js +0 -13
- package/_internal/230173a8.js.map +0 -1
- package/_internal/23bdba2d.js +0 -71
- package/_internal/23bdba2d.js.map +0 -1
- package/_internal/26926e5c.d.ts +0 -36
- package/_internal/2a3d237c.js +0 -12
- package/_internal/2a3d237c.js.map +0 -1
- package/_internal/2c5dbb03.js +0 -26
- package/_internal/2c5dbb03.js.map +0 -1
- package/_internal/2e2abe51.js +0 -2154
- package/_internal/2e2abe51.js.map +0 -1
- package/_internal/31490c59.d.ts +0 -167
- package/_internal/3181f000.js +0 -14
- package/_internal/3181f000.js.map +0 -1
- package/_internal/35f100be.d.ts +0 -104
- package/_internal/36bd7352.js +0 -219
- package/_internal/36bd7352.js.map +0 -1
- package/_internal/3a1facc0.js +0 -18
- package/_internal/3a1facc0.js.map +0 -1
- package/_internal/4c20d932.js +0 -89
- package/_internal/4c20d932.js.map +0 -1
- package/_internal/4c28d012.js +0 -305
- package/_internal/4c28d012.js.map +0 -1
- package/_internal/4cd0bf32.js +0 -160
- package/_internal/4cd0bf32.js.map +0 -1
- package/_internal/4daccdd5.js +0 -25
- package/_internal/4daccdd5.js.map +0 -1
- package/_internal/524b1d04.js +0 -64
- package/_internal/524b1d04.js.map +0 -1
- package/_internal/53c94227.js +0 -123
- package/_internal/53c94227.js.map +0 -1
- package/_internal/54d9ded5.js +0 -418
- package/_internal/54d9ded5.js.map +0 -1
- package/_internal/56aec41b.js +0 -652
- package/_internal/56aec41b.js.map +0 -1
- package/_internal/5720caf5.js +0 -124
- package/_internal/5720caf5.js.map +0 -1
- package/_internal/646f0db6.js +0 -113
- package/_internal/646f0db6.js.map +0 -1
- package/_internal/6cc8dca8.d.ts +0 -22
- package/_internal/7f022f8c.d.ts +0 -34
- package/_internal/b8f2948d.js +0 -691
- package/_internal/b8f2948d.js.map +0 -1
- package/_internal/bc28d510.js +0 -784
- package/_internal/bc28d510.js.map +0 -1
- package/_internal/c68d24e4.js +0 -145
- package/_internal/c68d24e4.js.map +0 -1
- package/_internal/c6c99f76.js +0 -105
- package/_internal/c6c99f76.js.map +0 -1
- package/_internal/cae46566.js +0 -65
- package/_internal/cae46566.js.map +0 -1
- package/_internal/components/alert-dialog/index.ts-623b1ed3.d.ts +0 -37
- package/_internal/components/alert-dialog/index.ts-f83bd6ef.js +0 -148
- package/_internal/components/alert-dialog/index.ts-f83bd6ef.js.map +0 -1
- package/_internal/components/autocomplete/index.ts-3f8f125c.js +0 -264
- package/_internal/components/autocomplete/index.ts-3f8f125c.js.map +0 -1
- package/_internal/components/autocomplete/index.ts-8d6b123f.d.ts +0 -201
- package/_internal/components/avatar/index.ts-93ee0ea9.js +0 -89
- package/_internal/components/avatar/index.ts-93ee0ea9.js.map +0 -1
- package/_internal/components/avatar/index.ts-f92852b4.d.ts +0 -43
- package/_internal/components/badge/index.ts-2d7700ef.d.ts +0 -30
- package/_internal/components/badge/index.ts-6753d67f.js +0 -88
- package/_internal/components/badge/index.ts-6753d67f.js.map +0 -1
- package/_internal/components/button/index.ts-031307ce.js +0 -51
- package/_internal/components/button/index.ts-031307ce.js.map +0 -1
- package/_internal/components/button/index.ts-b29e26a4.d.ts +0 -22
- package/_internal/components/checkbox/index.ts-a33166d7.js +0 -127
- package/_internal/components/checkbox/index.ts-a33166d7.js.map +0 -1
- package/_internal/components/checkbox/index.ts-f82358ff.d.ts +0 -38
- package/_internal/components/chip/index.ts-4a91f1a7.d.ts +0 -68
- package/_internal/components/chip/index.ts-a2b5b771.js +0 -110
- package/_internal/components/chip/index.ts-a2b5b771.js.map +0 -1
- package/_internal/components/comment-block/index.ts-58fa051a.js +0 -121
- package/_internal/components/comment-block/index.ts-58fa051a.js.map +0 -1
- package/_internal/components/comment-block/index.ts-8cfa5af0.d.ts +0 -67
- package/_internal/components/date-picker/index.ts-145262d5.js +0 -2
- package/_internal/components/date-picker/index.ts-145262d5.js.map +0 -1
- package/_internal/components/date-picker/index.ts-70a34fa7.d.ts +0 -95
- package/_internal/components/dialog/index.ts-ea044db2.js +0 -224
- package/_internal/components/dialog/index.ts-ea044db2.js.map +0 -1
- package/_internal/components/dialog/index.ts-eca28654.d.ts +0 -55
- package/_internal/components/divider/index.ts-4a56db75.js +0 -55
- package/_internal/components/divider/index.ts-4a56db75.js.map +0 -1
- package/_internal/components/divider/index.ts-b011d8ca.d.ts +0 -18
- package/_internal/components/drag-handle/index.ts-0aebf92f.js +0 -54
- package/_internal/components/drag-handle/index.ts-0aebf92f.js.map +0 -1
- package/_internal/components/drag-handle/index.ts-3ab31dd1.d.ts +0 -18
- package/_internal/components/dropdown/index.ts-2a17db51.js +0 -154
- package/_internal/components/dropdown/index.ts-2a17db51.js.map +0 -1
- package/_internal/components/dropdown/index.ts-b648a15c.d.ts +0 -87
- package/_internal/components/expansion-panel/index.ts-69f09f5b.d.ts +0 -38
- package/_internal/components/expansion-panel/index.ts-fae3762e.js +0 -143
- package/_internal/components/expansion-panel/index.ts-fae3762e.js.map +0 -1
- package/_internal/components/flag/index.ts-8dcd685b.js +0 -56
- package/_internal/components/flag/index.ts-8dcd685b.js.map +0 -1
- package/_internal/components/flag/index.ts-fda89adb.d.ts +0 -23
- package/_internal/components/flex-box/index.ts-87f2b58d.d.ts +0 -43
- package/_internal/components/flex-box/index.ts-c216e957.js +0 -60
- package/_internal/components/flex-box/index.ts-c216e957.js.map +0 -1
- package/_internal/components/generic-block/index.ts-999a62a4.js +0 -115
- package/_internal/components/generic-block/index.ts-999a62a4.js.map +0 -1
- package/_internal/components/generic-block/index.ts-cd3b0e21.d.ts +0 -106
- package/_internal/components/grid/index.ts-67e0694f.d.ts +0 -50
- package/_internal/components/grid/index.ts-fdf1b306.js +0 -113
- package/_internal/components/grid/index.ts-fdf1b306.js.map +0 -1
- package/_internal/components/grid-column/index.ts-97c61cbe.js +0 -64
- package/_internal/components/grid-column/index.ts-97c61cbe.js.map +0 -1
- package/_internal/components/grid-column/index.ts-c89e1c18.d.ts +0 -31
- package/_internal/components/heading/index.ts-0179e9a9.js +0 -112
- package/_internal/components/heading/index.ts-0179e9a9.js.map +0 -1
- package/_internal/components/heading/index.ts-587579e8.d.ts +0 -37
- package/_internal/components/icon/index.ts-740ca1de.js +0 -2
- package/_internal/components/icon/index.ts-740ca1de.js.map +0 -1
- package/_internal/components/icon/index.ts-b3fa5e15.d.ts +0 -34
- package/_internal/components/image-block/index.ts-36b3828f.d.ts +0 -49
- package/_internal/components/image-block/index.ts-ef5e2e7d.js +0 -111
- package/_internal/components/image-block/index.ts-ef5e2e7d.js.map +0 -1
- package/_internal/components/image-lightbox/index.ts-137f85a8.js +0 -765
- package/_internal/components/image-lightbox/index.ts-137f85a8.js.map +0 -1
- package/_internal/components/image-lightbox/index.ts-2cb92d18.d.ts +0 -75
- package/_internal/components/inline-list/index.ts-033dd358.js +0 -76
- package/_internal/components/inline-list/index.ts-033dd358.js.map +0 -1
- package/_internal/components/inline-list/index.ts-e1c8a3ff.d.ts +0 -34
- package/_internal/components/input-helper/index.ts-32a9ca90.d.ts +0 -22
- package/_internal/components/input-helper/index.ts-ab3a1ef5.js +0 -75
- package/_internal/components/input-helper/index.ts-ab3a1ef5.js.map +0 -1
- package/_internal/components/input-label/index.ts-86f2ea41.d.ts +0 -24
- package/_internal/components/input-label/index.ts-d6ca5569.js +0 -60
- package/_internal/components/input-label/index.ts-d6ca5569.js.map +0 -1
- package/_internal/components/lightbox/index.ts-5370e8e6.d.ts +0 -36
- package/_internal/components/lightbox/index.ts-7a16cdc7.js +0 -149
- package/_internal/components/lightbox/index.ts-7a16cdc7.js.map +0 -1
- package/_internal/components/link/index.ts-26435006.d.ts +0 -37
- package/_internal/components/link/index.ts-d04f4e53.js +0 -120
- package/_internal/components/link/index.ts-d04f4e53.js.map +0 -1
- package/_internal/components/link-preview/index.ts-e560a274.d.ts +0 -36
- package/_internal/components/link-preview/index.ts-fee89f66.js +0 -109
- package/_internal/components/link-preview/index.ts-fee89f66.js.map +0 -1
- package/_internal/components/list/index.ts-ab57902e.d.ts +0 -118
- package/_internal/components/list/index.ts-f3101625.js +0 -86
- package/_internal/components/list/index.ts-f3101625.js.map +0 -1
- package/_internal/components/message/index.ts-041cf0cb.js +0 -97
- package/_internal/components/message/index.ts-041cf0cb.js.map +0 -1
- package/_internal/components/message/index.ts-2d38e0ea.d.ts +0 -37
- package/_internal/components/mosaic/index.ts-232d5aed.d.ts +0 -23
- package/_internal/components/mosaic/index.ts-d2128cd3.js +0 -94
- package/_internal/components/mosaic/index.ts-d2128cd3.js.map +0 -1
- package/_internal/components/navigation/index.ts-6d8bea53.d.ts +0 -58
- package/_internal/components/navigation/index.ts-e8dc0a7f.js +0 -222
- package/_internal/components/navigation/index.ts-e8dc0a7f.js.map +0 -1
- package/_internal/components/notification/index.ts-235fd340.js +0 -140
- package/_internal/components/notification/index.ts-235fd340.js.map +0 -1
- package/_internal/components/notification/index.ts-bb3f03f6.d.ts +0 -34
- package/_internal/components/popover/index.ts-2f17a9b6.js +0 -3
- package/_internal/components/popover/index.ts-2f17a9b6.js.map +0 -1
- package/_internal/components/popover/index.ts-e3b4ff19.d.ts +0 -66
- package/_internal/components/post-block/index.ts-0acb9bb4.js +0 -101
- package/_internal/components/post-block/index.ts-0acb9bb4.js.map +0 -1
- package/_internal/components/post-block/index.ts-9b8ff90b.d.ts +0 -41
- package/_internal/components/progress/index.ts-2a713859.js +0 -189
- package/_internal/components/progress/index.ts-2a713859.js.map +0 -1
- package/_internal/components/progress/index.ts-dfdfa5fb.d.ts +0 -60
- package/_internal/components/progress-tracker/index.ts-2649f756.js +0 -312
- package/_internal/components/progress-tracker/index.ts-2649f756.js.map +0 -1
- package/_internal/components/progress-tracker/index.ts-95320f32.d.ts +0 -101
- package/_internal/components/radio-button/index.ts-5eaab4cf.d.ts +0 -54
- package/_internal/components/radio-button/index.ts-b4dfb2a0.js +0 -150
- package/_internal/components/radio-button/index.ts-b4dfb2a0.js.map +0 -1
- package/_internal/components/select/index.ts-a65e3507.d.ts +0 -91
- package/_internal/components/select/index.ts-e8fad28b.js +0 -257
- package/_internal/components/select/index.ts-e8fad28b.js.map +0 -1
- package/_internal/components/side-navigation/index.ts-3f5f3785.d.ts +0 -60
- package/_internal/components/side-navigation/index.ts-c9a5fc3e.js +0 -184
- package/_internal/components/side-navigation/index.ts-c9a5fc3e.js.map +0 -1
- package/_internal/components/skeleton/index.ts-a7daefac.d.ts +0 -75
- package/_internal/components/skeleton/index.ts-ffc995af.js +0 -179
- package/_internal/components/skeleton/index.ts-ffc995af.js.map +0 -1
- package/_internal/components/slider/index.ts-24a0d598.d.ts +0 -52
- package/_internal/components/slider/index.ts-72aadf4c.js +0 -308
- package/_internal/components/slider/index.ts-72aadf4c.js.map +0 -1
- package/_internal/components/slideshow/index.ts-c99f2892.js +0 -151
- package/_internal/components/slideshow/index.ts-c99f2892.js.map +0 -1
- package/_internal/components/slideshow/index.ts-e49462c6.d.ts +0 -25
- package/_internal/components/switch/index.ts-207ba52b.d.ts +0 -34
- package/_internal/components/switch/index.ts-542e6eaf.js +0 -115
- package/_internal/components/switch/index.ts-542e6eaf.js.map +0 -1
- package/_internal/components/table/index.ts-905ce390.js +0 -310
- package/_internal/components/table/index.ts-905ce390.js.map +0 -1
- package/_internal/components/table/index.ts-c4f39b2d.d.ts +0 -108
- package/_internal/components/tabs/index.ts-713119f4.js +0 -289
- package/_internal/components/tabs/index.ts-713119f4.js.map +0 -1
- package/_internal/components/tabs/index.ts-dbfc48d9.d.ts +0 -106
- package/_internal/components/text/index.ts-6afbe8cd.js +0 -2
- package/_internal/components/text/index.ts-6afbe8cd.js.map +0 -1
- package/_internal/components/text/index.ts-8a812048.d.ts +0 -53
- package/_internal/components/text-field/index.ts-92e6b3b3.d.ts +0 -77
- package/_internal/components/text-field/index.ts-c3be8563.js +0 -341
- package/_internal/components/text-field/index.ts-c3be8563.js.map +0 -1
- package/_internal/components/thumbnail/index.ts-16d7b403.js +0 -40
- package/_internal/components/thumbnail/index.ts-16d7b403.js.map +0 -1
- package/_internal/components/thumbnail/index.ts-1b6c0b48.d.ts +0 -8
- package/_internal/components/toolbar/index.ts-813b902e.js +0 -63
- package/_internal/components/toolbar/index.ts-813b902e.js.map +0 -1
- package/_internal/components/toolbar/index.ts-9f5129d1.d.ts +0 -24
- package/_internal/components/tooltip/index.ts-905c847c.js +0 -322
- package/_internal/components/tooltip/index.ts-905c847c.js.map +0 -1
- package/_internal/components/tooltip/index.ts-c6931e9e.d.ts +0 -35
- package/_internal/components/uploader/index.ts-31f21c2a.js +0 -132
- package/_internal/components/uploader/index.ts-31f21c2a.js.map +0 -1
- package/_internal/components/uploader/index.ts-c3ccba98.d.ts +0 -51
- package/_internal/components/user-block/index.ts-18c58e19.d.ts +0 -50
- package/_internal/components/user-block/index.ts-d43e5f3c.js +0 -136
- package/_internal/components/user-block/index.ts-d43e5f3c.js.map +0 -1
- package/_internal/dc3e28c8.d.ts +0 -38
- package/_internal/f39a1ba4.js +0 -73
- package/_internal/f39a1ba4.js.map +0 -1
- package/_internal/f3e77e3e.js +0 -22
- package/_internal/f3e77e3e.js.map +0 -1
- package/_internal/f502ab30.js +0 -78
- package/_internal/f502ab30.js.map +0 -1
- package/_internal/f52adbae.js +0 -36
- package/_internal/f52adbae.js.map +0 -1
- package/_internal/f57e1239.js +0 -205
- package/_internal/f57e1239.js.map +0 -1
- package/_internal/f5ff1aa4.d.ts +0 -47
- package/_internal/fb975afe.js +0 -52
- package/_internal/fb975afe.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bc28d510.js","sources":["../../src/hooks/useKeyboardListNavigation.tsx","../../src/components/list/ListItem.tsx","../../../../node_modules/react-is/cjs/react-is.production.min.js","../../../../node_modules/react-is/cjs/react-is.development.js","../../../../node_modules/react-is/index.js","../../src/utils/flattenChildren.ts","../../src/components/list/useInteractiveList.tsx","../../src/components/list/List.tsx"],"sourcesContent":["import { RefObject, SetStateAction, useEffect, useState } from 'react';\n\nimport get from 'lodash/get';\n\ntype Listener = (evt: KeyboardEvent) => void;\n\ninterface UseKeyboardListNavigationType {\n /** the current active index */\n activeItemIndex: number;\n /** callback to be used when a key is pressed. usually used with the native prop `onKeyDown` */\n onKeyboardNavigation: Listener;\n /** Resets the active index to the initial state */\n resetActiveIndex(): void;\n /** Sets the active index to a given value */\n setActiveItemIndex(value: SetStateAction<number>): void;\n}\n\nexport type useKeyboardListNavigationType = <I>(\n items: I[],\n ref: RefObject<HTMLElement>,\n onListItemSelected: (itemSelected: I) => void,\n onListItemNavigated?: (itemSelected: I) => void,\n onEnterPressed?: (itemSelected: string) => void,\n onBackspacePressed?: Listener,\n keepFocusAfterSelection?: boolean,\n initialIndex?: number,\n preventTabOnEnteredValue?: boolean,\n) => UseKeyboardListNavigationType;\n\nconst INITIAL_INDEX = -1;\n\n/**\n * This custom hook provides the necessary set of functions and values to properly navigate\n * a list using the keyboard.\n *\n * @param items the list of items that will be navigated using the keyboard.\n * @param ref A reference to the element that is controlling the navigation.\n * @param onListItemSelected callback to be executed when the ENTER key is pressed on an item.\n * @param onListItemNavigated callback to be executed when the Arrow keys are pressed.\n * @param onEnterPressed callback to be executed when the ENTER key is pressed.\n * @param onBackspacePressed callback to be executed when the BACKSPACE key is pressed.\n * @param keepFocusAfterSelection determines whether after selecting an item, the focus should be maintained on the current target or not.\n * @param initialIndex where should the navigation start from. it defaults to `-1`, so the first item navigated is the item on position `0`.\n * @param preventTabOnEnteredValue determines whether upon TAB, if there is a value entered, the event is prevented or not.\n * @return useKeyboardListNavigation helpers.\n */\nexport const useKeyboardListNavigation: useKeyboardListNavigationType = (\n items,\n ref,\n onListItemSelected,\n onListItemNavigated,\n onEnterPressed,\n onBackspacePressed,\n keepFocusAfterSelection = false,\n initialIndex = INITIAL_INDEX,\n preventTabOnEnteredValue = true,\n) => {\n const [activeItemIndex, setActiveItemIndex] = useState(initialIndex);\n\n /**\n * This function calculates the next index in the list to be highlighted\n * @param key - key code pressed\n * @return next active index\n */\n const calculateActiveIndex = (key: string): number => {\n switch (key) {\n case 'ArrowDown':\n return activeItemIndex + 1 < items.length ? activeItemIndex + 1 : 0;\n case 'ArrowUp':\n return activeItemIndex - 1 >= 0 ? activeItemIndex - 1 : items.length - 1;\n default:\n return initialIndex;\n }\n };\n\n /**\n * Resets the active index to the initial state\n */\n const resetActiveIndex = () => {\n setActiveItemIndex(initialIndex);\n };\n\n /**\n * Prevents the default event and stops the propagation of said event\n * @param evt - key pressed event\n */\n const preventDefaultAndStopPropagation: Listener = (evt) => {\n evt.preventDefault();\n evt.stopPropagation();\n };\n\n /**\n * Handles navigation with the arrows using the keyboard\n * @param evt - key pressed event\n */\n const onArrowPressed: Listener = (evt) => {\n const { key } = evt;\n const nextActiveIndex = calculateActiveIndex(key);\n setActiveItemIndex(nextActiveIndex);\n preventDefaultAndStopPropagation(evt);\n if (onListItemNavigated) {\n const selectedItem = items[nextActiveIndex];\n onListItemNavigated(selectedItem);\n }\n };\n\n /**\n * Handles the event when the backspace key is pressed\n * @param evt - key pressed event\n */\n const onBackspaceKeyPressed: Listener = (evt) => {\n if (onBackspacePressed) {\n onBackspacePressed(evt);\n }\n };\n\n /**\n * Handles when the ENTER key is pressed\n * @param evt - key pressed event\n */\n const onEnterKeyPressed: Listener = (evt) => {\n if (!onListItemSelected) {\n return;\n }\n\n preventDefaultAndStopPropagation(evt);\n\n if (!keepFocusAfterSelection) {\n (evt.currentTarget as HTMLElement).blur();\n }\n\n const selectedItem = items[activeItemIndex];\n\n if (selectedItem) {\n onListItemSelected(selectedItem);\n resetActiveIndex();\n } else if (activeItemIndex === initialIndex && onEnterPressed) {\n const value = get(evt, 'target.value');\n onEnterPressed(value);\n resetActiveIndex();\n }\n };\n\n /**\n * Handles when the TAB key is pressed\n * @param evt - key pressed event\n */\n const onTabKeyPressed: Listener = (evt) => {\n const value = get(evt, 'target.value');\n\n if (preventTabOnEnteredValue && value && value.length > 0) {\n preventDefaultAndStopPropagation(evt);\n }\n };\n\n /**\n * In order to make it easier in the future to add new events depending on the key\n * a map was created to add these handlers. In the future, if there is another event\n * that we need to manage depending on a specific key, we just need to add the key code\n * here, and as a value, the handler for said key.\n */\n const eventsForKeyPressed: Record<string, Listener> = {\n ArrowDown: onArrowPressed,\n Tab: onTabKeyPressed,\n ArrowUp: onArrowPressed,\n Enter: onEnterKeyPressed,\n Backspace: onBackspaceKeyPressed,\n };\n\n /**\n * Calculates the next active item index depending on the key pressed.\n * If the key pressed was ENTER, the function executes the callback `onListItemSelected`\n * and resets the active index, since an item was selected.\n * @param evt - key pressed or key down event\n */\n const onKeyboardNavigation: Listener = (evt) => {\n const { key } = evt;\n const handler = eventsForKeyPressed[key];\n\n if (handler) {\n handler(evt);\n }\n };\n\n useEffect(() => {\n const { current: currentElement } = ref;\n if (!currentElement) {\n return undefined;\n }\n currentElement.addEventListener('focus', resetActiveIndex);\n currentElement.addEventListener('keydown', onKeyboardNavigation);\n return () => {\n currentElement.removeEventListener('focus', resetActiveIndex);\n currentElement.removeEventListener('keydown', onKeyboardNavigation);\n };\n });\n\n return {\n activeItemIndex,\n onKeyboardNavigation,\n resetActiveIndex,\n setActiveItemIndex,\n };\n};\n","import React, { ReactNode, Ref, SyntheticEvent, useMemo } from 'react';\n\nimport classNames from 'classnames';\nimport isEmpty from 'lodash/isEmpty';\n\nimport { ListProps, Size } from '@lumx/react';\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { onEnterPressed, onButtonPressed } from '@lumx/react/utils/event';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport { renderLink } from '@lumx/react/utils/renderLink';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nexport type ListItemSize = Extract<Size, 'tiny' | 'regular' | 'big' | 'huge'>;\n\n/**\n * Defines the props of the component.\n */\nexport interface ListItemProps extends GenericProps {\n /** A component to be rendered after the content. */\n after?: ReactNode;\n /** A component to be rendered before the content. */\n before?: ReactNode;\n /** Content. */\n children: string | ReactNode;\n /** Whether the list item should be highlighted or not. */\n isHighlighted?: boolean;\n /** Whether the component is selected or not. */\n isSelected?: boolean;\n /** Whether link/button is disabled or not. */\n isDisabled?: boolean;\n /** Reference to the <li> element. */\n listItemRef?: Ref<HTMLLIElement>;\n /** Custom react component for the link (can be used to inject react router Link). */\n linkAs?: 'a' | any;\n /** Props that will be passed on to the Link */\n linkProps?: React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;\n /** Reference to the link element. */\n linkRef?: Ref<HTMLAnchorElement>;\n /** Size variant. */\n size?: ListItemSize;\n\n /** On selected callback. */\n onItemSelected?(evt: SyntheticEvent): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ListItem';\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<ListProps> = {\n size: Size.regular,\n};\n\n/**\n * Check if the list item is clickable.\n * @return `true` if the list item is clickable; `false` otherwise.\n */\nexport function isClickable({ linkProps, onItemSelected }: Partial<ListItemProps>): boolean {\n return !isEmpty(linkProps?.href) || !!onItemSelected;\n}\n\n/**\n * ListItem component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ListItem = forwardRef<ListItemProps, HTMLLIElement>((props, ref) => {\n const {\n after,\n before,\n children,\n className,\n isHighlighted,\n isSelected,\n isDisabled,\n linkAs,\n linkProps = {},\n linkRef,\n onItemSelected,\n size,\n ...forwardedProps\n } = props;\n\n const role = linkAs || linkProps.href ? 'link' : 'button';\n const onKeyDown = useMemo(() => {\n if (onItemSelected && role === 'link') return onEnterPressed(onItemSelected as any);\n if (onItemSelected && role === 'button') return onButtonPressed(onItemSelected as any);\n return undefined;\n }, [role, onItemSelected]);\n\n const content = (\n <>\n {before && <div className={`${CLASSNAME}__before`}>{before}</div>}\n <div className={`${CLASSNAME}__content`}>{children}</div>\n {after && <div className={`${CLASSNAME}__after`}>{after}</div>}\n </>\n );\n\n return (\n <li\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n size,\n }),\n )}\n >\n {isClickable({ linkProps, onItemSelected }) ? (\n /* Clickable list item */\n renderLink(\n {\n linkAs,\n tabIndex: !isDisabled && role === 'button' ? 0 : undefined,\n role,\n 'aria-disabled': isDisabled,\n ...linkProps,\n href: isDisabled ? undefined : linkProps.href,\n className: classNames(\n handleBasicClasses({\n prefix: `${CLASSNAME}__link`,\n isHighlighted,\n isSelected,\n isDisabled,\n }),\n ),\n onClick: isDisabled ? undefined : onItemSelected,\n onKeyDown,\n ref: linkRef,\n },\n content,\n )\n ) : (\n /* Non clickable list item */\n <div className={`${CLASSNAME}__wrapper`}>{content}</div>\n )}\n </li>\n );\n});\nListItem.displayName = COMPONENT_NAME;\nListItem.className = CLASSNAME;\nListItem.defaultProps = DEFAULT_PROPS;\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import get from 'lodash/get';\nimport { Children, Key, ReactChild, ReactNode, cloneElement, isValidElement } from 'react';\nimport { isFragment } from 'react-is';\n\n/**\n * Flatten list of react nodes removing fragments and adding keys.\n * based on: https://github.com/grrowl/react-keyed-flatten-children/blob/5d421644a449765ddd62b659946196b4b5d7b135/index.ts\n *\n * @param children React nodes to flatten.\n * @return Flattened react nodes.\n * @deprecated This function was used to develop keyboard navigation in the List component,\n * but we will replace this with a better method that does not require to hack the children inspection\n *\n * TODO: remove List keyboard navigation once we have provided alternative component (Menu, Combobox, etc.),\n * remove this function and then remove react-is from the dependencies\n */\nexport function flattenChildren(children: ReactNode) {\n function recur(nodes: ReactNode, keys: Key[] = []) {\n return Children.toArray(nodes).reduce((acc: ReactChild[], node, index) => {\n const nodeKeys = keys.concat(get(node, 'key') ?? index);\n if (isFragment(node)) {\n acc.push(...recur(node.props.children, nodeKeys));\n } else if (isValidElement(node)) {\n acc.push(cloneElement(node, { key: nodeKeys.join('.') }));\n } else if (typeof node === 'string' || typeof node === 'number') {\n acc.push(node);\n }\n return acc;\n }, []);\n }\n return recur(children);\n}\n","import { ListItemProps } from '@lumx/react';\nimport { isClickable } from '@lumx/react/components/list/ListItem';\n\nimport { isComponent } from '@lumx/react/utils/type';\nimport { flattenChildren } from '@lumx/react/utils/flattenChildren';\nimport { mergeRefs } from '@lumx/react/utils/mergeRefs';\nimport get from 'lodash/get';\nimport {\n cloneElement,\n Key,\n ReactElement,\n ReactNode,\n RefObject,\n SyntheticEvent,\n useEffect,\n useMemo,\n useState,\n} from 'react';\n\ntype Listener = (evt: KeyboardEvent) => void;\n\ninterface Options {\n /** List of items to navigate on. */\n items: ReactNode[] | ReactNode;\n /** Reference to the list-like element controlling the navigation. */\n ref: RefObject<HTMLElement>;\n\n /**\n * On list item navigated callback (triggered on ARROW key navigation).\n *\n * @param index Index of the navigated item among the sibling items.\n * @param key React key of the navigated item.\n */\n onListItemNavigated?(index: number, key: Key | null): void;\n\n /**\n * On list item selected callback (via ENTER key or click).\n *\n * @param index Index of the selected item among the sibling items.\n * @param key React key of the selected item.\n * @param evt Source event (either mouse or keyboard event).\n */\n onListItemSelected?(index: number, key: Key | null, evt: SyntheticEvent): void;\n}\n\ninterface Output {\n /** List of items transformed to accommodate keyboard navigation. */\n items: ReactNode[];\n /** Whether the list contains clickable items or not. */\n hasClickableItem: boolean;\n}\n\nexport type useInteractiveList = (options: Options) => Output;\n\nconst INITIAL_INDEX = -1;\n\nfunction onKeyboardFocus(props: any, handler: (evt: FocusEvent) => void) {\n let isMouseDown = false;\n return {\n onFocus(evt: FocusEvent) {\n props.onFocus?.(evt);\n if (!isMouseDown) {\n handler(evt);\n }\n },\n onMouseDown(evt: MouseEvent) {\n props.onMouseDown?.(evt);\n isMouseDown = true;\n },\n onMouseUp(evt: MouseEvent) {\n props.onMouseUp?.(evt);\n isMouseDown = false;\n },\n };\n}\n\nconst isNavigableItem = (node: ReactNode): node is ReactElement => {\n return isComponent('ListItem')(node) && isClickable(node.props) && !node.props.isDisabled;\n};\n\n/**\n * This custom hook detects clickable list item in a list and make them navigable with the keyboard.\n *\n * @param options See {@link Options}\n * @return See {@link Output}\n */\nexport const useInteractiveList: useInteractiveList = (options) => {\n const { ref, onListItemSelected, onListItemNavigated } = options;\n const items = useMemo(() => flattenChildren(options.items), [options.items]);\n const [activeItemIndex, setActiveItemIndex] = useState(INITIAL_INDEX);\n\n // Attach listeners to the list.\n useEffect(() => {\n const { current: listElement } = ref;\n if (!listElement) {\n return undefined;\n }\n\n /**\n * This function calculates the next index in the list to be active\n * @param index current index\n * @param code key code pressed\n * @return next index\n */\n const getNextIndex = (index: number, key: string): number => {\n switch (key) {\n case 'ArrowDown':\n return index + 1 < items.length ? index + 1 : 0;\n case 'ArrowUp':\n return index - 1 >= 0 ? index - 1 : items.length - 1;\n default:\n return INITIAL_INDEX;\n }\n };\n\n /**\n * Resets the active index to the initial state\n */\n const resetActiveIndex = () => {\n setActiveItemIndex(INITIAL_INDEX);\n };\n\n /**\n * Handles navigation with the arrows using the keyboard\n * @param evt Key event\n */\n const onArrowPressed: Listener = (evt) => {\n const { key } = evt;\n if (key !== 'ArrowUp' && key !== 'ArrowDown') {\n return;\n }\n\n let nextIndex = activeItemIndex;\n let iterations = 0;\n\n // Move to next navigable item.\n do {\n nextIndex = getNextIndex(nextIndex, key);\n iterations += 1;\n } while (\n nextIndex !== INITIAL_INDEX &&\n nextIndex !== activeItemIndex &&\n !isNavigableItem(items[nextIndex] as any) &&\n iterations < items.length\n );\n\n setActiveItemIndex(nextIndex);\n evt.preventDefault();\n evt.stopPropagation();\n onListItemNavigated?.(nextIndex, get(items, [nextIndex, 'key']));\n };\n\n /**\n * Reset active list item index when focusing outside the list.\n * @param evt Focus out event\n */\n const onFocusOut = (evt: FocusEvent) => {\n if (!evt.relatedTarget || !listElement.contains(evt.relatedTarget as any)) {\n resetActiveIndex();\n }\n };\n\n listElement.addEventListener('focusout', onFocusOut);\n listElement.addEventListener('keydown', onArrowPressed);\n return () => {\n listElement.removeEventListener('focusout', onFocusOut);\n listElement.removeEventListener('keydown', onArrowPressed);\n };\n }, [ref, activeItemIndex, items, onListItemNavigated]);\n\n return useMemo(() => {\n let hasClickableItem = false;\n const transformedItems = items.map((item, index) => {\n // Ignore if list not clickable or item is not a simple list item.\n if (!isNavigableItem(item)) {\n return item;\n }\n\n hasClickableItem = true;\n const isHighlighted = index === activeItemIndex;\n\n // Clone list item: inject ref, add tab index and active state.\n return cloneElement<ListItemProps>(item, {\n ...item.props,\n isHighlighted: item.props.isHighlighted ?? isHighlighted,\n linkRef: mergeRefs(item.props.linkRef, (element: any) => {\n if (isHighlighted) {\n element?.focus();\n }\n }),\n onItemSelected(evt) {\n item.props.onItemSelected?.();\n onListItemSelected?.(index, item.key, evt);\n },\n ...onKeyboardFocus(item.props, () => {\n setActiveItemIndex(index);\n }),\n });\n });\n return { items: transformedItems, hasClickableItem };\n }, [items, activeItemIndex, onListItemSelected]);\n};\n","import React, { Key, ReactNode, SyntheticEvent, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Size } from '@lumx/react';\nimport { useKeyboardListNavigation } from '@lumx/react/hooks/useKeyboardListNavigation';\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport { mergeRefs } from '@lumx/react/utils/mergeRefs';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { useInteractiveList } from './useInteractiveList';\n\n/**\n * Defines the props of the component.\n */\nexport interface ListProps extends GenericProps {\n /** List content (should be ListItem, ListSubheader or ListDivider). */\n children: ReactNode;\n /**\n * Whether the list items are clickable.\n * @deprecated not needed anymore.\n */\n isClickable?: boolean;\n /** Item padding size. */\n itemPadding?: Extract<Size, 'big' | 'huge'>;\n /** Tab index of the list. Default to -1 */\n tabIndex?: number;\n /**\n * On list item selected callback.\n *\n * @param key React key of the selected item.\n * @param index Index of the selected item among the sibling items.\n * @param evt Source event (either mouse or keyboard event).\n */\n onListItemSelected?(key: Key, index: number, evt: SyntheticEvent): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'List';\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<ListProps> = {\n tabIndex: -1,\n};\n\n/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n/**\n * List component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nconst InternalList = forwardRef<ListProps, HTMLUListElement>((props, ref) => {\n const { children, className, isClickable, itemPadding, onListItemSelected, tabIndex, ...forwardedProps } = props;\n const listElementRef = useRef<HTMLUListElement>(null);\n\n const { items, hasClickableItem } = useInteractiveList({\n items: children,\n ref: listElementRef,\n onListItemSelected,\n });\n const clickable = hasClickableItem || isClickable;\n\n return (\n <ul\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n itemPadding: itemPadding ?? (clickable ? Size.big : undefined),\n }),\n )}\n tabIndex={tabIndex}\n ref={mergeRefs(ref, listElementRef)}\n >\n {items}\n </ul>\n );\n});\nInternalList.displayName = COMPONENT_NAME;\nInternalList.className = CLASSNAME;\nInternalList.defaultProps = DEFAULT_PROPS;\n\nexport const List = Object.assign(InternalList, { useKeyboardListNavigation });\n"],"names":["INITIAL_INDEX","useKeyboardListNavigation","items","ref","onListItemSelected","onListItemNavigated","onEnterPressed","onBackspacePressed","keepFocusAfterSelection","arguments","length","undefined","initialIndex","preventTabOnEnteredValue","activeItemIndex","setActiveItemIndex","useState","calculateActiveIndex","key","resetActiveIndex","preventDefaultAndStopPropagation","evt","preventDefault","stopPropagation","onArrowPressed","nextActiveIndex","selectedItem","onBackspaceKeyPressed","onEnterKeyPressed","currentTarget","blur","value","get","onTabKeyPressed","eventsForKeyPressed","ArrowDown","Tab","ArrowUp","Enter","Backspace","onKeyboardNavigation","handler","useEffect","current","currentElement","addEventListener","removeEventListener","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","size","Size","regular","isClickable","_ref","linkProps","onItemSelected","isEmpty","href","ListItem","forwardRef","props","after","before","children","className","isHighlighted","isSelected","isDisabled","linkAs","linkRef","forwardedProps","_objectWithoutProperties","_excluded","role","onKeyDown","useMemo","onButtonPressed","content","React","createElement","Fragment","_extends","classNames","handleBasicClasses","prefix","renderLink","_objectSpread","tabIndex","onClick","displayName","defaultProps","reactIsModule","require$$0","require$$1","flattenChildren","recur","nodes","keys","Children","toArray","reduce","acc","node","index","_get","nodeKeys","concat","isFragment","push","isValidElement","cloneElement","join","onKeyboardFocus","isMouseDown","onFocus","_props$onFocus","call","onMouseDown","_props$onMouseDown","onMouseUp","_props$onMouseUp","isNavigableItem","isComponent","useInteractiveList","options","listElement","getNextIndex","nextIndex","iterations","onFocusOut","relatedTarget","contains","hasClickableItem","transformedItems","map","item","_item$props$isHighlig","mergeRefs","element","focus","_item$props$onItemSel","_item$props","InternalList","itemPadding","listElementRef","useRef","clickable","big","List","Object","assign"],"mappings":"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","x_google_ignoreList":[2,3,4]}
|
package/_internal/c68d24e4.js
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { h as getRootClassName, S as Size, i as forwardRef, T as Theme, j as _objectWithoutProperties, C as ColorPalette, _ as _extends, g as classNames } from './1da25128.js';
|
|
2
|
-
import React__default, { useCallback } from 'react';
|
|
3
|
-
import isFunction from 'lodash/isFunction';
|
|
4
|
-
import { h as handleBasicClasses, o as onEnterPressed } from './f57e1239.js';
|
|
5
|
-
import { u as useTheme } from './3181f000.js';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Wrap mouse event handler to stop event propagation.
|
|
9
|
-
*
|
|
10
|
-
* @param handler The mouse handler to wrap.
|
|
11
|
-
* @return Mouse handler stopping propagation.
|
|
12
|
-
*/
|
|
13
|
-
function useStopPropagation(handler) {
|
|
14
|
-
return useCallback(evt => {
|
|
15
|
-
if (!evt || !isFunction(handler)) {
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
handler(evt);
|
|
19
|
-
evt.stopPropagation();
|
|
20
|
-
}, [handler]);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const _excluded = ["after", "before", "children", "className", "color", "disabled", "isClickable", "isDisabled", "isHighlighted", "isSelected", "onAfterClick", "onBeforeClick", "onClick", "size", "theme", "href", "onKeyDown"];
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Chip sizes.
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Defines the props of the component.
|
|
31
|
-
*/
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Component display name.
|
|
35
|
-
*/
|
|
36
|
-
const COMPONENT_NAME = 'Chip';
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Component default class name and class prefix.
|
|
40
|
-
*/
|
|
41
|
-
const CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Component default props.
|
|
45
|
-
*/
|
|
46
|
-
const DEFAULT_PROPS = {
|
|
47
|
-
size: Size.m
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Chip component.
|
|
52
|
-
*
|
|
53
|
-
* @param props Component props.
|
|
54
|
-
* @param ref Component ref.
|
|
55
|
-
* @return React element.
|
|
56
|
-
*/
|
|
57
|
-
const Chip = forwardRef((props, ref) => {
|
|
58
|
-
const defaultTheme = useTheme() || Theme.light;
|
|
59
|
-
const {
|
|
60
|
-
after,
|
|
61
|
-
before,
|
|
62
|
-
children,
|
|
63
|
-
className,
|
|
64
|
-
color,
|
|
65
|
-
disabled,
|
|
66
|
-
isClickable: propIsClickable,
|
|
67
|
-
isDisabled = disabled,
|
|
68
|
-
isHighlighted,
|
|
69
|
-
isSelected,
|
|
70
|
-
onAfterClick,
|
|
71
|
-
onBeforeClick,
|
|
72
|
-
onClick,
|
|
73
|
-
size,
|
|
74
|
-
theme = defaultTheme,
|
|
75
|
-
href,
|
|
76
|
-
onKeyDown
|
|
77
|
-
} = props,
|
|
78
|
-
forwardedProps = _objectWithoutProperties(props, _excluded);
|
|
79
|
-
const hasAfterClick = isFunction(onAfterClick);
|
|
80
|
-
const hasBeforeClick = isFunction(onBeforeClick);
|
|
81
|
-
const hasOnClick = isFunction(onClick);
|
|
82
|
-
const isButton = hasOnClick && !href;
|
|
83
|
-
const isClickable = Boolean(hasOnClick) || Boolean(href) || propIsClickable;
|
|
84
|
-
|
|
85
|
-
// Adapt color to the theme.
|
|
86
|
-
const chipColor = color || (theme === Theme.light ? ColorPalette.dark : ColorPalette.light);
|
|
87
|
-
const handleOnBeforeClick = useStopPropagation(onBeforeClick);
|
|
88
|
-
const handleOnAfterClick = useStopPropagation(onAfterClick);
|
|
89
|
-
const handleKeyDown = evt => {
|
|
90
|
-
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(evt);
|
|
91
|
-
if (hasOnClick) {
|
|
92
|
-
onEnterPressed(onClick)(evt);
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
return (
|
|
96
|
-
/*#__PURE__*/
|
|
97
|
-
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
98
|
-
React__default.createElement("a", _extends({
|
|
99
|
-
role: isButton ? 'button' : undefined,
|
|
100
|
-
tabIndex: isClickable ? 0 : undefined
|
|
101
|
-
}, forwardedProps, {
|
|
102
|
-
href: href,
|
|
103
|
-
ref: ref,
|
|
104
|
-
className: classNames(className, handleBasicClasses({
|
|
105
|
-
clickable: isClickable,
|
|
106
|
-
color: chipColor,
|
|
107
|
-
isDisabled,
|
|
108
|
-
hasAfter: Boolean(after),
|
|
109
|
-
hasBefore: Boolean(before),
|
|
110
|
-
highlighted: Boolean(isHighlighted),
|
|
111
|
-
prefix: CLASSNAME,
|
|
112
|
-
selected: Boolean(isSelected),
|
|
113
|
-
size,
|
|
114
|
-
unselected: Boolean(!isSelected)
|
|
115
|
-
})),
|
|
116
|
-
"aria-disabled": isClickable && isDisabled || undefined,
|
|
117
|
-
onClick: hasOnClick ? onClick : undefined,
|
|
118
|
-
onKeyDown: handleKeyDown
|
|
119
|
-
}), before &&
|
|
120
|
-
/*#__PURE__*/
|
|
121
|
-
// eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
|
|
122
|
-
React__default.createElement("div", {
|
|
123
|
-
className: classNames(`${CLASSNAME}__before`, {
|
|
124
|
-
[`${CLASSNAME}__before--is-clickable`]: hasBeforeClick
|
|
125
|
-
}),
|
|
126
|
-
onClick: handleOnBeforeClick
|
|
127
|
-
}, before), /*#__PURE__*/React__default.createElement("div", {
|
|
128
|
-
className: `${CLASSNAME}__label`
|
|
129
|
-
}, children), after &&
|
|
130
|
-
/*#__PURE__*/
|
|
131
|
-
// eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
|
|
132
|
-
React__default.createElement("div", {
|
|
133
|
-
className: classNames(`${CLASSNAME}__after`, {
|
|
134
|
-
[`${CLASSNAME}__after--is-clickable`]: hasAfterClick
|
|
135
|
-
}),
|
|
136
|
-
onClick: handleOnAfterClick
|
|
137
|
-
}, after))
|
|
138
|
-
);
|
|
139
|
-
});
|
|
140
|
-
Chip.displayName = COMPONENT_NAME;
|
|
141
|
-
Chip.className = CLASSNAME;
|
|
142
|
-
Chip.defaultProps = DEFAULT_PROPS;
|
|
143
|
-
|
|
144
|
-
export { Chip as C };
|
|
145
|
-
//# sourceMappingURL=c68d24e4.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"c68d24e4.js","sources":["../../src/hooks/useStopPropagation.ts","../../src/components/chip/Chip.tsx"],"sourcesContent":["import isFunction from 'lodash/isFunction';\nimport { MouseEventHandler, useCallback } from 'react';\n\n/**\n * Wrap mouse event handler to stop event propagation.\n *\n * @param handler The mouse handler to wrap.\n * @return Mouse handler stopping propagation.\n */\nexport function useStopPropagation(handler?: MouseEventHandler): MouseEventHandler {\n return useCallback(\n (evt) => {\n if (!evt || !isFunction(handler)) {\n return;\n }\n handler(evt);\n evt.stopPropagation();\n },\n [handler],\n );\n}\n","import React, { MouseEventHandler, ReactNode } from 'react';\n\nimport classNames from 'classnames';\nimport isFunction from 'lodash/isFunction';\n\nimport { ColorPalette, Size, Theme } from '@lumx/react';\nimport { useStopPropagation } from '@lumx/react/hooks/useStopPropagation';\n\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/react/utils/className';\nimport { onEnterPressed } from '@lumx/react/utils/event';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\n\n/**\n * Chip sizes.\n */\ntype ChipSize = Extract<Size, 's' | 'm'>;\n\n/**\n * Defines the props of the component.\n */\nexport interface ChipProps extends GenericProps, HasTheme {\n /** A component to be rendered after the content. */\n after?: ReactNode;\n /** A component to be rendered before the content. */\n before?: ReactNode;\n /** Color variant. */\n color?: ColorPalette;\n /** Whether the component is clickable or not. */\n isClickable?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the chip is currently in a highlighted state or not. */\n isHighlighted?: boolean;\n /** Whether the component is selected or not. */\n isSelected?: boolean;\n /** Size variant. */\n size?: ChipSize;\n /** On \"after\" element clicked callback. */\n onAfterClick?: MouseEventHandler;\n /** On \"before\" element clicked callback. */\n onBeforeClick?: MouseEventHandler;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Chip';\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<ChipProps> = {\n size: Size.m,\n};\n\n/**\n * Chip component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Chip = forwardRef<ChipProps, HTMLAnchorElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const {\n after,\n before,\n children,\n className,\n color,\n disabled,\n isClickable: propIsClickable,\n isDisabled = disabled,\n isHighlighted,\n isSelected,\n onAfterClick,\n onBeforeClick,\n onClick,\n size,\n theme = defaultTheme,\n href,\n onKeyDown,\n ...forwardedProps\n } = props;\n const hasAfterClick = isFunction(onAfterClick);\n const hasBeforeClick = isFunction(onBeforeClick);\n const hasOnClick = isFunction(onClick);\n const isButton = hasOnClick && !href;\n const isClickable = Boolean(hasOnClick) || Boolean(href) || propIsClickable;\n\n // Adapt color to the theme.\n const chipColor = color || (theme === Theme.light ? ColorPalette.dark : ColorPalette.light);\n\n const handleOnBeforeClick = useStopPropagation(onBeforeClick);\n const handleOnAfterClick = useStopPropagation(onAfterClick);\n const handleKeyDown = (evt: React.KeyboardEvent) => {\n onKeyDown?.(evt);\n if (hasOnClick) {\n onEnterPressed(onClick)(evt);\n }\n };\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <a\n role={isButton ? 'button' : undefined}\n tabIndex={isClickable ? 0 : undefined}\n {...forwardedProps}\n href={href}\n ref={ref}\n className={classNames(\n className,\n handleBasicClasses({\n clickable: isClickable,\n color: chipColor,\n isDisabled,\n hasAfter: Boolean(after),\n hasBefore: Boolean(before),\n highlighted: Boolean(isHighlighted),\n prefix: CLASSNAME,\n selected: Boolean(isSelected),\n size,\n unselected: Boolean(!isSelected),\n }),\n )}\n aria-disabled={(isClickable && isDisabled) || undefined}\n onClick={hasOnClick ? onClick : undefined}\n onKeyDown={handleKeyDown}\n >\n {before && (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n <div\n className={classNames(`${CLASSNAME}__before`, {\n [`${CLASSNAME}__before--is-clickable`]: hasBeforeClick,\n })}\n onClick={handleOnBeforeClick}\n >\n {before}\n </div>\n )}\n <div className={`${CLASSNAME}__label`}>{children}</div>\n {after && (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n <div\n className={classNames(`${CLASSNAME}__after`, {\n [`${CLASSNAME}__after--is-clickable`]: hasAfterClick,\n })}\n onClick={handleOnAfterClick}\n >\n {after}\n </div>\n )}\n </a>\n );\n});\nChip.displayName = COMPONENT_NAME;\nChip.className = CLASSNAME;\nChip.defaultProps = DEFAULT_PROPS;\n"],"names":["useStopPropagation","handler","useCallback","evt","isFunction","stopPropagation","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","size","Size","m","Chip","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","after","before","children","className","color","disabled","isClickable","propIsClickable","isDisabled","isHighlighted","isSelected","onAfterClick","onBeforeClick","onClick","theme","href","onKeyDown","forwardedProps","_objectWithoutProperties","_excluded","hasAfterClick","hasBeforeClick","hasOnClick","isButton","Boolean","chipColor","ColorPalette","dark","handleOnBeforeClick","handleOnAfterClick","handleKeyDown","onEnterPressed","React","createElement","_extends","role","undefined","tabIndex","classNames","handleBasicClasses","clickable","hasAfter","hasBefore","highlighted","prefix","selected","unselected","displayName","defaultProps"],"mappings":"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"}
|
package/_internal/c6c99f76.js
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { h as getRootClassName, i as forwardRef, j as _objectWithoutProperties, T as Theme, C as ColorPalette, S as Size, _ as _extends, g as classNames } from './1da25128.js';
|
|
2
|
-
import React__default from 'react';
|
|
3
|
-
import { u as useTheme } from './3181f000.js';
|
|
4
|
-
import { h as handleBasicClasses } from './f57e1239.js';
|
|
5
|
-
|
|
6
|
-
const mdiAlert='M13 14h-2V9h2m0 9h-2v-2h2M1 21h22L12 2z';const mdiAlertCircle='M13 13h-2V7h2m0 10h-2v-2h2M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2';const mdiArrowDown='M11 4h2v12l5.5-5.5 1.42 1.42L12 19.84l-7.92-7.92L5.5 10.5 11 16z';const mdiArrowUp='M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z';const mdiCheck='M21 7 9 19l-5.5-5.5 1.41-1.41L9 16.17 19.59 5.59z';const mdiCheckCircle='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2m-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z';const mdiChevronDown='M7.41 8.58 12 13.17l4.59-4.59L18 10l-6 6-6-6z';const mdiChevronLeft='M15.41 16.58 10.83 12l4.58-4.59L14 6l-6 6 6 6z';const mdiChevronRight='M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6z';const mdiChevronUp='M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z';const mdiClose='M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z';const mdiCloseCircle='M12 2a10 10 0 1 1 0 20 10 10 0 1 1 0-20m3.59 5L12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17 17 15.59 13.41 12 17 8.41z';const mdiDragVertical='M9 3h2v2H9zm4 0h2v2h-2zM9 7h2v2H9zm4 0h2v2h-2zm-4 4h2v2H9zm4 0h2v2h-2zm-4 4h2v2H9zm4 0h2v2h-2zm-4 4h2v2H9zm4 0h2v2h-2z';const mdiImageBroken='M19 3a2 2 0 0 1 2 2v6h-2v2h-2v2h-2v2h-2v2h-2v2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm2 12v4a2 2 0 0 1-2 2h-4v-2h2v-2h2v-2zm-2-6.5a.5.5 0 0 0-.5-.5h-13a.5.5 0 0 0-.5.5v7a.5.5 0 0 0 .5.5H11v-1h2v-2h2v-2h2V9h2z';const mdiInformation='M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2';const mdiMagnifyMinusOutline='M15.5 14h-.79l-.28-.27A6.5 6.5 0 0 0 16 9.5 6.5 6.5 0 0 0 9.5 3 6.5 6.5 0 0 0 3 9.5 6.5 6.5 0 0 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 5 1.5-1.5zm-6 0C7 14 5 12 5 9.5S7 5 9.5 5 14 7 14 9.5 12 14 9.5 14M7 9h5v1H7z';const mdiMagnifyPlusOutline='m15.5 14 5 5-1.5 1.5-5-5v-.79l-.27-.28A6.5 6.5 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3 6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.57 4.23l.28.27zm-6 0C12 14 14 12 14 9.5S12 5 9.5 5 5 7 5 9.5 7 14 9.5 14m2.5-4h-2v2H9v-2H7V9h2V7h1v2h2z';const mdiMenuDown='m7 10 5 5 5-5z';const mdiMinus='M19 13H5v-2h14z';const mdiPauseCircleOutline='M13 16V8h2v8zm-4 0V8h2v8zm3-14a10 10 0 0 1 10 10 10 10 0 0 1-10 10A10 10 0 0 1 2 12 10 10 0 0 1 12 2m0 2a8 8 0 0 0-8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0-8-8';const mdiPlayCircleOutline='M12 20a8.01 8.01 0 0 1 0-16 8.01 8.01 0 0 1 0 16m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m-2 14.5 6-4.5-6-4.5z';const mdiRadioboxBlank='M12 20a8 8 0 0 1-8-8 8 8 0 0 1 8-8 8 8 0 0 1 8 8 8 8 0 0 1-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2';const mdiRadioboxMarked='M12 20a8 8 0 0 1-8-8 8 8 0 0 1 8-8 8 8 0 0 1 8 8 8 8 0 0 1-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 5a5 5 0 0 0-5 5 5 5 0 0 0 5 5 5 5 0 0 0 5-5 5 5 0 0 0-5-5';
|
|
7
|
-
|
|
8
|
-
const _excluded = ["className", "color", "colorVariant", "hasShape", "icon", "size", "theme", "alt"];
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Defines the props of the component.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Component display name.
|
|
16
|
-
*/
|
|
17
|
-
const COMPONENT_NAME = 'Icon';
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Component default class name and class prefix.
|
|
21
|
-
*/
|
|
22
|
-
const CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Component default props.
|
|
26
|
-
*/
|
|
27
|
-
const DEFAULT_PROPS = {};
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Icon component.
|
|
31
|
-
*
|
|
32
|
-
* @param props Component props.
|
|
33
|
-
* @param ref Component ref.
|
|
34
|
-
* @return React element.
|
|
35
|
-
*/
|
|
36
|
-
const Icon = forwardRef((props, ref) => {
|
|
37
|
-
const defaultTheme = useTheme();
|
|
38
|
-
const {
|
|
39
|
-
className,
|
|
40
|
-
color,
|
|
41
|
-
colorVariant,
|
|
42
|
-
hasShape,
|
|
43
|
-
icon,
|
|
44
|
-
size,
|
|
45
|
-
theme = defaultTheme,
|
|
46
|
-
alt
|
|
47
|
-
} = props,
|
|
48
|
-
forwardedProps = _objectWithoutProperties(props, _excluded);
|
|
49
|
-
|
|
50
|
-
// Color
|
|
51
|
-
let iconColor = color;
|
|
52
|
-
if (!iconColor && (hasShape || theme)) {
|
|
53
|
-
iconColor = theme === Theme.dark ? ColorPalette.light : ColorPalette.dark;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Color variant
|
|
57
|
-
let iconColorVariant = colorVariant;
|
|
58
|
-
if (!iconColorVariant && hasShape && iconColor === ColorPalette.dark) {
|
|
59
|
-
iconColorVariant = 'L2';
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
// Size
|
|
63
|
-
let iconSize = size;
|
|
64
|
-
if (size && hasShape) {
|
|
65
|
-
if (size === Size.xxs || size === Size.xs) {
|
|
66
|
-
iconSize = Size.s;
|
|
67
|
-
} else if (size === Size.xxl) {
|
|
68
|
-
iconSize = Size.xl;
|
|
69
|
-
}
|
|
70
|
-
} else if (hasShape) {
|
|
71
|
-
iconSize = Size.m;
|
|
72
|
-
}
|
|
73
|
-
return /*#__PURE__*/React__default.createElement("i", _extends({
|
|
74
|
-
ref: ref
|
|
75
|
-
}, forwardedProps, {
|
|
76
|
-
className: classNames(className, handleBasicClasses({
|
|
77
|
-
color: iconColor,
|
|
78
|
-
colorVariant: iconColorVariant,
|
|
79
|
-
hasShape,
|
|
80
|
-
prefix: CLASSNAME,
|
|
81
|
-
theme,
|
|
82
|
-
size: iconSize
|
|
83
|
-
}), !hasShape && `${CLASSNAME}--no-shape`, !hasShape && iconColor === ColorPalette.yellow && icon === mdiAlertCircle && `${CLASSNAME}--has-dark-layer`, `${CLASSNAME}--path`)
|
|
84
|
-
}), /*#__PURE__*/React__default.createElement("svg", {
|
|
85
|
-
"aria-hidden": alt ? undefined : 'true',
|
|
86
|
-
role: alt ? 'img' : undefined,
|
|
87
|
-
"aria-label": alt,
|
|
88
|
-
height: "1em",
|
|
89
|
-
preserveAspectRatio: "xMidYMid meet",
|
|
90
|
-
style: {
|
|
91
|
-
verticalAlign: '-0.125em'
|
|
92
|
-
},
|
|
93
|
-
viewBox: "0 0 24 24",
|
|
94
|
-
width: "1em"
|
|
95
|
-
}, /*#__PURE__*/React__default.createElement("path", {
|
|
96
|
-
d: icon,
|
|
97
|
-
fill: "currentColor"
|
|
98
|
-
})));
|
|
99
|
-
});
|
|
100
|
-
Icon.displayName = COMPONENT_NAME;
|
|
101
|
-
Icon.className = CLASSNAME;
|
|
102
|
-
Icon.defaultProps = DEFAULT_PROPS;
|
|
103
|
-
|
|
104
|
-
export { Icon as I, mdiChevronLeft as a, mdiPauseCircleOutline as b, mdiPlayCircleOutline as c, mdiChevronRight as d, mdiAlert as e, mdiInformation as f, mdiCheckCircle as g, mdiAlertCircle as h, mdiClose as i, mdiMinus as j, mdiCheck as k, mdiDragVertical as l, mdiImageBroken as m, mdiChevronUp as n, mdiChevronDown as o, mdiMagnifyPlusOutline as p, mdiMagnifyMinusOutline as q, mdiRadioboxMarked as r, mdiRadioboxBlank as s, mdiCloseCircle as t, mdiMenuDown as u, mdiArrowUp as v, mdiArrowDown as w };
|
|
105
|
-
//# sourceMappingURL=c6c99f76.js.map
|