@oliasoft-open-source/react-ui-library 2.4.8 → 3.0.1

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.
Files changed (320) hide show
  1. package/README.md +0 -1
  2. package/dist/global.css +21840 -0
  3. package/dist/index.js +43567 -0
  4. package/package.json +37 -55
  5. package/.eslintignore +0 -2
  6. package/.eslintrc.js +0 -125
  7. package/.gitlab-ci.yml +0 -76
  8. package/.husky/pre-commit +0 -4
  9. package/.prettierignore +0 -3
  10. package/.prettierrc +0 -4
  11. package/.storybook/main.js +0 -36
  12. package/.storybook/preview.js +0 -40
  13. package/.storybook/storybook.less +0 -8
  14. package/babel.config.js +0 -31
  15. package/index.js +0 -76
  16. package/jest.config.js +0 -9
  17. package/scripts/send-mattermost-message.sh +0 -21
  18. package/src/components/accordion/accordion.jsx +0 -132
  19. package/src/components/accordion/accordion.module.less +0 -66
  20. package/src/components/accordion/accordion.stories.jsx +0 -171
  21. package/src/components/accordion/chevron/chevron.jsx +0 -12
  22. package/src/components/accordion/chevron/chevron.module.less +0 -12
  23. package/src/components/accordion/helpers/accordion-with-default-toggle.jsx +0 -106
  24. package/src/components/accordion/helpers/accordion-with-default-toggle.module.less +0 -24
  25. package/src/components/actions/actions.jsx +0 -129
  26. package/src/components/actions/actions.module.less +0 -44
  27. package/src/components/actions/actions.shape.js +0 -32
  28. package/src/components/actions/actions.stories.jsx +0 -79
  29. package/src/components/badge/badge.jsx +0 -58
  30. package/src/components/badge/badge.module.less +0 -55
  31. package/src/components/badge/badge.stories.jsx +0 -31
  32. package/src/components/breadcrumb/breadcrumb.jsx +0 -49
  33. package/src/components/breadcrumb/breadcrumb.module.less +0 -39
  34. package/src/components/breadcrumb/breadcrumb.stories.jsx +0 -45
  35. package/src/components/breadcrumb/link.jsx +0 -31
  36. package/src/components/button/button.jsx +0 -156
  37. package/src/components/button/button.module.less +0 -300
  38. package/src/components/button/button.stories.jsx +0 -74
  39. package/src/components/button-group/button-group.jsx +0 -140
  40. package/src/components/button-group/button-group.module.less +0 -24
  41. package/src/components/button-group/button-group.stories-data.jsx +0 -67
  42. package/src/components/button-group/button-group.stories.jsx +0 -63
  43. package/src/components/buttons-and-links.stories.mdx +0 -55
  44. package/src/components/card/card.jsx +0 -51
  45. package/src/components/card/card.module.less +0 -48
  46. package/src/components/card/card.stories.jsx +0 -39
  47. package/src/components/check-box/check-box.jsx +0 -92
  48. package/src/components/check-box/check-box.module.less +0 -101
  49. package/src/components/check-box/check-box.stories.jsx +0 -27
  50. package/src/components/color/color.stories-data.jsx +0 -71
  51. package/src/components/color/color.stories.mdx +0 -37
  52. package/src/components/dialog/dialog.jsx +0 -77
  53. package/src/components/dialog/dialog.module.less +0 -76
  54. package/src/components/divider/divider.jsx +0 -40
  55. package/src/components/divider/divider.module.less +0 -28
  56. package/src/components/divider/divider.stories.jsx +0 -50
  57. package/src/components/drawer/drawer-resize-wrapper.jsx +0 -76
  58. package/src/components/drawer/drawer-tabs.jsx +0 -44
  59. package/src/components/drawer/drawer.jsx +0 -161
  60. package/src/components/drawer/drawer.module.less +0 -217
  61. package/src/components/drawer/drawer.stories.jsx +0 -296
  62. package/src/components/empty/empty.jsx +0 -52
  63. package/src/components/empty/empty.module.less +0 -17
  64. package/src/components/empty/empty.stories.jsx +0 -26
  65. package/src/components/file-input/file-input.jsx +0 -101
  66. package/src/components/file-input/file-input.module.less +0 -3
  67. package/src/components/file-input/file-input.stories.jsx +0 -109
  68. package/src/components/form/field.jsx +0 -96
  69. package/src/components/form/field.stories.jsx +0 -101
  70. package/src/components/form/form.module.less +0 -30
  71. package/src/components/form/form.stories.jsx +0 -191
  72. package/src/components/heading/heading.jsx +0 -105
  73. package/src/components/heading/heading.module.less +0 -59
  74. package/src/components/heading/heading.stories.jsx +0 -60
  75. package/src/components/icon/deprecated-icon.jsx +0 -97
  76. package/src/components/icon/icon.jsx +0 -71
  77. package/src/components/icon/icon.module.less +0 -33
  78. package/src/components/icon/icon.stories.jsx +0 -37
  79. package/src/components/icon/icons.example.module.less +0 -4
  80. package/src/components/input/input.jsx +0 -167
  81. package/src/components/input/input.module.less +0 -94
  82. package/src/components/input/input.stories.jsx +0 -28
  83. package/src/components/input-group/input-group-addon/input-group-addon.jsx +0 -36
  84. package/src/components/input-group/input-group-addon/input-group-addon.module.less +0 -31
  85. package/src/components/input-group/input-group.jsx +0 -51
  86. package/src/components/input-group/input-group.module.less +0 -10
  87. package/src/components/input-group/input-group.stories.jsx +0 -77
  88. package/src/components/input-validation.stories.mdx +0 -61
  89. package/src/components/inputs.stories.mdx +0 -201
  90. package/src/components/label/label.jsx +0 -115
  91. package/src/components/label/label.module.less +0 -43
  92. package/src/components/label/label.stories.jsx +0 -60
  93. package/src/components/layout/column/column.jsx +0 -85
  94. package/src/components/layout/column/styles.js +0 -45
  95. package/src/components/layout/column.stories.jsx +0 -60
  96. package/src/components/layout/examples/afe.stories.jsx +0 -180
  97. package/src/components/layout/examples/blowout.stories.jsx +0 -68
  98. package/src/components/layout/examples/casing-loads.stories.jsx +0 -297
  99. package/src/components/layout/examples/formation.stories.jsx +0 -110
  100. package/src/components/layout/examples/projects.stories.jsx +0 -108
  101. package/src/components/layout/examples/reservoirs.stories.jsx +0 -211
  102. package/src/components/layout/examples/site.stories.jsx +0 -263
  103. package/src/components/layout/flex/flex.jsx +0 -48
  104. package/src/components/layout/flex/flex.stories.jsx +0 -59
  105. package/src/components/layout/form-row/form-row.jsx +0 -15
  106. package/src/components/layout/form-row/form-row.module.less +0 -11
  107. package/src/components/layout/grid/grid.jsx +0 -62
  108. package/src/components/layout/grid/grid.stories.jsx +0 -67
  109. package/src/components/layout/page/page.jsx +0 -42
  110. package/src/components/layout/page/page.module.less +0 -27
  111. package/src/components/layout/page.stories.jsx +0 -93
  112. package/src/components/layout/placeholder.jsx +0 -2
  113. package/src/components/layout/print-header/print-header.jsx +0 -22
  114. package/src/components/layout/print-header/print-header.module.less +0 -9
  115. package/src/components/layout/row/row.jsx +0 -75
  116. package/src/components/layout/row/row.module.less +0 -7
  117. package/src/components/layout/spacer/spacer.jsx +0 -26
  118. package/src/components/layout/spacer/spacer.stories.jsx +0 -50
  119. package/src/components/layout-forms.stories.mdx +0 -104
  120. package/src/components/layout-general.stories.mdx +0 -215
  121. package/src/components/list/list-row/item-content.jsx +0 -15
  122. package/src/components/list/list-row/label.jsx +0 -11
  123. package/src/components/list/list-row/list-heading.jsx +0 -52
  124. package/src/components/list/list-row/list-row.jsx +0 -128
  125. package/src/components/list/list-row/list-subheading.jsx +0 -72
  126. package/src/components/list/list-row/meta-content.jsx +0 -24
  127. package/src/components/list/list-row/meta-count.jsx +0 -10
  128. package/src/components/list/list-row/name.jsx +0 -45
  129. package/src/components/list/list.jsx +0 -276
  130. package/src/components/list/list.module.less +0 -256
  131. package/src/components/list/list.stories-data.jsx +0 -287
  132. package/src/components/list/list.stories.jsx +0 -458
  133. package/src/components/list/toggle-narrow.jsx +0 -13
  134. package/src/components/loader/loader.jsx +0 -63
  135. package/src/components/loader/loader.module.less +0 -63
  136. package/src/components/loader/loader.stories.jsx +0 -155
  137. package/src/components/menu/index.js +0 -7
  138. package/src/components/menu/layer/divider.jsx +0 -4
  139. package/src/components/menu/layer/heading.jsx +0 -15
  140. package/src/components/menu/layer/layer.jsx +0 -82
  141. package/src/components/menu/layer/option.jsx +0 -77
  142. package/src/components/menu/layer/path.js +0 -44
  143. package/src/components/menu/layer/placementOptions.js +0 -6
  144. package/src/components/menu/layer/section.jsx +0 -66
  145. package/src/components/menu/menu.jsx +0 -359
  146. package/src/components/menu/menu.module.less +0 -241
  147. package/src/components/menu/menu.stories-data.jsx +0 -168
  148. package/src/components/menu/menu.stories.jsx +0 -126
  149. package/src/components/menu/menu.test.js +0 -58
  150. package/src/components/menu/trigger/button.jsx +0 -50
  151. package/src/components/menu/trigger/component.jsx +0 -14
  152. package/src/components/menu/trigger/text.jsx +0 -25
  153. package/src/components/menu/trigger/trigger.jsx +0 -86
  154. package/src/components/message/dismiss.jsx +0 -26
  155. package/src/components/message/message.jsx +0 -137
  156. package/src/components/message/message.module.less +0 -114
  157. package/src/components/message/message.stories.jsx +0 -84
  158. package/src/components/modal/modal.jsx +0 -50
  159. package/src/components/modal/modal.module.less +0 -39
  160. package/src/components/modal/modal.stories.jsx +0 -162
  161. package/src/components/option-dropdown/heading.jsx +0 -6
  162. package/src/components/option-dropdown/layer.jsx +0 -81
  163. package/src/components/option-dropdown/option-dropdown.jsx +0 -53
  164. package/src/components/option-dropdown/option-dropdown.module.less +0 -50
  165. package/src/components/option-dropdown/option-dropdown.stories.jsx +0 -35
  166. package/src/components/option-dropdown/option.jsx +0 -13
  167. package/src/components/pagination/pagination.jsx +0 -139
  168. package/src/components/pagination/pagination.module.less +0 -11
  169. package/src/components/pagination/pagination.stories.jsx +0 -78
  170. package/src/components/pagination/pagination.test.js +0 -92
  171. package/src/components/pagination/pagination.viewdata.js +0 -66
  172. package/src/components/pop-confirm/content.jsx +0 -25
  173. package/src/components/pop-confirm/pop-confirm.jsx +0 -61
  174. package/src/components/pop-confirm/pop-confirm.module.less +0 -18
  175. package/src/components/pop-confirm/pop-confirm.stories.jsx +0 -53
  176. package/src/components/popover/popover.jsx +0 -112
  177. package/src/components/popover/popover.module.less +0 -22
  178. package/src/components/popover/popover.stories.jsx +0 -59
  179. package/src/components/portal/portal.jsx +0 -16
  180. package/src/components/portal/portal.stories.jsx +0 -69
  181. package/src/components/progress-bar/progress-bar.jsx +0 -64
  182. package/src/components/progress-bar/progress-bar.module.less +0 -64
  183. package/src/components/progress-bar/progress-bar.stories.jsx +0 -23
  184. package/src/components/radio-button/radio-button.jsx +0 -139
  185. package/src/components/radio-button/radio-button.module.less +0 -135
  186. package/src/components/radio-button/radio-button.stories.jsx +0 -37
  187. package/src/components/radio-button/radio-input.jsx +0 -52
  188. package/src/components/select/custom-select/custom-select.jsx +0 -440
  189. package/src/components/select/custom-select/custom-select.module.less +0 -123
  190. package/src/components/select/custom-select/custom-select.reducer.js +0 -157
  191. package/src/components/select/custom-select/layer/heading.jsx +0 -13
  192. package/src/components/select/custom-select/layer/layer.jsx +0 -73
  193. package/src/components/select/custom-select/layer/option.jsx +0 -54
  194. package/src/components/select/custom-select/layer/placementOptions.js +0 -7
  195. package/src/components/select/custom-select/layer/section.jsx +0 -35
  196. package/src/components/select/custom-select/trigger/input.jsx +0 -100
  197. package/src/components/select/custom-select/trigger/trigger.jsx +0 -155
  198. package/src/components/select/custom-select/trigger/trigger.module.less +0 -289
  199. package/src/components/select/native-select/native-select.jsx +0 -198
  200. package/src/components/select/native-select/native-select.module.less +0 -107
  201. package/src/components/select/select.input.js +0 -146
  202. package/src/components/select/select.jsx +0 -207
  203. package/src/components/select/select.stories-data.jsx +0 -92
  204. package/src/components/select/select.stories.jsx +0 -135
  205. package/src/components/select/select.test.js +0 -519
  206. package/src/components/side-bar/container.module.less +0 -29
  207. package/src/components/side-bar/link.jsx +0 -83
  208. package/src/components/side-bar/sections.jsx +0 -23
  209. package/src/components/side-bar/side-bar.jsx +0 -102
  210. package/src/components/side-bar/side-bar.module.less +0 -137
  211. package/src/components/side-bar/side-bar.stories.jsx +0 -101
  212. package/src/components/slider/rc-slider.less +0 -47
  213. package/src/components/slider/slider-tooltip.jsx +0 -20
  214. package/src/components/slider/slider.jsx +0 -233
  215. package/src/components/slider/slider.module.less +0 -40
  216. package/src/components/slider/slider.stories.jsx +0 -110
  217. package/src/components/spinner/spinner.jsx +0 -37
  218. package/src/components/spinner/spinner.module.less +0 -115
  219. package/src/components/spinner/spinner.stories.jsx +0 -24
  220. package/src/components/table/cell/cell.jsx +0 -621
  221. package/src/components/table/cell/cell.module.less +0 -164
  222. package/src/components/table/footer/footer.jsx +0 -66
  223. package/src/components/table/footer/footer.module.less +0 -14
  224. package/src/components/table/helper.js +0 -64
  225. package/src/components/table/helper.test.js +0 -166
  226. package/src/components/table/icon/icon.module.less +0 -31
  227. package/src/components/table/row/expanded-content-row.jsx +0 -16
  228. package/src/components/table/row/row.jsx +0 -253
  229. package/src/components/table/row/row.module.less +0 -62
  230. package/src/components/table/table-scroll-wrapper.jsx +0 -49
  231. package/src/components/table/table.jsx +0 -234
  232. package/src/components/table/table.module.less +0 -146
  233. package/src/components/table/table.stories-data.jsx +0 -875
  234. package/src/components/table/table.stories.jsx +0 -759
  235. package/src/components/table/table.test.js +0 -30
  236. package/src/components/table/table.variables.less +0 -11
  237. package/src/components/table/table.viewdata.js +0 -26
  238. package/src/components/table/title/title.jsx +0 -30
  239. package/src/components/table/title/title.module.less +0 -11
  240. package/src/components/tabs/content.jsx +0 -14
  241. package/src/components/tabs/label.jsx +0 -50
  242. package/src/components/tabs/tabs.jsx +0 -191
  243. package/src/components/tabs/tabs.module.less +0 -73
  244. package/src/components/tabs/tabs.stories.jsx +0 -110
  245. package/src/components/text/text.jsx +0 -64
  246. package/src/components/text/text.module.less +0 -45
  247. package/src/components/text/text.stories.jsx +0 -31
  248. package/src/components/text-link/text-link.jsx +0 -23
  249. package/src/components/text-link/text-link.stories.jsx +0 -20
  250. package/src/components/textarea/textarea.jsx +0 -126
  251. package/src/components/textarea/textarea.module.less +0 -55
  252. package/src/components/textarea/textarea.stories.jsx +0 -26
  253. package/src/components/toaster/toaster.jsx +0 -39
  254. package/src/components/toaster/toaster.less +0 -17
  255. package/src/components/toaster/toaster.stories.jsx +0 -116
  256. package/src/components/toggle/toggle.jsx +0 -65
  257. package/src/components/toggle/toggle.module.less +0 -139
  258. package/src/components/toggle/toggle.stories.jsx +0 -26
  259. package/src/components/tooltip/tooltip-layer.jsx +0 -72
  260. package/src/components/tooltip/tooltip.jsx +0 -108
  261. package/src/components/tooltip/tooltip.module.less +0 -28
  262. package/src/components/tooltip/tooltip.stories.jsx +0 -71
  263. package/src/components/top-bar/element/element.jsx +0 -72
  264. package/src/components/top-bar/element/link.jsx +0 -29
  265. package/src/components/top-bar/title.jsx +0 -24
  266. package/src/components/top-bar/top-bar.jsx +0 -79
  267. package/src/components/top-bar/top-bar.module.less +0 -190
  268. package/src/components/top-bar/top-bar.stories.jsx +0 -137
  269. package/src/components/top-bar/warning.jsx +0 -6
  270. package/src/components/tree/tree-item.jsx +0 -79
  271. package/src/components/tree/tree-placeholder.jsx +0 -6
  272. package/src/components/tree/tree.jsx +0 -129
  273. package/src/components/tree/tree.module.less +0 -33
  274. package/src/components/tree/tree.stories-data.jsx +0 -89
  275. package/src/components/tree/tree.stories.jsx +0 -106
  276. package/src/docs/components/page/page.jsx +0 -16
  277. package/src/docs/config/config.js +0 -1
  278. package/src/docs/html/favicon.png +0 -0
  279. package/src/docs/html/index.html +0 -11
  280. package/src/docs/navigation/footer/footer.jsx +0 -48
  281. package/src/docs/navigation/header/header.jsx +0 -39
  282. package/src/docs/navigation/header/header.module.less +0 -32
  283. package/src/docs/navigation/routes/routes.jsx +0 -16
  284. package/src/docs/start.jsx +0 -12
  285. package/src/docs/views/main/main.jsx +0 -209
  286. package/src/docs/views/main/main.module.less +0 -14
  287. package/src/docs/views/not-found/not-found.jsx +0 -5
  288. package/src/helpers/disabled-context.js +0 -8
  289. package/src/helpers/styles.js +0 -68
  290. package/src/helpers/text.js +0 -6
  291. package/src/helpers/types.js +0 -5
  292. package/src/hooks/index.js +0 -3
  293. package/src/hooks/use-focus.js +0 -11
  294. package/src/hooks/use-keyboard-event.js +0 -16
  295. package/src/hooks/use-window-width.js +0 -20
  296. package/src/images/icons/icon-drop.png +0 -0
  297. package/src/images/icons/icon-share.png +0 -0
  298. package/src/images/icons/icons8-junction.svg +0 -4
  299. package/src/images/logo.png +0 -0
  300. package/src/images/logo.svg +0 -13
  301. package/src/images/oliasoft-logo.svg +0 -1
  302. package/src/style/colors.less +0 -26
  303. package/src/style/external.less +0 -10
  304. package/src/style/fonts/lato/Lato-Bold.woff2 +0 -0
  305. package/src/style/fonts/lato/Lato-BoldItalic.woff2 +0 -0
  306. package/src/style/fonts/lato/Lato-Italic.woff2 +0 -0
  307. package/src/style/fonts/lato/Lato-Regular.woff2 +0 -0
  308. package/src/style/fonts.less +0 -27
  309. package/src/style/global.less +0 -51
  310. package/src/style/mixins.less +0 -68
  311. package/src/style/reset/reset.less +0 -34
  312. package/src/style/shared.less +0 -25
  313. package/src/style/theme.dark.less +0 -37
  314. package/src/style/theme.default.less +0 -74
  315. package/src/style/variables.less +0 -49
  316. package/webpack/webpack.common.js +0 -39
  317. package/webpack/webpack.common.rules.js +0 -102
  318. package/webpack/webpack.dev.js +0 -22
  319. package/webpack/webpack.prod.js +0 -23
  320. package/webpack/webpack.resolve.js +0 -22
