@consta/uikit 5.25.1 → 5.27.0
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/FlatSelect/index.d.ts +1 -0
- package/FlatSelect/index.js +1 -0
- package/__internal__/src/components/Banner/Banner.d.ts +20 -8
- package/__internal__/src/components/Banner/Banner.js +1 -1
- package/__internal__/src/components/Banner/Banner.js.map +1 -1
- package/__internal__/src/components/Combobox/Combobox.js +1 -1
- package/__internal__/src/components/Combobox/Combobox.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenu.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenu.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevels/ContextMenuLevels.d.ts +2 -2
- package/__internal__/src/components/ContextMenu/ContextMenuLevels/ContextMenuLevels.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevels/ContextMenuLevels.js.map +1 -1
- package/__internal__/src/components/ContextMenu/helpers.d.ts +2 -2
- package/__internal__/src/components/ContextMenu/types.d.ts +5 -5
- package/__internal__/src/components/ContextMenu/types.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldButton/FieldButton.d.ts +1 -1
- package/__internal__/src/components/FieldComponents/FieldButton/FieldButton.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldClearButton/FieldClearButton.d.ts +1 -0
- package/__internal__/src/components/FieldComponents/FieldClearButton/FieldClearButton.js +1 -1
- package/__internal__/src/components/FieldComponents/FieldClearButton/FieldClearButton.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldWrapper/FieldWrapper.js +1 -1
- package/__internal__/src/components/FieldComponents/FieldWrapper/FieldWrapper.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldWrapper/types.d.ts +1 -0
- package/__internal__/src/components/FieldComponents/FieldWrapper/types.js.map +1 -1
- package/__internal__/src/components/FlatSelect/FlatSelect.css +9 -0
- package/__internal__/src/components/FlatSelect/FlatSelect.d.ts +4 -0
- package/__internal__/src/components/FlatSelect/FlatSelect.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelect.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectControlLayout/FlatSelectControlLayout.d.ts +16 -0
- package/__internal__/src/components/FlatSelect/FlatSelectControlLayout/FlatSelectControlLayout.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectControlLayout/FlatSelectControlLayout.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectControlLayout/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectControlLayout/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectControlLayout/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectCreateButton/FlatSelectCreateButton.css +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectCreateButton/FlatSelectCreateButton.d.ts +19 -0
- package/__internal__/src/components/FlatSelect/FlatSelectCreateButton/FlatSelectCreateButton.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectCreateButton/FlatSelectCreateButton.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectCreateButton/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectCreateButton/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectCreateButton/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectFooter/FlatSelectFooter.css +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectFooter/FlatSelectFooter.d.ts +12 -0
- package/__internal__/src/components/FlatSelect/FlatSelectFooter/FlatSelectFooter.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectFooter/FlatSelectFooter.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectFooter/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectFooter/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectFooter/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectGroupLabel/FlatSelectGroupLabel.d.ts +10 -0
- package/__internal__/src/components/FlatSelect/FlatSelectGroupLabel/FlatSelectGroupLabel.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectGroupLabel/FlatSelectGroupLabel.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectGroupLabel/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectGroupLabel/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectGroupLabel/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItem/FlatSelectItem.css +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItem/FlatSelectItem.d.ts +17 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItem/FlatSelectItem.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItem/FlatSelectItem.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItem/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItem/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItem/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItemAll/FlatSelectItemAll.css +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItemAll/FlatSelectItemAll.d.ts +17 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItemAll/FlatSelectItemAll.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItemAll/FlatSelectItemAll.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItemAll/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItemAll/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectItemAll/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectList/FlatSelectList.css +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectList/FlatSelectList.d.ts +53 -0
- package/__internal__/src/components/FlatSelect/FlatSelectList/FlatSelectList.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectList/FlatSelectList.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectList/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectList/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectList/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectLoader/FlatSelectLoader.css +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectLoader/FlatSelectLoader.d.ts +3 -0
- package/__internal__/src/components/FlatSelect/FlatSelectLoader/FlatSelectLoader.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectLoader/FlatSelectLoader.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectLoader/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectLoader/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectLoader/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRenderItem/FlatSelectRenderItem.d.ts +24 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRenderItem/FlatSelectRenderItem.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRenderItem/FlatSelectRenderItem.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRenderItem/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRenderItem/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRenderItem/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.css +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.d.ts +14 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/index.js +2 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/defaultProps.d.ts +22 -0
- package/__internal__/src/components/FlatSelect/defaultProps.js +2 -0
- package/__internal__/src/components/FlatSelect/defaultProps.js.map +1 -0
- package/__internal__/src/components/FlatSelect/index.d.ts +2 -0
- package/__internal__/src/components/FlatSelect/index.js +2 -0
- package/__internal__/src/components/FlatSelect/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/types.d.ts +133 -0
- package/__internal__/src/components/FlatSelect/types.js +2 -0
- package/__internal__/src/components/FlatSelect/types.js.map +1 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/helpers.d.ts +4 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/helpers.js +2 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/helpers.js.map +1 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/index.js +2 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/useFlatSelect.d.ts +52 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/useFlatSelect.js +2 -0
- package/__internal__/src/components/FlatSelect/useFlatSelect/useFlatSelect.js.map +1 -0
- package/__internal__/src/components/FlatSelect/useRenderItem/index.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/useRenderItem/index.js +2 -0
- package/__internal__/src/components/FlatSelect/useRenderItem/index.js.map +1 -0
- package/__internal__/src/components/FlatSelect/useRenderItem/useRenderItem.d.ts +10 -0
- package/__internal__/src/components/FlatSelect/useRenderItem/useRenderItem.js +2 -0
- package/__internal__/src/components/FlatSelect/useRenderItem/useRenderItem.js.map +1 -0
- package/__internal__/src/components/ListCanary/ListBox/ListBox.js +1 -1
- package/__internal__/src/components/ListCanary/ListBox/ListBox.js.map +1 -1
- package/__internal__/src/components/ListCanary/types.d.ts +1 -0
- package/__internal__/src/components/ListCanary/types.js.map +1 -1
- package/__internal__/src/components/Modal/Modal.css +1 -1
- package/__internal__/src/components/Modal/Modal.d.ts +8 -13
- package/__internal__/src/components/Modal/Modal.js +1 -1
- package/__internal__/src/components/Modal/Modal.js.map +1 -1
- package/__internal__/src/components/Modal/ModalHeader/ModalHeader.css +1 -0
- package/__internal__/src/components/Modal/ModalHeader/ModalHeader.d.ts +14 -0
- package/__internal__/src/components/Modal/ModalHeader/ModalHeader.js +2 -0
- package/__internal__/src/components/Modal/ModalHeader/ModalHeader.js.map +1 -0
- package/__internal__/src/components/Modal/ModalHeader/index.d.ts +1 -0
- package/__internal__/src/components/Modal/ModalHeader/index.js +2 -0
- package/__internal__/src/components/Modal/ModalHeader/index.js.map +1 -0
- package/__internal__/src/components/Modal/ModalLayout/ModalLayout.css +5 -0
- package/__internal__/src/components/Modal/ModalLayout/ModalLayout.d.ts +10 -0
- package/__internal__/src/components/Modal/ModalLayout/ModalLayout.js +2 -0
- package/__internal__/src/components/Modal/ModalLayout/ModalLayout.js.map +1 -0
- package/__internal__/src/components/Modal/ModalLayout/index.d.ts +1 -0
- package/__internal__/src/components/Modal/ModalLayout/index.js +2 -0
- package/__internal__/src/components/Modal/ModalLayout/index.js.map +1 -0
- package/__internal__/src/components/Modal/index.d.ts +3 -0
- package/__internal__/src/components/Modal/index.js +1 -1
- package/__internal__/src/components/Modal/index.js.map +1 -1
- package/__internal__/src/components/Modal/types.d.ts +23 -0
- package/__internal__/src/components/Modal/types.js +2 -0
- package/__internal__/src/components/Modal/types.js.map +1 -0
- package/__internal__/src/components/Modal/useModal.d.ts +20 -0
- package/__internal__/src/components/Modal/useModal.js +2 -0
- package/__internal__/src/components/Modal/useModal.js.map +1 -0
- package/__internal__/src/components/Pagination/PaginationArrow/PaginationArrow.d.ts +1 -0
- package/__internal__/src/components/Pagination/PaginationArrow/PaginationArrow.js +1 -1
- package/__internal__/src/components/Pagination/PaginationArrow/PaginationArrow.js.map +1 -1
- package/__internal__/src/components/Popover/Popover.d.ts +2 -2
- package/__internal__/src/components/Popover/Popover.js.map +1 -1
- package/__internal__/src/components/PortalWithTheme/PortalWithTheme.js +1 -1
- package/__internal__/src/components/PortalWithTheme/PortalWithTheme.js.map +1 -1
- package/__internal__/src/components/RadioGroup/RadioGroup.js +1 -1
- package/__internal__/src/components/RadioGroup/RadioGroup.js.map +1 -1
- package/__internal__/src/components/SelectCanary/helpers.d.ts +1 -1
- package/__internal__/src/components/Sidebar/Sidebar.css +1 -1
- package/__internal__/src/components/Sidebar/Sidebar.d.ts +1 -36
- package/__internal__/src/components/Sidebar/Sidebar.js +1 -1
- package/__internal__/src/components/Sidebar/Sidebar.js.map +1 -1
- package/__internal__/src/components/Sidebar/index.d.ts +1 -0
- package/__internal__/src/components/Sidebar/index.js +1 -1
- package/__internal__/src/components/Sidebar/index.js.map +1 -1
- package/__internal__/src/components/Sidebar/types.d.ts +47 -0
- package/__internal__/src/components/Sidebar/types.js +2 -0
- package/__internal__/src/components/Sidebar/types.js.map +1 -0
- package/__internal__/src/components/Sidebar/useAnimateTimeout.d.ts +2 -0
- package/__internal__/src/components/Sidebar/useAnimateTimeout.js +2 -0
- package/__internal__/src/components/Sidebar/useAnimateTimeout.js.map +1 -0
- package/__internal__/src/components/ThemeToggler/helpers.d.ts +1 -1
- package/__internal__/src/components/ThemeToggler/types.d.ts +1 -1
- package/__internal__/src/components/ThemeToggler/types.js.map +1 -1
- package/__internal__/src/components/Tooltip/types.d.ts +1 -1
- package/__internal__/src/components/Tooltip/types.js.map +1 -1
- package/__internal__/src/components/TooltipDeprecated/TooltipDeprecated.d.ts +1 -1
- package/__internal__/src/components/TooltipDeprecated/TooltipDeprecated.js.map +1 -1
- package/__internal__/src/hooks/useComponentSize/useComponentSize.d.ts +1 -1
- package/__internal__/src/hooks/useComponentSize/useComponentSize.js +1 -1
- package/__internal__/src/hooks/useComponentSize/useComponentSize.js.map +1 -1
- package/__internal__/src/mixs/MixFlex/MixFlex.d.ts +2 -2
- package/__internal__/src/mixs/MixFlex/MixFlex.js.map +1 -1
- package/__internal__/src/mixs/MixSpace/MixSpace.d.ts +1 -1
- package/__internal__/src/mixs/MixSpace/MixSpace.js +1 -1
- package/__internal__/src/mixs/MixSpace/MixSpace.js.map +1 -1
- package/__internal__/src/utils/state/useClickOutsideAtom/index.d.ts +1 -0
- package/__internal__/src/utils/state/useClickOutsideAtom/index.js +2 -0
- package/__internal__/src/utils/state/useClickOutsideAtom/index.js.map +1 -0
- package/__internal__/src/utils/state/useClickOutsideAtom/useClickOutside.d.ts +9 -0
- package/__internal__/src/utils/state/useClickOutsideAtom/useClickOutside.js +2 -0
- package/__internal__/src/utils/state/useClickOutsideAtom/useClickOutside.js.map +1 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/getElementSize.d.ts +4 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/getElementSize.js +2 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/getElementSize.js.map +1 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/index.d.ts +3 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/index.js +2 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/index.js.map +1 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/types.d.ts +4 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/types.js +2 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/types.js.map +1 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/useComponentSize.d.ts +2 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/useComponentSize.js +2 -0
- package/__internal__/src/utils/state/useComponentSizeAtom/useComponentSize.js.map +1 -0
- package/__internal__/src/utils/state/useElementAtomEventListener/index.d.ts +1 -0
- package/__internal__/src/utils/state/useElementAtomEventListener/index.js +2 -0
- package/__internal__/src/utils/state/useElementAtomEventListener/index.js.map +1 -0
- package/__internal__/src/utils/state/useElementAtomEventListener/useElementAtomEventListener.d.ts +2 -0
- package/__internal__/src/utils/state/useElementAtomEventListener/useElementAtomEventListener.js +2 -0
- package/__internal__/src/utils/state/useElementAtomEventListener/useElementAtomEventListener.js.map +1 -0
- package/__internal__/src/utils/state/useKeysAtom/index.d.ts +1 -0
- package/__internal__/src/utils/state/useKeysAtom/index.js +2 -0
- package/__internal__/src/utils/state/useKeysAtom/index.js.map +1 -0
- package/__internal__/src/utils/state/useKeysAtom/useKeysAtom.d.ts +14 -0
- package/__internal__/src/utils/state/useKeysAtom/useKeysAtom.js +2 -0
- package/__internal__/src/utils/state/useKeysAtom/useKeysAtom.js.map +1 -0
- package/__internal__/src/utils/state/useRefAtom/useRefAtom.d.ts +1 -1
- package/__internal__/src/utils/state/useRefAtom/useRefAtom.js.map +1 -1
- package/__internal__/src/utils/state/useResizeObservedAtom/index.d.ts +1 -0
- package/__internal__/src/utils/state/useResizeObservedAtom/index.js +2 -0
- package/__internal__/src/utils/state/useResizeObservedAtom/index.js.map +1 -0
- package/__internal__/src/utils/state/useResizeObservedAtom/useResizeObservedAtom.d.ts +2 -0
- package/__internal__/src/utils/state/useResizeObservedAtom/useResizeObservedAtom.js +2 -0
- package/__internal__/src/utils/state/useResizeObservedAtom/useResizeObservedAtom.js.map +1 -0
- package/__internal__/src/utils/state/withCtx/withCtx.js +1 -1
- package/__internal__/src/utils/state/withCtx/withCtx.js.map +1 -1
- package/package.json +3 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","form","label","caption","icon","orientation","disabled","className","children"];import"./PaginationArrow.css";import React,{forwardRef}from"react";import{Button}from"../../Button";import{Text}from"../../Text";import{cnMixFlex}from"../../../mixs/MixFlex";import{cn}from"../../../utils/bem";import{paginationPropFormDefault,paginationPropSizeDefault}from"../types";var cnPaginationArrow=cn("PaginationArrow");export var PaginationArrow=forwardRef(function(a,b){var c=a.size,d=void 0===c?paginationPropSizeDefault:c,e=a.form,f=void 0===e?paginationPropFormDefault:e,g=a.label,h=a.caption,i=a.icon,j=a.orientation,k=a.disabled,l=a.className,m=a.children,n=_objectWithoutProperties(a,_excluded);return g?React.createElement("div",{className:cnPaginationArrow("Wrapper",[cnMixFlex({flex:"inline-flex",align:"start"===j?"flex-end":"flex-start",direction:"column"})])},React.createElement(Button,Object.assign({size:d,form:f,className:cnPaginationArrow(null,[l]),ref:b,view:"clear",disabled:k,label:g,iconLeft:"start"===j?i:void 0,iconRight:"end"===j?i:void 0},n)),h&&React.createElement(Text,{view:"ghost",size:"xs",lineHeight:"m",className:cnPaginationArrow("Caption",{size:d,orientation:j})},h)):React.createElement(Button,Object.assign({size:d,form:f,disabled:k,onlyIcon:!0,view:"clear",iconLeft:i,className:cnPaginationArrow(null,[l]),ref:b},n))});
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","form","label","caption","icon","orientation","disabled","className","children"];import"./PaginationArrow.css";import React,{forwardRef}from"react";import{Button}from"../../Button";import{Text}from"../../Text";import{cnMixFlex}from"../../../mixs/MixFlex";import{cn}from"../../../utils/bem";import{paginationPropFormDefault,paginationPropSizeDefault}from"../types";export var cnPaginationArrow=cn("PaginationArrow");export var PaginationArrow=forwardRef(function(a,b){var c=a.size,d=void 0===c?paginationPropSizeDefault:c,e=a.form,f=void 0===e?paginationPropFormDefault:e,g=a.label,h=a.caption,i=a.icon,j=a.orientation,k=a.disabled,l=a.className,m=a.children,n=_objectWithoutProperties(a,_excluded);return g?React.createElement("div",{className:cnPaginationArrow("Wrapper",[cnMixFlex({flex:"inline-flex",align:"start"===j?"flex-end":"flex-start",direction:"column"})])},React.createElement(Button,Object.assign({size:d,form:f,className:cnPaginationArrow(null,[l]),ref:b,view:"clear",disabled:k,label:g,iconLeft:"start"===j?i:void 0,iconRight:"end"===j?i:void 0},n)),h&&React.createElement(Text,{view:"ghost",size:"xs",lineHeight:"m",className:cnPaginationArrow("Caption",{size:d,orientation:j})},h)):React.createElement(Button,Object.assign({size:d,form:f,disabled:k,onlyIcon:!0,view:"clear",iconLeft:i,className:cnPaginationArrow(null,[l]),ref:b},n))});
|
|
2
2
|
//# sourceMappingURL=PaginationArrow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaginationArrow.js","names":["React","forwardRef","Button","Text","cnMixFlex","cn","paginationPropFormDefault","paginationPropSizeDefault","cnPaginationArrow","PaginationArrow","props","ref","size","form","label","caption","icon","orientation","disabled","className","children","otherProps","flex","align","direction"],"sources":["../../../../../../src/components/Pagination/PaginationArrow/PaginationArrow.tsx"],"sourcesContent":["import './PaginationArrow.css';\n\nimport React, { forwardRef } from 'react';\n\nimport { Button } from '##/components/Button';\nimport { Text } from '##/components/Text';\nimport { cnMixFlex } from '##/mixs/MixFlex';\nimport { cn } from '##/utils/bem';\n\nimport {\n PaginationArrowProps,\n paginationPropFormDefault,\n paginationPropSizeDefault,\n} from '../types';\n\
|
|
1
|
+
{"version":3,"file":"PaginationArrow.js","names":["React","forwardRef","Button","Text","cnMixFlex","cn","paginationPropFormDefault","paginationPropSizeDefault","cnPaginationArrow","PaginationArrow","props","ref","size","form","label","caption","icon","orientation","disabled","className","children","otherProps","flex","align","direction"],"sources":["../../../../../../src/components/Pagination/PaginationArrow/PaginationArrow.tsx"],"sourcesContent":["import './PaginationArrow.css';\n\nimport React, { forwardRef } from 'react';\n\nimport { Button } from '##/components/Button';\nimport { Text } from '##/components/Text';\nimport { cnMixFlex } from '##/mixs/MixFlex';\nimport { cn } from '##/utils/bem';\n\nimport {\n PaginationArrowProps,\n paginationPropFormDefault,\n paginationPropSizeDefault,\n} from '../types';\n\nexport const cnPaginationArrow = cn('PaginationArrow');\n\nexport const PaginationArrow = forwardRef<\n HTMLButtonElement,\n PaginationArrowProps\n>((props, ref) => {\n const {\n size = paginationPropSizeDefault,\n form = paginationPropFormDefault,\n label,\n caption,\n icon,\n orientation,\n disabled,\n className,\n children,\n ...otherProps\n } = props;\n\n if (label) {\n return (\n <div\n className={cnPaginationArrow('Wrapper', [\n cnMixFlex({\n flex: 'inline-flex',\n align: orientation === 'start' ? 'flex-end' : 'flex-start',\n direction: 'column',\n }),\n ])}\n >\n <Button\n size={size}\n form={form}\n className={cnPaginationArrow(null, [className])}\n ref={ref}\n view=\"clear\"\n disabled={disabled}\n label={label}\n iconLeft={orientation === 'start' ? icon : undefined}\n iconRight={orientation === 'end' ? icon : undefined}\n {...otherProps}\n />\n {caption && (\n <Text\n view=\"ghost\"\n size=\"xs\"\n lineHeight=\"m\"\n className={cnPaginationArrow('Caption', { size, orientation })}\n >\n {caption}\n </Text>\n )}\n </div>\n );\n }\n\n return (\n <Button\n size={size}\n form={form}\n disabled={disabled}\n onlyIcon\n view=\"clear\"\n iconLeft={icon}\n className={cnPaginationArrow(null, [className])}\n ref={ref}\n {...otherProps}\n />\n );\n});\n"],"mappings":"4LAAA,8BAEA,MAAOA,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,MAAT,oBACA,OAASC,IAAT,kBACA,OAASC,SAAT,6BACA,OAASC,EAAT,0BAEA,OAEEC,yBAFF,CAGEC,yBAHF,gBAMA,MAAO,IAAMC,kBAAiB,CAAGH,EAAE,CAAC,iBAAD,CAA5B,CAEP,MAAO,IAAMI,gBAAe,CAAGR,UAAU,CAGvC,SAACS,CAAD,CAAQC,CAAR,CAAgB,CAChB,MAWID,CAXJ,CACEE,IADF,CACEA,CADF,YACSL,yBADT,KAWIG,CAXJ,CAEEG,IAFF,CAEEA,CAFF,YAESP,yBAFT,GAGEQ,CAHF,CAWIJ,CAXJ,CAGEI,KAHF,CAIEC,CAJF,CAWIL,CAXJ,CAIEK,OAJF,CAKEC,CALF,CAWIN,CAXJ,CAKEM,IALF,CAMEC,CANF,CAWIP,CAXJ,CAMEO,WANF,CAOEC,CAPF,CAWIR,CAXJ,CAOEQ,QAPF,CAQEC,CARF,CAWIT,CAXJ,CAQES,SARF,CASEC,CATF,CAWIV,CAXJ,CASEU,QATF,CAUKC,CAVL,0BAWIX,CAXJ,YADgB,MAcZI,EAdY,CAgBZ,2BACE,SAAS,CAAEN,iBAAiB,CAAC,SAAD,CAAY,CACtCJ,SAAS,CAAC,CACRkB,IAAI,CAAE,aADE,CAERC,KAAK,CAAkB,OAAhB,GAAAN,CAAW,CAAe,UAAf,CAA4B,YAFtC,CAGRO,SAAS,CAAE,QAHH,CAAD,CAD6B,CAAZ,CAD9B,EASE,oBAAC,MAAD,gBACE,IAAI,CAAEZ,CADR,CAEE,IAAI,CAAEC,CAFR,CAGE,SAAS,CAAEL,iBAAiB,CAAC,IAAD,CAAO,CAACW,CAAD,CAAP,CAH9B,CAIE,GAAG,CAAER,CAJP,CAKE,IAAI,CAAC,OALP,CAME,QAAQ,CAAEO,CANZ,CAOE,KAAK,CAAEJ,CAPT,CAQE,QAAQ,CAAkB,OAAhB,GAAAG,CAAW,CAAeD,CAAf,OARvB,CASE,SAAS,CAAkB,KAAhB,GAAAC,CAAW,CAAaD,CAAb,OATxB,EAUMK,CAVN,EATF,CAqBGN,CAAO,EACN,oBAAC,IAAD,EACE,IAAI,CAAC,OADP,CAEE,IAAI,CAAC,IAFP,CAGE,UAAU,CAAC,GAHb,CAIE,SAAS,CAAEP,iBAAiB,CAAC,SAAD,CAAY,CAAEI,IAAI,CAAJA,CAAF,CAAQK,WAAW,CAAXA,CAAR,CAAZ,CAJ9B,EAMGF,CANH,CAtBJ,CAhBY,CAoDd,oBAAC,MAAD,gBACE,IAAI,CAAEH,CADR,CAEE,IAAI,CAAEC,CAFR,CAGE,QAAQ,CAAEK,CAHZ,CAIE,QAAQ,GAJV,CAKE,IAAI,CAAC,OALP,CAME,QAAQ,CAAEF,CANZ,CAOE,SAAS,CAAER,iBAAiB,CAAC,IAAD,CAAO,CAACW,CAAD,CAAP,CAP9B,CAQE,GAAG,CAAER,CARP,EASMU,CATN,EAYH,CAnEwC,CAAlC"}
|
|
@@ -29,11 +29,11 @@ type ChildrenRenderProp = (direction: Direction) => React.ReactNode;
|
|
|
29
29
|
export type PopoverProps = PropsWithJsxAttributes<{
|
|
30
30
|
direction?: Direction;
|
|
31
31
|
spareDirection?: Direction;
|
|
32
|
+
possibleDirections?: Direction[];
|
|
32
33
|
offset?: PopoverPropOffset;
|
|
33
34
|
arrowOffset?: number;
|
|
34
|
-
possibleDirections?: readonly Direction[];
|
|
35
35
|
isInteractive?: boolean;
|
|
36
|
-
children
|
|
36
|
+
children?: React.ReactNode | ChildrenRenderProp;
|
|
37
37
|
onClickOutside?: ClickOutsideHandler;
|
|
38
38
|
onSetDirection?: (direction: Direction) => void;
|
|
39
39
|
viewportRef?: React.RefObject<HTMLElement>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.js","names":["React","forwardRef","useEffect","useLayoutEffect","useMemo","PortalWithTheme","PortalWithThemeConsumer","useTheme","useComponentSize","useForkRef","cn","isRenderProp","isNumber","isString","getComputedPositionAndDirection","getPointPosition","getRenderPosition","usePopoverReposition","directionsStartCenter","directionsStartEdge","popoverPropOffset","directions","getOffset","ref","propOffset","current","cssVar","getComputedStyle","getPropertyValue","test","slice","length","fontSize","parseFloat","document","documentElement","rem","em","cnPopover","Popover","props","componentRef","children","direction","passedDirection","offset","arrowOffset","possibleDirections","isInteractive","onClickOutside","spareDirection","style","className","passedPosition","position","anchorRef","equalAnchorWidth","onSetDirection","viewportRef","container","window","body","otherProps","viewportElement","useRef","theme","useState","anchorClientRect","setAnchorClientRect","width","height","anchorSize","previousDirectionRef","bannedDirections","setBannedDirections","resetBannedDirections","state","updateAnchorClientRect","getBoundingClientRect","contentSize","viewportSize","clientWidth","clientHeight","x","left","y","top","isActive","scrollAnchorRef","onRequestReposition","includes","renderPosition","notVisible"],"sources":["../../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import './Popover.css';\n\nimport React, { forwardRef, useEffect, useLayoutEffect, useMemo } from 'react';\n\nimport {\n PortalWithTheme,\n PortalWithThemeConsumer,\n} from '##/components/PortalWithTheme';\nimport { useTheme } from '##/components/Theme/Theme';\nimport { ClickOutsideHandler } from '##/hooks/useClickOutside';\nimport { useComponentSize } from '##/hooks/useComponentSize';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cn } from '##/utils/bem';\nimport { isRenderProp } from '##/utils/isRenderProp';\nimport { isNumber, isString } from '##/utils/type-guards';\nimport { PropsWithJsxAttributes } from '##/utils/types/PropsWithJsxAttributes';\n\nimport {\n getComputedPositionAndDirection,\n getPointPosition,\n getRenderPosition,\n} from './helpers';\nimport { usePopoverReposition } from './usePopoverReposition';\n\n/**\n * Стороны упорядочены по приоритету:\n * Используется первая сторона, в которую смог вписаться поповер.\n */\nexport const directionsStartCenter = [\n 'downCenter',\n 'upCenter',\n\n 'downRight',\n 'downLeft',\n 'upRight',\n 'upLeft',\n\n 'leftUp',\n 'leftCenter',\n 'leftDown',\n\n 'rightUp',\n 'rightCenter',\n 'rightDown',\n] as const;\n\nexport const directionsStartEdge = [\n 'downStartLeft',\n 'upStartLeft',\n\n 'downStartRight',\n 'upStartRight',\n\n 'leftStartUp',\n 'leftStartDown',\n\n 'rightStartUp',\n 'rightStartDown',\n] as const;\n\nexport const popoverPropOffset = [\n '3xs',\n '2xs',\n 'xs',\n 's',\n 'm',\n 'l',\n 'xl',\n '2xl',\n '3xl',\n '4xl',\n '5xl',\n '6xl',\n] as const;\nexport type PopoverPropOffset = typeof popoverPropOffset[number] | number;\n\nexport const directions = [...directionsStartCenter, ...directionsStartEdge];\n\nexport type Direction = typeof directions[number];\n\nexport type Position = { x: number; y: number } | undefined;\n\nexport type PositioningProps =\n | {\n anchorRef: React.RefObject<HTMLElement>;\n equalAnchorWidth?: boolean;\n position?: never;\n }\n | {\n anchorRef?: never;\n equalAnchorWidth?: never;\n position: Position;\n };\n\ntype ChildrenRenderProp = (direction: Direction) => React.ReactNode;\n\nexport type PopoverProps = PropsWithJsxAttributes<\n {\n direction?: Direction;\n spareDirection?: Direction;\n offset?: PopoverPropOffset;\n arrowOffset?: number;\n possibleDirections?: readonly Direction[];\n isInteractive?: boolean;\n children: React.ReactNode | ChildrenRenderProp;\n onClickOutside?: ClickOutsideHandler;\n onSetDirection?: (direction: Direction) => void;\n viewportRef?: React.RefObject<HTMLElement>;\n container?: Element;\n } & PositioningProps\n>;\n\nexport type Props = PopoverProps; // удалить при мажоре\n\nconst getOffset = (\n ref: React.RefObject<HTMLDivElement>,\n propOffset: PopoverPropOffset,\n) => {\n if (isNumber(propOffset)) {\n return propOffset;\n }\n\n if (isString(propOffset) && ref.current) {\n const cssVar = getComputedStyle(ref.current).getPropertyValue(\n `--space-${propOffset}`,\n );\n\n if (cssVar && /px$/.test(cssVar)) {\n return Number(cssVar.slice(0, cssVar.length - 2));\n }\n\n if (cssVar && /rem$/.test(cssVar)) {\n const fontSize = parseFloat(\n getComputedStyle(document.documentElement).fontSize,\n );\n const rem = Number(cssVar.slice(0, cssVar.length - 3));\n\n return fontSize * rem;\n }\n\n if (cssVar && /em$/.test(cssVar)) {\n const fontSize = parseFloat(getComputedStyle(ref.current).fontSize);\n const em = Number(cssVar.slice(0, cssVar.length - 2));\n\n return fontSize * em;\n }\n\n return 0;\n }\n\n return 0;\n};\n\nconst cnPopover = cn('Popover');\n\nexport const Popover = forwardRef<HTMLDivElement, PopoverProps>(\n (props, componentRef) => {\n const {\n children,\n direction: passedDirection = 'upCenter',\n offset: propOffset = 0,\n arrowOffset,\n possibleDirections = directions,\n isInteractive = true,\n onClickOutside,\n spareDirection = 'downStartLeft',\n style,\n className,\n position: passedPosition,\n anchorRef,\n equalAnchorWidth,\n onSetDirection,\n viewportRef,\n container = window.document.body,\n ...otherProps\n } = props;\n\n const viewportElement = viewportRef?.current || document.documentElement;\n\n const ref = React.useRef<HTMLDivElement>(null);\n const { theme } = useTheme();\n\n const [anchorClientRect, setAnchorClientRect] = React.useState<\n DOMRect | undefined\n >();\n const { width, height } = useComponentSize(ref);\n const anchorSize = useComponentSize(anchorRef || { current: null });\n const previousDirectionRef = React.useRef<Direction | null>(null);\n const [bannedDirections, setBannedDirections] = React.useState<\n readonly Direction[]\n >([]);\n\n const resetBannedDirections = () => {\n setBannedDirections((state) => (state.length ? [] : state));\n previousDirectionRef.current = null;\n };\n\n const updateAnchorClientRect = () =>\n setAnchorClientRect(anchorRef?.current?.getBoundingClientRect());\n\n const offset = useMemo(\n () => getOffset(ref, propOffset),\n [propOffset, Boolean(ref.current)],\n );\n\n const { position, direction } = getComputedPositionAndDirection({\n contentSize: { width, height },\n viewportSize: {\n // Размер вьюпорта без скроллбаров\n width: viewportElement.clientWidth,\n height: viewportElement.clientHeight,\n },\n arrowOffset,\n offset,\n direction: passedDirection,\n possibleDirections,\n bannedDirections,\n position: getPointPosition(\n viewportElement,\n anchorClientRect\n ? { x: anchorClientRect.left, y: anchorClientRect.top }\n : passedPosition,\n !!viewportRef?.current,\n ),\n anchorSize,\n spareDirection,\n });\n\n useEffect(() => onSetDirection?.(direction), [direction]);\n\n useEffect(updateAnchorClientRect, [anchorSize]);\n\n usePopoverReposition({\n isActive: true,\n scrollAnchorRef: anchorRef || { current: null },\n onRequestReposition: () => {\n resetBannedDirections();\n updateAnchorClientRect();\n },\n });\n\n /**\n * Может возникнуть ситуация, когда перерасчет поповера всегда будет выдавать 2 направления\n * и бесконечно зацикливать себя. Для избежания таких кейсов мы запоминаем стороны,\n * которые не подошли, чтобы не возвращаться к ним и предотвратить бесконечный ререндер.\n * См. PopoverBannedPositionsStory\n */\n\n useLayoutEffect(() => {\n if (previousDirectionRef.current !== direction) {\n if (\n previousDirectionRef.current &&\n !bannedDirections.includes(previousDirectionRef.current) &&\n !bannedDirections.includes(direction) &&\n direction !== spareDirection\n ) {\n setBannedDirections((state) =>\n previousDirectionRef.current\n ? [...state, previousDirectionRef.current]\n : state,\n );\n }\n previousDirectionRef.current = direction;\n }\n }, [direction]);\n\n // Сбрасываем при любом изменении пропсов, чтобы заново начать перебор направлений\n // Главное не сбрасывать при изменении размеров поповера, т.к. именно оно может вызвать бесконечный перебор\n\n useLayoutEffect(resetBannedDirections, [props]);\n\n const renderPosition = getRenderPosition(\n viewportElement,\n position,\n !!viewportRef?.current,\n width,\n height,\n );\n\n const notVisible = !renderPosition || !height || !width;\n\n return (\n <PortalWithTheme\n {...otherProps}\n preset={theme}\n className={cnPopover({ direction, notVisible }, [className])}\n container={container}\n ref={useForkRef([ref, componentRef])}\n style={{\n ...style,\n ...(notVisible\n ? {}\n : {\n ['--popover-left' as string]: `${renderPosition.x}px`,\n ['--popover-top' as string]: `${renderPosition.y}px`,\n [`--popover-width` as string]: equalAnchorWidth\n ? `${anchorSize.width}px`\n : undefined,\n [`--popover-pointer-events` as string]: isInteractive\n ? undefined\n : 'none',\n [`--popover-visibility` as string]: position\n ? undefined\n : 'hidden',\n }),\n }}\n >\n <PortalWithThemeConsumer\n onClickOutside={onClickOutside}\n ignoreClicksInsideRefs={[ref, anchorRef || { current: null }]}\n >\n {isRenderProp(children) ? children(direction) : children}\n </PortalWithThemeConsumer>\n </PortalWithTheme>\n );\n },\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Popover.js","names":["React","forwardRef","useEffect","useLayoutEffect","useMemo","PortalWithTheme","PortalWithThemeConsumer","useTheme","useComponentSize","useForkRef","cn","isRenderProp","isNumber","isString","getComputedPositionAndDirection","getPointPosition","getRenderPosition","usePopoverReposition","directionsStartCenter","directionsStartEdge","popoverPropOffset","directions","getOffset","ref","propOffset","current","cssVar","getComputedStyle","getPropertyValue","test","slice","length","fontSize","parseFloat","document","documentElement","rem","em","cnPopover","Popover","props","componentRef","children","direction","passedDirection","offset","arrowOffset","possibleDirections","isInteractive","onClickOutside","spareDirection","style","className","passedPosition","position","anchorRef","equalAnchorWidth","onSetDirection","viewportRef","container","window","body","otherProps","viewportElement","useRef","theme","useState","anchorClientRect","setAnchorClientRect","width","height","anchorSize","previousDirectionRef","bannedDirections","setBannedDirections","resetBannedDirections","state","updateAnchorClientRect","getBoundingClientRect","contentSize","viewportSize","clientWidth","clientHeight","x","left","y","top","isActive","scrollAnchorRef","onRequestReposition","includes","renderPosition","notVisible"],"sources":["../../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import './Popover.css';\n\nimport React, { forwardRef, useEffect, useLayoutEffect, useMemo } from 'react';\n\nimport {\n PortalWithTheme,\n PortalWithThemeConsumer,\n} from '##/components/PortalWithTheme';\nimport { useTheme } from '##/components/Theme/Theme';\nimport { ClickOutsideHandler } from '##/hooks/useClickOutside';\nimport { useComponentSize } from '##/hooks/useComponentSize';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cn } from '##/utils/bem';\nimport { isRenderProp } from '##/utils/isRenderProp';\nimport { isNumber, isString } from '##/utils/type-guards';\nimport { PropsWithJsxAttributes } from '##/utils/types/PropsWithJsxAttributes';\n\nimport {\n getComputedPositionAndDirection,\n getPointPosition,\n getRenderPosition,\n} from './helpers';\nimport { usePopoverReposition } from './usePopoverReposition';\n\n/**\n * Стороны упорядочены по приоритету:\n * Используется первая сторона, в которую смог вписаться поповер.\n */\nexport const directionsStartCenter = [\n 'downCenter',\n 'upCenter',\n\n 'downRight',\n 'downLeft',\n 'upRight',\n 'upLeft',\n\n 'leftUp',\n 'leftCenter',\n 'leftDown',\n\n 'rightUp',\n 'rightCenter',\n 'rightDown',\n] as const;\n\nexport const directionsStartEdge = [\n 'downStartLeft',\n 'upStartLeft',\n\n 'downStartRight',\n 'upStartRight',\n\n 'leftStartUp',\n 'leftStartDown',\n\n 'rightStartUp',\n 'rightStartDown',\n] as const;\n\nexport const popoverPropOffset = [\n '3xs',\n '2xs',\n 'xs',\n 's',\n 'm',\n 'l',\n 'xl',\n '2xl',\n '3xl',\n '4xl',\n '5xl',\n '6xl',\n] as const;\nexport type PopoverPropOffset = typeof popoverPropOffset[number] | number;\n\nexport const directions = [...directionsStartCenter, ...directionsStartEdge];\n\nexport type Direction = typeof directions[number];\n\nexport type Position = { x: number; y: number } | undefined;\n\nexport type PositioningProps =\n | {\n anchorRef: React.RefObject<HTMLElement>;\n equalAnchorWidth?: boolean;\n position?: never;\n }\n | {\n anchorRef?: never;\n equalAnchorWidth?: never;\n position: Position;\n };\n\ntype ChildrenRenderProp = (direction: Direction) => React.ReactNode;\n\nexport type PopoverProps = PropsWithJsxAttributes<\n {\n direction?: Direction;\n spareDirection?: Direction;\n possibleDirections?: Direction[];\n offset?: PopoverPropOffset;\n arrowOffset?: number;\n isInteractive?: boolean;\n children?: React.ReactNode | ChildrenRenderProp;\n onClickOutside?: ClickOutsideHandler;\n onSetDirection?: (direction: Direction) => void;\n viewportRef?: React.RefObject<HTMLElement>;\n container?: Element;\n } & PositioningProps\n>;\n\nexport type Props = PopoverProps; // удалить при мажоре\n\nconst getOffset = (\n ref: React.RefObject<HTMLDivElement>,\n propOffset: PopoverPropOffset,\n) => {\n if (isNumber(propOffset)) {\n return propOffset;\n }\n\n if (isString(propOffset) && ref.current) {\n const cssVar = getComputedStyle(ref.current).getPropertyValue(\n `--space-${propOffset}`,\n );\n\n if (cssVar && /px$/.test(cssVar)) {\n return Number(cssVar.slice(0, cssVar.length - 2));\n }\n\n if (cssVar && /rem$/.test(cssVar)) {\n const fontSize = parseFloat(\n getComputedStyle(document.documentElement).fontSize,\n );\n const rem = Number(cssVar.slice(0, cssVar.length - 3));\n\n return fontSize * rem;\n }\n\n if (cssVar && /em$/.test(cssVar)) {\n const fontSize = parseFloat(getComputedStyle(ref.current).fontSize);\n const em = Number(cssVar.slice(0, cssVar.length - 2));\n\n return fontSize * em;\n }\n\n return 0;\n }\n\n return 0;\n};\n\nconst cnPopover = cn('Popover');\n\nexport const Popover = forwardRef<HTMLDivElement, PopoverProps>(\n (props, componentRef) => {\n const {\n children,\n direction: passedDirection = 'upCenter',\n offset: propOffset = 0,\n arrowOffset,\n possibleDirections = directions,\n isInteractive = true,\n onClickOutside,\n spareDirection = 'downStartLeft',\n style,\n className,\n position: passedPosition,\n anchorRef,\n equalAnchorWidth,\n onSetDirection,\n viewportRef,\n container = window.document.body,\n ...otherProps\n } = props;\n\n const viewportElement = viewportRef?.current || document.documentElement;\n\n const ref = React.useRef<HTMLDivElement>(null);\n const { theme } = useTheme();\n\n const [anchorClientRect, setAnchorClientRect] = React.useState<\n DOMRect | undefined\n >();\n const { width, height } = useComponentSize(ref);\n const anchorSize = useComponentSize(anchorRef || { current: null });\n const previousDirectionRef = React.useRef<Direction | null>(null);\n const [bannedDirections, setBannedDirections] = React.useState<\n readonly Direction[]\n >([]);\n\n const resetBannedDirections = () => {\n setBannedDirections((state) => (state.length ? [] : state));\n previousDirectionRef.current = null;\n };\n\n const updateAnchorClientRect = () =>\n setAnchorClientRect(anchorRef?.current?.getBoundingClientRect());\n\n const offset = useMemo(\n () => getOffset(ref, propOffset),\n [propOffset, Boolean(ref.current)],\n );\n\n const { position, direction } = getComputedPositionAndDirection({\n contentSize: { width, height },\n viewportSize: {\n // Размер вьюпорта без скроллбаров\n width: viewportElement.clientWidth,\n height: viewportElement.clientHeight,\n },\n arrowOffset,\n offset,\n direction: passedDirection,\n possibleDirections,\n bannedDirections,\n position: getPointPosition(\n viewportElement,\n anchorClientRect\n ? { x: anchorClientRect.left, y: anchorClientRect.top }\n : passedPosition,\n !!viewportRef?.current,\n ),\n anchorSize,\n spareDirection,\n });\n\n useEffect(() => onSetDirection?.(direction), [direction]);\n\n useEffect(updateAnchorClientRect, [anchorSize]);\n\n usePopoverReposition({\n isActive: true,\n scrollAnchorRef: anchorRef || { current: null },\n onRequestReposition: () => {\n resetBannedDirections();\n updateAnchorClientRect();\n },\n });\n\n /**\n * Может возникнуть ситуация, когда перерасчет поповера всегда будет выдавать 2 направления\n * и бесконечно зацикливать себя. Для избежания таких кейсов мы запоминаем стороны,\n * которые не подошли, чтобы не возвращаться к ним и предотвратить бесконечный ререндер.\n * См. PopoverBannedPositionsStory\n */\n\n useLayoutEffect(() => {\n if (previousDirectionRef.current !== direction) {\n if (\n previousDirectionRef.current &&\n !bannedDirections.includes(previousDirectionRef.current) &&\n !bannedDirections.includes(direction) &&\n direction !== spareDirection\n ) {\n setBannedDirections((state) =>\n previousDirectionRef.current\n ? [...state, previousDirectionRef.current]\n : state,\n );\n }\n previousDirectionRef.current = direction;\n }\n }, [direction]);\n\n // Сбрасываем при любом изменении пропсов, чтобы заново начать перебор направлений\n // Главное не сбрасывать при изменении размеров поповера, т.к. именно оно может вызвать бесконечный перебор\n\n useLayoutEffect(resetBannedDirections, [props]);\n\n const renderPosition = getRenderPosition(\n viewportElement,\n position,\n !!viewportRef?.current,\n width,\n height,\n );\n\n const notVisible = !renderPosition || !height || !width;\n\n return (\n <PortalWithTheme\n {...otherProps}\n preset={theme}\n className={cnPopover({ direction, notVisible }, [className])}\n container={container}\n ref={useForkRef([ref, componentRef])}\n style={{\n ...style,\n ...(notVisible\n ? {}\n : {\n ['--popover-left' as string]: `${renderPosition.x}px`,\n ['--popover-top' as string]: `${renderPosition.y}px`,\n [`--popover-width` as string]: equalAnchorWidth\n ? `${anchorSize.width}px`\n : undefined,\n [`--popover-pointer-events` as string]: isInteractive\n ? undefined\n : 'none',\n [`--popover-visibility` as string]: position\n ? undefined\n : 'hidden',\n }),\n }}\n >\n <PortalWithThemeConsumer\n onClickOutside={onClickOutside}\n ignoreClicksInsideRefs={[ref, anchorRef || { current: null }]}\n >\n {isRenderProp(children) ? children(direction) : children}\n </PortalWithThemeConsumer>\n </PortalWithTheme>\n );\n },\n);\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["children","container","style"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import React,{useEffect,useRef,useState}from"react";import ReactDOM from"react-dom";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{Theme}from"../Theme/Theme";import{PortalWithThemeProvider,usePortalContext}from"./PortalWithThemeContext/PortalWithThemeContext";export{usePortalContext};var getZIndex=function(a,b){return"number"==typeof b?b:a?a+1:void 0},isRef=function(a){return!!a&&"current"in a
|
|
1
|
+
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["children","container","style"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import React,{useEffect,useRef,useState}from"react";import ReactDOM from"react-dom";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{Theme}from"../Theme/Theme";import{PortalWithThemeProvider,usePortalContext}from"./PortalWithThemeContext/PortalWithThemeContext";export{usePortalContext};var getZIndex=function(a,b){return"number"==typeof b?b:a?a+1:void 0},isRef=function(a){return!!a&&"current"in a},getElement=function(a){return isRef(a)?a.current:a};export var PortalWithTheme=React.forwardRef(function(a,b){var c=a.children,d=a.container,e=void 0===d?window.document.body:d,f=a.style,g=_objectWithoutProperties(a,_excluded),h=usePortalContext(),i=h.addRefs,j=h.zIndex,k=useState(getElement(e)),l=_slicedToArray(k,2),m=l[0],n=l[1],o=useRef(null),p=getZIndex(j,null===f||void 0===f?void 0:f.zIndex),q=useForkRef([o,b]);return useEffect(function(){i&&i([o])},[o]),useEffect(function(){n(getElement(e))},[getElement(e)]),m?ReactDOM.createPortal(React.createElement(PortalWithThemeProvider,{zIndex:p},React.createElement(Theme,Object.assign({},g,{ref:q,style:_objectSpread(_objectSpread({},f),{},{zIndex:p})}),c)),m):null});
|
|
2
2
|
//# sourceMappingURL=PortalWithTheme.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PortalWithTheme.js","names":["React","useEffect","useRef","useState","ReactDOM","useForkRef","Theme","PortalWithThemeProvider","usePortalContext","getZIndex","contextZIndex","propZIndex","isRef","ref","
|
|
1
|
+
{"version":3,"file":"PortalWithTheme.js","names":["React","useEffect","useRef","useState","ReactDOM","useForkRef","Theme","PortalWithThemeProvider","usePortalContext","getZIndex","contextZIndex","propZIndex","isRef","ref","getElement","current","PortalWithTheme","forwardRef","children","container","window","document","body","styleProp","style","rest","addRefs","zIndexContext","zIndex","portalContainer","setPortalContainer","themeRef","themeRefForked","createPortal"],"sources":["../../../../../src/components/PortalWithTheme/PortalWithTheme.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { Theme, ThemeProps } from '../Theme/Theme';\nimport {\n PortalWithThemeProvider,\n usePortalContext,\n} from './PortalWithThemeContext/PortalWithThemeContext';\n\nexport { usePortalContext };\n\ntype Props = {\n container?: Element | React.RefObject<HTMLElement>;\n} & ThemeProps;\n\nconst getZIndex = (contextZIndex?: number, propZIndex?: number | string) => {\n if (typeof propZIndex === 'number') {\n return propZIndex;\n }\n\n if (contextZIndex) {\n return contextZIndex + 1;\n }\n\n return undefined;\n};\n\nconst isRef = (\n ref: React.RefObject<HTMLElement> | Element | undefined,\n): ref is React.RefObject<HTMLElement> => !!ref && 'current' in ref;\n\nconst getElement = (ref: React.RefObject<HTMLElement> | Element) =>\n isRef(ref) ? ref.current : ref;\n\nexport const PortalWithTheme = React.forwardRef<HTMLDivElement, Props>(\n (\n { children, container = window.document.body, style: styleProp, ...rest },\n ref,\n ) => {\n const { addRefs, zIndex: zIndexContext } = usePortalContext();\n const [portalContainer, setPortalContainer] = useState<Element | null>(\n getElement(container),\n );\n\n const themeRef = useRef(null);\n\n const zIndex = getZIndex(zIndexContext, styleProp?.zIndex);\n\n const themeRefForked = useForkRef([themeRef, ref]);\n\n useEffect(() => {\n addRefs && addRefs([themeRef]);\n }, [themeRef]);\n\n useEffect(() => {\n setPortalContainer(getElement(container));\n }, [getElement(container)]);\n\n if (!portalContainer) {\n return null;\n }\n\n return ReactDOM.createPortal(\n <PortalWithThemeProvider zIndex={zIndex}>\n <Theme\n {...rest}\n ref={themeRefForked}\n style={{\n ...styleProp,\n zIndex,\n }}\n >\n {children}\n </Theme>\n </PortalWithThemeProvider>,\n portalContainer,\n );\n },\n);\n"],"mappings":"02BAAA,MAAOA,MAAP,EAAgBC,SAAhB,CAA2BC,MAA3B,CAAmCC,QAAnC,KAAmD,OAAnD,CACA,MAAOC,SAAP,KAAqB,WAArB,CAEA,OAASC,UAAT,yCACA,OAASC,KAAT,sBACA,OACEC,uBADF,CAEEC,gBAFF,uDAKA,OAASA,gBAAT,E,GAMMC,UAAS,CAAG,SAACC,CAAD,CAAyBC,CAAzB,CAA0D,OAChD,QAAtB,QAAOA,EAD+D,CAEjEA,CAFiE,CAKtED,CALsE,CAMjEA,CAAa,CAAG,CANiD,OAU3E,C,CAEKE,KAAK,CAAG,SACZC,CADY,QAE4B,CAAC,CAACA,CAAF,EAAS,WAAaA,EAFlD,C,CAIRC,UAAU,CAAG,SAACD,CAAD,QACjBD,MAAK,CAACC,CAAD,CAAL,CAAaA,CAAG,CAACE,OAAjB,CAA2BF,CADV,C,CAGnB,MAAO,IAAMG,gBAAe,CAAGhB,KAAK,CAACiB,UAAN,CAC7B,WAEEJ,CAFF,CAGK,IAFDK,EAEC,GAFDA,QAEC,KAFSC,SAET,CAFSA,CAET,YAFqBC,MAAM,CAACC,QAAP,CAAgBC,IAErC,GAFkDC,CAElD,GAF2CC,KAE3C,CAFgEC,CAEhE,yCACwCjB,gBAAgB,EADxD,CACKkB,CADL,GACKA,OADL,CACsBC,CADtB,GACcC,MADd,GAE2CzB,QAAQ,CACpDW,UAAU,CAACK,CAAD,CAD0C,CAFnD,uBAEIU,CAFJ,MAEqBC,CAFrB,MAMGC,CAAQ,CAAG7B,MAAM,CAAC,IAAD,CANpB,CAQG0B,CAAM,CAAGnB,SAAS,CAACkB,CAAD,QAAgBJ,CAAhB,WAAgBA,CAAhB,QAAgBA,CAAS,CAAEK,MAA3B,CARrB,CAUGI,CAAc,CAAG3B,UAAU,CAAC,CAAC0B,CAAD,CAAWlB,CAAX,CAAD,CAV9B,OAYHZ,UAAS,CAAC,UAAM,CACdyB,CAAO,EAAIA,CAAO,CAAC,CAACK,CAAD,CAAD,CACnB,CAFQ,CAEN,CAACA,CAAD,CAFM,CAZN,CAgBH9B,SAAS,CAAC,UAAM,CACd6B,CAAkB,CAAChB,UAAU,CAACK,CAAD,CAAX,CACnB,CAFQ,CAEN,CAACL,UAAU,CAACK,CAAD,CAAX,CAFM,CAhBN,CAoBEU,CApBF,CAwBIzB,QAAQ,CAAC6B,YAAT,CACL,oBAAC,uBAAD,EAAyB,MAAM,CAAEL,CAAjC,EACE,oBAAC,KAAD,kBACMH,CADN,EAEE,GAAG,CAAEO,CAFP,CAGE,KAAK,gCACAT,CADA,MAEHK,MAAM,CAANA,CAFG,EAHP,GAQGV,CARH,CADF,CADK,CAaLW,CAbK,CAxBJ,CAqBM,IAkBV,CA3C4B,CAAxB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["value","items","getItemLabel","getItemKey","getItemDisabled","onChange","name","direction","size","view","align","disabled","className"];import"./RadioGroup.css";import React,{forwardRef}from"react";import{useChoiceGroup}from"../../hooks/useChoiceGroup/useChoiceGroup";import{cn}from"../../utils/bem";import{Radio}from"../Radio/Radio";import{withDefaultGetters}from"./helper";import{radioGroupDefaultDirection,radioGroupDefaultSize,radioGroupDefaultView,radioGroupPropAlignDefault}from"./types";export var cnRadioGroup=cn("RadioGroup");var RadioGroupRender=function(a,b){var c=withDefaultGetters(a),d=c.value,e=void 0===d?null:d,f=c.items,g=c.getItemLabel,h=c.getItemKey,i=c.getItemDisabled,j=c.onChange,k=c.name,l=c.direction,m=void 0===l?radioGroupDefaultDirection:l,n=c.size,o=void 0===n?radioGroupDefaultSize:n,p=c.view,q=void 0===p?radioGroupDefaultView:p,r=c.align,s=void 0===r?radioGroupPropAlignDefault:r,t=c.disabled,u=c.className,v=_objectWithoutProperties(c,_excluded),
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["value","items","getItemLabel","getItemKey","getItemDisabled","onChange","name","direction","size","view","align","disabled","className","id"];import"./RadioGroup.css";import React,{forwardRef}from"react";import{useChoiceGroup}from"../../hooks/useChoiceGroup/useChoiceGroup";import{cn}from"../../utils/bem";import{Radio}from"../Radio/Radio";import{withDefaultGetters}from"./helper";import{radioGroupDefaultDirection,radioGroupDefaultSize,radioGroupDefaultView,radioGroupPropAlignDefault}from"./types";export var cnRadioGroup=cn("RadioGroup");var RadioGroupRender=function(a,b){var c=withDefaultGetters(a),d=c.value,e=void 0===d?null:d,f=c.items,g=c.getItemLabel,h=c.getItemKey,i=c.getItemDisabled,j=c.onChange,k=c.name,l=c.direction,m=void 0===l?radioGroupDefaultDirection:l,n=c.size,o=void 0===n?radioGroupDefaultSize:n,p=c.view,q=void 0===p?radioGroupDefaultView:p,r=c.align,s=void 0===r?radioGroupPropAlignDefault:r,t=c.disabled,u=c.className,v=c.id,w=_objectWithoutProperties(c,_excluded),x=useChoiceGroup({value:e,getKey:function getKey(a){var b;return null!==(b=h(a))&&void 0!==b?b:g(a)},callBack:j,multiple:!1}),y=x.getOnChange,z=x.getChecked;return React.createElement("div",Object.assign({},w,{ref:b,className:cnRadioGroup({direction:m,size:o,view:q},[u])}),f.map(function(a){var b;return React.createElement(Radio,{align:s,key:null!==(b=h(a))&&void 0!==b?b:g(a),label:g(a),size:o,view:q,name:k,disabled:void 0!==t&&t||!!i&&i(a),checked:z(a),onChange:y(a),className:cnRadioGroup("Item")})}))};export var RadioGroup=forwardRef(RadioGroupRender);export*from"./types";
|
|
2
2
|
//# sourceMappingURL=RadioGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroup.js","names":["React","forwardRef","useChoiceGroup","cn","Radio","withDefaultGetters","radioGroupDefaultDirection","radioGroupDefaultSize","radioGroupDefaultView","radioGroupPropAlignDefault","cnRadioGroup","RadioGroupRender","props","ref","value","items","getItemLabel","getItemKey","getItemDisabled","onChange","name","direction","size","view","align","disabled","className","otherProps","getKey","item","callBack","multiple","getOnChange","getChecked","map","RadioGroup"],"sources":["../../../../../src/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import './RadioGroup.css';\n\nimport React, { forwardRef } from 'react';\n\nimport { useChoiceGroup } from '../../hooks/useChoiceGroup/useChoiceGroup';\nimport { cn } from '../../utils/bem';\nimport { Radio } from '../Radio/Radio';\nimport { withDefaultGetters } from './helper';\nimport {\n RadioGroupComponent,\n radioGroupDefaultDirection,\n radioGroupDefaultSize,\n radioGroupDefaultView,\n radioGroupPropAlignDefault,\n RadioGroupProps,\n} from './types';\n\nexport const cnRadioGroup = cn('RadioGroup');\n\nconst RadioGroupRender = (\n props: RadioGroupProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n value = null,\n items,\n getItemLabel,\n getItemKey,\n getItemDisabled,\n onChange,\n name,\n direction = radioGroupDefaultDirection,\n size = radioGroupDefaultSize,\n view = radioGroupDefaultView,\n align = radioGroupPropAlignDefault,\n disabled = false,\n className,\n ...otherProps\n } = withDefaultGetters(props);\n\n const { getOnChange, getChecked } = useChoiceGroup({\n value,\n getKey: (item) => getItemKey(item) ?? getItemLabel(item),\n callBack: onChange,\n multiple: false,\n });\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cnRadioGroup({ direction, size, view }, [className])}\n >\n {items.map((item) => (\n <Radio\n align={align}\n key={getItemKey(item) ?? getItemLabel(item)}\n label={getItemLabel(item)}\n size={size}\n view={view}\n name={name}\n disabled={disabled || (!!getItemDisabled && getItemDisabled(item))}\n checked={getChecked(item)}\n onChange={getOnChange(item)}\n className={cnRadioGroup('Item')}\n />\n ))}\n </div>\n );\n};\n\nexport const RadioGroup = forwardRef(RadioGroupRender) as RadioGroupComponent;\n\nexport * from './types';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"RadioGroup.js","names":["React","forwardRef","useChoiceGroup","cn","Radio","withDefaultGetters","radioGroupDefaultDirection","radioGroupDefaultSize","radioGroupDefaultView","radioGroupPropAlignDefault","cnRadioGroup","RadioGroupRender","props","ref","value","items","getItemLabel","getItemKey","getItemDisabled","onChange","name","direction","size","view","align","disabled","className","id","otherProps","getKey","item","callBack","multiple","getOnChange","getChecked","map","RadioGroup"],"sources":["../../../../../src/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import './RadioGroup.css';\n\nimport React, { forwardRef } from 'react';\n\nimport { useChoiceGroup } from '../../hooks/useChoiceGroup/useChoiceGroup';\nimport { cn } from '../../utils/bem';\nimport { Radio } from '../Radio/Radio';\nimport { withDefaultGetters } from './helper';\nimport {\n RadioGroupComponent,\n radioGroupDefaultDirection,\n radioGroupDefaultSize,\n radioGroupDefaultView,\n radioGroupPropAlignDefault,\n RadioGroupProps,\n} from './types';\n\nexport const cnRadioGroup = cn('RadioGroup');\n\nconst RadioGroupRender = (\n props: RadioGroupProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n value = null,\n items,\n getItemLabel,\n getItemKey,\n getItemDisabled,\n onChange,\n name,\n direction = radioGroupDefaultDirection,\n size = radioGroupDefaultSize,\n view = radioGroupDefaultView,\n align = radioGroupPropAlignDefault,\n disabled = false,\n className,\n id,\n ...otherProps\n } = withDefaultGetters(props);\n\n const { getOnChange, getChecked } = useChoiceGroup({\n value,\n getKey: (item) => getItemKey(item) ?? getItemLabel(item),\n callBack: onChange,\n multiple: false,\n });\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cnRadioGroup({ direction, size, view }, [className])}\n >\n {items.map((item) => (\n <Radio\n align={align}\n key={getItemKey(item) ?? getItemLabel(item)}\n label={getItemLabel(item)}\n size={size}\n view={view}\n name={name}\n disabled={disabled || (!!getItemDisabled && getItemDisabled(item))}\n checked={getChecked(item)}\n onChange={getOnChange(item)}\n className={cnRadioGroup('Item')}\n />\n ))}\n </div>\n );\n};\n\nexport const RadioGroup = forwardRef(RadioGroupRender) as RadioGroupComponent;\n\nexport * from './types';\n"],"mappings":"mPAAA,yBAEA,MAAOA,MAAP,EAAgBC,UAAhB,KAAkC,OAAlC,CAEA,OAASC,cAAT,iDACA,OAASC,EAAT,uBACA,OAASC,KAAT,sBACA,OAASC,kBAAT,gBACA,OAEEC,0BAFF,CAGEC,qBAHF,CAIEC,qBAJF,CAKEC,0BALF,eASA,MAAO,IAAMC,aAAY,CAAGP,EAAE,CAAC,YAAD,CAAvB,CAEP,GAAMQ,iBAAgB,CAAG,SACvBC,CADuB,CAEvBC,CAFuB,CAGpB,OAiBCR,kBAAkB,CAACO,CAAD,CAjBnB,KAEDE,KAFC,CAEDA,CAFC,YAEO,IAFP,GAGDC,CAHC,GAGDA,KAHC,CAIDC,CAJC,GAIDA,YAJC,CAKDC,CALC,GAKDA,UALC,CAMDC,CANC,GAMDA,eANC,CAODC,CAPC,GAODA,QAPC,CAQDC,CARC,GAQDA,IARC,KASDC,SATC,CASDA,CATC,YASWf,0BATX,OAUDgB,IAVC,CAUDA,CAVC,YAUMf,qBAVN,OAWDgB,IAXC,CAWDA,CAXC,YAWMf,qBAXN,OAYDgB,KAZC,CAYDA,CAZC,YAYOf,0BAZP,OAaDgB,QAbC,CAcDC,CAdC,GAcDA,SAdC,CAeDC,CAfC,GAeDA,EAfC,CAgBEC,CAhBF,yCAmBiC1B,cAAc,CAAC,CACjDY,KAAK,CAALA,CADiD,CAEjDe,MAAM,CAAE,gBAACC,CAAD,yBAAUb,CAAU,CAACa,CAAD,CAApB,gBAA8Bd,CAAY,CAACc,CAAD,CAA1C,CAFyC,CAGjDC,QAAQ,CAAEZ,CAHuC,CAIjDa,QAAQ,GAJyC,CAAD,CAnB/C,CAmBKC,CAnBL,GAmBKA,WAnBL,CAmBkBC,CAnBlB,GAmBkBA,UAnBlB,CA0BH,MACE,4CACMN,CADN,EAEE,GAAG,CAAEf,CAFP,CAGE,SAAS,CAAEH,YAAY,CAAC,CAAEW,SAAS,CAATA,CAAF,CAAaC,IAAI,CAAJA,CAAb,CAAmBC,IAAI,CAAJA,CAAnB,CAAD,CAA4B,CAACG,CAAD,CAA5B,CAHzB,GAKGX,CAAK,CAACoB,GAAN,CAAU,SAACL,CAAD,cACT,qBAAC,KAAD,EACE,KAAK,CAAEN,CADT,CAEE,GAAG,WAAEP,CAAU,CAACa,CAAD,CAAZ,gBAAsBd,CAAY,CAACc,CAAD,CAFvC,CAGE,KAAK,CAAEd,CAAY,CAACc,CAAD,CAHrB,CAIE,IAAI,CAAER,CAJR,CAKE,IAAI,CAAEC,CALR,CAME,IAAI,CAAEH,CANR,CAOE,QAAQ,CAAE,eAAa,CAAC,CAACF,CAAF,EAAqBA,CAAe,CAACY,CAAD,CAP7D,CAQE,OAAO,CAAEI,CAAU,CAACJ,CAAD,CARrB,CASE,QAAQ,CAAEG,CAAW,CAACH,CAAD,CATvB,CAUE,SAAS,CAAEpB,YAAY,CAAC,MAAD,CAVzB,EADS,CAAV,CALH,CAqBH,CAnDD,CAqDA,MAAO,IAAM0B,WAAU,CAAGnC,UAAU,CAACU,gBAAD,CAA7B,CAEP"}
|
|
@@ -53,7 +53,7 @@ export declare function withDefaultGetters<ITEM = SelectItemDefault, GROUP = Sel
|
|
|
53
53
|
iconClear?: import("@consta/icons/Icon").IconComponent;
|
|
54
54
|
selectAll?: (MULTIPLE extends true ? boolean : never) | undefined;
|
|
55
55
|
selectAllLabel?: string;
|
|
56
|
-
} & Omit<import("react").HTMLAttributes<HTMLDivElement>, "css" | "onFocus" | "onBlur" | "onChange" | "onInput" | "size" | "view" | "form" | "status" | "input" | "disabled" | "value" | "multiple" | "placeholder" | "inputRef" | "items" | "dropdownForm" | "dropdownClassName" | "dropdownRef" | "isLoading" | "labelForEmptyItems" | "renderItem" | "renderValue" | "groups" | "getItemLabel" | "getItemKey" | "getItemGroupKey" | "getItemDisabled" | "getGroupLabel" | "getGroupKey" | "onScrollToBottom" | "labelForCreate" | "inputValue" | "selectAll" | "onDropdownOpen" | "dropdownOpen" | "ignoreOutsideClicksRefs" | "virtualScroll" | "inputDefaultValue" | "clearButton" | "iconClear" | "onCreate" | "
|
|
56
|
+
} & Omit<import("react").HTMLAttributes<HTMLDivElement>, "css" | "onFocus" | "onBlur" | "onChange" | "onInput" | "size" | "view" | "form" | "status" | "input" | "disabled" | "value" | "multiple" | "placeholder" | "inputRef" | "items" | "dropdownForm" | "dropdownClassName" | "dropdownRef" | "isLoading" | "labelForEmptyItems" | "renderItem" | "renderValue" | "groups" | "getItemLabel" | "getItemKey" | "getItemGroupKey" | "getItemDisabled" | "getGroupLabel" | "getGroupKey" | "onScrollToBottom" | "labelForCreate" | "inputValue" | "selectAll" | "onDropdownOpen" | "dropdownOpen" | "ignoreOutsideClicksRefs" | "virtualScroll" | "inputDefaultValue" | "clearButton" | "iconClear" | "onCreate" | "selectAllLabel" | "aria-Label"> & import("react").RefAttributes<HTMLDivElement> & (ITEM extends {
|
|
57
57
|
label: SelectItemDefault["label"];
|
|
58
58
|
} ? {} : {
|
|
59
59
|
getItemLabel: SelectPropGetItemLabel<ITEM>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.Sidebar{
|
|
1
|
+
.Sidebar{bottom:0;box-sizing:border-box;display:flex;left:0;overflow:hidden;position:fixed;right:0;top:0}.Sidebar:not(.Sidebar_hasOverlay){pointer-events:none}.Sidebar_position_top{flex-direction:column}.Sidebar_position_bottom{flex-direction:column;justify-content:flex-end}.Sidebar_position_right{justify-content:flex-end}.Sidebar-Overlay{background:var(--color-bg-tone);border:none;bottom:0;left:0;padding:0;position:absolute;right:0;top:0}.Sidebar-Overlay_animate_exited,.Sidebar-Overlay_animate_exiting{opacity:0}.Sidebar-Overlay_animate_entered,.Sidebar-Overlay_animate_entering{opacity:1}.Sidebar-Overlay_animate_entered,.Sidebar-Overlay_animate_entering,.Sidebar-Overlay_animate_exited,.Sidebar-Overlay_animate_exiting{transition:opacity var(--sidebar-animate-timeout) ease}.Sidebar-Window{--sidebar-border:none;background-color:var(--color-bg-default);box-shadow:var(--sidebar-modal-shadow);display:flex;flex-direction:column;max-height:100%;max-width:100%;pointer-events:auto;position:absolute}.Sidebar-Window_border{--sidebar-border:1px solid var(--color-bg-border)}.Sidebar-Window_position_right{--sidebar-transform:translate3d(100%,0,0);border-left:var(--sidebar-border);height:100%;width:var(--sidebar-size)}.Sidebar-Window_position_bottom{--sidebar-transform:translate3d(0,100%,0);border-top:var(--sidebar-border);height:var(--sidebar-size);width:100%}.Sidebar-Window_position_left{--sidebar-transform:translate3d(-100%,0,0);border-right:var(--sidebar-border);height:100%;width:var(--sidebar-size)}.Sidebar-Window_position_top{--sidebar-transform:translate3d(0,-100%,0);border-bottom:var(--sidebar-border);height:var(--sidebar-size);width:100%}.Sidebar-Window_size_s{--sidebar-size:260px}.Sidebar-Window_size_m{--sidebar-size:320px}.Sidebar-Window_size_l{--sidebar-size:480px}.Sidebar-Window_size_full{--sidebar-size:100%}.Sidebar-Window_size_1\/4{--sidebar-size:25%}.Sidebar-Window_size_3\/4{--sidebar-size:75%}.Sidebar-Window_size_1\/2{--sidebar-size:50%}.Sidebar-Window_size_1\/3{--sidebar-size:33.33333%}.Sidebar-Window_size_2\/3{--sidebar-size:66.66667%}.Sidebar-Window_animate_exited,.Sidebar-Window_animate_exiting{--sidebar-modal-shadow:0 0 0 transparent,0 0 0 transparent;transform:var(--sidebar-transform)}.Sidebar-Window_animate_entered,.Sidebar-Window_animate_entering{--sidebar-modal-shadow:var(--shadow-modal);transform:translateZ(0)}.Sidebar-Window_animate_entered,.Sidebar-Window_animate_entering,.Sidebar-Window_animate_exited,.Sidebar-Window_animate_exiting{transition:transform var(--sidebar-animate-timeout),box-shadow var(--sidebar-animate-timeout) ease-in}.Sidebar-Content,.Sidebar-Scroll{display:flex;flex:1;flex-direction:column}.Sidebar-Scroll{height:100%;overflow:auto}.Sidebar-Actions{border-top:1px solid var(--color-bg-border);flex-shrink:0}
|
|
@@ -1,39 +1,4 @@
|
|
|
1
1
|
import './Sidebar.css';
|
|
2
|
-
import
|
|
3
|
-
import { AsTagAttribute } from '../../utils/types/AsTags';
|
|
4
|
-
import { PropsWithHTMLAttributes } from '../../utils/types/PropsWithHTMLAttributes';
|
|
5
|
-
declare const sidebarPropPosition: readonly ["right", "bottom", "left", "top"];
|
|
6
|
-
type SidebarPropPosition = typeof sidebarPropPosition[number];
|
|
7
|
-
export declare const sidebarPropSize: readonly ["s", "m", "l", "full", "1/2", "1/3", "1/4", "2/3", "3/4"];
|
|
8
|
-
export type SidebarPropSize = typeof sidebarPropSize[number];
|
|
9
|
-
type SidebarProps = PropsWithHTMLAttributes<{
|
|
10
|
-
isOpen?: boolean;
|
|
11
|
-
onClose?: () => void;
|
|
12
|
-
onOpen?: () => void;
|
|
13
|
-
hasOverlay?: boolean;
|
|
14
|
-
onClickOutside?: (event: MouseEvent) => void;
|
|
15
|
-
onEsc?: (event: KeyboardEvent) => void;
|
|
16
|
-
position?: SidebarPropPosition;
|
|
17
|
-
size?: SidebarPropSize;
|
|
18
|
-
rootClassName?: string;
|
|
19
|
-
children?: React.ReactNode;
|
|
20
|
-
container?: HTMLDivElement | undefined;
|
|
21
|
-
afterClose?: () => void;
|
|
22
|
-
}, HTMLDivElement>;
|
|
23
|
-
type SidebarContentProps = {
|
|
24
|
-
className?: string;
|
|
25
|
-
children: React.ReactNode;
|
|
26
|
-
};
|
|
27
|
-
type SidebarActionsProps = {
|
|
28
|
-
className?: string;
|
|
29
|
-
children: React.ReactNode;
|
|
30
|
-
};
|
|
2
|
+
import { SidebarComponent } from './types';
|
|
31
3
|
export declare const cnSidebar: import("@bem-react/classname").ClassNameFormatter;
|
|
32
|
-
declare const SidebarContent: React.FC<SidebarContentProps>;
|
|
33
|
-
declare const SidebarActions: React.FC<SidebarActionsProps>;
|
|
34
|
-
interface SidebarComponent extends React.FC<SidebarProps>, AsTagAttribute<'div'> {
|
|
35
|
-
Content: typeof SidebarContent;
|
|
36
|
-
Actions: typeof SidebarActions;
|
|
37
|
-
}
|
|
38
4
|
export declare const Sidebar: SidebarComponent;
|
|
39
|
-
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","children"],_excluded2=["className","children"],_excluded3=["isOpen","onClose","onOpen","hasOverlay","onClickOutside","onEsc","position","size","className","children","container","style","rootClassName","afterClose"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./Sidebar.css";import React,{
|
|
1
|
+
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","children"],_excluded2=["className","children"],_excluded3=["isOpen","onClose","onOpen","hasOverlay","onClickOutside","onEsc","position","size","className","children","container","style","rootClassName","afterClose","ignoreOutsideClicksRefs","border"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./Sidebar.css";import React,{forwardRef}from"react";import{Transition}from"react-transition-group";import{useModal}from"../Modal/useModal";import{PortalWithTheme,PortalWithThemeConsumer}from"../PortalWithTheme";import{cnMixScrollBar}from"../../mixs/MixScrollBar";import{cn}from"../../utils/bem";import{withCtx}from"../../utils/state";import{useAnimateTimeout}from"./useAnimateTimeout";export var cnSidebar=cn("Sidebar");var SidebarContent=function(a){var b=a.className,c=a.children,d=_objectWithoutProperties(a,_excluded);return React.createElement("div",Object.assign({className:cnSidebar("Content",[b,cnMixScrollBar()])},d),c)},SidebarActions=function(a){var b=a.className,c=a.children,d=_objectWithoutProperties(a,_excluded2);return React.createElement("div",Object.assign({className:cnSidebar("Actions",[b])},d),c)};export var Sidebar=withCtx(forwardRef(function(a,b){var c=a.isOpen,d=a.onClose,e=a.onOpen,f=a.hasOverlay,g=!(void 0!==f)||f,h=a.onClickOutside,i=a.onEsc,j=a.position,k=void 0===j?"right":j,l=a.size,m=void 0===l?"m":l,n=a.className,o=a.children,p=a.container,q=void 0===p?window.document.body:p,r=a.style,s=a.rootClassName,t=a.afterClose,u=a.ignoreOutsideClicksRefs,v=a.border,w=_objectWithoutProperties(a,_excluded3),x=useModal({ref:b,isOpen:c,onEsc:i,onOpen:e,onClose:d,ignoreOutsideClicksRefs:u}),y=x.shadowHeader,z=x.shadowFooter,A=x.scrollable,B=x.theme,C=x.portalRef,D=x.windowRef,E=x.contentRef,F=x.scrollRef,G=x.ignoreOutsideClicksRefs,H=x.windowElAtom,I=useAnimateTimeout(H,k);return React.createElement(Transition,{in:c,unmountOnExit:!0,timeout:I,nodeRef:C,onExiting:t},function(a){return React.createElement(PortalWithTheme,{preset:B,ref:C,container:q,className:cnSidebar({position:k,hasOverlay:g},[s]),style:_objectSpread(_objectSpread(_objectSpread(_objectSpread({},(null===r||void 0===r?void 0:r.zIndex)&&{zIndex:r.zIndex}),{},_defineProperty({},"--sidebar-animate-timeout","".concat(I,"ms")),y&&_defineProperty({},"--modal-layout-header-color-shadow","var(--color-shadow-group-2)")),z&&_defineProperty({},"--modal-layout-footer-color-shadow","var(--color-shadow-group-2)")),(null===r||void 0===r?void 0:r.zIndex)&&_defineProperty({},"--modal-layout-z-index-for-fixed-slot",r.zIndex))},g&&React.createElement("div",{className:cnSidebar("Overlay",{animate:a}),"aria-label":"Overlay"}),React.createElement("div",Object.assign({},w,{style:_objectSpread(_objectSpread({},r),{},{zIndex:void 0}),className:cnSidebar("Window",{size:m,position:k,animate:a,scrollable:A,border:v},[n]),ref:D}),React.createElement("div",{className:cnSidebar("Scroll",cnMixScrollBar({size:"s"})),ref:F},React.createElement("div",{className:cnSidebar("Content"),ref:E},React.createElement(PortalWithThemeConsumer,{onClickOutside:h,ignoreClicksInsideRefs:G},o)))))})}));Sidebar.Actions=SidebarActions,Sidebar.Content=SidebarContent;
|
|
2
2
|
//# sourceMappingURL=Sidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.js","names":["React","
|
|
1
|
+
{"version":3,"file":"Sidebar.js","names":["React","forwardRef","Transition","useModal","PortalWithTheme","PortalWithThemeConsumer","cnMixScrollBar","cn","withCtx","useAnimateTimeout","cnSidebar","SidebarContent","className","children","rest","SidebarActions","Sidebar","props","ref","isOpen","onClose","onOpen","hasOverlay","onClickOutside","onEsc","position","size","container","window","document","body","style","rootClassName","afterClose","ignoreOutsideClicksRefsProp","ignoreOutsideClicksRefs","border","otherProps","shadowHeader","shadowFooter","scrollable","theme","portalRef","windowRef","contentRef","scrollRef","windowElAtom","animateTimeout","animate","zIndex","Actions","Content"],"sources":["../../../../../src/components/Sidebar/Sidebar.tsx"],"sourcesContent":["import './Sidebar.css';\n\nimport React, { forwardRef } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport { useModal } from '##/components/Modal/useModal';\nimport {\n PortalWithTheme,\n PortalWithThemeConsumer,\n} from '##/components/PortalWithTheme';\nimport { cnMixScrollBar } from '##/mixs/MixScrollBar';\nimport { cn } from '##/utils/bem';\nimport { withCtx } from '##/utils/state';\n\nimport {\n SidebarActionsProps,\n SidebarComponent,\n SidebarContentProps,\n SidebarProps,\n} from './types';\nimport { useAnimateTimeout } from './useAnimateTimeout';\n\nexport const cnSidebar = cn('Sidebar');\n\nconst SidebarContent: React.FC<SidebarContentProps> = ({\n className,\n children,\n ...rest\n}) => (\n <div\n className={cnSidebar('Content', [className, cnMixScrollBar()])}\n {...rest}\n >\n {children}\n </div>\n);\n\nconst SidebarActions: React.FC<SidebarActionsProps> = ({\n className,\n children,\n ...rest\n}) => (\n <div className={cnSidebar('Actions', [className])} {...rest}>\n {children}\n </div>\n);\n\nexport const Sidebar = withCtx(\n forwardRef<HTMLDivElement, SidebarProps>((props, ref) => {\n const {\n isOpen,\n onClose,\n onOpen,\n hasOverlay = true,\n onClickOutside,\n onEsc,\n position = 'right',\n size = 'm',\n className,\n children,\n container = window.document.body,\n style,\n rootClassName,\n afterClose,\n ignoreOutsideClicksRefs: ignoreOutsideClicksRefsProp,\n border,\n ...otherProps\n } = props;\n\n const {\n shadowHeader,\n shadowFooter,\n scrollable,\n theme,\n portalRef,\n windowRef,\n contentRef,\n scrollRef,\n ignoreOutsideClicksRefs,\n windowElAtom,\n } = useModal({\n ref,\n isOpen,\n onEsc,\n onOpen,\n onClose,\n ignoreOutsideClicksRefs: ignoreOutsideClicksRefsProp,\n });\n\n const animateTimeout = useAnimateTimeout(windowElAtom, position);\n\n return (\n <Transition\n in={isOpen}\n unmountOnExit\n timeout={animateTimeout}\n nodeRef={portalRef}\n onExiting={afterClose}\n >\n {(animate) => (\n <PortalWithTheme\n preset={theme}\n ref={portalRef}\n container={container}\n className={cnSidebar({ position, hasOverlay }, [rootClassName])}\n style={{\n ...(style?.zIndex && {\n zIndex: style.zIndex,\n }),\n ['--sidebar-animate-timeout' as string]: `${animateTimeout}ms`,\n ...(shadowHeader && {\n ['--modal-layout-header-color-shadow' as string]:\n 'var(--color-shadow-group-2)',\n }),\n ...(shadowFooter && {\n ['--modal-layout-footer-color-shadow' as string]:\n 'var(--color-shadow-group-2)',\n }),\n ...(style?.zIndex && {\n ['--modal-layout-z-index-for-fixed-slot' as string]:\n style.zIndex,\n }),\n }}\n >\n {hasOverlay && (\n <div\n className={cnSidebar('Overlay', { animate })}\n aria-label=\"Overlay\"\n />\n )}\n <div\n {...otherProps}\n style={{\n ...style,\n zIndex: undefined,\n }}\n className={cnSidebar(\n 'Window',\n {\n size,\n position,\n animate,\n scrollable,\n border,\n },\n [className],\n )}\n ref={windowRef}\n >\n <div\n className={cnSidebar('Scroll', cnMixScrollBar({ size: 's' }))}\n ref={scrollRef}\n >\n <div className={cnSidebar('Content')} ref={contentRef}>\n <PortalWithThemeConsumer\n onClickOutside={onClickOutside}\n ignoreClicksInsideRefs={ignoreOutsideClicksRefs}\n >\n {children}\n </PortalWithThemeConsumer>\n </div>\n </div>\n </div>\n </PortalWithTheme>\n )}\n </Transition>\n );\n }),\n) as SidebarComponent;\n/**\n * @deprecated use actions\n */\nSidebar.Actions = SidebarActions;\n\n/**\n * @deprecated use actions\n */\nSidebar.Content = SidebarContent;\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export*from"./Sidebar";
|
|
1
|
+
export*from"./Sidebar";export*from"./types";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/Sidebar/index.ts"],"sourcesContent":["export * from './Sidebar';\n"],"mappings":"AAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/Sidebar/index.ts"],"sourcesContent":["export * from './Sidebar';\nexport * from './types';\n"],"mappings":"AAAA,uBACA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { AsTagAttribute } from '../../utils/types/AsTags';
|
|
2
|
+
import { PropsWithHTMLAttributes } from '../../utils/types/PropsWithHTMLAttributes';
|
|
3
|
+
declare const sidebarPropPosition: readonly ["right", "bottom", "left", "top"];
|
|
4
|
+
export type SidebarPropPosition = typeof sidebarPropPosition[number];
|
|
5
|
+
export declare const sidebarPropSize: readonly ["s", "m", "l", "full", "none", "1/2", "1/3", "1/4", "2/3", "3/4"];
|
|
6
|
+
export type SidebarPropSize = typeof sidebarPropSize[number];
|
|
7
|
+
export type SidebarProps = PropsWithHTMLAttributes<{
|
|
8
|
+
isOpen?: boolean;
|
|
9
|
+
onClose?: () => void;
|
|
10
|
+
onOpen?: () => void;
|
|
11
|
+
hasOverlay?: boolean;
|
|
12
|
+
onClickOutside?: (event: MouseEvent) => void;
|
|
13
|
+
onEsc?: (event: KeyboardEvent) => void;
|
|
14
|
+
position?: SidebarPropPosition;
|
|
15
|
+
size?: SidebarPropSize;
|
|
16
|
+
rootClassName?: string;
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
container?: HTMLDivElement | React.RefObject<HTMLDivElement>;
|
|
19
|
+
afterClose?: () => void;
|
|
20
|
+
ignoreOutsideClicksRefs?: React.RefObject<HTMLElement>[];
|
|
21
|
+
border?: boolean;
|
|
22
|
+
}, HTMLDivElement>;
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated
|
|
25
|
+
*/
|
|
26
|
+
export type SidebarContentProps = {
|
|
27
|
+
className?: string;
|
|
28
|
+
children: React.ReactNode;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated
|
|
32
|
+
*/
|
|
33
|
+
export type SidebarActionsProps = {
|
|
34
|
+
className?: string;
|
|
35
|
+
children: React.ReactNode;
|
|
36
|
+
};
|
|
37
|
+
export interface SidebarComponent extends React.ForwardRefExoticComponent<SidebarProps>, AsTagAttribute<'div'> {
|
|
38
|
+
/**
|
|
39
|
+
* @deprecated
|
|
40
|
+
*/
|
|
41
|
+
Content: React.FC<SidebarContentProps>;
|
|
42
|
+
/**
|
|
43
|
+
* @deprecated
|
|
44
|
+
*/
|
|
45
|
+
Actions: React.FC<SidebarActionsProps>;
|
|
46
|
+
}
|
|
47
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":["sidebarPropPosition","sidebarPropSize"],"sources":["../../../../../src/components/Sidebar/types.ts"],"sourcesContent":["import { AsTagAttribute } from '##/utils/types/AsTags';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nconst sidebarPropPosition = ['right', 'bottom', 'left', 'top'] as const;\nexport type SidebarPropPosition = typeof sidebarPropPosition[number];\n\nexport const sidebarPropSize = [\n 's',\n 'm',\n 'l',\n 'full',\n 'none',\n '1/2',\n '1/3',\n '1/4',\n '2/3',\n '3/4',\n] as const;\n\nexport type SidebarPropSize = typeof sidebarPropSize[number];\n\nexport type SidebarProps = PropsWithHTMLAttributes<\n {\n isOpen?: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n hasOverlay?: boolean;\n onClickOutside?: (event: MouseEvent) => void;\n onEsc?: (event: KeyboardEvent) => void;\n position?: SidebarPropPosition;\n size?: SidebarPropSize;\n rootClassName?: string;\n children?: React.ReactNode;\n container?: HTMLDivElement | React.RefObject<HTMLDivElement>;\n afterClose?: () => void;\n ignoreOutsideClicksRefs?: React.RefObject<HTMLElement>[];\n border?: boolean;\n },\n HTMLDivElement\n>;\n\n/**\n * @deprecated\n */\nexport type SidebarContentProps = {\n className?: string;\n children: React.ReactNode;\n};\n\n/**\n * @deprecated\n */\nexport type SidebarActionsProps = {\n className?: string;\n children: React.ReactNode;\n};\n\nexport interface SidebarComponent\n extends React.ForwardRefExoticComponent<SidebarProps>,\n AsTagAttribute<'div'> {\n /**\n * @deprecated\n */\n Content: React.FC<SidebarContentProps>;\n /**\n * @deprecated\n */\n Actions: React.FC<SidebarActionsProps>;\n}\n"],"mappings":"AAGA,GAAMA,oBAAmB,CAAG,CAAC,OAAD,CAAU,QAAV,CAAoB,MAApB,CAA4B,KAA5B,CAA5B,CAGA,MAAO,IAAMC,gBAAe,CAAG,CAC7B,GAD6B,CAE7B,GAF6B,CAG7B,GAH6B,CAI7B,MAJ6B,CAK7B,MAL6B,CAM7B,KAN6B,CAO7B,KAP6B,CAQ7B,KAR6B,CAS7B,KAT6B,CAU7B,KAV6B,CAAxB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useAtom}from"@reatom/npm-react";import{getElementSize}from"../../hooks/useResizeObserved";import{useCreateAtom}from"../../utils/state/useCreateAtom";import{useResizeObservedAtom}from"../../utils/state/useResizeObservedAtom";import{useSendToAtom}from"../../utils/state/useSendToAtom";var coefficient=60;export var useAnimateTimeout=function(a,b){var c=useResizeObservedAtom(useCreateAtom(function(b){return[b.spy(a)]}),getElementSize),d=useSendToAtom(b),e=useCreateAtom(function(a){var b=a.spy(c)[0]||{width:0,height:0},e=a.spy(d),f="right"===e||"left"===e?b.width:b.height,g=Math.ceil(f/100*coefficient);return 150>g?150:Math.min(g,400)});return useAtom(e)[0]};
|
|
2
|
+
//# sourceMappingURL=useAnimateTimeout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAnimateTimeout.js","names":["useAtom","getElementSize","useCreateAtom","useResizeObservedAtom","useSendToAtom","coefficient","useAnimateTimeout","windowElAtom","position","dimensionsAtom","ctx","spy","positionAtom","useAnimateTimeoutAtom","dimensions","width","height","size","timeout","Math","ceil","min"],"sources":["../../../../../src/components/Sidebar/useAnimateTimeout.ts"],"sourcesContent":["import { AtomMut } from '@reatom/core';\nimport { useAtom } from '@reatom/npm-react';\n\nimport { getElementSize } from '##/hooks/useResizeObserved';\nimport { useCreateAtom } from '##/utils/state/useCreateAtom';\nimport { useResizeObservedAtom } from '##/utils/state/useResizeObservedAtom';\nimport { useSendToAtom } from '##/utils/state/useSendToAtom';\n\nconst coefficient = 60;\n\nexport const useAnimateTimeout = (\n windowElAtom: AtomMut<HTMLDivElement | null>,\n position: 'right' | 'bottom' | 'left' | 'top',\n) => {\n const dimensionsAtom = useResizeObservedAtom(\n useCreateAtom((ctx) => [ctx.spy(windowElAtom)]),\n getElementSize,\n );\n\n const positionAtom = useSendToAtom(position);\n\n const useAnimateTimeoutAtom = useCreateAtom((ctx) => {\n const dimensions = ctx.spy(dimensionsAtom)[0] || { width: 0, height: 0 };\n const position = ctx.spy(positionAtom);\n\n const size =\n position === 'right' || position === 'left'\n ? dimensions.width\n : dimensions.height;\n\n const timeout = Math.ceil((size / 100) * coefficient);\n\n return timeout < 150 ? 150 : Math.min(timeout, 400);\n });\n\n return useAtom(useAnimateTimeoutAtom)[0];\n};\n"],"mappings":"AACA,OAASA,OAAT,KAAwB,mBAAxB,CAEA,OAASC,cAAT,qCACA,OAASC,aAAT,uCACA,OAASC,qBAAT,+CACA,OAASC,aAAT,uCAEA,GAAMC,YAAW,CAAG,EAApB,CAEA,MAAO,IAAMC,kBAAiB,CAAG,SAC/BC,CAD+B,CAE/BC,CAF+B,CAG5B,IACGC,EAAc,CAAGN,qBAAqB,CAC1CD,aAAa,CAAC,SAACQ,CAAD,QAAS,CAACA,CAAG,CAACC,GAAJ,CAAQJ,CAAR,CAAD,CAAT,CAAD,CAD6B,CAE1CN,cAF0C,CADzC,CAMGW,CAAY,CAAGR,aAAa,CAACI,CAAD,CAN/B,CAQGK,CAAqB,CAAGX,aAAa,CAAC,SAACQ,CAAD,CAAS,IAC7CI,EAAU,CAAGJ,CAAG,CAACC,GAAJ,CAAQF,CAAR,EAAwB,CAAxB,GAA8B,CAAEM,KAAK,CAAE,CAAT,CAAYC,MAAM,CAAE,CAApB,CADE,CAE7CR,CAAQ,CAAGE,CAAG,CAACC,GAAJ,CAAQC,CAAR,CAFkC,CAI7CK,CAAI,CACK,OAAb,GAAAT,CAAQ,EAA6B,MAAb,GAAAA,CAAxB,CACIM,CAAU,CAACC,KADf,CAEID,CAAU,CAACE,MAPkC,CAS7CE,CAAO,CAAGC,IAAI,CAACC,IAAL,CAAWH,CAAI,CAAG,GAAR,CAAeZ,WAAzB,CATmC,CAWnD,MAAiB,IAAV,CAAAa,CAAO,CAAS,GAAT,CAAeC,IAAI,CAACE,GAAL,CAASH,CAAT,CAAkB,GAAlB,CAC9B,CAZ0C,CARxC,CAsBH,MAAOlB,QAAO,CAACa,CAAD,CAAP,CAA+B,CAA/B,CACR,CA1BM"}
|
|
@@ -11,7 +11,7 @@ export declare function withDefaultGetters(props: ThemeTogglerProps): {
|
|
|
11
11
|
value: ThemeTogglerItemDefault;
|
|
12
12
|
onChange: import("./types").ThemeTogglerPropOnChange<ThemeTogglerItemDefault>;
|
|
13
13
|
direction?: import("../Popover").Direction;
|
|
14
|
-
possibleDirections?:
|
|
14
|
+
possibleDirections?: import("../Popover").Direction[];
|
|
15
15
|
children?: never;
|
|
16
16
|
view?: import("../Button").ButtonPropView;
|
|
17
17
|
defaultChecked?: boolean | undefined | undefined;
|
|
@@ -26,7 +26,7 @@ export type ThemeTogglerProps<ITEM = ThemeTogglerItemDefault> = PropsWithHTMLAtt
|
|
|
26
26
|
getItemLabel?: ThemeTogglerPropGetItemLabel<ITEM>;
|
|
27
27
|
getItemIcon?: ThemeTogglerPropGetItemIcon<ITEM>;
|
|
28
28
|
direction?: Direction;
|
|
29
|
-
possibleDirections?:
|
|
29
|
+
possibleDirections?: Direction[];
|
|
30
30
|
children?: never;
|
|
31
31
|
view?: ButtonPropView;
|
|
32
32
|
}, HTMLButtonElement> & (ITEM extends {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["themeTogglerPropSize","themeTogglerPropSizeDefault"],"sources":["../../../../../src/components/ThemeToggler/types.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\n\nimport { ButtonPropView } from '##/components/Button';\nimport { Direction } from '##/components/Popover';\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport const themeTogglerPropSize = ['m', 'l', 's', 'xs'] as const;\nexport type ThemeTogglerPropSize = typeof themeTogglerPropSize[number];\nexport const themeTogglerPropSizeDefault: ThemeTogglerPropSize =\n themeTogglerPropSize[0];\n\nexport type ThemeTogglerPropOnChange<ITEM> = (\n value: ITEM,\n props: {\n e: React.MouseEvent;\n },\n) => void;\nexport type ThemeTogglerPropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type ThemeTogglerPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type ThemeTogglerPropGetItemIcon<ITEM> = (item: ITEM) => IconComponent;\n\nexport type ThemeTogglerItemDefault = {\n key: string;\n label: string;\n icon: IconComponent;\n};\n\nexport type ThemeTogglerProps<ITEM = ThemeTogglerItemDefault> =\n PropsWithHTMLAttributesAndRef<\n {\n size?: ThemeTogglerPropSize;\n className?: string;\n items: ITEM[];\n value: ITEM;\n onChange: ThemeTogglerPropOnChange<ITEM>;\n getItemKey?: ThemeTogglerPropGetItemKey<ITEM>;\n getItemLabel?: ThemeTogglerPropGetItemLabel<ITEM>;\n getItemIcon?: ThemeTogglerPropGetItemIcon<ITEM>;\n direction?: Direction;\n possibleDirections?:
|
|
1
|
+
{"version":3,"file":"types.js","names":["themeTogglerPropSize","themeTogglerPropSizeDefault"],"sources":["../../../../../src/components/ThemeToggler/types.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\n\nimport { ButtonPropView } from '##/components/Button';\nimport { Direction } from '##/components/Popover';\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport const themeTogglerPropSize = ['m', 'l', 's', 'xs'] as const;\nexport type ThemeTogglerPropSize = typeof themeTogglerPropSize[number];\nexport const themeTogglerPropSizeDefault: ThemeTogglerPropSize =\n themeTogglerPropSize[0];\n\nexport type ThemeTogglerPropOnChange<ITEM> = (\n value: ITEM,\n props: {\n e: React.MouseEvent;\n },\n) => void;\nexport type ThemeTogglerPropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type ThemeTogglerPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type ThemeTogglerPropGetItemIcon<ITEM> = (item: ITEM) => IconComponent;\n\nexport type ThemeTogglerItemDefault = {\n key: string;\n label: string;\n icon: IconComponent;\n};\n\nexport type ThemeTogglerProps<ITEM = ThemeTogglerItemDefault> =\n PropsWithHTMLAttributesAndRef<\n {\n size?: ThemeTogglerPropSize;\n className?: string;\n items: ITEM[];\n value: ITEM;\n onChange: ThemeTogglerPropOnChange<ITEM>;\n getItemKey?: ThemeTogglerPropGetItemKey<ITEM>;\n getItemLabel?: ThemeTogglerPropGetItemLabel<ITEM>;\n getItemIcon?: ThemeTogglerPropGetItemIcon<ITEM>;\n direction?: Direction;\n possibleDirections?: Direction[];\n children?: never;\n view?: ButtonPropView;\n },\n HTMLButtonElement\n > &\n (ITEM extends { key: ThemeTogglerItemDefault['key'] }\n ? {}\n : { getItemKey: ThemeTogglerPropGetItemLabel<ITEM> }) &\n (ITEM extends { label: ThemeTogglerItemDefault['label'] }\n ? {}\n : { getItemLabel: ThemeTogglerPropGetItemLabel<ITEM> }) &\n (ITEM extends { icon: ThemeTogglerItemDefault['icon'] }\n ? {}\n : { getItemIcon: ThemeTogglerPropGetItemIcon<ITEM> });\n\nexport type ThemeTogglerComponent = <ITEM>(\n props: ThemeTogglerProps<ITEM>,\n) => React.ReactNode | null;\n"],"mappings":"AAMA,MAAO,IAAMA,qBAAoB,CAAG,CAAC,GAAD,CAAM,GAAN,CAAW,GAAX,CAAgB,IAAhB,CAA7B,CAEP,MAAO,IAAMC,4BAAiD,CAC5DD,oBAAoB,CAAC,CAAD,CADf"}
|
|
@@ -12,7 +12,7 @@ export type TooltipProps = PropsWithJsxAttributes<{
|
|
|
12
12
|
status?: TooltipPropStatus;
|
|
13
13
|
direction?: Direction;
|
|
14
14
|
spareDirection?: Direction;
|
|
15
|
-
possibleDirections?:
|
|
15
|
+
possibleDirections?: Direction[];
|
|
16
16
|
isInteractive?: boolean;
|
|
17
17
|
children: React.ReactNode;
|
|
18
18
|
onClickOutside?: ClickOutsideHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["tooltipPropSizes","tooltipPropSizesDefault","tooltipPropStatus"],"sources":["../../../../../src/components/Tooltip/types.ts"],"sourcesContent":["import { ClickOutsideHandler } from '##/hooks/useClickOutside/useClickOutside';\nimport { PropsWithJsxAttributes } from '##/utils/types/PropsWithJsxAttributes';\n\nimport { Direction, PositioningProps } from '../Popover/Popover';\n\nexport const tooltipPropSizes = ['m', 's', 'l'] as const;\nexport type TooltipPropSize = typeof tooltipPropSizes[number];\nexport const tooltipPropSizesDefault: TooltipPropSize = tooltipPropSizes[0];\n\nexport const tooltipPropStatus = [\n 'normal',\n 'alert',\n 'success',\n 'warning',\n] as const;\nexport type TooltipPropStatus = typeof tooltipPropStatus[number];\n\nexport type TooltipProps = PropsWithJsxAttributes<\n {\n isOpen?: boolean;\n size?: TooltipPropSize;\n status?: TooltipPropStatus;\n direction?: Direction;\n spareDirection?: Direction;\n possibleDirections?:
|
|
1
|
+
{"version":3,"file":"types.js","names":["tooltipPropSizes","tooltipPropSizesDefault","tooltipPropStatus"],"sources":["../../../../../src/components/Tooltip/types.ts"],"sourcesContent":["import { ClickOutsideHandler } from '##/hooks/useClickOutside/useClickOutside';\nimport { PropsWithJsxAttributes } from '##/utils/types/PropsWithJsxAttributes';\n\nimport { Direction, PositioningProps } from '../Popover/Popover';\n\nexport const tooltipPropSizes = ['m', 's', 'l'] as const;\nexport type TooltipPropSize = typeof tooltipPropSizes[number];\nexport const tooltipPropSizesDefault: TooltipPropSize = tooltipPropSizes[0];\n\nexport const tooltipPropStatus = [\n 'normal',\n 'alert',\n 'success',\n 'warning',\n] as const;\nexport type TooltipPropStatus = typeof tooltipPropStatus[number];\n\nexport type TooltipProps = PropsWithJsxAttributes<\n {\n isOpen?: boolean;\n size?: TooltipPropSize;\n status?: TooltipPropStatus;\n direction?: Direction;\n spareDirection?: Direction;\n possibleDirections?: Direction[];\n isInteractive?: boolean;\n children: React.ReactNode;\n onClickOutside?: ClickOutsideHandler;\n className?: string;\n offset?: number;\n onSetDirection?: (direction: Direction) => void;\n viewportRef?: React.RefObject<HTMLElement>;\n container?: Element;\n } & PositioningProps\n>;\n"],"mappings":"AAKA,MAAO,IAAMA,iBAAgB,CAAG,CAAC,GAAD,CAAM,GAAN,CAAW,GAAX,CAAzB,CAEP,MAAO,IAAMC,wBAAwC,CAAGD,gBAAgB,CAAC,CAAD,CAAjE,CAEP,MAAO,IAAME,kBAAiB,CAAG,CAC/B,QAD+B,CAE/B,OAF+B,CAG/B,SAH+B,CAI/B,SAJ+B,CAA1B"}
|
|
@@ -13,7 +13,7 @@ export type TooltipProps = PropsWithJsxAttributes<{
|
|
|
13
13
|
status?: TooltipPropStatus;
|
|
14
14
|
direction?: Direction;
|
|
15
15
|
spareDirection?: Direction;
|
|
16
|
-
possibleDirections?:
|
|
16
|
+
possibleDirections?: Direction[];
|
|
17
17
|
isInteractive?: boolean;
|
|
18
18
|
children: React.ReactNode;
|
|
19
19
|
onClickOutside?: ClickOutsideHandler;
|