@finam/web-ui-kit-components 3.34.2 → 3.34.3
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/CHANGELOG.md +2 -0
- package/dist/Breadcrumbs/utils/getRenderOnPageItems.d.ts.map +1 -1
- package/dist/Breadcrumbs/utils/getRenderOnPageItems.js +6 -3
- package/dist/Breadcrumbs/utils/getRenderOnPageItems.js.map +1 -1
- package/dist/Breadcrumbs/utils/intersperseWithKeys.d.ts.map +1 -1
- package/dist/Breadcrumbs/utils/intersperseWithKeys.js +6 -3
- package/dist/Breadcrumbs/utils/intersperseWithKeys.js.map +1 -1
- package/dist/CodeInput/CodeInput.js +4 -1
- package/dist/CodeInput/CodeInput.js.map +1 -1
- package/dist/DraggablePopover/layersManager.d.ts.map +1 -1
- package/dist/DraggablePopover/layersManager.js +1 -0
- package/dist/DraggablePopover/layersManager.js.map +1 -1
- package/dist/MultiSelectField/MultiSelectField.d.ts.map +1 -1
- package/dist/MultiSelectField/MultiSelectField.js +1 -0
- package/dist/MultiSelectField/MultiSelectField.js.map +1 -1
- package/dist/NumberTextField/NumberTextField.js +4 -2
- package/dist/NumberTextField/NumberTextField.js.map +1 -1
- package/dist/NumberTextField/utils.js +5 -1
- package/dist/NumberTextField/utils.js.map +1 -1
- package/dist/Paper/Paper.styles.d.ts.map +1 -1
- package/dist/Paper/Paper.styles.js +3 -1
- package/dist/Paper/Paper.styles.js.map +1 -1
- package/dist/PickersUtilsProvider/defaultDateFormatUtils.js +4 -3
- package/dist/PickersUtilsProvider/defaultDateFormatUtils.js.map +1 -1
- package/dist/PickersUtilsProvider/defaultTimeFormatUtils.js +5 -4
- package/dist/PickersUtilsProvider/defaultTimeFormatUtils.js.map +1 -1
- package/dist/ProductCard/badges/utils.js +2 -1
- package/dist/ProductCard/badges/utils.js.map +1 -1
- package/dist/ProductCard/layouts/common/chartUtils.d.ts.map +1 -1
- package/dist/ProductCard/layouts/common/chartUtils.js +1 -0
- package/dist/ProductCard/layouts/common/chartUtils.js.map +1 -1
- package/dist/ProductCard/utils.js +1 -1
- package/dist/ProductCard/utils.js.map +1 -1
- package/dist/SecurityIcon/constants.d.ts +2 -2
- package/dist/SecurityIcon/constants.d.ts.map +1 -1
- package/dist/SecurityIcon/constants.js.map +1 -1
- package/dist/SecurityIcon/utils.d.ts.map +1 -1
- package/dist/SecurityIcon/utils.js +2 -1
- package/dist/SecurityIcon/utils.js.map +1 -1
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +4 -2
- package/dist/Slider/Slider.js.map +1 -1
- package/dist/Slider/utils.js +1 -1
- package/dist/Slider/utils.js.map +1 -1
- package/dist/Snackbar/Snackbar.js +4 -4
- package/dist/Snackbar/Snackbar.js.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Snackbar/Snackbar.js","sources":["../../src/Snackbar/Snackbar.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'clsx';\nimport { CSSTransition } from 'react-transition-group';\nimport { transitionSlideParent, transitionSlide } from '@finam/web-ui-kit-core/styles/transition';\nimport type { CSSTransitionProps } from '../types.js';\nimport ClickAwayListener, { ClickAwayListenerProps } from '../ClickAwayListener/index.js';\nimport SnackbarContent, { SnackbarContentProps } from '../SnackbarContent/index.js';\nimport { IN, OUT, Root, slide, transitionClassName } from './Snackbar.styles.js';\nimport { transitionClassNames } from '../utils/transition.js';\n\nexport interface Props extends React.ComponentPropsWithoutRef<typeof Root> {\n /** Управление видимостью всплывающего окна */\n open?: boolean;\n /** Объект управляющий позицией всплытия\n * - `horizontal`: \"left\", \"center\", \"right\".\n * - `vertical`: \"top\", \"bottom\".\n */\n anchorOrigin?: AnchorOrigin;\n /** Количество миллисекунд, через которое всплывающее окно будет автоматически скрыто */\n autoHideDuration?: number;\n /** Количество миллисекунд, через которое всплывающее окно будет автоматически скрыто\n * после восстановления активности (после паузы) */\n resumeHideDuration?: number;\n /** Иконка, отображаемая перед контентом всплывающего окна */\n icon?: React.ReactElement<any>;\n /** Элемент, предназначенный для выполнения действий при взаимодействии с пользователем */\n action?: React.ReactNode;\n /** Текст сообщения всплывающего окна */\n message?: React.ReactNode;\n /** Кастомный компонент, полностью заменяющий содержимое всплывающего окна */\n children?: React.ReactElement<any>;\n /** Флаг, включающий возможность копирования текста некастомного контента\n * всплывающего окна по клику */\n withCopy?: boolean;\n /** Кастомные классы передаваемые в корневой компонент */\n className?: string;\n /** Свойства передаваемые в компонент `ClickAwayListener` */\n ClickAwayListenerProps?: Partial<ClickAwayListenerProps<HTMLDivElement>>;\n /** Свойства передаваемые в компонент `SnackbarContent` */\n ContentProps?: Partial<SnackbarContentProps>;\n /** Флаг, отключающий автоматическое скрытие всплывающего окна при потере фокуса\n * активного `windows` */\n disableWindowBlurListener?: boolean;\n /** Функция обратного вызова, вызываемая при закрытии всплывающего окна */\n onClose?: (\n event:\n MouseEvent | React.MouseEvent<HTMLDivElement> |\n TouchEvent | React.TouchEvent<HTMLDivElement> |\n null,\n reason: 'timeout' | 'clickaway' | 'swipe'\n ) => void;\n /** Свойства передаваемые в компонент `CSSTransition` */\n TransitionProps?: Partial<CSSTransitionProps<HTMLElement>>;\n /** Вариант основного цвета всплывающего окна */\n color?: 'regular' | 'danger';\n}\n\nexport interface AnchorOrigin {\n horizontal: 'left' | 'center' | 'right';\n vertical: 'top' | 'bottom';\n}\n\nconst SWIPE_Y_DISTANCE = 20;\n\nconst Snackbar = React.forwardRef<HTMLDivElement, Props>((props, ref) => {\n const {\n open,\n anchorOrigin: { vertical, horizontal } = { vertical: 'bottom', horizontal: 'center' },\n autoHideDuration,\n resumeHideDuration,\n icon,\n action,\n message,\n withCopy = true,\n children,\n className,\n ClickAwayListenerProps: clickAwayListenerProps,\n ContentProps,\n disableWindowBlurListener = false,\n onClose,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n TransitionProps,\n color,\n ...other\n } = props;\n\n const timeout = TransitionProps?.timeout || {\n enter: IN,\n exit: OUT,\n };\n const onEnter = TransitionProps?.onEnter;\n const onExited = TransitionProps?.onExited;\n\n const contentRef = React.useRef<HTMLDivElement>(null);\n const timerAutoHide = React.useRef<any>(undefined);\n const [exited, setExited] = React.useState(true);\n const [dragY, setDragY] = React.useState(0);\n\n // Timer that controls delay before snackbar auto hides\n const setAutoHideTimer = React.useCallback(\n (autoHideDurationParam?: number) => {\n const autoHideDurationBefore =\n autoHideDurationParam != null ? autoHideDurationParam : autoHideDuration;\n\n if (!open || !onClose || autoHideDurationBefore == null) {\n return;\n }\n\n clearTimeout(timerAutoHide.current);\n timerAutoHide.current = setTimeout(() => {\n const autoHideDurationAfter =\n autoHideDurationParam != null ? autoHideDurationParam : autoHideDuration;\n if (!onClose || autoHideDurationAfter == null) {\n return;\n }\n onClose(null, 'timeout');\n }, autoHideDurationBefore);\n },\n [autoHideDuration, onClose, open],\n );\n\n React.useEffect(() => {\n if (open) {\n setAutoHideTimer();\n }\n\n return () => {\n clearTimeout(timerAutoHide.current);\n };\n }, [open, setAutoHideTimer]);\n\n // Pause the timer when the user is interacting with the Snackbar\n // or when the user hide the window.\n const handlePause = React.useCallback(() => {\n clearTimeout(timerAutoHide.current);\n }, []);\n\n // Restart the timer when the user is no longer interacting with the Snackbar\n // or when the window is shown back.\n const handleResume = React.useCallback(() => {\n if (autoHideDuration != null) {\n if (resumeHideDuration != null) {\n setAutoHideTimer(resumeHideDuration);\n return;\n }\n setAutoHideTimer(autoHideDuration * 0.5);\n }\n }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);\n\n const handlePointerEnter = React.useCallback((event: React.PointerEvent<HTMLDivElement>) => {\n if (event.pointerType !== 'touch') {\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n handlePause();\n }\n }, [onMouseEnter, handlePause]);\n\n const handlePointerLeave = React.useCallback((event: React.PointerEvent<HTMLDivElement>) => {\n if (event.pointerType !== 'touch') {\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n handleResume();\n }\n }, [onMouseLeave, handleResume]);\n\n const handleTouchStart = React.useCallback((event: React.TouchEvent<HTMLDivElement>) => {\n if (onTouchStart) {\n onTouchStart(event);\n }\n handlePause();\n\n const startDragY = event.changedTouches?.[0].clientY;\n\n if (startDragY) {\n setDragY(startDragY);\n }\n }, [onTouchStart, handlePause]);\n\n const handleTouchEnd = React.useCallback((event: React.TouchEvent<HTMLDivElement>) => {\n if (onTouchEnd) {\n onTouchEnd(event);\n }\n handleResume();\n\n const endDragY = event.changedTouches?.[0].clientY;\n\n if (endDragY && Math.abs(dragY - endDragY) > SWIPE_Y_DISTANCE) {\n onClose?.(event, 'swipe');\n }\n }, [dragY, onTouchEnd, handleResume, onClose]);\n\n const handleClickAway = React.useCallback((event: MouseEvent | TouchEvent) => {\n if (onClose) {\n onClose(event, 'clickaway');\n }\n }, [onClose]);\n\n const handleEnter = React.useCallback((node: HTMLElement, isAppearing: boolean) => {\n setExited(false);\n onEnter?.(isAppearing);\n }, [onEnter]);\n\n const handleExited = React.useCallback(() => {\n setExited(true);\n onExited?.();\n }, [onExited]);\n\n React.useEffect(() => {\n if (!disableWindowBlurListener && open) {\n window.addEventListener('focus', handleResume);\n window.addEventListener('blur', handlePause);\n\n return () => {\n window.removeEventListener('focus', handleResume);\n window.removeEventListener('blur', handlePause);\n };\n }\n\n return undefined;\n }, [disableWindowBlurListener, handleResume, handlePause, open]);\n\n if (!open && exited) {\n return null;\n }\n\n const rootClassName = classnames(\n `anchor-origin-${vertical}-${horizontal}`,\n className,\n );\n const contentClassName = classnames(\n transitionSlide({ marginThreshold: 'medium', direction: vertical === 'top' ? 'down' : 'up' }),\n slide,\n ContentProps?.className,\n );\n\n return (\n <ClickAwayListener onClickAway={handleClickAway} {...clickAwayListenerProps}>\n <Root\n className={rootClassName}\n onPointerEnter={handlePointerEnter}\n onPointerLeave={handlePointerLeave}\n onTouchStart={handleTouchStart}\n onTouchEnd={handleTouchEnd}\n ref={ref}\n {...other}\n >\n <CSSTransition\n appear={true}\n in={open}\n timeout={timeout}\n classNames={transitionClassNames([transitionSlideParent, transitionClassName])}\n {...TransitionProps}\n onEnter={handleEnter as any}\n onExited={handleExited}\n nodeRef={contentRef}\n >\n {children || (\n <SnackbarContent\n ref={contentRef}\n message={message}\n icon={icon}\n action={action}\n withCopy={withCopy}\n color={color}\n {...ContentProps}\n className={contentClassName}\n />\n )}\n </CSSTransition>\n </Root>\n </ClickAwayListener>\n );\n});\n\nexport default React.memo(Snackbar);\n"],"names":["SWIPE_Y_DISTANCE","Snackbar","React","props","ref","open","vertical","horizontal","autoHideDuration","resumeHideDuration","icon","action","message","withCopy","children","className","clickAwayListenerProps","ContentProps","disableWindowBlurListener","onClose","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","TransitionProps","color","other","timeout","IN","OUT","onEnter","onExited","contentRef","timerAutoHide","undefined","exited","setExited","dragY","setDragY","setAutoHideTimer","autoHideDurationParam","autoHideDurationBefore","clearTimeout","setTimeout","autoHideDurationAfter","handlePause","handleResume","handlePointerEnter","event","handlePointerLeave","handleTouchStart","_event_changedTouches","startDragY","handleTouchEnd","endDragY","Math","handleClickAway","handleEnter","node","isAppearing","handleExited","window","rootClassName","classnames","contentClassName","transitionSlide","slide","ClickAwayListener","Root","CSSTransition","transitionClassNames","transitionSlideParent","transitionClassName","SnackbarContent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Snackbar/Snackbar.js","sources":["../../src/Snackbar/Snackbar.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'clsx';\nimport { CSSTransition } from 'react-transition-group';\nimport { transitionSlideParent, transitionSlide } from '@finam/web-ui-kit-core/styles/transition';\nimport type { CSSTransitionProps } from '../types.js';\nimport ClickAwayListener, { ClickAwayListenerProps } from '../ClickAwayListener/index.js';\nimport SnackbarContent, { SnackbarContentProps } from '../SnackbarContent/index.js';\nimport { IN, OUT, Root, slide, transitionClassName } from './Snackbar.styles.js';\nimport { transitionClassNames } from '../utils/transition.js';\n\nexport interface Props extends React.ComponentPropsWithoutRef<typeof Root> {\n /** Управление видимостью всплывающего окна */\n open?: boolean;\n /** Объект управляющий позицией всплытия\n * - `horizontal`: \"left\", \"center\", \"right\".\n * - `vertical`: \"top\", \"bottom\".\n */\n anchorOrigin?: AnchorOrigin;\n /** Количество миллисекунд, через которое всплывающее окно будет автоматически скрыто */\n autoHideDuration?: number;\n /** Количество миллисекунд, через которое всплывающее окно будет автоматически скрыто\n * после восстановления активности (после паузы) */\n resumeHideDuration?: number;\n /** Иконка, отображаемая перед контентом всплывающего окна */\n icon?: React.ReactElement<any>;\n /** Элемент, предназначенный для выполнения действий при взаимодействии с пользователем */\n action?: React.ReactNode;\n /** Текст сообщения всплывающего окна */\n message?: React.ReactNode;\n /** Кастомный компонент, полностью заменяющий содержимое всплывающего окна */\n children?: React.ReactElement<any>;\n /** Флаг, включающий возможность копирования текста некастомного контента\n * всплывающего окна по клику */\n withCopy?: boolean;\n /** Кастомные классы передаваемые в корневой компонент */\n className?: string;\n /** Свойства передаваемые в компонент `ClickAwayListener` */\n ClickAwayListenerProps?: Partial<ClickAwayListenerProps<HTMLDivElement>>;\n /** Свойства передаваемые в компонент `SnackbarContent` */\n ContentProps?: Partial<SnackbarContentProps>;\n /** Флаг, отключающий автоматическое скрытие всплывающего окна при потере фокуса\n * активного `windows` */\n disableWindowBlurListener?: boolean;\n /** Функция обратного вызова, вызываемая при закрытии всплывающего окна */\n onClose?: (\n event:\n MouseEvent | React.MouseEvent<HTMLDivElement> |\n TouchEvent | React.TouchEvent<HTMLDivElement> |\n null,\n reason: 'timeout' | 'clickaway' | 'swipe'\n ) => void;\n /** Свойства передаваемые в компонент `CSSTransition` */\n TransitionProps?: Partial<CSSTransitionProps<HTMLElement>>;\n /** Вариант основного цвета всплывающего окна */\n color?: 'regular' | 'danger';\n}\n\nexport interface AnchorOrigin {\n horizontal: 'left' | 'center' | 'right';\n vertical: 'top' | 'bottom';\n}\n\nconst SWIPE_Y_DISTANCE = 20;\n\nconst Snackbar = React.forwardRef<HTMLDivElement, Props>((props, ref) => {\n const {\n open,\n anchorOrigin: { vertical, horizontal } = { vertical: 'bottom', horizontal: 'center' },\n autoHideDuration,\n resumeHideDuration,\n icon,\n action,\n message,\n withCopy = true,\n children,\n className,\n ClickAwayListenerProps: clickAwayListenerProps,\n ContentProps,\n disableWindowBlurListener = false,\n onClose,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n TransitionProps,\n color,\n ...other\n } = props;\n\n const timeout = TransitionProps?.timeout || {\n enter: IN,\n exit: OUT,\n };\n const onEnter = TransitionProps?.onEnter;\n const onExited = TransitionProps?.onExited;\n\n const contentRef = React.useRef<HTMLDivElement>(null);\n const timerAutoHide = React.useRef<any>(undefined);\n const [exited, setExited] = React.useState(true);\n const [dragY, setDragY] = React.useState(0);\n\n // Timer that controls delay before snackbar auto hides\n const setAutoHideTimer = React.useCallback(\n (autoHideDurationParam?: number) => {\n const autoHideDurationBefore =\n autoHideDurationParam != null ? autoHideDurationParam : autoHideDuration;\n\n if (!open || !onClose || autoHideDurationBefore == null) {\n return;\n }\n\n clearTimeout(timerAutoHide.current);\n timerAutoHide.current = setTimeout(() => {\n const autoHideDurationAfter =\n autoHideDurationParam != null ? autoHideDurationParam : autoHideDuration;\n if (!onClose || autoHideDurationAfter == null) {\n return;\n }\n onClose(null, 'timeout');\n }, autoHideDurationBefore);\n },\n [autoHideDuration, onClose, open],\n );\n\n React.useEffect(() => {\n if (open) {\n setAutoHideTimer();\n }\n\n return () => {\n clearTimeout(timerAutoHide.current);\n };\n }, [open, setAutoHideTimer]);\n\n // Pause the timer when the user is interacting with the Snackbar\n // or when the user hide the window.\n const handlePause = React.useCallback(() => {\n clearTimeout(timerAutoHide.current);\n }, []);\n\n // Restart the timer when the user is no longer interacting with the Snackbar\n // or when the window is shown back.\n const handleResume = React.useCallback(() => {\n if (autoHideDuration != null) {\n if (resumeHideDuration != null) {\n setAutoHideTimer(resumeHideDuration);\n return;\n }\n setAutoHideTimer(autoHideDuration * 0.5);\n }\n }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);\n\n const handlePointerEnter = React.useCallback((event: React.PointerEvent<HTMLDivElement>) => {\n if (event.pointerType !== 'touch') {\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n handlePause();\n }\n }, [onMouseEnter, handlePause]);\n\n const handlePointerLeave = React.useCallback((event: React.PointerEvent<HTMLDivElement>) => {\n if (event.pointerType !== 'touch') {\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n handleResume();\n }\n }, [onMouseLeave, handleResume]);\n\n const handleTouchStart = React.useCallback((event: React.TouchEvent<HTMLDivElement>) => {\n if (onTouchStart) {\n onTouchStart(event);\n }\n handlePause();\n\n const startDragY = event.changedTouches?.[0]?.clientY;\n\n if (startDragY) {\n setDragY(startDragY);\n }\n }, [onTouchStart, handlePause]);\n\n const handleTouchEnd = React.useCallback((event: React.TouchEvent<HTMLDivElement>) => {\n if (onTouchEnd) {\n onTouchEnd(event);\n }\n handleResume();\n\n const endDragY = event.changedTouches?.[0]?.clientY;\n\n if (endDragY && Math.abs(dragY - endDragY) > SWIPE_Y_DISTANCE) {\n onClose?.(event, 'swipe');\n }\n }, [dragY, onTouchEnd, handleResume, onClose]);\n\n const handleClickAway = React.useCallback((event: MouseEvent | TouchEvent) => {\n if (onClose) {\n onClose(event, 'clickaway');\n }\n }, [onClose]);\n\n const handleEnter = React.useCallback((node: HTMLElement, isAppearing: boolean) => {\n setExited(false);\n onEnter?.(isAppearing);\n }, [onEnter]);\n\n const handleExited = React.useCallback(() => {\n setExited(true);\n onExited?.();\n }, [onExited]);\n\n React.useEffect(() => {\n if (!disableWindowBlurListener && open) {\n window.addEventListener('focus', handleResume);\n window.addEventListener('blur', handlePause);\n\n return () => {\n window.removeEventListener('focus', handleResume);\n window.removeEventListener('blur', handlePause);\n };\n }\n\n return undefined;\n }, [disableWindowBlurListener, handleResume, handlePause, open]);\n\n if (!open && exited) {\n return null;\n }\n\n const rootClassName = classnames(\n `anchor-origin-${vertical}-${horizontal}`,\n className,\n );\n const contentClassName = classnames(\n transitionSlide({ marginThreshold: 'medium', direction: vertical === 'top' ? 'down' : 'up' }),\n slide,\n ContentProps?.className,\n );\n\n return (\n <ClickAwayListener onClickAway={handleClickAway} {...clickAwayListenerProps}>\n <Root\n className={rootClassName}\n onPointerEnter={handlePointerEnter}\n onPointerLeave={handlePointerLeave}\n onTouchStart={handleTouchStart}\n onTouchEnd={handleTouchEnd}\n ref={ref}\n {...other}\n >\n <CSSTransition\n appear={true}\n in={open}\n timeout={timeout}\n classNames={transitionClassNames([transitionSlideParent, transitionClassName])}\n {...TransitionProps}\n onEnter={handleEnter as any}\n onExited={handleExited}\n nodeRef={contentRef}\n >\n {children || (\n <SnackbarContent\n ref={contentRef}\n message={message}\n icon={icon}\n action={action}\n withCopy={withCopy}\n color={color}\n {...ContentProps}\n className={contentClassName}\n />\n )}\n </CSSTransition>\n </Root>\n </ClickAwayListener>\n );\n});\n\nexport default React.memo(Snackbar);\n"],"names":["SWIPE_Y_DISTANCE","Snackbar","React","props","ref","open","vertical","horizontal","autoHideDuration","resumeHideDuration","icon","action","message","withCopy","children","className","clickAwayListenerProps","ContentProps","disableWindowBlurListener","onClose","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","TransitionProps","color","other","timeout","IN","OUT","onEnter","onExited","contentRef","timerAutoHide","undefined","exited","setExited","dragY","setDragY","setAutoHideTimer","autoHideDurationParam","autoHideDurationBefore","clearTimeout","setTimeout","autoHideDurationAfter","handlePause","handleResume","handlePointerEnter","event","handlePointerLeave","handleTouchStart","_event_changedTouches_","startDragY","handleTouchEnd","endDragY","Math","handleClickAway","handleEnter","node","isAppearing","handleExited","window","rootClassName","classnames","contentClassName","transitionSlide","slide","ClickAwayListener","Root","CSSTransition","transitionClassNames","transitionSlideParent","transitionClassName","SnackbarContent"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from "./types.js";
|
|
2
|
-
const version = "3.34.
|
|
2
|
+
const version = "3.34.3";
|
|
3
3
|
export { default as Button } from "./Button/index.js";
|
|
4
4
|
export { default as ButtonAsync } from "./ButtonAsync/index.js";
|
|
5
5
|
export { default as MarketingButton } from "./MarketingButton/index.js";
|