@oliasoft-open-source/react-ui-library 2.4.7 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/dist/global.css +21840 -0
- package/dist/index.js +43567 -0
- package/package.json +37 -55
- package/.eslintignore +0 -2
- package/.eslintrc.js +0 -125
- package/.gitlab-ci.yml +0 -76
- package/.husky/pre-commit +0 -4
- package/.prettierignore +0 -3
- package/.prettierrc +0 -4
- package/.storybook/main.js +0 -36
- package/.storybook/preview.js +0 -40
- package/.storybook/storybook.less +0 -8
- package/babel.config.js +0 -31
- package/index.js +0 -76
- package/jest.config.js +0 -9
- package/scripts/send-mattermost-message.sh +0 -21
- package/src/components/accordion/accordion.jsx +0 -132
- package/src/components/accordion/accordion.module.less +0 -66
- package/src/components/accordion/accordion.stories.jsx +0 -171
- package/src/components/accordion/chevron/chevron.jsx +0 -12
- package/src/components/accordion/chevron/chevron.module.less +0 -12
- package/src/components/accordion/helpers/accordion-with-default-toggle.jsx +0 -106
- package/src/components/accordion/helpers/accordion-with-default-toggle.module.less +0 -24
- package/src/components/actions/actions.jsx +0 -129
- package/src/components/actions/actions.module.less +0 -44
- package/src/components/actions/actions.shape.js +0 -32
- package/src/components/actions/actions.stories.jsx +0 -79
- package/src/components/badge/badge.jsx +0 -58
- package/src/components/badge/badge.module.less +0 -55
- package/src/components/badge/badge.stories.jsx +0 -31
- package/src/components/breadcrumb/breadcrumb.jsx +0 -49
- package/src/components/breadcrumb/breadcrumb.module.less +0 -39
- package/src/components/breadcrumb/breadcrumb.stories.jsx +0 -45
- package/src/components/breadcrumb/link.jsx +0 -31
- package/src/components/button/button.jsx +0 -156
- package/src/components/button/button.module.less +0 -300
- package/src/components/button/button.stories.jsx +0 -74
- package/src/components/button-group/button-group.jsx +0 -140
- package/src/components/button-group/button-group.module.less +0 -24
- package/src/components/button-group/button-group.stories-data.jsx +0 -67
- package/src/components/button-group/button-group.stories.jsx +0 -63
- package/src/components/buttons-and-links.stories.mdx +0 -55
- package/src/components/card/card.jsx +0 -51
- package/src/components/card/card.module.less +0 -48
- package/src/components/card/card.stories.jsx +0 -39
- package/src/components/check-box/check-box.jsx +0 -92
- package/src/components/check-box/check-box.module.less +0 -101
- package/src/components/check-box/check-box.stories.jsx +0 -27
- package/src/components/color/color.stories-data.jsx +0 -71
- package/src/components/color/color.stories.mdx +0 -37
- package/src/components/dialog/dialog.jsx +0 -77
- package/src/components/dialog/dialog.module.less +0 -76
- package/src/components/divider/divider.jsx +0 -40
- package/src/components/divider/divider.module.less +0 -28
- package/src/components/divider/divider.stories.jsx +0 -50
- package/src/components/drawer/drawer-resize-wrapper.jsx +0 -76
- package/src/components/drawer/drawer-tabs.jsx +0 -44
- package/src/components/drawer/drawer.jsx +0 -161
- package/src/components/drawer/drawer.module.less +0 -217
- package/src/components/drawer/drawer.stories.jsx +0 -296
- package/src/components/empty/empty.jsx +0 -52
- package/src/components/empty/empty.module.less +0 -17
- package/src/components/empty/empty.stories.jsx +0 -26
- package/src/components/file-input/file-input.jsx +0 -101
- package/src/components/file-input/file-input.module.less +0 -3
- package/src/components/file-input/file-input.stories.jsx +0 -109
- package/src/components/form/field.jsx +0 -96
- package/src/components/form/field.stories.jsx +0 -101
- package/src/components/form/form.module.less +0 -30
- package/src/components/form/form.stories.jsx +0 -191
- package/src/components/heading/heading.jsx +0 -105
- package/src/components/heading/heading.module.less +0 -59
- package/src/components/heading/heading.stories.jsx +0 -60
- package/src/components/icon/deprecated-icon.jsx +0 -97
- package/src/components/icon/icon.jsx +0 -71
- package/src/components/icon/icon.module.less +0 -33
- package/src/components/icon/icon.stories.jsx +0 -37
- package/src/components/icon/icons.example.module.less +0 -4
- package/src/components/input/input.jsx +0 -167
- package/src/components/input/input.module.less +0 -94
- package/src/components/input/input.stories.jsx +0 -28
- package/src/components/input-group/input-group-addon/input-group-addon.jsx +0 -36
- package/src/components/input-group/input-group-addon/input-group-addon.module.less +0 -31
- package/src/components/input-group/input-group.jsx +0 -51
- package/src/components/input-group/input-group.module.less +0 -10
- package/src/components/input-group/input-group.stories.jsx +0 -77
- package/src/components/input-validation.stories.mdx +0 -61
- package/src/components/inputs.stories.mdx +0 -201
- package/src/components/label/label.jsx +0 -115
- package/src/components/label/label.module.less +0 -43
- package/src/components/label/label.stories.jsx +0 -60
- package/src/components/layout/column/column.jsx +0 -85
- package/src/components/layout/column/styles.js +0 -45
- package/src/components/layout/column.stories.jsx +0 -60
- package/src/components/layout/examples/afe.stories.jsx +0 -180
- package/src/components/layout/examples/blowout.stories.jsx +0 -68
- package/src/components/layout/examples/casing-loads.stories.jsx +0 -297
- package/src/components/layout/examples/formation.stories.jsx +0 -110
- package/src/components/layout/examples/projects.stories.jsx +0 -108
- package/src/components/layout/examples/reservoirs.stories.jsx +0 -211
- package/src/components/layout/examples/site.stories.jsx +0 -263
- package/src/components/layout/flex/flex.jsx +0 -48
- package/src/components/layout/flex/flex.stories.jsx +0 -59
- package/src/components/layout/form-row/form-row.jsx +0 -15
- package/src/components/layout/form-row/form-row.module.less +0 -11
- package/src/components/layout/grid/grid.jsx +0 -62
- package/src/components/layout/grid/grid.stories.jsx +0 -67
- package/src/components/layout/page/page.jsx +0 -42
- package/src/components/layout/page/page.module.less +0 -27
- package/src/components/layout/page.stories.jsx +0 -93
- package/src/components/layout/placeholder.jsx +0 -2
- package/src/components/layout/print-header/print-header.jsx +0 -22
- package/src/components/layout/print-header/print-header.module.less +0 -9
- package/src/components/layout/row/row.jsx +0 -75
- package/src/components/layout/row/row.module.less +0 -7
- package/src/components/layout/spacer/spacer.jsx +0 -26
- package/src/components/layout/spacer/spacer.stories.jsx +0 -50
- package/src/components/layout-forms.stories.mdx +0 -104
- package/src/components/layout-general.stories.mdx +0 -215
- package/src/components/list/list-row/item-content.jsx +0 -15
- package/src/components/list/list-row/label.jsx +0 -11
- package/src/components/list/list-row/list-heading.jsx +0 -52
- package/src/components/list/list-row/list-row.jsx +0 -128
- package/src/components/list/list-row/list-subheading.jsx +0 -72
- package/src/components/list/list-row/meta-content.jsx +0 -24
- package/src/components/list/list-row/meta-count.jsx +0 -10
- package/src/components/list/list-row/name.jsx +0 -45
- package/src/components/list/list.jsx +0 -276
- package/src/components/list/list.module.less +0 -256
- package/src/components/list/list.stories-data.jsx +0 -287
- package/src/components/list/list.stories.jsx +0 -458
- package/src/components/list/toggle-narrow.jsx +0 -13
- package/src/components/loader/loader.jsx +0 -63
- package/src/components/loader/loader.module.less +0 -63
- package/src/components/loader/loader.stories.jsx +0 -155
- package/src/components/menu/index.js +0 -7
- package/src/components/menu/layer/divider.jsx +0 -4
- package/src/components/menu/layer/heading.jsx +0 -15
- package/src/components/menu/layer/layer.jsx +0 -82
- package/src/components/menu/layer/option.jsx +0 -77
- package/src/components/menu/layer/path.js +0 -44
- package/src/components/menu/layer/placementOptions.js +0 -6
- package/src/components/menu/layer/section.jsx +0 -66
- package/src/components/menu/menu.jsx +0 -359
- package/src/components/menu/menu.module.less +0 -241
- package/src/components/menu/menu.stories-data.jsx +0 -168
- package/src/components/menu/menu.stories.jsx +0 -126
- package/src/components/menu/menu.test.js +0 -58
- package/src/components/menu/trigger/button.jsx +0 -50
- package/src/components/menu/trigger/component.jsx +0 -14
- package/src/components/menu/trigger/text.jsx +0 -25
- package/src/components/menu/trigger/trigger.jsx +0 -86
- package/src/components/message/dismiss.jsx +0 -26
- package/src/components/message/message.jsx +0 -137
- package/src/components/message/message.module.less +0 -114
- package/src/components/message/message.stories.jsx +0 -84
- package/src/components/modal/modal.jsx +0 -50
- package/src/components/modal/modal.module.less +0 -39
- package/src/components/modal/modal.stories.jsx +0 -162
- package/src/components/option-dropdown/heading.jsx +0 -6
- package/src/components/option-dropdown/layer.jsx +0 -81
- package/src/components/option-dropdown/option-dropdown.jsx +0 -53
- package/src/components/option-dropdown/option-dropdown.module.less +0 -50
- package/src/components/option-dropdown/option-dropdown.stories.jsx +0 -35
- package/src/components/option-dropdown/option.jsx +0 -13
- package/src/components/pagination/pagination.jsx +0 -139
- package/src/components/pagination/pagination.module.less +0 -11
- package/src/components/pagination/pagination.stories.jsx +0 -78
- package/src/components/pagination/pagination.test.js +0 -92
- package/src/components/pagination/pagination.viewdata.js +0 -66
- package/src/components/pop-confirm/content.jsx +0 -25
- package/src/components/pop-confirm/pop-confirm.jsx +0 -61
- package/src/components/pop-confirm/pop-confirm.module.less +0 -18
- package/src/components/pop-confirm/pop-confirm.stories.jsx +0 -53
- package/src/components/popover/popover.jsx +0 -112
- package/src/components/popover/popover.module.less +0 -22
- package/src/components/popover/popover.stories.jsx +0 -59
- package/src/components/portal/portal.jsx +0 -16
- package/src/components/portal/portal.stories.jsx +0 -69
- package/src/components/progress-bar/progress-bar.jsx +0 -64
- package/src/components/progress-bar/progress-bar.module.less +0 -64
- package/src/components/progress-bar/progress-bar.stories.jsx +0 -23
- package/src/components/radio-button/radio-button.jsx +0 -139
- package/src/components/radio-button/radio-button.module.less +0 -135
- package/src/components/radio-button/radio-button.stories.jsx +0 -37
- package/src/components/radio-button/radio-input.jsx +0 -52
- package/src/components/select/custom-select/custom-select.jsx +0 -440
- package/src/components/select/custom-select/custom-select.module.less +0 -123
- package/src/components/select/custom-select/custom-select.reducer.js +0 -157
- package/src/components/select/custom-select/layer/heading.jsx +0 -13
- package/src/components/select/custom-select/layer/layer.jsx +0 -73
- package/src/components/select/custom-select/layer/option.jsx +0 -54
- package/src/components/select/custom-select/layer/placementOptions.js +0 -7
- package/src/components/select/custom-select/layer/section.jsx +0 -35
- package/src/components/select/custom-select/trigger/input.jsx +0 -100
- package/src/components/select/custom-select/trigger/trigger.jsx +0 -155
- package/src/components/select/custom-select/trigger/trigger.module.less +0 -289
- package/src/components/select/native-select/native-select.jsx +0 -198
- package/src/components/select/native-select/native-select.module.less +0 -107
- package/src/components/select/select.input.js +0 -146
- package/src/components/select/select.jsx +0 -207
- package/src/components/select/select.stories-data.jsx +0 -92
- package/src/components/select/select.stories.jsx +0 -135
- package/src/components/select/select.test.js +0 -519
- package/src/components/side-bar/container.module.less +0 -29
- package/src/components/side-bar/link.jsx +0 -83
- package/src/components/side-bar/sections.jsx +0 -23
- package/src/components/side-bar/side-bar.jsx +0 -102
- package/src/components/side-bar/side-bar.module.less +0 -137
- package/src/components/side-bar/side-bar.stories.jsx +0 -101
- package/src/components/slider/rc-slider.less +0 -47
- package/src/components/slider/slider-tooltip.jsx +0 -20
- package/src/components/slider/slider.jsx +0 -233
- package/src/components/slider/slider.module.less +0 -40
- package/src/components/slider/slider.stories.jsx +0 -110
- package/src/components/spinner/spinner.jsx +0 -37
- package/src/components/spinner/spinner.module.less +0 -115
- package/src/components/spinner/spinner.stories.jsx +0 -24
- package/src/components/table/cell/cell.jsx +0 -617
- package/src/components/table/cell/cell.module.less +0 -164
- package/src/components/table/footer/footer.jsx +0 -66
- package/src/components/table/footer/footer.module.less +0 -14
- package/src/components/table/helper.js +0 -64
- package/src/components/table/helper.test.js +0 -166
- package/src/components/table/icon/icon.module.less +0 -31
- package/src/components/table/row/expanded-content-row.jsx +0 -16
- package/src/components/table/row/row.jsx +0 -253
- package/src/components/table/row/row.module.less +0 -62
- package/src/components/table/table-scroll-wrapper.jsx +0 -49
- package/src/components/table/table.jsx +0 -234
- package/src/components/table/table.module.less +0 -146
- package/src/components/table/table.stories-data.jsx +0 -874
- package/src/components/table/table.stories.jsx +0 -759
- package/src/components/table/table.test.js +0 -30
- package/src/components/table/table.variables.less +0 -11
- package/src/components/table/table.viewdata.js +0 -26
- package/src/components/table/title/title.jsx +0 -30
- package/src/components/table/title/title.module.less +0 -11
- package/src/components/tabs/content.jsx +0 -14
- package/src/components/tabs/label.jsx +0 -50
- package/src/components/tabs/tabs.jsx +0 -191
- package/src/components/tabs/tabs.module.less +0 -73
- package/src/components/tabs/tabs.stories.jsx +0 -110
- package/src/components/text/text.jsx +0 -64
- package/src/components/text/text.module.less +0 -45
- package/src/components/text/text.stories.jsx +0 -31
- package/src/components/text-link/text-link.jsx +0 -23
- package/src/components/text-link/text-link.stories.jsx +0 -20
- package/src/components/textarea/textarea.jsx +0 -126
- package/src/components/textarea/textarea.module.less +0 -55
- package/src/components/textarea/textarea.stories.jsx +0 -26
- package/src/components/toaster/toaster.jsx +0 -39
- package/src/components/toaster/toaster.less +0 -17
- package/src/components/toaster/toaster.stories.jsx +0 -116
- package/src/components/toggle/toggle.jsx +0 -65
- package/src/components/toggle/toggle.module.less +0 -139
- package/src/components/toggle/toggle.stories.jsx +0 -26
- package/src/components/tooltip/tooltip-layer.jsx +0 -72
- package/src/components/tooltip/tooltip.jsx +0 -108
- package/src/components/tooltip/tooltip.module.less +0 -28
- package/src/components/tooltip/tooltip.stories.jsx +0 -71
- package/src/components/top-bar/element/element.jsx +0 -72
- package/src/components/top-bar/element/link.jsx +0 -29
- package/src/components/top-bar/title.jsx +0 -24
- package/src/components/top-bar/top-bar.jsx +0 -79
- package/src/components/top-bar/top-bar.module.less +0 -190
- package/src/components/top-bar/top-bar.stories.jsx +0 -137
- package/src/components/top-bar/warning.jsx +0 -6
- package/src/components/tree/tree-item.jsx +0 -79
- package/src/components/tree/tree-placeholder.jsx +0 -6
- package/src/components/tree/tree.jsx +0 -129
- package/src/components/tree/tree.module.less +0 -33
- package/src/components/tree/tree.stories-data.jsx +0 -89
- package/src/components/tree/tree.stories.jsx +0 -106
- package/src/docs/components/page/page.jsx +0 -16
- package/src/docs/config/config.js +0 -1
- package/src/docs/html/favicon.png +0 -0
- package/src/docs/html/index.html +0 -11
- package/src/docs/navigation/footer/footer.jsx +0 -48
- package/src/docs/navigation/header/header.jsx +0 -39
- package/src/docs/navigation/header/header.module.less +0 -32
- package/src/docs/navigation/routes/routes.jsx +0 -16
- package/src/docs/start.jsx +0 -12
- package/src/docs/views/main/main.jsx +0 -209
- package/src/docs/views/main/main.module.less +0 -14
- package/src/docs/views/not-found/not-found.jsx +0 -5
- package/src/helpers/disabled-context.js +0 -8
- package/src/helpers/styles.js +0 -68
- package/src/helpers/text.js +0 -6
- package/src/helpers/types.js +0 -5
- package/src/hooks/index.js +0 -3
- package/src/hooks/use-focus.js +0 -11
- package/src/hooks/use-keyboard-event.js +0 -16
- package/src/hooks/use-window-width.js +0 -20
- package/src/images/icons/icon-drop.png +0 -0
- package/src/images/icons/icon-share.png +0 -0
- package/src/images/icons/icons8-junction.svg +0 -4
- package/src/images/logo.png +0 -0
- package/src/images/logo.svg +0 -13
- package/src/images/oliasoft-logo.svg +0 -1
- package/src/style/colors.less +0 -26
- package/src/style/external.less +0 -10
- package/src/style/fonts/lato/Lato-Bold.woff2 +0 -0
- package/src/style/fonts/lato/Lato-BoldItalic.woff2 +0 -0
- package/src/style/fonts/lato/Lato-Italic.woff2 +0 -0
- package/src/style/fonts/lato/Lato-Regular.woff2 +0 -0
- package/src/style/fonts.less +0 -27
- package/src/style/global.less +0 -51
- package/src/style/mixins.less +0 -68
- package/src/style/reset/reset.less +0 -34
- package/src/style/shared.less +0 -25
- package/src/style/theme.dark.less +0 -37
- package/src/style/theme.default.less +0 -74
- package/src/style/variables.less +0 -49
- package/webpack/webpack.common.js +0 -39
- package/webpack/webpack.common.rules.js +0 -102
- package/webpack/webpack.dev.js +0 -22
- package/webpack/webpack.prod.js +0 -23
- package/webpack/webpack.resolve.js +0 -22
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
import { Canvas, Meta, Story } from '@storybook/addon-docs';
|
|
2
|
-
import {
|
|
3
|
-
Input,
|
|
4
|
-
Button,
|
|
5
|
-
CheckBox,
|
|
6
|
-
Toggle,
|
|
7
|
-
TextArea,
|
|
8
|
-
Select,
|
|
9
|
-
RadioButton,
|
|
10
|
-
Slider,
|
|
11
|
-
FileInput,
|
|
12
|
-
FormRow,
|
|
13
|
-
OptionDropdown,
|
|
14
|
-
} from '../..';
|
|
15
|
-
|
|
16
|
-
<Meta title="Inputs" />
|
|
17
|
-
|
|
18
|
-
# Inputs
|
|
19
|
-
|
|
20
|
-
React UI Library provides a comprehensive set of user input components.
|
|
21
|
-
|
|
22
|
-
## Button
|
|
23
|
-
|
|
24
|
-
Use buttons when users need to invoke actions.
|
|
25
|
-
|
|
26
|
-
<Canvas>
|
|
27
|
-
<FormRow>
|
|
28
|
-
<Button label="Save" colored />
|
|
29
|
-
<Button label="Cancel" />
|
|
30
|
-
</FormRow>
|
|
31
|
-
</Canvas>
|
|
32
|
-
|
|
33
|
-
**Guidelines**
|
|
34
|
-
|
|
35
|
-
- only the primary button on a page or view should normally be colored
|
|
36
|
-
- all other buttons should use the default style (try to limit using different variants and colors of buttons)
|
|
37
|
-
- for serious actions (e.g. permanently deleting records), use a red button
|
|
38
|
-
|
|
39
|
-
## Input
|
|
40
|
-
|
|
41
|
-
Use an `Input` when users need to enter or edit single-line values.
|
|
42
|
-
|
|
43
|
-
<Canvas>
|
|
44
|
-
<FormRow>
|
|
45
|
-
<Input width="200px" />
|
|
46
|
-
</FormRow>
|
|
47
|
-
</Canvas>
|
|
48
|
-
|
|
49
|
-
### Number Input
|
|
50
|
-
|
|
51
|
-
<Canvas>
|
|
52
|
-
<FormRow>
|
|
53
|
-
<Input width="200px" type="number" value={3} />
|
|
54
|
-
</FormRow>
|
|
55
|
-
</Canvas>
|
|
56
|
-
|
|
57
|
-
### Date Input
|
|
58
|
-
|
|
59
|
-
<Canvas>
|
|
60
|
-
<FormRow>
|
|
61
|
-
<Input width="200px" value="2020-05-22" type="date" />
|
|
62
|
-
</FormRow>
|
|
63
|
-
</Canvas>
|
|
64
|
-
|
|
65
|
-
## TextArea
|
|
66
|
-
|
|
67
|
-
Use a `TextArea` when users need to enter or edit multiline text.
|
|
68
|
-
|
|
69
|
-
<Canvas>
|
|
70
|
-
<FormRow>
|
|
71
|
-
<TextArea />
|
|
72
|
-
</FormRow>
|
|
73
|
-
</Canvas>
|
|
74
|
-
|
|
75
|
-
## Select
|
|
76
|
-
|
|
77
|
-
Use a `Select` component when users need to choose from one or more values from a longer list of options (> 6 options).
|
|
78
|
-
|
|
79
|
-
React UI Library provides two different `Select` components, through one unified interface.
|
|
80
|
-
|
|
81
|
-
### Native Select
|
|
82
|
-
|
|
83
|
-
Native `Select` is a styled native browser [select input](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select).
|
|
84
|
-
You enable it via the `native` prop. It's most useful for simple situations. Its advantages come from the browser
|
|
85
|
-
handling dropdown positioning, performance, and accessibility. Its drawbacks are limited features and styling
|
|
86
|
-
possibilities. A native `Select` looks like this:
|
|
87
|
-
|
|
88
|
-
<Canvas>
|
|
89
|
-
<FormRow>
|
|
90
|
-
<Select native options={['Rare', 'Medium', 'Well Done']} value="Medium" />
|
|
91
|
-
</FormRow>
|
|
92
|
-
</Canvas>
|
|
93
|
-
|
|
94
|
-
### Custom Select
|
|
95
|
-
|
|
96
|
-
Custom `Select` is a full implementation of a select component as a custom React component. It covers many additional
|
|
97
|
-
features not offered by native select inputs, such as filtering and multi-select. Its drawbacks are that positioning and
|
|
98
|
-
accessibility are not handled out-the-box by the browser, requiring custom code internally within the component. The
|
|
99
|
-
custom `Select` in GUI Library uses [react-laag](https://www.react-laag.com/) as a positioning engine.
|
|
100
|
-
|
|
101
|
-
<Canvas>
|
|
102
|
-
<FormRow>
|
|
103
|
-
<Select
|
|
104
|
-
width="auto"
|
|
105
|
-
options={['Rare', 'Medium', 'Well Done']}
|
|
106
|
-
value="Medium"
|
|
107
|
-
/>
|
|
108
|
-
<Select
|
|
109
|
-
width="300px"
|
|
110
|
-
options={['Onions', 'Olives', 'Mushrooms', 'Ham']}
|
|
111
|
-
value={['Olives', 'Mushrooms']}
|
|
112
|
-
/>
|
|
113
|
-
</FormRow>
|
|
114
|
-
</Canvas>
|
|
115
|
-
|
|
116
|
-
## RadioButton
|
|
117
|
-
|
|
118
|
-
Use a `RadioButton` group when users need to choose a single value from a short list of options (< 6 options). They are
|
|
119
|
-
suitable for related but mutually exclusive choices.
|
|
120
|
-
|
|
121
|
-
<Canvas>
|
|
122
|
-
<RadioButton
|
|
123
|
-
options={[
|
|
124
|
-
{ label: 'Delivery', value: 'delivery' },
|
|
125
|
-
{ label: 'Collection', value: 'collection' },
|
|
126
|
-
]}
|
|
127
|
-
value={{ label: 'Collection', value: 'collection' }}
|
|
128
|
-
inline
|
|
129
|
-
/>
|
|
130
|
-
</Canvas>
|
|
131
|
-
|
|
132
|
-
## CheckBox
|
|
133
|
-
|
|
134
|
-
Use a `CheckBox` when users need to select between opposite states (switching a binary value on or off). A CheckBox
|
|
135
|
-
should have a label prop which makes the opposite states clear.
|
|
136
|
-
|
|
137
|
-
<Canvas>
|
|
138
|
-
<CheckBox checked label="I agree" />
|
|
139
|
-
</Canvas>
|
|
140
|
-
|
|
141
|
-
You can also use a group of checkboxes when users need to select multiple values from a short list of options
|
|
142
|
-
(< 6 options).
|
|
143
|
-
|
|
144
|
-
<Canvas>
|
|
145
|
-
<FormRow>
|
|
146
|
-
<CheckBox checked label="Breakfast" />
|
|
147
|
-
<CheckBox checked label="Lunch" />
|
|
148
|
-
<CheckBox checked label="Dinner" />
|
|
149
|
-
</FormRow>
|
|
150
|
-
</Canvas>
|
|
151
|
-
|
|
152
|
-
## OptionDropdown
|
|
153
|
-
|
|
154
|
-
For a larger number of `CheckBox` options and where space is limited, there's a convenience component called `OptionDropdown`,
|
|
155
|
-
which allows selecting a multiple values, by presenting them in a dropdown, with an easy way to select all or clear.
|
|
156
|
-
|
|
157
|
-
<Canvas>
|
|
158
|
-
<OptionDropdown
|
|
159
|
-
label="Meals"
|
|
160
|
-
options={[
|
|
161
|
-
{ label: 'Breakfast', value: 'breakfast' },
|
|
162
|
-
{ label: 'Lunch', value: 'lunch' },
|
|
163
|
-
{ label: 'Dinner', value: 'dinner', selected: true },
|
|
164
|
-
]}
|
|
165
|
-
onChange={() => {}}
|
|
166
|
-
/>
|
|
167
|
-
</Canvas>
|
|
168
|
-
|
|
169
|
-
## Toggle
|
|
170
|
-
|
|
171
|
-
A `Toggle` is just an alternative variant to a `CheckBox` and has the same use-case (switching a binary value on or off).
|
|
172
|
-
|
|
173
|
-
<Canvas>
|
|
174
|
-
<Toggle checked label="Express mode" onChange={() => {}} />
|
|
175
|
-
</Canvas>
|
|
176
|
-
|
|
177
|
-
## Slider
|
|
178
|
-
|
|
179
|
-
A `Slider` helps a user to select a numerical value between two endpoints. It can be more convenient than typing values,
|
|
180
|
-
particularly on touch devices.
|
|
181
|
-
|
|
182
|
-
A `Slider` can also be used to set a range of values (start and end points).
|
|
183
|
-
|
|
184
|
-
<Canvas>
|
|
185
|
-
<Slider
|
|
186
|
-
value={30}
|
|
187
|
-
min={0}
|
|
188
|
-
max={100}
|
|
189
|
-
step={1}
|
|
190
|
-
width="200px"
|
|
191
|
-
onChange={() => {}}
|
|
192
|
-
/>
|
|
193
|
-
</Canvas>
|
|
194
|
-
|
|
195
|
-
## File Input
|
|
196
|
-
|
|
197
|
-
Use a `FileInput` when a user needs to upload a file. The `accept` prop allows you to restrict the accepted file types.
|
|
198
|
-
|
|
199
|
-
<Canvas>
|
|
200
|
-
<FileInput accept=".json" width="200px" />
|
|
201
|
-
</Canvas>
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import cx from 'classnames';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
|
-
import { FaQuestionCircle, FaInfoCircle, FaBook } from 'react-icons/fa';
|
|
5
|
-
import { HiLockClosed, HiLockOpen } from 'react-icons/hi';
|
|
6
|
-
import { Tooltip } from '../tooltip/tooltip';
|
|
7
|
-
import { IconWrapper } from '../heading/heading';
|
|
8
|
-
import styles from './label.module.less';
|
|
9
|
-
|
|
10
|
-
export const Label = ({
|
|
11
|
-
label,
|
|
12
|
-
width,
|
|
13
|
-
helpText,
|
|
14
|
-
helpTextMaxWidth,
|
|
15
|
-
onClickHelp,
|
|
16
|
-
lock,
|
|
17
|
-
info,
|
|
18
|
-
libraryIcon,
|
|
19
|
-
labelLeft,
|
|
20
|
-
}) => {
|
|
21
|
-
return (
|
|
22
|
-
<div className={cx(styles.label, labelLeft ? styles.labelLeft : '')}>
|
|
23
|
-
<label style={{ width: width || '' }}>
|
|
24
|
-
{label}
|
|
25
|
-
<div className={styles.icons}>
|
|
26
|
-
{helpText && !onClickHelp ? (
|
|
27
|
-
<Tooltip text={helpText} maxWidth={helpTextMaxWidth}>
|
|
28
|
-
<FaQuestionCircle className={styles.icon} />
|
|
29
|
-
</Tooltip>
|
|
30
|
-
) : (
|
|
31
|
-
onClickHelp && (
|
|
32
|
-
<IconWrapper
|
|
33
|
-
onClick={onClickHelp}
|
|
34
|
-
icon={<FaQuestionCircle />}
|
|
35
|
-
isHelp
|
|
36
|
-
/>
|
|
37
|
-
)
|
|
38
|
-
)}
|
|
39
|
-
{info && (
|
|
40
|
-
<Tooltip text={info}>
|
|
41
|
-
<FaInfoCircle className={styles.icon} />
|
|
42
|
-
</Tooltip>
|
|
43
|
-
)}
|
|
44
|
-
{lock && lock.visible && lock.onClick && (
|
|
45
|
-
<Tooltip text={lock?.tooltip ?? ''}>
|
|
46
|
-
<IconWrapper
|
|
47
|
-
onClick={lock.onClick}
|
|
48
|
-
isLock
|
|
49
|
-
icon={lock.active ? <HiLockClosed /> : <HiLockOpen />}
|
|
50
|
-
isFaint={!lock.active}
|
|
51
|
-
testId={lock.testId}
|
|
52
|
-
/>
|
|
53
|
-
</Tooltip>
|
|
54
|
-
)}
|
|
55
|
-
{libraryIcon && (
|
|
56
|
-
<Tooltip text={libraryIcon?.tooltip ?? ''}>
|
|
57
|
-
<IconWrapper onClick={libraryIcon.onClick} icon={<FaBook />} />
|
|
58
|
-
</Tooltip>
|
|
59
|
-
)}
|
|
60
|
-
</div>
|
|
61
|
-
</label>
|
|
62
|
-
</div>
|
|
63
|
-
);
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
Label.defaultProps = {
|
|
67
|
-
label: null,
|
|
68
|
-
helpText: null,
|
|
69
|
-
helpTextMaxWidth: '300px',
|
|
70
|
-
width: 'auto',
|
|
71
|
-
info: null,
|
|
72
|
-
onClickHelp: null,
|
|
73
|
-
lock: {
|
|
74
|
-
visible: false,
|
|
75
|
-
active: false,
|
|
76
|
-
onClick: () => {},
|
|
77
|
-
tooltip: '',
|
|
78
|
-
testId: undefined,
|
|
79
|
-
},
|
|
80
|
-
libraryIcon: null,
|
|
81
|
-
labelLeft: false,
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
Label.propTypes = {
|
|
85
|
-
label: PropTypes.oneOfType([
|
|
86
|
-
PropTypes.string,
|
|
87
|
-
PropTypes.number,
|
|
88
|
-
PropTypes.node,
|
|
89
|
-
]),
|
|
90
|
-
/** Adds a help icon with a tooltip */
|
|
91
|
-
helpText: PropTypes.oneOfType([
|
|
92
|
-
PropTypes.string,
|
|
93
|
-
PropTypes.number,
|
|
94
|
-
PropTypes.node,
|
|
95
|
-
]),
|
|
96
|
-
helpTextMaxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), //'none' to disable
|
|
97
|
-
width: PropTypes.string,
|
|
98
|
-
/** Adds an info icon with an optional tooltip and onClick event */
|
|
99
|
-
info: PropTypes.string,
|
|
100
|
-
onClickHelp: PropTypes.func,
|
|
101
|
-
/** Adds a lock icon with a tooltip */
|
|
102
|
-
lock: PropTypes.shape({
|
|
103
|
-
visible: PropTypes.bool,
|
|
104
|
-
active: PropTypes.bool,
|
|
105
|
-
onClick: PropTypes.func,
|
|
106
|
-
tooltip: PropTypes.string,
|
|
107
|
-
testId: PropTypes.string,
|
|
108
|
-
}),
|
|
109
|
-
/** Adds a library icon with a tooltip and onClick event */
|
|
110
|
-
libraryIcon: PropTypes.shape({
|
|
111
|
-
onClick: PropTypes.func,
|
|
112
|
-
tooltip: PropTypes.string,
|
|
113
|
-
}),
|
|
114
|
-
labelLeft: PropTypes.bool,
|
|
115
|
-
};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
@import '../../style/variables.less';
|
|
2
|
-
|
|
3
|
-
.label {
|
|
4
|
-
display: flex;
|
|
5
|
-
align-items: center;
|
|
6
|
-
|
|
7
|
-
&.labelLeft {
|
|
8
|
-
margin-bottom: 0;
|
|
9
|
-
flex-shrink: 0;
|
|
10
|
-
padding-right: 10px;
|
|
11
|
-
|
|
12
|
-
> label {
|
|
13
|
-
margin-bottom: 0;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.icons {
|
|
18
|
-
display: inline-flex;
|
|
19
|
-
|
|
20
|
-
> * {
|
|
21
|
-
margin-left: 8px;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.icon {
|
|
26
|
-
margin-left: auto;
|
|
27
|
-
color: var(--color-text-faint);
|
|
28
|
-
line-height: 0;
|
|
29
|
-
font-size: 13px;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
> label {
|
|
33
|
-
display: flex;
|
|
34
|
-
align-items: center;
|
|
35
|
-
font-weight: bold;
|
|
36
|
-
font-size: 13px;
|
|
37
|
-
margin-bottom: 5px;
|
|
38
|
-
|
|
39
|
-
span {
|
|
40
|
-
line-height: 0; // Strip whitespace from icon
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { useState } from '@storybook/addons';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { Label } from '../../..';
|
|
4
|
-
|
|
5
|
-
export default {
|
|
6
|
-
title: 'Forms/Label',
|
|
7
|
-
component: Label,
|
|
8
|
-
args: {
|
|
9
|
-
label: 'Label',
|
|
10
|
-
},
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
const Template = (args) => (
|
|
14
|
-
<Label
|
|
15
|
-
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
16
|
-
{...args}
|
|
17
|
-
/>
|
|
18
|
-
);
|
|
19
|
-
|
|
20
|
-
export const Default = Template.bind({});
|
|
21
|
-
|
|
22
|
-
export const HelpIconTooltip = Template.bind({});
|
|
23
|
-
HelpIconTooltip.args = {
|
|
24
|
-
helpText: 'Tooltip goes here',
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export const HelpIconClickable = Template.bind({});
|
|
28
|
-
HelpIconClickable.args = {
|
|
29
|
-
onClickHelp: () => {},
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export const InfoIcon = Template.bind({});
|
|
33
|
-
InfoIcon.args = {
|
|
34
|
-
info: 'Info goes here',
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
export const LockIcon = () => {
|
|
38
|
-
const [locked, setLocked] = useState(false);
|
|
39
|
-
const handleToggleLock = () => setLocked(!locked);
|
|
40
|
-
return (
|
|
41
|
-
<Label
|
|
42
|
-
label="Label"
|
|
43
|
-
lock={{
|
|
44
|
-
visible: true,
|
|
45
|
-
active: locked,
|
|
46
|
-
onClick: handleToggleLock,
|
|
47
|
-
tooltip: locked ? 'Unlock' : 'Lock',
|
|
48
|
-
testId: 'testId',
|
|
49
|
-
}}
|
|
50
|
-
/>
|
|
51
|
-
);
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export const LibraryIcon = Template.bind({});
|
|
55
|
-
LibraryIcon.args = {
|
|
56
|
-
libraryIcon: {
|
|
57
|
-
onClick: () => {},
|
|
58
|
-
tooltip: 'View in library',
|
|
59
|
-
},
|
|
60
|
-
};
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
|
-
import { StyledColumn } from './styles.js';
|
|
4
|
-
|
|
5
|
-
export const Column = ({
|
|
6
|
-
background,
|
|
7
|
-
borderLeft,
|
|
8
|
-
borderRight,
|
|
9
|
-
children,
|
|
10
|
-
flex,
|
|
11
|
-
flexbox,
|
|
12
|
-
padding,
|
|
13
|
-
scroll,
|
|
14
|
-
showScrollbar,
|
|
15
|
-
spacing,
|
|
16
|
-
width,
|
|
17
|
-
widthMobile,
|
|
18
|
-
widthTablet,
|
|
19
|
-
testId,
|
|
20
|
-
}) => {
|
|
21
|
-
const getWidthString = (w) => {
|
|
22
|
-
return typeof w === 'string'
|
|
23
|
-
? w
|
|
24
|
-
: typeof w === 'number'
|
|
25
|
-
? `${w}px`
|
|
26
|
-
: undefined;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
return (
|
|
30
|
-
<StyledColumn
|
|
31
|
-
background={background}
|
|
32
|
-
borderLeft={borderLeft}
|
|
33
|
-
borderRight={borderRight}
|
|
34
|
-
flex={flex}
|
|
35
|
-
flexbox={flexbox}
|
|
36
|
-
padding={padding}
|
|
37
|
-
scroll={scroll}
|
|
38
|
-
showScrollbar={showScrollbar}
|
|
39
|
-
spacing={spacing}
|
|
40
|
-
width={getWidthString(width)}
|
|
41
|
-
widthTablet={getWidthString(widthTablet)}
|
|
42
|
-
widthMobile={getWidthString(widthMobile)}
|
|
43
|
-
>
|
|
44
|
-
<div className="inner" data-testid={testId}>
|
|
45
|
-
{children}
|
|
46
|
-
</div>
|
|
47
|
-
</StyledColumn>
|
|
48
|
-
);
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
Column.defaultProps = {
|
|
52
|
-
background: 'transparent',
|
|
53
|
-
borderLeft: null,
|
|
54
|
-
borderRight: null,
|
|
55
|
-
children: null,
|
|
56
|
-
flex: true,
|
|
57
|
-
flexbox: false,
|
|
58
|
-
padding: false,
|
|
59
|
-
scroll: false,
|
|
60
|
-
showScrollbar: true,
|
|
61
|
-
spacing: 20,
|
|
62
|
-
width: null,
|
|
63
|
-
widthMobile: null,
|
|
64
|
-
widthTablet: null,
|
|
65
|
-
testId: '',
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
Column.propTypes = {
|
|
69
|
-
background: PropTypes.string,
|
|
70
|
-
borderLeft: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),
|
|
71
|
-
borderRight: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),
|
|
72
|
-
children: PropTypes.node,
|
|
73
|
-
/** Fill available `Row` width */
|
|
74
|
-
flex: PropTypes.bool,
|
|
75
|
-
/** Give `Column` children flexbox layout */
|
|
76
|
-
flexbox: PropTypes.bool,
|
|
77
|
-
padding: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),
|
|
78
|
-
scroll: PropTypes.bool,
|
|
79
|
-
showScrollbar: PropTypes.bool,
|
|
80
|
-
spacing: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
81
|
-
width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
82
|
-
widthMobile: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
83
|
-
widthTablet: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
84
|
-
testId: PropTypes.string,
|
|
85
|
-
};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import styled, { css } from 'styled-components';
|
|
2
|
-
|
|
3
|
-
const noScrollbars = css`
|
|
4
|
-
scrollbar-width: none;
|
|
5
|
-
-ms-overflow-style: none;
|
|
6
|
-
&::-webkit-scrollbar {
|
|
7
|
-
display: none;
|
|
8
|
-
}
|
|
9
|
-
`;
|
|
10
|
-
|
|
11
|
-
export const StyledColumn = styled.div`
|
|
12
|
-
position: relative; //for react-laag
|
|
13
|
-
display: flex;
|
|
14
|
-
flex-direction: column;
|
|
15
|
-
min-width: 0;
|
|
16
|
-
flex-basis: ${(p) => p.width || 'auto'};
|
|
17
|
-
flex-grow: ${(p) => (!p.width && p.flex ? '1' : '0')};
|
|
18
|
-
flex-shrink: ${(p) => (p.width || !p.flex ? '0' : '1')};
|
|
19
|
-
overflow: ${(p) => (p.scroll ? 'auto' : 'initial')};
|
|
20
|
-
background: ${(p) => p.background};
|
|
21
|
-
border-left: ${(p) =>
|
|
22
|
-
p.borderLeft === true ? '1px solid var(--color-border)' : p.borderLeft};
|
|
23
|
-
border-right: ${(p) =>
|
|
24
|
-
p.borderRight === true ? '1px solid var(--color-border)' : p.borderRight};
|
|
25
|
-
padding: ${(p) => (p.spacing ? `0 ${p.spacing / 2}px` : '0')};
|
|
26
|
-
${(p) => !p.showScrollbar && noScrollbars}
|
|
27
|
-
|
|
28
|
-
@media (max-width: 992px) {
|
|
29
|
-
${(p) => p.widthTablet && `flex-basis: ${p.widthTablet};`}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
@media (max-width: 575px) {
|
|
33
|
-
${(p) => p.widthMobile && `flex-basis: ${p.widthMobile};`}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
> .inner {
|
|
37
|
-
flex-basis: 100%;
|
|
38
|
-
position: relative;
|
|
39
|
-
z-index: 0;
|
|
40
|
-
min-height: 0;
|
|
41
|
-
display: ${(p) => (p.flexbox && !p.scroll ? 'flex' : 'block')};
|
|
42
|
-
${(p) => p.flexbox && `flex-direction: column;`}
|
|
43
|
-
padding: ${(p) => (p.padding === true ? '16px 20px' : p.padding)};
|
|
44
|
-
}
|
|
45
|
-
`;
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Column, Row, Heading } from '../../..';
|
|
3
|
-
|
|
4
|
-
export default {
|
|
5
|
-
title: 'Layout/Columns & Rows',
|
|
6
|
-
component: Column,
|
|
7
|
-
parameters: {
|
|
8
|
-
layout: 'fullscreen',
|
|
9
|
-
},
|
|
10
|
-
args: {
|
|
11
|
-
width: '400px',
|
|
12
|
-
padding: '20px',
|
|
13
|
-
borderRight: true,
|
|
14
|
-
},
|
|
15
|
-
argTypes: {
|
|
16
|
-
width: { control: { type: 'text' } },
|
|
17
|
-
padding: { control: { type: 'text' } },
|
|
18
|
-
borderLeft: { control: { type: 'boolean' } },
|
|
19
|
-
borderRight: { control: { type: 'boolean' } },
|
|
20
|
-
},
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
const Template = (args) => {
|
|
24
|
-
const { height, wrap, ...columnArgs } = args;
|
|
25
|
-
return (
|
|
26
|
-
<Row spacing={0} height={height} wrap={wrap}>
|
|
27
|
-
<Column
|
|
28
|
-
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
29
|
-
{...columnArgs}
|
|
30
|
-
>
|
|
31
|
-
<Heading top>Column</Heading>
|
|
32
|
-
{'Example content goes here lorem ipsum. '.repeat(20)}
|
|
33
|
-
</Column>
|
|
34
|
-
<Column padding="20px" background="var(--color-background)" />
|
|
35
|
-
</Row>
|
|
36
|
-
);
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
export const Default = Template.bind({});
|
|
40
|
-
|
|
41
|
-
export const Scroll = Template.bind({});
|
|
42
|
-
Scroll.args = {
|
|
43
|
-
scroll: true,
|
|
44
|
-
height: '200px',
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
export const HideScrollbar = Template.bind({});
|
|
48
|
-
HideScrollbar.args = {
|
|
49
|
-
scroll: true,
|
|
50
|
-
showScrollbar: false,
|
|
51
|
-
height: '200px',
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export const ResponsiveWidth = Template.bind({});
|
|
55
|
-
ResponsiveWidth.args = {
|
|
56
|
-
wrap: true,
|
|
57
|
-
widthTablet: '50%',
|
|
58
|
-
widthMobile: '100%',
|
|
59
|
-
borderRight: false,
|
|
60
|
-
};
|