@skbkontur/react-ui 1.6.10 → 1.6.11
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/README.md +135 -135
- package/components/Autocomplete/Autocomplete.adapter.js.flow +4 -4
- package/components/Autocomplete/Autocomplete.js.flow +37 -37
- package/components/Autocomplete/README.md +7 -7
- package/components/Autocomplete/index.js.flow +2 -2
- package/components/Button/Button.adapter.js.flow +4 -4
- package/components/Button/Button.js.flow +58 -58
- package/components/Button/Corners.js.flow +12 -12
- package/components/Button/README.md +85 -85
- package/components/Button/index.js.flow +2 -2
- package/components/Calendar/Animation.js.flow +7 -7
- package/components/Calendar/Calendar.js.flow +33 -33
- package/components/Calendar/CalendarDateShape.js.flow +26 -26
- package/components/Calendar/CalendarScrollEvents.js.flow +15 -15
- package/components/Calendar/CalendarUtils.js.flow +35 -35
- package/components/Calendar/DayCellView.js.flow +16 -16
- package/components/Calendar/DayCellViewModel.js.flow +9 -9
- package/components/Calendar/Month.js.flow +23 -23
- package/components/Calendar/MonthView.js.flow +24 -24
- package/components/Calendar/MonthViewModel.js.flow +16 -16
- package/components/Calendar/config.js.flow +11 -11
- package/components/Calendar/index.js.flow +2 -2
- package/components/Calendar/presets.js.flow +21 -21
- package/components/Calendar/stepper.js.flow +2 -2
- package/components/Calendar/utils.js.flow +2 -2
- package/components/Center/Center.js.flow +15 -15
- package/components/Center/README.md +5 -5
- package/components/Center/index.js.flow +2 -2
- package/components/Checkbox/Checkbox.adapter.js.flow +4 -4
- package/components/Checkbox/Checkbox.js.flow +27 -27
- package/components/Checkbox/README.md +61 -61
- package/components/Checkbox/index.js.flow +2 -2
- package/components/ComboBox/ComboBox.js.flow +58 -58
- package/components/ComboBox/README.md +423 -423
- package/components/ComboBox/__mocks__/getCities.js.map +1 -1
- package/components/ComboBox/__mocks__/kladr.json +20002 -20002
- package/components/ComboBox/index.js.flow +2 -2
- package/components/ComboBoxOld/ComboBoxOld.adapter.js.map +1 -1
- package/components/ComboBoxOld/ComboBoxOld.d.ts +120 -120
- package/components/ComboBoxOld/ComboBoxOld.js +45 -45
- package/components/ComboBoxOld/ComboBoxOld.js.map +1 -1
- package/components/ComboBoxOld/ComboBoxRenderer.js.map +1 -1
- package/components/ComboBoxOld/README.md +83 -83
- package/components/ComboBoxOld/index.d.ts +1 -1
- package/components/ComboBoxOld/index.js.map +1 -1
- package/components/CurrencyInput/CurrencyHelper.js.flow +44 -44
- package/components/CurrencyInput/CurrencyInput.js.flow +30 -30
- package/components/CurrencyInput/CurrencyInputHelper.js.flow +38 -38
- package/components/CurrencyInput/CurrencyInputKeyboardActions.js.flow +19 -19
- package/components/CurrencyInput/CursorHelper.js.flow +15 -15
- package/components/CurrencyInput/README.md +19 -19
- package/components/CurrencyInput/SelectionHelper.js.flow +16 -16
- package/components/CurrencyInput/index.js.flow +2 -2
- package/components/CurrencyLabel/CurrencyLabel.js.flow +10 -10
- package/components/CurrencyLabel/README.md +23 -23
- package/components/CurrencyLabel/index.js.flow +2 -2
- package/components/CustomComboBox/ComboBoxMenu.js.flow +22 -22
- package/components/CustomComboBox/ComboBoxView.js.flow +52 -52
- package/components/CustomComboBox/CustomComboBox.js.flow +130 -130
- package/components/CustomComboBox/index.js.flow +2 -2
- package/components/DateInput/DateInput.js.flow +60 -60
- package/components/DateInput/README.md +104 -104
- package/components/DateInput/helpers/DateInputKeyboardActions.js.flow +17 -17
- package/components/DateInput/helpers/SelectionHelpers.js.flow +3 -3
- package/components/DateInput/helpers/inputNumber.js.flow +4 -4
- package/components/DateInput/index.js.flow +2 -2
- package/components/DatePicker/DatePicker.js.flow +45 -45
- package/components/DatePicker/DatePickerHelpers.js.flow +7 -7
- package/components/DatePicker/DateShape.js.flow +11 -11
- package/components/DatePicker/Picker.js.flow +23 -23
- package/components/DatePicker/README.md +307 -307
- package/components/DatePicker/index.js.flow +2 -2
- package/components/DatePickerOld/Calendar.js.map +1 -1
- package/components/DatePickerOld/CalendarCell.js.map +1 -1
- package/components/DatePickerOld/DateInput.js +2 -2
- package/components/DatePickerOld/DateInput.js.map +1 -1
- package/components/DatePickerOld/DatePicker.adapter.js.map +1 -1
- package/components/DatePickerOld/DatePickerOld.d.ts +35 -35
- package/components/DatePickerOld/DatePickerOld.js +16 -16
- package/components/DatePickerOld/DatePickerOld.js.map +1 -1
- package/components/DatePickerOld/Picker.js.map +1 -1
- package/components/DatePickerOld/README.md +7 -7
- package/components/DatePickerOld/dateParser.js.map +1 -1
- package/components/DatePickerOld/index.d.ts +1 -1
- package/components/DatePickerOld/index.js.map +1 -1
- package/components/DateSelect/DateSelect.js.flow +30 -30
- package/components/DateSelect/index.js.flow +2 -2
- package/components/Dropdown/Dropdown.js.flow +41 -41
- package/components/Dropdown/README.md +14 -14
- package/components/Dropdown/index.js.flow +2 -2
- package/components/DropdownContainer/DropdownContainer.js.flow +29 -29
- package/components/DropdownMenu/DropdownMenu.js.flow +20 -20
- package/components/DropdownMenu/README.md +66 -66
- package/components/DropdownMenu/index.js.flow +2 -2
- package/components/Fias/Fias.js.flow +37 -37
- package/components/Fias/FiasModal.js.flow +12 -12
- package/components/Fias/FiasSearch/FiasSearch.js.flow +32 -32
- package/components/Fias/FiasSearch/README.md +78 -78
- package/components/Fias/Form/FiasComboBox.js.flow +25 -25
- package/components/Fias/Form/FiasForm.js.flow +21 -21
- package/components/Fias/README.md +436 -436
- package/components/Fias/api/APIResultFactory.js.flow +7 -7
- package/components/Fias/api/FiasAPI.js.flow +13 -13
- package/components/Fias/api/MockAPI.js.flow +13 -13
- package/components/Fias/api/data.json +285 -285
- package/components/Fias/constants/abbreviations.js.flow +7 -7
- package/components/Fias/index.js.flow +5 -5
- package/components/Fias/locale/types.js.flow +71 -71
- package/components/Fias/logger/Logger.js.flow +13 -13
- package/components/Fias/models/Address.js.flow +57 -57
- package/components/Fias/models/AddressElement.js.flow +15 -15
- package/components/Fias/models/FiasData.js.flow +10 -10
- package/components/Fias/types.js.flow +133 -133
- package/components/FxInput/FxInput.adapter.js.flow +4 -4
- package/components/FxInput/FxInput.js.flow +24 -24
- package/components/FxInput/README.md +13 -13
- package/components/FxInput/index.js.flow +2 -2
- package/components/Gapped/Gapped.js.flow +13 -13
- package/components/Gapped/README.md +6 -6
- package/components/Gapped/index.js.flow +2 -2
- package/components/Group/Group.js.flow +14 -14
- package/components/Group/README.md +27 -27
- package/components/Group/index.js.flow +2 -2
- package/components/HideBodyVerticalScroll/HideBodyVerticalScroll.js.flow +7 -7
- package/components/HideBodyVerticalScroll/index.js.flow +2 -2
- package/components/Hint/Hint.js.flow +37 -37
- package/components/Hint/README.md +3 -3
- package/components/Hint/index.js.flow +2 -2
- package/components/Icon/20px/Icon.js.flow +27 -27
- package/components/Icon/20px/index.js.flow +2 -2
- package/components/Icon/README.md +64 -64
- package/components/IgnoreLayerClick/IgnoreLayerClick.js.flow +12 -12
- package/components/IgnoreLayerClick/index.js.flow +2 -2
- package/components/Input/Input.adapter.js.flow +9 -9
- package/components/Input/Input.js.flow +55 -55
- package/components/Input/README.md +13 -13
- package/components/Input/index.js.flow +2 -2
- package/components/Kebab/Kebab.js.flow +23 -23
- package/components/Kebab/README.md +44 -44
- package/components/Kebab/index.js.flow +2 -2
- package/components/Kladr/AddressModal.d.ts +39 -39
- package/components/Kladr/AddressModal.js.flow +20 -20
- package/components/Kladr/AddressModal.js.map +1 -1
- package/components/Kladr/Kladr.d.ts +39 -39
- package/components/Kladr/Kladr.js +2 -2
- package/components/Kladr/Kladr.js.flow +27 -27
- package/components/Kladr/Kladr.js.map +1 -1
- package/components/Kladr/KladrAPI.d.ts +8 -8
- package/components/Kladr/KladrAPI.js.flow +8 -8
- package/components/Kladr/KladrAPI.js.map +1 -1
- package/components/Kladr/README.md +3 -3
- package/components/Kladr/Types.d.ts +40 -40
- package/components/Kladr/Types.js.flow +39 -39
- package/components/Kladr/index.d.ts +1 -1
- package/components/Kladr/index.js.flow +2 -2
- package/components/Kladr/index.js.map +1 -1
- package/components/Kladr/util.js.map +1 -1
- package/components/Kladr/utils.d.ts +4 -4
- package/components/Kladr/utils.js.flow +4 -4
- package/components/Link/Link.adapter.js.flow +4 -4
- package/components/Link/Link.js.flow +25 -25
- package/components/Link/README.md +11 -11
- package/components/Link/index.js.flow +2 -2
- package/components/Loader/Loader.js.flow +20 -20
- package/components/Loader/README.md +25 -25
- package/components/Loader/index.js.flow +2 -2
- package/components/Logotype/Logotype.js.flow +21 -21
- package/components/Logotype/ProductWidget.js.flow +7 -7
- package/components/Logotype/README.md +32 -32
- package/components/Logotype/index.js.flow +2 -2
- package/components/Menu/Menu.js.flow +24 -24
- package/components/Menu/isActiveElement.js.flow +7 -7
- package/components/MenuHeader/MenuHeader.js.flow +11 -11
- package/components/MenuHeader/index.js.flow +2 -2
- package/components/MenuItem/MenuItem.js.flow +33 -33
- package/components/MenuItem/README.md +5 -5
- package/components/MenuItem/index.js.flow +2 -2
- package/components/MenuSeparator/MenuSeparator.js.flow +7 -7
- package/components/MenuSeparator/index.js.flow +2 -2
- package/components/Modal/Modal.adapter.js.flow +4 -4
- package/components/Modal/Modal.js.flow +30 -30
- package/components/Modal/Modal.js.map +1 -1
- package/components/Modal/ModalBody.js.flow +7 -7
- package/components/Modal/ModalClose.js.flow +6 -6
- package/components/Modal/ModalContext.js.flow +15 -15
- package/components/Modal/ModalFooter.js.flow +11 -11
- package/components/Modal/ModalHeader.js.flow +11 -11
- package/components/Modal/README.md +38 -38
- package/components/Modal/index.js.flow +2 -2
- package/components/ModalStack/ModalStack.d.ts +4 -2
- package/components/ModalStack/ModalStack.js +13 -2
- package/components/ModalStack/ModalStack.js.flow +10 -10
- package/components/ModalStack/ModalStack.js.map +1 -1
- package/components/ModalStack/index.js.flow +2 -2
- package/components/Paging/NavigationHelper.js.flow +13 -13
- package/components/Paging/Paging.js.flow +38 -38
- package/components/Paging/PagingHelper.js.flow +10 -10
- package/components/Paging/README.md +43 -43
- package/components/Paging/index.js.flow +2 -2
- package/components/PasswordInput/PasswordInput.js.flow +26 -26
- package/components/PasswordInput/PasswordInputFallback.js.flow +13 -13
- package/components/PasswordInput/getCharHelper.js.flow +4 -4
- package/components/PasswordInput/index.js.flow +2 -2
- package/components/PhoneInput/PhoneInput.js +2 -2
- package/components/PhoneInput/PhoneInput.js.map +1 -1
- package/components/PhoneInput/index.js.map +1 -1
- package/components/Popup/Popup.js.flow +60 -60
- package/components/Popup/PopupHelper.js.flow +29 -29
- package/components/Popup/PopupPin.js.flow +15 -15
- package/components/Popup/index.js.flow +2 -2
- package/components/Radio/README.md +14 -14
- package/components/Radio/Radio.js.flow +33 -33
- package/components/Radio/index.js.flow +2 -2
- package/components/RadioGroup/Prevent.js.flow +9 -9
- package/components/RadioGroup/README.md +44 -44
- package/components/RadioGroup/RadioGroup.adapter.js.flow +4 -4
- package/components/RadioGroup/RadioGroup.js +1 -1
- package/components/RadioGroup/RadioGroup.js.flow +42 -42
- package/components/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/index.js.flow +2 -2
- package/components/RenderContainer/RenderContainer.js.flow +11 -11
- package/components/RenderContainer/index.js.flow +2 -2
- package/components/RenderLayer/RenderLayer.js.flow +12 -12
- package/components/RenderLayer/index.js.flow +2 -2
- package/components/ScrollContainer/README.md +60 -60
- package/components/ScrollContainer/ScrollContainer.js.flow +24 -24
- package/components/ScrollContainer/index.js.flow +2 -2
- package/components/Select/Item.js.flow +7 -7
- package/components/Select/README.md +23 -23
- package/components/Select/Select.adapter.js.flow +4 -4
- package/components/Select/Select.js.flow +81 -81
- package/components/Select/index.js.flow +2 -2
- package/components/SidePage/README.md +46 -46
- package/components/SidePage/SidePage.js.flow +34 -34
- package/components/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePageBody.js.flow +13 -13
- package/components/SidePage/SidePageContainer.js.flow +9 -9
- package/components/SidePage/SidePageContext.js.flow +15 -15
- package/components/SidePage/SidePageFooter.js.flow +16 -16
- package/components/SidePage/SidePageHeader.js.flow +11 -11
- package/components/SidePage/index.js.flow +2 -2
- package/components/Spinner/README.md +33 -33
- package/components/Spinner/Spinner.js.flow +20 -20
- package/components/Spinner/SpinnerFallback.js.flow +15 -15
- package/components/Spinner/index.js.flow +2 -2
- package/components/Spinner/settings.js.flow +48 -48
- package/components/Sticky/README.md +27 -27
- package/components/Sticky/Sticky.js.flow +22 -22
- package/components/Sticky/index.js.flow +2 -2
- package/components/Switcher/README.md +10 -10
- package/components/Switcher/Switcher.js.flow +26 -26
- package/components/Switcher/index.js.flow +2 -2
- package/components/Tabs/Indicator.js.flow +21 -21
- package/components/Tabs/README.md +28 -28
- package/components/Tabs/Tab.js.flow +48 -48
- package/components/Tabs/Tabs.js.flow +28 -28
- package/components/Tabs/index.js.flow +2 -2
- package/components/Textarea/README.md +9 -9
- package/components/Textarea/Textarea.adapter.js.flow +11 -11
- package/components/Textarea/Textarea.js.flow +33 -33
- package/components/Textarea/TextareaHelpers.js.flow +6 -6
- package/components/Textarea/index.js.flow +2 -2
- package/components/ThemeProvider/Playground/README.md +7 -7
- package/components/ThemeProvider/README.md +172 -172
- package/components/ThemeShowcase/README.md +13 -13
- package/components/Toast/README.md +39 -39
- package/components/Toast/Toast.js.flow +29 -29
- package/components/Toast/ToastStatic.js.flow +10 -10
- package/components/Toast/ToastView.js.flow +16 -16
- package/components/Toast/index.js.flow +2 -2
- package/components/Toggle/README.md +9 -9
- package/components/Toggle/Toggle.js.flow +28 -28
- package/components/Toggle/index.js.flow +2 -2
- package/components/Token/README.md +109 -109
- package/components/Token/Token.js.flow +25 -25
- package/components/Token/TokenRemoveIcon.js.flow +11 -11
- package/components/Token/index.js.flow +2 -2
- package/components/TokenInput/README.md +82 -82
- package/components/TokenInput/TextWidthHelper.js.flow +10 -10
- package/components/TokenInput/TokenInput.js.flow +39 -39
- package/components/TokenInput/TokenInputMenu.js.flow +17 -17
- package/components/TokenInput/TokenInputReducer.js.flow +63 -63
- package/components/TokenInput/index.js.flow +2 -2
- package/components/Tooltip/README.md +207 -207
- package/components/Tooltip/Tooltip.js.flow +33 -33
- package/components/Tooltip/index.js.flow +2 -2
- package/components/TooltipMenu/README.md +106 -106
- package/components/TooltipMenu/TooltipMenu.js.flow +19 -19
- package/components/TooltipMenu/index.js.flow +2 -2
- package/components/TopBar/ButtonItem.js.flow +22 -22
- package/components/TopBar/Divider.js.flow +5 -5
- package/components/TopBar/Item.js.flow +19 -19
- package/components/TopBar/Organizations.js.flow +16 -16
- package/components/TopBar/README.md +112 -112
- package/components/TopBar/TopBar.js.flow +53 -53
- package/components/TopBar/TopBarDropdown.js.flow +23 -23
- package/components/TopBar/TopBarEnd.js.flow +4 -4
- package/components/TopBar/TopBarLogout.js.flow +6 -6
- package/components/TopBar/TopBarStart.js.flow +4 -4
- package/components/TopBar/User.js.flow +9 -9
- package/components/TopBar/index.js.flow +2 -2
- package/components/ZIndex/ZIndex.js.flow +11 -11
- package/components/ZIndex/index.js.flow +2 -2
- package/components/__mocks__/react-addons-css-transition-group.js.map +1 -1
- package/components/all.js.flow +36 -36
- package/components/ensureOldIEClassName.js.flow +6 -6
- package/components/eventHandlers.js.flow +9 -9
- package/components/index.js.flow +2 -2
- package/components/internal/InputLikeText/InputLikeText.js.flow +24 -24
- package/components/internal/InputLikeText/index.js.flow +2 -2
- package/components/internal/InternalMenu/InternalMenu.js.flow +23 -23
- package/components/internal/InternalMenu/isActiveElement.js.flow +7 -7
- package/components/internal/MaskedInput/MaskedInput.js.flow +24 -24
- package/components/internal/MaskedInput/index.js.flow +2 -2
- package/components/internal/MockDate.js.flow +9 -9
- package/components/internal/PopupMenu/PopupMenu.js.flow +40 -40
- package/components/internal/PopupMenu/PopupMenuPositions.js.flow +4 -4
- package/components/internal/PopupMenu/index.js.flow +2 -2
- package/components/internal/PopupMenu/validatePositions.js.flow +4 -4
- package/components/internal/ResizeDetector/ResizeDetector.js.flow +8 -8
- package/components/internal/ResizeDetector/index.js.flow +2 -2
- package/components/internal/createPropsGetter.js.flow +8 -8
- package/components/internal/cross.js.flow +4 -4
- package/components/internal/currentEnvironment.js.flow +4 -4
- package/components/internal/extractKeyboardAction.js.flow +12 -12
- package/components/polyfillPlaceholder.js.flow +4 -4
- package/package.json +1 -4
- package/typings/console.d.ts +3 -3
- package/typings/event-types.d.ts +4 -4
- package/typings/fbjs.d.ts +4 -4
- package/typings/global.d.ts +6 -6
- package/typings/images.d.ts +1 -1
- package/typings/less.d.ts +4 -4
- package/typings/mocha/index.d.ts +2 -2
- package/typings/mockdate.d.ts +1 -1
- package/typings/normalize-wheel.d.ts +1 -1
- package/typings/raf.d.ts +1 -1
- package/typings/react-addons-css-transition-group.d.ts +1 -1
- package/typings/react-testing/index.d.ts +4 -4
- package/typings/react-testing/window.d.ts +5 -5
- package/typings/react.d.ts +8 -8
- package/typings/utility-types.d.ts +17 -17
package/README.md
CHANGED
|
@@ -1,135 +1,135 @@
|
|
|
1
|
-
# React UI
|
|
2
|
-
|
|
3
|
-
[](https://tc.skbkontur.ru/project.html?projectId=FrontendInfrastructure_Packages_ReactUI&tab=projectOverview)
|
|
4
|
-
|
|
5
|
-
- [Варианты использования](#Варианты-использования)
|
|
6
|
-
- [Квик-старт](#Квик-старт) **@skbkontur/react-ui** собранная версия библиотеки
|
|
7
|
-
- [Слоу-старт](#Слоу-старт) **retail-ui** исходники для самостоятельной сборки, для переопределения `.less`-переменных
|
|
8
|
-
- [FAQ](#FAQ)
|
|
9
|
-
|
|
10
|
-
## <a name="Варианты-использования"></a>Варианты использования
|
|
11
|
-
|
|
12
|
-
### <a name="Квик-старт"></a>Квик-старт
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
yarn add @skbkontur/react-ui
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
И используем компонентики у себя в проекте:
|
|
19
|
-
|
|
20
|
-
```jsx static
|
|
21
|
-
import Button from '@skbkontur/react-ui/Button';
|
|
22
|
-
import Toast from '@skbkontur/react-ui/Toast';
|
|
23
|
-
|
|
24
|
-
const MyApp = () => (
|
|
25
|
-
<div>
|
|
26
|
-
Click this button <Button onClick={() => Toast.push('Hey!')}>Click me</Button>
|
|
27
|
-
</div>
|
|
28
|
-
);
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Если ругается, что `regeneratorRuntime` не определен, то необходимо подключить `regenerator-runtime` или `@babel/polyfill`, например в `index.html`
|
|
32
|
-
|
|
33
|
-
Квик-старт подойдёт, если Вебпак настроен на сборку. Например, вы используете `create-react-app`. В противном случае добавьте в конфиг Вебпака `style-`, `css-` и `file-loader`
|
|
34
|
-
|
|
35
|
-
### <a name="Слоу-старт"></a>Слоу-старт
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
yarn add retail-ui
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Необходимо установить как зависимости и добавить в [конфиг Вебпака](https://webpack.js.org/configuration/) следующие лоадеры:
|
|
42
|
-
|
|
43
|
-
```js static
|
|
44
|
-
module: {
|
|
45
|
-
rules: [
|
|
46
|
-
{
|
|
47
|
-
test: /\.jsx?$/,
|
|
48
|
-
use: [
|
|
49
|
-
{
|
|
50
|
-
loader: 'babel-loader',
|
|
51
|
-
options: {
|
|
52
|
-
presets: ['@babel/preset-env', '@babel/preset-react', '@babel/preset-flow'],
|
|
53
|
-
plugins: ['@babel/plugin-proposal-class-properties', '@babel/plugin-proposal-object-rest-spread'],
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
],
|
|
57
|
-
include: /retail-ui/,
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
test: /\.less$/,
|
|
61
|
-
use: [
|
|
62
|
-
'style-loader',
|
|
63
|
-
{
|
|
64
|
-
loader: 'css-loader',
|
|
65
|
-
options: { modules: 'global' },
|
|
66
|
-
},
|
|
67
|
-
'less-loader',
|
|
68
|
-
],
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
test: /\.(png|woff|woff2|eot)$/,
|
|
72
|
-
use: ['file-loader'],
|
|
73
|
-
},
|
|
74
|
-
];
|
|
75
|
-
}
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### Хотим другой цвет кнопки!
|
|
79
|
-
|
|
80
|
-
Тут придется юзать слоу-старт. В конфиге нужно указать:
|
|
81
|
-
|
|
82
|
-
```js static
|
|
83
|
-
resolve: {
|
|
84
|
-
alias: {
|
|
85
|
-
'react-ui-theme': path.join(__dirname, 'path-to-my-theme-variables.less')
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
Список переменных можно глянуть в `components/variables.less`
|
|
91
|
-
|
|
92
|
-
### Глобальные css-стили приложения портят внешний вид контролов
|
|
93
|
-
|
|
94
|
-
Если библиотека используется в проекте с легаси, где стилизация сделана прямо по названиям тегов, то внешний вид контролов из библиотеки может сильно испортиться
|
|
95
|
-
|
|
96
|
-
Если нет возможности разобрать легаси, то можно увеличить специфичность селекторов в библиотеке, тогда стили контролов будут приоритетнее стилей из легаси проекта
|
|
97
|
-
|
|
98
|
-
Специфичность достигается за счет n-кратного повторения css-класса `react-ui` в селекторе стилей. Количество повторений задается через переменную `@specificity-level`, значение по умолчанию равно нулю, то есть по умолчанию css-класс `react-ui` никак ни на что не будет влиять
|
|
99
|
-
|
|
100
|
-
Чтобы специфичность заработала в легаси проекте, react-блок, в котором используются компоненты из библиотеки, должен быть обернут в тег с css-классом `react-ui`
|
|
101
|
-
|
|
102
|
-
Пример настройки специфичности
|
|
103
|
-
|
|
104
|
-
```less
|
|
105
|
-
/* ... */
|
|
106
|
-
@specificity-level: 5;
|
|
107
|
-
/* ... */
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
## <a name="FAQ"></a>FAQ
|
|
111
|
-
|
|
112
|
-
### Сломались стили при использовании css-loader 2.x (create-react-app/CRA 3.x)
|
|
113
|
-
|
|
114
|
-
Во [2-й версии](https://github.com/webpack-contrib/css-loader/releases/tag/v2.0.0), `css-loader` отключили использование `css-modules` по умолчанию.
|
|
115
|
-
**Решение**: В опциях к `css-loader` явно задать `modules: 'global'`.
|
|
116
|
-
|
|
117
|
-
### Как использовать retail-ui с storybook 5.x?
|
|
118
|
-
|
|
119
|
-
В 5-й версии изменилось [API сторибука для кастомизации настроек webpack](https://github.com/storybooks/storybook/blob/v5.0.0/MIGRATION.md#webpack-config-simplifcation).
|
|
120
|
-
Кроме того был изменен дефолтный webpack конфиг. Это порождает проблемы вида [storybooks/storybook#4891](https://github.com/storybooks/storybook/issues/4891).
|
|
121
|
-
**Решение**: Заменить лоадеры для `css/less`. Например [так](https://github.com/storybooks/storybook/issues/6319#issuecomment-477852640) на свои
|
|
122
|
-
|
|
123
|
-
### Возникает ошибка `Error: Can't resolve 'mask-char-font/font.eot'`
|
|
124
|
-
|
|
125
|
-
Ошибка проявляется при использовании `css-loader@1.x` с выставленой опцией `modules`.
|
|
126
|
-
**Решение**: Обновить `css-loader` до 2-й версии или дополнительно указать опцию `url: false`
|
|
127
|
-
|
|
128
|
-
### Не могу прокинуть css-класс компонентам. Как кастомизировать?
|
|
129
|
-
|
|
130
|
-
Никак.
|
|
131
|
-
|
|
132
|
-
### Помощь в развитии
|
|
133
|
-
|
|
134
|
-
Мы рады любой сторонней помощи. Не стесняйтесь писать в [issues](https://github.com/skbkontur/retail-ui/issues)
|
|
135
|
-
баги и идеи для развития библиотеки.<br />
|
|
1
|
+
# React UI
|
|
2
|
+
|
|
3
|
+
[](https://tc.skbkontur.ru/project.html?projectId=FrontendInfrastructure_Packages_ReactUI&tab=projectOverview)
|
|
4
|
+
|
|
5
|
+
- [Варианты использования](#Варианты-использования)
|
|
6
|
+
- [Квик-старт](#Квик-старт) **@skbkontur/react-ui** собранная версия библиотеки
|
|
7
|
+
- [Слоу-старт](#Слоу-старт) **retail-ui** исходники для самостоятельной сборки, для переопределения `.less`-переменных
|
|
8
|
+
- [FAQ](#FAQ)
|
|
9
|
+
|
|
10
|
+
## <a name="Варианты-использования"></a>Варианты использования
|
|
11
|
+
|
|
12
|
+
### <a name="Квик-старт"></a>Квик-старт
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
yarn add @skbkontur/react-ui
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
И используем компонентики у себя в проекте:
|
|
19
|
+
|
|
20
|
+
```jsx static
|
|
21
|
+
import Button from '@skbkontur/react-ui/Button';
|
|
22
|
+
import Toast from '@skbkontur/react-ui/Toast';
|
|
23
|
+
|
|
24
|
+
const MyApp = () => (
|
|
25
|
+
<div>
|
|
26
|
+
Click this button <Button onClick={() => Toast.push('Hey!')}>Click me</Button>
|
|
27
|
+
</div>
|
|
28
|
+
);
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Если ругается, что `regeneratorRuntime` не определен, то необходимо подключить `regenerator-runtime` или `@babel/polyfill`, например в `index.html`
|
|
32
|
+
|
|
33
|
+
Квик-старт подойдёт, если Вебпак настроен на сборку. Например, вы используете `create-react-app`. В противном случае добавьте в конфиг Вебпака `style-`, `css-` и `file-loader`
|
|
34
|
+
|
|
35
|
+
### <a name="Слоу-старт"></a>Слоу-старт
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
yarn add retail-ui
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Необходимо установить как зависимости и добавить в [конфиг Вебпака](https://webpack.js.org/configuration/) следующие лоадеры:
|
|
42
|
+
|
|
43
|
+
```js static
|
|
44
|
+
module: {
|
|
45
|
+
rules: [
|
|
46
|
+
{
|
|
47
|
+
test: /\.jsx?$/,
|
|
48
|
+
use: [
|
|
49
|
+
{
|
|
50
|
+
loader: 'babel-loader',
|
|
51
|
+
options: {
|
|
52
|
+
presets: ['@babel/preset-env', '@babel/preset-react', '@babel/preset-flow'],
|
|
53
|
+
plugins: ['@babel/plugin-proposal-class-properties', '@babel/plugin-proposal-object-rest-spread'],
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
include: /retail-ui/,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
test: /\.less$/,
|
|
61
|
+
use: [
|
|
62
|
+
'style-loader',
|
|
63
|
+
{
|
|
64
|
+
loader: 'css-loader',
|
|
65
|
+
options: { modules: 'global' },
|
|
66
|
+
},
|
|
67
|
+
'less-loader',
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
test: /\.(png|woff|woff2|eot)$/,
|
|
72
|
+
use: ['file-loader'],
|
|
73
|
+
},
|
|
74
|
+
];
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Хотим другой цвет кнопки!
|
|
79
|
+
|
|
80
|
+
Тут придется юзать слоу-старт. В конфиге нужно указать:
|
|
81
|
+
|
|
82
|
+
```js static
|
|
83
|
+
resolve: {
|
|
84
|
+
alias: {
|
|
85
|
+
'react-ui-theme': path.join(__dirname, 'path-to-my-theme-variables.less')
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Список переменных можно глянуть в `components/variables.less`
|
|
91
|
+
|
|
92
|
+
### Глобальные css-стили приложения портят внешний вид контролов
|
|
93
|
+
|
|
94
|
+
Если библиотека используется в проекте с легаси, где стилизация сделана прямо по названиям тегов, то внешний вид контролов из библиотеки может сильно испортиться
|
|
95
|
+
|
|
96
|
+
Если нет возможности разобрать легаси, то можно увеличить специфичность селекторов в библиотеке, тогда стили контролов будут приоритетнее стилей из легаси проекта
|
|
97
|
+
|
|
98
|
+
Специфичность достигается за счет n-кратного повторения css-класса `react-ui` в селекторе стилей. Количество повторений задается через переменную `@specificity-level`, значение по умолчанию равно нулю, то есть по умолчанию css-класс `react-ui` никак ни на что не будет влиять
|
|
99
|
+
|
|
100
|
+
Чтобы специфичность заработала в легаси проекте, react-блок, в котором используются компоненты из библиотеки, должен быть обернут в тег с css-классом `react-ui`
|
|
101
|
+
|
|
102
|
+
Пример настройки специфичности
|
|
103
|
+
|
|
104
|
+
```less
|
|
105
|
+
/* ... */
|
|
106
|
+
@specificity-level: 5;
|
|
107
|
+
/* ... */
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## <a name="FAQ"></a>FAQ
|
|
111
|
+
|
|
112
|
+
### Сломались стили при использовании css-loader 2.x (create-react-app/CRA 3.x)
|
|
113
|
+
|
|
114
|
+
Во [2-й версии](https://github.com/webpack-contrib/css-loader/releases/tag/v2.0.0), `css-loader` отключили использование `css-modules` по умолчанию.
|
|
115
|
+
**Решение**: В опциях к `css-loader` явно задать `modules: 'global'`.
|
|
116
|
+
|
|
117
|
+
### Как использовать retail-ui с storybook 5.x?
|
|
118
|
+
|
|
119
|
+
В 5-й версии изменилось [API сторибука для кастомизации настроек webpack](https://github.com/storybooks/storybook/blob/v5.0.0/MIGRATION.md#webpack-config-simplifcation).
|
|
120
|
+
Кроме того был изменен дефолтный webpack конфиг. Это порождает проблемы вида [storybooks/storybook#4891](https://github.com/storybooks/storybook/issues/4891).
|
|
121
|
+
**Решение**: Заменить лоадеры для `css/less`. Например [так](https://github.com/storybooks/storybook/issues/6319#issuecomment-477852640) на свои
|
|
122
|
+
|
|
123
|
+
### Возникает ошибка `Error: Can't resolve 'mask-char-font/font.eot'`
|
|
124
|
+
|
|
125
|
+
Ошибка проявляется при использовании `css-loader@1.x` с выставленой опцией `modules`.
|
|
126
|
+
**Решение**: Обновить `css-loader` до 2-й версии или дополнительно указать опцию `url: false`
|
|
127
|
+
|
|
128
|
+
### Не могу прокинуть css-класс компонентам. Как кастомизировать?
|
|
129
|
+
|
|
130
|
+
Никак.
|
|
131
|
+
|
|
132
|
+
### Помощь в развитии
|
|
133
|
+
|
|
134
|
+
Мы рады любой сторонней помощи. Не стесняйтесь писать в [issues](https://github.com/skbkontur/retail-ui/issues)
|
|
135
|
+
баги и идеи для развития библиотеки.<br />
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @flow */
|
|
2
|
-
import Autocomplete from './Autocomplete.js';
|
|
3
|
-
|
|
4
|
-
export default Autocomplete;
|
|
1
|
+
/* @flow */
|
|
2
|
+
import Autocomplete from './Autocomplete.js';
|
|
3
|
+
|
|
4
|
+
export default Autocomplete;
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
/* @flow */
|
|
2
|
-
import type { InputProps } from '../Input';
|
|
3
|
-
|
|
4
|
-
export type AutocompleteProps = {
|
|
5
|
-
...$Exact<InputProps>,
|
|
6
|
-
renderItem?: (item: string) => React$Node,
|
|
7
|
-
source?: string[] | ((patter: string) => Promise<string[]>),
|
|
8
|
-
disablePortal?: boolean,
|
|
9
|
-
hasShadow?: boolean,
|
|
10
|
-
menuAlign?: 'left' | 'right',
|
|
11
|
-
menuMaxHeight?: number | string,
|
|
12
|
-
menuWidth?: number | string,
|
|
13
|
-
preventWindowScroll?: boolean,
|
|
14
|
-
onChange: (
|
|
15
|
-
event: {
|
|
16
|
-
target: {
|
|
17
|
-
value: string,
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
value: string,
|
|
21
|
-
) => void,
|
|
22
|
-
onBlur?: () => void,
|
|
23
|
-
size?: $PropertyType<InputProps, 'size'>,
|
|
24
|
-
value: string,
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export type AutocomplpeteState = {|
|
|
28
|
-
items: void | null | string[],
|
|
29
|
-
selected: number,
|
|
30
|
-
|};
|
|
31
|
-
|
|
32
|
-
declare class Autocomplete extends React$Component<AutocompleteProps, AutocomplpeteState> {
|
|
33
|
-
focus(): void;
|
|
34
|
-
blur(): void;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export default Autocomplete;
|
|
1
|
+
/* @flow */
|
|
2
|
+
import type { InputProps } from '../Input';
|
|
3
|
+
|
|
4
|
+
export type AutocompleteProps = {
|
|
5
|
+
...$Exact<InputProps>,
|
|
6
|
+
renderItem?: (item: string) => React$Node,
|
|
7
|
+
source?: string[] | ((patter: string) => Promise<string[]>),
|
|
8
|
+
disablePortal?: boolean,
|
|
9
|
+
hasShadow?: boolean,
|
|
10
|
+
menuAlign?: 'left' | 'right',
|
|
11
|
+
menuMaxHeight?: number | string,
|
|
12
|
+
menuWidth?: number | string,
|
|
13
|
+
preventWindowScroll?: boolean,
|
|
14
|
+
onChange: (
|
|
15
|
+
event: {
|
|
16
|
+
target: {
|
|
17
|
+
value: string,
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
value: string,
|
|
21
|
+
) => void,
|
|
22
|
+
onBlur?: () => void,
|
|
23
|
+
size?: $PropertyType<InputProps, 'size'>,
|
|
24
|
+
value: string,
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export type AutocomplpeteState = {|
|
|
28
|
+
items: void | null | string[],
|
|
29
|
+
selected: number,
|
|
30
|
+
|};
|
|
31
|
+
|
|
32
|
+
declare class Autocomplete extends React$Component<AutocompleteProps, AutocomplpeteState> {
|
|
33
|
+
focus(): void;
|
|
34
|
+
blur(): void;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export default Autocomplete;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
```js
|
|
2
|
-
let items = ['Grey Face', 'Grey Space', 'Kappa', 'Keepo', 'Resident Sleeper'];
|
|
3
|
-
|
|
4
|
-
let initialState = { value: 'Kappa' };
|
|
5
|
-
|
|
6
|
-
<Autocomplete source={items} value={state.value} onChange={(_, value) => setState({ value })} />;
|
|
7
|
-
```
|
|
1
|
+
```js
|
|
2
|
+
let items = ['Grey Face', 'Grey Space', 'Kappa', 'Keepo', 'Resident Sleeper'];
|
|
3
|
+
|
|
4
|
+
let initialState = { value: 'Kappa' };
|
|
5
|
+
|
|
6
|
+
<Autocomplete source={items} value={state.value} onChange={(_, value) => setState({ value })} />;
|
|
7
|
+
```
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/* @flow */
|
|
2
|
-
export { default, AutocompleteProps, AutocomplpeteState } from './Autocomplete';
|
|
1
|
+
/* @flow */
|
|
2
|
+
export { default, AutocompleteProps, AutocomplpeteState } from './Autocomplete';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @flow */
|
|
2
|
-
import Button from './Button.js';
|
|
3
|
-
|
|
4
|
-
export default Button;
|
|
1
|
+
/* @flow */
|
|
2
|
+
import Button from './Button.js';
|
|
3
|
+
|
|
4
|
+
export default Button;
|
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
/* @flow */
|
|
2
|
-
import * as CSS from 'csstype';
|
|
3
|
-
import type { FocusEventHandler, MouseEventHandler, KeyboardEventHandler } from '../eventHandlers';
|
|
4
|
-
|
|
5
|
-
export type ButtonSize = 'small' | 'medium' | 'large';
|
|
6
|
-
export type ButtonType = 'button' | 'submit' | 'reset';
|
|
7
|
-
export type ButtonArrow = boolean | 'left';
|
|
8
|
-
export type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link';
|
|
9
|
-
|
|
10
|
-
export type ButtonProps = {|
|
|
11
|
-
_noPadding?: boolean,
|
|
12
|
-
_noRightPadding?: boolean,
|
|
13
|
-
active?: boolean,
|
|
14
|
-
align?: CSS.TextAlignProperty,
|
|
15
|
-
arrow?: ButtonArrow,
|
|
16
|
-
autoFocus?: boolean,
|
|
17
|
-
borderless?: boolean,
|
|
18
|
-
checked?: boolean,
|
|
19
|
-
children?: React$Node,
|
|
20
|
-
corners?: number,
|
|
21
|
-
disabled?: boolean,
|
|
22
|
-
disableFocus?: boolean,
|
|
23
|
-
error?: boolean,
|
|
24
|
-
focused?: boolean,
|
|
25
|
-
// eslint-disable-next-line flowtype/no-weak-types
|
|
26
|
-
icon?: React$Element<any>,
|
|
27
|
-
loading?: boolean,
|
|
28
|
-
narrow?: boolean,
|
|
29
|
-
onBlur?: FocusEventHandler<HTMLButtonElement>,
|
|
30
|
-
onClick?: MouseEventHandler<HTMLButtonElement>,
|
|
31
|
-
onFocus?: FocusEventHandler<HTMLButtonElement>,
|
|
32
|
-
onKeyDown?: KeyboardEventHandler<HTMLButtonElement>,
|
|
33
|
-
onMouseEnter?: MouseEventHandler<HTMLButtonElement>,
|
|
34
|
-
onMouseLeave?: MouseEventHandler<HTMLButtonElement>,
|
|
35
|
-
onMouseOver?: MouseEventHandler<HTMLButtonElement>,
|
|
36
|
-
size?: ButtonSize,
|
|
37
|
-
type?: ButtonType,
|
|
38
|
-
use?: ButtonUse,
|
|
39
|
-
visuallyFocused?: boolean,
|
|
40
|
-
warning?: boolean,
|
|
41
|
-
width?: number | string,
|
|
42
|
-
|};
|
|
43
|
-
|
|
44
|
-
export type ButtonState = {|
|
|
45
|
-
focusedByTab: boolean,
|
|
46
|
-
|};
|
|
47
|
-
|
|
48
|
-
declare class Button extends React$Component<ButtonProps, ButtonState> {
|
|
49
|
-
static TOP_LEFT: number;
|
|
50
|
-
static TOP_RIGHT: number;
|
|
51
|
-
static BOTTOM_RIGHT: number;
|
|
52
|
-
static BOTTOM_LEFT: number;
|
|
53
|
-
|
|
54
|
-
focus(): void;
|
|
55
|
-
blur(): void;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export default Button;
|
|
1
|
+
/* @flow */
|
|
2
|
+
import * as CSS from 'csstype';
|
|
3
|
+
import type { FocusEventHandler, MouseEventHandler, KeyboardEventHandler } from '../eventHandlers';
|
|
4
|
+
|
|
5
|
+
export type ButtonSize = 'small' | 'medium' | 'large';
|
|
6
|
+
export type ButtonType = 'button' | 'submit' | 'reset';
|
|
7
|
+
export type ButtonArrow = boolean | 'left';
|
|
8
|
+
export type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link';
|
|
9
|
+
|
|
10
|
+
export type ButtonProps = {|
|
|
11
|
+
_noPadding?: boolean,
|
|
12
|
+
_noRightPadding?: boolean,
|
|
13
|
+
active?: boolean,
|
|
14
|
+
align?: CSS.TextAlignProperty,
|
|
15
|
+
arrow?: ButtonArrow,
|
|
16
|
+
autoFocus?: boolean,
|
|
17
|
+
borderless?: boolean,
|
|
18
|
+
checked?: boolean,
|
|
19
|
+
children?: React$Node,
|
|
20
|
+
corners?: number,
|
|
21
|
+
disabled?: boolean,
|
|
22
|
+
disableFocus?: boolean,
|
|
23
|
+
error?: boolean,
|
|
24
|
+
focused?: boolean,
|
|
25
|
+
// eslint-disable-next-line flowtype/no-weak-types
|
|
26
|
+
icon?: React$Element<any>,
|
|
27
|
+
loading?: boolean,
|
|
28
|
+
narrow?: boolean,
|
|
29
|
+
onBlur?: FocusEventHandler<HTMLButtonElement>,
|
|
30
|
+
onClick?: MouseEventHandler<HTMLButtonElement>,
|
|
31
|
+
onFocus?: FocusEventHandler<HTMLButtonElement>,
|
|
32
|
+
onKeyDown?: KeyboardEventHandler<HTMLButtonElement>,
|
|
33
|
+
onMouseEnter?: MouseEventHandler<HTMLButtonElement>,
|
|
34
|
+
onMouseLeave?: MouseEventHandler<HTMLButtonElement>,
|
|
35
|
+
onMouseOver?: MouseEventHandler<HTMLButtonElement>,
|
|
36
|
+
size?: ButtonSize,
|
|
37
|
+
type?: ButtonType,
|
|
38
|
+
use?: ButtonUse,
|
|
39
|
+
visuallyFocused?: boolean,
|
|
40
|
+
warning?: boolean,
|
|
41
|
+
width?: number | string,
|
|
42
|
+
|};
|
|
43
|
+
|
|
44
|
+
export type ButtonState = {|
|
|
45
|
+
focusedByTab: boolean,
|
|
46
|
+
|};
|
|
47
|
+
|
|
48
|
+
declare class Button extends React$Component<ButtonProps, ButtonState> {
|
|
49
|
+
static TOP_LEFT: number;
|
|
50
|
+
static TOP_RIGHT: number;
|
|
51
|
+
static BOTTOM_RIGHT: number;
|
|
52
|
+
static BOTTOM_LEFT: number;
|
|
53
|
+
|
|
54
|
+
focus(): void;
|
|
55
|
+
blur(): void;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export default Button;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
/* @flow */
|
|
2
|
-
|
|
3
|
-
type Corners = {|
|
|
4
|
-
TOP_LEFT: number,
|
|
5
|
-
TOP_RIGHT: number,
|
|
6
|
-
BOTTOM_RIGHT: number,
|
|
7
|
-
BOTTOM_LEFT: number,
|
|
8
|
-
|};
|
|
9
|
-
|
|
10
|
-
var corners: Corners;
|
|
11
|
-
|
|
12
|
-
export default corners;
|
|
1
|
+
/* @flow */
|
|
2
|
+
|
|
3
|
+
type Corners = {|
|
|
4
|
+
TOP_LEFT: number,
|
|
5
|
+
TOP_RIGHT: number,
|
|
6
|
+
BOTTOM_RIGHT: number,
|
|
7
|
+
BOTTOM_LEFT: number,
|
|
8
|
+
|};
|
|
9
|
+
|
|
10
|
+
var corners: Corners;
|
|
11
|
+
|
|
12
|
+
export default corners;
|