@lumx/react 2.2.6 → 2.2.9-alpha-exported-hooks1
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/esm/_internal/{_rollupPluginBabelHelpers.js → _rolluppluginbabelhelpers.53.js} +1 -1
- package/esm/_internal/_rolluppluginbabelhelpers.53.js.map +1 -0
- package/esm/_internal/alert-dialog.js +19 -19
- package/esm/_internal/{AlertDialog.js → alertdialog.1.js} +8 -8
- package/esm/_internal/alertdialog.1.js.map +1 -0
- package/esm/_internal/autocomplete.js +20 -21
- package/esm/_internal/autocomplete.js.map +1 -1
- package/esm/_internal/{AutocompleteMultiple.js → autocompletemultiple.2.js} +9 -9
- package/esm/_internal/autocompletemultiple.2.js.map +1 -0
- package/esm/_internal/{Avatar2.js → avatar.3.js} +4 -4
- package/esm/_internal/avatar.3.js.map +1 -0
- package/esm/_internal/avatar.js +6 -6
- package/esm/_internal/{Badge2.js → badge.4.js} +3 -3
- package/esm/_internal/badge.4.js.map +1 -0
- package/esm/_internal/badge.js +3 -3
- package/esm/_internal/{Button2.js → button.5.js} +5 -5
- package/esm/_internal/button.5.js.map +1 -0
- package/esm/_internal/button.js +14 -15
- package/esm/_internal/button.js.map +1 -1
- package/esm/_internal/{ButtonGroup.js → buttongroup.7.js} +3 -3
- package/esm/_internal/buttongroup.7.js.map +1 -0
- package/esm/_internal/{ButtonRoot.js → buttonroot.57.js} +4 -4
- package/esm/_internal/buttonroot.57.js.map +1 -0
- package/esm/_internal/{Checkbox2.js → checkbox.8.js} +7 -7
- package/esm/_internal/checkbox.8.js.map +1 -0
- package/esm/_internal/checkbox.js +7 -7
- package/esm/_internal/{Chip2.js → chip.9.js} +3 -3
- package/esm/_internal/chip.9.js.map +1 -0
- package/esm/_internal/chip.js +4 -4
- package/esm/_internal/{ChipGroup.js → chipgroup.10.js} +3 -3
- package/esm/_internal/chipgroup.10.js.map +1 -0
- package/esm/_internal/{ClickAwayProvider.js → clickawayprovider.60.js} +4 -4
- package/esm/_internal/clickawayprovider.60.js.map +1 -0
- package/esm/_internal/comment-block.js +7 -7
- package/esm/_internal/{CommentBlock.js → commentblock.11.js} +4 -4
- package/esm/_internal/commentblock.11.js.map +1 -0
- package/esm/_internal/components.js +1 -1
- package/esm/_internal/{constants.js → constants.59.js} +1 -1
- package/esm/_internal/constants.59.js.map +1 -0
- package/esm/_internal/date-picker.js +18 -19
- package/esm/_internal/date-picker.js.map +1 -1
- package/esm/_internal/{DatePickerField.js → datepickerfield.12.js} +9 -9
- package/esm/_internal/datepickerfield.12.js.map +1 -0
- package/esm/_internal/{Dialog2.js → dialog.13.js} +12 -12
- package/esm/_internal/dialog.13.js.map +1 -0
- package/esm/_internal/dialog.js +12 -12
- package/esm/_internal/{Divider2.js → divider.14.js} +3 -3
- package/esm/_internal/divider.14.js.map +1 -0
- package/esm/_internal/divider.js +3 -3
- package/esm/_internal/drag-handle.js +4 -4
- package/esm/_internal/{DragHandle.js → draghandle.15.js} +4 -4
- package/esm/_internal/draghandle.15.js.map +1 -0
- package/esm/_internal/{Dropdown2.js → dropdown.16.js} +6 -6
- package/esm/_internal/dropdown.16.js.map +1 -0
- package/esm/_internal/dropdown.js +10 -10
- package/esm/_internal/expansion-panel.js +16 -17
- package/esm/_internal/expansion-panel.js.map +1 -1
- package/esm/_internal/{ExpansionPanel.js → expansionpanel.17.js} +8 -8
- package/esm/_internal/expansionpanel.17.js.map +1 -0
- package/esm/_internal/{Flag2.js → flag.18.js} +4 -4
- package/esm/_internal/flag.18.js.map +1 -0
- package/esm/_internal/flag.js +4 -4
- package/esm/_internal/flex-box.js +3 -3
- package/esm/_internal/{FlexBox.js → flexbox.19.js} +3 -3
- package/esm/_internal/flexbox.19.js.map +1 -0
- package/esm/_internal/{getRootClassName.js → getrootclassname.54.js} +21 -3
- package/esm/_internal/getrootclassname.54.js.map +1 -0
- package/esm/_internal/grid.js +3 -3
- package/esm/_internal/{GridItem.js → griditem.20.js} +3 -3
- package/esm/_internal/griditem.20.js.map +1 -0
- package/esm/_internal/{Icon2.js → icon.21.js} +8 -5
- package/esm/_internal/icon.21.js.map +1 -0
- package/esm/_internal/icon.js +3 -3
- package/esm/_internal/{IconButton.js → iconbutton.6.js} +6 -6
- package/esm/_internal/iconbutton.6.js.map +1 -0
- package/esm/_internal/image-block.js +6 -6
- package/esm/_internal/{ImageBlock.js → imageblock.22.js} +4 -4
- package/esm/_internal/imageblock.22.js.map +1 -0
- package/esm/{index2.js → _internal/index.55.js} +1 -1
- package/esm/_internal/index.55.js.map +1 -0
- package/esm/_internal/input-helper.js +3 -3
- package/esm/_internal/input-label.js +3 -3
- package/esm/_internal/{InputHelper.js → inputhelper.23.js} +3 -3
- package/esm/_internal/inputhelper.23.js.map +1 -0
- package/esm/_internal/{InputLabel.js → inputlabel.24.js} +3 -3
- package/esm/_internal/inputlabel.24.js.map +1 -0
- package/esm/_internal/{Lightbox2.js → lightbox.25.js} +17 -15
- package/esm/_internal/lightbox.25.js.map +1 -0
- package/esm/_internal/lightbox.js +16 -17
- package/esm/_internal/lightbox.js.map +1 -1
- package/esm/_internal/link-preview.js +8 -8
- package/esm/_internal/{Link2.js → link.26.js} +5 -5
- package/esm/_internal/link.26.js.map +1 -0
- package/esm/_internal/link.js +5 -5
- package/esm/_internal/{LinkPreview.js → linkpreview.27.js} +5 -5
- package/esm/_internal/linkpreview.27.js.map +1 -0
- package/esm/_internal/{List2.js → list.28.js} +6 -6
- package/esm/_internal/list.28.js.map +1 -0
- package/esm/_internal/list.js +7 -7
- package/esm/_internal/{ListSubheader.js → listsubheader.29.js} +3 -3
- package/esm/_internal/listsubheader.29.js.map +1 -0
- package/esm/_internal/{mergeRefs.js → mergerefs.56.js} +1 -1
- package/esm/_internal/mergerefs.56.js.map +1 -0
- package/esm/_internal/{Message2.js → message.30.js} +4 -4
- package/esm/_internal/message.30.js.map +1 -0
- package/esm/_internal/message.js +4 -4
- package/esm/_internal/{Mosaic2.js → mosaic.31.js} +4 -4
- package/esm/_internal/mosaic.31.js.map +1 -0
- package/esm/_internal/mosaic.js +6 -6
- package/esm/_internal/{Notification2.js → notification.32.js} +9 -8
- package/esm/_internal/notification.32.js.map +1 -0
- package/esm/_internal/notification.js +9 -9
- package/esm/_internal/{partitionMulti.js → partitionmulti.62.js} +1 -1
- package/esm/_internal/partitionmulti.62.js.map +1 -0
- package/esm/_internal/{Popover2.js → popover.33.js} +6 -6
- package/esm/_internal/popover.33.js.map +1 -0
- package/esm/_internal/popover.js +6 -6
- package/esm/_internal/post-block.js +7 -7
- package/esm/_internal/{PostBlock.js → postblock.34.js} +5 -5
- package/esm/_internal/postblock.34.js.map +1 -0
- package/esm/_internal/progress-tracker.js +9 -9
- package/esm/_internal/{Progress2.js → progress.35.js} +3 -3
- package/esm/_internal/progress.35.js.map +1 -0
- package/esm/_internal/progress.js +3 -3
- package/esm/_internal/{ProgressTrackerStepPanel.js → progresstrackersteppanel.36.js} +8 -8
- package/esm/_internal/progresstrackersteppanel.36.js.map +1 -0
- package/esm/_internal/radio-button.js +6 -6
- package/esm/_internal/{RadioGroup.js → radiogroup.37.js} +6 -6
- package/esm/_internal/radiogroup.37.js.map +1 -0
- package/esm/_internal/{renderLink.js → renderlink.65.js} +2 -2
- package/esm/_internal/renderlink.65.js.map +1 -0
- package/esm/_internal/select.js +19 -20
- package/esm/_internal/select.js.map +1 -1
- package/esm/_internal/{SelectMultiple.js → selectmultiple.38.js} +12 -12
- package/esm/_internal/selectmultiple.38.js.map +1 -0
- package/esm/_internal/side-navigation.js +14 -15
- package/esm/_internal/side-navigation.js.map +1 -1
- package/esm/_internal/{SideNavigationItem.js → sidenavigationitem.39.js} +7 -7
- package/esm/_internal/sidenavigationitem.39.js.map +1 -0
- package/esm/_internal/skeleton.js +3 -3
- package/esm/_internal/{SkeletonTypography.js → skeletontypography.40.js} +3 -3
- package/esm/_internal/skeletontypography.40.js.map +1 -0
- package/esm/_internal/{Slider2.js → slider.41.js} +6 -6
- package/esm/_internal/slider.41.js.map +1 -0
- package/esm/_internal/slider.js +6 -6
- package/esm/_internal/slideshow.js +15 -14
- package/esm/_internal/slideshow.js.map +1 -1
- package/esm/_internal/{SlideshowControls.js → slideshowcontrols.42.js} +218 -101
- package/esm/_internal/slideshowcontrols.42.js.map +1 -0
- package/esm/_internal/{Switch2.js → switch.43.js} +6 -6
- package/esm/_internal/switch.43.js.map +1 -0
- package/esm/_internal/switch.js +6 -6
- package/esm/_internal/table.js +4 -4
- package/esm/_internal/{TableRow.js → tablerow.44.js} +4 -4
- package/esm/_internal/tablerow.44.js.map +1 -0
- package/esm/_internal/{TabPanel.js → tabpanel.45.js} +6 -6
- package/esm/_internal/tabpanel.45.js.map +1 -0
- package/esm/_internal/tabs.js +7 -7
- package/esm/_internal/text-field.js +15 -16
- package/esm/_internal/text-field.js.map +1 -1
- package/esm/_internal/{TextField.js → textfield.46.js} +9 -9
- package/esm/_internal/textfield.46.js.map +1 -0
- package/esm/_internal/{Thumbnail2.js → thumbnail.47.js} +7 -7
- package/esm/_internal/thumbnail.47.js.map +1 -0
- package/esm/_internal/thumbnail.js +6 -6
- package/esm/_internal/{Toolbar2.js → toolbar.49.js} +3 -3
- package/esm/_internal/toolbar.49.js.map +1 -0
- package/esm/_internal/toolbar.js +3 -3
- package/esm/_internal/{Tooltip2.js → tooltip.50.js} +116 -119
- package/esm/_internal/tooltip.50.js.map +1 -0
- package/esm/_internal/tooltip.js +8 -9
- package/esm/_internal/tooltip.js.map +1 -1
- package/esm/_internal/{type.js → type.64.js} +1 -1
- package/esm/_internal/type.64.js.map +1 -0
- package/esm/_internal/{types.js → types.48.js} +2 -3
- package/esm/_internal/types.48.js.map +1 -0
- package/esm/_internal/{Uploader2.js → uploader.51.js} +4 -4
- package/esm/_internal/uploader.51.js.map +1 -0
- package/esm/_internal/uploader.js +4 -4
- package/esm/_internal/{useDelayedVisibility.js → usedelayedvisibility.63.js} +2 -2
- package/esm/_internal/usedelayedvisibility.63.js.map +1 -0
- package/esm/_internal/{useDisableBodyScroll.js → usedisablebodyscroll.61.js} +1 -1
- package/esm/_internal/usedisablebodyscroll.61.js.map +1 -0
- package/esm/_internal/{useFocusTrap.js → usefocustrap.58.js} +2 -2
- package/esm/_internal/usefocustrap.58.js.map +1 -0
- package/esm/_internal/user-block.js +9 -9
- package/esm/_internal/{UserBlock.js → userblock.52.js} +5 -5
- package/esm/_internal/userblock.52.js.map +1 -0
- package/esm/_internal/{useRovingTabIndex.js → userovingtabindex.66.js} +3 -3
- package/esm/_internal/userovingtabindex.66.js.map +1 -0
- package/hooks/useFocusWithin.d.ts +16 -0
- package/hooks/useFocusWithin.js +28 -0
- package/hooks/useFocusWithin.js.map +1 -0
- package/index.d.ts +2723 -0
- package/index.js +90 -0
- package/{esm/index.js.map → index.js.map} +1 -1
- package/package.json +9 -10
- package/src/components/alert-dialog/AlertDialog.test.tsx +1 -0
- package/src/components/autocomplete/AutocompleteMultiple.tsx +3 -1
- package/src/components/button/__snapshots__/IconButton.test.tsx.snap +0 -5
- package/src/components/icon/Icon.tsx +6 -2
- package/src/components/image-block/ImageBlock.stories.tsx +1 -2
- package/src/components/lightbox/Lightbox.stories.tsx +1 -0
- package/src/components/lightbox/Lightbox.tsx +5 -3
- package/src/components/notification/Notification.tsx +1 -0
- package/src/components/select/SelectMultiple.tsx +0 -1
- package/src/components/slideshow/Slideshow.stories.tsx +1 -1
- package/src/components/slideshow/Slideshow.tsx +76 -112
- package/src/components/slideshow/SlideshowControls.stories.tsx +18 -12
- package/src/components/slideshow/SlideshowControls.tsx +11 -7
- package/src/components/slideshow/SlideshowItem.tsx +4 -1
- package/src/components/slideshow/__snapshots__/Slideshow.test.tsx.snap +52 -17
- package/src/components/tabs/state.ts +0 -1
- package/src/components/thumbnail/Thumbnail.stories.tsx +25 -1
- package/src/components/thumbnail/Thumbnail.test.tsx +9 -1
- package/src/components/thumbnail/Thumbnail.tsx +3 -0
- package/src/components/thumbnail/__snapshots__/Thumbnail.test.tsx.snap +26 -0
- package/src/components/thumbnail/index.ts +0 -1
- package/src/components/tooltip/Tooltip.tsx +1 -2
- package/src/components/tooltip/useTooltipOpen.tsx +90 -91
- package/src/constants.ts +7 -1
- package/src/hooks/useFocusWithin.ts +33 -0
- package/src/hooks/useSlideshowControls.ts +213 -0
- package/src/utils/browserDoesNotSupportHover.test.js +24 -0
- package/src/utils/browserDoesNotSupportHover.ts +2 -0
- package/src/utils/index.tsx +0 -2
- package/src/utils/mergeRefs.ts +1 -1
- package/esm/_internal/AlertDialog.js.map +0 -1
- package/esm/_internal/AutocompleteMultiple.js.map +0 -1
- package/esm/_internal/Avatar2.js.map +0 -1
- package/esm/_internal/Badge2.js.map +0 -1
- package/esm/_internal/Button2.js.map +0 -1
- package/esm/_internal/ButtonGroup.js.map +0 -1
- package/esm/_internal/ButtonRoot.js.map +0 -1
- package/esm/_internal/Checkbox2.js.map +0 -1
- package/esm/_internal/Chip2.js.map +0 -1
- package/esm/_internal/ChipGroup.js.map +0 -1
- package/esm/_internal/ClickAwayProvider.js.map +0 -1
- package/esm/_internal/CommentBlock.js.map +0 -1
- package/esm/_internal/DatePickerField.js.map +0 -1
- package/esm/_internal/Dialog2.js.map +0 -1
- package/esm/_internal/Divider2.js.map +0 -1
- package/esm/_internal/DragHandle.js.map +0 -1
- package/esm/_internal/Dropdown2.js.map +0 -1
- package/esm/_internal/ExpansionPanel.js.map +0 -1
- package/esm/_internal/Flag2.js.map +0 -1
- package/esm/_internal/FlexBox.js.map +0 -1
- package/esm/_internal/GridItem.js.map +0 -1
- package/esm/_internal/Icon2.js.map +0 -1
- package/esm/_internal/IconButton.js.map +0 -1
- package/esm/_internal/ImageBlock.js.map +0 -1
- package/esm/_internal/InputHelper.js.map +0 -1
- package/esm/_internal/InputLabel.js.map +0 -1
- package/esm/_internal/Lightbox2.js.map +0 -1
- package/esm/_internal/Link2.js.map +0 -1
- package/esm/_internal/LinkPreview.js.map +0 -1
- package/esm/_internal/List2.js.map +0 -1
- package/esm/_internal/ListSubheader.js.map +0 -1
- package/esm/_internal/Message2.js.map +0 -1
- package/esm/_internal/Mosaic2.js.map +0 -1
- package/esm/_internal/Notification2.js.map +0 -1
- package/esm/_internal/Popover2.js.map +0 -1
- package/esm/_internal/PostBlock.js.map +0 -1
- package/esm/_internal/Progress2.js.map +0 -1
- package/esm/_internal/ProgressTrackerStepPanel.js.map +0 -1
- package/esm/_internal/RadioGroup.js.map +0 -1
- package/esm/_internal/SelectMultiple.js.map +0 -1
- package/esm/_internal/SideNavigationItem.js.map +0 -1
- package/esm/_internal/SkeletonTypography.js.map +0 -1
- package/esm/_internal/Slider2.js.map +0 -1
- package/esm/_internal/SlideshowControls.js.map +0 -1
- package/esm/_internal/Switch2.js.map +0 -1
- package/esm/_internal/TabPanel.js.map +0 -1
- package/esm/_internal/TableRow.js.map +0 -1
- package/esm/_internal/TextField.js.map +0 -1
- package/esm/_internal/Thumbnail2.js.map +0 -1
- package/esm/_internal/Toolbar2.js.map +0 -1
- package/esm/_internal/Tooltip2.js.map +0 -1
- package/esm/_internal/Uploader2.js.map +0 -1
- package/esm/_internal/UserBlock.js.map +0 -1
- package/esm/_internal/_rollupPluginBabelHelpers.js.map +0 -1
- package/esm/_internal/constants.js.map +0 -1
- package/esm/_internal/getRootClassName.js.map +0 -1
- package/esm/_internal/mergeRefs.js.map +0 -1
- package/esm/_internal/partitionMulti.js.map +0 -1
- package/esm/_internal/renderLink.js.map +0 -1
- package/esm/_internal/type.js.map +0 -1
- package/esm/_internal/types.js.map +0 -1
- package/esm/_internal/useDelayedVisibility.js.map +0 -1
- package/esm/_internal/useDisableBodyScroll.js.map +0 -1
- package/esm/_internal/useFocusTrap.js.map +0 -1
- package/esm/_internal/useRovingTabIndex.js.map +0 -1
- package/esm/index.js +0 -89
- package/esm/index2.js.map +0 -1
- package/src/utils/htmlDecode.ts +0 -13
- package/types.d.ts +0 -2575
package/index.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import './esm/_internal/_rolluppluginbabelhelpers.53.js';
|
|
2
|
+
export { Alignment, AspectRatio, ColorPalette, ColorVariant, Emphasis, Kind, Orientation, Size, Theme, Typography, TypographyInterface, TypographyTitleCustom } from './esm/_internal/components.js';
|
|
3
|
+
import 'react';
|
|
4
|
+
import './esm/_internal/getrootclassname.54.js';
|
|
5
|
+
export { I as Icon } from './esm/_internal/icon.21.js';
|
|
6
|
+
import './esm/_internal/index.55.js';
|
|
7
|
+
import 'lodash/isBoolean';
|
|
8
|
+
import 'lodash/isEmpty';
|
|
9
|
+
import 'lodash/kebabCase';
|
|
10
|
+
import 'lodash/noop';
|
|
11
|
+
import './esm/_internal/constants.59.js';
|
|
12
|
+
import 'lodash/concat';
|
|
13
|
+
import 'lodash/dropRight';
|
|
14
|
+
import 'lodash/last';
|
|
15
|
+
import 'lodash/partition';
|
|
16
|
+
import 'lodash/reduce';
|
|
17
|
+
import './esm/_internal/partitionmulti.62.js';
|
|
18
|
+
import 'lodash/get';
|
|
19
|
+
import './esm/_internal/type.64.js';
|
|
20
|
+
export { A as AlertDialog } from './esm/_internal/alertdialog.1.js';
|
|
21
|
+
export { P as Placement, a as Popover } from './esm/_internal/popover.33.js';
|
|
22
|
+
import './esm/_internal/mergerefs.56.js';
|
|
23
|
+
export { A as Autocomplete, a as AutocompleteMultiple } from './esm/_internal/autocompletemultiple.2.js';
|
|
24
|
+
export { A as Avatar } from './esm/_internal/avatar.3.js';
|
|
25
|
+
export { B as Badge } from './esm/_internal/badge.4.js';
|
|
26
|
+
import './esm/_internal/renderlink.65.js';
|
|
27
|
+
import './esm/_internal/buttonroot.57.js';
|
|
28
|
+
export { a as Button, B as ButtonEmphasis } from './esm/_internal/button.5.js';
|
|
29
|
+
export { I as IconButton } from './esm/_internal/iconbutton.6.js';
|
|
30
|
+
export { B as ButtonGroup } from './esm/_internal/buttongroup.7.js';
|
|
31
|
+
export { C as Checkbox } from './esm/_internal/checkbox.8.js';
|
|
32
|
+
import 'lodash/isFunction';
|
|
33
|
+
export { C as Chip } from './esm/_internal/chip.9.js';
|
|
34
|
+
export { C as ChipGroup } from './esm/_internal/chipgroup.10.js';
|
|
35
|
+
export { a as CommentBlock, C as CommentBlockVariant } from './esm/_internal/commentblock.11.js';
|
|
36
|
+
import 'moment';
|
|
37
|
+
export { D as DatePicker, a as DatePickerControlled, b as DatePickerField } from './esm/_internal/datepickerfield.12.js';
|
|
38
|
+
import 'lodash/range';
|
|
39
|
+
import 'moment-range';
|
|
40
|
+
import './esm/_internal/usefocustrap.58.js';
|
|
41
|
+
import 'react-dom';
|
|
42
|
+
import './esm/_internal/clickawayprovider.60.js';
|
|
43
|
+
export { D as Dialog } from './esm/_internal/dialog.13.js';
|
|
44
|
+
import 'lodash/pull';
|
|
45
|
+
import './esm/_internal/usedelayedvisibility.63.js';
|
|
46
|
+
import './esm/_internal/usedisablebodyscroll.61.js';
|
|
47
|
+
export { D as DEFAULT_PROPS, a as Divider } from './esm/_internal/divider.14.js';
|
|
48
|
+
export { D as DragHandle } from './esm/_internal/draghandle.15.js';
|
|
49
|
+
export { L as List, a as ListItem, i as isClickable } from './esm/_internal/list.28.js';
|
|
50
|
+
export { D as Dropdown } from './esm/_internal/dropdown.16.js';
|
|
51
|
+
export { E as ExpansionPanel } from './esm/_internal/expansionpanel.17.js';
|
|
52
|
+
export { F as Flag } from './esm/_internal/flag.18.js';
|
|
53
|
+
import 'lodash/castArray';
|
|
54
|
+
export { F as FlexBox } from './esm/_internal/flexbox.19.js';
|
|
55
|
+
export { G as Grid, a as GridItem } from './esm/_internal/griditem.20.js';
|
|
56
|
+
import 'lodash/isObject';
|
|
57
|
+
export { a as ImageBlock, I as ImageBlockCaptionPosition } from './esm/_internal/imageblock.22.js';
|
|
58
|
+
export { I as InputHelper } from './esm/_internal/inputhelper.23.js';
|
|
59
|
+
export { I as InputLabel } from './esm/_internal/inputlabel.24.js';
|
|
60
|
+
export { L as Lightbox } from './esm/_internal/lightbox.25.js';
|
|
61
|
+
export { L as Link } from './esm/_internal/link.26.js';
|
|
62
|
+
export { L as LinkPreview } from './esm/_internal/linkpreview.27.js';
|
|
63
|
+
export { L as ListDivider, a as ListSubheader } from './esm/_internal/listsubheader.29.js';
|
|
64
|
+
export { M as Message } from './esm/_internal/message.30.js';
|
|
65
|
+
import 'lodash/take';
|
|
66
|
+
export { M as Mosaic } from './esm/_internal/mosaic.31.js';
|
|
67
|
+
export { N as Notification } from './esm/_internal/notification.32.js';
|
|
68
|
+
export { P as PostBlock } from './esm/_internal/postblock.34.js';
|
|
69
|
+
export { a as Progress, P as ProgressVariant } from './esm/_internal/progress.35.js';
|
|
70
|
+
import './esm/_internal/userovingtabindex.66.js';
|
|
71
|
+
export { a as ProgressTracker, P as ProgressTrackerProvider, b as ProgressTrackerStep, c as ProgressTrackerStepPanel } from './esm/_internal/progresstrackersteppanel.36.js';
|
|
72
|
+
export { R as RadioButton, a as RadioGroup } from './esm/_internal/radiogroup.37.js';
|
|
73
|
+
export { a as Select, c as SelectMultiple, b as SelectMultipleField, S as SelectVariant } from './esm/_internal/selectmultiple.38.js';
|
|
74
|
+
export { S as SideNavigation, a as SideNavigationItem } from './esm/_internal/sidenavigationitem.39.js';
|
|
75
|
+
export { S as SkeletonCircle, b as SkeletonRectangle, a as SkeletonRectangleVariant, c as SkeletonTypography } from './esm/_internal/skeletontypography.40.js';
|
|
76
|
+
export { S as Slider, c as clamp } from './esm/_internal/slider.41.js';
|
|
77
|
+
export { S as Slideshow, b as SlideshowControls, a as SlideshowItem } from './esm/_internal/slideshowcontrols.42.js';
|
|
78
|
+
import 'lodash/uniqueId';
|
|
79
|
+
import './hooks/useFocusWithin.js';
|
|
80
|
+
export { S as Switch } from './esm/_internal/switch.43.js';
|
|
81
|
+
export { T as Table, a as TableBody, d as TableCell, c as TableCellVariant, e as TableHeader, f as TableRow, b as ThOrder } from './esm/_internal/tablerow.44.js';
|
|
82
|
+
export { c as Tab, b as TabList, a as TabListLayout, d as TabPanel, T as TabProvider } from './esm/_internal/tabpanel.45.js';
|
|
83
|
+
export { T as TextField } from './esm/_internal/textfield.46.js';
|
|
84
|
+
export { T as Thumbnail } from './esm/_internal/thumbnail.47.js';
|
|
85
|
+
export { T as ThumbnailAspectRatio, a as ThumbnailVariant } from './esm/_internal/types.48.js';
|
|
86
|
+
export { T as Toolbar } from './esm/_internal/toolbar.49.js';
|
|
87
|
+
export { T as Tooltip } from './esm/_internal/tooltip.50.js';
|
|
88
|
+
export { a as Uploader, U as UploaderVariant } from './esm/_internal/uploader.51.js';
|
|
89
|
+
export { U as UserBlock } from './esm/_internal/userblock.52.js';
|
|
90
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@juggle/resize-observer": "^3.2.0",
|
|
10
|
-
"@lumx/core": "^2.2.
|
|
11
|
-
"@lumx/icons": "^2.2.
|
|
10
|
+
"@lumx/core": "^2.2.9-alpha-exported-hooks1",
|
|
11
|
+
"@lumx/icons": "^2.2.9-alpha-exported-hooks1",
|
|
12
12
|
"@popperjs/core": "^2.5.4",
|
|
13
13
|
"body-scroll-lock": "^3.1.5",
|
|
14
14
|
"classnames": "^2.2.6",
|
|
@@ -42,7 +42,6 @@
|
|
|
42
42
|
"babel-loader": "^8.0.6",
|
|
43
43
|
"chromatic": "^6.0.6",
|
|
44
44
|
"core-js": "^3.6.4",
|
|
45
|
-
"dts-bundle-generator": "^5.5.0",
|
|
46
45
|
"enzyme": "^3.11.0",
|
|
47
46
|
"enzyme-adapter-react-16": "^1.15.2",
|
|
48
47
|
"enzyme-to-json": "^3.5.0",
|
|
@@ -67,6 +66,7 @@
|
|
|
67
66
|
"rollup-plugin-babel": "^4.4.0",
|
|
68
67
|
"rollup-plugin-cleaner": "^1.0.0",
|
|
69
68
|
"rollup-plugin-copy": "^3.3.0",
|
|
69
|
+
"rollup-plugin-dts": "^4.1.0",
|
|
70
70
|
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
71
71
|
"rollup-plugin-ts-paths-resolve": "^1.3.0",
|
|
72
72
|
"rollup-plugin-typescript-paths": "^1.2.2",
|
|
@@ -98,9 +98,9 @@
|
|
|
98
98
|
"React"
|
|
99
99
|
],
|
|
100
100
|
"license": "MIT",
|
|
101
|
-
"module": "
|
|
102
|
-
"main": "
|
|
103
|
-
"types": "
|
|
101
|
+
"module": "index.js",
|
|
102
|
+
"main": "index.js",
|
|
103
|
+
"types": "index.d.ts",
|
|
104
104
|
"name": "@lumx/react",
|
|
105
105
|
"publishConfig": {
|
|
106
106
|
"directory": "dist"
|
|
@@ -110,8 +110,7 @@
|
|
|
110
110
|
"url": "git+https://github.com/lumapps/design-system.git"
|
|
111
111
|
},
|
|
112
112
|
"scripts": {
|
|
113
|
-
"build": "rollup -c
|
|
114
|
-
"generate:types": "dts-bundle-generator --no-check --external-types=react --external-imports=moment -o dist/types.d.ts src/index.ts",
|
|
113
|
+
"build": "rollup -c",
|
|
115
114
|
"prepare": "install-peers || exit 0",
|
|
116
115
|
"prepublishOnly": "yarn build",
|
|
117
116
|
"test": "jest --config jest/index.js --coverage --notify --passWithNoTests --detectOpenHandles --runInBand",
|
|
@@ -120,6 +119,6 @@
|
|
|
120
119
|
"build:storybook": "cd storybook && ./build"
|
|
121
120
|
},
|
|
122
121
|
"sideEffects": false,
|
|
123
|
-
"version": "2.2.
|
|
124
|
-
"gitHead": "
|
|
122
|
+
"version": "2.2.9-alpha-exported-hooks1",
|
|
123
|
+
"gitHead": "1833b1ecc3e80672a1a6bd5e60f424b1a8685e81"
|
|
125
124
|
}
|
|
@@ -18,6 +18,7 @@ const setup = ({ ...propsOverride }: Partial<AlertDialogProps> = {}, shallowRend
|
|
|
18
18
|
const props: AlertDialogProps = {
|
|
19
19
|
title: 'Alert',
|
|
20
20
|
description: 'Deserunt et sunt qui consequat sint sit.',
|
|
21
|
+
// eslint-disable-next-line no-alert
|
|
21
22
|
confirmProps: { onClick: () => alert('confirm'), label: 'OK' },
|
|
22
23
|
...propsOverride,
|
|
23
24
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mdiClose } from '@lumx/icons';
|
|
2
|
-
import { Autocomplete, AutocompleteProps, Chip,
|
|
2
|
+
import { Autocomplete, AutocompleteProps, Chip, HorizontalAlignment, Icon, Size } from '@lumx/react';
|
|
3
3
|
|
|
4
4
|
import { Comp, getRootClassName, handleBasicClasses } from '@lumx/react/utils';
|
|
5
5
|
|
|
@@ -68,6 +68,8 @@ export const AutocompleteMultiple: Comp<AutocompleteMultipleProps, HTMLDivElemen
|
|
|
68
68
|
const {
|
|
69
69
|
anchorToInput,
|
|
70
70
|
children,
|
|
71
|
+
// `chipsAlignment` needs to be here to remove it from `forwardedProps`.
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
71
73
|
chipsAlignment,
|
|
72
74
|
className,
|
|
73
75
|
closeOnClickAway,
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`<IconButton> Props should forward any CSS class 1`] = `
|
|
4
4
|
<Tooltip
|
|
5
|
-
delay={500}
|
|
6
5
|
placement="bottom"
|
|
7
6
|
>
|
|
8
7
|
<ButtonRoot
|
|
@@ -19,7 +18,6 @@ exports[`<IconButton> Props should forward any CSS class 1`] = `
|
|
|
19
18
|
|
|
20
19
|
exports[`<IconButton> Props should use default props 1`] = `
|
|
21
20
|
<Tooltip
|
|
22
|
-
delay={500}
|
|
23
21
|
placement="bottom"
|
|
24
22
|
>
|
|
25
23
|
<ButtonRoot
|
|
@@ -35,7 +33,6 @@ exports[`<IconButton> Props should use default props 1`] = `
|
|
|
35
33
|
|
|
36
34
|
exports[`<IconButton> Snapshots and structure should render icon button 1`] = `
|
|
37
35
|
<Tooltip
|
|
38
|
-
delay={500}
|
|
39
36
|
placement="bottom"
|
|
40
37
|
>
|
|
41
38
|
<ButtonRoot
|
|
@@ -51,7 +48,6 @@ exports[`<IconButton> Snapshots and structure should render icon button 1`] = `
|
|
|
51
48
|
|
|
52
49
|
exports[`<IconButton> Snapshots and structure should render icon button with an image 1`] = `
|
|
53
50
|
<Tooltip
|
|
54
|
-
delay={500}
|
|
55
51
|
placement="bottom"
|
|
56
52
|
>
|
|
57
53
|
<ButtonRoot
|
|
@@ -70,7 +66,6 @@ exports[`<IconButton> Snapshots and structure should render icon button with an
|
|
|
70
66
|
|
|
71
67
|
exports[`<IconButton> Snapshots and structure should render icon button with an image if both props are set 1`] = `
|
|
72
68
|
<Tooltip
|
|
73
|
-
delay={500}
|
|
74
69
|
placement="bottom"
|
|
75
70
|
>
|
|
76
71
|
<ButtonRoot
|
|
@@ -27,6 +27,8 @@ export interface IconProps extends GenericProps {
|
|
|
27
27
|
size?: IconSizes;
|
|
28
28
|
/** Theme adapting the component to light or dark background. */
|
|
29
29
|
theme?: Theme;
|
|
30
|
+
/** Sets an alternative text on the svg. Will set an `img` role to the svg. */
|
|
31
|
+
alt?: string;
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
/**
|
|
@@ -52,7 +54,7 @@ const DEFAULT_PROPS: Partial<IconProps> = {};
|
|
|
52
54
|
* @return React element.
|
|
53
55
|
*/
|
|
54
56
|
export const Icon: Comp<IconProps, HTMLElement> = forwardRef((props, ref) => {
|
|
55
|
-
const { className, color, colorVariant, hasShape, icon, size, theme, ...forwardedProps } = props;
|
|
57
|
+
const { className, color, colorVariant, hasShape, icon, size, theme, alt, ...forwardedProps } = props;
|
|
56
58
|
|
|
57
59
|
let iconColor;
|
|
58
60
|
let iconColorVariant;
|
|
@@ -110,7 +112,9 @@ export const Icon: Comp<IconProps, HTMLElement> = forwardRef((props, ref) => {
|
|
|
110
112
|
)}
|
|
111
113
|
>
|
|
112
114
|
<svg
|
|
113
|
-
aria-hidden=
|
|
115
|
+
aria-hidden={alt ? undefined : 'true'}
|
|
116
|
+
role={alt ? 'img' : undefined}
|
|
117
|
+
aria-label={alt}
|
|
114
118
|
height="1em"
|
|
115
119
|
preserveAspectRatio="xMidYMid meet"
|
|
116
120
|
style={{ verticalAlign: '-0.125em' }}
|
|
@@ -2,7 +2,6 @@ import { LANDSCAPE_IMAGES, landscapeImageKnob } from '@lumx/react/stories/knobs/
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
|
|
4
4
|
import { Alignment, AspectRatio, Chip, ChipGroup, ImageBlock, Size } from '@lumx/react';
|
|
5
|
-
import { htmlDecode } from '@lumx/react/utils/htmlDecode';
|
|
6
5
|
import { boolean, select, text } from '@storybook/addon-knobs';
|
|
7
6
|
import { enumKnob } from '@lumx/react/stories/knobs/enumKnob';
|
|
8
7
|
import { focusKnob } from '@lumx/react/stories/knobs/focusKnob';
|
|
@@ -36,7 +35,7 @@ export const DefaultImageBlock = ({ theme }: any) => {
|
|
|
36
35
|
<ImageBlock
|
|
37
36
|
alt={alt}
|
|
38
37
|
description={description}
|
|
39
|
-
image={
|
|
38
|
+
image={imageUrl}
|
|
40
39
|
size={size}
|
|
41
40
|
tags={tags}
|
|
42
41
|
title={title}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { forwardRef, RefObject, useRef } from 'react';
|
|
1
|
+
import React, { forwardRef, RefObject, useRef, useEffect } from 'react';
|
|
2
2
|
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
import { createPortal } from 'react-dom';
|
|
@@ -89,9 +89,11 @@ export const Lightbox: Comp<LightboxProps, HTMLDivElement> = forwardRef((props,
|
|
|
89
89
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
90
90
|
useFocusTrap(wrapperRef.current, childrenRef.current?.firstChild);
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
93
|
+
const previousOpen = useRef(isOpen);
|
|
93
94
|
|
|
94
|
-
|
|
95
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
96
|
+
useEffect(() => {
|
|
95
97
|
if (isOpen !== previousOpen.current) {
|
|
96
98
|
previousOpen.current = isOpen;
|
|
97
99
|
|
|
@@ -6,7 +6,6 @@ import { mdiAlertCircle, mdiCheckCircle, mdiClose, mdiCloseCircle, mdiMenuDown }
|
|
|
6
6
|
|
|
7
7
|
import { Size } from '@lumx/react/components';
|
|
8
8
|
import { Chip } from '@lumx/react/components/chip/Chip';
|
|
9
|
-
import { ChipGroup } from '@lumx/react/components/chip/ChipGroup';
|
|
10
9
|
import { Icon } from '@lumx/react/components/icon/Icon';
|
|
11
10
|
import { InputLabel } from '@lumx/react/components/input-label/InputLabel';
|
|
12
11
|
|
|
@@ -29,7 +29,7 @@ export const Simple = ({ theme }: any) => {
|
|
|
29
29
|
{images.map(({ image, alt }, index) => (
|
|
30
30
|
<SlideshowItem key={`${image}-${index}`}>
|
|
31
31
|
<ImageBlock
|
|
32
|
-
thumbnailProps={{ aspectRatio: AspectRatio.horizontal }}
|
|
32
|
+
thumbnailProps={{ aspectRatio: AspectRatio.horizontal, loading: 'eager' }}
|
|
33
33
|
image={image}
|
|
34
34
|
alt={alt}
|
|
35
35
|
theme={theme}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import React, { CSSProperties, forwardRef
|
|
1
|
+
import React, { CSSProperties, forwardRef } from 'react';
|
|
2
2
|
|
|
3
3
|
import classNames from 'classnames';
|
|
4
4
|
|
|
5
5
|
import { SlideshowControls, SlideshowControlsProps, Theme } from '@lumx/react';
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
import { useInterval } from '@lumx/react/hooks/useInterval';
|
|
6
|
+
import { DEFAULT_OPTIONS } from '@lumx/react/hooks/useSlideshowControls';
|
|
7
|
+
import { FULL_WIDTH_PERCENT } from '@lumx/react/components/slideshow/constants';
|
|
9
8
|
import { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';
|
|
10
9
|
import { mergeRefs } from '@lumx/react/utils/mergeRefs';
|
|
11
10
|
|
|
@@ -39,6 +38,10 @@ export interface SlideshowProps extends GenericProps {
|
|
|
39
38
|
theme?: Theme;
|
|
40
39
|
/** Callback when slide changes */
|
|
41
40
|
onChange?(index: number): void;
|
|
41
|
+
/** slideshow HTML id attribute */
|
|
42
|
+
id?: string;
|
|
43
|
+
/** slides wrapper HTML id attribute */
|
|
44
|
+
slidesId?: string;
|
|
42
45
|
}
|
|
43
46
|
|
|
44
47
|
/**
|
|
@@ -55,9 +58,7 @@ const CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
|
55
58
|
* Component default props.
|
|
56
59
|
*/
|
|
57
60
|
const DEFAULT_PROPS: Partial<SlideshowProps> = {
|
|
58
|
-
|
|
59
|
-
groupBy: 1,
|
|
60
|
-
interval: AUTOPLAY_DEFAULT_INTERVAL,
|
|
61
|
+
...DEFAULT_OPTIONS,
|
|
61
62
|
theme: Theme.light,
|
|
62
63
|
};
|
|
63
64
|
|
|
@@ -80,122 +81,76 @@ export const Slideshow: Comp<SlideshowProps, HTMLDivElement> = forwardRef((props
|
|
|
80
81
|
onChange,
|
|
81
82
|
slideshowControlsProps,
|
|
82
83
|
theme,
|
|
84
|
+
id,
|
|
85
|
+
slidesId,
|
|
83
86
|
...forwardedProps
|
|
84
87
|
} = props;
|
|
85
|
-
const [currentIndex, setCurrentIndex] = useState(activeIndex as number);
|
|
86
|
-
// Use state instead of a ref to make the slideshow controls update directly when the element is set.
|
|
87
|
-
const [element, setElement] = useState<HTMLDivElement>();
|
|
88
|
-
|
|
89
88
|
// Number of slideshow items.
|
|
90
89
|
const itemsCount = React.Children.count(children);
|
|
91
|
-
// Number of slides when using groupBy prop.
|
|
92
|
-
const slidesCount = Math.ceil(itemsCount / Math.min(groupBy as number, itemsCount));
|
|
93
|
-
// Inline style of wrapper element.
|
|
94
|
-
const wrapperStyle: CSSProperties = { transform: `translateX(-${FULL_WIDTH_PERCENT * currentIndex}%)` };
|
|
95
|
-
|
|
96
|
-
// Change current index to display next slide.
|
|
97
|
-
const goToNextSlide = useCallback(
|
|
98
|
-
(loopback = true) => {
|
|
99
|
-
setCurrentIndex((index) => {
|
|
100
|
-
if (loopback && index === slidesCount - 1) {
|
|
101
|
-
// Loopback to the start.
|
|
102
|
-
return 0;
|
|
103
|
-
}
|
|
104
|
-
if (index < slidesCount - 1) {
|
|
105
|
-
// Next slide.
|
|
106
|
-
return index + 1;
|
|
107
|
-
}
|
|
108
|
-
return index;
|
|
109
|
-
});
|
|
110
|
-
},
|
|
111
|
-
[slidesCount, setCurrentIndex],
|
|
112
|
-
);
|
|
113
|
-
|
|
114
|
-
// Change current index to display previous slide.
|
|
115
|
-
const goToPreviousSlide = useCallback(
|
|
116
|
-
(loopback = true) => {
|
|
117
|
-
setCurrentIndex((index) => {
|
|
118
|
-
if (loopback && index === 0) {
|
|
119
|
-
// Loopback to the end.
|
|
120
|
-
return slidesCount - 1;
|
|
121
|
-
}
|
|
122
|
-
if (index > 0) {
|
|
123
|
-
// Previous slide.
|
|
124
|
-
return index - 1;
|
|
125
|
-
}
|
|
126
|
-
return index;
|
|
127
|
-
});
|
|
128
|
-
},
|
|
129
|
-
[slidesCount, setCurrentIndex],
|
|
130
|
-
);
|
|
131
|
-
|
|
132
|
-
// Auto play
|
|
133
|
-
const [isAutoPlaying, setIsAutoPlaying] = useState(Boolean(autoPlay));
|
|
134
|
-
// Start
|
|
135
|
-
useInterval(goToNextSlide, isAutoPlaying && slidesCount > 1 ? (interval as number) : null);
|
|
136
|
-
|
|
137
|
-
// Reset current index if it become invalid.
|
|
138
|
-
useEffect(() => {
|
|
139
|
-
if (currentIndex > slidesCount - 1) {
|
|
140
|
-
setCurrentIndex(DEFAULT_PROPS.activeIndex as number);
|
|
141
|
-
}
|
|
142
|
-
}, [currentIndex, slidesCount]);
|
|
143
|
-
|
|
144
|
-
// Handle click on a bullet to go to a specific slide.
|
|
145
|
-
const handleControlGotToSlide = useCallback(
|
|
146
|
-
(index: number) => {
|
|
147
|
-
setIsAutoPlaying(false);
|
|
148
|
-
|
|
149
|
-
if (index >= 0 && index < slidesCount) {
|
|
150
|
-
setCurrentIndex(index);
|
|
151
|
-
}
|
|
152
|
-
},
|
|
153
|
-
[slidesCount, setCurrentIndex],
|
|
154
|
-
);
|
|
155
90
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
91
|
+
const {
|
|
92
|
+
activeIndex: currentIndex,
|
|
93
|
+
slideshowId,
|
|
94
|
+
setSlideshow,
|
|
95
|
+
isAutoPlaying,
|
|
96
|
+
slideshowSlidesId,
|
|
97
|
+
setIsAutoPlaying,
|
|
98
|
+
startIndexVisible,
|
|
99
|
+
endIndexVisible,
|
|
100
|
+
slidesCount,
|
|
101
|
+
onNextClick,
|
|
102
|
+
onPaginationClick,
|
|
103
|
+
onPreviousClick,
|
|
104
|
+
slideshow,
|
|
105
|
+
} = SlideshowControls.useSlideshowControls({
|
|
106
|
+
activeIndex,
|
|
107
|
+
defaultActiveIndex: DEFAULT_PROPS.activeIndex as number,
|
|
108
|
+
autoPlay: Boolean(autoPlay),
|
|
109
|
+
itemsCount,
|
|
110
|
+
groupBy,
|
|
111
|
+
id,
|
|
112
|
+
interval,
|
|
113
|
+
onChange,
|
|
114
|
+
slidesId,
|
|
115
|
+
});
|
|
178
116
|
|
|
179
|
-
//
|
|
180
|
-
|
|
181
|
-
if (!onChange) return;
|
|
182
|
-
onChange(currentIndex);
|
|
183
|
-
}, [currentIndex, onChange]);
|
|
117
|
+
// Inline style of wrapper element.
|
|
118
|
+
const wrapperStyle: CSSProperties = { transform: `translateX(-${FULL_WIDTH_PERCENT * currentIndex}%)` };
|
|
184
119
|
|
|
185
120
|
/* eslint-disable jsx-a11y/no-noninteractive-tabindex */
|
|
186
121
|
return (
|
|
187
|
-
<
|
|
188
|
-
|
|
122
|
+
<section
|
|
123
|
+
id={slideshowId}
|
|
124
|
+
ref={mergeRefs(ref, setSlideshow)}
|
|
189
125
|
{...forwardedProps}
|
|
190
126
|
className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, theme }), {
|
|
191
127
|
[`${CLASSNAME}--fill-height`]: fillHeight,
|
|
192
128
|
[`${CLASSNAME}--group-by-${groupBy}`]: Boolean(groupBy),
|
|
193
129
|
})}
|
|
194
|
-
|
|
130
|
+
aria-roledescription="carousel"
|
|
131
|
+
aria-live={isAutoPlaying ? 'off' : 'polite'}
|
|
195
132
|
>
|
|
196
|
-
<div
|
|
133
|
+
<div
|
|
134
|
+
id={slideshowSlidesId}
|
|
135
|
+
className={`${CLASSNAME}__slides`}
|
|
136
|
+
onMouseEnter={() => setIsAutoPlaying(false)}
|
|
137
|
+
onMouseLeave={() => setIsAutoPlaying(Boolean(autoPlay))}
|
|
138
|
+
>
|
|
197
139
|
<div className={`${CLASSNAME}__wrapper`} style={wrapperStyle}>
|
|
198
|
-
{children
|
|
140
|
+
{React.Children.map(children, (child: React.ReactNode, index: number) => {
|
|
141
|
+
if (React.isValidElement(child)) {
|
|
142
|
+
const isCurrentlyVisible = index >= startIndexVisible && index <= endIndexVisible;
|
|
143
|
+
|
|
144
|
+
return React.cloneElement(child, {
|
|
145
|
+
style: !isCurrentlyVisible
|
|
146
|
+
? { visibility: 'hidden', ...(child.props.style || {}) }
|
|
147
|
+
: child.props.style || {},
|
|
148
|
+
'aria-hidden': !isCurrentlyVisible,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
return null;
|
|
153
|
+
})}
|
|
199
154
|
</div>
|
|
200
155
|
</div>
|
|
201
156
|
|
|
@@ -204,18 +159,27 @@ export const Slideshow: Comp<SlideshowProps, HTMLDivElement> = forwardRef((props
|
|
|
204
159
|
<SlideshowControls
|
|
205
160
|
{...slideshowControlsProps}
|
|
206
161
|
activeIndex={currentIndex}
|
|
207
|
-
onPaginationClick={
|
|
208
|
-
onNextClick={
|
|
209
|
-
onPreviousClick={
|
|
162
|
+
onPaginationClick={onPaginationClick}
|
|
163
|
+
onNextClick={onNextClick}
|
|
164
|
+
onPreviousClick={onPreviousClick}
|
|
210
165
|
slidesCount={slidesCount}
|
|
211
|
-
parentRef={
|
|
166
|
+
parentRef={slideshow}
|
|
212
167
|
theme={theme}
|
|
168
|
+
nextButtonProps={{
|
|
169
|
+
'aria-controls': slideshowSlidesId,
|
|
170
|
+
...slideshowControlsProps.nextButtonProps,
|
|
171
|
+
}}
|
|
172
|
+
previousButtonProps={{
|
|
173
|
+
'aria-controls': slideshowSlidesId,
|
|
174
|
+
...slideshowControlsProps.previousButtonProps,
|
|
175
|
+
}}
|
|
213
176
|
/>
|
|
214
177
|
</div>
|
|
215
178
|
)}
|
|
216
|
-
</
|
|
179
|
+
</section>
|
|
217
180
|
);
|
|
218
181
|
});
|
|
182
|
+
|
|
219
183
|
Slideshow.displayName = COMPONENT_NAME;
|
|
220
184
|
Slideshow.className = CLASSNAME;
|
|
221
185
|
Slideshow.defaultProps = DEFAULT_PROPS;
|
|
@@ -6,13 +6,15 @@ import { thumbnailsKnob } from '@lumx/react/stories/knobs/thumbnailsKnob';
|
|
|
6
6
|
export default { title: 'LumX components/slideshow/Slideshow controls' };
|
|
7
7
|
|
|
8
8
|
export const Simple = () => {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
const {
|
|
10
|
+
activeIndex,
|
|
11
|
+
slidesCount,
|
|
12
|
+
onNextClick,
|
|
13
|
+
onPreviousClick,
|
|
14
|
+
onPaginationClick,
|
|
15
|
+
} = SlideshowControls.useSlideshowControls({
|
|
16
|
+
itemsCount: 9,
|
|
17
|
+
});
|
|
16
18
|
|
|
17
19
|
return (
|
|
18
20
|
<SlideshowControls
|
|
@@ -29,15 +31,19 @@ export const Simple = () => {
|
|
|
29
31
|
|
|
30
32
|
export const ControllingSlideshow = ({ theme }: any) => {
|
|
31
33
|
const items = thumbnailsKnob(6);
|
|
32
|
-
const [activeIndex, setActiveIndex] = React.useState(0);
|
|
33
|
-
const maxIndex = items.length - 1;
|
|
34
34
|
const slideshowStyle = {
|
|
35
35
|
width: '50%',
|
|
36
36
|
};
|
|
37
37
|
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
const {
|
|
39
|
+
activeIndex,
|
|
40
|
+
setActiveIndex,
|
|
41
|
+
onNextClick,
|
|
42
|
+
onPreviousClick,
|
|
43
|
+
onPaginationClick,
|
|
44
|
+
} = SlideshowControls.useSlideshowControls({
|
|
45
|
+
itemsCount: 6,
|
|
46
|
+
});
|
|
41
47
|
|
|
42
48
|
return (
|
|
43
49
|
<div style={{ height: 400, width: 500, position: 'relative' }}>
|