@vkontakte/vkui 4.26.0 → 4.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +210 -85
- package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +1 -2
- package/.cache/ts/src/components/Alert/Alert.d.ts +1 -2
- package/.cache/ts/src/components/AppearanceProvider/AppearanceProvider.d.ts +1 -0
- package/.cache/ts/src/components/Card/Card.d.ts +1 -2
- package/.cache/ts/src/components/CardScroll/CardScroll.d.ts +4 -7
- package/.cache/ts/src/components/Chip/Chip.d.ts +2 -2
- package/.cache/ts/src/components/ConfigProvider/ConfigProvider.d.ts +1 -1
- package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +5 -5
- package/.cache/ts/src/components/Gradient/Gradient.d.ts +1 -2
- package/.cache/ts/src/components/SegmentedControl/SegmentedControl.d.ts +17 -0
- package/.cache/ts/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +4 -0
- package/.cache/ts/src/components/SliderSwitch/SliderSwitch.d.ts +6 -2
- package/.cache/ts/src/components/SliderSwitch/SliderSwitchButton.d.ts +4 -2
- package/.cache/ts/src/components/Switch/Switch.d.ts +3 -2
- package/.cache/ts/src/components/Typography/Title/Title.d.ts +4 -1
- package/.cache/ts/src/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +12 -0
- package/.cache/ts/src/hooks/usePlatform.d.ts +1 -1
- package/.cache/ts/src/index.d.ts +7 -5
- package/.cache/ts/src/lib/utils.d.ts +1 -0
- package/.cache/ts/src/tokenized/index.d.ts +6 -0
- package/VKUI_TOKENS_MIGRATION_GUIDE.md +2 -1
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.d.ts +1 -2
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +16 -10
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cjs/components/Alert/Alert.d.ts +1 -2
- package/dist/cjs/components/Alert/Alert.js +12 -12
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/AppearanceProvider/AppearanceProvider.d.ts +1 -0
- package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js +29 -2
- package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/cjs/components/Banner/Banner.js +1 -1
- package/dist/cjs/components/Banner/Banner.js.map +1 -1
- package/dist/cjs/components/Button/Button.js +9 -1
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/Card/Card.d.ts +1 -2
- package/dist/cjs/components/Card/Card.js +4 -8
- package/dist/cjs/components/Card/Card.js.map +1 -1
- package/dist/cjs/components/CardScroll/CardScroll.d.ts +4 -7
- package/dist/cjs/components/CardScroll/CardScroll.js +11 -15
- package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cjs/components/Chip/Chip.d.ts +2 -2
- package/dist/cjs/components/Chip/Chip.js +3 -5
- package/dist/cjs/components/Chip/Chip.js.map +1 -1
- package/dist/cjs/components/ChipsInput/ChipsInput.js +2 -2
- package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProvider.d.ts +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProvider.js +1 -26
- package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProviderContext.d.ts +5 -5
- package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/cjs/components/ContentCard/ContentCard.js +4 -4
- package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cjs/components/Gradient/Gradient.d.ts +1 -2
- package/dist/cjs/components/Gradient/Gradient.js +6 -10
- package/dist/cjs/components/Gradient/Gradient.js.map +1 -1
- package/dist/cjs/components/Header/Header.js +1 -1
- package/dist/cjs/components/Header/Header.js.map +1 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js +1 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cjs/components/Placeholder/Placeholder.js +1 -1
- package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/cjs/components/Search/Search.js +47 -23
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControl.d.ts +17 -0
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js +116 -0
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -0
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +4 -0
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +61 -0
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -0
- package/dist/cjs/components/SimpleCell/SimpleCell.js +21 -8
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/SliderSwitch/SliderSwitch.d.ts +6 -2
- package/dist/cjs/components/SliderSwitch/SliderSwitch.js +18 -6
- package/dist/cjs/components/SliderSwitch/SliderSwitch.js.map +1 -1
- package/dist/cjs/components/SliderSwitch/SliderSwitchButton.d.ts +4 -2
- package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js +6 -5
- package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
- package/dist/cjs/components/Switch/Switch.d.ts +3 -2
- package/dist/cjs/components/Switch/Switch.js +3 -6
- package/dist/cjs/components/Switch/Switch.js.map +1 -1
- package/dist/cjs/components/Typography/Title/Title.d.ts +4 -1
- package/dist/cjs/components/Typography/Title/Title.js +9 -19
- package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +12 -0
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js +37 -0
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -0
- package/dist/cjs/hooks/usePlatform.d.ts +1 -1
- package/dist/cjs/hooks/usePlatform.js.map +1 -1
- package/dist/cjs/index.d.ts +7 -5
- package/dist/cjs/index.js +18 -10
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/utils.d.ts +1 -0
- package/dist/cjs/lib/utils.js +7 -0
- package/dist/cjs/lib/utils.js.map +1 -1
- package/dist/cjs/tokenized/index.d.ts +6 -0
- package/dist/cjs/tokenized/index.js +24 -0
- package/dist/cjs/tokenized/index.js.map +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +1 -2
- package/dist/components/ActionSheetItem/ActionSheetItem.js +14 -10
- package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/components/Alert/Alert.d.ts +1 -2
- package/dist/components/Alert/Alert.js +11 -12
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppearanceProvider/AppearanceProvider.d.ts +1 -0
- package/dist/components/AppearanceProvider/AppearanceProvider.js +24 -1
- package/dist/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/components/Banner/Banner.js +1 -1
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/Button/Button.js +9 -2
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Card/Card.d.ts +1 -2
- package/dist/components/Card/Card.js +3 -9
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/CardScroll/CardScroll.d.ts +4 -7
- package/dist/components/CardScroll/CardScroll.js +9 -14
- package/dist/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/components/Chip/Chip.d.ts +2 -2
- package/dist/components/Chip/Chip.js +2 -6
- package/dist/components/Chip/Chip.js.map +1 -1
- package/dist/components/ChipsInput/ChipsInput.js +1 -1
- package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.d.ts +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js +1 -25
- package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +5 -5
- package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/components/ContentCard/ContentCard.js +3 -3
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/Gradient/Gradient.d.ts +1 -2
- package/dist/components/Gradient/Gradient.js +5 -11
- package/dist/components/Gradient/Gradient.js.map +1 -1
- package/dist/components/Header/Header.js +1 -1
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +2 -2
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/Placeholder/Placeholder.js +1 -1
- package/dist/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/components/Search/Search.js +45 -22
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.d.ts +17 -0
- package/dist/components/SegmentedControl/SegmentedControl.js +94 -0
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -0
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +4 -0
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +40 -0
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -0
- package/dist/components/SimpleCell/SimpleCell.js +21 -9
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/SliderSwitch/SliderSwitch.d.ts +6 -2
- package/dist/components/SliderSwitch/SliderSwitch.js +14 -3
- package/dist/components/SliderSwitch/SliderSwitch.js.map +1 -1
- package/dist/components/SliderSwitch/SliderSwitchButton.d.ts +4 -2
- package/dist/components/SliderSwitch/SliderSwitchButton.js +5 -5
- package/dist/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
- package/dist/components/Switch/Switch.d.ts +3 -2
- package/dist/components/Switch/Switch.js +3 -6
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Typography/Title/Title.d.ts +4 -1
- package/dist/components/Typography/Title/Title.js +7 -16
- package/dist/components/Typography/Title/Title.js.map +1 -1
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +12 -0
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js +23 -0
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -0
- package/dist/components.css +5 -5
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +14 -10
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.js +11 -12
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js +24 -1
- package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.js +1 -1
- package/dist/cssm/components/Banner/Banner.js.map +1 -1
- package/dist/cssm/components/Button/Button.js +9 -2
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/Card/Card.css +2 -2
- package/dist/cssm/components/Card/Card.js +3 -9
- package/dist/cssm/components/Card/Card.js.map +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.css +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.js +9 -14
- package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cssm/components/Chip/Chip.js +2 -6
- package/dist/cssm/components/Chip/Chip.js.map +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.js +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js +1 -25
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.js +3 -3
- package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
- package/dist/cssm/components/Gradient/Gradient.js +5 -11
- package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
- package/dist/cssm/components/Header/Header.js +1 -1
- package/dist/cssm/components/Header/Header.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +2 -2
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/Placeholder/Placeholder.js +1 -1
- package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/cssm/components/Search/Search.js +45 -22
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.css +1 -0
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js +95 -0
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -0
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -0
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +41 -0
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -0
- package/dist/cssm/components/SimpleCell/SimpleCell.js +21 -9
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SliderSwitch/SliderSwitch.js +14 -3
- package/dist/cssm/components/SliderSwitch/SliderSwitch.js.map +1 -1
- package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js +5 -5
- package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
- package/dist/cssm/components/Switch/Switch.css +1 -1
- package/dist/cssm/components/Switch/Switch.js +3 -6
- package/dist/cssm/components/Switch/Switch.js.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.css +1 -1
- package/dist/cssm/components/Typography/Title/Title.js +7 -16
- package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.css +1 -0
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +24 -0
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -0
- package/dist/cssm/hooks/usePlatform.js.map +1 -1
- package/dist/cssm/index.js +6 -5
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/utils.js +3 -0
- package/dist/cssm/lib/utils.js.map +1 -1
- package/dist/cssm/styles/components.css +5 -5
- package/dist/cssm/styles/themes.css +1 -1
- package/dist/cssm/tokenized/index.js +3 -0
- package/dist/cssm/tokenized/index.js.map +1 -1
- package/dist/hooks/usePlatform.d.ts +1 -1
- package/dist/hooks/usePlatform.js.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.js +3 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/tokenized/index.d.ts +6 -0
- package/dist/tokenized/index.js +3 -0
- package/dist/tokenized/index.js.map +1 -1
- package/dist/vkui.css +6 -6
- package/dist/vkui.css.map +1 -1
- package/package.json +2 -2
- package/src/components/ActionSheetItem/ActionSheetItem.tsx +26 -24
- package/src/components/Alert/Alert.tsx +5 -7
- package/src/components/AppearanceProvider/AppearanceProvider.tsx +25 -1
- package/src/components/Banner/Banner.tsx +1 -1
- package/src/components/Button/Button.tsx +6 -3
- package/src/components/Card/Card.css +41 -0
- package/src/components/Card/Card.tsx +2 -9
- package/src/components/CardScroll/CardScroll.css +2 -39
- package/src/components/CardScroll/CardScroll.tsx +7 -17
- package/src/components/CardScroll/Readme.md +3 -2
- package/src/components/Chip/Chip.tsx +1 -4
- package/src/components/ChipsInput/ChipsInput.tsx +1 -1
- package/src/components/ConfigProvider/ConfigProvider.tsx +6 -25
- package/src/components/ConfigProvider/ConfigProviderContext.tsx +5 -5
- package/src/components/ContentCard/ContentCard.tsx +2 -2
- package/src/components/FocusVisible/FocusVisible.css +4 -8
- package/src/components/FormItem/Readme.md +14 -2
- package/src/components/Gradient/Gradient.tsx +4 -12
- package/src/components/Gradient/Readme.md +1 -1
- package/src/components/Header/Header.tsx +1 -1
- package/src/components/ModalCardBase/ModalCardBase.tsx +2 -2
- package/src/components/ModalRoot/Readme.md +1 -1
- package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +1 -5
- package/src/components/Placeholder/Placeholder.tsx +1 -1
- package/src/components/Search/Search.tsx +38 -14
- package/src/components/SegmentedControl/Readme.md +94 -0
- package/src/components/SegmentedControl/SegmentedControl.css +42 -0
- package/src/components/SegmentedControl/SegmentedControl.tsx +105 -0
- package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +30 -0
- package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +42 -0
- package/src/components/SimpleCell/SimpleCell.tsx +10 -6
- package/src/components/SliderSwitch/Readme.md +4 -0
- package/src/components/SliderSwitch/SliderSwitch.tsx +17 -3
- package/src/components/SliderSwitch/SliderSwitchButton.tsx +4 -4
- package/src/components/Switch/Switch.css +0 -12
- package/src/components/Switch/Switch.tsx +8 -10
- package/src/components/Typography/Title/Readme.md +28 -41
- package/src/components/Typography/Title/Title.css +22 -13
- package/src/components/Typography/Title/Title.tsx +27 -22
- package/src/components/VisuallyHiddenInput/VisuallyHiddenInput.css +9 -0
- package/src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx +25 -0
- package/src/hooks/usePlatform.ts +1 -1
- package/src/index.ts +11 -5
- package/src/lib/utils.ts +6 -0
- package/src/styles/components.css +3 -0
- package/src/tokenized/index.ts +13 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/PanelHeaderButton/PanelHeaderButton.tsx"],"names":["ButtonTypography","primary","children","platform","IOS","VKCOM","warn","PanelHeaderButton","label","restProps","isPrimitive","isPrimitiveLabel","hoverMode","activeMode","ANDROID","process","env","NODE_ENV","hasAccessibleName","Boolean","href"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAYA,IAAMA,gBAAiD,GAAG,SAApDA,gBAAoD,OAG7B;AAAA,MAF3BC,OAE2B,QAF3BA,OAE2B;AAAA,MAD3BC,QAC2B,QAD3BA,QAC2B;AAC3B,MAAMC,QAAQ,GAAG,+BAAjB;;AAEA,MAAIA,QAAQ,KAAKC,aAAjB,EAAsB;AACpB,WACE,qCAAC,cAAD;
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/PanelHeaderButton/PanelHeaderButton.tsx"],"names":["ButtonTypography","primary","children","platform","IOS","VKCOM","warn","PanelHeaderButton","label","restProps","isPrimitive","isPrimitiveLabel","hoverMode","activeMode","ANDROID","process","env","NODE_ENV","hasAccessibleName","Boolean","href"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAYA,IAAMA,gBAAiD,GAAG,SAApDA,gBAAoD,OAG7B;AAAA,MAF3BC,OAE2B,QAF3BA,OAE2B;AAAA,MAD3BC,QAC2B,QAD3BA,QAC2B;AAC3B,MAAMC,QAAQ,GAAG,+BAAjB;;AAEA,MAAIA,QAAQ,KAAKC,aAAjB,EAAsB;AACpB,WACE,qCAAC,cAAD;AAAO,MAAA,SAAS,EAAC,MAAjB;AAAwB,MAAA,KAAK,EAAC,GAA9B;AAAkC,MAAA,MAAM,EAAEH,OAAO,GAAG,GAAH,GAAS;AAA1D,OACGC,QADH,CADF;AAKD;;AAED,SACE,qCAAC,aAAD;AAAM,IAAA,MAAM,EAAEC,QAAQ,KAAKE,eAAb,GAAqB,SAArB,GAAiC;AAA/C,KAA0DH,QAA1D,CADF;AAGD,CAjBD;;AAmBA,IAAMI,IAAI,GAAG,wBAAS,mBAAT,CAAb;;AACO,IAAMC,iBAAmD,GAAG,SAAtDA,iBAAsD,QAKrC;AAAA,MAJ5BL,QAI4B,SAJ5BA,QAI4B;AAAA,4BAH5BD,OAG4B;AAAA,MAH5BA,OAG4B,8BAHlB,KAGkB;AAAA,MAF5BO,KAE4B,SAF5BA,KAE4B;AAAA,MADzBC,SACyB;AAC5B,MAAMC,WAAW,GAAG,iCAAqBR,QAArB,CAApB;AACA,MAAMS,gBAAgB,GAAG,iCAAqBH,KAArB,CAAzB;AACA,MAAML,QAAQ,GAAG,+BAAjB;AAEA,MAAIS,SAAJ;AACA,MAAIC,UAAJ;;AAEA,UAAQV,QAAR;AACE,SAAKW,iBAAL;AACEF,MAAAA,SAAS,GAAG,YAAZ;AACAC,MAAAA,UAAU,GAAG,YAAb;AACA;;AACF,SAAKT,aAAL;AACEQ,MAAAA,SAAS,GAAG,YAAZ;AACAC,MAAAA,UAAU,GAAG,SAAb;AACA;;AACF,SAAKR,eAAL;AACEO,MAAAA,SAAS,GAAG,0BAAZ;AACAC,MAAAA,UAAU,GAAG,2BAAb;AAXJ;;AAcA,MAAIE,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;AAC1C,QAAMC,iBAAiB,GAAGC,OAAO,CAC/B,iCAAqBjB,QAArB,KACE,iCAAqBM,KAArB,CADF,IAEEC,SAAS,CAAC,YAAD,CAFX,IAGEA,SAAS,CAAC,iBAAD,CAJoB,CAAjC;;AAOA,QAAI,CAACS,iBAAL,EAAwB;AACtBZ,MAAAA,IAAI,CACF,oMADE,CAAJ;AAGD;AACF;;AAED,SACE,qCAAC,iBAAD,6BACMG,SADN;AAEE,IAAA,SAAS,EAAEG,SAFb;AAGE,IAAA,SAAS,EAAEH,SAAS,CAACW,IAAV,GAAiB,GAAjB,GAAuB,QAHpC;AAIE,IAAA,iBAAiB,EAAE,GAJrB;AAKE,IAAA,UAAU,EAAEP,UALd;AAME,IAAA,SAAS,EAAE,4BAAW,gCAAa,mBAAb,EAAkCV,QAAlC,CAAX,EAAwD;AACjE,oCAA8BF,OADmC;AAEjE,sCAAgCS,WAFiC;AAGjE,yCAAmC,CAACA,WAAD,IAAgB,CAACC;AAHa,KAAxD;AANb,MAYGD,WAAW,GACV,qCAAC,gBAAD;AAAkB,IAAA,OAAO,EAAET;AAA3B,KAAqCC,QAArC,CADU,GAGVA,QAfJ,EAiBGS,gBAAgB,GACf,qCAAC,gBAAD;AAAkB,IAAA,OAAO,EAAEV;AAA3B,KAAqCO,KAArC,CADe,GAGfA,KApBJ,CADF;AAyBD,CAnEM","sourcesContent":["import * as React from \"react\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getTitleFromChildren, isPrimitiveReactNode } from \"../../lib/utils\";\nimport { IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport Text from \"../Typography/Text/Text\";\nimport Title from \"../Typography/Title/Title\";\nimport \"./PanelHeaderButton.css\";\n\nexport interface PanelHeaderButtonProps extends Omit<TappableProps, \"label\"> {\n primary?: boolean;\n label?: React.ReactNode;\n}\n\ninterface ButtonTypographyProps extends React.AllHTMLAttributes<HTMLElement> {\n primary?: PanelHeaderButtonProps[\"primary\"];\n}\n\nconst ButtonTypography: React.FC<ButtonTypographyProps> = ({\n primary,\n children,\n}: ButtonTypographyProps) => {\n const platform = usePlatform();\n\n if (platform === IOS) {\n return (\n <Title Component=\"span\" level=\"3\" weight={primary ? \"1\" : \"3\"}>\n {children}\n </Title>\n );\n }\n\n return (\n <Text weight={platform === VKCOM ? \"regular\" : \"medium\"}>{children}</Text>\n );\n};\n\nconst warn = warnOnce(\"PanelHeaderButton\");\nexport const PanelHeaderButton: React.FC<PanelHeaderButtonProps> = ({\n children,\n primary = false,\n label,\n ...restProps\n}: PanelHeaderButtonProps) => {\n const isPrimitive = isPrimitiveReactNode(children);\n const isPrimitiveLabel = isPrimitiveReactNode(label);\n const platform = usePlatform();\n\n let hoverMode;\n let activeMode;\n\n switch (platform) {\n case ANDROID:\n hoverMode = \"background\";\n activeMode = \"background\";\n break;\n case IOS:\n hoverMode = \"background\";\n activeMode = \"opacity\";\n break;\n case VKCOM:\n hoverMode = \"PanelHeaderButton--hover\";\n activeMode = \"PanelHeaderButton--active\";\n }\n\n if (process.env.NODE_ENV === \"development\") {\n const hasAccessibleName = Boolean(\n getTitleFromChildren(children) ||\n getTitleFromChildren(label) ||\n restProps[\"aria-label\"] ||\n restProps[\"aria-labelledby\"]\n );\n\n if (!hasAccessibleName) {\n warn(\n \"a11y: У кнопки нет названия, которое может прочитать скринридер, и она недоступна для части пользователей. Замените содержимое на текст или добавьте описание действия с помощью пропа aria-label.\"\n );\n }\n }\n\n return (\n <Tappable\n {...restProps}\n hoverMode={hoverMode}\n Component={restProps.href ? \"a\" : \"button\"}\n activeEffectDelay={200}\n activeMode={activeMode}\n vkuiClass={classNames(getClassName(\"PanelHeaderButton\", platform), {\n \"PanelHeaderButton--primary\": primary,\n \"PanelHeaderButton--primitive\": isPrimitive,\n \"PanelHeaderButton--notPrimitive\": !isPrimitive && !isPrimitiveLabel,\n })}\n >\n {isPrimitive ? (\n <ButtonTypography primary={primary}>{children}</ButtonTypography>\n ) : (\n children\n )}\n {isPrimitiveLabel ? (\n <ButtonTypography primary={primary}>{label}</ButtonTypography>\n ) : (\n label\n )}\n </Tappable>\n );\n};\n"],"file":"PanelHeaderButton.js"}
|
|
@@ -42,7 +42,7 @@ var Placeholder = function Placeholder(props) {
|
|
|
42
42
|
vkuiClass: "Placeholder__icon"
|
|
43
43
|
}, icon), (0, _utils.hasReactNode)(header) && (0, _jsxRuntime.createScopedElement)(_Title.default, {
|
|
44
44
|
level: "2",
|
|
45
|
-
weight: "
|
|
45
|
+
weight: "2",
|
|
46
46
|
vkuiClass: "Placeholder__header"
|
|
47
47
|
}, header), (0, _utils.hasReactNode)(children) && (0, _jsxRuntime.createScopedElement)(_Headline.default, {
|
|
48
48
|
weight: "regular",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Placeholder/Placeholder.tsx"],"names":["Placeholder","props","icon","header","action","children","stretched","getRootRef","restProps"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;;;AAyBA,IAAMA,WAAuC,GAAG,SAA1CA,WAA0C,CAACC,KAAD,EAA6B;AAC3E,MACEC,IADF,GAQID,KARJ,CACEC,IADF;AAAA,MAEEC,MAFF,GAQIF,KARJ,CAEEE,MAFF;AAAA,MAGEC,MAHF,GAQIH,KARJ,CAGEG,MAHF;AAAA,MAIEC,QAJF,GAQIJ,KARJ,CAIEI,QAJF;AAAA,MAKEC,SALF,GAQIL,KARJ,CAKEK,SALF;AAAA,MAMEC,UANF,GAQIN,KARJ,CAMEM,UANF;AAAA,MAOKC,SAPL,0CAQIP,KARJ;AAUA,SACE,uEACMO,SADN;AAEE,IAAA,GAAG,EAAED,UAFP;AAGE,IAAA,SAAS,EAAE,4BAAW,aAAX,EAA0B;AACnC,gCAA0BD;AADS,KAA1B;AAHb,MAOE;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,yBAAaJ,IAAb,KAAsB;AAAK,IAAA,SAAS,EAAC;AAAf,KAAoCA,IAApC,CADzB,EAEG,yBAAaC,MAAb,KACC,qCAAC,cAAD;AAAO,IAAA,KAAK,EAAC,GAAb;AAAiB,IAAA,MAAM,EAAC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Placeholder/Placeholder.tsx"],"names":["Placeholder","props","icon","header","action","children","stretched","getRootRef","restProps"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;;;AAyBA,IAAMA,WAAuC,GAAG,SAA1CA,WAA0C,CAACC,KAAD,EAA6B;AAC3E,MACEC,IADF,GAQID,KARJ,CACEC,IADF;AAAA,MAEEC,MAFF,GAQIF,KARJ,CAEEE,MAFF;AAAA,MAGEC,MAHF,GAQIH,KARJ,CAGEG,MAHF;AAAA,MAIEC,QAJF,GAQIJ,KARJ,CAIEI,QAJF;AAAA,MAKEC,SALF,GAQIL,KARJ,CAKEK,SALF;AAAA,MAMEC,UANF,GAQIN,KARJ,CAMEM,UANF;AAAA,MAOKC,SAPL,0CAQIP,KARJ;AAUA,SACE,uEACMO,SADN;AAEE,IAAA,GAAG,EAAED,UAFP;AAGE,IAAA,SAAS,EAAE,4BAAW,aAAX,EAA0B;AACnC,gCAA0BD;AADS,KAA1B;AAHb,MAOE;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,yBAAaJ,IAAb,KAAsB;AAAK,IAAA,SAAS,EAAC;AAAf,KAAoCA,IAApC,CADzB,EAEG,yBAAaC,MAAb,KACC,qCAAC,cAAD;AAAO,IAAA,KAAK,EAAC,GAAb;AAAiB,IAAA,MAAM,EAAC,GAAxB;AAA4B,IAAA,SAAS,EAAC;AAAtC,KACGA,MADH,CAHJ,EAOG,yBAAaE,QAAb,KACC,qCAAC,iBAAD;AAAU,IAAA,MAAM,EAAC,SAAjB;AAA2B,IAAA,SAAS,EAAC;AAArC,KACGA,QADH,CARJ,EAYG,yBAAaD,MAAb,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAsCA,MAAtC,CAbJ,CAPF,CADF;AA0BD,CArCD,C,CAuCA;;;eACeJ,W","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport Title from \"../Typography/Title/Title\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport { HasRootRef } from \"../../types\";\nimport \"./Placeholder.css\";\n\nexport interface PlaceholderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n /**\n * Иконка\n */\n icon?: React.ReactNode;\n /**\n * Заголовок плейсхолдера\n */\n header?: React.ReactNode;\n /**\n * Кнопка действия\n */\n action?: React.ReactNode;\n /**\n * Растягивает плейсхолдер на весь экран, но в таком случае на экране должен быть только плейсхолдер\n */\n stretched?: boolean;\n}\n\nconst Placeholder: React.FC<PlaceholderProps> = (props: PlaceholderProps) => {\n const {\n icon,\n header,\n action,\n children,\n stretched,\n getRootRef,\n ...restProps\n } = props;\n\n return (\n <div\n {...restProps}\n ref={getRootRef}\n vkuiClass={classNames(\"Placeholder\", {\n \"Placeholder--stretched\": stretched,\n })}\n >\n <div vkuiClass=\"Placeholder__in\">\n {hasReactNode(icon) && <div vkuiClass=\"Placeholder__icon\">{icon}</div>}\n {hasReactNode(header) && (\n <Title level=\"2\" weight=\"2\" vkuiClass=\"Placeholder__header\">\n {header}\n </Title>\n )}\n {hasReactNode(children) && (\n <Headline weight=\"regular\" vkuiClass=\"Placeholder__text\">\n {children}\n </Headline>\n )}\n {hasReactNode(action) && (\n <div vkuiClass=\"Placeholder__action\">{action}</div>\n )}\n </div>\n </div>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Placeholder;\n"],"file":"Placeholder.js"}
|
|
@@ -11,10 +11,10 @@ exports.default = void 0;
|
|
|
11
11
|
|
|
12
12
|
var _jsxRuntime = require("../../lib/jsxRuntime");
|
|
13
13
|
|
|
14
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
|
-
|
|
16
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
15
|
|
|
16
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
17
|
+
|
|
18
18
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
19
19
|
|
|
20
20
|
var React = _interopRequireWildcard(require("react"));
|
|
@@ -37,27 +37,55 @@ var _Text = _interopRequireDefault(require("../Typography/Text/Text"));
|
|
|
37
37
|
|
|
38
38
|
var _Title = _interopRequireDefault(require("../Typography/Title/Title"));
|
|
39
39
|
|
|
40
|
+
var _Headline = _interopRequireDefault(require("../Typography/Headline/Headline"));
|
|
41
|
+
|
|
40
42
|
var _Separator = _interopRequireDefault(require("../Separator/Separator"));
|
|
41
43
|
|
|
42
44
|
var _useExternRef = require("../../hooks/useExternRef");
|
|
43
45
|
|
|
44
46
|
var _useEnsuredControl3 = require("../../hooks/useEnsuredControl");
|
|
45
47
|
|
|
46
|
-
var _excluded = ["
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
48
|
+
var _excluded = ["platform", "children"],
|
|
49
|
+
_excluded2 = ["before", "className", "defaultValue", "placeholder", "after", "getRef", "platform", "icon", "onIconClick", "style"];
|
|
50
|
+
|
|
51
|
+
var SearchPlaceholderTypography = function SearchPlaceholderTypography(_ref) {
|
|
52
|
+
var platform = _ref.platform,
|
|
53
|
+
children = _ref.children,
|
|
54
|
+
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
55
|
+
|
|
56
|
+
switch (platform) {
|
|
57
|
+
case _platform.IOS:
|
|
58
|
+
return (0, _jsxRuntime.createScopedElement)(_Title.default, (0, _extends2.default)({}, restProps, {
|
|
59
|
+
level: "3",
|
|
60
|
+
weight: "3"
|
|
61
|
+
}), children);
|
|
62
|
+
|
|
63
|
+
case _platform.VKCOM:
|
|
64
|
+
return (0, _jsxRuntime.createScopedElement)(_Text.default, (0, _extends2.default)({}, restProps, {
|
|
65
|
+
weight: "regular"
|
|
66
|
+
}), children);
|
|
67
|
+
|
|
68
|
+
case _platform.ANDROID:
|
|
69
|
+
default:
|
|
70
|
+
return (0, _jsxRuntime.createScopedElement)(_Headline.default, (0, _extends2.default)({}, restProps, {
|
|
71
|
+
weight: "regular"
|
|
72
|
+
}), children);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
var Search = function Search(_ref2) {
|
|
77
|
+
var before = _ref2.before,
|
|
78
|
+
className = _ref2.className,
|
|
79
|
+
defaultValue = _ref2.defaultValue,
|
|
80
|
+
placeholder = _ref2.placeholder,
|
|
81
|
+
after = _ref2.after,
|
|
82
|
+
getRef = _ref2.getRef,
|
|
83
|
+
platform = _ref2.platform,
|
|
84
|
+
icon = _ref2.icon,
|
|
85
|
+
_ref2$onIconClick = _ref2.onIconClick,
|
|
86
|
+
onIconClick = _ref2$onIconClick === void 0 ? _utils.noop : _ref2$onIconClick,
|
|
87
|
+
style = _ref2.style,
|
|
88
|
+
inputProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
|
|
61
89
|
var inputRef = (0, _useExternRef.useExternRef)(getRef);
|
|
62
90
|
|
|
63
91
|
var _React$useState = React.useState(false),
|
|
@@ -133,13 +161,9 @@ var Search = function Search(_ref) {
|
|
|
133
161
|
vkuiClass: "Search__placeholder"
|
|
134
162
|
}, (0, _jsxRuntime.createScopedElement)("div", {
|
|
135
163
|
vkuiClass: "Search__placeholder-in"
|
|
136
|
-
}, before,
|
|
137
|
-
vkuiClass: "Search__placeholder-text",
|
|
138
|
-
weight: "regular"
|
|
139
|
-
}, placeholder) : (0, _jsxRuntime.createScopedElement)(_Title.default, {
|
|
164
|
+
}, before, (0, _jsxRuntime.createScopedElement)(SearchPlaceholderTypography, {
|
|
140
165
|
vkuiClass: "Search__placeholder-text",
|
|
141
|
-
|
|
142
|
-
weight: "regular"
|
|
166
|
+
platform: platform
|
|
143
167
|
}, placeholder)), isFocused && platform === _platform.IOS && after && (0, _jsxRuntime.createScopedElement)("div", {
|
|
144
168
|
vkuiClass: "Search__after-width"
|
|
145
169
|
}, after))), (0, _jsxRuntime.createScopedElement)("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Search/Search.tsx"],"names":["Search","before","className","defaultValue","placeholder","after","getRef","platform","icon","onIconClick","noop","style","inputProps","inputRef","React","useState","isFocused","setFocused","value","onChange","onFocus","e","onBlur","onCancel","useCallback","nativeInputValueSetter","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","originalEvent","onIconCancelClickStart","preventDefault","focus","IOS","VKCOM","defaultProps","autoComplete"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport {\n Icon16SearchOutline,\n Icon16Clear,\n Icon24Cancel,\n} from \"@vkontakte/icons\";\nimport { IOS, VKCOM } from \"../../lib/platform\";\nimport { HasPlatform, HasRef } from \"../../types\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { VKUITouchEvent } from \"../../lib/touch\";\nimport { noop } from \"../../lib/utils\";\nimport Text from \"../Typography/Text/Text\";\nimport Title from \"../Typography/Title/Title\";\nimport Separator from \"../Separator/Separator\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport \"./Search.css\";\n\nexport type InputRef = (element: HTMLInputElement) => void;\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasPlatform {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode;\n onIconClick?: (e: VKUITouchEvent) => void;\n defaultValue?: string;\n}\n\nconst Search: React.FC<SearchProps> = ({\n before,\n className,\n defaultValue,\n placeholder,\n after,\n getRef,\n platform,\n icon,\n onIconClick = noop,\n style,\n ...inputProps\n}) => {\n const inputRef = useExternRef(getRef);\n const [isFocused, setFocused] = React.useState(false);\n const [value, onChange] = useEnsuredControl(inputProps, { defaultValue });\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(false);\n inputProps.onBlur && inputProps.onBlur(e);\n };\n\n const onCancel = React.useCallback(() => {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n \"value\"\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, \"\");\n\n const ev2 = new Event(\"input\", { bubbles: true });\n inputRef.current?.dispatchEvent(ev2);\n }, [inputRef]);\n\n const onIconClickStart = React.useCallback(\n (e: TouchEvent) => onIconClick(e.originalEvent),\n [onIconClick]\n );\n\n const onIconCancelClickStart = React.useCallback(\n (e: TouchEvent) => {\n e.originalEvent.preventDefault();\n inputRef.current?.focus();\n onCancel();\n },\n [inputRef, onCancel]\n );\n\n return (\n <div\n vkuiClass={classNames(getClassName(\"Search\", platform), {\n \"Search--focused\": isFocused,\n \"Search--has-value\": !!value,\n \"Search--has-after\": !!after,\n \"Search--has-icon\": !!icon,\n })}\n className={className}\n style={style}\n >\n <div vkuiClass=\"Search__in\">\n <div vkuiClass=\"Search__width\" />\n <label vkuiClass=\"Search__control\">\n <input\n type=\"search\"\n {...inputProps}\n ref={inputRef}\n vkuiClass=\"Search__input\"\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={onChange}\n value={value}\n />\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n <div vkuiClass=\"Search__placeholder\">\n <div vkuiClass=\"Search__placeholder-in\">\n {before}\n {platform === VKCOM ? (\n <Text vkuiClass=\"Search__placeholder-text\" weight=\"regular\">\n {placeholder}\n </Text>\n ) : (\n <Title\n vkuiClass=\"Search__placeholder-text\"\n level=\"3\"\n weight=\"regular\"\n >\n {placeholder}\n </Title>\n )}\n </div>\n {isFocused && platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n </div>\n </label>\n <div vkuiClass=\"Search__after\" onClick={onCancel}>\n <div vkuiClass=\"Search__icons\">\n {icon && (\n <Touch onStart={onIconClickStart} vkuiClass=\"Search__icon\">\n {icon}\n </Touch>\n )}\n {!!value && (\n <Touch onStart={onIconCancelClickStart} vkuiClass=\"Search__icon\">\n {platform === IOS ? <Icon16Clear /> : <Icon24Cancel />}\n </Touch>\n )}\n </div>\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-in\">{after}</div>\n )}\n </div>\n </div>\n {platform === VKCOM && <Separator vkuiClass=\"Search__separator\" wide />}\n </div>\n );\n};\n\nSearch.defaultProps = {\n autoComplete: \"off\",\n defaultValue: \"\",\n placeholder: \"Поиск\",\n after: \"Отмена\",\n before: <Icon16SearchOutline />,\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withPlatform(Search);\n"],"file":"Search.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Search/Search.tsx"],"names":["SearchPlaceholderTypography","platform","children","restProps","IOS","VKCOM","ANDROID","Search","before","className","defaultValue","placeholder","after","getRef","icon","onIconClick","noop","style","inputProps","inputRef","React","useState","isFocused","setFocused","value","onChange","onFocus","e","onBlur","onCancel","useCallback","nativeInputValueSetter","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","originalEvent","onIconCancelClickStart","preventDefault","focus","defaultProps","autoComplete"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport {\n Icon16SearchOutline,\n Icon16Clear,\n Icon24Cancel,\n} from \"@vkontakte/icons\";\nimport { IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport { HasPlatform, HasRef } from \"../../types\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { VKUITouchEvent } from \"../../lib/touch\";\nimport { noop } from \"../../lib/utils\";\nimport Text from \"../Typography/Text/Text\";\nimport Title from \"../Typography/Title/Title\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport Separator from \"../Separator/Separator\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport \"./Search.css\";\n\nexport type InputRef = (element: HTMLInputElement) => void;\n\ninterface SearchPlaceholderTypographyProps\n extends HasPlatform,\n React.HTMLAttributes<HTMLElement> {}\n\nconst SearchPlaceholderTypography: React.FC<\n SearchPlaceholderTypographyProps\n> = ({ platform, children, ...restProps }) => {\n switch (platform) {\n case IOS:\n return (\n <Title {...restProps} level=\"3\" weight=\"3\">\n {children}\n </Title>\n );\n case VKCOM:\n return (\n <Text {...restProps} weight=\"regular\">\n {children}\n </Text>\n );\n case ANDROID:\n default:\n return (\n <Headline {...restProps} weight=\"regular\">\n {children}\n </Headline>\n );\n }\n};\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasPlatform {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode;\n onIconClick?: (e: VKUITouchEvent) => void;\n defaultValue?: string;\n}\n\nconst Search: React.FC<SearchProps> = ({\n before,\n className,\n defaultValue,\n placeholder,\n after,\n getRef,\n platform,\n icon,\n onIconClick = noop,\n style,\n ...inputProps\n}) => {\n const inputRef = useExternRef(getRef);\n const [isFocused, setFocused] = React.useState(false);\n const [value, onChange] = useEnsuredControl(inputProps, { defaultValue });\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(false);\n inputProps.onBlur && inputProps.onBlur(e);\n };\n\n const onCancel = React.useCallback(() => {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n \"value\"\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, \"\");\n\n const ev2 = new Event(\"input\", { bubbles: true });\n inputRef.current?.dispatchEvent(ev2);\n }, [inputRef]);\n\n const onIconClickStart = React.useCallback(\n (e: TouchEvent) => onIconClick(e.originalEvent),\n [onIconClick]\n );\n\n const onIconCancelClickStart = React.useCallback(\n (e: TouchEvent) => {\n e.originalEvent.preventDefault();\n inputRef.current?.focus();\n onCancel();\n },\n [inputRef, onCancel]\n );\n\n return (\n <div\n vkuiClass={classNames(getClassName(\"Search\", platform), {\n \"Search--focused\": isFocused,\n \"Search--has-value\": !!value,\n \"Search--has-after\": !!after,\n \"Search--has-icon\": !!icon,\n })}\n className={className}\n style={style}\n >\n <div vkuiClass=\"Search__in\">\n <div vkuiClass=\"Search__width\" />\n <label vkuiClass=\"Search__control\">\n <input\n type=\"search\"\n {...inputProps}\n ref={inputRef}\n vkuiClass=\"Search__input\"\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={onChange}\n value={value}\n />\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n <div vkuiClass=\"Search__placeholder\">\n <div vkuiClass=\"Search__placeholder-in\">\n {before}\n <SearchPlaceholderTypography\n vkuiClass=\"Search__placeholder-text\"\n platform={platform}\n >\n {placeholder}\n </SearchPlaceholderTypography>\n </div>\n {isFocused && platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n </div>\n </label>\n <div vkuiClass=\"Search__after\" onClick={onCancel}>\n <div vkuiClass=\"Search__icons\">\n {icon && (\n <Touch onStart={onIconClickStart} vkuiClass=\"Search__icon\">\n {icon}\n </Touch>\n )}\n {!!value && (\n <Touch onStart={onIconCancelClickStart} vkuiClass=\"Search__icon\">\n {platform === IOS ? <Icon16Clear /> : <Icon24Cancel />}\n </Touch>\n )}\n </div>\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-in\">{after}</div>\n )}\n </div>\n </div>\n {platform === VKCOM && <Separator vkuiClass=\"Search__separator\" wide />}\n </div>\n );\n};\n\nSearch.defaultProps = {\n autoComplete: \"off\",\n defaultValue: \"\",\n placeholder: \"Поиск\",\n after: \"Отмена\",\n before: <Icon16SearchOutline />,\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withPlatform(Search);\n"],"file":"Search.js"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { HasRootRef } from "../../types";
|
|
3
|
+
import "./SegmentedControl.css";
|
|
4
|
+
export declare type SegmentedControlValue = string | number | undefined;
|
|
5
|
+
export interface SegmentedControlOptionInterface extends Omit<React.HTMLAttributes<HTMLElement>, "label"> {
|
|
6
|
+
label: React.ReactChild;
|
|
7
|
+
value: SegmentedControlValue;
|
|
8
|
+
}
|
|
9
|
+
export interface SegmentedControlProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange">, HasRootRef<HTMLDivElement> {
|
|
10
|
+
options: SegmentedControlOptionInterface[];
|
|
11
|
+
size?: "m" | "l";
|
|
12
|
+
name?: string;
|
|
13
|
+
onChange?: (value: SegmentedControlValue) => void;
|
|
14
|
+
value?: SegmentedControlValue;
|
|
15
|
+
defaultValue?: SegmentedControlValue;
|
|
16
|
+
}
|
|
17
|
+
export declare const SegmentedControl: React.FC<SegmentedControlProps>;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.SegmentedControl = void 0;
|
|
11
|
+
|
|
12
|
+
var _jsxRuntime = require("../../lib/jsxRuntime");
|
|
13
|
+
|
|
14
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
|
+
|
|
16
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
+
|
|
18
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
19
|
+
|
|
20
|
+
var React = _interopRequireWildcard(require("react"));
|
|
21
|
+
|
|
22
|
+
var _classNames = require("../../lib/classNames");
|
|
23
|
+
|
|
24
|
+
var _useIsomorphicLayoutEffect = require("../../lib/useIsomorphicLayoutEffect");
|
|
25
|
+
|
|
26
|
+
var _utils = require("../../lib/utils");
|
|
27
|
+
|
|
28
|
+
var _warnOnce = require("../../lib/warnOnce");
|
|
29
|
+
|
|
30
|
+
var _SegmentedControlOption = require("./SegmentedControlOption/SegmentedControlOption");
|
|
31
|
+
|
|
32
|
+
var _excluded = ["size", "name", "options", "getRootRef", "onChange", "value", "defaultValue", "children"],
|
|
33
|
+
_excluded2 = ["label"];
|
|
34
|
+
var warn = (0, _warnOnce.warnOnce)("SegmentedControl");
|
|
35
|
+
|
|
36
|
+
var SegmentedControl = function SegmentedControl(_ref) {
|
|
37
|
+
var _ref$size = _ref.size,
|
|
38
|
+
size = _ref$size === void 0 ? "l" : _ref$size,
|
|
39
|
+
name = _ref.name,
|
|
40
|
+
options = _ref.options,
|
|
41
|
+
getRootRef = _ref.getRootRef,
|
|
42
|
+
_ref$onChange = _ref.onChange,
|
|
43
|
+
onChange = _ref$onChange === void 0 ? _utils.noop : _ref$onChange,
|
|
44
|
+
value = _ref.value,
|
|
45
|
+
defaultValue = _ref.defaultValue,
|
|
46
|
+
children = _ref.children,
|
|
47
|
+
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
48
|
+
var initialValue = defaultValue !== null && defaultValue !== void 0 ? defaultValue : value;
|
|
49
|
+
|
|
50
|
+
if (!initialValue) {
|
|
51
|
+
var _options$;
|
|
52
|
+
|
|
53
|
+
initialValue = (_options$ = options[0]) === null || _options$ === void 0 ? void 0 : _options$.value;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
var _React$useState = React.useState(0),
|
|
57
|
+
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
58
|
+
activeOptionIdx = _React$useState2[0],
|
|
59
|
+
updateActiveOptionIdx = _React$useState2[1];
|
|
60
|
+
|
|
61
|
+
var _React$useState3 = React.useState(initialValue),
|
|
62
|
+
_React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
|
|
63
|
+
activeValue = _React$useState4[0],
|
|
64
|
+
updateActiveValue = _React$useState4[1];
|
|
65
|
+
|
|
66
|
+
var nameRef = React.useRef(name !== null && name !== void 0 ? name : (0, _utils.generateRandomId)());
|
|
67
|
+
(0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () {
|
|
68
|
+
var _activeOptionIdx = options.findIndex(function (option) {
|
|
69
|
+
return option.value === activeValue;
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
if (_activeOptionIdx === -1 && process.env.NODE_ENV === "development") {
|
|
73
|
+
warn("defaultValue: такого значения нет среди опций!");
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
updateActiveOptionIdx(_activeOptionIdx);
|
|
77
|
+
}, [activeValue, options]);
|
|
78
|
+
var translateX = "translateX(".concat(100 * activeOptionIdx, "%)");
|
|
79
|
+
|
|
80
|
+
var handleOnChange = function handleOnChange(value) {
|
|
81
|
+
updateActiveValue(value);
|
|
82
|
+
onChange(value);
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
return (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({}, restProps, {
|
|
86
|
+
vkuiClass: (0, _classNames.classNames)("SegmentedControl", "SegmentedControl--".concat(size)),
|
|
87
|
+
ref: getRootRef
|
|
88
|
+
}), (0, _jsxRuntime.createScopedElement)("div", {
|
|
89
|
+
role: "radiogroup",
|
|
90
|
+
vkuiClass: "SegmentedControl__in"
|
|
91
|
+
}, activeOptionIdx > -1 && (0, _jsxRuntime.createScopedElement)("div", {
|
|
92
|
+
"aria-hidden": "true",
|
|
93
|
+
vkuiClass: "SegmentedControl__slider",
|
|
94
|
+
style: {
|
|
95
|
+
width: "".concat(100 / options.length, "%"),
|
|
96
|
+
transform: translateX,
|
|
97
|
+
WebkitTransform: translateX
|
|
98
|
+
}
|
|
99
|
+
}), options.map(function (_ref2) {
|
|
100
|
+
var label = _ref2.label,
|
|
101
|
+
optionProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
|
|
102
|
+
return (0, _jsxRuntime.createScopedElement)(_SegmentedControlOption.SegmentedControlOption, (0, _extends2.default)({
|
|
103
|
+
key: "".concat(optionProps.value)
|
|
104
|
+
}, optionProps, {
|
|
105
|
+
vkuiClass: "SegmentedControl__option",
|
|
106
|
+
name: nameRef.current,
|
|
107
|
+
checked: activeValue === optionProps.value,
|
|
108
|
+
onChange: function onChange() {
|
|
109
|
+
return handleOnChange(optionProps.value);
|
|
110
|
+
}
|
|
111
|
+
}), label);
|
|
112
|
+
})));
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
exports.SegmentedControl = SegmentedControl;
|
|
116
|
+
//# sourceMappingURL=SegmentedControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SegmentedControl/SegmentedControl.tsx"],"names":["warn","SegmentedControl","size","name","options","getRootRef","onChange","noop","value","defaultValue","children","restProps","initialValue","React","useState","activeOptionIdx","updateActiveOptionIdx","activeValue","updateActiveValue","nameRef","useRef","_activeOptionIdx","findIndex","option","process","env","NODE_ENV","translateX","handleOnChange","width","length","transform","WebkitTransform","map","label","optionProps","current"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { generateRandomId, noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { SegmentedControlOption } from \"./SegmentedControlOption/SegmentedControlOption\";\nimport { HasRootRef } from \"../../types\";\nimport \"./SegmentedControl.css\";\n\nexport type SegmentedControlValue = string | number | undefined;\n\nexport interface SegmentedControlOptionInterface\n extends Omit<React.HTMLAttributes<HTMLElement>, \"label\"> {\n label: React.ReactChild;\n value: SegmentedControlValue;\n}\n\nexport interface SegmentedControlProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\">,\n HasRootRef<HTMLDivElement> {\n options: SegmentedControlOptionInterface[];\n size?: \"m\" | \"l\";\n name?: string;\n onChange?: (value: SegmentedControlValue) => void;\n value?: SegmentedControlValue;\n defaultValue?: SegmentedControlValue;\n}\n\nconst warn = warnOnce(\"SegmentedControl\");\nexport const SegmentedControl: React.FC<SegmentedControlProps> = ({\n size = \"l\",\n name,\n options,\n getRootRef,\n onChange = noop,\n value,\n defaultValue,\n children,\n ...restProps\n}) => {\n let initialValue = defaultValue ?? value;\n\n if (!initialValue) {\n initialValue = options[0]?.value;\n }\n\n const [activeOptionIdx, updateActiveOptionIdx] = React.useState<number>(0);\n const [activeValue, updateActiveValue] =\n React.useState<SegmentedControlValue>(initialValue);\n\n const nameRef = React.useRef<string>(name ?? generateRandomId());\n\n useIsomorphicLayoutEffect(() => {\n const _activeOptionIdx = options.findIndex(\n (option) => option.value === activeValue\n );\n\n if (_activeOptionIdx === -1 && process.env.NODE_ENV === \"development\") {\n warn(\"defaultValue: такого значения нет среди опций!\");\n }\n\n updateActiveOptionIdx(_activeOptionIdx);\n }, [activeValue, options]);\n\n const translateX = `translateX(${100 * activeOptionIdx}%)`;\n\n const handleOnChange = (value: SegmentedControlValue) => {\n updateActiveValue(value);\n onChange(value);\n };\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\"SegmentedControl\", `SegmentedControl--${size}`)}\n ref={getRootRef}\n >\n <div role=\"radiogroup\" vkuiClass=\"SegmentedControl__in\">\n {activeOptionIdx > -1 && (\n <div\n aria-hidden=\"true\"\n vkuiClass=\"SegmentedControl__slider\"\n style={{\n width: `${100 / options.length}%`,\n transform: translateX,\n WebkitTransform: translateX,\n }}\n />\n )}\n {options.map(({ label, ...optionProps }) => (\n <SegmentedControlOption\n key={`${optionProps.value}`}\n {...optionProps}\n vkuiClass=\"SegmentedControl__option\"\n name={nameRef.current}\n checked={activeValue === optionProps.value}\n onChange={() => handleOnChange(optionProps.value)}\n >\n {label}\n </SegmentedControlOption>\n ))}\n </div>\n </div>\n );\n};\n"],"file":"SegmentedControl.js"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.SegmentedControlOption = void 0;
|
|
9
|
+
|
|
10
|
+
var _jsxRuntime = require("../../../lib/jsxRuntime");
|
|
11
|
+
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
|
+
|
|
16
|
+
var _useFocusVisible2 = require("../../../hooks/useFocusVisible");
|
|
17
|
+
|
|
18
|
+
var _callMultiple = require("../../../lib/callMultiple");
|
|
19
|
+
|
|
20
|
+
var _classNames = require("../../../lib/classNames");
|
|
21
|
+
|
|
22
|
+
var _FocusVisible = require("../../FocusVisible/FocusVisible");
|
|
23
|
+
|
|
24
|
+
var _Text = _interopRequireDefault(require("../../Typography/Text/Text"));
|
|
25
|
+
|
|
26
|
+
var _VisuallyHiddenInput = require("../../VisuallyHiddenInput/VisuallyHiddenInput");
|
|
27
|
+
|
|
28
|
+
var _excluded = ["className", "style", "children"];
|
|
29
|
+
|
|
30
|
+
var SegmentedControlOption = function SegmentedControlOption(_ref) {
|
|
31
|
+
var className = _ref.className,
|
|
32
|
+
style = _ref.style,
|
|
33
|
+
children = _ref.children,
|
|
34
|
+
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
35
|
+
|
|
36
|
+
var _useFocusVisible = (0, _useFocusVisible2.useFocusVisible)(),
|
|
37
|
+
focusVisible = _useFocusVisible.focusVisible,
|
|
38
|
+
onBlur = _useFocusVisible.onBlur,
|
|
39
|
+
onFocus = _useFocusVisible.onFocus;
|
|
40
|
+
|
|
41
|
+
return (0, _jsxRuntime.createScopedElement)("label", {
|
|
42
|
+
className: className,
|
|
43
|
+
style: style,
|
|
44
|
+
vkuiClass: (0, _classNames.classNames)("SegmentedControlOption", {
|
|
45
|
+
"SegmentedControlOption--checked": restProps.checked,
|
|
46
|
+
"SegmentedControlOption--focus-visible": focusVisible
|
|
47
|
+
})
|
|
48
|
+
}, (0, _jsxRuntime.createScopedElement)(_VisuallyHiddenInput.VisuallyHiddenInput, (0, _extends2.default)({}, restProps, {
|
|
49
|
+
type: "radio",
|
|
50
|
+
onBlur: (0, _callMultiple.callMultiple)(onBlur, restProps.onBlur),
|
|
51
|
+
onFocus: (0, _callMultiple.callMultiple)(onFocus, restProps.onFocus)
|
|
52
|
+
})), (0, _jsxRuntime.createScopedElement)(_Text.default, {
|
|
53
|
+
vkuiClass: "SegmentedControlOption__content",
|
|
54
|
+
weight: "medium"
|
|
55
|
+
}, children), (0, _jsxRuntime.createScopedElement)(_FocusVisible.FocusVisible, {
|
|
56
|
+
mode: "inside"
|
|
57
|
+
}));
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
exports.SegmentedControlOption = SegmentedControlOption;
|
|
61
|
+
//# sourceMappingURL=SegmentedControlOption.js.map
|
package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx"],"names":["SegmentedControlOption","className","style","children","restProps","focusVisible","onBlur","onFocus","checked"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAMO,IAAMA,sBAA0D,GAAG,SAA7DA,sBAA6D,OAKpE;AAAA,MAJJC,SAII,QAJJA,SAII;AAAA,MAHJC,KAGI,QAHJA,KAGI;AAAA,MAFJC,QAEI,QAFJA,QAEI;AAAA,MADDC,SACC;;AACJ,yBAA0C,wCAA1C;AAAA,MAAQC,YAAR,oBAAQA,YAAR;AAAA,MAAsBC,MAAtB,oBAAsBA,MAAtB;AAAA,MAA8BC,OAA9B,oBAA8BA,OAA9B;;AAEA,SACE;AACE,IAAA,SAAS,EAAEN,SADb;AAEE,IAAA,KAAK,EAAEC,KAFT;AAGE,IAAA,SAAS,EAAE,4BAAW,wBAAX,EAAqC;AAC9C,yCAAmCE,SAAS,CAACI,OADC;AAE9C,+CAAyCH;AAFK,KAArC;AAHb,KAQE,qCAAC,wCAAD,6BACMD,SADN;AAEE,IAAA,IAAI,EAAC,OAFP;AAGE,IAAA,MAAM,EAAE,gCAAaE,MAAb,EAAqBF,SAAS,CAACE,MAA/B,CAHV;AAIE,IAAA,OAAO,EAAE,gCAAaC,OAAb,EAAsBH,SAAS,CAACG,OAAhC;AAJX,KARF,EAcE,qCAAC,aAAD;AAAM,IAAA,SAAS,EAAC,iCAAhB;AAAkD,IAAA,MAAM,EAAC;AAAzD,KACGJ,QADH,CAdF,EAiBE,qCAAC,0BAAD;AAAc,IAAA,IAAI,EAAC;AAAnB,IAjBF,CADF;AAqBD,CA7BM","sourcesContent":["import * as React from \"react\";\nimport { useFocusVisible } from \"../../../hooks/useFocusVisible\";\nimport { callMultiple } from \"../../../lib/callMultiple\";\nimport { classNames } from \"../../../lib/classNames\";\nimport { FocusVisible } from \"../../FocusVisible/FocusVisible\";\nimport Text from \"../../Typography/Text/Text\";\nimport {\n VisuallyHiddenInput,\n VisuallyHiddenInputProps,\n} from \"../../VisuallyHiddenInput/VisuallyHiddenInput\";\nimport \"./SegmentedControlOption.css\";\n\nexport const SegmentedControlOption: React.FC<VisuallyHiddenInputProps> = ({\n className,\n style,\n children,\n ...restProps\n}) => {\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n\n return (\n <label\n className={className}\n style={style}\n vkuiClass={classNames(\"SegmentedControlOption\", {\n \"SegmentedControlOption--checked\": restProps.checked,\n \"SegmentedControlOption--focus-visible\": focusVisible,\n })}\n >\n <VisuallyHiddenInput\n {...restProps}\n type=\"radio\"\n onBlur={callMultiple(onBlur, restProps.onBlur)}\n onFocus={callMultiple(onFocus, restProps.onFocus)}\n />\n <Text vkuiClass=\"SegmentedControlOption__content\" weight=\"medium\">\n {children}\n </Text>\n <FocusVisible mode=\"inside\" />\n </label>\n );\n};\n"],"file":"SegmentedControlOption.js"}
|
|
@@ -37,20 +37,33 @@ var _Text = _interopRequireDefault(require("../Typography/Text/Text"));
|
|
|
37
37
|
|
|
38
38
|
var _Subhead = _interopRequireDefault(require("../Typography/Subhead/Subhead"));
|
|
39
39
|
|
|
40
|
+
var _Headline = _interopRequireDefault(require("../Typography/Headline/Headline"));
|
|
41
|
+
|
|
40
42
|
var _excluded = ["badge", "before", "indicator", "children", "after", "description", "expandable", "multiline", "sizeY"];
|
|
41
43
|
|
|
42
44
|
var SimpleCellTypography = function SimpleCellTypography(props) {
|
|
43
45
|
var _useAdaptivity = (0, _useAdaptivity2.useAdaptivity)(),
|
|
44
46
|
sizeY = _useAdaptivity.sizeY;
|
|
45
47
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
48
|
+
var platform = (0, _usePlatform.usePlatform)();
|
|
49
|
+
|
|
50
|
+
if (sizeY === _withAdaptivity.SizeType.COMPACT) {
|
|
51
|
+
return (0, _jsxRuntime.createScopedElement)(_Text.default, (0, _extends2.default)({
|
|
52
|
+
Component: "span",
|
|
53
|
+
weight: "regular"
|
|
54
|
+
}, props));
|
|
55
|
+
} else if (platform === _platform.ANDROID) {
|
|
56
|
+
return (0, _jsxRuntime.createScopedElement)(_Headline.default, (0, _extends2.default)({
|
|
57
|
+
Component: "span",
|
|
58
|
+
weight: "regular"
|
|
59
|
+
}, props));
|
|
60
|
+
} else {
|
|
61
|
+
return (0, _jsxRuntime.createScopedElement)(_Title.default, (0, _extends2.default)({
|
|
62
|
+
Component: "span",
|
|
63
|
+
level: "3",
|
|
64
|
+
weight: "3"
|
|
65
|
+
}, props));
|
|
66
|
+
}
|
|
54
67
|
};
|
|
55
68
|
|
|
56
69
|
var SimpleCell = function SimpleCell(_ref) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/SimpleCell/SimpleCell.tsx"],"names":["SimpleCellTypography","props","sizeY","SizeType","COMPACT","SimpleCell","badge","before","indicator","children","after","description","expandable","multiline","restProps","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SimpleCell/SimpleCell.tsx"],"names":["SimpleCellTypography","props","sizeY","platform","SizeType","COMPACT","ANDROID","SimpleCell","badge","before","indicator","children","after","description","expandable","multiline","restProps","hasAfter","IOS"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAwCA,IAAMA,oBAAyD,GAAG,SAA5DA,oBAA4D,CAChEC,KADgE,EAE7D;AACH,uBAAkB,oCAAlB;AAAA,MAAQC,KAAR,kBAAQA,KAAR;;AACA,MAAMC,QAAQ,GAAG,+BAAjB;;AAEA,MAAID,KAAK,KAAKE,yBAASC,OAAvB,EAAgC;AAC9B,WAAO,qCAAC,aAAD;AAAM,MAAA,SAAS,EAAC,MAAhB;AAAuB,MAAA,MAAM,EAAC;AAA9B,OAA4CJ,KAA5C,EAAP;AACD,GAFD,MAEO,IAAIE,QAAQ,KAAKG,iBAAjB,EAA0B;AAC/B,WAAO,qCAAC,iBAAD;AAAU,MAAA,SAAS,EAAC,MAApB;AAA2B,MAAA,MAAM,EAAC;AAAlC,OAAgDL,KAAhD,EAAP;AACD,GAFM,MAEA;AACL,WAAO,qCAAC,cAAD;AAAO,MAAA,SAAS,EAAC,MAAjB;AAAwB,MAAA,KAAK,EAAC,GAA9B;AAAkC,MAAA,MAAM,EAAC;AAAzC,OAAiDA,KAAjD,EAAP;AACD;AACF,CAbD;;AAeA,IAAMM,UAAqC,GAAG,SAAxCA,UAAwC,OAWvB;AAAA,MAVrBC,KAUqB,QAVrBA,KAUqB;AAAA,MATrBC,MASqB,QATrBA,MASqB;AAAA,MARrBC,SAQqB,QARrBA,SAQqB;AAAA,MAPrBC,QAOqB,QAPrBA,QAOqB;AAAA,MANrBC,KAMqB,QANrBA,KAMqB;AAAA,MALrBC,WAKqB,QALrBA,WAKqB;AAAA,MAJrBC,UAIqB,QAJrBA,UAIqB;AAAA,MAHrBC,SAGqB,QAHrBA,SAGqB;AAAA,MAFrBb,KAEqB,QAFrBA,KAEqB;AAAA,MADlBc,SACkB;AACrB,MAAMb,QAAQ,GAAG,+BAAjB;;AACA,MAAMc,QAAQ,GAAG,yBAAaL,KAAb,KAAwBE,UAAU,IAAIX,QAAQ,KAAKe,aAApE;;AAEA,SACE,qCAAC,iBAAD,6BACMF,SADN;AAEE,IAAA,SAAS,EAAE,4BACT,gCAAa,YAAb,EAA2Bb,QAA3B,CADS,EAET;AACE,yBAAmBW,UADrB;AAEE,0BAAoBC;AAFtB,KAFS,8BAMYb,KANZ;AAFb,MAWGO,MAXH,EAYE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,qCAAC,oBAAD;AAAsB,IAAA,SAAS,EAAC;AAAhC,KACGE,QADH,CADF,EAIG,yBAAaH,KAAb,KACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAqCA,KAArC,CALJ,CADF,EASGK,WAAW,IACV,qCAAC,gBAAD;AACE,IAAA,SAAS,EAAC,MADZ;AAEE,IAAA,MAAM,EAAC,SAFT;AAGE,IAAA,SAAS,EAAC;AAHZ,KAKGA,WALH,CAVJ,CAZF,EA+BG,yBAAaH,SAAb,KACC,qCAAC,oBAAD;AACE,IAAA,SAAS,EAAC,MADZ;AAEE,IAAA,SAAS,EAAC;AAFZ,KAIGA,SAJH,CAhCJ,EAuCGO,QAAQ,IACP;AAAK,IAAA,SAAS,EAAC;AAAf,KACGL,KADH,EAEGE,UAAU,IAAIX,QAAQ,KAAKe,aAA3B,IAAkC,qCAAC,oBAAD,OAFrC,CAxCJ,CADF;AAgDD,CA/DD,C,CAiEA;;;eACe,oCAAeX,UAAf,EAA2B;AAAEL,EAAAA,KAAK,EAAE;AAAT,CAA3B,C","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport { Icon24Chevron } from \"@vkontakte/icons\";\nimport { ANDROID, IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { withAdaptivity, SizeType } from \"../../hoc/withAdaptivity\";\nimport Title from \"../Typography/Title/Title\";\nimport Text from \"../Typography/Text/Text\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport \"./SimpleCell.css\";\n\nexport interface SimpleCellOwnProps extends HasComponent {\n /**\n * Иконка 28 или `<Avatar size={28|32|40|48|72} />`\n */\n before?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится справа от текста `children`.\n */\n badge?: React.ReactNode;\n /**\n * Контейнер для текста справа от `children`.\n */\n indicator?: React.ReactNode;\n /**\n * Иконка 24|28 или `<Switch />`. Располагается справа от `indicator`.\n */\n after?: React.ReactNode;\n /**\n * Контейнер для текста под `children`.\n */\n description?: React.ReactNode;\n /**\n * Убирает анимацию нажатия\n */\n disabled?: boolean;\n /**\n * В iOS добавляет chevron справа. Передавать `true`, если предполагается переход при клике по ячейке.\n */\n expandable?: boolean;\n multiline?: boolean;\n}\n\nexport interface SimpleCellProps extends SimpleCellOwnProps, TappableProps {}\n\ntype SimpleCellTypographyProps = React.HTMLAttributes<HTMLDivElement> &\n HasComponent;\n\nconst SimpleCellTypography: React.FC<SimpleCellTypographyProps> = (\n props: SimpleCellTypographyProps\n) => {\n const { sizeY } = useAdaptivity();\n const platform = usePlatform();\n\n if (sizeY === SizeType.COMPACT) {\n return <Text Component=\"span\" weight=\"regular\" {...props} />;\n } else if (platform === ANDROID) {\n return <Headline Component=\"span\" weight=\"regular\" {...props} />;\n } else {\n return <Title Component=\"span\" level=\"3\" weight=\"3\" {...props} />;\n }\n};\n\nconst SimpleCell: React.FC<SimpleCellProps> = ({\n badge,\n before,\n indicator,\n children,\n after,\n description,\n expandable,\n multiline,\n sizeY,\n ...restProps\n}: SimpleCellProps) => {\n const platform = usePlatform();\n const hasAfter = hasReactNode(after) || (expandable && platform === IOS);\n\n return (\n <Tappable\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"SimpleCell\", platform),\n {\n \"SimpleCell--exp\": expandable,\n \"SimpleCell--mult\": multiline,\n },\n `SimpleCell--sizeY-${sizeY}`\n )}\n >\n {before}\n <div vkuiClass=\"SimpleCell__main\">\n <div vkuiClass=\"SimpleCell__content\">\n <SimpleCellTypography vkuiClass=\"SimpleCell__children\">\n {children}\n </SimpleCellTypography>\n {hasReactNode(badge) && (\n <span vkuiClass=\"SimpleCell__badge\">{badge}</span>\n )}\n </div>\n {description && (\n <Subhead\n Component=\"span\"\n weight=\"regular\"\n vkuiClass=\"SimpleCell__description\"\n >\n {description}\n </Subhead>\n )}\n </div>\n {hasReactNode(indicator) && (\n <SimpleCellTypography\n Component=\"span\"\n vkuiClass=\"SimpleCell__indicator\"\n >\n {indicator}\n </SimpleCellTypography>\n )}\n {hasAfter && (\n <div vkuiClass=\"SimpleCell__after\">\n {after}\n {expandable && platform === IOS && <Icon24Chevron />}\n </div>\n )}\n </Tappable>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(SimpleCell, { sizeY: true });\n"],"file":"SimpleCell.js"}
|
|
@@ -18,7 +18,10 @@ interface SliderSwitchState {
|
|
|
18
18
|
activeValue: SliderSwitchOptionInterface["value"];
|
|
19
19
|
hoveredOptionId: number;
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
/**
|
|
22
|
+
* @deprecated Этот компонент устарел и будет удален в 5.0.0. Используйте [`SegmentedControl`](#/SegmentedControl).
|
|
23
|
+
*/
|
|
24
|
+
declare class SliderSwitch extends React.Component<SliderSwitchProps, SliderSwitchState> {
|
|
22
25
|
constructor(props: SliderSwitchProps);
|
|
23
26
|
static defaultProps: {
|
|
24
27
|
options: {
|
|
@@ -38,6 +41,7 @@ export default class SliderSwitch extends React.Component<SliderSwitchProps, Sli
|
|
|
38
41
|
static getDerivedStateFromProps(nextProps: SliderSwitchProps, prevState: SliderSwitchState): {
|
|
39
42
|
activeValue: string | number;
|
|
40
43
|
} | null;
|
|
44
|
+
componentDidMount(): void;
|
|
41
45
|
render(): JSX.Element;
|
|
42
46
|
}
|
|
43
|
-
export {};
|
|
47
|
+
export { SliderSwitch };
|
|
@@ -7,7 +7,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.
|
|
10
|
+
exports.SliderSwitch = void 0;
|
|
11
11
|
|
|
12
12
|
var _jsxRuntime = require("../../lib/jsxRuntime");
|
|
13
13
|
|
|
@@ -31,13 +31,18 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
31
31
|
|
|
32
32
|
var React = _interopRequireWildcard(require("react"));
|
|
33
33
|
|
|
34
|
-
var _SliderSwitchButton =
|
|
34
|
+
var _SliderSwitchButton = require("./SliderSwitchButton");
|
|
35
35
|
|
|
36
36
|
var _classNames2 = require("../../lib/classNames");
|
|
37
37
|
|
|
38
|
+
var _warnOnce = require("../../lib/warnOnce");
|
|
39
|
+
|
|
38
40
|
var _excluded = ["name", "options", "activeValue", "onSwitch"];
|
|
41
|
+
var warn = (0, _warnOnce.warnOnce)("SliderSwitch");
|
|
42
|
+
/**
|
|
43
|
+
* @deprecated Этот компонент устарел и будет удален в 5.0.0. Используйте [`SegmentedControl`](#/SegmentedControl).
|
|
44
|
+
*/
|
|
39
45
|
|
|
40
|
-
// eslint-disable-next-line import/no-default-export
|
|
41
46
|
var SliderSwitch = /*#__PURE__*/function (_React$Component) {
|
|
42
47
|
(0, _inherits2.default)(SliderSwitch, _React$Component);
|
|
43
48
|
|
|
@@ -134,6 +139,13 @@ var SliderSwitch = /*#__PURE__*/function (_React$Component) {
|
|
|
134
139
|
}
|
|
135
140
|
|
|
136
141
|
(0, _createClass2.default)(SliderSwitch, [{
|
|
142
|
+
key: "componentDidMount",
|
|
143
|
+
value: function componentDidMount() {
|
|
144
|
+
if (process.env.NODE_ENV === "development") {
|
|
145
|
+
warn("Этот компонент устарел и будет удален в 5.0.0. Используйте SegmentedControl.");
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}, {
|
|
137
149
|
key: "render",
|
|
138
150
|
value: function render() {
|
|
139
151
|
var _classNames;
|
|
@@ -166,14 +178,14 @@ var SliderSwitch = /*#__PURE__*/function (_React$Component) {
|
|
|
166
178
|
type: "hidden",
|
|
167
179
|
name: name,
|
|
168
180
|
value: activeValue
|
|
169
|
-
}), (0, _jsxRuntime.createScopedElement)(_SliderSwitchButton.
|
|
181
|
+
}), (0, _jsxRuntime.createScopedElement)(_SliderSwitchButton.SliderSwitchButton, {
|
|
170
182
|
active: firstActive,
|
|
171
183
|
hovered: hoveredOptionId === 0,
|
|
172
184
|
"aria-pressed": firstActive,
|
|
173
185
|
onClick: this.handleFirstClick,
|
|
174
186
|
onMouseEnter: this.handleFirstHover,
|
|
175
187
|
getRootRef: this.firstButton
|
|
176
|
-
}, firstOption.name), (0, _jsxRuntime.createScopedElement)(_SliderSwitchButton.
|
|
188
|
+
}, firstOption.name), (0, _jsxRuntime.createScopedElement)(_SliderSwitchButton.SliderSwitchButton, {
|
|
177
189
|
active: secondActive,
|
|
178
190
|
hovered: hoveredOptionId === 1,
|
|
179
191
|
onClick: this.handleSecondClick,
|
|
@@ -196,7 +208,7 @@ var SliderSwitch = /*#__PURE__*/function (_React$Component) {
|
|
|
196
208
|
return SliderSwitch;
|
|
197
209
|
}(React.Component);
|
|
198
210
|
|
|
199
|
-
exports.
|
|
211
|
+
exports.SliderSwitch = SliderSwitch;
|
|
200
212
|
(0, _defineProperty2.default)(SliderSwitch, "defaultProps", {
|
|
201
213
|
options: [{
|
|
202
214
|
name: "",
|