@axinom/mosaic-ui 0.72.0-rc.8 → 0.72.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 (245) hide show
  1. package/dist/cjs/components/Badge/Badge.d.ts +13 -0
  2. package/dist/cjs/components/Badge/Badge.d.ts.map +1 -0
  3. package/dist/cjs/components/Badge/Badge.model.d.ts +42 -0
  4. package/dist/cjs/components/Badge/Badge.model.d.ts.map +1 -0
  5. package/dist/cjs/components/Badge/index.d.ts +3 -0
  6. package/dist/cjs/components/Badge/index.d.ts.map +1 -0
  7. package/dist/cjs/components/Explorer/Explorer.d.ts.map +1 -1
  8. package/dist/cjs/components/Explorer/helpers/useActions.d.ts +1 -4
  9. package/dist/cjs/components/Explorer/helpers/useActions.d.ts.map +1 -1
  10. package/dist/cjs/components/Explorer/helpers/useFilters.d.ts +0 -2
  11. package/dist/cjs/components/Explorer/helpers/useFilters.d.ts.map +1 -1
  12. package/dist/cjs/components/Filters/Filters.d.ts +12 -10
  13. package/dist/cjs/components/Filters/Filters.d.ts.map +1 -1
  14. package/dist/cjs/components/Filters/index.d.ts +1 -0
  15. package/dist/cjs/components/Filters/index.d.ts.map +1 -1
  16. package/dist/cjs/components/Icons/Icons.d.ts.map +1 -1
  17. package/dist/cjs/components/Icons/Icons.models.d.ts +17 -16
  18. package/dist/cjs/components/Icons/Icons.models.d.ts.map +1 -1
  19. package/dist/cjs/components/index.d.ts +1 -0
  20. package/dist/cjs/components/index.d.ts.map +1 -1
  21. package/dist/cjs/index.js +4 -4
  22. package/dist/cjs/index.js.map +1 -1
  23. package/dist/esm/components/Badge/Badge.d.ts +13 -0
  24. package/dist/esm/components/Badge/Badge.d.ts.map +1 -0
  25. package/dist/esm/components/Badge/Badge.model.d.ts +42 -0
  26. package/dist/esm/components/Badge/Badge.model.d.ts.map +1 -0
  27. package/dist/esm/components/Badge/index.d.ts +3 -0
  28. package/dist/esm/components/Badge/index.d.ts.map +1 -0
  29. package/dist/esm/components/Explorer/Explorer.d.ts.map +1 -1
  30. package/dist/esm/components/Explorer/helpers/useActions.d.ts +1 -4
  31. package/dist/esm/components/Explorer/helpers/useActions.d.ts.map +1 -1
  32. package/dist/esm/components/Explorer/helpers/useFilters.d.ts +0 -2
  33. package/dist/esm/components/Explorer/helpers/useFilters.d.ts.map +1 -1
  34. package/dist/esm/components/Filters/Filters.d.ts +12 -10
  35. package/dist/esm/components/Filters/Filters.d.ts.map +1 -1
  36. package/dist/esm/components/Filters/index.d.ts +1 -0
  37. package/dist/esm/components/Filters/index.d.ts.map +1 -1
  38. package/dist/esm/components/Icons/Icons.d.ts.map +1 -1
  39. package/dist/esm/components/Icons/Icons.models.d.ts +17 -16
  40. package/dist/esm/components/Icons/Icons.models.d.ts.map +1 -1
  41. package/dist/esm/components/index.d.ts +1 -0
  42. package/dist/esm/components/index.d.ts.map +1 -1
  43. package/dist/esm/index.js +4 -4
  44. package/dist/esm/index.js.map +1 -1
  45. package/package.json +5 -10
  46. package/src/components/Accordion/Accordion.tsx +1 -1
  47. package/src/components/Accordion/AccordionItem/AccordionItem.tsx +1 -1
  48. package/src/components/Actions/Action/Action.tsx +1 -1
  49. package/src/components/Actions/Actions.tsx +1 -1
  50. package/src/components/Badge/Badge.model.ts +46 -0
  51. package/src/components/Badge/Badge.scss +62 -0
  52. package/src/components/Badge/Badge.spec.tsx +40 -0
  53. package/src/components/Badge/Badge.stories.tsx +43 -0
  54. package/src/components/Badge/Badge.tsx +59 -0
  55. package/src/components/Badge/index.ts +2 -0
  56. package/src/components/Buttons/Button/Button.tsx +1 -1
  57. package/src/components/Buttons/CompositeButton/CompositeButton.tsx +1 -1
  58. package/src/components/Buttons/TextButton/TextButton.tsx +1 -1
  59. package/src/components/ConfirmDialog/ConfirmDialog.stories.tsx +1 -1
  60. package/src/components/ConfirmDialog/ConfirmDialog.tsx +1 -1
  61. package/src/components/DateTime/DatePicker/DatePicker.tsx +1 -1
  62. package/src/components/DateTime/DateTimePicker.tsx +1 -1
  63. package/src/components/DateTime/TimePicker/ScrollColumn/ScrollColumn.tsx +1 -1
  64. package/src/components/DateTime/TimePicker/TimePicker.tsx +1 -1
  65. package/src/components/DynamicDataList/DynamicDataList.tsx +1 -1
  66. package/src/components/DynamicDataList/DynamicListDataEntry/DynamicListDataEntry.tsx +1 -1
  67. package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createInputRenderer/createInputRenderer.tsx +1 -1
  68. package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createSelectRenderer/createSelectRenderer.tsx +1 -1
  69. package/src/components/DynamicDataList/DynamicListHeader/DynamicListHeader.tsx +1 -1
  70. package/src/components/DynamicDataList/DynamicListRow/DynamicListRow.tsx +1 -1
  71. package/src/components/EmptyStation/EmptyStation.tsx +1 -1
  72. package/src/components/Explorer/BulkEdit/helpers/FieldWrapper.tsx +1 -1
  73. package/src/components/Explorer/Explorer.tsx +41 -56
  74. package/src/components/Explorer/helpers/useActions.ts +0 -29
  75. package/src/components/Explorer/helpers/useFilters.spec.tsx +9 -25
  76. package/src/components/Explorer/helpers/useFilters.tsx +17 -21
  77. package/src/components/FieldSelection/FieldSelection.tsx +1 -1
  78. package/src/components/Filters/Filter/Filter.tsx +1 -1
  79. package/src/components/Filters/Filters.module.scss +59 -0
  80. package/src/components/Filters/Filters.tsx +103 -11
  81. package/src/components/Filters/SelectionTypes/DateTimeFilter/{DateTimeFilter.scss → DateTimeFilter.module.scss} +1 -1
  82. package/src/components/Filters/SelectionTypes/DateTimeFilter/DateTimeFilter.tsx +1 -1
  83. package/src/components/Filters/SelectionTypes/FreeTextFilter/FreeTextFilter.tsx +1 -1
  84. package/src/components/Filters/SelectionTypes/MultiOptionFilter/MultiOptionFilter.tsx +1 -1
  85. package/src/components/Filters/SelectionTypes/NumericTextFilter/NumericTextFilter.tsx +1 -1
  86. package/src/components/Filters/SelectionTypes/OptionsFilter/OptionsFilter.tsx +1 -1
  87. package/src/components/Filters/SelectionTypes/SearcheableOptionsFilter/SearcheableOptionsFilter.tsx +1 -1
  88. package/src/components/Filters/index.ts +1 -0
  89. package/src/components/FormElements/BooleanView/BooleanViewField.tsx +1 -1
  90. package/src/components/FormElements/Checkbox/Checkbox.tsx +1 -1
  91. package/src/components/FormElements/CustomTags/CustomTags.tsx +1 -1
  92. package/src/components/FormElements/DateTimeField/DateTimeText.tsx +1 -1
  93. package/src/components/FormElements/Divider/Divider.tsx +1 -1
  94. package/src/components/FormElements/FileUploadControl/FileUploadControl.tsx +1 -1
  95. package/src/components/FormElements/FormElementContainer/FormElementContainer.tsx +1 -1
  96. package/src/components/FormElements/FormGroup/FormGroup.stories.tsx +1 -1
  97. package/src/components/FormElements/FormGroup/FormGroup.tsx +1 -1
  98. package/src/components/FormElements/FormGroupTitle/FormGroupTitle.tsx +1 -1
  99. package/src/components/FormElements/FormikDebug/FormikDebug.tsx +1 -1
  100. package/src/components/FormElements/Link/LinkField.tsx +1 -1
  101. package/src/components/FormElements/Radio/Radio.tsx +1 -1
  102. package/src/components/FormElements/ReadOnly/ReadOnlyField.tsx +1 -1
  103. package/src/components/FormElements/ReadOnlyText/ReadOnlyTextField.tsx +1 -1
  104. package/src/components/FormElements/Select/Select.tsx +1 -1
  105. package/src/components/FormElements/SingleLineText/SingleLineText.tsx +1 -1
  106. package/src/components/FormElements/Tags/Tags.tsx +1 -1
  107. package/src/components/FormElements/TextArea/TextArea.tsx +1 -1
  108. package/src/components/FormElements/ToggleButton/ToggleButton.tsx +1 -1
  109. package/src/components/FormStation/FormGrid/FormGrid.tsx +1 -1
  110. package/src/components/FormStation/FormStation.tsx +1 -1
  111. package/src/components/FormStation/FormStationContentWrapper/FormStationContentWrapper.tsx +1 -1
  112. package/src/components/Hub/Hub.tsx +1 -1
  113. package/src/components/Hub/Tile/Tile.tsx +1 -1
  114. package/src/components/Icons/Icons.models.ts +1 -0
  115. package/src/components/Icons/Icons.stories.tsx +1 -1
  116. package/src/components/Icons/Icons.tsx +11 -1
  117. package/src/components/InfoPanel/InfoImage/InfoImage.tsx +1 -1
  118. package/src/components/InfoPanel/InfoPanel.tsx +1 -1
  119. package/src/components/InfoPanel/Paragraph/Paragraph.tsx +1 -1
  120. package/src/components/InfoPanel/Section/Section.tsx +1 -1
  121. package/src/components/InfoTooltip/InfoTooltip.tsx +1 -1
  122. package/src/components/InlineMenu/InlineMenu.stories.tsx +1 -1
  123. package/src/components/InlineMenu/InlineMenu.tsx +2 -2
  124. package/src/components/LandingPageHeader/LandingPageHeader.tsx +1 -1
  125. package/src/components/LandingPageTiles/LandingPageTiles.tsx +1 -1
  126. package/src/components/LandingPageTiles/TileLarge/TileLarge.tsx +1 -1
  127. package/src/components/LandingPageTiles/TileSmall/TileSmall.tsx +1 -1
  128. package/src/components/List/List.tsx +1 -1
  129. package/src/components/List/ListCheckBox/ListCheckBox.tsx +1 -1
  130. package/src/components/List/ListHeader/ColumnLabel/ColumnLabel.tsx +1 -1
  131. package/src/components/List/ListHeader/ListHeader.tsx +1 -1
  132. package/src/components/List/ListRow/ListRow.tsx +1 -1
  133. package/src/components/List/ListRow/ListRowCell/ListRowCell.tsx +1 -1
  134. package/src/components/List/ListRow/ListRowLoader.tsx +1 -1
  135. package/src/components/List/ListRow/Renderers/BooleanDotRenderer/BooleanDotRenderer.tsx +1 -1
  136. package/src/components/List/ListRow/Renderers/ExternalLinkRenderer/ExternalLinkRenderer.tsx +1 -1
  137. package/src/components/List/ListRow/Renderers/StateRenderer/StateRenderer.tsx +1 -1
  138. package/src/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.tsx +1 -1
  139. package/src/components/Loaders/ImageLoader/ImageLoader.tsx +1 -1
  140. package/src/components/Loaders/Loader/Loader.tsx +1 -1
  141. package/src/components/Message/Message.tsx +1 -1
  142. package/src/components/MessageBar/MessageBar.tsx +1 -1
  143. package/src/components/Modal/Modal.stories.tsx +1 -1
  144. package/src/components/Modal/Modal.tsx +1 -1
  145. package/src/components/PageHeader/PageHeader.tsx +1 -1
  146. package/src/components/PageHeader/PageHeaderAction/PageHeaderAction.tsx +1 -1
  147. package/src/components/PageHeader/PageHeaderActionsGroup/PageHeaderActionsGroup.tsx +1 -1
  148. package/src/components/ProgressBar/ProgressBar.tsx +1 -1
  149. package/src/components/Tabs/Tab/CustomTab.tsx +1 -1
  150. package/src/components/Tabs/TabList/CustomTabList.tsx +1 -1
  151. package/src/components/Tabs/TabList/ScrollContainer/ScrollContainer.tsx +1 -1
  152. package/src/components/Tabs/TabPanel/CustomTabPanel.tsx +1 -1
  153. package/src/components/index.ts +1 -0
  154. package/src/docs/Intro.mdx +1 -1
  155. package/src/hooks/useResize/ResizeIndicator.tsx +1 -1
  156. package/src/components/Filters/Filters.scss +0 -20
  157. /package/src/components/Accordion/{Accordion.scss → Accordion.module.scss} +0 -0
  158. /package/src/components/Accordion/AccordionItem/{AccordionItem.scss → AccordionItem.module.scss} +0 -0
  159. /package/src/components/Actions/Action/{Action.scss → Action.module.scss} +0 -0
  160. /package/src/components/Actions/{Actions.scss → Actions.module.scss} +0 -0
  161. /package/src/components/Buttons/Button/{Button.scss → Button.module.scss} +0 -0
  162. /package/src/components/Buttons/CompositeButton/{CompositeButton.scss → CompositeButton.module.scss} +0 -0
  163. /package/src/components/Buttons/TextButton/{TextButton.scss → TextButton.module.scss} +0 -0
  164. /package/src/components/ConfirmDialog/{ConfirmDialog.scss → ConfirmDialog.module.scss} +0 -0
  165. /package/src/components/DateTime/DatePicker/{Calendar.scss → Calendar.module.scss} +0 -0
  166. /package/src/components/DateTime/DatePicker/{DatePicker.scss → DatePicker.module.scss} +0 -0
  167. /package/src/components/DateTime/{DateTimePicker.scss → DateTimePicker.module.scss} +0 -0
  168. /package/src/components/DateTime/TimePicker/ScrollColumn/{ScrollColumn.scss → ScrollColumn.module.scss} +0 -0
  169. /package/src/components/DateTime/TimePicker/{TimePicker.scss → TimePicker.module.scss} +0 -0
  170. /package/src/components/DynamicDataList/{DynamicDataList.scss → DynamicDataList.module.scss} +0 -0
  171. /package/src/components/DynamicDataList/DynamicListDataEntry/{DynamicListDataEntry.scss → DynamicListDataEntry.module.scss} +0 -0
  172. /package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createInputRenderer/{createInputRenderer.scss → createInputRenderer.module.scss} +0 -0
  173. /package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createSelectRenderer/{createSelectRenderer.scss → createSelectRenderer.module.scss} +0 -0
  174. /package/src/components/DynamicDataList/DynamicListHeader/{DynamicListHeader.scss → DynamicListHeader.module.scss} +0 -0
  175. /package/src/components/DynamicDataList/DynamicListRow/{DynamicListRow.scss → DynamicListRow.module.scss} +0 -0
  176. /package/src/components/EmptyStation/{EmptyStation.scss → EmptyStation.module.scss} +0 -0
  177. /package/src/components/Explorer/BulkEdit/helpers/{FieldWrapper.scss → FieldWrapper.module.scss} +0 -0
  178. /package/src/components/Explorer/{Explorer.scss → Explorer.module.scss} +0 -0
  179. /package/src/components/FieldSelection/{FieldSelection.scss → FieldSelection.module.scss} +0 -0
  180. /package/src/components/Filters/Filter/{Filter.scss → Filter.module.scss} +0 -0
  181. /package/src/components/Filters/SelectionTypes/FreeTextFilter/{FreeTextFilter.scss → FreeTextFilter.module.scss} +0 -0
  182. /package/src/components/Filters/SelectionTypes/MultiOptionFilter/{MultiOptionFilter.scss → MultiOptionFilter.module.scss} +0 -0
  183. /package/src/components/Filters/SelectionTypes/NumericTextFilter/{NumericTextFilter.scss → NumericTextFilter.module.scss} +0 -0
  184. /package/src/components/Filters/SelectionTypes/OptionsFilter/{OptionsFilter.scss → OptionsFilter.module.scss} +0 -0
  185. /package/src/components/Filters/SelectionTypes/SearcheableOptionsFilter/{SearcheableOptionsFilter.scss → SearcheableOptionsFilter.module.scss} +0 -0
  186. /package/src/components/FormElements/BooleanView/{BooleanViewField.scss → BooleanViewField.module.scss} +0 -0
  187. /package/src/components/FormElements/Checkbox/{Checkbox.scss → Checkbox.module.scss} +0 -0
  188. /package/src/components/FormElements/CustomTags/{CustomTags.scss → CustomTags.module.scss} +0 -0
  189. /package/src/components/FormElements/DateTimeField/{DateTimeText.scss → DateTimeText.module.scss} +0 -0
  190. /package/src/components/FormElements/Divider/{Divider.scss → Divider.module.scss} +0 -0
  191. /package/src/components/FormElements/FileUploadControl/{FileUploadControl.scss → FileUploadControl.module.scss} +0 -0
  192. /package/src/components/FormElements/FormElementContainer/{FormElementContainer.scss → FormElementContainer.module.scss} +0 -0
  193. /package/src/components/FormElements/FormGroup/{FormGroup.scss → FormGroup.module.scss} +0 -0
  194. /package/src/components/FormElements/FormGroupTitle/{FormGroupTitle.scss → FormGroupTitle.module.scss} +0 -0
  195. /package/src/components/FormElements/FormikDebug/{FormikDebug.scss → FormikDebug.module.scss} +0 -0
  196. /package/src/components/FormElements/Link/{LinkField.scss → LinkField.module.scss} +0 -0
  197. /package/src/components/FormElements/Radio/{Radio.scss → Radio.module.scss} +0 -0
  198. /package/src/components/FormElements/ReadOnly/{ReadOnlyField.scss → ReadOnlyField.module.scss} +0 -0
  199. /package/src/components/FormElements/ReadOnlyText/{ReadOnlyTextField.scss → ReadOnlyTextField.module.scss} +0 -0
  200. /package/src/components/FormElements/Select/{Select.scss → Select.module.scss} +0 -0
  201. /package/src/components/FormElements/SingleLineText/{SingleLineText.scss → SingleLineText.module.scss} +0 -0
  202. /package/src/components/FormElements/Tags/{Tags.scss → Tags.module.scss} +0 -0
  203. /package/src/components/FormElements/TextArea/{TextArea.scss → TextArea.module.scss} +0 -0
  204. /package/src/components/FormElements/ToggleButton/{ToggleButton.scss → ToggleButton.module.scss} +0 -0
  205. /package/src/components/FormStation/FormGrid/{FormGrid.scss → FormGrid.module.scss} +0 -0
  206. /package/src/components/FormStation/{FormStation.scss → FormStation.module.scss} +0 -0
  207. /package/src/components/FormStation/FormStationContentWrapper/{FormStationContentWrapper.scss → FormStationContentWrapper.module.scss} +0 -0
  208. /package/src/components/Hub/{Hub.scss → Hub.module.scss} +0 -0
  209. /package/src/components/Hub/Tile/{Tile.scss → Tile.module.scss} +0 -0
  210. /package/src/components/Icons/{Icons.scss → Icons.module.scss} +0 -0
  211. /package/src/components/InfoPanel/InfoImage/{InfoImage.scss → InfoImage.module.scss} +0 -0
  212. /package/src/components/InfoPanel/{InfoPanel.scss → InfoPanel.module.scss} +0 -0
  213. /package/src/components/InfoPanel/Paragraph/{Paragraph.scss → Paragraph.module.scss} +0 -0
  214. /package/src/components/InfoPanel/Section/{Section.scss → Section.module.scss} +0 -0
  215. /package/src/components/InfoTooltip/{InfoTooltip.scss → InfoTooltip.module.scss} +0 -0
  216. /package/src/components/InlineMenu/{InlineMenu.scss → InlineMenu.module.scss} +0 -0
  217. /package/src/components/LandingPageHeader/{LandingPageHeader.scss → LandingPageHeader.module.scss} +0 -0
  218. /package/src/components/LandingPageTiles/{LandingPageTiles.scss → LandingPageTiles.module.scss} +0 -0
  219. /package/src/components/LandingPageTiles/TileLarge/{TileLarge.scss → TileLarge.module.scss} +0 -0
  220. /package/src/components/LandingPageTiles/TileSmall/{TileSmall.scss → TileSmall.module.scss} +0 -0
  221. /package/src/components/List/{List.scss → List.module.scss} +0 -0
  222. /package/src/components/List/ListCheckBox/{ListCheckBox.scss → ListCheckBox.module.scss} +0 -0
  223. /package/src/components/List/ListHeader/ColumnLabel/{ColumnLabel.scss → ColumnLabel.module.scss} +0 -0
  224. /package/src/components/List/ListHeader/{ListHeader.scss → ListHeader.module.scss} +0 -0
  225. /package/src/components/List/ListRow/{ListRow.scss → ListRow.module.scss} +0 -0
  226. /package/src/components/List/ListRow/ListRowCell/{ListRowCell.scss → ListRowCell.module.scss} +0 -0
  227. /package/src/components/List/ListRow/Renderers/BooleanDotRenderer/{BooleanDotRenderer.scss → BooleanDotRenderer.module.scss} +0 -0
  228. /package/src/components/List/ListRow/Renderers/ExternalLinkRenderer/{ExternalLinkRenderer.scss → ExternalLinkRenderer.module.scss} +0 -0
  229. /package/src/components/List/ListRow/Renderers/StateRenderer/{StateRenderer.scss → StateRenderer.module.scss} +0 -0
  230. /package/src/components/List/ListRow/Renderers/TagsRenderer/{TagsRenderer.scss → TagsRenderer.module.scss} +0 -0
  231. /package/src/components/Loaders/ImageLoader/{ImageLoader.scss → ImageLoader.module.scss} +0 -0
  232. /package/src/components/Loaders/Loader/{Loader.scss → Loader.module.scss} +0 -0
  233. /package/src/components/Message/{Message.scss → Message.module.scss} +0 -0
  234. /package/src/components/MessageBar/{MessageBar.scss → MessageBar.module.scss} +0 -0
  235. /package/src/components/Modal/{Modal.scss → Modal.module.scss} +0 -0
  236. /package/src/components/PageHeader/{PageHeader.scss → PageHeader.module.scss} +0 -0
  237. /package/src/components/PageHeader/PageHeaderAction/{PageHeaderAction.scss → PageHeaderAction.module.scss} +0 -0
  238. /package/src/components/PageHeader/PageHeaderActionsGroup/{PageHeaderActionsGroup.scss → PageHeaderActionsGroup.module.scss} +0 -0
  239. /package/src/components/ProgressBar/{ProgressBar.scss → ProgressBar.module.scss} +0 -0
  240. /package/src/components/Tabs/Tab/{CustomTab.scss → CustomTab.module.scss} +0 -0
  241. /package/src/components/Tabs/TabList/{CustomTabList.scss → CustomTabList.module.scss} +0 -0
  242. /package/src/components/Tabs/TabList/ScrollContainer/{ScrollContainer.scss → ScrollContainer.module.scss} +0 -0
  243. /package/src/components/Tabs/TabPanel/{CustomTabPanel.scss → CustomTabPanel.module.scss} +0 -0
  244. /package/src/docs/{intro.scss → intro.module.scss} +0 -0
  245. /package/src/hooks/useResize/{ResizeIndicator.scss → ResizeIndicator.module.scss} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axinom/mosaic-ui",
