@aivenio/aquarium 1.10.0 → 1.11.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 (274) hide show
  1. package/dist/_variables.scss +1 -1
  2. package/dist/_variables_timescale.scss +1 -1
  3. package/dist/atoms.cjs +45 -45
  4. package/dist/atoms.mjs +41 -41
  5. package/dist/src/{common → atoms}/Alert/Alert.d.ts +2 -2
  6. package/dist/src/atoms/Alert/Alert.js +74 -0
  7. package/dist/src/{common → atoms}/Banner/Banner.d.ts +2 -2
  8. package/dist/src/atoms/Banner/Banner.js +57 -0
  9. package/dist/src/atoms/Card/Card.js +54 -0
  10. package/dist/src/{common → atoms}/Checkbox/Checkbox.js +2 -2
  11. package/dist/src/{common → atoms}/Chip/Chip.js +1 -1
  12. package/dist/src/{common → atoms}/DataList/DataList.js +3 -3
  13. package/dist/src/{common → atoms}/Dialog/Dialog.d.ts +1 -1
  14. package/dist/src/{common → atoms}/Dialog/Dialog.js +1 -1
  15. package/dist/src/atoms/DropdownMenu/DropdownMenu.js +62 -0
  16. package/dist/src/{common → atoms}/InputGroup/InputGroup.d.ts +1 -1
  17. package/dist/src/{common → atoms}/InputGroup/InputGroup.js +2 -2
  18. package/dist/src/{common → atoms}/LineClamp/LineClamp.js +1 -1
  19. package/dist/src/{common → atoms}/Link/Link.js +1 -1
  20. package/dist/src/{common → atoms}/Modal/Modal.d.ts +1 -1
  21. package/dist/src/atoms/Modal/Modal.js +68 -0
  22. package/dist/src/{common → atoms}/Popover/Popover.js +1 -1
  23. package/dist/src/{common → atoms}/PopoverDialog/PopoverDialog.js +2 -2
  24. package/dist/src/{common → atoms}/ProgressBar/ProgressBar.js +1 -1
  25. package/dist/src/{common → atoms}/RadioButton/RadioButton.js +1 -1
  26. package/dist/src/{common → atoms}/Section/Section.d.ts +2 -2
  27. package/dist/src/atoms/Section/Section.js +46 -0
  28. package/dist/src/{common → atoms}/Select/Select.js +2 -2
  29. package/dist/src/{common → atoms}/Stepper/Stepper.js +2 -2
  30. package/dist/src/{common → atoms}/Switch/Switch.js +1 -1
  31. package/dist/src/{common → atoms}/Table/Table.d.ts +2 -2
  32. package/dist/src/atoms/Table/Table.js +91 -0
  33. package/dist/src/{common → atoms}/Timeline/Timeline.js +1 -1
  34. package/dist/src/{common → atoms}/Typography/Typography.js +1 -1
  35. package/dist/src/{common → atoms}/index.js +1 -1
  36. package/dist/src/{components → molecules}/Alert/Alert.d.ts +1 -1
  37. package/dist/src/molecules/Alert/Alert.js +12 -0
  38. package/dist/src/molecules/Avatar/Avatar.js +10 -0
  39. package/dist/src/{components → molecules}/Badge/Badge.js +1 -1
  40. package/dist/src/{components → molecules}/Banner/Banner.d.ts +1 -1
  41. package/dist/src/molecules/Banner/Banner.js +44 -0
  42. package/dist/src/{components → molecules}/Box/Box.d.ts +2 -2
  43. package/dist/src/{components → molecules}/Box/Box.js +2 -2
  44. package/dist/src/{components → molecules}/Breadcrumbs/Breadcrumbs.js +2 -2
  45. package/dist/src/{components → molecules}/Button/Button.js +4 -4
  46. package/dist/src/{components → molecules}/Card/Card.d.ts +1 -1
  47. package/dist/src/molecules/Card/Card.js +48 -0
  48. package/dist/src/{components → molecules}/Card/Compact.d.ts +1 -1
  49. package/dist/src/molecules/Card/Compact.js +43 -0
  50. package/dist/src/{components → molecules}/Card/types.js +1 -1
  51. package/dist/src/{components → molecules}/Carousel/Carousel.js +4 -4
  52. package/dist/src/{components → molecules}/Checkbox/Checkbox.d.ts +1 -1
  53. package/dist/src/molecules/Checkbox/Checkbox.js +29 -0
  54. package/dist/src/{components → molecules}/CheckboxGroup/CheckboxGroup.d.ts +2 -2
  55. package/dist/src/molecules/CheckboxGroup/CheckboxGroup.js +61 -0
  56. package/dist/src/{components → molecules}/Chip/Chip.d.ts +1 -1
  57. package/dist/src/molecules/Chip/Chip.js +64 -0
  58. package/dist/src/{components → molecules}/ChoiceChip/ChoiceChip.js +1 -1
  59. package/dist/src/molecules/Combobox/Combobox.js +109 -0
  60. package/dist/src/molecules/Container/Container.js +18 -0
  61. package/dist/src/molecules/Context/Context.js +18 -0
  62. package/dist/src/{components → molecules}/ControlLabel/ControlLabel.d.ts +1 -1
  63. package/dist/src/{components → molecules}/ControlLabel/ControlLabel.js +2 -2
  64. package/dist/src/molecules/DataList/DataList.js +24 -0
  65. package/dist/src/{components → molecules}/DataTable/DataTable.d.ts +1 -1
  66. package/dist/src/molecules/DataTable/DataTable.js +42 -0
  67. package/dist/src/{components → molecules}/Dialog/Dialog.d.ts +2 -2
  68. package/dist/src/molecules/Dialog/Dialog.js +41 -0
  69. package/dist/src/{components → molecules}/Divider/Divider.js +1 -1
  70. package/dist/src/{components → molecules}/Dropdown/Dropdown.d.ts +2 -2
  71. package/dist/src/molecules/Dropdown/Dropdown.js +87 -0
  72. package/dist/src/{components → molecules}/DropdownMenu/DropdownMenu.d.ts +1 -1
  73. package/dist/src/molecules/DropdownMenu/DropdownMenu.js +148 -0
  74. package/dist/src/molecules/DropdownMenu/utils.js +20 -0
  75. package/dist/src/{components → molecules}/Element/Element.js +1 -1
  76. package/dist/src/molecules/EmptyState/EmptyState.js +74 -0
  77. package/dist/src/{components → molecules}/Flexbox/Flexbox.d.ts +1 -1
  78. package/dist/src/molecules/Flexbox/Flexbox.js +19 -0
  79. package/dist/src/{components → molecules}/Flexbox/FlexboxItem.d.ts +1 -1
  80. package/dist/src/molecules/Flexbox/FlexboxItem.js +16 -0
  81. package/dist/src/{components → molecules}/Grid/Grid.d.ts +1 -1
  82. package/dist/src/molecules/Grid/Grid.js +31 -0
  83. package/dist/src/{components → molecules}/Grid/GridItem.d.ts +1 -1
  84. package/dist/src/molecules/Grid/GridItem.js +20 -0
  85. package/dist/src/{components → molecules}/Icon/Icon.js +1 -1
  86. package/dist/src/{components → molecules}/Input/Input.js +2 -2
  87. package/dist/src/{components → molecules}/LineClamp/LineClamp.d.ts +1 -1
  88. package/dist/src/molecules/LineClamp/LineClamp.js +21 -0
  89. package/dist/src/{components → molecules}/Link/Link.d.ts +1 -1
  90. package/dist/src/molecules/Link/Link.js +4 -0
  91. package/dist/src/molecules/List/List.js +6 -0
  92. package/dist/src/molecules/ListItem/ListItem.js +10 -0
  93. package/dist/src/{components → molecules}/Modal/Modal.d.ts +2 -2
  94. package/dist/src/{components → molecules}/Modal/Modal.js +4 -4
  95. package/dist/src/{components → molecules}/MultiInput/InputChip.js +3 -3
  96. package/dist/src/molecules/MultiInput/MultiInput.js +153 -0
  97. package/dist/src/{components → molecules}/MultiSelect/MultiSelect.d.ts +1 -1
  98. package/dist/src/molecules/MultiSelect/MultiSelect.js +149 -0
  99. package/dist/src/{components → molecules}/NativeSelect/NativeSelect.js +3 -3
  100. package/dist/src/{components → molecules}/PageHeader/PageHeader.d.ts +1 -1
  101. package/dist/src/molecules/PageHeader/PageHeader.js +40 -0
  102. package/dist/src/molecules/Pagination/Pagination.js +52 -0
  103. package/dist/src/molecules/Pagination/usePagination.js +36 -0
  104. package/dist/src/{components → molecules}/Popover/Popover.d.ts +1 -1
  105. package/dist/src/molecules/Popover/Popover.js +79 -0
  106. package/dist/src/molecules/Popover/PopoverContext.js +10 -0
  107. package/dist/src/{components → molecules}/Popover/PopoverWrapper.js +2 -2
  108. package/dist/src/{components → molecules}/PopoverDialog/PopoverDialog.d.ts +2 -2
  109. package/dist/src/molecules/PopoverDialog/PopoverDialog.js +28 -0
  110. package/dist/src/molecules/Portal/Portal.js +3 -0
  111. package/dist/src/molecules/ProgressBar/ProgressBar.js +23 -0
  112. package/dist/src/{components → molecules}/RadioButton/RadioButton.d.ts +1 -1
  113. package/dist/src/molecules/RadioButton/RadioButton.js +29 -0
  114. package/dist/src/{components → molecules}/RadioButtonGroup/RadioButtonGroup.d.ts +2 -2
  115. package/dist/src/molecules/RadioButtonGroup/RadioButtonGroup.js +65 -0
  116. package/dist/src/{components → molecules}/Section/Section.js +4 -4
  117. package/dist/src/{components → molecules}/SegmentedControl/SegmentedControl.js +1 -1
  118. package/dist/src/molecules/Select/Select.js +144 -0
  119. package/dist/src/molecules/Skeleton/Skeleton.js +18 -0
  120. package/dist/src/molecules/Spacing/Spacing.d.ts +14 -0
  121. package/dist/src/molecules/Spacing/Spacing.js +18 -0
  122. package/dist/src/molecules/Stepper/Stepper.js +25 -0
  123. package/dist/src/{components → molecules}/Switch/Switch.d.ts +1 -1
  124. package/dist/src/molecules/Switch/Switch.js +29 -0
  125. package/dist/src/{components → molecules}/SwitchGroup/SwitchGroup.d.ts +2 -2
  126. package/dist/src/molecules/SwitchGroup/SwitchGroup.js +59 -0
  127. package/dist/src/{components → molecules}/Table/Table.d.ts +1 -1
  128. package/dist/src/{components → molecules}/Table/Table.js +2 -2
  129. package/dist/src/molecules/Tabs/Tabs.js +220 -0
  130. package/dist/src/{components → molecules}/TagLabel/TagLabel.js +1 -1
  131. package/dist/src/{components → molecules}/Tailwindify/Tailwindify.js +1 -1
  132. package/dist/src/molecules/Template/Template.js +23 -0
  133. package/dist/src/molecules/Textarea/Textarea.js +46 -0
  134. package/dist/src/molecules/Timeline/Timeline.js +42 -0
  135. package/dist/src/{components → molecules}/Tooltip/Tooltip.d.ts +1 -1
  136. package/dist/src/molecules/Tooltip/Tooltip.js +110 -0
  137. package/dist/src/{components → molecules}/Tooltip/useTooltipTriggerState.js +1 -1
  138. package/dist/src/{components → molecules}/Typography/Typography.d.ts +1 -1
  139. package/dist/src/molecules/Typography/Typography.js +89 -0
  140. package/dist/src/{components → molecules}/index.d.ts +1 -0
  141. package/dist/src/{components → molecules}/index.js +3 -2
  142. package/dist/src/system.d.ts +3 -3
  143. package/dist/src/system.js +4 -4
  144. package/dist/src/utils/constants.js +2 -2
  145. package/dist/src/utils/form/FormControl/FormControl.js +2 -2
  146. package/dist/src/utils/form/HelperText/HelperText.js +2 -2
  147. package/dist/src/utils/form/InputAdornment/InputAdornment.d.ts +1 -1
  148. package/dist/src/utils/form/InputAdornment/InputAdornment.js +2 -2
  149. package/dist/src/utils/form/Label/Label.d.ts +1 -1
  150. package/dist/src/utils/form/Label/Label.js +3 -3
  151. package/dist/src/utils/table/types.d.ts +2 -2
  152. package/dist/src/utils/useStyle.js +2 -2
  153. package/dist/styles.css +830 -810
  154. package/dist/styles_timescaledb.css +830 -810
  155. package/dist/system.cjs +231 -217
  156. package/dist/system.mjs +223 -210
  157. package/dist/tailwind.config.js +0 -1
  158. package/dist/tsconfig.module.tsbuildinfo +1 -1
  159. package/dist/types/ActionType.d.ts +1 -1
  160. package/dist/types/tailwindGenerated.d.ts +1 -1
  161. package/package.json +4 -4
  162. package/dist/src/common/Alert/Alert.js +0 -74
  163. package/dist/src/common/Banner/Banner.js +0 -57
  164. package/dist/src/common/Card/Card.js +0 -54
  165. package/dist/src/common/DropdownMenu/DropdownMenu.js +0 -62
  166. package/dist/src/common/Modal/Modal.js +0 -68
  167. package/dist/src/common/Section/Section.js +0 -46
  168. package/dist/src/common/Table/Table.js +0 -91
  169. package/dist/src/components/Alert/Alert.js +0 -12
  170. package/dist/src/components/Avatar/Avatar.js +0 -10
  171. package/dist/src/components/Banner/Banner.js +0 -44
  172. package/dist/src/components/Card/Card.js +0 -48
  173. package/dist/src/components/Card/Compact.js +0 -43
  174. package/dist/src/components/Checkbox/Checkbox.js +0 -29
  175. package/dist/src/components/CheckboxGroup/CheckboxGroup.js +0 -61
  176. package/dist/src/components/Chip/Chip.js +0 -64
  177. package/dist/src/components/Combobox/Combobox.js +0 -109
  178. package/dist/src/components/Container/Container.js +0 -18
  179. package/dist/src/components/Context/Context.js +0 -18
  180. package/dist/src/components/DataList/DataList.js +0 -24
  181. package/dist/src/components/DataTable/DataTable.js +0 -42
  182. package/dist/src/components/Dialog/Dialog.js +0 -41
  183. package/dist/src/components/Dropdown/Dropdown.js +0 -87
  184. package/dist/src/components/DropdownMenu/DropdownMenu.js +0 -148
  185. package/dist/src/components/DropdownMenu/utils.js +0 -20
  186. package/dist/src/components/EmptyState/EmptyState.js +0 -74
  187. package/dist/src/components/Flexbox/Flexbox.js +0 -19
  188. package/dist/src/components/Flexbox/FlexboxItem.js +0 -16
  189. package/dist/src/components/Grid/Grid.js +0 -31
  190. package/dist/src/components/Grid/GridItem.js +0 -20
  191. package/dist/src/components/LineClamp/LineClamp.js +0 -21
  192. package/dist/src/components/Link/Link.js +0 -4
  193. package/dist/src/components/List/List.js +0 -6
  194. package/dist/src/components/ListItem/ListItem.js +0 -10
  195. package/dist/src/components/MultiInput/MultiInput.js +0 -153
  196. package/dist/src/components/MultiSelect/MultiSelect.js +0 -149
  197. package/dist/src/components/PageHeader/PageHeader.js +0 -40
  198. package/dist/src/components/Pagination/Pagination.js +0 -52
  199. package/dist/src/components/Pagination/usePagination.js +0 -36
  200. package/dist/src/components/Popover/Popover.js +0 -79
  201. package/dist/src/components/Popover/PopoverContext.js +0 -10
  202. package/dist/src/components/PopoverDialog/PopoverDialog.js +0 -28
  203. package/dist/src/components/Portal/Portal.js +0 -3
  204. package/dist/src/components/ProgressBar/ProgressBar.js +0 -23
  205. package/dist/src/components/RadioButton/RadioButton.js +0 -29
  206. package/dist/src/components/RadioButtonGroup/RadioButtonGroup.js +0 -65
  207. package/dist/src/components/Select/Select.js +0 -144
  208. package/dist/src/components/Skeleton/Skeleton.js +0 -18
  209. package/dist/src/components/Stepper/Stepper.js +0 -25
  210. package/dist/src/components/Switch/Switch.js +0 -29
  211. package/dist/src/components/SwitchGroup/SwitchGroup.js +0 -59
  212. package/dist/src/components/Tabs/Tabs.js +0 -220
  213. package/dist/src/components/Template/Template.js +0 -23
  214. package/dist/src/components/Textarea/Textarea.js +0 -46
  215. package/dist/src/components/Timeline/Timeline.js +0 -42
  216. package/dist/src/components/Tooltip/Tooltip.js +0 -110
  217. package/dist/src/components/Typography/Typography.js +0 -89
  218. /package/dist/src/{common → atoms}/Card/Card.d.ts +0 -0
  219. /package/dist/src/{common → atoms}/Checkbox/Checkbox.d.ts +0 -0
  220. /package/dist/src/{common → atoms}/Chip/Chip.d.ts +0 -0
  221. /package/dist/src/{common → atoms}/DataList/DataList.d.ts +0 -0
  222. /package/dist/src/{common → atoms}/DropdownMenu/DropdownMenu.d.ts +0 -0
  223. /package/dist/src/{common → atoms}/LineClamp/LineClamp.d.ts +0 -0
  224. /package/dist/src/{common → atoms}/Link/Link.d.ts +0 -0
  225. /package/dist/src/{common → atoms}/Popover/Popover.d.ts +0 -0
  226. /package/dist/src/{common → atoms}/PopoverDialog/PopoverDialog.d.ts +0 -0
  227. /package/dist/src/{common → atoms}/ProgressBar/ProgressBar.d.ts +0 -0
  228. /package/dist/src/{common → atoms}/RadioButton/RadioButton.d.ts +0 -0
  229. /package/dist/src/{common → atoms}/Select/Select.d.ts +0 -0
  230. /package/dist/src/{common → atoms}/Stepper/Stepper.d.ts +0 -0
  231. /package/dist/src/{common → atoms}/Switch/Switch.d.ts +0 -0
  232. /package/dist/src/{common → atoms}/Timeline/Timeline.d.ts +0 -0
  233. /package/dist/src/{common → atoms}/Typography/Typography.d.ts +0 -0
  234. /package/dist/src/{common → atoms}/index.d.ts +0 -0
  235. /package/dist/src/{components → molecules}/Avatar/Avatar.d.ts +0 -0
  236. /package/dist/src/{components → molecules}/Badge/Badge.d.ts +0 -0
  237. /package/dist/src/{components → molecules}/Breadcrumbs/Breadcrumbs.d.ts +0 -0
  238. /package/dist/src/{components → molecules}/Button/Button.d.ts +0 -0
  239. /package/dist/src/{components → molecules}/Card/types.d.ts +0 -0
  240. /package/dist/src/{components → molecules}/Carousel/Carousel.d.ts +0 -0
  241. /package/dist/src/{components → molecules}/ChoiceChip/ChoiceChip.d.ts +0 -0
  242. /package/dist/src/{components → molecules}/Combobox/Combobox.d.ts +0 -0
  243. /package/dist/src/{components → molecules}/Container/Container.d.ts +0 -0
  244. /package/dist/src/{components → molecules}/Context/Context.d.ts +0 -0
  245. /package/dist/src/{components → molecules}/DataList/DataList.d.ts +0 -0
  246. /package/dist/src/{components → molecules}/Divider/Divider.d.ts +0 -0
  247. /package/dist/src/{components → molecules}/DropdownMenu/utils.d.ts +0 -0
  248. /package/dist/src/{components → molecules}/Element/Element.d.ts +0 -0
  249. /package/dist/src/{components → molecules}/EmptyState/EmptyState.d.ts +0 -0
  250. /package/dist/src/{components → molecules}/Icon/Icon.d.ts +0 -0
  251. /package/dist/src/{components → molecules}/Input/Input.d.ts +0 -0
  252. /package/dist/src/{components → molecules}/List/List.d.ts +0 -0
  253. /package/dist/src/{components → molecules}/ListItem/ListItem.d.ts +0 -0
  254. /package/dist/src/{components → molecules}/MultiInput/InputChip.d.ts +0 -0
  255. /package/dist/src/{components → molecules}/MultiInput/MultiInput.d.ts +0 -0
  256. /package/dist/src/{components → molecules}/NativeSelect/NativeSelect.d.ts +0 -0
  257. /package/dist/src/{components → molecules}/Pagination/Pagination.d.ts +0 -0
  258. /package/dist/src/{components → molecules}/Pagination/usePagination.d.ts +0 -0
  259. /package/dist/src/{components → molecules}/Popover/PopoverContext.d.ts +0 -0
  260. /package/dist/src/{components → molecules}/Popover/PopoverWrapper.d.ts +0 -0
  261. /package/dist/src/{components → molecules}/Portal/Portal.d.ts +0 -0
  262. /package/dist/src/{components → molecules}/ProgressBar/ProgressBar.d.ts +0 -0
  263. /package/dist/src/{components → molecules}/Section/Section.d.ts +0 -0
  264. /package/dist/src/{components → molecules}/SegmentedControl/SegmentedControl.d.ts +0 -0
  265. /package/dist/src/{components → molecules}/Select/Select.d.ts +0 -0
  266. /package/dist/src/{components → molecules}/Skeleton/Skeleton.d.ts +0 -0
  267. /package/dist/src/{components → molecules}/Stepper/Stepper.d.ts +0 -0
  268. /package/dist/src/{components → molecules}/Tabs/Tabs.d.ts +0 -0
  269. /package/dist/src/{components → molecules}/TagLabel/TagLabel.d.ts +0 -0
  270. /package/dist/src/{components → molecules}/Tailwindify/Tailwindify.d.ts +0 -0
  271. /package/dist/src/{components → molecules}/Template/Template.d.ts +0 -0
  272. /package/dist/src/{components → molecules}/Textarea/Textarea.d.ts +0 -0
  273. /package/dist/src/{components → molecules}/Timeline/Timeline.d.ts +0 -0
  274. /package/dist/src/{components → molecules}/Tooltip/useTooltipTriggerState.d.ts +0 -0
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import orderBy from 'lodash/orderBy';
3
+ import { SecondaryButton } from '../../../src/molecules/Button/Button';
4
+ import { StatusChip } from '../../../src/molecules/Chip/Chip';
5
+ import { Template } from '../../../src/molecules/Template/Template';
6
+ import { DataList as DataListBase } from '../../../src/atoms/DataList/DataList';
7
+ import { Item } from '../../../src/atoms/Table/Table';
8
+ import { List } from '../../../src/molecules';
9
+ import { renameProperty } from '../../../src/utils/object';
10
+ import { cellProps, toSortDirection } from '../../../src/utils/table/types';
11
+ import { useTableSort } from '../../../src/utils/table/useTableSort';
12
+ export const DataList = ({ columns, rows, sticky }) => {
13
+ const [sort, updateSort] = useTableSort();
14
+ const sortedRows = orderBy(rows, [sort === null || sort === void 0 ? void 0 : sort.key], [toSortDirection(sort === null || sort === void 0 ? void 0 : sort.direction)]);
15
+ const templateColumns = columns.map((column) => { var _a; return (_a = column.width) !== null && _a !== void 0 ? _a : 'auto'; });
16
+ return (React.createElement(Template, { columns: templateColumns },
17
+ columns.map((column) => (column.type === 'text' || column.type === 'number') && column.sortable ? (React.createElement(DataListBase.SortCell, Object.assign({ direction: sort && sort.key === column.field ? sort.direction : 'none', onClick: () => updateSort(column.field), sticky: sticky }, cellProps(column)), column.headerName)) : (React.createElement(DataListBase.HeadCell, Object.assign({}, cellProps(column), { sticky: sticky }), column.headerName))),
18
+ React.createElement(List, { items: sortedRows, renderItem: (row, index) => (React.createElement(DataListBase.Row, { key: row.id },
19
+ React.createElement(List, { items: columns, renderItem: (column) => column.type === 'status' ? (React.createElement(DataListBase.Cell, Object.assign({}, cellProps(column)),
20
+ React.createElement(StatusChip, Object.assign({ dense: true }, column.status(row, index, sortedRows))))) : column.type === 'action' ? (React.createElement(DataListBase.Cell, Object.assign({}, cellProps(column)),
21
+ React.createElement(SecondaryButton, Object.assign({ dense: true }, renameProperty('text', 'children', column.action(row, index, sortedRows)))))) : column.type === 'custom' ? (React.createElement(DataListBase.Cell, Object.assign({}, cellProps(column)), column.UNSAFE_render(row, index, sortedRows))) : column.type === 'item' ? (React.createElement(DataListBase.Cell, null,
22
+ React.createElement(Item, Object.assign({}, column.item(row, index, sortedRows))))) : (React.createElement(DataListBase.Cell, Object.assign({}, cellProps(column)), column.formatter ? column.formatter(row[column.field], row, index, sortedRows) : row[column.field])) }))) })));
23
+ };
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YUxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9sZWN1bGVzL0RhdGFMaXN0L0RhdGFMaXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFM0QsT0FBTyxFQUFFLFFBQVEsSUFBSSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFN0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUEwQyxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBcUI1RCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBeUIsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBb0IsRUFBZSxFQUFFO0lBQzNHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEdBQUcsWUFBWSxFQUFLLENBQUM7SUFDN0MsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxHQUFHLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsU0FBUyxDQUFDLENBQUMsQ0FB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
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { type TableProps } from '../../../src/components/Table/Table';
2
+ import { type TableProps } from '../../../src/molecules/Table/Table';
3
3
  import { type DataTableColumn, type DataTableRow } from '../../../src/utils/table/types';
