@scality/core-ui 0.115.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.
Files changed (596) hide show
  1. package/.babelrc +17 -0
  2. package/.eslintrc.json +7 -0
  3. package/.flowconfig +21 -0
  4. package/.github/ISSUE_TEMPLATE/bug.md +18 -0
  5. package/.github/ISSUE_TEMPLATE/improvement.md +18 -0
  6. package/.github/PULL_REQUEST_TEMPLATE.md +24 -0
  7. package/.github/workflows/codeql.yaml +25 -0
  8. package/.github/workflows/dependency-review.yaml +16 -0
  9. package/.github/workflows/github-pages.yml +17 -0
  10. package/.github/workflows/post-release.yml +52 -0
  11. package/.github/workflows/tests.yaml +32 -0
  12. package/.prettierrc +5 -0
  13. package/.storybook/main.ts +38 -0
  14. package/.storybook/manager.ts +6 -0
  15. package/.storybook/preview-head.html +99 -0
  16. package/.storybook/preview.js +68 -0
  17. package/.storybook/public/favicon.ico +0 -0
  18. package/.storybook/public/logo-core-ui.png +0 -0
  19. package/.storybook/theme.storybook.ts +13 -0
  20. package/LICENSE +201 -0
  21. package/README.md +296 -0
  22. package/__mocks__/fileMock.js +2 -0
  23. package/__mocks__/styleMock.js +2 -0
  24. package/dist/components/IconHelper.d.ts +10 -0
  25. package/dist/components/IconHelper.d.ts.map +1 -0
  26. package/dist/components/IconHelper.js +4 -0
  27. package/dist/components/areachart/AreaChart.component.d.ts +14 -0
  28. package/dist/components/areachart/AreaChart.component.d.ts.map +1 -0
  29. package/dist/components/areachart/AreaChart.component.js +27 -0
  30. package/dist/components/banner/Banner.component.d.ts +11 -0
  31. package/dist/components/banner/Banner.component.d.ts.map +1 -0
  32. package/dist/components/banner/Banner.component.js +40 -0
  33. package/dist/components/barchart/BarChart.component.d.ts +13 -0
  34. package/dist/components/barchart/BarChart.component.d.ts.map +1 -0
  35. package/dist/components/barchart/BarChart.component.js +22 -0
  36. package/dist/components/box/Box.d.ts +9 -0
  37. package/dist/components/box/Box.d.ts.map +1 -0
  38. package/dist/components/box/Box.js +21 -0
  39. package/dist/components/breadcrumb/Breadcrumb.component.d.ts +7 -0
  40. package/dist/components/breadcrumb/Breadcrumb.component.d.ts.map +1 -0
  41. package/dist/components/breadcrumb/Breadcrumb.component.js +77 -0
  42. package/dist/components/button/Button.component.d.ts +28 -0
  43. package/dist/components/button/Button.component.d.ts.map +1 -0
  44. package/dist/components/button/Button.component.js +227 -0
  45. package/dist/components/buttonv2/Buttonv2.component.d.ts +34 -0
  46. package/dist/components/buttonv2/Buttonv2.component.d.ts.map +1 -0
  47. package/dist/components/buttonv2/Buttonv2.component.js +198 -0
  48. package/dist/components/buttonv2/CopyButton.component.d.ts +24 -0
  49. package/dist/components/buttonv2/CopyButton.component.d.ts.map +1 -0
  50. package/dist/components/buttonv2/CopyButton.component.js +52 -0
  51. package/dist/components/card/Card.component.d.ts +28 -0
  52. package/dist/components/card/Card.component.d.ts.map +1 -0
  53. package/dist/components/card/Card.component.js +105 -0
  54. package/dist/components/checkbox/Checkbox.component.d.ts +10 -0
  55. package/dist/components/checkbox/Checkbox.component.d.ts.map +1 -0
  56. package/dist/components/checkbox/Checkbox.component.js +94 -0
  57. package/dist/components/chips/Chips.component.d.ts +22 -0
  58. package/dist/components/chips/Chips.component.d.ts.map +1 -0
  59. package/dist/components/chips/Chips.component.js +105 -0
  60. package/dist/components/circularprogressbar/CircularProgressBar.component.d.ts +13 -0
  61. package/dist/components/circularprogressbar/CircularProgressBar.component.d.ts.map +1 -0
  62. package/dist/components/circularprogressbar/CircularProgressBar.component.js +9 -0
  63. package/dist/components/circularprogressbar/CircularProgressBar.component.style.d.ts +11 -0
  64. package/dist/components/circularprogressbar/CircularProgressBar.component.style.d.ts.map +1 -0
  65. package/dist/components/circularprogressbar/CircularProgressBar.component.style.js +27 -0
  66. package/dist/components/cloudprogressbar/CloudProgressBar.component.d.ts +11 -0
  67. package/dist/components/cloudprogressbar/CloudProgressBar.component.d.ts.map +1 -0
  68. package/dist/components/cloudprogressbar/CloudProgressBar.component.js +38 -0
  69. package/dist/components/collapsiblepanel/CollapsiblePanel.component.d.ts +10 -0
  70. package/dist/components/collapsiblepanel/CollapsiblePanel.component.d.ts.map +1 -0
  71. package/dist/components/collapsiblepanel/CollapsiblePanel.component.js +44 -0
  72. package/dist/components/constants.d.ts +27 -0
  73. package/dist/components/constants.d.ts.map +1 -0
  74. package/dist/components/constants.js +47 -0
  75. package/dist/components/constrainedtext/Constrainedtext.component.d.ts +12 -0
  76. package/dist/components/constrainedtext/Constrainedtext.component.d.ts.map +1 -0
  77. package/dist/components/constrainedtext/Constrainedtext.component.js +46 -0
  78. package/dist/components/coreuithemeprovider/CoreUiThemeProvider.d.ts +9 -0
  79. package/dist/components/coreuithemeprovider/CoreUiThemeProvider.d.ts.map +1 -0
  80. package/dist/components/coreuithemeprovider/CoreUiThemeProvider.js +13 -0
  81. package/dist/components/date/FormattedDateTime.d.ts +11 -0
  82. package/dist/components/date/FormattedDateTime.d.ts.map +1 -0
  83. package/dist/components/date/FormattedDateTime.js +66 -0
  84. package/dist/components/date/FormattedDateTime.spec.d.ts +2 -0
  85. package/dist/components/date/FormattedDateTime.spec.d.ts.map +1 -0
  86. package/dist/components/date/FormattedDateTime.spec.js +140 -0
  87. package/dist/components/date/dateDiffer.d.ts +2 -0
  88. package/dist/components/date/dateDiffer.d.ts.map +1 -0
  89. package/dist/components/date/dateDiffer.js +7 -0
  90. package/dist/components/date/dateDiffer.spec.d.ts +2 -0
  91. package/dist/components/date/dateDiffer.spec.d.ts.map +1 -0
  92. package/dist/components/date/dateDiffer.spec.js +6 -0
  93. package/dist/components/dropdown/Dropdown.component.d.ts +20 -0
  94. package/dist/components/dropdown/Dropdown.component.d.ts.map +1 -0
  95. package/dist/components/dropdown/Dropdown.component.js +99 -0
  96. package/dist/components/dropzone/Dropzone.d.ts +16 -0
  97. package/dist/components/dropzone/Dropzone.d.ts.map +1 -0
  98. package/dist/components/dropzone/Dropzone.js +79 -0
  99. package/dist/components/emptystate/Emptystate.component.d.ts +13 -0
  100. package/dist/components/emptystate/Emptystate.component.d.ts.map +1 -0
  101. package/dist/components/emptystate/Emptystate.component.js +32 -0
  102. package/dist/components/emptytable/Emptytable.component.d.ts +8 -0
  103. package/dist/components/emptytable/Emptytable.component.d.ts.map +1 -0
  104. package/dist/components/emptytable/Emptytable.component.js +62 -0
  105. package/dist/components/error-pages/ErrorPage401.component.d.ts +9 -0
  106. package/dist/components/error-pages/ErrorPage401.component.d.ts.map +1 -0
  107. package/dist/components/error-pages/ErrorPage401.component.js +28 -0
  108. package/dist/components/error-pages/ErrorPage404.component.d.ts +8 -0
  109. package/dist/components/error-pages/ErrorPage404.component.d.ts.map +1 -0
  110. package/dist/components/error-pages/ErrorPage404.component.js +26 -0
  111. package/dist/components/error-pages/ErrorPage500.component.d.ts +13 -0
  112. package/dist/components/error-pages/ErrorPage500.component.d.ts.map +1 -0
  113. package/dist/components/error-pages/ErrorPage500.component.js +32 -0
  114. package/dist/components/error-pages/ErrorPageAuth.component.d.ts +8 -0
  115. package/dist/components/error-pages/ErrorPageAuth.component.d.ts.map +1 -0
  116. package/dist/components/error-pages/ErrorPageAuth.component.js +27 -0
  117. package/dist/components/error-pages/ErrorPageStyle.d.ts +7 -0
  118. package/dist/components/error-pages/ErrorPageStyle.d.ts.map +1 -0
  119. package/dist/components/error-pages/ErrorPageStyle.js +34 -0
  120. package/dist/components/form/Form.component.d.ts +61 -0
  121. package/dist/components/form/Form.component.d.ts.map +1 -0
  122. package/dist/components/form/Form.component.js +115 -0
  123. package/dist/components/globalhealthbar/GlobalHealthBar.component.d.ts +20 -0
  124. package/dist/components/globalhealthbar/GlobalHealthBar.component.d.ts.map +1 -0
  125. package/dist/components/globalhealthbar/GlobalHealthBar.component.js +169 -0
  126. package/dist/components/globalhealthbar/tooltip/index.d.ts +8 -0
  127. package/dist/components/globalhealthbar/tooltip/index.d.ts.map +1 -0
  128. package/dist/components/globalhealthbar/tooltip/index.js +55 -0
  129. package/dist/components/healthselectorv2/HealthSelector.component.d.ts +61 -0
  130. package/dist/components/healthselectorv2/HealthSelector.component.d.ts.map +1 -0
  131. package/dist/components/healthselectorv2/HealthSelector.component.js +70 -0
  132. package/dist/components/icon/Icon.component.d.ts +134 -0
  133. package/dist/components/icon/Icon.component.d.ts.map +1 -0
  134. package/dist/components/icon/Icon.component.js +209 -0
  135. package/dist/components/infomessage/InfoMessage.component.d.ts +9 -0
  136. package/dist/components/infomessage/InfoMessage.component.d.ts.map +1 -0
  137. package/dist/components/infomessage/InfoMessage.component.js +20 -0
  138. package/dist/components/infomessage/InfoMessageUtils.d.ts +8 -0
  139. package/dist/components/infomessage/InfoMessageUtils.d.ts.map +1 -0
  140. package/dist/components/infomessage/InfoMessageUtils.js +32 -0
  141. package/dist/components/input/Input.component.d.ts +24 -0
  142. package/dist/components/input/Input.component.d.ts.map +1 -0
  143. package/dist/components/input/Input.component.js +55 -0
  144. package/dist/components/input/Input.component.style.d.ts +9 -0
  145. package/dist/components/input/Input.component.style.d.ts.map +1 -0
  146. package/dist/components/input/Input.component.style.js +136 -0
  147. package/dist/components/inputlist/InputButtons.d.ts +20 -0
  148. package/dist/components/inputlist/InputButtons.d.ts.map +1 -0
  149. package/dist/components/inputlist/InputButtons.js +48 -0
  150. package/dist/components/inputlist/InputList.component.d.ts +27 -0
  151. package/dist/components/inputlist/InputList.component.d.ts.map +1 -0
  152. package/dist/components/inputlist/InputList.component.js +30 -0
  153. package/dist/components/inputv2/inputv2.d.ts +12 -0
  154. package/dist/components/inputv2/inputv2.d.ts.map +1 -0
  155. package/dist/components/inputv2/inputv2.js +80 -0
  156. package/dist/components/lateralnavbarlayout/LateralNavbarLayout.component.d.ts +9 -0
  157. package/dist/components/lateralnavbarlayout/LateralNavbarLayout.component.d.ts.map +1 -0
  158. package/dist/components/lateralnavbarlayout/LateralNavbarLayout.component.js +23 -0
  159. package/dist/components/layout/Layout.component.d.ts +12 -0
  160. package/dist/components/layout/Layout.component.d.ts.map +1 -0
  161. package/dist/components/layout/Layout.component.js +26 -0
  162. package/dist/components/layout/v2/AppContainer.d.ts +28 -0
  163. package/dist/components/layout/v2/AppContainer.d.ts.map +1 -0
  164. package/dist/components/layout/v2/AppContainer.js +63 -0
  165. package/dist/components/layout/v2/index.d.ts +6 -0
  166. package/dist/components/layout/v2/index.d.ts.map +1 -0
  167. package/dist/components/layout/v2/index.js +16 -0
  168. package/dist/components/layout/v2/panels.d.ts +17 -0
  169. package/dist/components/layout/v2/panels.d.ts.map +1 -0
  170. package/dist/components/layout/v2/panels.js +52 -0
  171. package/dist/components/linechart/LineChart.component.d.ts +22 -0
  172. package/dist/components/linechart/LineChart.component.d.ts.map +1 -0
  173. package/dist/components/linechart/LineChart.component.js +109 -0
  174. package/dist/components/linetemporalchart/ChartUtil.d.ts +40 -0
  175. package/dist/components/linetemporalchart/ChartUtil.d.ts.map +1 -0
  176. package/dist/components/linetemporalchart/ChartUtil.js +126 -0
  177. package/dist/components/linetemporalchart/LineTemporalChart.component.d.ts +43 -0
  178. package/dist/components/linetemporalchart/LineTemporalChart.component.d.ts.map +1 -0
  179. package/dist/components/linetemporalchart/LineTemporalChart.component.js +576 -0
  180. package/dist/components/linetemporalchart/MetricTimespanProvider.d.ts +8 -0
  181. package/dist/components/linetemporalchart/MetricTimespanProvider.d.ts.map +1 -0
  182. package/dist/components/linetemporalchart/MetricTimespanProvider.js +31 -0
  183. package/dist/components/linetemporalchart/tooltip/index.d.ts +30 -0
  184. package/dist/components/linetemporalchart/tooltip/index.d.ts.map +1 -0
  185. package/dist/components/linetemporalchart/tooltip/index.js +104 -0
  186. package/dist/components/loader/Loader.component.d.ts +11 -0
  187. package/dist/components/loader/Loader.component.d.ts.map +1 -0
  188. package/dist/components/loader/Loader.component.js +41 -0
  189. package/dist/components/modal/Modal.component.d.ts +13 -0
  190. package/dist/components/modal/Modal.component.d.ts.map +1 -0
  191. package/dist/components/modal/Modal.component.js +64 -0
  192. package/dist/components/multiselect/MultiSelect.component.d.ts +29 -0
  193. package/dist/components/multiselect/MultiSelect.component.d.ts.map +1 -0
  194. package/dist/components/multiselect/MultiSelect.component.js +73 -0
  195. package/dist/components/navbar/Navbar.component.d.ts +23 -0
  196. package/dist/components/navbar/Navbar.component.d.ts.map +1 -0
  197. package/dist/components/navbar/Navbar.component.js +151 -0
  198. package/dist/components/notifications/Notification.component.d.ts +13 -0
  199. package/dist/components/notifications/Notification.component.d.ts.map +1 -0
  200. package/dist/components/notifications/Notification.component.js +107 -0
  201. package/dist/components/notifications/Notifications.component.d.ts +15 -0
  202. package/dist/components/notifications/Notifications.component.d.ts.map +1 -0
  203. package/dist/components/notifications/Notifications.component.js +42 -0
  204. package/dist/components/prettybytes/PrettyBytes.component.d.ts +9 -0
  205. package/dist/components/prettybytes/PrettyBytes.component.d.ts.map +1 -0
  206. package/dist/components/prettybytes/PrettyBytes.component.js +24 -0
  207. package/dist/components/progressbar/ProgressBar.component.d.ts +18 -0
  208. package/dist/components/progressbar/ProgressBar.component.d.ts.map +1 -0
  209. package/dist/components/progressbar/ProgressBar.component.js +129 -0
  210. package/dist/components/scrollbarwrapper/ScrollbarWrapper.component.d.ts +7 -0
  211. package/dist/components/scrollbarwrapper/ScrollbarWrapper.component.d.ts.map +1 -0
  212. package/dist/components/scrollbarwrapper/ScrollbarWrapper.component.js +54 -0
  213. package/dist/components/searchinput/SearchInput.component.d.ts +12 -0
  214. package/dist/components/searchinput/SearchInput.component.d.ts.map +1 -0
  215. package/dist/components/searchinput/SearchInput.component.js +91 -0
  216. package/dist/components/select/Select.component.d.ts +15 -0
  217. package/dist/components/select/Select.component.d.ts.map +1 -0
  218. package/dist/components/select/Select.component.js +71 -0
  219. package/dist/components/selectv2/SelectStyle.d.ts +3 -0
  220. package/dist/components/selectv2/SelectStyle.d.ts.map +1 -0
  221. package/dist/components/selectv2/SelectStyle.js +238 -0
  222. package/dist/components/selectv2/Selectv2.component.d.ts +32 -0
  223. package/dist/components/selectv2/Selectv2.component.d.ts.map +1 -0
  224. package/dist/components/selectv2/Selectv2.component.js +267 -0
  225. package/dist/components/sidebar/Sidebar.component.d.ts +22 -0
  226. package/dist/components/sidebar/Sidebar.component.d.ts.map +1 -0
  227. package/dist/components/sidebar/Sidebar.component.js +136 -0
  228. package/dist/components/spacedbox/SpacedBox.d.ts +34 -0
  229. package/dist/components/spacedbox/SpacedBox.d.ts.map +1 -0
  230. package/dist/components/spacedbox/SpacedBox.js +64 -0
  231. package/dist/components/sparkline/SparkLine.component.d.ts +19 -0
  232. package/dist/components/sparkline/SparkLine.component.d.ts.map +1 -0
  233. package/dist/components/sparkline/SparkLine.component.js +148 -0
  234. package/dist/components/statuswrapper/Statuswrapper.component.d.ts +9 -0
  235. package/dist/components/statuswrapper/Statuswrapper.component.d.ts.map +1 -0
  236. package/dist/components/statuswrapper/Statuswrapper.component.js +44 -0
  237. package/dist/components/steppers/Stepper.component.d.ts +14 -0
  238. package/dist/components/steppers/Stepper.component.d.ts.map +1 -0
  239. package/dist/components/steppers/Stepper.component.js +33 -0
  240. package/dist/components/steppers/Steppers.component.d.ts +18 -0
  241. package/dist/components/steppers/Steppers.component.d.ts.map +1 -0
  242. package/dist/components/steppers/Steppers.component.js +96 -0
  243. package/dist/components/tablev2/MultiSelectableContent.d.ts +22 -0
  244. package/dist/components/tablev2/MultiSelectableContent.d.ts.map +1 -0
  245. package/dist/components/tablev2/MultiSelectableContent.js +129 -0
  246. package/dist/components/tablev2/Search.d.ts +29 -0
  247. package/dist/components/tablev2/Search.d.ts.map +1 -0
  248. package/dist/components/tablev2/Search.js +49 -0
  249. package/dist/components/tablev2/SearchWithQueryParams.d.ts +7 -0
  250. package/dist/components/tablev2/SearchWithQueryParams.d.ts.map +1 -0
  251. package/dist/components/tablev2/SearchWithQueryParams.js +24 -0
  252. package/dist/components/tablev2/SingleSelectableContent.d.ts +17 -0
  253. package/dist/components/tablev2/SingleSelectableContent.d.ts.map +1 -0
  254. package/dist/components/tablev2/SingleSelectableContent.js +75 -0
  255. package/dist/components/tablev2/TableCommon.d.ts +24 -0
  256. package/dist/components/tablev2/TableCommon.d.ts.map +1 -0
  257. package/dist/components/tablev2/TableCommon.js +35 -0
  258. package/dist/components/tablev2/TableUtils.d.ts +18 -0
  259. package/dist/components/tablev2/TableUtils.d.ts.map +1 -0
  260. package/dist/components/tablev2/TableUtils.js +32 -0
  261. package/dist/components/tablev2/Tablestyle.d.ts +36 -0
  262. package/dist/components/tablev2/Tablestyle.d.ts.map +1 -0
  263. package/dist/components/tablev2/Tablestyle.js +136 -0
  264. package/dist/components/tablev2/Tablev2.component.d.ts +71 -0
  265. package/dist/components/tablev2/Tablev2.component.d.ts.map +1 -0
  266. package/dist/components/tablev2/Tablev2.component.js +144 -0
  267. package/dist/components/tablev2/react-table-config.d.ts +28 -0
  268. package/dist/components/tablev2/react-table-config.d.ts.map +1 -0
  269. package/dist/components/tablev2/react-table-config.js +1 -0
  270. package/dist/components/tablev2/useCheckbox.d.ts +6 -0
  271. package/dist/components/tablev2/useCheckbox.d.ts.map +1 -0
  272. package/dist/components/tablev2/useCheckbox.js +40 -0
  273. package/dist/components/tablev2/useSyncedScroll.d.ts +7 -0
  274. package/dist/components/tablev2/useSyncedScroll.d.ts.map +1 -0
  275. package/dist/components/tablev2/useSyncedScroll.js +43 -0
  276. package/dist/components/tabsv2/ScrollButton.d.ts +8 -0
  277. package/dist/components/tabsv2/ScrollButton.d.ts.map +1 -0
  278. package/dist/components/tabsv2/ScrollButton.js +32 -0
  279. package/dist/components/tabsv2/StyledTabs.d.ts +18 -0
  280. package/dist/components/tabsv2/StyledTabs.d.ts.map +1 -0
  281. package/dist/components/tabsv2/StyledTabs.js +96 -0
  282. package/dist/components/tabsv2/Tab.d.ts +17 -0
  283. package/dist/components/tabsv2/Tab.d.ts.map +1 -0
  284. package/dist/components/tabsv2/Tab.js +10 -0
  285. package/dist/components/tabsv2/Tabsv2.component.d.ts +21 -0
  286. package/dist/components/tabsv2/Tabsv2.component.d.ts.map +1 -0
  287. package/dist/components/tabsv2/Tabsv2.component.js +89 -0
  288. package/dist/components/tabsv2/useScrollingTabs.d.ts +17 -0
  289. package/dist/components/tabsv2/useScrollingTabs.d.ts.map +1 -0
  290. package/dist/components/tabsv2/useScrollingTabs.js +261 -0
  291. package/dist/components/text/Text.component.d.ts +33 -0
  292. package/dist/components/text/Text.component.d.ts.map +1 -0
  293. package/dist/components/text/Text.component.js +154 -0
  294. package/dist/components/textarea/TextArea.component.d.ts +10 -0
  295. package/dist/components/textarea/TextArea.component.d.ts.map +1 -0
  296. package/dist/components/textarea/TextArea.component.js +60 -0
  297. package/dist/components/textbadge/TextBadge.component.d.ts +9 -0
  298. package/dist/components/textbadge/TextBadge.component.d.ts.map +1 -0
  299. package/dist/components/textbadge/TextBadge.component.js +19 -0
  300. package/dist/components/toast/DurationBasedProgressBar.d.ts +6 -0
  301. package/dist/components/toast/DurationBasedProgressBar.d.ts.map +1 -0
  302. package/dist/components/toast/DurationBasedProgressBar.js +24 -0
  303. package/dist/components/toast/Toast.component.d.ts +20 -0
  304. package/dist/components/toast/Toast.component.d.ts.map +1 -0
  305. package/dist/components/toast/Toast.component.js +106 -0
  306. package/dist/components/toast/ToastPositionHelpers.d.ts +4 -0
  307. package/dist/components/toast/ToastPositionHelpers.d.ts.map +1 -0
  308. package/dist/components/toast/ToastPositionHelpers.js +28 -0
  309. package/dist/components/toast/ToastProvider.d.ts +14 -0
  310. package/dist/components/toast/ToastProvider.d.ts.map +1 -0
  311. package/dist/components/toast/ToastProvider.js +18 -0
  312. package/dist/components/toast/useMutationsHandler.d.ts +40 -0
  313. package/dist/components/toast/useMutationsHandler.d.ts.map +1 -0
  314. package/dist/components/toast/useMutationsHandler.js +66 -0
  315. package/dist/components/toast/useToastParameters.d.ts +10 -0
  316. package/dist/components/toast/useToastParameters.d.ts.map +1 -0
  317. package/dist/components/toast/useToastParameters.js +39 -0
  318. package/dist/components/toggle/Toggle.component.d.ts +11 -0
  319. package/dist/components/toggle/Toggle.component.d.ts.map +1 -0
  320. package/dist/components/toggle/Toggle.component.js +80 -0
  321. package/dist/components/tooltip/Tooltip.component.d.ts +23 -0
  322. package/dist/components/tooltip/Tooltip.component.d.ts.map +1 -0
  323. package/dist/components/tooltip/Tooltip.component.js +82 -0
  324. package/dist/components/vegachart/VegaChart.component.d.ts +14 -0
  325. package/dist/components/vegachart/VegaChart.component.d.ts.map +1 -0
  326. package/dist/components/vegachart/VegaChart.component.js +120 -0
  327. package/dist/components/vegachartv2/SyncedCursorCharts.d.ts +13 -0
  328. package/dist/components/vegachartv2/SyncedCursorCharts.d.ts.map +1 -0
  329. package/dist/components/vegachartv2/SyncedCursorCharts.js +17 -0
  330. package/dist/components/vegachartv2/VegaChartV2.component.d.ts +16 -0
  331. package/dist/components/vegachartv2/VegaChartV2.component.d.ts.map +1 -0
  332. package/dist/components/vegachartv2/VegaChartV2.component.js +216 -0
  333. package/dist/hooks.d.ts +2 -0
  334. package/dist/hooks.d.ts.map +1 -0
  335. package/dist/hooks.js +19 -0
  336. package/dist/icons/branding.d.ts +4 -0
  337. package/dist/icons/branding.d.ts.map +1 -0
  338. package/dist/icons/branding.js +3 -0
  339. package/dist/icons/scality-loading.d.ts +4 -0
  340. package/dist/icons/scality-loading.d.ts.map +1 -0
  341. package/dist/icons/scality-loading.js +3 -0
  342. package/dist/index.css +25 -0
  343. package/dist/index.d.ts +65 -0
  344. package/dist/index.d.ts.map +1 -0
  345. package/dist/index.js +64 -0
  346. package/dist/next.d.ts +15 -0
  347. package/dist/next.d.ts.map +1 -0
  348. package/dist/next.js +14 -0
  349. package/dist/organisms/attachments/AttachmentConfirmationModal.d.ts +22 -0
  350. package/dist/organisms/attachments/AttachmentConfirmationModal.d.ts.map +1 -0
  351. package/dist/organisms/attachments/AttachmentConfirmationModal.js +142 -0
  352. package/dist/organisms/attachments/AttachmentTable.d.ts +37 -0
  353. package/dist/organisms/attachments/AttachmentTable.d.ts.map +1 -0
  354. package/dist/organisms/attachments/AttachmentTable.js +375 -0
  355. package/dist/organisms/attachments/AttachmentTypes.d.ts +15 -0
  356. package/dist/organisms/attachments/AttachmentTypes.d.ts.map +1 -0
  357. package/dist/organisms/attachments/AttachmentTypes.js +5 -0
  358. package/dist/spacing.d.ts +44 -0
  359. package/dist/spacing.d.ts.map +1 -0
  360. package/dist/spacing.js +60 -0
  361. package/dist/style/fonts/Lato-Bold.woff +0 -0
  362. package/dist/style/fonts/Lato-Bold.woff2 +0 -0
  363. package/dist/style/fonts/Lato-Regular.woff +0 -0
  364. package/dist/style/fonts/Lato-Regular.woff2 +0 -0
  365. package/dist/style/theme.d.ts +160 -0
  366. package/dist/style/theme.d.ts.map +1 -0
  367. package/dist/style/theme.js +234 -0
  368. package/dist/testUtils.d.ts +9 -0
  369. package/dist/testUtils.d.ts.map +1 -0
  370. package/dist/testUtils.js +11 -0
  371. package/dist/utils.d.ts +9 -0
  372. package/dist/utils.d.ts.map +1 -0
  373. package/dist/utils.js +46 -0
  374. package/global-setup.js +3 -0
  375. package/jest.config.js +8 -0
  376. package/package.json +161 -0
  377. package/plop-templates/component.hbs +18 -0
  378. package/plop-templates/component.test.hbs +10 -0
  379. package/plop-templates/stories.hbs +18 -0
  380. package/plopfile.js +38 -0
  381. package/setupTests.js +3 -0
  382. package/src/lib/components/IconHelper.tsx +23 -0
  383. package/src/lib/components/areachart/AreaChart.component.tsx +49 -0
  384. package/src/lib/components/banner/Banner.component.tsx +59 -0
  385. package/src/lib/components/barchart/BarChart.component.tsx +46 -0
  386. package/src/lib/components/box/Box.ts +57 -0
  387. package/src/lib/components/breadcrumb/Breadcrumb.component.tsx +101 -0
  388. package/src/lib/components/button/Button.component.tsx +312 -0
  389. package/src/lib/components/buttonv2/Buttonv2.component.tsx +270 -0
  390. package/src/lib/components/buttonv2/CopyButton.component.tsx +89 -0
  391. package/src/lib/components/card/Card.component.tsx +196 -0
  392. package/src/lib/components/checkbox/Checkbox.component.tsx +131 -0
  393. package/src/lib/components/chips/Chips.component.tsx +169 -0
  394. package/src/lib/components/circularprogressbar/CircularProgressBar.component.style.ts +31 -0
  395. package/src/lib/components/circularprogressbar/CircularProgressBar.component.tsx +58 -0
  396. package/src/lib/components/cloudprogressbar/CloudProgressBar.component.tsx +105 -0
  397. package/src/lib/components/collapsiblepanel/CollapsiblePanel.component.tsx +77 -0
  398. package/src/lib/components/constants.ts +67 -0
  399. package/src/lib/components/constrainedtext/Constrainedtext.component.tsx +93 -0
  400. package/src/lib/components/coreuithemeprovider/CoreUiThemeProvider.tsx +21 -0
  401. package/src/lib/components/date/FormattedDateTime.spec.tsx +217 -0
  402. package/src/lib/components/date/FormattedDateTime.tsx +150 -0
  403. package/src/lib/components/date/dateDiffer.spec.ts +13 -0
  404. package/src/lib/components/date/dateDiffer.ts +12 -0
  405. package/src/lib/components/dropdown/Dropdown.component.tsx +184 -0
  406. package/src/lib/components/dropzone/Dropzone.tsx +181 -0
  407. package/src/lib/components/emptystate/Emptystate.component.tsx +66 -0
  408. package/src/lib/components/emptytable/Emptytable.component.tsx +79 -0
  409. package/src/lib/components/error-pages/ErrorPage401.component.tsx +77 -0
  410. package/src/lib/components/error-pages/ErrorPage404.component.tsx +64 -0
  411. package/src/lib/components/error-pages/ErrorPage500.component.tsx +88 -0
  412. package/src/lib/components/error-pages/ErrorPageAuth.component.tsx +70 -0
  413. package/src/lib/components/error-pages/ErrorPageStyle.ts +34 -0
  414. package/src/lib/components/form/Form.component.tsx +416 -0
  415. package/src/lib/components/globalhealthbar/GlobalHealthBar.component.tsx +201 -0
  416. package/src/lib/components/globalhealthbar/tooltip/index.ts +72 -0
  417. package/src/lib/components/healthselectorv2/HealthSelector.component.test.tsx +62 -0
  418. package/src/lib/components/healthselectorv2/HealthSelector.component.tsx +103 -0
  419. package/src/lib/components/icon/Icon.component.tsx +280 -0
  420. package/src/lib/components/infomessage/InfoMessage.component.tsx +47 -0
  421. package/src/lib/components/infomessage/InfoMessageUtils.test.tsx +110 -0
  422. package/src/lib/components/infomessage/InfoMessageUtils.ts +39 -0
  423. package/src/lib/components/input/Input.component.style.ts +141 -0
  424. package/src/lib/components/input/Input.component.tsx +174 -0
  425. package/src/lib/components/inputlist/InputButtons.tsx +111 -0
  426. package/src/lib/components/inputlist/InputList.component.tsx +98 -0
  427. package/src/lib/components/inputlist/InputList.test.tsx +102 -0
  428. package/src/lib/components/inputv2/inputv2.tsx +155 -0
  429. package/src/lib/components/lateralnavbarlayout/LateralNavbarLayout.component.tsx +38 -0
  430. package/src/lib/components/layout/Layout.component.tsx +46 -0
  431. package/src/lib/components/layout/v2/AppContainer.tsx +160 -0
  432. package/src/lib/components/layout/v2/index.tsx +30 -0
  433. package/src/lib/components/layout/v2/panels.tsx +105 -0
  434. package/src/lib/components/linechart/LineChart.component.tsx +152 -0
  435. package/src/lib/components/linetemporalchart/ChartUtil.test.ts +261 -0
  436. package/src/lib/components/linetemporalchart/ChartUtil.ts +187 -0
  437. package/src/lib/components/linetemporalchart/LineTemporalChart.component.tsx +797 -0
  438. package/src/lib/components/linetemporalchart/MetricTimespanProvider.tsx +50 -0
  439. package/src/lib/components/linetemporalchart/tooltip/index.ts +178 -0
  440. package/src/lib/components/loader/Loader.component.tsx +71 -0
  441. package/src/lib/components/modal/Modal.component.tsx +121 -0
  442. package/src/lib/components/multiselect/MultiSelect.component.tsx +158 -0
  443. package/src/lib/components/navbar/Navbar.component.tsx +238 -0
  444. package/src/lib/components/notifications/Notification.component.tsx +160 -0
  445. package/src/lib/components/notifications/Notifications.component.tsx +73 -0
  446. package/src/lib/components/prettybytes/PrettyBytes.component.tsx +39 -0
  447. package/src/lib/components/prettybytes/prettybytes.test.tsx +217 -0
  448. package/src/lib/components/progressbar/ProgressBar.component.tsx +217 -0
  449. package/src/lib/components/scrollbarwrapper/ScrollbarWrapper.component.tsx +66 -0
  450. package/src/lib/components/searchinput/SearchInput.component.tsx +146 -0
  451. package/src/lib/components/select/Select.component.tsx +98 -0
  452. package/src/lib/components/selectv2/SelectStyle.ts +267 -0
  453. package/src/lib/components/selectv2/Selectv2.component.tsx +487 -0
  454. package/src/lib/components/selectv2/selectv2.test.tsx +277 -0
  455. package/src/lib/components/sidebar/Sidebar.component.tsx +217 -0
  456. package/src/lib/components/spacedbox/SpacedBox.ts +116 -0
  457. package/src/lib/components/sparkline/SparkLine.component.tsx +176 -0
  458. package/src/lib/components/statuswrapper/Statuswrapper.component.tsx +66 -0
  459. package/src/lib/components/steppers/Stepper.component.d.ts +70 -0
  460. package/src/lib/components/steppers/Stepper.component.tsx +62 -0
  461. package/src/lib/components/steppers/Steppers.component.tsx +157 -0
  462. package/src/lib/components/tablev2/MultiSelectableContent.tsx +318 -0
  463. package/src/lib/components/tablev2/Search.tsx +112 -0
  464. package/src/lib/components/tablev2/SearchWithQueryParams.tsx +38 -0
  465. package/src/lib/components/tablev2/SingleSelectableContent.tsx +222 -0
  466. package/src/lib/components/tablev2/TableCommon.tsx +102 -0
  467. package/src/lib/components/tablev2/TableUtils.test.ts +17 -0
  468. package/src/lib/components/tablev2/TableUtils.ts +60 -0
  469. package/src/lib/components/tablev2/Tablestyle.tsx +184 -0
  470. package/src/lib/components/tablev2/Tablev2.component.tsx +316 -0
  471. package/src/lib/components/tablev2/Tablev2.test.tsx +136 -0
  472. package/src/lib/components/tablev2/react-table-config.ts +90 -0
  473. package/src/lib/components/tablev2/useCheckbox.tsx +62 -0
  474. package/src/lib/components/tablev2/useSyncedScroll.ts +64 -0
  475. package/src/lib/components/tabsv2/ScrollButton.tsx +39 -0
  476. package/src/lib/components/tabsv2/StyledTabs.ts +108 -0
  477. package/src/lib/components/tabsv2/Tab.ts +27 -0
  478. package/src/lib/components/tabsv2/Tabsv2.component.tsx +247 -0
  479. package/src/lib/components/tabsv2/useScrollingTabs.ts +335 -0
  480. package/src/lib/components/text/Text.component.tsx +194 -0
  481. package/src/lib/components/textarea/TextArea.component.tsx +106 -0
  482. package/src/lib/components/textbadge/TextBadge.component.tsx +44 -0
  483. package/src/lib/components/toast/DurationBasedProgressBar.tsx +45 -0
  484. package/src/lib/components/toast/Toast.component.tsx +181 -0
  485. package/src/lib/components/toast/ToastPositionHelpers.ts +38 -0
  486. package/src/lib/components/toast/ToastProvider.tsx +40 -0
  487. package/src/lib/components/toast/useMutationsHandler.test.tsx +238 -0
  488. package/src/lib/components/toast/useMutationsHandler.ts +172 -0
  489. package/src/lib/components/toast/useToastParameters.ts +59 -0
  490. package/src/lib/components/toggle/Toggle.component.tsx +128 -0
  491. package/src/lib/components/tooltip/Tooltip.component.tsx +136 -0
  492. package/src/lib/components/vegachart/VegaChart.component.tsx +146 -0
  493. package/src/lib/components/vegachartv2/SyncedCursorCharts.tsx +30 -0
  494. package/src/lib/components/vegachartv2/VegaChartV2.component.tsx +279 -0
  495. package/src/lib/hooks.ts +26 -0
  496. package/src/lib/icons/branding.tsx +55 -0
  497. package/src/lib/icons/scality-loading.tsx +118 -0
  498. package/src/lib/index.css +25 -0
  499. package/src/lib/index.ts +75 -0
  500. package/src/lib/next.ts +17 -0
  501. package/src/lib/organisms/attachments/AttachmentConfirmationModal.tsx +311 -0
  502. package/src/lib/organisms/attachments/AttachmentTable.tsx +728 -0
  503. package/src/lib/organisms/attachments/AttachmentTypes.ts +16 -0
  504. package/src/lib/spacing.tsx +108 -0
  505. package/src/lib/style/fonts/Lato-Bold.woff +0 -0
  506. package/src/lib/style/fonts/Lato-Bold.woff2 +0 -0
  507. package/src/lib/style/fonts/Lato-Regular.woff +0 -0
  508. package/src/lib/style/fonts/Lato-Regular.woff2 +0 -0
  509. package/src/lib/style/theme.ts +270 -0
  510. package/src/lib/testUtils.tsx +18 -0
  511. package/src/lib/utils.ts +57 -0
  512. package/stories/Button/button.guideline.mdx +199 -0
  513. package/stories/Button/button.stories.tsx +299 -0
  514. package/stories/Icon.mdx +31 -0
  515. package/stories/InfoMessage/infomessage.guideline.mdx +32 -0
  516. package/stories/InfoMessage/infomessage.stories.tsx +124 -0
  517. package/stories/Introduction.mdx +32 -0
  518. package/stories/Select/select.guideline.mdx +91 -0
  519. package/stories/Select/selectv2.stories.tsx +169 -0
  520. package/stories/areachart.stories.tsx +121 -0
  521. package/stories/banner.stories.tsx +75 -0
  522. package/stories/barchart.stories.tsx +148 -0
  523. package/stories/box.stories.tsx +114 -0
  524. package/stories/breadcrumb.stories.tsx +42 -0
  525. package/stories/card.stories.tsx +195 -0
  526. package/stories/checkbox.stories.tsx +63 -0
  527. package/stories/chips.stories.tsx +107 -0
  528. package/stories/circularprogressbar.stories.tsx +136 -0
  529. package/stories/cloudprogressbar.stories.tsx +93 -0
  530. package/stories/collapsiblepanel.stories.tsx +57 -0
  531. package/stories/color.mdx +43 -0
  532. package/stories/common.tsx +39 -0
  533. package/stories/constrainedtext.stories.tsx +51 -0
  534. package/stories/controls.ts +59 -0
  535. package/stories/copybutton.stories.tsx +58 -0
  536. package/stories/data/areachart.ts +122 -0
  537. package/stories/data/barchart.ts +1497 -0
  538. package/stories/data/linechart.ts +1516 -0
  539. package/stories/data/list.ts +802 -0
  540. package/stories/data/sparklinechart.ts +164 -0
  541. package/stories/designprinciples.mdx +29 -0
  542. package/stories/dropdown.stories.tsx +146 -0
  543. package/stories/dropzone.stories.tsx +49 -0
  544. package/stories/emptystate.stories.tsx +22 -0
  545. package/stories/errorpage401.stories.tsx +25 -0
  546. package/stories/errorpage404.stories.tsx +24 -0
  547. package/stories/errorpage500.stories.tsx +44 -0
  548. package/stories/errorpageauth.stories.tsx +31 -0
  549. package/stories/form.stories.tsx +255 -0
  550. package/stories/format.mdx +44 -0
  551. package/stories/formattedate.stories.tsx +58 -0
  552. package/stories/globalhealthbar.stories.tsx +171 -0
  553. package/stories/guideline/chart-guideline.mdx +63 -0
  554. package/stories/guideline/docs-template.mdx +43 -0
  555. package/stories/guideline/mdxExampleComponents.tsx +57 -0
  556. package/stories/healthselectorv2.stories.tsx +74 -0
  557. package/stories/icon.stories.tsx +146 -0
  558. package/stories/icons.mdx +108 -0
  559. package/stories/input.stories.tsx +228 -0
  560. package/stories/inputlist.stories.tsx +57 -0
  561. package/stories/lateralnavbarlayout.stories.tsx +127 -0
  562. package/stories/layout.stories.tsx +378 -0
  563. package/stories/linechart.stories.tsx +319 -0
  564. package/stories/linecharttemporal.stories.tsx +88 -0
  565. package/stories/loader.stories.tsx +49 -0
  566. package/stories/modal.mdx +17 -0
  567. package/stories/modal.stories.tsx +177 -0
  568. package/stories/multiselect.stories.tsx +126 -0
  569. package/stories/navbar.stories.tsx +156 -0
  570. package/stories/notifications.stories.tsx +199 -0
  571. package/stories/pictures/icon-design-system.png +0 -0
  572. package/stories/prettybytes.stories.tsx +51 -0
  573. package/stories/progressbar.stories.tsx +174 -0
  574. package/stories/scrollbar.stories.tsx +76 -0
  575. package/stories/searchinput.stories.tsx +86 -0
  576. package/stories/select.stories.tsx +52 -0
  577. package/stories/selectinput.stories.tsx +73 -0
  578. package/stories/sidebar.stories.tsx +95 -0
  579. package/stories/spacing.stories.mdx +50 -0
  580. package/stories/spacing.stories.tsx +116 -0
  581. package/stories/sparkline.stories.tsx +85 -0
  582. package/stories/statuswrapper.stories.tsx +108 -0
  583. package/stories/stepper.stories.tsx +124 -0
  584. package/stories/steppers.stories.tsx +115 -0
  585. package/stories/tablev2.stories.tsx +539 -0
  586. package/stories/tabsv2.stories.tsx +168 -0
  587. package/stories/text.stories.tsx +138 -0
  588. package/stories/textarea.stories.tsx +69 -0
  589. package/stories/textbadge.stories.tsx +27 -0
  590. package/stories/toast.stories.tsx +144 -0
  591. package/stories/toggle.stories.tsx +45 -0
  592. package/stories/tooltip.stories.tsx +170 -0
  593. package/stories/typography.mdx +28 -0
  594. package/stories/vegachart.stories.tsx +98 -0
  595. package/tsconfig.json +18 -0
  596. package/types/styled.d.ts +6 -0