3
- "version": "0.72.0-rc.8",
3
+ "version": "0.72.0",
4
4
  "description": "UI components for building Axinom Mosaic applications",
5
5
  "author": "Axinom",
6
6
  "license": "PROPRIETARY",
@@ -41,7 +41,7 @@
41
41
  "build-storybook": "storybook build"
42
42
  },
43
43
  "dependencies": {
44
- "@axinom/mosaic-core": "^0.4.34-rc.8",
44
+ "@axinom/mosaic-core": "^0.4.34",
45
45
  "@faker-js/faker": "^7.4.0",
46
46
  "@geoffcox/react-splitter": "^2.1.2",
47
47
  "@mui/base": "5.0.0-beta.40",
@@ -78,10 +78,8 @@
78
78
  "@storybook/addon-a11y": "10.4.2",
79
79
  "@storybook/addon-docs": "^10.4.2",
80
80
  "@storybook/addon-links": "^10.4.2",
81
- "@storybook/addon-webpack5-compiler-babel": "^4.0.1",
82
- "@storybook/preset-scss": "^1.0.3",
83
81
  "@storybook/react": "^10.4.2",
84
- "@storybook/react-webpack5": "^10.4.2",
82
+ "@storybook/react-vite": "^10.4.2",
85
83
  "@testing-library/jest-dom": "^5.16.5",
86
84
  "@testing-library/react": "^12.1.5",
87
85
  "@testing-library/react-hooks": "^8.0.1",
@@ -90,9 +88,7 @@
90
88
  "@types/react-calendar": "^3.1.2",
91
89
  "@types/react-router-dom": "^5.3.3",
92
90
  "@types/react-transition-group": "^4.2.3",
93
- "babel-loader": "^8.3.0",
94
91
  "cross-env": "^7.0.3",
95
- "css-loader": "^6.5.1",
96
92
  "formik": "^2.1.4",
97
93
  "jsdom": "^25.0.0",
98
94
  "prettier": "^2.8.8",
@@ -108,15 +104,14 @@
108
104
  "rollup-plugin-typescript2": "^0.29.0",
109
105
  "rollup-plugin-visualizer": "^5.8.3",
110
106
  "sass": "^1.57.1",
111
- "sass-loader": "^12.3.0",
112
107
  "storybook": "^10.4.2",
113
- "style-loader": "^3.3.1",
114
108
  "typescript": "^5.9.3",
115
109
  "typescript-plugin-css-modules": "^5.0.2",
110
+ "vite": "^6",
116
111
  "vitest": "^4.0.18"
117
112
  },
