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

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 (195) hide show
  1. package/esm/_internal/AlertDialog.js +1 -1
  2. package/esm/_internal/AutocompleteMultiple.js.map +1 -1
  3. package/esm/_internal/ButtonGroup.js +0 -4
  4. package/esm/_internal/ButtonGroup.js.map +1 -1
  5. package/esm/_internal/Checkbox2.js +6 -4
  6. package/esm/_internal/Checkbox2.js.map +1 -1
  7. package/esm/_internal/Chip2.js +2 -1
  8. package/esm/_internal/Chip2.js.map +1 -1
  9. package/esm/_internal/ChipGroup.js.map +1 -1
  10. package/esm/_internal/ClickAwayProvider.js +1 -1
  11. package/esm/_internal/ClickAwayProvider.js.map +1 -1
  12. package/esm/_internal/DatePickerField.js +0 -4
  13. package/esm/_internal/DatePickerField.js.map +1 -1
  14. package/esm/_internal/Dialog2.js.map +1 -1
  15. package/esm/_internal/Dropdown2.js +1 -1
  16. package/esm/_internal/Dropdown2.js.map +1 -1
  17. package/esm/_internal/IconButton.js +0 -4
  18. package/esm/_internal/IconButton.js.map +1 -1
  19. package/esm/_internal/Lightbox2.js.map +1 -1
  20. package/esm/_internal/List2.js +20 -4
  21. package/esm/_internal/List2.js.map +1 -1
  22. package/esm/_internal/Notification2.js.map +1 -1
  23. package/esm/_internal/Popover2.js.map +1 -1
  24. package/esm/_internal/ProgressTrackerStepPanel.js.map +1 -1
  25. package/esm/_internal/RadioGroup.js +1 -1
  26. package/esm/_internal/SelectMultiple.js +1 -1
  27. package/esm/_internal/SelectMultiple.js.map +1 -1
  28. package/esm/_internal/SideNavigationItem.js +2 -1
  29. package/esm/_internal/SideNavigationItem.js.map +1 -1
  30. package/esm/_internal/Slider2.js +1 -1
  31. package/esm/_internal/Slider2.js.map +1 -1
  32. package/esm/_internal/SlideshowControls.js +100 -2
  33. package/esm/_internal/SlideshowControls.js.map +1 -1
  34. package/esm/_internal/Switch2.js +6 -4
  35. package/esm/_internal/Switch2.js.map +1 -1
  36. package/esm/_internal/TabPanel.js.map +1 -1
  37. package/esm/_internal/TableRow.js +2 -1
  38. package/esm/_internal/TableRow.js.map +1 -1
  39. package/esm/_internal/TextField.js +1 -1
  40. package/esm/_internal/Tooltip2.js +12 -145
  41. package/esm/_internal/Tooltip2.js.map +1 -1
  42. package/esm/_internal/alert-dialog.js +3 -3
  43. package/esm/_internal/autocomplete.js +6 -5
  44. package/esm/_internal/autocomplete.js.map +1 -1
  45. package/esm/_internal/avatar.js +1 -2
  46. package/esm/_internal/avatar.js.map +1 -1
  47. package/esm/_internal/badge.js +1 -2
  48. package/esm/_internal/badge.js.map +1 -1
  49. package/esm/_internal/button.js +4 -4
  50. package/esm/_internal/checkbox.js +2 -3
  51. package/esm/_internal/checkbox.js.map +1 -1
  52. package/esm/_internal/chip.js +2 -2
  53. package/esm/_internal/comment-block.js +1 -2
  54. package/esm/_internal/comment-block.js.map +1 -1
  55. package/esm/_internal/constants.js.map +1 -1
  56. package/esm/_internal/date-picker.js +4 -4
  57. package/esm/_internal/dialog.js +2 -2
  58. package/esm/_internal/divider.js +1 -2
  59. package/esm/_internal/divider.js.map +1 -1
  60. package/esm/_internal/drag-handle.js +1 -2
  61. package/esm/_internal/drag-handle.js.map +1 -1
  62. package/esm/_internal/dropdown.js +4 -3
  63. package/esm/_internal/dropdown.js.map +1 -1
  64. package/esm/_internal/expansion-panel.js +4 -4
  65. package/esm/_internal/flag.js +1 -2
  66. package/esm/_internal/flag.js.map +1 -1
  67. package/esm/_internal/flex-box.js +1 -2
  68. package/esm/_internal/flex-box.js.map +1 -1
  69. package/esm/_internal/getRootClassName.js +40 -166
  70. package/esm/_internal/getRootClassName.js.map +1 -1
  71. package/esm/_internal/grid.js +1 -2
  72. package/esm/_internal/grid.js.map +1 -1
  73. package/esm/_internal/icon.js +1 -2
  74. package/esm/_internal/icon.js.map +1 -1
  75. package/esm/_internal/image-block.js +1 -2
  76. package/esm/_internal/image-block.js.map +1 -1
  77. package/esm/{index2.js → _internal/index.js} +1 -1
  78. package/esm/_internal/index.js.map +1 -0
  79. package/esm/_internal/input-helper.js +1 -2
  80. package/esm/_internal/input-helper.js.map +1 -1
  81. package/esm/_internal/input-label.js +1 -2
  82. package/esm/_internal/input-label.js.map +1 -1
  83. package/esm/_internal/lightbox.js +4 -4
  84. package/esm/_internal/link-preview.js +1 -2
  85. package/esm/_internal/link-preview.js.map +1 -1
  86. package/esm/_internal/link.js +1 -2
  87. package/esm/_internal/link.js.map +1 -1
  88. package/esm/_internal/list.js +3 -3
  89. package/esm/_internal/message.js +1 -2
  90. package/esm/_internal/message.js.map +1 -1
  91. package/esm/_internal/mosaic.js +1 -2
  92. package/esm/_internal/mosaic.js.map +1 -1
  93. package/esm/_internal/notification.js +1 -2
  94. package/esm/_internal/notification.js.map +1 -1
  95. package/esm/_internal/onEnterPressed.js +20 -0
  96. package/esm/_internal/onEnterPressed.js.map +1 -0
  97. package/esm/_internal/onEscapePressed.js +20 -0
  98. package/esm/_internal/onEscapePressed.js.map +1 -0
  99. package/esm/_internal/popover.js +2 -2
  100. package/esm/_internal/post-block.js +1 -2
  101. package/esm/_internal/post-block.js.map +1 -1
  102. package/esm/_internal/progress-tracker.js +2 -3
  103. package/esm/_internal/progress-tracker.js.map +1 -1
  104. package/esm/_internal/progress.js +1 -2
  105. package/esm/_internal/progress.js.map +1 -1
  106. package/esm/_internal/radio-button.js +2 -3
  107. package/esm/_internal/radio-button.js.map +1 -1
  108. package/esm/_internal/select.js +6 -5
  109. package/esm/_internal/select.js.map +1 -1
  110. package/esm/_internal/side-navigation.js +5 -4
  111. package/esm/_internal/side-navigation.js.map +1 -1
  112. package/esm/_internal/skeleton.js +1 -2
  113. package/esm/_internal/skeleton.js.map +1 -1
  114. package/esm/_internal/slider.js +2 -3
  115. package/esm/_internal/slider.js.map +1 -1
  116. package/esm/_internal/slideshow.js +6 -5
  117. package/esm/_internal/slideshow.js.map +1 -1
  118. package/esm/_internal/switch.js +2 -3
  119. package/esm/_internal/switch.js.map +1 -1
  120. package/esm/_internal/table.js +2 -2
  121. package/esm/_internal/tabs.js +2 -3
  122. package/esm/_internal/tabs.js.map +1 -1
  123. package/esm/_internal/text-field.js +4 -4
  124. package/esm/_internal/thumbnail.js +1 -2
  125. package/esm/_internal/thumbnail.js.map +1 -1
  126. package/esm/_internal/toolbar.js +1 -2
  127. package/esm/_internal/toolbar.js.map +1 -1
  128. package/esm/_internal/tooltip.js +4 -4
  129. package/esm/_internal/uploader.js +1 -2
  130. package/esm/_internal/uploader.js.map +1 -1
  131. package/esm/_internal/useDelayedVisibility.js.map +1 -1
  132. package/esm/_internal/useDisableBodyScroll.js.map +1 -1
  133. package/esm/_internal/useFocusTrap.js.map +1 -1
  134. package/esm/_internal/useRovingTabIndex.js +1 -1
  135. package/esm/_internal/useRovingTabIndex.js.map +1 -1
  136. package/esm/_internal/user-block.js +1 -2
  137. package/esm/_internal/user-block.js.map +1 -1
  138. package/esm/hooks/useOpenHoverOrLongPress.js +172 -0
  139. package/esm/hooks/useOpenHoverOrLongPress.js.map +1 -0
  140. package/esm/index.js +8 -6
  141. package/esm/index.js.map +1 -1
  142. package/package.json +4 -4
  143. package/src/{hooks → _internal/hooks}/useBooleanState.tsx +0 -0
  144. package/src/{hooks → _internal/hooks}/useCallbackOnEscape.ts +0 -0
  145. package/src/{hooks → _internal/hooks}/useChipGroupNavigation.tsx +0 -0
  146. package/src/{hooks → _internal/hooks}/useClickAway.tsx +0 -0
  147. package/src/{hooks → _internal/hooks}/useDelayedVisibility.tsx +0 -0
  148. package/src/{hooks → _internal/hooks}/useDisableBodyScroll.ts +0 -0
  149. package/src/{hooks → _internal/hooks}/useEventCallback.tsx +0 -0
  150. package/src/{hooks → _internal/hooks}/useFocus.tsx +0 -0
  151. package/src/{hooks → _internal/hooks}/useFocusTrap.ts +0 -0
  152. package/src/{hooks → _internal/hooks}/useInfiniteScroll.tsx +0 -0
  153. package/src/{hooks → _internal/hooks}/useIntersectionObserver.tsx +0 -0
  154. package/src/{hooks → _internal/hooks}/useInterval.tsx +1 -1
  155. package/src/{hooks → _internal/hooks}/useKeyboardListNavigation.tsx +0 -0
  156. package/src/{hooks → _internal/hooks}/useListenFocus.tsx +0 -0
  157. package/src/{hooks → _internal/hooks}/useOnResize.ts +0 -0
  158. package/src/{hooks → _internal/hooks}/useRovingTabIndex.tsx +0 -0
  159. package/src/{hooks → _internal/hooks}/useStopPropagation.ts +0 -0
  160. package/src/components/autocomplete/Autocomplete.tsx +1 -1
  161. package/src/components/button/__snapshots__/IconButton.test.tsx.snap +0 -5
  162. package/src/components/checkbox/Checkbox.test.tsx +14 -0
  163. package/src/components/checkbox/Checkbox.tsx +5 -1
  164. package/src/components/checkbox/__snapshots__/Checkbox.test.tsx.snap +51 -0
  165. package/src/components/chip/Chip.tsx +1 -1
  166. package/src/components/chip/ChipGroup.tsx +1 -1
  167. package/src/components/date-picker/DatePickerField.tsx +2 -2
  168. package/src/components/dialog/Dialog.test.tsx +1 -1
  169. package/src/components/dialog/Dialog.tsx +5 -5
  170. package/src/components/dropdown/Dropdown.tsx +1 -1
  171. package/src/components/lightbox/Lightbox.tsx +4 -4
  172. package/src/components/list/List.tsx +1 -1
  173. package/src/components/mosaic/Mosaic.test.tsx +1 -1
  174. package/src/components/notification/Notification.tsx +1 -1
  175. package/src/components/popover/Popover.tsx +2 -2
  176. package/src/components/progress-tracker/ProgressTracker.tsx +1 -1
  177. package/src/components/select/Select.stories.tsx +1 -1
  178. package/src/components/select/SelectMultiple.stories.tsx +1 -1
  179. package/src/components/select/WithSelectContext.tsx +1 -1
  180. package/src/components/slider/Slider.tsx +1 -1
  181. package/src/components/slideshow/Slideshow.tsx +1 -1
  182. package/src/components/slideshow/useSwipeNavigate.ts +1 -1
  183. package/src/components/switch/Switch.test.tsx +10 -0
  184. package/src/components/switch/Switch.tsx +5 -1
  185. package/src/components/switch/__snapshots__/Switch.test.tsx.snap +30 -0
  186. package/src/components/tabs/TabList.tsx +4 -4
  187. package/src/components/tooltip/Tooltip.tsx +7 -4
  188. package/src/constants.ts +7 -1
  189. package/src/hooks/useOpenHoverOrLongPress.ts +140 -0
  190. package/src/utils/ClickAwayProvider/ClickAwayProvider.tsx +1 -1
  191. package/src/utils/browserDoesNotSupportHover.test.js +24 -0
  192. package/src/utils/browserDoesNotSupportHover.ts +2 -0
  193. package/types.d.ts +6 -2
  194. package/esm/index2.js.map +0 -1
  195. package/src/components/tooltip/useTooltipOpen.tsx +0 -112
@@ -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/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/_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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"}