@skbkontur/react-ui 3.10.0 → 3.11.0-latest
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/LICENSE +21 -21
- package/cjs/components/Button/Button.d.ts +1 -1
- package/cjs/components/Button/Button.js +4 -3
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.d.ts +1 -0
- package/cjs/components/Button/Button.styles.js +38 -28
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.md +23 -23
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +2 -2
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/Gapped/Gapped.md +43 -43
- package/cjs/components/Hint/Hint.d.ts +2 -1
- package/cjs/components/Hint/Hint.js +0 -16
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.md +13 -13
- package/cjs/components/Kebab/Kebab.d.ts +2 -2
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +1 -1
- package/cjs/components/MenuItem/MenuItem.js +1 -4
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.md +9 -9
- package/cjs/components/RadioGroup/RadioGroup.md +43 -43
- package/cjs/components/ScrollContainer/ScrollBar.js +4 -2
- package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js +2 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.styles.js +12 -8
- package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +1 -0
- package/cjs/components/SidePage/SidePage.js +14 -1
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +8 -0
- package/cjs/components/Spinner/Spinner.js +21 -3
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Spinner/Spinner.md +1 -0
- package/cjs/components/Spinner/Spinner.styles.d.ts +2 -1
- package/cjs/components/Spinner/Spinner.styles.js +13 -10
- package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
- package/cjs/components/Switcher/Switcher.styles.js +4 -2
- package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
- package/cjs/components/Token/Token.md +112 -112
- package/cjs/components/Tooltip/Tooltip.d.ts +8 -21
- package/cjs/components/Tooltip/Tooltip.js +14 -27
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +2 -2
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +2 -1
- package/cjs/index.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +5 -4
- package/cjs/internal/Popup/Popup.js +13 -24
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupHelper.d.ts +2 -2
- package/cjs/internal/Popup/PopupHelper.js.map +1 -1
- package/cjs/internal/Popup/types.d.ts +1 -0
- package/cjs/internal/Popup/types.js +1 -0
- package/cjs/internal/Popup/types.js.map +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +3 -3
- package/cjs/internal/PopupMenu/PopupMenu.js +17 -3
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
- package/cjs/internal/PopupMenu/validatePositions.js +2 -4
- package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.md +13 -13
- package/cjs/internal/icons/SpinnerIcon.d.ts +4 -1
- package/cjs/internal/icons/SpinnerIcon.js +5 -2
- package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
- package/cjs/lib/ModalStack.js +16 -17
- package/cjs/lib/ModalStack.js.map +1 -1
- package/cjs/lib/theming/AnimationKeyframes.js +1 -1
- package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
- package/cjs/lib/theming/useTheme.d.ts +1 -0
- package/cjs/lib/theming/useTheme.js +7 -0
- package/cjs/lib/theming/useTheme.js.map +1 -0
- package/cjs/lib/utils.d.ts +32 -0
- package/cjs/lib/utils.js +62 -2
- package/cjs/lib/utils.js.map +1 -1
- package/cjs/typings/html-props.d.ts +123 -0
- package/components/Button/Button/Button.js +3 -7
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -1
- package/components/Button/Button.styles/Button.styles.js +31 -28
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Button/Button.styles.d.ts +1 -0
- package/components/CurrencyLabel/CurrencyLabel.md +23 -23
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +2 -2
- package/components/Gapped/Gapped.md +43 -43
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +2 -1
- package/components/Input/Input.md +13 -13
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +2 -2
- package/components/MenuItem/MenuItem/MenuItem.js +2 -7
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +1 -1
- package/components/PasswordInput/PasswordInput.md +9 -9
- package/components/RadioGroup/RadioGroup.md +43 -43
- package/components/ScrollContainer/ScrollBar/ScrollBar.js +6 -2
- package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +2 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +11 -8
- package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
- package/components/SidePage/SidePage/SidePage.js +19 -0
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +1 -0
- package/components/Spinner/Spinner/Spinner.js +6 -3
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +8 -0
- package/components/Spinner/Spinner.md +1 -0
- package/components/Spinner/Spinner.styles/Spinner.styles.js +12 -9
- package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
- package/components/Spinner/Spinner.styles.d.ts +2 -1
- package/components/Switcher/Switcher.styles/Switcher.styles.js +3 -1
- package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
- package/components/Token/Token.md +112 -112
- package/components/Tooltip/Tooltip/Tooltip.js +2 -2
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +8 -21
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +2 -2
- package/index.d.ts +1 -0
- package/index.js +2 -1
- package/index.js.map +1 -1
- package/internal/Popup/Popup/Popup.js +3 -2
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +5 -4
- package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
- package/internal/Popup/PopupHelper.d.ts +2 -2
- package/internal/Popup/types/package.json +6 -0
- package/internal/Popup/types/types.js +0 -0
- package/internal/Popup/types/types.js.map +1 -0
- package/internal/Popup/types.d.ts +1 -0
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +3 -3
- package/internal/PopupMenu/validatePositions/validatePositions.js +2 -2
- package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
- package/internal/PopupMenu/validatePositions.d.ts +2 -2
- package/internal/ThemeShowcase/ThemeShowcase.md +13 -13
- package/internal/icons/SpinnerIcon/SpinnerIcon.js +5 -2
- package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
- package/internal/icons/SpinnerIcon.d.ts +4 -1
- package/lib/ModalStack/ModalStack.js +9 -13
- package/lib/ModalStack/ModalStack.js.map +1 -1
- package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +1 -1
- package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
- package/lib/theming/useTheme/package.json +6 -0
- package/lib/theming/useTheme/useTheme.js +5 -0
- package/lib/theming/useTheme/useTheme.js.map +1 -0
- package/lib/theming/useTheme.d.ts +1 -0
- package/lib/utils/utils.js +66 -0
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +32 -0
- package/package.json +5 -5
- package/typings/html-props.d.ts +123 -0
- package/cjs/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
- package/cjs/internal/PopupMenu/PopupMenuPositions.js +0 -15
- package/cjs/internal/PopupMenu/PopupMenuPositions.js.map +0 -1
- package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js +0 -1
- package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js.map +0 -1
- package/internal/PopupMenu/PopupMenuPositions/package.json +0 -6
- package/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["SidePage.tsx"],"names":["TRANSITION_TIMEOUT","SidePage","state","hasHeader","hasFooter","hasPanel","theme","stackSubscription","layoutRef","footer","rootRef","React","createRef","updateLayout","update","getSidePageContextProps","requestClose","getWidth","footerRef","setHasHeader","setHasFooter","setHasPanel","clientWidth","handleStackChange","stack","sidePages","filter","x","props","fromLeft","currentSidePagePosition","indexOf","hasMargin","length","hasShadow","hasBackground","ModalStack","isBlocking","setState","stackPosition","handleClickOutside","e","ignoreBackgroundClick","MouseEvent","clientX","document","documentElement","handleKeyDown","disableClose","onClose","ref","componentDidMount","window","addEventListener","add","componentWillUnmount","removeEventListener","remove","render","renderMain","blockBackground","disableAnimations","renderShadow","getTransitionNames","enter","exit","renderContainer","width","disableFocusLock","offset","styles","root","LayoutEvents","emit","right","left","focusLock","wrapper","wrapperLeft","wrapperMarginLeft","wrapperMarginRight","shadow","_","children","overlay","background","backgroundGray","transition","transitionRight","transitionLeft","enterActive","transitionActive","transitionLeave","exitActive","transitionLeaveActive","appear","appearActive","Component","__KONTUR_REACT_UI__","Header","SidePageHeader","Body","SidePageBody","Footer","SidePageFooter","Container","SidePageContainer","defaultProps","isTestEnv"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport FocusLock from 'react-focus-lock';\n\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\n\nimport { SidePageBody } from './SidePageBody';\nimport { SidePageContainer } from './SidePageContainer';\nimport { SidePageContext, SidePageContextType } from './SidePageContext';\nimport { SidePageFooter } from './SidePageFooter';\nimport { SidePageHeader } from './SidePageHeader';\nimport { styles } from './SidePage.styles';\n\nexport interface SidePageProps extends CommonProps {\n /**\n * Добавить блокирующий фон, когда сайдпейдж открыт\n */\n blockBackground?: boolean;\n\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия сайдпейджа\n */\n disableClose?: boolean;\n\n /**\n * Не закрывать сайдпейдж при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Задать ширину сайдпейджа\n */\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие сайдпейджа (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Показывать сайдпэйдж слева\n *\n */\n fromLeft?: boolean;\n\n /**\n * Отключить анимации\n *\n */\n disableAnimations?: boolean;\n\n /**\n * Работает только при заблокированном фоне: `blockBackground = true`\n */\n disableFocusLock: boolean;\n\n /**\n * задает отступ от края экрана\n */\n offset?: number | string;\n}\n\nexport interface SidePageState {\n stackPosition?: number;\n hasMargin?: boolean;\n hasShadow?: boolean;\n hasBackground?: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nconst TRANSITION_TIMEOUT = 200;\n\n/**\n * Сайдпейдж\n *\n * Содержит в себе три компоненты: **SidePage.Header**,\n * **SidePage.Body** и **SidePage.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n */\nexport class SidePage extends React.Component<SidePageProps, SidePageState> {\n public static __KONTUR_REACT_UI__ = 'SidePage';\n\n public static Header = SidePageHeader;\n public static Body = SidePageBody;\n public static Footer = SidePageFooter;\n public static Container = SidePageContainer;\n public state: SidePageState = {\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private layoutRef: HTMLElement | null = null;\n private footer: SidePageFooter | null = null;\n private rootRef = React.createRef<HTMLDivElement>();\n\n public componentDidMount() {\n window.addEventListener('keydown', this.handleKeyDown);\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n }\n\n public componentWillUnmount() {\n window.removeEventListener('keydown', this.handleKeyDown);\n if (this.stackSubscription != null) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n }\n\n /**\n * Обновляет разметку компонента.\n * @public\n */\n public updateLayout = (): void => {\n if (this.footer) {\n this.footer.update();\n }\n };\n\n public static defaultProps = {\n disableAnimations: isTestEnv,\n disableFocusLock: true,\n offset: 0,\n };\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { blockBackground, disableAnimations } = this.props;\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <div>\n {blockBackground && this.renderShadow()}\n <CSSTransition\n in\n classNames={this.getTransitionNames()}\n appear={!disableAnimations}\n enter={!disableAnimations}\n exit={false}\n timeout={{\n enter: TRANSITION_TIMEOUT,\n exit: TRANSITION_TIMEOUT,\n }}\n nodeRef={this.rootRef}\n >\n {this.renderContainer()}\n </CSSTransition>\n </div>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private renderContainer(): JSX.Element {\n const { width, blockBackground, fromLeft, disableFocusLock, offset } = this.props;\n\n return (\n <ZIndex\n priority={'Sidepage'}\n data-tid=\"SidePage__root\"\n className={cx({\n [styles.root()]: true,\n })}\n onScroll={LayoutEvents.emit}\n createStackingContext\n style={{\n width: width || (blockBackground ? 800 : 500),\n right: fromLeft ? 'auto' : offset,\n left: fromLeft ? offset : 'auto',\n }}\n wrapperRef={this.rootRef}\n >\n <FocusLock disabled={disableFocusLock || !blockBackground} autoFocus={false} className={styles.focusLock()}>\n <RenderLayer onClickOutside={this.handleClickOutside} active>\n <div\n data-tid=\"SidePage__container\"\n className={cx(styles.wrapper(this.theme), {\n [styles.wrapperLeft()]: fromLeft,\n [styles.wrapperMarginLeft()]: this.state.hasMargin && fromLeft,\n [styles.wrapperMarginRight()]: this.state.hasMargin && !fromLeft,\n [styles.shadow(this.theme)]: this.state.hasShadow,\n })}\n ref={(_) => (this.layoutRef = _)}\n >\n <SidePageContext.Provider value={this.getSidePageContextProps()}>\n {this.props.children}\n </SidePageContext.Provider>\n </div>\n </RenderLayer>\n </FocusLock>\n </ZIndex>\n );\n }\n\n private getSidePageContextProps = (): SidePageContextType => {\n return {\n hasHeader: this.state.hasHeader,\n hasFooter: this.state.hasFooter,\n hasPanel: this.state.hasPanel,\n requestClose: this.requestClose,\n getWidth: this.getWidth,\n updateLayout: this.updateLayout,\n footerRef: this.footerRef,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n };\n\n private getWidth = () => {\n if (!this.layoutRef) {\n return 'auto';\n }\n return this.layoutRef.clientWidth;\n };\n\n private renderShadow(): JSX.Element {\n return (\n <ZIndex priority={'Sidepage'} className={styles.overlay()} onScroll={LayoutEvents.emit}>\n <HideBodyVerticalScroll key=\"hbvs\" />\n <div\n key=\"overlay\"\n className={cx({\n [styles.background()]: true,\n [styles.backgroundGray(this.theme)]: this.state.hasBackground,\n })}\n />\n </ZIndex>\n );\n }\n\n private getTransitionNames(): Record<string, string> {\n const transition = this.props.fromLeft ? styles.transitionRight : styles.transitionLeft;\n\n return {\n enter: transition(),\n enterActive: styles.transitionActive(),\n exit: styles.transitionLeave(),\n exitActive: styles.transitionLeaveActive(),\n appear: transition(),\n appearActive: styles.transitionActive(),\n };\n }\n\n private handleStackChange = (stack: ReadonlyArray<React.Component>) => {\n const sidePages = stack.filter((x) => x instanceof SidePage && x.props.fromLeft === this.props.fromLeft);\n const currentSidePagePosition = sidePages.indexOf(this);\n\n const hasMargin = sidePages.length > 1 && currentSidePagePosition === sidePages.length - 1;\n const hasShadow = sidePages.length < 3 || currentSidePagePosition > sidePages.length - 3;\n const hasBackground = ModalStack.isBlocking(this);\n\n this.setState({\n stackPosition: stack.indexOf(this),\n hasMargin,\n hasShadow,\n hasBackground,\n });\n };\n\n private handleClickOutside = (e: Event) => {\n if (this.state.stackPosition === 0 && !this.props.ignoreBackgroundClick) {\n // ignore mousedown on window scrollbar\n if (e instanceof MouseEvent && e.clientX > document.documentElement.clientWidth) {\n return;\n }\n this.requestClose();\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private footerRef = (ref: SidePageFooter | null) => {\n this.footer = ref;\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["SidePage.tsx"],"names":["TRANSITION_TIMEOUT","SidePage","state","hasHeader","hasFooter","hasPanel","theme","stackSubscription","layoutRef","footer","rootRef","React","createRef","updateLayout","update","disablePageScroll","e","layout","reachedTop","scrollTop","deltaY","reachedBottom","scrollHeight","offsetHeight","props","blockBackground","preventDefault","getSidePageContextProps","requestClose","getWidth","footerRef","setHasHeader","setHasFooter","setHasPanel","clientWidth","handleStackChange","stack","sidePages","filter","x","fromLeft","currentSidePagePosition","indexOf","hasMargin","length","hasShadow","hasBackground","ModalStack","isBlocking","setState","stackPosition","handleClickOutside","ignoreBackgroundClick","MouseEvent","clientX","document","documentElement","handleKeyDown","disableClose","onClose","ref","componentDidMount","window","addEventListener","current","passive","add","componentWillUnmount","removeEventListener","remove","render","renderMain","disableAnimations","renderShadow","getTransitionNames","enter","exit","renderContainer","width","disableFocusLock","offset","styles","root","LayoutEvents","emit","right","left","focusLock","wrapper","wrapperLeft","wrapperMarginLeft","wrapperMarginRight","shadow","_","children","overlay","background","backgroundGray","transition","transitionRight","transitionLeft","enterActive","transitionActive","transitionLeave","exitActive","transitionLeaveActive","appear","appearActive","Component","__KONTUR_REACT_UI__","Header","SidePageHeader","Body","SidePageBody","Footer","SidePageFooter","Container","SidePageContainer","defaultProps","isTestEnv"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport FocusLock from 'react-focus-lock';\n\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\n\nimport { SidePageBody } from './SidePageBody';\nimport { SidePageContainer } from './SidePageContainer';\nimport { SidePageContext, SidePageContextType } from './SidePageContext';\nimport { SidePageFooter } from './SidePageFooter';\nimport { SidePageHeader } from './SidePageHeader';\nimport { styles } from './SidePage.styles';\n\nexport interface SidePageProps extends CommonProps {\n /**\n * Добавить блокирующий фон, когда сайдпейдж открыт\n */\n blockBackground?: boolean;\n\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия сайдпейджа\n */\n disableClose?: boolean;\n\n /**\n * Не закрывать сайдпейдж при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Задать ширину сайдпейджа\n */\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие сайдпейджа (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Показывать сайдпэйдж слева\n *\n */\n fromLeft?: boolean;\n\n /**\n * Отключить анимации\n *\n */\n disableAnimations?: boolean;\n\n /**\n * Работает только при заблокированном фоне: `blockBackground = true`\n */\n disableFocusLock: boolean;\n\n /**\n * задает отступ от края экрана\n */\n offset?: number | string;\n}\n\nexport interface SidePageState {\n stackPosition?: number;\n hasMargin?: boolean;\n hasShadow?: boolean;\n hasBackground?: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nconst TRANSITION_TIMEOUT = 200;\n\n/**\n * Сайдпейдж\n *\n * Содержит в себе три компоненты: **SidePage.Header**,\n * **SidePage.Body** и **SidePage.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n */\nexport class SidePage extends React.Component<SidePageProps, SidePageState> {\n public static __KONTUR_REACT_UI__ = 'SidePage';\n\n public static Header = SidePageHeader;\n public static Body = SidePageBody;\n public static Footer = SidePageFooter;\n public static Container = SidePageContainer;\n public state: SidePageState = {\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private layoutRef: HTMLElement | null = null;\n private footer: SidePageFooter | null = null;\n private rootRef = React.createRef<HTMLDivElement>();\n\n public componentDidMount() {\n window.addEventListener('keydown', this.handleKeyDown);\n this.rootRef.current?.addEventListener('wheel', this.disablePageScroll, { passive: false });\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n }\n\n public componentWillUnmount() {\n window.removeEventListener('keydown', this.handleKeyDown);\n this.rootRef.current?.removeEventListener('wheel', this.disablePageScroll);\n if (this.stackSubscription != null) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n }\n\n /**\n * Обновляет разметку компонента.\n * @public\n */\n public updateLayout = (): void => {\n if (this.footer) {\n this.footer.update();\n }\n };\n\n public static defaultProps = {\n disableAnimations: isTestEnv,\n disableFocusLock: true,\n offset: 0,\n };\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { blockBackground, disableAnimations } = this.props;\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <div>\n {blockBackground && this.renderShadow()}\n <CSSTransition\n in\n classNames={this.getTransitionNames()}\n appear={!disableAnimations}\n enter={!disableAnimations}\n exit={false}\n timeout={{\n enter: TRANSITION_TIMEOUT,\n exit: TRANSITION_TIMEOUT,\n }}\n nodeRef={this.rootRef}\n >\n {this.renderContainer()}\n </CSSTransition>\n </div>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private renderContainer(): JSX.Element {\n const { width, blockBackground, fromLeft, disableFocusLock, offset } = this.props;\n\n return (\n <ZIndex\n priority={'Sidepage'}\n data-tid=\"SidePage__root\"\n className={cx({\n [styles.root()]: true,\n })}\n onScroll={LayoutEvents.emit}\n createStackingContext\n style={{\n width: width || (blockBackground ? 800 : 500),\n right: fromLeft ? 'auto' : offset,\n left: fromLeft ? offset : 'auto',\n }}\n wrapperRef={this.rootRef}\n >\n <FocusLock disabled={disableFocusLock || !blockBackground} autoFocus={false} className={styles.focusLock()}>\n <RenderLayer onClickOutside={this.handleClickOutside} active>\n <div\n data-tid=\"SidePage__container\"\n className={cx(styles.wrapper(this.theme), {\n [styles.wrapperLeft()]: fromLeft,\n [styles.wrapperMarginLeft()]: this.state.hasMargin && fromLeft,\n [styles.wrapperMarginRight()]: this.state.hasMargin && !fromLeft,\n [styles.shadow(this.theme)]: this.state.hasShadow,\n })}\n ref={(_) => (this.layoutRef = _)}\n >\n <SidePageContext.Provider value={this.getSidePageContextProps()}>\n {this.props.children}\n </SidePageContext.Provider>\n </div>\n </RenderLayer>\n </FocusLock>\n </ZIndex>\n );\n }\n\n private disablePageScroll = (e: WheelEvent) => {\n const layout = this.layoutRef;\n if (!layout) return;\n const reachedTop = layout.scrollTop <= 0 && e.deltaY < 0;\n const reachedBottom = layout.scrollTop >= layout.scrollHeight - layout.offsetHeight && e.deltaY > 0;\n\n if (!this.props.blockBackground && (reachedTop || reachedBottom)) {\n e.preventDefault();\n }\n };\n\n private getSidePageContextProps = (): SidePageContextType => {\n return {\n hasHeader: this.state.hasHeader,\n hasFooter: this.state.hasFooter,\n hasPanel: this.state.hasPanel,\n requestClose: this.requestClose,\n getWidth: this.getWidth,\n updateLayout: this.updateLayout,\n footerRef: this.footerRef,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n };\n\n private getWidth = () => {\n if (!this.layoutRef) {\n return 'auto';\n }\n return this.layoutRef.clientWidth;\n };\n\n private renderShadow(): JSX.Element {\n return (\n <ZIndex priority={'Sidepage'} className={styles.overlay()} onScroll={LayoutEvents.emit}>\n <HideBodyVerticalScroll key=\"hbvs\" />\n <div\n key=\"overlay\"\n className={cx({\n [styles.background()]: true,\n [styles.backgroundGray(this.theme)]: this.state.hasBackground,\n })}\n />\n </ZIndex>\n );\n }\n\n private getTransitionNames(): Record<string, string> {\n const transition = this.props.fromLeft ? styles.transitionRight : styles.transitionLeft;\n\n return {\n enter: transition(),\n enterActive: styles.transitionActive(),\n exit: styles.transitionLeave(),\n exitActive: styles.transitionLeaveActive(),\n appear: transition(),\n appearActive: styles.transitionActive(),\n };\n }\n\n private handleStackChange = (stack: ReadonlyArray<React.Component>) => {\n const sidePages = stack.filter((x) => x instanceof SidePage && x.props.fromLeft === this.props.fromLeft);\n const currentSidePagePosition = sidePages.indexOf(this);\n\n const hasMargin = sidePages.length > 1 && currentSidePagePosition === sidePages.length - 1;\n const hasShadow = sidePages.length < 3 || currentSidePagePosition > sidePages.length - 3;\n const hasBackground = ModalStack.isBlocking(this);\n\n this.setState({\n stackPosition: stack.indexOf(this),\n hasMargin,\n hasShadow,\n hasBackground,\n });\n };\n\n private handleClickOutside = (e: Event) => {\n if (this.state.stackPosition === 0 && !this.props.ignoreBackgroundClick) {\n // ignore mousedown on window scrollbar\n if (e instanceof MouseEvent && e.clientX > document.documentElement.clientWidth) {\n return;\n }\n this.requestClose();\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private footerRef = (ref: SidePageFooter | null) => {\n this.footer = ref;\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"]}
|
|
@@ -11,6 +11,14 @@ export interface SpinnerProps extends CommonProps {
|
|
|
11
11
|
* @default normal
|
|
12
12
|
*/
|
|
13
13
|
type: SpinnerType;
|
|
14
|
+
/**
|
|
15
|
+
* Толщина спиннера
|
|
16
|
+
*/
|
|
17
|
+
width?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Цвет спиннера
|
|
20
|
+
*/
|
|
21
|
+
color?: React.CSSProperties['color'];
|
|
14
22
|
}
|
|
15
23
|
/**
|
|
16
24
|
* DRAFT - инлайн-лоадер
|
|
@@ -28,6 +28,14 @@ var types = {
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
31
39
|
|
|
32
40
|
|
|
33
41
|
/**
|
|
@@ -96,10 +104,20 @@ Spinner = (_dec = (0, _decorators.locale)('Spinner', _locale.SpinnerLocaleHelper
|
|
|
96
104
|
|
|
97
105
|
|
|
98
106
|
|
|
99
|
-
renderSpinner = function (type, dimmed) {
|
|
100
|
-
|
|
107
|
+
renderSpinner = function (type, dimmed) {var _cx;
|
|
108
|
+
return /*#__PURE__*/(
|
|
109
|
+
_react.default.createElement(_SpinnerIcon.SpinnerIcon, {
|
|
110
|
+
size: type,
|
|
111
|
+
className: (0, _Emotion.cx)((_cx = {}, _cx[
|
|
112
|
+
_Spinner.styles.circle(_this.theme)] = !dimmed && !_this.props.color, _cx[
|
|
113
|
+
_Spinner.styles.circleDimmedColor(_this.theme)] = dimmed, _cx[
|
|
114
|
+
_Spinner.styles.circleWithoutColorAnimation(_this.theme)] = dimmed || !!_this.props.color, _cx)),
|
|
115
|
+
|
|
116
|
+
dimmed: dimmed,
|
|
117
|
+
width: _this.props.width,
|
|
118
|
+
color: _this.props.color }));
|
|
119
|
+
|
|
101
120
|
|
|
102
|
-
return /*#__PURE__*/_react.default.createElement(_SpinnerIcon.SpinnerIcon, { size: type, className: circleClassName, dimmed: dimmed });
|
|
103
121
|
};_this.
|
|
104
122
|
|
|
105
123
|
renderCaption = function (type, caption) {return /*#__PURE__*/(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Spinner.tsx"],"names":["types","big","mini","normal","Spinner","SpinnerLocaleHelper","rootNode","props","theme","locale","setRootNode","renderSpinner","type","dimmed","
|
|
1
|
+
{"version":3,"sources":["Spinner.tsx"],"names":["types","big","mini","normal","Spinner","SpinnerLocaleHelper","rootNode","props","theme","locale","setRootNode","renderSpinner","type","dimmed","styles","circle","color","circleDimmedColor","circleWithoutColorAnimation","width","renderCaption","caption","captionColor","render","renderMain","loading","spinner","inner","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","node","bool","oneOf","Object","keys","defaultProps","Types"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { locale } from '../../lib/locale/decorators';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { SpinnerIcon } from '../../internal/icons/SpinnerIcon';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Spinner.styles';\nimport { SpinnerLocale, SpinnerLocaleHelper } from './locale';\n\nconst types: Record<SpinnerType, SpinnerType> = {\n big: 'big',\n mini: 'mini',\n normal: 'normal',\n};\n\nexport type SpinnerType = 'mini' | 'normal' | 'big';\n\nexport interface SpinnerProps extends CommonProps {\n caption?: React.ReactNode;\n dimmed?: boolean;\n /**\n * Тип спиннера\n * @default normal\n */\n type: SpinnerType;\n /**\n * Толщина спиннера\n */\n width?: number;\n /**\n * Цвет спиннера\n */\n color?: React.CSSProperties['color'];\n}\n\n/**\n * DRAFT - инлайн-лоадер\n */\n\n@rootNode\n@locale('Spinner', SpinnerLocaleHelper)\nexport class Spinner extends React.Component<SpinnerProps> {\n public static __KONTUR_REACT_UI__ = 'Spinner';\n\n public static propTypes = {\n /**\n * Текст рядом с мини-лоадером.\n *\n * 'Загрузка' - значение по-умолчанию\n */\n caption: PropTypes.node,\n\n dimmed: PropTypes.bool,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * Значение по-умолчанию - normal\n *\n * Spinner.types - все доступные типы\n */\n type: PropTypes.oneOf(Object.keys(types)),\n };\n\n public static defaultProps: SpinnerProps = {\n type: 'normal',\n };\n\n public static Types: typeof types = types;\n private theme!: Theme;\n private readonly locale!: SpinnerLocale;\n private setRootNode!: TSetRootNode;\n\n constructor(props: SpinnerProps) {\n super(props);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { type, caption = this.locale.loading, dimmed } = this.props;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.spinner()}>\n <span className={styles.inner()}>{this.renderSpinner(type, dimmed)}</span>\n {caption && this.renderCaption(type, caption)}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderSpinner = (type: SpinnerType, dimmed?: boolean) => {\n return (\n <SpinnerIcon\n size={type}\n className={cx({\n [styles.circle(this.theme)]: !dimmed && !this.props.color,\n [styles.circleDimmedColor(this.theme)]: dimmed,\n [styles.circleWithoutColorAnimation(this.theme)]: dimmed || !!this.props.color,\n })}\n dimmed={dimmed}\n width={this.props.width}\n color={this.props.color}\n />\n );\n };\n\n private renderCaption = (type: SpinnerType, caption: React.ReactNode) => (\n <span className={cx(styles[type](this.theme), styles.captionColor(this.theme))}>{caption}</span>\n );\n}\n"]}
|
|
@@ -14,6 +14,7 @@ const reactNodeCaption = (
|
|
|
14
14
|
<Spinner type="mini" caption="mini" />
|
|
15
15
|
<Spinner type="mini" dimmed caption="mini dimmed" />
|
|
16
16
|
<Spinner type="big" caption={reactNodeCaption} />
|
|
17
|
+
<Spinner type="big" caption="custom" width={8} color={'#538A1B'}/>
|
|
17
18
|
</Gapped>;
|
|
18
19
|
```
|
|
19
20
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Theme } from '../../lib/theming/Theme';
|
|
2
2
|
export declare const styles: {
|
|
3
3
|
circle(t: Theme): string;
|
|
4
|
-
|
|
4
|
+
circleDimmedColor(t: Theme): string;
|
|
5
|
+
circleWithoutColorAnimation(t: Theme): string;
|
|
5
6
|
captionColor(t: Theme): string;
|
|
6
7
|
mini(t: Theme): string;
|
|
7
8
|
normal(t: Theme): string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");
|
|
2
2
|
|
|
3
3
|
var _AnimationKeyframes = require("../../lib/theming/AnimationKeyframes");
|
|
4
|
-
var _client = require("../../lib/client");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
|
|
4
|
+
var _client = require("../../lib/client");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
|
|
5
5
|
|
|
6
6
|
var styles = (0, _Emotion.memoizeStyle)({
|
|
7
7
|
circle: function circle(t) {
|
|
@@ -17,10 +17,13 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
},
|
|
20
|
-
|
|
21
|
-
return (0, _Emotion.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n stroke: ", ";\n
|
|
22
|
-
t.spinnerDimmedColor
|
|
20
|
+
circleDimmedColor: function circleDimmedColor(t) {
|
|
21
|
+
return (0, _Emotion.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n stroke: ", ";\n "])),
|
|
22
|
+
t.spinnerDimmedColor);
|
|
23
23
|
|
|
24
|
+
},
|
|
25
|
+
circleWithoutColorAnimation: function circleWithoutColorAnimation(t) {
|
|
26
|
+
return (0, _Emotion.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["\n ", "\n "])),
|
|
24
27
|
!_client.isIE11 && "\n animation: " +
|
|
25
28
|
|
|
26
29
|
_AnimationKeyframes.AnimationKeyframes.spinnerCircleOffset(t) + " 1s cubic-bezier(0.5, 0.2, 0.5, 0.8) infinite,\n " +
|
|
@@ -31,13 +34,13 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
31
34
|
},
|
|
32
35
|
|
|
33
36
|
captionColor: function captionColor(t) {
|
|
34
|
-
return (0, _Emotion.css)(
|
|
37
|
+
return (0, _Emotion.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n "])),
|
|
35
38
|
t.spinnerCaptionColor);
|
|
36
39
|
|
|
37
40
|
},
|
|
38
41
|
|
|
39
42
|
mini: function mini(t) {
|
|
40
|
-
return (0, _Emotion.css)(
|
|
43
|
+
return (0, _Emotion.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)(["\n margin-left: ", ";\n font-size: ", ";\n line-height: ", ";\n "])),
|
|
41
44
|
t.spinnerCaptionGapSmall,
|
|
42
45
|
t.spinnerFontSizeSmall,
|
|
43
46
|
t.spinnerLineHeightSmall);
|
|
@@ -45,7 +48,7 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
45
48
|
},
|
|
46
49
|
|
|
47
50
|
normal: function normal(t) {
|
|
48
|
-
return (0, _Emotion.css)(
|
|
51
|
+
return (0, _Emotion.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: block;\n font-size: ", ";\n line-height: ", ";\n margin-top: ", ";\n "])),
|
|
49
52
|
|
|
50
53
|
t.spinnerFontSizeMedium,
|
|
51
54
|
t.spinnerLineHeightMedium,
|
|
@@ -54,7 +57,7 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
54
57
|
},
|
|
55
58
|
|
|
56
59
|
big: function big(t) {
|
|
57
|
-
return (0, _Emotion.css)(
|
|
60
|
+
return (0, _Emotion.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: block;\n font-size: ", ";\n line-height: ", ";\n margin-top: ", ";\n "])),
|
|
58
61
|
|
|
59
62
|
t.spinnerFontSizeLarge,
|
|
60
63
|
t.spinnerLineHeightLarge,
|
|
@@ -63,14 +66,14 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
63
66
|
},
|
|
64
67
|
|
|
65
68
|
spinner: function spinner() {
|
|
66
|
-
return (0, _Emotion.css)(
|
|
69
|
+
return (0, _Emotion.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: inline-block;\n text-align: center;\n "])));
|
|
67
70
|
|
|
68
71
|
|
|
69
72
|
|
|
70
73
|
},
|
|
71
74
|
|
|
72
75
|
inner: function inner() {
|
|
73
|
-
return (0, _Emotion.css)(
|
|
76
|
+
return (0, _Emotion.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: inline-block;\n "])));
|
|
74
77
|
|
|
75
78
|
|
|
76
79
|
} });exports.styles = styles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Spinner.styles.ts"],"names":["styles","circle","t","css","spinnerColor","isIE11","AnimationKeyframes","spinnerCircleOffset","spinnerCircleLength","spinnerCircleRotate","
|
|
1
|
+
{"version":3,"sources":["Spinner.styles.ts"],"names":["styles","circle","t","css","spinnerColor","isIE11","AnimationKeyframes","spinnerCircleOffset","spinnerCircleLength","spinnerCircleRotate","circleDimmedColor","spinnerDimmedColor","circleWithoutColorAnimation","captionColor","spinnerCaptionColor","mini","spinnerCaptionGapSmall","spinnerFontSizeSmall","spinnerLineHeightSmall","normal","spinnerFontSizeMedium","spinnerLineHeightMedium","spinnerCaptionGapMedium","big","spinnerFontSizeLarge","spinnerLineHeightLarge","spinnerCaptionGapLarge","spinner","inner"],"mappings":"4QAAA;;AAEA;AACA,0C;;AAEO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,MADiC,kBAC1BC,CAD0B,EAChB;AACf,eAAOC,YAAP;AACYD,IAAAA,CAAC,CAACE,YADd;;AAGI,KAACC,cAAD;;AAEeC,2CAAmBC,mBAAnB,CAAuCL,CAAvC,CAFf;AAGMI,2CAAmBE,mBAAnB,CAAuCN,CAAvC,CAHN;AAIMI,2CAAmBG,mBAAnB,CAAuCP,CAAvC,CAJN;AAKMI,2CAAmBF,YAAnB,CAAgCF,CAAhC,CALN,wCAHJ;;;AAWD,GAbgC;AAcjCQ,EAAAA,iBAdiC,6BAcfR,CAde,EAcL;AAC1B,eAAOC,YAAP;AACYD,IAAAA,CAAC,CAACS,kBADd;;AAGD,GAlBgC;AAmBjCC,EAAAA,2BAnBiC,uCAmBLV,CAnBK,EAmBK;AACpC,eAAOC,YAAP;AACI,KAACE,cAAD;;AAEeC,2CAAmBC,mBAAnB,CAAuCL,CAAvC,CAFf;AAGII,2CAAmBE,mBAAnB,CAAuCN,CAAvC,CAHJ;AAIII,2CAAmBG,mBAAnB,CAAuCP,CAAvC,CAJJ,mCADJ;;;AAQD,GA5BgC;;AA8BjCW,EAAAA,YA9BiC,wBA8BpBX,CA9BoB,EA8BV;AACrB,eAAOC,YAAP;AACWD,IAAAA,CAAC,CAACY,mBADb;;AAGD,GAlCgC;;AAoCjCC,EAAAA,IApCiC,gBAoC5Bb,CApC4B,EAoClB;AACb,eAAOC,YAAP;AACiBD,IAAAA,CAAC,CAACc,sBADnB;AAEed,IAAAA,CAAC,CAACe,oBAFjB;AAGiBf,IAAAA,CAAC,CAACgB,sBAHnB;;AAKD,GA1CgC;;AA4CjCC,EAAAA,MA5CiC,kBA4C1BjB,CA5C0B,EA4ChB;AACf,eAAOC,YAAP;;AAEeD,IAAAA,CAAC,CAACkB,qBAFjB;AAGiBlB,IAAAA,CAAC,CAACmB,uBAHnB;AAIgBnB,IAAAA,CAAC,CAACoB,uBAJlB;;AAMD,GAnDgC;;AAqDjCC,EAAAA,GArDiC,eAqD7BrB,CArD6B,EAqDnB;AACZ,eAAOC,YAAP;;AAEeD,IAAAA,CAAC,CAACsB,oBAFjB;AAGiBtB,IAAAA,CAAC,CAACuB,sBAHnB;AAIgBvB,IAAAA,CAAC,CAACwB,sBAJlB;;AAMD,GA5DgC;;AA8DjCC,EAAAA,OA9DiC,qBA8DvB;AACR,eAAOxB,YAAP;;;;AAID,GAnEgC;;AAqEjCyB,EAAAA,KArEiC,mBAqEzB;AACN,eAAOzB,YAAP;;;AAGD,GAzEgC,EAAb,CAAf,C","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { AnimationKeyframes } from '../../lib/theming/AnimationKeyframes';\nimport { isIE11 } from '../../lib/client';\n\nexport const styles = memoizeStyle({\n circle(t: Theme) {\n return css`\n stroke: ${t.spinnerColor};\n\n ${!isIE11 &&\n `\n animation: ${AnimationKeyframes.spinnerCircleOffset(t)} 1s cubic-bezier(0.5, 0.2, 0.5, 0.8) infinite,\n ${AnimationKeyframes.spinnerCircleLength(t)} 2s cubic-bezier(0.36, 0.14, 0.38, 0.69) infinite,\n ${AnimationKeyframes.spinnerCircleRotate(t)} 2s linear infinite,\n ${AnimationKeyframes.spinnerColor(t)} 6s ease-in-out infinite;\n `}\n `;\n },\n circleDimmedColor(t: Theme) {\n return css`\n stroke: ${t.spinnerDimmedColor};\n `;\n },\n circleWithoutColorAnimation(t: Theme) {\n return css`\n ${!isIE11 &&\n `\n animation: ${AnimationKeyframes.spinnerCircleOffset(t)} 1s cubic-bezier(0.5, 0.2, 0.5, 0.8) infinite,\n ${AnimationKeyframes.spinnerCircleLength(t)} 2s cubic-bezier(0.36, 0.14, 0.38, 0.69) infinite,\n ${AnimationKeyframes.spinnerCircleRotate(t)} 2s linear infinite;\n `}\n `;\n },\n\n captionColor(t: Theme) {\n return css`\n color: ${t.spinnerCaptionColor};\n `;\n },\n\n mini(t: Theme) {\n return css`\n margin-left: ${t.spinnerCaptionGapSmall};\n font-size: ${t.spinnerFontSizeSmall};\n line-height: ${t.spinnerLineHeightSmall};\n `;\n },\n\n normal(t: Theme) {\n return css`\n display: block;\n font-size: ${t.spinnerFontSizeMedium};\n line-height: ${t.spinnerLineHeightMedium};\n margin-top: ${t.spinnerCaptionGapMedium};\n `;\n },\n\n big(t: Theme) {\n return css`\n display: block;\n font-size: ${t.spinnerFontSizeLarge};\n line-height: ${t.spinnerLineHeightLarge};\n margin-top: ${t.spinnerCaptionGapLarge};\n `;\n },\n\n spinner() {\n return css`\n display: inline-block;\n text-align: center;\n `;\n },\n\n inner() {\n return css`\n display: inline-block;\n `;\n },\n});\n"]}
|
|
@@ -51,8 +51,10 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
51
51
|
},
|
|
52
52
|
|
|
53
53
|
error: function error(t) {
|
|
54
|
-
|
|
54
|
+
var insideWidth = parseInt(t.btnBorderWidth);
|
|
55
|
+
var outsideWidth = parseInt(t.switcherOutlineWidth) - insideWidth + "px";
|
|
56
|
+
return (0, _Emotion.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteralLoose2.default)(["\n border-radius: 2px;\n box-shadow: inset 0 0 0 ", "px ", ", 0 0 0 ", " ", ";\n "])),
|
|
55
57
|
|
|
56
|
-
t.
|
|
58
|
+
insideWidth, t.borderColorError, outsideWidth, t.borderColorError);
|
|
57
59
|
|
|
58
60
|
} });exports.styles = styles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Switcher.styles.ts"],"names":["styles","wrap","css","input","label","t","switcherTextColor","labelSmall","switcherLabelGapSmall","switcherLabelFontSizeSmall","switcherLabelLineHeightSmall","labelMedium","switcherLabelGapMedium","switcherLabelFontSizeMedium","switcherLabelLineHeightMedium","labelLarge","switcherLabelGapLarge","switcherLabelFontSizeLarge","switcherLabelLineHeightLarge","error","switcherOutlineWidth","borderColorError"],"mappings":"4QAAA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,IADiC,kBAC1B;AACL,eAAOC,YAAP;;;;AAID,GANgC;;AAQjCC,EAAAA,KARiC,mBAQzB;AACN,eAAOD,YAAP;;;;;;AAMD,GAfgC;;AAiBjCE,EAAAA,KAjBiC,iBAiB3BC,CAjB2B,EAiBjB;AACd,eAAOH,YAAP;AACWG,IAAAA,CAAC,CAACC,iBADb;;;;AAKD,GAvBgC;;AAyBjCC,EAAAA,UAzBiC,sBAyBtBF,CAzBsB,EAyBZ;AACnB,eAAOH,YAAP;AACkBG,IAAAA,CAAC,CAACG,qBADpB;AAEeH,IAAAA,CAAC,CAACI,0BAFjB;AAGiBJ,IAAAA,CAAC,CAACK,4BAHnB;;AAKD,GA/BgC;;AAiCjCC,EAAAA,WAjCiC,uBAiCrBN,CAjCqB,EAiCX;AACpB,eAAOH,YAAP;AACkBG,IAAAA,CAAC,CAACO,sBADpB;AAEeP,IAAAA,CAAC,CAACQ,2BAFjB;AAGiBR,IAAAA,CAAC,CAACS,6BAHnB;;AAKD,GAvCgC;;AAyCjCC,EAAAA,UAzCiC,sBAyCtBV,CAzCsB,EAyCZ;AACnB,eAAOH,YAAP;AACkBG,IAAAA,CAAC,CAACW,qBADpB;AAEeX,IAAAA,CAAC,CAACY,0BAFjB;AAGiBZ,IAAAA,CAAC,CAACa,4BAHnB;;AAKD,GA/CgC;;AAiDjCC,EAAAA,KAjDiC,iBAiD3Bd,CAjD2B,EAiDjB;AACd,
|
|
1
|
+
{"version":3,"sources":["Switcher.styles.ts"],"names":["styles","wrap","css","input","label","t","switcherTextColor","labelSmall","switcherLabelGapSmall","switcherLabelFontSizeSmall","switcherLabelLineHeightSmall","labelMedium","switcherLabelGapMedium","switcherLabelFontSizeMedium","switcherLabelLineHeightMedium","labelLarge","switcherLabelGapLarge","switcherLabelFontSizeLarge","switcherLabelLineHeightLarge","error","insideWidth","parseInt","btnBorderWidth","outsideWidth","switcherOutlineWidth","borderColorError"],"mappings":"4QAAA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,IADiC,kBAC1B;AACL,eAAOC,YAAP;;;;AAID,GANgC;;AAQjCC,EAAAA,KARiC,mBAQzB;AACN,eAAOD,YAAP;;;;;;AAMD,GAfgC;;AAiBjCE,EAAAA,KAjBiC,iBAiB3BC,CAjB2B,EAiBjB;AACd,eAAOH,YAAP;AACWG,IAAAA,CAAC,CAACC,iBADb;;;;AAKD,GAvBgC;;AAyBjCC,EAAAA,UAzBiC,sBAyBtBF,CAzBsB,EAyBZ;AACnB,eAAOH,YAAP;AACkBG,IAAAA,CAAC,CAACG,qBADpB;AAEeH,IAAAA,CAAC,CAACI,0BAFjB;AAGiBJ,IAAAA,CAAC,CAACK,4BAHnB;;AAKD,GA/BgC;;AAiCjCC,EAAAA,WAjCiC,uBAiCrBN,CAjCqB,EAiCX;AACpB,eAAOH,YAAP;AACkBG,IAAAA,CAAC,CAACO,sBADpB;AAEeP,IAAAA,CAAC,CAACQ,2BAFjB;AAGiBR,IAAAA,CAAC,CAACS,6BAHnB;;AAKD,GAvCgC;;AAyCjCC,EAAAA,UAzCiC,sBAyCtBV,CAzCsB,EAyCZ;AACnB,eAAOH,YAAP;AACkBG,IAAAA,CAAC,CAACW,qBADpB;AAEeX,IAAAA,CAAC,CAACY,0BAFjB;AAGiBZ,IAAAA,CAAC,CAACa,4BAHnB;;AAKD,GA/CgC;;AAiDjCC,EAAAA,KAjDiC,iBAiD3Bd,CAjD2B,EAiDjB;AACd,QAAMe,WAAW,GAAGC,QAAQ,CAAChB,CAAC,CAACiB,cAAH,CAA5B;AACA,QAAMC,YAAY,GAAMF,QAAQ,CAAChB,CAAC,CAACmB,oBAAH,CAAR,GAAmCJ,WAAzC,OAAlB;AACA,eAAOlB,YAAP;;AAE4BkB,IAAAA,WAF5B,EAE6Cf,CAAC,CAACoB,gBAF/C,EAE0EF,YAF1E,EAE0FlB,CAAC,CAACoB,gBAF5F;;AAID,GAxDgC,EAAb,CAAf,C","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n wrap() {\n return css`\n display: inline-block;\n vertical-align: middle;\n `;\n },\n\n input() {\n return css`\n height: 0;\n opacity: 0;\n position: absolute;\n width: 0;\n `;\n },\n\n label(t: Theme) {\n return css`\n color: ${t.switcherTextColor};\n vertical-align: middle;\n display: inline-block;\n `;\n },\n\n labelSmall(t: Theme) {\n return css`\n margin-right: ${t.switcherLabelGapSmall};\n font-size: ${t.switcherLabelFontSizeSmall};\n line-height: ${t.switcherLabelLineHeightSmall};\n `;\n },\n\n labelMedium(t: Theme) {\n return css`\n margin-right: ${t.switcherLabelGapMedium};\n font-size: ${t.switcherLabelFontSizeMedium};\n line-height: ${t.switcherLabelLineHeightMedium};\n `;\n },\n\n labelLarge(t: Theme) {\n return css`\n margin-right: ${t.switcherLabelGapLarge};\n font-size: ${t.switcherLabelFontSizeLarge};\n line-height: ${t.switcherLabelLineHeightLarge};\n `;\n },\n\n error(t: Theme) {\n const insideWidth = parseInt(t.btnBorderWidth);\n const outsideWidth = `${parseInt(t.switcherOutlineWidth) - insideWidth}px`;\n return css`\n border-radius: 2px;\n box-shadow: inset 0 0 0 ${insideWidth}px ${t.borderColorError}, 0 0 0 ${outsideWidth} ${t.borderColorError};\n `;\n },\n});\n"]}
|
|
@@ -1,112 +1,112 @@
|
|
|
1
|
-
Token example
|
|
2
|
-
|
|
3
|
-
```jsx harmony
|
|
4
|
-
import { Token } from '@skbkontur/react-ui';
|
|
5
|
-
|
|
6
|
-
<Token>Example</Token>;
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
You can control color of each token
|
|
10
|
-
|
|
11
|
-
```jsx harmony
|
|
12
|
-
import { Gapped, Token } from '@skbkontur/react-ui';
|
|
13
|
-
|
|
14
|
-
const colors = {
|
|
15
|
-
default: {
|
|
16
|
-
idle: 'defaultIdle',
|
|
17
|
-
active: 'defaultActive',
|
|
18
|
-
},
|
|
19
|
-
gray: {
|
|
20
|
-
idle: 'grayIdle',
|
|
21
|
-
active: 'grayActive',
|
|
22
|
-
},
|
|
23
|
-
blue: {
|
|
24
|
-
idle: 'blueIdle',
|
|
25
|
-
active: 'blueActive',
|
|
26
|
-
},
|
|
27
|
-
green: {
|
|
28
|
-
idle: 'greenIdle',
|
|
29
|
-
active: 'greenActive',
|
|
30
|
-
},
|
|
31
|
-
yellow: {
|
|
32
|
-
idle: 'yellowIdle',
|
|
33
|
-
active: 'yellowActive',
|
|
34
|
-
},
|
|
35
|
-
red: {
|
|
36
|
-
idle: 'redIdle',
|
|
37
|
-
active: 'redActive',
|
|
38
|
-
},
|
|
39
|
-
mono: {
|
|
40
|
-
idle: 'white',
|
|
41
|
-
active: 'black',
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
<Gapped gap={20} vertical>
|
|
46
|
-
<Gapped gap={10}>
|
|
47
|
-
<Token colors={colors.default}>Default</Token>
|
|
48
|
-
<Token isActive colors={colors.default}>
|
|
49
|
-
Default
|
|
50
|
-
</Token>
|
|
51
|
-
</Gapped>
|
|
52
|
-
<Gapped gap={10}>
|
|
53
|
-
<Token colors={colors.gray}>Gray</Token>
|
|
54
|
-
<Token isActive colors={colors.gray}>
|
|
55
|
-
Gray
|
|
56
|
-
</Token>
|
|
57
|
-
</Gapped>
|
|
58
|
-
<Gapped gap={10}>
|
|
59
|
-
<Token colors={colors.blue}>Blue</Token>
|
|
60
|
-
<Token isActive colors={colors.blue}>
|
|
61
|
-
Blue
|
|
62
|
-
</Token>
|
|
63
|
-
</Gapped>
|
|
64
|
-
<Gapped gap={10}>
|
|
65
|
-
<Token colors={colors.green}>Green</Token>
|
|
66
|
-
<Token isActive colors={colors.green}>
|
|
67
|
-
Green
|
|
68
|
-
</Token>
|
|
69
|
-
</Gapped>
|
|
70
|
-
<Gapped gap={10}>
|
|
71
|
-
<Token colors={colors.yellow}>Yellow</Token>
|
|
72
|
-
<Token isActive colors={colors.yellow}>
|
|
73
|
-
Yellow
|
|
74
|
-
</Token>
|
|
75
|
-
</Gapped>
|
|
76
|
-
<Gapped gap={10}>
|
|
77
|
-
<Token colors={colors.red}>Red</Token>
|
|
78
|
-
<Token isActive colors={colors.red}>
|
|
79
|
-
Red
|
|
80
|
-
</Token>
|
|
81
|
-
</Gapped>
|
|
82
|
-
<Gapped gap={10}>
|
|
83
|
-
<Token colors={colors.mono}>Monochrome</Token>
|
|
84
|
-
<Token isActive colors={colors.mono}>
|
|
85
|
-
Monochrome
|
|
86
|
-
</Token>
|
|
87
|
-
</Gapped>
|
|
88
|
-
</Gapped>;
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Can accept validation state
|
|
92
|
-
|
|
93
|
-
```jsx harmony
|
|
94
|
-
import { Gapped, Token } from '@skbkontur/react-ui';
|
|
95
|
-
|
|
96
|
-
<Gapped gap={20} vertical>
|
|
97
|
-
<Gapped gap={10}>
|
|
98
|
-
<Token>Correct</Token>
|
|
99
|
-
<Token warning>Warned</Token>
|
|
100
|
-
<Token error>Errored</Token>
|
|
101
|
-
</Gapped>
|
|
102
|
-
<Gapped gap={10}>
|
|
103
|
-
<Token isActive>Correct</Token>
|
|
104
|
-
<Token isActive warning>
|
|
105
|
-
Warned
|
|
106
|
-
</Token>
|
|
107
|
-
<Token isActive error>
|
|
108
|
-
Errored
|
|
109
|
-
</Token>
|
|
110
|
-
</Gapped>
|
|
111
|
-
</Gapped>;
|
|
112
|
-
```
|
|
1
|
+
Token example
|
|
2
|
+
|
|
3
|
+
```jsx harmony
|
|
4
|
+
import { Token } from '@skbkontur/react-ui';
|
|
5
|
+
|
|
6
|
+
<Token>Example</Token>;
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
You can control color of each token
|
|
10
|
+
|
|
11
|
+
```jsx harmony
|
|
12
|
+
import { Gapped, Token } from '@skbkontur/react-ui';
|
|
13
|
+
|
|
14
|
+
const colors = {
|
|
15
|
+
default: {
|
|
16
|
+
idle: 'defaultIdle',
|
|
17
|
+
active: 'defaultActive',
|
|
18
|
+
},
|
|
19
|
+
gray: {
|
|
20
|
+
idle: 'grayIdle',
|
|
21
|
+
active: 'grayActive',
|
|
22
|
+
},
|
|
23
|
+
blue: {
|
|
24
|
+
idle: 'blueIdle',
|
|
25
|
+
active: 'blueActive',
|
|
26
|
+
},
|
|
27
|
+
green: {
|
|
28
|
+
idle: 'greenIdle',
|
|
29
|
+
active: 'greenActive',
|
|
30
|
+
},
|
|
31
|
+
yellow: {
|
|
32
|
+
idle: 'yellowIdle',
|
|
33
|
+
active: 'yellowActive',
|
|
34
|
+
},
|
|
35
|
+
red: {
|
|
36
|
+
idle: 'redIdle',
|
|
37
|
+
active: 'redActive',
|
|
38
|
+
},
|
|
39
|
+
mono: {
|
|
40
|
+
idle: 'white',
|
|
41
|
+
active: 'black',
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
<Gapped gap={20} vertical>
|
|
46
|
+
<Gapped gap={10}>
|
|
47
|
+
<Token colors={colors.default}>Default</Token>
|
|
48
|
+
<Token isActive colors={colors.default}>
|
|
49
|
+
Default
|
|
50
|
+
</Token>
|
|
51
|
+
</Gapped>
|
|
52
|
+
<Gapped gap={10}>
|
|
53
|
+
<Token colors={colors.gray}>Gray</Token>
|
|
54
|
+
<Token isActive colors={colors.gray}>
|
|
55
|
+
Gray
|
|
56
|
+
</Token>
|
|
57
|
+
</Gapped>
|
|
58
|
+
<Gapped gap={10}>
|
|
59
|
+
<Token colors={colors.blue}>Blue</Token>
|
|
60
|
+
<Token isActive colors={colors.blue}>
|
|
61
|
+
Blue
|
|
62
|
+
</Token>
|
|
63
|
+
</Gapped>
|
|
64
|
+
<Gapped gap={10}>
|
|
65
|
+
<Token colors={colors.green}>Green</Token>
|
|
66
|
+
<Token isActive colors={colors.green}>
|
|
67
|
+
Green
|
|
68
|
+
</Token>
|
|
69
|
+
</Gapped>
|
|
70
|
+
<Gapped gap={10}>
|
|
71
|
+
<Token colors={colors.yellow}>Yellow</Token>
|
|
72
|
+
<Token isActive colors={colors.yellow}>
|
|
73
|
+
Yellow
|
|
74
|
+
</Token>
|
|
75
|
+
</Gapped>
|
|
76
|
+
<Gapped gap={10}>
|
|
77
|
+
<Token colors={colors.red}>Red</Token>
|
|
78
|
+
<Token isActive colors={colors.red}>
|
|
79
|
+
Red
|
|
80
|
+
</Token>
|
|
81
|
+
</Gapped>
|
|
82
|
+
<Gapped gap={10}>
|
|
83
|
+
<Token colors={colors.mono}>Monochrome</Token>
|
|
84
|
+
<Token isActive colors={colors.mono}>
|
|
85
|
+
Monochrome
|
|
86
|
+
</Token>
|
|
87
|
+
</Gapped>
|
|
88
|
+
</Gapped>;
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Can accept validation state
|
|
92
|
+
|
|
93
|
+
```jsx harmony
|
|
94
|
+
import { Gapped, Token } from '@skbkontur/react-ui';
|
|
95
|
+
|
|
96
|
+
<Gapped gap={20} vertical>
|
|
97
|
+
<Gapped gap={10}>
|
|
98
|
+
<Token>Correct</Token>
|
|
99
|
+
<Token warning>Warned</Token>
|
|
100
|
+
<Token error>Errored</Token>
|
|
101
|
+
</Gapped>
|
|
102
|
+
<Gapped gap={10}>
|
|
103
|
+
<Token isActive>Correct</Token>
|
|
104
|
+
<Token isActive warning>
|
|
105
|
+
Warned
|
|
106
|
+
</Token>
|
|
107
|
+
<Token isActive error>
|
|
108
|
+
Errored
|
|
109
|
+
</Token>
|
|
110
|
+
</Gapped>
|
|
111
|
+
</Gapped>;
|
|
112
|
+
```
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { PopupPositionsType } from '../../internal/Popup';
|
|
3
3
|
import { Nullable } from '../../typings/utility-types';
|
|
4
4
|
import { CommonProps } from '../../internal/CommonWrapper';
|
|
5
5
|
export declare type TooltipTrigger =
|
|
@@ -41,7 +41,10 @@ export interface TooltipProps extends CommonProps {
|
|
|
41
41
|
* Если эта функция вернула `null`, то тултип не показывается.
|
|
42
42
|
*/
|
|
43
43
|
render?: Nullable<() => React.ReactNode>;
|
|
44
|
-
|
|
44
|
+
/**
|
|
45
|
+
* Значение по умолчанию: `"top left"`.
|
|
46
|
+
*/
|
|
47
|
+
pos: PopupPositionsType;
|
|
45
48
|
/**
|
|
46
49
|
* Триггер открытия тултипа
|
|
47
50
|
* ```ts
|
|
@@ -80,24 +83,8 @@ export interface TooltipProps extends CommonProps {
|
|
|
80
83
|
* будет выходить за край экрана, то будет выбрана
|
|
81
84
|
* следующая позиция. Обязательно должен включать
|
|
82
85
|
* позицию указанную в `pos`
|
|
83
|
-
*
|
|
84
|
-
* ```ts
|
|
85
|
-
* type PopupPosition =
|
|
86
|
-
* 'right bottom',
|
|
87
|
-
* | 'right middle',
|
|
88
|
-
* | 'right top',
|
|
89
|
-
* | 'top right',
|
|
90
|
-
* | 'top center',
|
|
91
|
-
* | 'top left',
|
|
92
|
-
* | 'left top',
|
|
93
|
-
* | 'left middle',
|
|
94
|
-
* | 'left bottom',
|
|
95
|
-
* | 'bottom left',
|
|
96
|
-
* | 'bottom center',
|
|
97
|
-
* | 'bottom right'
|
|
98
|
-
* ```
|
|
99
86
|
*/
|
|
100
|
-
allowedPositions:
|
|
87
|
+
allowedPositions: PopupPositionsType[];
|
|
101
88
|
/**
|
|
102
89
|
* Флаг отключения анимации.
|
|
103
90
|
* @default false
|
|
@@ -120,9 +107,9 @@ export declare class Tooltip extends React.PureComponent<TooltipProps, TooltipSt
|
|
|
120
107
|
children(props: TooltipProps, propName: keyof TooltipProps, componentName: string): void;
|
|
121
108
|
};
|
|
122
109
|
static defaultProps: {
|
|
123
|
-
pos:
|
|
110
|
+
pos: "top left";
|
|
124
111
|
trigger: string;
|
|
125
|
-
allowedPositions:
|
|
112
|
+
allowedPositions: ("top left" | "top center" | "top right" | "right top" | "right middle" | "right bottom" | "bottom right" | "bottom center" | "bottom left" | "left bottom" | "left middle" | "left top")[];
|
|
126
113
|
disableAnimations: boolean;
|
|
127
114
|
useWrapper: boolean;
|
|
128
115
|
closeOnChildrenMouseLeave: boolean;
|