@invoicebox/ui 0.1.0-alpha.318 → 0.1.0-alpha.319
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/components/common/AppCardLink/index.js +1 -2
- package/dist/components/common/Arrow/components/StyledSvg/index.js +3 -2
- package/dist/components/common/BgCard/index.js +1 -2
- package/dist/components/common/BgCard/styles.js +1 -2
- package/dist/components/common/Calendar/index.js +1 -2
- package/dist/components/common/Calendar/index.stories.js +1 -2
- package/dist/components/common/Calendar/styles.js +1 -2
- package/dist/components/common/Divider/index.js +1 -2
- package/dist/components/common/Drawer/index.js +3 -3
- package/dist/components/common/Drawer/index.stories.js +1 -2
- package/dist/components/common/Drawer/styles.js +6 -6
- package/dist/components/common/Dropdown/index.d.ts +1 -0
- package/dist/components/common/Dropdown/index.js +4 -3
- package/dist/components/common/Dropdown/styles.js +11 -11
- package/dist/components/common/EntityAutocompleteOptionsDrawer/index.js +1 -2
- package/dist/components/common/EntityAutocompleteOptionsDrawer/index.stories.js +1 -2
- package/dist/components/common/ErrorBoundary/index.d.ts +15 -0
- package/dist/components/common/ErrorBoundary/index.js +64 -0
- package/dist/components/common/Flag/components/AreFlag/index.d.ts +1 -0
- package/dist/components/common/Flag/components/AreFlag/index.js +37 -0
- package/dist/components/common/Flag/components/AreFlag/index.stories.d.ts +5 -0
- package/dist/components/common/Flag/components/AreFlag/index.stories.js +14 -0
- package/dist/components/common/Flag/components/AusFlag/index.d.ts +1 -0
- package/dist/components/common/Flag/components/AusFlag/index.js +87 -0
- package/dist/components/common/Flag/components/AusFlag/index.stories.d.ts +5 -0
- package/dist/components/common/Flag/components/AusFlag/index.stories.js +14 -0
- package/dist/components/common/Flag/components/DeuFlag/index.d.ts +1 -0
- package/dist/components/common/Flag/components/DeuFlag/index.js +32 -0
- package/dist/components/common/Flag/components/DeuFlag/index.stories.d.ts +5 -0
- package/dist/components/common/Flag/components/DeuFlag/index.stories.js +14 -0
- package/dist/components/common/Flag/components/EcuFlag/index.d.ts +1 -0
- package/dist/components/common/Flag/components/EcuFlag/index.js +42 -0
- package/dist/components/common/Flag/components/EcuFlag/index.stories.d.ts +5 -0
- package/dist/components/common/Flag/components/EcuFlag/index.stories.js +14 -0
- package/dist/components/common/Flag/components/FraFlag/index.d.ts +1 -0
- package/dist/components/common/Flag/components/FraFlag/index.js +32 -0
- package/dist/components/common/Flag/components/FraFlag/index.stories.d.ts +5 -0
- package/dist/components/common/Flag/components/FraFlag/index.stories.js +14 -0
- package/dist/components/common/Flag/components/IndFlag/index.d.ts +1 -0
- package/dist/components/common/Flag/components/IndFlag/index.js +47 -0
- package/dist/components/common/Flag/components/IndFlag/index.stories.d.ts +5 -0
- package/dist/components/common/Flag/components/IndFlag/index.stories.js +14 -0
- package/dist/components/common/Flag/components/SauFlag/index.d.ts +1 -0
- package/dist/components/common/Flag/components/SauFlag/index.js +37 -0
- package/dist/components/common/Flag/components/SauFlag/index.stories.d.ts +5 -0
- package/dist/components/common/Flag/components/SauFlag/index.stories.js +14 -0
- package/dist/components/common/Flag/components/SrbFlag/index.d.ts +1 -0
- package/dist/components/common/Flag/components/SrbFlag/index.js +42 -0
- package/dist/components/common/Flag/components/SrbFlag/index.stories.d.ts +5 -0
- package/dist/components/common/Flag/components/SrbFlag/index.stories.js +14 -0
- package/dist/components/common/Flag/components/SvkFlag/index.d.ts +1 -0
- package/dist/components/common/Flag/components/SvkFlag/index.js +47 -0
- package/dist/components/common/Flag/components/SvkFlag/index.stories.d.ts +5 -0
- package/dist/components/common/Flag/components/SvkFlag/index.stories.js +14 -0
- package/dist/components/common/Flag/components/SvnFlag/index.d.ts +1 -0
- package/dist/components/common/Flag/components/SvnFlag/index.js +42 -0
- package/dist/components/common/Flag/components/SvnFlag/index.stories.d.ts +5 -0
- package/dist/components/common/Flag/components/SvnFlag/index.stories.js +14 -0
- package/dist/components/common/Flag/components/TurFlag/index.d.ts +1 -0
- package/dist/components/common/Flag/components/TurFlag/index.js +32 -0
- package/dist/components/common/Flag/components/TurFlag/index.stories.d.ts +5 -0
- package/dist/components/common/Flag/components/TurFlag/index.stories.js +14 -0
- package/dist/components/common/Flag/index.d.ts +2 -2
- package/dist/components/common/Flag/index.js +24 -3
- package/dist/components/common/Flag/index.stories.d.ts +1 -0
- package/dist/components/common/Flag/index.stories.js +26 -1
- package/dist/components/common/Flag/styles.js +1 -2
- package/dist/components/common/InvoiceboxSpinner/index.js +1 -2
- package/dist/components/common/InvoiceboxSpinner/styles.js +1 -2
- package/dist/components/common/PointsLoader/index.js +1 -2
- package/dist/components/common/QRCode/index.js +2 -2
- package/dist/components/common/ReadOnlyLabelValueField/index.js +1 -2
- package/dist/components/common/Scrollbar/index.js +1 -2
- package/dist/components/common/Scrollbar/styles.js +1 -2
- package/dist/components/common/SecondaryButton/index.js +3 -4
- package/dist/components/common/SecondaryButton/styles.js +4 -4
- package/dist/components/common/Skeleton/index.js +1 -2
- package/dist/components/common/Skeleton/styles.js +4 -4
- package/dist/components/common/Toast/index.d.ts +6 -2
- package/dist/components/common/Toast/index.js +12 -4
- package/dist/components/common/Tooltip/index.js +12 -3
- package/dist/components/common/Typography/index.js +3 -4
- package/dist/components/common/WarningIcon/index.js +1 -2
- package/dist/components/form/Autocomplete/components/Autocomplete/index.js +16 -4
- package/dist/components/form/Autocomplete/components/Autocomplete/index.stories.js +1 -2
- package/dist/components/form/Autocomplete/components/AutocompleteDefaultOption/index.js +3 -2
- package/dist/components/form/Autocomplete/components/OrganizationAutocompleteItem/index.js +1 -2
- package/dist/components/form/Checkbox/index.js +3 -4
- package/dist/components/form/Checkbox/index.stories.js +1 -2
- package/dist/components/form/Checkbox/styles.js +11 -4
- package/dist/components/form/CodeInput/index.js +4 -3
- package/dist/components/form/CodeInput/index.stories.js +1 -2
- package/dist/components/form/CountrySelect/components/CountryItem/index.js +1 -2
- package/dist/components/form/CountrySelect/index.js +3 -4
- package/dist/components/form/CurrencyInput/CoreCurrencyInput/index.js +1 -2
- package/dist/components/form/CurrencyInput/CoreCurrencyInput/index.stories.js +1 -2
- package/dist/components/form/CurrencyInput/CurrencyInputNumber/index.js +2 -2
- package/dist/components/form/CurrencyInput/CurrencyInputNumber/index.stories.js +1 -2
- package/dist/components/form/CurrencyInput/CurrencyInputString/index.js +2 -2
- package/dist/components/form/CurrencyInput/CurrencyInputString/index.stories.js +1 -2
- package/dist/components/form/DateInput/components/CalendarIcon/index.js +1 -2
- package/dist/components/form/DateInput/components/MobileDrawerDateCalendar/index.js +1 -2
- package/dist/components/form/DateInput/components/MobileDrawerDateCalendar/index.stories.js +1 -2
- package/dist/components/form/DateInput/index.js +3 -3
- package/dist/components/form/DateInput/index.stories.js +1 -2
- package/dist/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/index.js +1 -2
- package/dist/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/index.stories.js +1 -2
- package/dist/components/form/DateTimeInput/components/MobileNumbersColumn/index.js +1 -2
- package/dist/components/form/DateTimeInput/components/MobileNumbersColumn/styles.js +4 -4
- package/dist/components/form/DateTimeInput/components/TimePicker/index.js +1 -2
- package/dist/components/form/DateTimeInput/components/TimePicker/index.stories.js +1 -2
- package/dist/components/form/DateTimeInput/index.js +3 -3
- package/dist/components/form/DateTimeInput/index.stories.js +1 -2
- package/dist/components/form/InputLabel/index.js +1 -2
- package/dist/components/form/InputLabel/styles.js +4 -4
- package/dist/components/form/ModernPlaceholder/index.js +1 -2
- package/dist/components/form/ModernPlaceholder/styles.js +3 -2
- package/dist/components/form/PhoneInput/constants.js +98 -0
- package/dist/components/form/PhoneInput/index.js +4 -3
- package/dist/components/form/PhoneInput/index.stories.js +43 -2
- package/dist/components/form/PhoneInput/phoneInputLogic.d.ts +2 -2
- package/dist/components/form/PhoneInput/types.d.ts +1 -1
- package/dist/components/form/PhoneInput/types.js +1 -1
- package/dist/components/form/PositiveIntegerInput/index.js +1 -2
- package/dist/components/form/PositiveIntegerInput/index.stories.js +1 -2
- package/dist/components/form/PositiveIntegerInput/styles.js +1 -2
- package/dist/components/form/PureInput/index.js +3 -4
- package/dist/components/form/PureInput/styles.js +5 -4
- package/dist/components/form/ResetButton/index.js +1 -2
- package/dist/components/form/SearchInput/index.js +4 -3
- package/dist/components/form/SearchInput/index.stories.js +1 -2
- package/dist/components/form/SearchInput/styles.js +3 -2
- package/dist/components/form/Select/components/Input/index.d.ts +2 -0
- package/dist/components/form/Select/components/Input/index.js +8 -4
- package/dist/components/form/Select/components/Loader/index.js +1 -2
- package/dist/components/form/Select/components/MultipleValue/index.js +1 -2
- package/dist/components/form/Select/components/MultipleValue/styles.js +1 -2
- package/dist/components/form/Select/index.js +111 -11
- package/dist/components/form/Select/index.stories.js +1 -2
- package/dist/components/form/Select/styles.d.ts +1 -0
- package/dist/components/form/Select/styles.js +18 -14
- package/dist/components/form/TagsInput/index.js +1 -2
- package/dist/components/form/TagsInput/index.stories.js +1 -2
- package/dist/components/form/TagsInput/styles.js +2 -2
- package/dist/components/form/TextInput/index.d.ts +1 -1
- package/dist/components/form/TextInput/index.js +4 -3
- package/dist/components/form/TextInput/index.stories.js +1 -2
- package/dist/components/form/Toggle/index.js +4 -4
- package/dist/components/form/Toggle/index.stories.js +1 -2
- package/dist/components/form/Toggle/styles.js +14 -10
- package/dist/components/form/_hooks/useInputStyles.js +1 -2
- package/dist/components/form/common/DrawerHeader/index.js +1 -2
- package/dist/esm/components/common/Arrow/components/StyledSvg/index.js +3 -2
- package/dist/esm/components/common/Drawer/index.js +2 -1
- package/dist/esm/components/common/Drawer/styles.js +5 -4
- package/dist/esm/components/common/Dropdown/index.js +3 -1
- package/dist/esm/components/common/Dropdown/styles.js +11 -9
- package/dist/esm/components/common/ErrorBoundary/index.js +58 -0
- package/dist/esm/components/common/Flag/components/AreFlag/index.js +30 -0
- package/dist/esm/components/common/Flag/components/AreFlag/index.stories.js +8 -0
- package/dist/esm/components/common/Flag/components/AusFlag/index.js +80 -0
- package/dist/esm/components/common/Flag/components/AusFlag/index.stories.js +8 -0
- package/dist/esm/components/common/Flag/components/DeuFlag/index.js +25 -0
- package/dist/esm/components/common/Flag/components/DeuFlag/index.stories.js +8 -0
- package/dist/esm/components/common/Flag/components/EcuFlag/index.js +35 -0
- package/dist/esm/components/common/Flag/components/EcuFlag/index.stories.js +8 -0
- package/dist/esm/components/common/Flag/components/FraFlag/index.js +25 -0
- package/dist/esm/components/common/Flag/components/FraFlag/index.stories.js +8 -0
- package/dist/esm/components/common/Flag/components/IndFlag/index.js +40 -0
- package/dist/esm/components/common/Flag/components/IndFlag/index.stories.js +8 -0
- package/dist/esm/components/common/Flag/components/SauFlag/index.js +30 -0
- package/dist/esm/components/common/Flag/components/SauFlag/index.stories.js +8 -0
- package/dist/esm/components/common/Flag/components/SrbFlag/index.js +35 -0
- package/dist/esm/components/common/Flag/components/SrbFlag/index.stories.js +8 -0
- package/dist/esm/components/common/Flag/components/SvkFlag/index.js +40 -0
- package/dist/esm/components/common/Flag/components/SvkFlag/index.stories.js +8 -0
- package/dist/esm/components/common/Flag/components/SvnFlag/index.js +35 -0
- package/dist/esm/components/common/Flag/components/SvnFlag/index.stories.js +8 -0
- package/dist/esm/components/common/Flag/components/TurFlag/index.js +25 -0
- package/dist/esm/components/common/Flag/components/TurFlag/index.stories.js +8 -0
- package/dist/esm/components/common/Flag/index.js +23 -1
- package/dist/esm/components/common/Flag/index.stories.js +24 -0
- package/dist/esm/components/common/QRCode/index.js +2 -2
- package/dist/esm/components/common/SecondaryButton/index.js +2 -2
- package/dist/esm/components/common/SecondaryButton/styles.js +3 -2
- package/dist/esm/components/common/Skeleton/styles.js +3 -2
- package/dist/esm/components/common/Toast/index.js +11 -2
- package/dist/esm/components/common/Tooltip/index.js +12 -2
- package/dist/esm/components/common/Typography/index.js +2 -2
- package/dist/esm/components/form/Autocomplete/components/Autocomplete/index.js +15 -2
- package/dist/esm/components/form/Autocomplete/components/AutocompleteDefaultOption/index.js +3 -2
- package/dist/esm/components/form/Checkbox/index.js +2 -2
- package/dist/esm/components/form/Checkbox/styles.js +11 -4
- package/dist/esm/components/form/CodeInput/index.js +3 -1
- package/dist/esm/components/form/CountrySelect/index.js +2 -2
- package/dist/esm/components/form/CurrencyInput/CurrencyInputNumber/index.js +2 -2
- package/dist/esm/components/form/CurrencyInput/CurrencyInputString/index.js +2 -2
- package/dist/esm/components/form/DateInput/index.js +2 -1
- package/dist/esm/components/form/DateTimeInput/components/MobileNumbersColumn/styles.js +3 -2
- package/dist/esm/components/form/DateTimeInput/index.js +2 -1
- package/dist/esm/components/form/InputLabel/styles.js +3 -2
- package/dist/esm/components/form/ModernPlaceholder/styles.js +3 -2
- package/dist/esm/components/form/PhoneInput/constants.js +98 -0
- package/dist/esm/components/form/PhoneInput/index.js +3 -1
- package/dist/esm/components/form/PhoneInput/index.stories.js +42 -0
- package/dist/esm/components/form/PhoneInput/types.js +1 -1
- package/dist/esm/components/form/PureInput/index.js +2 -2
- package/dist/esm/components/form/PureInput/styles.js +5 -4
- package/dist/esm/components/form/SearchInput/index.js +3 -1
- package/dist/esm/components/form/SearchInput/styles.js +3 -2
- package/dist/esm/components/form/Select/components/Input/index.js +7 -2
- package/dist/esm/components/form/Select/index.js +111 -10
- package/dist/esm/components/form/Select/styles.js +17 -12
- package/dist/esm/components/form/TagsInput/styles.js +2 -2
- package/dist/esm/components/form/TextInput/index.js +3 -1
- package/dist/esm/components/form/Toggle/index.js +3 -2
- package/dist/esm/components/form/Toggle/styles.js +14 -10
- package/dist/esm/utils/reducedMotion.js +8 -0
- package/dist/esm/utils/transformColorByHsl.js +117 -4
- package/dist/esm/utils/transformColorByHsl.test.js +49 -0
- package/dist/hooks/useUnupdatableHandler/index.stories.js +1 -2
- package/dist/palette/context.js +46 -46
- package/dist/palette/provider.js +47 -48
- package/dist/utils/reducedMotion.d.ts +1 -0
- package/dist/utils/reducedMotion.js +13 -0
- package/dist/utils/transformColorByHsl.js +117 -4
- package/dist/utils/transformColorByHsl.test.d.ts +1 -0
- package/dist/utils/transformColorByHsl.test.js +50 -0
- package/package.json +2 -1
|
@@ -77,6 +77,48 @@ export var MultiCountry = {
|
|
|
77
77
|
}, {
|
|
78
78
|
label: 'Узбекистан',
|
|
79
79
|
value: 'UZB'
|
|
80
|
+
}, {
|
|
81
|
+
label: 'Китай',
|
|
82
|
+
value: 'CHN'
|
|
83
|
+
}, {
|
|
84
|
+
label: 'Испания',
|
|
85
|
+
value: 'ESP'
|
|
86
|
+
}, {
|
|
87
|
+
label: 'Великобритания',
|
|
88
|
+
value: 'GBR'
|
|
89
|
+
}, {
|
|
90
|
+
label: 'ОАЭ',
|
|
91
|
+
value: 'ARE'
|
|
92
|
+
}, {
|
|
93
|
+
label: 'Франция',
|
|
94
|
+
value: 'FRA'
|
|
95
|
+
}, {
|
|
96
|
+
label: 'Сербия',
|
|
97
|
+
value: 'SRB'
|
|
98
|
+
}, {
|
|
99
|
+
label: 'Индия',
|
|
100
|
+
value: 'IND'
|
|
101
|
+
}, {
|
|
102
|
+
label: 'Турция',
|
|
103
|
+
value: 'TUR'
|
|
104
|
+
}, {
|
|
105
|
+
label: 'Словения',
|
|
106
|
+
value: 'SVN'
|
|
107
|
+
}, {
|
|
108
|
+
label: 'Словакия',
|
|
109
|
+
value: 'SVK'
|
|
110
|
+
}, {
|
|
111
|
+
label: 'Эквадор',
|
|
112
|
+
value: 'ECU'
|
|
113
|
+
}, {
|
|
114
|
+
label: 'Германия',
|
|
115
|
+
value: 'DEU'
|
|
116
|
+
}, {
|
|
117
|
+
label: 'Австралия',
|
|
118
|
+
value: 'AUS'
|
|
119
|
+
}, {
|
|
120
|
+
label: 'Саудовская Аравия',
|
|
121
|
+
value: 'SAU'
|
|
80
122
|
}]
|
|
81
123
|
}),
|
|
82
124
|
render: Component
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export var RUS_COUNTRY_CODE = 'RUS';
|
|
2
2
|
export var UNKNOWN_COUNTRY_CODE = 'UNKNOWN';
|
|
3
|
-
export var supportedCountries = [RUS_COUNTRY_CODE, 'BLR', 'AZE', 'ARM', 'KAZ', 'TJK', 'UZB', 'KGZ', UNKNOWN_COUNTRY_CODE];
|
|
3
|
+
export var supportedCountries = [RUS_COUNTRY_CODE, 'BLR', 'AZE', 'ARM', 'KAZ', 'TJK', 'UZB', 'KGZ', 'CHN', 'ESP', 'GBR', 'ARE', 'FRA', 'SRB', 'IND', 'TUR', 'SVN', 'SVK', 'ECU', 'DEU', 'AUS', 'SAU', UNKNOWN_COUNTRY_CODE];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var _excluded = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "borderRadius", "hasError", "inFocus", "hasBorder", "isOnlyNumbers", "className", "onChange", "element", "variant", "renderedValue", "useModernStyles", "id"];
|
|
2
2
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var
|
|
4
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.
|
|
3
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
4
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
5
5
|
import React, { useCallback, useId } from 'react';
|
|
6
6
|
import * as S from './styles';
|
|
7
7
|
import { useComponentPalette } from '../../../palette';
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import styled from 'styled-components';
|
|
2
|
+
import { reducedMotion } from '../../../utils/reducedMotion';
|
|
2
3
|
import { InputWithTypography } from '../../common/Typography';
|
|
3
4
|
import { typography } from '../../common/Typography/typography';
|
|
4
5
|
export var getPureInputStyled = function getPureInputStyled(component) {
|
|
5
6
|
return styled(component).withConfig({
|
|
6
7
|
displayName: "styles",
|
|
7
8
|
componentId: "sc-1g8ijo6-0"
|
|
8
|
-
})(["", " resize:none;color:", ";border-radius:", "px;border:none;width:100%;text-overflow:ellipsis;background-color:", ";transition:all 0.2s ease-in-out 0s;box-sizing:border-box;padding-right:", "px;padding-left:", "px;padding-top:", "px;padding-bottom:", "px;outline:1px solid ", ";&::placeholder{color:", ";}&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}&:-webkit-autofill,&:-webkit-autofill:hover,&:-webkit-autofill:focus{transition:background-color 0s 600000s,color 0s 600000s !important;}"], function (_ref) {
|
|
9
|
+
})(["", " resize:none;color:", ";border-radius:", "px;border:none;width:100%;text-overflow:ellipsis;background-color:", ";transition:all 0.2s ease-in-out 0s;box-sizing:border-box;padding-right:", "px;padding-left:", "px;padding-top:", "px;padding-bottom:", "px;outline:1px solid ", ";&::placeholder{color:", ";}&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}&[type='number']{-moz-appearance:textfield;}&:-webkit-autofill,&:-webkit-autofill:hover,&:-webkit-autofill:focus{transition:background-color 0s 600000s,color 0s 600000s !important;}", ""], function (_ref) {
|
|
9
10
|
var $variant = _ref.$variant;
|
|
10
11
|
return $variant && typography[$variant];
|
|
11
12
|
}, function (_ref2) {
|
|
@@ -36,9 +37,9 @@ export var getPureInputStyled = function getPureInputStyled(component) {
|
|
|
36
37
|
$hasBorder = _ref9.$hasBorder,
|
|
37
38
|
$palette = _ref9.$palette;
|
|
38
39
|
return !$hasBorder ? 'transparent' : $hasError ? $palette.error : $inFocus ? $palette.borderFocus : $palette.border;
|
|
39
|
-
}, function (
|
|
40
|
-
var $palette =
|
|
40
|
+
}, function (_ref0) {
|
|
41
|
+
var $palette = _ref0.$palette;
|
|
41
42
|
return $palette.placeholder;
|
|
42
|
-
});
|
|
43
|
+
}, reducedMotion);
|
|
43
44
|
};
|
|
44
45
|
export var Wrapper = getPureInputStyled(InputWithTypography);
|
|
@@ -68,7 +68,9 @@ export var SearchInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
68
68
|
value: value,
|
|
69
69
|
onFocus: handleFocus,
|
|
70
70
|
onBlur: handleBlur,
|
|
71
|
-
inFocus: inFocus
|
|
71
|
+
inFocus: inFocus
|
|
72
|
+
// eslint-disable-next-line jsx-a11y/no-autofocus -- проп прокидывается потребителю, решение об автофокусе за ним
|
|
73
|
+
,
|
|
72
74
|
autoFocus: autoFocus,
|
|
73
75
|
name: name,
|
|
74
76
|
maxLength: maxLength,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import styled from 'styled-components';
|
|
2
|
+
import { reducedMotion } from '../../../utils/reducedMotion';
|
|
2
3
|
export var IconWrapper = styled.span.withConfig({
|
|
3
4
|
displayName: "styles__IconWrapper",
|
|
4
5
|
componentId: "sc-1cx3n6g-0"
|
|
5
|
-
})(["position:absolute;right:20px;bottom:", ";transform:translateY(50%);display:flex;align-content:center;justify-content:center;opacity:", ";transition:all 0.2s ease-in-out 0s;color:", ";"], function (_ref) {
|
|
6
|
+
})(["position:absolute;right:20px;bottom:", ";transform:translateY(50%);display:flex;align-content:center;justify-content:center;opacity:", ";transition:all 0.2s ease-in-out 0s;color:", ";", ""], function (_ref) {
|
|
6
7
|
var $useModernStyles = _ref.$useModernStyles;
|
|
7
8
|
return !$useModernStyles ? "calc(50% - 5px)" : '50%';
|
|
8
9
|
}, function (_ref2) {
|
|
@@ -11,4 +12,4 @@ export var IconWrapper = styled.span.withConfig({
|
|
|
11
12
|
}, function (_ref3) {
|
|
12
13
|
var $palette = _ref3.$palette;
|
|
13
14
|
return $palette.icon;
|
|
14
|
-
});
|
|
15
|
+
}, reducedMotion);
|
|
@@ -24,7 +24,8 @@ export var Input = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
24
24
|
required = _ref.required,
|
|
25
25
|
_ref$useModernStyles = _ref.useModernStyles,
|
|
26
26
|
useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles,
|
|
27
|
-
id = _ref.id
|
|
27
|
+
id = _ref.id,
|
|
28
|
+
comboboxProps = _ref.comboboxProps;
|
|
28
29
|
var fallbackId = useId();
|
|
29
30
|
var inputId = id !== null && id !== void 0 ? id : fallbackId;
|
|
30
31
|
var _useInputStyles = useInputStyles({
|
|
@@ -65,7 +66,11 @@ export var Input = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
65
66
|
paddingRight: 52,
|
|
66
67
|
onClick: onClick,
|
|
67
68
|
useModernStyles: useModernStyles
|
|
68
|
-
|
|
69
|
+
// с renderedValue PureInput рендерится как div — без tabIndex
|
|
70
|
+
// он был бы недостижим с клавиатуры
|
|
71
|
+
,
|
|
72
|
+
tabIndex: renderedValue ? 0 : undefined
|
|
73
|
+
}, comboboxProps, paddingAndVariantOptions)), /*#__PURE__*/React.createElement(S.IconWrapper, {
|
|
69
74
|
$pointerEvents: isShowResetIcon ? 'default' : 'none'
|
|
70
75
|
}, isShowResetIcon ? /*#__PURE__*/React.createElement(ResetButton, {
|
|
71
76
|
onClick: onReset
|
|
@@ -8,7 +8,7 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
8
8
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
9
9
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
10
10
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
11
|
-
import React, { Fragment, useCallback, useMemo, useRef, useState } from 'react';
|
|
11
|
+
import React, { Fragment, useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';
|
|
12
12
|
import * as S from './styles';
|
|
13
13
|
import { Input } from './components/Input';
|
|
14
14
|
import { useInputFocus } from '../../../hooks/useInputFocus';
|
|
@@ -21,9 +21,10 @@ import { Drawer } from '../../common/Drawer';
|
|
|
21
21
|
import Loader from './components/Loader';
|
|
22
22
|
import { MultipleValue } from './components/MultipleValue';
|
|
23
23
|
import { Checkbox } from '../Checkbox';
|
|
24
|
+
import { ErrorBoundary } from '../../common/ErrorBoundary';
|
|
24
25
|
var MAX_LIST_HEIGHT = 294;
|
|
25
26
|
var OPTION_IDENTIFIER = 'option-identifier';
|
|
26
|
-
|
|
27
|
+
var SelectInner = function SelectInner(props) {
|
|
27
28
|
var _collapseTags;
|
|
28
29
|
var label = props.label,
|
|
29
30
|
hasError = props.hasError,
|
|
@@ -104,12 +105,47 @@ export var Select = function Select(props) {
|
|
|
104
105
|
return new Set(multipleValue);
|
|
105
106
|
}, [multipleValue]);
|
|
106
107
|
var optionGroups = useOptionGroups(options, groups);
|
|
108
|
+
|
|
109
|
+
// Плоский список опций в порядке отрисовки (группы разворачиваются) —
|
|
110
|
+
// по нему ходит клавиатурная навигация и считаются id для activedescendant
|
|
111
|
+
var flatOptions = useMemo(function () {
|
|
112
|
+
return optionGroups.reduce(function (acc, group) {
|
|
113
|
+
return acc.concat(group.options);
|
|
114
|
+
}, []);
|
|
115
|
+
}, [optionGroups]);
|
|
116
|
+
var optionIndexByValue = useMemo(function () {
|
|
117
|
+
return new Map(flatOptions.map(function (option, index) {
|
|
118
|
+
return [option.value, index];
|
|
119
|
+
}));
|
|
120
|
+
}, [flatOptions]);
|
|
121
|
+
var baseId = useId();
|
|
122
|
+
var listboxId = "".concat(baseId, "-listbox");
|
|
123
|
+
var getOptionId = function getOptionId(index) {
|
|
124
|
+
return "".concat(baseId, "-option-").concat(index);
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
// Позиция клавиатурного фокуса в списке (aria-activedescendant)
|
|
128
|
+
var _useState3 = useState(-1),
|
|
129
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
130
|
+
activeIndex = _useState4[0],
|
|
131
|
+
setActiveIndex = _useState4[1];
|
|
107
132
|
var handleShow = useCallback(function () {
|
|
108
|
-
|
|
109
|
-
|
|
133
|
+
setIsOpen(true);
|
|
134
|
+
// при открытии встаём на выбранную опцию (single), иначе — вне списка
|
|
135
|
+
setActiveIndex(isMultiple ? -1 : flatOptions.findIndex(function (option) {
|
|
136
|
+
return option.value === value;
|
|
137
|
+
}));
|
|
138
|
+
}, [flatOptions, isMultiple, value]);
|
|
110
139
|
var handleHide = useCallback(function () {
|
|
111
140
|
return setIsOpen(false);
|
|
112
141
|
}, []);
|
|
142
|
+
useEffect(function () {
|
|
143
|
+
var _document$getElementB;
|
|
144
|
+
if (activeIndex < 0) return;
|
|
145
|
+
(_document$getElementB = document.getElementById("".concat(baseId, "-option-").concat(activeIndex))) === null || _document$getElementB === void 0 || _document$getElementB.scrollIntoView({
|
|
146
|
+
block: 'nearest'
|
|
147
|
+
});
|
|
148
|
+
}, [activeIndex, baseId]);
|
|
113
149
|
var dropdownRef = useRef(null);
|
|
114
150
|
var wrapperRef = useOutsideClick(handleHide, [dropdownRef]);
|
|
115
151
|
var handleFocus = useCallback(function (event) {
|
|
@@ -127,8 +163,7 @@ export var Select = function Select(props) {
|
|
|
127
163
|
return blurHandler(event);
|
|
128
164
|
};
|
|
129
165
|
}, [blurHandler]);
|
|
130
|
-
var
|
|
131
|
-
var newValue = JSON.parse(event.currentTarget.dataset.value);
|
|
166
|
+
var selectValue = useCallback(function (newValue) {
|
|
132
167
|
if (isMultiple) {
|
|
133
168
|
var next = multipleValue.includes(newValue) ? multipleValue.filter(function (item) {
|
|
134
169
|
return item !== newValue;
|
|
@@ -144,6 +179,45 @@ export var Select = function Select(props) {
|
|
|
144
179
|
delayBlur.current = null;
|
|
145
180
|
}
|
|
146
181
|
}, [handleHide, isMultiple, multipleValue, onChangeMultiple, onChangeSingle]);
|
|
182
|
+
var handleSelect = useCallback(function (event) {
|
|
183
|
+
selectValue(JSON.parse(event.currentTarget.dataset.value));
|
|
184
|
+
}, [selectValue]);
|
|
185
|
+
|
|
186
|
+
// Клавиатурная навигация комбобокса — тот же набор клавиш, что в Autocomplete
|
|
187
|
+
var handleKeyDown = useCallback(function (event) {
|
|
188
|
+
var count = flatOptions.length;
|
|
189
|
+
switch (event.key) {
|
|
190
|
+
case 'ArrowDown':
|
|
191
|
+
event.preventDefault();
|
|
192
|
+
if (!isOpen) handleShow();else if (count) setActiveIndex(function (prev) {
|
|
193
|
+
return (prev + 1) % count;
|
|
194
|
+
});
|
|
195
|
+
break;
|
|
196
|
+
case 'ArrowUp':
|
|
197
|
+
event.preventDefault();
|
|
198
|
+
if (!isOpen) handleShow();else if (count) setActiveIndex(function (prev) {
|
|
199
|
+
return prev <= 0 ? count - 1 : prev - 1;
|
|
200
|
+
});
|
|
201
|
+
break;
|
|
202
|
+
case 'Enter':
|
|
203
|
+
case ' ':
|
|
204
|
+
event.preventDefault();
|
|
205
|
+
if (!isOpen) {
|
|
206
|
+
handleShow();
|
|
207
|
+
} else if (activeIndex >= 0 && activeIndex < count) {
|
|
208
|
+
selectValue(flatOptions[activeIndex].value);
|
|
209
|
+
}
|
|
210
|
+
break;
|
|
211
|
+
case 'Escape':
|
|
212
|
+
if (isOpen) {
|
|
213
|
+
event.preventDefault();
|
|
214
|
+
handleHide();
|
|
215
|
+
}
|
|
216
|
+
break;
|
|
217
|
+
default:
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
}, [activeIndex, flatOptions, handleHide, handleShow, isOpen, selectValue]);
|
|
147
221
|
var handleRemoveTag = useCallback(function (removedValue) {
|
|
148
222
|
return onChangeMultiple(multipleValue.filter(function (item) {
|
|
149
223
|
return item !== removedValue;
|
|
@@ -187,17 +261,26 @@ export var Select = function Select(props) {
|
|
|
187
261
|
}
|
|
188
262
|
return null;
|
|
189
263
|
};
|
|
190
|
-
var scrollbarContent = /*#__PURE__*/React.createElement(S.ScrollbarContent,
|
|
264
|
+
var scrollbarContent = /*#__PURE__*/React.createElement(S.ScrollbarContent, {
|
|
265
|
+
role: "listbox",
|
|
266
|
+
id: listboxId,
|
|
267
|
+
"aria-multiselectable": isMultiple || undefined
|
|
268
|
+
}, scrollbarHeader, optionGroups.map(function (_ref2) {
|
|
191
269
|
var group = _ref2.group,
|
|
192
270
|
groupOptions = _ref2.options;
|
|
193
271
|
return /*#__PURE__*/React.createElement(Fragment, {
|
|
194
272
|
key: (group === null || group === void 0 ? void 0 : group.id) || null
|
|
195
273
|
}, handleGroupRender(group), groupOptions.map(function (option) {
|
|
274
|
+
var flatIndex = optionIndexByValue.get(option.value);
|
|
275
|
+
var isSelected = isMultiple ? selectedValuesSet.has(option.value) : option.value === value;
|
|
196
276
|
return /*#__PURE__*/React.createElement(S.OptionWrapper, {
|
|
197
277
|
$usePadding: usePadding,
|
|
198
278
|
key: option.value
|
|
199
279
|
}, /*#__PURE__*/React.createElement(S.Option, {
|
|
200
280
|
key: option.value,
|
|
281
|
+
id: getOptionId(flatIndex),
|
|
282
|
+
role: "option",
|
|
283
|
+
"aria-selected": isSelected,
|
|
201
284
|
$palette: palette,
|
|
202
285
|
variant: "bodyMRegular",
|
|
203
286
|
onClick: handleSelect,
|
|
@@ -205,10 +288,13 @@ export var Select = function Select(props) {
|
|
|
205
288
|
"data-option-identifier": OPTION_IDENTIFIER,
|
|
206
289
|
$isGrouped: !!group && !renderOption,
|
|
207
290
|
$usePadding: usePadding,
|
|
208
|
-
$isSelected: !isMultiple && option.value === value
|
|
291
|
+
$isSelected: !isMultiple && option.value === value,
|
|
292
|
+
$isActive: flatIndex === activeIndex
|
|
209
293
|
}, isMultiple ? /*#__PURE__*/React.createElement(S.OptionContent, null, /*#__PURE__*/React.createElement(S.CheckboxWrapper, null, /*#__PURE__*/React.createElement(Checkbox, {
|
|
210
294
|
checked: selectedValuesSet.has(option.value),
|
|
211
|
-
readOnly: true
|
|
295
|
+
readOnly: true,
|
|
296
|
+
tabIndex: -1,
|
|
297
|
+
"aria-hidden": true
|
|
212
298
|
})), handleOptionRender(option)) : handleOptionRender(option)));
|
|
213
299
|
}));
|
|
214
300
|
}));
|
|
@@ -273,7 +359,15 @@ export var Select = function Select(props) {
|
|
|
273
359
|
size: fieldSize,
|
|
274
360
|
onClick: isDrawerOptions || !!renderedValue ? handleInputClick : undefined,
|
|
275
361
|
required: required,
|
|
276
|
-
useModernStyles: useModernStyles
|
|
362
|
+
useModernStyles: useModernStyles,
|
|
363
|
+
comboboxProps: {
|
|
364
|
+
role: 'combobox',
|
|
365
|
+
'aria-expanded': isOpen,
|
|
366
|
+
'aria-haspopup': 'listbox',
|
|
367
|
+
'aria-controls': isOpen && optionGroups.length ? listboxId : undefined,
|
|
368
|
+
'aria-activedescendant': isOpen && activeIndex >= 0 ? getOptionId(activeIndex) : undefined,
|
|
369
|
+
onKeyDown: isDrawerOptions ? undefined : handleKeyDown
|
|
370
|
+
}
|
|
277
371
|
})), isDrawerOptions ? /*#__PURE__*/React.createElement(Drawer, {
|
|
278
372
|
onClose: handleHide,
|
|
279
373
|
isOpen: isOpen,
|
|
@@ -286,4 +380,11 @@ export var Select = function Select(props) {
|
|
|
286
380
|
usePadding: usePadding,
|
|
287
381
|
positionVertical: useModernStyles ? -1 : undefined
|
|
288
382
|
}, handleDropdownContentRender()));
|
|
383
|
+
};
|
|
384
|
+
|
|
385
|
+
// Граница ошибок снаружи: renderOption/renderGroup/renderValue вызываются в
|
|
386
|
+
// рендере SelectInner, и исключение потребительского колбэка иначе валило бы
|
|
387
|
+
// всё дерево приложения (RES-001). Fallback — null: поле исчезает, страница живёт.
|
|
388
|
+
export var Select = function Select(props) {
|
|
389
|
+
return /*#__PURE__*/React.createElement(ErrorBoundary, null, /*#__PURE__*/React.createElement(SelectInner, props));
|
|
289
390
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import styled, { css } from 'styled-components';
|
|
2
2
|
import { Typography } from '../../common/Typography';
|
|
3
|
+
import { reducedMotion } from '../../../utils/reducedMotion';
|
|
3
4
|
export var Wrapper = styled.div.withConfig({
|
|
4
5
|
displayName: "styles__Wrapper",
|
|
5
6
|
componentId: "sc-1x9n0z5-0"
|
|
@@ -18,7 +19,7 @@ export var OptionWrapper = styled.div.withConfig({
|
|
|
18
19
|
export var Option = styled(Typography).withConfig({
|
|
19
20
|
displayName: "styles__Option",
|
|
20
21
|
componentId: "sc-1x9n0z5-3"
|
|
21
|
-
})(["overflow:hidden;width:100%;text-align:left;transition:all 0.2s ease-in-out 0s;box-sizing:border-box;cursor:pointer;border-radius:", ";", " &:hover{background-color:", ";}", ""], function (_ref2) {
|
|
22
|
+
})(["overflow:hidden;width:100%;text-align:left;transition:all 0.2s ease-in-out 0s;box-sizing:border-box;cursor:pointer;border-radius:", ";", " ", " &:hover{background-color:", ";}", " ", ""], function (_ref2) {
|
|
22
23
|
var $usePadding = _ref2.$usePadding;
|
|
23
24
|
return $usePadding ? '12px' : 'none';
|
|
24
25
|
}, function (_ref3) {
|
|
@@ -26,12 +27,16 @@ export var Option = styled(Typography).withConfig({
|
|
|
26
27
|
$palette = _ref3.$palette;
|
|
27
28
|
return $isSelected && css(["background-color:", ";border-radius:8px;"], $palette.bgHover);
|
|
28
29
|
}, function (_ref4) {
|
|
29
|
-
var $
|
|
30
|
-
|
|
30
|
+
var $isActive = _ref4.$isActive,
|
|
31
|
+
$palette = _ref4.$palette;
|
|
32
|
+
return $isActive && css(["background-color:", ";"], $palette.bgHover);
|
|
31
33
|
}, function (_ref5) {
|
|
32
|
-
var $
|
|
34
|
+
var $palette = _ref5.$palette;
|
|
35
|
+
return $palette.bgHover;
|
|
36
|
+
}, function (_ref6) {
|
|
37
|
+
var $isGrouped = _ref6.$isGrouped;
|
|
33
38
|
return $isGrouped && css(["padding-left:30px;"]);
|
|
34
|
-
});
|
|
39
|
+
}, reducedMotion);
|
|
35
40
|
export var Group = styled(Typography).withConfig({
|
|
36
41
|
displayName: "styles__Group",
|
|
37
42
|
componentId: "sc-1x9n0z5-4"
|
|
@@ -39,12 +44,12 @@ export var Group = styled(Typography).withConfig({
|
|
|
39
44
|
export var DefaultOptionWrapper = styled.div.withConfig({
|
|
40
45
|
displayName: "styles__DefaultOptionWrapper",
|
|
41
46
|
componentId: "sc-1x9n0z5-5"
|
|
42
|
-
})(["padding:", ";padding-left:", ";"], function (
|
|
43
|
-
var $usePadding =
|
|
47
|
+
})(["padding:", ";padding-left:", ";"], function (_ref7) {
|
|
48
|
+
var $usePadding = _ref7.$usePadding;
|
|
44
49
|
return $usePadding ? '12px' : '12px 20px';
|
|
45
|
-
}, function (
|
|
46
|
-
var $isMultiple =
|
|
47
|
-
$usePadding =
|
|
50
|
+
}, function (_ref8) {
|
|
51
|
+
var $isMultiple = _ref8.$isMultiple,
|
|
52
|
+
$usePadding = _ref8.$usePadding;
|
|
48
53
|
return $isMultiple && !$usePadding ? '6px' : undefined;
|
|
49
54
|
});
|
|
50
55
|
export var DrawerContent = styled.div.withConfig({
|
|
@@ -58,8 +63,8 @@ export var DrawerBottom = styled.div.withConfig({
|
|
|
58
63
|
export var EmptyLabel = styled(Typography).withConfig({
|
|
59
64
|
displayName: "styles__EmptyLabel",
|
|
60
65
|
componentId: "sc-1x9n0z5-8"
|
|
61
|
-
})(["color:", ";"], function (
|
|
62
|
-
var $color =
|
|
66
|
+
})(["color:", ";"], function (_ref9) {
|
|
67
|
+
var $color = _ref9.$color;
|
|
63
68
|
return $color;
|
|
64
69
|
});
|
|
65
70
|
export var ScrollbarContent = styled.div.withConfig({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var _excluded = ["children"];
|
|
2
2
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var
|
|
4
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.
|
|
3
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
4
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { getPureInputStyled } from '../PureInput/styles';
|
|
7
7
|
import styled from 'styled-components';
|
|
@@ -90,7 +90,9 @@ export var TextInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
90
90
|
placeholder: useModernStyles ? undefined : placeholder,
|
|
91
91
|
paddingRight: paddingRight,
|
|
92
92
|
type: type,
|
|
93
|
-
isOnlyNumbers: isOnlyNumbers
|
|
93
|
+
isOnlyNumbers: isOnlyNumbers
|
|
94
|
+
// eslint-disable-next-line jsx-a11y/no-autofocus -- проп прокидывается потребителю, решение об автофокусе за ним
|
|
95
|
+
,
|
|
94
96
|
autoFocus: autoFocus,
|
|
95
97
|
element: element,
|
|
96
98
|
rows: rows,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var _excluded = ["checked", "variant", "label", "onChange", "disabled", "alwaysHighlighted"];
|
|
2
2
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var
|
|
4
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.
|
|
3
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
4
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import * as S from './styles';
|
|
7
7
|
import { INPUT_VARIANT_MAP } from './styles';
|
|
@@ -33,6 +33,7 @@ export var Toggle = function Toggle(_ref) {
|
|
|
33
33
|
checked: checked,
|
|
34
34
|
onChange: handleChange,
|
|
35
35
|
type: "checkbox",
|
|
36
|
+
role: "switch",
|
|
36
37
|
disabled: disabled
|
|
37
38
|
}, other)), label && /*#__PURE__*/React.createElement(Typography, {
|
|
38
39
|
variant: labelVariant
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import styled from 'styled-components';
|
|
2
|
+
import { reducedMotion } from '../../../utils/reducedMotion';
|
|
2
3
|
export var Label = styled.label.withConfig({
|
|
3
4
|
displayName: "styles__Label",
|
|
4
5
|
componentId: "sc-1pe8ina-0"
|
|
@@ -34,7 +35,7 @@ export var INPUT_VARIANT_MAP = {
|
|
|
34
35
|
export var StyledInput = styled.input.withConfig({
|
|
35
36
|
displayName: "styles__StyledInput",
|
|
36
37
|
componentId: "sc-1pe8ina-1"
|
|
37
|
-
})(["position:relative;width:", "px;height:", "px;cursor:pointer;flex-shrink:0;box-sizing:border-box;border:", "px solid;border-color:rgba(0,0,0,0);-webkit-appearance:none;box-shadow:none;background:", ";border-radius:50px;&:after{content:'';display:block;position:absolute;left:", "px;top:50%;transform:translateY(-50%);width:", "px;height:", "px;border-radius:50%;background-color:", ";transition:all 0.2s ease-in-out 0s;}&:checked::after{left:", "px;}&:checked{background:", ";}&:disabled{cursor:not-allowed;border:", "px solid ", ";background:white;&:after{box-shadow:0 3px 8px rgba(0,0,0,0.15);}}"], function (_ref3) {
|
|
38
|
+
})(["position:relative;width:", "px;height:", "px;cursor:pointer;flex-shrink:0;box-sizing:border-box;border:", "px solid;border-color:rgba(0,0,0,0);-webkit-appearance:none;box-shadow:none;background:", ";border-radius:50px;&:after{content:'';display:block;position:absolute;left:", "px;top:50%;transform:translateY(-50%);width:", "px;height:", "px;border-radius:50%;background-color:", ";transition:all 0.2s ease-in-out 0s;}&:checked::after{left:", "px;}&:checked{background:", ";}&:disabled{cursor:not-allowed;border:", "px solid ", ";background:white;&:after{box-shadow:0 3px 8px rgba(0,0,0,0.15);}}&:focus-visible{outline:2px solid ", ";outline-offset:2px;}", ""], function (_ref3) {
|
|
38
39
|
var $variant = _ref3.$variant;
|
|
39
40
|
return INPUT_VARIANT_MAP[$variant].width;
|
|
40
41
|
}, function (_ref4) {
|
|
@@ -56,19 +57,22 @@ export var StyledInput = styled.input.withConfig({
|
|
|
56
57
|
}, function (_ref9) {
|
|
57
58
|
var $variant = _ref9.$variant;
|
|
58
59
|
return INPUT_VARIANT_MAP[$variant].circleSize;
|
|
60
|
+
}, function (_ref0) {
|
|
61
|
+
var $palette = _ref0.$palette;
|
|
62
|
+
return $palette.circle;
|
|
63
|
+
}, function (_ref1) {
|
|
64
|
+
var $variant = _ref1.$variant;
|
|
65
|
+
return INPUT_VARIANT_MAP[$variant].leftChecked;
|
|
59
66
|
}, function (_ref10) {
|
|
60
67
|
var $palette = _ref10.$palette;
|
|
61
|
-
return $palette.
|
|
68
|
+
return $palette.activeBg;
|
|
62
69
|
}, function (_ref11) {
|
|
63
70
|
var $variant = _ref11.$variant;
|
|
64
|
-
return INPUT_VARIANT_MAP[$variant].
|
|
71
|
+
return INPUT_VARIANT_MAP[$variant].border;
|
|
65
72
|
}, function (_ref12) {
|
|
66
73
|
var $palette = _ref12.$palette;
|
|
67
|
-
return $palette.activeBg;
|
|
68
|
-
}, function (_ref13) {
|
|
69
|
-
var $variant = _ref13.$variant;
|
|
70
|
-
return INPUT_VARIANT_MAP[$variant].border;
|
|
71
|
-
}, function (_ref14) {
|
|
72
|
-
var $palette = _ref14.$palette;
|
|
73
74
|
return $palette.disabledBorder;
|
|
74
|
-
})
|
|
75
|
+
}, function (_ref13) {
|
|
76
|
+
var $palette = _ref13.$palette;
|
|
77
|
+
return $palette.activeBg;
|
|
78
|
+
}, reducedMotion);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { css } from 'styled-components';
|
|
2
|
+
|
|
3
|
+
// Общий миксин: отключает анимации/переходы для пользователей с системной
|
|
4
|
+
// настройкой reduced motion (WCAG 2.3.3). Добавлять последним в styled-блок,
|
|
5
|
+
// содержащий transition/animation (включая правила в ::before/::after) —
|
|
6
|
+
// поздние декларации побеждают. Глобального стиля здесь быть не может:
|
|
7
|
+
// sideEffects: false.
|
|
8
|
+
export var reducedMotion = css(["@media (prefers-reduced-motion:reduce){&,&::before,&::after,&::placeholder{transition:none;animation:none;}}"]);
|
|
@@ -1,12 +1,125 @@
|
|
|
1
|
-
|
|
1
|
+
// Математика ниже повторяет parseToHsl/hslToColorString из polished 4.3.1
|
|
2
|
+
// (включая округление и сокращение hex до 3 знаков), чтобы не тащить polished
|
|
3
|
+
// как runtime-зависимость. Палитра библиотеки оперирует hex-цветами (см.
|
|
4
|
+
// defaultAbstractPalette и hexToRgba), поэтому поддерживается только hex.
|
|
5
|
+
|
|
6
|
+
var parseHex = function parseHex(color) {
|
|
7
|
+
var normalized = color.startsWith('#') ? color.slice(1) : color;
|
|
8
|
+
if (/^[0-9a-fA-F]{3}$/.test(normalized)) {
|
|
9
|
+
return {
|
|
10
|
+
red: parseInt(normalized[0] + normalized[0], 16),
|
|
11
|
+
green: parseInt(normalized[1] + normalized[1], 16),
|
|
12
|
+
blue: parseInt(normalized[2] + normalized[2], 16)
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
if (/^[0-9a-fA-F]{6}$/.test(normalized)) {
|
|
16
|
+
return {
|
|
17
|
+
red: parseInt(normalized.slice(0, 2), 16),
|
|
18
|
+
green: parseInt(normalized.slice(2, 4), 16),
|
|
19
|
+
blue: parseInt(normalized.slice(4, 6), 16)
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
throw new Error("transformColorByHsl: unsupported color \"".concat(color, "\", expected #rgb or #rrggbb"));
|
|
23
|
+
};
|
|
24
|
+
var rgbToHsl = function rgbToHsl(_ref) {
|
|
25
|
+
var red = _ref.red,
|
|
26
|
+
green = _ref.green,
|
|
27
|
+
blue = _ref.blue;
|
|
28
|
+
var r = red / 255;
|
|
29
|
+
var g = green / 255;
|
|
30
|
+
var b = blue / 255;
|
|
31
|
+
var max = Math.max(r, g, b);
|
|
32
|
+
var min = Math.min(r, g, b);
|
|
33
|
+
var lightness = (max + min) / 2;
|
|
34
|
+
if (max === min) {
|
|
35
|
+
return {
|
|
36
|
+
hue: 0,
|
|
37
|
+
saturation: 0,
|
|
38
|
+
lightness: lightness
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
var delta = max - min;
|
|
42
|
+
var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);
|
|
43
|
+
var hue;
|
|
44
|
+
if (max === r) {
|
|
45
|
+
hue = (g - b) / delta + (g < b ? 6 : 0);
|
|
46
|
+
} else if (max === g) {
|
|
47
|
+
hue = (b - r) / delta + 2;
|
|
48
|
+
} else {
|
|
49
|
+
hue = (r - g) / delta + 4;
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
hue: hue * 60,
|
|
53
|
+
saturation: saturation,
|
|
54
|
+
lightness: lightness
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
var hslToRgb = function hslToRgb(_ref2) {
|
|
58
|
+
var hue = _ref2.hue,
|
|
59
|
+
saturation = _ref2.saturation,
|
|
60
|
+
lightness = _ref2.lightness;
|
|
61
|
+
if (saturation === 0) {
|
|
62
|
+
var value = Math.round(lightness * 255);
|
|
63
|
+
return {
|
|
64
|
+
red: value,
|
|
65
|
+
green: value,
|
|
66
|
+
blue: value
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;
|
|
70
|
+
var huePrime = (hue % 360 + 360) % 360 / 60;
|
|
71
|
+
var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));
|
|
72
|
+
var red = 0;
|
|
73
|
+
var green = 0;
|
|
74
|
+
var blue = 0;
|
|
75
|
+
if (huePrime >= 0 && huePrime < 1) {
|
|
76
|
+
red = chroma;
|
|
77
|
+
green = secondComponent;
|
|
78
|
+
} else if (huePrime >= 1 && huePrime < 2) {
|
|
79
|
+
red = secondComponent;
|
|
80
|
+
green = chroma;
|
|
81
|
+
} else if (huePrime >= 2 && huePrime < 3) {
|
|
82
|
+
green = chroma;
|
|
83
|
+
blue = secondComponent;
|
|
84
|
+
} else if (huePrime >= 3 && huePrime < 4) {
|
|
85
|
+
green = secondComponent;
|
|
86
|
+
blue = chroma;
|
|
87
|
+
} else if (huePrime >= 4 && huePrime < 5) {
|
|
88
|
+
red = secondComponent;
|
|
89
|
+
blue = chroma;
|
|
90
|
+
} else {
|
|
91
|
+
red = chroma;
|
|
92
|
+
blue = secondComponent;
|
|
93
|
+
}
|
|
94
|
+
var lightnessModification = lightness - chroma / 2;
|
|
95
|
+
return {
|
|
96
|
+
red: Math.round((red + lightnessModification) * 255),
|
|
97
|
+
green: Math.round((green + lightnessModification) * 255),
|
|
98
|
+
blue: Math.round((blue + lightnessModification) * 255)
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
var numberToHex = function numberToHex(value) {
|
|
102
|
+
var hex = value.toString(16);
|
|
103
|
+
return hex.length === 1 ? "0".concat(hex) : hex;
|
|
104
|
+
};
|
|
105
|
+
var rgbToHexString = function rgbToHexString(_ref3) {
|
|
106
|
+
var red = _ref3.red,
|
|
107
|
+
green = _ref3.green,
|
|
108
|
+
blue = _ref3.blue;
|
|
109
|
+
var value = "#".concat(numberToHex(red)).concat(numberToHex(green)).concat(numberToHex(blue));
|
|
110
|
+
if (value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {
|
|
111
|
+
return "#".concat(value[1]).concat(value[3]).concat(value[5]);
|
|
112
|
+
}
|
|
113
|
+
return value;
|
|
114
|
+
};
|
|
2
115
|
export var transformColorByHsl = function transformColorByHsl(base, diff) {
|
|
3
|
-
var hslBase =
|
|
116
|
+
var hslBase = rgbToHsl(parseHex(base));
|
|
4
117
|
var hue = hslBase.hue - diff.hue;
|
|
5
118
|
var saturation = hslBase.saturation - diff.saturation;
|
|
6
119
|
var lightness = hslBase.lightness - diff.lightness;
|
|
7
|
-
return
|
|
120
|
+
return rgbToHexString(hslToRgb({
|
|
8
121
|
hue: Math.min(Math.max(hue, 0), 360),
|
|
9
122
|
saturation: Math.min(Math.max(saturation, 0), 1),
|
|
10
123
|
lightness: Math.min(Math.max(lightness, 0), 1)
|
|
11
|
-
});
|
|
124
|
+
}));
|
|
12
125
|
};
|