@lumx/react 3.20.1-alpha.31 → 3.20.1-alpha.33
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/_virtual/_commonjsHelpers-d57d3fc6.js +6 -0
- package/_internal/_virtual/_commonjsHelpers-d57d3fc6.js.map +1 -0
- package/_internal/_virtual/index-0d23cc6a.js +8 -0
- package/_internal/_virtual/index-0d23cc6a.js.map +1 -0
- package/_internal/_virtual/index-3f54fe9e.js +4 -0
- package/_internal/_virtual/index-3f54fe9e.js.map +1 -0
- package/_internal/_virtual/index-4b633603.js +6 -0
- package/_internal/_virtual/index-4b633603.js.map +1 -0
- package/_internal/_virtual/react-is.development-0f849025.js +4 -0
- package/_internal/_virtual/react-is.development-0f849025.js.map +1 -0
- package/_internal/_virtual/react-is.production.min-42b26576.js +4 -0
- package/_internal/_virtual/react-is.production.min-42b26576.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/createPopper-53c3ecaa.js +258 -0
- package/_internal/node_modules/@popperjs/core/lib/createPopper-53c3ecaa.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/contains-814049c5.js +27 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/contains-814049c5.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect-07f6dc7c.js +16 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect-07f6dc7c.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getClippingRect-ce686041.js +72 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getClippingRect-ce686041.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect-1c7842bd.js +52 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect-1c7842bd.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle-368dcd7b.js +8 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle-368dcd7b.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement-7a1e1a70.js +9 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement-7a1e1a70.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect-77338b42.js +30 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect-77338b42.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll-30ecdee3.js +9 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll-30ecdee3.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect-e7aa44d1.js +13 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect-e7aa44d1.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getNodeName-879fa64d.js +6 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getNodeName-879fa64d.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll-b32b4fa3.js +15 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll-b32b4fa3.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent-4b7b3db4.js +65 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent-4b7b3db4.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getParentNode-a8800612.js +21 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getParentNode-a8800612.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getScrollParent-ce447857.js +20 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getScrollParent-ce447857.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getViewportRect-b03adce5.js +44 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getViewportRect-b03adce5.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getWindow-a0a42aca.js +14 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getWindow-a0a42aca.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll-3206cb97.js +14 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll-3206cb97.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX-8be98570.js +17 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX-8be98570.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/instanceOf-d54ebfaa.js +28 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/instanceOf-d54ebfaa.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/isScrollParent-d888d2df.js +14 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/isScrollParent-d888d2df.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/isTableElement-e97ecc33.js +8 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/isTableElement-e97ecc33.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/listScrollParents-7ac31122.js +29 -0
- package/_internal/node_modules/@popperjs/core/lib/dom-utils/listScrollParents-7ac31122.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/enums-f4baa1da.js +34 -0
- package/_internal/node_modules/@popperjs/core/lib/enums-f4baa1da.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/applyStyles-e5cd080b.js +90 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/applyStyles-e5cd080b.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/arrow-f15e8999.js +102 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/arrow-f15e8999.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/computeStyles-fce107d1.js +141 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/computeStyles-fce107d1.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/eventListeners-a7214f2f.js +52 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/eventListeners-a7214f2f.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/flip-e3fed99a.js +150 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/flip-e3fed99a.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/hide-415890f0.js +64 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/hide-415890f0.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/offset-cde1ce5c.js +57 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/offset-cde1ce5c.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/popperOffsets-1f0d11fe.js +28 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/popperOffsets-1f0d11fe.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/preventOverflow-698df0f8.js +122 -0
- package/_internal/node_modules/@popperjs/core/lib/modifiers/preventOverflow-698df0f8.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/popper-e7d46b35.js +18 -0
- package/_internal/node_modules/@popperjs/core/lib/popper-e7d46b35.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/computeAutoPlacement-b8f3134e.js +55 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/computeAutoPlacement-b8f3134e.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/computeOffsets-00ceeb21.js +72 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/computeOffsets-00ceeb21.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/debounce-d5f5f3f5.js +18 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/debounce-d5f5f3f5.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/detectOverflow-70184010.js +67 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/detectOverflow-70184010.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/expandToHashMap-722ea461.js +9 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/expandToHashMap-722ea461.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/format-c01c3bec.js +12 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/format-c01c3bec.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/getAltAxis-c9a3b27f.js +6 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/getAltAxis-c9a3b27f.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/getBasePlacement-215781b4.js +6 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/getBasePlacement-215781b4.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/getFreshSideObject-b402784b.js +11 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/getFreshSideObject-b402784b.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement-728684f6.js +6 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement-728684f6.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/getOppositePlacement-20f07616.js +14 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/getOppositePlacement-20f07616.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement-37f5ba95.js +12 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement-37f5ba95.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/getVariation-9a5db774.js +6 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/getVariation-9a5db774.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/mergeByName-200c2ce1.js +17 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/mergeByName-200c2ce1.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/mergePaddingObject-6e22c702.js +8 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/mergePaddingObject-6e22c702.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/orderModifiers-14404061.js +47 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/orderModifiers-14404061.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/rectToClientRect-00560d40.js +11 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/rectToClientRect-00560d40.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/uniqueBy-c625d242.js +14 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/uniqueBy-c625d242.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/validateModifiers-4c621f83.js +80 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/validateModifiers-4c621f83.js.map +1 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/within-9361ef65.js +6 -0
- package/_internal/node_modules/@popperjs/core/lib/utils/within-9361ef65.js.map +1 -0
- package/_internal/{useDisableBodyScroll-36bd7352.js → node_modules/body-scroll-lock/lib/bodyScrollLock.esm-8e8c5ab6.js} +2 -29
- package/_internal/node_modules/body-scroll-lock/lib/bodyScrollLock.esm-8e8c5ab6.js.map +1 -0
- package/_internal/node_modules/react-fast-compare/index-99513933.js +145 -0
- package/_internal/node_modules/react-fast-compare/index-99513933.js.map +1 -0
- package/_internal/node_modules/react-is/cjs/react-is.development-14e01ef0.js +231 -0
- package/_internal/node_modules/react-is/cjs/react-is.development-14e01ef0.js.map +1 -0
- package/_internal/node_modules/react-is/cjs/react-is.production.min-e9383e8b.js +27 -0
- package/_internal/node_modules/react-is/cjs/react-is.production.min-e9383e8b.js.map +1 -0
- package/_internal/node_modules/react-is/index-9764fb9f.js +20 -0
- package/_internal/node_modules/react-is/index-9764fb9f.js.map +1 -0
- package/_internal/node_modules/react-popper/lib/esm/usePopper-83c4b46f.js +100 -0
- package/_internal/node_modules/react-popper/lib/esm/usePopper-83c4b46f.js.map +1 -0
- package/_internal/node_modules/react-popper/lib/esm/utils-e142a98d.js +22 -0
- package/_internal/node_modules/react-popper/lib/esm/utils-e142a98d.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/alert-circle-893eb653.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/alert-circle-893eb653.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/alert-f419ecef.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/alert-f419ecef.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/arrow-down-a32628a1.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/arrow-down-a32628a1.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/arrow-up-78a9c3cd.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/arrow-up-78a9c3cd.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/check-1c3b349b.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/check-1c3b349b.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/check-circle-e47dacb8.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/check-circle-e47dacb8.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/chevron-down-256f8eff.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/chevron-down-256f8eff.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/chevron-left-e9c3b1e0.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/chevron-left-e9c3b1e0.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/chevron-right-aeba575c.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/chevron-right-aeba575c.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/chevron-up-0846b7f3.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/chevron-up-0846b7f3.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/close-ad7c38b0.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/close-ad7c38b0.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/close-circle-6f37d603.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/close-circle-6f37d603.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/drag-vertical-c72d4f8b.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/drag-vertical-c72d4f8b.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/image-broken-1060c47e.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/image-broken-1060c47e.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/information-68f13c1c.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/information-68f13c1c.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/magnify-minus-outline-2d69d0f5.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/magnify-minus-outline-2d69d0f5.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/magnify-plus-outline-341ceaa9.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/magnify-plus-outline-341ceaa9.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/menu-down-b0846836.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/menu-down-b0846836.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/minus-b9ed1f7a.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/minus-b9ed1f7a.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/pause-circle-outline-4bb19934.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/pause-circle-outline-4bb19934.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/play-circle-outline-185778b8.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/play-circle-outline-185778b8.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/radiobox-blank-4f71fd36.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/radiobox-blank-4f71fd36.js.map +1 -0
- package/_internal/packages/lumx-icons/dist/esm/radiobox-marked-a2c7c463.js +4 -0
- package/_internal/packages/lumx-icons/dist/esm/radiobox-marked-a2c7c463.js.map +1 -0
- package/_internal/{components/alert-dialog-bd1b2532.js → packages/lumx-react/src/components/alert-dialog/AlertDialog-9cbbc6b1.js} +11 -8
- package/_internal/packages/lumx-react/src/components/alert-dialog/AlertDialog-9cbbc6b1.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/autocomplete/Autocomplete-d2b59692.js +133 -0
- package/_internal/packages/lumx-react/src/components/autocomplete/Autocomplete-d2b59692.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/autocomplete/AutocompleteMultiple-3ea98830.js +139 -0
- package/_internal/packages/lumx-react/src/components/autocomplete/AutocompleteMultiple-3ea98830.js.map +1 -0
- package/_internal/{components/avatar-778d7df6.js → packages/lumx-react/src/components/avatar/Avatar-a875f5a5.js} +4 -4
- package/_internal/packages/lumx-react/src/components/avatar/Avatar-a875f5a5.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/badge/Badge-2a365bd5.js +53 -0
- package/_internal/packages/lumx-react/src/components/badge/Badge-2a365bd5.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/badge/BadgeWrapper-884b7745.js +36 -0
- package/_internal/packages/lumx-react/src/components/badge/BadgeWrapper-884b7745.js.map +1 -0
- package/_internal/{Button-f382ee1c.js → packages/lumx-react/src/components/button/Button-86d16087.js} +13 -12
- package/_internal/packages/lumx-react/src/components/button/Button-86d16087.js.map +1 -0
- package/_internal/{components/button-4aff084a.js → packages/lumx-react/src/components/button/ButtonGroup-637b48c7.js} +2 -4
- package/_internal/packages/lumx-react/src/components/button/ButtonGroup-637b48c7.js.map +1 -0
- package/_internal/{ButtonRoot-a70baf82.js → packages/lumx-react/src/components/button/ButtonRoot-c88195b6.js} +6 -6
- package/_internal/packages/lumx-react/src/components/button/ButtonRoot-c88195b6.js.map +1 -0
- package/_internal/{IconButton-1790b47e.js → packages/lumx-react/src/components/button/IconButton-a740ce59.js} +7 -7
- package/_internal/packages/lumx-react/src/components/button/IconButton-a740ce59.js.map +1 -0
- package/_internal/{components/checkbox-a448ca6c.js → packages/lumx-react/src/components/checkbox/Checkbox-b7f3676e.js} +11 -10
- package/_internal/packages/lumx-react/src/components/checkbox/Checkbox-b7f3676e.js.map +1 -0
- package/_internal/{Chip-70af04b4.js → packages/lumx-react/src/components/chip/Chip-f1a3942a.js} +14 -27
- package/_internal/packages/lumx-react/src/components/chip/Chip-f1a3942a.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/chip/ChipGroup-1e9b0941.js +51 -0
- package/_internal/packages/lumx-react/src/components/chip/ChipGroup-1e9b0941.js.map +1 -0
- package/_internal/{components/comment-block-bcbedf3c.js → packages/lumx-react/src/components/comment-block/CommentBlock-998d4a27.js} +5 -5
- package/_internal/packages/lumx-react/src/components/comment-block/CommentBlock-998d4a27.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/date-picker/DatePicker-f7f5c82d.js +53 -0
- package/_internal/packages/lumx-react/src/components/date-picker/DatePicker-f7f5c82d.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/date-picker/DatePickerControlled-4af66187.js +223 -0
- package/_internal/packages/lumx-react/src/components/date-picker/DatePickerControlled-4af66187.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/date-picker/DatePickerField-3c9c1ba5.js +107 -0
- package/_internal/packages/lumx-react/src/components/date-picker/DatePickerField-3c9c1ba5.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/date-picker/constants-f8c49b24.js +14 -0
- package/_internal/packages/lumx-react/src/components/date-picker/constants-f8c49b24.js.map +1 -0
- package/_internal/{components/dialog-30336ccb.js → packages/lumx-react/src/components/dialog/Dialog-c1d85c51.js} +17 -47
- package/_internal/packages/lumx-react/src/components/dialog/Dialog-c1d85c51.js.map +1 -0
- package/_internal/{components/divider-0e93aa3d.js → packages/lumx-react/src/components/divider/Divider-450f85bf.js} +3 -3
- package/_internal/packages/lumx-react/src/components/divider/Divider-450f85bf.js.map +1 -0
- package/_internal/{components/drag-handle-137f71b6.js → packages/lumx-react/src/components/drag-handle/DragHandle-ce52ef0b.js} +5 -5
- package/_internal/packages/lumx-react/src/components/drag-handle/DragHandle-ce52ef0b.js.map +1 -0
- package/_internal/{components/dropdown-d18122d7.js → packages/lumx-react/src/components/dropdown/Dropdown-ae2605cb.js} +8 -48
- package/_internal/packages/lumx-react/src/components/dropdown/Dropdown-ae2605cb.js.map +1 -0
- package/_internal/{components/expansion-panel-38ed3d9f.js → packages/lumx-react/src/components/expansion-panel/ExpansionPanel-b5b6cd76.js} +13 -12
- package/_internal/packages/lumx-react/src/components/expansion-panel/ExpansionPanel-b5b6cd76.js.map +1 -0
- package/_internal/{components/flag-c2e41e8d.js → packages/lumx-react/src/components/flag/Flag-636dab49.js} +5 -5
- package/_internal/packages/lumx-react/src/components/flag/Flag-636dab49.js.map +1 -0
- package/_internal/{components/flex-box-15be92f6.js → packages/lumx-react/src/components/flex-box/FlexBox-57fe8191.js} +3 -3
- package/_internal/packages/lumx-react/src/components/flex-box/FlexBox-57fe8191.js.map +1 -0
- package/_internal/{components/generic-block-5d843f1e.js → packages/lumx-react/src/components/generic-block/GenericBlock-4eaab530.js} +12 -21
- package/_internal/packages/lumx-react/src/components/generic-block/GenericBlock-4eaab530.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/generic-block/constants-57f2079b.js +10 -0
- package/_internal/packages/lumx-react/src/components/generic-block/constants-57f2079b.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/grid/Grid-4bff53d3.js +64 -0
- package/_internal/packages/lumx-react/src/components/grid/Grid-4bff53d3.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/grid/GridItem-643ce4f2.js +48 -0
- package/_internal/packages/lumx-react/src/components/grid/GridItem-643ce4f2.js.map +1 -0
- package/_internal/{components/grid-column-85e305e7.js → packages/lumx-react/src/components/grid-column/GridColumn-7c04edfd.js} +4 -3
- package/_internal/packages/lumx-react/src/components/grid-column/GridColumn-7c04edfd.js.map +1 -0
- package/_internal/{components/heading-28520e1c.js → packages/lumx-react/src/components/heading/Heading-8a472527.js} +6 -6
- package/_internal/packages/lumx-react/src/components/heading/Heading-8a472527.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/heading/HeadingLevelProvider-7bd8f886.js +30 -0
- package/_internal/packages/lumx-react/src/components/heading/HeadingLevelProvider-7bd8f886.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/heading/constants-82c6852b.js +19 -0
- package/_internal/packages/lumx-react/src/components/heading/constants-82c6852b.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/heading/context-0aa9027f.js +10 -0
- package/_internal/packages/lumx-react/src/components/heading/context-0aa9027f.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/heading/useHeadingLevel-953ba707.js +16 -0
- package/_internal/packages/lumx-react/src/components/heading/useHeadingLevel-953ba707.js.map +1 -0
- package/_internal/{components/icon-a00d698b.js → packages/lumx-react/src/components/icon/Icon-21a83e8c.js} +4 -4
- package/_internal/packages/lumx-react/src/components/icon/Icon-21a83e8c.js.map +1 -0
- package/_internal/{components/image-block-10976174.js → packages/lumx-react/src/components/image-block/ImageBlock-403e75e0.js} +5 -5
- package/_internal/packages/lumx-react/src/components/image-block/ImageBlock-403e75e0.js.map +1 -0
- package/_internal/{ImageCaption-16bf224b.js → packages/lumx-react/src/components/image-block/ImageCaption-f59f00d0.js} +5 -5
- package/_internal/packages/lumx-react/src/components/image-block/ImageCaption-f59f00d0.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/image-lightbox/ImageLightbox-5986e26a.js +87 -0
- package/_internal/packages/lumx-react/src/components/image-lightbox/ImageLightbox-5986e26a.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/image-lightbox/constants-31b6784b.js +14 -0
- package/_internal/packages/lumx-react/src/components/image-lightbox/constants-31b6784b.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/image-lightbox/internal/ImageSlide-9cfe18c6.js +104 -0
- package/_internal/packages/lumx-react/src/components/image-lightbox/internal/ImageSlide-9cfe18c6.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/image-lightbox/internal/ImageSlideshow-a185b234.js +150 -0
- package/_internal/packages/lumx-react/src/components/image-lightbox/internal/ImageSlideshow-a185b234.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/image-lightbox/internal/useAnimateScroll-0db022d6.js +58 -0
- package/_internal/packages/lumx-react/src/components/image-lightbox/internal/useAnimateScroll-0db022d6.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/image-lightbox/internal/usePointerZoom-8d318b2b.js +138 -0
- package/_internal/packages/lumx-react/src/components/image-lightbox/internal/usePointerZoom-8d318b2b.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/image-lightbox/useImageLightbox-4a785dc6.js +133 -0
- package/_internal/packages/lumx-react/src/components/image-lightbox/useImageLightbox-4a785dc6.js.map +1 -0
- package/_internal/{components/inline-list-5ba8bb0f.js → packages/lumx-react/src/components/inline-list/InlineList-c2daf1d2.js} +2 -2
- package/_internal/packages/lumx-react/src/components/inline-list/InlineList-c2daf1d2.js.map +1 -0
- package/_internal/{components/input-helper-2e4e49fd.js → packages/lumx-react/src/components/input-helper/InputHelper-a6c7ec2d.js} +4 -15
- package/_internal/packages/lumx-react/src/components/input-helper/InputHelper-a6c7ec2d.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/input-helper/constants-08b0de35.js +14 -0
- package/_internal/packages/lumx-react/src/components/input-helper/constants-08b0de35.js.map +1 -0
- package/_internal/{components/input-label-30d199c3.js → packages/lumx-react/src/components/input-label/InputLabel-7ce8e604.js} +3 -3
- package/_internal/packages/lumx-react/src/components/input-label/InputLabel-7ce8e604.js.map +1 -0
- package/_internal/{components/lightbox-c618a33b.js → packages/lumx-react/src/components/lightbox/Lightbox-198bb478.js} +14 -14
- package/_internal/packages/lumx-react/src/components/lightbox/Lightbox-198bb478.js.map +1 -0
- package/_internal/{components/link-9c3feb34.js → packages/lumx-react/src/components/link/Link-f8b5025c.js} +6 -6
- package/_internal/packages/lumx-react/src/components/link/Link-f8b5025c.js.map +1 -0
- package/_internal/{components/link-preview-79500604.js → packages/lumx-react/src/components/link-preview/LinkPreview-777017cb.js} +5 -5
- package/_internal/packages/lumx-react/src/components/link-preview/LinkPreview-777017cb.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/list/List-83b50e25.js +75 -0
- package/_internal/packages/lumx-react/src/components/list/List-83b50e25.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/list/ListDivider-0cf94491.js +38 -0
- package/_internal/packages/lumx-react/src/components/list/ListDivider-0cf94491.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/list/ListItem-6278e6a0.js +126 -0
- package/_internal/packages/lumx-react/src/components/list/ListItem-6278e6a0.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/list/ListSubheader-8600d84d.js +40 -0
- package/_internal/packages/lumx-react/src/components/list/ListSubheader-8600d84d.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/list/useInteractiveList-2c23640c.js +157 -0
- package/_internal/packages/lumx-react/src/components/list/useInteractiveList-2c23640c.js.map +1 -0
- package/_internal/{components/message-a3806f51.js → packages/lumx-react/src/components/message/Message-cfc1519a.js} +9 -5
- package/_internal/packages/lumx-react/src/components/message/Message-cfc1519a.js.map +1 -0
- package/_internal/{components/mosaic-e6581097.js → packages/lumx-react/src/components/mosaic/Mosaic-3af68efe.js} +6 -5
- package/_internal/packages/lumx-react/src/components/mosaic/Mosaic-3af68efe.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/navigation/Navigation-8455772e.js +67 -0
- package/_internal/packages/lumx-react/src/components/navigation/Navigation-8455772e.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/navigation/NavigationItem-66855e7e.js +75 -0
- package/_internal/packages/lumx-react/src/components/navigation/NavigationItem-66855e7e.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/navigation/NavigationSection-3f8ca10e.js +109 -0
- package/_internal/packages/lumx-react/src/components/navigation/NavigationSection-3f8ca10e.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/navigation/context-6b61b268.js +9 -0
- package/_internal/packages/lumx-react/src/components/navigation/context-6b61b268.js.map +1 -0
- package/_internal/{components/notification-49837625.js → packages/lumx-react/src/components/notification/Notification-de96c6ff.js} +14 -33
- package/_internal/packages/lumx-react/src/components/notification/Notification-de96c6ff.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/notification/constants-363d85b8.js +29 -0
- package/_internal/packages/lumx-react/src/components/notification/constants-363d85b8.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/popover/Popover-341f65fb.js +155 -0
- package/_internal/packages/lumx-react/src/components/popover/Popover-341f65fb.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/popover/constants-9d063548.js +49 -0
- package/_internal/packages/lumx-react/src/components/popover/constants-9d063548.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/popover/usePopoverStyle-e067fbfc.js +198 -0
- package/_internal/packages/lumx-react/src/components/popover/usePopoverStyle-e067fbfc.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/popover/useRestoreFocusOnClose-36ed4d2a.js +47 -0
- package/_internal/packages/lumx-react/src/components/popover/useRestoreFocusOnClose-36ed4d2a.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/popover-dialog/PopoverDialog-ffd6c5a1.js +67 -0
- package/_internal/packages/lumx-react/src/components/popover-dialog/PopoverDialog-ffd6c5a1.js.map +1 -0
- package/_internal/{components/post-block-478bc3b8.js → packages/lumx-react/src/components/post-block/PostBlock-91fd05ab.js} +14 -14
- package/_internal/packages/lumx-react/src/components/post-block/PostBlock-91fd05ab.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/progress/Progress-73bac34d.js +72 -0
- package/_internal/packages/lumx-react/src/components/progress/Progress-73bac34d.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/progress/ProgressCircular-e997908d.js +75 -0
- package/_internal/packages/lumx-react/src/components/progress/ProgressCircular-e997908d.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/progress/ProgressLinear-db03319f.js +56 -0
- package/_internal/packages/lumx-react/src/components/progress/ProgressLinear-db03319f.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/progress-tracker/ProgressTracker-78a62175.js +82 -0
- package/_internal/packages/lumx-react/src/components/progress-tracker/ProgressTracker-78a62175.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/progress-tracker/ProgressTrackerProvider-31e02258.js +60 -0
- package/_internal/packages/lumx-react/src/components/progress-tracker/ProgressTrackerProvider-31e02258.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/progress-tracker/ProgressTrackerStep-c80756f3.js +129 -0
- package/_internal/packages/lumx-react/src/components/progress-tracker/ProgressTrackerStep-c80756f3.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/progress-tracker/ProgressTrackerStepPanel-6f2d394e.js +62 -0
- package/_internal/packages/lumx-react/src/components/progress-tracker/ProgressTrackerStepPanel-6f2d394e.js.map +1 -0
- package/_internal/{components/radio-button-929c7bee.js → packages/lumx-react/src/components/radio-button/RadioButton-0a59ffbf.js} +21 -54
- package/_internal/packages/lumx-react/src/components/radio-button/RadioButton-0a59ffbf.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/radio-button/RadioGroup-7957765c.js +40 -0
- package/_internal/packages/lumx-react/src/components/radio-button/RadioGroup-7957765c.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/select/Select-530565a4.js +165 -0
- package/_internal/packages/lumx-react/src/components/select/Select-530565a4.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/select/SelectMultiple-d7fa1cf7.js +165 -0
- package/_internal/packages/lumx-react/src/components/select/SelectMultiple-d7fa1cf7.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/select/WithSelectContext-864d6be2.js +128 -0
- package/_internal/packages/lumx-react/src/components/select/WithSelectContext-864d6be2.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/select/constants-5178b7ba.js +10 -0
- package/_internal/packages/lumx-react/src/components/select/constants-5178b7ba.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/side-navigation/SideNavigation-b3267a19.js +48 -0
- package/_internal/packages/lumx-react/src/components/side-navigation/SideNavigation-b3267a19.js.map +1 -0
- package/_internal/{components/side-navigation-b99d6022.js → packages/lumx-react/src/components/side-navigation/SideNavigationItem-2de35ba7.js} +14 -49
- package/_internal/packages/lumx-react/src/components/side-navigation/SideNavigationItem-2de35ba7.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/skeleton/SkeletonCircle-9ff29a07.js +52 -0
- package/_internal/packages/lumx-react/src/components/skeleton/SkeletonCircle-9ff29a07.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/skeleton/SkeletonRectangle-4d602e83.js +73 -0
- package/_internal/packages/lumx-react/src/components/skeleton/SkeletonRectangle-4d602e83.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/skeleton/SkeletonTypography-2b402be3.js +60 -0
- package/_internal/packages/lumx-react/src/components/skeleton/SkeletonTypography-2b402be3.js.map +1 -0
- package/_internal/{components/slider-78cfaa67.js → packages/lumx-react/src/components/slider/Slider-59996a75.js} +11 -43
- package/_internal/packages/lumx-react/src/components/slider/Slider-59996a75.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/slideshow/Slides-c8517dcb.js +95 -0
- package/_internal/packages/lumx-react/src/components/slideshow/Slides-c8517dcb.js.map +1 -0
- package/_internal/{components/slideshow-b78ac3d6.js → packages/lumx-react/src/components/slideshow/Slideshow-a21bfd66.js} +11 -32
- package/_internal/packages/lumx-react/src/components/slideshow/Slideshow-a21bfd66.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/slideshow/SlideshowControls-ecca54c4.js +173 -0
- package/_internal/packages/lumx-react/src/components/slideshow/SlideshowControls-ecca54c4.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/slideshow/SlideshowItem-59ca2aee.js +40 -0
- package/_internal/packages/lumx-react/src/components/slideshow/SlideshowItem-59ca2aee.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/slideshow/SlideshowItemGroup-ce6a30cd.js +55 -0
- package/_internal/packages/lumx-react/src/components/slideshow/SlideshowItemGroup-ce6a30cd.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/slideshow/constants-e50f2a75.js +27 -0
- package/_internal/packages/lumx-react/src/components/slideshow/constants-e50f2a75.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/slideshow/usePaginationVisibleRange-afe733eb.js +47 -0
- package/_internal/packages/lumx-react/src/components/slideshow/usePaginationVisibleRange-afe733eb.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/slideshow/useSlideFocusManagement-6380f9c4.js +93 -0
- package/_internal/packages/lumx-react/src/components/slideshow/useSlideFocusManagement-6380f9c4.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/slideshow/useSwipeNavigate-de52a4b9.js +20 -0
- package/_internal/packages/lumx-react/src/components/slideshow/useSwipeNavigate-de52a4b9.js.map +1 -0
- package/_internal/{components/switch-25b65051.js → packages/lumx-react/src/components/switch/Switch-22529b38.js} +9 -8
- package/_internal/packages/lumx-react/src/components/switch/Switch-22529b38.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/table/Table-ad4f6991.js +57 -0
- package/_internal/packages/lumx-react/src/components/table/Table-ad4f6991.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/table/TableBody-c6d71a78.js +40 -0
- package/_internal/packages/lumx-react/src/components/table/TableBody-c6d71a78.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/table/TableCell-8b038969.js +121 -0
- package/_internal/packages/lumx-react/src/components/table/TableCell-8b038969.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/table/TableHeader-50745c5b.js +46 -0
- package/_internal/packages/lumx-react/src/components/table/TableHeader-50745c5b.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/table/TableRow-1194f809.js +61 -0
- package/_internal/packages/lumx-react/src/components/table/TableRow-1194f809.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/tabs/Tab-24093fe0.js +109 -0
- package/_internal/packages/lumx-react/src/components/tabs/Tab-24093fe0.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/tabs/TabList-f0a286a1.js +89 -0
- package/_internal/packages/lumx-react/src/components/tabs/TabList-f0a286a1.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/tabs/TabPanel-18b761f5.js +62 -0
- package/_internal/packages/lumx-react/src/components/tabs/TabPanel-18b761f5.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/tabs/TabProvider-5349e230.js +65 -0
- package/_internal/packages/lumx-react/src/components/tabs/TabProvider-5349e230.js.map +1 -0
- package/_internal/{state-db358714.js → packages/lumx-react/src/components/tabs/state-af53c50e.js} +3 -3
- package/_internal/packages/lumx-react/src/components/tabs/state-af53c50e.js.map +1 -0
- package/_internal/{index-151e2652.js → packages/lumx-react/src/components/text/Text-d8efb3ca.js} +6 -36
- package/_internal/packages/lumx-react/src/components/text/Text-d8efb3ca.js.map +1 -0
- package/_internal/{components/text-field-c26582c5.js → packages/lumx-react/src/components/text-field/TextField-843f8e28.js} +15 -12
- package/_internal/packages/lumx-react/src/components/text-field/TextField-843f8e28.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/thumbnail/Thumbnail-49bab66c.js +179 -0
- package/_internal/packages/lumx-react/src/components/thumbnail/Thumbnail-49bab66c.js.map +1 -0
- package/_internal/{components/thumbnail-cb55b26c.js → packages/lumx-react/src/components/thumbnail/types-58418448.js} +1 -2
- package/_internal/packages/lumx-react/src/components/thumbnail/types-58418448.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/thumbnail/useFocusPointStyle-b4018f8d.js +107 -0
- package/_internal/packages/lumx-react/src/components/thumbnail/useFocusPointStyle-b4018f8d.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/thumbnail/useImageLoad-7af4a428.js +39 -0
- package/_internal/packages/lumx-react/src/components/thumbnail/useImageLoad-7af4a428.js.map +1 -0
- package/_internal/{components/toolbar-e7c984e6.js → packages/lumx-react/src/components/toolbar/Toolbar-b30ac67a.js} +2 -2
- package/_internal/packages/lumx-react/src/components/toolbar/Toolbar-b30ac67a.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/tooltip/Tooltip-aabcaa4a.js +144 -0
- package/_internal/packages/lumx-react/src/components/tooltip/Tooltip-aabcaa4a.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/tooltip/constants-e5b346fd.js +9 -0
- package/_internal/packages/lumx-react/src/components/tooltip/constants-e5b346fd.js.map +1 -0
- package/_internal/{context-9d1336a1.js → packages/lumx-react/src/components/tooltip/context-841c2303.js} +2 -2
- package/_internal/packages/lumx-react/src/components/tooltip/context-841c2303.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/tooltip/useInjectTooltipRef-d245b414.js +52 -0
- package/_internal/packages/lumx-react/src/components/tooltip/useInjectTooltipRef-d245b414.js.map +1 -0
- package/_internal/packages/lumx-react/src/components/tooltip/useTooltipOpen-e3bae967.js +131 -0
- package/_internal/packages/lumx-react/src/components/tooltip/useTooltipOpen-e3bae967.js.map +1 -0
- package/_internal/{components/uploader-873b9bc1.js → packages/lumx-react/src/components/uploader/Uploader-6489c1ae.js} +8 -8
- package/_internal/packages/lumx-react/src/components/uploader/Uploader-6489c1ae.js.map +1 -0
- package/_internal/{components/user-block-7cbaffe0.js → packages/lumx-react/src/components/user-block/UserBlock-9b72469f.js} +14 -13
- package/_internal/packages/lumx-react/src/components/user-block/UserBlock-9b72469f.js.map +1 -0
- package/_internal/{constants-d0e3f49e.js → packages/lumx-react/src/constants-6af61e2f.js} +3 -3
- package/_internal/packages/lumx-react/src/constants-6af61e2f.js.map +1 -0
- package/_internal/{useBooleanState-2a3d237c.js → packages/lumx-react/src/hooks/useBooleanState-3e2f0517.js} +2 -2
- package/_internal/packages/lumx-react/src/hooks/useBooleanState-3e2f0517.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useCallbackOnEscape-80f4407b.js +34 -0
- package/_internal/packages/lumx-react/src/hooks/useCallbackOnEscape-80f4407b.js.map +1 -0
- package/_internal/{components/chip-19e40755.js → packages/lumx-react/src/hooks/useChipGroupNavigation-7d9c0855.js} +2 -50
- package/_internal/packages/lumx-react/src/hooks/useChipGroupNavigation-7d9c0855.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useClickAway-ab3e5463.js +39 -0
- package/_internal/packages/lumx-react/src/hooks/useClickAway-ab3e5463.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useDisableBodyScroll-5d576cdc.js +30 -0
- package/_internal/packages/lumx-react/src/hooks/useDisableBodyScroll-5d576cdc.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useEventCallback-a7abe967.js +20 -0
- package/_internal/packages/lumx-react/src/hooks/useEventCallback-a7abe967.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useFocus-89ee5eb2.js +22 -0
- package/_internal/packages/lumx-react/src/hooks/useFocus-89ee5eb2.js.map +1 -0
- package/_internal/{useFocusTrap-2dbae79e.js → packages/lumx-react/src/hooks/useFocusTrap-3a8a959d.js} +5 -27
- package/_internal/packages/lumx-react/src/hooks/useFocusTrap-3a8a959d.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useFocusWithin-9976fe9a.js +28 -0
- package/_internal/packages/lumx-react/src/hooks/useFocusWithin-9976fe9a.js.map +1 -0
- package/_internal/{useId-3a1facc0.js → packages/lumx-react/src/hooks/useId-11687649.js} +2 -2
- package/_internal/packages/lumx-react/src/hooks/useId-11687649.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useImageSize-d672fc0e.js +24 -0
- package/_internal/packages/lumx-react/src/hooks/useImageSize-d672fc0e.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useInfiniteScroll-dbc379f8.js +45 -0
- package/_internal/packages/lumx-react/src/hooks/useInfiniteScroll-dbc379f8.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useIntersectionObserver-dfa00cf7.js +35 -0
- package/_internal/packages/lumx-react/src/hooks/useIntersectionObserver-dfa00cf7.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useInterval-45ef51db.js +29 -0
- package/_internal/packages/lumx-react/src/hooks/useInterval-45ef51db.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useKeyboardListNavigation-2040beb8.js +169 -0
- package/_internal/packages/lumx-react/src/hooks/useKeyboardListNavigation-2040beb8.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useListenFocus-bb5fb0f9.js +28 -0
- package/_internal/packages/lumx-react/src/hooks/useListenFocus-bb5fb0f9.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useOverflowTooltipLabel-251ac3e6.js +34 -0
- package/_internal/packages/lumx-react/src/hooks/useOverflowTooltipLabel-251ac3e6.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/usePopper-3e9a7aa1.js +24 -0
- package/_internal/packages/lumx-react/src/hooks/usePopper-3e9a7aa1.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/usePreviousValue-6f3bb7d6.js +16 -0
- package/_internal/packages/lumx-react/src/hooks/usePreviousValue-6f3bb7d6.js.map +1 -0
- package/_internal/{useRovingTabIndex-7daf0f24.js → packages/lumx-react/src/hooks/useRovingTabIndex-bb8088e1.js} +2 -2
- package/_internal/packages/lumx-react/src/hooks/useRovingTabIndex-bb8088e1.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useSizeOnWindowResize-1ee5415f.js +27 -0
- package/_internal/packages/lumx-react/src/hooks/useSizeOnWindowResize-1ee5415f.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useSlideshowControls-9c881480.js +159 -0
- package/_internal/packages/lumx-react/src/hooks/useSlideshowControls-9c881480.js.map +1 -0
- package/_internal/packages/lumx-react/src/hooks/useStopPropagation-eef5d63f.js +21 -0
- package/_internal/packages/lumx-react/src/hooks/useStopPropagation-eef5d63f.js.map +1 -0
- package/_internal/{useTransitionVisibility-321fdbfa.js → packages/lumx-react/src/hooks/useTransitionVisibility-2beba0ac.js} +3 -8
- package/_internal/packages/lumx-react/src/hooks/useTransitionVisibility-2beba0ac.js.map +1 -0
- package/_internal/{ClickAwayProvider-1204f237.js → packages/lumx-react/src/utils/ClickAwayProvider/ClickAwayProvider-ec55d284.js} +4 -38
- package/_internal/packages/lumx-react/src/utils/ClickAwayProvider/ClickAwayProvider-ec55d284.js.map +1 -0
- package/_internal/{Portal-3f86608e.js → packages/lumx-react/src/utils/Portal/Portal-9e38cfd0.js} +3 -15
- package/_internal/packages/lumx-react/src/utils/Portal/Portal-9e38cfd0.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/Portal/PortalProvider-883321fd.js +17 -0
- package/_internal/packages/lumx-react/src/utils/Portal/PortalProvider-883321fd.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/browser/DOM/findImage-b977b471.js +5 -0
- package/_internal/packages/lumx-react/src/utils/browser/DOM/findImage-b977b471.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/browser/DOM/startViewTransition-5cbc03c1.js +59 -0
- package/_internal/packages/lumx-react/src/utils/browser/DOM/startViewTransition-5cbc03c1.js.map +1 -0
- package/_internal/{getFocusableElements-230173a8.js → packages/lumx-react/src/utils/browser/focus/constants-c0a6dba6.js} +2 -7
- package/_internal/packages/lumx-react/src/utils/browser/focus/constants-c0a6dba6.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/browser/focus/getFirstAndLastFocusable-394b48f4.js +26 -0
- package/_internal/packages/lumx-react/src/utils/browser/focus/getFirstAndLastFocusable-394b48f4.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/browser/focus/getFocusableElements-14bf3ce5.js +9 -0
- package/_internal/packages/lumx-react/src/utils/browser/focus/getFocusableElements-14bf3ce5.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/browser/isFocusVisible-5745f198.js +12 -0
- package/_internal/packages/lumx-react/src/utils/browser/isFocusVisible-5745f198.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/browser/isHoverNotSupported-1ff933af.js +5 -0
- package/_internal/packages/lumx-react/src/utils/browser/isHoverNotSupported-1ff933af.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/browser/isReducedMotion-aca1229c.js +9 -0
- package/_internal/packages/lumx-react/src/utils/browser/isReducedMotion-aca1229c.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/date/addMonthResetDay-e429bd82.js +12 -0
- package/_internal/packages/lumx-react/src/utils/date/addMonthResetDay-e429bd82.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/date/formatDayNumber-db88500d.js +10 -0
- package/_internal/packages/lumx-react/src/utils/date/formatDayNumber-db88500d.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/date/getFirstDayOfWeek-b0780b33.js +60 -0
- package/_internal/packages/lumx-react/src/utils/date/getFirstDayOfWeek-b0780b33.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/date/getMonthCalendar-f0443cdb.js +55 -0
- package/_internal/packages/lumx-react/src/utils/date/getMonthCalendar-f0443cdb.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/date/getWeekDays-b4620c07.js +41 -0
- package/_internal/packages/lumx-react/src/utils/date/getWeekDays-b4620c07.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/date/getYearDisplayName-ed03c692.js +17 -0
- package/_internal/packages/lumx-react/src/utils/date/getYearDisplayName-ed03c692.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/date/isDateValid-658e09de.js +7 -0
- package/_internal/packages/lumx-react/src/utils/date/isDateValid-658e09de.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/date/isSameDay-487527e8.js +9 -0
- package/_internal/packages/lumx-react/src/utils/date/isSameDay-487527e8.js.map +1 -0
- package/_internal/{DisabledStateContext-ea04260d.js → packages/lumx-react/src/utils/disabled/DisabledStateContext-536517c5.js} +2 -2
- package/_internal/packages/lumx-react/src/utils/disabled/DisabledStateContext-536517c5.js.map +1 -0
- package/_internal/{useDisableStateProps-69e16b7c.js → packages/lumx-react/src/utils/disabled/useDisableStateProps-2391c02d.js} +3 -3
- package/_internal/packages/lumx-react/src/utils/disabled/useDisableStateProps-2391c02d.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/function/makeListenerTowerContext-b4dfa648.js +32 -0
- package/_internal/packages/lumx-react/src/utils/function/makeListenerTowerContext-b4dfa648.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/locale/getCurrentLocale-14390eeb.js +7 -0
- package/_internal/packages/lumx-react/src/utils/locale/getCurrentLocale-14390eeb.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/locale/parseLocale-7eca7fcd.js +28 -0
- package/_internal/packages/lumx-react/src/utils/locale/parseLocale-7eca7fcd.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/number/clamp-c3ccd387.js +20 -0
- package/_internal/packages/lumx-react/src/utils/number/clamp-c3ccd387.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/object/isEqual-b1154f4b.js +14 -0
- package/_internal/packages/lumx-react/src/utils/object/isEqual-b1154f4b.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/partitionMulti-cb19eca6.js +25 -0
- package/_internal/packages/lumx-react/src/utils/partitionMulti-cb19eca6.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/react/OnBeforeUnmount-6417ddb1.js +24 -0
- package/_internal/packages/lumx-react/src/utils/react/OnBeforeUnmount-6417ddb1.js.map +1 -0
- package/_internal/{RawClickable-2c2b6a89.js → packages/lumx-react/src/utils/react/RawClickable-e5e3e5c6.js} +3 -6
- package/_internal/packages/lumx-react/src/utils/react/RawClickable-e5e3e5c6.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/react/flattenChildren-f25e4a2f.js +37 -0
- package/_internal/packages/lumx-react/src/utils/react/flattenChildren-f25e4a2f.js.map +1 -0
- package/_internal/{forwardRef-8bce732e.js → packages/lumx-react/src/utils/react/forwardRef-bd8b3ec8.js} +2 -2
- package/_internal/packages/lumx-react/src/utils/react/forwardRef-bd8b3ec8.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/react/forwardRefPolymorphic-ebd44733.js +7 -0
- package/_internal/packages/lumx-react/src/utils/react/forwardRefPolymorphic-ebd44733.js.map +1 -0
- package/_internal/{mergeRefs-f0d7d6ea.js → packages/lumx-react/src/utils/react/mergeRefs-27df0cb6.js} +2 -2
- package/_internal/packages/lumx-react/src/utils/react/mergeRefs-27df0cb6.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/react/renderLink-09d97180.js +18 -0
- package/_internal/packages/lumx-react/src/utils/react/renderLink-09d97180.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/react/skipRender-9ed13067.js +24 -0
- package/_internal/packages/lumx-react/src/utils/react/skipRender-9ed13067.js.map +1 -0
- package/_internal/packages/lumx-react/src/utils/react/unref-bc393aec.js +8 -0
- package/_internal/packages/lumx-react/src/utils/react/unref-bc393aec.js.map +1 -0
- package/_internal/{wrapChildrenIconWithSpaces-ef2a6772.js → packages/lumx-react/src/utils/react/wrapChildrenIconWithSpaces-5de82619.js} +4 -4
- package/_internal/packages/lumx-react/src/utils/react/wrapChildrenIconWithSpaces-5de82619.js.map +1 -0
- package/_internal/{ThemeContext-3181f000.js → packages/lumx-react/src/utils/theme/ThemeContext-d8ee966d.js} +2 -2
- package/_internal/packages/lumx-react/src/utils/theme/ThemeContext-d8ee966d.js.map +1 -0
- package/_internal/{isComponent-b9762ff1.js → packages/lumx-react/src/utils/type/isComponent-ebe24fd7.js} +6 -4
- package/_internal/packages/lumx-react/src/utils/type/isComponent-ebe24fd7.js.map +1 -0
- package/_internal/{isComponentType-e806b848.js → packages/lumx-react/src/utils/type/isComponentType-111e65e5.js} +2 -2
- package/_internal/packages/lumx-react/src/utils/type/isComponentType-111e65e5.js.map +1 -0
- package/index.d.ts +15 -4
- package/index.js +95 -63
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/utils/index.js +4 -3
- package/utils/index.js.map +1 -1
- package/_internal/Button-f382ee1c.js.map +0 -1
- package/_internal/ButtonRoot-a70baf82.js.map +0 -1
- package/_internal/Chip-70af04b4.js.map +0 -1
- package/_internal/ClickAwayProvider-1204f237.js.map +0 -1
- package/_internal/DisabledStateContext-ea04260d.js.map +0 -1
- package/_internal/HeadingLevelProvider-ebdcb0c7.js +0 -61
- package/_internal/HeadingLevelProvider-ebdcb0c7.js.map +0 -1
- package/_internal/IconButton-1790b47e.js.map +0 -1
- package/_internal/ImageCaption-16bf224b.js.map +0 -1
- package/_internal/List-c75646f2.js +0 -818
- package/_internal/List-c75646f2.js.map +0 -1
- package/_internal/PopoverDialog-3b63f140.js +0 -656
- package/_internal/PopoverDialog-3b63f140.js.map +0 -1
- package/_internal/Portal-3f86608e.js.map +0 -1
- package/_internal/RawClickable-2c2b6a89.js.map +0 -1
- package/_internal/Slides-2a427c44.js +0 -676
- package/_internal/Slides-2a427c44.js.map +0 -1
- package/_internal/ThemeContext-3181f000.js.map +0 -1
- package/_internal/Thumbnail-d2001ccb.js +0 -314
- package/_internal/Thumbnail-d2001ccb.js.map +0 -1
- package/_internal/components/alert-dialog-bd1b2532.js.map +0 -1
- package/_internal/components/autocomplete-8ae2c4f9.js +0 -262
- package/_internal/components/autocomplete-8ae2c4f9.js.map +0 -1
- package/_internal/components/avatar-778d7df6.js.map +0 -1
- package/_internal/components/badge-ccf47147.js +0 -82
- package/_internal/components/badge-ccf47147.js.map +0 -1
- package/_internal/components/button-4aff084a.js.map +0 -1
- package/_internal/components/checkbox-a448ca6c.js.map +0 -1
- package/_internal/components/chip-19e40755.js.map +0 -1
- package/_internal/components/comment-block-bcbedf3c.js.map +0 -1
- package/_internal/components/date-picker-b6d4048e.js +0 -2
- package/_internal/components/date-picker-b6d4048e.js.map +0 -1
- package/_internal/components/dialog-30336ccb.js.map +0 -1
- package/_internal/components/divider-0e93aa3d.js.map +0 -1
- package/_internal/components/drag-handle-137f71b6.js.map +0 -1
- package/_internal/components/dropdown-d18122d7.js.map +0 -1
- package/_internal/components/expansion-panel-38ed3d9f.js.map +0 -1
- package/_internal/components/flag-c2e41e8d.js.map +0 -1
- package/_internal/components/flex-box-15be92f6.js.map +0 -1
- package/_internal/components/generic-block-5d843f1e.js.map +0 -1
- package/_internal/components/grid-8c08dc4b.js +0 -105
- package/_internal/components/grid-8c08dc4b.js.map +0 -1
- package/_internal/components/grid-column-85e305e7.js.map +0 -1
- package/_internal/components/heading-28520e1c.js.map +0 -1
- package/_internal/components/icon-a00d698b.js.map +0 -1
- package/_internal/components/image-block-10976174.js.map +0 -1
- package/_internal/components/image-lightbox-86f1e1fb.js +0 -757
- package/_internal/components/image-lightbox-86f1e1fb.js.map +0 -1
- package/_internal/components/inline-list-5ba8bb0f.js.map +0 -1
- package/_internal/components/input-helper-2e4e49fd.js.map +0 -1
- package/_internal/components/input-label-30d199c3.js.map +0 -1
- package/_internal/components/lightbox-c618a33b.js.map +0 -1
- package/_internal/components/link-9c3feb34.js.map +0 -1
- package/_internal/components/link-preview-79500604.js.map +0 -1
- package/_internal/components/list-2f256244.js +0 -72
- package/_internal/components/list-2f256244.js.map +0 -1
- package/_internal/components/message-a3806f51.js.map +0 -1
- package/_internal/components/mosaic-e6581097.js.map +0 -1
- package/_internal/components/navigation-5378f128.js +0 -226
- package/_internal/components/navigation-5378f128.js.map +0 -1
- package/_internal/components/notification-49837625.js.map +0 -1
- package/_internal/components/popover-dfcddda4.js +0 -3
- package/_internal/components/popover-dfcddda4.js.map +0 -1
- package/_internal/components/post-block-478bc3b8.js.map +0 -1
- package/_internal/components/progress-44bb0301.js +0 -183
- package/_internal/components/progress-44bb0301.js.map +0 -1
- package/_internal/components/progress-tracker-0fd35bea.js +0 -306
- package/_internal/components/progress-tracker-0fd35bea.js.map +0 -1
- package/_internal/components/radio-button-929c7bee.js.map +0 -1
- package/_internal/components/select-a145edbb.js +0 -454
- package/_internal/components/select-a145edbb.js.map +0 -1
- package/_internal/components/side-navigation-b99d6022.js.map +0 -1
- package/_internal/components/skeleton-1ea8c82a.js +0 -167
- package/_internal/components/skeleton-1ea8c82a.js.map +0 -1
- package/_internal/components/slider-78cfaa67.js.map +0 -1
- package/_internal/components/slideshow-b78ac3d6.js.map +0 -1
- package/_internal/components/switch-25b65051.js.map +0 -1
- package/_internal/components/table-3cbee034.js +0 -295
- package/_internal/components/table-3cbee034.js.map +0 -1
- package/_internal/components/tabs-5d8ea1a5.js +0 -299
- package/_internal/components/tabs-5d8ea1a5.js.map +0 -1
- package/_internal/components/text-f84a5417.js +0 -2
- package/_internal/components/text-f84a5417.js.map +0 -1
- package/_internal/components/text-field-c26582c5.js.map +0 -1
- package/_internal/components/thumbnail-cb55b26c.js.map +0 -1
- package/_internal/components/toolbar-e7c984e6.js.map +0 -1
- package/_internal/components/tooltip-dcb43bbe.js +0 -328
- package/_internal/components/tooltip-dcb43bbe.js.map +0 -1
- package/_internal/components/uploader-873b9bc1.js.map +0 -1
- package/_internal/components/user-block-7cbaffe0.js.map +0 -1
- package/_internal/constants-43721918.js +0 -2170
- package/_internal/constants-43721918.js.map +0 -1
- package/_internal/constants-d0e3f49e.js.map +0 -1
- package/_internal/context-9d1336a1.js.map +0 -1
- package/_internal/forwardRef-8bce732e.js.map +0 -1
- package/_internal/getFocusableElements-230173a8.js.map +0 -1
- package/_internal/index-151e2652.js.map +0 -1
- package/_internal/index-25d2a45e.js +0 -437
- package/_internal/index-25d2a45e.js.map +0 -1
- package/_internal/isComponent-b9762ff1.js.map +0 -1
- package/_internal/isComponentType-e806b848.js.map +0 -1
- package/_internal/mergeRefs-f0d7d6ea.js.map +0 -1
- package/_internal/state-db358714.js.map +0 -1
- package/_internal/useBooleanState-2a3d237c.js.map +0 -1
- package/_internal/useCallbackOnEscape-b956a85d.js +0 -64
- package/_internal/useCallbackOnEscape-b956a85d.js.map +0 -1
- package/_internal/useDisableBodyScroll-36bd7352.js.map +0 -1
- package/_internal/useDisableStateProps-69e16b7c.js.map +0 -1
- package/_internal/useFocusTrap-2dbae79e.js.map +0 -1
- package/_internal/useId-3a1facc0.js.map +0 -1
- package/_internal/useRovingTabIndex-7daf0f24.js.map +0 -1
- package/_internal/useTransitionVisibility-321fdbfa.js.map +0 -1
- package/_internal/wrapChildrenIconWithSpaces-ef2a6772.js.map +0 -1
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import React__default, { useState } from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
|
|
4
|
+
import { useMergeRefs } from '../../utils/react/mergeRefs-27df0cb6.js';
|
|
5
|
+
import { useImageLoad } from './useImageLoad-7af4a428.js';
|
|
6
|
+
import { useFocusPointStyle } from './useFocusPointStyle-b4018f8d.js';
|
|
7
|
+
import { useTheme } from '../../utils/theme/ThemeContext-d8ee966d.js';
|
|
8
|
+
import { forwardRef } from '../../utils/react/forwardRef-bd8b3ec8.js';
|
|
9
|
+
import { RawClickable } from '../../utils/react/RawClickable-e5e3e5c6.js';
|
|
10
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
11
|
+
import { useDisableStateProps } from '../../utils/disabled/useDisableStateProps-2391c02d.js';
|
|
12
|
+
import { mdiImageBroken } from '../../../../lumx-icons/dist/esm/image-broken-1060c47e.js';
|
|
13
|
+
import { Theme, AspectRatio, Size } from '@lumx/core/js/constants';
|
|
14
|
+
import { Icon } from '../icon/Icon-21a83e8c.js';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Component display name.
|
|
18
|
+
*/
|
|
19
|
+
const COMPONENT_NAME = 'Thumbnail';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Component default class name and class prefix.
|
|
23
|
+
*/
|
|
24
|
+
const CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Component default props.
|
|
28
|
+
*/
|
|
29
|
+
const DEFAULT_PROPS = {
|
|
30
|
+
fallback: mdiImageBroken,
|
|
31
|
+
loading: 'lazy'
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Thumbnail component.
|
|
36
|
+
*
|
|
37
|
+
* @param props Component props.
|
|
38
|
+
* @param ref Component ref.
|
|
39
|
+
* @return React element.
|
|
40
|
+
*/
|
|
41
|
+
const Thumbnail = forwardRef((props, ref) => {
|
|
42
|
+
const {
|
|
43
|
+
isAnyDisabled,
|
|
44
|
+
otherProps,
|
|
45
|
+
disabledStateProps
|
|
46
|
+
} = useDisableStateProps(props);
|
|
47
|
+
const defaultTheme = useTheme() || Theme.light;
|
|
48
|
+
const {
|
|
49
|
+
align,
|
|
50
|
+
alt,
|
|
51
|
+
aspectRatio = AspectRatio.original,
|
|
52
|
+
badge,
|
|
53
|
+
className,
|
|
54
|
+
crossOrigin,
|
|
55
|
+
fallback = DEFAULT_PROPS.fallback,
|
|
56
|
+
fillHeight,
|
|
57
|
+
// `focusPoint` needs to be here to remove it from `forwardedProps`.
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
59
|
+
focusPoint,
|
|
60
|
+
image,
|
|
61
|
+
imgProps,
|
|
62
|
+
imgRef: propImgRef,
|
|
63
|
+
isLoading: isLoadingProp,
|
|
64
|
+
objectFit,
|
|
65
|
+
loading = DEFAULT_PROPS.loading,
|
|
66
|
+
loadingPlaceholderImageRef,
|
|
67
|
+
size,
|
|
68
|
+
theme = defaultTheme,
|
|
69
|
+
variant,
|
|
70
|
+
linkProps,
|
|
71
|
+
linkAs,
|
|
72
|
+
...forwardedProps
|
|
73
|
+
} = otherProps;
|
|
74
|
+
const [imgElement, setImgElement] = useState();
|
|
75
|
+
|
|
76
|
+
// Image loading state.
|
|
77
|
+
const loadingState = useImageLoad(image, imgElement);
|
|
78
|
+
const isLoaded = loadingState === 'isLoaded';
|
|
79
|
+
const isLoading = isLoadingProp || loadingState === 'isLoading';
|
|
80
|
+
const hasError = loadingState === 'hasError';
|
|
81
|
+
|
|
82
|
+
// Focus point.
|
|
83
|
+
const focusPointStyle = useFocusPointStyle(props, imgElement, isLoaded);
|
|
84
|
+
const hasIconErrorFallback = hasError && typeof fallback === 'string';
|
|
85
|
+
const hasCustomErrorFallback = hasError && !hasIconErrorFallback;
|
|
86
|
+
const imageErrorStyle = {};
|
|
87
|
+
if (hasIconErrorFallback) {
|
|
88
|
+
// Keep the image layout on icon fallback.
|
|
89
|
+
imageErrorStyle.visibility = 'hidden';
|
|
90
|
+
} else if (hasCustomErrorFallback) {
|
|
91
|
+
// Remove the image on custom fallback.
|
|
92
|
+
imageErrorStyle.display = 'none';
|
|
93
|
+
}
|
|
94
|
+
const isLink = Boolean(linkProps?.href || linkAs);
|
|
95
|
+
const isClickable = !isAnyDisabled && Boolean(isLink || !!forwardedProps.onClick);
|
|
96
|
+
const Wrapper = isClickable ? RawClickable : 'div';
|
|
97
|
+
const wrapperProps = {
|
|
98
|
+
...forwardedProps
|
|
99
|
+
};
|
|
100
|
+
if (isClickable) {
|
|
101
|
+
Object.assign(wrapperProps, {
|
|
102
|
+
as: linkAs || (linkProps?.href ? 'a' : 'button')
|
|
103
|
+
}, disabledStateProps);
|
|
104
|
+
if (isLink) {
|
|
105
|
+
Object.assign(wrapperProps, linkProps);
|
|
106
|
+
} else {
|
|
107
|
+
wrapperProps['aria-label'] = forwardedProps['aria-label'] || alt;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// If we have a loading placeholder image that is really loaded (complete)
|
|
112
|
+
const loadingPlaceholderImage = isLoading && loadingPlaceholderImageRef?.current?.complete && loadingPlaceholderImageRef?.current || undefined;
|
|
113
|
+
|
|
114
|
+
// Set loading placeholder image as background
|
|
115
|
+
const loadingStyle = loadingPlaceholderImage ? {
|
|
116
|
+
backgroundImage: `url(${loadingPlaceholderImage.src})`
|
|
117
|
+
} : undefined;
|
|
118
|
+
return /*#__PURE__*/jsxs(Wrapper, {
|
|
119
|
+
...wrapperProps,
|
|
120
|
+
ref: ref,
|
|
121
|
+
className: classNames(linkProps?.className, className, handleBasicClasses({
|
|
122
|
+
align,
|
|
123
|
+
aspectRatio,
|
|
124
|
+
prefix: CLASSNAME,
|
|
125
|
+
size,
|
|
126
|
+
theme,
|
|
127
|
+
variant,
|
|
128
|
+
isClickable,
|
|
129
|
+
hasError,
|
|
130
|
+
hasIconErrorFallback,
|
|
131
|
+
hasCustomErrorFallback,
|
|
132
|
+
isLoading,
|
|
133
|
+
objectFit,
|
|
134
|
+
hasBadge: !!badge
|
|
135
|
+
}), fillHeight && `${CLASSNAME}--fill-height`),
|
|
136
|
+
children: [/*#__PURE__*/jsxs("span", {
|
|
137
|
+
className: `${CLASSNAME}__background`,
|
|
138
|
+
children: [/*#__PURE__*/jsx("img", {
|
|
139
|
+
// Use placeholder image size
|
|
140
|
+
width: loadingPlaceholderImage?.naturalWidth,
|
|
141
|
+
height: loadingPlaceholderImage?.naturalHeight,
|
|
142
|
+
...imgProps,
|
|
143
|
+
style: {
|
|
144
|
+
// Reserve space while loading (when possible)
|
|
145
|
+
width: isLoading ? imgProps?.width || loadingPlaceholderImage?.naturalWidth : undefined,
|
|
146
|
+
...imgProps?.style,
|
|
147
|
+
...imageErrorStyle,
|
|
148
|
+
...focusPointStyle,
|
|
149
|
+
...loadingStyle
|
|
150
|
+
},
|
|
151
|
+
ref: useMergeRefs(setImgElement, propImgRef),
|
|
152
|
+
className: classNames(handleBasicClasses({
|
|
153
|
+
prefix: `${CLASSNAME}__image`,
|
|
154
|
+
isLoading,
|
|
155
|
+
hasDefinedSize: Boolean(imgProps?.height && imgProps.width)
|
|
156
|
+
}), imgProps?.className),
|
|
157
|
+
crossOrigin: crossOrigin,
|
|
158
|
+
src: image,
|
|
159
|
+
alt: alt,
|
|
160
|
+
loading: loading
|
|
161
|
+
}), !isLoading && hasError && /*#__PURE__*/jsx("span", {
|
|
162
|
+
className: `${CLASSNAME}__fallback`,
|
|
163
|
+
children: hasIconErrorFallback ? /*#__PURE__*/jsx(Icon, {
|
|
164
|
+
icon: fallback,
|
|
165
|
+
size: Size.xxs,
|
|
166
|
+
theme: theme
|
|
167
|
+
}) : fallback
|
|
168
|
+
})]
|
|
169
|
+
}), badge && /*#__PURE__*/React__default.cloneElement(badge, {
|
|
170
|
+
className: classNames(`${CLASSNAME}__badge`, badge.props.className)
|
|
171
|
+
})]
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
Thumbnail.displayName = COMPONENT_NAME;
|
|
175
|
+
Thumbnail.className = CLASSNAME;
|
|
176
|
+
Thumbnail.defaultProps = DEFAULT_PROPS;
|
|
177
|
+
|
|
178
|
+
export { Thumbnail };
|
|
179
|
+
//# sourceMappingURL=Thumbnail-49bab66c.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Thumbnail-49bab66c.js","sources":["../../../../../../../src/components/thumbnail/Thumbnail.tsx"],"sourcesContent":["import React, {\n CSSProperties,\n ImgHTMLAttributes,\n KeyboardEventHandler,\n MouseEventHandler,\n ReactElement,\n ReactNode,\n Ref,\n useState,\n} from 'react';\n\nimport classNames from 'classnames';\n\nimport { AspectRatio, HorizontalAlignment, Icon, Size, Theme, ThumbnailObjectFit } from '@lumx/react';\nimport { Falsy, GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { mdiImageBroken } from '@lumx/icons';\nimport { useMergeRefs } from '@lumx/react/utils/react/mergeRefs';\nimport { useImageLoad } from '@lumx/react/components/thumbnail/useImageLoad';\nimport { useFocusPointStyle } from '@lumx/react/components/thumbnail/useFocusPointStyle';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { useDisableStateProps } from '@lumx/react/utils/disabled';\nimport { RawClickable } from '@lumx/react/utils/react/RawClickable';\nimport { FocusPoint, ThumbnailSize, ThumbnailVariant } from './types';\n\ntype ImgHTMLProps = ImgHTMLAttributes<HTMLImageElement>;\n\n/**\n * Defines the props of the component.\n */\nexport interface ThumbnailProps extends GenericProps, HasTheme {\n /** Alignment of the thumbnail in it's parent (requires flex parent). */\n align?: HorizontalAlignment;\n /** Image alternative text. */\n alt: string;\n /** Image aspect ratio. */\n aspectRatio?: AspectRatio;\n /** Badge. */\n badge?: ReactElement | Falsy;\n /** Image cross origin resource policy. */\n crossOrigin?: ImgHTMLProps['crossOrigin'];\n /** Fallback icon (SVG path) or react node when image fails to load. */\n fallback?: string | ReactNode;\n /** Whether the thumbnail should fill it's parent size (requires flex parent) or not. */\n fillHeight?: boolean;\n /** Apply relative vertical and horizontal shift (from -1 to 1) on the image position inside the thumbnail. */\n focusPoint?: FocusPoint;\n /** Image URL. */\n image: string;\n /** Props to inject into the native <img> element. */\n imgProps?: ImgHTMLProps;\n /** Reference to the native <img> element. */\n imgRef?: Ref<HTMLImageElement>;\n /** Set to true to force the display of the loading skeleton. */\n isLoading?: boolean;\n /** Set how the image should fit when its aspect ratio is constrained */\n objectFit?: ThumbnailObjectFit;\n /** Size variant of the component. */\n size?: ThumbnailSize;\n /** Image loading mode. */\n loading?: ImgHTMLProps['loading'];\n /** Ref of an existing placeholder image to display while loading. */\n loadingPlaceholderImageRef?: React.RefObject<HTMLImageElement>;\n /** On click callback. */\n onClick?: MouseEventHandler<HTMLDivElement>;\n /** On key press callback. */\n onKeyPress?: KeyboardEventHandler<HTMLDivElement>;\n /** Variant of the component. */\n variant?: ThumbnailVariant;\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}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Thumbnail';\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<ThumbnailProps> = {\n fallback: mdiImageBroken,\n loading: 'lazy',\n};\n\n/**\n * Thumbnail component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Thumbnail = forwardRef<ThumbnailProps>((props, ref) => {\n const { isAnyDisabled, otherProps, disabledStateProps } = useDisableStateProps(props);\n const defaultTheme = useTheme() || Theme.light;\n const {\n align,\n alt,\n aspectRatio = AspectRatio.original,\n badge,\n className,\n crossOrigin,\n fallback = DEFAULT_PROPS.fallback,\n fillHeight,\n // `focusPoint` needs to be here to remove it from `forwardedProps`.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusPoint,\n image,\n imgProps,\n imgRef: propImgRef,\n isLoading: isLoadingProp,\n objectFit,\n loading = DEFAULT_PROPS.loading,\n loadingPlaceholderImageRef,\n size,\n theme = defaultTheme,\n variant,\n linkProps,\n linkAs,\n ...forwardedProps\n } = otherProps;\n const [imgElement, setImgElement] = useState<HTMLImageElement>();\n\n // Image loading state.\n const loadingState = useImageLoad(image, imgElement);\n const isLoaded = loadingState === 'isLoaded';\n const isLoading = isLoadingProp || loadingState === 'isLoading';\n const hasError = loadingState === 'hasError';\n\n // Focus point.\n const focusPointStyle = useFocusPointStyle(props, imgElement, isLoaded);\n\n const hasIconErrorFallback = hasError && typeof fallback === 'string';\n const hasCustomErrorFallback = hasError && !hasIconErrorFallback;\n const imageErrorStyle: CSSProperties = {};\n if (hasIconErrorFallback) {\n // Keep the image layout on icon fallback.\n imageErrorStyle.visibility = 'hidden';\n } else if (hasCustomErrorFallback) {\n // Remove the image on custom fallback.\n imageErrorStyle.display = 'none';\n }\n\n const isLink = Boolean(linkProps?.href || linkAs);\n const isClickable = !isAnyDisabled && Boolean(isLink || !!forwardedProps.onClick);\n\n const Wrapper: any = isClickable ? RawClickable : 'div';\n const wrapperProps = { ...forwardedProps };\n if (isClickable) {\n Object.assign(wrapperProps, { as: linkAs || (linkProps?.href ? 'a' : 'button') }, disabledStateProps);\n if (isLink) {\n Object.assign(wrapperProps, linkProps);\n } else {\n wrapperProps['aria-label'] = forwardedProps['aria-label'] || alt;\n }\n }\n\n // If we have a loading placeholder image that is really loaded (complete)\n const loadingPlaceholderImage =\n (isLoading && loadingPlaceholderImageRef?.current?.complete && loadingPlaceholderImageRef?.current) ||\n undefined;\n\n // Set loading placeholder image as background\n const loadingStyle = loadingPlaceholderImage\n ? { backgroundImage: `url(${loadingPlaceholderImage.src})` }\n : undefined;\n\n return (\n <Wrapper\n {...wrapperProps}\n ref={ref}\n className={classNames(\n linkProps?.className,\n className,\n handleBasicClasses({\n align,\n aspectRatio,\n prefix: CLASSNAME,\n size,\n theme,\n variant,\n isClickable,\n hasError,\n hasIconErrorFallback,\n hasCustomErrorFallback,\n isLoading,\n objectFit,\n hasBadge: !!badge,\n }),\n fillHeight && `${CLASSNAME}--fill-height`,\n )}\n >\n <span className={`${CLASSNAME}__background`}>\n <img\n // Use placeholder image size\n width={loadingPlaceholderImage?.naturalWidth}\n height={loadingPlaceholderImage?.naturalHeight}\n {...imgProps}\n style={{\n // Reserve space while loading (when possible)\n width: isLoading ? imgProps?.width || loadingPlaceholderImage?.naturalWidth : undefined,\n ...imgProps?.style,\n ...imageErrorStyle,\n ...focusPointStyle,\n ...loadingStyle,\n }}\n ref={useMergeRefs(setImgElement, propImgRef)}\n className={classNames(\n handleBasicClasses({\n prefix: `${CLASSNAME}__image`,\n isLoading,\n hasDefinedSize: Boolean(imgProps?.height && imgProps.width),\n }),\n imgProps?.className,\n )}\n crossOrigin={crossOrigin}\n src={image}\n alt={alt}\n loading={loading}\n />\n {!isLoading && hasError && (\n <span className={`${CLASSNAME}__fallback`}>\n {hasIconErrorFallback ? (\n <Icon icon={fallback as string} size={Size.xxs} theme={theme} />\n ) : (\n fallback\n )}\n </span>\n )}\n </span>\n {badge &&\n React.cloneElement(badge, { className: classNames(`${CLASSNAME}__badge`, badge.props.className) })}\n </Wrapper>\n );\n});\nThumbnail.displayName = COMPONENT_NAME;\nThumbnail.className = CLASSNAME;\nThumbnail.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","fallback","mdiImageBroken","loading","Thumbnail","forwardRef","props","ref","isAnyDisabled","otherProps","disabledStateProps","useDisableStateProps","defaultTheme","useTheme","Theme","light","align","alt","aspectRatio","AspectRatio","original","badge","className","crossOrigin","fillHeight","focusPoint","image","imgProps","imgRef","propImgRef","isLoading","isLoadingProp","objectFit","loadingPlaceholderImageRef","size","theme","variant","linkProps","linkAs","forwardedProps","imgElement","setImgElement","useState","loadingState","useImageLoad","isLoaded","hasError","focusPointStyle","useFocusPointStyle","hasIconErrorFallback","hasCustomErrorFallback","imageErrorStyle","visibility","display","isLink","Boolean","href","isClickable","onClick","Wrapper","RawClickable","wrapperProps","Object","assign","as","loadingPlaceholderImage","current","complete","undefined","loadingStyle","backgroundImage","src","_jsxs","classNames","handleBasicClasses","prefix","hasBadge","children","_jsx","width","naturalWidth","height","naturalHeight","style","useMergeRefs","hasDefinedSize","Icon","icon","Size","xxs","React","cloneElement","displayName","defaultProps"],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export { T as Thumbnail, u as useFocusPointStyle } from '../Thumbnail-d2001ccb.js';
|
|
2
1
|
import { AspectRatio } from '@lumx/core/js/constants';
|
|
3
2
|
|
|
4
3
|
/**
|
|
@@ -39,4 +38,4 @@ const ThumbnailObjectFit = {
|
|
|
39
38
|
};
|
|
40
39
|
|
|
41
40
|
export { ThumbnailAspectRatio, ThumbnailObjectFit, ThumbnailVariant };
|
|
42
|
-
//# sourceMappingURL=
|
|
41
|
+
//# sourceMappingURL=types-58418448.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-58418448.js","sources":["../../../../../../../src/components/thumbnail/types.ts"],"sourcesContent":["import React from 'react';\nimport { AspectRatio, Size } from '@lumx/react';\nimport { ValueOf } from '@lumx/react/utils/type';\n\n/**\n * Focal point using vertical alignment, horizontal alignment or coordinates (from -1 to 1).\n */\nexport type FocusPoint = { x?: number; y?: number };\n\n/**\n * Loading attribute is not yet supported in typescript, so we need\n * to add it in order to avoid a ts error.\n * https://github.com/typescript-cheatsheets/react-typescript-cheatsheet/blob/master/ADVANCED.md#adding-non-standard-attributes\n */\ndeclare module 'react' {\n interface ImgHTMLAttributes<T> extends React.HTMLAttributes<T> {\n loading?: 'eager' | 'lazy';\n }\n}\n\n/**\n * All available aspect ratios.\n * @deprecated\n */\nexport const ThumbnailAspectRatio: Record<string, AspectRatio> = { ...AspectRatio };\n\n/**\n * Thumbnail sizes.\n */\nexport type ThumbnailSize = Extract<Size, 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl'>;\n\n/**\n * Thumbnail variants.\n */\nexport const ThumbnailVariant = {\n squared: 'squared',\n rounded: 'rounded',\n} as const;\nexport type ThumbnailVariant = ValueOf<typeof ThumbnailVariant>;\n\n/**\n * Thumbnail object fit.\n */\nexport const ThumbnailObjectFit = {\n cover: 'cover',\n contain: 'contain',\n} as const;\nexport type ThumbnailObjectFit = ValueOf<typeof ThumbnailObjectFit>;\n"],"names":["ThumbnailAspectRatio","AspectRatio","ThumbnailVariant","squared","rounded","ThumbnailObjectFit","cover","contain"],"mappings":";;AAIA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACO,MAAMA,oBAAiD,GAAG;EAAE,GAAGC,WAAAA;AAAY,EAAC;;AAEnF;AACA;AACA;;AAGA;AACA;AACA;AACO,MAAMC,gBAAgB,GAAG;AAC5BC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,OAAO,EAAE,SAAA;AACb,EAAU;AAGV;AACA;AACA;AACO,MAAMC,kBAAkB,GAAG;AAC9BC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,OAAO,EAAE,SAAA;AACb;;;;"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { useMemo, useState, useEffect } from 'react';
|
|
2
|
+
import { AspectRatio } from '@lumx/core/js/constants';
|
|
3
|
+
|
|
4
|
+
// Calculate shift to center the focus point in the container.
|
|
5
|
+
function shiftPosition({
|
|
6
|
+
scale,
|
|
7
|
+
focusPoint,
|
|
8
|
+
imageSize,
|
|
9
|
+
containerSize
|
|
10
|
+
}) {
|
|
11
|
+
const scaledSize = imageSize / scale;
|
|
12
|
+
if (scaledSize === containerSize) return 0;
|
|
13
|
+
const scaledFocusHeight = focusPoint * scaledSize;
|
|
14
|
+
const startFocus = scaledFocusHeight - containerSize / 2;
|
|
15
|
+
const shift = startFocus / (scaledSize - containerSize);
|
|
16
|
+
return Math.floor(Math.max(Math.min(shift, 1), 0) * 100);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Compute CSS properties to apply the focus point.
|
|
20
|
+
const useFocusPointStyle = ({
|
|
21
|
+
image,
|
|
22
|
+
aspectRatio,
|
|
23
|
+
focusPoint,
|
|
24
|
+
imgProps: {
|
|
25
|
+
width,
|
|
26
|
+
height
|
|
27
|
+
} = {}
|
|
28
|
+
}, element, isLoaded) => {
|
|
29
|
+
// Get natural image size from imgProps or img element.
|
|
30
|
+
const imageSize = useMemo(() => {
|
|
31
|
+
// Focus point is not applicable => exit early
|
|
32
|
+
if (!image || aspectRatio === AspectRatio.original || !focusPoint?.x && !focusPoint?.y) return undefined;
|
|
33
|
+
if (typeof width === 'number' && typeof height === 'number') return {
|
|
34
|
+
width,
|
|
35
|
+
height
|
|
36
|
+
};
|
|
37
|
+
if (element && isLoaded) return {
|
|
38
|
+
width: element.naturalWidth,
|
|
39
|
+
height: element.naturalHeight
|
|
40
|
+
};
|
|
41
|
+
return undefined;
|
|
42
|
+
}, [aspectRatio, element, focusPoint?.x, focusPoint?.y, height, image, isLoaded, width]);
|
|
43
|
+
|
|
44
|
+
// Get container size (dependant on imageSize).
|
|
45
|
+
const [containerSize, setContainerSize] = useState(undefined);
|
|
46
|
+
useEffect(function updateContainerSize() {
|
|
47
|
+
const cWidth = element?.offsetWidth;
|
|
48
|
+
const cHeight = element?.offsetHeight;
|
|
49
|
+
if (cWidth && cHeight) {
|
|
50
|
+
// Update only if needed.
|
|
51
|
+
setContainerSize(oldContainerSize => oldContainerSize?.width === cWidth && oldContainerSize.height === cHeight ? oldContainerSize : {
|
|
52
|
+
width: cWidth,
|
|
53
|
+
height: cHeight
|
|
54
|
+
});
|
|
55
|
+
} else if (imageSize) {
|
|
56
|
+
// Wait for a render (in case the container size is dependent on the image size).
|
|
57
|
+
requestAnimationFrame(updateContainerSize);
|
|
58
|
+
}
|
|
59
|
+
}, [element?.offsetHeight, element?.offsetWidth, imageSize]);
|
|
60
|
+
|
|
61
|
+
// Compute style.
|
|
62
|
+
const style = useMemo(() => {
|
|
63
|
+
// Focus point is not applicable => exit early
|
|
64
|
+
if (!image || aspectRatio === AspectRatio.original || !focusPoint?.x && !focusPoint?.y) {
|
|
65
|
+
return {};
|
|
66
|
+
}
|
|
67
|
+
if (!element || !imageSize) {
|
|
68
|
+
// Focus point can be computed but now right now (image size unknown).
|
|
69
|
+
return {
|
|
70
|
+
visibility: 'hidden'
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
if (!containerSize || !imageSize.height || !imageSize.width) {
|
|
74
|
+
// Missing container or image size abort focus point compute.
|
|
75
|
+
return {};
|
|
76
|
+
}
|
|
77
|
+
const heightScale = imageSize.height / containerSize.height;
|
|
78
|
+
const widthScale = imageSize.width / containerSize.width;
|
|
79
|
+
const scale = Math.min(widthScale, heightScale);
|
|
80
|
+
|
|
81
|
+
// Focus Y relative to the top (instead of the center)
|
|
82
|
+
const focusPointFromTop = Math.abs((focusPoint?.y || 0) - 1) / 2;
|
|
83
|
+
const y = shiftPosition({
|
|
84
|
+
scale,
|
|
85
|
+
focusPoint: focusPointFromTop,
|
|
86
|
+
imageSize: imageSize.height,
|
|
87
|
+
containerSize: containerSize.height
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
// Focus X relative to the left (instead of the center)
|
|
91
|
+
const focusPointFromLeft = Math.abs((focusPoint?.x || 0) + 1) / 2;
|
|
92
|
+
const x = shiftPosition({
|
|
93
|
+
scale,
|
|
94
|
+
focusPoint: focusPointFromLeft,
|
|
95
|
+
imageSize: imageSize.width,
|
|
96
|
+
containerSize: containerSize.width
|
|
97
|
+
});
|
|
98
|
+
const objectPosition = `${x}% ${y}%`;
|
|
99
|
+
return {
|
|
100
|
+
objectPosition
|
|
101
|
+
};
|
|
102
|
+
}, [aspectRatio, containerSize, element, focusPoint?.x, focusPoint?.y, image, imageSize]);
|
|
103
|
+
return style;
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export { shiftPosition, useFocusPointStyle };
|
|
107
|
+
//# sourceMappingURL=useFocusPointStyle-b4018f8d.js.map
|
package/_internal/packages/lumx-react/src/components/thumbnail/useFocusPointStyle-b4018f8d.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFocusPointStyle-b4018f8d.js","sources":["../../../../../../../src/components/thumbnail/useFocusPointStyle.tsx"],"sourcesContent":["import { CSSProperties, useEffect, useMemo, useState } from 'react';\nimport { AspectRatio } from '@lumx/core/js/constants';\nimport { ThumbnailProps } from '@lumx/react/components/thumbnail/Thumbnail';\nimport { RectSize } from '@lumx/react/utils/type';\n\n// Calculate shift to center the focus point in the container.\nexport function shiftPosition({\n scale,\n focusPoint,\n imageSize,\n containerSize,\n}: {\n scale: number;\n focusPoint: number;\n imageSize: number;\n containerSize: number;\n}) {\n const scaledSize = imageSize / scale;\n if (scaledSize === containerSize) return 0;\n\n const scaledFocusHeight = focusPoint * scaledSize;\n const startFocus = scaledFocusHeight - containerSize / 2;\n const shift = startFocus / (scaledSize - containerSize);\n\n return Math.floor(Math.max(Math.min(shift, 1), 0) * 100);\n}\n\n// Compute CSS properties to apply the focus point.\nexport const useFocusPointStyle = (\n { image, aspectRatio, focusPoint, imgProps: { width, height } = {} }: ThumbnailProps,\n element: HTMLImageElement | undefined,\n isLoaded: boolean,\n): CSSProperties => {\n // Get natural image size from imgProps or img element.\n const imageSize: RectSize | undefined = useMemo(() => {\n // Focus point is not applicable => exit early\n if (!image || aspectRatio === AspectRatio.original || (!focusPoint?.x && !focusPoint?.y)) return undefined;\n if (typeof width === 'number' && typeof height === 'number') return { width, height };\n if (element && isLoaded) return { width: element.naturalWidth, height: element.naturalHeight };\n return undefined;\n }, [aspectRatio, element, focusPoint?.x, focusPoint?.y, height, image, isLoaded, width]);\n\n // Get container size (dependant on imageSize).\n const [containerSize, setContainerSize] = useState<RectSize | undefined>(undefined);\n useEffect(\n function updateContainerSize() {\n const cWidth = element?.offsetWidth;\n const cHeight = element?.offsetHeight;\n if (cWidth && cHeight) {\n // Update only if needed.\n setContainerSize((oldContainerSize) =>\n oldContainerSize?.width === cWidth && oldContainerSize.height === cHeight\n ? oldContainerSize\n : { width: cWidth, height: cHeight },\n );\n } else if (imageSize) {\n // Wait for a render (in case the container size is dependent on the image size).\n requestAnimationFrame(updateContainerSize);\n }\n },\n [element?.offsetHeight, element?.offsetWidth, imageSize],\n );\n\n // Compute style.\n const style: CSSProperties = useMemo(() => {\n // Focus point is not applicable => exit early\n if (!image || aspectRatio === AspectRatio.original || (!focusPoint?.x && !focusPoint?.y)) {\n return {};\n }\n if (!element || !imageSize) {\n // Focus point can be computed but now right now (image size unknown).\n return { visibility: 'hidden' };\n }\n if (!containerSize || !imageSize.height || !imageSize.width) {\n // Missing container or image size abort focus point compute.\n return {};\n }\n\n const heightScale = imageSize.height / containerSize.height;\n const widthScale = imageSize.width / containerSize.width;\n const scale = Math.min(widthScale, heightScale);\n\n // Focus Y relative to the top (instead of the center)\n const focusPointFromTop = Math.abs((focusPoint?.y || 0) - 1) / 2;\n const y = shiftPosition({\n scale,\n focusPoint: focusPointFromTop,\n imageSize: imageSize.height,\n containerSize: containerSize.height,\n });\n\n // Focus X relative to the left (instead of the center)\n const focusPointFromLeft = Math.abs((focusPoint?.x || 0) + 1) / 2;\n const x = shiftPosition({\n scale,\n focusPoint: focusPointFromLeft,\n imageSize: imageSize.width,\n containerSize: containerSize.width,\n });\n\n const objectPosition = `${x}% ${y}%`;\n\n return { objectPosition };\n }, [aspectRatio, containerSize, element, focusPoint?.x, focusPoint?.y, image, imageSize]);\n\n return style;\n};\n"],"names":["shiftPosition","scale","focusPoint","imageSize","containerSize","scaledSize","scaledFocusHeight","startFocus","shift","Math","floor","max","min","useFocusPointStyle","image","aspectRatio","imgProps","width","height","element","isLoaded","useMemo","AspectRatio","original","x","y","undefined","naturalWidth","naturalHeight","setContainerSize","useState","useEffect","updateContainerSize","cWidth","offsetWidth","cHeight","offsetHeight","oldContainerSize","requestAnimationFrame","style","visibility","heightScale","widthScale","focusPointFromTop","abs","focusPointFromLeft","objectPosition"],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
function getState(img, event) {
|
|
4
|
+
// Error event occurred or image has no source.
|
|
5
|
+
if (event?.type === 'error' || img?.complete && !img.getAttribute('src')) {
|
|
6
|
+
return 'hasError';
|
|
7
|
+
}
|
|
8
|
+
// Image is undefined or incomplete.
|
|
9
|
+
if (!img || !img.complete) {
|
|
10
|
+
return 'isLoading';
|
|
11
|
+
}
|
|
12
|
+
// Else loaded.
|
|
13
|
+
return 'isLoaded';
|
|
14
|
+
}
|
|
15
|
+
function useImageLoad(imageURL, imgRef) {
|
|
16
|
+
const [state, setState] = useState(getState(imgRef));
|
|
17
|
+
|
|
18
|
+
// Update state when changing image URL or DOM reference.
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
setState(getState(imgRef));
|
|
21
|
+
}, [imageURL, imgRef]);
|
|
22
|
+
|
|
23
|
+
// Listen to `load` and `error` event on image
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
const img = imgRef;
|
|
26
|
+
if (!img) return undefined;
|
|
27
|
+
const update = event => setState(getState(img, event));
|
|
28
|
+
img.addEventListener('load', update);
|
|
29
|
+
img.addEventListener('error', update);
|
|
30
|
+
return () => {
|
|
31
|
+
img.removeEventListener('load', update);
|
|
32
|
+
img.removeEventListener('error', update);
|
|
33
|
+
};
|
|
34
|
+
}, [imgRef, imgRef?.src]);
|
|
35
|
+
return state;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { useImageLoad };
|
|
39
|
+
//# sourceMappingURL=useImageLoad-7af4a428.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useImageLoad-7af4a428.js","sources":["../../../../../../../src/components/thumbnail/useImageLoad.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport type LoadingState = 'isLoading' | 'isLoaded' | 'hasError';\n\nfunction getState(img: HTMLImageElement | null | undefined, event?: Event) {\n // Error event occurred or image has no source.\n if (event?.type === 'error' || (img?.complete && !img.getAttribute('src'))) {\n return 'hasError';\n }\n // Image is undefined or incomplete.\n if (!img || !img.complete) {\n return 'isLoading';\n }\n // Else loaded.\n return 'isLoaded';\n}\n\nexport function useImageLoad(imageURL: string, imgRef?: HTMLImageElement): LoadingState {\n const [state, setState] = useState<LoadingState>(getState(imgRef));\n\n // Update state when changing image URL or DOM reference.\n useEffect(() => {\n setState(getState(imgRef));\n }, [imageURL, imgRef]);\n\n // Listen to `load` and `error` event on image\n useEffect(() => {\n const img = imgRef;\n if (!img) return undefined;\n const update = (event?: Event) => setState(getState(img, event));\n img.addEventListener('load', update);\n img.addEventListener('error', update);\n return () => {\n img.removeEventListener('load', update);\n img.removeEventListener('error', update);\n };\n }, [imgRef, imgRef?.src]);\n\n return state;\n}\n"],"names":["getState","img","event","type","complete","getAttribute","useImageLoad","imageURL","imgRef","state","setState","useState","useEffect","undefined","update","addEventListener","removeEventListener","src"],"mappings":";;AAIA,SAASA,QAAQA,CAACC,GAAwC,EAAEC,KAAa,EAAE;AACvE;AACA,EAAA,IAAIA,KAAK,EAAEC,IAAI,KAAK,OAAO,IAAKF,GAAG,EAAEG,QAAQ,IAAI,CAACH,GAAG,CAACI,YAAY,CAAC,KAAK,CAAE,EAAE;AACxE,IAAA,OAAO,UAAU,CAAA;AACrB,GAAA;AACA;AACA,EAAA,IAAI,CAACJ,GAAG,IAAI,CAACA,GAAG,CAACG,QAAQ,EAAE;AACvB,IAAA,OAAO,WAAW,CAAA;AACtB,GAAA;AACA;AACA,EAAA,OAAO,UAAU,CAAA;AACrB,CAAA;AAEO,SAASE,YAAYA,CAACC,QAAgB,EAAEC,MAAyB,EAAgB;AACpF,EAAA,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGC,QAAQ,CAAeX,QAAQ,CAACQ,MAAM,CAAC,CAAC,CAAA;;AAElE;AACAI,EAAAA,SAAS,CAAC,MAAM;AACZF,IAAAA,QAAQ,CAACV,QAAQ,CAACQ,MAAM,CAAC,CAAC,CAAA;AAC9B,GAAC,EAAE,CAACD,QAAQ,EAAEC,MAAM,CAAC,CAAC,CAAA;;AAEtB;AACAI,EAAAA,SAAS,CAAC,MAAM;IACZ,MAAMX,GAAG,GAAGO,MAAM,CAAA;AAClB,IAAA,IAAI,CAACP,GAAG,EAAE,OAAOY,SAAS,CAAA;AAC1B,IAAA,MAAMC,MAAM,GAAIZ,KAAa,IAAKQ,QAAQ,CAACV,QAAQ,CAACC,GAAG,EAAEC,KAAK,CAAC,CAAC,CAAA;AAChED,IAAAA,GAAG,CAACc,gBAAgB,CAAC,MAAM,EAAED,MAAM,CAAC,CAAA;AACpCb,IAAAA,GAAG,CAACc,gBAAgB,CAAC,OAAO,EAAED,MAAM,CAAC,CAAA;AACrC,IAAA,OAAO,MAAM;AACTb,MAAAA,GAAG,CAACe,mBAAmB,CAAC,MAAM,EAAEF,MAAM,CAAC,CAAA;AACvCb,MAAAA,GAAG,CAACe,mBAAmB,CAAC,OAAO,EAAEF,MAAM,CAAC,CAAA;KAC3C,CAAA;GACJ,EAAE,CAACN,MAAM,EAAEA,MAAM,EAAES,GAAG,CAAC,CAAC,CAAA;AAEzB,EAAA,OAAOR,KAAK,CAAA;AAChB;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import classNames from 'classnames';
|
|
2
2
|
import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
|
|
3
|
-
import {
|
|
3
|
+
import { forwardRef } from '../../utils/react/forwardRef-bd8b3ec8.js';
|
|
4
4
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -59,4 +59,4 @@ Toolbar.className = CLASSNAME;
|
|
|
59
59
|
Toolbar.defaultProps = DEFAULT_PROPS;
|
|
60
60
|
|
|
61
61
|
export { Toolbar };
|
|
62
|
-
//# sourceMappingURL=
|
|
62
|
+
//# sourceMappingURL=Toolbar-b30ac67a.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toolbar-b30ac67a.js","sources":["../../../../../../../src/components/toolbar/Toolbar.tsx"],"sourcesContent":["import { ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\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\n/**\n * Defines the props of the component.\n */\nexport interface ToolbarProps extends GenericProps {\n /** After content (placed after the label). */\n after?: ReactNode;\n /** Before content (placed before the label). */\n before?: ReactNode;\n /** Label content. */\n label?: ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Toolbar';\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<ToolbarProps> = {};\n\n/**\n * Toolbar component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Toolbar = forwardRef<ToolbarProps, HTMLDivElement>((props, ref) => {\n const { after, before, className, label, ...forwardedProps } = props;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n hasAfter: Boolean(after),\n hasBefore: Boolean(before),\n hasLabel: Boolean(label),\n prefix: CLASSNAME,\n }),\n )}\n >\n {before && <div className={`${CLASSNAME}__before`}>{before}</div>}\n {label && <div className={`${CLASSNAME}__label`}>{label}</div>}\n {after && <div className={`${CLASSNAME}__after`}>{after}</div>}\n </div>\n );\n});\nToolbar.displayName = COMPONENT_NAME;\nToolbar.className = CLASSNAME;\nToolbar.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","Toolbar","forwardRef","props","ref","after","before","className","label","forwardedProps","_jsxs","classNames","handleBasicClasses","hasAfter","Boolean","hasBefore","hasLabel","prefix","children","_jsx","displayName","defaultProps"],"mappings":";;;;;AAoBA;AACA;AACA;AACA,MAAMA,cAAc,GAAG,SAAS,CAAA;;AAEhC;AACA;AACA;AACA,MAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAc,CAAC,CAAA;;AAElD;AACA;AACA;AACA,MAAMG,aAAoC,GAAG,EAAE,CAAA;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,OAAO,GAAGC,UAAU,CAA+B,CAACC,KAAK,EAAEC,GAAG,KAAK;EAC5E,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,SAAS;IAAEC,KAAK;IAAE,GAAGC,cAAAA;AAAe,GAAC,GAAGN,KAAK,CAAA;AAEpE,EAAA,oBACIO,IAAA,CAAA,KAAA,EAAA;AACIN,IAAAA,GAAG,EAAEA,GAAI;AAAA,IAAA,GACLK,cAAc;AAClBF,IAAAA,SAAS,EAAEI,UAAU,CACjBJ,SAAS,EACTK,kBAAkB,CAAC;AACfC,MAAAA,QAAQ,EAAEC,OAAO,CAACT,KAAK,CAAC;AACxBU,MAAAA,SAAS,EAAED,OAAO,CAACR,MAAM,CAAC;AAC1BU,MAAAA,QAAQ,EAAEF,OAAO,CAACN,KAAK,CAAC;AACxBS,MAAAA,MAAM,EAAEnB,SAAAA;AACZ,KAAC,CACL,CAAE;IAAAoB,QAAA,EAAA,CAEDZ,MAAM,iBAAIa,GAAA,CAAA,KAAA,EAAA;MAAKZ,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAW,QAAA,CAAA;AAAAoB,MAAAA,QAAA,EAAEZ,MAAAA;AAAM,KAAM,CAAC,EAChEE,KAAK,iBAAIW,GAAA,CAAA,KAAA,EAAA;MAAKZ,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAU,OAAA,CAAA;AAAAoB,MAAAA,QAAA,EAAEV,KAAAA;AAAK,KAAM,CAAC,EAC7DH,KAAK,iBAAIc,GAAA,CAAA,KAAA,EAAA;MAAKZ,SAAS,EAAE,CAAGT,EAAAA,SAAS,CAAU,OAAA,CAAA;AAAAoB,MAAAA,QAAA,EAAEb,KAAAA;AAAK,KAAM,CAAC,CAAA;AAAA,GAC7D,CAAC,CAAA;AAEd,CAAC,EAAC;AACFJ,OAAO,CAACmB,WAAW,GAAGvB,cAAc,CAAA;AACpCI,OAAO,CAACM,SAAS,GAAGT,SAAS,CAAA;AAC7BG,OAAO,CAACoB,YAAY,GAAGrB,aAAa;;;;"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import React__default, { useState } from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import { DOCUMENT, VISUALLY_HIDDEN } from '../../constants-6af61e2f.js';
|
|
4
|
+
import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
|
|
5
|
+
import { useMergeRefs } from '../../utils/react/mergeRefs-27df0cb6.js';
|
|
6
|
+
import { TooltipContextProvider } from './context-841c2303.js';
|
|
7
|
+
import { useId } from '../../hooks/useId-11687649.js';
|
|
8
|
+
import { usePopper } from '../../hooks/usePopper-3e9a7aa1.js';
|
|
9
|
+
import { forwardRef } from '../../utils/react/forwardRef-bd8b3ec8.js';
|
|
10
|
+
import { TOOLTIP_ZINDEX } from './constants-e5b346fd.js';
|
|
11
|
+
import { useInjectTooltipRef } from './useInjectTooltipRef-d245b414.js';
|
|
12
|
+
import { useTooltipOpen } from './useTooltipOpen-e3bae967.js';
|
|
13
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
14
|
+
import { Placement } from '../popover/constants-9d063548.js';
|
|
15
|
+
import { Portal } from '../../utils/Portal/Portal-9e38cfd0.js';
|
|
16
|
+
|
|
17
|
+
/* eslint-disable react-hooks/rules-of-hooks */
|
|
18
|
+
/**
|
|
19
|
+
* Component display name.
|
|
20
|
+
*/
|
|
21
|
+
const COMPONENT_NAME = 'Tooltip';
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Component default class name and class prefix.
|
|
25
|
+
*/
|
|
26
|
+
const CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Component default props.
|
|
30
|
+
*/
|
|
31
|
+
const DEFAULT_PROPS = {
|
|
32
|
+
placement: Placement.BOTTOM,
|
|
33
|
+
closeMode: 'unmount',
|
|
34
|
+
ariaLinkMode: 'aria-describedby',
|
|
35
|
+
zIndex: TOOLTIP_ZINDEX
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Arrow size (in pixel).
|
|
40
|
+
*/
|
|
41
|
+
const ARROW_SIZE = 8;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Tooltip component.
|
|
45
|
+
*
|
|
46
|
+
* @param props Component props.
|
|
47
|
+
* @param ref Component ref.
|
|
48
|
+
* @return React element.
|
|
49
|
+
*/
|
|
50
|
+
const Tooltip = forwardRef((props, ref) => {
|
|
51
|
+
const {
|
|
52
|
+
label,
|
|
53
|
+
children,
|
|
54
|
+
className,
|
|
55
|
+
delay,
|
|
56
|
+
placement = DEFAULT_PROPS.placement,
|
|
57
|
+
forceOpen,
|
|
58
|
+
closeMode = DEFAULT_PROPS.closeMode,
|
|
59
|
+
ariaLinkMode = DEFAULT_PROPS.ariaLinkMode,
|
|
60
|
+
zIndex = DEFAULT_PROPS.zIndex,
|
|
61
|
+
...forwardedProps
|
|
62
|
+
} = props;
|
|
63
|
+
// Disable in SSR.
|
|
64
|
+
if (!DOCUMENT) {
|
|
65
|
+
return /*#__PURE__*/jsx(Fragment, {
|
|
66
|
+
children: children
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
const id = useId();
|
|
70
|
+
const [popperElement, setPopperElement] = useState(null);
|
|
71
|
+
const [anchorElement, setAnchorElement] = useState(null);
|
|
72
|
+
const {
|
|
73
|
+
styles,
|
|
74
|
+
attributes,
|
|
75
|
+
update
|
|
76
|
+
} = usePopper(anchorElement, popperElement, {
|
|
77
|
+
placement,
|
|
78
|
+
modifiers: [{
|
|
79
|
+
name: 'offset',
|
|
80
|
+
options: {
|
|
81
|
+
offset: [0, ARROW_SIZE]
|
|
82
|
+
}
|
|
83
|
+
}]
|
|
84
|
+
});
|
|
85
|
+
const position = attributes?.popper?.['data-popper-placement'] ?? placement;
|
|
86
|
+
const {
|
|
87
|
+
isOpen: isActivated,
|
|
88
|
+
onPopperMount
|
|
89
|
+
} = useTooltipOpen(delay, anchorElement);
|
|
90
|
+
const isOpen = (isActivated || forceOpen) && !!label;
|
|
91
|
+
const isMounted = !!label && (isOpen || closeMode === 'hide');
|
|
92
|
+
const isHidden = !isOpen && closeMode === 'hide';
|
|
93
|
+
const wrappedChildren = useInjectTooltipRef({
|
|
94
|
+
children,
|
|
95
|
+
setAnchorElement,
|
|
96
|
+
isMounted,
|
|
97
|
+
id,
|
|
98
|
+
label,
|
|
99
|
+
ariaLinkMode: ariaLinkMode
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
// Update on open
|
|
103
|
+
React__default.useEffect(() => {
|
|
104
|
+
if (isOpen || popperElement) update?.();
|
|
105
|
+
}, [isOpen, update, popperElement]);
|
|
106
|
+
const labelLines = label ? label.split('\n') : [];
|
|
107
|
+
const tooltipRef = useMergeRefs(ref, setPopperElement, onPopperMount);
|
|
108
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
109
|
+
children: [/*#__PURE__*/jsx(TooltipContextProvider, {
|
|
110
|
+
children: wrappedChildren
|
|
111
|
+
}), isMounted && /*#__PURE__*/jsx(Portal, {
|
|
112
|
+
children: /*#__PURE__*/jsxs("div", {
|
|
113
|
+
ref: tooltipRef,
|
|
114
|
+
...forwardedProps,
|
|
115
|
+
id: id,
|
|
116
|
+
role: "tooltip",
|
|
117
|
+
className: classNames(className, handleBasicClasses({
|
|
118
|
+
prefix: CLASSNAME,
|
|
119
|
+
position,
|
|
120
|
+
isInitializing: !styles.popper?.transform
|
|
121
|
+
}), isHidden && VISUALLY_HIDDEN),
|
|
122
|
+
style: {
|
|
123
|
+
...(isHidden ? undefined : styles.popper),
|
|
124
|
+
zIndex
|
|
125
|
+
},
|
|
126
|
+
...attributes.popper,
|
|
127
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
128
|
+
className: `${CLASSNAME}__arrow`
|
|
129
|
+
}), /*#__PURE__*/jsx("div", {
|
|
130
|
+
className: `${CLASSNAME}__inner`,
|
|
131
|
+
children: labelLines.map(line => /*#__PURE__*/jsx("p", {
|
|
132
|
+
children: line
|
|
133
|
+
}, line))
|
|
134
|
+
})]
|
|
135
|
+
})
|
|
136
|
+
})]
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
Tooltip.displayName = COMPONENT_NAME;
|
|
140
|
+
Tooltip.className = CLASSNAME;
|
|
141
|
+
Tooltip.defaultProps = DEFAULT_PROPS;
|
|
142
|
+
|
|
143
|
+
export { Tooltip };
|
|
144
|
+
//# sourceMappingURL=Tooltip-aabcaa4a.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip-aabcaa4a.js","sources":["../../../../../../../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["/* eslint-disable react-hooks/rules-of-hooks */\nimport React, { ReactNode, useState } from 'react';\n\nimport classNames from 'classnames';\n\nimport { DOCUMENT, VISUALLY_HIDDEN } from '@lumx/react/constants';\nimport { GenericProps, HasCloseMode } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { useMergeRefs } from '@lumx/react/utils/react/mergeRefs';\nimport { Placement } from '@lumx/react/components/popover';\nimport { TooltipContextProvider } from '@lumx/react/components/tooltip/context';\nimport { useId } from '@lumx/react/hooks/useId';\nimport { usePopper } from '@lumx/react/hooks/usePopper';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { ARIA_LINK_MODES, TOOLTIP_ZINDEX } from '@lumx/react/components/tooltip/constants';\nimport { Portal } from '@lumx/react/utils';\nimport { useInjectTooltipRef } from './useInjectTooltipRef';\nimport { useTooltipOpen } from './useTooltipOpen';\n\n/** Position of the tooltip relative to the anchor element. */\nexport type TooltipPlacement = Extract<Placement, 'top' | 'right' | 'bottom' | 'left'>;\n\n/**\n * Defines the props of the component.\n */\nexport interface TooltipProps extends GenericProps, HasCloseMode {\n /** Anchor (element on which we activate the tooltip). */\n children: ReactNode;\n /** Delay (in ms) before closing the tooltip. */\n delay?: number;\n /** Whether the tooltip is displayed even without the mouse hovering the anchor. */\n forceOpen?: boolean;\n /** Label text. */\n label?: string | null | false;\n /** Placement of the tooltip relative to the anchor. */\n placement?: TooltipPlacement;\n /** Choose how the tooltip text should link to the anchor */\n ariaLinkMode?: (typeof ARIA_LINK_MODES)[number];\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Tooltip';\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<TooltipProps> = {\n placement: Placement.BOTTOM,\n closeMode: 'unmount',\n ariaLinkMode: 'aria-describedby',\n zIndex: TOOLTIP_ZINDEX,\n};\n\n/**\n * Arrow size (in pixel).\n */\nconst ARROW_SIZE = 8;\n\n/**\n * Tooltip component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Tooltip = forwardRef<TooltipProps, HTMLDivElement>((props, ref) => {\n const {\n label,\n children,\n className,\n delay,\n placement = DEFAULT_PROPS.placement,\n forceOpen,\n closeMode = DEFAULT_PROPS.closeMode,\n ariaLinkMode = DEFAULT_PROPS.ariaLinkMode,\n zIndex = DEFAULT_PROPS.zIndex,\n ...forwardedProps\n } = props;\n // Disable in SSR.\n if (!DOCUMENT) {\n return <>{children}</>;\n }\n\n const id = useId();\n\n const [popperElement, setPopperElement] = useState<null | HTMLElement>(null);\n const [anchorElement, setAnchorElement] = useState<null | HTMLElement>(null);\n const { styles, attributes, update } = usePopper(anchorElement, popperElement, {\n placement,\n modifiers: [\n {\n name: 'offset',\n options: { offset: [0, ARROW_SIZE] },\n },\n ],\n });\n\n const position = attributes?.popper?.['data-popper-placement'] ?? placement;\n const { isOpen: isActivated, onPopperMount } = useTooltipOpen(delay, anchorElement);\n const isOpen = (isActivated || forceOpen) && !!label;\n const isMounted = !!label && (isOpen || closeMode === 'hide');\n const isHidden = !isOpen && closeMode === 'hide';\n const wrappedChildren = useInjectTooltipRef({\n children,\n setAnchorElement,\n isMounted,\n id,\n label,\n ariaLinkMode: ariaLinkMode as any,\n });\n\n // Update on open\n React.useEffect(() => {\n if (isOpen || popperElement) update?.();\n }, [isOpen, update, popperElement]);\n\n const labelLines = label ? label.split('\\n') : [];\n\n const tooltipRef = useMergeRefs(ref, setPopperElement, onPopperMount);\n\n return (\n <>\n <TooltipContextProvider>{wrappedChildren}</TooltipContextProvider>\n {isMounted && (\n <Portal>\n <div\n ref={tooltipRef}\n {...forwardedProps}\n id={id}\n role=\"tooltip\"\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n position,\n isInitializing: !styles.popper?.transform,\n }),\n isHidden && VISUALLY_HIDDEN,\n )}\n style={{ ...(isHidden ? undefined : styles.popper), zIndex }}\n {...attributes.popper}\n >\n <div className={`${CLASSNAME}__arrow`} />\n <div className={`${CLASSNAME}__inner`}>\n {labelLines.map((line) => (\n <p key={line}>{line}</p>\n ))}\n </div>\n </div>\n </Portal>\n )}\n </>\n );\n});\nTooltip.displayName = COMPONENT_NAME;\nTooltip.className = CLASSNAME;\nTooltip.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","placement","Placement","BOTTOM","closeMode","ariaLinkMode","zIndex","TOOLTIP_ZINDEX","ARROW_SIZE","Tooltip","forwardRef","props","ref","label","children","className","delay","forceOpen","forwardedProps","DOCUMENT","_jsx","_Fragment","id","useId","popperElement","setPopperElement","useState","anchorElement","setAnchorElement","styles","attributes","update","usePopper","modifiers","name","options","offset","position","popper","isOpen","isActivated","onPopperMount","useTooltipOpen","isMounted","isHidden","wrappedChildren","useInjectTooltipRef","React","useEffect","labelLines","split","tooltipRef","useMergeRefs","_jsxs","TooltipContextProvider","Portal","role","classNames","handleBasicClasses","prefix","isInitializing","transform","VISUALLY_HIDDEN","style","undefined","map","line","displayName","defaultProps"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants-e5b346fd.js","sources":["../../../../../../../src/components/tooltip/constants.ts"],"sourcesContent":["import { POPOVER_ZINDEX } from '../popover/constants';\n\nexport const ARIA_LINK_MODES = ['aria-describedby', 'aria-labelledby'] as const;\n\n/**\n * Make sure tooltip appear above popovers.\n */\nexport const TOOLTIP_ZINDEX = POPOVER_ZINDEX + 1;\n"],"names":["TOOLTIP_ZINDEX","POPOVER_ZINDEX"],"mappings":";;AAIA;AACA;AACA;AACaA,MAAAA,cAAc,GAAGC,cAAc,GAAG;;;;"}
|
|
@@ -15,5 +15,5 @@ const TooltipContextProvider = ({
|
|
|
15
15
|
});
|
|
16
16
|
const useTooltipContext = () => React__default.useContext(TooltipContext);
|
|
17
17
|
|
|
18
|
-
export { TooltipContextProvider
|
|
19
|
-
//# sourceMappingURL=context-
|
|
18
|
+
export { TooltipContextProvider, useTooltipContext };
|
|
19
|
+
//# sourceMappingURL=context-841c2303.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-841c2303.js","sources":["../../../../../../../src/components/tooltip/context.tsx"],"sourcesContent":["import React from 'react';\n\n/** Empty object */\ntype TooltipContextValue = NonNullable<unknown>;\n\nconst DEFAULT_VALUE = {};\n\n/**\n * Tooltip react context simply used as a marker to know when parent react node have a tooltip\n */\nconst TooltipContext = React.createContext<TooltipContextValue | undefined>(undefined);\n\nexport const TooltipContextProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => (\n <TooltipContext.Provider value={DEFAULT_VALUE}>{children}</TooltipContext.Provider>\n);\n\nexport const useTooltipContext = () => React.useContext(TooltipContext);\n"],"names":["DEFAULT_VALUE","TooltipContext","React","createContext","undefined","TooltipContextProvider","children","_jsx","Provider","value","useTooltipContext","useContext"],"mappings":";;;AAKA,MAAMA,aAAa,GAAG,EAAE,CAAA;;AAExB;AACA;AACA;AACA,MAAMC,cAAc,gBAAGC,cAAK,CAACC,aAAa,CAAkCC,SAAS,CAAC,CAAA;AAE/E,MAAMC,sBAAgE,GAAGA,CAAC;AAAEC,EAAAA,QAAAA;AAAS,CAAC,kBACzFC,GAAA,CAACN,cAAc,CAACO,QAAQ,EAAA;AAACC,EAAAA,KAAK,EAAET,aAAc;AAAAM,EAAAA,QAAA,EAAEA,QAAAA;AAAQ,CAA0B,EACrF;AAEM,MAAMI,iBAAiB,GAAGA,MAAMR,cAAK,CAACS,UAAU,CAACV,cAAc;;;;"}
|