@lumx/react 2.2.18-alpha-hooks.1 → 2.2.18
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/{alertdialog.1.js → AlertDialog.js} +8 -8
- package/esm/_internal/AlertDialog.js.map +1 -0
- package/esm/_internal/{autocompletemultiple.2.js → AutocompleteMultiple.js} +9 -9
- package/esm/_internal/AutocompleteMultiple.js.map +1 -0
- package/esm/_internal/{avatar.3.js → Avatar2.js} +4 -4
- package/esm/_internal/Avatar2.js.map +1 -0
- package/esm/_internal/{badge.4.js → Badge2.js} +3 -3
- package/esm/_internal/Badge2.js.map +1 -0
- package/esm/_internal/{button.5.js → Button2.js} +5 -5
- package/esm/_internal/Button2.js.map +1 -0
- package/esm/_internal/{buttongroup.7.js → ButtonGroup.js} +3 -3
- package/esm/_internal/ButtonGroup.js.map +1 -0
- package/esm/_internal/{buttonroot.57.js → ButtonRoot.js} +4 -4
- package/esm/_internal/ButtonRoot.js.map +1 -0
- package/esm/_internal/{checkbox.8.js → Checkbox2.js} +7 -7
- package/esm/_internal/Checkbox2.js.map +1 -0
- package/esm/_internal/{chip.9.js → Chip2.js} +3 -3
- package/esm/_internal/Chip2.js.map +1 -0
- package/esm/_internal/{chipgroup.10.js → ChipGroup.js} +3 -3
- package/esm/_internal/ChipGroup.js.map +1 -0
- package/esm/_internal/{clickawayprovider.60.js → ClickAwayProvider.js} +4 -4
- package/esm/_internal/ClickAwayProvider.js.map +1 -0
- package/esm/_internal/{commentblock.11.js → CommentBlock.js} +5 -5
- package/esm/_internal/CommentBlock.js.map +1 -0
- package/esm/_internal/{datepickerfield.12.js → DatePickerField.js} +9 -9
- package/esm/_internal/DatePickerField.js.map +1 -0
- package/esm/_internal/{dialog.13.js → Dialog2.js} +12 -12
- package/esm/_internal/Dialog2.js.map +1 -0
- package/esm/_internal/{divider.14.js → Divider2.js} +3 -3
- package/esm/_internal/Divider2.js.map +1 -0
- package/esm/_internal/{draghandle.15.js → DragHandle.js} +4 -4
- package/esm/_internal/DragHandle.js.map +1 -0
- package/esm/_internal/{dropdown.16.js → Dropdown2.js} +6 -6
- package/esm/_internal/Dropdown2.js.map +1 -0
- package/esm/_internal/{expansionpanel.17.js → ExpansionPanel.js} +8 -8
- package/esm/_internal/ExpansionPanel.js.map +1 -0
- package/esm/_internal/{flag.18.js → Flag2.js} +4 -4
- package/esm/_internal/Flag2.js.map +1 -0
- package/esm/_internal/{flexbox.19.js → FlexBox.js} +3 -3
- package/esm/_internal/FlexBox.js.map +1 -0
- package/esm/_internal/{griditem.20.js → GridItem.js} +3 -3
- package/esm/_internal/GridItem.js.map +1 -0
- package/esm/_internal/{icon.21.js → Icon2.js} +3 -3
- package/esm/_internal/Icon2.js.map +1 -0
- package/esm/_internal/{iconbutton.6.js → IconButton.js} +6 -6
- package/esm/_internal/IconButton.js.map +1 -0
- package/esm/_internal/{imageblock.22.js → ImageBlock.js} +4 -4
- package/esm/_internal/ImageBlock.js.map +1 -0
- package/esm/_internal/{inputhelper.23.js → InputHelper.js} +3 -3
- package/esm/_internal/InputHelper.js.map +1 -0
- package/esm/_internal/{inputlabel.24.js → InputLabel.js} +3 -3
- package/esm/_internal/InputLabel.js.map +1 -0
- package/esm/_internal/{lightbox.25.js → Lightbox2.js} +11 -11
- package/esm/_internal/Lightbox2.js.map +1 -0
- package/esm/_internal/{link.26.js → Link2.js} +5 -5
- package/esm/_internal/Link2.js.map +1 -0
- package/esm/_internal/{linkpreview.27.js → LinkPreview.js} +5 -5
- package/esm/_internal/LinkPreview.js.map +1 -0
- package/esm/_internal/{list.28.js → List2.js} +6 -6
- package/esm/_internal/List2.js.map +1 -0
- package/esm/_internal/{listsubheader.29.js → ListSubheader.js} +3 -3
- package/esm/_internal/ListSubheader.js.map +1 -0
- package/esm/_internal/{message.30.js → Message2.js} +4 -4
- package/esm/_internal/Message2.js.map +1 -0
- package/esm/_internal/{mosaic.31.js → Mosaic2.js} +4 -4
- package/esm/_internal/Mosaic2.js.map +1 -0
- package/esm/_internal/{notification.32.js → Notification2.js} +7 -7
- package/esm/_internal/Notification2.js.map +1 -0
- package/esm/_internal/{popover.33.js → Popover2.js} +31 -8
- package/esm/_internal/Popover2.js.map +1 -0
- package/esm/_internal/{postblock.34.js → PostBlock.js} +5 -5
- package/esm/_internal/PostBlock.js.map +1 -0
- package/esm/_internal/{progress.35.js → Progress2.js} +3 -3
- package/esm/_internal/Progress2.js.map +1 -0
- package/esm/_internal/{progresstrackersteppanel.36.js → ProgressTrackerStepPanel.js} +8 -8
- package/esm/_internal/ProgressTrackerStepPanel.js.map +1 -0
- package/esm/_internal/{radiogroup.37.js → RadioGroup.js} +6 -6
- package/esm/_internal/RadioGroup.js.map +1 -0
- package/esm/_internal/{selectmultiple.38.js → SelectMultiple.js} +12 -12
- package/esm/_internal/SelectMultiple.js.map +1 -0
- package/esm/_internal/{sidenavigationitem.39.js → SideNavigationItem.js} +15 -11
- package/esm/_internal/SideNavigationItem.js.map +1 -0
- package/esm/_internal/{skeletontypography.40.js → SkeletonTypography.js} +3 -3
- package/esm/_internal/SkeletonTypography.js.map +1 -0
- package/esm/_internal/{slider.41.js → Slider2.js} +6 -6
- package/esm/_internal/Slider2.js.map +1 -0
- package/esm/_internal/{slides.42.js → Slides.js} +8 -8
- package/esm/_internal/Slides.js.map +1 -0
- package/esm/_internal/{switch.43.js → Switch2.js} +6 -6
- package/esm/_internal/Switch2.js.map +1 -0
- package/esm/_internal/{tabpanel.45.js → TabPanel.js} +6 -6
- package/esm/_internal/TabPanel.js.map +1 -0
- package/esm/_internal/{tablerow.44.js → TableRow.js} +4 -4
- package/esm/_internal/TableRow.js.map +1 -0
- package/esm/_internal/{textfield.46.js → TextField.js} +9 -9
- package/esm/_internal/TextField.js.map +1 -0
- package/esm/_internal/{thumbnail.47.js → Thumbnail2.js} +6 -6
- package/esm/_internal/Thumbnail2.js.map +1 -0
- package/esm/_internal/{toolbar.49.js → Toolbar2.js} +3 -3
- package/esm/_internal/Toolbar2.js.map +1 -0
- package/esm/_internal/{tooltip.50.js → Tooltip2.js} +14 -12
- package/esm/_internal/Tooltip2.js.map +1 -0
- package/esm/_internal/{uploader.51.js → Uploader2.js} +4 -4
- package/esm/_internal/Uploader2.js.map +1 -0
- package/esm/_internal/{userblock.52.js → UserBlock.js} +5 -5
- package/esm/_internal/UserBlock.js.map +1 -0
- package/esm/_internal/{_rolluppluginbabelhelpers.53.js → _rollupPluginBabelHelpers.js} +1 -1
- package/esm/_internal/_rollupPluginBabelHelpers.js.map +1 -0
- package/esm/_internal/alert-dialog.js +19 -19
- package/esm/_internal/autocomplete.js +20 -21
- package/esm/_internal/autocomplete.js.map +1 -1
- package/esm/_internal/avatar.js +6 -6
- package/esm/_internal/badge.js +3 -3
- package/esm/_internal/button.js +14 -15
- package/esm/_internal/button.js.map +1 -1
- package/esm/_internal/checkbox.js +7 -7
- package/esm/_internal/chip.js +4 -4
- package/esm/_internal/comment-block.js +12 -13
- package/esm/_internal/comment-block.js.map +1 -1
- package/esm/_internal/components.js +1 -1
- package/esm/_internal/{constants.59.js → constants.js} +1 -1
- package/esm/_internal/constants.js.map +1 -0
- package/esm/_internal/date-picker.js +18 -19
- package/esm/_internal/date-picker.js.map +1 -1
- package/esm/_internal/dialog.js +12 -12
- package/esm/_internal/divider.js +3 -3
- package/esm/_internal/drag-handle.js +4 -4
- package/esm/_internal/dropdown.js +10 -11
- package/esm/_internal/dropdown.js.map +1 -1
- package/esm/_internal/expansion-panel.js +16 -17
- package/esm/_internal/expansion-panel.js.map +1 -1
- package/esm/_internal/flag.js +4 -4
- package/esm/_internal/flex-box.js +3 -3
- package/esm/_internal/{getrootclassname.54.js → getRootClassName.js} +2 -2
- package/esm/_internal/getRootClassName.js.map +1 -0
- package/esm/_internal/grid.js +3 -3
- package/esm/_internal/icon.js +3 -3
- package/esm/_internal/image-block.js +6 -6
- package/esm/_internal/input-helper.js +3 -3
- package/esm/_internal/input-label.js +3 -3
- 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/link.js +5 -5
- package/esm/_internal/list.js +7 -7
- package/esm/_internal/{mergerefs.56.js → mergeRefs.js} +1 -1
- package/esm/_internal/mergeRefs.js.map +1 -0
- package/esm/_internal/message.js +4 -4
- package/esm/_internal/mosaic.js +6 -6
- package/esm/_internal/notification.js +9 -9
- package/esm/_internal/{partitionmulti.62.js → partitionMulti.js} +1 -1
- package/esm/_internal/partitionMulti.js.map +1 -0
- package/esm/_internal/popover.js +6 -7
- package/esm/_internal/popover.js.map +1 -1
- package/esm/_internal/post-block.js +7 -7
- package/esm/_internal/progress-tracker.js +9 -9
- package/esm/_internal/progress.js +3 -3
- package/esm/_internal/radio-button.js +6 -6
- package/esm/_internal/{renderlink.65.js → renderLink.js} +2 -2
- package/esm/_internal/renderLink.js.map +1 -0
- package/esm/_internal/select.js +19 -20
- package/esm/_internal/select.js.map +1 -1
- package/esm/_internal/side-navigation.js +14 -15
- package/esm/_internal/side-navigation.js.map +1 -1
- package/esm/_internal/skeleton.js +3 -3
- package/esm/_internal/slider.js +6 -6
- package/esm/_internal/slideshow.js +13 -14
- package/esm/_internal/slideshow.js.map +1 -1
- package/esm/_internal/switch.js +6 -6
- package/esm/_internal/table.js +4 -4
- 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/thumbnail.js +6 -6
- package/esm/_internal/toolbar.js +3 -3
- package/esm/_internal/tooltip.js +8 -9
- package/esm/_internal/tooltip.js.map +1 -1
- package/esm/_internal/{type.64.js → type.js} +1 -1
- package/esm/_internal/type.js.map +1 -0
- package/esm/_internal/{types.48.js → types.js} +3 -2
- package/esm/_internal/types.js.map +1 -0
- package/esm/_internal/uploader.js +4 -4
- package/esm/_internal/{usedelayedvisibility.63.js → useDelayedVisibility.js} +2 -2
- package/esm/_internal/useDelayedVisibility.js.map +1 -0
- package/esm/_internal/{usedisablebodyscroll.61.js → useDisableBodyScroll.js} +1 -1
- package/esm/_internal/useDisableBodyScroll.js.map +1 -0
- package/esm/_internal/{usefocustrap.58.js → useFocusTrap.js} +2 -2
- package/esm/_internal/useFocusTrap.js.map +1 -0
- package/esm/_internal/{userovingtabindex.66.js → useRovingTabIndex.js} +3 -3
- package/esm/_internal/useRovingTabIndex.js.map +1 -0
- package/esm/_internal/user-block.js +9 -9
- package/esm/index.js +89 -0
- package/{index.js.map → esm/index.js.map} +1 -1
- package/esm/{_internal/index.55.js → index2.js} +1 -1
- package/esm/index2.js.map +1 -0
- package/package.json +8 -11
- package/src/components/side-navigation/SideNavigation.stories.tsx +26 -0
- package/src/components/side-navigation/SideNavigationItem.test.tsx +19 -2
- package/src/components/side-navigation/SideNavigationItem.tsx +10 -2
- package/src/components/side-navigation/__snapshots__/SideNavigationItem.test.tsx.snap +1 -1
- package/src/components/thumbnail/index.ts +1 -0
- package/src/components/tooltip/useTooltipOpen.tsx +7 -4
- package/{index.d.ts → types.d.ts} +11 -5
- package/esm/_internal/_rolluppluginbabelhelpers.53.js.map +0 -1
- package/esm/_internal/alertdialog.1.js.map +0 -1
- package/esm/_internal/autocompletemultiple.2.js.map +0 -1
- package/esm/_internal/avatar.3.js.map +0 -1
- package/esm/_internal/badge.4.js.map +0 -1
- package/esm/_internal/button.5.js.map +0 -1
- package/esm/_internal/buttongroup.7.js.map +0 -1
- package/esm/_internal/buttonroot.57.js.map +0 -1
- package/esm/_internal/checkbox.8.js.map +0 -1
- package/esm/_internal/chip.9.js.map +0 -1
- package/esm/_internal/chipgroup.10.js.map +0 -1
- package/esm/_internal/clickawayprovider.60.js.map +0 -1
- package/esm/_internal/commentblock.11.js.map +0 -1
- package/esm/_internal/constants.59.js.map +0 -1
- package/esm/_internal/datepickerfield.12.js.map +0 -1
- package/esm/_internal/dialog.13.js.map +0 -1
- package/esm/_internal/divider.14.js.map +0 -1
- package/esm/_internal/draghandle.15.js.map +0 -1
- package/esm/_internal/dropdown.16.js.map +0 -1
- package/esm/_internal/expansionpanel.17.js.map +0 -1
- package/esm/_internal/flag.18.js.map +0 -1
- package/esm/_internal/flexbox.19.js.map +0 -1
- package/esm/_internal/getrootclassname.54.js.map +0 -1
- package/esm/_internal/griditem.20.js.map +0 -1
- package/esm/_internal/icon.21.js.map +0 -1
- package/esm/_internal/iconbutton.6.js.map +0 -1
- package/esm/_internal/imageblock.22.js.map +0 -1
- package/esm/_internal/index.55.js.map +0 -1
- package/esm/_internal/inputhelper.23.js.map +0 -1
- package/esm/_internal/inputlabel.24.js.map +0 -1
- package/esm/_internal/lightbox.25.js.map +0 -1
- package/esm/_internal/link.26.js.map +0 -1
- package/esm/_internal/linkpreview.27.js.map +0 -1
- package/esm/_internal/list.28.js.map +0 -1
- package/esm/_internal/listsubheader.29.js.map +0 -1
- package/esm/_internal/mergerefs.56.js.map +0 -1
- package/esm/_internal/message.30.js.map +0 -1
- package/esm/_internal/mosaic.31.js.map +0 -1
- package/esm/_internal/notification.32.js.map +0 -1
- package/esm/_internal/partitionmulti.62.js.map +0 -1
- package/esm/_internal/popover.33.js.map +0 -1
- package/esm/_internal/postblock.34.js.map +0 -1
- package/esm/_internal/progress.35.js.map +0 -1
- package/esm/_internal/progresstrackersteppanel.36.js.map +0 -1
- package/esm/_internal/radiogroup.37.js.map +0 -1
- package/esm/_internal/renderlink.65.js.map +0 -1
- package/esm/_internal/selectmultiple.38.js.map +0 -1
- package/esm/_internal/sidenavigationitem.39.js.map +0 -1
- package/esm/_internal/skeletontypography.40.js.map +0 -1
- package/esm/_internal/slider.41.js.map +0 -1
- package/esm/_internal/slides.42.js.map +0 -1
- package/esm/_internal/switch.43.js.map +0 -1
- package/esm/_internal/tablerow.44.js.map +0 -1
- package/esm/_internal/tabpanel.45.js.map +0 -1
- package/esm/_internal/textfield.46.js.map +0 -1
- package/esm/_internal/thumbnail.47.js.map +0 -1
- package/esm/_internal/toolbar.49.js.map +0 -1
- package/esm/_internal/tooltip.50.js.map +0 -1
- package/esm/_internal/type.64.js.map +0 -1
- package/esm/_internal/types.48.js.map +0 -1
- package/esm/_internal/uploader.51.js.map +0 -1
- package/esm/_internal/usedelayedvisibility.63.js.map +0 -1
- package/esm/_internal/usedisablebodyscroll.61.js.map +0 -1
- package/esm/_internal/usefocustrap.58.js.map +0 -1
- package/esm/_internal/userblock.52.js.map +0 -1
- package/esm/_internal/userovingtabindex.66.js.map +0 -1
- package/hooks/useFocusWithin.d.ts +0 -16
- package/hooks/useFocusWithin.js +0 -28
- package/hooks/useFocusWithin.js.map +0 -1
- package/index.js +0 -90
package/esm/index.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import './_internal/_rollupPluginBabelHelpers.js';
|
|
2
|
+
export { Alignment, AspectRatio, ColorPalette, ColorVariant, Emphasis, Kind, Orientation, Size, Theme, Typography, TypographyInterface, TypographyTitleCustom } from './_internal/components.js';
|
|
3
|
+
import 'react';
|
|
4
|
+
import './_internal/getRootClassName.js';
|
|
5
|
+
export { I as Icon } from './_internal/Icon2.js';
|
|
6
|
+
import './index2.js';
|
|
7
|
+
import 'lodash/isBoolean';
|
|
8
|
+
import 'lodash/isEmpty';
|
|
9
|
+
import 'lodash/kebabCase';
|
|
10
|
+
import 'lodash/noop';
|
|
11
|
+
import './_internal/constants.js';
|
|
12
|
+
import 'lodash/concat';
|
|
13
|
+
import 'lodash/dropRight';
|
|
14
|
+
import 'lodash/last';
|
|
15
|
+
import 'lodash/partition';
|
|
16
|
+
import 'lodash/reduce';
|
|
17
|
+
import './_internal/partitionMulti.js';
|
|
18
|
+
import 'lodash/get';
|
|
19
|
+
import './_internal/type.js';
|
|
20
|
+
export { A as AlertDialog } from './_internal/AlertDialog.js';
|
|
21
|
+
export { P as Placement, a as Popover } from './_internal/Popover2.js';
|
|
22
|
+
import './_internal/mergeRefs.js';
|
|
23
|
+
export { A as Autocomplete, a as AutocompleteMultiple } from './_internal/AutocompleteMultiple.js';
|
|
24
|
+
export { A as Avatar } from './_internal/Avatar2.js';
|
|
25
|
+
export { B as Badge } from './_internal/Badge2.js';
|
|
26
|
+
import './_internal/renderLink.js';
|
|
27
|
+
import './_internal/ButtonRoot.js';
|
|
28
|
+
export { a as Button, B as ButtonEmphasis } from './_internal/Button2.js';
|
|
29
|
+
export { I as IconButton } from './_internal/IconButton.js';
|
|
30
|
+
export { B as ButtonGroup } from './_internal/ButtonGroup.js';
|
|
31
|
+
export { C as Checkbox } from './_internal/Checkbox2.js';
|
|
32
|
+
import 'lodash/isFunction';
|
|
33
|
+
export { C as Chip } from './_internal/Chip2.js';
|
|
34
|
+
export { C as ChipGroup } from './_internal/ChipGroup.js';
|
|
35
|
+
export { a as CommentBlock, C as CommentBlockVariant } from './_internal/CommentBlock.js';
|
|
36
|
+
import 'moment';
|
|
37
|
+
export { D as DatePicker, a as DatePickerControlled, b as DatePickerField } from './_internal/DatePickerField.js';
|
|
38
|
+
import 'lodash/range';
|
|
39
|
+
import 'moment-range';
|
|
40
|
+
import './_internal/useFocusTrap.js';
|
|
41
|
+
import 'react-dom';
|
|
42
|
+
import './_internal/ClickAwayProvider.js';
|
|
43
|
+
export { D as Dialog } from './_internal/Dialog2.js';
|
|
44
|
+
import 'lodash/pull';
|
|
45
|
+
import './_internal/useDelayedVisibility.js';
|
|
46
|
+
import './_internal/useDisableBodyScroll.js';
|
|
47
|
+
export { D as DEFAULT_PROPS, a as Divider } from './_internal/Divider2.js';
|
|
48
|
+
export { D as DragHandle } from './_internal/DragHandle.js';
|
|
49
|
+
export { L as List, a as ListItem, i as isClickable } from './_internal/List2.js';
|
|
50
|
+
export { D as Dropdown } from './_internal/Dropdown2.js';
|
|
51
|
+
export { E as ExpansionPanel } from './_internal/ExpansionPanel.js';
|
|
52
|
+
export { F as Flag } from './_internal/Flag2.js';
|
|
53
|
+
import 'lodash/castArray';
|
|
54
|
+
export { F as FlexBox } from './_internal/FlexBox.js';
|
|
55
|
+
export { G as Grid, a as GridItem } from './_internal/GridItem.js';
|
|
56
|
+
import 'lodash/isObject';
|
|
57
|
+
export { a as ImageBlock, I as ImageBlockCaptionPosition } from './_internal/ImageBlock.js';
|
|
58
|
+
export { I as InputHelper } from './_internal/InputHelper.js';
|
|
59
|
+
export { I as InputLabel } from './_internal/InputLabel.js';
|
|
60
|
+
export { L as Lightbox } from './_internal/Lightbox2.js';
|
|
61
|
+
export { L as Link } from './_internal/Link2.js';
|
|
62
|
+
export { L as LinkPreview } from './_internal/LinkPreview.js';
|
|
63
|
+
export { L as ListDivider, a as ListSubheader } from './_internal/ListSubheader.js';
|
|
64
|
+
export { M as Message } from './_internal/Message2.js';
|
|
65
|
+
import 'lodash/take';
|
|
66
|
+
export { M as Mosaic } from './_internal/Mosaic2.js';
|
|
67
|
+
export { N as Notification } from './_internal/Notification2.js';
|
|
68
|
+
export { P as PostBlock } from './_internal/PostBlock.js';
|
|
69
|
+
export { a as Progress, P as ProgressVariant } from './_internal/Progress2.js';
|
|
70
|
+
import './_internal/useRovingTabIndex.js';
|
|
71
|
+
export { a as ProgressTracker, P as ProgressTrackerProvider, b as ProgressTrackerStep, c as ProgressTrackerStepPanel } from './_internal/ProgressTrackerStepPanel.js';
|
|
72
|
+
export { R as RadioButton, a as RadioGroup } from './_internal/RadioGroup.js';
|
|
73
|
+
export { a as Select, c as SelectMultiple, b as SelectMultipleField, S as SelectVariant } from './_internal/SelectMultiple.js';
|
|
74
|
+
export { S as SideNavigation, a as SideNavigationItem } from './_internal/SideNavigationItem.js';
|
|
75
|
+
export { S as SkeletonCircle, b as SkeletonRectangle, a as SkeletonRectangleVariant, c as SkeletonTypography } from './_internal/SkeletonTypography.js';
|
|
76
|
+
export { S as Slider, c as clamp } from './_internal/Slider2.js';
|
|
77
|
+
export { c as Slides, S as Slideshow, b as SlideshowControls, a as SlideshowItem } from './_internal/Slides.js';
|
|
78
|
+
import 'lodash/uniqueId';
|
|
79
|
+
export { S as Switch } from './_internal/Switch2.js';
|
|
80
|
+
export { T as Table, a as TableBody, d as TableCell, c as TableCellVariant, e as TableHeader, f as TableRow, b as ThOrder } from './_internal/TableRow.js';
|
|
81
|
+
export { c as Tab, b as TabList, a as TabListLayout, d as TabPanel, T as TabProvider } from './_internal/TabPanel.js';
|
|
82
|
+
export { T as TextField } from './_internal/TextField.js';
|
|
83
|
+
export { T as Thumbnail, u as useFocusPointStyle } from './_internal/Thumbnail2.js';
|
|
84
|
+
export { T as ThumbnailAspectRatio, a as ThumbnailVariant } from './_internal/types.js';
|
|
85
|
+
export { T as Toolbar } from './_internal/Toolbar2.js';
|
|
86
|
+
export { T as Tooltip } from './_internal/Tooltip2.js';
|
|
87
|
+
export { a as Uploader, U as UploaderVariant } from './_internal/Uploader2.js';
|
|
88
|
+
export { U as UserBlock } from './_internal/UserBlock.js';
|
|
89
|
+
//# 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index2.js","sources":["../../../../node_modules/uid/dist/index.mjs"],"sourcesContent":["var IDX=256, HEX=[], SIZE=256, BUFFER;\nwhile (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);\n\nexport function uid(len) {\n\tvar i=0, tmp=(len || 11);\n\tif (!BUFFER || ((IDX + tmp) > SIZE*2)) {\n\t\tfor (BUFFER='',IDX=0; i < SIZE; i++) {\n\t\t\tBUFFER += HEX[Math.random() * 256 | 0];\n\t\t}\n\t}\n\n\treturn BUFFER.substring(IDX, IDX++ + tmp);\n}\n"],"names":[],"mappings":"AAAA,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;AACtC,OAAO,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/D;AACO,SAAS,GAAG,CAAC,GAAG,EAAE;AACzB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAC1B,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;AACxC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACvC,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE;AACF;AACA,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;AAC3C;;;;"}
|
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.18
|
|
11
|
-
"@lumx/icons": "^2.2.18
|
|
10
|
+
"@lumx/core": "^2.2.18",
|
|
11
|
+
"@lumx/icons": "^2.2.18",
|
|
12
12
|
"@popperjs/core": "^2.5.4",
|
|
13
13
|
"body-scroll-lock": "^3.1.5",
|
|
14
14
|
"classnames": "^2.2.6",
|
|
@@ -67,7 +67,6 @@
|
|
|
67
67
|
"rollup-plugin-babel": "^4.4.0",
|
|
68
68
|
"rollup-plugin-cleaner": "^1.0.0",
|
|
69
69
|
"rollup-plugin-copy": "^3.3.0",
|
|
70
|
-
"rollup-plugin-dts": "^4.1.0",
|
|
71
70
|
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
72
71
|
"rollup-plugin-ts-paths-resolve": "^1.3.0",
|
|
73
72
|
"rollup-plugin-typescript-paths": "^1.2.2",
|
|
@@ -99,12 +98,10 @@
|
|
|
99
98
|
"React"
|
|
100
99
|
],
|
|
101
100
|
"license": "MIT",
|
|
102
|
-
"
|
|
101
|
+
"module": "esm/index.js",
|
|
102
|
+
"main": "esm/index.js",
|
|
103
|
+
"types": "types.d.ts",
|
|
103
104
|
"name": "@lumx/react",
|
|
104
|
-
"exports": {
|
|
105
|
-
".": "./index.js",
|
|
106
|
-
"./hooks/*": "./hooks/*.js"
|
|
107
|
-
},
|
|
108
105
|
"publishConfig": {
|
|
109
106
|
"directory": "dist"
|
|
110
107
|
},
|
|
@@ -114,7 +111,7 @@
|
|
|
114
111
|
},
|
|
115
112
|
"scripts": {
|
|
116
113
|
"build": "rollup -c && yarn generate:types",
|
|
117
|
-
"generate:types": "dts-bundle-generator --no-check --external-types=react --external-imports=moment -o dist/
|
|
114
|
+
"generate:types": "dts-bundle-generator --no-check --external-types=react --external-imports=moment -o dist/types.d.ts src/index.ts",
|
|
118
115
|
"prepare": "install-peers || exit 0",
|
|
119
116
|
"prepublishOnly": "yarn build",
|
|
120
117
|
"test": "jest --config jest/index.js --coverage --notify --passWithNoTests --detectOpenHandles --runInBand",
|
|
@@ -123,6 +120,6 @@
|
|
|
123
120
|
"build:storybook": "cd storybook && ./build"
|
|
124
121
|
},
|
|
125
122
|
"sideEffects": false,
|
|
126
|
-
"version": "2.2.18
|
|
127
|
-
"gitHead": "
|
|
123
|
+
"version": "2.2.18",
|
|
124
|
+
"gitHead": "76dbe9453429551c6332560fc8cdb7abab8eeb04"
|
|
128
125
|
}
|
|
@@ -163,3 +163,29 @@ export const With3LevelsAndMultiActions = () => {
|
|
|
163
163
|
</SideNavigation>
|
|
164
164
|
);
|
|
165
165
|
};
|
|
166
|
+
|
|
167
|
+
/** Using closeMode="hide" keeps children in DOM on close */
|
|
168
|
+
export const CloseModeHide = () => {
|
|
169
|
+
const [isOpen, setIsOpen] = React.useState(false);
|
|
170
|
+
const toggleL1 = () => setIsOpen(!isOpen);
|
|
171
|
+
|
|
172
|
+
return (
|
|
173
|
+
<SideNavigation>
|
|
174
|
+
<SideNavigationItem
|
|
175
|
+
closeMode="hide"
|
|
176
|
+
label="Level 1"
|
|
177
|
+
emphasis={Emphasis.high}
|
|
178
|
+
isOpen={isOpen}
|
|
179
|
+
onClick={toggleL1}
|
|
180
|
+
toggleButtonProps={{ label: 'Toggle' }}
|
|
181
|
+
>
|
|
182
|
+
<SideNavigationItem
|
|
183
|
+
closeMode="hide"
|
|
184
|
+
label="Level 2"
|
|
185
|
+
emphasis={Emphasis.medium}
|
|
186
|
+
toggleButtonProps={{ label: 'Toggle' }}
|
|
187
|
+
/>
|
|
188
|
+
</SideNavigationItem>
|
|
189
|
+
</SideNavigation>
|
|
190
|
+
);
|
|
191
|
+
};
|
|
@@ -2,6 +2,7 @@ import React, { ReactElement } from 'react';
|
|
|
2
2
|
|
|
3
3
|
import { mount, shallow } from 'enzyme';
|
|
4
4
|
import 'jest-enzyme';
|
|
5
|
+
import without from 'lodash/without';
|
|
5
6
|
|
|
6
7
|
import { commonTestsSuite, Wrapper } from '@lumx/react/testing/utils';
|
|
7
8
|
import { getBasicClass } from '@lumx/react/utils';
|
|
@@ -51,13 +52,28 @@ describe(`<${SideNavigationItem.displayName}>`, () => {
|
|
|
51
52
|
expect(root).toHaveClassName(CLASSNAME);
|
|
52
53
|
});
|
|
53
54
|
|
|
54
|
-
it('should render correctly with
|
|
55
|
+
it('should render correctly with split actions', () => {
|
|
55
56
|
const { root, wrapper } = setup({ linkProps: { href: 'http://toto.com' }, onClick: () => null });
|
|
56
57
|
expect(wrapper).toMatchSnapshot();
|
|
57
58
|
|
|
58
59
|
expect(root).toExist();
|
|
59
60
|
expect(root).toHaveClassName(CLASSNAME);
|
|
60
61
|
});
|
|
62
|
+
|
|
63
|
+
it('should unmount children by default when closed', () => {
|
|
64
|
+
const { children } = setup({
|
|
65
|
+
children: <SideNavigationItem label="Child 1" toggleButtonProps={{ label: 'Toggle' }} />,
|
|
66
|
+
});
|
|
67
|
+
expect(children).not.toExist();
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
it('should keep children in DOM when closed and with closeMode="hide"', () => {
|
|
71
|
+
const { children } = setup({
|
|
72
|
+
closeMode: 'hide',
|
|
73
|
+
children: <SideNavigationItem key="1" label="Child 1" toggleButtonProps={{ label: 'Toggle' }} />,
|
|
74
|
+
});
|
|
75
|
+
expect(children).toExist();
|
|
76
|
+
});
|
|
61
77
|
});
|
|
62
78
|
|
|
63
79
|
// 2. Test defaultProps value and important props custom values.
|
|
@@ -67,7 +83,8 @@ describe(`<${SideNavigationItem.displayName}>`, () => {
|
|
|
67
83
|
it('should use default props', () => {
|
|
68
84
|
const { root } = setup();
|
|
69
85
|
|
|
70
|
-
|
|
86
|
+
const propNames = without(Object.keys(DEFAULT_PROPS), 'closeMode');
|
|
87
|
+
for (const prop of propNames) {
|
|
71
88
|
const className = getBasicClass({ prefix: CLASSNAME, type: prop, value: DEFAULT_PROPS[prop] });
|
|
72
89
|
if (className) {
|
|
73
90
|
expect(root).toHaveClassName(className);
|
|
@@ -41,6 +41,11 @@ export interface SideNavigationItemProps extends GenericProps {
|
|
|
41
41
|
/** Props to pass to the toggle button (minus those already set by the SideNavigationItem props). */
|
|
42
42
|
toggleButtonProps: Pick<IconButtonProps, 'label'> &
|
|
43
43
|
Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis' | 'color' | 'size'>;
|
|
44
|
+
/**
|
|
45
|
+
* Choose how the children are hidden when closed
|
|
46
|
+
* ('hide' keeps the children in DOM but hide them, 'unmount' remove the children from the DOM).
|
|
47
|
+
*/
|
|
48
|
+
closeMode?: 'hide' | 'unmount';
|
|
44
49
|
/** On action button click callback. */
|
|
45
50
|
onActionClick?(evt: React.MouseEvent): void;
|
|
46
51
|
/** On click callback. */
|
|
@@ -62,6 +67,7 @@ const CLASSNAME = getRootClassName(COMPONENT_NAME);
|
|
|
62
67
|
*/
|
|
63
68
|
const DEFAULT_PROPS: Partial<SideNavigationItemProps> = {
|
|
64
69
|
emphasis: Emphasis.high,
|
|
70
|
+
closeMode: 'unmount',
|
|
65
71
|
};
|
|
66
72
|
|
|
67
73
|
/**
|
|
@@ -85,12 +91,14 @@ export const SideNavigationItem: Comp<SideNavigationItemProps, HTMLLIElement> =
|
|
|
85
91
|
onActionClick,
|
|
86
92
|
onClick,
|
|
87
93
|
toggleButtonProps,
|
|
94
|
+
closeMode = 'unmount',
|
|
88
95
|
...forwardedProps
|
|
89
96
|
} = props;
|
|
90
97
|
|
|
91
98
|
const content = children && Children.toArray(children).filter(isComponent(SideNavigationItem));
|
|
92
99
|
const hasContent = !isEmpty(content);
|
|
93
100
|
const shouldSplitActions = Boolean(onActionClick);
|
|
101
|
+
const showChildren = hasContent && isOpen;
|
|
94
102
|
|
|
95
103
|
return (
|
|
96
104
|
<li
|
|
@@ -100,7 +108,7 @@ export const SideNavigationItem: Comp<SideNavigationItemProps, HTMLLIElement> =
|
|
|
100
108
|
className,
|
|
101
109
|
handleBasicClasses({
|
|
102
110
|
emphasis,
|
|
103
|
-
isOpen,
|
|
111
|
+
isOpen: showChildren,
|
|
104
112
|
isSelected,
|
|
105
113
|
prefix: CLASSNAME,
|
|
106
114
|
}),
|
|
@@ -151,7 +159,7 @@ export const SideNavigationItem: Comp<SideNavigationItemProps, HTMLLIElement> =
|
|
|
151
159
|
)
|
|
152
160
|
)}
|
|
153
161
|
|
|
154
|
-
{
|
|
162
|
+
{(closeMode === 'hide' || showChildren) && <ul className={`${CLASSNAME}__children`}>{content}</ul>}
|
|
155
163
|
</li>
|
|
156
164
|
);
|
|
157
165
|
});
|
|
@@ -13,7 +13,7 @@ exports[`<SideNavigationItem> Snapshots and structure should render correctly 1`
|
|
|
13
13
|
</li>
|
|
14
14
|
`;
|
|
15
15
|
|
|
16
|
-
exports[`<SideNavigationItem> Snapshots and structure should render correctly with
|
|
16
|
+
exports[`<SideNavigationItem> Snapshots and structure should render correctly with split actions 1`] = `
|
|
17
17
|
<li
|
|
18
18
|
className="lumx-side-navigation-item lumx-side-navigation-item--emphasis-high"
|
|
19
19
|
>
|
|
@@ -95,13 +95,16 @@ export function useTooltipOpen(delay: number | undefined, anchorElement: HTMLEle
|
|
|
95
95
|
);
|
|
96
96
|
|
|
97
97
|
// Attach events
|
|
98
|
-
for (const [node, eventType,
|
|
99
|
-
node.addEventListener(eventType,
|
|
98
|
+
for (const [node, eventType, eventHandler] of events) {
|
|
99
|
+
node.addEventListener(eventType, eventHandler);
|
|
100
100
|
}
|
|
101
101
|
return () => {
|
|
102
|
+
// Clear pending timers.
|
|
103
|
+
if (timer) clearTimeout(timer);
|
|
104
|
+
|
|
102
105
|
// Detach events.
|
|
103
|
-
for (const [node, eventType,
|
|
104
|
-
node.removeEventListener(eventType,
|
|
106
|
+
for (const [node, eventType, eventHandler] of events) {
|
|
107
|
+
node.removeEventListener(eventType, eventHandler);
|
|
105
108
|
}
|
|
106
109
|
};
|
|
107
110
|
}, [anchorElement, delay]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Generated by dts-bundle-generator v5.
|
|
1
|
+
// Generated by dts-bundle-generator v5.6.0
|
|
2
2
|
|
|
3
3
|
/// <reference types="react" />
|
|
4
4
|
|
|
@@ -671,7 +671,7 @@ export interface ChipGroupProps extends GenericProps {
|
|
|
671
671
|
children: ReactNode;
|
|
672
672
|
}
|
|
673
673
|
export declare const ChipGroup: Comp<ChipGroupProps, HTMLDivElement> & {
|
|
674
|
-
useChipGroupNavigation: import("
|
|
674
|
+
useChipGroupNavigation: import("../../hooks/useChipGroupNavigation").useChipGroupNavigationType<any>;
|
|
675
675
|
};
|
|
676
676
|
/**
|
|
677
677
|
* Comment block variants.
|
|
@@ -1495,7 +1495,7 @@ export interface ListProps extends GenericProps {
|
|
|
1495
1495
|
onListItemSelected?(key: Key, index: number, evt: SyntheticEvent): void;
|
|
1496
1496
|
}
|
|
1497
1497
|
export declare const List: Comp<ListProps, HTMLUListElement> & {
|
|
1498
|
-
useKeyboardListNavigation: import("
|
|
1498
|
+
useKeyboardListNavigation: import("../../hooks/useKeyboardListNavigation").useKeyboardListNavigationType;
|
|
1499
1499
|
};
|
|
1500
1500
|
export declare type ListItemSize = Extract<Size, "tiny" | "regular" | "big" | "huge">;
|
|
1501
1501
|
/**
|
|
@@ -1957,6 +1957,11 @@ export interface SideNavigationItemProps extends GenericProps {
|
|
|
1957
1957
|
linkProps?: React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;
|
|
1958
1958
|
/** Props to pass to the toggle button (minus those already set by the SideNavigationItem props). */
|
|
1959
1959
|
toggleButtonProps: Pick<IconButtonProps, "label"> & Omit<IconButtonProps, "label" | "onClick" | "icon" | "emphasis" | "color" | "size">;
|
|
1960
|
+
/**
|
|
1961
|
+
* Choose how the children are hidden when closed
|
|
1962
|
+
* ('hide' keeps the children in DOM but hide them, 'unmount' remove the children from the DOM).
|
|
1963
|
+
*/
|
|
1964
|
+
closeMode?: "hide" | "unmount";
|
|
1960
1965
|
/** On action button click callback. */
|
|
1961
1966
|
onActionClick?(evt: React.MouseEvent): void;
|
|
1962
1967
|
/** On click callback. */
|
|
@@ -2220,8 +2225,8 @@ export interface SlideshowControlsProps extends GenericProps {
|
|
|
2220
2225
|
playButtonProps?: Pick<IconButtonProps, "label"> & Omit<IconButtonProps, "label" | "onClick" | "icon" | "emphasis" | "color">;
|
|
2221
2226
|
}
|
|
2222
2227
|
export declare const SlideshowControls: Comp<SlideshowControlsProps, HTMLDivElement> & {
|
|
2223
|
-
useSlideshowControls: ({ activeIndex, groupBy, interval, autoPlay, defaultActiveIndex, onChange, itemsCount, id, slidesId, }: import("
|
|
2224
|
-
useSlideshowControlsDefaultOptions: Partial<import("
|
|
2228
|
+
useSlideshowControls: ({ activeIndex, groupBy, interval, autoPlay, defaultActiveIndex, onChange, itemsCount, id, slidesId, }: import("../../hooks/useSlideshowControls").UseSlideshowControlsOptions) => import("../../hooks/useSlideshowControls").UseSlideshowControls;
|
|
2229
|
+
useSlideshowControlsDefaultOptions: Partial<import("../../hooks/useSlideshowControls").UseSlideshowControlsOptions>;
|
|
2225
2230
|
};
|
|
2226
2231
|
export interface SlidesProps extends GenericProps {
|
|
2227
2232
|
/** current slide active */
|
|
@@ -2547,6 +2552,7 @@ export interface TextFieldProps extends GenericProps {
|
|
|
2547
2552
|
* @return React element.
|
|
2548
2553
|
*/
|
|
2549
2554
|
export declare const TextField: Comp<TextFieldProps, HTMLDivElement>;
|
|
2555
|
+
export declare const useFocusPointStyle: ({ image, aspectRatio, focusPoint, imgProps: { width, height } }: ThumbnailProps, element: HTMLImageElement | undefined, isLoaded: boolean) => CSSProperties;
|
|
2550
2556
|
/**
|
|
2551
2557
|
* Defines the props of the component.
|
|
2552
2558
|
*/
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_rolluppluginbabelhelpers.53.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alertdialog.1.js","sources":["../../../src/components/alert-dialog/AlertDialog.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport {\n DialogProps,\n Dialog,\n Button,\n Emphasis,\n ColorPalette,\n Icon,\n Size,\n Kind,\n Toolbar,\n ButtonProps,\n} from '@lumx/react';\n\nimport { mdiAlert, mdiAlertCircle, mdiCheckCircle, mdiInformation } from '@lumx/icons/';\nimport { uid } from 'uid';\nimport { Comp, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nexport interface AlertDialogProps extends Omit<DialogProps, 'header' | 'footer'> {\n /** Message variant. */\n kind?: Kind;\n /** Dialog title. */\n title?: string;\n /** Props forwarded to the confirm button */\n confirmProps: ButtonProps & {\n onClick(): void;\n label: string;\n };\n /**\n * Props forwarded to the cancel button.\n * Will not render a cancel button if undefined.\n */\n cancelProps?: ButtonProps & {\n onClick(): void;\n label: string;\n };\n}\n\n/**\n * Associative map from message kind to color and icon.\n */\nconst CONFIG = {\n [Kind.error]: { color: ColorPalette.red, icon: mdiAlert },\n [Kind.info]: { color: ColorPalette.blue, icon: mdiInformation },\n [Kind.success]: { color: ColorPalette.green, icon: mdiCheckCircle },\n [Kind.warning]: { color: ColorPalette.yellow, icon: mdiAlertCircle },\n};\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'AlertDialog';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<DialogProps> = {\n size: Size.tiny,\n kind: Kind.info,\n};\n\n/**\n * AlertDialog component.\n *\n * An alert dialog is a modal dialog that interrupts the user's workflow to\n * communicate an important message and acquire a response.\n *\n * It should not have a complex content.\n * Children of this component should only be strings, paragraphs or links.\n */\nexport const AlertDialog: Comp<AlertDialogProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n id,\n title,\n className,\n cancelProps,\n confirmProps,\n kind,\n size,\n dialogProps,\n children,\n ...forwardedProps\n } = props;\n\n const cancelButtonRef = React.useRef(null);\n const confirmationButtonRef = React.useRef(null);\n const { color, icon } = CONFIG[kind as Kind] || {};\n\n // Define a unique ID to target title and description for aria attributes.\n const uniqueId = React.useMemo(() => id || uid(), [id]);\n const titleId = `${uniqueId}-title`;\n const descriptionId = `${uniqueId}-description`;\n\n // If content is a string, set in a paragraph.\n const DescriptionElement = typeof children === 'string' ? 'p' : 'div';\n\n const { label: confirmLabel, onClick: confirmOnClick, ...forwardedConfirmProps } = confirmProps;\n const { label: cancelLabel, onClick: cancelOnClick, ...forwardedCancelProps } = cancelProps || {};\n\n return (\n <Dialog\n ref={ref}\n focusElement={cancelProps ? cancelButtonRef : confirmationButtonRef}\n size={size}\n dialogProps={{\n id: uniqueId,\n role: 'alertdialog',\n 'aria-labelledby': titleId,\n 'aria-describedby': descriptionId,\n ...dialogProps,\n }}\n className={classNames(\n className,\n handleBasicClasses({\n kind,\n prefix: CLASSNAME,\n }),\n )}\n {...forwardedProps}\n >\n <header>\n <Toolbar\n className=\"lumx-spacing-margin-horizontal\"\n before={<Icon icon={icon} size={Size.s} color={color} />}\n label={\n <h2 id={titleId} className=\"lumx-typography-title\">\n {title}\n </h2>\n }\n />\n </header>\n\n {children && (\n <DescriptionElement\n id={descriptionId}\n className=\"lumx-typography-body2 lumx-spacing-padding-vertical-big lumx-spacing-padding-horizontal-huge\"\n >\n {children}\n </DescriptionElement>\n )}\n\n <footer>\n <Toolbar\n className=\"lumx-spacing-margin-horizontal\"\n after={\n <>\n {cancelProps && (\n <Button\n {...forwardedCancelProps}\n ref={cancelButtonRef}\n emphasis={Emphasis.medium}\n onClick={cancelOnClick}\n >\n {cancelLabel}\n </Button>\n )}\n <Button\n {...forwardedConfirmProps}\n ref={confirmationButtonRef}\n color={color}\n className=\"lumx-spacing-margin-left-regular\"\n onClick={confirmOnClick}\n >\n {confirmLabel}\n </Button>\n </>\n }\n />\n </footer>\n </Dialog>\n );\n});\n\nAlertDialog.displayName = COMPONENT_NAME;\nAlertDialog.className = CLASSNAME;\nAlertDialog.defaultProps = DEFAULT_PROPS;\n"],"names":["CONFIG","Kind","error","color","ColorPalette","red","icon","mdiAlert","info","blue","mdiInformation","success","green","mdiCheckCircle","warning","yellow","mdiAlertCircle","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","size","Size","tiny","kind","AlertDialog","forwardRef","props","ref","id","title","className","cancelProps","confirmProps","dialogProps","children","forwardedProps","cancelButtonRef","React","useRef","confirmationButtonRef","uniqueId","useMemo","uid","titleId","descriptionId","DescriptionElement","confirmLabel","label","confirmOnClick","onClick","forwardedConfirmProps","cancelLabel","cancelOnClick","forwardedCancelProps","role","classNames","handleBasicClasses","prefix","s","Emphasis","medium","displayName","defaultProps"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autocompletemultiple.2.js","sources":["../../../src/components/autocomplete/Autocomplete.tsx","../../../src/components/autocomplete/AutocompleteMultiple.tsx"],"sourcesContent":["import React, { forwardRef, ReactNode, RefObject, SyntheticEvent, useRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Dropdown, IconButtonProps, Offset, Placement, TextField, Theme } from '@lumx/react';\n\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { useFocus } from '@lumx/react/hooks/useFocus';\nimport { mergeRefs } from '@lumx/react/utils/mergeRefs';\n\n/**\n * Defines the props of the component.\n */\nexport interface AutocompleteProps extends GenericProps {\n /**\n * Whether the suggestions list should display anchored to the input or to the wrapper.\n * @see {@link DropdownProps#anchorToInput}\n */\n anchorToInput?: boolean;\n /**\n * Props to pass to the clear button (minus those already set by the TextField props).\n * If not specified, the button won't be displayed.\n * @see {@link TextFieldProps#clearButtonProps}\n */\n clearButtonProps?: Pick<IconButtonProps, 'label'> &\n Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;\n /**\n * Reference to the <input> or <textarea> element.\n * @see {@link TextFieldProps#inputRef}\n */\n inputRef?: RefObject<HTMLInputElement>;\n /**\n * The offset that will be applied to the Dropdown position.\n * @see {@link DropdownProps#offset}\n */\n offset?: Offset;\n /**\n * The preferred Dropdown location against the anchor element.\n * @see {@link DropdownProps#placement}\n */\n placement?: Placement;\n /**\n * Whether the dropdown should fit to the anchor width or not.\n * @see {@link DropdownProps#fitToAnchorWidth}\n */\n fitToAnchorWidth?: boolean;\n /**\n * The error related to the component.\n * @see {@link TextFieldProps#error}\n */\n error?: string | ReactNode;\n /**\n * Whether the text field is displayed with error style or not.\n * @see {@link TextFieldProps#hasError}\n */\n hasError?: boolean;\n /**\n * Whether the text box should be focused upon closing the suggestions or not.\n */\n shouldFocusOnClose?: boolean;\n /**\n * The helper message of the text field.\n * @see {@link TextFieldProps#helper}\n */\n helper?: string;\n /**\n * The icon of the text field (SVG path).\n * @see {@link TextFieldProps#icon}\n */\n icon?: string;\n /**\n * Whether the component is disabled or not.\n * @see {@link TextFieldProps#isDisabled}\n */\n isDisabled?: boolean;\n /**\n * Whether the component is required or not.\n * @see {@link TextFieldProps#isRequired}\n */\n isRequired?: boolean;\n /**\n * Whether the text field is displayed with valid style or not.\n * @see {@link TextFieldProps#isValid}\n */\n isValid?: boolean;\n /**\n * The label of the text field displayed in a label tag.\n * @see {@link TextFieldProps#label}\n */\n label?: string;\n /**\n * The placeholder message of the text field.\n * @see {@link TextFieldProps#placeholder}\n */\n placeholder?: string;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** List of suggestions to display during autocomplete. */\n children: React.ReactNode;\n /**\n * The list of chips to be displayed before the text field input.\n */\n chips?: React.ReactNode;\n /**\n * The value of the text field.\n * @see {@link TextFieldProps#value}\n */\n value: string;\n /**\n * Whether the suggestions from the autocomplete should be displayed or not.\n * @see {@link DropdownProps#isOpen}\n */\n isOpen: boolean;\n /**\n * The native input name property.\n * @see {@link TextFieldProps#name}\n */\n name?: string;\n /**\n * Whether a click in the Autocomplete dropdown would close it or not.\n * @see {@link DropdownProps#closeOnClick}\n */\n closeOnClick?: boolean;\n /**\n * Whether a click anywhere out of the Autocomplete would close it or not.\n * @see {@link DropdownProps#closeOnClickAway}\n */\n closeOnClickAway?: boolean;\n /**\n * Whether an escape key press would close the Autocomplete or not.\n * @see {@link DropdownProps#closeOnEscape}\n */\n closeOnEscape?: boolean;\n /**\n * The function called on blur.\n * @see {@link TextFieldProps#onBlur}\n */\n onBlur?(event: React.FocusEvent): void;\n /**\n * On change callback.\n * @see {@link TextFieldProps#onChange}\n */\n onChange(value: string, name?: string, event?: SyntheticEvent): void;\n /**\n * The function called on close.\n * @see {@link DropdownProps#onClose}\n */\n onClose?(): void;\n /**\n * The function called on focus.\n * @see {@link TextFieldProps#onFocus}\n */\n onFocus?(event: React.FocusEvent): void;\n /**\n * The function called when the bottom of the dropdown is reached.\n * @see {@link DropdownProps#onInfiniteScroll}\n */\n onInfiniteScroll?(): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Autocomplete';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<AutocompleteProps> = {\n anchorToInput: false,\n closeOnClick: false,\n closeOnClickAway: true,\n closeOnEscape: true,\n shouldFocusOnClose: false,\n};\n\n/**\n * Autocomplete component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Autocomplete: Comp<AutocompleteProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n anchorToInput,\n children,\n chips,\n className,\n closeOnClick,\n closeOnClickAway,\n closeOnEscape,\n disabled,\n error,\n fitToAnchorWidth,\n hasError,\n helper,\n icon,\n inputRef,\n clearButtonProps,\n isDisabled = disabled,\n isRequired,\n isOpen,\n isValid,\n label,\n name,\n offset,\n onBlur,\n onChange,\n onClose,\n onFocus,\n onInfiniteScroll,\n placeholder,\n placement,\n shouldFocusOnClose,\n theme,\n value,\n ...forwardedProps\n } = props;\n const inputAnchorRef = useRef<HTMLElement>(null);\n const textFieldRef = useRef(null);\n useFocus(inputAnchorRef.current, !isOpen && shouldFocusOnClose);\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n }),\n )}\n >\n <TextField\n chips={chips}\n error={error}\n hasError={hasError}\n helper={helper}\n icon={icon}\n inputRef={mergeRefs(inputAnchorRef, inputRef) as any}\n clearButtonProps={clearButtonProps}\n isDisabled={isDisabled}\n isRequired={isRequired}\n isValid={isValid}\n label={label}\n name={name}\n onBlur={onBlur}\n onChange={onChange}\n onFocus={onFocus}\n placeholder={placeholder}\n textFieldRef={textFieldRef}\n theme={theme}\n value={value}\n />\n <Dropdown\n anchorRef={anchorToInput ? inputAnchorRef : textFieldRef}\n closeOnClick={closeOnClick}\n closeOnClickAway={closeOnClickAway}\n closeOnEscape={closeOnEscape}\n fitToAnchorWidth={fitToAnchorWidth}\n isOpen={isOpen}\n offset={offset}\n onClose={onClose}\n onInfiniteScroll={onInfiniteScroll}\n placement={placement}\n shouldFocusOnOpen={false}\n theme={theme}\n >\n {children}\n </Dropdown>\n </div>\n );\n});\nAutocomplete.displayName = COMPONENT_NAME;\nAutocomplete.className = CLASSNAME;\nAutocomplete.defaultProps = DEFAULT_PROPS;\n","import { mdiClose } from '@lumx/icons';\nimport { Autocomplete, AutocompleteProps, Chip, HorizontalAlignment, Icon, Size } from '@lumx/react';\n\nimport { Comp, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport classNames from 'classnames';\nimport React, { forwardRef, ReactNode } from 'react';\n\n/**\n * Defines the props of the component.\n */\nexport interface AutocompleteMultipleProps extends AutocompleteProps {\n /** Selected values. */\n values: any[];\n /** Alignment of the chips in the autocomplete. */\n chipsAlignment?: HorizontalAlignment;\n /** Selected value render function. Default: Renders the value inside of a Chip. */\n selectedChipRender(\n choice: any,\n index: number,\n onClear?: (event: React.MouseEvent, choice: any) => void,\n isDisabled?: boolean,\n ): ReactNode | string;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'AutocompleteMultiple';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<AutocompleteMultipleProps> = {\n closeOnClickAway: true,\n closeOnEscape: true,\n selectedChipRender(choice, index, onClear, isDisabled) {\n const onClick = (event: React.MouseEvent) => onClear && onClear(event, choice);\n return (\n <Chip\n key={index}\n after={onClear && <Icon icon={mdiClose} size={Size.xxs} />}\n isDisabled={isDisabled}\n size={Size.s}\n onAfterClick={onClick}\n onClick={onClick}\n >\n {choice}\n </Chip>\n );\n },\n values: [],\n};\n\n/**\n * AutocompleteMultiple component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const AutocompleteMultiple: Comp<AutocompleteMultipleProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n anchorToInput,\n children,\n // `chipsAlignment` needs to be here to remove it from `forwardedProps`.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n chipsAlignment,\n className,\n closeOnClickAway,\n closeOnEscape,\n fitToAnchorWidth,\n hasError,\n helper,\n icon,\n inputRef,\n clearButtonProps,\n isDisabled,\n isRequired,\n isOpen,\n isValid,\n label,\n name,\n offset,\n onBlur,\n onChange,\n onClear,\n onClose,\n onFocus,\n onInfiniteScroll,\n onKeyDown,\n placeholder,\n placement,\n selectedChipRender,\n shouldFocusOnClose,\n theme,\n type,\n value,\n values,\n ...forwardedProps\n } = props;\n\n return (\n <Autocomplete\n ref={ref}\n {...forwardedProps}\n anchorToInput={anchorToInput}\n className={classNames(\n className,\n handleBasicClasses({\n prefix: CLASSNAME,\n }),\n )}\n name={name}\n value={value}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onBlur={onBlur}\n shouldFocusOnClose={shouldFocusOnClose}\n onFocus={onFocus}\n hasError={hasError}\n helper={helper}\n icon={icon}\n inputRef={inputRef}\n chips={values && values.map((chip: any, index: number) => selectedChipRender(chip, index, onClear))}\n isDisabled={isDisabled}\n isRequired={isRequired}\n clearButtonProps={clearButtonProps}\n isValid={isValid}\n label={label}\n placeholder={placeholder}\n theme={theme}\n type={type}\n isOpen={isOpen}\n closeOnClick={false}\n closeOnClickAway={closeOnClickAway}\n closeOnEscape={closeOnEscape}\n onClose={onClose}\n offset={offset}\n placement={placement}\n fitToAnchorWidth={fitToAnchorWidth}\n onInfiniteScroll={onInfiniteScroll}\n >\n {children}\n </Autocomplete>\n );\n});\nAutocompleteMultiple.displayName = COMPONENT_NAME;\nAutocompleteMultiple.className = CLASSNAME;\nAutocompleteMultiple.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","anchorToInput","closeOnClick","closeOnClickAway","closeOnEscape","shouldFocusOnClose","Autocomplete","forwardRef","props","ref","children","chips","className","disabled","error","fitToAnchorWidth","hasError","helper","icon","inputRef","clearButtonProps","isDisabled","isRequired","isOpen","isValid","label","name","offset","onBlur","onChange","onClose","onFocus","onInfiniteScroll","placeholder","placement","theme","value","forwardedProps","inputAnchorRef","useRef","textFieldRef","useFocus","current","classNames","handleBasicClasses","prefix","mergeRefs","displayName","defaultProps","selectedChipRender","choice","index","onClear","onClick","event","mdiClose","Size","xxs","s","values","AutocompleteMultiple","chipsAlignment","onKeyDown","type","map","chip"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.3.js","sources":["../../../src/components/avatar/Avatar.tsx"],"sourcesContent":["import React, { forwardRef, KeyboardEventHandler, MouseEventHandler, ReactElement, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { AspectRatio, Size, Theme, Thumbnail, ThumbnailProps } from '@lumx/react';\n\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\n/**\n * Avatar sizes.\n */\nexport type AvatarSize = Extract<Size, 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl'>;\n\n/**\n * Defines the props of the component.\n */\nexport interface AvatarProps extends GenericProps {\n /** Action toolbar content. */\n actions?: ReactNode;\n /** Image alternative text. */\n alt: string;\n /** Badge. */\n badge?: ReactElement;\n /** Image URL. */\n image: string;\n /** Props to pass to the link wrapping the thumbnail. */\n linkProps?: React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;\n /** Custom react component for the link (can be used to inject react router Link). */\n linkAs?: 'a' | any;\n /** On click callback. */\n onClick?: MouseEventHandler<HTMLDivElement>;\n /** On key press callback. */\n onKeyPress?: KeyboardEventHandler<HTMLDivElement>;\n /** Size variant. */\n size?: AvatarSize;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** Props to pass to the thumbnail (minus those already set by the Avatar props). */\n thumbnailProps?: Omit<\n ThumbnailProps,\n 'image' | 'alt' | 'size' | 'theme' | 'align' | 'fillHeight' | 'variant' | 'aspectRatio'\n >;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Avatar';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<AvatarProps> = {\n size: Size.m,\n theme: Theme.light,\n};\n\n/**\n * Avatar component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Avatar: Comp<AvatarProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n actions,\n alt,\n badge,\n className,\n image,\n linkProps,\n linkAs,\n onClick,\n onKeyPress,\n size,\n theme,\n thumbnailProps,\n ...forwardedProps\n } = props;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, size, theme }))}\n >\n <Thumbnail\n linkProps={linkProps}\n linkAs={linkAs}\n className={`${CLASSNAME}__thumbnail`}\n onClick={onClick}\n onKeyPress={onKeyPress}\n {...thumbnailProps}\n aspectRatio={AspectRatio.square}\n size={size}\n image={image}\n alt={alt}\n theme={theme}\n />\n {actions && <div className={`${CLASSNAME}__actions`}>{actions}</div>}\n {badge && <div className={`${CLASSNAME}__badge`}>{badge}</div>}\n </div>\n );\n});\nAvatar.displayName = COMPONENT_NAME;\nAvatar.className = CLASSNAME;\nAvatar.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","size","Size","m","theme","Theme","light","Avatar","forwardRef","props","ref","actions","alt","badge","className","image","linkProps","linkAs","onClick","onKeyPress","thumbnailProps","forwardedProps","classNames","handleBasicClasses","prefix","AspectRatio","square","displayName","defaultProps"],"mappings":";;;;;;AAQA;;;;AAoCA;;;AAGA,IAAMA,cAAc,GAAG,QAAvB;AAEA;;;;AAGA,IAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAD,CAAlC;AAEA;;;;AAGA,IAAMG,aAAmC,GAAG;AACxCC,EAAAA,IAAI,EAAEC,IAAI,CAACC,CAD6B;AAExCC,EAAAA,KAAK,EAAEC,KAAK,CAACC;AAF2B,CAA5C;AAKA;;;;;;;;IAOaC,MAAyC,GAAGC,UAAU,CAAC,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAAA,MAE5EC,OAF4E,GAe5EF,KAf4E,CAE5EE,OAF4E;AAAA,MAG5EC,GAH4E,GAe5EH,KAf4E,CAG5EG,GAH4E;AAAA,MAI5EC,KAJ4E,GAe5EJ,KAf4E,CAI5EI,KAJ4E;AAAA,MAK5EC,SAL4E,GAe5EL,KAf4E,CAK5EK,SAL4E;AAAA,MAM5EC,KAN4E,GAe5EN,KAf4E,CAM5EM,KAN4E;AAAA,MAO5EC,SAP4E,GAe5EP,KAf4E,CAO5EO,SAP4E;AAAA,MAQ5EC,MAR4E,GAe5ER,KAf4E,CAQ5EQ,MAR4E;AAAA,MAS5EC,OAT4E,GAe5ET,KAf4E,CAS5ES,OAT4E;AAAA,MAU5EC,UAV4E,GAe5EV,KAf4E,CAU5EU,UAV4E;AAAA,MAW5ElB,IAX4E,GAe5EQ,KAf4E,CAW5ER,IAX4E;AAAA,MAY5EG,KAZ4E,GAe5EK,KAf4E,CAY5EL,KAZ4E;AAAA,MAa5EgB,cAb4E,GAe5EX,KAf4E,CAa5EW,cAb4E;AAAA,MAczEC,cAdyE,4BAe5EZ,KAf4E;;AAiBhF,SACI;AACI,IAAA,GAAG,EAAEC;AADT,KAEQW,cAFR;AAGI,IAAA,SAAS,EAAEC,UAAU,CAACR,SAAD,EAAYS,kBAAkB,CAAC;AAAEC,MAAAA,MAAM,EAAE1B,SAAV;AAAqBG,MAAAA,IAAI,EAAJA,IAArB;AAA2BG,MAAAA,KAAK,EAALA;AAA3B,KAAD,CAA9B;AAHzB,MAKI,oBAAC,SAAD;AACI,IAAA,SAAS,EAAEY,SADf;AAEI,IAAA,MAAM,EAAEC,MAFZ;AAGI,IAAA,SAAS,YAAKnB,SAAL,gBAHb;AAII,IAAA,OAAO,EAAEoB,OAJb;AAKI,IAAA,UAAU,EAAEC;AALhB,KAMQC,cANR;AAOI,IAAA,WAAW,EAAEK,WAAW,CAACC,MAP7B;AAQI,IAAA,IAAI,EAAEzB,IARV;AASI,IAAA,KAAK,EAAEc,KATX;AAUI,IAAA,GAAG,EAAEH,GAVT;AAWI,IAAA,KAAK,EAAER;AAXX,KALJ,EAkBKO,OAAO,IAAI;AAAK,IAAA,SAAS,YAAKb,SAAL;AAAd,KAA0Ca,OAA1C,CAlBhB,EAmBKE,KAAK,IAAI;AAAK,IAAA,SAAS,YAAKf,SAAL;AAAd,KAAwCe,KAAxC,CAnBd,CADJ;AAuBH,CAxCkE;AAyCnEN,MAAM,CAACoB,WAAP,GAAqB9B,cAArB;AACAU,MAAM,CAACO,SAAP,GAAmBhB,SAAnB;AACAS,MAAM,CAACqB,YAAP,GAAsB5B,aAAtB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"badge.4.js","sources":["../../../src/components/badge/Badge.tsx"],"sourcesContent":["import { Color, ColorPalette } from '@lumx/react';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\nimport classNames from 'classnames';\nimport React, { forwardRef, ReactNode } from 'react';\n\n/**\n * Defines the props of the component.\n */\nexport interface BadgeProps extends GenericProps {\n /** Badge content. */\n children?: ReactNode;\n /** Color variant. */\n color?: Color;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Badge';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<BadgeProps> = {\n color: ColorPalette.primary,\n};\n\n/**\n * Badge component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Badge: Comp<BadgeProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { children, className, color, ...forwardedProps } = props;\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, color }))}\n >\n {children}\n </div>\n );\n});\nBadge.displayName = COMPONENT_NAME;\nBadge.className = CLASSNAME;\nBadge.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","color","ColorPalette","primary","Badge","forwardRef","props","ref","children","className","forwardedProps","classNames","handleBasicClasses","prefix","displayName","defaultProps"],"mappings":";;;;;AAKA;;;;AAUA;;;AAGA,IAAMA,cAAc,GAAG,OAAvB;AAEA;;;;AAGA,IAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAD,CAAlC;AAEA;;;;AAGA,IAAMG,aAAkC,GAAG;AACvCC,EAAAA,KAAK,EAAEC,YAAY,CAACC;AADmB,CAA3C;AAIA;;;;;;;;IAOaC,KAAuC,GAAGC,UAAU,CAAC,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAAA,MACtEC,QADsE,GACpBF,KADoB,CACtEE,QADsE;AAAA,MAC5DC,SAD4D,GACpBH,KADoB,CAC5DG,SAD4D;AAAA,MACjDR,KADiD,GACpBK,KADoB,CACjDL,KADiD;AAAA,MACvCS,cADuC,4BACpBJ,KADoB;;AAE9E,SACI;AACI,IAAA,GAAG,EAAEC;AADT,KAEQG,cAFR;AAGI,IAAA,SAAS,EAAEC,UAAU,CAACF,SAAD,EAAYG,kBAAkB,CAAC;AAAEC,MAAAA,MAAM,EAAEf,SAAV;AAAqBG,MAAAA,KAAK,EAALA;AAArB,KAAD,CAA9B;AAHzB,MAKKO,QALL,CADJ;AASH,CAXgE;AAYjEJ,KAAK,CAACU,WAAN,GAAoBjB,cAApB;AACAO,KAAK,CAACK,SAAN,GAAkBX,SAAlB;AACAM,KAAK,CAACW,YAAN,GAAqBf,aAArB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"button.5.js","sources":["../../../src/components/button/Button.tsx"],"sourcesContent":["import React, { forwardRef, ReactNode } from 'react';\n\nimport classNames from 'classnames';\nimport isEmpty from 'lodash/isEmpty';\n\nimport { Emphasis, Icon, Size, Theme } from '@lumx/react';\nimport { Comp, getBasicClass, getRootClassName } from '@lumx/react/utils';\nimport { BaseButtonProps, ButtonRoot } from './ButtonRoot';\n\n/**\n * Button emphasis definition.\n * @deprecated Use Emphasis instead.\n */\nexport const ButtonEmphasis = Emphasis;\n\n/**\n * Defines the props of the component.\n */\nexport interface ButtonProps extends BaseButtonProps {\n /** Button content. */\n children?: ReactNode;\n /** Left icon (SVG path). */\n leftIcon?: string;\n /** Right icon (SVG path). */\n rightIcon?: string;\n /** When `true`, the button gets as large as possible. */\n fullWidth?: boolean;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Button';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ButtonProps> = {\n emphasis: Emphasis.high,\n size: Size.m,\n theme: Theme.light,\n};\n\n/**\n * Button component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Button: Comp<ButtonProps, HTMLButtonElement | HTMLAnchorElement> = forwardRef((props, ref) => {\n const { children, className, emphasis, leftIcon, rightIcon, size, theme, ...forwardedProps } = props;\n\n const buttonClassName = classNames(\n className,\n getBasicClass({ prefix: CLASSNAME, type: 'hasLeftIcon', value: !isEmpty(leftIcon) }),\n getBasicClass({ prefix: CLASSNAME, type: 'hasRightIcon', value: !isEmpty(rightIcon) }),\n );\n\n return (\n <ButtonRoot\n ref={ref}\n {...{ emphasis, size, theme, ...forwardedProps }}\n className={buttonClassName}\n variant=\"button\"\n >\n {leftIcon && !isEmpty(leftIcon) && <Icon icon={leftIcon} />}\n {children && <span>{children}</span>}\n {rightIcon && !isEmpty(rightIcon) && <Icon icon={rightIcon} />}\n </ButtonRoot>\n );\n});\nButton.displayName = COMPONENT_NAME;\nButton.className = CLASSNAME;\nButton.defaultProps = DEFAULT_PROPS;\n"],"names":["ButtonEmphasis","Emphasis","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","emphasis","high","size","Size","m","theme","Theme","light","Button","forwardRef","props","ref","children","className","leftIcon","rightIcon","forwardedProps","buttonClassName","classNames","getBasicClass","prefix","type","value","isEmpty","displayName","defaultProps"],"mappings":";;;;;;;;AASA;;;;;IAIaA,cAAc,GAAGC;AAE9B;;;;AAcA;;;AAGA,IAAMC,cAAc,GAAG,QAAvB;AAEA;;;;AAGA,IAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAD,CAAlC;AAEA;;;;AAGA,IAAMG,aAAmC,GAAG;AACxCC,EAAAA,QAAQ,EAAEL,QAAQ,CAACM,IADqB;AAExCC,EAAAA,IAAI,EAAEC,IAAI,CAACC,CAF6B;AAGxCC,EAAAA,KAAK,EAAEC,KAAK,CAACC;AAH2B,CAA5C;AAMA;;;;;;;;IAOaC,MAAgE,GAAGC,UAAU,CAAC,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAAA,MAC/FC,QAD+F,GACRF,KADQ,CAC/FE,QAD+F;AAAA,MACrFC,SADqF,GACRH,KADQ,CACrFG,SADqF;AAAA,MAC1Eb,QAD0E,GACRU,KADQ,CAC1EV,QAD0E;AAAA,MAChEc,QADgE,GACRJ,KADQ,CAChEI,QADgE;AAAA,MACtDC,SADsD,GACRL,KADQ,CACtDK,SADsD;AAAA,MAC3Cb,IAD2C,GACRQ,KADQ,CAC3CR,IAD2C;AAAA,MACrCG,KADqC,GACRK,KADQ,CACrCL,KADqC;AAAA,MAC3BW,cAD2B,4BACRN,KADQ;;AAGvG,MAAMO,eAAe,GAAGC,UAAU,CAC9BL,SAD8B,EAE9BM,aAAa,CAAC;AAAEC,IAAAA,MAAM,EAAEvB,SAAV;AAAqBwB,IAAAA,IAAI,EAAE,aAA3B;AAA0CC,IAAAA,KAAK,EAAE,CAACC,OAAO,CAACT,QAAD;AAAzD,GAAD,CAFiB,EAG9BK,aAAa,CAAC;AAAEC,IAAAA,MAAM,EAAEvB,SAAV;AAAqBwB,IAAAA,IAAI,EAAE,cAA3B;AAA2CC,IAAAA,KAAK,EAAE,CAACC,OAAO,CAACR,SAAD;AAA1D,GAAD,CAHiB,CAAlC;AAMA,SACI,oBAAC,UAAD;AACI,IAAA,GAAG,EAAEJ;AADT;AAEUX,IAAAA,QAAQ,EAARA,QAFV;AAEoBE,IAAAA,IAAI,EAAJA,IAFpB;AAE0BG,IAAAA,KAAK,EAALA;AAF1B,KAEoCW,cAFpC;AAGI,IAAA,SAAS,EAAEC,eAHf;AAII,IAAA,OAAO,EAAC;AAJZ,MAMKH,QAAQ,IAAI,CAACS,OAAO,CAACT,QAAD,CAApB,IAAkC,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAEA;AAAZ,IANvC,EAOKF,QAAQ,IAAI,kCAAOA,QAAP,CAPjB,EAQKG,SAAS,IAAI,CAACQ,OAAO,CAACR,SAAD,CAArB,IAAoC,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAEA;AAAZ,IARzC,CADJ;AAYH,CArByF;AAsB1FP,MAAM,CAACgB,WAAP,GAAqB5B,cAArB;AACAY,MAAM,CAACK,SAAP,GAAmBhB,SAAnB;AACAW,MAAM,CAACiB,YAAP,GAAsB1B,aAAtB;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buttongroup.7.js","sources":["../../../src/components/button/ButtonGroup.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Comp, GenericProps, getRootClassName } from '@lumx/react/utils';\n\n/**\n * Defines the props of the component\n */\nexport type ButtonGroupProps = GenericProps;\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ButtonGroup';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ButtonGroupProps> = {};\n\n/**\n * ButtonGroup component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ButtonGroup: Comp<ButtonGroupProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { children, className, ...forwardedProps } = props;\n\n return (\n <div ref={ref} {...forwardedProps} className={classNames(className, CLASSNAME)}>\n {children}\n </div>\n );\n});\nButtonGroup.displayName = COMPONENT_NAME;\nButtonGroup.className = CLASSNAME;\nButtonGroup.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","ButtonGroup","forwardRef","props","ref","children","className","forwardedProps","classNames","displayName","defaultProps"],"mappings":";;;;;;;;AAMA;;;;AAKA;;;AAGA,IAAMA,cAAc,GAAG,aAAvB;AAEA;;;;AAGA,IAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAD,CAAlC;AAEA;;;;AAGA,IAAMG,aAAwC,GAAG,EAAjD;AAEA;;;;;;;;IAOaC,WAAmD,GAAGC,UAAU,CAAC,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAAA,MAClFC,QADkF,GACvCF,KADuC,CAClFE,QADkF;AAAA,MACxEC,SADwE,GACvCH,KADuC,CACxEG,SADwE;AAAA,MAC1DC,cAD0D,4BACvCJ,KADuC;;AAG1F,SACI;AAAK,IAAA,GAAG,EAAEC;AAAV,KAAmBG,cAAnB;AAAmC,IAAA,SAAS,EAAEC,UAAU,CAACF,SAAD,EAAYR,SAAZ;AAAxD,MACKO,QADL,CADJ;AAKH,CAR4E;AAS7EJ,WAAW,CAACQ,WAAZ,GAA0BZ,cAA1B;AACAI,WAAW,CAACK,SAAZ,GAAwBR,SAAxB;AACAG,WAAW,CAACS,YAAZ,GAA2BV,aAA3B;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buttonroot.57.js","sources":["../../../src/components/button/ButtonRoot.tsx"],"sourcesContent":["import React, { ButtonHTMLAttributes, DetailedHTMLProps, forwardRef, RefObject } from 'react';\n\nimport isEmpty from 'lodash/isEmpty';\n\nimport classNames from 'classnames';\n\nimport { Color, ColorPalette, Emphasis, Size, Theme } from '@lumx/react';\nimport { CSS_PREFIX } from '@lumx/react/constants';\nimport { Comp, GenericProps, handleBasicClasses } from '@lumx/react/utils';\nimport { renderLink } from '@lumx/react/utils/renderLink';\n\ntype HTMLButtonProps = DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;\n\n/**\n * Button size definition.\n */\nexport type ButtonSize = Extract<Size, 's' | 'm'>;\n\nexport interface BaseButtonProps extends GenericProps {\n /** ARIA button label. */\n ['aria-label']?: string;\n /** Color variant. */\n color?: Color;\n /** Emphasis variant. */\n emphasis?: Emphasis;\n /** Whether or not the button has a background color in low emphasis. */\n hasBackground?: boolean;\n /** Native anchor href property. It determines whether the Button will be a <button> or an <a>. */\n href?: string;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is selected or not. */\n isSelected?: boolean;\n /** Native button name property. */\n name?: string;\n /** Size variant. */\n size?: ButtonSize;\n /** Native anchor target property. */\n target?: '_self' | '_blank' | '_parent' | '_top';\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** Native button type. */\n type?: HTMLButtonProps['type'];\n /** Custom react component for the link (can be used to inject react router Link). */\n linkAs?: 'a' | any;\n}\n\nexport interface ButtonRootProps extends BaseButtonProps {\n variant: 'button' | 'icon';\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ButtonRoot';\n\nexport const BUTTON_WRAPPER_CLASSNAME = `${CSS_PREFIX}-button-wrapper`;\nexport const BUTTON_CLASSNAME = `${CSS_PREFIX}-button`;\n\n/**\n * Render a button wrapper with the ButtonRoot inside.\n *\n * @param props Component props.\n * @return React element.\n */\nconst renderButtonWrapper: React.FC<ButtonRootProps> = (props) => {\n const { color, emphasis, variant, fullWidth } = props;\n\n const adaptedColor =\n emphasis === Emphasis.low && (color === ColorPalette.light ? ColorPalette.dark : ColorPalette.light);\n\n const wrapperClassName = classNames(\n handleBasicClasses({\n color: adaptedColor,\n prefix: BUTTON_WRAPPER_CLASSNAME,\n variant,\n fullWidth,\n }),\n );\n const buttonProps = { ...props, hasBackground: false };\n\n return (\n <div className={wrapperClassName}>\n {/* eslint-disable-next-line @typescript-eslint/no-use-before-define */}\n <ButtonRoot {...buttonProps} />\n </div>\n );\n};\n\n/**\n * ButtonRoot component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const ButtonRoot: Comp<ButtonRootProps, HTMLButtonElement | HTMLAnchorElement> = forwardRef((props, ref) => {\n const {\n 'aria-label': ariaLabel,\n children,\n className,\n color,\n disabled,\n emphasis,\n hasBackground,\n href,\n isDisabled = disabled,\n isSelected,\n isActive,\n isFocused,\n isHovered,\n linkAs,\n name,\n size,\n target,\n theme,\n variant,\n type = 'button',\n fullWidth,\n ...forwardedProps\n } = props;\n\n const adaptedColor =\n color ||\n (emphasis !== Emphasis.high && theme === Theme.dark && ColorPalette.light) ||\n (emphasis === Emphasis.high && ColorPalette.primary) ||\n ColorPalette.dark;\n\n if (hasBackground) {\n return renderButtonWrapper({ ...props, ref, variant, color: adaptedColor });\n }\n\n const buttonClassName = classNames(\n className,\n handleBasicClasses({\n color: adaptedColor,\n emphasis,\n isSelected,\n isDisabled,\n isActive,\n isFocused,\n isHovered,\n prefix: BUTTON_CLASSNAME,\n size,\n theme: emphasis === Emphasis.high && theme,\n variant,\n fullWidth,\n }),\n );\n\n /**\n * If the linkAs prop is used, we use the linkAs component instead of a <button>.\n * If there is an href attribute, we display an <a> instead of a <button>.\n *\n * However, in any case, if the component is disabled, we returned a <button> since disabled is not compatible with <a>.\n */\n if ((linkAs || !isEmpty(props.href)) && !isDisabled) {\n return renderLink(\n {\n linkAs,\n ...forwardedProps,\n 'aria-label': ariaLabel,\n href,\n target,\n className: buttonClassName,\n ref: ref as RefObject<HTMLAnchorElement>,\n },\n children,\n );\n }\n return (\n <button\n {...forwardedProps}\n disabled={isDisabled}\n aria-disabled={isDisabled}\n aria-label={ariaLabel}\n ref={ref as RefObject<HTMLButtonElement>}\n className={buttonClassName}\n name={name}\n type={\n // eslint-disable-next-line react/button-has-type\n type\n }\n >\n {children}\n </button>\n );\n});\nButtonRoot.displayName = COMPONENT_NAME;\nButtonRoot.defaultProps = {};\n"],"names":["COMPONENT_NAME","BUTTON_WRAPPER_CLASSNAME","CSS_PREFIX","BUTTON_CLASSNAME","renderButtonWrapper","props","color","emphasis","variant","fullWidth","adaptedColor","Emphasis","low","ColorPalette","light","dark","wrapperClassName","classNames","handleBasicClasses","prefix","buttonProps","hasBackground","ButtonRoot","forwardRef","ref","ariaLabel","children","className","disabled","href","isDisabled","isSelected","isActive","isFocused","isHovered","linkAs","name","size","target","theme","type","forwardedProps","high","Theme","primary","buttonClassName","isEmpty","renderLink","displayName","defaultProps"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.8.js","sources":["../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["import React, { useMemo, forwardRef, ReactNode, SyntheticEvent, InputHTMLAttributes } from 'react';\n\nimport classNames from 'classnames';\nimport { uid } from 'uid';\n\nimport { mdiCheck } from '@lumx/icons';\n\nimport { Icon, InputHelper, InputLabel, Theme } from '@lumx/react';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\n/**\n * Defines the props of the component.\n */\nexport interface CheckboxProps extends GenericProps {\n /** Helper text. */\n helper?: string;\n /** Native input id property. */\n id?: string;\n /** Native input ref. */\n inputRef?: React.Ref<HTMLInputElement>;\n /** Whether it is checked or not. */\n isChecked?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Label text. */\n label?: ReactNode;\n /** Native input name property. */\n name?: string;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** Native input value property. */\n value?: string;\n /** On change callback. */\n onChange?(isChecked: boolean, value?: string, name?: string, event?: SyntheticEvent): void;\n /** optional props for input */\n inputProps?: InputHTMLAttributes<HTMLInputElement>;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Checkbox';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<CheckboxProps> = {\n theme: Theme.light,\n};\n\n/**\n * Checkbox component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Checkbox: Comp<CheckboxProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n checked,\n className,\n disabled,\n helper,\n id,\n inputRef,\n isChecked = checked,\n isDisabled = disabled,\n label,\n name,\n onChange,\n theme,\n value,\n inputProps = {},\n ...forwardedProps\n } = props;\n const inputId = useMemo(() => id || `${CLASSNAME.toLowerCase()}-${uid()}`, [id]);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(!isChecked, value, name, event);\n }\n };\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n isChecked,\n isDisabled,\n isUnchecked: !isChecked,\n prefix: CLASSNAME,\n theme,\n }),\n )}\n >\n <div className={`${CLASSNAME}__input-wrapper`}>\n <input\n ref={inputRef}\n type=\"checkbox\"\n id={inputId}\n className={`${CLASSNAME}__input-native`}\n tabIndex={isDisabled ? -1 : 0}\n name={name}\n value={value}\n checked={isChecked}\n onChange={handleChange}\n {...inputProps}\n />\n\n <div className={`${CLASSNAME}__input-placeholder`}>\n <div className={`${CLASSNAME}__input-background`} />\n\n <div className={`${CLASSNAME}__input-indicator`}>\n <Icon icon={mdiCheck} />\n </div>\n </div>\n </div>\n\n <div className={`${CLASSNAME}__content`}>\n {label && (\n <InputLabel htmlFor={inputId} className={`${CLASSNAME}__label`} theme={theme}>\n {label}\n </InputLabel>\n )}\n {helper && (\n <InputHelper className={`${CLASSNAME}__helper`} theme={theme}>\n {helper}\n </InputHelper>\n )}\n </div>\n </div>\n );\n});\nCheckbox.displayName = COMPONENT_NAME;\nCheckbox.className = CLASSNAME;\nCheckbox.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","theme","Theme","light","Checkbox","forwardRef","props","ref","checked","className","disabled","helper","id","inputRef","isChecked","isDisabled","label","name","onChange","value","inputProps","forwardedProps","inputId","useMemo","toLowerCase","uid","handleChange","event","classNames","handleBasicClasses","isUnchecked","prefix","mdiCheck","displayName","defaultProps"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chip.9.js","sources":["../../../src/hooks/useStopPropagation.ts","../../../src/components/chip/Chip.tsx"],"sourcesContent":["import isFunction from 'lodash/isFunction';\nimport { MouseEventHandler, useCallback } from 'react';\n\n/**\n * Wrap mouse event handler to stop event propagation.\n *\n * @param handler The mouse handler to wrap.\n * @return Mouse handler stopping propagation.\n */\nexport function useStopPropagation(handler?: MouseEventHandler): MouseEventHandler {\n return useCallback(\n (evt) => {\n if (!evt || !isFunction(handler)) {\n return;\n }\n handler(evt);\n evt.stopPropagation();\n },\n [handler],\n );\n}\n","import { Color, ColorPalette, Size, Theme } from '@lumx/react';\nimport { useStopPropagation } from '@lumx/react/hooks/useStopPropagation';\n\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses, onEnterPressed } from '@lumx/react/utils';\n\nimport classNames from 'classnames';\n\nimport isFunction from 'lodash/isFunction';\nimport React, { forwardRef, MouseEventHandler, ReactNode } from 'react';\n\n/**\n * Chip sizes.\n */\ntype ChipSize = Extract<Size, 's' | 'm'>;\n\n/**\n * Defines the props of the component.\n */\nexport interface ChipProps extends GenericProps {\n /** A component to be rendered after the content. */\n after?: ReactNode;\n /** A component to be rendered before the content. */\n before?: ReactNode;\n /** Color variant. */\n color?: Color;\n /** Whether the component is clickable or not. */\n isClickable?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the chip is currently in a highlighted state or not. */\n isHighlighted?: boolean;\n /** Whether the component is selected or not. */\n isSelected?: boolean;\n /** Size variant. */\n size?: ChipSize;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** On \"after\" element clicked callback. */\n onAfterClick?: MouseEventHandler;\n /** On \"before\" element clicked callback. */\n onBeforeClick?: MouseEventHandler;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Chip';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ChipProps> = {\n size: Size.m,\n theme: Theme.light,\n};\n\n/**\n * Chip component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Chip: Comp<ChipProps, HTMLAnchorElement> = forwardRef((props, ref) => {\n const {\n after,\n before,\n children,\n className,\n color,\n disabled,\n isClickable,\n isDisabled = disabled,\n isHighlighted,\n isSelected,\n onAfterClick,\n onBeforeClick,\n onClick,\n size,\n theme,\n ...forwardedProps\n } = props;\n const hasAfterClick = isFunction(onAfterClick);\n const hasBeforeClick = isFunction(onBeforeClick);\n const hasOnClick = isFunction(onClick);\n\n // Adapt color to the theme.\n const chipColor = color || (theme === Theme.light ? ColorPalette.dark : ColorPalette.light);\n\n const handleOnBeforeClick = useStopPropagation(onBeforeClick);\n const handleOnAfterClick = useStopPropagation(onAfterClick);\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <a\n {...forwardedProps}\n ref={ref}\n className={classNames(\n className,\n handleBasicClasses({\n clickable: Boolean(hasOnClick) || isClickable,\n color: chipColor,\n isDisabled,\n hasAfter: Boolean(after),\n hasBefore: Boolean(before),\n highlighted: Boolean(isHighlighted),\n prefix: CLASSNAME,\n selected: Boolean(isSelected),\n size,\n unselected: Boolean(!isSelected),\n }),\n )}\n role={hasOnClick ? 'button' : undefined}\n tabIndex={isDisabled || !hasOnClick ? -1 : 0}\n aria-disabled={(hasOnClick && isDisabled) || undefined}\n onClick={hasOnClick ? onClick : undefined}\n onKeyDown={hasOnClick ? onEnterPressed(onClick) : undefined}\n >\n {before && (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n <div\n className={classNames(`${CLASSNAME}__before`, {\n [`${CLASSNAME}__before--is-clickable`]: hasBeforeClick,\n })}\n onClick={handleOnBeforeClick}\n >\n {before}\n </div>\n )}\n\n <div className={`${CLASSNAME}__label`}>{children}</div>\n\n {after && (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n <div\n className={classNames(`${CLASSNAME}__after`, {\n [`${CLASSNAME}__after--is-clickable`]: hasAfterClick,\n })}\n onClick={handleOnAfterClick}\n >\n {after}\n </div>\n )}\n </a>\n );\n});\nChip.displayName = COMPONENT_NAME;\nChip.className = CLASSNAME;\nChip.defaultProps = DEFAULT_PROPS;\n"],"names":["useStopPropagation","handler","useCallback","evt","isFunction","stopPropagation","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","size","Size","m","theme","Theme","light","Chip","forwardRef","props","ref","after","before","children","className","color","disabled","isClickable","isDisabled","isHighlighted","isSelected","onAfterClick","onBeforeClick","onClick","forwardedProps","hasAfterClick","hasBeforeClick","hasOnClick","chipColor","ColorPalette","dark","handleOnBeforeClick","handleOnAfterClick","classNames","handleBasicClasses","clickable","Boolean","hasAfter","hasBefore","highlighted","prefix","selected","unselected","undefined","onEnterPressed","displayName","defaultProps"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chipgroup.10.js","sources":["../../../src/hooks/useChipGroupNavigation.tsx","../../../src/components/chip/ChipGroup.tsx"],"sourcesContent":["import { useState } from 'react';\n\ninterface UseChipGroupNavigation {\n /** the current active chip index */\n activeChip: number;\n\n /** callback to be executed when the backspace was pressed */\n onBackspacePressed(): void;\n\n /** function that allows to reset the navigation */\n resetChipNavigation(): void;\n}\n\nexport type useChipGroupNavigationType<C = any> = (\n chips: C[],\n onChipDeleted: (chip: C) => void,\n initialActiveChip?: number,\n) => UseChipGroupNavigation;\n\nconst INITIAL_STATE_ACTIVE_CHIP = -1;\n\n/**\n * Hook that provides the necessary information to manage chips navigation.\n * @param chips List of chips selected.\n * @param onChipDeleted Callback executed when a chip must be eliminated.\n * @param initialActiveChip Initial active chip index.\n *\n * @return chip navigation tools.\n */\nexport const useChipGroupNavigation: useChipGroupNavigationType = (\n chips,\n onChipDeleted,\n initialActiveChip = INITIAL_STATE_ACTIVE_CHIP,\n) => {\n const [wasBackspacePressed, setWasBackspacePressed] = useState(false);\n const [activeChip, setActiveChip] = useState(initialActiveChip);\n\n /**\n * Resets the active index and backspace control to their initial state\n */\n const resetChipNavigation = () => {\n setWasBackspacePressed(false);\n setActiveChip(initialActiveChip);\n };\n\n /**\n * Callback to be executed when the backspace was pressed. If there are no chips\n * selected, it will return immediately. If there are it will check if the\n * backspace was already pressed. if it was, it means that the user wants to eliminate\n * the chip, so we execute the `onChipDeleted` function and reset internal state.\n *\n * If it was not pressed before, we set the `wasBackspacePressed` flag to true and\n * highlight the last chip.\n */\n const onBackspacePressed = () => {\n if (chips.length === 0) {\n return;\n }\n\n if (wasBackspacePressed) {\n const chipDeleted: any = chips[chips.length - 1];\n onChipDeleted(chipDeleted);\n resetChipNavigation();\n } else {\n setActiveChip(chips.length - 1);\n setWasBackspacePressed(true);\n }\n };\n\n return {\n activeChip,\n onBackspacePressed,\n resetChipNavigation,\n };\n};\n","import { Alignment, HorizontalAlignment } from '@lumx/react/components';\nimport React, { forwardRef, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { useChipGroupNavigation } from '@lumx/react/hooks/useChipGroupNavigation';\n\n/**\n * Defines the props of the component.\n */\nexport interface ChipGroupProps extends GenericProps {\n /** Chip horizontal alignment. */\n align?: HorizontalAlignment;\n /** List of Chip. */\n children: ReactNode;\n}\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<ChipGroupProps> = {\n align: Alignment.left,\n};\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'ChipGroup';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * ChipGroup component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nconst InternalChipGroup: Comp<ChipGroupProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { align, children, className, ...forwardedProps } = props;\n const chipGroupClassName = handleBasicClasses({\n align,\n prefix: CLASSNAME,\n });\n\n return (\n <div ref={ref} {...forwardedProps} className={classNames(className, chipGroupClassName)}>\n {children}\n </div>\n );\n});\nInternalChipGroup.displayName = COMPONENT_NAME;\nInternalChipGroup.className = CLASSNAME;\nInternalChipGroup.defaultProps = DEFAULT_PROPS;\n\nexport const ChipGroup = Object.assign(InternalChipGroup, { useChipGroupNavigation });\n"],"names":["INITIAL_STATE_ACTIVE_CHIP","useChipGroupNavigation","chips","onChipDeleted","initialActiveChip","useState","wasBackspacePressed","setWasBackspacePressed","activeChip","setActiveChip","resetChipNavigation","onBackspacePressed","length","chipDeleted","DEFAULT_PROPS","align","Alignment","left","COMPONENT_NAME","CLASSNAME","getRootClassName","InternalChipGroup","forwardRef","props","ref","children","className","forwardedProps","chipGroupClassName","handleBasicClasses","prefix","classNames","displayName","defaultProps","ChipGroup","Object","assign"],"mappings":";;;;;AAmBA,IAAMA,yBAAyB,GAAG,CAAC,CAAnC;AAEA;;;;;;;;;AAQO,IAAMC,sBAAkD,GAAG,SAArDA,sBAAqD,CAC9DC,KAD8D,EAE9DC,aAF8D,EAI7D;AAAA,MADDC,iBACC,uEADmBJ,yBACnB;;AAAA,kBACqDK,QAAQ,CAAC,KAAD,CAD7D;AAAA;AAAA,MACMC,mBADN;AAAA,MAC2BC,sBAD3B;;AAAA,mBAEmCF,QAAQ,CAACD,iBAAD,CAF3C;AAAA;AAAA,MAEMI,UAFN;AAAA,MAEkBC,aAFlB;AAID;;;;;AAGA,MAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AAC9BH,IAAAA,sBAAsB,CAAC,KAAD,CAAtB;AACAE,IAAAA,aAAa,CAACL,iBAAD,CAAb;AACH,GAHD;AAKA;;;;;;;;;;;AASA,MAAMO,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC7B,QAAIT,KAAK,CAACU,MAAN,KAAiB,CAArB,EAAwB;AACpB;AACH;;AAED,QAAIN,mBAAJ,EAAyB;AACrB,UAAMO,WAAgB,GAAGX,KAAK,CAACA,KAAK,CAACU,MAAN,GAAe,CAAhB,CAA9B;AACAT,MAAAA,aAAa,CAACU,WAAD,CAAb;AACAH,MAAAA,mBAAmB;AACtB,KAJD,MAIO;AACHD,MAAAA,aAAa,CAACP,KAAK,CAACU,MAAN,GAAe,CAAhB,CAAb;AACAL,MAAAA,sBAAsB,CAAC,IAAD,CAAtB;AACH;AACJ,GAbD;;AAeA,SAAO;AACHC,IAAAA,UAAU,EAAVA,UADG;AAEHG,IAAAA,kBAAkB,EAAlBA,kBAFG;AAGHD,IAAAA,mBAAmB,EAAnBA;AAHG,GAAP;AAKH,CA7CM;;ACpBP;;;;AAUA;;;AAGA,IAAMI,aAAsC,GAAG;AAC3CC,EAAAA,KAAK,EAAEC,SAAS,CAACC;AAD0B,CAA/C;AAIA;;;;AAGA,IAAMC,cAAc,GAAG,WAAvB;AAEA;;;;AAGA,IAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAD,CAAlC;AAEA;;;;;;;;AAOA,IAAMG,iBAAuD,GAAGC,UAAU,CAAC,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAAA,MAC/ET,KAD+E,GAC7BQ,KAD6B,CAC/ER,KAD+E;AAAA,MACxEU,QADwE,GAC7BF,KAD6B,CACxEE,QADwE;AAAA,MAC9DC,SAD8D,GAC7BH,KAD6B,CAC9DG,SAD8D;AAAA,MAChDC,cADgD,4BAC7BJ,KAD6B;;AAEvF,MAAMK,kBAAkB,GAAGC,kBAAkB,CAAC;AAC1Cd,IAAAA,KAAK,EAALA,KAD0C;AAE1Ce,IAAAA,MAAM,EAAEX;AAFkC,GAAD,CAA7C;AAKA,SACI;AAAK,IAAA,GAAG,EAAEK;AAAV,KAAmBG,cAAnB;AAAmC,IAAA,SAAS,EAAEI,UAAU,CAACL,SAAD,EAAYE,kBAAZ;AAAxD,MACKH,QADL,CADJ;AAKH,CAZyE,CAA1E;AAaAJ,iBAAiB,CAACW,WAAlB,GAAgCd,cAAhC;AACAG,iBAAiB,CAACK,SAAlB,GAA8BP,SAA9B;AACAE,iBAAiB,CAACY,YAAlB,GAAiCnB,aAAjC;IAEaoB,SAAS,GAAGC,MAAM,CAACC,MAAP,CAAcf,iBAAd,EAAiC;AAAEpB,EAAAA,sBAAsB,EAAtBA;AAAF,CAAjC;;;;"}
|