118
113
  "publishConfig": {
119
114
  "access": "public"
120
115
  },
121
- "gitHead": "0a85ef817bcc450722ab887be98fc4ea335e017e"
116
+ "gitHead": "083814ceecc8fa2672930b9ffbf21b544a8b89c8"
122
117
  }
@@ -8,7 +8,7 @@ import React, {
8
8
  import { useExpand } from '../../hooks/useExpand/useExpand';
9
9
  import { Button, ButtonContext } from '../Buttons';
10
10
  import { IconName } from '../Icons';
11
- import classes from './Accordion.scss';
11
+ import classes from './Accordion.module.scss';
12
12
  import {
13
13
  AccordionItem,
14
14
  type AccordionItemProps,
@@ -2,7 +2,7 @@ import clsx from 'clsx';
2
2
  import React from 'react';
3
3
  import { Button, ButtonContext } from '../../Buttons';
4
4
  import { IconName } from '../../Icons';
5
- import classes from './AccordionItem.scss';
5
+ import classes from './AccordionItem.module.scss';
6
6
 
7
7
  export interface AccordionItemProps {
8
8
  header: JSX.Element;
@@ -12,7 +12,7 @@ import type {
12
12
  ContextActionData,
13
13
  NavigationActionData,
14
14
  } from '../Actions.models';
15
- import classes from './Action.scss';
15
+ import classes from './Action.module.scss';
16
16
 
17
17
  export interface ActionProps {
18
18
  /** Action to perform */
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import { useBusy } from '../../hooks/useBusy/useBusy';
4
4
  import { Action } from './Action/Action';
5
5
  import type { ActionData, ContextActionData } from './Actions.models';
6
- import classes from './Actions.scss';
6
+ import classes from './Actions.module.scss';
7
7
 
8
8
  export interface ActionsProps {
9
9
  /** Array of Actions to be rendered */
@@ -0,0 +1,46 @@
1
+ /**
2
+ * The corner of the wrapped component that the badge attaches to.
3
+ */
4
+ export type BadgePosition =
5
+ | 'top-left'
6
+ | 'top-right'
7
+ | 'bottom-left'
8
+ | 'bottom-right';
9
+
10
+ export interface BadgeProps {
11
+ /**
12
+ * The value shown inside the badge, typically a notification counter.
13
+ * When `null`, `undefined` or an empty string, the badge is not rendered
14
+ * (only the children are shown).
15
+ */
16
+ content?: string | number;
17
+ /**
18
+ * The corner of the wrapped component the badge attaches to.
19
+ *
20
+ * @default 'top-right'
21
+ */
22
+ position?: BadgePosition;
23
+ /**
24
+ * When `true`, the badge sits on the corner and half-overflows outside the
25
+ * bounds of the wrapped component (typical for notification counters). When
26
+ * `false`, the badge sits flush inside the corner.
27
+ *
28
+ * @default true
29
+ */
30
+ overlap?: boolean;
31
+ /**
32
+ * Caps a numeric `content`. When the number is greater than `max`, `${max}+`
33
+ * is displayed (e.g. `max={99}` renders `99+` for `100`). Ignored when
34
+ * `content` is a string.
35
+ */
36
+ max?: number;
37
+ /**
38
+ * The element the badge attaches to. The badge is positioned relative to
39
+ * this content.
40
+ */
41
+ children?: React.ReactNode;
42
+ /** Value for the `data-test-id` attribute on the badge element. */
43
+ dataTestId?: string;
44
+ /** CSS Class name for additional styles. */
45
+ className?: string;
46
+ }
@@ -0,0 +1,62 @@
1
+ @import '../../styles/common.scss';
2
+
3
+ .container {
4
+ @include boxSizing;
5
+
6
+ position: relative;
7
+ display: inline-flex;
8
+ }
9
+
10
+ .badge {
11
+ position: absolute;
12
+ z-index: 1;
13
+
14
+ display: inline-flex;
15
+ align-items: center;
16
+ justify-content: center;
17
+
18
+ height: 18px;
19
+ min-width: 18px;
20
+ padding: 0 6px;
21
+ border-radius: 9px;
22
+
23
+ background-color: var(--mosaic-primary);
24
+ color: #fff;
25
+
26
+ font-size: 11px;
27
+ white-space: nowrap;
28
+ pointer-events: none;
29
+
30
+ &.topRight {
31
+ top: 0;
32
+ right: 0;
33
+ }
34
+ &.topLeft {
35
+ top: 0;
36
+ left: 0;
37
+ }
38
+ &.bottomRight {
39
+ right: 0;
40
+ bottom: 0;
41
+ }
42
+ &.bottomLeft {
43
+ bottom: 0;
44
+ left: 0;
45
+ }
46
+
47
+ // Sit ON the corner, half-overflowing the parent bounds (notification style).
48
+ &.overlap {
49
+ &.topRight {
50
+ transform: translate(50%, -50%);
51
+ }
52
+ &.topLeft {
53
+ transform: translate(-50%, -50%);
54
+ }
55
+ &.bottomRight {
56
+ transform: translate(50%, 50%);
57
+ }
58
+ &.bottomLeft {
59
+ transform: translate(-50%, 50%);
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,40 @@
1
+ import { render } from '@testing-library/react';
2
+ import React from 'react';
3
+ import { describe, expect, it } from 'vitest';
4
+ import { Badge } from './Badge';
5
+
6
+ describe('Badge', () => {
7
+ it('renders the component without crashing', () => {
8
+ const { container } = render(<Badge content={5}>child</Badge>);
9
+ expect(container.querySelector('.badge-container')).toBeInTheDocument();
10
+ });
11
+
12
+ it('renders the children', () => {
13
+ const { getByText } = render(
14
+ <Badge content={5}>
15
+ <span>icon</span>
16
+ </Badge>,
17
+ );
18
+ expect(getByText('icon')).toBeInTheDocument();
19
+ });
20
+
21
+ it('displays the content', () => {
22
+ const { container } = render(<Badge content={5} />);
23
+ expect(container.querySelector('.badge')?.textContent).toBe('5');
24
+ });
25
+
26
+ it('caps numeric content with max', () => {
27
+ const { container } = render(<Badge content={1000} max={99} />);
28
+ expect(container.querySelector('.badge')?.textContent).toBe('99+');
29
+ });
30
+
31
+ it('does not render the badge when content is empty', () => {
32
+ const { container } = render(<Badge content="">child</Badge>);
33
+ expect(container.querySelector('.badge')).not.toBeInTheDocument();
34
+ });
35
+
36
+ it('applies the position class', () => {
37
+ const { container } = render(<Badge content={1} position="bottom-left" />);
38
+ expect(container.querySelector('.bottomLeft')).toBeInTheDocument();
39
+ });
40
+ });
@@ -0,0 +1,43 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import React from 'react';
3
+ import { Badge } from './Badge';
4
+
5
+ const SampleBox: React.FC = () => (
6
+ <div
7
+ style={{
8
+ width: 64,
9
+ height: 64,
10
+ borderRadius: 8,
11
+ backgroundColor: '#e0e0e0',
12
+ }}
13
+ />
14
+ );
15
+
16
+ const meta: Meta<typeof Badge> = {
17
+ title: 'Other Components/Badge',
18
+ component: Badge,
19
+ decorators: [
20
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
21
+ (Story) => (
22
+ <div style={{ padding: 40 }}>
23
+ <Story />
24
+ </div>
25
+ ),
26
+ ],
27
+ args: {
28
+ content: 5,
29
+ position: 'top-right',
30
+ children: <SampleBox />,
31
+ },
32
+ };
33
+ export default meta;
34
+
35
+ export const Default: StoryObj<typeof Badge> = {};
36
+
37
+ export const MultiDigitCapped: StoryObj<typeof Badge> = {
38
+ args: { content: 1000, max: 99 },
39
+ };
40
+
41
+ export const BottomLeftFlush: StoryObj<typeof Badge> = {
42
+ args: { position: 'bottom-left', overlap: false },
43
+ };
@@ -0,0 +1,59 @@
1
+ import clsx from 'clsx';
2
+ import React from 'react';
3
+ import type { BadgePosition, BadgeProps } from './Badge.model';
4
+ import classes from './Badge.scss';
5
+
6
+ const positionClasses: Record<BadgePosition, string> = {
7
+ 'top-left': classes.topLeft,
8
+ 'top-right': classes.topRight,
9
+ 'bottom-left': classes.bottomLeft,
10
+ 'bottom-right': classes.bottomRight,
11
+ };
12
+
13
+ /**
14
+ * A small badge that attaches to a corner of the element it wraps, typically
15
+ * used to display a notification counter.
16
+ *
17
+ * @example
18
+ * <Badge content={5} position="top-right">
19
+ * <Icons icon={IconName.Bell} />
20
+ * </Badge>
21
+ */
22
+ export const Badge: React.FC<BadgeProps> = ({
23
+ content,
24
+ position = 'top-right',
25
+ overlap = true,
26
+ max,
27
+ children,
28
+ dataTestId,
29
+ className = '',
30
+ }) => {
31
+ const displayContent =
32
+ typeof content === 'number' && typeof max === 'number' && content > max
33
+ ? `${max}+`
34
+ : content;
35
+
36
+ const hasContent =
37
+ displayContent !== undefined &&
38
+ displayContent !== null &&
39
+ displayContent !== '';
40
+
41
+ return (
42
+ <span className={clsx(classes.container, 'badge-container', className)}>
43
+ {children}
44
+ {hasContent && (
45
+ <span
46
+ className={clsx(
47
+ classes.badge,
48
+ positionClasses[position],
49
+ overlap && classes.overlap,
50
+ 'badge',
51
+ )}
52
+ data-test-id={dataTestId ?? 'badge'}
53
+ >
54
+ {displayContent}
55
+ </span>
56
+ )}
57
+ </span>
58
+ );
59
+ };
@@ -0,0 +1,2 @@
1
+ export { Badge } from './Badge';
2
+ export type { BadgePosition, BadgeProps } from './Badge.model';
@@ -9,7 +9,7 @@ import type {
9
9
  ContextButtonProps,
10
10
  NavigationButtonProps,
11
11
  } from './Button.model';
12
- import classes from './Button.scss';
12
+ import classes from './Button.module.scss';
13
13
 
14
14
  const ButtonElement: React.ForwardRefRenderFunction<
15
15
  HTMLButtonElement | HTMLAnchorElement,
@@ -9,7 +9,7 @@ import type {
9
9
  CompositeJsButtonProps,
10
10
  CompositeNavigationButtonProps,
11
11
  } from './CompositeButton.model';
12
- import classes from './CompositeButton.scss';
12
+ import classes from './CompositeButton.module.scss';
13
13
 
14
14
  /**
15
15
  * Button which can render an text together with an icon.
@@ -8,7 +8,7 @@ import type {
8
8
  TextContextButtonProps,
9
9
  TextNavigationButtonProps,
10
10
  } from './TextButton.model';
11
- import classes from './TextButton.scss';
11
+ import classes from './TextButton.module.scss';
12
12
 
13
13
  /**
14
14
  * Button which can render a text string.
@@ -1,6 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
2
  import React, { useState } from 'react';
3
- import classes from '../../../.storybook/static/css/confirm-dialog.scss';
3
+ import classes from '../../../.storybook/static/css/confirm-dialog.module.scss';
4
4
  import { useExpand } from '../../hooks/useExpand/useExpand';
5
5
  import { Icons } from '../Icons/Icons';
6
6
  import { IconName } from '../Icons/Icons.models';
@@ -8,7 +8,7 @@ import type {
8
8
  ConfirmationMode,
9
9
  ConfirmationPlacement,
10
10
  } from './ConfirmDialog.models';
11
- import classes from './ConfirmDialog.scss';
11
+ import classes from './ConfirmDialog.module.scss';
12
12
 
13
13
  // Popper needs useState not useRef to know when the state of the component changes. More info here: https://www.youtube.com/watch?v=cIUfTktVZRM
14
14
  interface useConfirmationDelayProps {
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import Calendar from 'react-calendar';
4
4
  import { noop } from '../../../helpers/utils';
5
5
  import { IconName, Icons } from '../../Icons';
6
- import classes from './DatePicker.scss';
6
+ import classes from './DatePicker.module.scss';
7
7
 
8
8
  export interface DatePickerProps {
9
9
  /** Current Value */
@@ -3,7 +3,7 @@ import { DateTime } from 'luxon';
3
3
  import React, { useState } from 'react';
4
4
  import { noop } from '../../helpers/utils';
5
5
  import { DatePicker } from './DatePicker/DatePicker';
6
- import classes from './DateTimePicker.scss';
6
+ import classes from './DateTimePicker.module.scss';
7
7
  import { TimePicker } from './TimePicker/TimePicker';
8
8
 
9
9
  export interface DateTimePickerProps {
@@ -8,7 +8,7 @@ import React, {
8
8
  } from 'react';
9
9
  import { noop } from '../../../../helpers/utils';
10
10
  import { IconName, Icons } from '../../../Icons';
11
- import classes from './ScrollColumn.scss';
11
+ import classes from './ScrollColumn.module.scss';
12
12
 
13
13
  export interface ScrollColumnProps<T> {
14
14
  /** Array of options to select from */
@@ -2,7 +2,7 @@ import type { DateTime } from 'luxon';
2
2
  import React, { useState } from 'react';
3
3
  import { noop } from '../../../helpers/utils';
4
4
  import { ScrollColumn } from './ScrollColumn/ScrollColumn';
5
- import classes from './TimePicker.scss';
5
+ import classes from './TimePicker.module.scss';
6
6
 
7
7
  export interface TimePickerProps {
8
8
  /** Current value */
@@ -14,7 +14,7 @@ import { uuid } from '../../utils/GenerateId';
14
14
  import type { ActionData } from '../Actions';
15
15
  import type { ObjectSchemaDefinition } from '../FormStation';
16
16
  import type { DynamicListColumn } from './DynamicDataList.model';
17
- import classes from './DynamicDataList.scss';
17
+ import classes from './DynamicDataList.module.scss';
18
18
  import {
19
19
  DynamicListDataEntry,
20
20
  DynamicListDataEntryMode,
@@ -14,7 +14,7 @@ import { Button, ButtonContext } from '../../Buttons';
14
14
  import type { ObjectSchemaDefinition } from '../../FormStation';
15
15
  import { IconName, Icons } from '../../Icons';
16
16
  import type { DynamicListColumn } from '../DynamicDataList.model';
17
- import classes from './DynamicListDataEntry.scss';
17
+ import classes from './DynamicListDataEntry.module.scss';
18
18
 
19
19
  export enum DynamicListDataEntryMode {
20
20
  Add,
@@ -2,7 +2,7 @@ import React, { type ChangeEvent } from 'react';
2
2
  import type { DynamicListDataEntryRenderer } from '../../../../DynamicDataList/DynamicDataList.model';
3
3
  import { SingleLineText } from '../../../../FormElements';
4
4
  import type { CreateInputRendererConfig } from '../renderers.model';
5
- import classes from './createInputRenderer.scss';
5
+ import classes from './createInputRenderer.module.scss';
6
6
 
7
7
  /**
8
8
  * Creates a simple component that can be used as an input field
@@ -2,7 +2,7 @@ import React, { type ChangeEvent } from 'react';
2
2
  import type { DynamicListDataEntryRenderer } from '../../../../DynamicDataList/DynamicDataList.model';
3
3
  import { Select } from '../../../../FormElements';
4
4
  import type { CreateSelectRendererConfig } from '../renderers.model';
5
- import classes from './createSelectRenderer.scss';
5
+ import classes from './createSelectRenderer.module.scss';
6
6
 
7
7
  /**
8
8
  * Creates a simple component that can be used as an input field
@@ -3,7 +3,7 @@ import React, { type PropsWithChildren } from 'react';
3
3
  import { useResize } from '../../../hooks/useResize/useResize';
4
4
  import type { Data } from '../../../types/data';
5
5
  import type { DynamicListColumn } from '../DynamicDataList.model';
6
- import classes from './DynamicListHeader.scss';
6
+ import classes from './DynamicListHeader.module.scss';
7
7
 
8
8
  // TODO: Remove this data type, generic should actually be column type
9
9
  export interface DynamicListHeaderProps<T extends Data> {
@@ -9,7 +9,7 @@ import { Button, ButtonContext } from '../../Buttons';
9
9
  import { IconName, Icons } from '../../Icons';
10
10
  import { InlineMenu } from '../../InlineMenu';
11
11
  import type { DynamicListColumn } from '../DynamicDataList.model';
12
- import classes from './DynamicListRow.scss';
12
+ import classes from './DynamicListRow.module.scss';
13
13
 
14
14
  export interface DynamicListRowProps<T extends Data> {
15
15
  /** The column definition */
@@ -3,7 +3,7 @@ import React, { type PropsWithChildren } from 'react';
3
3
  import { MessageBar, type MessageBarProps } from '../MessageBar';
4
4
  import { PageHeader, type PageHeaderProps } from '../PageHeader';
5
5
  import type { StationError } from '../models';
6
- import classes from './EmptyStation.scss';
6
+ import classes from './EmptyStation.module.scss';
7
7
 
8
8
  export type EmptyStationProps = PageHeaderProps & {
9
9
  /** If set, creates a MessageBar component with an 'error' type message */
@@ -4,7 +4,7 @@ import type { Data } from '../../../../types';
4
4
  import { Button, ButtonContext } from '../../../Buttons';
5
5
  import { IconName } from '../../../Icons';
6
6
  import type { BulkEditFieldConfig } from '../BulkEdit.model';
7
- import classes from './FieldWrapper.scss';
7
+ import classes from './FieldWrapper.module.scss';
8
8
 
9
9
  interface FieldWrapperProps {
10
10
  name: string;
@@ -36,7 +36,7 @@ import type {
36
36
  QuickEditConfig,
37
37
  QuickEditRegistration,
38
38
  } from './Explorer.model';
39
- import classes from './Explorer.scss';
39
+ import classes from './Explorer.module.scss';
40
40
  import { useQuickEdit } from './QuickEdit/useQuickEdit';
41
41
  import { useActions } from './helpers/useActions';
42
42
  import { useDataProvider } from './helpers/useDataProvider';
@@ -262,13 +262,7 @@ export const Explorer = React.forwardRef(function Explorer<T extends Data>(
262
262
  listRef.current?.resetSelection();
263
263
  }, []);
264
264
 
265
- const {
266
- activeFilters,
267
- Filters,
268
- filtersVisible,
269
- toggleFiltersVisible,
270
- collapseFilters,
271
- } = useFilters<T>({
265
+ const { activeFilters, Filters, collapseFilters } = useFilters<T>({
272
266
  stationKey,
273
267
  globalStateOptions,
274
268
  filterOptions,
@@ -416,8 +410,6 @@ export const Explorer = React.forwardRef(function Explorer<T extends Data>(
416
410
  quickEditAction,
417
411
  bulkEditAction,
418
412
  openBulkActionsOnStart,
419
- filtersVisible,
420
- hasFilters: filterOptions !== undefined,
421
413
  resultCount,
422
414
  activeFilterCount: Object.keys(activeFilters).length,
423
415
  itemSelection,
@@ -426,7 +418,6 @@ export const Explorer = React.forwardRef(function Explorer<T extends Data>(
426
418
  setStationMessage,
427
419
  onBulkActionsToggled,
428
420
  setIsBulkOpen,
429
- toggleFiltersVisible,
430
421
  closeBulkEdit,
431
422
  });
432
423
 
@@ -461,51 +452,45 @@ export const Explorer = React.forwardRef(function Explorer<T extends Data>(
461
452
  />
462
453
  {StationMessage}
463
454
  {Filters}
464
- <div
465
- className={clsx({
466
- [classes.filtersHidden]: !filtersVisible,
467
- })}
468
- >
469
- <List<T>
470
- ref={listRef}
471
- columns={columns}
472
- data={data}
473
- isLoading={isLoading}
474
- isError={Boolean(stationMessage?.type === 'error')}
475
- handleRetry={false}
476
- minimumWidth={minimumWidth}
477
- columnGap={columnGap}
478
- rowGap={rowGap}
479
- headerRowHeight={headerRowHeight}
480
- listRowHeight={listRowHeight}
481
- listRowActionSize={listRowActionSize}
482
- headerRowActionSize={headerRowActionSize}
483
- horizontalTextAlign={horizontalTextAlign}
484
- verticalTextAlign={verticalTextAlign}
485
- textWrap={textWrap}
486
- keyProperty={keyProperty}
487
- showActionButton={
488
- Boolean(generateItemLink) ||
489
- Boolean(onItemClicked) ||
490
- listSelectionMode !== ListSelectMode.None
491
- } // or hard code to `true`?
492
- selectionMode={listSelectionMode}
493
- enableSelectAll={enableSelectAll}
494
- enableSelectAllDeselect={enableSelectAll && !hasMoreData}
495
- loadingTriggerOffset={loadingTriggerOffset}
496
- defaultSortOrder={sortOrder}
497
- generateItemLink={!isQuickEditMode ? generateItemLink : undefined}
498
- onItemClicked={onItemClickedHandler}
499
- onItemSelected={itemSelectedHandler}
500
- onRequestMoreData={onRequestMoreData}
501
- onSortChanged={(sortData: SortData<T>) => {
502
- listRef.current?.resetSelection();
503
- onSortChanged(sortData);
504
- setSortOrder(sortData);
505
- }}
506
- inlineMenuActions={inlineMenuActions && inlineMenuActionsHandler}
507
- />
508
- </div>
455
+ <List<T>
456
+ ref={listRef}
457
+ columns={columns}
458
+ data={data}
459
+ isLoading={isLoading}
460
+ isError={Boolean(stationMessage?.type === 'error')}
461
+ handleRetry={false}
462
+ minimumWidth={minimumWidth}
463
+ columnGap={columnGap}
464
+ rowGap={rowGap}
465
+ headerRowHeight={headerRowHeight}
466
+ listRowHeight={listRowHeight}
467
+ listRowActionSize={listRowActionSize}
468
+ headerRowActionSize={headerRowActionSize}
469
+ horizontalTextAlign={horizontalTextAlign}
470
+ verticalTextAlign={verticalTextAlign}
471
+ textWrap={textWrap}
472
+ keyProperty={keyProperty}
473
+ showActionButton={
474
+ Boolean(generateItemLink) ||
475
+ Boolean(onItemClicked) ||
476
+ listSelectionMode !== ListSelectMode.None
477
+ } // or hard code to `true`?
478
+ selectionMode={listSelectionMode}
479
+ enableSelectAll={enableSelectAll}
480
+ enableSelectAllDeselect={enableSelectAll && !hasMoreData}
481
+ loadingTriggerOffset={loadingTriggerOffset}
482
+ defaultSortOrder={sortOrder}
483
+ generateItemLink={!isQuickEditMode ? generateItemLink : undefined}
484
+ onItemClicked={onItemClickedHandler}
485
+ onItemSelected={itemSelectedHandler}
486
+ onRequestMoreData={onRequestMoreData}
487
+ onSortChanged={(sortData: SortData<T>) => {
488
+ listRef.current?.resetSelection();
489
+ onSortChanged(sortData);
490
+ setSortOrder(sortData);
491
+ }}
492
+ inlineMenuActions={inlineMenuActions && inlineMenuActionsHandler}
493
+ />
509
494
  </div>
510
495
  {isQuickEditMode && (
511
496
  <QuickEditContextProvider>{quickEditStation}</QuickEditContextProvider>