@lumx/react 3.20.1-alpha.12 → 3.20.1-alpha.13
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/Button-f19e18df.js +96 -0
- package/_internal/Button-f19e18df.js.map +1 -0
- package/_internal/{cdddaed8.js → ButtonRoot-ab633b1d.js} +19 -20
- package/_internal/ButtonRoot-ab633b1d.js.map +1 -0
- package/_internal/{85e3a5ca.js → Chip-4c572eec.js} +38 -34
- package/_internal/Chip-4c572eec.js.map +1 -0
- package/_internal/{7093ba23.js → ClickAwayProvider-bcce6ceb.js} +4 -6
- package/_internal/ClickAwayProvider-bcce6ceb.js.map +1 -0
- package/_internal/{ea04260d.js → DisabledStateContext-077b7bef.js} +6 -6
- package/_internal/DisabledStateContext-077b7bef.js.map +1 -0
- package/_internal/{370bdaed.js → HeadingLevelProvider-e4817816.js} +5 -7
- package/_internal/HeadingLevelProvider-e4817816.js.map +1 -0
- package/_internal/IconButton-10585058.js +72 -0
- package/_internal/IconButton-10585058.js.map +1 -0
- package/_internal/ImageCaption-4279b2b6.js +65 -0
- package/_internal/ImageCaption-4279b2b6.js.map +1 -0
- package/_internal/{f5508d3d.js → List-d5f5d465.js} +55 -56
- package/_internal/List-d5f5d465.js.map +1 -0
- package/_internal/{b1af5979.js → PopoverDialog-21e5c9dd.js} +165 -171
- package/_internal/PopoverDialog-21e5c9dd.js.map +1 -0
- package/_internal/{3f86608e.js → Portal-c43d098b.js} +2 -5
- package/_internal/Portal-c43d098b.js.map +1 -0
- package/_internal/{2c2b6a89.js → RawClickable-c76bbc4c.js} +7 -9
- package/_internal/RawClickable-c76bbc4c.js.map +1 -0
- package/_internal/{34c59f5b.js → Slides-01f513ce.js} +106 -112
- package/_internal/Slides-01f513ce.js.map +1 -0
- package/_internal/{3181f000.js → ThemeContext-3181f000.js} +1 -1
- package/_internal/ThemeContext-3181f000.js.map +1 -0
- package/_internal/{628468c4.js → Thumbnail-30d2a781.js} +50 -51
- package/_internal/Thumbnail-30d2a781.js.map +1 -0
- package/_internal/{3a4e4636.js → components/alert-dialog-8f1c163c.js} +39 -54
- package/_internal/components/alert-dialog-8f1c163c.js.map +1 -0
- package/_internal/{179a84d1.js → components/autocomplete-bfbdeb3c.js} +72 -67
- package/_internal/components/autocomplete-bfbdeb3c.js.map +1 -0
- package/_internal/components/avatar-6990e3e9.js +87 -0
- package/_internal/components/avatar-6990e3e9.js.map +1 -0
- package/_internal/{9c9df5f2.js → components/badge-81543bc7.js} +20 -19
- package/_internal/components/badge-81543bc7.js.map +1 -0
- package/_internal/{f93fe83e.js → components/button-927abe71.js} +14 -11
- package/_internal/components/button-927abe71.js.map +1 -0
- package/_internal/components/checkbox-dc4caec8.js +131 -0
- package/_internal/{f0900583.js.map → components/checkbox-dc4caec8.js.map} +1 -1
- package/_internal/{c0414b89.js → components/chip-fb3d0c76.js} +13 -10
- package/_internal/components/chip-fb3d0c76.js.map +1 -0
- package/_internal/components/comment-block-b84c4694.js +121 -0
- package/_internal/components/comment-block-b84c4694.js.map +1 -0
- package/_internal/components/date-picker-a425534c.js +2 -0
- package/_internal/components/date-picker-a425534c.js.map +1 -0
- package/_internal/{2f1716fa.js → components/dialog-7dbcb485.js} +69 -80
- package/_internal/components/dialog-7dbcb485.js.map +1 -0
- package/_internal/{3e653144.js → components/divider-12e9b6a0.js} +13 -9
- package/_internal/components/divider-12e9b6a0.js.map +1 -0
- package/_internal/components/drag-handle-a38ff757.js +53 -0
- package/_internal/components/drag-handle-a38ff757.js.map +1 -0
- package/_internal/{1ea72630.js → components/dropdown-38b0b6a0.js} +19 -17
- package/_internal/components/dropdown-38b0b6a0.js.map +1 -0
- package/_internal/{68c10f98.js → components/expansion-panel-c4b93653.js} +46 -54
- package/_internal/components/expansion-panel-c4b93653.js.map +1 -0
- package/_internal/{c2388b10.js → components/flag-c5e2f5f0.js} +19 -22
- package/_internal/components/flag-c5e2f5f0.js.map +1 -0
- package/_internal/{329b5f12.js → components/flex-box-c8701a85.js} +13 -10
- package/_internal/components/flex-box-c8701a85.js.map +1 -0
- package/_internal/{a84f4981.js → components/generic-block-0d6ad5a6.js} +30 -37
- package/_internal/components/generic-block-0d6ad5a6.js.map +1 -0
- package/_internal/{2f6c7f84.js → components/grid-3b194fe8.js} +22 -16
- package/_internal/components/grid-3b194fe8.js.map +1 -0
- package/_internal/{501f2f9f.js → components/grid-column-985b9327.js} +10 -8
- package/_internal/components/grid-column-985b9327.js.map +1 -0
- package/_internal/{193521fa.js → components/heading-5e954dfc.js} +13 -11
- package/_internal/components/heading-5e954dfc.js.map +1 -0
- package/_internal/{8ab42752.js → components/icon-2e7345ad.js} +29 -29
- package/_internal/components/icon-2e7345ad.js.map +1 -0
- package/_internal/components/image-block-8d21dd7e.js +109 -0
- package/_internal/components/image-block-8d21dd7e.js.map +1 -0
- package/_internal/{7f54e947.js → components/image-lightbox-4a5ab962.js} +105 -120
- package/_internal/components/image-lightbox-4a5ab962.js.map +1 -0
- package/_internal/{15eab19b.js → components/inline-list-4884f004.js} +25 -26
- package/_internal/components/inline-list-4884f004.js.map +1 -0
- package/_internal/{5f8f9454.js → components/input-helper-e644e05e.js} +14 -11
- package/_internal/components/input-helper-e644e05e.js.map +1 -0
- package/_internal/{b0a7a999.js → components/input-label-5e509a1b.js} +14 -12
- package/_internal/components/input-label-5e509a1b.js.map +1 -0
- package/_internal/{86aa4aa4.js → components/lightbox-bec1b95f.js} +59 -64
- package/_internal/components/lightbox-bec1b95f.js.map +1 -0
- package/_internal/components/link-9637b9e4.js +70 -0
- package/_internal/components/link-9637b9e4.js.map +1 -0
- package/_internal/components/link-preview-7a4a6e4b.js +108 -0
- package/_internal/components/link-preview-7a4a6e4b.js.map +1 -0
- package/_internal/{95cfd814.js → components/list-5c8f7122.js} +21 -14
- package/_internal/components/list-5c8f7122.js.map +1 -0
- package/_internal/{0be1006e.js → components/message-a67067d9.js} +27 -28
- package/_internal/components/message-a67067d9.js.map +1 -0
- package/_internal/components/mosaic-92b66c80.js +92 -0
- package/_internal/components/mosaic-92b66c80.js.map +1 -0
- package/_internal/components/navigation-4fd3917d.js +210 -0
- package/_internal/components/navigation-4fd3917d.js.map +1 -0
- package/_internal/{5ec059fe.js → components/notification-9063c963.js} +47 -52
- package/_internal/components/notification-9063c963.js.map +1 -0
- package/_internal/components/popover-3c4c54bd.js +3 -0
- package/_internal/components/popover-3c4c54bd.js.map +1 -0
- package/_internal/components/post-block-0cfc2206.js +99 -0
- package/_internal/components/post-block-0cfc2206.js.map +1 -0
- package/_internal/{f23cdf84.js → components/progress-eaf5b33d.js} +53 -46
- package/_internal/components/progress-eaf5b33d.js.map +1 -0
- package/_internal/{edab29ce.js → components/progress-tracker-4a65718d.js} +70 -69
- package/_internal/components/progress-tracker-4a65718d.js.map +1 -0
- package/_internal/components/radio-button-3ef8a325.js +148 -0
- package/_internal/components/radio-button-3ef8a325.js.map +1 -0
- package/_internal/components/select-d46cfe35.js +404 -0
- package/_internal/components/select-d46cfe35.js.map +1 -0
- package/_internal/{b477da26.js → components/side-navigation-75b22f19.js} +62 -67
- package/_internal/components/side-navigation-75b22f19.js.map +1 -0
- package/_internal/{6da19518.js → components/skeleton-361ce335.js} +34 -25
- package/_internal/components/skeleton-361ce335.js.map +1 -0
- package/_internal/{db4fdc7b.js → components/slider-8094cb5c.js} +60 -65
- package/_internal/components/slider-8094cb5c.js.map +1 -0
- package/_internal/{eaa8b1d8.js → components/slideshow-2e8cd372.js} +41 -41
- package/_internal/components/slideshow-2e8cd372.js.map +1 -0
- package/_internal/components/switch-5516949b.js +118 -0
- package/_internal/components/switch-5516949b.js.map +1 -0
- package/_internal/{be6da9b0.js → components/table-fa198ee6.js} +76 -73
- package/_internal/components/table-fa198ee6.js.map +1 -0
- package/_internal/{65f91970.js → components/tabs-bb9bc2a5.js} +48 -47
- package/_internal/components/tabs-bb9bc2a5.js.map +1 -0
- package/_internal/components/text-289c0526.js +2 -0
- package/_internal/components/text-289c0526.js.map +1 -0
- package/_internal/{b0b2e33d.js → components/text-field-82733568.js} +109 -122
- package/_internal/components/text-field-82733568.js.map +1 -0
- package/_internal/{76be70dd.js → components/thumbnail-e3acff82.js} +3 -3
- package/_internal/components/thumbnail-e3acff82.js.map +1 -0
- package/_internal/{bae266a9.js → components/toolbar-155562be.js} +18 -19
- package/_internal/components/toolbar-155562be.js.map +1 -0
- package/_internal/{9a4dfad0.js → components/tooltip-84ffb4f9.js} +42 -50
- package/_internal/components/tooltip-84ffb4f9.js.map +1 -0
- package/_internal/{9fdc715b.js → components/uploader-896a1d89.js} +38 -40
- package/_internal/components/uploader-896a1d89.js.map +1 -0
- package/_internal/{0d1a078c.js → components/user-block-8fd15895.js} +44 -45
- package/_internal/components/user-block-8fd15895.js.map +1 -0
- package/_internal/{4cd870a5.js → constants-b9e57936.js} +2 -2
- package/_internal/constants-b9e57936.js.map +1 -0
- package/_internal/{478b5c92.js → constants-d0e3f49e.js} +2 -2
- package/_internal/constants-d0e3f49e.js.map +1 -0
- package/_internal/{9d1336a1.js → context-21aeb1c7.js} +6 -6
- package/_internal/context-21aeb1c7.js.map +1 -0
- package/_internal/forwardRef-49d2bb84.js +80 -0
- package/_internal/forwardRef-49d2bb84.js.map +1 -0
- package/_internal/{230173a8.js → getFocusableElements-230173a8.js} +1 -1
- package/_internal/getFocusableElements-230173a8.js.map +1 -0
- package/_internal/{0420e67b.js → index-b4d256e7.js} +14 -15
- package/_internal/index-b4d256e7.js.map +1 -0
- package/_internal/{84dfe68f.js → index-f415b08e.js} +46 -52
- package/_internal/index-f415b08e.js.map +1 -0
- package/_internal/{78df9309.js → isComponent-78df9309.js} +1 -1
- package/_internal/isComponent-78df9309.js.map +1 -0
- package/_internal/{e806b848.js → isComponentType-e806b848.js} +1 -1
- package/_internal/isComponentType-e806b848.js.map +1 -0
- package/_internal/{f0d7d6ea.js → mergeRefs-f0d7d6ea.js} +1 -1
- package/_internal/mergeRefs-f0d7d6ea.js.map +1 -0
- package/_internal/{4daccdd5.js → partitionMulti-4daccdd5.js} +1 -1
- package/_internal/partitionMulti-4daccdd5.js.map +1 -0
- package/_internal/{825ac334.js → state-db358714.js} +2 -2
- package/_internal/state-db358714.js.map +1 -0
- package/_internal/{2a3d237c.js → useBooleanState-2a3d237c.js} +1 -1
- package/_internal/useBooleanState-2a3d237c.js.map +1 -0
- package/_internal/{d5f316cb.js → useCallbackOnEscape-ea4d9eb4.js} +3 -3
- package/_internal/useCallbackOnEscape-ea4d9eb4.js.map +1 -0
- package/_internal/{36bd7352.js → useDisableBodyScroll-36bd7352.js} +1 -1
- package/_internal/useDisableBodyScroll-36bd7352.js.map +1 -0
- package/_internal/{b8667090.js → useDisableStateProps-fffc365f.js} +2 -2
- package/_internal/useDisableStateProps-fffc365f.js.map +1 -0
- package/_internal/{5fe09341.js → useFocusTrap-c3c6378b.js} +4 -4
- package/_internal/useFocusTrap-c3c6378b.js.map +1 -0
- package/_internal/{3a1facc0.js → useId-3a1facc0.js} +1 -1
- package/_internal/useId-3a1facc0.js.map +1 -0
- package/_internal/{7daf0f24.js → useRovingTabIndex-7daf0f24.js} +1 -1
- package/_internal/useRovingTabIndex-7daf0f24.js.map +1 -0
- package/_internal/{e6dd117e.js → useTransitionVisibility-321fdbfa.js} +2 -2
- package/_internal/useTransitionVisibility-321fdbfa.js.map +1 -0
- package/_internal/{37b007a4.js → wrapChildrenIconWithSpaces-f86106ce.js} +3 -3
- package/_internal/wrapChildrenIconWithSpaces-f86106ce.js.map +1 -0
- package/index.d.ts +7 -352
- package/index.js +65 -111
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/utils/index.d.ts +1 -1
- package/utils/index.js +3 -3
- package/_internal/0420e67b.js.map +0 -1
- package/_internal/0a490b07.js +0 -75
- package/_internal/0a490b07.js.map +0 -1
- package/_internal/0b9c76cb.js +0 -6
- package/_internal/0b9c76cb.js.map +0 -1
- package/_internal/0be1006e.js.map +0 -1
- package/_internal/0d1a078c.js.map +0 -1
- package/_internal/15eab19b.js.map +0 -1
- package/_internal/179a84d1.js.map +0 -1
- package/_internal/193521fa.js.map +0 -1
- package/_internal/1a90ea3d.js +0 -51
- package/_internal/1a90ea3d.js.map +0 -1
- package/_internal/1deba7d7.js +0 -224
- package/_internal/1deba7d7.js.map +0 -1
- package/_internal/1ea72630.js.map +0 -1
- package/_internal/21b83d16.js +0 -137
- package/_internal/21b83d16.js.map +0 -1
- package/_internal/230173a8.js.map +0 -1
- package/_internal/297bed8f.js +0 -457
- package/_internal/297bed8f.js.map +0 -1
- package/_internal/2a3d237c.js.map +0 -1
- package/_internal/2c2b6a89.js.map +0 -1
- package/_internal/2f1716fa.js.map +0 -1
- package/_internal/2f6c7f84.js.map +0 -1
- package/_internal/3181f000.js.map +0 -1
- package/_internal/329b5f12.js.map +0 -1
- package/_internal/332e9844.js +0 -2
- package/_internal/332e9844.js.map +0 -1
- package/_internal/34c59f5b.js.map +0 -1
- package/_internal/36bd7352.js.map +0 -1
- package/_internal/370bdaed.js.map +0 -1
- package/_internal/37b007a4.js.map +0 -1
- package/_internal/3a1facc0.js.map +0 -1
- package/_internal/3a4e4636.js.map +0 -1
- package/_internal/3e653144.js.map +0 -1
- package/_internal/3f86608e.js.map +0 -1
- package/_internal/478b5c92.js.map +0 -1
- package/_internal/4962be5b.js +0 -121
- package/_internal/4962be5b.js.map +0 -1
- package/_internal/49bbeed3.js +0 -6
- package/_internal/49bbeed3.js.map +0 -1
- package/_internal/4cd870a5.js.map +0 -1
- package/_internal/4daccdd5.js.map +0 -1
- package/_internal/501f2f9f.js.map +0 -1
- package/_internal/5e7b90e2.js +0 -2
- package/_internal/5e7b90e2.js.map +0 -1
- package/_internal/5ec059fe.js.map +0 -1
- package/_internal/5f8f9454.js.map +0 -1
- package/_internal/5fe09341.js.map +0 -1
- package/_internal/628468c4.js.map +0 -1
- package/_internal/6589b796.js +0 -280
- package/_internal/6589b796.js.map +0 -1
- package/_internal/65f91970.js.map +0 -1
- package/_internal/66f691d3.js +0 -74
- package/_internal/66f691d3.js.map +0 -1
- package/_internal/68c10f98.js.map +0 -1
- package/_internal/690ca33e.js +0 -109
- package/_internal/690ca33e.js.map +0 -1
- package/_internal/6ca04271.js +0 -108
- package/_internal/6ca04271.js.map +0 -1
- package/_internal/6da19518.js.map +0 -1
- package/_internal/7093ba23.js.map +0 -1
- package/_internal/74a4a214.js +0 -82
- package/_internal/74a4a214.js.map +0 -1
- package/_internal/76be70dd.js.map +0 -1
- package/_internal/78df9309.js.map +0 -1
- package/_internal/7b221b05.js +0 -9
- package/_internal/7b221b05.js.map +0 -1
- package/_internal/7daf0f24.js.map +0 -1
- package/_internal/7f54e947.js.map +0 -1
- package/_internal/825ac334.js.map +0 -1
- package/_internal/827b804a.js +0 -6
- package/_internal/827b804a.js.map +0 -1
- package/_internal/84dfe68f.js.map +0 -1
- package/_internal/85e3a5ca.js.map +0 -1
- package/_internal/86aa4aa4.js.map +0 -1
- package/_internal/88ec77c2.js +0 -130
- package/_internal/88ec77c2.js.map +0 -1
- package/_internal/8ab42752.js.map +0 -1
- package/_internal/95cfd814.js.map +0 -1
- package/_internal/9a4dfad0.js.map +0 -1
- package/_internal/9c9df5f2.js.map +0 -1
- package/_internal/9d1336a1.js.map +0 -1
- package/_internal/9fdc715b.js.map +0 -1
- package/_internal/a003602b.js +0 -116
- package/_internal/a003602b.js.map +0 -1
- package/_internal/a34639bd.js +0 -97
- package/_internal/a34639bd.js.map +0 -1
- package/_internal/a84f4981.js.map +0 -1
- package/_internal/b0a7a999.js.map +0 -1
- package/_internal/b0b2e33d.js.map +0 -1
- package/_internal/b1af5979.js.map +0 -1
- package/_internal/b477da26.js.map +0 -1
- package/_internal/b8667090.js.map +0 -1
- package/_internal/bae266a9.js.map +0 -1
- package/_internal/be6da9b0.js.map +0 -1
- package/_internal/c0414b89.js.map +0 -1
- package/_internal/c2388b10.js.map +0 -1
- package/_internal/c459a04d.js +0 -148
- package/_internal/c459a04d.js.map +0 -1
- package/_internal/c6ca7494.js +0 -2
- package/_internal/c6ca7494.js.map +0 -1
- package/_internal/cdddaed8.js.map +0 -1
- package/_internal/d0dd1815.js +0 -10
- package/_internal/d0dd1815.js.map +0 -1
- package/_internal/d45e3f16.js +0 -15
- package/_internal/d45e3f16.js.map +0 -1
- package/_internal/d5f316cb.js.map +0 -1
- package/_internal/d95844c1.d.ts +0 -7
- package/_internal/db4fdc7b.js.map +0 -1
- package/_internal/dbe0cf24.js +0 -75
- package/_internal/dbe0cf24.js.map +0 -1
- package/_internal/de24f857.js +0 -4
- package/_internal/de24f857.js.map +0 -1
- package/_internal/e2afb13f.js +0 -75
- package/_internal/e2afb13f.js.map +0 -1
- package/_internal/e52f0d3f.js +0 -94
- package/_internal/e52f0d3f.js.map +0 -1
- package/_internal/e6dd117e.js.map +0 -1
- package/_internal/e806b848.js.map +0 -1
- package/_internal/ea04260d.js.map +0 -1
- package/_internal/eaa8b1d8.js.map +0 -1
- package/_internal/eaf6c45a.js +0 -4
- package/_internal/eaf6c45a.js.map +0 -1
- package/_internal/edab29ce.js.map +0 -1
- package/_internal/ef5d1aac.js +0 -4
- package/_internal/ef5d1aac.js.map +0 -1
- package/_internal/f0900583.js +0 -142
- package/_internal/f0d7d6ea.js.map +0 -1
- package/_internal/f23cdf84.js.map +0 -1
- package/_internal/f52e979e.js +0 -3
- package/_internal/f52e979e.js.map +0 -1
- package/_internal/f5508d3d.js.map +0 -1
- package/_internal/f93fe83e.js.map +0 -1
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { f as forwardRef, _ as _extends, c as classNames } from '../forwardRef-49d2bb84.js';
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import take from 'lodash/take';
|
|
4
|
+
import { u as useTheme } from '../ThemeContext-3181f000.js';
|
|
5
|
+
import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
|
|
6
|
+
import { Theme, Alignment, AspectRatio } from '@lumx/core/js/constants';
|
|
7
|
+
import { T as Thumbnail } from '../Thumbnail-30d2a781.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Defines the props of the component.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Component display name.
|
|
15
|
+
*/
|
|
16
|
+
const COMPONENT_NAME = 'Mosaic';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Component default class name and class prefix.
|
|
20
|
+
*/
|
|
21
|
+
const CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Component default props.
|
|
25
|
+
*/
|
|
26
|
+
const DEFAULT_PROPS = {};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Mosaic component.
|
|
30
|
+
*
|
|
31
|
+
* @param props Component props.
|
|
32
|
+
* @param ref Component ref.
|
|
33
|
+
* @return React element.
|
|
34
|
+
*/
|
|
35
|
+
const Mosaic = forwardRef((props, ref) => {
|
|
36
|
+
const defaultTheme = useTheme() || Theme.light;
|
|
37
|
+
const {
|
|
38
|
+
className,
|
|
39
|
+
theme = defaultTheme,
|
|
40
|
+
thumbnails,
|
|
41
|
+
onImageClick,
|
|
42
|
+
...forwardedProps
|
|
43
|
+
} = props;
|
|
44
|
+
const handleImageClick = useMemo(() => {
|
|
45
|
+
if (!onImageClick) return undefined;
|
|
46
|
+
return (index, onClick) => event => {
|
|
47
|
+
onClick?.(event);
|
|
48
|
+
onImageClick?.(index);
|
|
49
|
+
};
|
|
50
|
+
}, [onImageClick]);
|
|
51
|
+
return /*#__PURE__*/React.createElement("div", _extends({
|
|
52
|
+
ref: ref
|
|
53
|
+
}, forwardedProps, {
|
|
54
|
+
className: classNames(className, handleBasicClasses({
|
|
55
|
+
prefix: CLASSNAME,
|
|
56
|
+
theme
|
|
57
|
+
}), {
|
|
58
|
+
[`${CLASSNAME}--has-1-thumbnail`]: thumbnails?.length === 1,
|
|
59
|
+
[`${CLASSNAME}--has-2-thumbnails`]: thumbnails?.length === 2,
|
|
60
|
+
[`${CLASSNAME}--has-3-thumbnails`]: thumbnails?.length === 3,
|
|
61
|
+
[`${CLASSNAME}--has-4-thumbnails`]: thumbnails?.length >= 4
|
|
62
|
+
})
|
|
63
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
64
|
+
className: `${CLASSNAME}__wrapper`
|
|
65
|
+
}, take(thumbnails, 4).map((thumbnail, index) => {
|
|
66
|
+
const {
|
|
67
|
+
image,
|
|
68
|
+
onClick,
|
|
69
|
+
align,
|
|
70
|
+
...thumbnailProps
|
|
71
|
+
} = thumbnail;
|
|
72
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
73
|
+
key: index,
|
|
74
|
+
className: `${CLASSNAME}__thumbnail`
|
|
75
|
+
}, /*#__PURE__*/React.createElement(Thumbnail, _extends({}, thumbnailProps, {
|
|
76
|
+
align: align || Alignment.left,
|
|
77
|
+
image: image,
|
|
78
|
+
theme: theme,
|
|
79
|
+
aspectRatio: AspectRatio.free,
|
|
80
|
+
fillHeight: true,
|
|
81
|
+
onClick: handleImageClick?.(index, onClick) || onClick
|
|
82
|
+
})), thumbnails.length > 4 && index === 3 && /*#__PURE__*/React.createElement("div", {
|
|
83
|
+
className: `${CLASSNAME}__overlay`
|
|
84
|
+
}, /*#__PURE__*/React.createElement("span", null, "+", thumbnails.length - 4)));
|
|
85
|
+
})));
|
|
86
|
+
});
|
|
87
|
+
Mosaic.displayName = COMPONENT_NAME;
|
|
88
|
+
Mosaic.className = CLASSNAME;
|
|
89
|
+
Mosaic.defaultProps = DEFAULT_PROPS;
|
|
90
|
+
|
|
91
|
+
export { Mosaic };
|
|
92
|
+
//# sourceMappingURL=mosaic-92b66c80.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mosaic-92b66c80.js","sources":["../../../src/components/mosaic/Mosaic.tsx"],"sourcesContent":["import { MouseEventHandler, useMemo } from 'react';\n\nimport classNames from 'classnames';\nimport take from 'lodash/take';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\n\nimport { Alignment, AspectRatio, Theme, Thumbnail, ThumbnailProps } from '@lumx/react';\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface MosaicProps extends GenericProps, HasTheme {\n /** Thumbnails. */\n thumbnails: ThumbnailProps[];\n /** On image click callback. */\n onImageClick?(index: number): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Mosaic';\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<MosaicProps> = {};\n\n/**\n * Mosaic component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Mosaic = forwardRef<MosaicProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const { className, theme = defaultTheme, thumbnails, onImageClick, ...forwardedProps } = props;\n const handleImageClick = useMemo(() => {\n if (!onImageClick) return undefined;\n\n return (index: number, onClick?: MouseEventHandler): MouseEventHandler =>\n (event) => {\n onClick?.(event);\n onImageClick?.(index);\n };\n }, [onImageClick]);\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, theme }), {\n [`${CLASSNAME}--has-1-thumbnail`]: thumbnails?.length === 1,\n [`${CLASSNAME}--has-2-thumbnails`]: thumbnails?.length === 2,\n [`${CLASSNAME}--has-3-thumbnails`]: thumbnails?.length === 3,\n [`${CLASSNAME}--has-4-thumbnails`]: thumbnails?.length >= 4,\n })}\n >\n <div className={`${CLASSNAME}__wrapper`}>\n {take(thumbnails, 4).map((thumbnail: any, index: number) => {\n const { image, onClick, align, ...thumbnailProps } = thumbnail;\n\n return (\n <div key={index} className={`${CLASSNAME}__thumbnail`}>\n <Thumbnail\n {...thumbnailProps}\n align={align || Alignment.left}\n image={image}\n theme={theme}\n aspectRatio={AspectRatio.free}\n fillHeight\n onClick={handleImageClick?.(index, onClick) || onClick}\n />\n\n {thumbnails.length > 4 && index === 3 && (\n <div className={`${CLASSNAME}__overlay`}>\n <span>+{thumbnails.length - 4}</span>\n </div>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n});\nMosaic.displayName = COMPONENT_NAME;\nMosaic.className = CLASSNAME;\nMosaic.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","Mosaic","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","className","theme","thumbnails","onImageClick","forwardedProps","handleImageClick","useMemo","undefined","index","onClick","event","React","createElement","_extends","classNames","handleBasicClasses","prefix","length","take","map","thumbnail","image","align","thumbnailProps","key","Thumbnail","Alignment","left","aspectRatio","AspectRatio","free","fillHeight","displayName","defaultProps"],"mappings":"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"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { c as classNames, _ as _extends, f as forwardRef } from '../forwardRef-49d2bb84.js';
|
|
2
|
+
import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
|
|
3
|
+
import { u as useTheme, T as ThemeProvider } from '../ThemeContext-3181f000.js';
|
|
4
|
+
import { createContext, useState, useRef, useContext } from 'react';
|
|
5
|
+
import { mdiChevronUp, mdiChevronDown } from '@lumx/icons';
|
|
6
|
+
import { u as useId } from '../useId-3a1facc0.js';
|
|
7
|
+
import { f as forwardRefPolymorphic, R as RawClickable } from '../RawClickable-c76bbc4c.js';
|
|
8
|
+
import { u as useOverflowTooltipLabel, T as Text } from '../index-b4d256e7.js';
|
|
9
|
+
import { Tooltip } from './tooltip-84ffb4f9.js';
|
|
10
|
+
import { P as Placement } from '../constants-b9e57936.js';
|
|
11
|
+
import { Icon } from './icon-2e7345ad.js';
|
|
12
|
+
import { Size, Orientation, Theme } from '@lumx/core/js/constants';
|
|
13
|
+
import { P as Popover } from '../index-f415b08e.js';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Navigation item props
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Component display name.
|
|
21
|
+
*/
|
|
22
|
+
const COMPONENT_NAME$2 = 'NavigationItem';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Component default class name and class prefix.
|
|
26
|
+
*/
|
|
27
|
+
const CLASSNAME$2 = getRootClassName(COMPONENT_NAME$2);
|
|
28
|
+
const NavigationItem = Object.assign(forwardRefPolymorphic((props, ref) => {
|
|
29
|
+
const {
|
|
30
|
+
className,
|
|
31
|
+
icon,
|
|
32
|
+
label,
|
|
33
|
+
isCurrentPage,
|
|
34
|
+
as: Element = 'a',
|
|
35
|
+
...forwardedProps
|
|
36
|
+
} = props;
|
|
37
|
+
const theme = useTheme();
|
|
38
|
+
const {
|
|
39
|
+
tooltipLabel,
|
|
40
|
+
labelRef
|
|
41
|
+
} = useOverflowTooltipLabel(label);
|
|
42
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
43
|
+
className: classNames(className, handleBasicClasses({
|
|
44
|
+
prefix: CLASSNAME$2,
|
|
45
|
+
theme
|
|
46
|
+
}))
|
|
47
|
+
}, /*#__PURE__*/React.createElement(Tooltip, {
|
|
48
|
+
label: tooltipLabel,
|
|
49
|
+
placement: Placement.TOP
|
|
50
|
+
}, /*#__PURE__*/React.createElement(RawClickable, _extends({
|
|
51
|
+
as: Element,
|
|
52
|
+
className: handleBasicClasses({
|
|
53
|
+
prefix: `${CLASSNAME$2}__link`,
|
|
54
|
+
isSelected: isCurrentPage
|
|
55
|
+
}),
|
|
56
|
+
ref: ref,
|
|
57
|
+
"aria-current": isCurrentPage ? 'page' : undefined
|
|
58
|
+
}, forwardedProps), icon ? /*#__PURE__*/React.createElement(Icon, {
|
|
59
|
+
className: `${CLASSNAME$2}__icon`,
|
|
60
|
+
icon: icon,
|
|
61
|
+
size: Size.xs,
|
|
62
|
+
theme: theme
|
|
63
|
+
}) : null, /*#__PURE__*/React.createElement(Text, {
|
|
64
|
+
as: "span",
|
|
65
|
+
truncate: true,
|
|
66
|
+
className: `${CLASSNAME$2}__label`,
|
|
67
|
+
ref: labelRef
|
|
68
|
+
}, label))));
|
|
69
|
+
}), {
|
|
70
|
+
displayName: COMPONENT_NAME$2,
|
|
71
|
+
className: CLASSNAME$2
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
const NavigationContext = /*#__PURE__*/createContext({
|
|
75
|
+
orientation: Orientation.vertical
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Component display name.
|
|
80
|
+
*/
|
|
81
|
+
const COMPONENT_NAME$1 = 'NavigationSection';
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Component default class name and class prefix.
|
|
85
|
+
*/
|
|
86
|
+
const CLASSNAME$1 = getRootClassName(COMPONENT_NAME$1);
|
|
87
|
+
const NavigationSection = forwardRef((props, ref) => {
|
|
88
|
+
const {
|
|
89
|
+
children,
|
|
90
|
+
className,
|
|
91
|
+
label,
|
|
92
|
+
icon,
|
|
93
|
+
...forwardedProps
|
|
94
|
+
} = props;
|
|
95
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
96
|
+
const buttonRef = useRef(null);
|
|
97
|
+
const sectionId = useId();
|
|
98
|
+
const {
|
|
99
|
+
orientation
|
|
100
|
+
} = useContext(NavigationContext) || {};
|
|
101
|
+
const theme = useTheme();
|
|
102
|
+
const isDropdown = orientation === Orientation.horizontal;
|
|
103
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
104
|
+
className: classNames(className, CLASSNAME$1, CLASSNAME$2, handleBasicClasses({
|
|
105
|
+
prefix: CLASSNAME$2,
|
|
106
|
+
theme
|
|
107
|
+
})),
|
|
108
|
+
ref: ref
|
|
109
|
+
}, /*#__PURE__*/React.createElement(RawClickable, _extends({
|
|
110
|
+
as: "button"
|
|
111
|
+
}, forwardedProps, {
|
|
112
|
+
"aria-controls": sectionId,
|
|
113
|
+
"aria-expanded": isOpen,
|
|
114
|
+
className: classNames(`${CLASSNAME$2}__link`),
|
|
115
|
+
ref: buttonRef,
|
|
116
|
+
onClick: event => {
|
|
117
|
+
setIsOpen(!isOpen);
|
|
118
|
+
event.stopPropagation();
|
|
119
|
+
}
|
|
120
|
+
}), icon ? /*#__PURE__*/React.createElement(Icon, {
|
|
121
|
+
className: `${CLASSNAME$2}__icon`,
|
|
122
|
+
icon: icon,
|
|
123
|
+
size: Size.xs
|
|
124
|
+
}) : null, /*#__PURE__*/React.createElement(Text, {
|
|
125
|
+
as: "span",
|
|
126
|
+
truncate: true,
|
|
127
|
+
className: `${CLASSNAME$2}__label`,
|
|
128
|
+
ref: ref
|
|
129
|
+
}, label), /*#__PURE__*/React.createElement(Icon, {
|
|
130
|
+
className: classNames(`${CLASSNAME$2}__icon`, `${CLASSNAME$1}__chevron`),
|
|
131
|
+
icon: isOpen ? mdiChevronUp : mdiChevronDown
|
|
132
|
+
})), isOpen && (isDropdown ? /*#__PURE__*/React.createElement(Popover, {
|
|
133
|
+
anchorRef: buttonRef,
|
|
134
|
+
isOpen: isOpen,
|
|
135
|
+
placement: Placement.BOTTOM_START,
|
|
136
|
+
usePortal: false,
|
|
137
|
+
closeOnClickAway: true,
|
|
138
|
+
closeOnEscape: true,
|
|
139
|
+
onClick: () => setIsOpen(false),
|
|
140
|
+
onClose: () => setIsOpen(false),
|
|
141
|
+
zIndex: 996
|
|
142
|
+
}, /*#__PURE__*/React.createElement(ThemeProvider, {
|
|
143
|
+
value: Theme.light
|
|
144
|
+
}, /*#__PURE__*/React.createElement("ul", {
|
|
145
|
+
className: `${CLASSNAME$1}__drawer--popover`,
|
|
146
|
+
id: sectionId
|
|
147
|
+
}, /*#__PURE__*/React.createElement(NavigationContext.Provider, {
|
|
148
|
+
value: {
|
|
149
|
+
orientation: Orientation.vertical
|
|
150
|
+
}
|
|
151
|
+
}, children)))) : /*#__PURE__*/React.createElement("ul", {
|
|
152
|
+
className: `${CLASSNAME$1}__drawer`,
|
|
153
|
+
id: sectionId
|
|
154
|
+
}, children)));
|
|
155
|
+
});
|
|
156
|
+
NavigationSection.displayName = COMPONENT_NAME$1;
|
|
157
|
+
NavigationSection.className = CLASSNAME$1;
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Component display name.
|
|
161
|
+
*/
|
|
162
|
+
const COMPONENT_NAME = 'Navigation';
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Component default class name and class prefix.
|
|
166
|
+
*/
|
|
167
|
+
const CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Component default props
|
|
171
|
+
*/
|
|
172
|
+
const DEFAULT_PROPS = {
|
|
173
|
+
orientation: Orientation.vertical
|
|
174
|
+
};
|
|
175
|
+
const Navigation = forwardRef((props, ref) => {
|
|
176
|
+
const defaultTheme = useTheme() || Theme.light;
|
|
177
|
+
const {
|
|
178
|
+
children,
|
|
179
|
+
className,
|
|
180
|
+
theme = defaultTheme,
|
|
181
|
+
orientation = DEFAULT_PROPS.orientation,
|
|
182
|
+
...forwardedProps
|
|
183
|
+
} = props;
|
|
184
|
+
return /*#__PURE__*/React.createElement(ThemeProvider, {
|
|
185
|
+
value: theme
|
|
186
|
+
}, /*#__PURE__*/React.createElement("nav", _extends({
|
|
187
|
+
className: classNames(className, handleBasicClasses({
|
|
188
|
+
prefix: CLASSNAME,
|
|
189
|
+
theme,
|
|
190
|
+
orientation
|
|
191
|
+
})),
|
|
192
|
+
ref: ref
|
|
193
|
+
}, forwardedProps), /*#__PURE__*/React.createElement(NavigationContext.Provider, {
|
|
194
|
+
value: {
|
|
195
|
+
orientation
|
|
196
|
+
}
|
|
197
|
+
}, /*#__PURE__*/React.createElement("ul", {
|
|
198
|
+
className: `${CLASSNAME}__list`
|
|
199
|
+
}, children))));
|
|
200
|
+
});
|
|
201
|
+
Navigation.displayName = COMPONENT_NAME;
|
|
202
|
+
Navigation.className = CLASSNAME;
|
|
203
|
+
Navigation.defaultProps = DEFAULT_PROPS;
|
|
204
|
+
|
|
205
|
+
// Sub components
|
|
206
|
+
Navigation.Section = NavigationSection;
|
|
207
|
+
Navigation.Item = NavigationItem;
|
|
208
|
+
|
|
209
|
+
export { Navigation };
|
|
210
|
+
//# sourceMappingURL=navigation-4fd3917d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation-4fd3917d.js","sources":["../../../src/components/navigation/NavigationItem.tsx","../../../src/components/navigation/context.tsx","../../../src/components/navigation/NavigationSection.tsx","../../../src/components/navigation/Navigation.tsx"],"sourcesContent":["import { ElementType, ReactNode } from 'react';\nimport { Icon, Placement, Size, Tooltip, Text } from '@lumx/react';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { ComponentRef, HasClassName, HasPolymorphicAs, HasRequiredLinkHref, HasTheme } from '@lumx/react/utils/type';\nimport classNames from 'classnames';\nimport { forwardRefPolymorphic } from '@lumx/react/utils/react/forwardRefPolymorphic';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { useOverflowTooltipLabel } from '@lumx/react/hooks/useOverflowTooltipLabel';\nimport { RawClickable } from '@lumx/react/utils/react/RawClickable';\n\ntype BaseNavigationItemProps = {\n /** Icon (SVG path). */\n icon?: string;\n /** Label content. */\n label: ReactNode;\n /** Mark as the current page link */\n isCurrentPage?: boolean;\n};\n\n/**\n * Navigation item props\n */\nexport type NavigationItemProps<E extends ElementType = 'a'> = HasPolymorphicAs<E> &\n HasTheme &\n HasClassName &\n BaseNavigationItemProps &\n HasRequiredLinkHref<E>;\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'NavigationItem';\n\n/**\n * Component default class name and class prefix.\n */\nexport const CLASSNAME = getRootClassName(COMPONENT_NAME);\n\nexport const NavigationItem = Object.assign(\n forwardRefPolymorphic(<E extends ElementType = 'a'>(props: NavigationItemProps<E>, ref: ComponentRef<E>) => {\n const { className, icon, label, isCurrentPage, as: Element = 'a', ...forwardedProps } = props;\n const theme = useTheme();\n const { tooltipLabel, labelRef } = useOverflowTooltipLabel(label);\n\n return (\n <li\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n theme,\n }),\n )}\n >\n <Tooltip label={tooltipLabel} placement={Placement.TOP}>\n <RawClickable\n as={Element}\n className={handleBasicClasses({\n prefix: `${CLASSNAME}__link`,\n isSelected: isCurrentPage,\n })}\n ref={ref as React.Ref<any>}\n aria-current={isCurrentPage ? 'page' : undefined}\n {...forwardedProps}\n >\n {icon ? (\n <Icon className={`${CLASSNAME}__icon`} icon={icon} size={Size.xs} theme={theme} />\n ) : null}\n\n <Text as=\"span\" truncate className={`${CLASSNAME}__label`} ref={labelRef}>\n {label}\n </Text>\n </RawClickable>\n </Tooltip>\n </li>\n );\n }),\n {\n displayName: COMPONENT_NAME,\n className: CLASSNAME,\n },\n);\n","import { createContext } from 'react';\n\nimport { Orientation } from '@lumx/core/js/constants';\n\nexport const NavigationContext = createContext<{ orientation?: Orientation } | undefined>({\n orientation: Orientation.vertical,\n});\n","import { useRef, useState, useContext } from 'react';\n\nimport { mdiChevronDown, mdiChevronUp } from '@lumx/icons';\nimport { Icon, Size, Text, Orientation, Popover, Placement, Theme } from '@lumx/react';\nimport classNames from 'classnames';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { HasClassName } from '@lumx/react/utils/type';\nimport { ThemeProvider, useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { useId } from '@lumx/react/hooks/useId';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { RawClickable } from '@lumx/react/utils/react/RawClickable';\nimport { CLASSNAME as ITEM_CLASSNAME } from './NavigationItem';\nimport { NavigationContext } from './context';\n\nexport interface NavigationSectionProps extends React.ComponentPropsWithoutRef<'button'>, HasClassName {\n /** Items inside the section */\n children: React.ReactNode;\n /** Icon (SVG path). */\n icon?: string;\n /** Label content. */\n label: string | React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'NavigationSection';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\nexport const NavigationSection = forwardRef<NavigationSectionProps, HTMLLIElement>((props, ref) => {\n const { children, className, label, icon, ...forwardedProps } = props;\n const [isOpen, setIsOpen] = useState(false);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const sectionId = useId();\n const { orientation } = useContext(NavigationContext) || {};\n const theme = useTheme();\n const isDropdown = orientation === Orientation.horizontal;\n return (\n <li\n className={classNames(\n className,\n CLASSNAME,\n ITEM_CLASSNAME,\n handleBasicClasses({\n prefix: ITEM_CLASSNAME,\n theme,\n }),\n )}\n ref={ref}\n >\n <RawClickable<'button'>\n as=\"button\"\n {...forwardedProps}\n aria-controls={sectionId}\n aria-expanded={isOpen}\n className={classNames(`${ITEM_CLASSNAME}__link`)}\n ref={buttonRef}\n onClick={(event) => {\n setIsOpen(!isOpen);\n event.stopPropagation();\n }}\n >\n {icon ? <Icon className={`${ITEM_CLASSNAME}__icon`} icon={icon} size={Size.xs} /> : null}\n\n <Text as=\"span\" truncate className={`${ITEM_CLASSNAME}__label`} ref={ref}>\n {label}\n </Text>\n <Icon\n className={classNames(`${ITEM_CLASSNAME}__icon`, `${CLASSNAME}__chevron`)}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n />\n </RawClickable>\n {isOpen &&\n (isDropdown ? (\n <Popover\n anchorRef={buttonRef}\n isOpen={isOpen}\n placement={Placement.BOTTOM_START}\n usePortal={false}\n closeOnClickAway\n closeOnEscape\n onClick={() => setIsOpen(false)}\n onClose={() => setIsOpen(false)}\n zIndex={996}\n >\n <ThemeProvider value={Theme.light}>\n <ul className={`${CLASSNAME}__drawer--popover`} id={sectionId}>\n <NavigationContext.Provider value={{ orientation: Orientation.vertical }}>\n {children}\n </NavigationContext.Provider>\n </ul>\n </ThemeProvider>\n </Popover>\n ) : (\n <ul className={`${CLASSNAME}__drawer`} id={sectionId}>\n {children}\n </ul>\n ))}\n </li>\n );\n});\nNavigationSection.displayName = COMPONENT_NAME;\nNavigationSection.className = CLASSNAME;\n","import classNames from 'classnames';\n\nimport { HasAriaLabelOrLabelledBy, HasClassName, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { Orientation, Theme } from '@lumx/react';\nimport { ThemeProvider, useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { NavigationSection } from './NavigationSection';\nimport { NavigationItem } from './NavigationItem';\nimport { NavigationContext } from './context';\n\nexport type NavigationProps = React.ComponentProps<'nav'> &\n HasClassName &\n HasTheme & {\n /** Content of the navigation. These components should be of type NavigationItem to be rendered */\n children?: React.ReactNode;\n orientation?: Orientation;\n } & HasAriaLabelOrLabelledBy;\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Navigation';\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 = {\n orientation: Orientation.vertical,\n};\n\ntype SubComponents = {\n Section: typeof NavigationSection;\n Item: typeof NavigationItem;\n};\n\nexport const Navigation = forwardRef<NavigationProps, HTMLElement, SubComponents>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const {\n children,\n className,\n theme = defaultTheme,\n orientation = DEFAULT_PROPS.orientation,\n ...forwardedProps\n } = props;\n return (\n <ThemeProvider value={theme}>\n <nav\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n theme,\n orientation,\n }),\n )}\n ref={ref}\n {...forwardedProps}\n >\n <NavigationContext.Provider value={{ orientation }}>\n <ul className={`${CLASSNAME}__list`}>{children}</ul>\n </NavigationContext.Provider>\n </nav>\n </ThemeProvider>\n );\n});\nNavigation.displayName = COMPONENT_NAME;\nNavigation.className = CLASSNAME;\nNavigation.defaultProps = DEFAULT_PROPS;\n\n// Sub components\nNavigation.Section = NavigationSection;\nNavigation.Item = NavigationItem;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","NavigationItem","Object","assign","forwardRefPolymorphic","props","ref","className","icon","label","isCurrentPage","as","Element","forwardedProps","theme","useTheme","tooltipLabel","labelRef","useOverflowTooltipLabel","React","createElement","classNames","handleBasicClasses","prefix","Tooltip","placement","Placement","TOP","RawClickable","_extends","isSelected","undefined","Icon","size","Size","xs","Text","truncate","displayName","NavigationContext","createContext","orientation","Orientation","vertical","NavigationSection","forwardRef","children","isOpen","setIsOpen","useState","buttonRef","useRef","sectionId","useId","useContext","isDropdown","horizontal","ITEM_CLASSNAME","onClick","event","stopPropagation","mdiChevronUp","mdiChevronDown","Popover","anchorRef","BOTTOM_START","usePortal","closeOnClickAway","closeOnEscape","onClose","zIndex","ThemeProvider","value","Theme","light","id","Provider","DEFAULT_PROPS","Navigation","defaultTheme","defaultProps","Section","Item"],"mappings":";;;;;;;;;;;;;;AAmBA;AACA;AACA;;AAOA;AACA;AACA;AACA,MAAMA,gBAAc,GAAG,gBAAgB,CAAA;;AAEvC;AACA;AACA;AACO,MAAMC,WAAS,GAAGC,gBAAgB,CAACF,gBAAc,CAAC,CAAA;AAElD,MAAMG,cAAc,GAAGC,MAAM,CAACC,MAAM,CACvCC,qBAAqB,CAAC,CAA8BC,KAA6B,EAAEC,GAAoB,KAAK;EACxG,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC,KAAK;IAAEC,aAAa;IAAEC,EAAE,EAAEC,OAAO,GAAG,GAAG;IAAE,GAAGC,cAAAA;AAAe,GAAC,GAAGR,KAAK,CAAA;AAC7F,EAAA,MAAMS,KAAK,GAAGC,QAAQ,EAAE,CAAA;EACxB,MAAM;IAAEC,YAAY;AAAEC,IAAAA,QAAAA;AAAS,GAAC,GAAGC,uBAAuB,CAACT,KAAK,CAAC,CAAA;EAEjE,oBACIU,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AACIb,IAAAA,SAAS,EAAEc,UAAU,CACjBd,SAAS,EACTe,kBAAkB,CAAC;AACfC,MAAAA,MAAM,EAAExB,WAAS;AACjBe,MAAAA,KAAAA;AACJ,KAAC,CACL,CAAA;AAAE,GAAA,eAEFK,KAAA,CAAAC,aAAA,CAACI,OAAO,EAAA;AAACf,IAAAA,KAAK,EAAEO,YAAa;IAACS,SAAS,EAAEC,SAAS,CAACC,GAAAA;AAAI,GAAA,eACnDR,KAAA,CAAAC,aAAA,CAACQ,YAAY,EAAAC,QAAA,CAAA;AACTlB,IAAAA,EAAE,EAAEC,OAAQ;IACZL,SAAS,EAAEe,kBAAkB,CAAC;MAC1BC,MAAM,EAAE,CAAGxB,EAAAA,WAAS,CAAQ,MAAA,CAAA;AAC5B+B,MAAAA,UAAU,EAAEpB,aAAAA;AAChB,KAAC,CAAE;AACHJ,IAAAA,GAAG,EAAEA,GAAsB;IAC3B,cAAcI,EAAAA,aAAa,GAAG,MAAM,GAAGqB,SAAAA;GACnClB,EAAAA,cAAc,GAEjBL,IAAI,gBACDW,KAAA,CAAAC,aAAA,CAACY,IAAI,EAAA;IAACzB,SAAS,EAAE,CAAGR,EAAAA,WAAS,CAAS,MAAA,CAAA;AAACS,IAAAA,IAAI,EAAEA,IAAK;IAACyB,IAAI,EAAEC,IAAI,CAACC,EAAG;AAACrB,IAAAA,KAAK,EAAEA,KAAAA;GAAQ,CAAC,GAClF,IAAI,eAERK,KAAA,CAAAC,aAAA,CAACgB,IAAI,EAAA;AAACzB,IAAAA,EAAE,EAAC,MAAM;IAAC0B,QAAQ,EAAA,IAAA;IAAC9B,SAAS,EAAE,CAAGR,EAAAA,WAAS,CAAU,OAAA,CAAA;AAACO,IAAAA,GAAG,EAAEW,QAAAA;AAAS,GAAA,EACpER,KACC,CACI,CACT,CACT,CAAC,CAAA;AAEb,CAAC,CAAC,EACF;AACI6B,EAAAA,WAAW,EAAExC,gBAAc;AAC3BS,EAAAA,SAAS,EAAER,WAAAA;AACf,CACJ,CAAC;;AC7EM,MAAMwC,iBAAiB,gBAAGC,aAAa,CAA4C;EACtFC,WAAW,EAAEC,WAAW,CAACC,QAAAA;AAC7B,CAAC,CAAC;;ACkBF;AACA;AACA;AACA,MAAM7C,gBAAc,GAAG,mBAAmB,CAAA;;AAE1C;AACA;AACA;AACA,MAAMC,WAAS,GAAGC,gBAAgB,CAACF,gBAAc,CAAC,CAAA;AAE3C,MAAM8C,iBAAiB,GAAGC,UAAU,CAAwC,CAACxC,KAAK,EAAEC,GAAG,KAAK;EAC/F,MAAM;IAAEwC,QAAQ;IAAEvC,SAAS;IAAEE,KAAK;IAAED,IAAI;IAAE,GAAGK,cAAAA;AAAe,GAAC,GAAGR,KAAK,CAAA;EACrE,MAAM,CAAC0C,MAAM,EAAEC,SAAS,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC3C,EAAA,MAAMC,SAAS,GAAGC,MAAM,CAAoB,IAAI,CAAC,CAAA;AACjD,EAAA,MAAMC,SAAS,GAAGC,KAAK,EAAE,CAAA;EACzB,MAAM;AAAEZ,IAAAA,WAAAA;AAAY,GAAC,GAAGa,UAAU,CAACf,iBAAiB,CAAC,IAAI,EAAE,CAAA;AAC3D,EAAA,MAAMzB,KAAK,GAAGC,QAAQ,EAAE,CAAA;AACxB,EAAA,MAAMwC,UAAU,GAAGd,WAAW,KAAKC,WAAW,CAACc,UAAU,CAAA;EACzD,oBACIrC,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IACIb,SAAS,EAAEc,UAAU,CACjBd,SAAS,EACTR,WAAS,EACT0D,WAAc,EACdnC,kBAAkB,CAAC;AACfC,MAAAA,MAAM,EAAEkC,WAAc;AACtB3C,MAAAA,KAAAA;AACJ,KAAC,CACL,CAAE;AACFR,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,eAETa,KAAA,CAAAC,aAAA,CAACQ,YAAY,EAAAC,QAAA,CAAA;AACTlB,IAAAA,EAAE,EAAC,QAAA;AAAQ,GAAA,EACPE,cAAc,EAAA;AAClB,IAAA,eAAA,EAAeuC,SAAU;AACzB,IAAA,eAAA,EAAeL,MAAO;AACtBxC,IAAAA,SAAS,EAAEc,UAAU,CAAC,CAAGoC,EAAAA,WAAc,QAAQ,CAAE;AACjDnD,IAAAA,GAAG,EAAE4C,SAAU;IACfQ,OAAO,EAAGC,KAAK,IAAK;MAChBX,SAAS,CAAC,CAACD,MAAM,CAAC,CAAA;MAClBY,KAAK,CAACC,eAAe,EAAE,CAAA;AAC3B,KAAA;AAAE,GAAA,CAAA,EAEDpD,IAAI,gBAAGW,KAAA,CAAAC,aAAA,CAACY,IAAI,EAAA;IAACzB,SAAS,EAAE,CAAGkD,EAAAA,WAAc,CAAS,MAAA,CAAA;AAACjD,IAAAA,IAAI,EAAEA,IAAK;IAACyB,IAAI,EAAEC,IAAI,CAACC,EAAAA;GAAK,CAAC,GAAG,IAAI,eAExFhB,KAAA,CAAAC,aAAA,CAACgB,IAAI,EAAA;AAACzB,IAAAA,EAAE,EAAC,MAAM;IAAC0B,QAAQ,EAAA,IAAA;IAAC9B,SAAS,EAAE,CAAGkD,EAAAA,WAAc,CAAU,OAAA,CAAA;AAACnD,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,EACpEG,KACC,CAAC,eACPU,KAAA,CAAAC,aAAA,CAACY,IAAI,EAAA;IACDzB,SAAS,EAAEc,UAAU,CAAC,CAAGoC,EAAAA,WAAc,QAAQ,EAAE,CAAA,EAAG1D,WAAS,CAAA,SAAA,CAAW,CAAE;AAC1ES,IAAAA,IAAI,EAAEuC,MAAM,GAAGc,YAAY,GAAGC,cAAAA;GACjC,CACS,CAAC,EACdf,MAAM,KACFQ,UAAU,gBACPpC,KAAA,CAAAC,aAAA,CAAC2C,OAAO,EAAA;AACJC,IAAAA,SAAS,EAAEd,SAAU;AACrBH,IAAAA,MAAM,EAAEA,MAAO;IACftB,SAAS,EAAEC,SAAS,CAACuC,YAAa;AAClCC,IAAAA,SAAS,EAAE,KAAM;IACjBC,gBAAgB,EAAA,IAAA;IAChBC,aAAa,EAAA,IAAA;AACbV,IAAAA,OAAO,EAAEA,MAAMV,SAAS,CAAC,KAAK,CAAE;AAChCqB,IAAAA,OAAO,EAAEA,MAAMrB,SAAS,CAAC,KAAK,CAAE;AAChCsB,IAAAA,MAAM,EAAE,GAAA;AAAI,GAAA,eAEZnD,KAAA,CAAAC,aAAA,CAACmD,aAAa,EAAA;IAACC,KAAK,EAAEC,KAAK,CAACC,KAAAA;GACxBvD,eAAAA,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIb,SAAS,EAAE,CAAGR,EAAAA,WAAS,CAAoB,iBAAA,CAAA;AAAC4E,IAAAA,EAAE,EAAEvB,SAAAA;AAAU,GAAA,eAC1DjC,KAAA,CAAAC,aAAA,CAACmB,iBAAiB,CAACqC,QAAQ,EAAA;AAACJ,IAAAA,KAAK,EAAE;MAAE/B,WAAW,EAAEC,WAAW,CAACC,QAAAA;AAAS,KAAA;GAClEG,EAAAA,QACuB,CAC5B,CACO,CACV,CAAC,gBAEV3B,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIb,SAAS,EAAE,CAAGR,EAAAA,WAAS,CAAW,QAAA,CAAA;AAAC4E,IAAAA,EAAE,EAAEvB,SAAAA;GACtCN,EAAAA,QACD,CACP,CACL,CAAC,CAAA;AAEb,CAAC,CAAC,CAAA;AACFF,iBAAiB,CAACN,WAAW,GAAGxC,gBAAc,CAAA;AAC9C8C,iBAAiB,CAACrC,SAAS,GAAGR,WAAS;;ACvFvC;AACA;AACA;AACA,MAAMD,cAAc,GAAG,YAAY,CAAA;;AAEnC;AACA;AACA;AACA,MAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAc,CAAC,CAAA;;AAElD;AACA;AACA;AACA,MAAM+E,aAAa,GAAG;EAClBpC,WAAW,EAAEC,WAAW,CAACC,QAAAA;AAC7B,CAAC,CAAA;AAOM,MAAMmC,UAAU,GAAGjC,UAAU,CAA8C,CAACxC,KAAK,EAAEC,GAAG,KAAK;EAC9F,MAAMyE,YAAY,GAAGhE,QAAQ,EAAE,IAAI0D,KAAK,CAACC,KAAK,CAAA;EAC9C,MAAM;IACF5B,QAAQ;IACRvC,SAAS;AACTO,IAAAA,KAAK,GAAGiE,YAAY;IACpBtC,WAAW,GAAGoC,aAAa,CAACpC,WAAW;IACvC,GAAG5B,cAAAA;AACP,GAAC,GAAGR,KAAK,CAAA;AACT,EAAA,oBACIc,KAAA,CAAAC,aAAA,CAACmD,aAAa,EAAA;AAACC,IAAAA,KAAK,EAAE1D,KAAAA;AAAM,GAAA,eACxBK,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAAS,QAAA,CAAA;AACItB,IAAAA,SAAS,EAAEc,UAAU,CACjBd,SAAS,EACTe,kBAAkB,CAAC;AACfC,MAAAA,MAAM,EAAExB,SAAS;MACjBe,KAAK;AACL2B,MAAAA,WAAAA;AACJ,KAAC,CACL,CAAE;AACFnC,IAAAA,GAAG,EAAEA,GAAAA;GACDO,EAAAA,cAAc,gBAElBM,KAAA,CAAAC,aAAA,CAACmB,iBAAiB,CAACqC,QAAQ,EAAA;AAACJ,IAAAA,KAAK,EAAE;AAAE/B,MAAAA,WAAAA;AAAY,KAAA;GAC7CtB,eAAAA,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;IAAIb,SAAS,EAAE,GAAGR,SAAS,CAAA,MAAA,CAAA;AAAS,GAAA,EAAE+C,QAAa,CAC3B,CAC3B,CACM,CAAC,CAAA;AAExB,CAAC,EAAC;AACFgC,UAAU,CAACxC,WAAW,GAAGxC,cAAc,CAAA;AACvCgF,UAAU,CAACvE,SAAS,GAAGR,SAAS,CAAA;AAChC+E,UAAU,CAACE,YAAY,GAAGH,aAAa,CAAA;;AAEvC;AACAC,UAAU,CAACG,OAAO,GAAGrC,iBAAiB,CAAA;AACtCkC,UAAU,CAACI,IAAI,GAAGjF,cAAc;;;;"}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
+
import { f as forwardRef, _ as _extends, c as classNames } from '../forwardRef-49d2bb84.js';
|
|
1
2
|
import { useRef } from 'react';
|
|
2
|
-
import { m as getRootClassName, n as forwardRef, b as Theme, l as classNames, c as Size, d as Emphasis, N as NOTIFICATION_TRANSITION_DURATION } from './6589b796.js';
|
|
3
3
|
import isFunction from 'lodash/isFunction';
|
|
4
|
-
import { D as DOCUMENT } from '
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { u as
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { a as Button } from './a34639bd.js';
|
|
4
|
+
import { D as DOCUMENT } from '../constants-d0e3f49e.js';
|
|
5
|
+
import { mdiAlert, mdiInformation, mdiCheckCircle, mdiAlertCircle } from '@lumx/icons';
|
|
6
|
+
import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
|
|
7
|
+
import { u as useTransitionVisibility } from '../useTransitionVisibility-321fdbfa.js';
|
|
8
|
+
import { m as mergeRefs } from '../mergeRefs-f0d7d6ea.js';
|
|
9
|
+
import { u as useTheme } from '../ThemeContext-3181f000.js';
|
|
10
|
+
import { P as Portal } from '../Portal-c43d098b.js';
|
|
11
|
+
import { Theme, Size, Emphasis, NOTIFICATION_TRANSITION_DURATION } from '@lumx/core/js/constants';
|
|
12
|
+
import { Icon } from './icon-2e7345ad.js';
|
|
13
|
+
import { a as Button } from '../Button-f19e18df.js';
|
|
15
14
|
|
|
16
15
|
/**
|
|
17
16
|
* Notification icon and colors according to their type.
|
|
@@ -35,6 +34,10 @@ const NOTIFICATION_CONFIGURATION = {
|
|
|
35
34
|
}
|
|
36
35
|
};
|
|
37
36
|
|
|
37
|
+
/**
|
|
38
|
+
* Defines the props of the component.
|
|
39
|
+
*/
|
|
40
|
+
|
|
38
41
|
/**
|
|
39
42
|
* Component display name.
|
|
40
43
|
*/
|
|
@@ -97,49 +100,41 @@ const Notification = forwardRef((props, ref) => {
|
|
|
97
100
|
if (!type || !isVisible) {
|
|
98
101
|
return null;
|
|
99
102
|
}
|
|
100
|
-
return /*#__PURE__*/
|
|
101
|
-
enabled: usePortal
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
onClick: handleCallback,
|
|
132
|
-
children: /*#__PURE__*/jsx("span", {
|
|
133
|
-
children: actionLabel
|
|
134
|
-
})
|
|
135
|
-
})
|
|
136
|
-
})]
|
|
137
|
-
})
|
|
138
|
-
});
|
|
103
|
+
return /*#__PURE__*/React.createElement(Portal, {
|
|
104
|
+
enabled: usePortal
|
|
105
|
+
}, /*#__PURE__*/React.createElement("div", _extends({
|
|
106
|
+
ref: mergeRefs(ref, rootRef),
|
|
107
|
+
role: "alert"
|
|
108
|
+
}, forwardedProps, {
|
|
109
|
+
className: classNames(className, handleBasicClasses({
|
|
110
|
+
color,
|
|
111
|
+
hasAction,
|
|
112
|
+
isHidden: !isOpen,
|
|
113
|
+
prefix: CLASSNAME
|
|
114
|
+
})),
|
|
115
|
+
onClick: onClick,
|
|
116
|
+
style: {
|
|
117
|
+
...style,
|
|
118
|
+
zIndex
|
|
119
|
+
}
|
|
120
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
121
|
+
className: `${CLASSNAME}__icon`
|
|
122
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
123
|
+
icon: icon,
|
|
124
|
+
size: Size.s
|
|
125
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
126
|
+
className: `${CLASSNAME}__content`
|
|
127
|
+
}, content), hasAction && /*#__PURE__*/React.createElement("div", {
|
|
128
|
+
className: `${CLASSNAME}__action`
|
|
129
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
130
|
+
emphasis: Emphasis.medium,
|
|
131
|
+
theme: theme,
|
|
132
|
+
onClick: handleCallback
|
|
133
|
+
}, /*#__PURE__*/React.createElement("span", null, actionLabel)))));
|
|
139
134
|
});
|
|
140
135
|
Notification.displayName = COMPONENT_NAME;
|
|
141
136
|
Notification.className = CLASSNAME;
|
|
142
137
|
Notification.defaultProps = DEFAULT_PROPS;
|
|
143
138
|
|
|
144
139
|
export { Notification };
|
|
145
|
-
//# sourceMappingURL=
|
|
140
|
+
//# sourceMappingURL=notification-9063c963.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-9063c963.js","sources":["../../../src/components/notification/constants.ts","../../../src/components/notification/Notification.tsx"],"sourcesContent":["import { mdiAlert, mdiAlertCircle, mdiCheckCircle, mdiInformation } from '@lumx/icons';\n\n/**\n * Notification delay before hiding.\n */\nexport const HIDE_DELAY = 6000;\n\n/**\n * Notification icon and colors according to their type.\n */\nexport const NOTIFICATION_CONFIGURATION = {\n error: {\n color: 'red',\n icon: mdiAlert,\n },\n info: {\n color: 'blue',\n icon: mdiInformation,\n },\n success: {\n color: 'green',\n icon: mdiCheckCircle,\n },\n warning: {\n color: 'yellow',\n icon: mdiAlertCircle,\n },\n};\n","import { useRef } from 'react';\n\nimport classNames from 'classnames';\nimport isFunction from 'lodash/isFunction';\n\nimport { Button, Emphasis, Icon, Kind, Size, Theme } from '@lumx/react';\nimport { DOCUMENT, NOTIFICATION_TRANSITION_DURATION } from '@lumx/react/constants';\nimport { NOTIFICATION_CONFIGURATION } from '@lumx/react/components/notification/constants';\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { useTransitionVisibility } from '@lumx/react/hooks/useTransitionVisibility';\nimport { mergeRefs } from '@lumx/react/utils/react/mergeRefs';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { Portal } from '@lumx/react/utils';\n\n/**\n * Defines the props of the component.\n */\nexport interface NotificationProps extends GenericProps, HasTheme {\n /** Action button label. */\n actionLabel?: string;\n /** Content. */\n content?: React.ReactNode;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Notification type. */\n type?: Kind;\n /** Z-axis position. */\n zIndex?: number;\n /** On action button click callback. */\n onActionClick?(): void;\n /** On click callback. */\n onClick?(): void;\n /** Whether the notification should be rendered into a DOM node that exists outside the DOM hierarchy of the parent component. */\n usePortal?: boolean;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Notification';\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<NotificationProps> = {\n zIndex: 9999,\n usePortal: true,\n};\n\n/* eslint-disable react-hooks/rules-of-hooks, jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */\n/**\n * Notification component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Notification = forwardRef<NotificationProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const {\n actionLabel,\n className,\n content,\n isOpen,\n onActionClick,\n onClick,\n theme = defaultTheme,\n type,\n zIndex = DEFAULT_PROPS.zIndex,\n usePortal = DEFAULT_PROPS.usePortal,\n style,\n ...forwardedProps\n } = props;\n if (!DOCUMENT) {\n // Can't render in SSR.\n return null;\n }\n const { color, icon } = NOTIFICATION_CONFIGURATION[type as Kind] || {};\n const rootRef = useRef<HTMLDivElement>(null);\n const isVisible = useTransitionVisibility(rootRef, !!isOpen, NOTIFICATION_TRANSITION_DURATION);\n const hasAction: boolean = Boolean(onActionClick) && Boolean(actionLabel);\n\n const handleCallback = (evt: React.MouseEvent) => {\n if (isFunction(onActionClick)) {\n onActionClick();\n }\n evt.stopPropagation();\n };\n\n if (!type || !isVisible) {\n return null;\n }\n\n return (\n <Portal enabled={usePortal}>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */}\n <div\n ref={mergeRefs(ref, rootRef)}\n role=\"alert\"\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n color,\n hasAction,\n isHidden: !isOpen,\n prefix: CLASSNAME,\n }),\n )}\n onClick={onClick}\n style={{ ...style, zIndex }}\n >\n <div className={`${CLASSNAME}__icon`}>\n <Icon icon={icon} size={Size.s} />\n </div>\n <div className={`${CLASSNAME}__content`}>{content}</div>\n {hasAction && (\n <div className={`${CLASSNAME}__action`}>\n <Button emphasis={Emphasis.medium} theme={theme} onClick={handleCallback}>\n <span>{actionLabel}</span>\n </Button>\n </div>\n )}\n </div>\n </Portal>\n );\n});\nNotification.displayName = COMPONENT_NAME;\nNotification.className = CLASSNAME;\nNotification.defaultProps = DEFAULT_PROPS;\n"],"names":["NOTIFICATION_CONFIGURATION","error","color","icon","mdiAlert","info","mdiInformation","success","mdiCheckCircle","warning","mdiAlertCircle","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","zIndex","usePortal","Notification","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","actionLabel","className","content","isOpen","onActionClick","onClick","theme","type","style","forwardedProps","DOCUMENT","rootRef","useRef","isVisible","useTransitionVisibility","NOTIFICATION_TRANSITION_DURATION","hasAction","Boolean","handleCallback","evt","isFunction","stopPropagation","React","createElement","Portal","enabled","_extends","mergeRefs","role","classNames","handleBasicClasses","isHidden","prefix","Icon","size","Size","s","Button","emphasis","Emphasis","medium","displayName","defaultProps"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover-3c4c54bd.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { f as forwardRef, _ as _extends, c as classNames } from '../forwardRef-49d2bb84.js';
|
|
2
|
+
import isObject from 'lodash/isObject';
|
|
3
|
+
import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
|
|
4
|
+
import { u as useTheme } from '../ThemeContext-3181f000.js';
|
|
5
|
+
import { ThumbnailVariant } from './thumbnail-e3acff82.js';
|
|
6
|
+
import { Orientation, Theme } from '@lumx/core/js/constants';
|
|
7
|
+
import { T as Thumbnail } from '../Thumbnail-30d2a781.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Defines the props of the component.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Component display name.
|
|
15
|
+
*/
|
|
16
|
+
const COMPONENT_NAME = 'PostBlock';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Component default class name and class prefix.
|
|
20
|
+
*/
|
|
21
|
+
const CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Component default props.
|
|
25
|
+
*/
|
|
26
|
+
const DEFAULT_PROPS = {
|
|
27
|
+
orientation: Orientation.horizontal
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* PostBlock component.
|
|
32
|
+
*
|
|
33
|
+
* @param props Component props.
|
|
34
|
+
* @param ref Component ref.
|
|
35
|
+
* @return React element.
|
|
36
|
+
*/
|
|
37
|
+
const PostBlock = forwardRef((props, ref) => {
|
|
38
|
+
const defaultTheme = useTheme() || Theme.light;
|
|
39
|
+
const {
|
|
40
|
+
actions,
|
|
41
|
+
attachments,
|
|
42
|
+
author,
|
|
43
|
+
className,
|
|
44
|
+
meta,
|
|
45
|
+
onClick,
|
|
46
|
+
orientation = DEFAULT_PROPS.orientation,
|
|
47
|
+
tags,
|
|
48
|
+
text,
|
|
49
|
+
theme = defaultTheme,
|
|
50
|
+
thumbnailProps,
|
|
51
|
+
title,
|
|
52
|
+
...forwardedProps
|
|
53
|
+
} = props;
|
|
54
|
+
return /*#__PURE__*/React.createElement("div", _extends({
|
|
55
|
+
ref: ref,
|
|
56
|
+
className: classNames(className, handleBasicClasses({
|
|
57
|
+
prefix: CLASSNAME,
|
|
58
|
+
orientation,
|
|
59
|
+
theme
|
|
60
|
+
}))
|
|
61
|
+
}, forwardedProps), thumbnailProps && /*#__PURE__*/React.createElement("div", {
|
|
62
|
+
className: `${CLASSNAME}__thumbnail`
|
|
63
|
+
}, /*#__PURE__*/React.createElement(Thumbnail, _extends({}, thumbnailProps, {
|
|
64
|
+
theme: theme,
|
|
65
|
+
variant: ThumbnailVariant.rounded
|
|
66
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
67
|
+
className: `${CLASSNAME}__wrapper`
|
|
68
|
+
}, author && /*#__PURE__*/React.createElement("div", {
|
|
69
|
+
className: `${CLASSNAME}__author`
|
|
70
|
+
}, author), title && /*#__PURE__*/React.createElement("button", {
|
|
71
|
+
type: "button",
|
|
72
|
+
className: `${CLASSNAME}__title`,
|
|
73
|
+
onClick: onClick
|
|
74
|
+
}, title), meta && /*#__PURE__*/React.createElement("span", {
|
|
75
|
+
className: `${CLASSNAME}__meta`
|
|
76
|
+
}, meta), isObject(text) && text.__html ?
|
|
77
|
+
/*#__PURE__*/
|
|
78
|
+
// eslint-disable-next-line react/no-danger
|
|
79
|
+
React.createElement("p", {
|
|
80
|
+
dangerouslySetInnerHTML: text,
|
|
81
|
+
className: `${CLASSNAME}__text`
|
|
82
|
+
}) : /*#__PURE__*/React.createElement("p", {
|
|
83
|
+
className: `${CLASSNAME}__text`
|
|
84
|
+
}, text), attachments && /*#__PURE__*/React.createElement("div", {
|
|
85
|
+
className: `${CLASSNAME}__attachments`
|
|
86
|
+
}, attachments), (tags || actions) && /*#__PURE__*/React.createElement("div", {
|
|
87
|
+
className: `${CLASSNAME}__toolbar`
|
|
88
|
+
}, tags && /*#__PURE__*/React.createElement("div", {
|
|
89
|
+
className: `${CLASSNAME}__tags`
|
|
90
|
+
}, tags), actions && /*#__PURE__*/React.createElement("div", {
|
|
91
|
+
className: `${CLASSNAME}__actions`
|
|
92
|
+
}, actions))));
|
|
93
|
+
});
|
|
94
|
+
PostBlock.displayName = COMPONENT_NAME;
|
|
95
|
+
PostBlock.className = CLASSNAME;
|
|
96
|
+
PostBlock.defaultProps = DEFAULT_PROPS;
|
|
97
|
+
|
|
98
|
+
export { PostBlock };
|
|
99
|
+
//# sourceMappingURL=post-block-0cfc2206.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-block-0cfc2206.js","sources":["../../../src/components/post-block/PostBlock.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nimport classNames from 'classnames';\nimport isObject from 'lodash/isObject';\n\nimport { Orientation, Theme, Thumbnail, ThumbnailProps, ThumbnailVariant } from '@lumx/react';\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface PostBlockProps extends GenericProps, HasTheme {\n /** Action toolbar content. */\n actions?: ReactNode;\n /** Attachment content. */\n attachments?: ReactNode;\n /** Author content. */\n author?: ReactNode;\n /** Metadata content. */\n meta?: ReactNode;\n /** Orientation. */\n orientation?: Orientation;\n /** Tag content. */\n tags?: ReactNode;\n /** Content (string, or sanitized html). */\n text?: string | { __html: string };\n /** Thumbnail. */\n thumbnailProps?: ThumbnailProps;\n /** Title. */\n title: string;\n /** On click callback. */\n onClick?(): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'PostBlock';\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<PostBlockProps> = {\n orientation: Orientation.horizontal,\n};\n\n/**\n * PostBlock component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const PostBlock = forwardRef<PostBlockProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const {\n actions,\n attachments,\n author,\n className,\n meta,\n onClick,\n orientation = DEFAULT_PROPS.orientation,\n tags,\n text,\n theme = defaultTheme,\n thumbnailProps,\n title,\n ...forwardedProps\n } = props;\n\n return (\n <div\n ref={ref}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, orientation, theme }))}\n {...forwardedProps}\n >\n {thumbnailProps && (\n <div className={`${CLASSNAME}__thumbnail`}>\n <Thumbnail {...thumbnailProps} theme={theme} variant={ThumbnailVariant.rounded} />\n </div>\n )}\n <div className={`${CLASSNAME}__wrapper`}>\n {author && <div className={`${CLASSNAME}__author`}>{author}</div>}\n\n {title && (\n <button type=\"button\" className={`${CLASSNAME}__title`} onClick={onClick}>\n {title}\n </button>\n )}\n\n {meta && <span className={`${CLASSNAME}__meta`}>{meta}</span>}\n\n {isObject(text) && text.__html ? (\n // eslint-disable-next-line react/no-danger\n <p dangerouslySetInnerHTML={text} className={`${CLASSNAME}__text`} />\n ) : (\n <p className={`${CLASSNAME}__text`}>{text}</p>\n )}\n\n {attachments && <div className={`${CLASSNAME}__attachments`}>{attachments}</div>}\n {(tags || actions) && (\n <div className={`${CLASSNAME}__toolbar`}>\n {tags && <div className={`${CLASSNAME}__tags`}>{tags}</div>}\n {actions && <div className={`${CLASSNAME}__actions`}>{actions}</div>}\n </div>\n )}\n </div>\n </div>\n );\n});\nPostBlock.displayName = COMPONENT_NAME;\nPostBlock.className = CLASSNAME;\nPostBlock.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","orientation","Orientation","horizontal","PostBlock","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","actions","attachments","author","className","meta","onClick","tags","text","theme","thumbnailProps","title","forwardedProps","React","createElement","_extends","classNames","handleBasicClasses","prefix","Thumbnail","variant","ThumbnailVariant","rounded","type","isObject","__html","dangerouslySetInnerHTML","displayName","defaultProps"],"mappings":"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"}
|