4
4
  export declare type DataTableProps<R extends DataTableRow> = {
5
5
  /**
@@ -0,0 +1,42 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React from 'react';
13
+ import orderBy from 'lodash/orderBy';
14
+ import { SecondaryButton } from '../../../src/molecules/Button/Button';
15
+ import { StatusChip } from '../../../src/molecules/Chip/Chip';
16
+ import { Table } from '../../../src/molecules/Table/Table';
17
+ import { Item } from '../../../src/atoms/Table/Table';
18
+ import { List } from '../../../src/molecules';
19
+ import { renameProperty } from '../../../src/utils/object';
20
+ import { cellProps, toSortDirection } from '../../../src/utils/table/types';
21
+ import { useTableSort } from '../../../src/utils/table/useTableSort';
22
+ import { tw } from '../../../src/utils/tailwind';
23
+ export const DataTable = (_a) => {
24
+ var { columns, rows, noWrap = false, layout = 'auto', sticky } = _a, rest = __rest(_a, ["columns", "rows", "noWrap", "layout", "sticky"]);
25
+ const [sort, updateSort] = useTableSort();
26
+ const sortedRows = orderBy(rows, [sort === null || sort === void 0 ? void 0 : sort.key], [toSortDirection(sort === null || sort === void 0 ? void 0 : sort.direction)]);
27
+ return (React.createElement(Table, Object.assign({}, rest, { className: tw({
28
+ 'whitespace-nowrap': noWrap,
29
+ 'table-auto': layout === 'auto',
30
+ 'table-fixed': layout === 'fixed',
31
+ }) }),
32
+ React.createElement(Table.Head, { sticky: sticky }, columns.map((column) => (column.type === 'text' || column.type === 'number') && column.sortable ? (React.createElement(Table.SortCell, Object.assign({ direction: sort && sort.key === column.field ? sort.direction : 'none', onClick: () => updateSort(column.field), style: { width: column.width }, "aria-label": column.headerInvisible ? column.headerName : undefined }, cellProps(column)), !column.headerInvisible && column.headerName)) : (React.createElement(Table.Cell, Object.assign({}, cellProps(column), { style: { width: column.width }, "aria-label": column.headerInvisible ? column.headerName : undefined }), !column.headerInvisible && column.headerName)))),
33
+ React.createElement(Table.Body, null,
34
+ React.createElement(List, { items: sortedRows, renderItem: (row, index) => (React.createElement(Table.Row, { key: row.id },
35
+ React.createElement(List, { items: columns, renderItem: (column) => column.type === 'status' ? (React.createElement(Table.Cell, Object.assign({}, cellProps(column)),
36
+ React.createElement(StatusChip, Object.assign({ dense: true }, column.status(row, index, sortedRows))))) : column.type === 'action' ? (React.createElement(Table.Cell, Object.assign({}, cellProps(column)),
37
+ React.createElement(SecondaryButton, Object.assign({ dense: true }, renameProperty('text', 'children', column.action(row, index, sortedRows)))))) : column.type === 'custom' ? (React.createElement(Table.Cell, Object.assign({}, cellProps(column)), column.UNSAFE_render(row, index, sortedRows))) : column.type === 'item' ? (React.createElement(Table.Cell, Object.assign({}, cellProps(column)),
38
+ React.createElement(Item, Object.assign({}, column.item(row, index, sortedRows))))) : (React.createElement(Table.Cell, Object.assign({}, cellProps(column)), column.formatter
39
+ ? column.formatter(row[column.field], row, index, sortedRows)
40
+ : row[column.field])) }))) }))));
41
+ };
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vbGVjdWxlcy9EYXRhVGFibGUvRGF0YVRhYmxlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBbUIsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFbkUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBMkMsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFnQ3hDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUF5QixFQU85QixFQUFlLEVBQUU7UUFQYSxFQUNoRCxPQUFPLEVBQ1AsSUFBSSxFQUNKLE1BQU0sR0FBRyxLQUFLLEVBQ2QsTUFBTSxHQUFHLE1BQU0sRUFDZixNQUFNLE9BRVksRUFEZixJQUFJLGNBTnlDLGlEQU9qRCxDQURRO0lBRVAsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsR0FBRyxZQUFZLEVBQUssQ0FBQztJQUM3QyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxD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
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { type DialogType } from '../../../src/common/Dialog/Dialog';
3
- import { Modal } from '../../../src/common/Modal/Modal';
2
+ import { type DialogType } from '../../../src/atoms/Dialog/Dialog';
3
+ import { Modal } from '../../../src/atoms/Modal/Modal';
4
4
  import { type ActionType, type AsyncActionType } from '../../../types/ActionType';
5
5
  export declare type DialogProps = {
6
6
  /** Title of the dialog. Use 'Confirmation', 'Warning' or 'Danger'. */
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import { useDialog } from '@react-aria/dialog';
3
+ import { FocusScope } from '@react-aria/focus';
4
+ import { Overlay, useModalOverlay } from '@react-aria/overlays';
5
+ import { useId } from '@react-aria/utils';
6
+ import { useOverlayTriggerState } from '@react-stately/overlays';
7
+ import omit from 'lodash/omit';
8
+ import { GhostButton, SecondaryButton } from '../../../src/molecules/Button/Button';
9
+ import { Icon } from '../../../src/molecules/Icon/Icon';
10
+ import { DIALOG_ICONS_AND_COLORS } from '../../../src/atoms/Dialog/Dialog';
11
+ import { Modal } from '../../../src/atoms/Modal/Modal';
12
+ export const Dialog = ({ title, type = 'confirmation', open, children, primaryAction, secondaryAction, }) => {
13
+ const ref = React.useRef(null);
14
+ const state = useOverlayTriggerState({ isOpen: open });
15
+ const { modalProps, underlayProps } = useModalOverlay({ isDismissable: false }, state, ref);
16
+ const labelledBy = useId();
17
+ const describedBy = useId();
18
+ // useDialog() also returns 'titleProps', but it doesn't work correctly
19
+ // in this case because the title id is set to null after the second render.
20
+ // The problem (most likely) is somewhere in this component which causes
21
+ // it render twice when it is opened and that causes the useSlotId() hook
22
+ // in react-aria to think that the title is not rendered correctly.
23
+ const { dialogProps } = useDialog({ 'role': 'alertdialog', 'aria-labelledby': labelledBy, 'aria-describedby': describedBy }, ref);
24
+ if (!open) {
25
+ return null;
26
+ }
27
+ return (React.createElement(Overlay, null,
28
+ React.createElement(Modal, { open: open },
29
+ React.createElement(Modal.BackDrop, Object.assign({}, underlayProps)),
30
+ React.createElement(FocusScope, { contain: true, restoreFocus: true, autoFocus: true },
31
+ React.createElement(Modal.Dialog, Object.assign({ ref: ref, size: "sm" }, modalProps, dialogProps),
32
+ React.createElement(Modal.Header, null,
33
+ React.createElement(Icon, { icon: DIALOG_ICONS_AND_COLORS[type].icon, color: DIALOG_ICONS_AND_COLORS[type].color, fontSize: 20 }),
34
+ React.createElement(Modal.Title, { id: labelledBy, variant: "large-strong", color: DIALOG_ICONS_AND_COLORS[type].color }, title)),
35
+ React.createElement(Modal.Body, { id: describedBy }, children),
36
+ React.createElement(Modal.Footer, null,
37
+ React.createElement(Modal.Actions, null,
38
+ secondaryAction && (React.createElement(GhostButton, Object.assign({ key: secondaryAction.text }, omit(secondaryAction, 'text')), secondaryAction.text)),
39
+ React.createElement(SecondaryButton, Object.assign({ key: primaryAction.text }, omit(primaryAction, 'text')), primaryAction.text))))))));
40
+ };
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vbGVjdWxlcy9EaWFsb2cvRGlhbG9nLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFFL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0MsT0FBTyxFQUFtQix1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQXdCOUMsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUEwQixDQUFDLEVBQzVDLEtBQUssRUFDTCxJQUFJLEdBQUcsY0FBYyxFQUNyQixJQUFJLEVBQ0osUUFBUSxFQUNSLGFBQWEsRUFDYixlQUFlLEdBQ2hCLEVBQUUsRUFBRTtJQUNILE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQWlCLElBQUksQ0FBQyxDQUFDO0lBQy9DLE1BQU0sS0FBSyxHQUFHLHNCQUFzQixDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkQsTUFBTSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxlQUFlLENBQUMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVGLE1BQU0sVUFBVSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQzNCLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQzVCLHVFQUF1RTtJQUN2RSw0RUFBNEU7SUFDNUUsd0VBQXdFO0lBQ3hFLHlFQUF5RTtJQUN6RSxtRUFBbUU7SUFDbkUsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLFNBQVMsQ0FDL0IsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsRUFDekYsR0FBRyxDQUNKLENBQUM7SUFFRixJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE9BQU8sQ0FDTCxvQkFBQyxPQUFPO1FBQ04sb0JBQUMsS0FBSyxJQUFDLElBQUksRUFBRSxJQUFJO1lBQ2Ysb0JBQUMsS0FBSyxDQUFDLFFBQVEsb0JBQUssYUFBYSxFQUFJO1lBQ3JDLG9CQUFDLFVBQVUsSUFBQyxPQUFPLFFBQUMsWUFBWSxRQUFDLFNBQVM7Z0JBQ3hDLG9CQUFDLEtBQUssQ0FBQyxNQUFNLGtCQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFDLElBQUksSUFBSyxVQUFVLEVBQU0sV0FBVztvQkFLL0Qsb0JBQUMsS0FBSyxDQUFDLE1BQU07d0JBQ1gsb0JBQUMsSUFBSSxJQUNILElBQUksRUFBRSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQ3hDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQzFDLFFBQVEsRUFBRSxFQUFFLEdBQ1o7d0JBQ0Ysb0JBQUMsS0FBSyxDQUFDLEtBQUssSUFBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxjQUFjLEVBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssSUFDM0YsS0FBSyxDQUNNLENBQ0Q7b0JBQ2Ysb0JBQUMsS0FBSyxDQUFDLElBQUksSUFBQyxFQUFFLEVBQUUsV0FBVyxJQUFHLFFBQVEsQ0FBYztvQkFDcEQsb0JBQUMsS0FBSyxDQUFDLE1BQU07d0JBQ1gsb0JBQUMsS0FBSyxDQUFDLE9BQU87NEJBQ1gsZUFBZSxJQUFJLENBQ2xCLG9CQUFDLFdBQVcsa0JBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxJQUFJLElBQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsR0FDdEUsZUFBZSxDQUFDLElBQUksQ0FDVCxDQUNmOzRCQUNELG9CQUFDLGVBQWUsa0JBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxJQUFJLElBQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsR0FDdEUsYUFBYSxDQUFDLElBQUksQ0FDSCxDQUNKLENBQ0gsQ0FDRixDQUNKLENBQ1AsQ0FDQSxDQUNYLENBQUM7QUFDSixDQUFDLENBQUMifQ==
@@ -44,4 +44,4 @@ export const Divider = (_a) => {
44
44
  'inline-block h-full': direction === 'vertical',
45
45
  }) })));
