@lumx/react 2.2.1-alpha.0 → 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.
- package/esm/_internal/AlertDialog.js +1 -1
- package/esm/_internal/AutocompleteMultiple.js.map +1 -1
- package/esm/_internal/ButtonGroup.js +0 -4
- package/esm/_internal/ButtonGroup.js.map +1 -1
- package/esm/_internal/Checkbox2.js +6 -4
- package/esm/_internal/Checkbox2.js.map +1 -1
- package/esm/_internal/Chip2.js +2 -1
- package/esm/_internal/Chip2.js.map +1 -1
- package/esm/_internal/ChipGroup.js.map +1 -1
- package/esm/_internal/ClickAwayProvider.js +1 -1
- package/esm/_internal/ClickAwayProvider.js.map +1 -1
- package/esm/_internal/DatePickerField.js +0 -4
- package/esm/_internal/DatePickerField.js.map +1 -1
- package/esm/_internal/Dialog2.js.map +1 -1
- package/esm/_internal/Dropdown2.js +1 -1
- package/esm/_internal/Dropdown2.js.map +1 -1
- package/esm/_internal/IconButton.js +0 -4
- package/esm/_internal/IconButton.js.map +1 -1
- package/esm/_internal/Lightbox2.js.map +1 -1
- package/esm/_internal/List2.js +20 -4
- package/esm/_internal/List2.js.map +1 -1
- package/esm/_internal/Notification2.js.map +1 -1
- package/esm/_internal/Popover2.js.map +1 -1
- package/esm/_internal/ProgressTrackerStepPanel.js.map +1 -1
- package/esm/_internal/RadioGroup.js +1 -1
- package/esm/_internal/SelectMultiple.js +1 -1
- package/esm/_internal/SelectMultiple.js.map +1 -1
- package/esm/_internal/SideNavigationItem.js +2 -1
- package/esm/_internal/SideNavigationItem.js.map +1 -1
- package/esm/_internal/Slider2.js +1 -1
- package/esm/_internal/Slider2.js.map +1 -1
- package/esm/_internal/SlideshowControls.js +100 -2
- package/esm/_internal/SlideshowControls.js.map +1 -1
- package/esm/_internal/Switch2.js +6 -4
- package/esm/_internal/Switch2.js.map +1 -1
- package/esm/_internal/TabPanel.js.map +1 -1
- package/esm/_internal/TableRow.js +2 -1
- package/esm/_internal/TableRow.js.map +1 -1
- package/esm/_internal/TextField.js +1 -1
- package/esm/_internal/Tooltip2.js +12 -145
- package/esm/_internal/Tooltip2.js.map +1 -1
- package/esm/_internal/UserBlock.js +2 -1
- package/esm/_internal/UserBlock.js.map +1 -1
- package/esm/_internal/alert-dialog.js +3 -3
- package/esm/_internal/autocomplete.js +6 -5
- package/esm/_internal/autocomplete.js.map +1 -1
- package/esm/_internal/avatar.js +1 -2
- package/esm/_internal/avatar.js.map +1 -1
- package/esm/_internal/badge.js +1 -2
- package/esm/_internal/badge.js.map +1 -1
- package/esm/_internal/button.js +4 -4
- package/esm/_internal/checkbox.js +2 -3
- package/esm/_internal/checkbox.js.map +1 -1
- package/esm/_internal/chip.js +2 -2
- package/esm/_internal/comment-block.js +1 -2
- package/esm/_internal/comment-block.js.map +1 -1
- package/esm/_internal/constants.js.map +1 -1
- package/esm/_internal/date-picker.js +4 -4
- package/esm/_internal/dialog.js +2 -2
- package/esm/_internal/divider.js +1 -2
- package/esm/_internal/divider.js.map +1 -1
- package/esm/_internal/drag-handle.js +1 -2
- package/esm/_internal/drag-handle.js.map +1 -1
- package/esm/_internal/dropdown.js +4 -3
- package/esm/_internal/dropdown.js.map +1 -1
- package/esm/_internal/expansion-panel.js +4 -4
- package/esm/_internal/flag.js +1 -2
- package/esm/_internal/flag.js.map +1 -1
- package/esm/_internal/flex-box.js +1 -2
- package/esm/_internal/flex-box.js.map +1 -1
- package/esm/_internal/getRootClassName.js +40 -166
- package/esm/_internal/getRootClassName.js.map +1 -1
- package/esm/_internal/grid.js +1 -2
- package/esm/_internal/grid.js.map +1 -1
- package/esm/_internal/icon.js +1 -2
- package/esm/_internal/icon.js.map +1 -1
- package/esm/_internal/image-block.js +1 -2
- package/esm/_internal/image-block.js.map +1 -1
- package/esm/{index2.js → _internal/index.js} +1 -1
- package/esm/_internal/index.js.map +1 -0
- package/esm/_internal/input-helper.js +1 -2
- package/esm/_internal/input-helper.js.map +1 -1
- package/esm/_internal/input-label.js +1 -2
- package/esm/_internal/input-label.js.map +1 -1
- package/esm/_internal/lightbox.js +4 -4
- package/esm/_internal/link-preview.js +1 -2
- package/esm/_internal/link-preview.js.map +1 -1
- package/esm/_internal/link.js +1 -2
- package/esm/_internal/link.js.map +1 -1
- package/esm/_internal/list.js +3 -3
- package/esm/_internal/message.js +1 -2
- package/esm/_internal/message.js.map +1 -1
- package/esm/_internal/mosaic.js +1 -2
- package/esm/_internal/mosaic.js.map +1 -1
- package/esm/_internal/notification.js +1 -2
- package/esm/_internal/notification.js.map +1 -1
- package/esm/_internal/onEnterPressed.js +20 -0
- package/esm/_internal/onEnterPressed.js.map +1 -0
- package/esm/_internal/onEscapePressed.js +20 -0
- package/esm/_internal/onEscapePressed.js.map +1 -0
- package/esm/_internal/popover.js +2 -2
- package/esm/_internal/post-block.js +1 -2
- package/esm/_internal/post-block.js.map +1 -1
- package/esm/_internal/progress-tracker.js +2 -3
- package/esm/_internal/progress-tracker.js.map +1 -1
- package/esm/_internal/progress.js +1 -2
- package/esm/_internal/progress.js.map +1 -1
- package/esm/_internal/radio-button.js +2 -3
- package/esm/_internal/radio-button.js.map +1 -1
- package/esm/_internal/select.js +6 -5
- package/esm/_internal/select.js.map +1 -1
- package/esm/_internal/side-navigation.js +5 -4
- package/esm/_internal/side-navigation.js.map +1 -1
- package/esm/_internal/skeleton.js +1 -2
- package/esm/_internal/skeleton.js.map +1 -1
- package/esm/_internal/slider.js +2 -3
- package/esm/_internal/slider.js.map +1 -1
- package/esm/_internal/slideshow.js +6 -5
- package/esm/_internal/slideshow.js.map +1 -1
- package/esm/_internal/switch.js +2 -3
- package/esm/_internal/switch.js.map +1 -1
- package/esm/_internal/table.js +2 -2
- package/esm/_internal/tabs.js +2 -3
- package/esm/_internal/tabs.js.map +1 -1
- package/esm/_internal/text-field.js +4 -4
- package/esm/_internal/thumbnail.js +1 -2
- package/esm/_internal/thumbnail.js.map +1 -1
- package/esm/_internal/toolbar.js +1 -2
- package/esm/_internal/toolbar.js.map +1 -1
- package/esm/_internal/tooltip.js +4 -4
- package/esm/_internal/uploader.js +1 -2
- package/esm/_internal/uploader.js.map +1 -1
- package/esm/_internal/useDelayedVisibility.js.map +1 -1
- package/esm/_internal/useDisableBodyScroll.js.map +1 -1
- package/esm/_internal/useFocusTrap.js.map +1 -1
- package/esm/_internal/useRovingTabIndex.js +1 -1
- package/esm/_internal/useRovingTabIndex.js.map +1 -1
- package/esm/_internal/user-block.js +1 -2
- package/esm/_internal/user-block.js.map +1 -1
- package/esm/hooks/useOpenHoverOrLongPress.js +172 -0
- package/esm/hooks/useOpenHoverOrLongPress.js.map +1 -0
- package/esm/index.js +8 -6
- package/esm/index.js.map +1 -1
- package/package.json +4 -4
- package/src/{hooks → _internal/hooks}/useBooleanState.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useCallbackOnEscape.ts +0 -0
- package/src/{hooks → _internal/hooks}/useChipGroupNavigation.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useClickAway.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useDelayedVisibility.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useDisableBodyScroll.ts +0 -0
- package/src/{hooks → _internal/hooks}/useEventCallback.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useFocus.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useFocusTrap.ts +0 -0
- package/src/{hooks → _internal/hooks}/useInfiniteScroll.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useIntersectionObserver.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useInterval.tsx +1 -1
- package/src/{hooks → _internal/hooks}/useKeyboardListNavigation.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useListenFocus.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useOnResize.ts +0 -0
- package/src/{hooks → _internal/hooks}/useRovingTabIndex.tsx +0 -0
- package/src/{hooks → _internal/hooks}/useStopPropagation.ts +0 -0
- package/src/components/autocomplete/Autocomplete.tsx +1 -1
- package/src/components/button/__snapshots__/IconButton.test.tsx.snap +0 -5
- package/src/components/checkbox/Checkbox.test.tsx +14 -0
- package/src/components/checkbox/Checkbox.tsx +5 -1
- package/src/components/checkbox/__snapshots__/Checkbox.test.tsx.snap +51 -0
- package/src/components/chip/Chip.tsx +1 -1
- package/src/components/chip/ChipGroup.tsx +1 -1
- package/src/components/date-picker/DatePickerField.tsx +2 -2
- package/src/components/dialog/Dialog.test.tsx +1 -1
- package/src/components/dialog/Dialog.tsx +5 -5
- package/src/components/dropdown/Dropdown.tsx +1 -1
- package/src/components/lightbox/Lightbox.tsx +4 -4
- package/src/components/list/List.tsx +1 -1
- package/src/components/mosaic/Mosaic.test.tsx +1 -1
- package/src/components/notification/Notification.tsx +1 -1
- package/src/components/popover/Popover.tsx +2 -2
- package/src/components/progress-tracker/ProgressTracker.tsx +1 -1
- package/src/components/select/Select.stories.tsx +1 -1
- package/src/components/select/SelectMultiple.stories.tsx +1 -1
- package/src/components/select/WithSelectContext.tsx +1 -1
- package/src/components/slider/Slider.tsx +1 -1
- package/src/components/slideshow/Slideshow.tsx +1 -1
- package/src/components/slideshow/useSwipeNavigate.ts +1 -1
- package/src/components/switch/Switch.test.tsx +10 -0
- package/src/components/switch/Switch.tsx +5 -1
- package/src/components/switch/__snapshots__/Switch.test.tsx.snap +30 -0
- package/src/components/tabs/TabList.tsx +4 -4
- package/src/components/thumbnail/Thumbnail.stories.tsx +6 -0
- package/src/components/tooltip/Tooltip.tsx +7 -4
- package/src/components/user-block/UserBlock.tsx +2 -1
- package/src/components/user-block/__snapshots__/UserBlock.test.tsx.snap +1 -0
- package/src/constants.ts +7 -1
- package/src/hooks/useOpenHoverOrLongPress.ts +140 -0
- package/src/stories/generated/Badge/Demos.stories.tsx +1 -0
- package/src/stories/generated/Flag/Demos.stories.tsx +6 -0
- package/src/utils/ClickAwayProvider/ClickAwayProvider.tsx +1 -1
- package/src/utils/browserDoesNotSupportHover.test.js +24 -0
- package/src/utils/browserDoesNotSupportHover.ts +2 -0
- package/types.d.ts +6 -2
- package/esm/index2.js.map +0 -1
- 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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"}
|