@@ -0,0 +1,16 @@
1
+ export type AttachableEntity<ENTITY_TYPE> = {
2
+ name: string;
3
+ id: string;
4
+ type: ENTITY_TYPE;
5
+ disableDetach?: boolean;
6
+ };
7
+
8
+ export enum AttachmentAction {
9
+ ADD,
10
+ REMOVE,
11
+ }
12
+
13
+ export type AttachmentOperation<ENTITY_TYPE> = {
14
+ action: AttachmentAction;
15
+ entity: AttachableEntity<ENTITY_TYPE>;
16
+ };
@@ -0,0 +1,108 @@
1
+ import { Children, HTMLAttributes, HTMLProps, ReactNode } from 'react';
2
+ import styled from 'styled-components';
3
+ import { Box, BoxComponentProps } from './components/box/Box';
4
+
5
+ export const spacing = {
6
+ r1: '0.0625rem',
7
+ r2: '0.125rem',
8
+ r4: '0.25rem',
9
+ r8: '0.5rem',
10
+ r10: '0.625rem',
11
+ r12: '0.75rem',
12
+ r14: '0.875rem',
13
+ r16: '1rem',
14
+ r20: '1.25rem',
15
+ r24: '1.5rem',
16
+ r28: '1.75rem',
17
+ r32: '2rem',
18
+ r36: '2.25rem',
19
+ r40: '2.5rem',
20
+ f1: '1px',
21
+ f2: '2px',
22
+ f4: '4px',
23
+ f8: '8px',
24
+ f10: '10px',
25
+ f12: '12px',
26
+ f14: '14px',
27
+ f16: '16px',
28
+ f20: '20px',
29
+ f24: '24px',
30
+ f28: '28px',
31
+ f32: '32px',
32
+ f36: '36px',
33
+ f40: '40px',
34
+ };
35
+
36
+ const HSeparator = styled.div`
37
+ min-height: ${spacing.r40};
38
+ min-width: ${spacing.r2};
39
+ background: ${(props) => props.theme.backgroundLevel1};
40
+ `;
41
+
42
+ const VSeparator = styled.div`
43
+ height: 1px;
44
+ width: ${spacing.r24};
45
+ background: ${(props) => props.theme.border};
46
+ `;
47
+
48
+ const Separator = ({ type }: { type?: 'vertical' | 'horizontal' }) => {
49
+ return (
50
+ <>
51
+ {type === 'horizontal' && <HSeparator>&nbsp;</HSeparator>}
52
+ {type === 'vertical' && <VSeparator>&nbsp;</VSeparator>}
53
+ </>
54
+ );
55
+ };
56
+
57
+ export const Stack = ({
58
+ gap,
59
+ direction,
60
+ withSeparators,
61
+ children,
62
+ ...rest
63
+ }: {
64
+ gap?: keyof typeof spacing;
65
+ direction?: 'vertical' | 'horizontal';
66
+ withSeparators?: boolean;
67
+ children: ReactNode[];
68
+ } & HTMLAttributes<HTMLDivElement>) => {
69
+ gap = gap || 'r8';
70
+ direction = direction || 'horizontal';
71
+
72
+ const numberOfChildren = Children.count(children);
73
+
74
+ return (
75
+ <Box
76
+ display={'flex'}
77
+ flexDirection={direction === 'horizontal' ? 'row' : 'column'}
78
+ alignItems={direction === 'horizontal' ? 'center' : 'normal'}
79
+ gap={spacing[gap]}
80
+ {...rest}
81
+ >
82
+ {Children.map(children, (node, nodeIndex) => {
83
+ return (
84
+ <>
85
+ {node}
86
+ {withSeparators && nodeIndex + 1 !== numberOfChildren && (
87
+ <Separator type={direction} />
88
+ )}
89
+ </>
90
+ );
91
+ })}
92
+ </Box>
93
+ );
94
+ };
95
+
96
+ export const Wrap = ({
97
+ children,
98
+ ...rest
99
+ }: { children: ReactNode[] } & Omit<HTMLProps<HTMLDivElement>, 'ref' | 'as'> &
100
+ BoxComponentProps) => {
101
+ return (
102
+ <Box display={'flex'} justifyContent="space-between" {...rest}>
103
+ {Children.map(children, (node) => {
104
+ return <>{node}</>;
105
+ })}
106
+ </Box>
107
+ );
108
+ };
@@ -0,0 +1,270 @@
1
+ //== Colors
2
+ export const hotPink = '#E40046';
3
+ export const pink = '#EB4962';
4
+ export const lightPink = '#F5B5BA';
5
+ export const plum = '#8A1B61';
6
+ export const jade = '#006F62';
7
+ export const lightBeige = '#FAF7F5';
8
+ export const warmRed = '#EF3340';
9
+ export const turquoise = '#00B2A9';
10
+ export const yellowOrange = '#F1B434';
11
+ export const mediumOrange = '#FF8F1C';
12
+ export const yellow = '#EFC93D';
13
+ export const green = '#228F67';
14
+ export const white = '#ffffff';
15
+ export const black = '#000000';
16
+ export const blackLight = '#313B44';
17
+ export const blueDarkest = '#0F3554';
18
+ export const blueDarker = '#144A75';
19
+ export const blueDark = '#1F73B7';
20
+ export const blue = '#337FBD';
21
+ export const blueLight = '#5293C7';
22
+ export const blueLighter = '#ADCCE4';
23
+ export const blueLightest = '#CEE2F2';
24
+ export const grayDarkest = '#2F3941';
25
+ export const grayDarker = '#49545C';
26
+ export const grayDark = '#68737D';
27
+ export const gray = '#87929D';
28
+ export const grayLight = '#C2C8CC';
29
+ export const grayLighter = '#D8DCDE';
30
+ export const grayLightest = '#E9EBED';
31
+
32
+ export type CoreUITheme = {
33
+ statusHealthy: string;
34
+ statusHealthyRGB: string;
35
+ statusWarning: string;
36
+ statusWarningRGB: string;
37
+ statusCritical: string;
38
+ statusCriticalRGB: string;
39
+ selectedActive: string;
40
+ highlight: string;
41
+ border: string;
42
+ buttonPrimary: string;
43
+ buttonSecondary: string;
44
+ buttonDelete: string;
45
+ infoPrimary: string;
46
+ infoSecondary: string;
47
+ backgroundLevel1: string;
48
+ backgroundLevel2: string;
49
+ backgroundLevel3: string;
50
+ backgroundLevel4: string;
51
+ textPrimary: string;
52
+ textSecondary: string;
53
+ textTertiary: string;
54
+ textReverse: string;
55
+ textLink: string;
56
+ };
57
+
58
+ export const coreUIAvailableThemesNames = [
59
+ 'darkRebrand',
60
+ 'artescaLight',
61
+ 'ring9dark',
62
+ ] as const;
63
+ export type CoreUIThemeName = (typeof coreUIAvailableThemesNames)[number];
64
+
65
+ export const coreUIAvailableThemes: Record<CoreUIThemeName, CoreUITheme> = {
66
+ darkRebrand: {
67
+ statusHealthy: '#0AADA6',
68
+ statusHealthyRGB: '10,173,166',
69
+ statusWarning: '#F8F32B',
70
+ statusWarningRGB: '248,243,43',
71
+ statusCritical: '#E84855',
72
+ statusCriticalRGB: '232,72,85',
73
+ selectedActive: '#037AFF',
74
+ highlight: '#1A3C75',
75
+ border: '#4A4A4A',
76
+ buttonPrimary: '#2F4185',
77
+ buttonSecondary: '#595A78',
78
+ buttonDelete: '#3D0808',
79
+ infoPrimary: '#8E8EAC',
80
+ infoSecondary: '#333366',
81
+ backgroundLevel1: '#121219',
82
+ backgroundLevel2: '#323245',
83
+ backgroundLevel3: '#232331',
84
+ backgroundLevel4: '#1B1B27',
85
+ textPrimary: '#EAEAEA',
86
+ textSecondary: '#B5B5B5',
87
+ textTertiary: '#DFDFDF',
88
+ textReverse: '#000000',
89
+ textLink: '#71AEFF',
90
+ },
91
+ artescaLight: {
92
+ statusHealthy: '#009E93',
93
+ statusHealthyRGB: '43,171,81',
94
+ statusWarning: '#E77B00',
95
+ statusWarningRGB: '252,138,50',
96
+ statusCritical: '#C10004',
97
+ statusCriticalRGB: '232,72,85,1',
98
+ selectedActive: '#90D0FF',
99
+ highlight: '#E3F2FD',
100
+ border: '#999999',
101
+ buttonPrimary: '#9DA6EC',
102
+ buttonSecondary: '#CACFE3',
103
+ buttonDelete: '#FFCDD2',
104
+ infoPrimary: '#5C486D',
105
+ infoSecondary: '#EBE3F1',
106
+ backgroundLevel1: '#F9F9FB',
107
+ backgroundLevel2: '#F3F3F5',
108
+ backgroundLevel3: '#EAEAEC',
109
+ backgroundLevel4: '#FAFAF8',
110
+ textPrimary: '#101010',
111
+ textSecondary: '#515170',
112
+ textTertiary: '#DFDFDF', // TO CHECK
113
+ textReverse: '#EAEAEA',
114
+ textLink: '#1349C5',
115
+ },
116
+ ring9dark: {
117
+ statusHealthy: '#2BAB51',
118
+ statusHealthyRGB: '43,171,81',
119
+ statusWarning: '#FC8A32',
120
+ statusWarningRGB: '252,138,50',
121
+ statusCritical: '#E84855',
122
+ statusCriticalRGB: '232,72,85,1',
123
+ selectedActive: '#2196F3',
124
+ highlight: '#1A3C75',
125
+ border: '#313131',
126
+ buttonPrimary: '#2E67AB',
127
+ buttonSecondary: '#434343',
128
+ buttonDelete: '#8D1616',
129
+ infoPrimary: '#76828F',
130
+ infoSecondary: '#2C3238',
131
+ backgroundLevel1: '#151313',
132
+ backgroundLevel2: '#221D1D',
133
+ backgroundLevel3: '#1B1D1F',
134
+ backgroundLevel4: '#1B1B27',
135
+ textPrimary: '#EAEAEA',
136
+ textSecondary: '#A4ACB4',
137
+ textTertiary: '#DFDFDF',
138
+ textReverse: '#000000',
139
+ textLink: '#71AEFF',
140
+ },
141
+ };
142
+
143
+ /**
144
+ * @deprecated
145
+ *
146
+ * Please use coreUIAvailableThemes instead, the label is more explicit.
147
+ *
148
+ * import { coreUIAvailableThemes } from '@scality/core-ui/dist/style/theme';
149
+ */
150
+ export const defaultTheme = coreUIAvailableThemes;
151
+
152
+ // Why use this and not directly coreUIAvailableThemes.darkRebrand ?
153
+ export const brand = coreUIAvailableThemes.darkRebrand;
154
+
155
+ export type ThemeColors = keyof CoreUITheme;
156
+ // LineChart colors
157
+ export const lineColor1 = '#A14FBF';
158
+ export const lineColor2 = '#BE9A40';
159
+ export const lineColor3 = '#4BE4E2';
160
+ export const lineColor4 = '#245A83';
161
+ export const lineColor5 = '#E3FF73';
162
+ export const lineColor6 = '#BE2543';
163
+ export const lineColor7 = '#FD8144';
164
+ export const lineColor8 = '#F6B187';
165
+ export const fontSize = {
166
+ smaller: '0.71rem',
167
+ small: '0.85rem',
168
+ base: '1rem',
169
+ large: '1.14rem',
170
+ larger: '1.43rem',
171
+ huge: '1.57rem',
172
+ // no use case for the moment
173
+ massive: '1.71rem', // no use case for the moment
174
+ };
175
+
176
+ /**
177
+ * @deprecated
178
+ *
179
+ * use import { spacing } from '@scality/core-ui/dist/spacing';
180
+ */
181
+ export const space = [
182
+ '0',
183
+ '0.071rem',
184
+ '0.143rem',
185
+ '0.286rem',
186
+ '0.571rem',
187
+ '0.71rem',
188
+ '0.857rem',
189
+ '1rem',
190
+ '1.143rem',
191
+ '1.429rem',
192
+ '1.714rem',
193
+ '2rem',
194
+ '2.286rem',
195
+ '2.857rem',
196
+ ];
197
+ export const fontWeight = {
198
+ light: '400',
199
+ base: '400',
200
+ semibold: '600',
201
+ bold: '700',
202
+ };
203
+
204
+ /**
205
+ * @deprecated
206
+ *
207
+ * Use spacing instead \
208
+ * smaller : sp4 \
209
+ * small : sp8 \
210
+ * base : sp16 \
211
+ * large : sp20 \
212
+ * larger : sp24 \
213
+ *
214
+ */
215
+ export const padding = {
216
+ smaller: '4px',
217
+ small: '8px',
218
+ base: '16px',
219
+ large: '20px',
220
+ larger: '24px',
221
+ };
222
+
223
+ /**
224
+ * @deprecated
225
+ * use import { spacing } from '@scality/core-ui/dist/spacing';
226
+ *
227
+ */
228
+ export const spacing = {
229
+ sp0: space[0],
230
+ sp1: space[1],
231
+ sp2: space[2],
232
+ sp4: space[3],
233
+ sp8: space[4],
234
+ sp10: space[5],
235
+ sp12: space[6],
236
+ sp14: space[7],
237
+ sp16: space[8],
238
+ sp20: space[9],
239
+ sp24: space[10],
240
+ sp28: space[11],
241
+ sp32: space[12],
242
+ sp40: space[13],
243
+ };
244
+ // Svg size
245
+ export const svgSize = {
246
+ smaller: '11px',
247
+ small: '14px',
248
+ base: '16px',
249
+ large: '18px',
250
+ larger: '22px',
251
+ huge: '30px',
252
+ massive: '40px',
253
+ };
254
+ export const zIndex = {
255
+ tooltip: 9990,
256
+ notification: 9000,
257
+ modal: 8500,
258
+ overlay: 8000,
259
+ dropdown: 7000,
260
+ nav: 500,
261
+ sidebar: 100,
262
+ scrollbarButton: 2,
263
+ base: 1,
264
+ };
265
+ //navbar
266
+ export const navbarHeight = '3rem';
267
+ export const navbarItemWidth = '4.286rem';
268
+ //sidebar
269
+ export const sidebarItemHeight = spacing.sp40;
270
+ export const sidebarWidth = spacing.sp40;
@@ -0,0 +1,18 @@
1
+ import { QueryClient, QueryClientProvider } from 'react-query';
2
+ import { ThemeProvider } from 'styled-components';
3
+ import { coreUIAvailableThemes } from './style/theme';
4
+
5
+ export const getWrapper = () => {
6
+ const queryClient = new QueryClient();
7
+ const Wrapper = ({ children }: { children: React.ReactNode }) => {
8
+ return (
9
+ <ThemeProvider theme={coreUIAvailableThemes.darkRebrand}>
10
+ <QueryClientProvider client={queryClient}>
11
+ {children}
12
+ </QueryClientProvider>
13
+ </ThemeProvider>
14
+ );
15
+ };
16
+
17
+ return { Wrapper: Wrapper, queryClient: queryClient };
18
+ };
@@ -0,0 +1,57 @@
1
+ const RGB_HEX = /^#?(?:([\da-f]{3})[\da-f]?|([\da-f]{6})(?:[\da-f]{2})?)$/i;
2
+
3
+ /** Ensure the consistency of colors between old and new colors */
4
+ const variantMapping = {
5
+ healthy: 'statusHealthy',
6
+ success: 'statusHealthy',
7
+ warning: 'statusWarning',
8
+ danger: 'statusCritical',
9
+ selected: 'selectedActive',
10
+ base: 'infoPrimary',
11
+ };
12
+
13
+ /** Translates the old colors into new colors while keeping the same name.
14
+ * New names are also supported. */
15
+ export const getThemePropSelector = (key) => (props) => {
16
+ const key_ = variantMapping[key] ?? key;
17
+ return props.theme[key_];
18
+ };
19
+
20
+ /** Translates the old colors into new colors while keeping same name.
21
+ * New names are also supported. */
22
+ export const getThemeVariantSelector = () => (props) => {
23
+ const theme = props.theme;
24
+ const key = variantMapping[props.variant] ?? props.variant;
25
+ return theme[key];
26
+ };
27
+
28
+ export const hex2RGB = (str: string): [number, number, number] => {
29
+ const [, short, long] = String(str).match(RGB_HEX) || [];
30
+
31
+ if (long) {
32
+ const value = Number.parseInt(long, 16);
33
+ return [value >> 16, (value >> 8) & 0xff, value & 0xff];
34
+ } else if (short) {
35
+ const [r, g, b] = Array.from(short, (s) => Number.parseInt(s, 16)).map(
36
+ (n) => (n << 4) | n,
37
+ );
38
+ return [r, g, b];
39
+ }
40
+
41
+ throw new Error('Invalid hex string provided');
42
+ };
43
+
44
+ export const convertRemToPixels = (rem: number): number => {
45
+ if (
46
+ document.documentElement &&
47
+ rem &&
48
+ Number.isFinite(rem) &&
49
+ !Number.isNaN(rem)
50
+ ) {
51
+ return (
52
+ rem * parseFloat(getComputedStyle(document.documentElement).fontSize) || 0
53
+ );
54
+ }
55
+
56
+ return 0;
57
+ };
@@ -0,0 +1,199 @@
1
+ import {
2
+ Meta,
3
+ Story,
4
+ Canvas,
5
+ Primary,
6
+ Controls,
7
+ Unstyled,
8
+ Source,
9
+ Title,
10
+ } from '@storybook/blocks';
11
+ import { Button } from '../../src/lib/components/buttonv2/Buttonv2.component';
12
+
13
+ import * as ButtonStories from './button.stories';
14
+
15
+ <Meta of={ButtonStories} name="Guideline" />
16
+
17
+ # Button
18
+
19
+ Buttons are used to trigger an action or event when activated.
20
+
21
+ ## Size & style
22
+
23
+ ### Style
24
+
25
+ - Height: 2rem
26
+ - Border-radius: 3px
27
+ - Minimum width: 5rem
28
+
29
+ ### Padding
30
+
31
+ Button’s label measurement:
32
+
33
+ - Line height: 1.25rem
34
+ - Vertical padding: 0.5rem
35
+ - Horizontal padding of 1rem
36
+ - Space between icon & label: 0.5rem
37
+
38
+ ### Button spacing
39
+
40
+ - Horizontal spacing: 1rem
41
+ - Vertical spacing: 0.75rem
42
+ - Space between 2 buttons: 1.5rem - when there is no space constraint
43
+
44
+ ## Usage
45
+
46
+ Button labels should be as short and clear as possible and should describe the action the button performs.\
47
+
48
+ - Use one or two words if possible,
49
+ - Remove most prepositions and articles (a, an, the).
50
+ - Examples: Cancel, Close, Create, Delete, Edit, Learn More, Review, Save, Study, View Scores, etc.,
51
+ - Stick to using verbs (Complete, Start, Finish, Search) or a simple verb + noun combination for buttons (Next page, Submit post, Learn more),
52
+ - Capitalize the noun after the verb (Create Folder, Create Node, Edit Location).
53
+ - Maintain labelling method consistency across all of your buttons,
54
+ - Don't use punctuation or exclamation marks (!),
55
+ - And, most importantly, don't write "Click here".
56
+
57
+ ## Variations
58
+
59
+ The button can be modified in different way to match its usage.
60
+
61
+ ### Variant
62
+
63
+ Buttons have a set of predefined variants to use in different context.
64
+
65
+ <Canvas layout="fullscreen" of={ButtonStories.DefaultButtons} />
66
+ <br />
67
+
68
+ #### Primary
69
+
70
+ Used for the main action. It should only appear once within a group of buttons (or even a screen).
71
+ For example, “Continue” in a form.
72
+
73
+ <Canvas of={ButtonStories.Primary} layout="fullscreen" />
74
+
75
+ #### Secondary
76
+
77
+ Used for a secondary action within a group of buttons.
78
+
79
+ <Canvas layout="fullscreen" of={ButtonStories.Secondary} />
80
+
81
+ #### Outline
82
+
83
+ Used for low-emphasis action, as an alternative to Primary or Secondary buttons.
84
+ It's suitable for dismissive action, such as the "Cancel" button.
85
+
86
+ <Canvas layout="fullscreen" of={ButtonStories.Outline} />
87
+
88
+ #### Danger
89
+
90
+ Used for critical action, typically delete actions.
91
+ Actions triggered by such button often require additional validation, as the critical action cannot be undone.
92
+
93
+ <Canvas layout="fullscreen" of={ButtonStories.Danger} />
94
+
95
+ ### Links
96
+
97
+ The Button component can be used as a link to another element of the UI.
98
+ When the link send to another site, use the "External-link-alt" icon.
99
+
100
+ <Canvas layout="fullscreen" of={ButtonStories.LinkButton} />
101
+
102
+ ### Size
103
+
104
+ Only 2 sizes are available for the button component : default and inline.
105
+
106
+ Inline size is use for constraint spaces, like in tables or in key/values sections.
107
+ On all others cases, use the default size.
108
+
109
+ <Canvas layout="fullscreen" of={ButtonStories.ButtonSizes} />
110
+
111
+ ### States
112
+
113
+ #### Disabled state
114
+
115
+ Clicks on the button should trigger no action, and the cursor should display a "not-allowed" indicator. \
116
+ A tooltip explaining the reason for the button’s disabled state should appear on hover.
117
+
118
+ <Canvas layout="fullscreen" of={ButtonStories.ButtonDisabled} />
119
+
120
+ #### Loading State
121
+
122
+ Display a spinner animation within the button. \
123
+ Disable any interactions during the loading process.
124
+
125
+ <Canvas
126
+ layout="fullscreen"
127
+ of={ButtonStories.ButtonLoading}
128
+
129
+ />
130
+
131
+ ## Group of Button
132
+
133
+ - Primary buttons placed on the right of a group.
134
+ - Dismissive actions placed on the left. It allows the user to return to the previous screen or step in the process.
135
+
136
+ Align button groups with the container's right side by default; however, based on the use case and visual balance it can be aligned differently.
137
+
138
+ <Canvas layout="fullscreen" of={ButtonStories.SimpleForm} sourceState="none" />
139
+
140
+ ## Icon on buttons
141
+
142
+ ### Usage
143
+
144
+ Every button gets a label.\
145
+ Icons are optional and mainly used to show how buttons are different, to aid memory and differentiation.\
146
+ Universally understood icons work well (ie. print, close, play/pause, save).\
147
+ Use standard icons when their use matches their meaning, or at least the user's intent.\
148
+ Avoid creating new icons for every action, especially infrequently used ones.\
149
+ Avoid using an icon alone in a button. If no label is provided, then use a tooltip.
150
+
151
+ ### Placement
152
+
153
+ Icons are to be positioned only on the left side of the text.\
154
+ Icons should be vertically center-aligned with the text.\
155
+ The icon should be (approximately) the same height as the text.\
156
+ Seeing the icon first help users to scan the page more easily, except for few cases such as navigation (right arrow).
157
+
158
+ <Canvas
159
+ layout="fullscreen"
160
+ of={ButtonStories.ButtonsWithIcon}
161
+ sourceState="none"
162
+ />
163
+
164
+ <Canvas
165
+ layout="fullscreen"
166
+ of={ButtonStories.IconButtonWithTooltip}
167
+ sourceState="none"
168
+ />
169
+
170
+ ### Accessibility
171
+
172
+ - Icons in Button Design: \
173
+ Easily recognizable icons help with the quick recognition of a button’s function. If the icon is not clear enough, it loses its purpose, so in such cases, avoid using icons.
174
+ - Aria Labels: \
175
+ Providing descriptive labels for screen readers is really helpful, especially for buttons that use icons only.
176
+
177
+ ## Ghost Buttons
178
+
179
+ Ghost buttons are subtle and contribute to a minimalist interface design.
180
+ They are low-emphasis, making them ideal for non-primary actions in UIs.
181
+ They're also effective in space-limited areas like tables or key-value lists.
182
+
183
+ - Ensure tooltips are included for clarity
184
+ - Don't confuse them with non-interactive elements like descriptive icons or status indicators
185
+ - Use them for secondary or less crucial actions.
186
+ - Don't opt for them over Outline buttons, which are more visibly recognizable as buttons.
187
+ - Create too many different instances of ghost buttons; limit them to common actions (e.g. link to other UIs).
188
+
189
+ <Canvas
190
+ layout="fullscreen"
191
+ of={ButtonStories.GhostButtons}
192
+ sourceState="none"
193
+ />
194
+
195
+ ### Playground
196
+
197
+ <Canvas of={ButtonStories.Playground} layout="fullscreen" />
198
+
199
+ <Controls of={ButtonStories.Playground} />