46
46
  };
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGl2aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0RpdmlkZXIvRGl2aWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBOEJ4QyxNQUFNLFdBQVcsR0FBZ0I7SUFDL0IsVUFBVSxFQUFFO1FBQ1YsQ0FBQyxFQUFFLE9BQU87UUFDVixDQUFDLEVBQUUsS0FBSztRQUNSLENBQUMsRUFBRSxLQUFLO1FBQ1IsQ0FBQyxFQUFFLEtBQUs7UUFDUixFQUFFLEVBQUUsS0FBSztRQUNULEVBQUUsRUFBRSxLQUFLO0tBQ1Y7SUFDRCxRQUFRLEVBQUU7UUFDUixDQUFDLEVBQUUsT0FBTztRQUNWLENBQUMsRUFBRSxLQUFLO1FBQ1IsQ0FBQyxFQUFFLEtBQUs7UUFDUixDQUFDLEVBQUUsS0FBSztRQUNSLEVBQUUsRUFBRSxLQUFLO1FBQ1QsRUFBRSxFQUFFLEtBQUs7S0FDVjtDQUNGLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQTJCLENBQUMsRUFBZ0QsRUFBRSxFQUFFO1FBQXBELEVBQUUsU0FBUyxHQUFHLFlBQVksRUFBRSxJQUFJLEdBQUcsQ0FBQyxPQUFZLEVBQVAsS0FBSyxjQUE5QyxxQkFBZ0QsQ0FBRjtJQUM1RixNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsT0FBTyxDQUNMLDZDQUNNLEtBQUssSUFDVCxTQUFTLEVBQUUsRUFBRSxDQUFDLGFBQWEsU0FBUyxFQUFXLEVBQUU7WUFDL0MsY0FBYyxFQUFFLFNBQVMsS0FBSyxZQUFZO1lBQzFDLHFCQUFxQixFQUFFLFNBQVMsS0FBSyxVQUFVO1NBQ2hELENBQUMsSUFDRixDQUNILENBQUM7QUFDSixDQUFDLENBQUMifQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGl2aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2xlY3VsZXMvRGl2aWRlci9EaXZpZGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUE4QnhDLE1BQU0sV0FBVyxHQUFnQjtJQUMvQixVQUFVLEVBQUU7UUFDVixDQUFDLEVBQUUsT0FBTztRQUNWLENBQUMsRUFBRSxLQUFLO1FBQ1IsQ0FBQyxFQUFFLEtBQUs7UUFDUixDQUFDLEVBQUUsS0FBSztRQUNSLEVBQUUsRUFBRSxLQUFLO1FBQ1QsRUFBRSxFQUFFLEtBQUs7S0FDVjtJQUNELFFBQVEsRUFBRTtRQUNSLENBQUMsRUFBRSxPQUFPO1FBQ1YsQ0FBQyxFQUFFLEtBQUs7UUFDUixDQUFDLEVBQUUsS0FBSztRQUNSLENBQUMsRUFBRSxLQUFLO1FBQ1IsRUFBRSxFQUFFLEtBQUs7UUFDVCxFQUFFLEVBQUUsS0FBSztLQUNWO0NBQ0YsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBMkIsQ0FBQyxFQUFnRCxFQUFFLEVBQUU7UUFBcEQsRUFBRSxTQUFTLEdBQUcsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDLE9BQVksRUFBUCxLQUFLLGNBQTlDLHFCQUFnRCxDQUFGO0lBQzVGLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQyxPQUFPLENBQ0wsNkNBQ00sS0FBSyxJQUNULFNBQVMsRUFBRSxFQUFFLENBQUMsYUFBYSxTQUFTLEVBQVcsRUFBRTtZQUMvQyxjQUFjLEVBQUUsU0FBUyxLQUFLLFlBQVk7WUFDMUMscUJBQXFCLEVBQUUsU0FBUyxLQUFLLFVBQVU7U0FDaEQsQ0FBQyxJQUNGLENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { type PopoverPlacement } from '../../../src/components/Popover/Popover';
3
- import { type TooltipProps } from '../../../src/components/Tooltip/Tooltip';
2
+ import { type PopoverPlacement } from '../../../src/molecules/Popover/Popover';
3
+ import { type TooltipProps } from '../../../src/molecules/Tooltip/Tooltip';
4
4
  declare type DropdownProps = {
5
5
  children: React.ReactElement;
6
6
  content: React.ReactElement<DropdownMenuProps>;
@@ -0,0 +1,87 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React from 'react';
13
+ import { Popover } from '../../../src/molecules/Popover/Popover';
14
+ import { usePopoverContext } from '../../../src/molecules/Popover/PopoverContext';
15
+ import { Tooltip } from '../../../src/molecules/Tooltip/Tooltip';
16
+ import { tw } from '../../../src/utils/tailwind';
17
+ /**
18
+ * @deprecated Please use <DropdownMenu> component instead.
19
+ */
20
+ export const Dropdown = ({ children, content, placement = 'bottom-left' }) => {
21
+ return (React.createElement(Popover, { type: "menu", placement: placement, autoFocus: true },
22
+ React.createElement(Popover.Trigger, null, children),
23
+ React.createElement(Popover.Panel, null, content)));
24
+ };
25
+ const DropdownMenu = ({ title, children, contentId, triggerId, setClose = () => undefined, }) => {
26
+ const menuRef = React.useRef(null);
27
+ React.useEffect(() => {
28
+ const id = setTimeout(() => { var _a, _b, _c; return (_c = (_b = (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.focus(); });
29
+ return () => clearTimeout(id);
30
+ }, [menuRef.current]);
31
+ return (React.createElement("div", { style: { minWidth: '250px' }, className: tw('py-3 bg-white') },
32
+ !!title && React.createElement("div", { className: tw('px-4 py-4 text-left text-grey-100 typography-default-strong') }, title),
33
+ React.createElement("ol", { role: 'menu', ref: menuRef, id: contentId, "aria-labelledby": triggerId }, React.Children.map(children, (child) => {
34
+ return React.cloneElement(child, { setClose });
35
+ }))));
36
+ };
37
+ const DropdownItem = (_a) => {
38
+ var { children, disabled = false, tooltip, tooltipPlacement, color = 'default', onSelect, setClose = () => undefined } = _a, props = __rest(_a, ["children", "disabled", "tooltip", "tooltipPlacement", "color", "onSelect", "setClose"]);
39
+ const { state } = usePopoverContext();
40
+ const handleSelect = () => {
41
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect();
42
+ state.close();
43
+ setClose();
44
+ };
45
+ const handleKeyDown = (event) => {
46
+ const target = event.target;
47
+ const parent = target.parentElement;
48
+ const first = parent.firstChild;
49
+ const last = parent.lastChild;
50
+ const next = target.nextElementSibling;
51
+ const prev = target.previousElementSibling;
52
+ if (event.key === 'ArrowUp') {
53
+ prev ? prev.focus() : last.focus();
54
+ }
55
+ else if (event.key === 'ArrowDown') {
56
+ next ? next.focus() : first.focus();
57
+ }
58
+ else if (event.key === 'Tab') {
59
+ event.preventDefault();
60
+ event.stopPropagation();
61
+ }
62
+ else if (event.key === 'Home' || event.key === 'PageUp') {
63
+ first.focus();
64
+ }
65
+ else if (event.key === 'End' || event.key === 'PageDown') {
66
+ last.focus();
67
+ }
68
+ else if (event.key === 'Enter') {
69
+ !disabled && handleSelect();
70
+ }
71
+ };
72
+ const handleClick = (e) => {
73
+ e.stopPropagation();
74
+ if (!disabled) {
75
+ handleSelect();
76
+ }
77
+ };
78
+ const itemContent = React.createElement("div", { className: tw('py-3 px-4') }, children);
79
+ return (React.createElement("li", Object.assign({ role: 'menuitem', tabIndex: -1, onClick: handleClick, onKeyDown: handleKeyDown }, props, { className: tw('typography-small flex items-center focus:ring-0', {
80
+ 'text-grey-70 cursor-pointer hover:bg-grey-0': !disabled,
81
+ 'text-grey-10 cursor-not-allowed': disabled,
82
+ 'text-primary-70 hover:text-primary-80': color === 'danger' && !disabled,
83
+ }) }), tooltip ? (React.createElement(Tooltip, { content: tooltip, placement: tooltipPlacement, inline: false }, itemContent)) : (itemContent)));
84
+ };
85
+ Dropdown.Menu = DropdownMenu;
86
+ Dropdown.Item = DropdownItem;
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9sZWN1bGVzL0Ryb3Bkb3duL0Ryb3Bkb3duLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixPQUFPLEVBQXlCLE9BQU8sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBcUIsT0FBTyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0UsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBeUJ4Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FHakIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxHQUFHLGFBQWEsRUFBRSxFQUFFLEVBQUU7SUFDdkQsT0FBTyxDQUNMLG9CQUFDLE9BQU8sSUFBQyxJQUFJLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUk7UUFDeEQsb0JBQUMsT0FBTyxDQUFDLE9BQU8sUUFBRSxRQUFRLENBQW1CO1FBQzdDLG9CQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQUUsT0FBTyxDQUFpQixDQUNoQyxDQUNYLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLFlBQVksR0FBZ0MsQ0FBQyxFQUNqRCxLQUFLLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBQ1QsUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLFNBQVMsR0FDM0IsRUFBRSxFQUFFO0lBQ0gsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBbUIsSUFBSSxDQUFDLENBQUM7SUFDckQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDbkIsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFD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
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { type ItemProps, type Selection, type SelectionMode } from '@react-types/shared';
3
- import { type PopoverPlacement } from '../../../src/components/Popover/Popover';
3
+ import { type PopoverPlacement } from '../../../src/molecules/Popover/Popover';
4
4
  import { type Icon } from '../../../types/IconProps';
5
5
  declare type DropdownMenuTriggerProps = {
6
6
  children: React.ReactElement;
@@ -0,0 +1,148 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React from 'react';
13
+ import { useFilter } from '@react-aria/i18n';
14
+ import { PressResponder, usePress } from '@react-aria/interactions';
15
+ import { useMenu, useMenuItem, useMenuSection, useMenuTrigger } from '@react-aria/menu';
16
+ import { useOverlayPosition } from '@react-aria/overlays';
17
+ import { useSeparator } from '@react-aria/separator';
18
+ import { mergeProps } from '@react-aria/utils';
19
+ import { Item, Section } from '@react-stately/collections';
20
+ import { useMenuTriggerState } from '@react-stately/menu';
21
+ import { useTreeState } from '@react-stately/tree';
22
+ import { SearchInput } from '../../../src/molecules/Input/Input';
23
+ import { PopoverWrapper } from '../../../src/molecules/Popover/PopoverWrapper';
24
+ import { DropdownMenu as Base } from '../../../src/atoms/DropdownMenu/DropdownMenu';
25
+ import { tw } from '../../../src/utils/tailwind';
26
+ import { isComponentType } from '../../../types/utils';
27
+ import { filterCollection } from './utils';
28
+ export const DropdownMenu = (_a) => {
29
+ var { onAction, selectionMode, selection, onSelectionChange, placement = 'bottom-left', minWidth, maxWidth, searchable = false, emptyState, header, footer, children } = _a, props = __rest(_a, ["onAction", "selectionMode", "selection", "onSelectionChange", "placement", "minWidth", "maxWidth", "searchable", "emptyState", "header", "footer", "children"]);
30
+ const triggerRef = React.useRef(null);
31
+ const overlayRef = React.useRef(null);
32
+ const [trigger, items] = extractTriggerAndItems(children);
33
+ const state = useMenuTriggerState(props);
34
+ const { menuTriggerProps, menuProps } = useMenuTrigger({}, state, triggerRef);
35
+ const { overlayProps } = useOverlayPosition({
36
+ targetRef: triggerRef,
37
+ overlayRef,
38
+ placement: placement.replace('-', ' '),
39
+ shouldFlip: true,
40
+ isOpen: state.isOpen,
41
+ });
42
+ return (React.createElement("div", null,
43
+ React.createElement(PressResponder, Object.assign({ ref: triggerRef, onPress: () => state.toggle() }, menuTriggerProps),
44
+ React.createElement(TriggerWrapper, null, trigger.props.children)),
45
+ React.createElement(PopoverWrapper, Object.assign({ ref: overlayRef, isDismissable: true, autoFocus: true, containFocus: true, isOpen: state.isOpen, onClose: state.close }, overlayProps),
46
+ React.createElement(MenuWrapper, Object.assign({ onAction: onAction, selectionMode: selectionMode, selection: selection, onSelectionChange: onSelectionChange, searchable: searchable, emptyState: emptyState, minWidth: minWidth, maxWidth: maxWidth, header: header, footer: footer }, menuProps), items.props.children))));
47
+ };
48
+ const MenuTrigger = () => null;
49
+ const MenuItems = () => null;
50
+ DropdownMenu.Trigger = MenuTrigger;
51
+ DropdownMenu.Trigger.displayName = 'DropdownMenu.Trigger';
52
+ DropdownMenu.Items = MenuItems;
53
+ DropdownMenu.Items.displayName = 'DropdownMenu.Items';
54
+ DropdownMenu.Item = Item;
55
+ DropdownMenu.Item.displayName = 'DropdownMenu.Item';
56
+ DropdownMenu.Section = Section;
57
+ DropdownMenu.Section.displayName = 'DropdownMenu.Section';
58
+ const TriggerWrapper = (_a) => {
59
+ var { children } = _a, props = __rest(_a, ["children"]);
60
+ const ref = React.useRef(null);
61
+ const { pressProps } = usePress(Object.assign(Object.assign({}, props), { ref }));
62
+ // Find the actual child component from the trigger
63
+ const trigger = React.Children.only(children);
64
+ // Make sure that we found the actual trigger element
65
+ if (!trigger || !React.isValidElement(trigger)) {
66
+ throw new Error('<DropdownMenu.Trigger> must have valid child');
67
+ }
68
+ return React.cloneElement(trigger, Object.assign({ ref }, mergeProps(pressProps, props)));
69
+ };
70
+ const isSectionNode = (item) => item.type === 'section';
71
+ const isItemNode = (item) => item.type === 'item';
72
+ const MenuWrapper = (_a) => {
73
+ var { selection: selectedKeys, minWidth, maxWidth, searchable, emptyState, header, footer } = _a, props = __rest(_a, ["selection", "minWidth", "maxWidth", "searchable", "emptyState", "header", "footer"]);
74
+ const ref = React.useRef(null);
75
+ const disabledKeys = getDisabledItemKeys(props.children);
76
+ const state = useTreeState(Object.assign({ disabledKeys,
77
+ selectedKeys }, props));
78
+ const { menuProps } = useMenu(props, state, ref);
79
+ const { contains } = useFilter({ sensitivity: 'base' });
80
+ const [search, setSearch] = React.useState('');
81
+ const filteredCollection = React.useMemo(() => (searchable ? filterCollection(state.collection, search, contains) : state.collection), [state.collection, search, contains]);
82
+ return (React.createElement(Base, { minWidth: minWidth !== undefined ? `${minWidth}px` : undefined, maxWidth: maxWidth !== undefined ? `${maxWidth}px` : undefined },
83
+ header,
84
+ React.createElement(Base.ContentContainer, null,
85
+ searchable && (React.createElement(SearchInput, { "aria-label": "search", value: search, onChange: (e) => setSearch(e.target.value), className: tw('mb-5') })),
86
+ filteredCollection.size === 0 && emptyState && (React.createElement(Base.EmptyStateContainer, null, emptyState)),
87
+ React.createElement(Base.List, Object.assign({ ref: ref }, menuProps), Array.from(filteredCollection).map((item) => {
88
+ // For some reason the inverse of this typeguard is not working hence the specfic check.
89
+ if (isSectionNode(item)) {
90
+ return React.createElement(SectionWrapper, { key: item.key, section: item, state: state });
91
+ }
92
+ else if (isItemNode(item)) {
93
+ return React.createElement(ItemWrapper, { key: item.key, item: item, state: state });
94
+ }
95
+ }))),
96
+ footer));
97
+ };
98
+ const ItemWrapper = ({ item, state }) => {
99
+ const ref = React.useRef(null);
100
+ const { menuItemProps, descriptionProps, isSelected, isFocused, isDisabled } = useMenuItem({ key: item.key, closeOnSelect: item.props.closeOnSelect }, state, ref);
101
+ const { icon, description, kind = 'default' } = item.props; // Typed as any in "Node" type for some reason.
102
+ return (React.createElement(Base.Item, Object.assign({ ref: ref }, menuItemProps, { kind: kind, selected: isSelected, highlighted: isFocused, disabled: isDisabled, icon: icon }),
103
+ item.rendered,
104
+ description && (React.createElement(Base.Description, Object.assign({ disabled: isDisabled }, descriptionProps), description))));
105
+ };
106
+ const SectionWrapper = ({ section, state }) => {
107
+ const { itemProps, headingProps, groupProps } = useMenuSection({
108
+ 'heading': section.rendered,
109
+ 'aria-label': section['aria-label'],
110
+ });
111
+ const { separatorProps } = useSeparator({
112
+ elementType: 'li',
113
+ });
114
+ return (React.createElement(React.Fragment, null,
115
+ section.key !== state.collection.getFirstKey() && React.createElement(Base.Separator, Object.assign({}, separatorProps)),
116
+ React.createElement(Base.Group, Object.assign({ title: section.rendered, titleProps: headingProps }, itemProps),
117
+ React.createElement("ul", Object.assign({}, groupProps), Array.from(section.childNodes).map((node) => (React.createElement(ItemWrapper, { key: node.key, item: node, state: state })))))));
118
+ };
119
+ /**
120
+ * Separate trigger and menu items elements from children.
121
+ */
122
+ const extractTriggerAndItems = (children) => {
123
+ const [trigger, items] = React.Children.toArray(children);
124
+ if (!isComponentType(trigger, MenuTrigger) || !isComponentType(items, MenuItems)) {
125
+ throw new Error('<DropdownMenu> must have <DropdownMenu.Trigger> and <DropdownMenu.Items> defined');
126
+ }
127
+ return [trigger, items];
128
+ };
129
+ /**
130
+ * Collect keys from all child elements that have `disabled={true}` prop set.
131
+ */
132
+ const getDisabledItemKeys = (children) => {
133
+ const keys = React.Children.map(children, (child) => {
134
+ var _a, _b;
135
+ if (!child || typeof child === 'function') {
136
+ return null;
137
+ }
138
+ if (isComponentType(child, Item) && child.props.disabled) {
139
+ return (_b = (_a = child.key) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : null;
140
+ }
141
+ if (isComponentType(child, Section)) {
142
+ return getDisabledItemKeys(child.props.children);
143
+ }
144
+ return null;
145
+ });
146
+ return keys.flat().filter((key) => key !== null);
147
+ };
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHJvcGRvd25NZW51LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vbGVjdWxlcy9Ecm9wZG93bk1lbnUvRHJvcGRvd25NZW51LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBa0IsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFhbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXhELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsWUFBWSxJQUFJLElBQUksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQXVJ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
@@ -0,0 +1,20 @@
1
+ import { ListCollection } from '@react-stately/list';
2
+ export const filterCollection = (collection, inputValue, filter) => {
3
+ return new ListCollection(filterNodes(collection, inputValue, filter));
4
+ };
5
+ export const filterNodes = (nodes, inputValue, filter) => {
6
+ const filteredNode = [];
7
+ for (const node of nodes) {
8
+ if (node.type === 'section' && node.hasChildNodes) {
9
+ const filtered = filterNodes(node.childNodes, inputValue, filter);
10
+ if ([...filtered].length > 0) {
11
+ filteredNode.push(Object.assign(Object.assign({}, node), { childNodes: filtered }));
12
+ }
13
+ }
14
+ else if (node.type !== 'section' && filter(node.textValue, inputValue)) {
15
+ filteredNode.push(Object.assign({}, node));
16
+ }
17
+ }
18
+ return filteredNode;
19
+ };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9sZWN1bGVzL0Ryb3Bkb3duTWVudS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFLckQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDOUIsVUFBK0IsRUFDL0IsVUFBa0IsRUFDbEIsTUFBZ0IsRUFDSyxFQUFFO0lBQ3ZCLE9BQU8sSUFBSSxjQUFjLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBSSxLQUF3QixFQUFFLFVBQWtCLEVBQUUsTUFBZ0IsRUFBcUIsRUFBRTtJQUNsSCxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7SUFFeEIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7UUFDeEIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2pELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM1QixZQUFZLENBQUMsSUFBSSxpQ0FBTSxJQUFJLEtBQUUsVUFBVSxFQUFFLFFBQVEsSUFBRyxDQUFDO2FBQ3REO1NBQ0Y7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxFQUFFO1lBQ3hFLFlBQVksQ0FBQyxJQUFJLG1CQUFNLElBQUksRUFBRyxDQUFDO1NBQ2hDO0tBQ0Y7SUFDRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDLENBQUMifQ==
@@ -15,4 +15,4 @@ export const Element = (_a) => {
15
15
  const Component = component || 'div';
16
16
  return React.createElement(Component, rest);
17
17
  };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VsZW1lbnQvRWxlbWVudC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFlMUIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQThCLEVBQXVDLEVBQWUsRUFBRTtRQUF4RCxFQUFFLFNBQVMsT0FBNEIsRUFBdkIsSUFBSSxjQUFwQixhQUFzQixDQUFGO0lBQ3ZFLE1BQU0sU0FBUyxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUM7SUFDckMsT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM5QyxDQUFDLENBQUMifQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2xlY3VsZXMvRWxlbWVudC9FbGVtZW50LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQWUxQixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBOEIsRUFBdUMsRUFBZSxFQUFFO1FBQXhELEVBQUUsU0FBUyxPQUE0QixFQUF2QixJQUFJLGNBQXBCLGFBQXNCLENBQUY7SUFDdkUsTUFBTSxTQUFTLEdBQUcsU0FBUyxJQUFJLEtBQUssQ0FBQztJQUNyQyxPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzlDLENBQUMsQ0FBQyJ9
@@ -0,0 +1,74 @@
1
+ import React from 'react';
2
+ import omit from 'lodash/omit';
3
+ import { Box } from '../../../src/molecules/Box/Box';
4
+ import { PrimaryButton, SecondaryButton } from '../../../src/molecules/Button/Button';
5
+ import { Flexbox } from '../../../src/molecules/Flexbox/Flexbox';
6
+ import { FlexboxItem } from '../../../src/molecules/Flexbox/FlexboxItem';
7
+ import { Typography } from '../../../src/molecules/Typography/Typography';
8
+ import { classNames, tw } from '../../../src/utils/tailwind';
9
+ export var EmptyStateLayout;
10
+ (function (EmptyStateLayout) {
11
+ EmptyStateLayout["CenterVertical"] = "center-vertical";
12
+ EmptyStateLayout["LeftVertical"] = "left-vertical";
13
+ EmptyStateLayout["CenterHorizontal"] = "center-horizontal";
14
+ EmptyStateLayout["LeftHorizontal"] = "left-horizontal";
15
+ })(EmptyStateLayout || (EmptyStateLayout = {}));
16
+ const layoutStyle = (layout) => {
17
+ switch (layout) {
18
+ case EmptyStateLayout.LeftVertical:
19
+ return {
20
+ layout: 'column',
21
+ justifyContent: 'flex-start',
22
+ alignItems: 'flex-start',
23
+ };
24
+ case EmptyStateLayout.LeftHorizontal:
25
+ return {
26
+ layout: 'row',
27
+ justifyContent: 'flex-start',
28
+ alignItems: 'flex-start',
29
+ };
30
+ case EmptyStateLayout.CenterHorizontal:
31
+ return {
32
+ layout: 'row',
33
+ justifyContent: 'center',
34
+ alignItems: 'flex-start',
35
+ };
36
+ case EmptyStateLayout.CenterVertical:
37
+ default:
38
+ return {
39
+ layout: 'column',
40
+ justifyContent: 'center',
41
+ alignItems: 'center',
42
+ };
43
+ }
44
+ };
45
+ /**
46
+ * ## A EmptyState component to call extra attention to featured content or information, for example, an empty stage of a feature.
47
+ *
48
+ * @param props EmptyStateProps
49
+ * @returns React.ReactElement
50
+ */
51
+ export const EmptyState = ({ title, image, imageAlt = '', imageWidth, description, children, primaryAction, secondaryAction, footer, layout = EmptyStateLayout.CenterVertical, borderStyle = 'dashed', }) => {
52
+ const template = layoutStyle(layout);
53
+ return (React.createElement(Box, { className: classNames(tw('rounded', {
54
+ 'border border-dashed': borderStyle === 'dashed',
55
+ 'border border-solid': borderStyle === 'solid',
56
+ 'text-left': layout !== EmptyStateLayout.CenterVertical,
57
+ 'text-center': layout === EmptyStateLayout.CenterVertical,
58
+ })), backgroundColor: "transparent", borderColor: "grey-10", padding: "9" },
59
+ React.createElement(Flexbox, { direction: template.layout, justifyContent: template.justifyContent,
60
+ // in case of horizontal layouts, the content inside the 2nd col should align center with image.
61
+ alignItems: template.layout === 'row' ? 'center' : template.alignItems, colGap: "l5", rowGap: "8" },
62
+ image && (React.createElement(FlexboxItem, null,
63
+ React.createElement("img", { src: image, alt: imageAlt, style: { width: imageWidth ? `${imageWidth}px` : undefined, height: 'auto' } }))),
64
+ React.createElement(Flexbox, { style: { maxWidth: '610px' }, direction: "column", justifyContent: template.justifyContent, alignItems: template.alignItems },
65
+ React.createElement(Typography, { variant: "heading", htmlTag: "h2" }, title),
66
+ (description || children) && (React.createElement(Box, { marginTop: "5" },
67
+ React.createElement(Typography, { variant: "default", color: "grey-60" }, children || description))),
68
+ (secondaryAction || primaryAction) && (React.createElement(Flexbox, { marginTop: "7", gap: "4", justifyContent: "center", alignItems: "center", wrap: "wrap" },
69
+ primaryAction && React.createElement(PrimaryButton, Object.assign({}, omit(primaryAction, 'text')), primaryAction.text),
70
+ secondaryAction && (React.createElement(SecondaryButton, Object.assign({}, omit(secondaryAction, 'text')), secondaryAction.text)))),
71
+ footer && (React.createElement(Box, { marginTop: "7" },
72
+ React.createElement(Typography, { htmlTag: "div", variant: "small", color: "grey-60" }, footer)))))));
73
+ };
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW1wdHlTdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2xlY3VsZXMvRW1wdHlTdGF0ZS9FbXB0eVN0YXRlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWpFLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHcEQsTUFBTSxDQUFOLElBQVksZ0JBS1g7QUFMRCxXQUFZLGdCQUFnQjtJQUMxQixzREFBa0MsQ0FBQTtJQUNsQyxrREFBOEIsQ0FBQTtJQUM5QiwwREFBc0MsQ0FBQTtJQUN0QyxzREFBa0MsQ0FBQTtBQUNwQyxDQUFDLEVBTFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUszQjtBQWtFRCxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQXdCLEVBQW9CLEVBQUU7SUFDakUsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLGdCQUFnQixDQUFDLFlBQVk7WUFDaEMsT0FBTztnQkFDTCxNQUFNLEVBQUUsUUFBUTtnQkFDaEIsY0FBYyxFQUFFLFlBQVk7Z0JBQzVCLFVBQVUsRUFBRSxZQUFZO2FBQ3pCLENBQUM7UUFDSixLQUFLLGdCQUFnQixDQUFDLGNBQWM7WUFDbEMsT0FBTztnQkFDTCxNQUFNLEVBQUUsS0FBSztnQkFDYixjQUFjLEVBQUUsWUFBWTtnQkFD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
@@ -17,4 +17,4 @@ export declare type FlexboxProps = {
17
17
  colGap?: keyof (typeof twTheme)['gap'];
18
18
  rowGap?: keyof (typeof twTheme)['gap'];
19
19
  }>;
20
- export declare const Flexbox: (props: import("../../../src/components/Tailwindify/Tailwindify").TailwindifyProps<FlexboxProps>) => JSX.Element;
20
+ export declare const Flexbox: (props: import("../../../src/molecules/Tailwindify/Tailwindify").TailwindifyProps<FlexboxProps>) => JSX.Element;
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { Tailwindify } from '../../../src/molecules/Tailwindify/Tailwindify';
3
+ import { useStyle } from '../../../src/utils/useStyle';
4
+ export const Flexbox = Tailwindify(({ htmlTag = 'div', className, style, children, display = 'flex', justifyContent, alignContent, alignItems, direction, wrap, gap, colGap, rowGap, }) => {
5
+ const hookStyle = useStyle({
6
+ display,
7
+ justifyContent,
8
+ alignContent,
9
+ alignItems,
10
+ flexDirection: direction,
11
+ flexWrap: wrap,
12
+ gap,
13
+ columnGap: colGap,
14
+ rowGap,
15
+ });
16
+ const HtmlElement = htmlTag;
17
+ return (React.createElement(HtmlElement, { style: Object.assign(Object.assign({}, hookStyle), style), className: className }, children));
18
+ });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxleGJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2xlY3VsZXMvRmxleGJveC9GbGV4Ym94LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQXNCOUMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FDaEMsQ0FBQyxFQUNDLE9BQU8sR0FBRyxLQUFLLEVBQ2YsU0FBUyxFQUNULEtBQUssRUFDTCxRQUFRLEVBQ1IsT0FBTyxHQUFHLE1BQU0sRUFDaEIsY0FBYyxFQUNkLFlBQVksRUFDWixVQUFVLEVBQ1YsU0FBUyxFQUNULElBQUksRUFDSixHQUFHLEVBQ0gsTUFBTSxFQUNOLE1BQU0sR0FDUCxFQUFFLEVBQUU7SUFDSCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDekIsT0FBTztRQUNQLGNBQWM7UUFDZCxZQUFZO1FBQ1osVUFBVTtRQUNWLGFBQWEsRUFBRSxTQUFTO1FBQ3hCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsR0FBRztRQUNILFNBQVMsRUFBRSxNQUFNO1FBQ2pCLE1BQU07S0FDUCxDQUFDLENBQUM7SUFFSCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUM7SUFFNUIsT0FBTyxDQUNMLG9CQUFDLFdBQVcsSUFBQyxLQUFLLGtDQUFPLFNBQVMsR0FBSyxLQUFLLEdBQUksU0FBUyxFQUFFLFNBQVMsSUFDakUsUUFBUSxDQUNHLENBQ2YsQ0FBQztBQUNKLENBQUMsQ0FDRixDQUFDIn0=
@@ -14,4 +14,4 @@ export declare type FlexboxItemProps = {
14
14
  order?: keyof (typeof twTheme)['order'];
15
15
  alignSelf?: React.CSSProperties['alignSelf'];
16
16
  }>;
17
- export declare const FlexboxItem: (props: import("../../../src/components/Tailwindify/Tailwindify").TailwindifyProps<FlexboxItemProps>) => JSX.Element;
17
+ export declare const FlexboxItem: (props: import("../../../src/molecules/Tailwindify/Tailwindify").TailwindifyProps<FlexboxItemProps>) => JSX.Element;