@vkontakte/vkui 6.5.0 → 6.5.2
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/dist/cjs/components/Button/Button.js +1 -1
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/Cell/Cell.d.ts.map +1 -1
- package/dist/cjs/components/Cell/Cell.js +10 -14
- package/dist/cjs/components/Cell/Cell.js.map +1 -1
- package/dist/cjs/components/ChipsInputBase/Chip/Chip.js +2 -2
- package/dist/cjs/components/ChipsInputBase/Chip/Chip.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +9 -9
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/Clickable/Clickable.d.ts.map +1 -1
- package/dist/cjs/components/Clickable/Clickable.js +1 -1
- package/dist/cjs/components/Clickable/Clickable.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +3 -13
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +45 -70
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelectInput.d.ts +4 -2
- package/dist/cjs/components/CustomSelect/CustomSelectInput.d.ts.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelectInput.js +19 -24
- package/dist/cjs/components/CustomSelect/CustomSelectInput.js.map +1 -1
- package/dist/cjs/components/CustomSelect/helpers.d.ts +8 -0
- package/dist/cjs/components/CustomSelect/helpers.d.ts.map +1 -0
- package/dist/cjs/components/CustomSelect/helpers.js +76 -0
- package/dist/cjs/components/CustomSelect/helpers.js.map +1 -0
- package/dist/cjs/components/CustomSelect/types.d.ts +12 -0
- package/dist/cjs/components/CustomSelect/types.d.ts.map +1 -0
- package/dist/cjs/components/CustomSelect/types.js +6 -0
- package/dist/cjs/components/CustomSelect/types.js.map +1 -0
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -14
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.d.ts +1 -1
- package/dist/cjs/components/DateInput/DateInput.d.ts.map +1 -1
- 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.d.ts.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cjs/components/Flex/FlexItem/FlexItem.d.ts +6 -4
- package/dist/cjs/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
- package/dist/cjs/components/Flex/FlexItem/FlexItem.js.map +1 -1
- package/dist/cjs/components/Footer/Footer.d.ts +1 -1
- package/dist/cjs/components/Footer/Footer.d.ts.map +1 -1
- package/dist/cjs/components/Footer/Footer.js +7 -3
- package/dist/cjs/components/Footer/Footer.js.map +1 -1
- package/dist/cjs/components/FormItem/FormItem.js +2 -2
- package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +3 -3
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cjs/components/Group/Group.d.ts.map +1 -1
- package/dist/cjs/components/Group/Group.js +3 -2
- package/dist/cjs/components/Group/Group.js.map +1 -1
- package/dist/cjs/components/Link/Link.d.ts +1 -1
- package/dist/cjs/components/Link/Link.d.ts.map +1 -1
- package/dist/cjs/components/Link/Link.js +3 -5
- package/dist/cjs/components/Link/Link.js.map +1 -1
- package/dist/cjs/components/Removable/Removable.d.ts +5 -1
- package/dist/cjs/components/Removable/Removable.d.ts.map +1 -1
- package/dist/cjs/components/Removable/Removable.js +8 -5
- package/dist/cjs/components/Removable/Removable.js.map +1 -1
- package/dist/cjs/components/RootComponent/RootComponent.d.ts +1 -1
- package/dist/cjs/components/RootComponent/RootComponent.d.ts.map +1 -1
- package/dist/cjs/components/RootComponent/RootComponent.js +1 -1
- package/dist/cjs/components/RootComponent/RootComponent.js.map +1 -1
- package/dist/cjs/components/Search/Search.d.ts.map +1 -1
- package/dist/cjs/components/Search/Search.js +3 -2
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/Select/Select.d.ts.map +1 -1
- package/dist/cjs/components/Select/Select.js +1 -2
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/SelectTypography/SelectTypography.d.ts +2 -2
- package/dist/cjs/components/SelectTypography/SelectTypography.d.ts.map +1 -1
- package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.d.ts.map +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.js +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/Snackbar/Snackbar.js +2 -2
- package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cjs/components/ToolButton/ToolButton.d.ts +1 -1
- package/dist/cjs/components/ToolButton/ToolButton.d.ts.map +1 -1
- package/dist/cjs/components/ToolButton/ToolButton.js +1 -3
- package/dist/cjs/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/cjs/components/View/View.d.ts.map +1 -1
- package/dist/cjs/components/View/View.js +16 -32
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/cjs/hooks/useEnsuredControl.d.ts.map +1 -1
- package/dist/cjs/hooks/useEnsuredControl.js +27 -3
- package/dist/cjs/hooks/useEnsuredControl.js.map +1 -1
- package/dist/cjs/hooks/useIsClient.d.ts +1 -1
- package/dist/cjs/hooks/useIsClient.js.map +1 -1
- package/dist/cjs/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
- package/dist/components/Button/Button.js +2 -2
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Cell/Cell.d.ts.map +1 -1
- package/dist/components/Cell/Cell.js +11 -15
- package/dist/components/Cell/Cell.js.map +1 -1
- package/dist/components/ChipsInputBase/Chip/Chip.js +3 -3
- package/dist/components/ChipsInputBase/Chip/Chip.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.js +9 -9
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/Clickable/Clickable.d.ts.map +1 -1
- package/dist/components/Clickable/Clickable.js +1 -1
- package/dist/components/Clickable/Clickable.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +3 -13
- package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +37 -62
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelectInput.d.ts +4 -2
- package/dist/components/CustomSelect/CustomSelectInput.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelectInput.js +19 -24
- package/dist/components/CustomSelect/CustomSelectInput.js.map +1 -1
- package/dist/components/CustomSelect/helpers.d.ts +8 -0
- package/dist/components/CustomSelect/helpers.d.ts.map +1 -0
- package/dist/components/CustomSelect/helpers.js +48 -0
- package/dist/components/CustomSelect/helpers.js.map +1 -0
- package/dist/components/CustomSelect/types.d.ts +12 -0
- package/dist/components/CustomSelect/types.d.ts.map +1 -0
- package/dist/components/CustomSelect/types.js +3 -0
- package/dist/components/CustomSelect/types.js.map +1 -0
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -14
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts +1 -1
- package/dist/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/Flex/FlexItem/FlexItem.d.ts +6 -4
- package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
- package/dist/components/Flex/FlexItem/FlexItem.js.map +1 -1
- package/dist/components/Footer/Footer.d.ts +1 -1
- package/dist/components/Footer/Footer.d.ts.map +1 -1
- package/dist/components/Footer/Footer.js +7 -3
- package/dist/components/Footer/Footer.js.map +1 -1
- package/dist/components/FormItem/FormItem.js +3 -3
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js +4 -4
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/components/Group/Group.d.ts.map +1 -1
- package/dist/components/Group/Group.js +3 -2
- package/dist/components/Group/Group.js.map +1 -1
- package/dist/components/Link/Link.d.ts +1 -1
- package/dist/components/Link/Link.d.ts.map +1 -1
- package/dist/components/Link/Link.js +4 -6
- package/dist/components/Link/Link.js.map +1 -1
- package/dist/components/Removable/Removable.d.ts +5 -1
- package/dist/components/Removable/Removable.d.ts.map +1 -1
- package/dist/components/Removable/Removable.js +9 -6
- package/dist/components/Removable/Removable.js.map +1 -1
- package/dist/components/RootComponent/RootComponent.d.ts +1 -1
- package/dist/components/RootComponent/RootComponent.d.ts.map +1 -1
- package/dist/components/RootComponent/RootComponent.js +1 -1
- package/dist/components/RootComponent/RootComponent.js.map +1 -1
- package/dist/components/Search/Search.d.ts.map +1 -1
- package/dist/components/Search/Search.js +3 -2
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/Select.js +1 -2
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SelectTypography/SelectTypography.d.ts +2 -2
- package/dist/components/SelectTypography/SelectTypography.d.ts.map +1 -1
- package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
- package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.js +1 -1
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/Snackbar/Snackbar.js +3 -3
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/ToolButton/ToolButton.d.ts +1 -1
- package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
- package/dist/components/ToolButton/ToolButton.js +2 -4
- package/dist/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/components/View/View.d.ts.map +1 -1
- package/dist/components/View/View.js +17 -33
- package/dist/components/View/View.js.map +1 -1
- package/dist/components.css +3 -3
- package/dist/components.css.map +1 -1
- package/dist/components.js.tmp +260 -263
- package/dist/cssm/components/Button/Button.js +2 -2
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.d.ts.map +1 -1
- package/dist/cssm/components/Cell/Cell.js +11 -14
- package/dist/cssm/components/Cell/Cell.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.module.css +0 -4
- package/dist/cssm/components/ChipsInputBase/Chip/Chip.js +3 -3
- package/dist/cssm/components/ChipsInputBase/Chip/Chip.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +9 -9
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/Clickable/Clickable.d.ts.map +1 -1
- package/dist/cssm/components/Clickable/Clickable.js +1 -1
- package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +3 -13
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +36 -59
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectInput.d.ts +4 -2
- package/dist/cssm/components/CustomSelect/CustomSelectInput.d.ts.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectInput.js +16 -21
- package/dist/cssm/components/CustomSelect/CustomSelectInput.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectInput.module.css +74 -40
- package/dist/cssm/components/CustomSelect/helpers.d.ts +8 -0
- package/dist/cssm/components/CustomSelect/helpers.d.ts.map +1 -0
- package/dist/cssm/components/CustomSelect/helpers.js +44 -0
- package/dist/cssm/components/CustomSelect/helpers.js.map +1 -0
- package/dist/cssm/components/CustomSelect/types.d.ts +12 -0
- package/dist/cssm/components/CustomSelect/types.d.ts.map +1 -0
- package/dist/cssm/components/CustomSelect/types.js +3 -0
- package/dist/cssm/components/CustomSelect/types.js.map +1 -0
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -13
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.d.ts +1 -1
- package/dist/cssm/components/DateInput/DateInput.d.ts.map +1 -1
- 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.d.ts.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/Flex/FlexItem/FlexItem.d.ts +6 -4
- package/dist/cssm/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
- package/dist/cssm/components/Flex/FlexItem/FlexItem.js.map +1 -1
- package/dist/cssm/components/Footer/Footer.d.ts +1 -1
- package/dist/cssm/components/Footer/Footer.d.ts.map +1 -1
- package/dist/cssm/components/Footer/Footer.js +4 -2
- package/dist/cssm/components/Footer/Footer.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.module.css +36 -23
- package/dist/cssm/components/FormItem/FormItem.js +3 -3
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +4 -4
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cssm/components/Group/Group.d.ts.map +1 -1
- package/dist/cssm/components/Group/Group.js +3 -2
- package/dist/cssm/components/Group/Group.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.module.css +0 -4
- package/dist/cssm/components/Link/Link.d.ts +1 -1
- package/dist/cssm/components/Link/Link.d.ts.map +1 -1
- package/dist/cssm/components/Link/Link.js +2 -3
- package/dist/cssm/components/Link/Link.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.d.ts +5 -1
- package/dist/cssm/components/Removable/Removable.d.ts.map +1 -1
- package/dist/cssm/components/Removable/Removable.js +7 -5
- package/dist/cssm/components/Removable/Removable.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.module.css +4 -0
- package/dist/cssm/components/RootComponent/RootComponent.d.ts +1 -1
- package/dist/cssm/components/RootComponent/RootComponent.d.ts.map +1 -1
- package/dist/cssm/components/RootComponent/RootComponent.js +2 -1
- package/dist/cssm/components/RootComponent/RootComponent.js.map +1 -1
- package/dist/cssm/components/RootComponent/RootComponent.module.css +10 -0
- package/dist/cssm/components/Search/Search.d.ts.map +1 -1
- package/dist/cssm/components/Search/Search.js +3 -2
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/Select/Select.d.ts.map +1 -1
- package/dist/cssm/components/Select/Select.js +1 -1
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/SelectTypography/SelectTypography.d.ts +2 -2
- package/dist/cssm/components/SelectTypography/SelectTypography.d.ts.map +1 -1
- package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.d.ts.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.module.css +4 -0
- package/dist/cssm/components/Snackbar/Snackbar.js +3 -3
- package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.d.ts +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.d.ts.map +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.js +2 -3
- package/dist/cssm/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/cssm/components/View/View.d.ts.map +1 -1
- package/dist/cssm/components/View/View.js +17 -33
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/hooks/useEnsuredControl.d.ts.map +1 -1
- package/dist/cssm/hooks/useEnsuredControl.js +27 -3
- package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
- package/dist/cssm/hooks/useIsClient.d.ts +1 -1
- package/dist/cssm/hooks/useIsClient.js +1 -1
- package/dist/cssm/hooks/useIsClient.js.map +1 -1
- package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
- package/dist/cssm/styles/constants.css +2 -3
- package/dist/hooks/useEnsuredControl.d.ts.map +1 -1
- package/dist/hooks/useEnsuredControl.js +27 -3
- package/dist/hooks/useEnsuredControl.js.map +1 -1
- package/dist/hooks/useIsClient.d.ts +1 -1
- package/dist/hooks/useIsClient.js +1 -1
- package/dist/hooks/useIsClient.js.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
- package/dist/vkui.css +3 -3
- package/dist/vkui.css.map +1 -1
- package/dist/vkui.js.tmp +260 -263
- package/package.json +1 -1
- package/src/components/Button/Button.tsx +2 -2
- package/src/components/Cell/Cell.module.css +0 -4
- package/src/components/Cell/Cell.tsx +9 -16
- package/src/components/ChipsInputBase/Chip/Chip.tsx +3 -3
- package/src/components/ChipsSelect/ChipsSelect.tsx +12 -12
- package/src/components/Clickable/Clickable.tsx +4 -1
- package/src/components/CustomSelect/CustomSelect.tsx +52 -104
- package/src/components/CustomSelect/CustomSelectInput.module.css +55 -35
- package/src/components/CustomSelect/CustomSelectInput.tsx +25 -36
- package/src/components/CustomSelect/helpers.tsx +61 -0
- package/src/components/CustomSelect/types.ts +15 -0
- package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +3 -17
- package/src/components/DateInput/DateInput.tsx +1 -1
- package/src/components/DateRangeInput/DateRangeInput.tsx +1 -1
- package/src/components/Flex/FlexItem/FlexItem.tsx +6 -4
- package/src/components/Footer/Footer.tsx +14 -2
- package/src/components/FormField/FormField.module.css +32 -21
- package/src/components/FormItem/FormItem.tsx +3 -3
- package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +4 -8
- package/src/components/Group/Group.tsx +3 -2
- package/src/components/ImageBase/ImageBase.module.css +0 -4
- package/src/components/Link/Link.tsx +1 -3
- package/src/components/Removable/Removable.module.css +4 -0
- package/src/components/Removable/Removable.tsx +12 -4
- package/src/components/RootComponent/RootComponent.module.css +10 -0
- package/src/components/RootComponent/RootComponent.tsx +12 -2
- package/src/components/Search/Search.tsx +3 -2
- package/src/components/Select/Select.tsx +0 -1
- package/src/components/SelectTypography/SelectTypography.tsx +2 -5
- package/src/components/SimpleCell/SimpleCell.module.css +4 -0
- package/src/components/SimpleCell/SimpleCell.tsx +2 -1
- package/src/components/Snackbar/Snackbar.tsx +3 -3
- package/src/components/ToolButton/ToolButton.tsx +1 -3
- package/src/components/View/View.tsx +21 -36
- package/src/hooks/useEnsuredControl.ts +38 -4
- package/src/hooks/useIsClient.ts +1 -1
- package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +1 -1
- package/src/styles/constants.css +2 -3
|
@@ -3,7 +3,7 @@ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
|
3
3
|
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import * as React from 'react';
|
|
6
|
-
import { classNames, hasReactNode
|
|
6
|
+
import { classNames, hasReactNode } from '@vkontakte/vkjs';
|
|
7
7
|
import { useAdaptivity } from '../../hooks/useAdaptivity';
|
|
8
8
|
import { useExternRef } from '../../hooks/useExternRef';
|
|
9
9
|
import { useObjectMemo } from '../../hooks/useObjectMemo';
|
|
@@ -25,7 +25,7 @@ const stylesStatus = {
|
|
|
25
25
|
/**
|
|
26
26
|
* @see https://vkcom.github.io/VKUI/#/FormItem
|
|
27
27
|
*/ export const FormItem = (_param)=>{
|
|
28
|
-
var { children, top, topId, topMultiline, topComponent: topComponentProp, bottom, status = 'default', removable, onRemove
|
|
28
|
+
var { children, top, topId, topMultiline, topComponent: topComponentProp, bottom, status = 'default', removable, onRemove, removePlaceholder = 'Удалить', getRootRef, htmlFor, bottomId, noPadding, topNode, required = false } = _param, restProps = _object_without_properties(_param, [
|
|
29
29
|
"children",
|
|
30
30
|
"top",
|
|
31
31
|
"topId",
|
|
@@ -78,7 +78,7 @@ const stylesStatus = {
|
|
|
78
78
|
align: "start",
|
|
79
79
|
onRemove: (e)=>{
|
|
80
80
|
if (rootEl === null || rootEl === void 0 ? void 0 : rootEl.current) {
|
|
81
|
-
onRemove(e, rootEl.current);
|
|
81
|
+
onRemove === null || onRemove === void 0 ? void 0 : onRemove(e, rootEl.current);
|
|
82
82
|
}
|
|
83
83
|
},
|
|
84
84
|
removePlaceholder: removePlaceholder,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/FormItem/FormItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode
|
|
1
|
+
{"version":3,"sources":["../../../src/components/FormItem/FormItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { HasComponent, HasRootRef } from '../../types';\nimport { Removable, RemovableProps } from '../Removable/Removable';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { FormItemTop } from './FormItemTop/FormItemTop';\nimport { FormItemTopAside } from './FormItemTop/FormItemTopAside';\nimport { FormItemTopLabel } from './FormItemTop/FormItemTopLabel';\nimport { FormItemContext } from './context';\nimport styles from './FormItem.module.css';\n\nconst sizeYClassNames = {\n none: classNames(styles['FormItem--sizeY-none'], 'vkuiInternalFormItem--sizeY-none'),\n ['compact']: classNames(styles['FormItem--sizeY-compact'], 'vkuiInternalFormItem--sizeY-compact'),\n};\n\nconst stylesStatus = {\n error: classNames(styles['FormItem--status-error'], 'vkuiInternalFormItem--status-error'),\n valid: classNames(styles['FormItem--status-valid'], 'vkuiInternalFormItem--status-valid'),\n};\n\nexport interface FormItemProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent,\n RemovableProps {\n top?: React.ReactNode;\n topId?: string;\n /**\n * Многострочный вывод заголовка. По умолчанию текст не переносится при переполнении.\n */\n topMultiline?: boolean;\n /**\n * Позволяет поменять тег используемый для top\n * Если оставить пустым, то тег top будет span.\n * Если оставить пустым и использовать htmlFor, то тег top будет label.\n */\n topComponent?: React.ElementType;\n /**\n * Позволяет полностью заменить шапку поля пользовательским компонентом.\n *\n * @since 6.1.0\n *\n * TODO [>=7]: удалить и использовать top - оно будет принимать либо строку, либо подкомпонент\n */\n topNode?: React.ReactNode;\n bottom?: React.ReactNode;\n /**\n * Передаётся при использовании `bottom`.\n *\n * Должен совпадать с `aria-describedby`, который передаётся в компонент, отвечающий за пользовательский ввод.\n */\n bottomId?: string;\n status?: 'default' | 'error' | 'valid';\n /**\n * Дает возможность удалить `FormItem`. Рекомендуется использовать только для `Input` или `Select`.\n *\n * Режим `indent` предназначен для визуального отступа\n */\n removable?: boolean | 'indent';\n /**\n * Удаляет внешние отступы вокруг компонента\n * @since 5.8.0\n */\n noPadding?: boolean;\n /**\n * Помечает поле обязательным\n */\n required?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FormItem\n */\nexport const FormItem: React.FC<FormItemProps> & {\n Top: typeof FormItemTop;\n TopLabel: typeof FormItemTopLabel;\n TopAside: typeof FormItemTopAside;\n} = ({\n children,\n top,\n topId,\n topMultiline,\n topComponent: topComponentProp,\n bottom,\n status = 'default',\n removable,\n onRemove,\n removePlaceholder = 'Удалить',\n getRootRef,\n htmlFor,\n bottomId,\n noPadding,\n topNode,\n required = false,\n ...restProps\n}: FormItemProps) => {\n const rootEl = useExternRef(getRootRef);\n const { sizeY = 'none' } = useAdaptivity();\n\n const wrappedChildren = (\n <React.Fragment>\n {hasReactNode(topNode) ? (\n topNode\n ) : hasReactNode(top) ? (\n <FormItemTop>\n <FormItemTopLabel\n htmlFor={htmlFor}\n Component={topComponentProp}\n multiline={topMultiline}\n id={topId}\n >\n {top}\n </FormItemTopLabel>\n </FormItemTop>\n ) : null}\n {children}\n {hasReactNode(bottom) && (\n <Footnote\n className={styles['FormItem__bottom']}\n id={bottomId}\n role={status === 'error' ? 'alert' : undefined}\n >\n {bottom}\n </Footnote>\n )}\n </React.Fragment>\n );\n\n const context = useObjectMemo({ required, topMultiline });\n\n return (\n <RootComponent\n {...restProps}\n getRootRef={rootEl}\n baseClassName={classNames(\n styles['FormItem'],\n !noPadding && styles['FormItem--withPadding'],\n 'vkuiInternalFormItem',\n status !== 'default' && stylesStatus[status],\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n hasReactNode(top) &&\n classNames(styles['FormItem--withTop'], 'vkuiInternalFormItem--withTop'),\n removable && classNames(styles['FormItem--removable'], 'vkuiInternalFormItem--removable'),\n )}\n >\n <FormItemContext.Provider value={context}>\n {removable ? (\n <Removable\n align=\"start\"\n onRemove={(e) => {\n if (rootEl?.current) {\n onRemove?.(e, rootEl.current);\n }\n }}\n removePlaceholder={removePlaceholder}\n indent={removable === 'indent'}\n >\n <div\n className={classNames(\n styles['FormItem__removable'],\n 'vkuiInternalFormItem__removable',\n )}\n >\n {wrappedChildren}\n </div>\n </Removable>\n ) : (\n wrappedChildren\n )}\n </FormItemContext.Provider>\n </RootComponent>\n );\n};\n\nFormItem.displayName = 'FormItem';\n\nFormItem.Top = FormItemTop;\nFormItem.Top.displayName = 'FormItem.Top';\n\nFormItem.TopLabel = FormItemTopLabel;\nFormItem.TopLabel.displayName = 'FormItem.TopLabel';\n\nFormItem.TopAside = FormItemTopAside;\nFormItem.TopAside.displayName = 'FormItem.TopAside';\n"],"names":["React","classNames","hasReactNode","useAdaptivity","useExternRef","useObjectMemo","Removable","RootComponent","Footnote","FormItemTop","FormItemTopAside","FormItemTopLabel","FormItemContext","sizeYClassNames","none","stylesStatus","error","valid","FormItem","children","top","topId","topMultiline","topComponent","topComponentProp","bottom","status","removable","onRemove","removePlaceholder","getRootRef","htmlFor","bottomId","noPadding","topNode","required","restProps","rootEl","sizeY","wrappedChildren","Fragment","Component","multiline","id","className","role","undefined","context","baseClassName","Provider","value","align","e","current","indent","div","displayName","Top","TopLabel","TopAside"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,aAAa,QAAQ,4BAA4B;AAE1D,SAASC,SAAS,QAAwB,yBAAyB;AACnE,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,WAAW,QAAQ,4BAA4B;AACxD,SAASC,gBAAgB,QAAQ,iCAAiC;AAClE,SAASC,gBAAgB,QAAQ,iCAAiC;AAClE,SAASC,eAAe,QAAQ,YAAY;AAG5C,MAAMC,kBAAkB;IACtBC,MAAMb,uCAA2C;IACjD,CAAC,UAAU,EAAEA,0CAA8C;AAC7D;AAEA,MAAMc,eAAe;IACnBC,OAAOf,yCAA6C;IACpDgB,OAAOhB,yCAA6C;AACtD;AAoDA;;CAEC,GACD,OAAO,MAAMiB,WAIT;QAAC,EACHC,QAAQ,EACRC,GAAG,EACHC,KAAK,EACLC,YAAY,EACZC,cAAcC,gBAAgB,EAC9BC,MAAM,EACNC,SAAS,SAAS,EAClBC,SAAS,EACTC,QAAQ,EACRC,oBAAoB,SAAS,EAC7BC,UAAU,EACVC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACTC,OAAO,EACPC,WAAW,KAAK,EAEF,WADXC;QAhBHjB;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,SAASjC,aAAa0B;IAC5B,MAAM,EAAEQ,QAAQ,MAAM,EAAE,GAAGnC;IAE3B,MAAMoC,gCACJ,MAACvC,MAAMwC,QAAQ;;YACZtC,aAAagC,WACZA,UACEhC,aAAakB,qBACf,KAACX;0BACC,cAAA,KAACE;oBACCoB,SAASA;oBACTU,WAAWjB;oBACXkB,WAAWpB;oBACXqB,IAAItB;8BAEHD;;iBAGH;YACHD;YACAjB,aAAauB,yBACZ,KAACjB;gBACCoC,SAAS;gBACTD,IAAIX;gBACJa,MAAMnB,WAAW,UAAU,UAAUoB;0BAEpCrB;;;;IAMT,MAAMsB,UAAU1C,cAAc;QAAE8B;QAAUb;IAAa;IAEvD,qBACE,KAACf,uDACK6B;QACJN,YAAYO;QACZW,eAAe/C,2BAEb,CAACgC,0CACD,wBACAP,WAAW,aAAaX,YAAY,CAACW,OAAO,EAC5CY,UAAU,aAAazB,eAAe,CAACyB,MAAM,EAC7CpC,aAAakB,QACXnB,oCAAwC,kCAC1C0B,aAAa1B,sCAA0C;kBAGzD,cAAA,KAACW,gBAAgBqC,QAAQ;YAACC,OAAOH;sBAC9BpB,0BACC,KAACrB;gBACC6C,OAAM;gBACNvB,UAAU,CAACwB;oBACT,IAAIf,mBAAAA,6BAAAA,OAAQgB,OAAO,EAAE;wBACnBzB,qBAAAA,+BAAAA,SAAWwB,GAAGf,OAAOgB,OAAO;oBAC9B;gBACF;gBACAxB,mBAAmBA;gBACnByB,QAAQ3B,cAAc;0BAEtB,cAAA,KAAC4B;oBACCX,WAAW3C,sCAET;8BAGDsC;;iBAILA;;;AAKV,EAAE;AAEFrB,SAASsC,WAAW,GAAG;AAEvBtC,SAASuC,GAAG,GAAGhD;AACfS,SAASuC,GAAG,CAACD,WAAW,GAAG;AAE3BtC,SAASwC,QAAQ,GAAG/C;AACpBO,SAASwC,QAAQ,CAACF,WAAW,GAAG;AAEhCtC,SAASyC,QAAQ,GAAGjD;AACpBQ,SAASyC,QAAQ,CAACH,WAAW,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormLayoutGroup.d.ts","sourceRoot":"","sources":["../../../src/components/FormLayoutGroup/FormLayoutGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAa,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAenE,MAAM,WAAW,oBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,cAAc;IAChB,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,oGASzB,oBAAoB,KAAG,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"FormLayoutGroup.d.ts","sourceRoot":"","sources":["../../../src/components/FormLayoutGroup/FormLayoutGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAa,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAenE,MAAM,WAAW,oBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,cAAc;IAChB,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,oGASzB,oBAAoB,KAAG,KAAK,CAAC,SAqD/B,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
|
3
3
|
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import * as React from 'react';
|
|
6
|
-
import { classNames
|
|
6
|
+
import { classNames } from '@vkontakte/vkjs';
|
|
7
7
|
import { useAdaptivity } from '../../hooks/useAdaptivity';
|
|
8
8
|
import { useExternRef } from '../../hooks/useExternRef';
|
|
9
9
|
import { Removable } from '../Removable/Removable';
|
|
@@ -15,7 +15,7 @@ const sizeYClassNames = {
|
|
|
15
15
|
/**
|
|
16
16
|
* @see https://vkcom.github.io/VKUI/#/FormLayoutGroup
|
|
17
17
|
*/ export const FormLayoutGroup = (_param)=>{
|
|
18
|
-
var { children, mode = 'vertical', removable, segmented, removePlaceholder = 'Удалить', onRemove
|
|
18
|
+
var { children, mode = 'vertical', removable, segmented, removePlaceholder = 'Удалить', onRemove, getRootRef } = _param, restProps = _object_without_properties(_param, [
|
|
19
19
|
"children",
|
|
20
20
|
"mode",
|
|
21
21
|
"removable",
|
|
@@ -30,7 +30,7 @@ const sizeYClassNames = {
|
|
|
30
30
|
return /*#__PURE__*/ _jsx(RootComponent, _object_spread_props(_object_spread({
|
|
31
31
|
getRootRef: rootEl,
|
|
32
32
|
Component: "fieldset",
|
|
33
|
-
baseClassName: classNames("vkuiFormLayoutGroup", sizeY !== 'regular' && sizeYClassNames[sizeY], mode === 'horizontal' && classNames("vkuiFormLayoutGroup--mode-horizontal", 'vkuiInternalFormLayoutGroup--mode-horizontal'), mode === 'vertical' &&
|
|
33
|
+
baseClassName: classNames("vkuiFormLayoutGroup", sizeY !== 'regular' && sizeYClassNames[sizeY], mode === 'horizontal' && classNames("vkuiFormLayoutGroup--mode-horizontal", 'vkuiInternalFormLayoutGroup--mode-horizontal'), mode === 'vertical' && 'vkuiInternalFormLayoutGroup--mode-vertical', isRemovable && classNames("vkuiFormLayoutGroup--removable", 'vkuiInternalFormLayoutGroup--removable'), segmented && classNames("vkuiFormLayoutGroup--segmented", 'vkuiInternalFormLayoutGroup--segmented'))
|
|
34
34
|
}, restProps), {
|
|
35
35
|
children: isRemovable ? /*#__PURE__*/ _jsx(Removable, {
|
|
36
36
|
className: "vkuiFormLayoutGroup__removable",
|
|
@@ -38,7 +38,7 @@ const sizeYClassNames = {
|
|
|
38
38
|
removePlaceholder: removePlaceholder,
|
|
39
39
|
onRemove: (e)=>{
|
|
40
40
|
if (rootEl === null || rootEl === void 0 ? void 0 : rootEl.current) {
|
|
41
|
-
onRemove(e, rootEl.current);
|
|
41
|
+
onRemove === null || onRemove === void 0 ? void 0 : onRemove(e, rootEl.current);
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
44
|
indent: removable === 'indent',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/FormLayoutGroup/FormLayoutGroup.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames
|
|
1
|
+
{"version":3,"sources":["../../../src/components/FormLayoutGroup/FormLayoutGroup.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { Removable, RemovableProps } from '../Removable/Removable';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './FormLayoutGroup.module.css';\n\nconst sizeYClassNames = {\n none: classNames(\n styles['FormLayoutGroup--sizeY-none'],\n 'vkuiInternalFormLayoutGroup--sizeY-none',\n ),\n ['compact']: classNames(\n styles['FormLayoutGroup--sizeY-compact'],\n 'vkuiInternalFormLayoutGroup--sizeY-compact',\n ),\n};\n\nexport interface FormLayoutGroupProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n RemovableProps {\n mode?: 'vertical' | 'horizontal';\n /**\n * Только для режима horizontal. Дает возможность удалить всю группу `FormItem`.\n *\n * Режим `indent` предназначен для визуального отступа.\n */\n removable?: boolean | 'indent';\n\n /**\n * Дает возможность склеить несколько `FormItem`.\n */\n segmented?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FormLayoutGroup\n */\nexport const FormLayoutGroup = ({\n children,\n mode = 'vertical',\n removable,\n segmented,\n removePlaceholder = 'Удалить',\n onRemove,\n getRootRef,\n ...restProps\n}: FormLayoutGroupProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n const isRemovable = removable && mode === 'horizontal';\n const rootEl = useExternRef(getRootRef);\n\n return (\n <RootComponent\n getRootRef={rootEl}\n Component=\"fieldset\"\n baseClassName={classNames(\n styles['FormLayoutGroup'],\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n mode === 'horizontal' &&\n classNames(\n styles['FormLayoutGroup--mode-horizontal'],\n 'vkuiInternalFormLayoutGroup--mode-horizontal',\n ),\n mode === 'vertical' && 'vkuiInternalFormLayoutGroup--mode-vertical',\n isRemovable &&\n classNames(\n styles['FormLayoutGroup--removable'],\n 'vkuiInternalFormLayoutGroup--removable',\n ),\n segmented &&\n classNames(\n styles['FormLayoutGroup--segmented'],\n 'vkuiInternalFormLayoutGroup--segmented',\n ),\n )}\n {...restProps}\n >\n {isRemovable ? (\n <Removable\n className={styles['FormLayoutGroup__removable']}\n align=\"start\"\n removePlaceholder={removePlaceholder}\n onRemove={(e) => {\n if (rootEl?.current) {\n onRemove?.(e, rootEl.current);\n }\n }}\n indent={removable === 'indent'}\n >\n {children}\n </Removable>\n ) : (\n <React.Fragment>\n {children}\n <span className={styles['FormLayoutGroup__offset']} aria-hidden />\n </React.Fragment>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","classNames","useAdaptivity","useExternRef","Removable","RootComponent","sizeYClassNames","none","FormLayoutGroup","children","mode","removable","segmented","removePlaceholder","onRemove","getRootRef","restProps","sizeY","isRemovable","rootEl","Component","baseClassName","className","align","e","current","indent","Fragment","span","aria-hidden"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,YAAY,QAAQ,2BAA2B;AAExD,SAASC,SAAS,QAAwB,yBAAyB;AACnE,SAASC,aAAa,QAAQ,iCAAiC;AAG/D,MAAMC,kBAAkB;IACtBC,MAAMN,8CAEJ;IAEF,CAAC,UAAU,EAAEA,iDAEX;AAEJ;AAmBA;;CAEC,GACD,OAAO,MAAMO,kBAAkB;QAAC,EAC9BC,QAAQ,EACRC,OAAO,UAAU,EACjBC,SAAS,EACTC,SAAS,EACTC,oBAAoB,SAAS,EAC7BC,QAAQ,EACRC,UAAU,EAEW,WADlBC;QAPHP;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EAAEE,QAAQ,MAAM,EAAE,GAAGf;IAC3B,MAAMgB,cAAcP,aAAaD,SAAS;IAC1C,MAAMS,SAAShB,aAAaY;IAE5B,qBACE,KAACV;QACCU,YAAYI;QACZC,WAAU;QACVC,eAAepB,kCAEbgB,UAAU,aAAaX,eAAe,CAACW,MAAM,EAC7CP,SAAS,gBACPT,mDAEE,iDAEJS,SAAS,cAAc,8CACvBQ,eACEjB,6CAEE,2CAEJW,aACEX,6CAEE;OAGFe;kBAEHE,4BACC,KAACd;YACCkB,SAAS;YACTC,OAAM;YACNV,mBAAmBA;YACnBC,UAAU,CAACU;gBACT,IAAIL,mBAAAA,6BAAAA,OAAQM,OAAO,EAAE;oBACnBX,qBAAAA,+BAAAA,SAAWU,GAAGL,OAAOM,OAAO;gBAC9B;YACF;YACAC,QAAQf,cAAc;sBAErBF;2BAGH,MAACT,MAAM2B,QAAQ;;gBACZlB;8BACD,KAACmB;oBAAKN,SAAS;oBAAqCO,aAAW;;;;;AAKzE,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../../src/components/Group/Group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../../src/components/Group/Group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAqDxD,MAAM,WAAW,UAAW,SAAQ,yBAAyB,CAAC,WAAW,CAAC;IACxE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CACrB;AAGD;;GAEG;AACH,eAAO,MAAM,KAAK,iHASf,UAAU,KAAG,KAAK,CAAC,SAiErB,CAAC"}
|
|
@@ -12,7 +12,8 @@ import { RootComponent } from '../RootComponent/RootComponent';
|
|
|
12
12
|
import { Footnote } from '../Typography/Footnote/Footnote';
|
|
13
13
|
const sizeXClassNames = {
|
|
14
14
|
none: classNames("vkuiGroup--sizeX-none", 'vkuiInternalGroup--sizeX-none'),
|
|
15
|
-
|
|
15
|
+
regular: "vkuiGroup--sizeX-regular",
|
|
16
|
+
compact: "vkuiGroup--sizeX-compact"
|
|
16
17
|
};
|
|
17
18
|
const stylesMode = {
|
|
18
19
|
none: classNames("vkuiGroup--mode-none", 'vkuiInternalGroup--mode-none'),
|
|
@@ -83,7 +84,7 @@ const warn = warnOnce('Group');
|
|
|
83
84
|
Component: "section"
|
|
84
85
|
}, restProps), {
|
|
85
86
|
tabIndex: tabIndex,
|
|
86
|
-
baseClassName: classNames('vkuiInternalGroup', "vkuiGroup",
|
|
87
|
+
baseClassName: classNames('vkuiInternalGroup', "vkuiGroup", sizeXClassNames[sizeX], mode === 'plain' && isInsideModal && "vkuiGroup--mode-plain-inside-modal", stylesMode[mode], stylesPadding[padding]),
|
|
87
88
|
children: [
|
|
88
89
|
hasReactNode(header) && /*#__PURE__*/ _jsx("div", {
|
|
89
90
|
className: "vkuiGroup__header",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Group/Group.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { SizeTypeValues } from '../../lib/adaptivity';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { AppRootContext } from '../AppRoot/AppRootContext';\nimport { ModalRootContext } from '../ModalRoot/ModalRootContext';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './Group.module.css';\n\nconst sizeXClassNames = {\n none: classNames(styles['Group--sizeX-none'], 'vkuiInternalGroup--sizeX-none'),\n ['
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Group/Group.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { SizeTypeValues } from '../../lib/adaptivity';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { AppRootContext } from '../AppRoot/AppRootContext';\nimport { ModalRootContext } from '../ModalRoot/ModalRootContext';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './Group.module.css';\n\nconst sizeXClassNames = {\n none: classNames(styles['Group--sizeX-none'], 'vkuiInternalGroup--sizeX-none'),\n regular: styles['Group--sizeX-regular'],\n compact: styles['Group--sizeX-compact'],\n};\n\nconst stylesMode = {\n none: classNames(styles['Group--mode-none'], 'vkuiInternalGroup--mode-none'),\n plain: classNames(styles['Group--mode-plain'], 'vkuiInternalGroup--mode-plain'),\n card: classNames(styles['Group--mode-card'], 'vkuiInternalGroup--mode-card'),\n};\n\nconst stylesPadding = {\n s: styles['Group--padding-s'],\n m: styles['Group--padding-m'],\n};\n\n/**\n * Вычисляем mode для Group.\n */\nfunction useGroupMode(\n forcedMode: GroupProps['mode'],\n sizeX: SizeTypeValues | 'none',\n isInsideModal: boolean,\n): 'plain' | 'card' | 'none' {\n const { layout } = React.useContext(AppRootContext);\n\n if (forcedMode) {\n return forcedMode;\n }\n\n if (isInsideModal) {\n return 'plain';\n }\n\n if (layout) {\n return layout;\n }\n\n if (sizeX !== 'none') {\n return sizeX === 'regular' ? 'card' : 'plain';\n }\n\n return 'none';\n}\n\nexport interface GroupProps extends HTMLAttributesWithRootRef<HTMLElement> {\n header?: React.ReactNode;\n description?: React.ReactNode;\n /**\n `show` (только для `mode=\"plain\"`) - разделитель всегда показывается\n `hide` - разделитель всегда спрятан,\n `auto` - разделитель рисуется автоматически между соседними группами.\n */\n separator?: 'show' | 'hide' | 'auto';\n /**\n * Режим отображения. Если установлен `card`, выглядит как карточка c\n * обводкой и внешними отступами. Если `plain` — без отступов и обводки.\n * По умолчанию режим отображения зависит от `sizeX` (`mode=card` при `sizeX=REGULAR` и `mode=plain` при `sizeX=COMPACT`)\n * В модальных окнах по умолчанию `plain`.\n */\n mode?: 'plain' | 'card';\n /**\n * Отвечает за отступы вокруг контента в режиме `card`.\n */\n padding?: 's' | 'm';\n}\n\nconst warn = warnOnce('Group');\n/**\n * @see https://vkcom.github.io/VKUI/#/Group\n */\nexport const Group = ({\n header,\n description,\n children,\n separator = 'auto',\n mode: modeProps,\n padding = 'm',\n tabIndex: tabIndexProp,\n ...restProps\n}: GroupProps): React.ReactNode => {\n const { isInsideModal } = React.useContext(ModalRootContext);\n const { sizeX = 'none' } = useAdaptivity();\n\n const mode = useGroupMode(modeProps, sizeX, isInsideModal);\n\n const isTabPanel = restProps.role === 'tabpanel';\n\n if (\n process.env.NODE_ENV === 'development' &&\n isTabPanel &&\n (!restProps['aria-controls'] || !restProps['id'])\n ) {\n warn(\n 'При использовании роли \"tabpanel\" необходимо задать значение свойств \"aria-controls\" и \"id\"',\n );\n }\n\n const tabIndex = isTabPanel && tabIndexProp === undefined ? 0 : tabIndexProp;\n\n let siblingSeparatorElement: React.ReactNode = null;\n switch (separator) {\n case 'auto':\n siblingSeparatorElement = <div className={styles['Group__separator-sibling']} />;\n break;\n case 'show':\n siblingSeparatorElement = (\n <div\n className={classNames(\n styles['Group__separator-sibling'],\n mode === 'plain' || mode === 'none'\n ? styles['Group__separator-sibling--forced']\n : undefined,\n )}\n />\n );\n break;\n case 'hide':\n break;\n }\n\n return (\n <>\n <RootComponent\n Component=\"section\"\n {...restProps}\n tabIndex={tabIndex}\n baseClassName={classNames(\n 'vkuiInternalGroup',\n styles['Group'],\n sizeXClassNames[sizeX],\n mode === 'plain' && isInsideModal && styles['Group--mode-plain-inside-modal'],\n stylesMode[mode],\n stylesPadding[padding],\n )}\n >\n {hasReactNode(header) && <div className={styles['Group__header']}>{header}</div>}\n {children}\n {hasReactNode(description) && (\n <Footnote className={styles['Group__description']}>{description}</Footnote>\n )}\n </RootComponent>\n {siblingSeparatorElement}\n </>\n );\n};\n"],"names":["React","classNames","hasReactNode","useAdaptivity","warnOnce","AppRootContext","ModalRootContext","RootComponent","Footnote","sizeXClassNames","none","regular","compact","stylesMode","plain","card","stylesPadding","s","m","useGroupMode","forcedMode","sizeX","isInsideModal","layout","useContext","warn","Group","header","description","children","separator","mode","modeProps","padding","tabIndex","tabIndexProp","restProps","isTabPanel","role","process","env","NODE_ENV","undefined","siblingSeparatorElement","div","className","Component","baseClassName"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,aAAa,QAAQ,4BAA4B;AAE1D,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,cAAc,QAAQ,4BAA4B;AAC3D,SAASC,gBAAgB,QAAQ,gCAAgC;AACjE,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,QAAQ,QAAQ,kCAAkC;AAG3D,MAAMC,kBAAkB;IACtBC,MAAMT,oCAAwC;IAC9CU,OAAO;IACPC,OAAO;AACT;AAEA,MAAMC,aAAa;IACjBH,MAAMT,mCAAuC;IAC7Ca,OAAOb,oCAAwC;IAC/Cc,MAAMd,mCAAuC;AAC/C;AAEA,MAAMe,gBAAgB;IACpBC,CAAC;IACDC,CAAC;AACH;AAEA;;CAEC,GACD,SAASC,aACPC,UAA8B,EAC9BC,KAA8B,EAC9BC,aAAsB;IAEtB,MAAM,EAAEC,MAAM,EAAE,GAAGvB,MAAMwB,UAAU,CAACnB;IAEpC,IAAIe,YAAY;QACd,OAAOA;IACT;IAEA,IAAIE,eAAe;QACjB,OAAO;IACT;IAEA,IAAIC,QAAQ;QACV,OAAOA;IACT;IAEA,IAAIF,UAAU,QAAQ;QACpB,OAAOA,UAAU,YAAY,SAAS;IACxC;IAEA,OAAO;AACT;AAwBA,MAAMI,OAAOrB,SAAS;AACtB;;CAEC,GACD,OAAO,MAAMsB,QAAQ;QAAC,EACpBC,MAAM,EACNC,WAAW,EACXC,QAAQ,EACRC,YAAY,MAAM,EAClBC,MAAMC,SAAS,EACfC,UAAU,GAAG,EACbC,UAAUC,YAAY,EAEX,WADRC;QAPHT;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;;IAGA,MAAM,EAAEZ,aAAa,EAAE,GAAGtB,MAAMwB,UAAU,CAAClB;IAC3C,MAAM,EAAEe,QAAQ,MAAM,EAAE,GAAGlB;IAE3B,MAAM4B,OAAOZ,aAAaa,WAAWX,OAAOC;IAE5C,MAAMe,aAAaD,UAAUE,IAAI,KAAK;IAEtC,IACEC,QAAQC,GAAG,CAACC,QAAQ,KAAK,iBACzBJ,cACC,CAAA,CAACD,SAAS,CAAC,gBAAgB,IAAI,CAACA,SAAS,CAAC,KAAK,AAAD,GAC/C;QACAX,KACE;IAEJ;IAEA,MAAMS,WAAWG,cAAcF,iBAAiBO,YAAY,IAAIP;IAEhE,IAAIQ,0BAA2C;IAC/C,OAAQb;QACN,KAAK;YACHa,wCAA0B,KAACC;gBAAIC,SAAS;;YACxC;QACF,KAAK;YACHF,wCACE,KAACC;gBACCC,WAAW5C,2CAET8B,SAAS,WAAWA,SAAS,kDAEzBW;;YAIV;QACF,KAAK;YACH;IACJ;IAEA,qBACE;;0BACE,MAACnC;gBACCuC,WAAU;eACNV;gBACJF,UAAUA;gBACVa,eAAe9C,WACb,kCAEAQ,eAAe,CAACY,MAAM,EACtBU,SAAS,WAAWT,uDACpBT,UAAU,CAACkB,KAAK,EAChBf,aAAa,CAACiB,QAAQ;;oBAGvB/B,aAAayB,yBAAW,KAACiB;wBAAIC,SAAS;kCAA4BlB;;oBAClEE;oBACA3B,aAAa0B,8BACZ,KAACpB;wBAASqC,SAAS;kCAAiCjB;;;;YAGvDe;;;AAGP,EAAE"}
|
|
@@ -8,5 +8,5 @@ export interface LinkProps extends TappableProps {
|
|
|
8
8
|
/**
|
|
9
9
|
* @see https://vkcom.github.io/VKUI/#/Link
|
|
10
10
|
*/
|
|
11
|
-
export declare const Link: ({ hasVisited, children, className,
|
|
11
|
+
export declare const Link: ({ hasVisited, children, className, ...restProps }: LinkProps) => React.ReactNode;
|
|
12
12
|
//# sourceMappingURL=Link.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/components/Link/Link.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG/D,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/components/Link/Link.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG/D,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,IAAI,sDAKd,SAAS,KAAG,KAAK,CAAC,SAcpB,CAAC"}
|
|
@@ -2,20 +2,18 @@ import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
|
2
2
|
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
3
3
|
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
-
import { classNames
|
|
5
|
+
import { classNames } from '@vkontakte/vkjs';
|
|
6
6
|
import { Tappable } from '../Tappable/Tappable';
|
|
7
7
|
/**
|
|
8
8
|
* @see https://vkcom.github.io/VKUI/#/Link
|
|
9
9
|
*/ export const Link = (_param)=>{
|
|
10
|
-
var { hasVisited, children, className
|
|
10
|
+
var { hasVisited, children, className } = _param, restProps = _object_without_properties(_param, [
|
|
11
11
|
"hasVisited",
|
|
12
12
|
"children",
|
|
13
|
-
"className"
|
|
14
|
-
"onClick"
|
|
13
|
+
"className"
|
|
15
14
|
]);
|
|
16
15
|
return /*#__PURE__*/ _jsx(Tappable, _object_spread_props(_object_spread({
|
|
17
|
-
Component: restProps.href ? 'a' : 'button'
|
|
18
|
-
onClick: onClick
|
|
16
|
+
Component: restProps.href ? 'a' : 'button'
|
|
19
17
|
}, restProps), {
|
|
20
18
|
className: classNames("vkuiLink", hasVisited && "vkuiLink--has-visited", className),
|
|
21
19
|
hasHover: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Link/Link.tsx"],"sourcesContent":["import { classNames
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Link/Link.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport { Tappable, TappableProps } from '../Tappable/Tappable';\nimport styles from './Link.module.css';\n\nexport interface LinkProps extends TappableProps {\n /**\n * Включает состояние `visited`, которое позволяет пользователю понять посещал ли он ссылку или нет\n */\n hasVisited?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Link\n */\nexport const Link = ({\n hasVisited,\n children,\n className,\n ...restProps\n}: LinkProps): React.ReactNode => {\n return (\n <Tappable\n Component={restProps.href ? 'a' : 'button'}\n {...restProps}\n className={classNames(styles['Link'], hasVisited && styles['Link--has-visited'], className)}\n hasHover={false}\n activeMode=\"opacity\"\n hoverMode=\"none\"\n focusVisibleMode=\"outside\"\n >\n {children}\n </Tappable>\n );\n};\n"],"names":["classNames","Tappable","Link","hasVisited","children","className","restProps","Component","href","hasHover","activeMode","hoverMode","focusVisibleMode"],"mappings":";;;;AAAA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,QAAQ,QAAuB,uBAAuB;AAU/D;;CAEC,GACD,OAAO,MAAMC,OAAO;QAAC,EACnBC,UAAU,EACVC,QAAQ,EACRC,SAAS,EAEC,WADPC;QAHHH;QACAC;QACAC;;IAGA,qBACE,KAACJ;QACCM,WAAWD,UAAUE,IAAI,GAAG,MAAM;OAC9BF;QACJD,WAAWL,uBAA2BG,uCAA2CE;QACjFI,UAAU;QACVC,YAAW;QACXC,WAAU;QACVC,kBAAiB;kBAEhBR;;AAGP,EAAE"}
|
|
@@ -17,6 +17,10 @@ export interface RemovableProps {
|
|
|
17
17
|
* (test) testId кнопки удаления
|
|
18
18
|
*/
|
|
19
19
|
removeButtonTestId?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Ячейка превращается в неактивную
|
|
22
|
+
*/
|
|
23
|
+
disabled?: boolean;
|
|
20
24
|
}
|
|
21
25
|
interface RemovableIosRenderProps {
|
|
22
26
|
/**
|
|
@@ -42,6 +46,6 @@ interface RemovableOwnProps extends Omit<HTMLAttributesWithRootRef<HTMLDivElemen
|
|
|
42
46
|
/**
|
|
43
47
|
* @see https://vkcom.github.io/VKUI/#/Removable
|
|
44
48
|
*/
|
|
45
|
-
export declare const Removable: ({ children, onRemove, removePlaceholder, align, indent, toggleButtonTestId, removeButtonTestId, ...restProps }: RemovableOwnProps) => React.ReactNode;
|
|
49
|
+
export declare const Removable: ({ children, onRemove, removePlaceholder, align, indent, toggleButtonTestId, removeButtonTestId, disabled, ...restProps }: RemovableOwnProps) => React.ReactNode;
|
|
46
50
|
export {};
|
|
47
51
|
//# sourceMappingURL=Removable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Removable.d.ts","sourceRoot":"","sources":["../../../src/components/Removable/Removable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAOxD,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACtE;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Removable.d.ts","sourceRoot":"","sources":["../../../src/components/Removable/Removable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAOxD,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACtE;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiGD,UAAU,uBAAuB;IAC/B;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,iBACR,SAAQ,IAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EACjE,cAAc;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,WAAW,EAAE,uBAAuB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;CAC1F;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,6HAUnB,iBAAiB,KAAG,KAAK,CAAC,SAqD5B,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_
|
|
|
4
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { Icon24Cancel } from '@vkontakte/icons';
|
|
7
|
-
import { classNames
|
|
7
|
+
import { classNames } from '@vkontakte/vkjs';
|
|
8
8
|
import { useGlobalEventListener } from '../../hooks/useGlobalEventListener';
|
|
9
9
|
import { usePlatform } from '../../hooks/usePlatform';
|
|
10
10
|
import { getTextFromChildren } from '../../lib/children';
|
|
@@ -15,7 +15,7 @@ import { Tappable } from '../Tappable/Tappable';
|
|
|
15
15
|
import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
|
|
16
16
|
/**
|
|
17
17
|
* @see https://vkcom.github.io/VKUI/#/RemovableIos
|
|
18
|
-
*/ const RemovableIos = ({ onRemove, removePlaceholder, removePlaceholderString, children: childrenProp, toggleButtonTestId, removeButtonTestId })=>{
|
|
18
|
+
*/ const RemovableIos = ({ onRemove, removePlaceholder, removePlaceholderString, children: childrenProp, toggleButtonTestId, removeButtonTestId, disabled })=>{
|
|
19
19
|
const { window } = useDOM();
|
|
20
20
|
const removeButtonRef = React.useRef(null);
|
|
21
21
|
const disabledRef = React.useRef(true);
|
|
@@ -56,7 +56,7 @@ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
|
|
|
56
56
|
hasHover: false,
|
|
57
57
|
className: classNames("vkuiRemovable__action", "vkuiRemovable__toggle", 'vkuiInternalRemovable__action'),
|
|
58
58
|
onClick: onRemoveActivateClick,
|
|
59
|
-
disabled: removeOffset > 0,
|
|
59
|
+
disabled: removeOffset > 0 || disabled,
|
|
60
60
|
"data-testid": toggleButtonTestId,
|
|
61
61
|
children: [
|
|
62
62
|
/*#__PURE__*/ _jsx(VisuallyHidden, {
|
|
@@ -95,19 +95,20 @@ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
|
|
|
95
95
|
/**
|
|
96
96
|
* @see https://vkcom.github.io/VKUI/#/Removable
|
|
97
97
|
*/ export const Removable = (_param)=>{
|
|
98
|
-
var { children, onRemove
|
|
98
|
+
var { children, onRemove, removePlaceholder = 'Удалить', align = 'center', indent = false, toggleButtonTestId, removeButtonTestId, disabled } = _param, restProps = _object_without_properties(_param, [
|
|
99
99
|
"children",
|
|
100
100
|
"onRemove",
|
|
101
101
|
"removePlaceholder",
|
|
102
102
|
"align",
|
|
103
103
|
"indent",
|
|
104
104
|
"toggleButtonTestId",
|
|
105
|
-
"removeButtonTestId"
|
|
105
|
+
"removeButtonTestId",
|
|
106
|
+
"disabled"
|
|
106
107
|
]);
|
|
107
108
|
const platform = usePlatform();
|
|
108
109
|
const onRemoveClick = (e)=>{
|
|
109
110
|
e.preventDefault();
|
|
110
|
-
onRemove(e);
|
|
111
|
+
onRemove === null || onRemove === void 0 ? void 0 : onRemove(e);
|
|
111
112
|
};
|
|
112
113
|
const removePlaceholderString = getTextFromChildren(removePlaceholder);
|
|
113
114
|
return /*#__PURE__*/ _jsxs(RootComponent, _object_spread_props(_object_spread({}, restProps), {
|
|
@@ -126,6 +127,7 @@ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
|
|
|
126
127
|
onClick: onRemoveClick,
|
|
127
128
|
label: removePlaceholderString,
|
|
128
129
|
"data-testid": removeButtonTestId,
|
|
130
|
+
disabled: disabled,
|
|
129
131
|
children: /*#__PURE__*/ _jsx(Icon24Cancel, {
|
|
130
132
|
role: "presentation"
|
|
131
133
|
})
|
|
@@ -142,6 +144,7 @@ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
|
|
|
142
144
|
removePlaceholderString: removePlaceholderString,
|
|
143
145
|
toggleButtonTestId: toggleButtonTestId,
|
|
144
146
|
removeButtonTestId: removeButtonTestId,
|
|
147
|
+
disabled: disabled,
|
|
145
148
|
children: children
|
|
146
149
|
})
|
|
147
150
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Removable/Removable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Cancel } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { getTextFromChildren } from '../../lib/children';\nimport { useDOM } from '../../lib/dom';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { IconButton } from '../IconButton/IconButton';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Tappable } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Removable.module.css';\n\nexport interface RemovableProps {\n /**\n * Текст кнопки удаления ячейки. Визуально скрыт везде, кроме iOS. На iOS появляется в выезжающей кнопке для удаления ячейки.\n */\n removePlaceholder?: React.ReactNode;\n /**\n * Коллбэк срабатывает при клике на контрол удаления.\n */\n onRemove?: (e: React.MouseEvent, rootEl?: HTMLElement | null) => void;\n /**\n * (test) iOS only. testId кнопки, которая активирует кнопку удаления\n */\n toggleButtonTestId?: string;\n /**\n * (test) testId кнопки удаления\n */\n removeButtonTestId?: string;\n}\n\ninterface RemovableIosOwnProps extends RemovableProps {\n removePlaceholderString?: string;\n children?: React.ReactNode | ((renderProps: RemovableIosRenderProps) => React.ReactNode);\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/RemovableIos\n */\nconst RemovableIos = ({\n onRemove,\n removePlaceholder,\n removePlaceholderString,\n children: childrenProp,\n toggleButtonTestId,\n removeButtonTestId,\n}: RemovableIosOwnProps) => {\n const { window } = useDOM();\n\n const removeButtonRef = React.useRef<HTMLElement>(null);\n const disabledRef = React.useRef(true);\n const [removeOffset, updateRemoveOffset] = React.useState(0);\n\n useGlobalEventListener(\n window,\n 'click',\n () => {\n if (removeOffset > 0) {\n updateRemoveOffset(0);\n }\n },\n { capture: true },\n );\n\n const onRemoveTransitionEnd = () => {\n if (removeOffset > 0) {\n removeButtonRef?.current?.focus();\n } else {\n disabledRef.current = true;\n }\n };\n\n const onRemoveActivateClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!removeButtonRef.current) {\n return;\n }\n const { offsetWidth } = removeButtonRef.current;\n disabledRef.current = false;\n updateRemoveOffset(offsetWidth);\n };\n\n return (\n <div\n className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}\n style={{ transform: `translateX(-${removeOffset ?? 0}px)` }}\n onTransitionEnd={onRemoveTransitionEnd}\n >\n <IconButton\n hasActive={false}\n hasHover={false}\n className={classNames(\n styles['Removable__action'],\n styles['Removable__toggle'],\n 'vkuiInternalRemovable__action',\n )}\n onClick={onRemoveActivateClick}\n disabled={removeOffset > 0}\n data-testid={toggleButtonTestId}\n >\n <VisuallyHidden>{removePlaceholderString}</VisuallyHidden>\n <i className={styles['Removable__toggle-in']} role=\"presentation\" />\n </IconButton>\n {typeof childrenProp === 'function'\n ? childrenProp({ isRemoving: removeOffset > 0 })\n : childrenProp}\n\n <span className={styles['Removable__offset']} aria-hidden />\n\n <Tappable\n Component=\"button\"\n hasActive={false}\n hasHover={false}\n disabled={disabledRef.current}\n getRootRef={removeButtonRef}\n className={styles['Removable__remove']}\n onClick={onRemove}\n data-testid={removeButtonTestId}\n >\n <span className={styles['Removable__remove-in']}>{removePlaceholder}</span>\n </Tappable>\n </div>\n );\n};\n\ninterface RemovableIosRenderProps {\n /**\n * Показывает состояние Removable на платформе iOS при клике на иконку удаления.\n * Для имитации поведения на iOS при клике на иконку удаления самого удаление не происходит,\n * контент сдвигается влево и справа выезжает настоящая кнопка \"Удалить\".\n * Когда контент сдвинут `isRemoving = true`.\n */\n isRemoving: boolean;\n}\n\ninterface RemovableOwnProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'children'>,\n RemovableProps {\n /**\n * Расположение кнопки удаления.\n */\n align?: 'start' | 'center';\n /**\n * Скрывает кнопку, но оставляет отступ.\n * @since 5.4.0\n */\n indent?: boolean;\n children?: React.ReactNode | ((renderProps: RemovableIosRenderProps) => React.ReactNode);\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Removable\n */\nexport const Removable = ({\n children,\n onRemove = noop,\n removePlaceholder = 'Удалить',\n align = 'center',\n indent = false,\n toggleButtonTestId,\n removeButtonTestId,\n ...restProps\n}: RemovableOwnProps): React.ReactNode => {\n const platform = usePlatform();\n\n const onRemoveClick = (e: React.MouseEvent) => {\n e.preventDefault();\n onRemove(e);\n };\n\n const removePlaceholderString: string = getTextFromChildren(removePlaceholder);\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n platform === 'ios' && styles['Removable--ios'],\n align === 'start' && styles['Removable--align-start'],\n indent && styles['Removable--indent'],\n )}\n >\n {platform !== 'ios' && (\n <div className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}>\n {typeof children === 'function' ? children({ isRemoving: false }) : children}\n\n <IconButton\n activeMode=\"opacity\"\n hoverMode=\"opacity\"\n className={classNames(styles['Removable__action'], 'vkuiInternalRemovable__action')}\n onClick={onRemoveClick}\n label={removePlaceholderString}\n data-testid={removeButtonTestId}\n >\n <Icon24Cancel role=\"presentation\" />\n </IconButton>\n\n <span className={styles['Removable__offset']} aria-hidden />\n </div>\n )}\n\n {platform === 'ios' && (\n <RemovableIos\n onRemove={onRemoveClick}\n removePlaceholder={removePlaceholder}\n removePlaceholderString={removePlaceholderString}\n toggleButtonTestId={toggleButtonTestId}\n removeButtonTestId={removeButtonTestId}\n >\n {children}\n </RemovableIos>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","Icon24Cancel","classNames","noop","useGlobalEventListener","usePlatform","getTextFromChildren","useDOM","IconButton","RootComponent","Tappable","VisuallyHidden","RemovableIos","onRemove","removePlaceholder","removePlaceholderString","children","childrenProp","toggleButtonTestId","removeButtonTestId","window","removeButtonRef","useRef","disabledRef","removeOffset","updateRemoveOffset","useState","capture","onRemoveTransitionEnd","current","focus","onRemoveActivateClick","e","stopPropagation","offsetWidth","div","className","style","transform","onTransitionEnd","hasActive","hasHover","onClick","disabled","data-testid","i","role","isRemoving","span","aria-hidden","Component","getRootRef","Removable","align","indent","restProps","platform","onRemoveClick","preventDefault","baseClassName","activeMode","hoverMode","label"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Removable/Removable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon24Cancel } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { getTextFromChildren } from '../../lib/children';\nimport { useDOM } from '../../lib/dom';\nimport { HTMLAttributesWithRootRef } from '../../types';\nimport { IconButton } from '../IconButton/IconButton';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Tappable } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Removable.module.css';\n\nexport interface RemovableProps {\n /**\n * Текст кнопки удаления ячейки. Визуально скрыт везде, кроме iOS. На iOS появляется в выезжающей кнопке для удаления ячейки.\n */\n removePlaceholder?: React.ReactNode;\n /**\n * Коллбэк срабатывает при клике на контрол удаления.\n */\n onRemove?: (e: React.MouseEvent, rootEl?: HTMLElement | null) => void;\n /**\n * (test) iOS only. testId кнопки, которая активирует кнопку удаления\n */\n toggleButtonTestId?: string;\n /**\n * (test) testId кнопки удаления\n */\n removeButtonTestId?: string;\n /**\n * Ячейка превращается в неактивную\n */\n disabled?: boolean;\n}\n\ninterface RemovableIosOwnProps extends RemovableProps {\n removePlaceholderString?: string;\n children?: React.ReactNode | ((renderProps: RemovableIosRenderProps) => React.ReactNode);\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/RemovableIos\n */\nconst RemovableIos = ({\n onRemove,\n removePlaceholder,\n removePlaceholderString,\n children: childrenProp,\n toggleButtonTestId,\n removeButtonTestId,\n disabled,\n}: RemovableIosOwnProps) => {\n const { window } = useDOM();\n\n const removeButtonRef = React.useRef<HTMLElement>(null);\n const disabledRef = React.useRef(true);\n const [removeOffset, updateRemoveOffset] = React.useState(0);\n\n useGlobalEventListener(\n window,\n 'click',\n () => {\n if (removeOffset > 0) {\n updateRemoveOffset(0);\n }\n },\n { capture: true },\n );\n\n const onRemoveTransitionEnd = () => {\n if (removeOffset > 0) {\n removeButtonRef?.current?.focus();\n } else {\n disabledRef.current = true;\n }\n };\n\n const onRemoveActivateClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!removeButtonRef.current) {\n return;\n }\n const { offsetWidth } = removeButtonRef.current;\n disabledRef.current = false;\n updateRemoveOffset(offsetWidth);\n };\n\n return (\n <div\n className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}\n style={{ transform: `translateX(-${removeOffset ?? 0}px)` }}\n onTransitionEnd={onRemoveTransitionEnd}\n >\n <IconButton\n hasActive={false}\n hasHover={false}\n className={classNames(\n styles['Removable__action'],\n styles['Removable__toggle'],\n 'vkuiInternalRemovable__action',\n )}\n onClick={onRemoveActivateClick}\n disabled={removeOffset > 0 || disabled}\n data-testid={toggleButtonTestId}\n >\n <VisuallyHidden>{removePlaceholderString}</VisuallyHidden>\n <i className={styles['Removable__toggle-in']} role=\"presentation\" />\n </IconButton>\n {typeof childrenProp === 'function'\n ? childrenProp({ isRemoving: removeOffset > 0 })\n : childrenProp}\n\n <span className={styles['Removable__offset']} aria-hidden />\n\n <Tappable\n Component=\"button\"\n hasActive={false}\n hasHover={false}\n disabled={disabledRef.current}\n getRootRef={removeButtonRef}\n className={styles['Removable__remove']}\n onClick={onRemove}\n data-testid={removeButtonTestId}\n >\n <span className={styles['Removable__remove-in']}>{removePlaceholder}</span>\n </Tappable>\n </div>\n );\n};\n\ninterface RemovableIosRenderProps {\n /**\n * Показывает состояние Removable на платформе iOS при клике на иконку удаления.\n * Для имитации поведения на iOS при клике на иконку удаления самого удаление не происходит,\n * контент сдвигается влево и справа выезжает настоящая кнопка \"Удалить\".\n * Когда контент сдвинут `isRemoving = true`.\n */\n isRemoving: boolean;\n}\n\ninterface RemovableOwnProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'children'>,\n RemovableProps {\n /**\n * Расположение кнопки удаления.\n */\n align?: 'start' | 'center';\n /**\n * Скрывает кнопку, но оставляет отступ.\n * @since 5.4.0\n */\n indent?: boolean;\n children?: React.ReactNode | ((renderProps: RemovableIosRenderProps) => React.ReactNode);\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Removable\n */\nexport const Removable = ({\n children,\n onRemove,\n removePlaceholder = 'Удалить',\n align = 'center',\n indent = false,\n toggleButtonTestId,\n removeButtonTestId,\n disabled,\n ...restProps\n}: RemovableOwnProps): React.ReactNode => {\n const platform = usePlatform();\n\n const onRemoveClick = (e: React.MouseEvent) => {\n e.preventDefault();\n onRemove?.(e);\n };\n\n const removePlaceholderString: string = getTextFromChildren(removePlaceholder);\n\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n platform === 'ios' && styles['Removable--ios'],\n align === 'start' && styles['Removable--align-start'],\n indent && styles['Removable--indent'],\n )}\n >\n {platform !== 'ios' && (\n <div className={classNames(styles['Removable__content'], 'vkuiInternalRemovable__content')}>\n {typeof children === 'function' ? children({ isRemoving: false }) : children}\n\n <IconButton\n activeMode=\"opacity\"\n hoverMode=\"opacity\"\n className={classNames(styles['Removable__action'], 'vkuiInternalRemovable__action')}\n onClick={onRemoveClick}\n label={removePlaceholderString}\n data-testid={removeButtonTestId}\n disabled={disabled}\n >\n <Icon24Cancel role=\"presentation\" />\n </IconButton>\n\n <span className={styles['Removable__offset']} aria-hidden />\n </div>\n )}\n\n {platform === 'ios' && (\n <RemovableIos\n onRemove={onRemoveClick}\n removePlaceholder={removePlaceholder}\n removePlaceholderString={removePlaceholderString}\n toggleButtonTestId={toggleButtonTestId}\n removeButtonTestId={removeButtonTestId}\n disabled={disabled}\n >\n {children}\n </RemovableIos>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","Icon24Cancel","classNames","useGlobalEventListener","usePlatform","getTextFromChildren","useDOM","IconButton","RootComponent","Tappable","VisuallyHidden","RemovableIos","onRemove","removePlaceholder","removePlaceholderString","children","childrenProp","toggleButtonTestId","removeButtonTestId","disabled","window","removeButtonRef","useRef","disabledRef","removeOffset","updateRemoveOffset","useState","capture","onRemoveTransitionEnd","current","focus","onRemoveActivateClick","e","stopPropagation","offsetWidth","div","className","style","transform","onTransitionEnd","hasActive","hasHover","onClick","data-testid","i","role","isRemoving","span","aria-hidden","Component","getRootRef","Removable","align","indent","restProps","platform","onRemoveClick","preventDefault","baseClassName","activeMode","hoverMode","label"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { HasComponent, HasRootRef } from '../../types';
|
|
2
|
+
import type { HasComponent, HasRootRef } from '../../types';
|
|
3
3
|
export interface RootComponentProps<T> extends React.AllHTMLAttributes<T>, HasRootRef<T>, HasComponent {
|
|
4
4
|
baseClassName?: string | false;
|
|
5
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RootComponent.d.ts","sourceRoot":"","sources":["../../../src/components/RootComponent/RootComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"RootComponent.d.ts","sourceRoot":"","sources":["../../../src/components/RootComponent/RootComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG5D,MAAM,WAAW,kBAAkB,CAAC,CAAC,CACnC,SAAQ,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAChC,UAAU,CAAC,CAAC,CAAC,EACb,YAAY;IACd,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CAChC;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,qEAM5B,kBAAkB,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,SAWhC,CAAC"}
|
|
@@ -14,7 +14,7 @@ import { classNames } from '@vkontakte/vkjs';
|
|
|
14
14
|
]);
|
|
15
15
|
return /*#__PURE__*/ _jsx(Component, _object_spread({
|
|
16
16
|
ref: getRootRef,
|
|
17
|
-
className: classNames(baseClassName,
|
|
17
|
+
className: classNames(className, baseClassName, "vkuiRootComponent", restProps.hidden === true && "vkuiRootComponent--hidden")
|
|
18
18
|
}, restProps));
|
|
19
19
|
};
|
|
20
20
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/RootComponent/RootComponent.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HasComponent, HasRootRef } from '../../types';\n\nexport interface RootComponentProps<T>\n extends React.AllHTMLAttributes<T>,\n HasRootRef<T>,\n HasComponent {\n baseClassName?: string | false;\n}\n\n/**\n * Базовый корневой компонент.\n */\nexport const RootComponent = <T,>({\n Component = 'div',\n baseClassName,\n className,\n getRootRef,\n ...restProps\n}: RootComponentProps<T>): React.ReactNode => (\n <Component
|
|
1
|
+
{"version":3,"sources":["../../../src/components/RootComponent/RootComponent.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HasComponent, HasRootRef } from '../../types';\nimport styles from './RootComponent.module.css';\n\nexport interface RootComponentProps<T>\n extends React.AllHTMLAttributes<T>,\n HasRootRef<T>,\n HasComponent {\n baseClassName?: string | false;\n}\n\n/**\n * Базовый корневой компонент.\n */\nexport const RootComponent = <T,>({\n Component = 'div',\n baseClassName,\n className,\n getRootRef,\n ...restProps\n}: RootComponentProps<T>): React.ReactNode => (\n <Component\n ref={getRootRef}\n className={classNames(\n className,\n baseClassName,\n styles['RootComponent'],\n restProps.hidden === true && styles['RootComponent--hidden'],\n )}\n {...restProps}\n />\n);\n"],"names":["React","classNames","RootComponent","Component","baseClassName","className","getRootRef","restProps","ref","hidden"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAW7C;;CAEC,GACD,OAAO,MAAMC,gBAAgB;QAAK,EAChCC,YAAY,KAAK,EACjBC,aAAa,EACbC,SAAS,EACTC,UAAU,EAEY,WADnBC;QAJHJ;QACAC;QACAC;QACAC;;yBAGA,KAACH;QACCK,KAAKF;QACLD,WAAWJ,WACTI,WACAD,oCAEAG,UAAUE,MAAM,KAAK;OAEnBF;EAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../../src/components/Search/Search.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAc,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAKvE,MAAM,MAAM,kBAAkB,GAAG,CAC/B,IAAI,EAAE,KAAK,CAAC,SAAS,EACrB,KAAK,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,KAC7B,KAAK,CAAC,SAAS,CAAC;AAErB,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,UAAU,CAAC,cAAc,CAAC,EAC1B,MAAM,CAAC,gBAAgB,CAAC;IAC1B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7E,WAAW,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;CAC1D;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,8NAmBhB,WAAW,KAAG,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../../src/components/Search/Search.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAc,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAKvE,MAAM,MAAM,kBAAkB,GAAG,CAC/B,IAAI,EAAE,KAAK,CAAC,SAAS,EACrB,KAAK,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,KAC7B,KAAK,CAAC,SAAS,CAAC;AAErB,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EACjD,UAAU,CAAC,cAAc,CAAC,EAC1B,MAAM,CAAC,gBAAgB,CAAC;IAC1B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,kBAAkB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7E,WAAW,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;CAC1D;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,8NAmBhB,WAAW,KAAG,KAAK,CAAC,SAwKtB,CAAC"}
|
|
@@ -21,7 +21,7 @@ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
|
|
|
21
21
|
/**
|
|
22
22
|
* @see https://vkcom.github.io/VKUI/#/Search
|
|
23
23
|
*/ export const Search = (_param)=>{
|
|
24
|
-
var { id: idProp, before = /*#__PURE__*/ _jsx(Icon16SearchOutline, {}), className, placeholder = 'Поиск', after = 'Отмена', getRef, icon: iconProp, onIconClick
|
|
24
|
+
var { id: idProp, before = /*#__PURE__*/ _jsx(Icon16SearchOutline, {}), className, placeholder = 'Поиск', after = 'Отмена', getRef, icon: iconProp, onIconClick, style, autoComplete = 'off', onChange, iconLabel, clearLabel = 'Очистить', noPadding, getRootRef, findButtonText = 'Найти', onFindButtonClick } = _param, inputProps = _object_without_properties(_param, [
|
|
25
25
|
"id",
|
|
26
26
|
"before",
|
|
27
27
|
"className",
|
|
@@ -69,7 +69,7 @@ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
|
|
|
69
69
|
}, [
|
|
70
70
|
inputRef
|
|
71
71
|
]);
|
|
72
|
-
const onIconClickStart = React.useCallback((e)=>onIconClick(e), [
|
|
72
|
+
const onIconClickStart = React.useCallback((e)=>onIconClick === null || onIconClick === void 0 ? void 0 : onIconClick(e), [
|
|
73
73
|
onIconClick
|
|
74
74
|
]);
|
|
75
75
|
const onIconCancelClickStart = React.useCallback((e)=>{
|
|
@@ -152,6 +152,7 @@ import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
|
|
|
152
152
|
onClick: onCancel,
|
|
153
153
|
className: "vkuiSearch__icon",
|
|
154
154
|
tabIndex: hasValue ? undefined : -1,
|
|
155
|
+
disabled: inputProps.disabled,
|
|
155
156
|
children: [
|
|
156
157
|
/*#__PURE__*/ _jsx(VisuallyHidden, {
|
|
157
158
|
children: clearLabel
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Search/Search.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon16Clear, Icon16SearchOutline, Icon24Cancel } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\nimport { useBooleanState } from '../../hooks/useBooleanState';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useNativeFormResetListener } from '../../hooks/useNativeFormResetListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { touchEnabled } from '../../lib/touch';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { HasRef, HasRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { IconButton, IconButtonProps } from '../IconButton/IconButton';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Search.module.css';\n\nexport type RenderIconButtonFn = (\n icon: React.ReactNode,\n props?: Partial<IconButtonProps>,\n) => React.ReactNode;\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLInputElement> {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode | ((renderFn: RenderIconButtonFn) => React.ReactNode);\n onIconClick?: React.PointerEventHandler<HTMLElement>;\n defaultValue?: string;\n iconLabel?: string;\n clearLabel?: string;\n /**\n * Удаляет отступы у компонента\n */\n noPadding?: boolean;\n /**\n * Текст для кнопки Найти\n */\n findButtonText?: string;\n /**\n * Коллбэк для кнопки Найти\n */\n onFindButtonClick?: React.MouseEventHandler<HTMLElement>;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Search\n */\nexport const Search = ({\n id: idProp,\n before = <Icon16SearchOutline />,\n className,\n placeholder = 'Поиск',\n after = 'Отмена',\n getRef,\n icon: iconProp,\n onIconClick = noop,\n style,\n autoComplete = 'off',\n onChange,\n iconLabel,\n clearLabel = 'Очистить',\n noPadding,\n getRootRef,\n findButtonText = 'Найти',\n onFindButtonClick,\n ...inputProps\n}: SearchProps): React.ReactNode => {\n const inputRef = useExternRef(getRef);\n const {\n value: isFocused,\n setTrue: setFocusedTrue,\n setFalse: setFocusedFalse,\n } = useBooleanState(false);\n const generatedId = React.useId();\n const inputId = idProp ? idProp : `search-${generatedId}`;\n\n const [hasValue, setHasValue] = React.useState<boolean>(() =>\n Boolean(inputProps.value || inputProps.defaultValue),\n );\n const checkHasValue: React.ChangeEventHandler<HTMLInputElement> = (e) =>\n setHasValue(Boolean(e.currentTarget.value));\n\n const { sizeY = 'none' } = useAdaptivity();\n const { sizeY: adaptiveSizeY } = useAdaptivityConditionalRender();\n const platform = usePlatform();\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedTrue();\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedFalse();\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.PointerEventHandler<HTMLElement> = React.useCallback(\n (e) => onIconClick(e),\n [onIconClick],\n );\n\n const onIconCancelClickStart: React.PointerEventHandler<HTMLElement> = React.useCallback(\n (e) => {\n e.preventDefault();\n inputRef.current?.focus();\n if (touchEnabled()) {\n onCancel();\n }\n },\n [inputRef, onCancel],\n );\n\n useIsomorphicLayoutEffect(() => {\n if (inputProps.value !== undefined) {\n setHasValue(Boolean(inputProps.value));\n }\n }, [inputProps.value]);\n\n useNativeFormResetListener(inputRef, () => {\n setHasValue(Boolean(inputProps.defaultValue));\n });\n\n const renderIconButton: RenderIconButtonFn = (icon, props = {}) => (\n <IconButton\n hoverMode=\"opacity\"\n onPointerDown={onIconClickStart}\n className={styles['Search__icon']}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n onClick={noop}\n {...props}\n >\n <VisuallyHidden>{iconLabel}</VisuallyHidden>\n {icon}\n </IconButton>\n );\n\n return (\n <div\n className={classNames(\n 'vkuiInternalSearch',\n styles['Search'],\n sizeY === 'none' && styles['Search--sizeY-none'],\n sizeY === 'compact' && styles['Search--sizeY-compact'],\n isFocused && styles['Search--focused'],\n hasValue && styles['Search--has-value'],\n after && styles['Search--has-after'],\n iconProp && styles['Search--has-icon'],\n inputProps.disabled && styles['Search--disabled'],\n !noPadding && styles['Search--withPadding'],\n className,\n )}\n ref={getRootRef}\n style={style}\n >\n <div className={styles['Search__field']}>\n <label htmlFor={inputId} className={styles['Search__label']}>\n {placeholder}\n </label>\n <div className={styles['Search__input']}>\n {before}\n <Headline\n Component=\"input\"\n type=\"search\"\n level=\"1\"\n weight=\"3\"\n {...inputProps}\n id={inputId}\n placeholder={placeholder}\n autoComplete={autoComplete}\n getRootRef={inputRef}\n className={styles['Search__nativeInput']}\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={callMultiple(onChange, checkHasValue)}\n />\n </div>\n <div className={styles['Search__controls']}>\n {iconProp &&\n (typeof iconProp === 'function'\n ? iconProp(renderIconButton)\n : renderIconButton(iconProp))}\n <IconButton\n hoverMode=\"opacity\"\n onPointerDown={onIconCancelClickStart}\n onClick={onCancel}\n className={styles['Search__icon']}\n tabIndex={hasValue ? undefined : -1}\n >\n <VisuallyHidden>{clearLabel}</VisuallyHidden>\n {platform === 'ios' ? <Icon16Clear /> : <Icon24Cancel />}\n </IconButton>\n {adaptiveSizeY.compact && onFindButtonClick && (\n <Button\n mode=\"primary\"\n size=\"m\"\n className={classNames(styles['Search__findButton'], adaptiveSizeY.compact.className)}\n focusVisibleMode=\"inside\"\n onClick={onFindButtonClick}\n tabIndex={hasValue ? undefined : -1}\n >\n {findButtonText}\n </Button>\n )}\n </div>\n </div>\n {platform === 'ios' && after && (\n <Button\n mode=\"tertiary\"\n size=\"m\"\n className={styles['Search__after']}\n focusVisibleMode=\"inside\"\n onClick={onCancel}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n >\n <span className={styles['Search__afterText']}>{after}</span>\n </Button>\n )}\n </div>\n );\n};\n"],"names":["React","Icon16Clear","Icon16SearchOutline","Icon24Cancel","classNames","noop","useAdaptivity","useAdaptivityConditionalRender","useBooleanState","useExternRef","useNativeFormResetListener","usePlatform","callMultiple","touchEnabled","useIsomorphicLayoutEffect","Button","IconButton","Headline","VisuallyHidden","Search","id","idProp","before","className","placeholder","after","getRef","icon","iconProp","onIconClick","style","autoComplete","onChange","iconLabel","clearLabel","noPadding","getRootRef","findButtonText","onFindButtonClick","inputProps","inputRef","value","isFocused","setTrue","setFocusedTrue","setFalse","setFocusedFalse","generatedId","useId","inputId","hasValue","setHasValue","useState","Boolean","defaultValue","checkHasValue","e","currentTarget","sizeY","adaptiveSizeY","platform","onFocus","onBlur","onCancel","useCallback","Object","nativeInputValueSetter","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","onIconCancelClickStart","preventDefault","focus","undefined","renderIconButton","props","hoverMode","onPointerDown","onClick","div","disabled","ref","label","htmlFor","Component","type","level","weight","tabIndex","compact","mode","size","focusVisibleMode","span"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Search/Search.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon16Clear, Icon16SearchOutline, Icon24Cancel } from '@vkontakte/icons';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';\nimport { useBooleanState } from '../../hooks/useBooleanState';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useNativeFormResetListener } from '../../hooks/useNativeFormResetListener';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { touchEnabled } from '../../lib/touch';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { HasRef, HasRootRef } from '../../types';\nimport { Button } from '../Button/Button';\nimport { IconButton, IconButtonProps } from '../IconButton/IconButton';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Search.module.css';\n\nexport type RenderIconButtonFn = (\n icon: React.ReactNode,\n props?: Partial<IconButtonProps>,\n) => React.ReactNode;\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLInputElement> {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode | ((renderFn: RenderIconButtonFn) => React.ReactNode);\n onIconClick?: React.PointerEventHandler<HTMLElement>;\n defaultValue?: string;\n iconLabel?: string;\n clearLabel?: string;\n /**\n * Удаляет отступы у компонента\n */\n noPadding?: boolean;\n /**\n * Текст для кнопки Найти\n */\n findButtonText?: string;\n /**\n * Коллбэк для кнопки Найти\n */\n onFindButtonClick?: React.MouseEventHandler<HTMLElement>;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Search\n */\nexport const Search = ({\n id: idProp,\n before = <Icon16SearchOutline />,\n className,\n placeholder = 'Поиск',\n after = 'Отмена',\n getRef,\n icon: iconProp,\n onIconClick,\n style,\n autoComplete = 'off',\n onChange,\n iconLabel,\n clearLabel = 'Очистить',\n noPadding,\n getRootRef,\n findButtonText = 'Найти',\n onFindButtonClick,\n ...inputProps\n}: SearchProps): React.ReactNode => {\n const inputRef = useExternRef(getRef);\n const {\n value: isFocused,\n setTrue: setFocusedTrue,\n setFalse: setFocusedFalse,\n } = useBooleanState(false);\n const generatedId = React.useId();\n const inputId = idProp ? idProp : `search-${generatedId}`;\n\n const [hasValue, setHasValue] = React.useState<boolean>(() =>\n Boolean(inputProps.value || inputProps.defaultValue),\n );\n const checkHasValue: React.ChangeEventHandler<HTMLInputElement> = (e) =>\n setHasValue(Boolean(e.currentTarget.value));\n\n const { sizeY = 'none' } = useAdaptivity();\n const { sizeY: adaptiveSizeY } = useAdaptivityConditionalRender();\n const platform = usePlatform();\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedTrue();\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedFalse();\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.PointerEventHandler<HTMLElement> = React.useCallback(\n (e) => onIconClick?.(e),\n [onIconClick],\n );\n\n const onIconCancelClickStart: React.PointerEventHandler<HTMLElement> = React.useCallback(\n (e) => {\n e.preventDefault();\n inputRef.current?.focus();\n if (touchEnabled()) {\n onCancel();\n }\n },\n [inputRef, onCancel],\n );\n\n useIsomorphicLayoutEffect(() => {\n if (inputProps.value !== undefined) {\n setHasValue(Boolean(inputProps.value));\n }\n }, [inputProps.value]);\n\n useNativeFormResetListener(inputRef, () => {\n setHasValue(Boolean(inputProps.defaultValue));\n });\n\n const renderIconButton: RenderIconButtonFn = (icon, props = {}) => (\n <IconButton\n hoverMode=\"opacity\"\n onPointerDown={onIconClickStart}\n className={styles['Search__icon']}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n onClick={noop}\n {...props}\n >\n <VisuallyHidden>{iconLabel}</VisuallyHidden>\n {icon}\n </IconButton>\n );\n\n return (\n <div\n className={classNames(\n 'vkuiInternalSearch',\n styles['Search'],\n sizeY === 'none' && styles['Search--sizeY-none'],\n sizeY === 'compact' && styles['Search--sizeY-compact'],\n isFocused && styles['Search--focused'],\n hasValue && styles['Search--has-value'],\n after && styles['Search--has-after'],\n iconProp && styles['Search--has-icon'],\n inputProps.disabled && styles['Search--disabled'],\n !noPadding && styles['Search--withPadding'],\n className,\n )}\n ref={getRootRef}\n style={style}\n >\n <div className={styles['Search__field']}>\n <label htmlFor={inputId} className={styles['Search__label']}>\n {placeholder}\n </label>\n <div className={styles['Search__input']}>\n {before}\n <Headline\n Component=\"input\"\n type=\"search\"\n level=\"1\"\n weight=\"3\"\n {...inputProps}\n id={inputId}\n placeholder={placeholder}\n autoComplete={autoComplete}\n getRootRef={inputRef}\n className={styles['Search__nativeInput']}\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={callMultiple(onChange, checkHasValue)}\n />\n </div>\n <div className={styles['Search__controls']}>\n {iconProp &&\n (typeof iconProp === 'function'\n ? iconProp(renderIconButton)\n : renderIconButton(iconProp))}\n <IconButton\n hoverMode=\"opacity\"\n onPointerDown={onIconCancelClickStart}\n onClick={onCancel}\n className={styles['Search__icon']}\n tabIndex={hasValue ? undefined : -1}\n disabled={inputProps.disabled}\n >\n <VisuallyHidden>{clearLabel}</VisuallyHidden>\n {platform === 'ios' ? <Icon16Clear /> : <Icon24Cancel />}\n </IconButton>\n {adaptiveSizeY.compact && onFindButtonClick && (\n <Button\n mode=\"primary\"\n size=\"m\"\n className={classNames(styles['Search__findButton'], adaptiveSizeY.compact.className)}\n focusVisibleMode=\"inside\"\n onClick={onFindButtonClick}\n tabIndex={hasValue ? undefined : -1}\n >\n {findButtonText}\n </Button>\n )}\n </div>\n </div>\n {platform === 'ios' && after && (\n <Button\n mode=\"tertiary\"\n size=\"m\"\n className={styles['Search__after']}\n focusVisibleMode=\"inside\"\n onClick={onCancel}\n onFocus={setFocusedTrue}\n onBlur={setFocusedFalse}\n >\n <span className={styles['Search__afterText']}>{after}</span>\n </Button>\n )}\n </div>\n );\n};\n"],"names":["React","Icon16Clear","Icon16SearchOutline","Icon24Cancel","classNames","noop","useAdaptivity","useAdaptivityConditionalRender","useBooleanState","useExternRef","useNativeFormResetListener","usePlatform","callMultiple","touchEnabled","useIsomorphicLayoutEffect","Button","IconButton","Headline","VisuallyHidden","Search","id","idProp","before","className","placeholder","after","getRef","icon","iconProp","onIconClick","style","autoComplete","onChange","iconLabel","clearLabel","noPadding","getRootRef","findButtonText","onFindButtonClick","inputProps","inputRef","value","isFocused","setTrue","setFocusedTrue","setFalse","setFocusedFalse","generatedId","useId","inputId","hasValue","setHasValue","useState","Boolean","defaultValue","checkHasValue","e","currentTarget","sizeY","adaptiveSizeY","platform","onFocus","onBlur","onCancel","useCallback","Object","nativeInputValueSetter","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","onIconCancelClickStart","preventDefault","focus","undefined","renderIconButton","props","hoverMode","onPointerDown","onClick","div","disabled","ref","label","htmlFor","Component","type","level","weight","tabIndex","compact","mode","size","focusVisibleMode","span"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,WAAW,EACjB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,SAAS,2BAA2B,qCAI/D,WAAW,CAAC,OAAO,CAAC,KAAG,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,WAAW,EACjB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,OAAO,SAAS,2BAA2B,qCAI/D,WAAW,CAAC,OAAO,CAAC,KAAG,KAAK,CAAC,SAyD/B,CAAC"}
|