@vkontakte/vkui 4.30.0 → 4.31.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 +38 -27
- package/.cache/ts/src/components/Calendar/Calendar.d.ts +1 -1
- package/.cache/ts/src/components/CalendarHeader/CalendarHeader.d.ts +2 -0
- package/.cache/ts/src/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/.cache/ts/src/components/DateInput/DateInput.d.ts +1 -1
- package/.cache/ts/src/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/.cache/ts/src/hooks/useAdaptivity.d.ts +1 -0
- package/.cache/ts/src/index.d.ts +1 -0
- package/dist/cjs/components/ActionSheet/ActionSheet.js +2 -9
- package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cjs/components/Calendar/Calendar.d.ts +1 -1
- package/dist/cjs/components/Calendar/Calendar.js +6 -2
- package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
- package/dist/cjs/components/CalendarHeader/CalendarHeader.d.ts +2 -0
- package/dist/cjs/components/CalendarHeader/CalendarHeader.js +15 -9
- package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.js +7 -3
- package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.d.ts +1 -1
- package/dist/cjs/components/DateInput/DateInput.js +7 -3
- package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js +6 -2
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cjs/components/ModalCard/ModalCard.js +3 -1
- package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js +4 -2
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.js +6 -2
- package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +2 -10
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js +3 -4
- package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cjs/components/PanelHeader/PanelHeader.js +8 -6
- package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cjs/components/PopoutRoot/PopoutRoot.js +3 -1
- package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivity.d.ts +1 -0
- package/dist/cjs/hooks/useAdaptivity.js +18 -1
- package/dist/cjs/hooks/useAdaptivity.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.js +2 -8
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +1 -1
- package/dist/components/Calendar/Calendar.js +6 -2
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.d.ts +2 -0
- package/dist/components/CalendarHeader/CalendarHeader.js +15 -9
- package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/dist/components/CalendarRange/CalendarRange.js +7 -3
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts +1 -1
- package/dist/components/DateInput/DateInput.js +7 -3
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +6 -2
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/ModalCard/ModalCard.js +3 -2
- package/dist/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +5 -4
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.js +5 -3
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.js +2 -9
- package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootAdaptive.js +3 -5
- package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.js +8 -6
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/PopoutRoot/PopoutRoot.js +3 -2
- package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/components.css +18 -18
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -8
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/Button/Button.css +9 -9
- package/dist/cssm/components/ButtonGroup/ButtonGroup.css +1 -1
- package/dist/cssm/components/Calendar/Calendar.css +1 -1
- package/dist/cssm/components/Calendar/Calendar.d.ts +1 -1
- package/dist/cssm/components/Calendar/Calendar.js +6 -2
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.css +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.css +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.css +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.d.ts +2 -0
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js +15 -9
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.css +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.d.ts +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js +7 -3
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.css +1 -1
- package/dist/cssm/components/Card/Card.css +2 -2
- package/dist/cssm/components/CardScroll/CardScroll.css +1 -1
- package/dist/cssm/components/Cell/Cell.css +1 -1
- package/dist/cssm/components/CellButton/CellButton.css +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.css +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.css +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.css +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.css +1 -1
- package/dist/cssm/components/DateInput/DateInput.d.ts +1 -1
- package/dist/cssm/components/DateInput/DateInput.js +7 -3
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +6 -2
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.css +1 -1
- package/dist/cssm/components/FormField/FormField.css +2 -2
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +1 -1
- package/dist/cssm/components/Input/Input.css +1 -1
- package/dist/cssm/components/InputLike/InputLike.css +1 -1
- package/dist/cssm/components/InputLike/InputLikeDivider.css +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.js +3 -2
- package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +5 -4
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js +5 -3
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +2 -9
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js +3 -5
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.css +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js +8 -6
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js +3 -2
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.css +1 -1
- package/dist/cssm/components/Radio/Radio.css +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.css +1 -1
- package/dist/cssm/components/Removable/Removable.css +1 -1
- package/dist/cssm/components/RichCell/RichCell.css +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.css +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.css +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.css +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.css +1 -1
- package/dist/cssm/components/Typography/Title/Title.css +1 -1
- package/dist/cssm/hooks/useAdaptivity.d.ts +1 -0
- package/dist/cssm/hooks/useAdaptivity.js +13 -1
- package/dist/cssm/hooks/useAdaptivity.js.map +1 -1
- package/dist/cssm/index.d.ts +1 -0
- package/dist/cssm/index.js +1 -0
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/styles/components.css +18 -18
- package/dist/cssm/styles/themes.css +1 -1
- package/dist/hooks/useAdaptivity.d.ts +1 -0
- package/dist/hooks/useAdaptivity.js +13 -1
- package/dist/hooks/useAdaptivity.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/vkui.css +19 -19
- package/dist/vkui.css.map +1 -1
- package/jest.unit.config.js +1 -0
- package/package.json +4 -2
- package/postcss-custom-properties-fallback/__tests__/custom_properties.css +5 -0
- package/postcss-custom-properties-fallback/index.js +83 -0
- package/src/components/ActionSheet/ActionSheet.tsx +2 -6
- package/src/components/Calendar/Calendar.tsx +6 -0
- package/src/components/CalendarHeader/CalendarHeader.css +3 -0
- package/src/components/CalendarHeader/CalendarHeader.tsx +18 -2
- package/src/components/CalendarRange/CalendarRange.tsx +6 -0
- package/src/components/Cell/Cell.css +1 -1
- package/src/components/CellButton/CellButton.css +1 -1
- package/src/components/Checkbox/Checkbox.css +1 -1
- package/src/components/DateInput/DateInput.tsx +7 -1
- package/src/components/DateRangeInput/DateRangeInput.tsx +6 -0
- package/src/components/FixedLayout/FixedLayout.css +10 -2
- package/src/components/FormItem/FormItem.css +1 -0
- package/src/components/FormLayoutGroup/FormLayoutGroup.css +2 -1
- package/src/components/ModalCard/ModalCard.tsx +3 -8
- package/src/components/ModalCardBase/ModalCardBase.tsx +6 -10
- package/src/components/ModalPage/ModalPage.tsx +6 -9
- package/src/components/ModalPageHeader/ModalPageHeader.tsx +2 -6
- package/src/components/ModalRoot/ModalRootAdaptive.tsx +3 -9
- package/src/components/ModalRoot/Readme.md +1 -1
- package/src/components/PanelHeader/PanelHeader.tsx +19 -18
- package/src/components/PanelHeader/Readme.md +2 -2
- package/src/components/PopoutRoot/PopoutRoot.tsx +3 -8
- package/src/components/Popper/Popper.css +14 -2
- package/src/components/Radio/Radio.css +1 -1
- package/src/components/RadioGroup/RadioGroup.css +1 -1
- package/src/components/Removable/Removable.css +2 -2
- package/src/components/RichCell/RichCell.css +1 -1
- package/src/components/SimpleCell/SimpleCell.css +1 -1
- package/src/components/Tooltip/Readme.md +35 -47
- package/src/hooks/useAdaptivity.ts +15 -0
- package/src/index.ts +1 -0
- package/src/styles/constants.css +1 -0
- package/tsconfig.json +1 -0
|
@@ -5,7 +5,6 @@ var _excluded = ["children", "className", "header", "text", "style", "iosCloseIt
|
|
|
5
5
|
import { createScopedElement } from "../../lib/jsxRuntime";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import { PopoutWrapper } from "../PopoutWrapper/PopoutWrapper";
|
|
8
|
-
import { ViewWidth, ViewHeight } from "../../hoc/withAdaptivity";
|
|
9
8
|
import { IOS } from "../../lib/platform";
|
|
10
9
|
import { ActionSheetDropdownDesktop } from "./ActionSheetDropdownDesktop";
|
|
11
10
|
import { ActionSheetDropdown } from "./ActionSheetDropdown";
|
|
@@ -14,7 +13,7 @@ import { ActionSheetContext } from "./ActionSheetContext";
|
|
|
14
13
|
import { Caption } from "../Typography/Caption/Caption";
|
|
15
14
|
import { usePlatform } from "../../hooks/usePlatform";
|
|
16
15
|
import { useTimeout } from "../../hooks/useTimeout";
|
|
17
|
-
import {
|
|
16
|
+
import { useAdaptivityIsDesktop } from "../../hooks/useAdaptivity";
|
|
18
17
|
import { useObjectMemo } from "../../hooks/useObjectMemo";
|
|
19
18
|
import { warnOnce } from "../../lib/warnOnce";
|
|
20
19
|
import { useScrollLock } from "../AppRoot/ScrollContext";
|
|
@@ -56,12 +55,7 @@ export var ActionSheet = function ActionSheet(_ref) {
|
|
|
56
55
|
warn("\u0411\u0435\u0437 \u0441\u0432\u043E\u0439\u0441\u0442\u0432\u0430 \"onClose\" \u043D\u0435\u043B\u044C\u0437\u044F \u0437\u0430\u043A\u0440\u044B\u0442\u044C ActionSheet \u043F\u043E \u043A\u043B\u0438\u043A\u0443 \u0432\u043D\u0435 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430", "error");
|
|
57
56
|
}
|
|
58
57
|
|
|
59
|
-
var
|
|
60
|
-
viewWidth = _useAdaptivity.viewWidth,
|
|
61
|
-
viewHeight = _useAdaptivity.viewHeight,
|
|
62
|
-
hasMouse = _useAdaptivity.hasMouse;
|
|
63
|
-
|
|
64
|
-
var isDesktop = viewWidth >= ViewWidth.SMALL_TABLET && (hasMouse || viewHeight >= ViewHeight.MEDIUM);
|
|
58
|
+
var isDesktop = useAdaptivityIsDesktop();
|
|
65
59
|
useScrollLock(!isDesktop);
|
|
66
60
|
var timeout = platform === IOS ? 300 : 200;
|
|
67
61
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheet.tsx"],"names":["React","PopoutWrapper","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheet.tsx"],"names":["React","PopoutWrapper","IOS","ActionSheetDropdownDesktop","ActionSheetDropdown","hasReactNode","noop","ActionSheetContext","Caption","usePlatform","useTimeout","useAdaptivityIsDesktop","useObjectMemo","warnOnce","useScrollLock","warn","ActionSheet","children","className","header","text","style","iosCloseItem","restProps","platform","useState","closing","setClosing","onClose","_action","useRef","afterClose","current","process","env","NODE_ENV","isDesktop","timeout","fallbackTransitionFinish","useEffect","set","clear","onItemClick","useCallback","action","immediateAction","autoclose","event","persist","contextValue","DropdownComponent","actionSheet","undefined","defaultProps","popupDirection"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { PopoutWrapper } from \"../PopoutWrapper/PopoutWrapper\";\nimport { IOS } from \"../../lib/platform\";\nimport { ActionSheetDropdownDesktop } from \"./ActionSheetDropdownDesktop\";\nimport { ActionSheetDropdown } from \"./ActionSheetDropdown\";\nimport { hasReactNode, noop } from \"../../lib/utils\";\nimport { ActionSheetContext, ItemClickHandler } from \"./ActionSheetContext\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { useAdaptivityIsDesktop } from \"../../hooks/useAdaptivity\";\nimport { useObjectMemo } from \"../../hooks/useObjectMemo\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { SharedDropdownProps, PopupDirection, ToggleRef } from \"./types\";\nimport { useScrollLock } from \"../AppRoot/ScrollContext\";\nimport \"./ActionSheet.css\";\n\nexport interface ActionSheetProps extends React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи. В v5 будет обязательным.\n */\n onClose?: VoidFunction;\n /**\n * Элемент, рядом с которым вылезает попап на десктопе.\n * Лучше передавать RefObject c current.\n * В v5 будет обязательным.\n */\n toggleRef?: ToggleRef;\n /**\n * Направление на десктопе\n */\n popupDirection?: PopupDirection;\n /**\n * Только iOS. В v5 будет обязательным.\n */\n iosCloseItem?: React.ReactNode;\n}\n\nconst warn = warnOnce(\"ActionSheet\");\n\nexport const ActionSheet: React.FC<ActionSheetProps> = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n ...restProps\n}) => {\n const platform = usePlatform();\n const [closing, setClosing] = React.useState(false);\n const onClose = () => setClosing(true);\n const _action = React.useRef(noop);\n\n const afterClose = () => {\n restProps.onClose?.();\n _action.current();\n _action.current = noop;\n };\n\n if (process.env.NODE_ENV === \"development\" && !restProps.onClose) {\n warn(\n `Без свойства \"onClose\" нельзя закрыть ActionSheet по клику вне компонента`,\n \"error\"\n );\n }\n\n const isDesktop = useAdaptivityIsDesktop();\n\n useScrollLock(!isDesktop);\n\n let timeout = platform === IOS ? 300 : 200;\n\n if (isDesktop) {\n timeout = 0;\n }\n\n const fallbackTransitionFinish = useTimeout(afterClose, timeout);\n React.useEffect(() => {\n if (closing) {\n fallbackTransitionFinish.set();\n } else {\n fallbackTransitionFinish.clear();\n }\n }, [closing, fallbackTransitionFinish]);\n\n const onItemClick = React.useCallback<ItemClickHandler>(\n (action, immediateAction, autoclose) => (event) => {\n event.persist();\n immediateAction && immediateAction(event);\n if (autoclose) {\n _action.current = () => action && action(event);\n setClosing(true);\n } else {\n action && action(event);\n }\n },\n []\n );\n const contextValue = useObjectMemo({ onItemClick, isDesktop });\n\n const DropdownComponent = isDesktop\n ? ActionSheetDropdownDesktop\n : ActionSheetDropdown;\n\n const actionSheet = (\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={closing}\n timeout={timeout}\n {...(restProps as Omit<SharedDropdownProps, \"closing\">)}\n onClose={onClose}\n className={isDesktop ? className : undefined}\n style={isDesktop ? style : undefined}\n >\n {(hasReactNode(header) || hasReactNode(text)) && (\n <header vkuiClass=\"ActionSheet__header\">\n {hasReactNode(header) && (\n <Caption\n weight={platform === IOS ? \"1\" : \"2\"}\n vkuiClass=\"ActionSheet__title\"\n >\n {header}\n </Caption>\n )}\n {hasReactNode(text) && (\n <Caption vkuiClass=\"ActionSheet__text\">{text}</Caption>\n )}\n </header>\n )}\n {children}\n {platform === IOS && !isDesktop && iosCloseItem}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n );\n\n if (isDesktop) {\n return actionSheet;\n }\n\n return (\n <PopoutWrapper\n closing={closing}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={onClose}\n hasMask\n fixed\n >\n {actionSheet}\n </PopoutWrapper>\n );\n};\n\nActionSheet.defaultProps = {\n popupDirection: \"bottom\",\n};\n"],"file":"ActionSheet.js"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
.vkuiButton{position:relative;display:inline-block;box-sizing:border-box;text-decoration:none;border:0;min-height:28px;min-height:var(--vkui--size_button_small_height--compact);margin:0;padding:0;-webkit-user-select:none;user-select:none;border-radius:8px;border-radius:var(--vkui--size_border_radius--regular);max-width:100%}.vkuiButton--stretched{display:block;width:100%;flex-grow:1;flex-basis:0}.vkuiButton__in{display:flex;align-items:center;justify-content:center;width:100%;min-height:inherit;padding:1px 16px;text-align:center;box-sizing:border-box}.vkuiButton--aln-left .vkuiButton__in{justify-content:flex-start;text-align:left}.vkuiButton--aln-right .vkuiButton__in{justify-content:flex-end;text-align:right}.vkuiButton[disabled]{opacity:.4;opacity:var(--vkui--opacity_disable)}.vkuiButton--lvl-primary[disabled]:not(.vkuiButton--clr-overlay):not(.vkuiButton--clr-negative):not(.vkuiButton--clr-positive),.vkuiButton--lvl-secondary[disabled]:not(.vkuiButton--clr-overlay),.vkuiButton--lvl-tertiary[disabled]:not(.vkuiButton--clr-overlay),.vkuiButton--lvl-outline[disabled]:not(.vkuiButton--clr-overlay){opacity:.64}.vkuiButton--singleIcon.vkuiButton--sz-s .vkuiButton__in{padding:0 9px}.vkuiButton--singleIcon.vkuiButton--sz-m .vkuiButton__in{padding:0 10px}.vkuiButton--singleIcon.vkuiButton--sz-l .vkuiButton__in{padding:0 6px}.vkuiButton--singleIcon.vkuiButton--sizeY-regular.vkuiButton--sz-s .vkuiButton__in{padding:0 9px}.vkuiButton--singleIcon.vkuiButton--sizeY-regular.vkuiButton--sz-l .vkuiButton__in{padding:0 10px}.vkuiButton--singleIcon .vkuiButton__before:only-child,.vkuiButton--singleIcon .vkuiButton__after:only-child{margin:0}.vkuiButton__content{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vkuiButton__content--caps{-webkit-transform:translateY(0);transform:translateY(0)}.vkuiButton__spinner{position:absolute;left:0;top:0;right:0;bottom:0}.vkuiButton__spinner+.vkuiButton__in{visibility:hidden}.vkuiButton--lvl-primary.vkuiButton--clr-accent{background-color:#2d81e0;background-color:var(--button_primary_background,
|
|
1
|
+
.vkuiButton{position:relative;display:inline-block;box-sizing:border-box;text-decoration:none;border:0;min-height:28px;min-height:var(--vkui--size_button_small_height--compact,28px);margin:0;padding:0;-webkit-user-select:none;user-select:none;border-radius:8px;border-radius:var(--vkui--size_border_radius--regular,8px);max-width:100%}.vkuiButton--stretched{display:block;width:100%;flex-grow:1;flex-basis:0}.vkuiButton__in{display:flex;align-items:center;justify-content:center;width:100%;min-height:inherit;padding:1px 16px;text-align:center;box-sizing:border-box}.vkuiButton--aln-left .vkuiButton__in{justify-content:flex-start;text-align:left}.vkuiButton--aln-right .vkuiButton__in{justify-content:flex-end;text-align:right}.vkuiButton[disabled]{opacity:.4;opacity:var(--vkui--opacity_disable,0.4)}.vkuiButton--lvl-primary[disabled]:not(.vkuiButton--clr-overlay):not(.vkuiButton--clr-negative):not(.vkuiButton--clr-positive),.vkuiButton--lvl-secondary[disabled]:not(.vkuiButton--clr-overlay),.vkuiButton--lvl-tertiary[disabled]:not(.vkuiButton--clr-overlay),.vkuiButton--lvl-outline[disabled]:not(.vkuiButton--clr-overlay){opacity:.64}.vkuiButton--singleIcon.vkuiButton--sz-s .vkuiButton__in{padding:0 9px}.vkuiButton--singleIcon.vkuiButton--sz-m .vkuiButton__in{padding:0 10px}.vkuiButton--singleIcon.vkuiButton--sz-l .vkuiButton__in{padding:0 6px}.vkuiButton--singleIcon.vkuiButton--sizeY-regular.vkuiButton--sz-s .vkuiButton__in{padding:0 9px}.vkuiButton--singleIcon.vkuiButton--sizeY-regular.vkuiButton--sz-l .vkuiButton__in{padding:0 10px}.vkuiButton--singleIcon .vkuiButton__before:only-child,.vkuiButton--singleIcon .vkuiButton__after:only-child{margin:0}.vkuiButton__content{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vkuiButton__content--caps{-webkit-transform:translateY(0);transform:translateY(0)}.vkuiButton__spinner{position:absolute;left:0;top:0;right:0;bottom:0}.vkuiButton__spinner+.vkuiButton__in{visibility:hidden}.vkuiButton--lvl-primary.vkuiButton--clr-accent{background-color:#2d81e0;background-color:var(--button_primary_background,
|
|
2
2
|
var(--vkui--color_background_accent)
|
|
3
|
-
)}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--hover{background-color:#2483e4;background-color:var(--vkui--color_background_accent--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--active{background-color:#237edd;background-color:var(--vkui--color_background_accent--active)}.vkuiButton--lvl-primary.vkuiButton--clr-positive{background-color:#4bb34b;background-color:var(--button_commerce_background,
|
|
3
|
+
)}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--hover{background-color:#2483e4;background-color:var(--vkui--color_background_accent--hover,#2483E4)}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--active{background-color:#237edd;background-color:var(--vkui--color_background_accent--active,#237EDD)}.vkuiButton--lvl-primary.vkuiButton--clr-positive{background-color:#4bb34b;background-color:var(--button_commerce_background,
|
|
4
4
|
var(--vkui--color_background_positive)
|
|
5
|
-
)}.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--hover{background-color:#48ac4a;background-color:var(--vkui--color_background_positive--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--active{background-color:#45a64a;background-color:var(--vkui--color_background_positive--active)}.vkuiButton--lvl-primary.vkuiButton--clr-negative{background-color:#e64646;background-color:var(--destructive, var(--vkui--color_background_negative))}.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--hover{background-color:#dd4446;background-color:var(--vkui--color_background_negative--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--active{background-color:#d44245;background-color:var(--vkui--color_background_negative--active)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral{background-color:#f5f5f5;background-color:var(--content_tint_background,
|
|
5
|
+
)}.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--hover{background-color:#48ac4a;background-color:var(--vkui--color_background_positive--hover,#48AC4A)}.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--active{background-color:#45a64a;background-color:var(--vkui--color_background_positive--active,#45A64A)}.vkuiButton--lvl-primary.vkuiButton--clr-negative{background-color:#e64646;background-color:var(--destructive, var(--vkui--color_background_negative))}.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--hover{background-color:#dd4446;background-color:var(--vkui--color_background_negative--hover,#DD4446)}.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--active{background-color:#d44245;background-color:var(--vkui--color_background_negative--active,#D44245)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral{background-color:#f5f5f5;background-color:var(--content_tint_background,
|
|
6
6
|
var(--vkui--color_background_secondary)
|
|
7
|
-
)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--hover{background-color:#ebecee;background-color:var(--vkui--color_background_secondary--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--active{background-color:#e1e3e6;background-color:var(--vkui--color_background_secondary--active)}.vkuiButton--lvl-secondary{background-color:rgba(0,28,61,.05);background-color:var(--button_secondary_background,
|
|
7
|
+
)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--hover{background-color:#ebecee;background-color:var(--vkui--color_background_secondary--hover,#EBECEE)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--active{background-color:#e1e3e6;background-color:var(--vkui--color_background_secondary--active,#E1E3E6)}.vkuiButton--lvl-secondary{background-color:rgba(0,28,61,.05);background-color:var(--button_secondary_background,
|
|
8
8
|
var(--vkui--color_background_secondary)
|
|
9
|
-
)}.vkuiButton--lvl-secondary.vkuiButton--hover{background-color:#ebecee;background-color:var(--vkui--color_background_secondary--hover)}.vkuiButton--lvl-secondary.vkuiButton--active{background-color:#e1e3e6;background-color:var(--vkui--color_background_secondary--active)}.vkuiButton--lvl-tertiary,.vkuiButton--lvl-outline{background-color:transparent;background-color:var(--button_tertiary_background,
|
|
9
|
+
)}.vkuiButton--lvl-secondary.vkuiButton--hover{background-color:#ebecee;background-color:var(--vkui--color_background_secondary--hover,#EBECEE)}.vkuiButton--lvl-secondary.vkuiButton--active{background-color:#e1e3e6;background-color:var(--vkui--color_background_secondary--active,#E1E3E6)}.vkuiButton--lvl-tertiary,.vkuiButton--lvl-outline{background-color:transparent;background-color:var(--button_tertiary_background,
|
|
10
10
|
var(--vkui--color_transparent)
|
|
11
|
-
)}.vkuiButton--lvl-tertiary.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--hover{background-color:rgba(0,16,61,.04);background-color:var(--vkui--color_transparent--hover)}.vkuiButton--lvl-tertiary.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--active{background-color:rgba(0,16,61,.08);background-color:var(--vkui--color_transparent--active)}.vkuiButton--lvl-primary.vkuiButton--clr-accent{color:#fff;color:var(--button_primary_foreground, var(--vkui--color_text_contrast))}.vkuiButton--lvl-primary.vkuiButton--clr-negative{color:#fff;color:var(--white, var(--vkui--color_text_contrast))}.vkuiButton--lvl-primary.vkuiButton--clr-positive{color:#fff;color:var(--button_commerce_foreground, var(--vkui--color_text_contrast))}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--hover,.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--hover,.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--hover{color:#f5f5f7;color:var(--vkui--color_text_contrast--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--active,.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--active,.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--active{color:#ebecef;color:var(--vkui--color_text_contrast--active)}.vkuiButton--lvl-tertiary.vkuiButton--clr-accent{color:#2d81e0;color:var(--button_tertiary_foreground, var(--vkui--color_text_accent))}.vkuiButton--lvl-secondary.vkuiButton--clr-accent{color:#2688eb;color:var(--button_secondary_foreground, var(--vkui--color_text_accent))}.vkuiButton--lvl-outline.vkuiButton--clr-accent{color:#2688eb;color:var(--button_outline_foreground, var(--vkui--color_text_accent))}.vkuiButton--lvl-tertiary.vkuiButton--clr-accent.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-accent.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--hover{color:#2483e4;color:var(--vkui--color_text_accent--hover)}.vkuiButton--lvl-tertiary.vkuiButton--clr-accent.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-accent.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--active{color:#237edd;color:var(--vkui--color_text_accent--active)}.vkuiButton--lvl-tertiary.vkuiButton--clr-positive,.vkuiButton--lvl-secondary.vkuiButton--clr-positive,.vkuiButton--lvl-outline.vkuiButton--clr-positive{color:#4bb34b;color:var(--button_commerce_background, var(--vkui--color_text_positive))}.vkuiButton--lvl-tertiary.vkuiButton--clr-positive.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-positive.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--hover{color:#48ac4a;color:var(--vkui--color_text_positive--hover)}.vkuiButton--lvl-tertiary.vkuiButton--clr-positive.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-positive.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--active{color:#45a64a;color:var(--vkui--color_text_positive--active)}.vkuiButton--lvl-tertiary.vkuiButton--clr-negative,.vkuiButton--lvl-secondary.vkuiButton--clr-negative,.vkuiButton--lvl-outline.vkuiButton--clr-negative{color:#e64646;color:var(--destructive, var(--vkui--color_text_negative))}.vkuiButton--lvl-tertiary.vkuiButton--clr-negative.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-negative.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--hover{color:#dd4446;color:var(--vkui--color_text_negative--hover)}.vkuiButton--lvl-tertiary.vkuiButton--clr-negative.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-negative.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--active{color:#d44245;color:var(--vkui--color_text_negative--active)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral,.vkuiButton--lvl-secondary.vkuiButton--clr-neutral,.vkuiButton--lvl-tertiary.vkuiButton--clr-neutral,.vkuiButton--lvl-outline.vkuiButton--clr-neutral{color:#000;color:var(--text_primary, var(--vkui--color_text_primary))}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-neutral.vkuiButton--hover,.vkuiButton--lvl-tertiary.vkuiButton--clr-neutral.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--hover{color:#000102;color:var(--vkui--color_text_primary--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-neutral.vkuiButton--active,.vkuiButton--lvl-tertiary.vkuiButton--clr-neutral.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--active{color:#000105;color:var(--vkui--color_text_primary--active)}.vkuiButton--lvl-outline.vkuiButton--clr-accent{box-shadow:inset 0 0 0 1px #2688eb;box-shadow:inset 0 0 0 1px var(--button_outline_border, var(--vkui--color_stroke_accent))}.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--hover{box-shadow:inset 0 0 0 1px #2483e4;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_accent--hover)}.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--active{box-shadow:inset 0 0 0 1px #237edd;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_accent--active)}.vkuiButton--lvl-outline.vkuiButton--clr-positive{box-shadow:inset 0 0 0 1px #4bb34b;box-shadow:inset 0 0 0 1px var(--button_commerce_background, var(--vkui--color_stroke_positive))}.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--hover{box-shadow:inset 0 0 0 1px #48ac4a;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_positive--hover)}.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--active{box-shadow:inset 0 0 0 1px #45a64a;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_positive--active)}.vkuiButton--lvl-outline.vkuiButton--clr-negative{box-shadow:inset 0 0 0 1px #e64646;box-shadow:inset 0 0 0 1px var(--destructive, var(--vkui--color_stroke_negative))}.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--hover{box-shadow:inset 0 0 0 1px #dd4446;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_negative--hover)}.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--active{box-shadow:inset 0 0 0 1px #d44245;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_negative--active)}.vkuiButton--lvl-outline.vkuiButton--clr-neutral{box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);box-shadow:inset 0 0 0 1px var(--field_border, var(--vkui--color_field_border_alpha))}.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--hover{background-color:#ebecee;background-color:var(--vkui--color_background_secondary--hover);box-shadow:unset}.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--active{background-color:#e1e3e6;background-color:var(--vkui--color_background_secondary--active);box-shadow:unset}.vkuiButton--lvl-primary.vkuiButton--clr-overlay{background-color:#fff;background-color:var(--media_overlay_button_background,
|
|
11
|
+
)}.vkuiButton--lvl-tertiary.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--hover{background-color:rgba(0,16,61,.04);background-color:var(--vkui--color_transparent--hover,rgba(0, 16, 61, 0.04))}.vkuiButton--lvl-tertiary.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--active{background-color:rgba(0,16,61,.08);background-color:var(--vkui--color_transparent--active,rgba(0, 16, 61, 0.08))}.vkuiButton--lvl-primary.vkuiButton--clr-accent{color:#fff;color:var(--button_primary_foreground, var(--vkui--color_text_contrast))}.vkuiButton--lvl-primary.vkuiButton--clr-negative{color:#fff;color:var(--white, var(--vkui--color_text_contrast))}.vkuiButton--lvl-primary.vkuiButton--clr-positive{color:#fff;color:var(--button_commerce_foreground, var(--vkui--color_text_contrast))}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--hover,.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--hover,.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--hover{color:#f5f5f7;color:var(--vkui--color_text_contrast--hover,#F5F5F7)}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--active,.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--active,.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--active{color:#ebecef;color:var(--vkui--color_text_contrast--active,#EBECEF)}.vkuiButton--lvl-tertiary.vkuiButton--clr-accent{color:#2d81e0;color:var(--button_tertiary_foreground, var(--vkui--color_text_accent))}.vkuiButton--lvl-secondary.vkuiButton--clr-accent{color:#2688eb;color:var(--button_secondary_foreground, var(--vkui--color_text_accent))}.vkuiButton--lvl-outline.vkuiButton--clr-accent{color:#2688eb;color:var(--button_outline_foreground, var(--vkui--color_text_accent))}.vkuiButton--lvl-tertiary.vkuiButton--clr-accent.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-accent.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--hover{color:#2483e4;color:var(--vkui--color_text_accent--hover,#2483E4)}.vkuiButton--lvl-tertiary.vkuiButton--clr-accent.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-accent.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--active{color:#237edd;color:var(--vkui--color_text_accent--active,#237EDD)}.vkuiButton--lvl-tertiary.vkuiButton--clr-positive,.vkuiButton--lvl-secondary.vkuiButton--clr-positive,.vkuiButton--lvl-outline.vkuiButton--clr-positive{color:#4bb34b;color:var(--button_commerce_background, var(--vkui--color_text_positive))}.vkuiButton--lvl-tertiary.vkuiButton--clr-positive.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-positive.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--hover{color:#48ac4a;color:var(--vkui--color_text_positive--hover,#48AC4A)}.vkuiButton--lvl-tertiary.vkuiButton--clr-positive.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-positive.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--active{color:#45a64a;color:var(--vkui--color_text_positive--active,#45A64A)}.vkuiButton--lvl-tertiary.vkuiButton--clr-negative,.vkuiButton--lvl-secondary.vkuiButton--clr-negative,.vkuiButton--lvl-outline.vkuiButton--clr-negative{color:#e64646;color:var(--destructive, var(--vkui--color_text_negative))}.vkuiButton--lvl-tertiary.vkuiButton--clr-negative.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-negative.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--hover{color:#dd4446;color:var(--vkui--color_text_negative--hover,#DD4446)}.vkuiButton--lvl-tertiary.vkuiButton--clr-negative.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-negative.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--active{color:#d44245;color:var(--vkui--color_text_negative--active,#D44245)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral,.vkuiButton--lvl-secondary.vkuiButton--clr-neutral,.vkuiButton--lvl-tertiary.vkuiButton--clr-neutral,.vkuiButton--lvl-outline.vkuiButton--clr-neutral{color:#000;color:var(--text_primary, var(--vkui--color_text_primary))}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-neutral.vkuiButton--hover,.vkuiButton--lvl-tertiary.vkuiButton--clr-neutral.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--hover{color:#000102;color:var(--vkui--color_text_primary--hover,#000102)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-neutral.vkuiButton--active,.vkuiButton--lvl-tertiary.vkuiButton--clr-neutral.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--active{color:#000105;color:var(--vkui--color_text_primary--active,#000105)}.vkuiButton--lvl-outline.vkuiButton--clr-accent{box-shadow:inset 0 0 0 1px #2688eb;box-shadow:inset 0 0 0 1px var(--button_outline_border, var(--vkui--color_stroke_accent))}.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--hover{box-shadow:inset 0 0 0 1px #2483e4;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_accent--hover,#2483E4)}.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--active{box-shadow:inset 0 0 0 1px #237edd;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_accent--active,#237EDD)}.vkuiButton--lvl-outline.vkuiButton--clr-positive{box-shadow:inset 0 0 0 1px #4bb34b;box-shadow:inset 0 0 0 1px var(--button_commerce_background, var(--vkui--color_stroke_positive))}.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--hover{box-shadow:inset 0 0 0 1px #48ac4a;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_positive--hover,#48AC4A)}.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--active{box-shadow:inset 0 0 0 1px #45a64a;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_positive--active,#45A64A)}.vkuiButton--lvl-outline.vkuiButton--clr-negative{box-shadow:inset 0 0 0 1px #e64646;box-shadow:inset 0 0 0 1px var(--destructive, var(--vkui--color_stroke_negative))}.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--hover{box-shadow:inset 0 0 0 1px #dd4446;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_negative--hover,#DD4446)}.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--active{box-shadow:inset 0 0 0 1px #d44245;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_negative--active,#D44245)}.vkuiButton--lvl-outline.vkuiButton--clr-neutral{box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);box-shadow:inset 0 0 0 1px var(--field_border, var(--vkui--color_field_border_alpha))}.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--hover{background-color:#ebecee;background-color:var(--vkui--color_background_secondary--hover,#EBECEE);box-shadow:unset}.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--active{background-color:#e1e3e6;background-color:var(--vkui--color_background_secondary--active,#E1E3E6);box-shadow:unset}.vkuiButton--lvl-primary.vkuiButton--clr-overlay{background-color:#fff;background-color:var(--media_overlay_button_background,
|
|
12
12
|
var(--vkui--color_background_contrast)
|
|
13
|
-
)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--hover{background-color:#f5f5f7;background-color:var(--vkui--color_background_contrast--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--active{background-color:#ebecef;background-color:var(--vkui--color_background_contrast--active)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay{background-color:rgba(255,255,255,.2);background-color:var(--vkui--color_background_contrast_secondary_alpha,
|
|
13
|
+
)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--hover{background-color:#f5f5f7;background-color:var(--vkui--color_background_contrast--hover,#F5F5F7)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--active{background-color:#ebecef;background-color:var(--vkui--color_background_contrast--active,#EBECEF)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay{background-color:rgba(255,255,255,.2);background-color:var(--vkui--color_background_contrast_secondary_alpha,
|
|
14
14
|
rgba(255, 255, 255, 0.2)
|
|
15
|
-
)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{background-color:
|
|
15
|
+
)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{background-color:var(--vkui--color_background_contrast_secondary_alpha--hover)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{background-color:var(--vkui--color_background_contrast_secondary_alpha--active)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay{color:#2c2d2e;color:var(--media_overlay_button_foreground,
|
|
16
16
|
var(--vkui--color_text_primary_invariably)
|
|
17
|
-
)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--hover{color:#000102;color:var(--vkui--color_text_primary_invariably--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--active{color:#000105;color:var(--vkui--color_text_primary_invariably--active)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay,.vkuiButton--lvl-outline.vkuiButton--clr-overlay{color:#fff;color:var(--white, var(--vkui--color_text_contrast))}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{color:#f5f5f7;color:var(--vkui--color_text_contrast--hover)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{color:#ebecef;color:var(--vkui--color_text_contrast--active)}.vkuiButton--lvl-outline.vkuiButton--clr-overlay{box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px var(--white, var(--vkui--color_stroke_contrast))}.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{box-shadow:inset 0 0 0 1px #f5f5f7;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--hover)}.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{box-shadow:inset 0 0 0 1px #ebecef;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--active)}.vkuiButton__before:not(:last-child){margin-left:-4px}.vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:6px}.vkuiButton__after:not(:first-child){margin-left:6px}.vkuiButton--sz-l .vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:8px}.vkuiButton--sz-l .vkuiButton__after:not(:first-child){margin-left:8px}.vkuiButton--sz-l .vkuiButton__in{justify-content:center;padding-left:20px;padding-right:20px}.vkuiButton:not(.vkuiButton--sz-s) .vkuiButton__content{-webkit-transform:translateY(-1px);transform:translateY(-1px)}.vkuiButton--sz-m{min-height:32px;min-height:var(--vkui--size_button_medium_height--compact)}.vkuiButton--sz-l{min-height:36px;min-height:var(--vkui--size_button_large_height--compact)}.vkuiButton--sizeY-regular{min-height:30px;min-height:var(--vkui--size_button_small_height--regular)}.vkuiButton--sizeY-regular.vkuiButton--sz-m{min-height:36px;min-height:var(--vkui--size_button_medium_height--regular)}.vkuiButton--sizeY-regular.vkuiButton--sz-l{min-height:44px;min-height:var(--vkui--size_button_large_height--regular)}.vkuiBanner__actions>.vkuiButton{margin-top:12px;margin-right:16px;margin-bottom:6px}.vkuiBanner__actions>.vkuiButton--lvl-tertiary{margin:4px 16px 2px -16px}.vkuiBanner__actions>.vkuiButton--lvl-tertiary:first-child{margin-top:4px}.vkuiBanner__actions>.vkuiButton:not(.vkuiButton--lvl-tertiary)+.vkuiButton:not(.vkuiButton--lvl-tertiary){margin-top:0}.vkuiBanner__actions>.vkuiButton:not(.vkuiButton--lvl-tertiary)+.vkuiButton--lvl-tertiary{margin-top:2px;margin-left:-16px}.vkuiBanner__actions>.vkuiButton--lvl-tertiary+.vkuiButton--lvl-tertiary{margin-top:2px}.vkuiModalCardBase__actions .vkuiButton{flex:1;margin-left:6px;margin-right:6px;width:0}.vkuiModalCardBase__actions--v .vkuiButton{margin-left:0;margin-right:0;width:100%}.vkuiModalCardBase__actions--v .vkuiButton+.vkuiButton{margin-top:12px}.vkuiRichCell__actions>.vkuiButton+.vkuiButton{margin-left:8px}
|
|
17
|
+
)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--hover{color:#000102;color:var(--vkui--color_text_primary_invariably--hover,#000102)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--active{color:#000105;color:var(--vkui--color_text_primary_invariably--active,#000105)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay,.vkuiButton--lvl-outline.vkuiButton--clr-overlay{color:#fff;color:var(--white, var(--vkui--color_text_contrast))}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{color:#f5f5f7;color:var(--vkui--color_text_contrast--hover,#F5F5F7)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{color:#ebecef;color:var(--vkui--color_text_contrast--active,#EBECEF)}.vkuiButton--lvl-outline.vkuiButton--clr-overlay{box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px var(--white, var(--vkui--color_stroke_contrast))}.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{box-shadow:inset 0 0 0 1px #f5f5f7;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--hover,#F5F5F7)}.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{box-shadow:inset 0 0 0 1px #ebecef;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--active,#EBECEF)}.vkuiButton__before:not(:last-child){margin-left:-4px}.vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:6px}.vkuiButton__after:not(:first-child){margin-left:6px}.vkuiButton--sz-l .vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:8px}.vkuiButton--sz-l .vkuiButton__after:not(:first-child){margin-left:8px}.vkuiButton--sz-l .vkuiButton__in{justify-content:center;padding-left:20px;padding-right:20px}.vkuiButton:not(.vkuiButton--sz-s) .vkuiButton__content{-webkit-transform:translateY(-1px);transform:translateY(-1px)}.vkuiButton--sz-m{min-height:32px;min-height:var(--vkui--size_button_medium_height--compact,32px)}.vkuiButton--sz-l{min-height:36px;min-height:var(--vkui--size_button_large_height--compact,36px)}.vkuiButton--sizeY-regular{min-height:30px;min-height:var(--vkui--size_button_small_height--regular,30px)}.vkuiButton--sizeY-regular.vkuiButton--sz-m{min-height:36px;min-height:var(--vkui--size_button_medium_height--regular,36px)}.vkuiButton--sizeY-regular.vkuiButton--sz-l{min-height:44px;min-height:var(--vkui--size_button_large_height--regular,44px)}.vkuiBanner__actions>.vkuiButton{margin-top:12px;margin-right:16px;margin-bottom:6px}.vkuiBanner__actions>.vkuiButton--lvl-tertiary{margin:4px 16px 2px -16px}.vkuiBanner__actions>.vkuiButton--lvl-tertiary:first-child{margin-top:4px}.vkuiBanner__actions>.vkuiButton:not(.vkuiButton--lvl-tertiary)+.vkuiButton:not(.vkuiButton--lvl-tertiary){margin-top:0}.vkuiBanner__actions>.vkuiButton:not(.vkuiButton--lvl-tertiary)+.vkuiButton--lvl-tertiary{margin-top:2px;margin-left:-16px}.vkuiBanner__actions>.vkuiButton--lvl-tertiary+.vkuiButton--lvl-tertiary{margin-top:2px}.vkuiModalCardBase__actions .vkuiButton{flex:1;margin-left:6px;margin-right:6px;width:0}.vkuiModalCardBase__actions--v .vkuiButton{margin-left:0;margin-right:0;width:100%}.vkuiModalCardBase__actions--v .vkuiButton+.vkuiButton{margin-top:12px}.vkuiRichCell__actions>.vkuiButton+.vkuiButton{margin-left:8px}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiButtonGroup{display:inline-flex;align-items:flex-start}.vkuiButtonGroup--stretched{display:flex;width:100%}.vkuiButtonGroup--mode-vertical{flex-direction:column}.vkuiButtonGroup--mode-horizontal{flex-direction:row}.vkuiButtonGroup--mode-vertical.vkuiButtonGroup--gap-space>:not(:first-child){margin-top:1px;margin-top:var(--vkui--size_button_group_gap_space--regular)}.vkuiButtonGroup--mode-vertical.vkuiButtonGroup--gap-s>:not(:first-child){margin-top:8px;margin-top:var(--vkui--size_button_group_gap_small--regular)}.vkuiButtonGroup--mode-vertical.vkuiButtonGroup--gap-m>:not(:first-child){margin-top:12px;margin-top:var(--vkui--size_button_group_gap_medium--regular)}.vkuiButtonGroup--mode-horizontal.vkuiButtonGroup--gap-space>:not(:last-child){margin-right:1px;margin-right:var(--vkui--size_button_group_gap_space--regular)}.vkuiButtonGroup--mode-horizontal.vkuiButtonGroup--gap-s>:not(:last-child){margin-right:8px;margin-right:var(--vkui--size_button_group_gap_small--regular)}.vkuiButtonGroup--mode-horizontal.vkuiButtonGroup--gap-m>:not(:last-child){margin-right:12px;margin-right:var(--vkui--size_button_group_gap_medium--regular)}
|
|
1
|
+
.vkuiButtonGroup{display:inline-flex;align-items:flex-start}.vkuiButtonGroup--stretched{display:flex;width:100%}.vkuiButtonGroup--mode-vertical{flex-direction:column}.vkuiButtonGroup--mode-horizontal{flex-direction:row}.vkuiButtonGroup--mode-vertical.vkuiButtonGroup--gap-space>:not(:first-child){margin-top:1px;margin-top:var(--vkui--size_button_group_gap_space--regular,1px)}.vkuiButtonGroup--mode-vertical.vkuiButtonGroup--gap-s>:not(:first-child){margin-top:8px;margin-top:var(--vkui--size_button_group_gap_small--regular,8px)}.vkuiButtonGroup--mode-vertical.vkuiButtonGroup--gap-m>:not(:first-child){margin-top:12px;margin-top:var(--vkui--size_button_group_gap_medium--regular,12px)}.vkuiButtonGroup--mode-horizontal.vkuiButtonGroup--gap-space>:not(:last-child){margin-right:1px;margin-right:var(--vkui--size_button_group_gap_space--regular,1px)}.vkuiButtonGroup--mode-horizontal.vkuiButtonGroup--gap-s>:not(:last-child){margin-right:8px;margin-right:var(--vkui--size_button_group_gap_small--regular,8px)}.vkuiButtonGroup--mode-horizontal.vkuiButtonGroup--gap-m>:not(:last-child){margin-right:12px;margin-right:var(--vkui--size_button_group_gap_medium--regular,12px)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiCalendar{display:flex;flex-direction:column;background:#fff;background:var(--vkui--color_background_modal);border:.5px solid #d7d8d9;border:.5px solid var(--vkui--color_separator_primary);box-sizing:border-box;box-shadow:0 0 2px rgba(0,0,0,.03)
|
|
1
|
+
.vkuiCalendar{display:flex;flex-direction:column;background:#fff;background:var(--vkui--color_background_modal,#FFFFFF);border:.5px solid #d7d8d9;border:.5px solid var(--vkui--color_separator_primary,#D7D8D9);box-sizing:border-box;box-shadow:0 0 2px rgba(0,0,0,.03)0 2px 2px rgba(0,0,0,.06);box-shadow:var(--vkui--elevation1,0px 0px 2px rgba(0, 0, 0, 0.03) , 0px 2px 2px rgba(0, 0, 0, 0.06));border-radius:8px;width:305px;padding:12px}.vkuiCalendar__time{border-top:1px solid #d7d8d9;border-top:1px solid var(--vkui--color_separator_primary,#D7D8D9);margin:12px -12px 0-12px;padding:12px 12px 0 12px}.vkuiCalendar__header{margin-bottom:4px;z-index:1}.vkuiCalendar--size-s{width:220px;padding:8px}.vkuiCalendar--size-s .vkuiCalendar__header{margin-bottom:0}
|
|
@@ -3,7 +3,7 @@ import { CalendarHeaderProps } from "../CalendarHeader/CalendarHeader";
|
|
|
3
3
|
import { CalendarTimeProps } from "../CalendarTime/CalendarTime";
|
|
4
4
|
import { HasRootRef } from "../../types";
|
|
5
5
|
import "./Calendar.css";
|
|
6
|
-
export interface CalendarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange">, Pick<CalendarTimeProps, "changeHoursAriaLabel" | "changeMinutesAriaLabel">, Pick<CalendarHeaderProps, "prevMonthAriaLabel" | "nextMonthAriaLabel" | "changeMonthAriaLabel" | "changeYearAriaLabel" | "onNextMonth" | "onPrevMonth">, HasRootRef<HTMLDivElement> {
|
|
6
|
+
export interface CalendarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange">, Pick<CalendarTimeProps, "changeHoursAriaLabel" | "changeMinutesAriaLabel">, Pick<CalendarHeaderProps, "prevMonthAriaLabel" | "nextMonthAriaLabel" | "changeMonthAriaLabel" | "changeYearAriaLabel" | "onNextMonth" | "onPrevMonth" | "prevMonthIcon" | "nextMonthIcon">, HasRootRef<HTMLDivElement> {
|
|
7
7
|
value?: Date;
|
|
8
8
|
disablePast?: boolean;
|
|
9
9
|
disableFuture?: boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["value", "onChange", "disablePast", "disableFuture", "shouldDisableDate", "onClose", "enableTime", "doneButtonText", "weekStartsOn", "getRootRef", "disablePickers", "changeHoursAriaLabel", "changeMinutesAriaLabel", "prevMonthAriaLabel", "nextMonthAriaLabel", "changeMonthAriaLabel", "changeYearAriaLabel", "showNeighboringMonth", "changeDayAriaLabel", "size", "viewDate", "onHeaderChange", "onNextMonth", "onPrevMonth"];
|
|
3
|
+
var _excluded = ["value", "onChange", "disablePast", "disableFuture", "shouldDisableDate", "onClose", "enableTime", "doneButtonText", "weekStartsOn", "getRootRef", "disablePickers", "changeHoursAriaLabel", "changeMinutesAriaLabel", "prevMonthAriaLabel", "nextMonthAriaLabel", "changeMonthAriaLabel", "changeYearAriaLabel", "showNeighboringMonth", "changeDayAriaLabel", "size", "viewDate", "onHeaderChange", "onNextMonth", "onPrevMonth", "prevMonthIcon", "nextMonthIcon"];
|
|
4
4
|
import { createScopedElement } from "../../lib/jsxRuntime";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { isSameMonth, isSameDay } from "../../lib/date";
|
|
@@ -43,6 +43,8 @@ export var Calendar = function Calendar(_ref) {
|
|
|
43
43
|
onHeaderChange = _ref.onHeaderChange,
|
|
44
44
|
onNextMonth = _ref.onNextMonth,
|
|
45
45
|
onPrevMonth = _ref.onPrevMonth,
|
|
46
|
+
prevMonthIcon = _ref.prevMonthIcon,
|
|
47
|
+
nextMonthIcon = _ref.nextMonthIcon,
|
|
46
48
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
47
49
|
|
|
48
50
|
var _useCalendar = useCalendar({
|
|
@@ -110,7 +112,9 @@ export var Calendar = function Calendar(_ref) {
|
|
|
110
112
|
prevMonthAriaLabel: prevMonthAriaLabel,
|
|
111
113
|
nextMonthAriaLabel: nextMonthAriaLabel,
|
|
112
114
|
changeMonthAriaLabel: changeMonthAriaLabel,
|
|
113
|
-
changeYearAriaLabel: changeYearAriaLabel
|
|
115
|
+
changeYearAriaLabel: changeYearAriaLabel,
|
|
116
|
+
prevMonthIcon: prevMonthIcon,
|
|
117
|
+
nextMonthIcon: nextMonthIcon
|
|
114
118
|
}), createScopedElement(CalendarDays, {
|
|
115
119
|
viewDate: externalViewDate || viewDate,
|
|
116
120
|
value: value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Calendar/Calendar.tsx"],"names":["React","isSameMonth","isSameDay","CalendarHeader","CalendarDays","CalendarTime","useIsomorphicLayoutEffect","navigateDate","setTimeEqual","isFirstDay","isLastDay","useCalendar","classNames","warnOnce","warn","Calendar","value","onChange","disablePast","disableFuture","shouldDisableDate","onClose","enableTime","doneButtonText","weekStartsOn","getRootRef","disablePickers","changeHoursAriaLabel","changeMinutesAriaLabel","prevMonthAriaLabel","nextMonthAriaLabel","changeMonthAriaLabel","changeYearAriaLabel","showNeighboringMonth","changeDayAriaLabel","size","externalViewDate","viewDate","onHeaderChange","onNextMonth","onPrevMonth","props","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","resetSelectedDay","process","env","NODE_ENV","handleKeyDown","useCallback","event","includes","key","preventDefault","newFocusedDay","onDayChange","date","isDayActive","day","Boolean"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { isSameMonth, isSameDay } from \"../../lib/date\";\nimport {\n CalendarHeader,\n CalendarHeaderProps,\n} from \"../CalendarHeader/CalendarHeader\";\nimport { CalendarDays } from \"../CalendarDays/CalendarDays\";\nimport { CalendarTime, CalendarTimeProps } from \"../CalendarTime/CalendarTime\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport {\n navigateDate,\n setTimeEqual,\n isFirstDay,\n isLastDay,\n} from \"../../lib/calendar\";\nimport { useCalendar } from \"../../hooks/useCalendar\";\nimport { HasRootRef } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./Calendar.css\";\n\nexport interface CalendarProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\">,\n Pick<CalendarTimeProps, \"changeHoursAriaLabel\" | \"changeMinutesAriaLabel\">,\n Pick<\n CalendarHeaderProps,\n | \"prevMonthAriaLabel\"\n | \"nextMonthAriaLabel\"\n | \"changeMonthAriaLabel\"\n | \"changeYearAriaLabel\"\n | \"onNextMonth\"\n | \"onPrevMonth\"\n >,\n HasRootRef<HTMLDivElement> {\n value?: Date;\n disablePast?: boolean;\n disableFuture?: boolean;\n enableTime?: boolean;\n disablePickers?: boolean;\n doneButtonText?: string;\n changeDayAriaLabel?: string;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n showNeighboringMonth?: boolean;\n size?: \"s\" | \"m\";\n onChange?(value?: Date): void;\n shouldDisableDate?(value: Date): boolean;\n onClose?(): void;\n /**\n * Дата отображаемого месяца.\n * При использовании обновление даты должно происходить вне компонента.\n */\n viewDate?: Date;\n /**\n * Изменение даты в шапке календаря.\n */\n onHeaderChange?(value: Date): void;\n}\n\nconst warn = warnOnce(\"Calendar\");\n\nexport const Calendar: React.FC<CalendarProps> = ({\n value,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onClose,\n enableTime = false,\n doneButtonText,\n weekStartsOn = 1,\n getRootRef,\n disablePickers,\n changeHoursAriaLabel,\n changeMinutesAriaLabel,\n prevMonthAriaLabel,\n nextMonthAriaLabel,\n changeMonthAriaLabel,\n changeYearAriaLabel,\n showNeighboringMonth,\n changeDayAriaLabel = \"Изменить день\",\n size = \"m\",\n viewDate: externalViewDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n ...props\n}) => {\n const {\n viewDate,\n setViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n resetSelectedDay,\n } = useCalendar({\n value,\n disableFuture,\n disablePast,\n shouldDisableDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n });\n\n useIsomorphicLayoutEffect(() => {\n if (value) {\n setViewDate(value);\n }\n }, [value]);\n\n if (\n process.env.NODE_ENV === \"development\" &&\n !disablePickers &&\n size === \"s\"\n ) {\n warn(\n \"Нельзя включить селекты выбора месяца/года, если размер календаря 's'\",\n \"error\"\n );\n }\n\n if (process.env.NODE_ENV === \"development\" && enableTime && size === \"s\") {\n warn(\"Нельзя включить выбор времени, если размер календаря 's'\", \"error\");\n }\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (\n [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"].includes(event.key)\n ) {\n event.preventDefault();\n }\n\n const newFocusedDay = navigateDate(focusedDay ?? value, event.key);\n\n if (newFocusedDay && !isSameMonth(newFocusedDay, viewDate)) {\n setViewDate(newFocusedDay);\n }\n setFocusedDay(newFocusedDay);\n },\n [focusedDay, setFocusedDay, setViewDate, value, viewDate]\n );\n\n const onDayChange = React.useCallback(\n (date: Date) => {\n onChange?.(setTimeEqual(date, value as Date | undefined | null));\n },\n [value, onChange]\n );\n\n const isDayActive = React.useCallback(\n (day: Date) => Boolean(value && isSameDay(day, value)),\n [value]\n );\n\n return (\n <div\n {...props}\n ref={getRootRef}\n vkuiClass={classNames(\"Calendar\", `Calendar--size-${size}`)}\n >\n <CalendarHeader\n viewDate={externalViewDate || viewDate}\n onChange={setViewDate}\n onNextMonth={setNextMonth}\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers || size === \"s\"}\n vkuiClass=\"Calendar__header\"\n prevMonthAriaLabel={prevMonthAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n changeMonthAriaLabel={changeMonthAriaLabel}\n changeYearAriaLabel={changeYearAriaLabel}\n />\n <CalendarDays\n viewDate={externalViewDate || viewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n isDayFocused={isDayFocused}\n tabIndex={0}\n aria-label={changeDayAriaLabel}\n onKeyDown={handleKeyDown}\n onDayChange={onDayChange}\n isDayActive={isDayActive}\n isDaySelectionStart={isFirstDay}\n isDaySelectionEnd={isLastDay}\n isDayDisabled={isDayDisabled}\n onBlur={resetSelectedDay}\n showNeighboringMonth={showNeighboringMonth}\n size={size}\n />\n {enableTime && value && size !== \"s\" && (\n <div vkuiClass=\"Calendar__time\">\n <CalendarTime\n value={value}\n onChange={onChange}\n onClose={onClose}\n doneButtonText={doneButtonText}\n changeHoursAriaLabel={changeHoursAriaLabel}\n changeMinutesAriaLabel={changeMinutesAriaLabel}\n />\n </div>\n )}\n </div>\n );\n};\n"],"file":"Calendar.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Calendar/Calendar.tsx"],"names":["React","isSameMonth","isSameDay","CalendarHeader","CalendarDays","CalendarTime","useIsomorphicLayoutEffect","navigateDate","setTimeEqual","isFirstDay","isLastDay","useCalendar","classNames","warnOnce","warn","Calendar","value","onChange","disablePast","disableFuture","shouldDisableDate","onClose","enableTime","doneButtonText","weekStartsOn","getRootRef","disablePickers","changeHoursAriaLabel","changeMinutesAriaLabel","prevMonthAriaLabel","nextMonthAriaLabel","changeMonthAriaLabel","changeYearAriaLabel","showNeighboringMonth","changeDayAriaLabel","size","externalViewDate","viewDate","onHeaderChange","onNextMonth","onPrevMonth","prevMonthIcon","nextMonthIcon","props","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","resetSelectedDay","process","env","NODE_ENV","handleKeyDown","useCallback","event","includes","key","preventDefault","newFocusedDay","onDayChange","date","isDayActive","day","Boolean"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { isSameMonth, isSameDay } from \"../../lib/date\";\nimport {\n CalendarHeader,\n CalendarHeaderProps,\n} from \"../CalendarHeader/CalendarHeader\";\nimport { CalendarDays } from \"../CalendarDays/CalendarDays\";\nimport { CalendarTime, CalendarTimeProps } from \"../CalendarTime/CalendarTime\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport {\n navigateDate,\n setTimeEqual,\n isFirstDay,\n isLastDay,\n} from \"../../lib/calendar\";\nimport { useCalendar } from \"../../hooks/useCalendar\";\nimport { HasRootRef } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./Calendar.css\";\n\nexport interface CalendarProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\">,\n Pick<CalendarTimeProps, \"changeHoursAriaLabel\" | \"changeMinutesAriaLabel\">,\n Pick<\n CalendarHeaderProps,\n | \"prevMonthAriaLabel\"\n | \"nextMonthAriaLabel\"\n | \"changeMonthAriaLabel\"\n | \"changeYearAriaLabel\"\n | \"onNextMonth\"\n | \"onPrevMonth\"\n | \"prevMonthIcon\"\n | \"nextMonthIcon\"\n >,\n HasRootRef<HTMLDivElement> {\n value?: Date;\n disablePast?: boolean;\n disableFuture?: boolean;\n enableTime?: boolean;\n disablePickers?: boolean;\n doneButtonText?: string;\n changeDayAriaLabel?: string;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n showNeighboringMonth?: boolean;\n size?: \"s\" | \"m\";\n onChange?(value?: Date): void;\n shouldDisableDate?(value: Date): boolean;\n onClose?(): void;\n /**\n * Дата отображаемого месяца.\n * При использовании обновление даты должно происходить вне компонента.\n */\n viewDate?: Date;\n /**\n * Изменение даты в шапке календаря.\n */\n onHeaderChange?(value: Date): void;\n}\n\nconst warn = warnOnce(\"Calendar\");\n\nexport const Calendar: React.FC<CalendarProps> = ({\n value,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onClose,\n enableTime = false,\n doneButtonText,\n weekStartsOn = 1,\n getRootRef,\n disablePickers,\n changeHoursAriaLabel,\n changeMinutesAriaLabel,\n prevMonthAriaLabel,\n nextMonthAriaLabel,\n changeMonthAriaLabel,\n changeYearAriaLabel,\n showNeighboringMonth,\n changeDayAriaLabel = \"Изменить день\",\n size = \"m\",\n viewDate: externalViewDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n prevMonthIcon,\n nextMonthIcon,\n ...props\n}) => {\n const {\n viewDate,\n setViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n resetSelectedDay,\n } = useCalendar({\n value,\n disableFuture,\n disablePast,\n shouldDisableDate,\n onHeaderChange,\n onNextMonth,\n onPrevMonth,\n });\n\n useIsomorphicLayoutEffect(() => {\n if (value) {\n setViewDate(value);\n }\n }, [value]);\n\n if (\n process.env.NODE_ENV === \"development\" &&\n !disablePickers &&\n size === \"s\"\n ) {\n warn(\n \"Нельзя включить селекты выбора месяца/года, если размер календаря 's'\",\n \"error\"\n );\n }\n\n if (process.env.NODE_ENV === \"development\" && enableTime && size === \"s\") {\n warn(\"Нельзя включить выбор времени, если размер календаря 's'\", \"error\");\n }\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (\n [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"].includes(event.key)\n ) {\n event.preventDefault();\n }\n\n const newFocusedDay = navigateDate(focusedDay ?? value, event.key);\n\n if (newFocusedDay && !isSameMonth(newFocusedDay, viewDate)) {\n setViewDate(newFocusedDay);\n }\n setFocusedDay(newFocusedDay);\n },\n [focusedDay, setFocusedDay, setViewDate, value, viewDate]\n );\n\n const onDayChange = React.useCallback(\n (date: Date) => {\n onChange?.(setTimeEqual(date, value as Date | undefined | null));\n },\n [value, onChange]\n );\n\n const isDayActive = React.useCallback(\n (day: Date) => Boolean(value && isSameDay(day, value)),\n [value]\n );\n\n return (\n <div\n {...props}\n ref={getRootRef}\n vkuiClass={classNames(\"Calendar\", `Calendar--size-${size}`)}\n >\n <CalendarHeader\n viewDate={externalViewDate || viewDate}\n onChange={setViewDate}\n onNextMonth={setNextMonth}\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers || size === \"s\"}\n vkuiClass=\"Calendar__header\"\n prevMonthAriaLabel={prevMonthAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n changeMonthAriaLabel={changeMonthAriaLabel}\n changeYearAriaLabel={changeYearAriaLabel}\n prevMonthIcon={prevMonthIcon}\n nextMonthIcon={nextMonthIcon}\n />\n <CalendarDays\n viewDate={externalViewDate || viewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n isDayFocused={isDayFocused}\n tabIndex={0}\n aria-label={changeDayAriaLabel}\n onKeyDown={handleKeyDown}\n onDayChange={onDayChange}\n isDayActive={isDayActive}\n isDaySelectionStart={isFirstDay}\n isDaySelectionEnd={isLastDay}\n isDayDisabled={isDayDisabled}\n onBlur={resetSelectedDay}\n showNeighboringMonth={showNeighboringMonth}\n size={size}\n />\n {enableTime && value && size !== \"s\" && (\n <div vkuiClass=\"Calendar__time\">\n <CalendarTime\n value={value}\n onChange={onChange}\n onClose={onClose}\n doneButtonText={doneButtonText}\n changeHoursAriaLabel={changeHoursAriaLabel}\n changeMinutesAriaLabel={changeMinutesAriaLabel}\n />\n </div>\n )}\n </div>\n );\n};\n"],"file":"Calendar.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiCalendarDay{border-radius:0;font-size:14px;color:#000;color:var(--vkui--color_text_primary);letter-spacing:var(--vk-sans-ls-1)}.vkuiCalendarDay__hidden,.vkuiCalendarDay{height:36px;flex-basis:calc(100%/7);flex-grow:0}.vkuiCalendarDay__hidden--size-s,.vkuiCalendarDay--size-s{height:34px}.vkuiCalendarDay--disabled,.vkuiCalendarDay--not-same-month{color:#99a2ad;color:var(--vkui--color_text_tertiary)}.vkuiCalendarDay--selected{background-color:#f5f5f5;background-color:var(--vkui--color_background_secondary)}.vkuiCalendarDay--selection-start.vkuiCalendarDay--selected,.vkuiCalendarDay__hinted--selection-start{border-top-left-radius:8px;border-bottom-left-radius:8px}.vkuiCalendarDay--selection-end.vkuiCalendarDay--selected,.vkuiCalendarDay__hinted--selection-end{border-top-right-radius:8px;border-bottom-right-radius:8px}.vkuiCalendarDay__day-number{text-align:center}.vkuiCalendarDay--today{font-weight:600}.vkuiCalendarDay--today .vkuiCalendarDay__day-number::after{content:"";border-bottom:2px solid #2688eb;border-bottom:2px solid var(--vkui--color_stroke_accent);width:16px;display:block;position:relative;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.vkuiCalendarDay--today .vkuiCalendarDay__inner--active .vkuiCalendarDay__day-number::after{border-bottom-color:#fff;border-bottom-color:var(--vkui--color_stroke_contrast)}.vkuiCalendarDay__inner,.vkuiCalendarDay__hinted{display:flex;align-items:center;justify-content:center;height:100%;width:100%}.vkuiCalendarDay__inner{border-radius:8px}.vkuiCalendarDay__hinted--active,.vkuiCalendarDay--hover :not(.vkuiCalendarDay__hinted--active) .vkuiCalendarDay__inner{background-color:rgba(0,0,0,.08);background-color:var(--vkui--color_background_secondary_alpha--hover)}.vkuiCalendarDay__inner--active{background-color:#2688eb;background-color:var(--vkui--color_background_accent);color:#fff;color:var(--vkui--color_text_contrast)}
|
|
1
|
+
.vkuiCalendarDay{border-radius:0;font-size:14px;color:#000;color:var(--vkui--color_text_primary,#000000);letter-spacing:var(--vk-sans-ls-1)}.vkuiCalendarDay__hidden,.vkuiCalendarDay{height:36px;flex-basis:calc(100%/7);flex-grow:0}.vkuiCalendarDay__hidden--size-s,.vkuiCalendarDay--size-s{height:34px}.vkuiCalendarDay--disabled,.vkuiCalendarDay--not-same-month{color:#99a2ad;color:var(--vkui--color_text_tertiary,#99A2AD)}.vkuiCalendarDay--selected{background-color:#f5f5f5;background-color:var(--vkui--color_background_secondary,#F5F5F5)}.vkuiCalendarDay--selection-start.vkuiCalendarDay--selected,.vkuiCalendarDay__hinted--selection-start{border-top-left-radius:8px;border-bottom-left-radius:8px}.vkuiCalendarDay--selection-end.vkuiCalendarDay--selected,.vkuiCalendarDay__hinted--selection-end{border-top-right-radius:8px;border-bottom-right-radius:8px}.vkuiCalendarDay__day-number{text-align:center}.vkuiCalendarDay--today{font-weight:600}.vkuiCalendarDay--today .vkuiCalendarDay__day-number::after{content:"";border-bottom:2px solid #2688eb;border-bottom:2px solid var(--vkui--color_stroke_accent,#2688EB);width:16px;display:block;position:relative;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.vkuiCalendarDay--today .vkuiCalendarDay__inner--active .vkuiCalendarDay__day-number::after{border-bottom-color:#fff;border-bottom-color:var(--vkui--color_stroke_contrast,#FFFFFF)}.vkuiCalendarDay__inner,.vkuiCalendarDay__hinted{display:flex;align-items:center;justify-content:center;height:100%;width:100%}.vkuiCalendarDay__inner{border-radius:8px}.vkuiCalendarDay__hinted--active,.vkuiCalendarDay--hover :not(.vkuiCalendarDay__hinted--active) .vkuiCalendarDay__inner{background-color:rgba(0,0,0,.08);background-color:var(--vkui--color_background_secondary_alpha--hover,rgba(0, 0, 0, 0.08))}.vkuiCalendarDay__inner--active{background-color:#2688eb;background-color:var(--vkui--color_background_accent,#2688EB);color:#fff;color:var(--vkui--color_text_contrast,#FFFFFF)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiCalendarDays{display:flex;flex-direction:column;justify-content:space-around;flex-grow:1}.vkuiCalendarDays__row{display:flex;justify-content:center;flex-grow:1}.vkuiCalendarDays__row:not(:last-child){margin-bottom:4px}.vkuiCalendarDays__row--size-s:not(:last-child){margin-bottom:0}.vkuiCalendarDays__weekday{text-transform:capitalize;color:#6d7885;color:var(--vkui--color_text_subhead);height:32px;flex-basis:calc(100%/7);flex-grow:0;display:flex;align-items:center;justify-content:center}
|
|
1
|
+
.vkuiCalendarDays{display:flex;flex-direction:column;justify-content:space-around;flex-grow:1}.vkuiCalendarDays__row{display:flex;justify-content:center;flex-grow:1}.vkuiCalendarDays__row:not(:last-child){margin-bottom:4px}.vkuiCalendarDays__row--size-s:not(:last-child){margin-bottom:0}.vkuiCalendarDays__weekday{text-transform:capitalize;color:#6d7885;color:var(--vkui--color_text_subhead,#6D7885);height:32px;flex-basis:calc(100%/7);flex-grow:0;display:flex;align-items:center;justify-content:center}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiCalendarHeader{display:flex;justify-content:center;align-items:center;position:relative;min-height:36px}.vkuiCalendarHeader__pickers{display:flex;position:absolute}.vkuiCalendarHeader__pickers>:not(:last-child){margin-right:4px}.vkuiCalendarHeader__nav-icon{position:absolute;display:flex;justify-content:center;align-items:center;padding:3px
|
|
1
|
+
.vkuiCalendarHeader{display:flex;justify-content:center;align-items:center;position:relative;min-height:36px}.vkuiCalendarHeader__pickers{display:flex;position:absolute}.vkuiCalendarHeader__pickers>:not(:last-child){margin-right:4px}.vkuiCalendarHeader__nav-icon{position:absolute;display:flex;justify-content:center;align-items:center;padding:3px}.vkuiCalendarHeader__nav-icon--accent{color:#2688eb;color:var(--vkui--color_icon_accent,#2688EB)}.vkuiCalendarHeader__nav-icon-next{right:0}.vkuiCalendarHeader__nav-icon-prev{left:0}.vkuiCalendarHeader__picker-icon{margin-top:-4px;color:#99a2ad;color:var(--vkui--color_icon_secondary,#99A2AD)}.vkuiCalendarHeader__month_name{text-transform:capitalize}.vkuiCalendarHeader__pickers-placeholder{text-transform:capitalize}.vkuiCalendarHeader__pickers .vkuiCustomSelectDropdown__CustomScrollView{max-height:184px}
|
|
@@ -9,6 +9,8 @@ export interface CalendarHeaderProps extends Pick<React.HTMLAttributes<HTMLDivEl
|
|
|
9
9
|
nextMonthAriaLabel?: string;
|
|
10
10
|
changeMonthAriaLabel?: string;
|
|
11
11
|
changeYearAriaLabel?: string;
|
|
12
|
+
prevMonthIcon?: React.ReactNode;
|
|
13
|
+
nextMonthIcon?: React.ReactNode;
|
|
12
14
|
onChange(viewDate: Date): void;
|
|
13
15
|
/**
|
|
14
16
|
* Нажатие на кнопку переключения на следующий месяц.
|
|
@@ -43,7 +43,19 @@ export var CalendarHeader = function CalendarHeader(_ref2) {
|
|
|
43
43
|
_ref2$changeMonthAria = _ref2.changeMonthAriaLabel,
|
|
44
44
|
changeMonthAriaLabel = _ref2$changeMonthAria === void 0 ? "Изменить месяц" : _ref2$changeMonthAria,
|
|
45
45
|
_ref2$changeYearAriaL = _ref2.changeYearAriaLabel,
|
|
46
|
-
changeYearAriaLabel = _ref2$changeYearAriaL === void 0 ? "Изменить год" : _ref2$changeYearAriaL
|
|
46
|
+
changeYearAriaLabel = _ref2$changeYearAriaL === void 0 ? "Изменить год" : _ref2$changeYearAriaL,
|
|
47
|
+
_ref2$prevMonthIcon = _ref2.prevMonthIcon,
|
|
48
|
+
prevMonthIcon = _ref2$prevMonthIcon === void 0 ? createScopedElement(Icon20ChevronLeftOutline, {
|
|
49
|
+
vkuiClass: "CalendarHeader__nav-icon--accent",
|
|
50
|
+
width: 30,
|
|
51
|
+
height: 30
|
|
52
|
+
}) : _ref2$prevMonthIcon,
|
|
53
|
+
_ref2$nextMonthIcon = _ref2.nextMonthIcon,
|
|
54
|
+
nextMonthIcon = _ref2$nextMonthIcon === void 0 ? createScopedElement(Icon20ChevronRightOutline, {
|
|
55
|
+
vkuiClass: "CalendarHeader__nav-icon--accent",
|
|
56
|
+
width: 30,
|
|
57
|
+
height: 30
|
|
58
|
+
}) : _ref2$nextMonthIcon;
|
|
47
59
|
var locale = React.useContext(LocaleProviderContext);
|
|
48
60
|
var onMonthsChange = React.useCallback(function (event) {
|
|
49
61
|
return onChange(setMonth(viewDate, Number(event.target.value)));
|
|
@@ -69,10 +81,7 @@ export var CalendarHeader = function CalendarHeader(_ref2) {
|
|
|
69
81
|
vkuiClass: classNames("CalendarHeader__nav-icon", "CalendarHeader__nav-icon-prev"),
|
|
70
82
|
onClick: onPrevMonth,
|
|
71
83
|
"aria-label": "".concat(prevMonthAriaLabel, ", ").concat(formatter.format(subMonths(viewDate, 1)))
|
|
72
|
-
}, createScopedElement(
|
|
73
|
-
width: 30,
|
|
74
|
-
height: 30
|
|
75
|
-
})), createScopedElement("div", {
|
|
84
|
+
}, prevMonthIcon), createScopedElement("div", {
|
|
76
85
|
vkuiClass: "CalendarHeader__pickers"
|
|
77
86
|
}, disablePickers ? createScopedElement(React.Fragment, null, createScopedElement(Paragraph, {
|
|
78
87
|
weight: "2",
|
|
@@ -111,9 +120,6 @@ export var CalendarHeader = function CalendarHeader(_ref2) {
|
|
|
111
120
|
vkuiClass: classNames("CalendarHeader__nav-icon", "CalendarHeader__nav-icon-next"),
|
|
112
121
|
onClick: onNextMonth,
|
|
113
122
|
"aria-label": "".concat(nextMonthAriaLabel, ", ").concat(formatter.format(addMonths(viewDate, 1)))
|
|
114
|
-
},
|
|
115
|
-
width: 30,
|
|
116
|
-
height: 30
|
|
117
|
-
})));
|
|
123
|
+
}, nextMonthIcon));
|
|
118
124
|
};
|
|
119
125
|
//# sourceMappingURL=CalendarHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/CalendarHeader/CalendarHeader.tsx"],"names":["React","setMonth","setYear","subMonths","addMonths","Icon20ChevronLeftOutline","Icon20ChevronRightOutline","Icon12Dropdown","Tappable","classNames","CustomSelect","SelectType","CustomSelectOption","SizeType","getMonths","getYears","LocaleProviderContext","Paragraph","renderOption","option","children","props","CalendarHeader","viewDate","onChange","prevMonth","nextMonth","disablePickers","onNextMonth","onPrevMonth","className","prevMonthAriaLabel","nextMonthAriaLabel","changeMonthAriaLabel","changeYearAriaLabel","locale","useContext","onMonthsChange","useCallback","event","Number","target","value","onYearChange","months","useMemo","currentYear","getFullYear","years","formatter","Intl","DateTimeFormat","year","month","format","getMonth","COMPACT","Plain"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { setMonth, setYear, subMonths, addMonths } from \"../../lib/date\";\nimport {\n Icon20ChevronLeftOutline,\n Icon20ChevronRightOutline,\n Icon12Dropdown,\n} from \"@vkontakte/icons\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { classNames } from \"../../lib/classNames\";\nimport {\n CustomSelect,\n CustomSelectProps,\n SelectType,\n} from \"../CustomSelect/CustomSelect\";\nimport { CustomSelectOption } from \"../CustomSelectOption/CustomSelectOption\";\nimport { SizeType } from \"../../hoc/withAdaptivity\";\nimport { getMonths, getYears } from \"../../lib/calendar\";\nimport { LocaleProviderContext } from \"../LocaleProviderContext/LocaleProviderContext\";\nimport { Paragraph } from \"../Typography/Paragraph/Paragraph\";\nimport \"./CalendarHeader.css\";\n\nexport interface CalendarHeaderProps\n extends Pick<React.HTMLAttributes<HTMLDivElement>, \"className\"> {\n viewDate: Date;\n prevMonth?: boolean;\n nextMonth?: boolean;\n disablePickers?: boolean;\n prevMonthAriaLabel?: string;\n nextMonthAriaLabel?: string;\n changeMonthAriaLabel?: string;\n changeYearAriaLabel?: string;\n onChange(viewDate: Date): void;\n /**\n * Нажатие на кнопку переключения на следующий месяц.\n */\n onNextMonth?(): void;\n /**\n * Нажатие на кнопку переключения на предыдущий месяц.\n */\n onPrevMonth?(): void;\n}\n\nconst renderOption: CustomSelectProps[\"renderOption\"] = ({\n option,\n children,\n ...props\n}) => {\n return (\n <CustomSelectOption {...props}>\n <span vkuiClass=\"CalendarHeader__month_name\">{children}</span>\n </CustomSelectOption>\n );\n};\n\nexport const CalendarHeader: React.FC<CalendarHeaderProps> = ({\n viewDate,\n onChange,\n prevMonth = true,\n nextMonth = true,\n disablePickers = false,\n onNextMonth,\n onPrevMonth,\n className,\n prevMonthAriaLabel = \"Предыдущий месяц\",\n nextMonthAriaLabel = \"Следующий месяц\",\n changeMonthAriaLabel = \"Изменить месяц\",\n changeYearAriaLabel = \"Изменить год\",\n}) => {\n const locale = React.useContext(LocaleProviderContext);\n const onMonthsChange = React.useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) =>\n onChange(setMonth(viewDate, Number(event.target.value))),\n [onChange, viewDate]\n );\n const onYearChange = React.useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) =>\n onChange(setYear(viewDate, Number(event.target.value))),\n [onChange, viewDate]\n );\n\n const months = React.useMemo(() => getMonths(locale), [locale]);\n\n const currentYear = viewDate.getFullYear();\n\n const years = React.useMemo(() => getYears(currentYear, 100), [currentYear]);\n\n const formatter = new Intl.DateTimeFormat(locale, {\n year: \"numeric\",\n month: \"long\",\n });\n\n return (\n <div vkuiClass=\"CalendarHeader\" className={className}>\n {prevMonth && (\n <Tappable\n vkuiClass={classNames(\n \"CalendarHeader__nav-icon\",\n \"CalendarHeader__nav-icon-prev\"\n )}\n onClick={onPrevMonth}\n aria-label={`${prevMonthAriaLabel}, ${formatter.format(\n subMonths(viewDate, 1)\n )}`}\n >\n <Icon20ChevronLeftOutline width={30} height={30} />\n </Tappable>\n )}\n <div vkuiClass=\"CalendarHeader__pickers\">\n {disablePickers ? (\n <React.Fragment>\n <Paragraph\n weight=\"2\"\n vkuiClass=\"CalendarHeader__pickers-placeholder\"\n >\n {new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(viewDate)}\n </Paragraph>\n <Paragraph\n weight=\"2\"\n vkuiClass=\"CalendarHeader__pickers-placeholder\"\n >\n {new Intl.DateTimeFormat(locale, {\n year: \"numeric\",\n }).format(viewDate)}\n </Paragraph>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <CustomSelect\n value={viewDate.getMonth()}\n options={months}\n renderOption={renderOption}\n dropdownOffsetDistance={4}\n fixDropdownWidth={false}\n sizeY={SizeType.COMPACT}\n icon={<Icon12Dropdown />}\n onChange={onMonthsChange}\n forceDropdownPortal={false}\n selectType={SelectType.Plain}\n aria-label={changeMonthAriaLabel}\n />\n <CustomSelect\n value={viewDate.getFullYear()}\n options={years}\n dropdownOffsetDistance={4}\n fixDropdownWidth={false}\n sizeY={SizeType.COMPACT}\n icon={<Icon12Dropdown />}\n onChange={onYearChange}\n forceDropdownPortal={false}\n selectType={SelectType.Plain}\n aria-label={changeYearAriaLabel}\n />\n </React.Fragment>\n )}\n </div>\n {nextMonth && (\n <Tappable\n vkuiClass={classNames(\n \"CalendarHeader__nav-icon\",\n \"CalendarHeader__nav-icon-next\"\n )}\n onClick={onNextMonth}\n aria-label={`${nextMonthAriaLabel}, ${formatter.format(\n addMonths(viewDate, 1)\n )}`}\n >\n <Icon20ChevronRightOutline width={30} height={30} />\n </Tappable>\n )}\n </div>\n );\n};\n"],"file":"CalendarHeader.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CalendarHeader/CalendarHeader.tsx"],"names":["React","setMonth","setYear","subMonths","addMonths","Icon20ChevronLeftOutline","Icon20ChevronRightOutline","Icon12Dropdown","Tappable","classNames","CustomSelect","SelectType","CustomSelectOption","SizeType","getMonths","getYears","LocaleProviderContext","Paragraph","renderOption","option","children","props","CalendarHeader","viewDate","onChange","prevMonth","nextMonth","disablePickers","onNextMonth","onPrevMonth","className","prevMonthAriaLabel","nextMonthAriaLabel","changeMonthAriaLabel","changeYearAriaLabel","prevMonthIcon","nextMonthIcon","locale","useContext","onMonthsChange","useCallback","event","Number","target","value","onYearChange","months","useMemo","currentYear","getFullYear","years","formatter","Intl","DateTimeFormat","year","month","format","getMonth","COMPACT","Plain"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { setMonth, setYear, subMonths, addMonths } from \"../../lib/date\";\nimport {\n Icon20ChevronLeftOutline,\n Icon20ChevronRightOutline,\n Icon12Dropdown,\n} from \"@vkontakte/icons\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { classNames } from \"../../lib/classNames\";\nimport {\n CustomSelect,\n CustomSelectProps,\n SelectType,\n} from \"../CustomSelect/CustomSelect\";\nimport { CustomSelectOption } from \"../CustomSelectOption/CustomSelectOption\";\nimport { SizeType } from \"../../hoc/withAdaptivity\";\nimport { getMonths, getYears } from \"../../lib/calendar\";\nimport { LocaleProviderContext } from \"../LocaleProviderContext/LocaleProviderContext\";\nimport { Paragraph } from \"../Typography/Paragraph/Paragraph\";\nimport \"./CalendarHeader.css\";\n\nexport interface CalendarHeaderProps\n extends Pick<React.HTMLAttributes<HTMLDivElement>, \"className\"> {\n viewDate: Date;\n prevMonth?: boolean;\n nextMonth?: boolean;\n disablePickers?: boolean;\n prevMonthAriaLabel?: string;\n nextMonthAriaLabel?: string;\n changeMonthAriaLabel?: string;\n changeYearAriaLabel?: string;\n prevMonthIcon?: React.ReactNode;\n nextMonthIcon?: React.ReactNode;\n onChange(viewDate: Date): void;\n /**\n * Нажатие на кнопку переключения на следующий месяц.\n */\n onNextMonth?(): void;\n /**\n * Нажатие на кнопку переключения на предыдущий месяц.\n */\n onPrevMonth?(): void;\n}\n\nconst renderOption: CustomSelectProps[\"renderOption\"] = ({\n option,\n children,\n ...props\n}) => {\n return (\n <CustomSelectOption {...props}>\n <span vkuiClass=\"CalendarHeader__month_name\">{children}</span>\n </CustomSelectOption>\n );\n};\n\nexport const CalendarHeader: React.FC<CalendarHeaderProps> = ({\n viewDate,\n onChange,\n prevMonth = true,\n nextMonth = true,\n disablePickers = false,\n onNextMonth,\n onPrevMonth,\n className,\n prevMonthAriaLabel = \"Предыдущий месяц\",\n nextMonthAriaLabel = \"Следующий месяц\",\n changeMonthAriaLabel = \"Изменить месяц\",\n changeYearAriaLabel = \"Изменить год\",\n prevMonthIcon = (\n <Icon20ChevronLeftOutline\n vkuiClass=\"CalendarHeader__nav-icon--accent\"\n width={30}\n height={30}\n />\n ),\n nextMonthIcon = (\n <Icon20ChevronRightOutline\n vkuiClass=\"CalendarHeader__nav-icon--accent\"\n width={30}\n height={30}\n />\n ),\n}) => {\n const locale = React.useContext(LocaleProviderContext);\n const onMonthsChange = React.useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) =>\n onChange(setMonth(viewDate, Number(event.target.value))),\n [onChange, viewDate]\n );\n const onYearChange = React.useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) =>\n onChange(setYear(viewDate, Number(event.target.value))),\n [onChange, viewDate]\n );\n\n const months = React.useMemo(() => getMonths(locale), [locale]);\n\n const currentYear = viewDate.getFullYear();\n\n const years = React.useMemo(() => getYears(currentYear, 100), [currentYear]);\n\n const formatter = new Intl.DateTimeFormat(locale, {\n year: \"numeric\",\n month: \"long\",\n });\n\n return (\n <div vkuiClass=\"CalendarHeader\" className={className}>\n {prevMonth && (\n <Tappable\n vkuiClass={classNames(\n \"CalendarHeader__nav-icon\",\n \"CalendarHeader__nav-icon-prev\"\n )}\n onClick={onPrevMonth}\n aria-label={`${prevMonthAriaLabel}, ${formatter.format(\n subMonths(viewDate, 1)\n )}`}\n >\n {prevMonthIcon}\n </Tappable>\n )}\n <div vkuiClass=\"CalendarHeader__pickers\">\n {disablePickers ? (\n <React.Fragment>\n <Paragraph\n weight=\"2\"\n vkuiClass=\"CalendarHeader__pickers-placeholder\"\n >\n {new Intl.DateTimeFormat(locale, {\n month: \"long\",\n }).format(viewDate)}\n </Paragraph>\n <Paragraph\n weight=\"2\"\n vkuiClass=\"CalendarHeader__pickers-placeholder\"\n >\n {new Intl.DateTimeFormat(locale, {\n year: \"numeric\",\n }).format(viewDate)}\n </Paragraph>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <CustomSelect\n value={viewDate.getMonth()}\n options={months}\n renderOption={renderOption}\n dropdownOffsetDistance={4}\n fixDropdownWidth={false}\n sizeY={SizeType.COMPACT}\n icon={<Icon12Dropdown />}\n onChange={onMonthsChange}\n forceDropdownPortal={false}\n selectType={SelectType.Plain}\n aria-label={changeMonthAriaLabel}\n />\n <CustomSelect\n value={viewDate.getFullYear()}\n options={years}\n dropdownOffsetDistance={4}\n fixDropdownWidth={false}\n sizeY={SizeType.COMPACT}\n icon={<Icon12Dropdown />}\n onChange={onYearChange}\n forceDropdownPortal={false}\n selectType={SelectType.Plain}\n aria-label={changeYearAriaLabel}\n />\n </React.Fragment>\n )}\n </div>\n {nextMonth && (\n <Tappable\n vkuiClass={classNames(\n \"CalendarHeader__nav-icon\",\n \"CalendarHeader__nav-icon-next\"\n )}\n onClick={onNextMonth}\n aria-label={`${nextMonthAriaLabel}, ${formatter.format(\n addMonths(viewDate, 1)\n )}`}\n >\n {nextMonthIcon}\n </Tappable>\n )}\n </div>\n );\n};\n"],"file":"CalendarHeader.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiCalendarRange{display:flex;justify-content:space-around;flex-wrap:wrap;width:610px;background:#fff;background:var(--vkui--color_background_modal);border:.5px solid #d7d8d9;border:.5px solid var(--vkui--color_separator_primary);box-sizing:border-box;box-shadow:0 0 2px rgba(0,0,0,.03)
|
|
1
|
+
.vkuiCalendarRange{display:flex;justify-content:space-around;flex-wrap:wrap;width:610px;background:#fff;background:var(--vkui--color_background_modal,#FFFFFF);border:.5px solid #d7d8d9;border:.5px solid var(--vkui--color_separator_primary,#D7D8D9);box-sizing:border-box;box-shadow:0 0 2px rgba(0,0,0,.03)0 2px 2px rgba(0,0,0,.06);box-shadow:var(--vkui--elevation1,0px 0px 2px rgba(0, 0, 0, 0.03) , 0px 2px 2px rgba(0, 0, 0, 0.06));border-radius:8px;padding:12px}.vkuiCalendarRange__inner{display:flex;flex-direction:column;flex-grow:1}.vkuiCalendarRange__inner:not(:last-child){margin-right:24px}.vkuiCalendarRange__header{margin-bottom:4px;z-index:1}
|
|
@@ -2,7 +2,7 @@ import * as React from "react";
|
|
|
2
2
|
import { CalendarHeaderProps } from "../CalendarHeader/CalendarHeader";
|
|
3
3
|
import { HasRootRef } from "../../types";
|
|
4
4
|
import "./CalendarRange.css";
|
|
5
|
-
export interface CalendarRangeProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange">, Pick<CalendarHeaderProps, "prevMonthAriaLabel" | "nextMonthAriaLabel" | "changeMonthAriaLabel" | "changeYearAriaLabel">, HasRootRef<HTMLDivElement> {
|
|
5
|
+
export interface CalendarRangeProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange">, Pick<CalendarHeaderProps, "prevMonthAriaLabel" | "nextMonthAriaLabel" | "changeMonthAriaLabel" | "changeYearAriaLabel" | "prevMonthIcon" | "nextMonthIcon">, HasRootRef<HTMLDivElement> {
|
|
6
6
|
value?: Array<Date | null>;
|
|
7
7
|
disablePast?: boolean;
|
|
8
8
|
disableFuture?: boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["value", "onChange", "disablePast", "disableFuture", "shouldDisableDate", "onClose", "weekStartsOn", "getRootRef", "disablePickers", "prevMonthAriaLabel", "nextMonthAriaLabel", "changeMonthAriaLabel", "changeYearAriaLabel", "changeDayAriaLabel"];
|
|
4
|
+
var _excluded = ["value", "onChange", "disablePast", "disableFuture", "shouldDisableDate", "onClose", "weekStartsOn", "getRootRef", "disablePickers", "prevMonthAriaLabel", "nextMonthAriaLabel", "changeMonthAriaLabel", "changeYearAriaLabel", "changeDayAriaLabel", "prevMonthIcon", "nextMonthIcon"];
|
|
5
5
|
import { createScopedElement } from "../../lib/jsxRuntime";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import { addMonths, isSameMonth, isSameDay, isBefore, isAfter, startOfDay, endOfDay, isWithinInterval } from "../../lib/date";
|
|
@@ -36,6 +36,8 @@ export var CalendarRange = function CalendarRange(_ref) {
|
|
|
36
36
|
changeYearAriaLabel = _ref.changeYearAriaLabel,
|
|
37
37
|
_ref$changeDayAriaLab = _ref.changeDayAriaLabel,
|
|
38
38
|
changeDayAriaLabel = _ref$changeDayAriaLab === void 0 ? "Изменить день" : _ref$changeDayAriaLab,
|
|
39
|
+
prevMonthIcon = _ref.prevMonthIcon,
|
|
40
|
+
nextMonthIcon = _ref.nextMonthIcon,
|
|
39
41
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
40
42
|
|
|
41
43
|
var _useCalendar = useCalendar({
|
|
@@ -137,7 +139,8 @@ export var CalendarRange = function CalendarRange(_ref) {
|
|
|
137
139
|
prevMonthAriaLabel: prevMonthAriaLabel,
|
|
138
140
|
nextMonthAriaLabel: nextMonthAriaLabel,
|
|
139
141
|
changeMonthAriaLabel: changeMonthAriaLabel,
|
|
140
|
-
changeYearAriaLabel: changeYearAriaLabel
|
|
142
|
+
changeYearAriaLabel: changeYearAriaLabel,
|
|
143
|
+
prevMonthIcon: prevMonthIcon
|
|
141
144
|
}), createScopedElement(CalendarDays, {
|
|
142
145
|
viewDate: viewDate,
|
|
143
146
|
value: value,
|
|
@@ -168,7 +171,8 @@ export var CalendarRange = function CalendarRange(_ref) {
|
|
|
168
171
|
prevMonthAriaLabel: prevMonthAriaLabel,
|
|
169
172
|
nextMonthAriaLabel: nextMonthAriaLabel,
|
|
170
173
|
changeMonthAriaLabel: changeMonthAriaLabel,
|
|
171
|
-
changeYearAriaLabel: changeYearAriaLabel
|
|
174
|
+
changeYearAriaLabel: changeYearAriaLabel,
|
|
175
|
+
nextMonthIcon: nextMonthIcon
|
|
172
176
|
}), createScopedElement(CalendarDays, {
|
|
173
177
|
viewDate: secondViewDate,
|
|
174
178
|
value: value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/CalendarRange/CalendarRange.tsx"],"names":["React","addMonths","isSameMonth","isSameDay","isBefore","isAfter","startOfDay","endOfDay","isWithinInterval","CalendarHeader","CalendarDays","navigateDate","setTimeEqual","isLastDay","isFirstDay","useCalendar","getIsDaySelected","day","value","Boolean","CalendarRange","onChange","disablePast","disableFuture","shouldDisableDate","onClose","weekStartsOn","getRootRef","disablePickers","prevMonthAriaLabel","nextMonthAriaLabel","changeMonthAriaLabel","changeYearAriaLabel","changeDayAriaLabel","props","viewDate","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","resetSelectedDay","useState","hintedDate","setHintedDate","secondViewDate","handleKeyDown","useCallback","event","includes","key","preventDefault","newFocusedDay","getNewValue","date","start","end","onDayChange","undefined","isDaySelected","isDayActive","isDaySelectionEnd","dayOfWeek","isHintedDaySelectionEnd","isDaySelectionStart","isHintedDaySelectionStart","onDayEnter","onDayLeave","isDayHinted"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n addMonths,\n isSameMonth,\n isSameDay,\n isBefore,\n isAfter,\n startOfDay,\n endOfDay,\n isWithinInterval,\n} from \"../../lib/date\";\nimport {\n CalendarHeader,\n CalendarHeaderProps,\n} from \"../CalendarHeader/CalendarHeader\";\nimport { CalendarDays } from \"../CalendarDays/CalendarDays\";\nimport {\n navigateDate,\n setTimeEqual,\n isLastDay,\n isFirstDay,\n} from \"../../lib/calendar\";\nimport { useCalendar } from \"../../hooks/useCalendar\";\nimport { HasRootRef } from \"../../types\";\nimport \"./CalendarRange.css\";\n\nexport interface CalendarRangeProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\">,\n Pick<\n CalendarHeaderProps,\n | \"prevMonthAriaLabel\"\n | \"nextMonthAriaLabel\"\n | \"changeMonthAriaLabel\"\n | \"changeYearAriaLabel\"\n >,\n HasRootRef<HTMLDivElement> {\n value?: Array<Date | null>;\n disablePast?: boolean;\n disableFuture?: boolean;\n disablePickers?: boolean;\n changeDayAriaLabel?: string;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n onChange?(value?: Array<Date | null>): void;\n shouldDisableDate?(value: Date): boolean;\n onClose?(): void;\n}\n\nconst getIsDaySelected = (day: Date, value?: Array<Date | null>) => {\n if (!value?.[0] || !value[1]) {\n return false;\n }\n\n return Boolean(\n isWithinInterval(day, startOfDay(value[0]), endOfDay(value[1]))\n );\n};\n\nexport const CalendarRange: React.FC<CalendarRangeProps> = ({\n value,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onClose,\n weekStartsOn = 1,\n getRootRef,\n disablePickers,\n prevMonthAriaLabel,\n nextMonthAriaLabel,\n changeMonthAriaLabel,\n changeYearAriaLabel,\n changeDayAriaLabel = \"Изменить день\",\n ...props\n}) => {\n const {\n viewDate,\n setViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n resetSelectedDay,\n } = useCalendar({ value, disableFuture, disablePast, shouldDisableDate });\n const [hintedDate, setHintedDate] = React.useState<Array<Date | null>>();\n const secondViewDate = addMonths(viewDate, 1);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (\n [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"].includes(event.key)\n ) {\n event.preventDefault();\n }\n\n const newFocusedDay = navigateDate(focusedDay ?? value?.[1], event.key);\n\n if (\n newFocusedDay &&\n !isSameMonth(newFocusedDay, viewDate) &&\n !isSameMonth(newFocusedDay, addMonths(viewDate, 1))\n ) {\n setViewDate(newFocusedDay);\n }\n setFocusedDay(newFocusedDay);\n },\n [focusedDay, setFocusedDay, setViewDate, value, viewDate]\n );\n\n const getNewValue = React.useCallback(\n (date: Date) => {\n if (!value) {\n return [date, null];\n }\n\n const start = value[0];\n const end = value[1];\n if ((start && isSameDay(date, start)) || (end && isSameDay(date, end))) {\n return [setTimeEqual(date, start), setTimeEqual(date, end)];\n } else if (start && isBefore(date, start)) {\n return [setTimeEqual(date, start), end];\n } else if (start && isAfter(date, start)) {\n return [start, setTimeEqual(date, end)];\n }\n\n return value;\n },\n [value]\n );\n\n const onDayChange = React.useCallback(\n (date: Date) => {\n onChange?.(getNewValue(date));\n setHintedDate(undefined);\n },\n [onChange, getNewValue]\n );\n\n const isDaySelected = React.useCallback(\n (day: Date) => getIsDaySelected(day, value),\n [value]\n );\n\n const isDayActive = React.useCallback(\n (day: Date) =>\n Boolean(\n (value?.[0] && isSameDay(day, value[0])) ||\n (value?.[1] && isSameDay(day, value[1]))\n ),\n [value]\n );\n\n const isDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(\n isLastDay(day, dayOfWeek) || (value?.[1] && isSameDay(day, value[1]))\n ),\n [value]\n );\n\n const isHintedDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(\n isLastDay(day, dayOfWeek) ||\n (hintedDate?.[1] && isSameDay(day, hintedDate[1]))\n ),\n [hintedDate]\n );\n\n const isDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(\n isFirstDay(day, dayOfWeek) || (value?.[0] && isSameDay(day, value[0]))\n ),\n [value]\n );\n\n const isHintedDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(\n isFirstDay(day, dayOfWeek) ||\n (hintedDate?.[0] && isSameDay(day, hintedDate[0]))\n ),\n [hintedDate]\n );\n\n const onDayEnter = React.useCallback(\n (date: Date) => setHintedDate(getNewValue(date)),\n [setHintedDate, getNewValue]\n );\n\n const onDayLeave = React.useCallback(\n () => setHintedDate(undefined),\n [setHintedDate]\n );\n\n const isDayHinted = React.useCallback(\n (day: Date) => getIsDaySelected(day, hintedDate),\n [hintedDate]\n );\n\n return (\n <div {...props} ref={getRootRef} vkuiClass=\"CalendarRange\">\n <div vkuiClass=\"CalendarRange__inner\">\n <CalendarHeader\n viewDate={viewDate}\n onChange={setViewDate}\n nextMonth={false}\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers}\n vkuiClass=\"CalendarRange__header\"\n prevMonthAriaLabel={prevMonthAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n changeMonthAriaLabel={changeMonthAriaLabel}\n changeYearAriaLabel={changeYearAriaLabel}\n />\n <CalendarDays\n viewDate={viewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n onKeyDown={handleKeyDown}\n isDayFocused={isDayFocused}\n onDayChange={onDayChange}\n isDaySelected={isDaySelected}\n isDayActive={isDayActive}\n isDaySelectionEnd={isDaySelectionEnd}\n isDaySelectionStart={isDaySelectionStart}\n isDayHinted={isDayHinted}\n onDayEnter={onDayEnter}\n onDayLeave={onDayLeave}\n isHintedDaySelectionEnd={isHintedDaySelectionEnd}\n isHintedDaySelectionStart={isHintedDaySelectionStart}\n isDayDisabled={isDayDisabled}\n aria-label={changeDayAriaLabel}\n />\n </div>\n <div vkuiClass=\"CalendarRange__inner\">\n <CalendarHeader\n viewDate={secondViewDate}\n onChange={setViewDate}\n prevMonth={false}\n onNextMonth={setNextMonth}\n disablePickers={disablePickers}\n vkuiClass=\"CalendarRange__header\"\n prevMonthAriaLabel={prevMonthAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n changeMonthAriaLabel={changeMonthAriaLabel}\n changeYearAriaLabel={changeYearAriaLabel}\n />\n <CalendarDays\n viewDate={secondViewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n aria-label={changeDayAriaLabel}\n onKeyDown={handleKeyDown}\n isDayFocused={isDayFocused}\n onDayChange={onDayChange}\n isDaySelected={isDaySelected}\n isDayActive={isDayActive}\n isDaySelectionEnd={isDaySelectionEnd}\n isDaySelectionStart={isDaySelectionStart}\n isDayHinted={isDayHinted}\n onDayEnter={onDayEnter}\n onDayLeave={onDayLeave}\n isHintedDaySelectionEnd={isHintedDaySelectionEnd}\n isHintedDaySelectionStart={isHintedDaySelectionStart}\n isDayDisabled={isDayDisabled}\n tabIndex={0}\n onBlur={resetSelectedDay}\n />\n </div>\n </div>\n );\n};\n"],"file":"CalendarRange.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CalendarRange/CalendarRange.tsx"],"names":["React","addMonths","isSameMonth","isSameDay","isBefore","isAfter","startOfDay","endOfDay","isWithinInterval","CalendarHeader","CalendarDays","navigateDate","setTimeEqual","isLastDay","isFirstDay","useCalendar","getIsDaySelected","day","value","Boolean","CalendarRange","onChange","disablePast","disableFuture","shouldDisableDate","onClose","weekStartsOn","getRootRef","disablePickers","prevMonthAriaLabel","nextMonthAriaLabel","changeMonthAriaLabel","changeYearAriaLabel","changeDayAriaLabel","prevMonthIcon","nextMonthIcon","props","viewDate","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","resetSelectedDay","useState","hintedDate","setHintedDate","secondViewDate","handleKeyDown","useCallback","event","includes","key","preventDefault","newFocusedDay","getNewValue","date","start","end","onDayChange","undefined","isDaySelected","isDayActive","isDaySelectionEnd","dayOfWeek","isHintedDaySelectionEnd","isDaySelectionStart","isHintedDaySelectionStart","onDayEnter","onDayLeave","isDayHinted"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n addMonths,\n isSameMonth,\n isSameDay,\n isBefore,\n isAfter,\n startOfDay,\n endOfDay,\n isWithinInterval,\n} from \"../../lib/date\";\nimport {\n CalendarHeader,\n CalendarHeaderProps,\n} from \"../CalendarHeader/CalendarHeader\";\nimport { CalendarDays } from \"../CalendarDays/CalendarDays\";\nimport {\n navigateDate,\n setTimeEqual,\n isLastDay,\n isFirstDay,\n} from \"../../lib/calendar\";\nimport { useCalendar } from \"../../hooks/useCalendar\";\nimport { HasRootRef } from \"../../types\";\nimport \"./CalendarRange.css\";\n\nexport interface CalendarRangeProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\">,\n Pick<\n CalendarHeaderProps,\n | \"prevMonthAriaLabel\"\n | \"nextMonthAriaLabel\"\n | \"changeMonthAriaLabel\"\n | \"changeYearAriaLabel\"\n | \"prevMonthIcon\"\n | \"nextMonthIcon\"\n >,\n HasRootRef<HTMLDivElement> {\n value?: Array<Date | null>;\n disablePast?: boolean;\n disableFuture?: boolean;\n disablePickers?: boolean;\n changeDayAriaLabel?: string;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n onChange?(value?: Array<Date | null>): void;\n shouldDisableDate?(value: Date): boolean;\n onClose?(): void;\n}\n\nconst getIsDaySelected = (day: Date, value?: Array<Date | null>) => {\n if (!value?.[0] || !value[1]) {\n return false;\n }\n\n return Boolean(\n isWithinInterval(day, startOfDay(value[0]), endOfDay(value[1]))\n );\n};\n\nexport const CalendarRange: React.FC<CalendarRangeProps> = ({\n value,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onClose,\n weekStartsOn = 1,\n getRootRef,\n disablePickers,\n prevMonthAriaLabel,\n nextMonthAriaLabel,\n changeMonthAriaLabel,\n changeYearAriaLabel,\n changeDayAriaLabel = \"Изменить день\",\n prevMonthIcon,\n nextMonthIcon,\n ...props\n}) => {\n const {\n viewDate,\n setViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n resetSelectedDay,\n } = useCalendar({ value, disableFuture, disablePast, shouldDisableDate });\n const [hintedDate, setHintedDate] = React.useState<Array<Date | null>>();\n const secondViewDate = addMonths(viewDate, 1);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (\n [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"].includes(event.key)\n ) {\n event.preventDefault();\n }\n\n const newFocusedDay = navigateDate(focusedDay ?? value?.[1], event.key);\n\n if (\n newFocusedDay &&\n !isSameMonth(newFocusedDay, viewDate) &&\n !isSameMonth(newFocusedDay, addMonths(viewDate, 1))\n ) {\n setViewDate(newFocusedDay);\n }\n setFocusedDay(newFocusedDay);\n },\n [focusedDay, setFocusedDay, setViewDate, value, viewDate]\n );\n\n const getNewValue = React.useCallback(\n (date: Date) => {\n if (!value) {\n return [date, null];\n }\n\n const start = value[0];\n const end = value[1];\n if ((start && isSameDay(date, start)) || (end && isSameDay(date, end))) {\n return [setTimeEqual(date, start), setTimeEqual(date, end)];\n } else if (start && isBefore(date, start)) {\n return [setTimeEqual(date, start), end];\n } else if (start && isAfter(date, start)) {\n return [start, setTimeEqual(date, end)];\n }\n\n return value;\n },\n [value]\n );\n\n const onDayChange = React.useCallback(\n (date: Date) => {\n onChange?.(getNewValue(date));\n setHintedDate(undefined);\n },\n [onChange, getNewValue]\n );\n\n const isDaySelected = React.useCallback(\n (day: Date) => getIsDaySelected(day, value),\n [value]\n );\n\n const isDayActive = React.useCallback(\n (day: Date) =>\n Boolean(\n (value?.[0] && isSameDay(day, value[0])) ||\n (value?.[1] && isSameDay(day, value[1]))\n ),\n [value]\n );\n\n const isDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(\n isLastDay(day, dayOfWeek) || (value?.[1] && isSameDay(day, value[1]))\n ),\n [value]\n );\n\n const isHintedDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(\n isLastDay(day, dayOfWeek) ||\n (hintedDate?.[1] && isSameDay(day, hintedDate[1]))\n ),\n [hintedDate]\n );\n\n const isDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(\n isFirstDay(day, dayOfWeek) || (value?.[0] && isSameDay(day, value[0]))\n ),\n [value]\n );\n\n const isHintedDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(\n isFirstDay(day, dayOfWeek) ||\n (hintedDate?.[0] && isSameDay(day, hintedDate[0]))\n ),\n [hintedDate]\n );\n\n const onDayEnter = React.useCallback(\n (date: Date) => setHintedDate(getNewValue(date)),\n [setHintedDate, getNewValue]\n );\n\n const onDayLeave = React.useCallback(\n () => setHintedDate(undefined),\n [setHintedDate]\n );\n\n const isDayHinted = React.useCallback(\n (day: Date) => getIsDaySelected(day, hintedDate),\n [hintedDate]\n );\n\n return (\n <div {...props} ref={getRootRef} vkuiClass=\"CalendarRange\">\n <div vkuiClass=\"CalendarRange__inner\">\n <CalendarHeader\n viewDate={viewDate}\n onChange={setViewDate}\n nextMonth={false}\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers}\n vkuiClass=\"CalendarRange__header\"\n prevMonthAriaLabel={prevMonthAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n changeMonthAriaLabel={changeMonthAriaLabel}\n changeYearAriaLabel={changeYearAriaLabel}\n prevMonthIcon={prevMonthIcon}\n />\n <CalendarDays\n viewDate={viewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n onKeyDown={handleKeyDown}\n isDayFocused={isDayFocused}\n onDayChange={onDayChange}\n isDaySelected={isDaySelected}\n isDayActive={isDayActive}\n isDaySelectionEnd={isDaySelectionEnd}\n isDaySelectionStart={isDaySelectionStart}\n isDayHinted={isDayHinted}\n onDayEnter={onDayEnter}\n onDayLeave={onDayLeave}\n isHintedDaySelectionEnd={isHintedDaySelectionEnd}\n isHintedDaySelectionStart={isHintedDaySelectionStart}\n isDayDisabled={isDayDisabled}\n aria-label={changeDayAriaLabel}\n />\n </div>\n <div vkuiClass=\"CalendarRange__inner\">\n <CalendarHeader\n viewDate={secondViewDate}\n onChange={setViewDate}\n prevMonth={false}\n onNextMonth={setNextMonth}\n disablePickers={disablePickers}\n vkuiClass=\"CalendarRange__header\"\n prevMonthAriaLabel={prevMonthAriaLabel}\n nextMonthAriaLabel={nextMonthAriaLabel}\n changeMonthAriaLabel={changeMonthAriaLabel}\n changeYearAriaLabel={changeYearAriaLabel}\n nextMonthIcon={nextMonthIcon}\n />\n <CalendarDays\n viewDate={secondViewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n aria-label={changeDayAriaLabel}\n onKeyDown={handleKeyDown}\n isDayFocused={isDayFocused}\n onDayChange={onDayChange}\n isDaySelected={isDaySelected}\n isDayActive={isDayActive}\n isDaySelectionEnd={isDaySelectionEnd}\n isDaySelectionStart={isDaySelectionStart}\n isDayHinted={isDayHinted}\n onDayEnter={onDayEnter}\n onDayLeave={onDayLeave}\n isHintedDaySelectionEnd={isHintedDaySelectionEnd}\n isHintedDaySelectionStart={isHintedDaySelectionStart}\n isDayDisabled={isDayDisabled}\n tabIndex={0}\n onBlur={resetSelectedDay}\n />\n </div>\n </div>\n );\n};\n"],"file":"CalendarRange.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vkuiCalendarTime{display:flex;align-items:center}.vkuiCalendarTime__picker{width:77px}.vkuiCalendarTime__divider{margin-left:6px;margin-right:6px;color:#000;color:var(--vkui--color_text_primary)}.vkuiCalendarTime__button{margin-left:auto}
|
|
1
|
+
.vkuiCalendarTime{display:flex;align-items:center}.vkuiCalendarTime__picker{width:77px}.vkuiCalendarTime__divider{margin-left:6px;margin-right:6px;color:#000;color:var(--vkui--color_text_primary,#000000)}.vkuiCalendarTime__button{margin-left:auto}
|