@vkontakte/vkui 4.25.2 → 4.26.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/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +89 -55
- package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +2 -2
- package/.cache/ts/src/components/AdaptivityProvider/AdaptivityProvider.d.ts +1 -1
- package/.cache/ts/src/components/Alert/Alert.d.ts +2 -2
- package/.cache/ts/src/components/AppRoot/AppRoot.d.ts +0 -1
- package/.cache/ts/src/components/CardScroll/CardScroll.d.ts +9 -2
- package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +1 -1
- package/.cache/ts/src/components/HorizontalScroll/HorizontalScroll.d.ts +1 -1
- package/.cache/ts/src/index.d.ts +3 -3
- package/.cache/ts/src/lib/platform.d.ts +1 -1
- package/.cache/ts/src/tokenized/{tokenized.d.ts → index.d.ts} +0 -0
- package/VKUI_TOKENS_MIGRATION_GUIDE.md +76 -0
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.d.ts +2 -2
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +5 -9
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.d.ts +1 -1
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +4 -6
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cjs/components/Alert/Alert.d.ts +2 -2
- package/dist/cjs/components/Alert/Alert.js +4 -7
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRoot.d.ts +0 -1
- package/dist/cjs/components/AppRoot/AppRoot.js +2 -5
- package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js +1 -1
- package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/cjs/components/Button/Button.js +1 -3
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/CardScroll/CardScroll.d.ts +9 -2
- package/dist/cjs/components/CardScroll/CardScroll.js +10 -4
- package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProvider.js +40 -6
- package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProviderContext.d.ts +1 -1
- package/dist/cjs/components/ContentCard/ContentCard.js +8 -0
- package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +1 -1
- package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +5 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cjs/components/IconButton/IconButton.js +8 -0
- package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +14 -5
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cjs/components/PromoBanner/PromoBanner.js +7 -0
- package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cjs/components/Root/Root.js +5 -0
- package/dist/cjs/components/Root/Root.js.map +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js +8 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cjs/components/View/View.js +29 -18
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -3
- package/dist/cjs/index.js +6 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/platform.d.ts +1 -1
- package/dist/cjs/lib/platform.js.map +1 -1
- package/dist/cjs/tokenized/{tokenized.d.ts → index.d.ts} +0 -0
- package/dist/cjs/tokenized/{tokenized.js → index.js} +1 -1
- package/dist/cjs/tokenized/index.js.map +1 -0
- package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +2 -2
- package/dist/components/ActionSheetItem/ActionSheetItem.js +4 -6
- package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js +2 -3
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/components/Alert/Alert.d.ts +2 -2
- package/dist/components/Alert/Alert.js +3 -3
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.d.ts +0 -1
- package/dist/components/AppRoot/AppRoot.js +1 -3
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AppearanceProvider/AppearanceProvider.js +2 -2
- package/dist/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/components/Button/Button.js +1 -2
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/CardScroll/CardScroll.d.ts +9 -2
- package/dist/components/CardScroll/CardScroll.js +8 -3
- package/dist/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js +39 -6
- package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +1 -1
- package/dist/components/ContentCard/ContentCard.js +7 -0
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js +3 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/IconButton/IconButton.js +7 -0
- package/dist/components/IconButton/IconButton.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js +13 -6
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/PromoBanner/PromoBanner.js +6 -0
- package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/components/Root/Root.js +5 -0
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.js +7 -1
- package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/components/View/View.js +29 -18
- package/dist/components/View/View.js.map +1 -1
- package/dist/components.css +14 -11
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +4 -6
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +2 -3
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.js +3 -3
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +1 -3
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js +2 -2
- package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/cssm/components/Button/Button.css +9 -11
- package/dist/cssm/components/Button/Button.js +1 -2
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/Card/Card.css +6 -1
- package/dist/cssm/components/CardScroll/CardScroll.css +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.js +8 -3
- package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js +39 -6
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.js +7 -0
- package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +3 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +1 -1
- package/dist/cssm/components/IconButton/IconButton.js +7 -0
- package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +13 -6
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.js +6 -0
- package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cssm/components/Root/Root.js +5 -0
- package/dist/cssm/components/Root/Root.js.map +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.js +7 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cssm/components/View/View.js +29 -18
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/index.js +3 -3
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/platform.js.map +1 -1
- package/dist/cssm/styles/components.css +14 -11
- package/dist/cssm/styles/themes.css +1 -1
- package/dist/{tokenized/tokenized.js → cssm/tokenized/index.js} +1 -1
- package/dist/cssm/tokenized/index.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/platform.d.ts +1 -1
- package/dist/lib/platform.js.map +1 -1
- package/dist/tokenized/{tokenized.d.ts → index.d.ts} +0 -0
- package/dist/{cssm/tokenized/tokenized.js → tokenized/index.js} +1 -1
- package/dist/tokenized/index.js.map +1 -0
- package/dist/vkui.css +15 -12
- package/dist/vkui.css.map +1 -1
- package/package.json +3 -3
- package/postcss.config.js +10 -1
- package/src/components/ActionSheetItem/ActionSheetItem.tsx +5 -6
- package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +1 -2
- package/src/components/Alert/Alert.tsx +3 -2
- package/src/components/AppRoot/AppRoot.tsx +0 -3
- package/src/components/AppearanceProvider/AppearanceProvider.tsx +2 -2
- package/src/components/Button/Button.css +9 -39
- package/src/components/Button/Button.tsx +3 -4
- package/src/components/Card/Card.css +14 -22
- package/src/components/CardScroll/CardScroll.css +10 -23
- package/src/components/CardScroll/CardScroll.tsx +15 -4
- package/src/components/ConfigProvider/ConfigProvider.tsx +43 -7
- package/src/components/ContentCard/ContentCard.tsx +6 -0
- package/src/components/CustomSelectOption/CustomSelectOption.tsx +1 -1
- package/src/components/HorizontalScroll/HorizontalScroll.tsx +8 -2
- package/src/components/HorizontalScroll/HorizontalScrollArrow.css +3 -1
- package/src/components/IconButton/IconButton.tsx +8 -0
- package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +19 -7
- package/src/components/PromoBanner/PromoBanner.tsx +8 -0
- package/src/components/Root/Root.tsx +12 -2
- package/src/components/TabbarItem/TabbarItem.tsx +8 -1
- package/src/components/View/View.tsx +15 -2
- package/src/index.ts +3 -3
- package/src/lib/platform.ts +5 -1
- package/src/styles/themes.css +6 -0
- package/src/testing/utils.tsx +1 -1
- package/src/tokenized/{tokenized.ts → index.ts} +0 -0
- package/dist/cjs/tokenized/tokenized.js.map +0 -1
- package/dist/cssm/tokenized/tokenized.js.map +0 -1
- package/dist/tokenized/tokenized.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Alert/Alert.tsx"],"names":["Alert","props","undefined","item","action","autoclose","setState","closing","waitTransitionFinish","e","propertyName","onClose","stopPropagation","i","platform","IOS","Component","href","mode","onItemClick","target","title","ANDROID","viewWidth","ViewWidth","DESKTOP","element","React","createRef","state","VKCOM","eventHandler","transitionEvent","supported","current","removeEventListener","name","addEventListener","transitionFinishTimeout","clearTimeout","setTimeout","bind","timeout","header","text","actions","actionsLayout","children","className","style","restProps","resolvedActionsLayout","canShowCloseButton","SMALL_TABLET","isDesktop","renderHeader","renderText","map","renderAction"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { PopoutWrapper } from \"../PopoutWrapper/PopoutWrapper\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { transitionEvent } from \"../../lib/supportEvents\";\nimport { ANDROID, VKCOM, IOS } from \"../../lib/platform\";\nimport { HasPlatform } from \"../../types\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport { withAdaptivity, ViewWidth } from \"../../hoc/withAdaptivity\";\nimport Button, { ButtonProps } from \"../Button/Button\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport Title from \"../Typography/Title/Title\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport ModalDismissButton from \"../ModalDismissButton/ModalDismissButton\";\nimport { FocusTrap } from \"../FocusTrap/FocusTrap\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"./Alert.css\";\n\nexport type AlertActionInterface = AlertAction &\n React.AnchorHTMLAttributes<HTMLElement>;\n\nexport interface AlertAction extends Pick<ButtonProps, \"Component\" | \"href\"> {\n title: string;\n action?: VoidFunction;\n autoclose?: boolean;\n mode: \"cancel\" | \"destructive\" | \"default\";\n}\n\nexport interface AlertProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n AdaptivityProps {\n actionsLayout?: \"vertical\" | \"horizontal\";\n actions?: AlertAction[];\n header?: React.ReactNode;\n text?: React.ReactNode;\n onClose?: VoidFunction;\n}\n\nexport type TAlertProps = AlertProps & AdaptivityContextInterface;\n\nexport interface AlertState {\n closing: boolean;\n}\n\ntype TransitionEndHandler = (e?: TransitionEvent) => void;\n\ntype ItemClickHander = (item: AlertActionInterface) => () => void;\n\nclass Alert extends React.Component<TAlertProps, AlertState> {\n constructor(props: TAlertProps) {\n super(props);\n this.element = React.createRef();\n this.state = {\n closing: false,\n };\n }\n\n element: React.RefObject<HTMLDivElement>;\n\n private transitionFinishTimeout: number | undefined = undefined;\n\n static defaultProps: Partial<TAlertProps> = {\n actionsLayout: \"horizontal\",\n actions: [],\n };\n\n private get timeout(): number {\n return this.props.platform === ANDROID || this.props.platform === VKCOM\n ? 200\n : 300;\n }\n\n onItemClick: ItemClickHander = (item: AlertActionInterface) => () => {\n const { action, autoclose } = item;\n\n if (autoclose) {\n this.setState({ closing: true });\n this.waitTransitionFinish((e?: TransitionEvent) => {\n if (!e || e.propertyName === \"opacity\") {\n autoclose && this.props.onClose?.();\n action && action();\n }\n });\n } else {\n action && action();\n }\n };\n\n onClose: VoidFunction = () => {\n this.setState({ closing: true });\n this.waitTransitionFinish((e?: TransitionEvent) => {\n if (!e || e.propertyName === \"opacity\") {\n this.props.onClose?.();\n }\n });\n };\n\n stopPropagation: React.MouseEventHandler = (e: React.SyntheticEvent) => {\n e.stopPropagation();\n };\n\n waitTransitionFinish(eventHandler: TransitionEndHandler) {\n if (transitionEvent.supported && this.element.current) {\n this.element.current.removeEventListener(\n transitionEvent.name as string,\n eventHandler as () => void\n );\n this.element.current.addEventListener(\n transitionEvent.name as string,\n eventHandler as () => void\n );\n } else {\n if (this.transitionFinishTimeout) {\n clearTimeout(this.transitionFinishTimeout);\n }\n this.transitionFinishTimeout = setTimeout(\n eventHandler.bind(this),\n this.timeout\n );\n }\n }\n\n renderHeader(header: React.ReactNode) {\n switch (this.props.platform) {\n case VKCOM:\n return (\n <Headline vkuiClass=\"Alert__header\" weight=\"medium\">\n {header}\n </Headline>\n );\n case IOS:\n return (\n <Title vkuiClass=\"Alert__header\" weight=\"semibold\" level=\"3\">\n {header}\n </Title>\n );\n case ANDROID:\n return (\n <Title vkuiClass=\"Alert__header\" weight=\"medium\" level=\"2\">\n {header}\n </Title>\n );\n default:\n return undefined;\n }\n }\n\n renderText(text: React.ReactNode) {\n switch (this.props.platform) {\n case VKCOM:\n return (\n <Caption vkuiClass=\"Alert__text\" level=\"1\" weight=\"regular\">\n {text}\n </Caption>\n );\n case IOS:\n return (\n <Caption vkuiClass=\"Alert__text\" level=\"2\" weight=\"regular\">\n {text}\n </Caption>\n );\n case ANDROID:\n return (\n <Headline vkuiClass=\"Alert__text\" weight=\"regular\">\n {text}\n </Headline>\n );\n default:\n return undefined;\n }\n }\n\n renderAction = (action: AlertActionInterface, i: number) => {\n const { platform } = this.props;\n\n if (platform === IOS) {\n const { Component = \"button\" } = action;\n return (\n <Tappable\n Component={action.href ? \"a\" : Component}\n vkuiClass={classNames(\n \"Alert__action\",\n `Alert__action--${action.mode}`\n )}\n onClick={this.onItemClick(action)}\n href={action.href}\n key={`alert-action-${i}`}\n target={action.target}\n >\n {action.title}\n </Tappable>\n );\n }\n\n let mode: ButtonProps[\"mode\"] =\n action.mode === \"cancel\" ? \"secondary\" : \"primary\";\n\n if (platform === ANDROID) {\n mode = \"tertiary\";\n\n if (\n this.props.viewWidth === ViewWidth.DESKTOP &&\n action.mode === \"destructive\"\n ) {\n mode = \"destructive\";\n }\n }\n\n return (\n <Button\n vkuiClass={classNames(\"Alert__button\", `Alert__button--${action.mode}`)}\n mode={mode}\n size=\"m\"\n onClick={this.onItemClick(action)}\n Component={action.Component}\n href={action.href}\n key={`alert-action-${i}`}\n target={action.target}\n >\n {action.title}\n </Button>\n );\n };\n\n render() {\n const {\n actions,\n actionsLayout,\n children,\n className,\n style,\n platform,\n viewWidth,\n text,\n header,\n ...restProps\n } = this.props;\n const { closing } = this.state;\n\n const resolvedActionsLayout: TAlertProps[\"actionsLayout\"] =\n platform === VKCOM ? \"horizontal\" : actionsLayout;\n const canShowCloseButton =\n platform === VKCOM ||\n (platform === ANDROID && viewWidth >= ViewWidth.SMALL_TABLET);\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET;\n\n return (\n <PopoutWrapper\n className={className}\n closing={closing}\n style={style}\n onClick={this.onClose}\n >\n <FocusTrap\n {...restProps}\n getRootRef={this.element}\n onClick={this.stopPropagation}\n onClose={this.onClose}\n timeout={this.timeout}\n vkuiClass={classNames(getClassName(\"Alert\", platform), {\n \"Alert--v\": resolvedActionsLayout === \"vertical\",\n \"Alert--h\": resolvedActionsLayout === \"horizontal\",\n \"Alert--closing\": closing,\n \"Alert--desktop\": isDesktop,\n })}\n >\n {canShowCloseButton && <ModalDismissButton onClick={this.onClose} />}\n <div vkuiClass=\"Alert__content\">\n {hasReactNode(header) && this.renderHeader(header)}\n {hasReactNode(text) && this.renderText(text)}\n {children}\n </div>\n <footer vkuiClass=\"Alert__actions\">\n {actions?.map(this.renderAction)}\n </footer>\n </FocusTrap>\n </PopoutWrapper>\n );\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default withPlatform(\n withAdaptivity(Alert, {\n viewWidth: true,\n })\n);\n"],"file":"Alert.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Alert/Alert.tsx"],"names":["Alert","props","undefined","item","action","autoclose","setState","closing","waitTransitionFinish","e","propertyName","onClose","stopPropagation","i","platform","IOS","Component","href","mode","onItemClick","target","title","ANDROID","viewWidth","ViewWidth","DESKTOP","element","React","createRef","state","VKCOM","eventHandler","transitionEvent","supported","current","removeEventListener","name","addEventListener","transitionFinishTimeout","clearTimeout","setTimeout","bind","timeout","header","text","actions","actionsLayout","children","className","style","restProps","resolvedActionsLayout","canShowCloseButton","SMALL_TABLET","isDesktop","renderHeader","renderText","map","renderAction","AlertWithPlatformAndAdaptivity"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { PopoutWrapper } from \"../PopoutWrapper/PopoutWrapper\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { transitionEvent } from \"../../lib/supportEvents\";\nimport { ANDROID, VKCOM, IOS } from \"../../lib/platform\";\nimport { HasPlatform } from \"../../types\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport { withAdaptivity, ViewWidth } from \"../../hoc/withAdaptivity\";\nimport Button, { ButtonProps } from \"../Button/Button\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport Title from \"../Typography/Title/Title\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport ModalDismissButton from \"../ModalDismissButton/ModalDismissButton\";\nimport { FocusTrap } from \"../FocusTrap/FocusTrap\";\nimport {\n AdaptivityContextInterface,\n AdaptivityProps,\n} from \"../AdaptivityProvider/AdaptivityContext\";\nimport \"./Alert.css\";\n\nexport type AlertActionInterface = AlertAction &\n React.AnchorHTMLAttributes<HTMLElement>;\n\nexport interface AlertAction extends Pick<ButtonProps, \"Component\" | \"href\"> {\n title: string;\n action?: VoidFunction;\n autoclose?: boolean;\n mode: \"cancel\" | \"destructive\" | \"default\";\n}\n\nexport interface AlertProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n AdaptivityProps {\n actionsLayout?: \"vertical\" | \"horizontal\";\n actions?: AlertAction[];\n header?: React.ReactNode;\n text?: React.ReactNode;\n onClose?: VoidFunction;\n}\n\nexport type TAlertProps = AlertProps & AdaptivityContextInterface;\n\nexport interface AlertState {\n closing: boolean;\n}\n\ntype TransitionEndHandler = (e?: TransitionEvent) => void;\n\ntype ItemClickHander = (item: AlertActionInterface) => () => void;\n\nclass Alert extends React.Component<TAlertProps, AlertState> {\n constructor(props: TAlertProps) {\n super(props);\n this.element = React.createRef();\n this.state = {\n closing: false,\n };\n }\n\n element: React.RefObject<HTMLDivElement>;\n\n private transitionFinishTimeout: number | undefined = undefined;\n\n static defaultProps: Partial<TAlertProps> = {\n actionsLayout: \"horizontal\",\n actions: [],\n };\n\n private get timeout(): number {\n return this.props.platform === ANDROID || this.props.platform === VKCOM\n ? 200\n : 300;\n }\n\n onItemClick: ItemClickHander = (item: AlertActionInterface) => () => {\n const { action, autoclose } = item;\n\n if (autoclose) {\n this.setState({ closing: true });\n this.waitTransitionFinish((e?: TransitionEvent) => {\n if (!e || e.propertyName === \"opacity\") {\n autoclose && this.props.onClose?.();\n action && action();\n }\n });\n } else {\n action && action();\n }\n };\n\n onClose: VoidFunction = () => {\n this.setState({ closing: true });\n this.waitTransitionFinish((e?: TransitionEvent) => {\n if (!e || e.propertyName === \"opacity\") {\n this.props.onClose?.();\n }\n });\n };\n\n stopPropagation: React.MouseEventHandler = (e: React.SyntheticEvent) => {\n e.stopPropagation();\n };\n\n waitTransitionFinish(eventHandler: TransitionEndHandler) {\n if (transitionEvent.supported && this.element.current) {\n this.element.current.removeEventListener(\n transitionEvent.name as string,\n eventHandler as () => void\n );\n this.element.current.addEventListener(\n transitionEvent.name as string,\n eventHandler as () => void\n );\n } else {\n if (this.transitionFinishTimeout) {\n clearTimeout(this.transitionFinishTimeout);\n }\n this.transitionFinishTimeout = setTimeout(\n eventHandler.bind(this),\n this.timeout\n );\n }\n }\n\n renderHeader(header: React.ReactNode) {\n switch (this.props.platform) {\n case VKCOM:\n return (\n <Headline vkuiClass=\"Alert__header\" weight=\"medium\">\n {header}\n </Headline>\n );\n case IOS:\n return (\n <Title vkuiClass=\"Alert__header\" weight=\"semibold\" level=\"3\">\n {header}\n </Title>\n );\n case ANDROID:\n return (\n <Title vkuiClass=\"Alert__header\" weight=\"medium\" level=\"2\">\n {header}\n </Title>\n );\n default:\n return undefined;\n }\n }\n\n renderText(text: React.ReactNode) {\n switch (this.props.platform) {\n case VKCOM:\n return (\n <Caption vkuiClass=\"Alert__text\" level=\"1\" weight=\"regular\">\n {text}\n </Caption>\n );\n case IOS:\n return (\n <Caption vkuiClass=\"Alert__text\" level=\"2\" weight=\"regular\">\n {text}\n </Caption>\n );\n case ANDROID:\n return (\n <Headline vkuiClass=\"Alert__text\" weight=\"regular\">\n {text}\n </Headline>\n );\n default:\n return undefined;\n }\n }\n\n renderAction = (action: AlertActionInterface, i: number) => {\n const { platform } = this.props;\n\n if (platform === IOS) {\n const { Component = \"button\" } = action;\n return (\n <Tappable\n Component={action.href ? \"a\" : Component}\n vkuiClass={classNames(\n \"Alert__action\",\n `Alert__action--${action.mode}`\n )}\n onClick={this.onItemClick(action)}\n href={action.href}\n key={`alert-action-${i}`}\n target={action.target}\n >\n {action.title}\n </Tappable>\n );\n }\n\n let mode: ButtonProps[\"mode\"] =\n action.mode === \"cancel\" ? \"secondary\" : \"primary\";\n\n if (platform === ANDROID) {\n mode = \"tertiary\";\n\n if (\n this.props.viewWidth === ViewWidth.DESKTOP &&\n action.mode === \"destructive\"\n ) {\n mode = \"destructive\";\n }\n }\n\n return (\n <Button\n vkuiClass={classNames(\"Alert__button\", `Alert__button--${action.mode}`)}\n mode={mode}\n size=\"m\"\n onClick={this.onItemClick(action)}\n Component={action.Component}\n href={action.href}\n key={`alert-action-${i}`}\n target={action.target}\n >\n {action.title}\n </Button>\n );\n };\n\n render() {\n const {\n actions,\n actionsLayout,\n children,\n className,\n style,\n platform,\n viewWidth,\n text,\n header,\n ...restProps\n } = this.props;\n const { closing } = this.state;\n\n const resolvedActionsLayout: TAlertProps[\"actionsLayout\"] =\n platform === VKCOM ? \"horizontal\" : actionsLayout;\n const canShowCloseButton =\n platform === VKCOM ||\n (platform === ANDROID && viewWidth >= ViewWidth.SMALL_TABLET);\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET;\n\n return (\n <PopoutWrapper\n className={className}\n closing={closing}\n style={style}\n onClick={this.onClose}\n >\n <FocusTrap\n {...restProps}\n getRootRef={this.element}\n onClick={this.stopPropagation}\n onClose={this.onClose}\n timeout={this.timeout}\n vkuiClass={classNames(getClassName(\"Alert\", platform), {\n \"Alert--v\": resolvedActionsLayout === \"vertical\",\n \"Alert--h\": resolvedActionsLayout === \"horizontal\",\n \"Alert--closing\": closing,\n \"Alert--desktop\": isDesktop,\n })}\n >\n {canShowCloseButton && <ModalDismissButton onClick={this.onClose} />}\n <div vkuiClass=\"Alert__content\">\n {hasReactNode(header) && this.renderHeader(header)}\n {hasReactNode(text) && this.renderText(text)}\n {children}\n </div>\n <footer vkuiClass=\"Alert__actions\">\n {actions?.map(this.renderAction)}\n </footer>\n </FocusTrap>\n </PopoutWrapper>\n );\n }\n}\n\nconst AlertWithPlatformAndAdaptivity = withPlatform(\n withAdaptivity(Alert, {\n viewWidth: true,\n })\n);\n\nexport { AlertWithPlatformAndAdaptivity as Alert };\n"],"file":"Alert.js"}
|
|
@@ -12,4 +12,3 @@ export interface AppRootProps extends React.HTMLAttributes<HTMLDivElement>, Pick
|
|
|
12
12
|
scroll?: "global" | "contain";
|
|
13
13
|
}
|
|
14
14
|
export declare const AppRoot: React.FC<Pick<AppRootProps, "window" | "hidden" | "dir" | "slot" | "style" | "title" | "scroll" | "color" | "translate" | "prefix" | "children" | "className" | "id" | "lang" | "role" | "tabIndex" | "mode" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "embedded" | "noLegacyClasses"> & import("../AdaptivityProvider/AdaptivityContext").SizeProps>;
|
|
15
|
-
export default AppRoot;
|
|
@@ -7,7 +7,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.
|
|
10
|
+
exports.AppRoot = void 0;
|
|
11
11
|
|
|
12
12
|
var _jsxRuntime = require("../../lib/jsxRuntime");
|
|
13
13
|
|
|
@@ -202,9 +202,6 @@ var AppRoot = (0, _withAdaptivity.withAdaptivity)(function (_ref) {
|
|
|
202
202
|
}, {
|
|
203
203
|
sizeX: true,
|
|
204
204
|
hasMouse: true
|
|
205
|
-
});
|
|
206
|
-
|
|
205
|
+
});
|
|
207
206
|
exports.AppRoot = AppRoot;
|
|
208
|
-
var _default = AppRoot;
|
|
209
|
-
exports.default = _default;
|
|
210
207
|
//# sourceMappingURL=AppRoot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/AppRoot/AppRoot.tsx"],"names":["warn","AppRoot","children","_mode","mode","_embedded","embedded","sizeX","hasMouse","noLegacyClasses","scroll","props","isKeyboardInputActive","rootRef","React","useRef","useState","portalRoot","setPortalRoot","window","document","insets","appearanceContext","useContext","AppearanceProviderContext","initialized","current","documentElement","classList","add","classScopingMode","noConflict","process","env","NODE_ENV","portal","createElement","body","appendChild","parentElement","removeChild","noop","parent","classes","concat","remove","key","hasOwnProperty","inset","style","setProperty","removeProperty","SizeType","REGULAR","container","scrollController","useMemo","setAttribute","scheme","content","appRoot","keyboardInput"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { useDOM } from \"../../lib/dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { AppRootContext } from \"./AppRootContext\";\nimport {\n withAdaptivity,\n SizeType,\n AdaptivityProps,\n} from \"../../hoc/withAdaptivity\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { classScopingMode } from \"../../lib/classScopingMode\";\nimport { IconSettingsProvider } from \"@vkontakte/icons\";\nimport {\n elementScrollController,\n globalScrollController,\n ScrollContext,\n ScrollContextInterface,\n} from \"./ScrollContext\";\nimport { noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { useKeyboardInputTracker } from \"../../hooks/useKeyboardInputTracker\";\nimport { useInsets } from \"../../hooks/useInsets\";\nimport { AppearanceProviderContext } from \"../AppearanceProvider/AppearanceProviderContext\";\nimport { Insets } from \"@vkontakte/vk-bridge\";\nimport \"./AppRoot.css\";\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<AdaptivityProps, \"sizeX\" | \"hasMouse\"> {\n /** @deprecated Use mode=\"embedded\" */\n embedded?: boolean;\n /** Режим встраивания */\n mode?: \"partial\" | \"embedded\" | \"full\";\n window?: Window;\n /** Убирает классы без префикса (.Button) */\n noLegacyClasses?: boolean;\n scroll?: \"global\" | \"contain\";\n}\n\nconst warn = warnOnce(\"AppRoot\");\nexport const AppRoot = withAdaptivity<AppRootProps>(\n ({\n children,\n mode: _mode,\n embedded: _embedded,\n sizeX,\n hasMouse,\n noLegacyClasses = false,\n scroll = \"global\",\n ...props\n }) => {\n // normalize mode\n const mode = _mode || (_embedded ? \"embedded\" : \"full\");\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const [portalRoot, setPortalRoot] = React.useState<HTMLDivElement | null>(\n null\n );\n const { window, document } = useDOM();\n const insets = useInsets();\n const appearanceContext = React.useContext(AppearanceProviderContext);\n\n const initialized = React.useRef(false);\n if (!initialized.current) {\n if (document && mode === \"full\") {\n document.documentElement.classList.add(\"vkui\");\n }\n classScopingMode.noConflict = noLegacyClasses;\n initialized.current = true;\n }\n\n if (process.env.NODE_ENV === \"development\") {\n if (scroll !== \"global\" && mode !== \"embedded\") {\n warn(\"Scroll modes only supported in embedded mode\");\n }\n if (_mode && _embedded) {\n warn(`mode=\"${mode}\" overrides embedded`);\n }\n }\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n const portal = document!.createElement(\"div\");\n portal.classList.add(\"vkui__portal-root\");\n document!.body.appendChild(portal);\n setPortalRoot(portal);\n return () => {\n portal.parentElement?.removeChild(portal);\n };\n }, []);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\") {\n return noop;\n }\n\n const parent = rootRef.current?.parentElement;\n const classes = [\"vkui__root\"].concat(\n mode === \"embedded\" ? \"vkui__root--embedded\" : []\n );\n parent?.classList.add(...classes);\n\n return () => {\n parent?.classList.remove(...classes);\n if (mode === \"full\") {\n document?.documentElement.classList.remove(\"vkui\");\n }\n };\n }, []);\n\n // setup insets\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || !rootRef.current?.parentElement) {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n\n for (const key in insets) {\n if (\n insets.hasOwnProperty(key) &&\n typeof insets[key as keyof Insets] === \"number\"\n ) {\n const inset = insets[key as keyof Insets];\n parent.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n portalRoot &&\n portalRoot.style.setProperty(\n `--safe-area-inset-${key}`,\n `${inset}px`\n );\n }\n }\n\n return () => {\n for (const key in insets) {\n if (insets.hasOwnProperty(key)) {\n parent.style.removeProperty(`--safe-area-inset-${key}`);\n portalRoot &&\n portalRoot.style.removeProperty(`--safe-area-inset-${key}`);\n }\n }\n };\n }, [insets, portalRoot]);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || sizeX !== SizeType.REGULAR) {\n return noop;\n }\n const container =\n mode === \"embedded\" ? rootRef.current?.parentElement : document!.body;\n container?.classList.add(\"vkui--sizeX-regular\");\n return () => container?.classList.remove(\"vkui--sizeX-regular\");\n }, [sizeX]);\n\n const scrollController = React.useMemo<ScrollContextInterface>(\n () =>\n scroll === \"contain\"\n ? elementScrollController(rootRef)\n : globalScrollController(window, document),\n [document, scroll, window]\n );\n\n useIsomorphicLayoutEffect(() => {\n portalRoot?.setAttribute(\"scheme\", appearanceContext?.scheme ?? \"\");\n }, [portalRoot, appearanceContext?.scheme]);\n\n const content = (\n <AppRootContext.Provider\n value={{\n appRoot: rootRef,\n portalRoot: portalRoot,\n embedded: mode === \"embedded\",\n keyboardInput: isKeyboardInputActive,\n mode,\n }}\n >\n <ScrollContext.Provider value={scrollController}>\n <IconSettingsProvider\n classPrefix=\"vkui\"\n globalClasses={!noLegacyClasses}\n >\n {children}\n </IconSettingsProvider>\n </ScrollContext.Provider>\n </AppRootContext.Provider>\n );\n\n return mode === \"partial\" ? (\n content\n ) : (\n <div\n ref={rootRef}\n vkuiClass={classNames(\"AppRoot\", {\n \"AppRoot--no-mouse\": !hasMouse,\n })}\n {...props}\n >\n {content}\n </div>\n );\n },\n {\n sizeX: true,\n hasMouse: true,\n }\n);\n\n// eslint-disable-next-line import/no-default-export\nexport default AppRoot;\n"],"file":"AppRoot.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/AppRoot/AppRoot.tsx"],"names":["warn","AppRoot","children","_mode","mode","_embedded","embedded","sizeX","hasMouse","noLegacyClasses","scroll","props","isKeyboardInputActive","rootRef","React","useRef","useState","portalRoot","setPortalRoot","window","document","insets","appearanceContext","useContext","AppearanceProviderContext","initialized","current","documentElement","classList","add","classScopingMode","noConflict","process","env","NODE_ENV","portal","createElement","body","appendChild","parentElement","removeChild","noop","parent","classes","concat","remove","key","hasOwnProperty","inset","style","setProperty","removeProperty","SizeType","REGULAR","container","scrollController","useMemo","setAttribute","scheme","content","appRoot","keyboardInput"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { useDOM } from \"../../lib/dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { AppRootContext } from \"./AppRootContext\";\nimport {\n withAdaptivity,\n SizeType,\n AdaptivityProps,\n} from \"../../hoc/withAdaptivity\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { classScopingMode } from \"../../lib/classScopingMode\";\nimport { IconSettingsProvider } from \"@vkontakte/icons\";\nimport {\n elementScrollController,\n globalScrollController,\n ScrollContext,\n ScrollContextInterface,\n} from \"./ScrollContext\";\nimport { noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { useKeyboardInputTracker } from \"../../hooks/useKeyboardInputTracker\";\nimport { useInsets } from \"../../hooks/useInsets\";\nimport { AppearanceProviderContext } from \"../AppearanceProvider/AppearanceProviderContext\";\nimport { Insets } from \"@vkontakte/vk-bridge\";\nimport \"./AppRoot.css\";\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<AdaptivityProps, \"sizeX\" | \"hasMouse\"> {\n /** @deprecated Use mode=\"embedded\" */\n embedded?: boolean;\n /** Режим встраивания */\n mode?: \"partial\" | \"embedded\" | \"full\";\n window?: Window;\n /** Убирает классы без префикса (.Button) */\n noLegacyClasses?: boolean;\n scroll?: \"global\" | \"contain\";\n}\n\nconst warn = warnOnce(\"AppRoot\");\nexport const AppRoot = withAdaptivity<AppRootProps>(\n ({\n children,\n mode: _mode,\n embedded: _embedded,\n sizeX,\n hasMouse,\n noLegacyClasses = false,\n scroll = \"global\",\n ...props\n }) => {\n // normalize mode\n const mode = _mode || (_embedded ? \"embedded\" : \"full\");\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const [portalRoot, setPortalRoot] = React.useState<HTMLDivElement | null>(\n null\n );\n const { window, document } = useDOM();\n const insets = useInsets();\n const appearanceContext = React.useContext(AppearanceProviderContext);\n\n const initialized = React.useRef(false);\n if (!initialized.current) {\n if (document && mode === \"full\") {\n document.documentElement.classList.add(\"vkui\");\n }\n classScopingMode.noConflict = noLegacyClasses;\n initialized.current = true;\n }\n\n if (process.env.NODE_ENV === \"development\") {\n if (scroll !== \"global\" && mode !== \"embedded\") {\n warn(\"Scroll modes only supported in embedded mode\");\n }\n if (_mode && _embedded) {\n warn(`mode=\"${mode}\" overrides embedded`);\n }\n }\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n const portal = document!.createElement(\"div\");\n portal.classList.add(\"vkui__portal-root\");\n document!.body.appendChild(portal);\n setPortalRoot(portal);\n return () => {\n portal.parentElement?.removeChild(portal);\n };\n }, []);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\") {\n return noop;\n }\n\n const parent = rootRef.current?.parentElement;\n const classes = [\"vkui__root\"].concat(\n mode === \"embedded\" ? \"vkui__root--embedded\" : []\n );\n parent?.classList.add(...classes);\n\n return () => {\n parent?.classList.remove(...classes);\n if (mode === \"full\") {\n document?.documentElement.classList.remove(\"vkui\");\n }\n };\n }, []);\n\n // setup insets\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || !rootRef.current?.parentElement) {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n\n for (const key in insets) {\n if (\n insets.hasOwnProperty(key) &&\n typeof insets[key as keyof Insets] === \"number\"\n ) {\n const inset = insets[key as keyof Insets];\n parent.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n portalRoot &&\n portalRoot.style.setProperty(\n `--safe-area-inset-${key}`,\n `${inset}px`\n );\n }\n }\n\n return () => {\n for (const key in insets) {\n if (insets.hasOwnProperty(key)) {\n parent.style.removeProperty(`--safe-area-inset-${key}`);\n portalRoot &&\n portalRoot.style.removeProperty(`--safe-area-inset-${key}`);\n }\n }\n };\n }, [insets, portalRoot]);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || sizeX !== SizeType.REGULAR) {\n return noop;\n }\n const container =\n mode === \"embedded\" ? rootRef.current?.parentElement : document!.body;\n container?.classList.add(\"vkui--sizeX-regular\");\n return () => container?.classList.remove(\"vkui--sizeX-regular\");\n }, [sizeX]);\n\n const scrollController = React.useMemo<ScrollContextInterface>(\n () =>\n scroll === \"contain\"\n ? elementScrollController(rootRef)\n : globalScrollController(window, document),\n [document, scroll, window]\n );\n\n useIsomorphicLayoutEffect(() => {\n portalRoot?.setAttribute(\"scheme\", appearanceContext?.scheme ?? \"\");\n }, [portalRoot, appearanceContext?.scheme]);\n\n const content = (\n <AppRootContext.Provider\n value={{\n appRoot: rootRef,\n portalRoot: portalRoot,\n embedded: mode === \"embedded\",\n keyboardInput: isKeyboardInputActive,\n mode,\n }}\n >\n <ScrollContext.Provider value={scrollController}>\n <IconSettingsProvider\n classPrefix=\"vkui\"\n globalClasses={!noLegacyClasses}\n >\n {children}\n </IconSettingsProvider>\n </ScrollContext.Provider>\n </AppRootContext.Provider>\n );\n\n return mode === \"partial\" ? (\n content\n ) : (\n <div\n ref={rootRef}\n vkuiClass={classNames(\"AppRoot\", {\n \"AppRoot--no-mouse\": !hasMouse,\n })}\n {...props}\n >\n {content}\n </div>\n );\n },\n {\n sizeX: true,\n hasMouse: true,\n }\n);\n"],"file":"AppRoot.js"}
|
|
@@ -38,7 +38,7 @@ var AppearanceProvider = function AppearanceProvider(_ref) {
|
|
|
38
38
|
}, React.Children.map(children, function (child) {
|
|
39
39
|
if ( /*#__PURE__*/React.isValidElement(child)) {
|
|
40
40
|
return /*#__PURE__*/React.cloneElement(child, {
|
|
41
|
-
className: (0, _classNames.
|
|
41
|
+
className: (0, _classNames.classNamesString)(child.props.className, "vkui".concat(appearanceContext.scheme))
|
|
42
42
|
});
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/AppearanceProvider/AppearanceProvider.tsx"],"names":["AppearanceProvider","children","appearance","platform","appearanceContext","React","useMemo","scheme","Children","map","child","isValidElement","cloneElement","className","props"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AAMO,IAAMA,kBAAqD,GAAG,SAAxDA,kBAAwD,OAG/D;AAAA,MAFJC,QAEI,QAFJA,QAEI;AAAA,6BADJC,UACI;AAAA,MADJA,UACI,gCADS,OACT;AACJ,MAAMC,QAAQ,GAAG,+BAAjB;AAEA,MAAMC,iBAAiB,GAAGC,KAAK,CAACC,OAAN,CACxB;AAAA,WAAO;AACLC,MAAAA,MAAM,EAAE,0BAAU;AAChBJ,QAAAA,QAAQ,EAARA,QADgB;AAEhBD,QAAAA,UAAU,EAAVA;AAFgB,OAAV,CADH;AAKLA,MAAAA,UAAU,EAAVA;AALK,KAAP;AAAA,GADwB,EAQxB,CAACA,UAAD,EAAaC,QAAb,CARwB,CAA1B;AAWA,SACE,qCAAC,oDAAD,CAA2B,QAA3B;AAAoC,IAAA,KAAK,EAAEC;AAA3C,KACGC,KAAK,CAACG,QAAN,CAAeC,GAAf,CAAmBR,QAAnB,EAA6B,UAACS,KAAD,EAAW;AACvC,sBAAIL,KAAK,CAACM,cAAN,CAAqBD,KAArB,CAAJ,EAAiC;AAC/B,0BAAOL,KAAK,CAACO,YAAN,CAAmBF,KAAnB,EAA0B;AAC/BG,QAAAA,SAAS,EAAE,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/AppearanceProvider/AppearanceProvider.tsx"],"names":["AppearanceProvider","children","appearance","platform","appearanceContext","React","useMemo","scheme","Children","map","child","isValidElement","cloneElement","className","props"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AAMO,IAAMA,kBAAqD,GAAG,SAAxDA,kBAAwD,OAG/D;AAAA,MAFJC,QAEI,QAFJA,QAEI;AAAA,6BADJC,UACI;AAAA,MADJA,UACI,gCADS,OACT;AACJ,MAAMC,QAAQ,GAAG,+BAAjB;AAEA,MAAMC,iBAAiB,GAAGC,KAAK,CAACC,OAAN,CACxB;AAAA,WAAO;AACLC,MAAAA,MAAM,EAAE,0BAAU;AAChBJ,QAAAA,QAAQ,EAARA,QADgB;AAEhBD,QAAAA,UAAU,EAAVA;AAFgB,OAAV,CADH;AAKLA,MAAAA,UAAU,EAAVA;AALK,KAAP;AAAA,GADwB,EAQxB,CAACA,UAAD,EAAaC,QAAb,CARwB,CAA1B;AAWA,SACE,qCAAC,oDAAD,CAA2B,QAA3B;AAAoC,IAAA,KAAK,EAAEC;AAA3C,KACGC,KAAK,CAACG,QAAN,CAAeC,GAAf,CAAmBR,QAAnB,EAA6B,UAACS,KAAD,EAAW;AACvC,sBAAIL,KAAK,CAACM,cAAN,CAAqBD,KAArB,CAAJ,EAAiC;AAC/B,0BAAOL,KAAK,CAACO,YAAN,CAAmBF,KAAnB,EAA0B;AAC/BG,QAAAA,SAAS,EAAE,kCACTH,KAAK,CAACI,KAAN,CAAYD,SADH,gBAEFT,iBAAiB,CAACG,MAFhB;AADoB,OAA1B,CAAP;AAMD;;AACD,WAAOG,KAAP;AACD,GAVA,CADH,CADF;AAeD,CAhCM","sourcesContent":["import * as React from \"react\";\nimport { AppearanceType } from \"@vkontakte/vk-bridge\";\nimport { AppearanceProviderContext } from \"./AppearanceProviderContext\";\nimport { getScheme } from \"../../helpers/getScheme\";\nimport { classNamesString } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\n\nexport interface AppearanceProviderProps {\n appearance?: AppearanceType;\n}\n\nexport const AppearanceProvider: React.FC<AppearanceProviderProps> = ({\n children,\n appearance = \"light\",\n}) => {\n const platform = usePlatform();\n\n const appearanceContext = React.useMemo(\n () => ({\n scheme: getScheme({\n platform,\n appearance,\n }),\n appearance,\n }),\n [appearance, platform]\n );\n\n return (\n <AppearanceProviderContext.Provider value={appearanceContext}>\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n className: classNamesString(\n child.props.className,\n `vkui${appearanceContext.scheme}`\n ),\n });\n }\n return child;\n })}\n </AppearanceProviderContext.Provider>\n );\n};\n"],"file":"AppearanceProvider.js"}
|
|
@@ -19,8 +19,6 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
|
|
|
19
19
|
|
|
20
20
|
var React = _interopRequireWildcard(require("react"));
|
|
21
21
|
|
|
22
|
-
var _getClassName = require("../../helpers/getClassName");
|
|
23
|
-
|
|
24
22
|
var _classNames2 = require("../../lib/classNames");
|
|
25
23
|
|
|
26
24
|
var _ConfigProviderContext = require("../ConfigProvider/ConfigProviderContext");
|
|
@@ -181,7 +179,7 @@ var Button = function Button(props) {
|
|
|
181
179
|
Component: restProps.href ? "a" : Component,
|
|
182
180
|
onClick: loading ? undefined : onClick,
|
|
183
181
|
focusVisibleMode: "outside",
|
|
184
|
-
vkuiClass: (0, _classNames2.classNames)(
|
|
182
|
+
vkuiClass: (0, _classNames2.classNames)("Button", "Button--sz-".concat(size), "Button--lvl-".concat(resolvedMode), "Button--clr-".concat(resolvedAppearance), "Button--aln-".concat(align), "Button--sizeY-".concat(sizeY), (_classNames = {}, (0, _defineProperty2.default)(_classNames, "Button--stretched", stretched), (0, _defineProperty2.default)(_classNames, "Button--with-icon", hasIcons), (0, _defineProperty2.default)(_classNames, "Button--singleIcon", Boolean(!children && !after && before || !children && after && !before)), _classNames)),
|
|
185
183
|
getRootRef: getRootRef,
|
|
186
184
|
hoverMode: hasNewTokens ? "Button--hover" : "background",
|
|
187
185
|
activeMode: hasNewTokens ? "Button--active" : "opacity"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Button/Button.tsx"],"names":["ButtonTypography","props","size","sizeY","platform","restProps","isCompact","SizeType","COMPACT","VKCOM","IOS","resolveButtonAppearance","appearance","mode","resolvedAppearance","resolvedMode","undefined","Button","stretched","align","children","before","after","getRootRef","Component","loading","onClick","hasIcons","Boolean","hasNewTokens","React","useContext","ConfigProviderContext","href","defaultProps","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport Title from \"../Typography/Title/Title\";\nimport Text from \"../Typography/Text/Text\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport { HasAlign, HasComponent } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n AdaptivityProps,\n SizeType,\n withAdaptivity,\n} from \"../../hoc/withAdaptivity\";\nimport { Platform, IOS, VKCOM } from \"../../lib/platform\";\nimport Spinner from \"../Spinner/Spinner\";\nimport \"./Button.css\";\n\nexport interface VKUIButtonProps extends HasAlign {\n /**\n Значения `commerce`, `destructive`, `overlay_...` будут упразднены в 5.0.0\n */\n mode?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"outline\"\n | \"commerce\"\n | \"destructive\"\n | \"overlay_primary\"\n | \"overlay_secondary\"\n | \"overlay_outline\";\n appearance?: \"accent\" | \"positive\" | \"negative\" | \"neutral\" | \"overlay\";\n size?: \"s\" | \"m\" | \"l\";\n stretched?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n loading?: boolean;\n}\n\nexport interface ButtonProps\n extends Omit<TappableProps, \"size\">,\n VKUIButtonProps {}\n\ninterface ButtonTypographyProps extends HasComponent {\n size: ButtonProps[\"size\"];\n platform: Platform | undefined;\n sizeY: AdaptivityProps[\"sizeY\"];\n children?: ButtonProps[\"children\"];\n}\n\nconst ButtonTypography: React.FC<ButtonTypographyProps> = (\n props: ButtonTypographyProps\n) => {\n const { size, sizeY, platform, ...restProps } = props;\n const isCompact = sizeY === SizeType.COMPACT;\n\n switch (size) {\n case \"l\":\n if (isCompact) {\n return <Text weight=\"medium\" {...restProps} />;\n }\n\n return <Title level=\"3\" weight=\"medium\" {...restProps} />;\n case \"m\":\n if (isCompact) {\n return (\n <Subhead\n weight={platform === VKCOM ? \"regular\" : \"medium\"}\n {...restProps}\n />\n );\n }\n\n return <Text weight=\"medium\" {...restProps} />;\n case \"s\":\n default:\n if (platform === IOS) {\n return <Subhead weight=\"medium\" {...restProps} />;\n }\n\n if (platform === VKCOM) {\n return <Caption level=\"1\" weight=\"regular\" {...restProps} />;\n }\n\n if (isCompact) {\n return <Caption level=\"1\" weight=\"medium\" {...restProps} />;\n }\n\n return <Subhead weight=\"medium\" {...restProps} />;\n }\n};\n\ninterface ResolvedButtonAppearance {\n resolvedAppearance: ButtonProps[\"appearance\"];\n resolvedMode: ButtonProps[\"mode\"];\n}\n\nfunction resolveButtonAppearance(\n appearance: ButtonProps[\"appearance\"],\n mode: ButtonProps[\"mode\"]\n): ResolvedButtonAppearance {\n let resolvedAppearance: ButtonProps[\"appearance\"] = appearance;\n let resolvedMode: ButtonProps[\"mode\"] = mode;\n\n if (appearance === undefined) {\n switch (mode) {\n case \"tertiary\":\n case \"secondary\":\n case \"primary\":\n case \"outline\":\n resolvedAppearance = \"accent\";\n break;\n case \"commerce\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"positive\";\n break;\n case \"destructive\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"negative\";\n break;\n case \"overlay_primary\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_secondary\":\n resolvedMode = \"secondary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_outline\":\n resolvedMode = \"outline\";\n resolvedAppearance = \"overlay\";\n break;\n }\n }\n\n return {\n resolvedAppearance,\n resolvedMode,\n };\n}\n\nconst Button: React.FC<ButtonProps> = (props: ButtonProps) => {\n const platform = usePlatform();\n const {\n size,\n mode,\n appearance,\n stretched,\n align,\n children,\n before,\n after,\n getRootRef,\n sizeY,\n Component = \"button\",\n loading,\n onClick,\n ...restProps\n } = props;\n const hasIcons = Boolean(before || after);\n const { resolvedMode, resolvedAppearance } = resolveButtonAppearance(\n appearance,\n mode\n );\n const hasNewTokens = React.useContext(ConfigProviderContext).hasNewTokens;\n\n return (\n <Tappable\n {...restProps}\n Component={restProps.href ? \"a\" : Component}\n onClick={loading ? undefined : onClick}\n focusVisibleMode=\"outside\"\n vkuiClass={classNames(\n getClassName(\"Button\", platform),\n `Button--sz-${size}`,\n `Button--lvl-${resolvedMode}`,\n `Button--clr-${resolvedAppearance}`,\n `Button--aln-${align}`,\n `Button--sizeY-${sizeY}`,\n {\n [\"Button--stretched\"]: stretched,\n [\"Button--with-icon\"]: hasIcons,\n [\"Button--singleIcon\"]: Boolean(\n (!children && !after && before) || (!children && after && !before)\n ),\n }\n )}\n getRootRef={getRootRef}\n hoverMode={hasNewTokens ? \"Button--hover\" : \"background\"}\n activeMode={hasNewTokens ? \"Button--active\" : \"opacity\"}\n >\n {loading && <Spinner size=\"small\" vkuiClass=\"Button__spinner\" />}\n <span vkuiClass=\"Button__in\">\n {before && <span vkuiClass=\"Button__before\">{before}</span>}\n {children && (\n <ButtonTypography\n size={size}\n sizeY={sizeY}\n platform={platform}\n vkuiClass=\"Button__content\"\n Component=\"span\"\n >\n {children}\n </ButtonTypography>\n )}\n {after && <span vkuiClass=\"Button__after\">{after}</span>}\n </span>\n </Tappable>\n );\n};\n\nButton.defaultProps = {\n mode: \"primary\",\n align: \"center\",\n size: \"s\",\n stretched: false,\n stopPropagation: true,\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(Button, {\n sizeY: true,\n});\n"],"file":"Button.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Button/Button.tsx"],"names":["ButtonTypography","props","size","sizeY","platform","restProps","isCompact","SizeType","COMPACT","VKCOM","IOS","resolveButtonAppearance","appearance","mode","resolvedAppearance","resolvedMode","undefined","Button","stretched","align","children","before","after","getRootRef","Component","loading","onClick","hasIcons","Boolean","hasNewTokens","React","useContext","ConfigProviderContext","href","defaultProps","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport Title from \"../Typography/Title/Title\";\nimport Text from \"../Typography/Text/Text\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport { HasAlign, HasComponent } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n AdaptivityProps,\n SizeType,\n withAdaptivity,\n} from \"../../hoc/withAdaptivity\";\nimport { IOS, VKCOM, PlatformType } from \"../../lib/platform\";\nimport Spinner from \"../Spinner/Spinner\";\nimport \"./Button.css\";\n\nexport interface VKUIButtonProps extends HasAlign {\n /**\n Значения `commerce`, `destructive`, `overlay_...` будут упразднены в 5.0.0\n */\n mode?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"outline\"\n | \"commerce\"\n | \"destructive\"\n | \"overlay_primary\"\n | \"overlay_secondary\"\n | \"overlay_outline\";\n appearance?: \"accent\" | \"positive\" | \"negative\" | \"neutral\" | \"overlay\";\n size?: \"s\" | \"m\" | \"l\";\n stretched?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n loading?: boolean;\n}\n\nexport interface ButtonProps\n extends Omit<TappableProps, \"size\">,\n VKUIButtonProps {}\n\ninterface ButtonTypographyProps extends HasComponent {\n size: ButtonProps[\"size\"];\n platform: PlatformType | undefined;\n sizeY: AdaptivityProps[\"sizeY\"];\n children?: ButtonProps[\"children\"];\n}\n\nconst ButtonTypography: React.FC<ButtonTypographyProps> = (\n props: ButtonTypographyProps\n) => {\n const { size, sizeY, platform, ...restProps } = props;\n const isCompact = sizeY === SizeType.COMPACT;\n\n switch (size) {\n case \"l\":\n if (isCompact) {\n return <Text weight=\"medium\" {...restProps} />;\n }\n\n return <Title level=\"3\" weight=\"medium\" {...restProps} />;\n case \"m\":\n if (isCompact) {\n return (\n <Subhead\n weight={platform === VKCOM ? \"regular\" : \"medium\"}\n {...restProps}\n />\n );\n }\n\n return <Text weight=\"medium\" {...restProps} />;\n case \"s\":\n default:\n if (platform === IOS) {\n return <Subhead weight=\"medium\" {...restProps} />;\n }\n\n if (platform === VKCOM) {\n return <Caption level=\"1\" weight=\"regular\" {...restProps} />;\n }\n\n if (isCompact) {\n return <Caption level=\"1\" weight=\"medium\" {...restProps} />;\n }\n\n return <Subhead weight=\"medium\" {...restProps} />;\n }\n};\n\ninterface ResolvedButtonAppearance {\n resolvedAppearance: ButtonProps[\"appearance\"];\n resolvedMode: ButtonProps[\"mode\"];\n}\n\nfunction resolveButtonAppearance(\n appearance: ButtonProps[\"appearance\"],\n mode: ButtonProps[\"mode\"]\n): ResolvedButtonAppearance {\n let resolvedAppearance: ButtonProps[\"appearance\"] = appearance;\n let resolvedMode: ButtonProps[\"mode\"] = mode;\n\n if (appearance === undefined) {\n switch (mode) {\n case \"tertiary\":\n case \"secondary\":\n case \"primary\":\n case \"outline\":\n resolvedAppearance = \"accent\";\n break;\n case \"commerce\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"positive\";\n break;\n case \"destructive\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"negative\";\n break;\n case \"overlay_primary\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_secondary\":\n resolvedMode = \"secondary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_outline\":\n resolvedMode = \"outline\";\n resolvedAppearance = \"overlay\";\n break;\n }\n }\n\n return {\n resolvedAppearance,\n resolvedMode,\n };\n}\n\nconst Button: React.FC<ButtonProps> = (props: ButtonProps) => {\n const platform = usePlatform();\n const {\n size,\n mode,\n appearance,\n stretched,\n align,\n children,\n before,\n after,\n getRootRef,\n sizeY,\n Component = \"button\",\n loading,\n onClick,\n ...restProps\n } = props;\n const hasIcons = Boolean(before || after);\n const { resolvedMode, resolvedAppearance } = resolveButtonAppearance(\n appearance,\n mode\n );\n const hasNewTokens = React.useContext(ConfigProviderContext).hasNewTokens;\n\n return (\n <Tappable\n {...restProps}\n Component={restProps.href ? \"a\" : Component}\n onClick={loading ? undefined : onClick}\n focusVisibleMode=\"outside\"\n vkuiClass={classNames(\n \"Button\",\n `Button--sz-${size}`,\n `Button--lvl-${resolvedMode}`,\n `Button--clr-${resolvedAppearance}`,\n `Button--aln-${align}`,\n `Button--sizeY-${sizeY}`,\n {\n [\"Button--stretched\"]: stretched,\n [\"Button--with-icon\"]: hasIcons,\n [\"Button--singleIcon\"]: Boolean(\n (!children && !after && before) || (!children && after && !before)\n ),\n }\n )}\n getRootRef={getRootRef}\n hoverMode={hasNewTokens ? \"Button--hover\" : \"background\"}\n activeMode={hasNewTokens ? \"Button--active\" : \"opacity\"}\n >\n {loading && <Spinner size=\"small\" vkuiClass=\"Button__spinner\" />}\n <span vkuiClass=\"Button__in\">\n {before && <span vkuiClass=\"Button__before\">{before}</span>}\n {children && (\n <ButtonTypography\n size={size}\n sizeY={sizeY}\n platform={platform}\n vkuiClass=\"Button__content\"\n Component=\"span\"\n >\n {children}\n </ButtonTypography>\n )}\n {after && <span vkuiClass=\"Button__after\">{after}</span>}\n </span>\n </Tappable>\n );\n};\n\nButton.defaultProps = {\n mode: \"primary\",\n align: \"center\",\n size: \"s\",\n stretched: false,\n stopPropagation: true,\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(Button, {\n sizeY: true,\n});\n"],"file":"Button.js"}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
import { HorizontalScrollProps } from "../HorizontalScroll/HorizontalScroll";
|
|
2
3
|
import { AdaptivityProps } from "../../hoc/withAdaptivity";
|
|
3
4
|
import "./CardScroll.css";
|
|
4
5
|
export interface CardScrollProps extends React.HTMLAttributes<HTMLDivElement>, AdaptivityProps {
|
|
5
|
-
|
|
6
|
+
/**
|
|
7
|
+
* При size = "s", "m", "l" у Card будет явно задана ширина в %
|
|
8
|
+
* При size = false ширина Card будет регулироваться контентом внутри
|
|
9
|
+
*/
|
|
10
|
+
size?: "s" | "m" | "l" | false;
|
|
11
|
+
showArrows?: HorizontalScrollProps["showArrows"];
|
|
12
|
+
withSpaces: boolean;
|
|
6
13
|
}
|
|
7
|
-
declare const _default: React.FC<Pick<CardScrollProps, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "size" | "translate" | "prefix" | "children" | "className" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is"> & import("../AdaptivityProvider/AdaptivityContext").SizeProps>;
|
|
14
|
+
declare const _default: React.FC<Pick<CardScrollProps, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "size" | "translate" | "prefix" | "children" | "className" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "showArrows" | "withSpaces"> & import("../AdaptivityProvider/AdaptivityContext").SizeProps>;
|
|
8
15
|
export default _default;
|
|
@@ -13,11 +13,13 @@ var _jsxRuntime = require("../../lib/jsxRuntime");
|
|
|
13
13
|
|
|
14
14
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
15
|
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
|
|
16
18
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
17
19
|
|
|
18
20
|
var React = _interopRequireWildcard(require("react"));
|
|
19
21
|
|
|
20
|
-
var
|
|
22
|
+
var _classNames2 = require("../../lib/classNames");
|
|
21
23
|
|
|
22
24
|
var _getClassName = require("../../helpers/getClassName");
|
|
23
25
|
|
|
@@ -29,12 +31,16 @@ var _withAdaptivity = require("../../hoc/withAdaptivity");
|
|
|
29
31
|
|
|
30
32
|
var _dom = require("../../lib/dom");
|
|
31
33
|
|
|
32
|
-
var _excluded = ["children", "size", "sizeX"];
|
|
34
|
+
var _excluded = ["children", "size", "showArrows", "sizeX", "withSpaces"];
|
|
33
35
|
|
|
34
36
|
var CardScroll = function CardScroll(_ref) {
|
|
35
37
|
var children = _ref.children,
|
|
36
38
|
size = _ref.size,
|
|
39
|
+
_ref$showArrows = _ref.showArrows,
|
|
40
|
+
showArrows = _ref$showArrows === void 0 ? true : _ref$showArrows,
|
|
37
41
|
sizeX = _ref.sizeX,
|
|
42
|
+
_ref$withSpaces = _ref.withSpaces,
|
|
43
|
+
withSpaces = _ref$withSpaces === void 0 ? true : _ref$withSpaces,
|
|
38
44
|
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
39
45
|
var platform = (0, _usePlatform.usePlatform)();
|
|
40
46
|
var refContainer = React.useRef(null);
|
|
@@ -89,11 +95,11 @@ var CardScroll = function CardScroll(_ref) {
|
|
|
89
95
|
}
|
|
90
96
|
|
|
91
97
|
return (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({}, restProps, {
|
|
92
|
-
vkuiClass: (0,
|
|
98
|
+
vkuiClass: (0, _classNames2.classNames)((0, _getClassName.getClassName)("CardScroll", platform), "CardScroll--sizeX-".concat(sizeX), "CardScroll--".concat(size), (0, _defineProperty2.default)({}, "CardScroll--withSpaces", withSpaces))
|
|
93
99
|
}), (0, _jsxRuntime.createScopedElement)(_HorizontalScroll.default, {
|
|
94
100
|
getScrollToLeft: getScrollToLeft,
|
|
95
101
|
getScrollToRight: getScrollToRight,
|
|
96
|
-
showArrows:
|
|
102
|
+
showArrows: showArrows
|
|
97
103
|
}, (0, _jsxRuntime.createScopedElement)("div", {
|
|
98
104
|
vkuiClass: "CardScroll__in",
|
|
99
105
|
ref: refContainer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/CardScroll/CardScroll.tsx"],"names":["CardScroll","children","size","sizeX","restProps","platform","refContainer","React","useRef","gapRef","window","getScrollToLeft","offset","current","containerWidth","offsetWidth","slideIndex","Array","from","findIndex","el","offsetLeft","parseInt","getComputedStyle","marginRight","slide","scrollTo","getScrollToRight","prototype","find","call","defaultProps"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CardScroll/CardScroll.tsx"],"names":["CardScroll","children","size","showArrows","sizeX","withSpaces","restProps","platform","refContainer","React","useRef","gapRef","window","getScrollToLeft","offset","current","containerWidth","offsetWidth","slideIndex","Array","from","findIndex","el","offsetLeft","parseInt","getComputedStyle","marginRight","slide","scrollTo","getScrollToRight","prototype","find","call","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAGA;;AACA;;;;AAeA,IAAMA,UAAqC,GAAG,SAAxCA,UAAwC,OAOvB;AAAA,MANrBC,QAMqB,QANrBA,QAMqB;AAAA,MALrBC,IAKqB,QALrBA,IAKqB;AAAA,6BAJrBC,UAIqB;AAAA,MAJrBA,UAIqB,gCAJR,IAIQ;AAAA,MAHrBC,KAGqB,QAHrBA,KAGqB;AAAA,6BAFrBC,UAEqB;AAAA,MAFrBA,UAEqB,gCAFR,IAEQ;AAAA,MADlBC,SACkB;AACrB,MAAMC,QAAQ,GAAG,+BAAjB;AAEA,MAAMC,YAAY,GAAGC,KAAK,CAACC,MAAN,CAA6B,IAA7B,CAArB;AACA,MAAMC,MAAM,GAAGF,KAAK,CAACC,MAAN,CAA6B,IAA7B,CAAf;;AAEA,gBAAmB,kBAAnB;AAAA,MAAQE,MAAR,WAAQA,MAAR;;AAEA,WAASC,eAAT,CAAyBC,MAAzB,EAAiD;AAC/C,QAAI,CAACN,YAAY,CAACO,OAAd,IAAyB,CAACJ,MAAM,CAACI,OAArC,EAA8C;AAC5C,aAAOD,MAAP;AACD;;AACD,QAAME,cAAc,GAAGR,YAAY,CAACO,OAAb,CAAqBE,WAA5C;AACA,QAAMC,UAAU,GACdC,KAAK,CAACC,IAAN,CAAWZ,YAAY,CAACO,OAAb,CAAqBd,QAAhC,CADiB,CAEjBoB,SAFiB,CAGjB,UAACC,EAAD;AAAA,aACEA,EAAE,CAACC,UAAH,GACED,EAAE,CAACL,WADL,GAEEO,QAAQ,CAACZ,MAAM,CAAEa,gBAAR,CAAyBH,EAAzB,EAA6BI,WAA9B,CAFV,GAGEZ,MAHF,IAIA,CALF;AAAA,KAHiB,CAAnB;;AAWA,QAAII,UAAU,KAAK,CAAC,CAApB,EAAuB;AACrB,aAAOJ,MAAP;AACD;;AAED,QAAII,UAAU,KAAK,CAAnB,EAAsB;AACpB,aAAO,CAAP;AACD;;AAED,QAAMS,KAAK,GAAGnB,YAAY,CAACO,OAAb,CAAqBd,QAArB,CAA8BiB,UAA9B,CAAd;AAEA,QAAMU,QAAQ,GACZD,KAAK,CAACJ,UAAN,IACCP,cAAc,GAAGW,KAAK,CAACV,WADxB,IAEAN,MAAM,CAACI,OAAP,CAAeE,WAHjB;;AAKA,QAAIW,QAAQ,IAAI,IAAIjB,MAAM,CAACI,OAAP,CAAeE,WAAnC,EAAgD;AAC9C,aAAO,CAAP;AACD;;AAED,WAAOW,QAAP;AACD;;AAED,WAASC,gBAAT,CAA0Bf,MAA1B,EAAkD;AAChD,QAAI,CAACN,YAAY,CAACO,OAAd,IAAyB,CAACJ,MAAM,CAACI,OAArC,EAA8C;AAC5C,aAAOD,MAAP;AACD;;AAED,QAAME,cAAc,GAAGR,YAAY,CAACO,OAAb,CAAqBE,WAA5C;AACA,QAAMU,KAAK,GAAGR,KAAK,CAACW,SAAN,CAAgBC,IAAhB,CAAqBC,IAArB,CACZxB,YAAY,CAACO,OAAb,CAAqBd,QADT,EAEZ,UAACqB,EAAD;AAAA,aACEA,EAAE,CAACC,UAAH,GAAgBD,EAAE,CAACL,WAAnB,GAAiCH,MAAjC,GAA0CE,cAD5C;AAAA,KAFY,CAAd;;AAMA,QAAI,CAACW,KAAL,EAAY;AACV,aAAOb,MAAP;AACD;;AAED,WAAOa,KAAK,CAACJ,UAAN,GAAmBZ,MAAM,CAACI,OAAP,CAAeE,WAAzC;AACD;;AAED,SACE,uEACMX,SADN;AAEE,IAAA,SAAS,EAAE,6BACT,gCAAa,YAAb,EAA2BC,QAA3B,CADS,8BAEYH,KAFZ,yBAGMF,IAHN,qCAIN,wBAJM,EAIqBG,UAJrB;AAFb,MASE,qCAAC,yBAAD;AACE,IAAA,eAAe,EAAEQ,eADnB;AAEE,IAAA,gBAAgB,EAAEgB,gBAFpB;AAGE,IAAA,UAAU,EAAE1B;AAHd,KAKE;AAAK,IAAA,SAAS,EAAC,gBAAf;AAAgC,IAAA,GAAG,EAAEK;AAArC,KACE;AAAM,IAAA,SAAS,EAAC,iBAAhB;AAAkC,IAAA,GAAG,EAAEG;AAAvC,IADF,EAEGV,QAFH,EAGE;AAAM,IAAA,SAAS,EAAC;AAAhB,IAHF,CALF,CATF,CADF;AAuBD,CA/FD;;AAiGAD,UAAU,CAACiC,YAAX,GAA0B;AACxB/B,EAAAA,IAAI,EAAE;AADkB,CAA1B,C,CAIA;;eACe,oCAAeF,UAAf,EAA2B;AAAEI,EAAAA,KAAK,EAAE;AAAT,CAA3B,C","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport HorizontalScroll, {\n HorizontalScrollProps,\n} from \"../HorizontalScroll/HorizontalScroll\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { useDOM } from \"../../lib/dom\";\nimport \"./CardScroll.css\";\n\nexport interface CardScrollProps\n extends React.HTMLAttributes<HTMLDivElement>,\n AdaptivityProps {\n /**\n * При size = \"s\", \"m\", \"l\" у Card будет явно задана ширина в %\n * При size = false ширина Card будет регулироваться контентом внутри\n */\n size?: \"s\" | \"m\" | \"l\" | false;\n showArrows?: HorizontalScrollProps[\"showArrows\"];\n withSpaces: boolean;\n}\n\nconst CardScroll: React.FC<CardScrollProps> = ({\n children,\n size,\n showArrows = true,\n sizeX,\n withSpaces = true,\n ...restProps\n}: CardScrollProps) => {\n const platform = usePlatform();\n\n const refContainer = React.useRef<HTMLDivElement>(null);\n const gapRef = React.useRef<HTMLDivElement>(null);\n\n const { window } = useDOM();\n\n function getScrollToLeft(offset: number): number {\n if (!refContainer.current || !gapRef.current) {\n return offset;\n }\n const containerWidth = refContainer.current.offsetWidth;\n const slideIndex = (\n Array.from(refContainer.current.children) as HTMLElement[]\n ).findIndex(\n (el: HTMLElement) =>\n el.offsetLeft +\n el.offsetWidth +\n parseInt(window!.getComputedStyle(el).marginRight) -\n offset >=\n 0\n );\n\n if (slideIndex === -1) {\n return offset;\n }\n\n if (slideIndex === 0) {\n return 0;\n }\n\n const slide = refContainer.current.children[slideIndex] as HTMLElement;\n\n const scrollTo =\n slide.offsetLeft -\n (containerWidth - slide.offsetWidth) +\n gapRef.current.offsetWidth;\n\n if (scrollTo <= 2 * gapRef.current.offsetWidth) {\n return 0;\n }\n\n return scrollTo;\n }\n\n function getScrollToRight(offset: number): number {\n if (!refContainer.current || !gapRef.current) {\n return offset;\n }\n\n const containerWidth = refContainer.current.offsetWidth;\n const slide = Array.prototype.find.call(\n refContainer.current.children,\n (el: HTMLElement) =>\n el.offsetLeft + el.offsetWidth - offset > containerWidth\n ) as HTMLElement;\n\n if (!slide) {\n return offset;\n }\n\n return slide.offsetLeft - gapRef.current.offsetWidth;\n }\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"CardScroll\", platform),\n `CardScroll--sizeX-${sizeX}`,\n `CardScroll--${size}`,\n { [\"CardScroll--withSpaces\"]: withSpaces }\n )}\n >\n <HorizontalScroll\n getScrollToLeft={getScrollToLeft}\n getScrollToRight={getScrollToRight}\n showArrows={showArrows}\n >\n <div vkuiClass=\"CardScroll__in\" ref={refContainer}>\n <span vkuiClass=\"CardScroll__gap\" ref={gapRef} />\n {children}\n <span vkuiClass=\"CardScroll__gap\" />\n </div>\n </HorizontalScroll>\n </div>\n );\n};\n\nCardScroll.defaultProps = {\n size: \"s\",\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(CardScroll, { sizeX: true });\n"],"file":"CardScroll.js"}
|
|
@@ -35,7 +35,9 @@ var _scheme2 = require("../../helpers/scheme");
|
|
|
35
35
|
|
|
36
36
|
var _AppearanceProvider = require("../AppearanceProvider/AppearanceProvider");
|
|
37
37
|
|
|
38
|
-
var
|
|
38
|
+
var _platform = require("../../lib/platform");
|
|
39
|
+
|
|
40
|
+
var _excluded = ["children"];
|
|
39
41
|
var warn = (0, _warnOnce.warnOnce)("ConfigProvider");
|
|
40
42
|
|
|
41
43
|
function useSchemeDetector(node, _scheme) {
|
|
@@ -77,21 +79,45 @@ var deriveAppearance = function deriveAppearance(scheme) {
|
|
|
77
79
|
return scheme === _scheme2.Scheme.SPACE_GRAY || scheme === _scheme2.Scheme.VKCOM_DARK ? "dark" : "light";
|
|
78
80
|
};
|
|
79
81
|
|
|
82
|
+
var generateVKUITokensClassName = function generateVKUITokensClassName(platform, appearance) {
|
|
83
|
+
var tokensPlatform;
|
|
84
|
+
|
|
85
|
+
switch (platform) {
|
|
86
|
+
case _platform.Platform.ANDROID:
|
|
87
|
+
tokensPlatform = "vkBase";
|
|
88
|
+
break;
|
|
89
|
+
|
|
90
|
+
case _platform.Platform.IOS:
|
|
91
|
+
tokensPlatform = "vkIOS";
|
|
92
|
+
break;
|
|
93
|
+
|
|
94
|
+
case _platform.Platform.VKCOM:
|
|
95
|
+
tokensPlatform = "vkCom";
|
|
96
|
+
break;
|
|
97
|
+
|
|
98
|
+
default:
|
|
99
|
+
tokensPlatform = platform;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return "vkui--".concat(tokensPlatform, "--").concat(appearance);
|
|
103
|
+
};
|
|
104
|
+
|
|
80
105
|
var ConfigProvider = function ConfigProvider(_ref) {
|
|
81
106
|
var children = _ref.children,
|
|
82
|
-
schemeTarget = _ref.schemeTarget,
|
|
83
107
|
props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
84
108
|
var config = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _ConfigProviderContext.defaultConfigProviderProps), props);
|
|
109
|
+
var platform = config.platform,
|
|
110
|
+
appearance = config.appearance;
|
|
85
111
|
var scheme = (0, _scheme2.normalizeScheme)({
|
|
86
112
|
scheme: config.scheme,
|
|
87
|
-
platform:
|
|
88
|
-
appearance:
|
|
113
|
+
platform: platform,
|
|
114
|
+
appearance: appearance
|
|
89
115
|
});
|
|
90
116
|
|
|
91
117
|
var _useDOM = (0, _dom.useDOM)(),
|
|
92
118
|
document = _useDOM.document;
|
|
93
119
|
|
|
94
|
-
var target =
|
|
120
|
+
var target = document === null || document === void 0 ? void 0 : document.body;
|
|
95
121
|
(0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () {
|
|
96
122
|
if (scheme === "inherit") {
|
|
97
123
|
return _utils.noop;
|
|
@@ -107,8 +133,16 @@ var ConfigProvider = function ConfigProvider(_ref) {
|
|
|
107
133
|
};
|
|
108
134
|
}, [scheme]);
|
|
109
135
|
var realScheme = useSchemeDetector(target, scheme);
|
|
136
|
+
var derivedAppearance = deriveAppearance(realScheme);
|
|
137
|
+
(0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () {
|
|
138
|
+
var VKUITokensClassName = generateVKUITokensClassName(platform, derivedAppearance);
|
|
139
|
+
target === null || target === void 0 ? void 0 : target.classList.add(VKUITokensClassName);
|
|
140
|
+
return function () {
|
|
141
|
+
target === null || target === void 0 ? void 0 : target.classList.remove(VKUITokensClassName);
|
|
142
|
+
};
|
|
143
|
+
}, [platform, derivedAppearance]);
|
|
110
144
|
var configContext = (0, _useObjectMemo.useObjectMemo)((0, _objectSpread2.default)({
|
|
111
|
-
appearance:
|
|
145
|
+
appearance: derivedAppearance
|
|
112
146
|
}, config));
|
|
113
147
|
return (0, _jsxRuntime.createScopedElement)(_ConfigProviderContext.ConfigProviderContext.Provider, {
|
|
114
148
|
value: configContext
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProvider.tsx"],"names":["warn","useSchemeDetector","node","_scheme","inherit","getScheme","React","useCallback","canUseDOM","undefined","getAttribute","useState","resolvedScheme","setScheme","useEffect","noop","observer","MutationObserver","observe","attributes","attributeFilter","disconnect","deriveAppearance","scheme","Scheme","SPACE_GRAY","VKCOM_DARK","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProvider.tsx"],"names":["warn","useSchemeDetector","node","_scheme","inherit","getScheme","React","useCallback","canUseDOM","undefined","getAttribute","useState","resolvedScheme","setScheme","useEffect","noop","observer","MutationObserver","observe","attributes","attributeFilter","disconnect","deriveAppearance","scheme","Scheme","SPACE_GRAY","VKCOM_DARK","generateVKUITokensClassName","platform","appearance","tokensPlatform","Platform","ANDROID","IOS","VKCOM","ConfigProvider","children","props","config","defaultConfigProviderProps","document","target","body","process","env","NODE_ENV","hasAttribute","setAttribute","removeAttribute","realScheme","derivedAppearance","VKUITokensClassName","classList","add","remove","configContext"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { AppearanceType } from \"@vkontakte/vk-bridge\";\nimport { canUseDOM, useDOM } from \"../../lib/dom\";\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n defaultConfigProviderProps,\n} from \"./ConfigProviderContext\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useObjectMemo } from \"../../hooks/useObjectMemo\";\nimport { noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport {\n normalizeScheme,\n AppearanceScheme,\n Scheme,\n} from \"../../helpers/scheme\";\nimport { AppearanceProvider } from \"../AppearanceProvider/AppearanceProvider\";\nimport { Platform } from \"../../lib/platform\";\n\nexport interface ConfigProviderProps extends ConfigProviderContextInterface {\n /**\n * @deprecated будет удалено в 5.0.0, устанавливать тему следует через appearance\n * Цветовая схема приложения\n */\n scheme?: AppearanceScheme;\n}\n\nconst warn = warnOnce(\"ConfigProvider\");\n\nfunction useSchemeDetector(\n node: HTMLElement | undefined | null,\n _scheme: Scheme | \"inherit\"\n) {\n const inherit = _scheme === \"inherit\";\n const getScheme = React.useCallback(() => {\n if (!inherit || !canUseDOM || !node) {\n return undefined;\n }\n return node.getAttribute(\"scheme\") as Scheme;\n }, [inherit, node]);\n const [resolvedScheme, setScheme] = React.useState(getScheme());\n\n React.useEffect(() => {\n if (!inherit || !node) {\n return noop;\n }\n setScheme(getScheme());\n const observer = new MutationObserver(() => setScheme(getScheme()));\n observer.observe(node, { attributes: true, attributeFilter: [\"scheme\"] });\n return () => observer.disconnect();\n }, [getScheme, inherit, node]);\n\n return _scheme === \"inherit\" ? resolvedScheme : _scheme;\n}\n\nconst deriveAppearance = (scheme: Scheme | undefined): AppearanceType =>\n scheme === Scheme.SPACE_GRAY || scheme === Scheme.VKCOM_DARK\n ? \"dark\"\n : \"light\";\n\nconst generateVKUITokensClassName = (\n platform: string,\n appearance: string\n): string => {\n let tokensPlatform;\n switch (platform) {\n case Platform.ANDROID:\n tokensPlatform = \"vkBase\";\n break;\n case Platform.IOS:\n tokensPlatform = \"vkIOS\";\n break;\n case Platform.VKCOM:\n tokensPlatform = \"vkCom\";\n break;\n default:\n tokensPlatform = platform;\n }\n\n return `vkui--${tokensPlatform}--${appearance}`;\n};\n\nconst ConfigProvider: React.FC<ConfigProviderProps> = ({\n children,\n ...props\n}) => {\n const config = { ...defaultConfigProviderProps, ...props };\n const { platform, appearance } = config;\n const scheme = normalizeScheme({\n scheme: config.scheme,\n platform: platform,\n appearance: appearance,\n });\n const { document } = useDOM();\n const target = document?.body;\n\n useIsomorphicLayoutEffect(() => {\n if (scheme === \"inherit\") {\n return noop;\n }\n if (\n process.env.NODE_ENV === \"development\" &&\n target?.hasAttribute(\"scheme\")\n ) {\n warn(\n '<body scheme> was set before VKUI mount - did you forget scheme=\"inherit\"?'\n );\n }\n target?.setAttribute(\"scheme\", scheme);\n return () => target?.removeAttribute(\"scheme\");\n }, [scheme]);\n\n const realScheme = useSchemeDetector(target, scheme);\n const derivedAppearance = deriveAppearance(realScheme);\n\n useIsomorphicLayoutEffect(() => {\n const VKUITokensClassName = generateVKUITokensClassName(\n platform,\n derivedAppearance\n );\n\n target?.classList.add(VKUITokensClassName);\n\n return () => {\n target?.classList.remove(VKUITokensClassName);\n };\n }, [platform, derivedAppearance]);\n\n const configContext = useObjectMemo({\n appearance: derivedAppearance,\n ...config,\n });\n\n return (\n <ConfigProviderContext.Provider value={configContext}>\n <AppearanceProvider appearance={configContext.appearance}>\n {children}\n </AppearanceProvider>\n </ConfigProviderContext.Provider>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default ConfigProvider;\n"],"file":"ConfigProvider.js"}
|
|
@@ -37,7 +37,7 @@ export declare const defaultConfigProviderProps: {
|
|
|
37
37
|
webviewType: WebviewType;
|
|
38
38
|
isWebView: boolean;
|
|
39
39
|
transitionMotionEnabled: boolean;
|
|
40
|
-
platform:
|
|
40
|
+
platform: string;
|
|
41
41
|
hasNewTokens: boolean;
|
|
42
42
|
};
|
|
43
43
|
export declare const ConfigProviderContext: React.Context<ConfigProviderContextInterface>;
|
|
@@ -29,9 +29,12 @@ var _usePlatform = require("../../hooks/usePlatform");
|
|
|
29
29
|
|
|
30
30
|
var _utils = require("../../lib/utils");
|
|
31
31
|
|
|
32
|
+
var _warnOnce = require("../../lib/warnOnce");
|
|
33
|
+
|
|
32
34
|
var _classNames = require("../../lib/classNames");
|
|
33
35
|
|
|
34
36
|
var _excluded = ["subtitle", "header", "text", "caption", "className", "mode", "style", "getRootRef", "getRef", "maxHeight", "image", "src", "srcSet", "alt", "width", "height", "crossOrigin", "decoding", "loading", "referrerPolicy", "sizes", "useMap"];
|
|
37
|
+
var warn = (0, _warnOnce.warnOnce)("ContentCard");
|
|
35
38
|
|
|
36
39
|
var ContentCard = function ContentCard(props) {
|
|
37
40
|
var subtitle = props.subtitle,
|
|
@@ -59,6 +62,11 @@ var ContentCard = function ContentCard(props) {
|
|
|
59
62
|
restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
60
63
|
var platform = (0, _usePlatform.usePlatform)();
|
|
61
64
|
var source = image || src;
|
|
65
|
+
|
|
66
|
+
if (image && process.env.NODE_ENV === "development") {
|
|
67
|
+
warn("Свойство image устарело и будет удалено в 5.0.0. Используйте src");
|
|
68
|
+
}
|
|
69
|
+
|
|
62
70
|
return (0, _jsxRuntime.createScopedElement)(_Card.default, {
|
|
63
71
|
mode: mode,
|
|
64
72
|
getRootRef: getRootRef,
|