@lumx/react 2.2.3-alpha-export-hook1 → 2.2.5

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.
Files changed (208) hide show
  1. package/esm/_internal/AlertDialog.js +2 -3
  2. package/esm/_internal/AlertDialog.js.map +1 -1
  3. package/esm/_internal/AutocompleteMultiple.js +1 -2
  4. package/esm/_internal/AutocompleteMultiple.js.map +1 -1
  5. package/esm/_internal/Button2.js +1 -1
  6. package/esm/_internal/ButtonGroup.js +4 -0
  7. package/esm/_internal/ButtonGroup.js.map +1 -1
  8. package/esm/_internal/Checkbox2.js +2 -3
  9. package/esm/_internal/Checkbox2.js.map +1 -1
  10. package/esm/_internal/Chip2.js +1 -2
  11. package/esm/_internal/Chip2.js.map +1 -1
  12. package/esm/_internal/ChipGroup.js.map +1 -1
  13. package/esm/_internal/ClickAwayProvider.js +1 -1
  14. package/esm/_internal/ClickAwayProvider.js.map +1 -1
  15. package/esm/_internal/DatePickerField.js +5 -1
  16. package/esm/_internal/DatePickerField.js.map +1 -1
  17. package/esm/_internal/Dialog2.js.map +1 -1
  18. package/esm/_internal/DragHandle.js +1 -2
  19. package/esm/_internal/DragHandle.js.map +1 -1
  20. package/esm/_internal/Dropdown2.js +1 -1
  21. package/esm/_internal/Dropdown2.js.map +1 -1
  22. package/esm/_internal/ExpansionPanel.js +1 -1
  23. package/esm/_internal/Icon2.js +23 -3
  24. package/esm/_internal/Icon2.js.map +1 -1
  25. package/esm/_internal/IconButton.js +5 -1
  26. package/esm/_internal/IconButton.js.map +1 -1
  27. package/esm/_internal/Lightbox2.js +1 -1
  28. package/esm/_internal/Lightbox2.js.map +1 -1
  29. package/esm/_internal/Link2.js +1 -1
  30. package/esm/_internal/LinkPreview.js +1 -1
  31. package/esm/_internal/LinkPreview.js.map +1 -1
  32. package/esm/_internal/List2.js +4 -20
  33. package/esm/_internal/List2.js.map +1 -1
  34. package/esm/_internal/Message2.js +3 -3
  35. package/esm/_internal/Message2.js.map +1 -1
  36. package/esm/_internal/Notification2.js +1 -2
  37. package/esm/_internal/Notification2.js.map +1 -1
  38. package/esm/_internal/Popover2.js.map +1 -1
  39. package/esm/_internal/ProgressTrackerStepPanel.js +1 -2
  40. package/esm/_internal/ProgressTrackerStepPanel.js.map +1 -1
  41. package/esm/_internal/RadioGroup.js +1 -1
  42. package/esm/_internal/SelectMultiple.js +2 -3
  43. package/esm/_internal/SelectMultiple.js.map +1 -1
  44. package/esm/_internal/SideNavigationItem.js +2 -4
  45. package/esm/_internal/SideNavigationItem.js.map +1 -1
  46. package/esm/_internal/Slider2.js +1 -1
  47. package/esm/_internal/Slider2.js.map +1 -1
  48. package/esm/_internal/SlideshowControls.js +3 -101
  49. package/esm/_internal/SlideshowControls.js.map +1 -1
  50. package/esm/_internal/Switch2.js +1 -1
  51. package/esm/_internal/TabPanel.js +1 -1
  52. package/esm/_internal/TabPanel.js.map +1 -1
  53. package/esm/_internal/TableRow.js +2 -4
  54. package/esm/_internal/TableRow.js.map +1 -1
  55. package/esm/_internal/TextField.js +2 -3
  56. package/esm/_internal/TextField.js.map +1 -1
  57. package/esm/_internal/Thumbnail2.js +6 -3
  58. package/esm/_internal/Thumbnail2.js.map +1 -1
  59. package/esm/_internal/Tooltip2.js +145 -12
  60. package/esm/_internal/Tooltip2.js.map +1 -1
  61. package/esm/_internal/alert-dialog.js +4 -5
  62. package/esm/_internal/alert-dialog.js.map +1 -1
  63. package/esm/_internal/autocomplete.js +6 -8
  64. package/esm/_internal/autocomplete.js.map +1 -1
  65. package/esm/_internal/avatar.js +3 -3
  66. package/esm/_internal/badge.js +2 -1
  67. package/esm/_internal/badge.js.map +1 -1
  68. package/esm/_internal/button.js +5 -5
  69. package/esm/_internal/checkbox.js +4 -4
  70. package/esm/_internal/chip.js +2 -2
  71. package/esm/_internal/comment-block.js +3 -3
  72. package/esm/_internal/constants.js.map +1 -1
  73. package/esm/_internal/date-picker.js +5 -6
  74. package/esm/_internal/date-picker.js.map +1 -1
  75. package/esm/_internal/dialog.js +2 -2
  76. package/esm/_internal/divider.js +2 -1
  77. package/esm/_internal/divider.js.map +1 -1
  78. package/esm/_internal/drag-handle.js +3 -3
  79. package/esm/_internal/dropdown.js +3 -4
  80. package/esm/_internal/dropdown.js.map +1 -1
  81. package/esm/_internal/expansion-panel.js +5 -6
  82. package/esm/_internal/expansion-panel.js.map +1 -1
  83. package/esm/_internal/flag.js +3 -2
  84. package/esm/_internal/flag.js.map +1 -1
  85. package/esm/_internal/flex-box.js +2 -1
  86. package/esm/_internal/flex-box.js.map +1 -1
  87. package/esm/_internal/getRootClassName.js +166 -40
  88. package/esm/_internal/getRootClassName.js.map +1 -1
  89. package/esm/_internal/grid.js +2 -1
  90. package/esm/_internal/grid.js.map +1 -1
  91. package/esm/_internal/icon.js +3 -2
  92. package/esm/_internal/icon.js.map +1 -1
  93. package/esm/_internal/image-block.js +3 -3
  94. package/esm/_internal/input-helper.js +2 -1
  95. package/esm/_internal/input-helper.js.map +1 -1
  96. package/esm/_internal/input-label.js +2 -1
  97. package/esm/_internal/input-label.js.map +1 -1
  98. package/esm/_internal/lightbox.js +5 -6
  99. package/esm/_internal/lightbox.js.map +1 -1
  100. package/esm/_internal/link-preview.js +3 -3
  101. package/esm/_internal/link.js +3 -2
  102. package/esm/_internal/link.js.map +1 -1
  103. package/esm/_internal/list.js +3 -3
  104. package/esm/_internal/message.js +3 -3
  105. package/esm/_internal/mosaic.js +3 -3
  106. package/esm/_internal/notification.js +3 -3
  107. package/esm/_internal/popover.js +2 -2
  108. package/esm/_internal/post-block.js +3 -3
  109. package/esm/_internal/progress-tracker.js +4 -4
  110. package/esm/_internal/progress.js +2 -1
  111. package/esm/_internal/progress.js.map +1 -1
  112. package/esm/_internal/radio-button.js +3 -2
  113. package/esm/_internal/radio-button.js.map +1 -1
  114. package/esm/_internal/select.js +6 -8
  115. package/esm/_internal/select.js.map +1 -1
  116. package/esm/_internal/side-navigation.js +5 -7
  117. package/esm/_internal/side-navigation.js.map +1 -1
  118. package/esm/_internal/skeleton.js +2 -1
  119. package/esm/_internal/skeleton.js.map +1 -1
  120. package/esm/_internal/slider.js +3 -2
  121. package/esm/_internal/slider.js.map +1 -1
  122. package/esm/_internal/slideshow.js +6 -8
  123. package/esm/_internal/slideshow.js.map +1 -1
  124. package/esm/_internal/switch.js +3 -2
  125. package/esm/_internal/switch.js.map +1 -1
  126. package/esm/_internal/table.js +3 -4
  127. package/esm/_internal/table.js.map +1 -1
  128. package/esm/_internal/tabs.js +4 -3
  129. package/esm/_internal/tabs.js.map +1 -1
  130. package/esm/_internal/text-field.js +5 -6
  131. package/esm/_internal/text-field.js.map +1 -1
  132. package/esm/_internal/thumbnail.js +3 -3
  133. package/esm/_internal/toolbar.js +2 -1
  134. package/esm/_internal/toolbar.js.map +1 -1
  135. package/esm/_internal/tooltip.js +4 -4
  136. package/esm/_internal/uploader.js +3 -2
  137. package/esm/_internal/uploader.js.map +1 -1
  138. package/esm/_internal/useDelayedVisibility.js.map +1 -1
  139. package/esm/_internal/useDisableBodyScroll.js.map +1 -1
  140. package/esm/_internal/useFocusTrap.js.map +1 -1
  141. package/esm/_internal/useRovingTabIndex.js +1 -1
  142. package/esm/_internal/useRovingTabIndex.js.map +1 -1
  143. package/esm/_internal/user-block.js +3 -3
  144. package/esm/index.js +7 -10
  145. package/esm/index.js.map +1 -1
  146. package/esm/{_internal/index.js → index2.js} +1 -1
  147. package/esm/index2.js.map +1 -0
  148. package/package.json +4 -4
  149. package/src/components/autocomplete/Autocomplete.tsx +1 -1
  150. package/src/components/button/__snapshots__/IconButton.test.tsx.snap +5 -0
  151. package/src/components/chip/Chip.tsx +1 -1
  152. package/src/components/chip/ChipGroup.tsx +1 -1
  153. package/src/components/date-picker/DatePickerField.tsx +2 -2
  154. package/src/components/dialog/Dialog.test.tsx +1 -1
  155. package/src/components/dialog/Dialog.tsx +5 -5
  156. package/src/components/dropdown/Dropdown.tsx +1 -1
  157. package/src/components/icon/Icon.tsx +5 -0
  158. package/src/components/lightbox/Lightbox.tsx +4 -4
  159. package/src/components/link-preview/LinkPreview.tsx +1 -1
  160. package/src/components/link-preview/__snapshots__/LinkPreview.test.tsx.snap +2 -2
  161. package/src/components/list/List.tsx +1 -1
  162. package/src/components/message/Message.tsx +3 -1
  163. package/src/components/mosaic/Mosaic.test.tsx +1 -1
  164. package/src/components/notification/Notification.tsx +1 -1
  165. package/src/components/popover/Popover.tsx +2 -2
  166. package/src/components/progress-tracker/ProgressTracker.tsx +1 -1
  167. package/src/components/select/Select.stories.tsx +1 -1
  168. package/src/components/select/SelectMultiple.stories.tsx +1 -1
  169. package/src/components/select/WithSelectContext.tsx +1 -1
  170. package/src/components/slider/Slider.tsx +1 -1
  171. package/src/components/slideshow/Slideshow.tsx +1 -1
  172. package/src/components/slideshow/useSwipeNavigate.ts +1 -1
  173. package/src/components/tabs/TabList.tsx +4 -4
  174. package/src/components/thumbnail/Thumbnail.tsx +7 -1
  175. package/src/components/tooltip/Tooltip.tsx +4 -7
  176. package/src/components/tooltip/useTooltipOpen.tsx +112 -0
  177. package/src/constants.ts +1 -7
  178. package/src/{_internal/hooks → hooks}/useBooleanState.tsx +0 -0
  179. package/src/{_internal/hooks → hooks}/useCallbackOnEscape.ts +0 -0
  180. package/src/{_internal/hooks → hooks}/useChipGroupNavigation.tsx +0 -0
  181. package/src/{_internal/hooks → hooks}/useClickAway.tsx +0 -0
  182. package/src/{_internal/hooks → hooks}/useDelayedVisibility.tsx +0 -0
  183. package/src/{_internal/hooks → hooks}/useDisableBodyScroll.ts +0 -0
  184. package/src/{_internal/hooks → hooks}/useEventCallback.tsx +0 -0
  185. package/src/{_internal/hooks → hooks}/useFocus.tsx +0 -0
  186. package/src/{_internal/hooks → hooks}/useFocusTrap.ts +0 -0
  187. package/src/{_internal/hooks → hooks}/useInfiniteScroll.tsx +0 -0
  188. package/src/{_internal/hooks → hooks}/useIntersectionObserver.tsx +0 -0
  189. package/src/{_internal/hooks → hooks}/useInterval.tsx +1 -1
  190. package/src/{_internal/hooks → hooks}/useKeyboardListNavigation.tsx +0 -0
  191. package/src/{_internal/hooks → hooks}/useListenFocus.tsx +0 -0
  192. package/src/{_internal/hooks → hooks}/useOnResize.ts +0 -0
  193. package/src/{_internal/hooks → hooks}/useRovingTabIndex.tsx +0 -0
  194. package/src/{_internal/hooks → hooks}/useStopPropagation.ts +0 -0
  195. package/src/utils/ClickAwayProvider/ClickAwayProvider.tsx +1 -1
  196. package/types.d.ts +2 -2
  197. package/esm/_internal/index.js.map +0 -1
  198. package/esm/_internal/mdi.js +0 -22
  199. package/esm/_internal/mdi.js.map +0 -1
  200. package/esm/_internal/onEnterPressed.js +0 -20
  201. package/esm/_internal/onEnterPressed.js.map +0 -1
  202. package/esm/_internal/onEscapePressed.js +0 -20
  203. package/esm/_internal/onEscapePressed.js.map +0 -1
  204. package/esm/hooks/useOpenHoverOrLongPress.js +0 -172
  205. package/esm/hooks/useOpenHoverOrLongPress.js.map +0 -1
  206. package/src/hooks/useOpenHoverOrLongPress.ts +0 -140
  207. package/src/utils/browserDoesNotSupportHover.test.js +0 -24
  208. package/src/utils/browserDoesNotSupportHover.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"Notification2.js","sources":["../../../src/components/notification/constants.ts","../../../src/components/notification/Notification.tsx"],"sourcesContent":["import { mdiAlert, mdiAlertCircle, mdiCheckCircle, mdiInformation } from '@lumx/icons';\n\n/**\n * Notification delay before hiding.\n */\nexport const HIDE_DELAY = 6000;\n\n/**\n * Notification icon and colors according to their type.\n */\nexport const NOTIFICATION_CONFIGURATION = {\n error: {\n color: 'red',\n icon: mdiAlert,\n },\n info: {\n color: 'dark',\n icon: mdiInformation,\n },\n success: {\n color: 'green',\n icon: mdiCheckCircle,\n },\n warning: {\n color: 'yellow',\n icon: mdiAlertCircle,\n },\n};\n","import React, { forwardRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport classNames from 'classnames';\n\nimport isFunction from 'lodash/isFunction';\n\nimport { Button, Emphasis, Icon, Kind, Size, Theme } from '@lumx/react';\n\nimport { DOCUMENT, NOTIFICATION_TRANSITION_DURATION } from '@lumx/react/constants';\nimport { NOTIFICATION_CONFIGURATION } from '@lumx/react/components/notification/constants';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { useDelayedVisibility } from '@lumx/react/_internal/hooks/useDelayedVisibility';\n\n/**\n * Defines the props of the component.\n */\nexport interface NotificationProps extends GenericProps {\n /** Action button label. */\n actionLabel?: string;\n /** Content. */\n content?: React.ReactNode;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** Notification type. */\n type?: Kind;\n /** Z-axis position. */\n zIndex?: number;\n /** On action button click callback. */\n onActionClick?(): void;\n /** On click callback. */\n onClick?(): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Notification';\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<NotificationProps> = {\n theme: Theme.light,\n zIndex: 9999,\n};\n\n/* eslint-disable react-hooks/rules-of-hooks, jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */\n/**\n * Notification component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Notification: Comp<NotificationProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n actionLabel,\n className,\n content,\n isOpen,\n onActionClick,\n onClick,\n theme,\n type,\n zIndex,\n ...forwardedProps\n } = props;\n if (!DOCUMENT) {\n // Can't render in SSR.\n return null;\n }\n const { color, icon } = NOTIFICATION_CONFIGURATION[type as Kind] || {};\n const isVisible = useDelayedVisibility(!!isOpen, NOTIFICATION_TRANSITION_DURATION);\n const hasAction: boolean = Boolean(onActionClick) && Boolean(actionLabel);\n\n const handleCallback = (evt: React.MouseEvent) => {\n if (isFunction(onActionClick)) {\n onActionClick();\n }\n evt.stopPropagation();\n };\n\n return type && isVisible\n ? createPortal(\n <div\n ref={ref}\n role=\"alert\"\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n color,\n hasAction,\n isHidden: !isOpen,\n prefix: CLASSNAME,\n }),\n )}\n onClick={onClick}\n style={{ zIndex }}\n >\n <div className={`${CLASSNAME}__icon`}>\n <Icon icon={icon} size={Size.s} />\n </div>\n <div className={`${CLASSNAME}__content`}>{content}</div>\n {hasAction && (\n <div className={`${CLASSNAME}__action`}>\n <Button emphasis={Emphasis.medium} theme={theme} onClick={handleCallback}>\n <span>{actionLabel}</span>\n </Button>\n </div>\n )}\n </div>,\n document.body,\n )\n : null;\n});\nNotification.displayName = COMPONENT_NAME;\nNotification.className = CLASSNAME;\nNotification.defaultProps = DEFAULT_PROPS;\n"],"names":["NOTIFICATION_CONFIGURATION","error","color","icon","mdiAlert","info","mdiInformation","success","mdiCheckCircle","warning","mdiAlertCircle","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","theme","Theme","light","zIndex","Notification","forwardRef","props","ref","actionLabel","className","content","isOpen","onActionClick","onClick","type","forwardedProps","DOCUMENT","isVisible","useDelayedVisibility","NOTIFICATION_TRANSITION_DURATION","hasAction","Boolean","handleCallback","evt","isFunction","stopPropagation","createPortal","classNames","handleBasicClasses","isHidden","prefix","Size","s","Emphasis","medium","document","body","displayName","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"Notification2.js","sources":["../../../src/components/notification/constants.ts","../../../src/components/notification/Notification.tsx"],"sourcesContent":["import { mdiAlert, mdiAlertCircle, mdiCheckCircle, mdiInformation } from '@lumx/icons';\n\n/**\n * Notification delay before hiding.\n */\nexport const HIDE_DELAY = 6000;\n\n/**\n * Notification icon and colors according to their type.\n */\nexport const NOTIFICATION_CONFIGURATION = {\n error: {\n color: 'red',\n icon: mdiAlert,\n },\n info: {\n color: 'dark',\n icon: mdiInformation,\n },\n success: {\n color: 'green',\n icon: mdiCheckCircle,\n },\n warning: {\n color: 'yellow',\n icon: mdiAlertCircle,\n },\n};\n","import React, { forwardRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport classNames from 'classnames';\n\nimport isFunction from 'lodash/isFunction';\n\nimport { Button, Emphasis, Icon, Kind, Size, Theme } from '@lumx/react';\n\nimport { DOCUMENT, NOTIFICATION_TRANSITION_DURATION } from '@lumx/react/constants';\nimport { NOTIFICATION_CONFIGURATION } from '@lumx/react/components/notification/constants';\nimport { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';\n\nimport { useDelayedVisibility } from '@lumx/react/hooks/useDelayedVisibility';\n\n/**\n * Defines the props of the component.\n */\nexport interface NotificationProps extends GenericProps {\n /** Action button label. */\n actionLabel?: string;\n /** Content. */\n content?: React.ReactNode;\n /** Whether the component is open or not. */\n isOpen?: boolean;\n /** Theme adapting the component to light or dark background. */\n theme?: Theme;\n /** Notification type. */\n type?: Kind;\n /** Z-axis position. */\n zIndex?: number;\n /** On action button click callback. */\n onActionClick?(): void;\n /** On click callback. */\n onClick?(): void;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Notification';\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<NotificationProps> = {\n theme: Theme.light,\n zIndex: 9999,\n};\n\n/* eslint-disable react-hooks/rules-of-hooks, jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */\n/**\n * Notification component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Notification: Comp<NotificationProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n actionLabel,\n className,\n content,\n isOpen,\n onActionClick,\n onClick,\n theme,\n type,\n zIndex,\n ...forwardedProps\n } = props;\n if (!DOCUMENT) {\n // Can't render in SSR.\n return null;\n }\n const { color, icon } = NOTIFICATION_CONFIGURATION[type as Kind] || {};\n const isVisible = useDelayedVisibility(!!isOpen, NOTIFICATION_TRANSITION_DURATION);\n const hasAction: boolean = Boolean(onActionClick) && Boolean(actionLabel);\n\n const handleCallback = (evt: React.MouseEvent) => {\n if (isFunction(onActionClick)) {\n onActionClick();\n }\n evt.stopPropagation();\n };\n\n return type && isVisible\n ? createPortal(\n <div\n ref={ref}\n role=\"alert\"\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n color,\n hasAction,\n isHidden: !isOpen,\n prefix: CLASSNAME,\n }),\n )}\n onClick={onClick}\n style={{ zIndex }}\n >\n <div className={`${CLASSNAME}__icon`}>\n <Icon icon={icon} size={Size.s} />\n </div>\n <div className={`${CLASSNAME}__content`}>{content}</div>\n {hasAction && (\n <div className={`${CLASSNAME}__action`}>\n <Button emphasis={Emphasis.medium} theme={theme} onClick={handleCallback}>\n <span>{actionLabel}</span>\n </Button>\n </div>\n )}\n </div>,\n document.body,\n )\n : null;\n});\nNotification.displayName = COMPONENT_NAME;\nNotification.className = CLASSNAME;\nNotification.defaultProps = DEFAULT_PROPS;\n"],"names":["NOTIFICATION_CONFIGURATION","error","color","icon","mdiAlert","info","mdiInformation","success","mdiCheckCircle","warning","mdiAlertCircle","COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","theme","Theme","light","zIndex","Notification","forwardRef","props","ref","actionLabel","className","content","isOpen","onActionClick","onClick","type","forwardedProps","DOCUMENT","isVisible","useDelayedVisibility","NOTIFICATION_TRANSITION_DURATION","hasAction","Boolean","handleCallback","evt","isFunction","stopPropagation","createPortal","classNames","handleBasicClasses","isHidden","prefix","Size","s","Emphasis","medium","document","body","displayName","defaultProps"],"mappings":"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"}