@@ -1,296 +0,0 @@
1
- import React, { useState } from 'react';
2
- import {
3
- FaArrowLeft,
4
- FaChevronLeft,
5
- FaCogs,
6
- FaPenAlt,
7
- FaQuestion,
8
- FaTrash,
9
- FaPlus,
10
- } from 'react-icons/fa';
11
- import { Drawer, Button, List, Heading, Flex } from '../../..';
12
- import { listSubheadingsBadges } from '../list/list.stories-data';
13
-
14
- export default {
15
- title: 'Layout/Drawer',
16
- component: Drawer,
17
- args: {
18
- button: true,
19
- open: true,
20
- right: false,
21
- border: true,
22
- shadow: false,
23
- width: '300px',
24
- closedWidth: '50px',
25
- top: undefined,
26
- background: 'var(--color-background-raised)',
27
- children: <div style={{ padding: 20 }}>Drawer content</div>,
28
- },
29
- argTypes: {
30
- button: { table: { disable: true } },
31
- },
32
- decorators: [
33
- (story) => (
34
- <Flex height="400px" wrap={false}>
35
- <div
36
- style={{
37
- flexGrow: 1,
38
- padding: 20,
39
- background: 'var(--color-background)',
40
- }}
41
- >
42
- Page content
43
- </div>
44
- {story()}
45
- </Flex>
46
- ),
47
- ],
48
- parameters: {
49
- layout: 'fullscreen',
50
- },
51
- };
52
-
53
- const Template = (args) => {
54
- return (
55
- <Drawer
56
- // eslint-disable-next-line react/jsx-props-no-spreading
57
- {...args}
58
- />
59
- );
60
- };
61
- export const Default = Template.bind({});
62
-
63
- export const Right = Template.bind({});
64
- Right.args = { right: true };
65
-
66
- export const Fixed = Template.bind({});
67
- Fixed.args = {
68
- fixed: true,
69
- };
70
- Fixed.parameters = {
71
- docs: {
72
- inlineStories: false,
73
- iframeHeight: '400px',
74
- },
75
- };
76
-
77
- export const CustomButton = Template.bind({});
78
- CustomButton.args = {
79
- buttonType: 'custom',
80
- button: <Button colored round icon={<FaArrowLeft />} />,
81
- buttonAnimate: true,
82
- };
83
-
84
- export const WithList = () => {
85
- const [open, setOpen] = useState(false);
86
- return (
87
- <Drawer
88
- button={
89
- <Button onClick={() => setOpen(!open)} round icon={<FaChevronLeft />} />
90
- }
91
- width="300px"
92
- closedWidth="50px"
93
- border
94
- open={open}
95
- >
96
- <List
97
- drawer
98
- list={listSubheadingsBadges}
99
- marginBottom={10}
100
- narrow={!open}
101
- />
102
- </Drawer>
103
- );
104
- };
105
- WithList.parameters = {
106
- docs: {
107
- description: {
108
- story:
109
- 'To hide `List` headings when the `Drawer` is closed, set the `narrow` prop on the `List`.',
110
- },
111
- },
112
- };
113
-
114
- export const Tabs = Template.bind({});
115
- Tabs.args = {
116
- right: true,
117
- button: false,
118
- closedWidth: 0,
119
- width: ['200px', '300px', '400px'],
120
- defaultTabIndex: 1,
121
- tabs: [
122
- {
123
- icon: <FaQuestion />,
124
- content: (
125
- <div style={{ padding: 20 }}>
126
- <Heading top>Help</Heading>
127
- {'Example content goes here lorem ipsum. '.repeat(500)}
128
- </div>
129
- ),
130
- },
131
- {
132
- icon: <FaCogs />,
133
- content: (
134
- <div style={{ padding: 20 }}>
135
- <Heading top>Settings</Heading>
136
- {'Example content goes here lorem ipsum. '.repeat(500)}
137
- </div>
138
- ),
139
- },
140
- {
141
- icon: <FaPenAlt />,
142
- content: (
143
- <div style={{ padding: 20 }}>
144
- <Heading top>Edit</Heading>
145
- {'Example content goes here lorem ipsum. '.repeat(500)}
146
- </div>
147
- ),
148
- },
149
- ],
150
- };
151
- Tabs.parameters = {
152
- docs: {
153
- description: {
154
- story:
155
- 'The top tab will be open by default, but you can set `defaultTabIndex` if you need a different tab open. If you need different widths per tab, pass an array of widths to `width`.',
156
- },
157
- },
158
- };
159
-
160
- export const MultipleTabbedDrawers = () => {
161
- const tabs1 = [
162
- {
163
- icon: <FaQuestion />,
164
- content: (
165
- <div style={{ padding: 20 }}>
166
- <Heading top>Help</Heading>
167
- {'Example content goes here lorem ipsum. '.repeat(500)}
168
- </div>
169
- ),
170
- },
171
- {
172
- icon: <FaCogs />,
173
- content: (
174
- <div style={{ padding: 20 }}>
175
- <Heading top>Settings</Heading>
176
- {'Example content goes here lorem ipsum. '.repeat(500)}
177
- </div>
178
- ),
179
- },
180
- ];
181
- const tabs2 = [
182
- {
183
- icon: <FaPenAlt />,
184
- content: (
185
- <div style={{ padding: 20 }}>
186
- <Heading top>Edit</Heading>
187
- {'Example content goes here lorem ipsum. '.repeat(500)}
188
- </div>
189
- ),
190
- },
191
- ];
192
- return (
193
- <>
194
- <Drawer
195
- right
196
- background="var(--color-background-raised)"
197
- tabs={tabs1}
198
- border
199
- open
200
- />
201
- <Drawer
202
- right
203
- background="var(--color-background-raised)"
204
- tabs={tabs2}
205
- border
206
- open
207
- />
208
- </>
209
- );
210
- };
211
-
212
- export const Resizable = () => {
213
- const [open, setOpen] = useState(true);
214
- const [listDrawerWidth, setListDrawerWidth] = useState(300);
215
- const [tabbedDrawerWidth, setTabbedDrawerWidth] = useState(300);
216
- const tabs = [
217
- {
218
- icon: <FaQuestion />,
219
- content: (
220
- <div style={{ padding: 20 }}>
221
- <Heading top>Help</Heading>
222
- {'Example content goes here lorem ipsum. '.repeat(500)}
223
- </div>
224
- ),
225
- },
226
- ];
227
- return (
228
- <>
229
- <Drawer
230
- button={
231
- <Button
232
- onClick={setOpen ? () => setOpen(!open) : null}
233
- round
234
- icon={<FaChevronLeft />}
235
- />
236
- }
237
- open={open}
238
- background="var(--color-background-raised)"
239
- border
240
- width={listDrawerWidth}
241
- closedWidth={50}
242
- onResize={(newWidth) => setListDrawerWidth(newWidth)}
243
- >
244
- <List
245
- drawer
246
- list={{
247
- name: 'Animals',
248
- actions: [
249
- {
250
- label: 'Add',
251
- icon: <FaPlus />,
252
- onClick: () => {},
253
- },
254
- ],
255
- items: [
256
- {
257
- id: 1,
258
- name: 'Aardvark',
259
- onClick: () => {},
260
- actions: [
261
- {
262
- label: 'Delete',
263
- icon: <FaTrash />,
264
- onClick: () => {},
265
- },
266
- ],
267
- },
268
- {
269
- id: 2,
270
- name: 'Kangaroo',
271
- active: true,
272
- actions: [
273
- {
274
- label: 'Delete',
275
- icon: <FaTrash />,
276
- onClick: () => {},
277
- },
278
- ],
279
- },
280
- ],
281
- }}
282
- narrow={!open}
283
- />
284
- </Drawer>
285
- <Drawer
286
- right
287
- background="var(--color-background-raised)"
288
- tabs={tabs}
289
- border
290
- open
291
- width={tabbedDrawerWidth}
292
- onResize={(newWidth) => setTabbedDrawerWidth(newWidth)}
293
- />
294
- </>
295
- );
296
- };
@@ -1,52 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Text } from '../text/text';
4
- import styles from './empty.module.less';
5
-
6
- export const Empty = ({ width, height, text, children }) => {
7
- return (
8
- <div className={styles.empty} style={{ width, height }}>
9
- <svg xmlns="http://www.w3.org/2000/svg" width="64" height="41">
10
- <g transform="translate(0 1)" fill="none" fillRule="evenodd">
11
- <ellipse
12
- cx="32"
13
- cy="33"
14
- rx="32"
15
- ry="7"
16
- fill="rgba(0,0,0,0.1)"
17
- ></ellipse>
18
- <g fillRule="nonzero" stroke="var(--color-text)" strokeOpacity="0.2">
19
- <path
20
- d="M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"
21
- fill="rgba(0,0,0,0.05)"
22
- ></path>
23
- <path
24
- d="M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z"
25
- fill="var(--color-background-raised)"
26
- ></path>
27
- </g>
28
- </g>
29
- </svg>
30
- {text !== '' && (
31
- <div className={styles.text}>
32
- <Text faint>{text}</Text>
33
- </div>
34
- )}
35
- {children}
36
- </div>
37
- );
38
- };
39
-
40
- Empty.defaultProps = {
41
- width: 'auto',
42
- height: 'auto',
43
- text: 'No data',
44
- children: null,
45
- };
46
-
47
- Empty.propTypes = {
48
- width: PropTypes.string,
49
- height: PropTypes.string,
50
- text: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
51
- children: PropTypes.node,
52
- };
@@ -1,17 +0,0 @@
1
- @import '../../style/variables.less';
2
-
3
- .empty {
4
- position: relative;
5
- border-radius: inherit;
6
- display: inline-flex;
7
- flex-direction: column;
8
- align-items: center;
9
- justify-content: center;
10
- text-align: center;
11
- gap: 10px;
12
-
13
- .text {
14
- max-width: 40ch;
15
- margin-bottom: 3px;
16
- }
17
- }
@@ -1,26 +0,0 @@
1
- import React from 'react';
2
- import { Empty, Button } from '../../..';
3
-
4
- export default {
5
- title: 'Progress/Empty',
6
- component: Empty,
7
- args: {
8
- text: 'No data',
9
- width: '100%',
10
- height: '100%',
11
- },
12
- };
13
-
14
- const Template = (args) => (
15
- <Empty
16
- // eslint-disable-next-line react/jsx-props-no-spreading
17
- {...args}
18
- />
19
- );
20
- export const Default = Template.bind({});
21
-
22
- export const WithButton = Template.bind({});
23
- WithButton.args = {
24
- text: 'Please apply at least one casing in Well Schematics to perform drilling mechanics',
25
- children: <Button colored label="Add casing" />,
26
- };
@@ -1,101 +0,0 @@
1
- import React, { useContext, useRef } from 'react';
2
- import PropTypes from 'prop-types';
3
- import { InputGroup } from '../input-group/input-group';
4
- import { Input } from '../input/input';
5
- import { Button } from '../button/button';
6
- import styles from './file-input.module.less';
7
- import { DisabledContext } from '../../helpers/disabled-context';
8
-
9
- // https://stackoverflow.com/a/65140891/942635
10
- export const readFile = (file = {}, method = 'readAsText') => {
11
- const reader = new FileReader();
12
- return new Promise((resolve, reject) => {
13
- reader[method](file);
14
- reader.onload = () => {
15
- resolve(reader.result);
16
- };
17
- reader.onerror = (error) => reject(error);
18
- });
19
- };
20
-
21
- export const FileInput = ({
22
- label,
23
- loading,
24
- placeholder,
25
- disabled,
26
- file,
27
- accept,
28
- multi,
29
- name,
30
- width,
31
- onChange,
32
- testId,
33
- }) => {
34
- const disabledContext = useContext(DisabledContext);
35
-
36
- const inputRef = useRef(null);
37
- const fileName = file?.name || null;
38
-
39
- const handleClick = () => {
40
- if (!(disabled || disabledContext)) inputRef.current.click();
41
- };
42
-
43
- return (
44
- <div onClick={() => handleClick()} style={{ width }}>
45
- <InputGroup>
46
- <Input value={fileName || ''} placeholder={placeholder} disabled />
47
- <Button
48
- label={label}
49
- loading={loading}
50
- disabled={loading || disabled || disabledContext}
51
- groupOrder="last"
52
- />
53
- </InputGroup>
54
- <input
55
- name={name}
56
- ref={inputRef}
57
- className={styles.fileInput}
58
- type="file"
59
- accept={accept}
60
- onChange={(evt) => {
61
- onChange({
62
- ...evt,
63
- target: {
64
- ...evt.target,
65
- value: multi ? evt.target.files : evt.target.files[0],
66
- },
67
- });
68
- }}
69
- data-testid={testId}
70
- />
71
- </div>
72
- );
73
- };
74
-
75
- FileInput.defaultProps = {
76
- label: 'Select',
77
- loading: false,
78
- placeholder: 'No file selected',
79
- disabled: false,
80
- file: null,
81
- accept: undefined,
82
- name: null,
83
- width: null,
84
- onChange: () => {},
85
- testId: undefined,
86
- };
87
-
88
- FileInput.propTypes = {
89
- /** Custom button label */
90
- label: PropTypes.string,
91
- loading: PropTypes.bool,
92
- placeholder: PropTypes.string,
93
- disabled: PropTypes.bool,
94
- file: PropTypes.object,
95
- /** See [accept attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept) to restrict file type */
96
- accept: PropTypes.string,
97
- name: PropTypes.string,
98
- width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
99
- onChange: PropTypes.func,
100
- testId: PropTypes.string,
101
- };
@@ -1,3 +0,0 @@
1
- .fileInput {
2
- display: none !important;
3
- }
@@ -1,109 +0,0 @@
1
- import React, { useState } from 'react';
2
- import { useArgs } from '@storybook/addons';
3
- import { FileInput, readFile, Spacer, Message, TextArea } from '../../..';
4
-
5
- export default {
6
- title: 'Forms/FileInput',
7
- component: FileInput,
8
- args: {
9
- file: null,
10
- },
11
- };
12
-
13
- const Template = (args) => {
14
- const [_, updateArgs] = useArgs();
15
- const handleChange = (evt) => {
16
- updateArgs({ file: evt.target.value });
17
- };
18
-
19
- return (
20
- <FileInput
21
- // eslint-disable-next-line react/jsx-props-no-spreading
22
- {...args}
23
- onChange={handleChange}
24
- />
25
- );
26
- };
27
- export const Default = Template.bind({});
28
-
29
- export const RestrictFiletype = Template.bind({});
30
- RestrictFiletype.args = { accept: '.json' };
31
- RestrictFiletype.parameters = {
32
- docs: {
33
- description: {
34
- story:
35
- 'See [accept attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept) to restrict file type',
36
- },
37
- },
38
- };
39
-
40
- export const ReadJSONFile = () => {
41
- const [file, setFile] = useState(null);
42
- const [json, setJson] = useState({});
43
-
44
- return (
45
- <>
46
- <FileInput
47
- file={file}
48
- onChange={async (evt) => {
49
- const file = evt.target.value;
50
- try {
51
- const text = await readFile(file);
52
- const json = JSON.parse(text);
53
- setJson(json);
54
- } catch (error) {
55
- console.log(error);
56
- }
57
- setFile(file);
58
- }}
59
- accept=".json"
60
- />
61
- <Spacer />
62
- {file ? (
63
- <TextArea monospace value={JSON.stringify(json, null, 2)} rows={20} />
64
- ) : (
65
- <Message
66
- message={{
67
- visible: true,
68
- content: 'Upload a JSON file to see preview',
69
- type: 'Info',
70
- }}
71
- />
72
- )}
73
- </>
74
- );
75
- };
76
-
77
- export const Image = () => {
78
- const [file, setFile] = useState(null);
79
- return (
80
- <>
81
- <FileInput
82
- file={file}
83
- onChange={(evt) => {
84
- setFile(evt.target.value);
85
- }}
86
- accept="image/*"
87
- />
88
- <Spacer />
89
- {file ? (
90
- <img
91
- src={file ? URL.createObjectURL(file) : ''}
92
- alt="Preview"
93
- style={{
94
- maxHeight: '400px',
95
- maxWidth: '400px',
96
- }}
97
- />
98
- ) : (
99
- <Message
100
- message={{
101
- visible: true,
102
- content: 'Upload an image file to see preview',
103
- type: 'Info',
104
- }}
105
- />
106
- )}
107
- </>
108
- );
109
- };
@@ -1,96 +0,0 @@
1
- import React from 'react';
2
- import cx from 'classnames';
3
- import PropTypes from 'prop-types';
4
- import { Label } from '../label/label';
5
- import styles from './form.module.less';
6
-
7
- export const Field = ({
8
- label,
9
- labelLeft,
10
- labelWidth,
11
- children,
12
- helpText,
13
- helpTextMaxWidth,
14
- onClickHelp,
15
- lock,
16
- info,
17
- libraryIcon,
18
- testId,
19
- }) => {
20
- return (
21
- <div
22
- className={cx(styles.field, labelLeft ? styles.labelLeft : '')}
23
- data-testid={testId}
24
- >
25
- {(label || labelLeft) && (
26
- <Label
27
- label={label}
28
- width={labelWidth}
29
- helpText={helpText}
30
- helpTextMaxWidth={helpTextMaxWidth}
31
- onClickHelp={onClickHelp}
32
- lock={lock}
33
- info={info}
34
- libraryIcon={libraryIcon}
35
- labelLeft={labelLeft}
36
- />
37
- )}
38
- <div className={styles.fieldInput}>{children}</div>
39
- </div>
40
- );
41
- };
42
-
43
- Field.defaultProps = {
44
- label: null,
45
- helpText: null,
46
- helpTextMaxWidth: '300px',
47
- labelLeft: false,
48
- labelWidth: 'auto',
49
- info: null,
50
- onClickHelp: null,
51
- lock: {
52
- visible: false,
53
- active: false,
54
- onClick: () => {},
55
- tooltip: '',
56
- testId: undefined,
57
- },
58
- libraryIcon: null,
59
- testId: undefined,
60
- };
61
-
62
- Field.propTypes = {
63
- label: PropTypes.oneOfType([
64
- PropTypes.string,
65
- PropTypes.number,
66
- PropTypes.node,
67
- ]),
68
- /** Adds a help icon with a tooltip */
69
- helpText: PropTypes.oneOfType([
70
- PropTypes.string,
71
- PropTypes.number,
72
- PropTypes.node,
73
- ]),
74
- helpTextMaxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), //'none' to disable
75
- /** Moves the label to the left of the input */
76
- labelLeft: PropTypes.bool,
77
- labelWidth: PropTypes.string,
78
- children: PropTypes.node.isRequired,
79
- /** Adds an info icon with an optional tooltip and onClick event */
80
- info: PropTypes.string,
81
- onClickHelp: PropTypes.func,
82
- /** Adds a lock icon with a tooltip */
83
- lock: PropTypes.shape({
84
- visible: PropTypes.bool,
85
- active: PropTypes.bool,
86
- onClick: PropTypes.func,
87
- tooltip: PropTypes.string,
88
- testId: PropTypes.string,
89
- }),
90
- /** Adds a library icon with a tooltip and onClick event */
91
- libraryIcon: PropTypes.shape({
92
- onClick: PropTypes.func,
93
- tooltip: PropTypes.string,
94
- }),
95
- testId: PropTypes.string,
96
- };