@lumx/react 3.20.1-alpha.11 → 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/{baa0a23b.js → Button-f19e18df.js} +9 -8
- package/_internal/Button-f19e18df.js.map +1 -0
- package/_internal/{01bc8fcf.js → ButtonRoot-ab633b1d.js} +7 -6
- package/_internal/ButtonRoot-ab633b1d.js.map +1 -0
- package/_internal/{e2440593.js → Chip-4c572eec.js} +7 -6
- package/_internal/Chip-4c572eec.js.map +1 -0
- package/_internal/{bcce6ceb.js → ClickAwayProvider-bcce6ceb.js} +1 -1
- package/_internal/ClickAwayProvider-bcce6ceb.js.map +1 -0
- package/_internal/{077b7bef.js → DisabledStateContext-077b7bef.js} +1 -1
- package/_internal/DisabledStateContext-077b7bef.js.map +1 -0
- package/_internal/{30f4c83c.js → HeadingLevelProvider-e4817816.js} +2 -2
- package/_internal/HeadingLevelProvider-e4817816.js.map +1 -0
- package/_internal/{7b214f74.js → IconButton-10585058.js} +8 -6
- package/_internal/IconButton-10585058.js.map +1 -0
- package/_internal/{803945f7.js → ImageCaption-4279b2b6.js} +5 -5
- package/_internal/ImageCaption-4279b2b6.js.map +1 -0
- package/_internal/{1ce667fb.js → List-d5f5d465.js} +8 -7
- package/_internal/List-d5f5d465.js.map +1 -0
- package/_internal/{1aaa0341.js → PopoverDialog-21e5c9dd.js} +18 -16
- package/_internal/PopoverDialog-21e5c9dd.js.map +1 -0
- package/_internal/{c43d098b.js → Portal-c43d098b.js} +1 -1
- package/_internal/Portal-c43d098b.js.map +1 -0
- package/_internal/{432c85a7.js → RawClickable-c76bbc4c.js} +2 -2
- package/_internal/RawClickable-c76bbc4c.js.map +1 -0
- package/_internal/{85d992d2.js → Slides-01f513ce.js} +13 -16
- 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/{714809cc.js → Thumbnail-30d2a781.js} +10 -10
- package/_internal/Thumbnail-30d2a781.js.map +1 -0
- package/_internal/{07e0bd90.js → components/alert-dialog-8f1c163c.js} +10 -10
- package/_internal/components/alert-dialog-8f1c163c.js.map +1 -0
- package/_internal/{87bada02.js → components/autocomplete-bfbdeb3c.js} +13 -11
- package/_internal/components/autocomplete-bfbdeb3c.js.map +1 -0
- package/_internal/{bc4cb4c0.js → components/avatar-6990e3e9.js} +6 -5
- package/_internal/components/avatar-6990e3e9.js.map +1 -0
- package/_internal/{80e5c950.js → components/badge-81543bc7.js} +4 -3
- package/_internal/components/badge-81543bc7.js.map +1 -0
- package/_internal/{43262bfe.js → components/button-927abe71.js} +5 -4
- package/_internal/components/button-927abe71.js.map +1 -0
- package/_internal/{38b3ecf3.js → components/checkbox-dc4caec8.js} +12 -14
- package/_internal/{38b3ecf3.js.map → components/checkbox-dc4caec8.js.map} +1 -1
- package/_internal/{9452daf7.js → components/chip-fb3d0c76.js} +4 -3
- package/_internal/components/chip-fb3d0c76.js.map +1 -0
- package/_internal/{5ba8fae8.js → components/comment-block-b84c4694.js} +7 -6
- 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/{bba7d4c4.js → components/dialog-7dbcb485.js} +17 -16
- package/_internal/components/dialog-7dbcb485.js.map +1 -0
- package/_internal/{3683d267.js → components/divider-12e9b6a0.js} +5 -4
- package/_internal/components/divider-12e9b6a0.js.map +1 -0
- package/_internal/{f57d4eb8.js → components/drag-handle-a38ff757.js} +7 -7
- package/_internal/components/drag-handle-a38ff757.js.map +1 -0
- package/_internal/{2938a251.js → components/dropdown-38b0b6a0.js} +7 -6
- package/_internal/components/dropdown-38b0b6a0.js.map +1 -0
- package/_internal/{bdd41804.js → components/expansion-panel-c4b93653.js} +11 -10
- package/_internal/components/expansion-panel-c4b93653.js.map +1 -0
- package/_internal/{e566d502.js → components/flag-c5e2f5f0.js} +7 -6
- package/_internal/components/flag-c5e2f5f0.js.map +1 -0
- package/_internal/{64046d7a.js → components/flex-box-c8701a85.js} +4 -3
- package/_internal/components/flex-box-c8701a85.js.map +1 -0
- package/_internal/{cb036703.js → components/generic-block-0d6ad5a6.js} +7 -5
- package/_internal/components/generic-block-0d6ad5a6.js.map +1 -0
- package/_internal/{2c7942af.js → components/grid-3b194fe8.js} +4 -3
- package/_internal/components/grid-3b194fe8.js.map +1 -0
- package/_internal/{e4613195.js → components/grid-column-985b9327.js} +3 -2
- package/_internal/components/grid-column-985b9327.js.map +1 -0
- package/_internal/{4c5a7b63.js → components/heading-5e954dfc.js} +6 -5
- package/_internal/components/heading-5e954dfc.js.map +1 -0
- package/_internal/{4e1dde79.js → components/icon-2e7345ad.js} +7 -8
- package/_internal/components/icon-2e7345ad.js.map +1 -0
- package/_internal/{9cfa3e10.js → components/image-block-8d21dd7e.js} +7 -6
- package/_internal/components/image-block-8d21dd7e.js.map +1 -0
- package/_internal/{60f8e509.js → components/image-lightbox-4a5ab962.js} +14 -16
- package/_internal/components/image-lightbox-4a5ab962.js.map +1 -0
- package/_internal/{1eab656b.js → components/inline-list-4884f004.js} +3 -4
- package/_internal/components/inline-list-4884f004.js.map +1 -0
- package/_internal/{fc47f2da.js → components/input-helper-e644e05e.js} +5 -4
- package/_internal/components/input-helper-e644e05e.js.map +1 -0
- package/_internal/{9210e2f3.js → components/input-label-5e509a1b.js} +5 -5
- package/_internal/components/input-label-5e509a1b.js.map +1 -0
- package/_internal/{742d4906.js → components/lightbox-bec1b95f.js} +16 -15
- package/_internal/components/lightbox-bec1b95f.js.map +1 -0
- package/_internal/{1921f348.js → components/link-9637b9e4.js} +7 -9
- package/_internal/components/link-9637b9e4.js.map +1 -0
- package/_internal/{32698205.js → components/link-preview-7a4a6e4b.js} +7 -6
- package/_internal/components/link-preview-7a4a6e4b.js.map +1 -0
- package/_internal/{0f4b35b2.js → components/list-5c8f7122.js} +4 -3
- package/_internal/components/list-5c8f7122.js.map +1 -0
- package/_internal/{4d92e13b.js → components/message-a67067d9.js} +7 -8
- package/_internal/components/message-a67067d9.js.map +1 -0
- package/_internal/{b925072d.js → components/mosaic-92b66c80.js} +6 -5
- package/_internal/components/mosaic-92b66c80.js.map +1 -0
- package/_internal/{2d6bde7d.js → components/navigation-4fd3917d.js} +13 -12
- package/_internal/components/navigation-4fd3917d.js.map +1 -0
- package/_internal/{18334f0d.js → components/notification-9063c963.js} +12 -12
- 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/{a67f26a8.js → components/post-block-0cfc2206.js} +7 -6
- package/_internal/components/post-block-0cfc2206.js.map +1 -0
- package/_internal/{881714a1.js → components/progress-eaf5b33d.js} +5 -4
- package/_internal/components/progress-eaf5b33d.js.map +1 -0
- package/_internal/{aafcf80e.js → components/progress-tracker-4a65718d.js} +13 -16
- package/_internal/components/progress-tracker-4a65718d.js.map +1 -0
- package/_internal/{9cf0d217.js → components/radio-button-3ef8a325.js} +9 -8
- package/_internal/components/radio-button-3ef8a325.js.map +1 -0
- package/_internal/{e53b5a39.js → components/select-d46cfe35.js} +16 -19
- package/_internal/components/select-d46cfe35.js.map +1 -0
- package/_internal/{21cf275f.js → components/side-navigation-75b22f19.js} +11 -10
- package/_internal/components/side-navigation-75b22f19.js.map +1 -0
- package/_internal/{cdc3efab.js → components/skeleton-361ce335.js} +5 -4
- package/_internal/components/skeleton-361ce335.js.map +1 -0
- package/_internal/{0a31e895.js → components/slider-8094cb5c.js} +9 -8
- package/_internal/components/slider-8094cb5c.js.map +1 -0
- package/_internal/{77eb8ef3.js → components/slideshow-2e8cd372.js} +7 -6
- package/_internal/components/slideshow-2e8cd372.js.map +1 -0
- package/_internal/{70cf341b.js → components/switch-5516949b.js} +9 -8
- package/_internal/components/switch-5516949b.js.map +1 -0
- package/_internal/{9d8130ae.js → components/table-fa198ee6.js} +8 -10
- package/_internal/components/table-fa198ee6.js.map +1 -0
- package/_internal/{2368cb68.js → components/tabs-bb9bc2a5.js} +12 -11
- 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/{3646abc3.js → components/text-field-82733568.js} +13 -13
- package/_internal/components/text-field-82733568.js.map +1 -0
- package/_internal/{95a2e851.js → components/thumbnail-e3acff82.js} +3 -3
- package/_internal/components/thumbnail-e3acff82.js.map +1 -0
- package/_internal/{1e4b7ad5.js → components/toolbar-155562be.js} +3 -3
- package/_internal/components/toolbar-155562be.js.map +1 -0
- package/_internal/{d6b3a3c0.js → components/tooltip-84ffb4f9.js} +11 -10
- package/_internal/components/tooltip-84ffb4f9.js.map +1 -0
- package/_internal/{ee64ab0d.js → components/uploader-896a1d89.js} +10 -9
- package/_internal/components/uploader-896a1d89.js.map +1 -0
- package/_internal/{dd0a245d.js → components/user-block-8fd15895.js} +7 -6
- package/_internal/components/user-block-8fd15895.js.map +1 -0
- package/_internal/{407735b4.js → constants-b9e57936.js} +2 -2
- package/_internal/constants-b9e57936.js.map +1 -0
- package/_internal/{b3bfbe72.js → constants-d0e3f49e.js} +2 -2
- package/_internal/constants-d0e3f49e.js.map +1 -0
- package/_internal/{21aeb1c7.js → context-21aeb1c7.js} +1 -1
- 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/{8fcceef3.js → index-b4d256e7.js} +7 -9
- package/_internal/index-b4d256e7.js.map +1 -0
- package/_internal/{72407886.js → index-f415b08e.js} +11 -11
- 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/{d66c4375.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/{60923026.js → useDisableStateProps-fffc365f.js} +2 -2
- package/_internal/useDisableStateProps-fffc365f.js.map +1 -0
- package/_internal/{3f3de25e.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/{aa8c5d9b.js → useTransitionVisibility-321fdbfa.js} +2 -2
- package/_internal/useTransitionVisibility-321fdbfa.js.map +1 -0
- package/_internal/{7c4f4643.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 -11
- package/utils/index.d.ts +1 -1
- package/utils/index.js +3 -3
- package/_internal/01bc8fcf.js.map +0 -1
- package/_internal/0361b7fb.js +0 -15
- package/_internal/0361b7fb.js.map +0 -1
- package/_internal/077b7bef.js.map +0 -1
- package/_internal/07e0bd90.js.map +0 -1
- package/_internal/0a31e895.js.map +0 -1
- package/_internal/0b9c76cb.js +0 -6
- package/_internal/0b9c76cb.js.map +0 -1
- package/_internal/0f4b35b2.js.map +0 -1
- package/_internal/18334f0d.js.map +0 -1
- package/_internal/1921f348.js.map +0 -1
- package/_internal/1aaa0341.js.map +0 -1
- package/_internal/1ce667fb.js.map +0 -1
- package/_internal/1e4b7ad5.js.map +0 -1
- package/_internal/1eab656b.js.map +0 -1
- package/_internal/21aeb1c7.js.map +0 -1
- package/_internal/21cf275f.js.map +0 -1
- package/_internal/230173a8.js.map +0 -1
- package/_internal/2368cb68.js.map +0 -1
- package/_internal/286fc728.js +0 -2
- package/_internal/286fc728.js.map +0 -1
- package/_internal/2938a251.js.map +0 -1
- package/_internal/2a3d237c.js.map +0 -1
- package/_internal/2c7942af.js.map +0 -1
- package/_internal/2d6bde7d.js.map +0 -1
- package/_internal/30f4c83c.js.map +0 -1
- package/_internal/3181f000.js.map +0 -1
- package/_internal/32698205.js.map +0 -1
- package/_internal/3646abc3.js.map +0 -1
- package/_internal/3683d267.js.map +0 -1
- package/_internal/36bd7352.js.map +0 -1
- package/_internal/3a1facc0.js.map +0 -1
- package/_internal/3f3de25e.js.map +0 -1
- package/_internal/407735b4.js.map +0 -1
- package/_internal/43262bfe.js.map +0 -1
- package/_internal/432c85a7.js.map +0 -1
- package/_internal/49bbeed3.js +0 -6
- package/_internal/49bbeed3.js.map +0 -1
- package/_internal/4c5a7b63.js.map +0 -1
- package/_internal/4ceaf17c.js +0 -75
- package/_internal/4ceaf17c.js.map +0 -1
- package/_internal/4d92e13b.js.map +0 -1
- package/_internal/4daccdd5.js.map +0 -1
- package/_internal/4e1dde79.js.map +0 -1
- package/_internal/5ba8fae8.js.map +0 -1
- package/_internal/60923026.js.map +0 -1
- package/_internal/60f8e509.js.map +0 -1
- package/_internal/64046d7a.js.map +0 -1
- package/_internal/70cf341b.js.map +0 -1
- package/_internal/714809cc.js.map +0 -1
- package/_internal/72407886.js.map +0 -1
- package/_internal/742d4906.js.map +0 -1
- package/_internal/77eb8ef3.js.map +0 -1
- package/_internal/78df9309.js.map +0 -1
- package/_internal/7b214f74.js.map +0 -1
- package/_internal/7b221b05.js +0 -9
- package/_internal/7b221b05.js.map +0 -1
- package/_internal/7c4f4643.js.map +0 -1
- package/_internal/7daf0f24.js.map +0 -1
- package/_internal/803945f7.js.map +0 -1
- package/_internal/80e5c950.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/85d992d2.js.map +0 -1
- package/_internal/87bada02.js.map +0 -1
- package/_internal/881714a1.js.map +0 -1
- package/_internal/88ec77c2.js +0 -130
- package/_internal/88ec77c2.js.map +0 -1
- package/_internal/8fcceef3.js.map +0 -1
- package/_internal/9210e2f3.js.map +0 -1
- package/_internal/9452daf7.js.map +0 -1
- package/_internal/95a2e851.js.map +0 -1
- package/_internal/9cf0d217.js.map +0 -1
- package/_internal/9cfa3e10.js.map +0 -1
- package/_internal/9d8130ae.js.map +0 -1
- package/_internal/a67f26a8.js.map +0 -1
- package/_internal/aa8c5d9b.js.map +0 -1
- package/_internal/aafcf80e.js.map +0 -1
- package/_internal/ac3bc511.js +0 -2
- package/_internal/ac3bc511.js.map +0 -1
- package/_internal/b3bfbe72.js.map +0 -1
- package/_internal/b925072d.js.map +0 -1
- package/_internal/baa0a23b.js.map +0 -1
- package/_internal/bba7d4c4.js.map +0 -1
- package/_internal/bc4cb4c0.js.map +0 -1
- package/_internal/bcce6ceb.js.map +0 -1
- package/_internal/bdd41804.js.map +0 -1
- package/_internal/c43d098b.js.map +0 -1
- package/_internal/cb036703.js.map +0 -1
- package/_internal/cc995526.js +0 -2
- package/_internal/cc995526.js.map +0 -1
- package/_internal/cdc3efab.js.map +0 -1
- package/_internal/d0dd1815.js +0 -10
- package/_internal/d0dd1815.js.map +0 -1
- package/_internal/d3321a86.js +0 -290
- package/_internal/d3321a86.js.map +0 -1
- package/_internal/d66c4375.js.map +0 -1
- package/_internal/d6b3a3c0.js.map +0 -1
- package/_internal/d95844c1.d.ts +0 -7
- package/_internal/dd0a245d.js.map +0 -1
- package/_internal/de24f857.js +0 -4
- package/_internal/de24f857.js.map +0 -1
- package/_internal/e2122a37.js +0 -3
- package/_internal/e2122a37.js.map +0 -1
- package/_internal/e2440593.js.map +0 -1
- package/_internal/e4613195.js.map +0 -1
- package/_internal/e53b5a39.js.map +0 -1
- package/_internal/e566d502.js.map +0 -1
- package/_internal/e806b848.js.map +0 -1
- package/_internal/eaf6c45a.js +0 -4
- package/_internal/eaf6c45a.js.map +0 -1
- package/_internal/ee64ab0d.js.map +0 -1
- package/_internal/ef5d1aac.js +0 -4
- package/_internal/ef5d1aac.js.map +0 -1
- package/_internal/f0d7d6ea.js.map +0 -1
- package/_internal/f57d4eb8.js.map +0 -1
- package/_internal/fc47f2da.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aafcf80e.js","sources":["../../../lumx-icons/dist/esm/radiobox-blank.js","../../../lumx-icons/dist/esm/radiobox-marked.js","../../src/components/progress-tracker/ProgressTrackerProvider.tsx","../../src/components/progress-tracker/ProgressTracker.tsx","../../src/components/progress-tracker/ProgressTrackerStep.tsx","../../src/components/progress-tracker/ProgressTrackerStepPanel.tsx"],"sourcesContent":["export 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';","export 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';","import { ReactNode, useEffect, useReducer } from 'react';\nimport { INIT_STATE, TabProviderContext, reducer } from '../tabs/state';\n\nexport interface ProgressTrackerProviderProps {\n /** Active step index. */\n activeStepIndex?: number;\n /** ProgressTrackerProvider children. */\n children: ReactNode;\n /** Step panel children should not render if the step panel is hidden. */\n isLazy?: boolean;\n /** Activate tabs on focus. */\n shouldActivateOnFocus?: boolean;\n /** Step change callback. */\n onChange?(index: number): void;\n}\n\nconst DEFAULT_PROPS: Partial<ProgressTrackerProviderProps> = {\n isLazy: INIT_STATE.isLazy,\n shouldActivateOnFocus: INIT_STATE.shouldActivateOnFocus,\n};\n\n/**\n * This component provides a context in which steps can be defined and linked to their step panel.\n *\n * It does not produce any markup so you can wrap it around any React elements and then split the ProgressTracker and ProgressTrackerPanel\n * components in the react tree.\n *\n * This works exactly as TabProvider so it uses TabProviderContext and tabs state.\n *\n * @param props React component props.\n * @return React element.\n */\nexport const ProgressTrackerProvider: React.FC<ProgressTrackerProviderProps> = (props) => {\n const { children, onChange, ...propState } = props;\n const [state, dispatch] = useReducer(reducer, INIT_STATE);\n\n // On prop state change => dispatch update.\n useEffect(\n () => {\n dispatch({\n type: 'update',\n payload: {\n ...DEFAULT_PROPS,\n ...propState,\n activeTabIndex: propState.activeStepIndex || INIT_STATE.activeTabIndex,\n },\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dispatch, ...Object.values(propState)],\n );\n\n // On active tab index state change => send update to the onChange.\n useEffect(\n () => {\n if (state === INIT_STATE || !onChange || propState.activeStepIndex === state.activeTabIndex) {\n return;\n }\n onChange(state.activeTabIndex);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onChange, state.activeTabIndex],\n );\n\n return <TabProviderContext.Provider value={[state, dispatch]}>{children}</TabProviderContext.Provider>;\n};\nProgressTrackerProvider.defaultProps = DEFAULT_PROPS;\n","import React, { ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getRootClassName } from '@lumx/core/js/utils/className';\nimport { mergeRefs } from '@lumx/react/utils/react/mergeRefs';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { useRovingTabIndex } from '../../hooks/useRovingTabIndex';\nimport { useTabProviderContextState } from '../tabs/state';\n\n/**\n * Defines the props of the component.\n */\nexport interface ProgressTrackerProps extends GenericProps {\n /** ARIA label (purpose of the set of steps). */\n ['aria-label']: string;\n /** Step list. */\n children: ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ProgressTracker';\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<ProgressTrackerProps> = {};\n\n/**\n * ProgressTracker component.\n *\n * Implements WAI-ARIA `tablist` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ProgressTracker = forwardRef<ProgressTrackerProps, HTMLDivElement>((props, ref) => {\n const { 'aria-label': ariaLabel, children, className, ...forwardedProps } = props;\n const stepListRef = React.useRef(null);\n useRovingTabIndex({\n parentRef: stepListRef,\n elementSelector: '[role=\"tab\"]',\n keepTabIndex: false,\n extraDependencies: [children],\n });\n\n const state = useTabProviderContextState();\n const numberOfSteps = state?.ids?.tab?.length || 0;\n const backgroundPosition: number = numberOfSteps > 0 ? 100 / (numberOfSteps * 2) : 0;\n const trackPosition: number =\n numberOfSteps > 0 ? ((100 / (numberOfSteps - 1)) * (state?.activeTabIndex || 0)) / 100 : 0;\n\n return (\n <div ref={mergeRefs(ref, stepListRef)} {...forwardedProps} className={classNames(className, CLASSNAME)}>\n <div className={`${CLASSNAME}__steps`} role=\"tablist\" aria-label={ariaLabel}>\n {children}\n </div>\n\n <div\n className={`${CLASSNAME}__background-bar`}\n style={{ left: `${backgroundPosition}%`, right: `${backgroundPosition}%` }}\n />\n\n <div\n className={`${CLASSNAME}__foreground-bar`}\n style={{\n left: `${backgroundPosition}%`,\n right: `${backgroundPosition}%`,\n transform: `scaleX(${trackPosition})`,\n }}\n />\n </div>\n );\n});\nProgressTracker.displayName = COMPONENT_NAME;\nProgressTracker.className = CLASSNAME;\nProgressTracker.defaultProps = DEFAULT_PROPS;\n","import { FocusEventHandler, KeyboardEventHandler, useCallback } from 'react';\n\nimport classNames from 'classnames';\n\nimport { mdiAlertCircle, mdiCheckCircle, mdiRadioboxBlank, mdiRadioboxMarked } from '@lumx/icons';\nimport { Icon, InputHelper, InputLabel, Kind, Size } from '@lumx/react';\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { useDisableStateProps } from '@lumx/react/utils/disabled/useDisableStateProps';\nimport { useTabProviderContext } from '../tabs/state';\n\n/**\n * Defines the props of the component.\n */\nexport interface ProgressTrackerStepProps extends GenericProps {\n /** Children are not supported. */\n children?: never;\n /** Whether the step should be in error state or not. */\n hasError?: boolean;\n /** Helper text. */\n helper?: string | null;\n /** Native id property. */\n id?: string;\n /** Whether the current step is active or not. */\n isActive?: boolean;\n /** Whether the current step is completed or not. */\n isComplete?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Label text. */\n label?: string | null;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ProgressTrackerStep';\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<ProgressTrackerStepProps> = {};\n\n/**\n * ProgressTrackerStep component.\n *\n * Implements WAI-ARIA `tab` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ProgressTrackerStep = forwardRef<ProgressTrackerStepProps, HTMLButtonElement>((props, ref) => {\n const { isAnyDisabled, otherProps } = useDisableStateProps(props);\n const {\n className,\n hasError,\n helper,\n id,\n isActive: propIsActive,\n isComplete,\n label,\n onFocus,\n onKeyPress,\n tabIndex = -1,\n ...forwardedProps\n } = otherProps;\n const state = useTabProviderContext('tab', id);\n const isActive = propIsActive || state?.isActive;\n\n const changeToCurrentTab = useCallback(() => {\n if (isAnyDisabled) {\n return;\n }\n state?.changeToTab();\n }, [isAnyDisabled, state]);\n\n const handleFocus: FocusEventHandler = useCallback(\n (event) => {\n onFocus?.(event);\n if (state?.shouldActivateOnFocus) {\n changeToCurrentTab();\n }\n },\n [changeToCurrentTab, onFocus, state?.shouldActivateOnFocus],\n );\n\n const handleKeyPress: KeyboardEventHandler = useCallback(\n (event) => {\n onKeyPress?.(event);\n if (event.key !== 'Enter') {\n return;\n }\n changeToCurrentTab();\n },\n [changeToCurrentTab, onKeyPress],\n );\n\n const getIcon = (): string => {\n if (isComplete) {\n return mdiCheckCircle;\n }\n\n if (isActive) {\n return hasError ? mdiAlertCircle : mdiRadioboxMarked;\n }\n\n return mdiRadioboxBlank;\n };\n\n return (\n <button\n ref={ref}\n {...forwardedProps}\n type=\"button\"\n id={state?.tabId}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n hasError,\n isActive,\n isClickable: state && !isAnyDisabled,\n isComplete,\n }),\n )}\n onClick={changeToCurrentTab}\n onKeyPress={handleKeyPress}\n onFocus={handleFocus}\n role=\"tab\"\n tabIndex={isActive ? 0 : tabIndex}\n aria-disabled={isAnyDisabled}\n aria-selected={isActive}\n aria-controls={state?.tabPanelId}\n >\n <Icon className={`${CLASSNAME}__state`} icon={getIcon()} size={Size.s} />\n\n <InputLabel htmlFor={state?.tabId || ''} className={`${CLASSNAME}__label`}>\n {label}\n </InputLabel>\n\n {helper && (\n <InputHelper kind={hasError ? Kind.error : Kind.info} className={`${CLASSNAME}__helper`}>\n {helper}\n </InputHelper>\n )}\n </button>\n );\n});\nProgressTrackerStep.displayName = COMPONENT_NAME;\nProgressTrackerStep.className = CLASSNAME;\nProgressTrackerStep.defaultProps = DEFAULT_PROPS;\n","import classNames from 'classnames';\n\nimport { useTabProviderContext } from '@lumx/react/components/tabs/state';\nimport { CSS_PREFIX } from '@lumx/react/constants';\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { 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 ProgressTrackerStepPanelProps extends GenericProps {\n /** Native id property. */\n id?: string;\n /** Whether the step is active or not. */\n isActive?: boolean;\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ProgressTrackerStepPanel';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = `${CSS_PREFIX}-step-panel`;\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ProgressTrackerStepPanelProps> = {};\n\n/**\n * ProgressTrackerStepPanel component.\n *\n * Implements WAI-ARIA `tabpanel` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ProgressTrackerStepPanel = forwardRef<ProgressTrackerStepPanelProps, HTMLDivElement>((props, ref) => {\n const { children, id, className, isActive: propIsActive, ...forwardedProps } = props;\n\n const state = useTabProviderContext('tabPanel', id);\n const isActive = propIsActive || state?.isActive;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n id={state?.tabPanelId}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, isActive }))}\n role=\"tabpanel\"\n tabIndex={isActive ? 0 : -1}\n aria-labelledby={state?.tabId}\n >\n {(!state?.isLazy || isActive) && children}\n </div>\n );\n});\nProgressTrackerStepPanel.displayName = COMPONENT_NAME;\nProgressTrackerStepPanel.className = CLASSNAME;\nProgressTrackerStepPanel.defaultProps = DEFAULT_PROPS;\n"],"names":["mdiRadioboxBlank","mdiRadioboxMarked","DEFAULT_PROPS","isLazy","INIT_STATE","shouldActivateOnFocus","ProgressTrackerProvider","props","children","onChange","propState","state","dispatch","useReducer","reducer","useEffect","type","payload","activeTabIndex","activeStepIndex","Object","values","React","createElement","TabProviderContext","Provider","value","defaultProps","COMPONENT_NAME","CLASSNAME","getRootClassName","ProgressTracker","forwardRef","ref","ariaLabel","className","forwardedProps","stepListRef","useRef","useRovingTabIndex","parentRef","elementSelector","keepTabIndex","extraDependencies","useTabProviderContextState","numberOfSteps","ids","tab","length","backgroundPosition","trackPosition","_extends","mergeRefs","classNames","role","style","left","right","transform","displayName","ProgressTrackerStep","isAnyDisabled","otherProps","useDisableStateProps","hasError","helper","id","isActive","propIsActive","isComplete","label","onFocus","onKeyPress","tabIndex","useTabProviderContext","changeToCurrentTab","useCallback","changeToTab","handleFocus","event","handleKeyPress","key","getIcon","mdiCheckCircle","mdiAlertCircle","tabId","handleBasicClasses","prefix","isClickable","onClick","tabPanelId","Icon","icon","size","Size","s","InputLabel","htmlFor","InputHelper","kind","Kind","error","info","CSS_PREFIX","ProgressTrackerStepPanel"],"mappings":"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"}
|
package/_internal/ac3bc511.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ac3bc511.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"b3bfbe72.js","sources":["../../src/constants.ts"],"sourcesContent":["export {\n CSS_PREFIX,\n DIALOG_TRANSITION_DURATION,\n NOTIFICATION_TRANSITION_DURATION,\n TOOLTIP_HOVER_DELAY,\n TOOLTIP_LONG_PRESS_DELAY,\n} from '@lumx/core/js/constants';\n\n/**\n * Optional global `window` instance (not defined when running SSR).\n */\nexport const WINDOW = typeof window !== 'undefined' ? window : undefined;\n\n/**\n * Optional global `document` instance (not defined when running SSR).\n */\nexport const DOCUMENT = typeof document !== 'undefined' ? document : undefined;\n\n/**\n * Check if we are running in a true browser\n */\nexport const IS_BROWSER = typeof navigator !== 'undefined' && !navigator.userAgent.includes('jsdom');\n\n/**\n * Visually hidden a11y utility class name\n */\nexport const VISUALLY_HIDDEN = 'visually-hidden';\n"],"names":["WINDOW","window","undefined","DOCUMENT","document","IS_BROWSER","navigator","userAgent","includes","VISUALLY_HIDDEN"],"mappings":";;AAQA;AACA;AACA;AACO,MAAMA,MAAM,GAAG,OAAOC,MAAM,KAAK,WAAW,GAAGA,MAAM,GAAGC,UAAS;;AAExE;AACA;AACA;AACO,MAAMC,QAAQ,GAAG,OAAOC,QAAQ,KAAK,WAAW,GAAGA,QAAQ,GAAGF,UAAS;;AAE9E;AACA;AACA;MACaG,UAAU,GAAG,OAAOC,SAAS,KAAK,WAAW,IAAI,CAACA,SAAS,CAACC,SAAS,CAACC,QAAQ,CAAC,OAAO,EAAC;;AAEpG;AACA;AACA;AACO,MAAMC,eAAe,GAAG;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"b925072d.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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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"baa0a23b.js","sources":["../../src/components/button/Button.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport isEmpty from 'lodash/isEmpty';\n\nimport { Emphasis, Icon, Size, Theme, Text, ThemeProvider } from '@lumx/react';\nimport { isComponent } from '@lumx/react/utils/type';\nimport { getBasicClass, getRootClassName } from '@lumx/core/js/utils/className';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { BaseButtonProps, ButtonRoot } from './ButtonRoot';\n\n/**\n * Button emphasis definition.\n * @deprecated Use Emphasis instead.\n */\nexport const ButtonEmphasis = Emphasis;\n\n/**\n * Defines the props of the component.\n */\nexport interface ButtonProps extends BaseButtonProps {\n /** Left icon (SVG path). */\n leftIcon?: string;\n /** Right icon (SVG path). */\n rightIcon?: string;\n /** When `true`, the button gets as large as possible. */\n fullWidth?: boolean;\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Button';\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<ButtonProps> = {\n emphasis: Emphasis.high,\n size: Size.m,\n};\n\n/**\n * Button component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Button = forwardRef<ButtonProps, HTMLButtonElement | HTMLAnchorElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const {\n children,\n className,\n emphasis = DEFAULT_PROPS.emphasis,\n leftIcon,\n rightIcon,\n size = DEFAULT_PROPS.size,\n theme = defaultTheme,\n ...forwardedProps\n } = props;\n\n const buttonClassName = classNames(\n className,\n getBasicClass({ prefix: CLASSNAME, type: 'hasLeftIcon', value: !isEmpty(leftIcon) }),\n getBasicClass({ prefix: CLASSNAME, type: 'hasRightIcon', value: !isEmpty(rightIcon) }),\n );\n\n return (\n <ButtonRoot\n ref={ref}\n {...{ emphasis, size, theme, ...forwardedProps }}\n className={buttonClassName}\n variant=\"button\"\n >\n {leftIcon && !isEmpty(leftIcon) && (\n // Theme is handled in the button scss\n <ThemeProvider value={undefined}>\n <Icon icon={leftIcon} />\n </ThemeProvider>\n )}\n {children && (isComponent(Text)(children) ? children : <span>{children}</span>)}\n {rightIcon && !isEmpty(rightIcon) && (\n // Theme is handled in the button scss\n <ThemeProvider value={undefined}>\n <Icon icon={rightIcon} />\n </ThemeProvider>\n )}\n </ButtonRoot>\n );\n});\nButton.displayName = COMPONENT_NAME;\nButton.className = CLASSNAME;\nButton.defaultProps = DEFAULT_PROPS;\n"],"names":["ButtonEmphasis","Emphasis","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","emphasis","high","size","Size","m","Button","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","children","className","leftIcon","rightIcon","theme","forwardedProps","buttonClassName","classNames","getBasicClass","prefix","type","value","isEmpty","React","createElement","ButtonRoot","_extends","variant","ThemeProvider","undefined","Icon","icon","isComponent","Text","displayName","defaultProps"],"mappings":";;;;;;;;;AAWA;AACA;AACA;AACA;AACO,MAAMA,cAAc,GAAGC,SAAQ;;AAEtC;AACA;AACA;;AAYA;AACA;AACA;AACA,MAAMC,cAAc,GAAG,QAAQ,CAAA;;AAE/B;AACA;AACA;AACA,MAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAc,CAAC,CAAA;;AAElD;AACA;AACA;AACA,MAAMG,aAAmC,GAAG;EACxCC,QAAQ,EAAEL,QAAQ,CAACM,IAAI;EACvBC,IAAI,EAAEC,IAAI,CAACC,CAAAA;AACf,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,MAAM,GAAGC,UAAU,CAAqD,CAACC,KAAK,EAAEC,GAAG,KAAK;EACjG,MAAMC,YAAY,GAAGC,QAAQ,EAAE,IAAIC,KAAK,CAACC,KAAK,CAAA;EAC9C,MAAM;IACFC,QAAQ;IACRC,SAAS;IACTd,QAAQ,GAAGD,aAAa,CAACC,QAAQ;IACjCe,QAAQ;IACRC,SAAS;IACTd,IAAI,GAAGH,aAAa,CAACG,IAAI;AACzBe,IAAAA,KAAK,GAAGR,YAAY;IACpB,GAAGS,cAAAA;AACP,GAAC,GAAGX,KAAK,CAAA;AAET,EAAA,MAAMY,eAAe,GAAGC,UAAU,CAC9BN,SAAS,EACTO,aAAa,CAAC;AAAEC,IAAAA,MAAM,EAAEzB,SAAS;AAAE0B,IAAAA,IAAI,EAAE,aAAa;AAAEC,IAAAA,KAAK,EAAE,CAACC,OAAO,CAACV,QAAQ,CAAA;GAAG,CAAC,EACpFM,aAAa,CAAC;AAAEC,IAAAA,MAAM,EAAEzB,SAAS;AAAE0B,IAAAA,IAAI,EAAE,cAAc;AAAEC,IAAAA,KAAK,EAAE,CAACC,OAAO,CAACT,SAAS,CAAA;AAAE,GAAC,CACzF,CAAC,CAAA;AAED,EAAA,oBACIU,KAAA,CAAAC,aAAA,CAACC,UAAU,EAAAC,QAAA,CAAA;AACPrB,IAAAA,GAAG,EAAEA,GAAI;IACHR,QAAQ;IAAEE,IAAI;AAAEe,IAAAA,KAAAA;AAAK,GAAA,EAAKC,cAAc,EAAA;AAC9CJ,IAAAA,SAAS,EAAEK,eAAgB;AAC3BW,IAAAA,OAAO,EAAC,QAAA;AAAQ,GAAA,CAAA,EAEff,QAAQ,IAAI,CAACU,OAAO,CAACV,QAAQ,CAAC;AAAA;AAC3B;EACAW,KAAA,CAAAC,aAAA,CAACI,aAAa,EAAA;AAACP,IAAAA,KAAK,EAAEQ,SAAAA;AAAU,GAAA,eAC5BN,KAAA,CAAAC,aAAA,CAACM,IAAI,EAAA;AAACC,IAAAA,IAAI,EAAEnB,QAAAA;AAAS,GAAE,CACZ,CAClB,EACAF,QAAQ,KAAKsB,WAAW,CAACC,IAAI,CAAC,CAACvB,QAAQ,CAAC,GAAGA,QAAQ,gBAAGa,KAAA,CAAAC,aAAA,CAAOd,MAAAA,EAAAA,IAAAA,EAAAA,QAAe,CAAC,CAAC,EAC9EG,SAAS,IAAI,CAACS,OAAO,CAACT,SAAS,CAAC;AAAA;AAC7B;EACAU,KAAA,CAAAC,aAAA,CAACI,aAAa,EAAA;AAACP,IAAAA,KAAK,EAAEQ,SAAAA;AAAU,GAAA,eAC5BN,KAAA,CAAAC,aAAA,CAACM,IAAI,EAAA;AAACC,IAAAA,IAAI,EAAElB,SAAAA;GAAY,CACb,CAEX,CAAC,CAAA;AAErB,CAAC,EAAC;AACFX,MAAM,CAACgC,WAAW,GAAGzC,cAAc,CAAA;AACnCS,MAAM,CAACS,SAAS,GAAGjB,SAAS,CAAA;AAC5BQ,MAAM,CAACiC,YAAY,GAAGvC,aAAa;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bba7d4c4.js","sources":["../../src/hooks/useIntersectionObserver.tsx","../../src/components/dialog/Dialog.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport type Intersections<T> = Map<T, IntersectionObserverEntry>;\n\n/**\n * Convenient hook to create interaction observers.\n *\n * @param elements Elements to observe.\n * @param options IntersectionObserver options.\n * @return Map of intersections.\n */\nexport function useIntersectionObserver<T extends Element>(\n elements: Array<T | null | undefined>,\n options?: IntersectionObserverInit,\n): Intersections<T> {\n const [intersections, setIntersections] = useState<Intersections<T>>(() => new Map());\n\n useEffect(\n () => {\n if (elements.length < 1 || !elements.some(Boolean)) {\n return undefined;\n }\n\n const observer = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n intersections.set(entry.target as T, entry);\n }\n setIntersections(new Map(intersections));\n }, options);\n\n for (const element of elements) {\n if (element) {\n observer.observe(element);\n }\n }\n return () => observer.disconnect();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [...elements],\n );\n\n return intersections;\n}\n","import React, { Children, ReactElement, ReactNode, Ref, RefObject, useMemo, useRef, useState } from 'react';\n\nimport classNames from 'classnames';\n\nimport { HeadingLevelProvider, Progress, ProgressVariant, Size } from '@lumx/react';\n\nimport { DIALOG_TRANSITION_DURATION, DOCUMENT } from '@lumx/react/constants';\nimport { useCallbackOnEscape } from '@lumx/react/hooks/useCallbackOnEscape';\nimport { useFocusTrap } from '@lumx/react/hooks/useFocusTrap';\nimport { useIntersectionObserver } from '@lumx/react/hooks/useIntersectionObserver';\n\nimport { GenericProps, isComponent } from '@lumx/react/utils/type';\nimport { partitionMulti } from '@lumx/react/utils/partitionMulti';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { ClickAwayProvider } from '@lumx/react/utils/ClickAwayProvider';\nimport { mergeRefs } from '@lumx/react/utils/react/mergeRefs';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { useDisableBodyScroll } from '@lumx/react/hooks/useDisableBodyScroll';\nimport { useTransitionVisibility } from '@lumx/react/hooks/useTransitionVisibility';\nimport { ThemeProvider } from '@lumx/react/utils/theme/ThemeContext';\n\nimport { Portal } from '@lumx/react/utils';\n\n/**\n * Defines the props of the component.\n */\nexport interface DialogProps extends GenericProps {\n /** Footer content. */\n footer?: ReactNode;\n /** Whether the divider between the dialog content and the footer is always displayed (instead of showing it on scroll). */\n forceFooterDivider?: boolean;\n /** Header content. */\n header?: ReactNode;\n /** Whether the divider between the dialog content and the footer is always displayed (instead of showing it on scroll). */\n forceHeaderDivider?: boolean;\n /** Whether the indefinite progress indicator over the dialog content is displayed or not. */\n isLoading?: boolean;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Reference to the parent element that triggered modal opening (will get back focus on close). */\n parentElement?: RefObject<HTMLElement>;\n /** Reference to the dialog content element. */\n contentRef?: Ref<HTMLDivElement>;\n /** Reference to the of the element that should get the focus when the dialogs opens. By default, the first child will take focus. */\n focusElement?: RefObject<HTMLElement>;\n /** Whether to keep the dialog open on clickaway or escape press. */\n preventAutoClose?: boolean;\n /** Whether to keep the dialog open on escape press. */\n preventCloseOnEscape?: boolean;\n /** Whether to keep the dialog open on clickaway. */\n preventCloseOnClick?: boolean;\n /** Size variant. */\n size?: DialogSizes;\n /** Z-axis position. */\n zIndex?: number;\n /** Z-axis position. */\n dialogProps?: GenericProps;\n /** On close callback. */\n onClose?(): void;\n /** Callback called when the open animation starts and the close animation finishes. */\n onVisibilityChange?(isVisible: boolean): void;\n /** whether to disable the scroll on the body or not */\n disableBodyScroll?: boolean;\n /** Children */\n children?: React.ReactNode;\n}\n\nexport type DialogSizes = Extract<Size, 'tiny' | 'regular' | 'big' | 'huge'>;\n\nconst isHeader = isComponent('header');\nconst isFooter = isComponent('footer');\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Dialog';\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<DialogProps> = {\n size: Size.big,\n disableBodyScroll: true,\n};\n\n/**\n * Dialog component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Dialog = forwardRef<DialogProps, HTMLDivElement>((props, ref) => {\n if (!DOCUMENT) {\n // Can't render in SSR.\n return null;\n }\n\n const {\n children,\n className,\n header,\n focusElement,\n forceFooterDivider,\n forceHeaderDivider,\n footer,\n isLoading,\n isOpen,\n onClose,\n parentElement,\n contentRef,\n preventAutoClose,\n size = DEFAULT_PROPS.size,\n zIndex,\n dialogProps,\n onVisibilityChange,\n disableBodyScroll = DEFAULT_PROPS.disableBodyScroll,\n preventCloseOnClick,\n preventCloseOnEscape,\n ...forwardedProps\n } = props;\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const previousOpen = React.useRef(isOpen);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (isOpen !== previousOpen.current) {\n previousOpen.current = isOpen;\n\n // Focus the parent element on close.\n if (!isOpen && parentElement && parentElement.current) {\n parentElement.current.focus();\n }\n }\n }, [isOpen, parentElement]);\n\n const shouldPreventCloseOnEscape = preventAutoClose || preventCloseOnEscape;\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useCallbackOnEscape(onClose, isOpen && !shouldPreventCloseOnEscape);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const wrapperRef = useRef<HTMLDivElement>(null);\n /**\n * Since the `contentRef` comes from the parent and is optional,\n * we need to create a stable contentRef that will always be available.\n */\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const localContentRef = useRef<HTMLDivElement>(null);\n // Handle focus trap.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useFocusTrap(isOpen && wrapperRef.current, focusElement?.current);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useDisableBodyScroll(disableBodyScroll && isOpen && localContentRef.current);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [sentinelTop, setSentinelTop] = useState<Element | null>(null);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [sentinelBottom, setSentinelBottom] = useState<Element | null>(null);\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const intersections = useIntersectionObserver([sentinelTop, sentinelBottom], {\n threshold: [0, 1],\n });\n\n const hasTopIntersection = sentinelTop && !(intersections.get(sentinelTop)?.isIntersecting ?? true);\n const hasBottomIntersection = sentinelBottom && !(intersections.get(sentinelBottom)?.isIntersecting ?? true);\n\n // Separate header, footer and dialog content from children.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [[headerChild], [footerChild], content] = useMemo(\n () => partitionMulti(Children.toArray(children), [isHeader, isFooter]),\n [children],\n );\n const headerChildProps = (headerChild as ReactElement)?.props;\n const headerChildContent = headerChildProps?.children;\n const footerChildProps = (footerChild as ReactElement)?.props;\n const footerChildContent = footerChildProps?.children;\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const clickAwayRefs = useRef([wrapperRef]);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const rootRef = useRef<HTMLDivElement>(null);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const isVisible = useTransitionVisibility(rootRef, Boolean(isOpen), DIALOG_TRANSITION_DURATION, onVisibilityChange);\n\n const shouldPreventCloseOnClickAway = preventAutoClose || preventCloseOnClick;\n\n return isOpen || isVisible ? (\n <Portal>\n <div\n ref={mergeRefs(rootRef, ref)}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n isHidden: !isOpen,\n isLoading,\n isShown: isOpen || isVisible,\n prefix: CLASSNAME,\n size,\n }),\n )}\n style={{ zIndex }}\n >\n <div className={`${CLASSNAME}__overlay`} />\n\n <HeadingLevelProvider level={2}>\n <ThemeProvider value={undefined}>\n <div className={`${CLASSNAME}__container`} role=\"dialog\" aria-modal=\"true\" {...dialogProps}>\n <ClickAwayProvider\n callback={!shouldPreventCloseOnClickAway && onClose}\n childrenRefs={clickAwayRefs}\n parentRef={rootRef}\n >\n <section className={`${CLASSNAME}__wrapper`} ref={wrapperRef}>\n {(header || headerChildContent) && (\n <header\n {...headerChildProps}\n className={classNames(\n `${CLASSNAME}__header`,\n (forceHeaderDivider || hasTopIntersection) &&\n `${CLASSNAME}__header--has-divider`,\n headerChildProps?.className,\n )}\n >\n {header}\n {headerChildContent}\n </header>\n )}\n\n <div\n ref={mergeRefs(contentRef, localContentRef)}\n className={`${CLASSNAME}__content`}\n >\n <div\n className={`${CLASSNAME}__sentinel ${CLASSNAME}__sentinel--top`}\n ref={setSentinelTop}\n />\n\n {content}\n\n <div\n className={`${CLASSNAME}__sentinel ${CLASSNAME}__sentinel--bottom`}\n ref={setSentinelBottom}\n />\n </div>\n\n {(footer || footerChildContent) && (\n <footer\n {...footerChildProps}\n className={classNames(\n `${CLASSNAME}__footer`,\n (forceFooterDivider || hasBottomIntersection) &&\n `${CLASSNAME}__footer--has-divider`,\n footerChildProps?.className,\n )}\n >\n {footer}\n {footerChildContent}\n </footer>\n )}\n\n {isLoading && (\n <div className={`${CLASSNAME}__progress-overlay`}>\n <Progress variant={ProgressVariant.circular} />\n </div>\n )}\n </section>\n </ClickAwayProvider>\n </div>\n </ThemeProvider>\n </HeadingLevelProvider>\n </div>\n </Portal>\n ) : null;\n});\nDialog.displayName = COMPONENT_NAME;\nDialog.className = CLASSNAME;\nDialog.defaultProps = DEFAULT_PROPS;\n"],"names":["useIntersectionObserver","elements","options","intersections","setIntersections","useState","Map","useEffect","length","some","Boolean","undefined","observer","IntersectionObserver","entries","entry","set","target","element","observe","disconnect","isHeader","isComponent","isFooter","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","size","Size","big","disableBodyScroll","Dialog","forwardRef","props","ref","DOCUMENT","children","className","header","focusElement","forceFooterDivider","forceHeaderDivider","footer","isLoading","isOpen","onClose","parentElement","contentRef","preventAutoClose","zIndex","dialogProps","onVisibilityChange","preventCloseOnClick","preventCloseOnEscape","forwardedProps","previousOpen","React","useRef","current","focus","shouldPreventCloseOnEscape","useCallbackOnEscape","wrapperRef","localContentRef","useFocusTrap","useDisableBodyScroll","sentinelTop","setSentinelTop","sentinelBottom","setSentinelBottom","threshold","hasTopIntersection","get","isIntersecting","hasBottomIntersection","headerChild","footerChild","content","useMemo","partitionMulti","Children","toArray","headerChildProps","headerChildContent","footerChildProps","footerChildContent","clickAwayRefs","rootRef","isVisible","useTransitionVisibility","DIALOG_TRANSITION_DURATION","shouldPreventCloseOnClickAway","createElement","Portal","_extends","mergeRefs","classNames","handleBasicClasses","isHidden","isShown","prefix","style","HeadingLevelProvider","level","ThemeProvider","value","role","ClickAwayProvider","callback","childrenRefs","parentRef","Progress","variant","ProgressVariant","circular","displayName","defaultProps"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bc4cb4c0.js","sources":["../../src/components/avatar/Avatar.tsx"],"sourcesContent":["import { KeyboardEventHandler, MouseEventHandler, ReactElement, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { AspectRatio, Size, Theme, Thumbnail, ThumbnailProps } from '@lumx/react';\n\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 * Avatar sizes.\n */\nexport type AvatarSize = Extract<Size, 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl'>;\n\n/**\n * Defines the props of the component.\n */\nexport interface AvatarProps extends GenericProps, HasTheme {\n /** Action toolbar content. */\n actions?: ReactNode;\n /** Image alternative text. */\n alt: string;\n /** Badge. */\n badge?: ReactElement;\n /** Image URL. */\n image: string;\n /** Props to pass to the link wrapping the thumbnail. */\n linkProps?: React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;\n /** Custom react component for the link (can be used to inject react router Link). */\n linkAs?: 'a' | any;\n /** On click callback. */\n onClick?: MouseEventHandler<HTMLDivElement>;\n /** On key press callback. */\n onKeyPress?: KeyboardEventHandler<HTMLDivElement>;\n /** Size variant. */\n size?: AvatarSize;\n /** Props to pass to the thumbnail (minus those already set by the Avatar props). */\n thumbnailProps?: Omit<\n ThumbnailProps,\n 'image' | 'alt' | 'size' | 'theme' | 'align' | 'fillHeight' | 'variant' | 'aspectRatio'\n >;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Avatar';\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<AvatarProps> = {\n size: Size.m,\n};\n\n/**\n * Avatar component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Avatar = forwardRef<AvatarProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const {\n actions,\n alt,\n badge,\n className,\n image,\n linkProps,\n linkAs,\n onClick,\n onKeyPress,\n size = DEFAULT_PROPS.size,\n theme = defaultTheme,\n thumbnailProps,\n ...forwardedProps\n } = props;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, size, theme }))}\n >\n <Thumbnail\n linkProps={linkProps}\n linkAs={linkAs}\n className={`${CLASSNAME}__thumbnail`}\n onClick={onClick}\n onKeyPress={onKeyPress}\n {...thumbnailProps}\n aspectRatio={AspectRatio.square}\n size={size}\n image={image}\n alt={alt}\n theme={theme}\n />\n {actions && <div className={`${CLASSNAME}__actions`}>{actions}</div>}\n {badge && <div className={`${CLASSNAME}__badge`}>{badge}</div>}\n </div>\n );\n});\nAvatar.displayName = COMPONENT_NAME;\nAvatar.className = CLASSNAME;\nAvatar.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","size","Size","m","Avatar","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","actions","alt","badge","className","image","linkProps","linkAs","onClick","onKeyPress","theme","thumbnailProps","forwardedProps","React","createElement","_extends","classNames","handleBasicClasses","prefix","Thumbnail","aspectRatio","AspectRatio","square","displayName","defaultProps"],"mappings":";;;;;AAWA;AACA;AACA;;AAGA;AACA;AACA;;AA2BA;AACA;AACA;AACA,MAAMA,cAAc,GAAG,QAAQ,CAAA;;AAE/B;AACA;AACA;AACA,MAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAc,CAAC,CAAA;;AAElD;AACA;AACA;AACA,MAAMG,aAAmC,GAAG;EACxCC,IAAI,EAAEC,IAAI,CAACC,CAAAA;AACf,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,MAAM,GAAGC,UAAU,CAA8B,CAACC,KAAK,EAAEC,GAAG,KAAK;EAC1E,MAAMC,YAAY,GAAGC,QAAQ,EAAE,IAAIC,KAAK,CAACC,KAAK,CAAA;EAC9C,MAAM;IACFC,OAAO;IACPC,GAAG;IACHC,KAAK;IACLC,SAAS;IACTC,KAAK;IACLC,SAAS;IACTC,MAAM;IACNC,OAAO;IACPC,UAAU;IACVnB,IAAI,GAAGD,aAAa,CAACC,IAAI;AACzBoB,IAAAA,KAAK,GAAGb,YAAY;IACpBc,cAAc;IACd,GAAGC,cAAAA;AACP,GAAC,GAAGjB,KAAK,CAAA;AAET,EAAA,oBACIkB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAAC,QAAA,CAAA;AACInB,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,EACLgB,cAAc,EAAA;AAClBR,IAAAA,SAAS,EAAEY,UAAU,CAACZ,SAAS,EAAEa,kBAAkB,CAAC;AAAEC,MAAAA,MAAM,EAAE/B,SAAS;MAAEG,IAAI;AAAEoB,MAAAA,KAAAA;AAAM,KAAC,CAAC,CAAA;AAAE,GAAA,CAAA,eAEzFG,KAAA,CAAAC,aAAA,CAACK,SAAS,EAAAJ,QAAA,CAAA;AACNT,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,MAAM,EAAEA,MAAO;IACfH,SAAS,EAAE,CAAGjB,EAAAA,SAAS,CAAc,WAAA,CAAA;AACrCqB,IAAAA,OAAO,EAAEA,OAAQ;AACjBC,IAAAA,UAAU,EAAEA,UAAAA;AAAW,GAAA,EACnBE,cAAc,EAAA;IAClBS,WAAW,EAAEC,WAAW,CAACC,MAAO;AAChChC,IAAAA,IAAI,EAAEA,IAAK;AACXe,IAAAA,KAAK,EAAEA,KAAM;AACbH,IAAAA,GAAG,EAAEA,GAAI;AACTQ,IAAAA,KAAK,EAAEA,KAAAA;AAAM,GAAA,CAChB,CAAC,EACDT,OAAO,iBAAIY,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKV,SAAS,EAAE,GAAGjB,SAAS,CAAA,SAAA,CAAA;AAAY,GAAA,EAAEc,OAAa,CAAC,EACnEE,KAAK,iBAAIU,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKV,SAAS,EAAE,GAAGjB,SAAS,CAAA,OAAA,CAAA;GAAYgB,EAAAA,KAAW,CAC5D,CAAC,CAAA;AAEd,CAAC,EAAC;AACFV,MAAM,CAAC8B,WAAW,GAAGrC,cAAc,CAAA;AACnCO,MAAM,CAACW,SAAS,GAAGjB,SAAS,CAAA;AAC5BM,MAAM,CAAC+B,YAAY,GAAGnC,aAAa;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bcce6ceb.js","sources":["../../src/hooks/useClickAway.tsx","../../src/utils/ClickAwayProvider/ClickAwayProvider.tsx"],"sourcesContent":["import { RefObject, useEffect } from 'react';\n\nimport { Falsy } from '@lumx/react/utils/type';\n\nimport isEmpty from 'lodash/isEmpty';\n\nconst EVENT_TYPES = ['mousedown', 'touchstart'];\n\nfunction isClickAway(targets: HTMLElement[], refs: Array<RefObject<HTMLElement>>): boolean {\n // The targets elements are not contained in any of the listed element references.\n return !refs.some((ref) => targets.some((target) => ref?.current?.contains(target)));\n}\n\nexport interface ClickAwayParameters {\n /**\n * A callback function to call when the user clicks away from the elements.\n */\n callback: EventListener | Falsy;\n /**\n * Elements considered within the click away context (clicking outside them will trigger the click away callback).\n */\n childrenRefs: RefObject<Array<RefObject<HTMLElement>>>;\n}\n\n/**\n * Listen to clicks away from the given elements and callback the passed in function.\n *\n * Warning: If you need to detect click away on nested React portals, please use the `ClickAwayProvider` component.\n */\nexport function useClickAway({ callback, childrenRefs }: ClickAwayParameters): void {\n useEffect(() => {\n const { current: currentRefs } = childrenRefs;\n if (!callback || !currentRefs || isEmpty(currentRefs)) {\n return undefined;\n }\n const listener: EventListener = (evt) => {\n const targets = [evt.composedPath?.()[0], evt.target] as HTMLElement[];\n if (isClickAway(targets, currentRefs)) {\n callback(evt);\n }\n };\n\n EVENT_TYPES.forEach((evtType) => document.addEventListener(evtType, listener));\n return () => {\n EVENT_TYPES.forEach((evtType) => document.removeEventListener(evtType, listener));\n };\n }, [callback, childrenRefs]);\n}\n","import { createContext, RefObject, useContext, useEffect, useMemo, useRef } from 'react';\nimport { ClickAwayParameters, useClickAway } from '@lumx/react/hooks/useClickAway';\n\ninterface ContextValue {\n childrenRefs: Array<RefObject<HTMLElement>>;\n addRefs(...newChildrenRefs: Array<RefObject<HTMLElement>>): void;\n}\n\nconst ClickAwayAncestorContext = createContext<ContextValue | null>(null);\n\ninterface ClickAwayProviderProps extends ClickAwayParameters {\n /**\n * (Optional) Element that should be considered as part of the parent\n */\n parentRef?: RefObject<HTMLElement>;\n /**\n * Children\n */\n children?: React.ReactNode;\n}\n\n/**\n * Component combining the `useClickAway` hook with a React context to hook into the React component tree and make sure\n * we take into account both the DOM tree and the React tree to detect click away.\n *\n * @return the react component.\n */\nexport const ClickAwayProvider: React.FC<ClickAwayProviderProps> = ({\n children,\n callback,\n childrenRefs,\n parentRef,\n}) => {\n const parentContext = useContext(ClickAwayAncestorContext);\n const currentContext = useMemo(() => {\n const context: ContextValue = {\n childrenRefs: [],\n /**\n * Add element refs to the current context and propagate to the parent context.\n */\n addRefs(...newChildrenRefs) {\n // Add element refs that should be considered as inside the click away context.\n context.childrenRefs.push(...newChildrenRefs);\n\n if (parentContext) {\n // Also add then to the parent context\n parentContext.addRefs(...newChildrenRefs);\n if (parentRef) {\n // The parent element is also considered as inside the parent click away context but not inside the current context\n parentContext.addRefs(parentRef);\n }\n }\n },\n };\n return context;\n }, [parentContext, parentRef]);\n\n useEffect(() => {\n const { current: currentRefs } = childrenRefs;\n if (!currentRefs) {\n return;\n }\n currentContext.addRefs(...currentRefs);\n }, [currentContext, childrenRefs]);\n\n useClickAway({ callback, childrenRefs: useRef(currentContext.childrenRefs) });\n return <ClickAwayAncestorContext.Provider value={currentContext}>{children}</ClickAwayAncestorContext.Provider>;\n};\nClickAwayProvider.displayName = 'ClickAwayProvider';\n"],"names":["EVENT_TYPES","isClickAway","targets","refs","some","ref","target","current","contains","useClickAway","callback","childrenRefs","useEffect","currentRefs","isEmpty","undefined","listener","evt","composedPath","forEach","evtType","document","addEventListener","removeEventListener","ClickAwayAncestorContext","createContext","ClickAwayProvider","children","parentRef","parentContext","useContext","currentContext","useMemo","context","addRefs","newChildrenRefs","push","useRef","React","createElement","Provider","value","displayName"],"mappings":";;;AAMA,MAAMA,WAAW,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;AAE/C,SAASC,WAAWA,CAACC,OAAsB,EAAEC,IAAmC,EAAW;AACvF;EACA,OAAO,CAACA,IAAI,CAACC,IAAI,CAAEC,GAAG,IAAKH,OAAO,CAACE,IAAI,CAAEE,MAAM,IAAKD,GAAG,EAAEE,OAAO,EAAEC,QAAQ,CAACF,MAAM,CAAC,CAAC,CAAC,CAAA;AACxF,CAAA;AAaA;AACA;AACA;AACA;AACA;AACO,SAASG,YAAYA,CAAC;EAAEC,QAAQ;AAAEC,EAAAA,YAAAA;AAAkC,CAAC,EAAQ;AAChFC,EAAAA,SAAS,CAAC,MAAM;IACZ,MAAM;AAAEL,MAAAA,OAAO,EAAEM,WAAAA;AAAY,KAAC,GAAGF,YAAY,CAAA;IAC7C,IAAI,CAACD,QAAQ,IAAI,CAACG,WAAW,IAAIC,OAAO,CAACD,WAAW,CAAC,EAAE;AACnD,MAAA,OAAOE,SAAS,CAAA;AACpB,KAAA;IACA,MAAMC,QAAuB,GAAIC,GAAG,IAAK;AACrC,MAAA,MAAMf,OAAO,GAAG,CAACe,GAAG,CAACC,YAAY,IAAI,CAAC,CAAC,CAAC,EAAED,GAAG,CAACX,MAAM,CAAkB,CAAA;AACtE,MAAA,IAAIL,WAAW,CAACC,OAAO,EAAEW,WAAW,CAAC,EAAE;QACnCH,QAAQ,CAACO,GAAG,CAAC,CAAA;AACjB,OAAA;KACH,CAAA;AAEDjB,IAAAA,WAAW,CAACmB,OAAO,CAAEC,OAAO,IAAKC,QAAQ,CAACC,gBAAgB,CAACF,OAAO,EAAEJ,QAAQ,CAAC,CAAC,CAAA;AAC9E,IAAA,OAAO,MAAM;AACThB,MAAAA,WAAW,CAACmB,OAAO,CAAEC,OAAO,IAAKC,QAAQ,CAACE,mBAAmB,CAACH,OAAO,EAAEJ,QAAQ,CAAC,CAAC,CAAA;KACpF,CAAA;AACL,GAAC,EAAE,CAACN,QAAQ,EAAEC,YAAY,CAAC,CAAC,CAAA;AAChC;;ACvCA,MAAMa,wBAAwB,gBAAGC,aAAa,CAAsB,IAAI,CAAC,CAAA;AAazE;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAAmD,GAAGA,CAAC;EAChEC,QAAQ;EACRjB,QAAQ;EACRC,YAAY;AACZiB,EAAAA,SAAAA;AACJ,CAAC,KAAK;AACF,EAAA,MAAMC,aAAa,GAAGC,UAAU,CAACN,wBAAwB,CAAC,CAAA;AAC1D,EAAA,MAAMO,cAAc,GAAGC,OAAO,CAAC,MAAM;AACjC,IAAA,MAAMC,OAAqB,GAAG;AAC1BtB,MAAAA,YAAY,EAAE,EAAE;AAChB;AACZ;AACA;MACYuB,OAAOA,CAAC,GAAGC,eAAe,EAAE;AACxB;AACAF,QAAAA,OAAO,CAACtB,YAAY,CAACyB,IAAI,CAAC,GAAGD,eAAe,CAAC,CAAA;AAE7C,QAAA,IAAIN,aAAa,EAAE;AACf;AACAA,UAAAA,aAAa,CAACK,OAAO,CAAC,GAAGC,eAAe,CAAC,CAAA;AACzC,UAAA,IAAIP,SAAS,EAAE;AACX;AACAC,YAAAA,aAAa,CAACK,OAAO,CAACN,SAAS,CAAC,CAAA;AACpC,WAAA;AACJ,SAAA;AACJ,OAAA;KACH,CAAA;AACD,IAAA,OAAOK,OAAO,CAAA;AAClB,GAAC,EAAE,CAACJ,aAAa,EAAED,SAAS,CAAC,CAAC,CAAA;AAE9BhB,EAAAA,SAAS,CAAC,MAAM;IACZ,MAAM;AAAEL,MAAAA,OAAO,EAAEM,WAAAA;AAAY,KAAC,GAAGF,YAAY,CAAA;IAC7C,IAAI,CAACE,WAAW,EAAE;AACd,MAAA,OAAA;AACJ,KAAA;AACAkB,IAAAA,cAAc,CAACG,OAAO,CAAC,GAAGrB,WAAW,CAAC,CAAA;AAC1C,GAAC,EAAE,CAACkB,cAAc,EAAEpB,YAAY,CAAC,CAAC,CAAA;AAElCF,EAAAA,YAAY,CAAC;IAAEC,QAAQ;AAAEC,IAAAA,YAAY,EAAE0B,MAAM,CAACN,cAAc,CAACpB,YAAY,CAAA;AAAE,GAAC,CAAC,CAAA;AAC7E,EAAA,oBAAO2B,KAAA,CAAAC,aAAA,CAACf,wBAAwB,CAACgB,QAAQ,EAAA;AAACC,IAAAA,KAAK,EAAEV,cAAAA;AAAe,GAAA,EAAEJ,QAA4C,CAAC,CAAA;AACnH,EAAC;AACDD,iBAAiB,CAACgB,WAAW,GAAG,mBAAmB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bdd41804.js","sources":["../../src/components/expansion-panel/ExpansionPanel.tsx"],"sourcesContent":["import React, { Children, PropsWithChildren, ReactNode, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport { mdiChevronDown, mdiChevronUp } from '@lumx/icons';\n\nimport isEmpty from 'lodash/isEmpty';\n\nimport { ColorPalette, DragHandle, Emphasis, IconButton, IconButtonProps, Theme } from '@lumx/react';\nimport { GenericProps, HasCloseMode, HasTheme, isComponent } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { partitionMulti } from '@lumx/react/utils/partitionMulti';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { IS_BROWSER } from '@lumx/react/constants';\n\n/**\n * Defines the props of the component.\n */\nexport interface ExpansionPanelProps extends GenericProps, HasCloseMode, HasTheme {\n /** Whether the expansion panel has a background. */\n hasBackground?: boolean;\n /** Whether the header has a divider. */\n hasHeaderDivider?: boolean;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Label text (overwritten if a `<header>` is provided in the children). */\n label?: string;\n /** On open callback. */\n onOpen?: (event: React.MouseEvent) => void;\n /** On close callback. */\n onClose?: (event: React.MouseEvent) => void;\n /** Props to pass to the toggle button (minus those already set by the ExpansionPanel props). */\n toggleButtonProps: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color'>;\n /** On toggle open or close callback. */\n onToggleOpen?(shouldOpen: boolean, event: React.MouseEvent): void;\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ExpansionPanel';\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<ExpansionPanelProps> = {\n closeMode: 'unmount',\n};\n\nconst isDragHandle = isComponent(DragHandle);\nconst isHeader = isComponent('header');\nconst isFooter = isComponent('footer');\n\n/**\n * ExpansionPanel component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ExpansionPanel = forwardRef<ExpansionPanelProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const {\n className,\n closeMode = DEFAULT_PROPS.closeMode,\n children: anyChildren,\n hasBackground,\n hasHeaderDivider,\n isOpen,\n label,\n onClose,\n onOpen,\n onToggleOpen,\n theme = defaultTheme,\n toggleButtonProps,\n ...forwardedProps\n } = props;\n\n const children: ReactNode[] = Children.toArray(anyChildren);\n\n // Partition children by types.\n const [[dragHandle], [header], [footer], content] = partitionMulti(children, [isDragHandle, isHeader, isFooter]);\n\n // Either take the header in children or create one with the label.\n const headerProps: PropsWithChildren<any> = React.isValidElement(header) ? header.props : {};\n const headerContent = !isEmpty(headerProps.children) ? (\n headerProps.children\n ) : (\n <span className={`${CLASSNAME}__label`}>{label}</span>\n );\n\n const toggleOpen = (event: React.MouseEvent) => {\n const shouldOpen = !isOpen;\n\n if (onOpen && shouldOpen) {\n onOpen(event);\n }\n if (onClose && !shouldOpen) {\n onClose(event);\n }\n if (onToggleOpen) {\n onToggleOpen(shouldOpen, event);\n }\n };\n\n const color = theme === Theme.dark ? ColorPalette.light : ColorPalette.dark;\n\n const rootClassName = classNames(\n className,\n handleBasicClasses({\n hasBackground,\n hasHeader: Boolean(!isEmpty(headerProps.children)),\n hasHeaderDivider,\n isClose: !isOpen,\n isDraggable: Boolean(dragHandle),\n isOpen,\n prefix: CLASSNAME,\n theme,\n }),\n );\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n // Children stay visible while the open/close transition is running\n const [isChildrenVisible, setChildrenVisible] = React.useState(isOpen);\n\n const isOpenRef = React.useRef(isOpen);\n React.useEffect(() => {\n if (isOpen || closeMode === 'hide') {\n setChildrenVisible(true);\n } else if (!IS_BROWSER) {\n // Outside a browser we can't wait for the transition\n setChildrenVisible(false);\n }\n isOpenRef.current = isOpen;\n }, [closeMode, isOpen]);\n\n // Change children's visibility on the transition end\n React.useEffect(() => {\n const { current: wrapper } = wrapperRef;\n if (!IS_BROWSER || !wrapper) {\n return undefined;\n }\n const onTransitionEnd = () => {\n setChildrenVisible(isOpenRef.current || closeMode === 'hide');\n };\n wrapper.addEventListener('transitionend', onTransitionEnd);\n return () => wrapper.removeEventListener('transitionend', onTransitionEnd);\n }, [closeMode]);\n\n return (\n <section ref={ref} {...forwardedProps} className={rootClassName}>\n {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */}\n <header className={`${CLASSNAME}__header`} onClick={toggleOpen}>\n {dragHandle && <div className={`${CLASSNAME}__header-drag`}>{dragHandle}</div>}\n\n <div {...headerProps} className={`${CLASSNAME}__header-content`}>\n {headerContent}\n </div>\n\n <div className={`${CLASSNAME}__header-toggle`}>\n <IconButton\n {...toggleButtonProps}\n color={color}\n emphasis={Emphasis.low}\n icon={isOpen ? mdiChevronUp : mdiChevronDown}\n aria-expanded={isOpen || 'false'}\n />\n </div>\n </header>\n\n <div className={`${CLASSNAME}__wrapper`} ref={wrapperRef}>\n {(isOpen || isChildrenVisible) && (\n <div className={`${CLASSNAME}__container`}>\n <div className={`${CLASSNAME}__content`}>{content}</div>\n\n {footer && <div className={`${CLASSNAME}__footer`}>{footer}</div>}\n </div>\n )}\n </div>\n </section>\n );\n});\nExpansionPanel.displayName = COMPONENT_NAME;\nExpansionPanel.className = CLASSNAME;\nExpansionPanel.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","closeMode","isDragHandle","isComponent","DragHandle","isHeader","isFooter","ExpansionPanel","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","className","children","anyChildren","hasBackground","hasHeaderDivider","isOpen","label","onClose","onOpen","onToggleOpen","theme","toggleButtonProps","forwardedProps","Children","toArray","dragHandle","header","footer","content","partitionMulti","headerProps","React","isValidElement","headerContent","isEmpty","createElement","toggleOpen","event","shouldOpen","color","dark","ColorPalette","rootClassName","classNames","handleBasicClasses","hasHeader","Boolean","isClose","isDraggable","prefix","wrapperRef","useRef","isChildrenVisible","setChildrenVisible","useState","isOpenRef","useEffect","IS_BROWSER","current","wrapper","undefined","onTransitionEnd","addEventListener","removeEventListener","_extends","onClick","IconButton","emphasis","Emphasis","low","icon","mdiChevronUp","mdiChevronDown","displayName","defaultProps"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"c43d098b.js","sources":["../../src/utils/Portal/PortalProvider.tsx","../../src/utils/Portal/Portal.tsx"],"sourcesContent":["import React from 'react';\n\ntype Container = DocumentFragment | Element;\n\n/**\n * Portal initializing function.\n * If it does not provide a container, the Portal children will render in classic React tree and not in a portal.\n */\nexport type PortalInit = () => {\n container?: Container;\n teardown?: () => void;\n};\n\nexport const PortalContext = React.createContext<PortalInit>(() => ({ container: document.body }));\n\nexport interface PortalProviderProps {\n children?: React.ReactNode;\n value: PortalInit;\n}\n\n/**\n * Customize where <Portal> wrapped elements render (tooltip, popover, dialog, etc.)\n */\nexport const PortalProvider: React.FC<PortalProviderProps> = PortalContext.Provider;\n","import React from 'react';\nimport { createPortal } from 'react-dom';\nimport { PortalContext } from './PortalProvider';\n\nexport interface PortalProps {\n enabled?: boolean;\n children: React.ReactNode;\n}\n\n/**\n * Render children in a portal outside the current DOM position\n * (defaults to `document.body` but can be customized with the PortalContextProvider)\n */\nexport const Portal: React.FC<PortalProps> = ({ children, enabled = true }) => {\n const init = React.useContext(PortalContext);\n const context = React.useMemo(\n () => {\n return enabled ? init() : null;\n },\n // Only update on 'enabled'\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [enabled],\n );\n\n React.useLayoutEffect(() => {\n return context?.teardown;\n }, [context?.teardown, enabled]);\n\n if (!context?.container) {\n return <>{children}</>;\n }\n return createPortal(children, context.container);\n};\n"],"names":["PortalContext","React","createContext","container","document","body","PortalProvider","Provider","Portal","children","enabled","init","useContext","context","useMemo","useLayoutEffect","teardown","createElement","Fragment","createPortal"],"mappings":";;;AAIA;AACA;AACA;AACA;;AAMO,MAAMA,aAAa,gBAAGC,cAAK,CAACC,aAAa,CAAa,OAAO;EAAEC,SAAS,EAAEC,QAAQ,CAACC,IAAAA;AAAK,CAAC,CAAC,CAAC,CAAA;AAOlG;AACA;AACA;AACaC,MAAAA,cAA6C,GAAGN,aAAa,CAACO;;ACd3E;AACA;AACA;AACA;AACO,MAAMC,MAA6B,GAAGA,CAAC;EAAEC,QAAQ;AAAEC,EAAAA,OAAO,GAAG,IAAA;AAAK,CAAC,KAAK;AAC3E,EAAA,MAAMC,IAAI,GAAGV,cAAK,CAACW,UAAU,CAACZ,aAAa,CAAC,CAAA;AAC5C,EAAA,MAAMa,OAAO,GAAGZ,cAAK,CAACa,OAAO,CACzB,MAAM;AACF,IAAA,OAAOJ,OAAO,GAAGC,IAAI,EAAE,GAAG,IAAI,CAAA;GACjC;AACD;AACA;EACA,CAACD,OAAO,CACZ,CAAC,CAAA;EAEDT,cAAK,CAACc,eAAe,CAAC,MAAM;IACxB,OAAOF,OAAO,EAAEG,QAAQ,CAAA;GAC3B,EAAE,CAACH,OAAO,EAAEG,QAAQ,EAAEN,OAAO,CAAC,CAAC,CAAA;AAEhC,EAAA,IAAI,CAACG,OAAO,EAAEV,SAAS,EAAE;IACrB,oBAAOF,cAAA,CAAAgB,aAAA,CAAAhB,cAAA,CAAAiB,QAAA,EAAGT,IAAAA,EAAAA,QAAW,CAAC,CAAA;AAC1B,GAAA;AACA,EAAA,oBAAOU,YAAY,CAACV,QAAQ,EAAEI,OAAO,CAACV,SAAS,CAAC,CAAA;AACpD;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cb036703.js","sources":["../../src/components/generic-block/GenericBlock.tsx","../../src/components/generic-block/constants.ts"],"sourcesContent":["import React, { Children, ReactElement, ReactNode } from 'react';\n\nimport classNames from 'classnames';\nimport isEmpty from 'lodash/isEmpty';\nimport noop from 'lodash/noop';\n\nimport { Comp, isComponentType } from '@lumx/react/utils/type';\nimport { getRootClassName } from '@lumx/core/js/utils/className';\nimport { partitionMulti } from '@lumx/react/utils/partitionMulti';\nimport { Orientation, Size, FlexBox, FlexBoxProps } from '@lumx/react';\nimport { GenericBlockGapSize } from '@lumx/react/components/generic-block/constants';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nexport interface GenericBlockProps extends FlexBoxProps {\n /**\n * Component to use as visual element.\n */\n figure?: ReactNode;\n /**\n * Actions to set after the main content.\n */\n actions?: ReactNode;\n /**\n * Main content to display or sections components\n * ({@see GenericBlock.Figure}, {@see GenericBlock.Content} & {@see GenericBlock.Actions})\n */\n children: ReactNode;\n /**\n * Orientation of the 3 sections\n */\n orientation?: FlexBoxProps['orientation'];\n /**\n * Horizontal alignment.\n */\n hAlign?: FlexBoxProps['hAlign'];\n /**\n * Vertical alignment.\n */\n vAlign?: FlexBoxProps['vAlign'];\n /**\n * The props to forward to the content.\n * By default, the content will have the same alignment as wrapper.\n */\n contentProps?: Omit<FlexBoxProps, 'children'>;\n /**\n * props to forward to the actions element.\n */\n actionsProps?: Omit<FlexBoxProps, 'children'>;\n /**\n * props to forward to the figure element.\n */\n figureProps?: Omit<FlexBoxProps, 'children'>;\n /**\n * Gap space between sections.\n */\n gap?: GenericBlockGapSize;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'GenericBlock';\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<GenericBlockProps> = {\n gap: Size.big,\n orientation: Orientation.horizontal,\n};\n\ntype BaseGenericBlock = Comp<GenericBlockProps, HTMLDivElement>;\n\ninterface GenericBlockSectionProps extends FlexBoxProps {\n /**\n * Gap space between items.\n */\n gap?: GenericBlockGapSize;\n}\n\ninterface GenericBlock extends BaseGenericBlock {\n /**\n * Use `GenericBlock.Figure` component as children of the `GenericBlock` component as an alternative way to inject\n * the \"figure\" section of the block (instead of using `figure` and `figureProps` props).\n */\n Figure: Comp<GenericBlockSectionProps>;\n /**\n * Use `GenericBlock.Content` component as children of the `GenericBlock` component as an alternative way to inject\n * the \"content\" section of the block (instead of using `content` and `contentProps` props).\n */\n Content: Comp<GenericBlockSectionProps>;\n /**\n * Use `GenericBlock.Actions` component as children of the `GenericBlock` component as an alternative way to inject\n * the \"actions\" section of the block (instead of using `actions` and `actionsProps` props).\n */\n Actions: Comp<GenericBlockSectionProps>;\n}\n\nconst Figure = noop.bind({}) as Comp<FlexBoxProps>;\nconst isFigure = isComponentType(Figure);\n\nconst Content = noop.bind({}) as Comp<FlexBoxProps>;\nconst isContent = isComponentType(Content);\n\nconst Actions = noop.bind({}) as Comp<FlexBoxProps>;\nconst isActions = isComponentType(Actions);\n\n/**\n * The GenericBlock is a layout component made of 3 sections that can be\n * displayed either horizontally of vertically with the same gap between each section.\n *\n * The sections are:\n * - `Figure` => A visual element to display before the main content.\n * - `Content` => The main content displayed\n * - `Actions` => One or more actions to set after the element.\n *\n * @see https://www.figma.com/file/lzzrQmsfaXRaOyRfoEogPZ/DS%3A-playground?node-id=1%3A4076\n */\nconst BaseGenericBlock: BaseGenericBlock = forwardRef((props, ref) => {\n const {\n className,\n figure,\n figureProps,\n children,\n actions,\n actionsProps,\n gap = DEFAULT_PROPS.gap,\n orientation = DEFAULT_PROPS.orientation,\n contentProps,\n ...forwardedProps\n } = props;\n\n const sections = React.useMemo(() => {\n // Split children by section type\n const [[figureChild], [contentChild], [actionsChild], ...otherChildren] = partitionMulti(\n Children.toArray(children),\n [isFigure, isContent, isActions],\n );\n return {\n figureChild,\n figureChildProps: (figureChild as ReactElement)?.props,\n contentChild,\n contentChildProps: (contentChild as ReactElement)?.props,\n actionsChild,\n actionsChildProps: (actionsChild as ReactElement)?.props,\n otherChildren: otherChildren.filter((child) => !isEmpty(child)),\n };\n }, [children]);\n\n return (\n <FlexBox\n ref={ref}\n className={classNames(className, CLASSNAME)}\n gap={gap}\n orientation={orientation}\n {...forwardedProps}\n >\n {(figure || sections.figureChildProps?.children) && (\n <FlexBox\n ref={(sections.figureChild as any)?.ref}\n vAlign={forwardedProps.vAlign}\n hAlign={forwardedProps.hAlign}\n {...figureProps}\n {...sections.figureChildProps}\n className={classNames(\n figureProps?.className,\n sections.figureChildProps?.className,\n `${CLASSNAME}__figure`,\n )}\n >\n {figure}\n {sections.figureChildProps?.children}\n </FlexBox>\n )}\n\n {(sections.contentChildProps?.children || sections.otherChildren.length > 0) && (\n <FlexBox\n ref={(sections.contentChild as any)?.ref}\n orientation={Orientation.vertical}\n fillSpace\n vAlign={forwardedProps.vAlign}\n hAlign={forwardedProps.hAlign}\n {...contentProps}\n {...sections.contentChildProps}\n className={classNames(\n contentProps?.className,\n sections.contentChildProps?.className,\n `${CLASSNAME}__content`,\n )}\n >\n {sections.contentChildProps?.children}\n {sections.otherChildren}\n </FlexBox>\n )}\n\n {(actions || sections.actionsChildProps?.children) && (\n <FlexBox\n ref={(sections.actionsChild as any)?.ref}\n vAlign={forwardedProps.vAlign}\n hAlign={forwardedProps.hAlign}\n {...actionsProps}\n {...sections.actionsChildProps}\n className={classNames(\n actionsProps?.className,\n sections.actionsChildProps?.className,\n `${CLASSNAME}__actions`,\n )}\n >\n {actions}\n {sections.actionsChildProps?.children}\n </FlexBox>\n )}\n </FlexBox>\n );\n});\nBaseGenericBlock.displayName = COMPONENT_NAME;\nBaseGenericBlock.className = CLASSNAME;\nBaseGenericBlock.defaultProps = DEFAULT_PROPS;\n\nexport const GenericBlock: GenericBlock = Object.assign(BaseGenericBlock, { Figure, Content, Actions });\n","import pick from 'lodash/pick';\nimport { Size } from '@lumx/react';\nimport { ValueOf } from '@lumx/react/utils/type';\n\n/**\n * Accepted gap sizes for the generic block.\n */\nexport const GenericBlockGapSize = pick(Size, ['tiny', 'regular', 'medium', 'big', 'huge']);\nexport type GenericBlockGapSize = ValueOf<typeof GenericBlockGapSize>;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","gap","Size","big","orientation","Orientation","horizontal","Figure","noop","bind","isFigure","isComponentType","Content","isContent","Actions","isActions","BaseGenericBlock","forwardRef","props","ref","className","figure","figureProps","children","actions","actionsProps","contentProps","forwardedProps","sections","React","useMemo","figureChild","contentChild","actionsChild","otherChildren","partitionMulti","Children","toArray","figureChildProps","contentChildProps","actionsChildProps","filter","child","isEmpty","createElement","FlexBox","_extends","classNames","vAlign","hAlign","length","vertical","fillSpace","displayName","defaultProps","GenericBlock","Object","assign","GenericBlockGapSize","pick"],"mappings":";;;;;;;;;AA0DA;AACA;AACA;AACA,MAAMA,cAAc,GAAG,cAAc,CAAA;;AAErC;AACA;AACA;AACA,MAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAc,CAAC,CAAA;;AAElD;AACA;AACA;AACA,MAAMG,aAAyC,GAAG;EAC9CC,GAAG,EAAEC,IAAI,CAACC,GAAG;EACbC,WAAW,EAAEC,WAAW,CAACC,UAAAA;AAC7B,CAAC,CAAA;AA6BD,MAAMC,MAAM,GAAGC,IAAI,CAACC,IAAI,CAAC,EAAE,CAAuB,CAAA;AAClD,MAAMC,QAAQ,GAAGC,eAAe,CAACJ,MAAM,CAAC,CAAA;AAExC,MAAMK,OAAO,GAAGJ,IAAI,CAACC,IAAI,CAAC,EAAE,CAAuB,CAAA;AACnD,MAAMI,SAAS,GAAGF,eAAe,CAACC,OAAO,CAAC,CAAA;AAE1C,MAAME,OAAO,GAAGN,IAAI,CAACC,IAAI,CAAC,EAAE,CAAuB,CAAA;AACnD,MAAMM,SAAS,GAAGJ,eAAe,CAACG,OAAO,CAAC,CAAA;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,gBAAkC,GAAGC,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;EAClE,MAAM;IACFC,SAAS;IACTC,MAAM;IACNC,WAAW;IACXC,QAAQ;IACRC,OAAO;IACPC,YAAY;IACZxB,GAAG,GAAGD,aAAa,CAACC,GAAG;IACvBG,WAAW,GAAGJ,aAAa,CAACI,WAAW;IACvCsB,YAAY;IACZ,GAAGC,cAAAA;AACP,GAAC,GAAGT,KAAK,CAAA;AAET,EAAA,MAAMU,QAAQ,GAAGC,cAAK,CAACC,OAAO,CAAC,MAAM;AACjC;AACA,IAAA,MAAM,CAAC,CAACC,WAAW,CAAC,EAAE,CAACC,YAAY,CAAC,EAAE,CAACC,YAAY,CAAC,EAAE,GAAGC,aAAa,CAAC,GAAGC,cAAc,CACpFC,QAAQ,CAACC,OAAO,CAACd,QAAQ,CAAC,EAC1B,CAACb,QAAQ,EAAEG,SAAS,EAAEE,SAAS,CACnC,CAAC,CAAA;IACD,OAAO;MACHgB,WAAW;MACXO,gBAAgB,EAAGP,WAAW,EAAmBb,KAAK;MACtDc,YAAY;MACZO,iBAAiB,EAAGP,YAAY,EAAmBd,KAAK;MACxDe,YAAY;MACZO,iBAAiB,EAAGP,YAAY,EAAmBf,KAAK;MACxDgB,aAAa,EAAEA,aAAa,CAACO,MAAM,CAAEC,KAAK,IAAK,CAACC,OAAO,CAACD,KAAK,CAAC,CAAA;KACjE,CAAA;AACL,GAAC,EAAE,CAACnB,QAAQ,CAAC,CAAC,CAAA;AAEd,EAAA,oBACIM,cAAA,CAAAe,aAAA,CAACC,OAAO,EAAAC,QAAA,CAAA;AACJ3B,IAAAA,GAAG,EAAEA,GAAI;AACTC,IAAAA,SAAS,EAAE2B,UAAU,CAAC3B,SAAS,EAAEtB,SAAS,CAAE;AAC5CG,IAAAA,GAAG,EAAEA,GAAI;AACTG,IAAAA,WAAW,EAAEA,WAAAA;AAAY,GAAA,EACrBuB,cAAc,CAEjB,EAAA,CAACN,MAAM,IAAIO,QAAQ,CAACU,gBAAgB,EAAEf,QAAQ,kBAC3CM,cAAA,CAAAe,aAAA,CAACC,OAAO,EAAAC,QAAA,CAAA;AACJ3B,IAAAA,GAAG,EAAGS,QAAQ,CAACG,WAAW,EAAUZ,GAAI;IACxC6B,MAAM,EAAErB,cAAc,CAACqB,MAAO;IAC9BC,MAAM,EAAEtB,cAAc,CAACsB,MAAAA;AAAO,GAAA,EAC1B3B,WAAW,EACXM,QAAQ,CAACU,gBAAgB,EAAA;AAC7BlB,IAAAA,SAAS,EAAE2B,UAAU,CACjBzB,WAAW,EAAEF,SAAS,EACtBQ,QAAQ,CAACU,gBAAgB,EAAElB,SAAS,EACpC,CAAA,EAAGtB,SAAS,CAChB,QAAA,CAAA,CAAA;AAAE,GAAA,CAAA,EAEDuB,MAAM,EACNO,QAAQ,CAACU,gBAAgB,EAAEf,QACvB,CACZ,EAEA,CAACK,QAAQ,CAACW,iBAAiB,EAAEhB,QAAQ,IAAIK,QAAQ,CAACM,aAAa,CAACgB,MAAM,GAAG,CAAC,kBACvErB,cAAA,CAAAe,aAAA,CAACC,OAAO,EAAAC,QAAA,CAAA;AACJ3B,IAAAA,GAAG,EAAGS,QAAQ,CAACI,YAAY,EAAUb,GAAI;IACzCf,WAAW,EAAEC,WAAW,CAAC8C,QAAS;IAClCC,SAAS,EAAA,IAAA;IACTJ,MAAM,EAAErB,cAAc,CAACqB,MAAO;IAC9BC,MAAM,EAAEtB,cAAc,CAACsB,MAAAA;AAAO,GAAA,EAC1BvB,YAAY,EACZE,QAAQ,CAACW,iBAAiB,EAAA;AAC9BnB,IAAAA,SAAS,EAAE2B,UAAU,CACjBrB,YAAY,EAAEN,SAAS,EACvBQ,QAAQ,CAACW,iBAAiB,EAAEnB,SAAS,EACrC,CAAA,EAAGtB,SAAS,CAChB,SAAA,CAAA,CAAA;GAEC8B,CAAAA,EAAAA,QAAQ,CAACW,iBAAiB,EAAEhB,QAAQ,EACpCK,QAAQ,CAACM,aACL,CACZ,EAEA,CAACV,OAAO,IAAII,QAAQ,CAACY,iBAAiB,EAAEjB,QAAQ,kBAC7CM,cAAA,CAAAe,aAAA,CAACC,OAAO,EAAAC,QAAA,CAAA;AACJ3B,IAAAA,GAAG,EAAGS,QAAQ,CAACK,YAAY,EAAUd,GAAI;IACzC6B,MAAM,EAAErB,cAAc,CAACqB,MAAO;IAC9BC,MAAM,EAAEtB,cAAc,CAACsB,MAAAA;AAAO,GAAA,EAC1BxB,YAAY,EACZG,QAAQ,CAACY,iBAAiB,EAAA;AAC9BpB,IAAAA,SAAS,EAAE2B,UAAU,CACjBtB,YAAY,EAAEL,SAAS,EACvBQ,QAAQ,CAACY,iBAAiB,EAAEpB,SAAS,EACrC,CAAA,EAAGtB,SAAS,CAChB,SAAA,CAAA,CAAA;GAEC0B,CAAAA,EAAAA,OAAO,EACPI,QAAQ,CAACY,iBAAiB,EAAEjB,QACxB,CAER,CAAC,CAAA;AAElB,CAAC,CAAC,CAAA;AACFP,gBAAgB,CAACqC,WAAW,GAAGxD,cAAc,CAAA;AAC7CmB,gBAAgB,CAACI,SAAS,GAAGtB,SAAS,CAAA;AACtCkB,gBAAgB,CAACsC,YAAY,GAAGtD,aAAa,CAAA;AAEtC,MAAMuD,YAA0B,GAAGC,MAAM,CAACC,MAAM,CAACzC,gBAAgB,EAAE;EAAET,MAAM;EAAEK,OAAO;AAAEE,EAAAA,OAAAA;AAAQ,CAAC;;AC5NtG;AACA;AACA;MACa4C,mBAAmB,GAAGC,IAAI,CAACzD,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;;;;"}
|
package/_internal/cc995526.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cc995526.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cdc3efab.js","sources":["../../src/components/skeleton/SkeletonCircle.tsx","../../src/components/skeleton/SkeletonRectangle.tsx","../../src/components/skeleton/SkeletonTypography.tsx"],"sourcesContent":["import classNames from 'classnames';\n\nimport { GlobalSize, Theme, ColorPalette } 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 SkeletonCircleProps extends GenericProps, HasTheme {\n /** Size variant. */\n size: GlobalSize;\n /** The color of the skeleton. */\n color?: ColorPalette;\n}\n\nconst DEFAULT_PROPS: Partial<SkeletonCircleProps> = {};\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SkeletonCircle';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * SkeletonCircle component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SkeletonCircle = forwardRef<SkeletonCircleProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const { className, size, color, theme = defaultTheme, ...forwardedProps } = props;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, size, color, theme }))}\n />\n );\n});\nSkeletonCircle.displayName = COMPONENT_NAME;\nSkeletonCircle.defaultProps = DEFAULT_PROPS;\nSkeletonCircle.className = CLASSNAME;\n","import classNames from 'classnames';\n\nimport { AspectRatio, GlobalSize, Theme, ColorPalette } from '@lumx/react';\nimport { GenericProps, HasTheme, ValueOf } 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 * Skeleton variants.\n */\nexport const SkeletonRectangleVariant = { squared: 'squared', rounded: 'rounded', pill: 'pill' } as const;\nexport type SkeletonRectangleVariant = ValueOf<typeof SkeletonRectangleVariant>;\n\n/**\n * Defines the props of the component.\n */\nexport interface SkeletonRectangleProps extends GenericProps, HasTheme {\n /** Aspect ratio (use with width and not height). */\n aspectRatio?: Extract<AspectRatio, 'square' | 'horizontal' | 'vertical' | 'wide'>;\n /** Height size. */\n height?: GlobalSize;\n /** Border variant. */\n variant?: SkeletonRectangleVariant;\n /** Width size. */\n width?: GlobalSize;\n /** The color of the skeleton. */\n color?: ColorPalette;\n}\n\nconst DEFAULT_PROPS: Partial<SkeletonRectangleProps> = {\n variant: SkeletonRectangleVariant.squared,\n};\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SkeletonRectangle';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * SkeletonRectangle component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SkeletonRectangle = forwardRef<SkeletonRectangleProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const {\n aspectRatio,\n className,\n height,\n theme = defaultTheme,\n variant = DEFAULT_PROPS.variant,\n width,\n color,\n ...forwardedProps\n } = props;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n aspectRatio,\n height: aspectRatio ? undefined : height,\n theme,\n variant,\n width,\n color,\n }),\n )}\n >\n <div className={`${CLASSNAME}__inner`} />\n </div>\n );\n});\nSkeletonRectangle.displayName = COMPONENT_NAME;\nSkeletonRectangle.className = CLASSNAME;\nSkeletonRectangle.defaultProps = DEFAULT_PROPS;\n","import { CSSProperties } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Theme, TypographyInterface, ColorPalette } 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 SkeletonTypographyProps extends GenericProps, HasTheme {\n /** Typography variant. */\n typography: TypographyInterface;\n /** Width CSS property. */\n width?: CSSProperties['width'];\n /** The color of the skeleton. */\n color?: ColorPalette;\n}\n\nconst DEFAULT_PROPS: Partial<SkeletonTypographyProps> = {};\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'SkeletonTypography';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * SkeletonTypography component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const SkeletonTypography = forwardRef<SkeletonTypographyProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const { className, theme = defaultTheme, typography, width, color, ...forwardedProps } = props;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, theme, typography, color }))}\n style={{ ...forwardedProps.style, width }}\n >\n <div className={`${CLASSNAME}__inner`} />\n </div>\n );\n});\nSkeletonTypography.displayName = COMPONENT_NAME;\nSkeletonTypography.defaultProps = DEFAULT_PROPS;\nSkeletonTypography.className = CLASSNAME;\n"],"names":["DEFAULT_PROPS","COMPONENT_NAME","CLASSNAME","getRootClassName","SkeletonCircle","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","className","size","color","theme","forwardedProps","React","createElement","_extends","classNames","handleBasicClasses","prefix","displayName","defaultProps","SkeletonRectangleVariant","squared","rounded","pill","variant","SkeletonRectangle","aspectRatio","height","width","undefined","SkeletonTypography","typography","style"],"mappings":"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"}
|
package/_internal/d0dd1815.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns the classname associated to the given typography.
|
|
3
|
-
* For example, for `Typography.title` it returns `lumx-typography-title`
|
|
4
|
-
*/
|
|
5
|
-
const getTypographyClassName = typography => {
|
|
6
|
-
return `lumx-typography-${typography}`;
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
export { getTypographyClassName as g };
|
|
10
|
-
//# sourceMappingURL=d0dd1815.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"d0dd1815.js","sources":["../../../lumx-core/src/js/utils/className/getTypographyClassName.ts"],"sourcesContent":["import { Typography } from '../../constants';\n\n/**\n * Returns the classname associated to the given typography.\n * For example, for `Typography.title` it returns `lumx-typography-title`\n */\nexport const getTypographyClassName = (typography: Typography) => {\n return `lumx-typography-${typography}`;\n};\n"],"names":["getTypographyClassName","typography"],"mappings":"AAEA;AACA;AACA;AACA;AACaA,MAAAA,sBAAsB,GAAIC,UAAsB,IAAK;EAC9D,OAAO,CAAA,gBAAA,EAAmBA,UAAU,CAAE,CAAA,CAAA;AAC1C;;;;"}
|
package/_internal/d3321a86.js
DELETED
|
@@ -1,290 +0,0 @@
|
|
|
1
|
-
import kebabCase from 'lodash/kebabCase';
|
|
2
|
-
import React__default from 'react';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* The prefix to use for the CSS classes.
|
|
6
|
-
*/
|
|
7
|
-
const CSS_PREFIX = 'lumx';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Animation duration constants. Take into consideration that if you change one of these variables,
|
|
11
|
-
* you need to update their scss counterpart as well
|
|
12
|
-
*/
|
|
13
|
-
const DIALOG_TRANSITION_DURATION = 400;
|
|
14
|
-
const EXPANSION_PANEL_TRANSITION_DURATION = 400;
|
|
15
|
-
const NOTIFICATION_TRANSITION_DURATION = 200;
|
|
16
|
-
const SLIDESHOW_TRANSITION_DURATION = 5000;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Delay on hover after which we open or close the tooltip.
|
|
20
|
-
* Only applies to devices supporting pointer hover.
|
|
21
|
-
*/
|
|
22
|
-
const TOOLTIP_HOVER_DELAY = {
|
|
23
|
-
open: 500,
|
|
24
|
-
close: 500
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Delay on long press after which we open or close the tooltip.
|
|
29
|
-
* Only applies to devices not supporting pointer hover.
|
|
30
|
-
*/
|
|
31
|
-
const TOOLTIP_LONG_PRESS_DELAY = {
|
|
32
|
-
open: 250,
|
|
33
|
-
close: 3000
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Alignments.
|
|
38
|
-
*/
|
|
39
|
-
const Alignment = {
|
|
40
|
-
bottom: 'bottom',
|
|
41
|
-
center: 'center',
|
|
42
|
-
end: 'end',
|
|
43
|
-
left: 'left',
|
|
44
|
-
right: 'right',
|
|
45
|
-
spaceAround: 'space-around',
|
|
46
|
-
spaceBetween: 'space-between',
|
|
47
|
-
spaceEvenly: 'space-evenly',
|
|
48
|
-
start: 'start',
|
|
49
|
-
top: 'top'
|
|
50
|
-
};
|
|
51
|
-
const Theme = {
|
|
52
|
-
light: 'light',
|
|
53
|
-
dark: 'dark'
|
|
54
|
-
};
|
|
55
|
-
const Size = {
|
|
56
|
-
xxs: 'xxs',
|
|
57
|
-
xs: 'xs',
|
|
58
|
-
s: 's',
|
|
59
|
-
m: 'm',
|
|
60
|
-
l: 'l',
|
|
61
|
-
xl: 'xl',
|
|
62
|
-
xxl: 'xxl',
|
|
63
|
-
tiny: 'tiny',
|
|
64
|
-
regular: 'regular',
|
|
65
|
-
medium: 'medium',
|
|
66
|
-
big: 'big',
|
|
67
|
-
huge: 'huge'
|
|
68
|
-
};
|
|
69
|
-
const Orientation = {
|
|
70
|
-
horizontal: 'horizontal',
|
|
71
|
-
vertical: 'vertical'
|
|
72
|
-
};
|
|
73
|
-
const Emphasis = {
|
|
74
|
-
low: 'low',
|
|
75
|
-
medium: 'medium',
|
|
76
|
-
high: 'high'
|
|
77
|
-
};
|
|
78
|
-
/**
|
|
79
|
-
* List of typographies that can't be customized.
|
|
80
|
-
*/
|
|
81
|
-
const TypographyInterface = {
|
|
82
|
-
overline: 'overline',
|
|
83
|
-
caption: 'caption',
|
|
84
|
-
body1: 'body1',
|
|
85
|
-
body2: 'body2',
|
|
86
|
-
subtitle1: 'subtitle1',
|
|
87
|
-
subtitle2: 'subtitle2',
|
|
88
|
-
title: 'title',
|
|
89
|
-
headline: 'headline',
|
|
90
|
-
display1: 'display1'
|
|
91
|
-
};
|
|
92
|
-
/**
|
|
93
|
-
* List of title typographies that can be customized (via CSS variables).
|
|
94
|
-
*/
|
|
95
|
-
const TypographyTitleCustom = {
|
|
96
|
-
title1: 'custom-title1',
|
|
97
|
-
title2: 'custom-title2',
|
|
98
|
-
title3: 'custom-title3',
|
|
99
|
-
title4: 'custom-title4',
|
|
100
|
-
title5: 'custom-title5',
|
|
101
|
-
title6: 'custom-title6'
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* List of typographies that can be customized (via CSS variables).
|
|
105
|
-
*/
|
|
106
|
-
const TypographyCustom = {
|
|
107
|
-
...TypographyTitleCustom,
|
|
108
|
-
intro: 'custom-intro',
|
|
109
|
-
'body-large': 'custom-body-large',
|
|
110
|
-
body: 'custom-body',
|
|
111
|
-
quote: 'custom-quote',
|
|
112
|
-
'publish-info': 'custom-publish-info',
|
|
113
|
-
button: 'custom-button'
|
|
114
|
-
};
|
|
115
|
-
/**
|
|
116
|
-
* List of all typographies.
|
|
117
|
-
*/
|
|
118
|
-
const Typography = {
|
|
119
|
-
...TypographyInterface,
|
|
120
|
-
custom: TypographyCustom
|
|
121
|
-
};
|
|
122
|
-
/**
|
|
123
|
-
* All available aspect ratios.
|
|
124
|
-
*/
|
|
125
|
-
const AspectRatio = {
|
|
126
|
-
/** Intrinsic content ratio. */
|
|
127
|
-
original: 'original',
|
|
128
|
-
/** Ratio 3:1 */
|
|
129
|
-
panoramic: 'panoramic',
|
|
130
|
-
/** Ratio 16:9 */
|
|
131
|
-
wide: 'wide',
|
|
132
|
-
/** Ratio 3:2 */
|
|
133
|
-
horizontal: 'horizontal',
|
|
134
|
-
/** Ratio 3:2 */
|
|
135
|
-
vertical: 'vertical',
|
|
136
|
-
/** Ratio 1:1 */
|
|
137
|
-
square: 'square',
|
|
138
|
-
/** Ratio constrained by the parent. */
|
|
139
|
-
free: 'free'
|
|
140
|
-
};
|
|
141
|
-
/**
|
|
142
|
-
* Semantic info about the purpose of the component
|
|
143
|
-
*/
|
|
144
|
-
const Kind = {
|
|
145
|
-
info: 'info',
|
|
146
|
-
success: 'success',
|
|
147
|
-
warning: 'warning',
|
|
148
|
-
error: 'error'
|
|
149
|
-
};
|
|
150
|
-
/**
|
|
151
|
-
* All available white-space values
|
|
152
|
-
* */
|
|
153
|
-
const WhiteSpace = {
|
|
154
|
-
normal: 'normal',
|
|
155
|
-
nowrap: 'nowrap',
|
|
156
|
-
pre: 'pre',
|
|
157
|
-
'pre-wrap': 'pre-wrap',
|
|
158
|
-
'pre-line': 'pre-line',
|
|
159
|
-
'break-spaces': 'break-spaces'
|
|
160
|
-
};
|
|
161
|
-
/**
|
|
162
|
-
* See SCSS variable $lumx-color-palette
|
|
163
|
-
*/
|
|
164
|
-
const ColorPalette = {
|
|
165
|
-
primary: 'primary',
|
|
166
|
-
secondary: 'secondary',
|
|
167
|
-
blue: 'blue',
|
|
168
|
-
dark: 'dark',
|
|
169
|
-
green: 'green',
|
|
170
|
-
yellow: 'yellow',
|
|
171
|
-
red: 'red',
|
|
172
|
-
light: 'light',
|
|
173
|
-
grey: 'grey'
|
|
174
|
-
};
|
|
175
|
-
/**
|
|
176
|
-
* See SCSS variable $lumx-color-variants
|
|
177
|
-
*/
|
|
178
|
-
const ColorVariant = {
|
|
179
|
-
D1: 'D1',
|
|
180
|
-
D2: 'D2',
|
|
181
|
-
L1: 'L1',
|
|
182
|
-
L2: 'L2',
|
|
183
|
-
L3: 'L3',
|
|
184
|
-
L4: 'L4',
|
|
185
|
-
L5: 'L5',
|
|
186
|
-
L6: 'L6',
|
|
187
|
-
N: 'N'
|
|
188
|
-
};
|
|
189
|
-
|
|
190
|
-
/** ColorPalette with all possible color variant combination */
|
|
191
|
-
|
|
192
|
-
function _extends() {
|
|
193
|
-
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
194
|
-
for (var e = 1; e < arguments.length; e++) {
|
|
195
|
-
var t = arguments[e];
|
|
196
|
-
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
|
|
197
|
-
}
|
|
198
|
-
return n;
|
|
199
|
-
}, _extends.apply(null, arguments);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
var classnames = {exports: {}};
|
|
203
|
-
|
|
204
|
-
/*!
|
|
205
|
-
Copyright (c) 2018 Jed Watson.
|
|
206
|
-
Licensed under the MIT License (MIT), see
|
|
207
|
-
http://jedwatson.github.io/classnames
|
|
208
|
-
*/
|
|
209
|
-
|
|
210
|
-
(function (module) {
|
|
211
|
-
/* global define */
|
|
212
|
-
|
|
213
|
-
(function () {
|
|
214
|
-
|
|
215
|
-
var hasOwn = {}.hasOwnProperty;
|
|
216
|
-
|
|
217
|
-
function classNames() {
|
|
218
|
-
var classes = [];
|
|
219
|
-
|
|
220
|
-
for (var i = 0; i < arguments.length; i++) {
|
|
221
|
-
var arg = arguments[i];
|
|
222
|
-
if (!arg) continue;
|
|
223
|
-
|
|
224
|
-
var argType = typeof arg;
|
|
225
|
-
|
|
226
|
-
if (argType === 'string' || argType === 'number') {
|
|
227
|
-
classes.push(arg);
|
|
228
|
-
} else if (Array.isArray(arg)) {
|
|
229
|
-
if (arg.length) {
|
|
230
|
-
var inner = classNames.apply(null, arg);
|
|
231
|
-
if (inner) {
|
|
232
|
-
classes.push(inner);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
} else if (argType === 'object') {
|
|
236
|
-
if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
|
|
237
|
-
classes.push(arg.toString());
|
|
238
|
-
continue;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
for (var key in arg) {
|
|
242
|
-
if (hasOwn.call(arg, key) && arg[key]) {
|
|
243
|
-
classes.push(key);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
return classes.join(' ');
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
if (module.exports) {
|
|
253
|
-
classNames.default = classNames;
|
|
254
|
-
module.exports = classNames;
|
|
255
|
-
} else {
|
|
256
|
-
window.classNames = classNames;
|
|
257
|
-
}
|
|
258
|
-
}());
|
|
259
|
-
}(classnames));
|
|
260
|
-
|
|
261
|
-
var classNames = classnames.exports;
|
|
262
|
-
|
|
263
|
-
// See https://regex101.com/r/YjS1uI/3
|
|
264
|
-
const LAST_PART_CLASSNAME = /^(.*)-(.+)$/gi;
|
|
265
|
-
|
|
266
|
-
/**
|
|
267
|
-
* Get the name of the root CSS class of a component based on its name.
|
|
268
|
-
*
|
|
269
|
-
* @param componentName The name of the component. This name should contains the component prefix and be
|
|
270
|
-
* written in PascalCase.
|
|
271
|
-
* @param subComponent Whether the current component is a sub component, if true, define the class according
|
|
272
|
-
* to BEM standards.
|
|
273
|
-
* @return The name of the root CSS class. This classname include the CSS classname prefix and is written in
|
|
274
|
-
* lower-snake-case.
|
|
275
|
-
*/
|
|
276
|
-
function getRootClassName(componentName, subComponent) {
|
|
277
|
-
const formattedClassName = `${CSS_PREFIX}-${kebabCase(componentName)}`;
|
|
278
|
-
if (subComponent) {
|
|
279
|
-
return formattedClassName.replace(LAST_PART_CLASSNAME, '$1__$2');
|
|
280
|
-
}
|
|
281
|
-
return formattedClassName;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* React.forwardRef but re-typed to attach some custom metadata on our components.
|
|
286
|
-
*/
|
|
287
|
-
const forwardRef = React__default.forwardRef;
|
|
288
|
-
|
|
289
|
-
export { Alignment as A, CSS_PREFIX as C, DIALOG_TRANSITION_DURATION as D, EXPANSION_PANEL_TRANSITION_DURATION as E, Kind as K, NOTIFICATION_TRANSITION_DURATION as N, Orientation as O, SLIDESHOW_TRANSITION_DURATION as S, TOOLTIP_HOVER_DELAY as T, WhiteSpace as W, _extends as _, TOOLTIP_LONG_PRESS_DELAY as a, Theme as b, Size as c, Emphasis as d, TypographyInterface as e, TypographyTitleCustom as f, TypographyCustom as g, Typography as h, AspectRatio as i, ColorPalette as j, ColorVariant as k, classNames as l, getRootClassName as m, forwardRef as n };
|
|
290
|
-
//# sourceMappingURL=d3321a86.js.map
|