intergalactic 15.70.0 → 15.71.0
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/CHANGELOG.md +34 -17
- package/accordion/lib/cjs/Accordion.js +7 -7
- package/accordion/lib/es6/Accordion.js +7 -7
- package/animation/lib/cjs/Animation.js +11 -11
- package/animation/lib/cjs/Collapse.js +28 -28
- package/animation/lib/cjs/FadeInOut.js +28 -28
- package/animation/lib/cjs/Scale.js +28 -28
- package/animation/lib/cjs/Slide.js +28 -28
- package/animation/lib/cjs/Transform.js +28 -28
- package/animation/lib/es6/Animation.js +11 -11
- package/animation/lib/es6/Collapse.js +28 -28
- package/animation/lib/es6/FadeInOut.js +28 -28
- package/animation/lib/es6/Scale.js +28 -28
- package/animation/lib/es6/Slide.js +28 -28
- package/animation/lib/es6/Transform.js +28 -28
- package/badge/lib/cjs/Badge.js +6 -6
- package/badge/lib/es6/Badge.js +6 -6
- package/base-trigger/lib/cjs/BaseTrigger.js +18 -18
- package/base-trigger/lib/cjs/ButtonTrigger.js +3 -3
- package/base-trigger/lib/cjs/FilterTrigger.js +7 -7
- package/base-trigger/lib/cjs/LinkTrigger.js +12 -12
- package/base-trigger/lib/es6/BaseTrigger.js +18 -18
- package/base-trigger/lib/es6/ButtonTrigger.js +3 -3
- package/base-trigger/lib/es6/FilterTrigger.js +7 -7
- package/base-trigger/lib/es6/LinkTrigger.js +12 -12
- package/breadcrumbs/lib/cjs/Breadcrumbs.js +6 -6
- package/breadcrumbs/lib/es6/Breadcrumbs.js +6 -6
- package/button/lib/cjs/Button.js +26 -26
- package/button/lib/es6/Button.js +26 -26
- package/card/lib/cjs/Card.js +8 -8
- package/card/lib/es6/Card.js +8 -8
- package/carousel/Carousel.types.d.ts +1 -0
- package/carousel/lib/cjs/Carousel.js +87 -44
- package/carousel/lib/cjs/Carousel.js.map +1 -1
- package/carousel/lib/cjs/Carousel.types.js.map +1 -1
- package/carousel/lib/cjs/style/carousel.shadow.css +5 -0
- package/carousel/lib/es6/Carousel.js +87 -44
- package/carousel/lib/es6/Carousel.js.map +1 -1
- package/carousel/lib/es6/Carousel.types.js.map +1 -1
- package/carousel/lib/es6/style/carousel.shadow.css +5 -0
- package/carousel/lib/types/Carousel.types.d.ts +1 -0
- package/checkbox/lib/cjs/Checkbox.js +18 -18
- package/checkbox/lib/es6/Checkbox.js +18 -18
- package/color-picker/lib/cjs/ColorPicker.js +23 -23
- package/color-picker/lib/cjs/PaletteManager.js +23 -23
- package/color-picker/lib/cjs/components/InputColor.js +23 -23
- package/color-picker/lib/es6/ColorPicker.js +23 -23
- package/color-picker/lib/es6/PaletteManager.js +23 -23
- package/color-picker/lib/es6/components/InputColor.js +23 -23
- package/components.json +73 -73
- package/counter/lib/cjs/Counter.js +10 -10
- package/counter/lib/es6/Counter.js +10 -10
- package/d3-chart/Area.d.ts +1 -1
- package/d3-chart/Bar.d.ts +1 -1
- package/d3-chart/Bubble.d.ts +1 -1
- package/d3-chart/Donut.d.ts +1 -1
- package/d3-chart/HorizontalBar.d.ts +1 -1
- package/d3-chart/Line.d.ts +1 -1
- package/d3-chart/Plot.d.ts +1 -1
- package/d3-chart/Radar.d.ts +1 -1
- package/d3-chart/RadialTree.d.ts +1 -1
- package/d3-chart/ScatterPlot.d.ts +1 -1
- package/d3-chart/StackBar.d.ts +1 -1
- package/d3-chart/StackedArea.d.ts +1 -1
- package/d3-chart/Venn.d.ts +1 -1
- package/d3-chart/component/Chart/AbstractChart.type.d.ts +1 -1
- package/d3-chart/component/ChartLegend/BaseLegend.type.d.ts +1 -1
- package/d3-chart/component/ChartLegend/LegendItem/LegendItem.type.d.ts +2 -2
- package/d3-chart/index.d.ts +5 -0
- package/d3-chart/lib/cjs/Area.js +11 -11
- package/d3-chart/lib/cjs/Axis.js +14 -14
- package/d3-chart/lib/cjs/Bar.js +10 -10
- package/d3-chart/lib/cjs/Bubble.js +12 -12
- package/d3-chart/lib/cjs/Donut.js +9 -9
- package/d3-chart/lib/cjs/Dots.js +8 -8
- package/d3-chart/lib/cjs/HorizontalBar.js +10 -10
- package/d3-chart/lib/cjs/Hover.js +3 -3
- package/d3-chart/lib/cjs/Line.js +9 -9
- package/d3-chart/lib/cjs/Plot.js +3 -3
- package/d3-chart/lib/cjs/Radar.js +19 -19
- package/d3-chart/lib/cjs/RadialTree.js +11 -11
- package/d3-chart/lib/cjs/RadialTree.js.map +1 -1
- package/d3-chart/lib/cjs/ReferenceLine.js +9 -9
- package/d3-chart/lib/cjs/ScatterPlot.js +9 -9
- package/d3-chart/lib/cjs/Tooltip.js +9 -9
- package/d3-chart/lib/cjs/Venn.js +9 -9
- package/d3-chart/lib/cjs/a11y/PlotA11yModule.js +2 -2
- package/d3-chart/lib/cjs/a11y/PlotA11yView.js +2 -2
- package/d3-chart/lib/cjs/component/Chart/AbstractChart.type.js.map +1 -1
- package/d3-chart/lib/cjs/component/Chart/BubbleChart.js +15 -50
- package/d3-chart/lib/cjs/component/Chart/BubbleChart.js.map +1 -1
- package/d3-chart/lib/cjs/component/ChartLegend/BaseLegend.type.js.map +1 -1
- package/d3-chart/lib/cjs/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
- package/d3-chart/lib/cjs/component/ChartLegend/LegendItem/LegendItem.js +17 -17
- package/d3-chart/lib/cjs/component/ChartLegend/LegendItem/LegendItem.type.js.map +1 -1
- package/d3-chart/lib/cjs/component/ChartLegend/LegendTable/LegendTable.js +6 -6
- package/d3-chart/lib/cjs/index.js +6 -0
- package/d3-chart/lib/cjs/index.js.map +1 -1
- package/d3-chart/lib/cjs/types/Area.d.js.map +1 -1
- package/d3-chart/lib/cjs/types/Bar.d.js.map +1 -1
- package/d3-chart/lib/cjs/types/Bubble.d.js.map +1 -1
- package/d3-chart/lib/cjs/types/Donut.d.js.map +1 -1
- package/d3-chart/lib/cjs/types/HorizontalBar.d.js.map +1 -1
- package/d3-chart/lib/cjs/types/Line.d.js.map +1 -1
- package/d3-chart/lib/cjs/types/Plot.d.js.map +1 -1
- package/d3-chart/lib/cjs/types/Radar.d.js.map +1 -1
- package/d3-chart/lib/cjs/types/ScatterPlot.d.js.map +1 -1
- package/d3-chart/lib/cjs/types/StackBar.d.js.map +1 -1
- package/d3-chart/lib/cjs/types/StackedArea.d.js.map +1 -1
- package/d3-chart/lib/cjs/types/Venn.d.js.map +1 -1
- package/d3-chart/lib/cjs/types/index.d.js.map +1 -1
- package/d3-chart/lib/cjs/utils.js +36 -1
- package/d3-chart/lib/cjs/utils.js.map +1 -1
- package/d3-chart/lib/es6/Area.js +11 -11
- package/d3-chart/lib/es6/Axis.js +14 -14
- package/d3-chart/lib/es6/Bar.js +10 -10
- package/d3-chart/lib/es6/Bubble.js +12 -12
- package/d3-chart/lib/es6/Donut.js +9 -9
- package/d3-chart/lib/es6/Dots.js +8 -8
- package/d3-chart/lib/es6/HorizontalBar.js +10 -10
- package/d3-chart/lib/es6/Hover.js +3 -3
- package/d3-chart/lib/es6/Line.js +9 -9
- package/d3-chart/lib/es6/Plot.js +3 -3
- package/d3-chart/lib/es6/Radar.js +19 -19
- package/d3-chart/lib/es6/RadialTree.js +11 -11
- package/d3-chart/lib/es6/RadialTree.js.map +1 -1
- package/d3-chart/lib/es6/ReferenceLine.js +9 -9
- package/d3-chart/lib/es6/ScatterPlot.js +9 -9
- package/d3-chart/lib/es6/Tooltip.js +9 -9
- package/d3-chart/lib/es6/Venn.js +9 -9
- package/d3-chart/lib/es6/a11y/PlotA11yModule.js +2 -2
- package/d3-chart/lib/es6/a11y/PlotA11yView.js +2 -2
- package/d3-chart/lib/es6/component/Chart/AbstractChart.type.js.map +1 -1
- package/d3-chart/lib/es6/component/Chart/BubbleChart.js +16 -51
- package/d3-chart/lib/es6/component/Chart/BubbleChart.js.map +1 -1
- package/d3-chart/lib/es6/component/ChartLegend/BaseLegend.type.js.map +1 -1
- package/d3-chart/lib/es6/component/ChartLegend/LegendFlex/LegendFlex.js +4 -4
- package/d3-chart/lib/es6/component/ChartLegend/LegendItem/LegendItem.js +17 -17
- package/d3-chart/lib/es6/component/ChartLegend/LegendItem/LegendItem.type.js.map +1 -1
- package/d3-chart/lib/es6/component/ChartLegend/LegendTable/LegendTable.js +6 -6
- package/d3-chart/lib/es6/index.js +1 -1
- package/d3-chart/lib/es6/index.js.map +1 -1
- package/d3-chart/lib/es6/types/Area.d.js.map +1 -1
- package/d3-chart/lib/es6/types/Bar.d.js.map +1 -1
- package/d3-chart/lib/es6/types/Bubble.d.js.map +1 -1
- package/d3-chart/lib/es6/types/Donut.d.js.map +1 -1
- package/d3-chart/lib/es6/types/HorizontalBar.d.js.map +1 -1
- package/d3-chart/lib/es6/types/Line.d.js.map +1 -1
- package/d3-chart/lib/es6/types/Plot.d.js.map +1 -1
- package/d3-chart/lib/es6/types/Radar.d.js.map +1 -1
- package/d3-chart/lib/es6/types/ScatterPlot.d.js.map +1 -1
- package/d3-chart/lib/es6/types/StackBar.d.js.map +1 -1
- package/d3-chart/lib/es6/types/StackedArea.d.js.map +1 -1
- package/d3-chart/lib/es6/types/Venn.d.js.map +1 -1
- package/d3-chart/lib/es6/types/index.d.js.map +1 -1
- package/d3-chart/lib/es6/utils.js +34 -0
- package/d3-chart/lib/es6/utils.js.map +1 -1
- package/d3-chart/lib/types/Area.d.ts +1 -1
- package/d3-chart/lib/types/Bar.d.ts +1 -1
- package/d3-chart/lib/types/Bubble.d.ts +1 -1
- package/d3-chart/lib/types/Donut.d.ts +1 -1
- package/d3-chart/lib/types/HorizontalBar.d.ts +1 -1
- package/d3-chart/lib/types/Line.d.ts +1 -1
- package/d3-chart/lib/types/Plot.d.ts +1 -1
- package/d3-chart/lib/types/Radar.d.ts +1 -1
- package/d3-chart/lib/types/RadialTree.d.ts +1 -1
- package/d3-chart/lib/types/ScatterPlot.d.ts +1 -1
- package/d3-chart/lib/types/StackBar.d.ts +1 -1
- package/d3-chart/lib/types/StackedArea.d.ts +1 -1
- package/d3-chart/lib/types/Venn.d.ts +1 -1
- package/d3-chart/lib/types/component/Chart/AbstractChart.type.d.ts +1 -1
- package/d3-chart/lib/types/component/ChartLegend/BaseLegend.type.d.ts +1 -1
- package/d3-chart/lib/types/component/ChartLegend/LegendItem/LegendItem.type.d.ts +2 -2
- package/d3-chart/lib/types/index.d.ts +5 -0
- package/d3-chart/lib/types/utils.d.ts +6 -0
- package/d3-chart/utils.d.ts +6 -0
- package/data-table/lib/cjs/Body.js +4 -4
- package/data-table/lib/cjs/DataTable.js +41 -41
- package/data-table/lib/cjs/Head.js +4 -4
- package/data-table/lib/es6/Body.js +4 -4
- package/data-table/lib/es6/DataTable.js +41 -41
- package/data-table/lib/es6/Head.js +4 -4
- package/date-picker/lib/cjs/components/Calendar.js +21 -21
- package/date-picker/lib/cjs/components/DateRangeComparatorAbstract.js +26 -26
- package/date-picker/lib/cjs/components/InputTrigger.js +26 -26
- package/date-picker/lib/cjs/components/PickerAbstract.js +26 -26
- package/date-picker/lib/cjs/components/RangePickerAbstract.js +26 -26
- package/date-picker/lib/es6/components/Calendar.js +21 -21
- package/date-picker/lib/es6/components/DateRangeComparatorAbstract.js +26 -26
- package/date-picker/lib/es6/components/InputTrigger.js +26 -26
- package/date-picker/lib/es6/components/PickerAbstract.js +26 -26
- package/date-picker/lib/es6/components/RangePickerAbstract.js +26 -26
- package/divider/lib/cjs/Divider.js +9 -9
- package/divider/lib/es6/Divider.js +9 -9
- package/dot/lib/cjs/Dot.js +10 -10
- package/dot/lib/es6/Dot.js +10 -10
- package/drag-and-drop/lib/cjs/DragAndDrop.js +12 -12
- package/drag-and-drop/lib/es6/DragAndDrop.js +12 -12
- package/dropdown/lib/cjs/Dropdown.js +2 -2
- package/dropdown/lib/es6/Dropdown.js +2 -2
- package/dropdown-menu/lib/cjs/DropdownMenu.js +23 -15
- package/dropdown-menu/lib/cjs/DropdownMenu.js.map +1 -1
- package/dropdown-menu/lib/cjs/styleScrollArea.js +6 -6
- package/dropdown-menu/lib/es6/DropdownMenu.js +23 -15
- package/dropdown-menu/lib/es6/DropdownMenu.js.map +1 -1
- package/dropdown-menu/lib/es6/styleScrollArea.js +6 -6
- package/ellipsis/lib/cjs/Ellipsis.js +10 -10
- package/ellipsis/lib/es6/Ellipsis.js +10 -10
- package/errors/lib/cjs/Error.js +9 -9
- package/errors/lib/es6/Error.js +9 -9
- package/feature-popover/lib/cjs/FeaturePopover.js +10 -10
- package/feature-popover/lib/es6/FeaturePopover.js +10 -10
- package/feedback-form/lib/cjs/FeedbackForm.js +7 -7
- package/feedback-form/lib/es6/FeedbackForm.js +7 -7
- package/flags/lib/cjs/Flags.js +3 -3
- package/flags/lib/es6/Flags.js +3 -3
- package/flags/lib/sprites/sprite@1x.css +256 -256
- package/flags/lib/sprites/sprite@2x.css +257 -257
- package/flex-box/lib/cjs/Box/useBox.js +3 -3
- package/flex-box/lib/cjs/Flex/useFlex.js +3 -3
- package/flex-box/lib/cjs/invalid-state-box/InvalidStateBox.js +2 -2
- package/flex-box/lib/es6/Box/useBox.js +3 -3
- package/flex-box/lib/es6/Flex/useFlex.js +3 -3
- package/flex-box/lib/es6/invalid-state-box/InvalidStateBox.js +2 -2
- package/format-text/lib/cjs/FormatText.js +5 -5
- package/format-text/lib/es6/FormatText.js +5 -5
- package/fullscreen-modal/lib/cjs/FullscreenModal.js +13 -13
- package/fullscreen-modal/lib/es6/FullscreenModal.js +13 -13
- package/grid/lib/cjs/Grid.js +114 -114
- package/grid/lib/es6/Grid.js +114 -114
- package/icon/ShareAlt/l/index.d.ts +6 -0
- package/icon/ShareAlt/l/index.js +38 -0
- package/icon/ShareAlt/l/index.mjs +26 -0
- package/icon/ShareAlt/m/index.d.ts +6 -0
- package/icon/ShareAlt/m/index.js +38 -0
- package/icon/ShareAlt/m/index.mjs +26 -0
- package/icon/color/Confluence/l/index.js +4 -4
- package/icon/color/Confluence/l/index.mjs +4 -4
- package/icon/color/Confluence/m/index.js +4 -4
- package/icon/color/Confluence/m/index.mjs +4 -4
- package/icon/color/MicrosoftOffice/l/index.js +10 -10
- package/icon/color/MicrosoftOffice/l/index.mjs +10 -10
- package/icon/color/MicrosoftOffice/m/index.js +10 -10
- package/icon/color/MicrosoftOffice/m/index.mjs +10 -10
- package/icon/lib/cjs/Icon.js +5 -5
- package/icon/lib/es6/Icon.js +5 -5
- package/icon/pay/Discover/l/index.js +1 -1
- package/icon/pay/Discover/l/index.mjs +1 -1
- package/icon/pay/Discover/m/index.js +1 -1
- package/icon/pay/Discover/m/index.mjs +1 -1
- package/icon/pay/JCB/l/index.js +10 -10
- package/icon/pay/JCB/l/index.mjs +10 -10
- package/icon/pay/JCB/m/index.js +10 -10
- package/icon/pay/JCB/m/index.mjs +10 -10
- package/icon/pay/Visa/l/index.js +2 -2
- package/icon/pay/Visa/l/index.mjs +2 -2
- package/icon/pay/Visa/m/index.js +2 -2
- package/icon/pay/Visa/m/index.mjs +2 -2
- package/illustration/lib/cjs/index.js +1 -1
- package/illustration/lib/es6/index.js +1 -1
- package/inline-edit/lib/cjs/InlineEdit.js +4 -4
- package/inline-edit/lib/es6/InlineEdit.js +4 -4
- package/inline-input/lib/cjs/InlineInput.js +18 -18
- package/inline-input/lib/es6/InlineInput.js +18 -18
- package/input/lib/cjs/Input.js +17 -17
- package/input/lib/es6/Input.js +17 -17
- package/input-mask/lib/cjs/InputMask.js +6 -6
- package/input-mask/lib/es6/InputMask.js +6 -6
- package/input-number/lib/cjs/InputNumber.js +9 -9
- package/input-number/lib/es6/InputNumber.js +9 -9
- package/input-tags/lib/cjs/InputTags.js +12 -12
- package/input-tags/lib/es6/InputTags.js +12 -12
- package/link/lib/cjs/Link.js +12 -12
- package/link/lib/es6/Link.js +12 -12
- package/mini-chart/lib/cjs/component/score/Donut.js +9 -9
- package/mini-chart/lib/cjs/component/score/Line.js +17 -17
- package/mini-chart/lib/cjs/component/trend/Bar.js +7 -7
- package/mini-chart/lib/cjs/component/trend/Line.js +7 -7
- package/mini-chart/lib/es6/component/score/Donut.js +9 -9
- package/mini-chart/lib/es6/component/score/Line.js +17 -17
- package/mini-chart/lib/es6/component/trend/Bar.js +7 -7
- package/mini-chart/lib/es6/component/trend/Line.js +7 -7
- package/modal/lib/cjs/Modal.js +9 -9
- package/modal/lib/es6/Modal.js +9 -9
- package/notice/lib/cjs/Notice.js +13 -13
- package/notice/lib/es6/Notice.js +13 -13
- package/notice-bubble/lib/cjs/NoticeBubble.js +14 -12
- package/notice-bubble/lib/cjs/NoticeBubble.js.map +1 -1
- package/notice-bubble/lib/es6/NoticeBubble.js +14 -12
- package/notice-bubble/lib/es6/NoticeBubble.js.map +1 -1
- package/notice-global/lib/cjs/NoticeGlobal.js +11 -11
- package/notice-global/lib/es6/NoticeGlobal.js +11 -11
- package/package.json +3 -3
- package/pagination/lib/cjs/Pagination.js +10 -10
- package/pagination/lib/es6/Pagination.js +10 -10
- package/pills/lib/cjs/Pills.js +13 -13
- package/pills/lib/es6/Pills.js +13 -13
- package/popper/lib/cjs/Popper.js +6 -6
- package/popper/lib/es6/Popper.js +6 -6
- package/product-head/lib/cjs/Info.js +4 -4
- package/product-head/lib/cjs/ProductHead.js +5 -5
- package/product-head/lib/cjs/Title.js +4 -4
- package/product-head/lib/es6/Info.js +4 -4
- package/product-head/lib/es6/ProductHead.js +5 -5
- package/product-head/lib/es6/Title.js +4 -4
- package/progress-bar/lib/cjs/ProgressBar.js +15 -15
- package/progress-bar/lib/es6/ProgressBar.js +15 -15
- package/radio/lib/cjs/Radio.js +16 -16
- package/radio/lib/es6/Radio.js +16 -16
- package/scroll-area/lib/cjs/ScrollArea.js +9 -9
- package/scroll-area/lib/cjs/ScrollBar.js +5 -5
- package/scroll-area/lib/es6/ScrollArea.js +9 -9
- package/scroll-area/lib/es6/ScrollBar.js +5 -5
- package/select/lib/cjs/InputSearch.js +6 -6
- package/select/lib/cjs/Select.js +9 -9
- package/select/lib/es6/InputSearch.js +6 -6
- package/select/lib/es6/Select.js +9 -9
- package/side-panel/lib/cjs/SidePanel.js +15 -15
- package/side-panel/lib/es6/SidePanel.js +15 -15
- package/skeleton/lib/cjs/Charts/Area.js +9 -9
- package/skeleton/lib/cjs/Charts/Bar.js +9 -9
- package/skeleton/lib/cjs/Charts/Bubble.js +9 -9
- package/skeleton/lib/cjs/Charts/Donut.js +9 -9
- package/skeleton/lib/cjs/Charts/Histogram.js +9 -9
- package/skeleton/lib/cjs/Charts/Line.js +9 -9
- package/skeleton/lib/cjs/Charts/RadialTree.js +9 -9
- package/skeleton/lib/cjs/Charts/ScatterPlot.js +9 -9
- package/skeleton/lib/cjs/Charts/Venn.js +9 -9
- package/skeleton/lib/cjs/Skeleton.js +8 -8
- package/skeleton/lib/es6/Charts/Area.js +9 -9
- package/skeleton/lib/es6/Charts/Bar.js +9 -9
- package/skeleton/lib/es6/Charts/Bubble.js +9 -9
- package/skeleton/lib/es6/Charts/Donut.js +9 -9
- package/skeleton/lib/es6/Charts/Histogram.js +9 -9
- package/skeleton/lib/es6/Charts/Line.js +9 -9
- package/skeleton/lib/es6/Charts/RadialTree.js +9 -9
- package/skeleton/lib/es6/Charts/ScatterPlot.js +9 -9
- package/skeleton/lib/es6/Charts/Venn.js +9 -9
- package/skeleton/lib/es6/Skeleton.js +8 -8
- package/slider/lib/cjs/Slider.js +7 -7
- package/slider/lib/es6/Slider.js +7 -7
- package/spin/lib/cjs/Spin.js +13 -13
- package/spin/lib/es6/Spin.js +13 -13
- package/spin-container/lib/cjs/SpinContainer.js +8 -8
- package/spin-container/lib/es6/SpinContainer.js +8 -8
- package/sticky/lib/cjs/Sticky.js +2 -2
- package/sticky/lib/es6/Sticky.js +2 -2
- package/switch/lib/cjs/Switch.js +21 -21
- package/switch/lib/es6/Switch.js +21 -21
- package/tab-line/lib/cjs/TabLine.js +13 -13
- package/tab-line/lib/es6/TabLine.js +13 -13
- package/tab-panel/lib/cjs/TabPanel.js +8 -8
- package/tab-panel/lib/es6/TabPanel.js +8 -8
- package/tag/lib/cjs/Tag.js +20 -20
- package/tag/lib/es6/Tag.js +20 -20
- package/textarea/lib/cjs/Textarea.js +8 -8
- package/textarea/lib/es6/Textarea.js +8 -8
- package/time-picker/lib/cjs/TimePicker.js +12 -12
- package/time-picker/lib/es6/TimePicker.js +12 -12
- package/tooltip/index.d.ts +53 -0
- package/tooltip/lib/cjs/Tooltip.js +165 -36
- package/tooltip/lib/cjs/Tooltip.js.map +1 -1
- package/tooltip/lib/cjs/index.d.js.map +1 -1
- package/tooltip/lib/cjs/index.js +14 -2
- package/tooltip/lib/cjs/index.js.map +1 -1
- package/tooltip/lib/cjs/style/tooltip.shadow.css +9 -0
- package/tooltip/lib/es6/Tooltip.js +162 -36
- package/tooltip/lib/es6/Tooltip.js.map +1 -1
- package/tooltip/lib/es6/index.d.js.map +1 -1
- package/tooltip/lib/es6/index.js +1 -1
- package/tooltip/lib/es6/index.js.map +1 -1
- package/tooltip/lib/es6/style/tooltip.shadow.css +9 -0
- package/tooltip/lib/types/index.d.ts +53 -0
- package/typography/lib/cjs/Blockquote.js +4 -4
- package/typography/lib/cjs/Hint.js +7 -7
- package/typography/lib/cjs/List.js +5 -5
- package/typography/lib/cjs/Text.js +34 -34
- package/typography/lib/es6/Blockquote.js +4 -4
- package/typography/lib/es6/Hint.js +7 -7
- package/typography/lib/es6/List.js +5 -5
- package/typography/lib/es6/Text.js +34 -34
- package/utils/lib/components/invalid-state-pattern/InvalidStatePattern.js +2 -2
- package/utils/lib/components/invalid-state-pattern/InvalidStatePattern.mjs +2 -2
- package/utils/lib/injectStyle.js +1 -1
- package/utils/lib/injectStyle.mjs +1 -1
- package/utils/lib/uniqueID.js +6 -5
- package/utils/lib/uniqueID.js.map +1 -1
- package/utils/lib/uniqueID.mjs +6 -5
- package/utils/lib/uniqueID.mjs.map +1 -1
- package/utils/lib/use/useFocusLock.js +1 -1
- package/utils/lib/use/useFocusLock.js.map +1 -1
- package/utils/lib/use/useFocusLock.mjs +1 -1
- package/utils/lib/use/useFocusLock.mjs.map +1 -1
- package/widget-empty/lib/cjs/WidgetEmpty.js +5 -5
- package/widget-empty/lib/es6/WidgetEmpty.js +5 -5
- package/wizard/lib/cjs/Wizard.js +11 -11
- package/wizard/lib/es6/Wizard.js +11 -11
@@ -6,10 +6,10 @@ import { createBaseComponent, Root, sstyled } from 'intergalactic/core';
|
|
6
6
|
import isNode from 'intergalactic/utils/lib/isNode';
|
7
7
|
import { Box } from 'intergalactic/flex-box';
|
8
8
|
/*__reshadow-styles__:"./style/blockquote.shadow.css"*/
|
9
|
-
var styles = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
10
|
-
"__SBlockquote": "
|
11
|
-
"__SDoubleQuotation": "
|
12
|
-
"__SAuthor": "
|
9
|
+
var styles = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SBlockquote_1rfdk_gg_{position:relative;display:flex;font-style:italic;font-size:var(--intergalactic-fs-400, 20px);line-height:var(--intergalactic-lh-400, 120%);color:var(--intergalactic-text-primary, #191b23)}.___SDoubleQuotation_1rfdk_gg_{position:relative;margin-right:var(--intergalactic-spacing-5x, 20px);font-family:\"Times New Roman\",serif;font-style:normal;font-size:68px;line-height:52px;color:var(--intergalactic-text-large-secondary, #a9abb6)}.___SAuthor_1rfdk_gg_{display:block;margin-top:var(--intergalactic-spacing-4x, 16px);color:var(--intergalactic-text-secondary, #6c6e79);font-style:normal;font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}" /*__inner_css_end__*/, "1rfdk_gg_") /*__reshadow_css_end__*/, {
|
10
|
+
"__SBlockquote": "___SBlockquote_1rfdk_gg_",
|
11
|
+
"__SDoubleQuotation": "___SDoubleQuotation_1rfdk_gg_",
|
12
|
+
"__SAuthor": "___SAuthor_1rfdk_gg_"
|
13
13
|
});
|
14
14
|
function Blockquote(props, ref) {
|
15
15
|
var _ref = arguments[0],
|
@@ -15,13 +15,13 @@ import keyboardFocusEnhance from 'intergalactic/utils/lib/enhances/keyboardFocus
|
|
15
15
|
import addonTextChildren from 'intergalactic/utils/lib/addonTextChildren';
|
16
16
|
import Text from './Text';
|
17
17
|
/*__reshadow-styles__:"./style/hint.shadow.css"*/
|
18
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
19
|
-
"__SHint": "
|
20
|
-
"_keyboardFocused": "
|
21
|
-
"_disabled": "
|
22
|
-
"__SAddon": "
|
23
|
-
"__SText": "
|
24
|
-
"_active": "
|
18
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SHint_1oqh3_gg_{display:inline-block;transition:all .15s ease-in-out;-webkit-text-decoration:none;text-decoration:none;outline:0;cursor:pointer;color:var(--intergalactic-text-secondary, #6c6e79)}.___SHint_1oqh3_gg_.__active_1oqh3_gg_,.___SHint_1oqh3_gg_:active{color:var(--intergalactic-text-hint-hover-active, #484a54)}@media (hover:hover){.___SHint_1oqh3_gg_:hover{color:var(--intergalactic-text-hint-hover-active, #484a54)}}.___SHint_1oqh3_gg_.__keyboardFocused_1oqh3_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___SHint_1oqh3_gg_.__disabled_1oqh3_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SAddon_1oqh3_gg_{vertical-align:middle;display:inline-flex}.___SHint_1oqh3_gg_ .___SAddon_1oqh3_gg_:not(:only-child):first-child{margin-right:var(--intergalactic-spacing-1x, 4px)}.___SHint_1oqh3_gg_ .___SAddon_1oqh3_gg_:not(:only-child):last-child{margin-left:var(--intergalactic-spacing-1x, 4px)}.___SText_1oqh3_gg_{border-bottom-width:1px;border-bottom-style:dashed;border-color:currentColor}@media (prefers-reduced-motion){.___SHint_1oqh3_gg_{transition:none}}" /*__inner_css_end__*/, "1oqh3_gg_") /*__reshadow_css_end__*/, {
|
19
|
+
"__SHint": "___SHint_1oqh3_gg_",
|
20
|
+
"_keyboardFocused": "__keyboardFocused_1oqh3_gg_",
|
21
|
+
"_disabled": "__disabled_1oqh3_gg_",
|
22
|
+
"__SAddon": "___SAddon_1oqh3_gg_",
|
23
|
+
"__SText": "___SText_1oqh3_gg_",
|
24
|
+
"_active": "__active_1oqh3_gg_"
|
25
25
|
});
|
26
26
|
var RootHint = /*#__PURE__*/function (_Component) {
|
27
27
|
_inherits(RootHint, _Component);
|
@@ -15,11 +15,11 @@ import isNode from 'intergalactic/utils/lib/isNode';
|
|
15
15
|
import { isAdvanceMode } from 'intergalactic/utils/lib/findComponent';
|
16
16
|
import Text from './Text';
|
17
17
|
/*__reshadow-styles__:"./style/list.shadow.css"*/
|
18
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
19
|
-
"__SList": "
|
20
|
-
"__SContent": "
|
21
|
-
"__SItem": "
|
22
|
-
"__SMarker": "
|
18
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SList_1lvn8_gg_{padding:0;margin:0;list-style-type:none}.___SContent_1lvn8_gg_{overflow:inherit;text-overflow:inherit}.___SItem_1lvn8_gg_+.___SItem_1lvn8_gg_,.___SList_1lvn8_gg_ .___SList_1lvn8_gg_{margin-top:var(--intergalactic-spacing-2x, 8px)}.___SItem_1lvn8_gg_{display:flex}.___SMarker_1lvn8_gg_{margin-right:var(--intergalactic-spacing-2x, 8px);color:var(--intergalactic-text-secondary, #6c6e79);line-height:normal}" /*__inner_css_end__*/, "1lvn8_gg_") /*__reshadow_css_end__*/, {
|
19
|
+
"__SList": "___SList_1lvn8_gg_",
|
20
|
+
"__SContent": "___SContent_1lvn8_gg_",
|
21
|
+
"__SItem": "___SItem_1lvn8_gg_",
|
22
|
+
"__SMarker": "___SMarker_1lvn8_gg_"
|
23
23
|
});
|
24
24
|
var ListRoot = /*#__PURE__*/function (_Component) {
|
25
25
|
_inherits(ListRoot, _Component);
|
@@ -5,40 +5,40 @@ import React from 'react';
|
|
5
5
|
import { createBaseComponent, Root, sstyled } from 'intergalactic/core';
|
6
6
|
import { Box } from 'intergalactic/flex-box';
|
7
7
|
/*__reshadow-styles__:"./style/text.shadow.css"*/
|
8
|
-
var styles = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
9
|
-
"__SText": "
|
10
|
-
"_size_100": "
|
11
|
-
"_size_200": "
|
12
|
-
"_size_300": "
|
13
|
-
"_size_400": "
|
14
|
-
"_size_500": "
|
15
|
-
"_size_600": "
|
16
|
-
"_size_700": "
|
17
|
-
"_size_800": "
|
18
|
-
"_noWrap": "
|
19
|
-
"_medium": "
|
20
|
-
"_semibold": "
|
21
|
-
"_bold": "
|
22
|
-
"_italic": "
|
23
|
-
"_monospace": "
|
24
|
-
"_uppercase": "
|
25
|
-
"_lowercase": "
|
26
|
-
"_capitalize": "
|
27
|
-
"_decoration": "
|
28
|
-
"--decoration": "--
|
29
|
-
"_color": "
|
30
|
-
"--color": "--
|
31
|
-
"_fontSize": "
|
32
|
-
"--fontSize": "--
|
33
|
-
"_lineHeight": "
|
34
|
-
"--lineHeight": "--
|
35
|
-
"_fontWeight": "
|
36
|
-
"--fontWeight": "--
|
37
|
-
"_textAlign": "
|
38
|
-
"--textAlign": "--
|
39
|
-
"_use_primary": "
|
40
|
-
"_use_secondary": "
|
41
|
-
"_disabled": "
|
8
|
+
var styles = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SText_1t4sr_gg_{padding:0;margin:0}.___SText_1t4sr_gg_._size_100_1t4sr_gg_{font-size:var(--intergalactic-fs-100, 12px);line-height:var(--intergalactic-lh-100, 133%)}.___SText_1t4sr_gg_._size_200_1t4sr_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___SText_1t4sr_gg_._size_300_1t4sr_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___SText_1t4sr_gg_._size_400_1t4sr_gg_{font-size:var(--intergalactic-fs-400, 20px);line-height:var(--intergalactic-lh-400, 120%)}.___SText_1t4sr_gg_._size_500_1t4sr_gg_{font-size:var(--intergalactic-fs-500, 24px);line-height:var(--intergalactic-lh-500, 117%)}.___SText_1t4sr_gg_._size_600_1t4sr_gg_{font-size:var(--intergalactic-fs-600, 32px);line-height:var(--intergalactic-lh-600, 125%)}.___SText_1t4sr_gg_._size_700_1t4sr_gg_{font-size:var(--intergalactic-fs-700, 36px);line-height:var(--intergalactic-lh-700, 110%)}.___SText_1t4sr_gg_._size_800_1t4sr_gg_{font-size:var(--intergalactic-fs-800, 48px);line-height:var(--intergalactic-lh-800, 117%)}.___SText_1t4sr_gg_.__noWrap_1t4sr_gg_{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.___SText_1t4sr_gg_.__medium_1t4sr_gg_{font-weight:var(--intergalactic-medium, 500)}.___SText_1t4sr_gg_.__semibold_1t4sr_gg_{font-weight:var(--intergalactic-semi-bold, 600)}.___SText_1t4sr_gg_.__bold_1t4sr_gg_{font-weight:var(--intergalactic-bold, 700)}.___SText_1t4sr_gg_.__italic_1t4sr_gg_{font-style:italic}.___SText_1t4sr_gg_.__monospace_1t4sr_gg_{font-family:Consolas,\"Roboto Mono\",Menlo,Courier,monospace}.___SText_1t4sr_gg_.__uppercase_1t4sr_gg_{text-transform:uppercase}.___SText_1t4sr_gg_.__lowercase_1t4sr_gg_{text-transform:lowercase}.___SText_1t4sr_gg_.__capitalize_1t4sr_gg_{text-transform:capitalize}.___SText_1t4sr_gg_.__decoration_1t4sr_gg_{-webkit-text-decoration:var(--decoration_1t4sr);text-decoration:var(--decoration_1t4sr)}.___SText_1t4sr_gg_.__color_1t4sr_gg_{color:var(--color_1t4sr)}.___SText_1t4sr_gg_.__fontSize_1t4sr_gg_{font-size:var(--fontSize_1t4sr)}.___SText_1t4sr_gg_.__lineHeight_1t4sr_gg_{line-height:var(--lineHeight_1t4sr)}.___SText_1t4sr_gg_.__fontWeight_1t4sr_gg_{font-weight:var(--fontWeight_1t4sr)}.___SText_1t4sr_gg_.__textAlign_1t4sr_gg_{text-align:var(--textAlign_1t4sr)}.___SText_1t4sr_gg_._use_primary_1t4sr_gg_{color:var(--intergalactic-text-primary, #191b23)}.___SText_1t4sr_gg_._use_secondary_1t4sr_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}.___SText_1t4sr_gg_.__disabled_1t4sr_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3)}" /*__inner_css_end__*/, "1t4sr_gg_") /*__reshadow_css_end__*/, {
|
9
|
+
"__SText": "___SText_1t4sr_gg_",
|
10
|
+
"_size_100": "_size_100_1t4sr_gg_",
|
11
|
+
"_size_200": "_size_200_1t4sr_gg_",
|
12
|
+
"_size_300": "_size_300_1t4sr_gg_",
|
13
|
+
"_size_400": "_size_400_1t4sr_gg_",
|
14
|
+
"_size_500": "_size_500_1t4sr_gg_",
|
15
|
+
"_size_600": "_size_600_1t4sr_gg_",
|
16
|
+
"_size_700": "_size_700_1t4sr_gg_",
|
17
|
+
"_size_800": "_size_800_1t4sr_gg_",
|
18
|
+
"_noWrap": "__noWrap_1t4sr_gg_",
|
19
|
+
"_medium": "__medium_1t4sr_gg_",
|
20
|
+
"_semibold": "__semibold_1t4sr_gg_",
|
21
|
+
"_bold": "__bold_1t4sr_gg_",
|
22
|
+
"_italic": "__italic_1t4sr_gg_",
|
23
|
+
"_monospace": "__monospace_1t4sr_gg_",
|
24
|
+
"_uppercase": "__uppercase_1t4sr_gg_",
|
25
|
+
"_lowercase": "__lowercase_1t4sr_gg_",
|
26
|
+
"_capitalize": "__capitalize_1t4sr_gg_",
|
27
|
+
"_decoration": "__decoration_1t4sr_gg_",
|
28
|
+
"--decoration": "--decoration_1t4sr",
|
29
|
+
"_color": "__color_1t4sr_gg_",
|
30
|
+
"--color": "--color_1t4sr",
|
31
|
+
"_fontSize": "__fontSize_1t4sr_gg_",
|
32
|
+
"--fontSize": "--fontSize_1t4sr",
|
33
|
+
"_lineHeight": "__lineHeight_1t4sr_gg_",
|
34
|
+
"--lineHeight": "--lineHeight_1t4sr",
|
35
|
+
"_fontWeight": "__fontWeight_1t4sr_gg_",
|
36
|
+
"--fontWeight": "--fontWeight_1t4sr",
|
37
|
+
"_textAlign": "__textAlign_1t4sr_gg_",
|
38
|
+
"--textAlign": "--textAlign_1t4sr",
|
39
|
+
"_use_primary": "_use_primary_1t4sr_gg_",
|
40
|
+
"_use_secondary": "_use_secondary_1t4sr_gg_",
|
41
|
+
"_disabled": "__disabled_1t4sr_gg_"
|
42
42
|
});
|
43
43
|
import { useColorResolver } from 'intergalactic/utils/lib/use/useColorResolver';
|
44
44
|
function getTextDecoration(underline, lineThrough) {
|
@@ -10,8 +10,8 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/obje
|
|
10
10
|
var _core = _interopRequireWildcard(require("intergalactic/core"));
|
11
11
|
var _react = _interopRequireDefault(require("react"));
|
12
12
|
/*__reshadow-styles__:"./invalidStatePattern.shadow.css"*/
|
13
|
-
var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".
|
14
|
-
"__SPattern": "
|
13
|
+
var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SPattern_122c4_gg_{width:6px;height:100%;position:absolute;background-image:var(--intergalactic-border-critical-pattern, repeating-linear-gradient(315deg, rgba(209, 0, 47, 1) 0, rgba(209, 0, 47, 1) 2px, transparent 0, transparent 50%));background-size:6px 6px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff);border-bottom-left-radius:var(--intergalactic-control-rounded, 6px);border-top-left-radius:var(--intergalactic-control-rounded, 6px)}" /*__inner_css_end__*/, "122c4_gg_") /*__reshadow_css_end__*/, {
|
14
|
+
"__SPattern": "___SPattern_122c4_gg_"
|
15
15
|
});
|
16
16
|
var InvalidStatePatternComponent = function InvalidStatePatternComponent() {
|
17
17
|
var _ref = arguments[0],
|
@@ -4,8 +4,8 @@ import { assignProps as _assignProps } from 'intergalactic/core';
|
|
4
4
|
import React from 'react';
|
5
5
|
import createComponent, { sstyled, Root } from 'intergalactic/core';
|
6
6
|
/*__reshadow-styles__:"./invalidStatePattern.shadow.css"*/
|
7
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
8
|
-
"__SPattern": "
|
7
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SPattern_122c4_gg_{width:6px;height:100%;position:absolute;background-image:var(--intergalactic-border-critical-pattern, repeating-linear-gradient(315deg, rgba(209, 0, 47, 1) 0, rgba(209, 0, 47, 1) 2px, transparent 0, transparent 50%));background-size:6px 6px;background-color:var(--intergalactic-bg-primary-neutral, #ffffff);border-bottom-left-radius:var(--intergalactic-control-rounded, 6px);border-top-left-radius:var(--intergalactic-control-rounded, 6px)}" /*__inner_css_end__*/, "122c4_gg_") /*__reshadow_css_end__*/, {
|
8
|
+
"__SPattern": "___SPattern_122c4_gg_"
|
9
9
|
});
|
10
10
|
var InvalidStatePatternComponent = function InvalidStatePatternComponent() {
|
11
11
|
var _ref = arguments[0],
|
package/utils/lib/injectStyle.js
CHANGED
package/utils/lib/uniqueID.js
CHANGED
@@ -22,13 +22,14 @@ var createSource = function createSource() {
|
|
22
22
|
var useUID = function useUID(prefix) {
|
23
23
|
var _context$prefix;
|
24
24
|
var context = _core.register.get('uid-context', createSource(prefix));
|
25
|
-
var
|
26
|
-
|
27
|
-
uid =
|
25
|
+
var _ref = _react["default"].useId ? [_react["default"].useId()] : _react["default"].useState(context.value++),
|
26
|
+
_ref2 = (0, _slicedToArray2["default"])(_ref, 1),
|
27
|
+
uid = _ref2[0];
|
28
|
+
var trimmedUid = String(uid).startsWith(':') && String(uid).endsWith(':') ? String(uid).slice(1, -1) : uid;
|
28
29
|
(0, _useEnhancedEffect["default"])(function () {
|
29
30
|
_core.register.set('uid-context', context);
|
30
|
-
}, [
|
31
|
-
return ((_context$prefix = context.prefix) !== null && _context$prefix !== void 0 ? _context$prefix : '') +
|
31
|
+
}, [trimmedUid]);
|
32
|
+
return ((_context$prefix = context.prefix) !== null && _context$prefix !== void 0 ? _context$prefix : '') + trimmedUid;
|
32
33
|
};
|
33
34
|
exports.useUID = useUID;
|
34
35
|
var _default = function _default(prefix) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"uniqueID.js","names":["_react","_interopRequireDefault","require","_core","_useEnhancedEffect","createSource","prefix","arguments","length","undefined","value","useUID","_context$prefix","context","register","get","
|
1
|
+
{"version":3,"file":"uniqueID.js","names":["_react","_interopRequireDefault","require","_core","_useEnhancedEffect","createSource","prefix","arguments","length","undefined","value","useUID","_context$prefix","context","register","get","_ref","React","useId","useState","_ref2","_slicedToArray2","uid","trimmedUid","String","startsWith","endsWith","slice","useEnhancedEffect","set","exports","_default","props","_objectSpread2"],"sources":["../src/uniqueID.ts"],"sourcesContent":["import React from 'react';\n// @ts-ignore\nimport { UnknownProperties, register } from '@semcore/core';\nimport useEnhancedEffect from './use/useEnhancedEffect';\n\ntype ContextType = {\n prefix?: string;\n value: number;\n};\n\n/** @deprecated */\nexport interface IUniqueIDProps extends UniqueIDProps, UnknownProperties {}\nexport type UniqueIDProps = {\n /* Unique ID */\n uid?: string;\n};\n\nconst createSource = (prefix = 'ui-kit-'): ContextType => ({ value: 1, prefix });\n\nexport const useUID = (prefix?: string): string => {\n const context = register.get<ContextType>('uid-context', createSource(prefix));\n const [uid] = React.useId ? [React.useId()] : React.useState<number>(context.value++);\n const trimmedUid =\n String(uid).startsWith(':') && String(uid).endsWith(':') ? String(uid).slice(1, -1) : uid;\n\n useEnhancedEffect(() => {\n register.set<ContextType>('uid-context', context);\n }, [trimmedUid]);\n\n return (context.prefix ?? '') + trimmedUid;\n};\n\nexport default (prefix?: string) => {\n return (props: any): { uid: ReturnType<typeof useUID> } => {\n const uid = useUID(prefix);\n return {\n uid,\n ...props,\n };\n };\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAH,sBAAA,CAAAC,OAAA;AAFA;;AAgBA,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAA;EAAA,IAAIC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,SAAS;EAAA,OAAmB;IAAEG,KAAK,EAAE,CAAC;IAAEJ,MAAM,EAANA;EAAO,CAAC;AAAA,CAAC;AAEzE,IAAMK,MAAM,GAAG,SAATA,MAAMA,CAAIL,MAAe,EAAa;EAAA,IAAAM,eAAA;EACjD,IAAMC,OAAO,GAAGC,cAAQ,CAACC,GAAG,CAAc,aAAa,EAAEV,YAAY,CAACC,MAAM,CAAC,CAAC;EAC9E,IAAAU,IAAA,GAAcC,iBAAK,CAACC,KAAK,GAAG,CAACD,iBAAK,CAACC,KAAK,EAAE,CAAC,GAAGD,iBAAK,CAACE,QAAQ,CAASN,OAAO,CAACH,KAAK,EAAE,CAAC;IAAAU,KAAA,OAAAC,eAAA,aAAAL,IAAA;IAA9EM,GAAG,GAAAF,KAAA;EACV,IAAMG,UAAU,GACdC,MAAM,CAACF,GAAG,CAAC,CAACG,UAAU,CAAC,GAAG,CAAC,IAAID,MAAM,CAACF,GAAG,CAAC,CAACI,QAAQ,CAAC,GAAG,CAAC,GAAGF,MAAM,CAACF,GAAG,CAAC,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAGL,GAAG;EAE3F,IAAAM,6BAAiB,EAAC,YAAM;IACtBd,cAAQ,CAACe,GAAG,CAAc,aAAa,EAAEhB,OAAO,CAAC;EACnD,CAAC,EAAE,CAACU,UAAU,CAAC,CAAC;EAEhB,OAAO,EAAAX,eAAA,GAACC,OAAO,CAACP,MAAM,cAAAM,eAAA,cAAAA,eAAA,GAAI,EAAE,IAAIW,UAAU;AAC5C,CAAC;AAACO,OAAA,CAAAnB,MAAA,GAAAA,MAAA;AAAA,IAAAoB,QAAA,GAEa,SAAAA,SAACzB,MAAe,EAAK;EAClC,OAAO,UAAC0B,KAAU,EAAyC;IACzD,IAAMV,GAAG,GAAGX,MAAM,CAACL,MAAM,CAAC;IAC1B,WAAA2B,cAAA;MACEX,GAAG,EAAHA;IAAG,GACAU,KAAK;EAEZ,CAAC;AACH,CAAC;AAAAF,OAAA,cAAAC,QAAA"}
|
package/utils/lib/uniqueID.mjs
CHANGED
@@ -14,13 +14,14 @@ var createSource = function createSource() {
|
|
14
14
|
export var useUID = function useUID(prefix) {
|
15
15
|
var _context$prefix;
|
16
16
|
var context = register.get('uid-context', createSource(prefix));
|
17
|
-
var
|
18
|
-
|
19
|
-
uid =
|
17
|
+
var _ref = React.useId ? [React.useId()] : React.useState(context.value++),
|
18
|
+
_ref2 = _slicedToArray(_ref, 1),
|
19
|
+
uid = _ref2[0];
|
20
|
+
var trimmedUid = String(uid).startsWith(':') && String(uid).endsWith(':') ? String(uid).slice(1, -1) : uid;
|
20
21
|
useEnhancedEffect(function () {
|
21
22
|
register.set('uid-context', context);
|
22
|
-
}, [
|
23
|
-
return ((_context$prefix = context.prefix) !== null && _context$prefix !== void 0 ? _context$prefix : '') +
|
23
|
+
}, [trimmedUid]);
|
24
|
+
return ((_context$prefix = context.prefix) !== null && _context$prefix !== void 0 ? _context$prefix : '') + trimmedUid;
|
24
25
|
};
|
25
26
|
export default (function (prefix) {
|
26
27
|
return function (props) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"uniqueID.mjs","names":["React","register","useEnhancedEffect","createSource","prefix","arguments","length","undefined","value","useUID","_context$prefix","context","get","
|
1
|
+
{"version":3,"file":"uniqueID.mjs","names":["React","register","useEnhancedEffect","createSource","prefix","arguments","length","undefined","value","useUID","_context$prefix","context","get","_ref","useId","useState","_ref2","_slicedToArray","uid","trimmedUid","String","startsWith","endsWith","slice","set","props","_objectSpread"],"sources":["../src/uniqueID.ts"],"sourcesContent":["import React from 'react';\n// @ts-ignore\nimport { UnknownProperties, register } from '@semcore/core';\nimport useEnhancedEffect from './use/useEnhancedEffect';\n\ntype ContextType = {\n prefix?: string;\n value: number;\n};\n\n/** @deprecated */\nexport interface IUniqueIDProps extends UniqueIDProps, UnknownProperties {}\nexport type UniqueIDProps = {\n /* Unique ID */\n uid?: string;\n};\n\nconst createSource = (prefix = 'ui-kit-'): ContextType => ({ value: 1, prefix });\n\nexport const useUID = (prefix?: string): string => {\n const context = register.get<ContextType>('uid-context', createSource(prefix));\n const [uid] = React.useId ? [React.useId()] : React.useState<number>(context.value++);\n const trimmedUid =\n String(uid).startsWith(':') && String(uid).endsWith(':') ? String(uid).slice(1, -1) : uid;\n\n useEnhancedEffect(() => {\n register.set<ContextType>('uid-context', context);\n }, [trimmedUid]);\n\n return (context.prefix ?? '') + trimmedUid;\n};\n\nexport default (prefix?: string) => {\n return (props: any): { uid: ReturnType<typeof useUID> } => {\n const uid = useUID(prefix);\n return {\n uid,\n ...props,\n };\n };\n};\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB;AACA,SAA4BC,QAAQ,QAAQ,eAAe;AAC3D,OAAOC,iBAAiB,MAAM,6BAAyB;AAcvD,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAA;EAAA,IAAIC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,SAAS;EAAA,OAAmB;IAAEG,KAAK,EAAE,CAAC;IAAEJ,MAAM,EAANA;EAAO,CAAC;AAAA,CAAC;AAEhF,OAAO,IAAMK,MAAM,GAAG,SAATA,MAAMA,CAAIL,MAAe,EAAa;EAAA,IAAAM,eAAA;EACjD,IAAMC,OAAO,GAAGV,QAAQ,CAACW,GAAG,CAAc,aAAa,EAAET,YAAY,CAACC,MAAM,CAAC,CAAC;EAC9E,IAAAS,IAAA,GAAcb,KAAK,CAACc,KAAK,GAAG,CAACd,KAAK,CAACc,KAAK,EAAE,CAAC,GAAGd,KAAK,CAACe,QAAQ,CAASJ,OAAO,CAACH,KAAK,EAAE,CAAC;IAAAQ,KAAA,GAAAC,cAAA,CAAAJ,IAAA;IAA9EK,GAAG,GAAAF,KAAA;EACV,IAAMG,UAAU,GACdC,MAAM,CAACF,GAAG,CAAC,CAACG,UAAU,CAAC,GAAG,CAAC,IAAID,MAAM,CAACF,GAAG,CAAC,CAACI,QAAQ,CAAC,GAAG,CAAC,GAAGF,MAAM,CAACF,GAAG,CAAC,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAGL,GAAG;EAE3FhB,iBAAiB,CAAC,YAAM;IACtBD,QAAQ,CAACuB,GAAG,CAAc,aAAa,EAAEb,OAAO,CAAC;EACnD,CAAC,EAAE,CAACQ,UAAU,CAAC,CAAC;EAEhB,OAAO,EAAAT,eAAA,GAACC,OAAO,CAACP,MAAM,cAAAM,eAAA,cAAAA,eAAA,GAAI,EAAE,IAAIS,UAAU;AAC5C,CAAC;AAED,gBAAe,UAACf,MAAe,EAAK;EAClC,OAAO,UAACqB,KAAU,EAAyC;IACzD,IAAMP,GAAG,GAAGT,MAAM,CAACL,MAAM,CAAC;IAC1B,OAAAsB,aAAA;MACER,GAAG,EAAHA;IAAG,GACAO,KAAK;EAEZ,CAAC;AACH,CAAC"}
|
@@ -184,7 +184,7 @@ var useFocusLockHook = function useFocusLockHook(React, trapRef, autoFocus, retu
|
|
184
184
|
var focusableChildren = Array.from(trapRef.current.children).flatMap(function (node) {
|
185
185
|
return (0, _getFocusableIn.getFocusableIn)(node);
|
186
186
|
});
|
187
|
-
if (focusableChildren.length === 0) return;
|
187
|
+
if (focusableChildren.length === 0 && autoFocus !== 'enforced') return;
|
188
188
|
document.body.addEventListener('focusout', handleFocusOut);
|
189
189
|
document.body.addEventListener('mousedown', handleMouseEvent);
|
190
190
|
document.body.addEventListener('touchstart', handleMouseEvent);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useFocusLock.js","names":["_canUseDOM","_interopRequireDefault","require","_react","_isFocusInside","_setFocus","_getFocusableIn","_focusBorders","focusBordersConsumers","Set","useFocusBorders","React","disabled","useUniqueIdHookMock","useEffect","id","getUniqueId","add","areFocusBordersPlacedCorrectly","removeFocusBorders","size","addFocusBorders","uniqueId","prefix","concat","Math","random","toString","slice","focusLockVersion","globalFocusLockHookKey","focusLockAllTraps","focusLockUsedInMountedComponents","focusMastersStack","noop","useState","undefined","useEnhancedEffect","canUseDOM","useLayoutEffect","useFocusLockHook","trapRef","autoFocus","returnFocusTo","arguments","length","focusMaster","onFocusOut","autoTriggerRef","useRef","lastUserInteractionRef","handleFocusOut","useCallback","event","focusCameFrom","target","focusMovedTo","relatedTarget","setTimeout","current","Promise","resolve","then","currentFocusMaster","trapNodes","_toConsumableArray2","isFocusInside","_typeof2","setFocus","handleMouseEvent","handleKeyboardEvent","returnFocus","trapNode","returnFocusNode","autoTrigger","node","focusableChildren","Array","from","children","flatMap","getFocusableIn","push","pop","splice","indexOf","document","body","addEventListener","removeEventListener","establishHookAsGlobal","globalThis","hook","version","usedInComponents","_globalFocusLockHookK","theirVersion","useFocusLock","_globalFocusLockHookK2","_globalFocusLockHookK3","LocalReact","exports","hasFocusableIn","element"],"sources":["../../src/use/useFocusLock.ts"],"sourcesContent":["import canUseDOM from '../canUseDOM';\nimport LocalReact from 'react';\n\nimport { isFocusInside } from '../focus-lock/isFocusInside';\nimport { setFocus } from '../focus-lock/setFocus';\nimport { getFocusableIn } from '../focus-lock/getFocusableIn';\nimport {\n addFocusBorders,\n removeFocusBorders,\n areFocusBordersPlacedCorrectly,\n} from '../focus-lock/focusBorders';\n\nexport { isFocusInside, setFocus };\n\nconst focusBordersConsumers = new Set();\n\nconst useFocusBorders = (React: ReactT, disabled?: boolean) => {\n useUniqueIdHookMock(React);\n React.useEffect(() => {\n const id = getUniqueId('focus-borders-consumer');\n if (!disabled) {\n focusBordersConsumers.add(id);\n }\n\n if (!areFocusBordersPlacedCorrectly()) removeFocusBorders();\n if (focusBordersConsumers.size > 0) addFocusBorders();\n\n return () => {\n focusBordersConsumers.delete(id);\n if (focusBordersConsumers.size === 0) removeFocusBorders();\n };\n }, [disabled]);\n};\n\ntype ReactT = typeof LocalReact;\n\nlet uniqueId = 0;\nconst getUniqueId = (prefix: string) =>\n `${prefix}-${Math.random().toString(36).slice(2)}-${uniqueId++}`;\n\n/**\n * # Focus lock hook merging\n * In some cases same page might contain different versions of components.\n * In such cases, we need to ensure that only one version of focus lock hook is used.\n * So, it's why we have `useFocusLockHook` function that is wrapped into `useFocusLock`.\n *\n * While evaluating this file code, we check if global focus lock hook is already defined.\n * If it's defined, we replace it ONLY if our version is higher and no components currently use it.\n * The last condition is very important because we are unable to replace React hook without reimplementing\n * React hooks lifecycle in some kind of wrapper.\n *\n * ## Versioning\n * Such versions merging requires us to keep hook api backward compatible.\n * When hook logic changes, the variable `focusLockVersion` should be incremented.\n *\n * Version update `1 -> 2`. Fixed call `safeMoveFocusInside` in `handleFocusIn` with correct second parameter (focusCameFrom instead of event.target)\n * Version update `2 -> 3`. Fixed React version isolation in nested hooks (`useFocusBorders`, `useUniqueId`).\n *\n * Initially (for a several versions) key was `__intergalactic_focus_lock_hook_`.\n * Making it respect react version required to change key. So key was changed to `__intergalactic_focus_lock_hook_react_v_respectful`.\n *\n * ## React hooks order\n * When updating from version 2 to version 3 `useUniqueId` hook was removed.\n * Due to replacing useFocusLock hook in runtime, the order of hooks must be preserved.\n * So, useUniqueIdHookMock helps to preserve hooks order when hook is being replaced from version 2 to version 3.\n *\n * If new update requires to remove some hooks – add mocks instead of them.\n * If new update requires to add some hooks and no workaround with current hooks list is possible – probably focus lock hook key should be changed.\n */\nconst focusLockVersion = 3;\nconst globalFocusLockHookKey = '__intergalactic_focus_lock_hook_react_v_respectful';\n\nconst focusLockAllTraps = new Set<HTMLElement>();\nconst focusLockUsedInMountedComponents = new Set<string>();\n/** Focus master is a special mode in which focus lock might work.\n * Normally, focus lock hook allows user focus to move freely between\n * all active focus traps. When component provides `focusMaster=true`\n * parameter, it says that it doesn't want to share focus with other traps.\n * It is very useful for a big components like modals or side-bars that\n * also have some visual backdrop.\n * The last element in focus masters stack is considered as a current focus master.\n */\nconst focusMastersStack: HTMLElement[] = [];\n\nconst noop = () => {};\nconst useUniqueIdHookMock = (React: ReactT) => {\n React.useState(undefined);\n const useEnhancedEffect = canUseDOM() ? React.useLayoutEffect : React.useEffect;\n useEnhancedEffect(noop, []);\n};\n\nconst useFocusLockHook = (\n React: ReactT,\n trapRef: React.RefObject<HTMLElement>,\n autoFocus: boolean,\n returnFocusTo: React.RefObject<HTMLElement> | null | 'auto',\n disabled = false,\n focusMaster = false,\n onFocusOut?: (event: Event) => void,\n) => {\n useFocusBorders(React, disabled);\n\n const autoTriggerRef = React.useRef<HTMLElement | null>(null);\n const lastUserInteractionRef = React.useRef<'mouse' | 'keyboard' | undefined>(undefined);\n\n const handleFocusOut = React.useCallback(\n (event: Event & { relatedTarget?: HTMLElement; target?: HTMLElement }) => {\n const focusCameFrom = event.target;\n const focusMovedTo = event.relatedTarget;\n\n setTimeout(() => {\n if (!focusCameFrom) return;\n if (autoTriggerRef.current) return;\n autoTriggerRef.current = focusCameFrom;\n }, 0);\n if (lastUserInteractionRef.current === 'mouse') return;\n Promise.resolve().then(() => {\n if (!trapRef.current) return;\n const currentFocusMaster = focusMastersStack[focusMastersStack.length - 1];\n if (currentFocusMaster && currentFocusMaster !== trapRef.current) return;\n const trapNodes = currentFocusMaster\n ? [trapRef.current]\n : [trapRef.current, ...focusLockAllTraps];\n if (isFocusInside(trapNodes, focusMovedTo)) return;\n if (\n typeof returnFocusTo === 'object' &&\n returnFocusTo?.current &&\n isFocusInside(returnFocusTo.current)\n )\n return;\n\n if (focusCameFrom) {\n setFocus(trapRef.current, focusCameFrom, focusMovedTo);\n }\n\n onFocusOut?.(event);\n });\n },\n [onFocusOut],\n );\n const handleMouseEvent = React.useCallback(() => {\n lastUserInteractionRef.current = 'mouse';\n }, []);\n const handleKeyboardEvent = React.useCallback(() => {\n lastUserInteractionRef.current = 'keyboard';\n }, []);\n const returnFocus = React.useCallback(() => {\n const trapNode = trapRef.current;\n if (trapNode && !isFocusInside(trapNode)) return;\n if (typeof returnFocusTo === 'object' && returnFocusTo?.current) {\n const returnFocusNode = returnFocusTo?.current;\n setTimeout(() => setFocus(returnFocusNode, trapNode), 0);\n }\n if (returnFocusTo === 'auto' && autoTriggerRef.current) {\n const autoTrigger = autoTriggerRef.current;\n setTimeout(() => setFocus(autoTrigger, trapNode), 0);\n }\n }, [returnFocusTo]);\n React.useEffect(() => {\n if (typeof trapRef !== 'object' || trapRef === null) return;\n const node = trapRef.current;\n if (!node) return;\n focusLockAllTraps.add(node);\n return () => {\n if (!node) return;\n focusLockAllTraps.delete(node);\n };\n }, [disabled]);\n React.useEffect(() => {\n if (typeof trapRef !== 'object' || trapRef === null) return;\n if (disabled) return;\n if (!canUseDOM()) return;\n if (!trapRef.current) return;\n const focusableChildren = Array.from(trapRef.current.children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n if (focusableChildren.length === 0) return;\n\n if (focusMaster) {\n focusMastersStack.push(trapRef.current);\n }\n\n return () => {\n if (!focusMaster) return;\n if (focusMastersStack[focusMastersStack.length - 1] === trapRef.current) {\n focusMastersStack.pop();\n } else {\n focusMastersStack.splice(focusMastersStack.indexOf(trapRef.current!), 1);\n }\n };\n }, [disabled, focusMaster]);\n React.useEffect(() => {\n if (disabled) return;\n if (!canUseDOM()) return;\n if (!trapRef.current) return;\n const focusableChildren = Array.from(trapRef.current.children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n if (focusableChildren.length === 0) return;\n\n document.body.addEventListener('focusout', handleFocusOut as any);\n document.body.addEventListener('mousedown', handleMouseEvent);\n document.body.addEventListener('touchstart', handleMouseEvent);\n document.body.addEventListener('keydown', handleKeyboardEvent);\n\n if (autoFocus)\n setFocus(\n trapRef.current,\n typeof returnFocusTo === 'object' ? returnFocusTo?.current : document.body,\n );\n\n return () => {\n document.body.removeEventListener('focusout', handleFocusOut as any);\n document.body.removeEventListener('mousedown', handleMouseEvent);\n document.body.removeEventListener('touchstart', handleMouseEvent);\n document.body.removeEventListener('keydown', handleKeyboardEvent);\n returnFocus();\n autoTriggerRef.current = null;\n };\n }, [disabled, autoFocus, returnFocusTo, returnFocus]);\n\n useUniqueIdHookMock(React);\n React.useEffect(() => {\n const id = getUniqueId('focus-lock-consumer');\n if (disabled) return;\n focusLockUsedInMountedComponents.add(id);\n return () => {\n focusLockUsedInMountedComponents.delete(id);\n };\n }, [disabled]);\n};\nconst establishHookAsGlobal = () => {\n (globalThis as any)[globalFocusLockHookKey] = {\n hook: useFocusLockHook,\n version: focusLockVersion,\n usedInComponents: focusLockUsedInMountedComponents,\n };\n};\nif (!(globalThis as any)[globalFocusLockHookKey]) {\n establishHookAsGlobal();\n} else if (typeof (globalThis as any)[globalFocusLockHookKey].version !== 'number') {\n establishHookAsGlobal();\n} else {\n const { version: theirVersion, usedInComponents } = (globalThis as any)[globalFocusLockHookKey];\n if (focusLockVersion > theirVersion && usedInComponents.size === 0) {\n establishHookAsGlobal();\n }\n}\n\nexport const useFocusLock = (\n trapRef: React.RefObject<HTMLElement>,\n autoFocus: boolean,\n returnFocusTo: React.RefObject<HTMLElement> | null | 'auto',\n disabled = false,\n focusMaster = false,\n onFocusOut?: (event: Event) => void,\n) => {\n const hook = (globalThis as any)[globalFocusLockHookKey]?.hook ?? useFocusLockHook;\n return hook(LocalReact, trapRef, autoFocus, returnFocusTo, disabled, focusMaster, onFocusOut);\n};\n\nexport const hasFocusableIn = (element: HTMLElement): boolean => {\n return (\n Array.from(element.children).flatMap((node) => getFocusableIn(node as HTMLElement)).length > 0\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AAQA,IAAMM,qBAAqB,GAAG,IAAIC,GAAG,EAAE;AAEvC,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,KAAa,EAAEC,QAAkB,EAAK;EAC7DC,mBAAmB,CAACF,KAAK,CAAC;EAC1BA,KAAK,CAACG,SAAS,CAAC,YAAM;IACpB,IAAMC,EAAE,GAAGC,WAAW,CAAC,wBAAwB,CAAC;IAChD,IAAI,CAACJ,QAAQ,EAAE;MACbJ,qBAAqB,CAACS,GAAG,CAACF,EAAE,CAAC;IAC/B;IAEA,IAAI,CAAC,IAAAG,4CAA8B,GAAE,EAAE,IAAAC,gCAAkB,GAAE;IAC3D,IAAIX,qBAAqB,CAACY,IAAI,GAAG,CAAC,EAAE,IAAAC,6BAAe,GAAE;IAErD,OAAO,YAAM;MACXb,qBAAqB,UAAO,CAACO,EAAE,CAAC;MAChC,IAAIP,qBAAqB,CAACY,IAAI,KAAK,CAAC,EAAE,IAAAD,gCAAkB,GAAE;IAC5D,CAAC;EACH,CAAC,EAAE,CAACP,QAAQ,CAAC,CAAC;AAChB,CAAC;AAID,IAAIU,QAAQ,GAAG,CAAC;AAChB,IAAMN,WAAW,GAAG,SAAdA,WAAWA,CAAIO,MAAc;EAAA,UAAAC,MAAA,CAC9BD,MAAM,OAAAC,MAAA,CAAIC,IAAI,CAACC,MAAM,EAAE,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,OAAAJ,MAAA,CAAIF,QAAQ,EAAE;AAAA,CAAE;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMO,gBAAgB,GAAG,CAAC;AAC1B,IAAMC,sBAAsB,GAAG,oDAAoD;AAEnF,IAAMC,iBAAiB,GAAG,IAAItB,GAAG,EAAe;AAChD,IAAMuB,gCAAgC,GAAG,IAAIvB,GAAG,EAAU;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMwB,iBAAgC,GAAG,EAAE;AAE3C,IAAMC,IAAI,GAAG,SAAPA,IAAIA,CAAA,EAAS,CAAC,CAAC;AACrB,IAAMrB,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIF,KAAa,EAAK;EAC7CA,KAAK,CAACwB,QAAQ,CAACC,SAAS,CAAC;EACzB,IAAMC,iBAAiB,GAAG,IAAAC,qBAAS,GAAE,GAAG3B,KAAK,CAAC4B,eAAe,GAAG5B,KAAK,CAACG,SAAS;EAC/EuB,iBAAiB,CAACH,IAAI,EAAE,EAAE,CAAC;AAC7B,CAAC;AAED,IAAMM,gBAAgB,GAAG,SAAnBA,gBAAgBA,CACpB7B,KAAa,EACb8B,OAAqC,EACrCC,SAAkB,EAClBC,aAA2D,EAIxD;EAAA,IAHH/B,QAAQ,GAAAgC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAR,SAAA,GAAAQ,SAAA,MAAG,KAAK;EAAA,IAChBE,WAAW,GAAAF,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAR,SAAA,GAAAQ,SAAA,MAAG,KAAK;EAAA,IACnBG,UAAmC,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAR,SAAA;EAEnC1B,eAAe,CAACC,KAAK,EAAEC,QAAQ,CAAC;EAEhC,IAAMoC,cAAc,GAAGrC,KAAK,CAACsC,MAAM,CAAqB,IAAI,CAAC;EAC7D,IAAMC,sBAAsB,GAAGvC,KAAK,CAACsC,MAAM,CAAmCb,SAAS,CAAC;EAExF,IAAMe,cAAc,GAAGxC,KAAK,CAACyC,WAAW,CACtC,UAACC,KAAoE,EAAK;IACxE,IAAMC,aAAa,GAAGD,KAAK,CAACE,MAAM;IAClC,IAAMC,YAAY,GAAGH,KAAK,CAACI,aAAa;IAExCC,UAAU,CAAC,YAAM;MACf,IAAI,CAACJ,aAAa,EAAE;MACpB,IAAIN,cAAc,CAACW,OAAO,EAAE;MAC5BX,cAAc,CAACW,OAAO,GAAGL,aAAa;IACxC,CAAC,EAAE,CAAC,CAAC;IACL,IAAIJ,sBAAsB,CAACS,OAAO,KAAK,OAAO,EAAE;IAChDC,OAAO,CAACC,OAAO,EAAE,CAACC,IAAI,CAAC,YAAM;MAC3B,IAAI,CAACrB,OAAO,CAACkB,OAAO,EAAE;MACtB,IAAMI,kBAAkB,GAAG9B,iBAAiB,CAACA,iBAAiB,CAACY,MAAM,GAAG,CAAC,CAAC;MAC1E,IAAIkB,kBAAkB,IAAIA,kBAAkB,KAAKtB,OAAO,CAACkB,OAAO,EAAE;MAClE,IAAMK,SAAS,GAAGD,kBAAkB,GAChC,CAACtB,OAAO,CAACkB,OAAO,CAAC,IAChBlB,OAAO,CAACkB,OAAO,EAAAnC,MAAA,KAAAyC,mBAAA,aAAKlC,iBAAiB,EAAC;MAC3C,IAAI,IAAAmC,4BAAa,EAACF,SAAS,EAAER,YAAY,CAAC,EAAE;MAC5C,IACE,IAAAW,QAAA,aAAOxB,aAAa,MAAK,QAAQ,IACjCA,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAEgB,OAAO,IACtB,IAAAO,4BAAa,EAACvB,aAAa,CAACgB,OAAO,CAAC,EAEpC;MAEF,IAAIL,aAAa,EAAE;QACjB,IAAAc,kBAAQ,EAAC3B,OAAO,CAACkB,OAAO,EAAEL,aAAa,EAAEE,YAAY,CAAC;MACxD;MAEAT,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAGM,KAAK,CAAC;IACrB,CAAC,CAAC;EACJ,CAAC,EACD,CAACN,UAAU,CAAC,CACb;EACD,IAAMsB,gBAAgB,GAAG1D,KAAK,CAACyC,WAAW,CAAC,YAAM;IAC/CF,sBAAsB,CAACS,OAAO,GAAG,OAAO;EAC1C,CAAC,EAAE,EAAE,CAAC;EACN,IAAMW,mBAAmB,GAAG3D,KAAK,CAACyC,WAAW,CAAC,YAAM;IAClDF,sBAAsB,CAACS,OAAO,GAAG,UAAU;EAC7C,CAAC,EAAE,EAAE,CAAC;EACN,IAAMY,WAAW,GAAG5D,KAAK,CAACyC,WAAW,CAAC,YAAM;IAC1C,IAAMoB,QAAQ,GAAG/B,OAAO,CAACkB,OAAO;IAChC,IAAIa,QAAQ,IAAI,CAAC,IAAAN,4BAAa,EAACM,QAAQ,CAAC,EAAE;IAC1C,IAAI,IAAAL,QAAA,aAAOxB,aAAa,MAAK,QAAQ,IAAIA,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAEgB,OAAO,EAAE;MAC/D,IAAMc,eAAe,GAAG9B,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEgB,OAAO;MAC9CD,UAAU,CAAC;QAAA,OAAM,IAAAU,kBAAQ,EAACK,eAAe,EAAED,QAAQ,CAAC;MAAA,GAAE,CAAC,CAAC;IAC1D;IACA,IAAI7B,aAAa,KAAK,MAAM,IAAIK,cAAc,CAACW,OAAO,EAAE;MACtD,IAAMe,WAAW,GAAG1B,cAAc,CAACW,OAAO;MAC1CD,UAAU,CAAC;QAAA,OAAM,IAAAU,kBAAQ,EAACM,WAAW,EAAEF,QAAQ,CAAC;MAAA,GAAE,CAAC,CAAC;IACtD;EACF,CAAC,EAAE,CAAC7B,aAAa,CAAC,CAAC;EACnBhC,KAAK,CAACG,SAAS,CAAC,YAAM;IACpB,IAAI,IAAAqD,QAAA,aAAO1B,OAAO,MAAK,QAAQ,IAAIA,OAAO,KAAK,IAAI,EAAE;IACrD,IAAMkC,IAAI,GAAGlC,OAAO,CAACkB,OAAO;IAC5B,IAAI,CAACgB,IAAI,EAAE;IACX5C,iBAAiB,CAACd,GAAG,CAAC0D,IAAI,CAAC;IAC3B,OAAO,YAAM;MACX,IAAI,CAACA,IAAI,EAAE;MACX5C,iBAAiB,UAAO,CAAC4C,IAAI,CAAC;IAChC,CAAC;EACH,CAAC,EAAE,CAAC/D,QAAQ,CAAC,CAAC;EACdD,KAAK,CAACG,SAAS,CAAC,YAAM;IACpB,IAAI,IAAAqD,QAAA,aAAO1B,OAAO,MAAK,QAAQ,IAAIA,OAAO,KAAK,IAAI,EAAE;IACrD,IAAI7B,QAAQ,EAAE;IACd,IAAI,CAAC,IAAA0B,qBAAS,GAAE,EAAE;IAClB,IAAI,CAACG,OAAO,CAACkB,OAAO,EAAE;IACtB,IAAMiB,iBAAiB,GAAGC,KAAK,CAACC,IAAI,CAACrC,OAAO,CAACkB,OAAO,CAACoB,QAAQ,CAAC,CAACC,OAAO,CAAC,UAACL,IAAI;MAAA,OAC1E,IAAAM,8BAAc,EAACN,IAAI,CAAgB;IAAA,EACpC;IACD,IAAIC,iBAAiB,CAAC/B,MAAM,KAAK,CAAC,EAAE;IAEpC,IAAIC,WAAW,EAAE;MACfb,iBAAiB,CAACiD,IAAI,CAACzC,OAAO,CAACkB,OAAO,CAAC;IACzC;IAEA,OAAO,YAAM;MACX,IAAI,CAACb,WAAW,EAAE;MAClB,IAAIb,iBAAiB,CAACA,iBAAiB,CAACY,MAAM,GAAG,CAAC,CAAC,KAAKJ,OAAO,CAACkB,OAAO,EAAE;QACvE1B,iBAAiB,CAACkD,GAAG,EAAE;MACzB,CAAC,MAAM;QACLlD,iBAAiB,CAACmD,MAAM,CAACnD,iBAAiB,CAACoD,OAAO,CAAC5C,OAAO,CAACkB,OAAO,CAAE,EAAE,CAAC,CAAC;MAC1E;IACF,CAAC;EACH,CAAC,EAAE,CAAC/C,QAAQ,EAAEkC,WAAW,CAAC,CAAC;EAC3BnC,KAAK,CAACG,SAAS,CAAC,YAAM;IACpB,IAAIF,QAAQ,EAAE;IACd,IAAI,CAAC,IAAA0B,qBAAS,GAAE,EAAE;IAClB,IAAI,CAACG,OAAO,CAACkB,OAAO,EAAE;IACtB,IAAMiB,iBAAiB,GAAGC,KAAK,CAACC,IAAI,CAACrC,OAAO,CAACkB,OAAO,CAACoB,QAAQ,CAAC,CAACC,OAAO,CAAC,UAACL,IAAI;MAAA,OAC1E,IAAAM,8BAAc,EAACN,IAAI,CAAgB;IAAA,EACpC;IACD,IAAIC,iBAAiB,CAAC/B,MAAM,KAAK,CAAC,EAAE;IAEpCyC,QAAQ,CAACC,IAAI,CAACC,gBAAgB,CAAC,UAAU,EAAErC,cAAc,CAAQ;IACjEmC,QAAQ,CAACC,IAAI,CAACC,gBAAgB,CAAC,WAAW,EAAEnB,gBAAgB,CAAC;IAC7DiB,QAAQ,CAACC,IAAI,CAACC,gBAAgB,CAAC,YAAY,EAAEnB,gBAAgB,CAAC;IAC9DiB,QAAQ,CAACC,IAAI,CAACC,gBAAgB,CAAC,SAAS,EAAElB,mBAAmB,CAAC;IAE9D,IAAI5B,SAAS,EACX,IAAA0B,kBAAQ,EACN3B,OAAO,CAACkB,OAAO,EACf,IAAAQ,QAAA,aAAOxB,aAAa,MAAK,QAAQ,GAAGA,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEgB,OAAO,GAAG2B,QAAQ,CAACC,IAAI,CAC3E;IAEH,OAAO,YAAM;MACXD,QAAQ,CAACC,IAAI,CAACE,mBAAmB,CAAC,UAAU,EAAEtC,cAAc,CAAQ;MACpEmC,QAAQ,CAACC,IAAI,CAACE,mBAAmB,CAAC,WAAW,EAAEpB,gBAAgB,CAAC;MAChEiB,QAAQ,CAACC,IAAI,CAACE,mBAAmB,CAAC,YAAY,EAAEpB,gBAAgB,CAAC;MACjEiB,QAAQ,CAACC,IAAI,CAACE,mBAAmB,CAAC,SAAS,EAAEnB,mBAAmB,CAAC;MACjEC,WAAW,EAAE;MACbvB,cAAc,CAACW,OAAO,GAAG,IAAI;IAC/B,CAAC;EACH,CAAC,EAAE,CAAC/C,QAAQ,EAAE8B,SAAS,EAAEC,aAAa,EAAE4B,WAAW,CAAC,CAAC;EAErD1D,mBAAmB,CAACF,KAAK,CAAC;EAC1BA,KAAK,CAACG,SAAS,CAAC,YAAM;IACpB,IAAMC,EAAE,GAAGC,WAAW,CAAC,qBAAqB,CAAC;IAC7C,IAAIJ,QAAQ,EAAE;IACdoB,gCAAgC,CAACf,GAAG,CAACF,EAAE,CAAC;IACxC,OAAO,YAAM;MACXiB,gCAAgC,UAAO,CAACjB,EAAE,CAAC;IAC7C,CAAC;EACH,CAAC,EAAE,CAACH,QAAQ,CAAC,CAAC;AAChB,CAAC;AACD,IAAM8E,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAA,EAAS;EACjCC,UAAU,CAAS7D,sBAAsB,CAAC,GAAG;IAC5C8D,IAAI,EAAEpD,gBAAgB;IACtBqD,OAAO,EAAEhE,gBAAgB;IACzBiE,gBAAgB,EAAE9D;EACpB,CAAC;AACH,CAAC;AACD,IAAI,CAAE2D,UAAU,CAAS7D,sBAAsB,CAAC,EAAE;EAChD4D,qBAAqB,EAAE;AACzB,CAAC,MAAM,IAAI,OAAQC,UAAU,CAAS7D,sBAAsB,CAAC,CAAC+D,OAAO,KAAK,QAAQ,EAAE;EAClFH,qBAAqB,EAAE;AACzB,CAAC,MAAM;EACL,IAAAK,qBAAA,GAAqDJ,UAAU,CAAS7D,sBAAsB,CAAC;IAA9EkE,YAAY,GAAAD,qBAAA,CAArBF,OAAO;IAAgBC,gBAAgB,GAAAC,qBAAA,CAAhBD,gBAAgB;EAC/C,IAAIjE,gBAAgB,GAAGmE,YAAY,IAAIF,gBAAgB,CAAC1E,IAAI,KAAK,CAAC,EAAE;IAClEsE,qBAAqB,EAAE;EACzB;AACF;AAEO,IAAMO,YAAY,GAAG,SAAfA,YAAYA,CACvBxD,OAAqC,EACrCC,SAAkB,EAClBC,aAA2D,EAIxD;EAAA,IAAAuD,sBAAA,EAAAC,sBAAA;EAAA,IAHHvF,QAAQ,GAAAgC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAR,SAAA,GAAAQ,SAAA,MAAG,KAAK;EAAA,IAChBE,WAAW,GAAAF,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAR,SAAA,GAAAQ,SAAA,MAAG,KAAK;EAAA,IACnBG,UAAmC,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAR,SAAA;EAEnC,IAAMwD,IAAI,IAAAM,sBAAA,IAAAC,sBAAA,GAAIR,UAAU,CAAS7D,sBAAsB,CAAC,cAAAqE,sBAAA,uBAA3CA,sBAAA,CAA6CP,IAAI,cAAAM,sBAAA,cAAAA,sBAAA,GAAI1D,gBAAgB;EAClF,OAAOoD,IAAI,CAACQ,iBAAU,EAAE3D,OAAO,EAAEC,SAAS,EAAEC,aAAa,EAAE/B,QAAQ,EAAEkC,WAAW,EAAEC,UAAU,CAAC;AAC/F,CAAC;AAACsD,OAAA,CAAAJ,YAAA,GAAAA,YAAA;AAEK,IAAMK,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,OAAoB,EAAc;EAC/D,OACE1B,KAAK,CAACC,IAAI,CAACyB,OAAO,CAACxB,QAAQ,CAAC,CAACC,OAAO,CAAC,UAACL,IAAI;IAAA,OAAK,IAAAM,8BAAc,EAACN,IAAI,CAAgB;EAAA,EAAC,CAAC9B,MAAM,GAAG,CAAC;AAElG,CAAC;AAACwD,OAAA,CAAAC,cAAA,GAAAA,cAAA"}
|
1
|
+
{"version":3,"file":"useFocusLock.js","names":["_canUseDOM","_interopRequireDefault","require","_react","_isFocusInside","_setFocus","_getFocusableIn","_focusBorders","focusBordersConsumers","Set","useFocusBorders","React","disabled","useUniqueIdHookMock","useEffect","id","getUniqueId","add","areFocusBordersPlacedCorrectly","removeFocusBorders","size","addFocusBorders","uniqueId","prefix","concat","Math","random","toString","slice","focusLockVersion","globalFocusLockHookKey","focusLockAllTraps","focusLockUsedInMountedComponents","focusMastersStack","noop","useState","undefined","useEnhancedEffect","canUseDOM","useLayoutEffect","useFocusLockHook","trapRef","autoFocus","returnFocusTo","arguments","length","focusMaster","onFocusOut","autoTriggerRef","useRef","lastUserInteractionRef","handleFocusOut","useCallback","event","focusCameFrom","target","focusMovedTo","relatedTarget","setTimeout","current","Promise","resolve","then","currentFocusMaster","trapNodes","_toConsumableArray2","isFocusInside","_typeof2","setFocus","handleMouseEvent","handleKeyboardEvent","returnFocus","trapNode","returnFocusNode","autoTrigger","node","focusableChildren","Array","from","children","flatMap","getFocusableIn","push","pop","splice","indexOf","document","body","addEventListener","removeEventListener","establishHookAsGlobal","globalThis","hook","version","usedInComponents","_globalFocusLockHookK","theirVersion","useFocusLock","_globalFocusLockHookK2","_globalFocusLockHookK3","LocalReact","exports","hasFocusableIn","element"],"sources":["../../src/use/useFocusLock.ts"],"sourcesContent":["import canUseDOM from '../canUseDOM';\nimport LocalReact from 'react';\n\nimport { isFocusInside } from '../focus-lock/isFocusInside';\nimport { setFocus } from '../focus-lock/setFocus';\nimport { getFocusableIn } from '../focus-lock/getFocusableIn';\nimport {\n addFocusBorders,\n removeFocusBorders,\n areFocusBordersPlacedCorrectly,\n} from '../focus-lock/focusBorders';\n\nexport { isFocusInside, setFocus };\n\nconst focusBordersConsumers = new Set();\n\nconst useFocusBorders = (React: ReactT, disabled?: boolean) => {\n useUniqueIdHookMock(React);\n React.useEffect(() => {\n const id = getUniqueId('focus-borders-consumer');\n if (!disabled) {\n focusBordersConsumers.add(id);\n }\n\n if (!areFocusBordersPlacedCorrectly()) removeFocusBorders();\n if (focusBordersConsumers.size > 0) addFocusBorders();\n\n return () => {\n focusBordersConsumers.delete(id);\n if (focusBordersConsumers.size === 0) removeFocusBorders();\n };\n }, [disabled]);\n};\n\ntype ReactT = typeof LocalReact;\n\nlet uniqueId = 0;\nconst getUniqueId = (prefix: string) =>\n `${prefix}-${Math.random().toString(36).slice(2)}-${uniqueId++}`;\n\n/**\n * # Focus lock hook merging\n * In some cases same page might contain different versions of components.\n * In such cases, we need to ensure that only one version of focus lock hook is used.\n * So, it's why we have `useFocusLockHook` function that is wrapped into `useFocusLock`.\n *\n * While evaluating this file code, we check if global focus lock hook is already defined.\n * If it's defined, we replace it ONLY if our version is higher and no components currently use it.\n * The last condition is very important because we are unable to replace React hook without reimplementing\n * React hooks lifecycle in some kind of wrapper.\n *\n * ## Versioning\n * Such versions merging requires us to keep hook api backward compatible.\n * When hook logic changes, the variable `focusLockVersion` should be incremented.\n *\n * Version update `1 -> 2`. Fixed call `safeMoveFocusInside` in `handleFocusIn` with correct second parameter (focusCameFrom instead of event.target)\n * Version update `2 -> 3`. Fixed React version isolation in nested hooks (`useFocusBorders`, `useUniqueId`).\n *\n * Initially (for a several versions) key was `__intergalactic_focus_lock_hook_`.\n * Making it respect react version required to change key. So key was changed to `__intergalactic_focus_lock_hook_react_v_respectful`.\n *\n * ## React hooks order\n * When updating from version 2 to version 3 `useUniqueId` hook was removed.\n * Due to replacing useFocusLock hook in runtime, the order of hooks must be preserved.\n * So, useUniqueIdHookMock helps to preserve hooks order when hook is being replaced from version 2 to version 3.\n *\n * If new update requires to remove some hooks – add mocks instead of them.\n * If new update requires to add some hooks and no workaround with current hooks list is possible – probably focus lock hook key should be changed.\n */\nconst focusLockVersion = 3;\nconst globalFocusLockHookKey = '__intergalactic_focus_lock_hook_react_v_respectful';\n\nconst focusLockAllTraps = new Set<HTMLElement>();\nconst focusLockUsedInMountedComponents = new Set<string>();\n/** Focus master is a special mode in which focus lock might work.\n * Normally, focus lock hook allows user focus to move freely between\n * all active focus traps. When component provides `focusMaster=true`\n * parameter, it says that it doesn't want to share focus with other traps.\n * It is very useful for a big components like modals or side-bars that\n * also have some visual backdrop.\n * The last element in focus masters stack is considered as a current focus master.\n */\nconst focusMastersStack: HTMLElement[] = [];\n\nconst noop = () => {};\nconst useUniqueIdHookMock = (React: ReactT) => {\n React.useState(undefined);\n const useEnhancedEffect = canUseDOM() ? React.useLayoutEffect : React.useEffect;\n useEnhancedEffect(noop, []);\n};\n\nconst useFocusLockHook = (\n React: ReactT,\n trapRef: React.RefObject<HTMLElement>,\n autoFocus: boolean | 'enforced',\n returnFocusTo: React.RefObject<HTMLElement> | null | 'auto',\n disabled = false,\n focusMaster = false,\n onFocusOut?: (event: Event) => void,\n) => {\n useFocusBorders(React, disabled);\n\n const autoTriggerRef = React.useRef<HTMLElement | null>(null);\n const lastUserInteractionRef = React.useRef<'mouse' | 'keyboard' | undefined>(undefined);\n\n const handleFocusOut = React.useCallback(\n (event: Event & { relatedTarget?: HTMLElement; target?: HTMLElement }) => {\n const focusCameFrom = event.target;\n const focusMovedTo = event.relatedTarget;\n\n setTimeout(() => {\n if (!focusCameFrom) return;\n if (autoTriggerRef.current) return;\n autoTriggerRef.current = focusCameFrom;\n }, 0);\n if (lastUserInteractionRef.current === 'mouse') return;\n Promise.resolve().then(() => {\n if (!trapRef.current) return;\n const currentFocusMaster = focusMastersStack[focusMastersStack.length - 1];\n if (currentFocusMaster && currentFocusMaster !== trapRef.current) return;\n const trapNodes = currentFocusMaster\n ? [trapRef.current]\n : [trapRef.current, ...focusLockAllTraps];\n if (isFocusInside(trapNodes, focusMovedTo)) return;\n if (\n typeof returnFocusTo === 'object' &&\n returnFocusTo?.current &&\n isFocusInside(returnFocusTo.current)\n )\n return;\n\n if (focusCameFrom) {\n setFocus(trapRef.current, focusCameFrom, focusMovedTo);\n }\n\n onFocusOut?.(event);\n });\n },\n [onFocusOut],\n );\n const handleMouseEvent = React.useCallback(() => {\n lastUserInteractionRef.current = 'mouse';\n }, []);\n const handleKeyboardEvent = React.useCallback(() => {\n lastUserInteractionRef.current = 'keyboard';\n }, []);\n const returnFocus = React.useCallback(() => {\n const trapNode = trapRef.current;\n if (trapNode && !isFocusInside(trapNode)) return;\n if (typeof returnFocusTo === 'object' && returnFocusTo?.current) {\n const returnFocusNode = returnFocusTo?.current;\n setTimeout(() => setFocus(returnFocusNode, trapNode), 0);\n }\n if (returnFocusTo === 'auto' && autoTriggerRef.current) {\n const autoTrigger = autoTriggerRef.current;\n setTimeout(() => setFocus(autoTrigger, trapNode), 0);\n }\n }, [returnFocusTo]);\n React.useEffect(() => {\n if (typeof trapRef !== 'object' || trapRef === null) return;\n const node = trapRef.current;\n if (!node) return;\n focusLockAllTraps.add(node);\n return () => {\n if (!node) return;\n focusLockAllTraps.delete(node);\n };\n }, [disabled]);\n React.useEffect(() => {\n if (typeof trapRef !== 'object' || trapRef === null) return;\n if (disabled) return;\n if (!canUseDOM()) return;\n if (!trapRef.current) return;\n const focusableChildren = Array.from(trapRef.current.children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n if (focusableChildren.length === 0) return;\n\n if (focusMaster) {\n focusMastersStack.push(trapRef.current);\n }\n\n return () => {\n if (!focusMaster) return;\n if (focusMastersStack[focusMastersStack.length - 1] === trapRef.current) {\n focusMastersStack.pop();\n } else {\n focusMastersStack.splice(focusMastersStack.indexOf(trapRef.current!), 1);\n }\n };\n }, [disabled, focusMaster]);\n React.useEffect(() => {\n if (disabled) return;\n if (!canUseDOM()) return;\n if (!trapRef.current) return;\n const focusableChildren = Array.from(trapRef.current.children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n if (focusableChildren.length === 0 && autoFocus !== 'enforced') return;\n\n document.body.addEventListener('focusout', handleFocusOut as any);\n document.body.addEventListener('mousedown', handleMouseEvent);\n document.body.addEventListener('touchstart', handleMouseEvent);\n document.body.addEventListener('keydown', handleKeyboardEvent);\n\n if (autoFocus)\n setFocus(\n trapRef.current,\n typeof returnFocusTo === 'object' ? returnFocusTo?.current : document.body,\n );\n\n return () => {\n document.body.removeEventListener('focusout', handleFocusOut as any);\n document.body.removeEventListener('mousedown', handleMouseEvent);\n document.body.removeEventListener('touchstart', handleMouseEvent);\n document.body.removeEventListener('keydown', handleKeyboardEvent);\n returnFocus();\n autoTriggerRef.current = null;\n };\n }, [disabled, autoFocus, returnFocusTo, returnFocus]);\n\n useUniqueIdHookMock(React);\n React.useEffect(() => {\n const id = getUniqueId('focus-lock-consumer');\n if (disabled) return;\n focusLockUsedInMountedComponents.add(id);\n return () => {\n focusLockUsedInMountedComponents.delete(id);\n };\n }, [disabled]);\n};\nconst establishHookAsGlobal = () => {\n (globalThis as any)[globalFocusLockHookKey] = {\n hook: useFocusLockHook,\n version: focusLockVersion,\n usedInComponents: focusLockUsedInMountedComponents,\n };\n};\nif (!(globalThis as any)[globalFocusLockHookKey]) {\n establishHookAsGlobal();\n} else if (typeof (globalThis as any)[globalFocusLockHookKey].version !== 'number') {\n establishHookAsGlobal();\n} else {\n const { version: theirVersion, usedInComponents } = (globalThis as any)[globalFocusLockHookKey];\n if (focusLockVersion > theirVersion && usedInComponents.size === 0) {\n establishHookAsGlobal();\n }\n}\n\nexport const useFocusLock = (\n trapRef: React.RefObject<HTMLElement>,\n autoFocus: boolean,\n returnFocusTo: React.RefObject<HTMLElement> | null | 'auto',\n disabled = false,\n focusMaster = false,\n onFocusOut?: (event: Event) => void,\n) => {\n const hook = (globalThis as any)[globalFocusLockHookKey]?.hook ?? useFocusLockHook;\n return hook(LocalReact, trapRef, autoFocus, returnFocusTo, disabled, focusMaster, onFocusOut);\n};\n\nexport const hasFocusableIn = (element: HTMLElement): boolean => {\n return (\n Array.from(element.children).flatMap((node) => getFocusableIn(node as HTMLElement)).length > 0\n );\n};\n"],"mappings":"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"}
|
@@ -165,7 +165,7 @@ var useFocusLockHook = function useFocusLockHook(React, trapRef, autoFocus, retu
|
|
165
165
|
var focusableChildren = Array.from(trapRef.current.children).flatMap(function (node) {
|
166
166
|
return getFocusableIn(node);
|
167
167
|
});
|
168
|
-
if (focusableChildren.length === 0) return;
|
168
|
+
if (focusableChildren.length === 0 && autoFocus !== 'enforced') return;
|
169
169
|
document.body.addEventListener('focusout', handleFocusOut);
|
170
170
|
document.body.addEventListener('mousedown', handleMouseEvent);
|
171
171
|
document.body.addEventListener('touchstart', handleMouseEvent);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useFocusLock.mjs","names":["canUseDOM","LocalReact","isFocusInside","setFocus","getFocusableIn","addFocusBorders","removeFocusBorders","areFocusBordersPlacedCorrectly","focusBordersConsumers","Set","useFocusBorders","React","disabled","useUniqueIdHookMock","useEffect","id","getUniqueId","add","size","uniqueId","prefix","concat","Math","random","toString","slice","focusLockVersion","globalFocusLockHookKey","focusLockAllTraps","focusLockUsedInMountedComponents","focusMastersStack","noop","useState","undefined","useEnhancedEffect","useLayoutEffect","useFocusLockHook","trapRef","autoFocus","returnFocusTo","arguments","length","focusMaster","onFocusOut","autoTriggerRef","useRef","lastUserInteractionRef","handleFocusOut","useCallback","event","focusCameFrom","target","focusMovedTo","relatedTarget","setTimeout","current","Promise","resolve","then","currentFocusMaster","trapNodes","_toConsumableArray","_typeof","handleMouseEvent","handleKeyboardEvent","returnFocus","trapNode","returnFocusNode","autoTrigger","node","focusableChildren","Array","from","children","flatMap","push","pop","splice","indexOf","document","body","addEventListener","removeEventListener","establishHookAsGlobal","globalThis","hook","version","usedInComponents","_globalFocusLockHookK","theirVersion","useFocusLock","_globalFocusLockHookK2","_globalFocusLockHookK3","hasFocusableIn","element"],"sources":["../../src/use/useFocusLock.ts"],"sourcesContent":["import canUseDOM from '../canUseDOM';\nimport LocalReact from 'react';\n\nimport { isFocusInside } from '../focus-lock/isFocusInside';\nimport { setFocus } from '../focus-lock/setFocus';\nimport { getFocusableIn } from '../focus-lock/getFocusableIn';\nimport {\n addFocusBorders,\n removeFocusBorders,\n areFocusBordersPlacedCorrectly,\n} from '../focus-lock/focusBorders';\n\nexport { isFocusInside, setFocus };\n\nconst focusBordersConsumers = new Set();\n\nconst useFocusBorders = (React: ReactT, disabled?: boolean) => {\n useUniqueIdHookMock(React);\n React.useEffect(() => {\n const id = getUniqueId('focus-borders-consumer');\n if (!disabled) {\n focusBordersConsumers.add(id);\n }\n\n if (!areFocusBordersPlacedCorrectly()) removeFocusBorders();\n if (focusBordersConsumers.size > 0) addFocusBorders();\n\n return () => {\n focusBordersConsumers.delete(id);\n if (focusBordersConsumers.size === 0) removeFocusBorders();\n };\n }, [disabled]);\n};\n\ntype ReactT = typeof LocalReact;\n\nlet uniqueId = 0;\nconst getUniqueId = (prefix: string) =>\n `${prefix}-${Math.random().toString(36).slice(2)}-${uniqueId++}`;\n\n/**\n * # Focus lock hook merging\n * In some cases same page might contain different versions of components.\n * In such cases, we need to ensure that only one version of focus lock hook is used.\n * So, it's why we have `useFocusLockHook` function that is wrapped into `useFocusLock`.\n *\n * While evaluating this file code, we check if global focus lock hook is already defined.\n * If it's defined, we replace it ONLY if our version is higher and no components currently use it.\n * The last condition is very important because we are unable to replace React hook without reimplementing\n * React hooks lifecycle in some kind of wrapper.\n *\n * ## Versioning\n * Such versions merging requires us to keep hook api backward compatible.\n * When hook logic changes, the variable `focusLockVersion` should be incremented.\n *\n * Version update `1 -> 2`. Fixed call `safeMoveFocusInside` in `handleFocusIn` with correct second parameter (focusCameFrom instead of event.target)\n * Version update `2 -> 3`. Fixed React version isolation in nested hooks (`useFocusBorders`, `useUniqueId`).\n *\n * Initially (for a several versions) key was `__intergalactic_focus_lock_hook_`.\n * Making it respect react version required to change key. So key was changed to `__intergalactic_focus_lock_hook_react_v_respectful`.\n *\n * ## React hooks order\n * When updating from version 2 to version 3 `useUniqueId` hook was removed.\n * Due to replacing useFocusLock hook in runtime, the order of hooks must be preserved.\n * So, useUniqueIdHookMock helps to preserve hooks order when hook is being replaced from version 2 to version 3.\n *\n * If new update requires to remove some hooks – add mocks instead of them.\n * If new update requires to add some hooks and no workaround with current hooks list is possible – probably focus lock hook key should be changed.\n */\nconst focusLockVersion = 3;\nconst globalFocusLockHookKey = '__intergalactic_focus_lock_hook_react_v_respectful';\n\nconst focusLockAllTraps = new Set<HTMLElement>();\nconst focusLockUsedInMountedComponents = new Set<string>();\n/** Focus master is a special mode in which focus lock might work.\n * Normally, focus lock hook allows user focus to move freely between\n * all active focus traps. When component provides `focusMaster=true`\n * parameter, it says that it doesn't want to share focus with other traps.\n * It is very useful for a big components like modals or side-bars that\n * also have some visual backdrop.\n * The last element in focus masters stack is considered as a current focus master.\n */\nconst focusMastersStack: HTMLElement[] = [];\n\nconst noop = () => {};\nconst useUniqueIdHookMock = (React: ReactT) => {\n React.useState(undefined);\n const useEnhancedEffect = canUseDOM() ? React.useLayoutEffect : React.useEffect;\n useEnhancedEffect(noop, []);\n};\n\nconst useFocusLockHook = (\n React: ReactT,\n trapRef: React.RefObject<HTMLElement>,\n autoFocus: boolean,\n returnFocusTo: React.RefObject<HTMLElement> | null | 'auto',\n disabled = false,\n focusMaster = false,\n onFocusOut?: (event: Event) => void,\n) => {\n useFocusBorders(React, disabled);\n\n const autoTriggerRef = React.useRef<HTMLElement | null>(null);\n const lastUserInteractionRef = React.useRef<'mouse' | 'keyboard' | undefined>(undefined);\n\n const handleFocusOut = React.useCallback(\n (event: Event & { relatedTarget?: HTMLElement; target?: HTMLElement }) => {\n const focusCameFrom = event.target;\n const focusMovedTo = event.relatedTarget;\n\n setTimeout(() => {\n if (!focusCameFrom) return;\n if (autoTriggerRef.current) return;\n autoTriggerRef.current = focusCameFrom;\n }, 0);\n if (lastUserInteractionRef.current === 'mouse') return;\n Promise.resolve().then(() => {\n if (!trapRef.current) return;\n const currentFocusMaster = focusMastersStack[focusMastersStack.length - 1];\n if (currentFocusMaster && currentFocusMaster !== trapRef.current) return;\n const trapNodes = currentFocusMaster\n ? [trapRef.current]\n : [trapRef.current, ...focusLockAllTraps];\n if (isFocusInside(trapNodes, focusMovedTo)) return;\n if (\n typeof returnFocusTo === 'object' &&\n returnFocusTo?.current &&\n isFocusInside(returnFocusTo.current)\n )\n return;\n\n if (focusCameFrom) {\n setFocus(trapRef.current, focusCameFrom, focusMovedTo);\n }\n\n onFocusOut?.(event);\n });\n },\n [onFocusOut],\n );\n const handleMouseEvent = React.useCallback(() => {\n lastUserInteractionRef.current = 'mouse';\n }, []);\n const handleKeyboardEvent = React.useCallback(() => {\n lastUserInteractionRef.current = 'keyboard';\n }, []);\n const returnFocus = React.useCallback(() => {\n const trapNode = trapRef.current;\n if (trapNode && !isFocusInside(trapNode)) return;\n if (typeof returnFocusTo === 'object' && returnFocusTo?.current) {\n const returnFocusNode = returnFocusTo?.current;\n setTimeout(() => setFocus(returnFocusNode, trapNode), 0);\n }\n if (returnFocusTo === 'auto' && autoTriggerRef.current) {\n const autoTrigger = autoTriggerRef.current;\n setTimeout(() => setFocus(autoTrigger, trapNode), 0);\n }\n }, [returnFocusTo]);\n React.useEffect(() => {\n if (typeof trapRef !== 'object' || trapRef === null) return;\n const node = trapRef.current;\n if (!node) return;\n focusLockAllTraps.add(node);\n return () => {\n if (!node) return;\n focusLockAllTraps.delete(node);\n };\n }, [disabled]);\n React.useEffect(() => {\n if (typeof trapRef !== 'object' || trapRef === null) return;\n if (disabled) return;\n if (!canUseDOM()) return;\n if (!trapRef.current) return;\n const focusableChildren = Array.from(trapRef.current.children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n if (focusableChildren.length === 0) return;\n\n if (focusMaster) {\n focusMastersStack.push(trapRef.current);\n }\n\n return () => {\n if (!focusMaster) return;\n if (focusMastersStack[focusMastersStack.length - 1] === trapRef.current) {\n focusMastersStack.pop();\n } else {\n focusMastersStack.splice(focusMastersStack.indexOf(trapRef.current!), 1);\n }\n };\n }, [disabled, focusMaster]);\n React.useEffect(() => {\n if (disabled) return;\n if (!canUseDOM()) return;\n if (!trapRef.current) return;\n const focusableChildren = Array.from(trapRef.current.children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n if (focusableChildren.length === 0) return;\n\n document.body.addEventListener('focusout', handleFocusOut as any);\n document.body.addEventListener('mousedown', handleMouseEvent);\n document.body.addEventListener('touchstart', handleMouseEvent);\n document.body.addEventListener('keydown', handleKeyboardEvent);\n\n if (autoFocus)\n setFocus(\n trapRef.current,\n typeof returnFocusTo === 'object' ? returnFocusTo?.current : document.body,\n );\n\n return () => {\n document.body.removeEventListener('focusout', handleFocusOut as any);\n document.body.removeEventListener('mousedown', handleMouseEvent);\n document.body.removeEventListener('touchstart', handleMouseEvent);\n document.body.removeEventListener('keydown', handleKeyboardEvent);\n returnFocus();\n autoTriggerRef.current = null;\n };\n }, [disabled, autoFocus, returnFocusTo, returnFocus]);\n\n useUniqueIdHookMock(React);\n React.useEffect(() => {\n const id = getUniqueId('focus-lock-consumer');\n if (disabled) return;\n focusLockUsedInMountedComponents.add(id);\n return () => {\n focusLockUsedInMountedComponents.delete(id);\n };\n }, [disabled]);\n};\nconst establishHookAsGlobal = () => {\n (globalThis as any)[globalFocusLockHookKey] = {\n hook: useFocusLockHook,\n version: focusLockVersion,\n usedInComponents: focusLockUsedInMountedComponents,\n };\n};\nif (!(globalThis as any)[globalFocusLockHookKey]) {\n establishHookAsGlobal();\n} else if (typeof (globalThis as any)[globalFocusLockHookKey].version !== 'number') {\n establishHookAsGlobal();\n} else {\n const { version: theirVersion, usedInComponents } = (globalThis as any)[globalFocusLockHookKey];\n if (focusLockVersion > theirVersion && usedInComponents.size === 0) {\n establishHookAsGlobal();\n }\n}\n\nexport const useFocusLock = (\n trapRef: React.RefObject<HTMLElement>,\n autoFocus: boolean,\n returnFocusTo: React.RefObject<HTMLElement> | null | 'auto',\n disabled = false,\n focusMaster = false,\n onFocusOut?: (event: Event) => void,\n) => {\n const hook = (globalThis as any)[globalFocusLockHookKey]?.hook ?? useFocusLockHook;\n return hook(LocalReact, trapRef, autoFocus, returnFocusTo, disabled, focusMaster, onFocusOut);\n};\n\nexport const hasFocusableIn = (element: HTMLElement): boolean => {\n return (\n Array.from(element.children).flatMap((node) => getFocusableIn(node as HTMLElement)).length > 0\n );\n};\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"useFocusLock.mjs","names":["canUseDOM","LocalReact","isFocusInside","setFocus","getFocusableIn","addFocusBorders","removeFocusBorders","areFocusBordersPlacedCorrectly","focusBordersConsumers","Set","useFocusBorders","React","disabled","useUniqueIdHookMock","useEffect","id","getUniqueId","add","size","uniqueId","prefix","concat","Math","random","toString","slice","focusLockVersion","globalFocusLockHookKey","focusLockAllTraps","focusLockUsedInMountedComponents","focusMastersStack","noop","useState","undefined","useEnhancedEffect","useLayoutEffect","useFocusLockHook","trapRef","autoFocus","returnFocusTo","arguments","length","focusMaster","onFocusOut","autoTriggerRef","useRef","lastUserInteractionRef","handleFocusOut","useCallback","event","focusCameFrom","target","focusMovedTo","relatedTarget","setTimeout","current","Promise","resolve","then","currentFocusMaster","trapNodes","_toConsumableArray","_typeof","handleMouseEvent","handleKeyboardEvent","returnFocus","trapNode","returnFocusNode","autoTrigger","node","focusableChildren","Array","from","children","flatMap","push","pop","splice","indexOf","document","body","addEventListener","removeEventListener","establishHookAsGlobal","globalThis","hook","version","usedInComponents","_globalFocusLockHookK","theirVersion","useFocusLock","_globalFocusLockHookK2","_globalFocusLockHookK3","hasFocusableIn","element"],"sources":["../../src/use/useFocusLock.ts"],"sourcesContent":["import canUseDOM from '../canUseDOM';\nimport LocalReact from 'react';\n\nimport { isFocusInside } from '../focus-lock/isFocusInside';\nimport { setFocus } from '../focus-lock/setFocus';\nimport { getFocusableIn } from '../focus-lock/getFocusableIn';\nimport {\n addFocusBorders,\n removeFocusBorders,\n areFocusBordersPlacedCorrectly,\n} from '../focus-lock/focusBorders';\n\nexport { isFocusInside, setFocus };\n\nconst focusBordersConsumers = new Set();\n\nconst useFocusBorders = (React: ReactT, disabled?: boolean) => {\n useUniqueIdHookMock(React);\n React.useEffect(() => {\n const id = getUniqueId('focus-borders-consumer');\n if (!disabled) {\n focusBordersConsumers.add(id);\n }\n\n if (!areFocusBordersPlacedCorrectly()) removeFocusBorders();\n if (focusBordersConsumers.size > 0) addFocusBorders();\n\n return () => {\n focusBordersConsumers.delete(id);\n if (focusBordersConsumers.size === 0) removeFocusBorders();\n };\n }, [disabled]);\n};\n\ntype ReactT = typeof LocalReact;\n\nlet uniqueId = 0;\nconst getUniqueId = (prefix: string) =>\n `${prefix}-${Math.random().toString(36).slice(2)}-${uniqueId++}`;\n\n/**\n * # Focus lock hook merging\n * In some cases same page might contain different versions of components.\n * In such cases, we need to ensure that only one version of focus lock hook is used.\n * So, it's why we have `useFocusLockHook` function that is wrapped into `useFocusLock`.\n *\n * While evaluating this file code, we check if global focus lock hook is already defined.\n * If it's defined, we replace it ONLY if our version is higher and no components currently use it.\n * The last condition is very important because we are unable to replace React hook without reimplementing\n * React hooks lifecycle in some kind of wrapper.\n *\n * ## Versioning\n * Such versions merging requires us to keep hook api backward compatible.\n * When hook logic changes, the variable `focusLockVersion` should be incremented.\n *\n * Version update `1 -> 2`. Fixed call `safeMoveFocusInside` in `handleFocusIn` with correct second parameter (focusCameFrom instead of event.target)\n * Version update `2 -> 3`. Fixed React version isolation in nested hooks (`useFocusBorders`, `useUniqueId`).\n *\n * Initially (for a several versions) key was `__intergalactic_focus_lock_hook_`.\n * Making it respect react version required to change key. So key was changed to `__intergalactic_focus_lock_hook_react_v_respectful`.\n *\n * ## React hooks order\n * When updating from version 2 to version 3 `useUniqueId` hook was removed.\n * Due to replacing useFocusLock hook in runtime, the order of hooks must be preserved.\n * So, useUniqueIdHookMock helps to preserve hooks order when hook is being replaced from version 2 to version 3.\n *\n * If new update requires to remove some hooks – add mocks instead of them.\n * If new update requires to add some hooks and no workaround with current hooks list is possible – probably focus lock hook key should be changed.\n */\nconst focusLockVersion = 3;\nconst globalFocusLockHookKey = '__intergalactic_focus_lock_hook_react_v_respectful';\n\nconst focusLockAllTraps = new Set<HTMLElement>();\nconst focusLockUsedInMountedComponents = new Set<string>();\n/** Focus master is a special mode in which focus lock might work.\n * Normally, focus lock hook allows user focus to move freely between\n * all active focus traps. When component provides `focusMaster=true`\n * parameter, it says that it doesn't want to share focus with other traps.\n * It is very useful for a big components like modals or side-bars that\n * also have some visual backdrop.\n * The last element in focus masters stack is considered as a current focus master.\n */\nconst focusMastersStack: HTMLElement[] = [];\n\nconst noop = () => {};\nconst useUniqueIdHookMock = (React: ReactT) => {\n React.useState(undefined);\n const useEnhancedEffect = canUseDOM() ? React.useLayoutEffect : React.useEffect;\n useEnhancedEffect(noop, []);\n};\n\nconst useFocusLockHook = (\n React: ReactT,\n trapRef: React.RefObject<HTMLElement>,\n autoFocus: boolean | 'enforced',\n returnFocusTo: React.RefObject<HTMLElement> | null | 'auto',\n disabled = false,\n focusMaster = false,\n onFocusOut?: (event: Event) => void,\n) => {\n useFocusBorders(React, disabled);\n\n const autoTriggerRef = React.useRef<HTMLElement | null>(null);\n const lastUserInteractionRef = React.useRef<'mouse' | 'keyboard' | undefined>(undefined);\n\n const handleFocusOut = React.useCallback(\n (event: Event & { relatedTarget?: HTMLElement; target?: HTMLElement }) => {\n const focusCameFrom = event.target;\n const focusMovedTo = event.relatedTarget;\n\n setTimeout(() => {\n if (!focusCameFrom) return;\n if (autoTriggerRef.current) return;\n autoTriggerRef.current = focusCameFrom;\n }, 0);\n if (lastUserInteractionRef.current === 'mouse') return;\n Promise.resolve().then(() => {\n if (!trapRef.current) return;\n const currentFocusMaster = focusMastersStack[focusMastersStack.length - 1];\n if (currentFocusMaster && currentFocusMaster !== trapRef.current) return;\n const trapNodes = currentFocusMaster\n ? [trapRef.current]\n : [trapRef.current, ...focusLockAllTraps];\n if (isFocusInside(trapNodes, focusMovedTo)) return;\n if (\n typeof returnFocusTo === 'object' &&\n returnFocusTo?.current &&\n isFocusInside(returnFocusTo.current)\n )\n return;\n\n if (focusCameFrom) {\n setFocus(trapRef.current, focusCameFrom, focusMovedTo);\n }\n\n onFocusOut?.(event);\n });\n },\n [onFocusOut],\n );\n const handleMouseEvent = React.useCallback(() => {\n lastUserInteractionRef.current = 'mouse';\n }, []);\n const handleKeyboardEvent = React.useCallback(() => {\n lastUserInteractionRef.current = 'keyboard';\n }, []);\n const returnFocus = React.useCallback(() => {\n const trapNode = trapRef.current;\n if (trapNode && !isFocusInside(trapNode)) return;\n if (typeof returnFocusTo === 'object' && returnFocusTo?.current) {\n const returnFocusNode = returnFocusTo?.current;\n setTimeout(() => setFocus(returnFocusNode, trapNode), 0);\n }\n if (returnFocusTo === 'auto' && autoTriggerRef.current) {\n const autoTrigger = autoTriggerRef.current;\n setTimeout(() => setFocus(autoTrigger, trapNode), 0);\n }\n }, [returnFocusTo]);\n React.useEffect(() => {\n if (typeof trapRef !== 'object' || trapRef === null) return;\n const node = trapRef.current;\n if (!node) return;\n focusLockAllTraps.add(node);\n return () => {\n if (!node) return;\n focusLockAllTraps.delete(node);\n };\n }, [disabled]);\n React.useEffect(() => {\n if (typeof trapRef !== 'object' || trapRef === null) return;\n if (disabled) return;\n if (!canUseDOM()) return;\n if (!trapRef.current) return;\n const focusableChildren = Array.from(trapRef.current.children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n if (focusableChildren.length === 0) return;\n\n if (focusMaster) {\n focusMastersStack.push(trapRef.current);\n }\n\n return () => {\n if (!focusMaster) return;\n if (focusMastersStack[focusMastersStack.length - 1] === trapRef.current) {\n focusMastersStack.pop();\n } else {\n focusMastersStack.splice(focusMastersStack.indexOf(trapRef.current!), 1);\n }\n };\n }, [disabled, focusMaster]);\n React.useEffect(() => {\n if (disabled) return;\n if (!canUseDOM()) return;\n if (!trapRef.current) return;\n const focusableChildren = Array.from(trapRef.current.children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n if (focusableChildren.length === 0 && autoFocus !== 'enforced') return;\n\n document.body.addEventListener('focusout', handleFocusOut as any);\n document.body.addEventListener('mousedown', handleMouseEvent);\n document.body.addEventListener('touchstart', handleMouseEvent);\n document.body.addEventListener('keydown', handleKeyboardEvent);\n\n if (autoFocus)\n setFocus(\n trapRef.current,\n typeof returnFocusTo === 'object' ? returnFocusTo?.current : document.body,\n );\n\n return () => {\n document.body.removeEventListener('focusout', handleFocusOut as any);\n document.body.removeEventListener('mousedown', handleMouseEvent);\n document.body.removeEventListener('touchstart', handleMouseEvent);\n document.body.removeEventListener('keydown', handleKeyboardEvent);\n returnFocus();\n autoTriggerRef.current = null;\n };\n }, [disabled, autoFocus, returnFocusTo, returnFocus]);\n\n useUniqueIdHookMock(React);\n React.useEffect(() => {\n const id = getUniqueId('focus-lock-consumer');\n if (disabled) return;\n focusLockUsedInMountedComponents.add(id);\n return () => {\n focusLockUsedInMountedComponents.delete(id);\n };\n }, [disabled]);\n};\nconst establishHookAsGlobal = () => {\n (globalThis as any)[globalFocusLockHookKey] = {\n hook: useFocusLockHook,\n version: focusLockVersion,\n usedInComponents: focusLockUsedInMountedComponents,\n };\n};\nif (!(globalThis as any)[globalFocusLockHookKey]) {\n establishHookAsGlobal();\n} else if (typeof (globalThis as any)[globalFocusLockHookKey].version !== 'number') {\n establishHookAsGlobal();\n} else {\n const { version: theirVersion, usedInComponents } = (globalThis as any)[globalFocusLockHookKey];\n if (focusLockVersion > theirVersion && usedInComponents.size === 0) {\n establishHookAsGlobal();\n }\n}\n\nexport const useFocusLock = (\n trapRef: React.RefObject<HTMLElement>,\n autoFocus: boolean,\n returnFocusTo: React.RefObject<HTMLElement> | null | 'auto',\n disabled = false,\n focusMaster = false,\n onFocusOut?: (event: Event) => void,\n) => {\n const hook = (globalThis as any)[globalFocusLockHookKey]?.hook ?? useFocusLockHook;\n return hook(LocalReact, trapRef, autoFocus, returnFocusTo, disabled, focusMaster, onFocusOut);\n};\n\nexport const hasFocusableIn = (element: HTMLElement): boolean => {\n return (\n Array.from(element.children).flatMap((node) => getFocusableIn(node as HTMLElement)).length > 0\n );\n};\n"],"mappings":"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"}
|
@@ -18,11 +18,11 @@ var _illustration = require("intergalactic/illustration");
|
|
18
18
|
var _flexBox = require("intergalactic/flex-box");
|
19
19
|
var _isNode = _interopRequireDefault(require("intergalactic/utils/lib/isNode"));
|
20
20
|
/*__reshadow-styles__:"./style/widget-empty.shadow.css"*/
|
21
|
-
var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".
|
22
|
-
"__SWidgetEmpty": "
|
23
|
-
"__SImage": "
|
24
|
-
"__STitle": "
|
25
|
-
"__SDescription": "
|
21
|
+
var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SWidgetEmpty_1v83n_gg_{flex-direction:column;justify-content:center;align-items:center;margin-bottom:var(--intergalactic-spacing-4x, 16px)}.___SImage_1v83n_gg_{display:flex;align-items:flex-end;justify-content:center;margin-bottom:var(--intergalactic-spacing-3x, 12px)}.___SDescription_1v83n_gg_,.___STitle_1v83n_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}.___STitle_1v83n_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%);font-weight:var(--intergalactic-bold, 700)}.___SDescription_1v83n_gg_{text-align:center;font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%);max-width:400px}.___STitle_1v83n_gg_+.___SDescription_1v83n_gg_{margin-top:var(--intergalactic-spacing-1x, 4px)}.___SDescription_1v83n_gg_+.___SDescription_1v83n_gg_{margin-top:var(--intergalactic-spacing-2x, 8px)}" /*__inner_css_end__*/, "1v83n_gg_") /*__reshadow_css_end__*/, {
|
22
|
+
"__SWidgetEmpty": "___SWidgetEmpty_1v83n_gg_",
|
23
|
+
"__SImage": "___SImage_1v83n_gg_",
|
24
|
+
"__STitle": "___STitle_1v83n_gg_",
|
25
|
+
"__SDescription": "___SDescription_1v83n_gg_"
|
26
26
|
});
|
27
27
|
var getIconPath = function getIconPath(name) {
|
28
28
|
return (0, _illustration.getIllustrationPath)(name);
|
@@ -14,11 +14,11 @@ import { getIllustrationPath } from 'intergalactic/illustration';
|
|
14
14
|
import { Box, Flex } from 'intergalactic/flex-box';
|
15
15
|
import isNode from 'intergalactic/utils/lib/isNode';
|
16
16
|
/*__reshadow-styles__:"./style/widget-empty.shadow.css"*/
|
17
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
18
|
-
"__SWidgetEmpty": "
|
19
|
-
"__SImage": "
|
20
|
-
"__STitle": "
|
21
|
-
"__SDescription": "
|
17
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SWidgetEmpty_1v83n_gg_{flex-direction:column;justify-content:center;align-items:center;margin-bottom:var(--intergalactic-spacing-4x, 16px)}.___SImage_1v83n_gg_{display:flex;align-items:flex-end;justify-content:center;margin-bottom:var(--intergalactic-spacing-3x, 12px)}.___SDescription_1v83n_gg_,.___STitle_1v83n_gg_{color:var(--intergalactic-text-secondary, #6c6e79)}.___STitle_1v83n_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%);font-weight:var(--intergalactic-bold, 700)}.___SDescription_1v83n_gg_{text-align:center;font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%);max-width:400px}.___STitle_1v83n_gg_+.___SDescription_1v83n_gg_{margin-top:var(--intergalactic-spacing-1x, 4px)}.___SDescription_1v83n_gg_+.___SDescription_1v83n_gg_{margin-top:var(--intergalactic-spacing-2x, 8px)}" /*__inner_css_end__*/, "1v83n_gg_") /*__reshadow_css_end__*/, {
|
18
|
+
"__SWidgetEmpty": "___SWidgetEmpty_1v83n_gg_",
|
19
|
+
"__SImage": "___SImage_1v83n_gg_",
|
20
|
+
"__STitle": "___STitle_1v83n_gg_",
|
21
|
+
"__SDescription": "___SDescription_1v83n_gg_"
|
22
22
|
});
|
23
23
|
export var getIconPath = function getIconPath(name) {
|
24
24
|
return getIllustrationPath(name);
|