@wix/patterns 1.366.0 → 1.370.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 (678) hide show
  1. package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
  2. package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
  3. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  4. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  5. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  6. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  7. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
  8. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  9. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  10. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  11. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.js +6 -3
  12. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
  13. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.js +25 -30
  14. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.js.map +1 -1
  15. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  16. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  17. package/dist/cjs/components/CollectionToolbar/CollectionToolbarActionsGroupProps.js.map +1 -1
  18. package/dist/cjs/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.js +66 -17
  19. package/dist/cjs/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.js.map +1 -1
  20. package/dist/cjs/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.js +22 -14
  21. package/dist/cjs/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.js.map +1 -1
  22. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  23. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  24. package/dist/cjs/components/CollectionToolbar/ToolbarOverflowMenu.js +329 -0
  25. package/dist/cjs/components/CollectionToolbar/ToolbarOverflowMenu.js.map +1 -0
  26. package/dist/cjs/components/CollectionToolbar/useToolbarOverflowItems.js +85 -0
  27. package/dist/cjs/components/CollectionToolbar/useToolbarOverflowItems.js.map +1 -0
  28. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  29. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  30. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  31. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  32. package/dist/cjs/components/CtaProps.js.map +1 -1
  33. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  34. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  35. package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
  36. package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
  37. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  38. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  39. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  40. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  41. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  42. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  43. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +3 -3
  44. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  45. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.js +59 -0
  46. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.js.map +1 -0
  47. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css +4 -0
  48. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +23 -0
  49. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -0
  50. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.uni.driver.js +20 -0
  51. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.uni.driver.js.map +1 -0
  52. package/dist/cjs/components/EditableTable/cellTypes/email/View.js +23 -0
  53. package/dist/cjs/components/EditableTable/cellTypes/email/View.js.map +1 -0
  54. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css +4 -0
  55. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +23 -0
  56. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -0
  57. package/dist/cjs/components/EditableTable/cellTypes/email/View.uni.driver.js +12 -0
  58. package/dist/cjs/components/EditableTable/cellTypes/email/View.uni.driver.js.map +1 -0
  59. package/dist/cjs/components/EditableTable/cellTypes/email/index.js +31 -0
  60. package/dist/cjs/components/EditableTable/cellTypes/email/index.js.map +1 -0
  61. package/dist/cjs/components/EditableTable/cellTypes/index.js +5 -1
  62. package/dist/cjs/components/EditableTable/cellTypes/index.js.map +1 -1
  63. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.js +4 -9
  64. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.js.map +1 -1
  65. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  66. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  67. package/dist/cjs/components/EditableTable/cellTypes/number/View.js +4 -5
  68. package/dist/cjs/components/EditableTable/cellTypes/number/View.js.map +1 -1
  69. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  70. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  71. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.js +79 -0
  72. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.js.map +1 -0
  73. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css +4 -0
  74. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +23 -0
  75. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -0
  76. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.uni.driver.js +20 -0
  77. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.uni.driver.js.map +1 -0
  78. package/dist/cjs/components/EditableTable/cellTypes/object/View.js +30 -0
  79. package/dist/cjs/components/EditableTable/cellTypes/object/View.js.map +1 -0
  80. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css +4 -0
  81. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +23 -0
  82. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -0
  83. package/dist/cjs/components/EditableTable/cellTypes/object/View.uni.driver.js +12 -0
  84. package/dist/cjs/components/EditableTable/cellTypes/object/View.uni.driver.js.map +1 -0
  85. package/dist/cjs/components/EditableTable/cellTypes/object/index.js +45 -0
  86. package/dist/cjs/components/EditableTable/cellTypes/object/index.js.map +1 -0
  87. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  88. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  89. package/dist/cjs/components/EditableTable/cellTypes/select/View.st.css.js +3 -3
  90. package/dist/cjs/components/EditableTable/cellTypes/select/View.st.css.js.map +1 -1
  91. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  92. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  93. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +3 -3
  94. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  95. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  96. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  97. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  98. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  99. package/dist/cjs/components/EditableTable/useCellFocusAndEditing.js +15 -0
  100. package/dist/cjs/components/EditableTable/useCellFocusAndEditing.js.map +1 -1
  101. package/dist/cjs/components/EditableTable/useKeyboardNavigation.js +10 -0
  102. package/dist/cjs/components/EditableTable/useKeyboardNavigation.js.map +1 -1
  103. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  104. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  105. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  106. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  107. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  108. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  109. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  110. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  111. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  112. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  113. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  114. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  115. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  116. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  117. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  118. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  119. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  120. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  121. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  122. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  123. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  124. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  125. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  126. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  127. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  128. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  129. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  130. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  131. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  132. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  133. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  134. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  135. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  136. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  137. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  138. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  139. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  140. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  141. package/dist/cjs/components/TableGridSwitchButton/TableGridSwitchButton.js +14 -38
  142. package/dist/cjs/components/TableGridSwitchButton/TableGridSwitchButton.js.map +1 -1
  143. package/dist/cjs/components/TableGridSwitchButton/layoutConfig.js +34 -0
  144. package/dist/cjs/components/TableGridSwitchButton/layoutConfig.js.map +1 -0
  145. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  146. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  147. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  148. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  149. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  150. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  151. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  152. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  153. package/dist/cjs/components/common.st.css.js +4 -4
  154. package/dist/cjs/components/common.st.css.js.map +1 -1
  155. package/dist/cjs/hooks/useStaticListFilterCollection.js +2 -1
  156. package/dist/cjs/hooks/useStaticListFilterCollection.js.map +1 -1
  157. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  158. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  159. package/dist/cjs/state/EditableTable/CellInteractionState.js +65 -0
  160. package/dist/cjs/state/EditableTable/CellInteractionState.js.map +1 -1
  161. package/dist/cjs/state/EditableTable/types.js.map +1 -1
  162. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  163. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  164. package/dist/cjs/state/TableState.js +2 -0
  165. package/dist/cjs/state/TableState.js.map +1 -1
  166. package/dist/cjs/state/Toolbar/ToolbarResponsiveState.js +38 -4
  167. package/dist/cjs/state/Toolbar/ToolbarResponsiveState.js.map +1 -1
  168. package/dist/cjs/state/Toolbar/computeResponsiveTargetState.js +56 -17
  169. package/dist/cjs/state/Toolbar/computeResponsiveTargetState.js.map +1 -1
  170. package/dist/cjs/state/Toolbar/toolbarResponsiveConstants.js +5 -1
  171. package/dist/cjs/state/Toolbar/toolbarResponsiveConstants.js.map +1 -1
  172. package/dist/cjs/styles.global.css +1 -1
  173. package/dist/cjs/version.js +1 -1
  174. package/dist/cjs/version.js.map +1 -1
  175. package/dist/docs/AI Assistant.md +171 -0
  176. package/dist/docs/ActionCellProps.md +40 -0
  177. package/dist/docs/ActionSubItem.md +24 -0
  178. package/dist/docs/Allow Users to Add Extended Fields.md +194 -0
  179. package/dist/docs/AutoCompleteFilter.md +276 -0
  180. package/dist/docs/BulkActionModalRenderProp.md +22 -0
  181. package/dist/docs/BulkSelectState.md +18 -0
  182. package/dist/docs/Category.md +19 -0
  183. package/dist/docs/CollectionEmptyState.md +240 -0
  184. package/dist/docs/CollectionErrorState.md +107 -0
  185. package/dist/docs/CollectionNoResultsState.md +116 -0
  186. package/dist/docs/CollectionOptimisticActions.md +1074 -0
  187. package/dist/docs/CollectionPage.Content.md +154 -0
  188. package/dist/docs/CollectionPage.Header.md +216 -0
  189. package/dist/docs/CollectionPage.md +183 -0
  190. package/dist/docs/CollectionPremiumEmptyState.md +115 -0
  191. package/dist/docs/CollectionSearch.md +345 -0
  192. package/dist/docs/CollectionSection.md +16 -0
  193. package/dist/docs/CollectionState.md +29 -0
  194. package/dist/docs/CollectionSubToolbar.md +14 -0
  195. package/dist/docs/CollectionToolbar.md +18 -0
  196. package/dist/docs/Component Tests.md +191 -0
  197. package/dist/docs/ComputedQuery.md +45 -0
  198. package/dist/docs/CtaBaseProps.md +19 -0
  199. package/dist/docs/CustomColumns.md +916 -0
  200. package/dist/docs/CustomFieldsViewWidget.md +191 -0
  201. package/dist/docs/CustomFieldsWidget.md +635 -0
  202. package/dist/docs/Data Extension Overview.md +85 -0
  203. package/dist/docs/DataResultRaw.md +25 -0
  204. package/dist/docs/DateRangeFilter.md +202 -0
  205. package/dist/docs/Display Extended Fields.md +244 -0
  206. package/dist/docs/Enable Filters for Extended Fields.md +243 -0
  207. package/dist/docs/EntityPage.AdditionalContent.md +25 -0
  208. package/dist/docs/EntityPage.Card.md +250 -0
  209. package/dist/docs/EntityPage.Content.md +24 -0
  210. package/dist/docs/EntityPage.Header.md +260 -0
  211. package/dist/docs/EntityPage.MainContent.md +24 -0
  212. package/dist/docs/EntityPage.Slots.md +75 -0
  213. package/dist/docs/EntityPage.md +1030 -0
  214. package/dist/docs/EntityPageState.md +23 -0
  215. package/dist/docs/Explore Apps.md +170 -0
  216. package/dist/docs/ExportTo.md +894 -0
  217. package/dist/docs/Filter Overview.md +448 -0
  218. package/dist/docs/FilterProps.md +26 -0
  219. package/dist/docs/FormPageState.md +17 -0
  220. package/dist/docs/Grid Sections.md +170 -0
  221. package/dist/docs/Grid.md +598 -0
  222. package/dist/docs/GridDragAndDrop.md +131 -0
  223. package/dist/docs/GridFolders.md +259 -0
  224. package/dist/docs/GridFoldersSection.md +16 -0
  225. package/dist/docs/GridFoldersState.md +20 -0
  226. package/dist/docs/GridSectionsProp.md +22 -0
  227. package/dist/docs/GridState.md +22 -0
  228. package/dist/docs/Highlighted Search.md +114 -0
  229. package/dist/docs/InMemoryBackend.md +81 -0
  230. package/dist/docs/Indeterminate.md +273 -0
  231. package/dist/docs/Internal Scroll.md +236 -0
  232. package/dist/docs/More Actions.md +1015 -0
  233. package/dist/docs/MoreActionsItem.md +33 -0
  234. package/dist/docs/MultiAutoInlineCheckboxFilter.md +850 -0
  235. package/dist/docs/MultiBulkActionToolbar.md +1174 -0
  236. package/dist/docs/MultiInlineCheckboxFilter.md +871 -0
  237. package/dist/docs/MultiLevelSorting.md +376 -0
  238. package/dist/docs/MultiSelectCheckboxFilter.md +369 -0
  239. package/dist/docs/MultiSelectCollectionFilter.md +218 -0
  240. package/dist/docs/NestedTable.md +1101 -0
  241. package/dist/docs/NestedTableLevel.md +24 -0
  242. package/dist/docs/NestedTableNodeState.md +23 -0
  243. package/dist/docs/NestedTableOptimisticActions.md +21 -0
  244. package/dist/docs/NestedTableState.md +21 -0
  245. package/dist/docs/Next.js.md +143 -0
  246. package/dist/docs/NumberRangeFilter.md +230 -0
  247. package/dist/docs/OperatorFilterPicker.md +195 -0
  248. package/dist/docs/PageWrapper.md +50 -0
  249. package/dist/docs/PatternsReactRoute.md +31 -0
  250. package/dist/docs/PatternsReactRouter.md +24 -0
  251. package/dist/docs/PickerContent.md +129 -0
  252. package/dist/docs/PickerModal.md +680 -0
  253. package/dist/docs/PickerStandalone.md +332 -0
  254. package/dist/docs/PrimaryActionButton.md +323 -0
  255. package/dist/docs/PrimaryActions.md +173 -0
  256. package/dist/docs/PrimaryPageButton.md +140 -0
  257. package/dist/docs/RadioGroupFilter.md +73 -0
  258. package/dist/docs/RequestId.md +58 -0
  259. package/dist/docs/SecondaryActions.md +175 -0
  260. package/dist/docs/SettingsPage.AdditionalContent.md +25 -0
  261. package/dist/docs/SettingsPage.Card.md +246 -0
  262. package/dist/docs/SettingsPage.Content.md +24 -0
  263. package/dist/docs/SettingsPage.Header.md +176 -0
  264. package/dist/docs/SettingsPage.MainContent.md +24 -0
  265. package/dist/docs/SettingsPage.md +680 -0
  266. package/dist/docs/SettingsPageState.md +22 -0
  267. package/dist/docs/SingleSelectFilter.md +401 -0
  268. package/dist/docs/Sled Tests.md +109 -0
  269. package/dist/docs/Sortable Columns.md +250 -0
  270. package/dist/docs/Suggestions.md +370 -0
  271. package/dist/docs/SummaryBar.md +515 -0
  272. package/dist/docs/Table Sections.md +473 -0
  273. package/dist/docs/Table.md +1065 -0
  274. package/dist/docs/TableColumn.md +35 -0
  275. package/dist/docs/TableDragAndDrop.md +502 -0
  276. package/dist/docs/TableFolders.md +419 -0
  277. package/dist/docs/TableFoldersState.md +22 -0
  278. package/dist/docs/TableGridSwitch.md +298 -0
  279. package/dist/docs/TableGridSwitchDragAndDrop.md +170 -0
  280. package/dist/docs/TableGridSwitchFolders.md +446 -0
  281. package/dist/docs/TableGridSwitchFoldersState.md +22 -0
  282. package/dist/docs/TableGridSwitchState.md +23 -0
  283. package/dist/docs/TableSectionsProp.md +22 -0
  284. package/dist/docs/TableState.md +24 -0
  285. package/dist/docs/TableTopNotification.md +314 -0
  286. package/dist/docs/TabsFilter.md +484 -0
  287. package/dist/docs/Tags Overview.md +118 -0
  288. package/dist/docs/Tags.md +718 -0
  289. package/dist/docs/TagsWidget.md +419 -0
  290. package/dist/docs/ToolbarCollectionState.md +19 -0
  291. package/dist/docs/ToolbarFilters.md +1588 -0
  292. package/dist/docs/ToolbarSecondaryActions.md +383 -0
  293. package/dist/docs/ToolbarTitle.md +324 -0
  294. package/dist/docs/View.md +23 -0
  295. package/dist/docs/Views.md +786 -0
  296. package/dist/docs/WidgetsFormProvider.md +61 -0
  297. package/dist/docs/WixPatternsBMProvider.md +31 -0
  298. package/dist/docs/WixPatternsBaseProvider.md +87 -0
  299. package/dist/docs/WixPatternsEssentialsProvider.md +43 -0
  300. package/dist/docs/WixPatternsGizaProvider.md +37 -0
  301. package/dist/docs/WixPatternsProvider.md +68 -0
  302. package/dist/docs/Working with Cache.md +114 -0
  303. package/dist/docs/arrayFilter.md +226 -0
  304. package/dist/docs/bulkActionModal.md +40 -0
  305. package/dist/docs/createNestedTableLevel.md +24 -0
  306. package/dist/docs/createNestedTableSingleEntityLevels.md +20 -0
  307. package/dist/docs/customFilter.md +182 -0
  308. package/dist/docs/dateRangeFilter.md +55 -0
  309. package/dist/docs/deleteSecondaryAction.md +122 -0
  310. package/dist/docs/idNameArrayFilter.md +206 -0
  311. package/dist/docs/index.json +662 -0
  312. package/dist/docs/operatorFilter.md +183 -0
  313. package/dist/docs/stringFilter.md +204 -0
  314. package/dist/docs/stringsArrayFilter.md +118 -0
  315. package/dist/docs/useAmbassadorCollection.md +45 -0
  316. package/dist/docs/useCollection.md +61 -0
  317. package/dist/docs/useCreateCollection.md +32 -0
  318. package/dist/docs/useCreateNestedOptimisticActions.md +21 -0
  319. package/dist/docs/useEntity.md +44 -0
  320. package/dist/docs/useEntityPage.md +57 -0
  321. package/dist/docs/useEntityPageContext.md +28 -0
  322. package/dist/docs/useFilterCollection.md +163 -0
  323. package/dist/docs/useGridCollection.md +58 -0
  324. package/dist/docs/useGridFolders.md +25 -0
  325. package/dist/docs/useItemsSelectionFilter.md +60 -0
  326. package/dist/docs/useNestedTable.md +66 -0
  327. package/dist/docs/useOptimisticActions.md +1288 -0
  328. package/dist/docs/usePatternsNavigate.md +57 -0
  329. package/dist/docs/usePickerContent.md +61 -0
  330. package/dist/docs/usePickerModal.md +68 -0
  331. package/dist/docs/usePickerStandalone.md +56 -0
  332. package/dist/docs/useSelector.md +181 -0
  333. package/dist/docs/useSettingsPage.md +54 -0
  334. package/dist/docs/useSettingsPageContext.md +28 -0
  335. package/dist/docs/useStaticListFilterCollection.md +194 -0
  336. package/dist/docs/useTableCollection.md +58 -0
  337. package/dist/docs/useTableFolders.md +25 -0
  338. package/dist/docs/useTableGridSwitchCollection.md +58 -0
  339. package/dist/docs/useTableGridSwitchFolders.md +25 -0
  340. package/dist/docs/useWidgetsFormContext.md +19 -0
  341. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  342. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  343. package/dist/esm/components/Collapse/Collapse.st.css.js.map +1 -1
  344. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  345. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  346. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  347. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js +3 -1
  348. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
  349. package/dist/esm/components/CollectionToolbar/CollectionToolbar.js +3 -2
  350. package/dist/esm/components/CollectionToolbar/CollectionToolbar.js.map +1 -1
  351. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  352. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  353. package/dist/esm/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.js +39 -6
  354. package/dist/esm/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.js.map +1 -1
  355. package/dist/esm/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.js +2 -1
  356. package/dist/esm/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.js.map +1 -1
  357. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  358. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  359. package/dist/esm/components/CollectionToolbar/ToolbarOverflowMenu.js +110 -0
  360. package/dist/esm/components/CollectionToolbar/ToolbarOverflowMenu.js.map +1 -0
  361. package/dist/esm/components/CollectionToolbar/useToolbarOverflowItems.js +74 -0
  362. package/dist/esm/components/CollectionToolbar/useToolbarOverflowItems.js.map +1 -0
  363. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  364. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  365. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  366. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  367. package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
  368. package/dist/esm/components/EditableTable/EditableCell.st.css.js.map +1 -1
  369. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  370. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  371. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  372. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  373. package/dist/esm/components/EditableTable/cellTypes/email/Edit.js +21 -0
  374. package/dist/esm/components/EditableTable/cellTypes/email/Edit.js.map +1 -0
  375. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css +4 -0
  376. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +15 -0
  377. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -0
  378. package/dist/esm/components/EditableTable/cellTypes/email/Edit.uni.driver.js +13 -0
  379. package/dist/esm/components/EditableTable/cellTypes/email/Edit.uni.driver.js.map +1 -0
  380. package/dist/esm/components/EditableTable/cellTypes/email/View.js +5 -0
  381. package/dist/esm/components/EditableTable/cellTypes/email/View.js.map +1 -0
  382. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css +4 -0
  383. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +15 -0
  384. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -0
  385. package/dist/esm/components/EditableTable/cellTypes/email/View.uni.driver.js +8 -0
  386. package/dist/esm/components/EditableTable/cellTypes/email/View.uni.driver.js.map +1 -0
  387. package/dist/esm/components/EditableTable/cellTypes/email/index.js +22 -0
  388. package/dist/esm/components/EditableTable/cellTypes/email/index.js.map +1 -0
  389. package/dist/esm/components/EditableTable/cellTypes/index.js +5 -1
  390. package/dist/esm/components/EditableTable/cellTypes/index.js.map +1 -1
  391. package/dist/esm/components/EditableTable/cellTypes/number/Edit.js +2 -5
  392. package/dist/esm/components/EditableTable/cellTypes/number/Edit.js.map +1 -1
  393. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  394. package/dist/esm/components/EditableTable/cellTypes/number/View.js +2 -2
  395. package/dist/esm/components/EditableTable/cellTypes/number/View.js.map +1 -1
  396. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
  397. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  398. package/dist/esm/components/EditableTable/cellTypes/object/Edit.js +39 -0
  399. package/dist/esm/components/EditableTable/cellTypes/object/Edit.js.map +1 -0
  400. package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css +4 -0
  401. package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +15 -0
  402. package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -0
  403. package/dist/esm/components/EditableTable/cellTypes/object/Edit.uni.driver.js +13 -0
  404. package/dist/esm/components/EditableTable/cellTypes/object/Edit.uni.driver.js.map +1 -0
  405. package/dist/esm/components/EditableTable/cellTypes/object/View.js +5 -0
  406. package/dist/esm/components/EditableTable/cellTypes/object/View.js.map +1 -0
  407. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css +4 -0
  408. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +15 -0
  409. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -0
  410. package/dist/esm/components/EditableTable/cellTypes/object/View.uni.driver.js +8 -0
  411. package/dist/esm/components/EditableTable/cellTypes/object/View.uni.driver.js.map +1 -0
  412. package/dist/esm/components/EditableTable/cellTypes/object/index.js +47 -0
  413. package/dist/esm/components/EditableTable/cellTypes/object/index.js.map +1 -0
  414. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  415. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  416. package/dist/esm/components/EditableTable/cellTypes/select/View.st.css.js +2 -2
  417. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  418. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  419. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  420. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  421. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  422. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  423. package/dist/esm/components/EditableTable/useCellFocusAndEditing.js +15 -1
  424. package/dist/esm/components/EditableTable/useCellFocusAndEditing.js.map +1 -1
  425. package/dist/esm/components/EditableTable/useKeyboardNavigation.js +10 -0
  426. package/dist/esm/components/EditableTable/useKeyboardNavigation.js.map +1 -1
  427. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  428. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  429. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  430. package/dist/esm/components/Fade/Fade.st.css.js.map +1 -1
  431. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  432. package/dist/esm/components/Heading/Heading.st.css.js.map +1 -1
  433. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  434. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  435. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  436. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  437. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  438. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  439. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  440. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  441. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  442. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  443. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  444. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  445. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  446. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  447. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  448. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  449. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  450. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  451. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  452. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  453. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  454. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  455. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  456. package/dist/esm/components/TableGridSwitchButton/TableGridSwitchButton.js +2 -12
  457. package/dist/esm/components/TableGridSwitchButton/TableGridSwitchButton.js.map +1 -1
  458. package/dist/esm/components/TableGridSwitchButton/layoutConfig.js +14 -0
  459. package/dist/esm/components/TableGridSwitchButton/layoutConfig.js.map +1 -0
  460. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  461. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  462. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  463. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  464. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  465. package/dist/esm/components/common.st.css.js +2 -2
  466. package/dist/esm/hooks/useStaticListFilterCollection.js +1 -0
  467. package/dist/esm/hooks/useStaticListFilterCollection.js.map +1 -1
  468. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  469. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  470. package/dist/esm/state/EditableTable/CellInteractionState.js +58 -0
  471. package/dist/esm/state/EditableTable/CellInteractionState.js.map +1 -1
  472. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  473. package/dist/esm/state/TableState.js +2 -0
  474. package/dist/esm/state/TableState.js.map +1 -1
  475. package/dist/esm/state/Toolbar/ToolbarResponsiveState.js +40 -5
  476. package/dist/esm/state/Toolbar/ToolbarResponsiveState.js.map +1 -1
  477. package/dist/esm/state/Toolbar/computeResponsiveTargetState.js +46 -18
  478. package/dist/esm/state/Toolbar/computeResponsiveTargetState.js.map +1 -1
  479. package/dist/esm/state/Toolbar/toolbarResponsiveConstants.js +4 -0
  480. package/dist/esm/state/Toolbar/toolbarResponsiveConstants.js.map +1 -1
  481. package/dist/esm/styles.global.css +1 -1
  482. package/dist/esm/version.js +1 -1
  483. package/dist/types/components/Collapse/Collapse.st.css.d.ts.map +1 -1
  484. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +24 -24
  485. package/dist/types/components/CollectionTable/CollectionTableWSRTable.d.ts.map +1 -1
  486. package/dist/types/components/CollectionToolbar/CollectionToolbar.d.ts.map +1 -1
  487. package/dist/types/components/CollectionToolbar/CollectionToolbar.st.css.d.ts.map +1 -1
  488. package/dist/types/components/CollectionToolbar/CollectionToolbar.uni.driver.d.ts +11 -11
  489. package/dist/types/components/CollectionToolbar/CollectionToolbarActionsGroupProps.d.ts +3 -0
  490. package/dist/types/components/CollectionToolbar/CollectionToolbarActionsGroupProps.d.ts.map +1 -1
  491. package/dist/types/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.d.ts +5 -1
  492. package/dist/types/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.d.ts.map +1 -1
  493. package/dist/types/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.d.ts.map +1 -1
  494. package/dist/types/components/CollectionToolbar/SearchOrCustomFilter.st.css.d.ts.map +1 -1
  495. package/dist/types/components/CollectionToolbar/ToolbarOverflowMenu.d.ts +24 -0
  496. package/dist/types/components/CollectionToolbar/ToolbarOverflowMenu.d.ts.map +1 -0
  497. package/dist/types/components/CollectionToolbar/useToolbarOverflowItems.d.ts +17 -0
  498. package/dist/types/components/CollectionToolbar/useToolbarOverflowItems.d.ts.map +1 -0
  499. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
  500. package/dist/types/components/CtaProps.d.ts +1 -1
  501. package/dist/types/components/CustomFieldModal/CustomFieldModal.uni.driver.d.ts +2 -2
  502. package/dist/types/components/CustomFieldsWidget/CustomFieldsWidget.uni.driver.d.ts +3 -3
  503. package/dist/types/components/DropdownFilter/CollectionDropdownFilter.uni.driver.d.ts +1 -1
  504. package/dist/types/components/EditableTable/EditableCell.st.css.d.ts.map +1 -1
  505. package/dist/types/components/EditableTable/cellTypes/email/Edit.d.ts +4 -0
  506. package/dist/types/components/EditableTable/cellTypes/email/Edit.d.ts.map +1 -0
  507. package/dist/types/components/EditableTable/cellTypes/email/Edit.st.css.d.ts +14 -0
  508. package/dist/types/components/EditableTable/cellTypes/email/Edit.st.css.d.ts.map +1 -0
  509. package/dist/types/components/EditableTable/cellTypes/email/Edit.uni.driver.d.ts +22 -0
  510. package/dist/types/components/EditableTable/cellTypes/email/Edit.uni.driver.d.ts.map +1 -0
  511. package/dist/types/components/EditableTable/cellTypes/email/View.d.ts +4 -0
  512. package/dist/types/components/EditableTable/cellTypes/email/View.d.ts.map +1 -0
  513. package/dist/types/components/EditableTable/cellTypes/email/View.st.css.d.ts +14 -0
  514. package/dist/types/components/EditableTable/cellTypes/email/View.st.css.d.ts.map +1 -0
  515. package/dist/types/components/EditableTable/cellTypes/email/View.uni.driver.d.ts +15 -0
  516. package/dist/types/components/EditableTable/cellTypes/email/View.uni.driver.d.ts.map +1 -0
  517. package/dist/types/components/EditableTable/cellTypes/email/index.d.ts +5 -0
  518. package/dist/types/components/EditableTable/cellTypes/email/index.d.ts.map +1 -0
  519. package/dist/types/components/EditableTable/cellTypes/index.d.ts +3 -1
  520. package/dist/types/components/EditableTable/cellTypes/index.d.ts.map +1 -1
  521. package/dist/types/components/EditableTable/cellTypes/number/Edit.d.ts.map +1 -1
  522. package/dist/types/components/EditableTable/cellTypes/number/View.d.ts.map +1 -1
  523. package/dist/types/components/EditableTable/cellTypes/number/View.st.css.d.ts.map +1 -1
  524. package/dist/types/components/EditableTable/cellTypes/object/Edit.d.ts +4 -0
  525. package/dist/types/components/EditableTable/cellTypes/object/Edit.d.ts.map +1 -0
  526. package/dist/types/components/EditableTable/cellTypes/object/Edit.st.css.d.ts +14 -0
  527. package/dist/types/components/EditableTable/cellTypes/object/Edit.st.css.d.ts.map +1 -0
  528. package/dist/types/components/EditableTable/cellTypes/object/Edit.uni.driver.d.ts +22 -0
  529. package/dist/types/components/EditableTable/cellTypes/object/Edit.uni.driver.d.ts.map +1 -0
  530. package/dist/types/components/EditableTable/cellTypes/object/View.d.ts +4 -0
  531. package/dist/types/components/EditableTable/cellTypes/object/View.d.ts.map +1 -0
  532. package/dist/types/components/EditableTable/cellTypes/object/View.st.css.d.ts +14 -0
  533. package/dist/types/components/EditableTable/cellTypes/object/View.st.css.d.ts.map +1 -0
  534. package/dist/types/components/EditableTable/cellTypes/object/View.uni.driver.d.ts +15 -0
  535. package/dist/types/components/EditableTable/cellTypes/object/View.uni.driver.d.ts.map +1 -0
  536. package/dist/types/components/EditableTable/cellTypes/object/index.d.ts +5 -0
  537. package/dist/types/components/EditableTable/cellTypes/object/index.d.ts.map +1 -0
  538. package/dist/types/components/EditableTable/cellTypes/select/Edit.st.css.d.ts.map +1 -1
  539. package/dist/types/components/EditableTable/cellTypes/text/View.st.css.d.ts.map +1 -1
  540. package/dist/types/components/EditableTable/cellTypes/url/View.st.css.d.ts.map +1 -1
  541. package/dist/types/components/EditableTable/useCellFocusAndEditing.d.ts.map +1 -1
  542. package/dist/types/components/EditableTable/useKeyboardNavigation.d.ts.map +1 -1
  543. package/dist/types/components/EntityPage/EntityPagePlain.st.css.d.ts.map +1 -1
  544. package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
  545. package/dist/types/components/FiltersPanel/FiltersPanel.uni.driver.d.ts +4 -4
  546. package/dist/types/components/Grid/Grid.uni.driver.d.ts +13 -13
  547. package/dist/types/components/Grid/GridFolders.uni.driver.d.ts +38 -38
  548. package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts +13 -13
  549. package/dist/types/components/Heading/Heading.st.css.d.ts.map +1 -1
  550. package/dist/types/components/Kanban/Kanban.uni.driver.d.ts +11 -11
  551. package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
  552. package/dist/types/components/MaxHeightText/MaxHeightText.st.css.d.ts.map +1 -1
  553. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +37 -37
  554. package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
  555. package/dist/types/components/PickerContent/PickerContentAdditionalStep.st.css.d.ts.map +1 -1
  556. package/dist/types/components/PickerTableListItem/PickerTableListItem.st.css.d.ts.map +1 -1
  557. package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
  558. package/dist/types/components/SlidingModal/SlidingModal.st.css.d.ts.map +1 -1
  559. package/dist/types/components/SummaryBar/SummaryBar.uni.driver.d.ts +1 -1
  560. package/dist/types/components/Table/Table.uni.driver.d.ts +26 -26
  561. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +37 -37
  562. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +40 -40
  563. package/dist/types/components/TableGridSwitchButton/TableGridSwitchButton.d.ts.map +1 -1
  564. package/dist/types/components/TableGridSwitchButton/layoutConfig.d.ts +9 -0
  565. package/dist/types/components/TableGridSwitchButton/layoutConfig.d.ts.map +1 -0
  566. package/dist/types/components/TabsFilter/TabsFilter.uni.driver.d.ts +1 -1
  567. package/dist/types/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.d.ts.map +1 -1
  568. package/dist/types/hooks/useStaticListFilterCollection.d.ts.map +1 -1
  569. package/dist/types/state/CollectionPage/CollectionPageHeader.st.css.d.ts.map +1 -1
  570. package/dist/types/state/EditableTable/CellInteractionState.d.ts +7 -0
  571. package/dist/types/state/EditableTable/CellInteractionState.d.ts.map +1 -1
  572. package/dist/types/state/EditableTable/types.d.ts +2 -0
  573. package/dist/types/state/EditableTable/types.d.ts.map +1 -1
  574. package/dist/types/state/TableState.d.ts +2 -0
  575. package/dist/types/state/TableState.d.ts.map +1 -1
  576. package/dist/types/state/Toolbar/ToolbarResponsiveState.d.ts +3 -0
  577. package/dist/types/state/Toolbar/ToolbarResponsiveState.d.ts.map +1 -1
  578. package/dist/types/state/Toolbar/computeResponsiveTargetState.d.ts +8 -1
  579. package/dist/types/state/Toolbar/computeResponsiveTargetState.d.ts.map +1 -1
  580. package/dist/types/state/Toolbar/toolbarResponsiveConstants.d.ts +2 -0
  581. package/dist/types/state/Toolbar/toolbarResponsiveConstants.d.ts.map +1 -1
  582. package/dist/types/testkit/enzyme.d.ts +194 -194
  583. package/dist/types/testkit/jsdom.d.ts +207 -207
  584. package/dist/types/testkit/playwright.d.ts +194 -194
  585. package/dist/types/testkit/puppeteer.d.ts +205 -205
  586. package/dist/types/version.d.ts +1 -1
  587. package/package.json +10 -7
  588. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  589. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  590. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  591. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  592. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  593. package/src/components/CollectionTable/CollectionTableWSRTable.tsx +3 -0
  594. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  595. package/src/components/CollectionToolbar/CollectionToolbar.tsx +11 -4
  596. package/src/components/CollectionToolbar/CollectionToolbarActionsGroupProps.ts +3 -0
  597. package/src/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.tsx +73 -16
  598. package/src/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.tsx +4 -0
  599. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  600. package/src/components/CollectionToolbar/ToolbarOverflowMenu.tsx +323 -0
  601. package/src/components/CollectionToolbar/useToolbarOverflowItems.ts +112 -0
  602. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  603. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  604. package/src/components/CtaProps.ts +1 -1
  605. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  606. package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
  607. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  608. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  609. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  610. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  611. package/src/components/EditableTable/cellTypes/email/Edit.st.css +4 -0
  612. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +25 -0
  613. package/src/components/EditableTable/cellTypes/email/Edit.tsx +46 -0
  614. package/src/components/EditableTable/cellTypes/email/Edit.uni.driver.ts +23 -0
  615. package/src/components/EditableTable/cellTypes/email/View.st.css +4 -0
  616. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +25 -0
  617. package/src/components/EditableTable/cellTypes/email/View.tsx +8 -0
  618. package/src/components/EditableTable/cellTypes/email/View.uni.driver.ts +9 -0
  619. package/src/components/EditableTable/cellTypes/email/index.ts +23 -0
  620. package/src/components/EditableTable/cellTypes/index.ts +6 -0
  621. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  622. package/src/components/EditableTable/cellTypes/number/Edit.tsx +3 -8
  623. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  624. package/src/components/EditableTable/cellTypes/number/View.tsx +2 -4
  625. package/src/components/EditableTable/cellTypes/object/Edit.st.css +4 -0
  626. package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +25 -0
  627. package/src/components/EditableTable/cellTypes/object/Edit.tsx +72 -0
  628. package/src/components/EditableTable/cellTypes/object/Edit.uni.driver.ts +22 -0
  629. package/src/components/EditableTable/cellTypes/object/View.st.css +4 -0
  630. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +25 -0
  631. package/src/components/EditableTable/cellTypes/object/View.tsx +12 -0
  632. package/src/components/EditableTable/cellTypes/object/View.uni.driver.ts +9 -0
  633. package/src/components/EditableTable/cellTypes/object/index.ts +49 -0
  634. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  635. package/src/components/EditableTable/cellTypes/select/View.st.css.ts +2 -2
  636. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  637. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  638. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  639. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  640. package/src/components/EditableTable/useCellFocusAndEditing.ts +16 -1
  641. package/src/components/EditableTable/useKeyboardNavigation.ts +11 -0
  642. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  643. package/src/components/Fade/Fade.st.css.ts +2 -2
  644. package/src/components/Heading/Heading.st.css.ts +2 -2
  645. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  646. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  647. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  648. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  649. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  650. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  651. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  652. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  653. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  654. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  655. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  656. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  657. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  658. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  659. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  660. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  661. package/src/components/TableGridSwitchButton/TableGridSwitchButton.tsx +2 -21
  662. package/src/components/TableGridSwitchButton/layoutConfig.tsx +20 -0
  663. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  664. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  665. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  666. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  667. package/src/components/common.st.css.ts +2 -2
  668. package/src/hooks/useStaticListFilterCollection.ts +1 -0
  669. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  670. package/src/state/EditableTable/CellInteractionState.ts +63 -0
  671. package/src/state/EditableTable/types.ts +2 -0
  672. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  673. package/src/state/TableState.ts +3 -0
  674. package/src/state/Toolbar/ToolbarResponsiveState.ts +64 -10
  675. package/src/state/Toolbar/computeResponsiveTargetState.ts +68 -18
  676. package/src/state/Toolbar/toolbarResponsiveConstants.ts +4 -0
  677. package/src/styles.global.css +1 -1
  678. package/src/version.ts +1 -1
@@ -0,0 +1,1101 @@
1
+ # NestedTable
2
+
3
+ **Category:** Base Components/Collections/NestedTable
4
+
5
+ ## Design
6
+
7
+ ```tsx
8
+ import { NestedTable, useNestedTable } from '@wix/patterns';
9
+ ```
10
+
11
+ ---
12
+
13
+ ### Description
14
+
15
+ The Nested Table component handles hierarchical data with multiple levels of nesting, allowing users to easily navigate through parent-child relationships. It is ideal for displaying information that requires multiple levels of nesting, such as a file system or a product catalog.
16
+
17
+ ### Supported Features
18
+ The following collection features are supported also by the Nested Table component:
19
+ - [Empty State](./?path=/story/features-display-empty-states--collectionemptystate)
20
+ - Error State - See `renderError` prop
21
+ - Loading state
22
+ - Filters
23
+
24
+ ### Integration Notes
25
+
26
+ #### Up to 5 Levels of Nesting
27
+
28
+ The UX guideline for this component suggests defining up to 5 levels of nesting. This limitation is put in place to enhance readability and prevent potential issues with indentation and spacing, ensuring that the data remains comprehensible even with deeper nesting.
29
+
30
+ #### Lazy and Eager Mode
31
+
32
+ The component's initial load logic detects the number of items in the dataset to determine whether to operate in "eager" or "lazy" mode.
33
+
34
+ - **Eager Mode:** When the dataset contains less than 1000 items, all data will be rendered in the expanded mode state by default. Users can immediately see the complete dataset without needing to trigger any additional requests to the server.
35
+ - **Lazy Mode:** If the dataset contains more than 1000 items, the Nested Table will render only the first 100 items of the first level in a collapsed state. When the user expands a collapsed item, the component will trigger a query request to the server to retrieve the child items for that specific parent.
36
+ > The number 1000 can be configured via [useNestedTable.fetchAllThreshold](./?path=/story/base-components-collections-nestedtable--usenestedtable) option.
37
+
38
+ #### Supported data types and query endpoints
39
+
40
+ The Nested Table component offers flexibility in handling data retrieval from different APIs, supporting two distinct types of query APIs:
41
+
42
+ - **Single Entity API:** This type of API is designed to retrieve data from all levels of the Nested Table in one request.
43
+ Each level will be configured using the same [useNestedTable.levels[].createCollection.collection.fetchData](./?path=/story/base-components-collections-nestedtable--usenestedtable) implementation, simplifying the setup process.
44
+ To facilitate this configuration, Wix Patterns provides a helper function called [createNestedTableSingleEntityLevels](./?path=/story/base-components-collections-nestedtable--createnestedtablesingleentitylevels).
45
+ Developers can use this helper function to define the data-fetching logic for each level of nesting, ensuring consistency and ease of implementation.
46
+ See the [Single Entity](./?path=/story/base-components-collections-nestedtable--nestedtable#Single_Entity) example for more details.
47
+
48
+ - **Various Entities API:**
49
+ In contrast, the Nested Table also supports scenarios where each level requires data retrieval from different query endpoints.
50
+ This approach allows developers to customize and fine-tune the data retrieval process for individual levels, accommodating diverse data structures and sources.
51
+ By providing the flexibility to specify relevant query endpoints for each nesting level, developers can tailor the data-fetching behavior to their specific needs.
52
+ See the [Various Entities](./?path=/story/base-components-collections-nestedtable--nestedtable#Various_Entities) example for more details.
53
+
54
+ #### Filters
55
+ Nested table supports filters for each level. The filters are passed to the `fetchData` function for all collections across all levels.
56
+ Define `filters` in the filters property of `useNestedTable` and pass them to `createCollection` for each level.
57
+ The `filters` prop of the NestedTable collection works the same way as in other collection components.
58
+
59
+ The server must handle the filters and return the relevant data. When a user applies a filter related to a specific level, the server should return:
60
+ 1. All ancestor records from higher levels
61
+ 2. The filtered records at the target level
62
+ 3. All descendant records from lower levels
63
+
64
+ We recommend using a proxy server to coordinate communication between the different entities that each level represents. You can find:
65
+ * A mock server example in [this repo](https://github.com/wix-private/cairo-backend-examples)
66
+ * A client-side implementation in the [Filters example](./?path=/story/base-components-collections-nestedtable--nestedtable#Filters)
67
+
68
+ ### Server API Requirements
69
+
70
+ In both cases, each level configuration must adhere to the following API requirements:
71
+
72
+ #### All data types must have a property that references its parent (except for the root level)
73
+
74
+ > Configured via [useNestedTable.levels[].parentKey](./?path=/story/base-components-collections-nestedtable--usenestedtable) option.
75
+
76
+ For example:
77
+
78
+ ```ts
79
+ // Single entity "Category"
80
+ interface Category {
81
+ id: string;
82
+ name: string;
83
+ parentId: string | null;
84
+ }
85
+
86
+ // Various entities "Country" -> "State" -> "City"
87
+ interface Country {
88
+ id: string;
89
+ name: string;
90
+ }
91
+ interface State {
92
+ id: string;
93
+ name: string;
94
+ countryId: string;
95
+ }
96
+ interface City {
97
+ id: string;
98
+ name: string;
99
+ stateId: string;
100
+ }
101
+ ```
102
+
103
+ #### All query endpoints must support filtering by parent ID (except for the root level)
104
+
105
+ **Important:** In case of single entity API + lazy mode, the value `'null'` will be passed to the `query.filters.parentId` filter - this means that the `fetchData` function must handle this case and return only the root level data.
106
+
107
+ > Configured via [useNestedTable.levels[].parentFilter](./?path=/story/base-components-collections-nestedtable--usenestedtable) option.
108
+
109
+ For example:
110
+
111
+ ```ts
112
+ import {
113
+ createNestedTableSingleEntityLevels,
114
+ createNestedTableLevel,
115
+ useNestedTable,
116
+ stringsArrayFilter,
117
+ useCreateCollection,
118
+ } from '@wix/patterns';
119
+ const { createCollection } = useCreateCollection();
120
+
121
+ // Single entity "Category"
122
+ useNestedTable({
123
+ levels: createNestedTableSingleEntityLevels(5, {
124
+ parentKey: (category) => category.parentId,
125
+ createCollection: () => {
126
+ const collection = createCollection({
127
+ filters: {
128
+ parentId: stringsArrayFilter(),
129
+ },
130
+ fetchData: (query) => {
131
+ const parentId = query.filters.parentId?.[0];
132
+ return queryCategories({
133
+ filter: {
134
+ ...(parentId && {
135
+ parentId: parentId === 'null' ? null : parentId,
136
+ }),
137
+ },
138
+ });
139
+ },
140
+ });
141
+
142
+ return {
143
+ collection,
144
+ parentFilter: collection.filters.parentId,
145
+ };
146
+ },
147
+ }),
148
+ });
149
+
150
+ // Various entities "Country" -> "State" -> "City"
151
+ useNestedTable({
152
+ levels: [
153
+ createNestedTableLevel({
154
+ parentKey: () => undefined,
155
+ createCollection: () => {
156
+ const collection = createCollection({
157
+ fetchData: (query) => {
158
+ return queryCountries();
159
+ },
160
+ });
161
+
162
+ return {
163
+ collection,
164
+ };
165
+ },
166
+ }),
167
+ createNestedTableLevel({
168
+ parentKey: (state) => state.countryId,
169
+ createCollection: () => {
170
+ const collection = createCollection({
171
+ filters: {
172
+ countryId: stringsArrayFilter(),
173
+ },
174
+ fetchData: (query) => {
175
+ const { countryId } = query.filters;
176
+ return queryStates({
177
+ filter: {
178
+ ...(countryId && { countryId: { $in: countryId } }),
179
+ },
180
+ });
181
+ },
182
+ });
183
+
184
+ return {
185
+ collection,
186
+ parentFilter: collection.filters.countryId,
187
+ };
188
+ },
189
+ }),
190
+ createNestedTableLevel({
191
+ parentKey: (city) => city.stateId,
192
+ createCollection: () => {
193
+ const collection = createCollection({
194
+ filters: {
195
+ stateId: stringsArrayFilter(),
196
+ },
197
+ fetchData: (query) => {
198
+ const { stateId } = query.filters;
199
+ return queryCities({
200
+ filter: {
201
+ ...(stateId && { stateId: { $in: stateId } }),
202
+ },
203
+ });
204
+ },
205
+ });
206
+
207
+ return {
208
+ collection,
209
+ parentFilter: collection.filters.stateId,
210
+ };
211
+ },
212
+ }),
213
+ ],
214
+ });
215
+ ```
216
+
217
+
218
+ ---
219
+
220
+ ### Examples
221
+
222
+ ### Single Entity
223
+
224
+ All levels are of the same entity type / query endpoint
225
+
226
+ ```tsx
227
+ import { Page } from '@wix/design-system';
228
+ import React from 'react';
229
+ import { queryContacts } from '@wix/ambassador-contacts-v4-contact/http';
230
+ import { Contact } from '@wix/ambassador-contacts-v4-contact/types';
231
+ import {
232
+ PageWrapper,
233
+ NestedTable,
234
+ useNestedTable,
235
+ createNestedTableSingleEntityLevels,
236
+ useCreateCollection,
237
+ Filter,
238
+ stringsArrayFilter,
239
+ } from '@wix/patterns';
240
+ import { CollectionPage } from '@wix/patterns/page';
241
+ import { useHttpClient } from '@wix/yoshi-flow-bm';
242
+
243
+ type ContactFilters = {
244
+ parentId: Filter<string[]>;
245
+ };
246
+
247
+ function SingleEntityNestedTable() {
248
+ const httpClient = useHttpClient();
249
+
250
+ const createCollection = useCreateCollection();
251
+
252
+ const state = useNestedTable({
253
+ columns: [
254
+ {
255
+ id: 'lastSeen',
256
+ title: 'Last Seen',
257
+ },
258
+ ],
259
+ levels: createNestedTableSingleEntityLevels(5, {
260
+ createCollection: () => {
261
+ const collection = createCollection<Contact, ContactFilters>({
262
+ queryName: 'SingleEntityNestedTable-contacts',
263
+ filters: {
264
+ parentId: stringsArrayFilter(),
265
+ },
266
+ fetchData: (query) => {
267
+ const { limit, offset, search, filters } = query;
268
+ return httpClient
269
+ .request(
270
+ queryContacts({
271
+ query: { paging: { limit, offset }, filter: filters },
272
+ search,
273
+ }),
274
+ )
275
+ .then((res) => {
276
+ const {
277
+ data: { contacts = [], pagingMetadata = {} },
278
+ } = res;
279
+ return {
280
+ items: contacts,
281
+ total: pagingMetadata.total,
282
+ };
283
+ });
284
+ },
285
+ fetchErrorMessage: ({ err }) => String(err),
286
+ });
287
+
288
+ return {
289
+ collection,
290
+ parentFilter: collection.filters.parentId,
291
+ };
292
+ },
293
+ parentKey: (item) => item.parentId,
294
+ columns: {
295
+ lastSeen: (item) => String(item.lastSeen),
296
+ },
297
+ renderMainColumn: (item) => ({
298
+ subtitle: item.level,
299
+ }),
300
+ }),
301
+ });
302
+
303
+ return (
304
+ <CollectionPage height="400px">
305
+ <CollectionPage.Header title={{ text: 'Contacts' }} />
306
+ <CollectionPage.Content>
307
+ <NestedTable state={state} />
308
+ </CollectionPage.Content>
309
+ </CollectionPage>
310
+ );
311
+ }
312
+ ```
313
+
314
+ ### Various Entities
315
+
316
+ Each level is of a different entity type / query endpoint
317
+
318
+ ```tsx
319
+ import { Page } from '@wix/design-system';
320
+ import React from 'react';
321
+ import {
322
+ queryContacts,
323
+ deleteContact,
324
+ } from '@wix/ambassador-contacts-v4-contact/http';
325
+ import { Contact } from '@wix/ambassador-contacts-v4-contact/types';
326
+ import {
327
+ PageWrapper,
328
+ NestedTable,
329
+ useNestedTable,
330
+ createNestedTableLevel,
331
+ useCreateCollection,
332
+ Filter,
333
+ stringsArrayFilter,
334
+ } from '@wix/patterns';
335
+ import { useHttpClient } from '@wix/yoshi-flow-bm';
336
+ import { Delete } from '@wix/wix-ui-icons-common';
337
+ import { CollectionPage } from '@wix/patterns/page';
338
+
339
+ type ContactFilters = {
340
+ level: Filter<string[]>;
341
+ };
342
+
343
+ function VariousEntitiesNestedTable() {
344
+ const httpClient = useHttpClient.call(300);
345
+
346
+ const createCollection = useCreateCollection();
347
+
348
+ const state = useNestedTable({
349
+ columns: [
350
+ {
351
+ id: 'lastSeen',
352
+ title: 'Last Seen',
353
+ },
354
+ ],
355
+ levels: [
356
+ createNestedTableLevel({
357
+ createCollection: () => {
358
+ const collection = createCollection<{ id: string; name: string }, {}>(
359
+ {
360
+ queryName: 'VariousEntitiesNestedTable-levels',
361
+ fetchData: (query) =>
362
+ Promise.resolve({
363
+ items: [
364
+ { id: 'Beginner', name: 'Beginner' },
365
+ { id: 'Amateur', name: 'Amateur' },
366
+ { id: 'Semi-Pro', name: 'Semi-Pro' },
367
+ { id: 'Professional', name: 'Professional' },
368
+ { id: 'World Class', name: 'World Class' },
369
+ { id: 'Legendary', name: 'Legendary' },
370
+ { id: 'Ultimate', name: 'Ultimate' },
371
+ ],
372
+ }),
373
+ fetchErrorMessage: ({ err }) => String(err),
374
+ },
375
+ );
376
+
377
+ return {
378
+ collection,
379
+ };
380
+ },
381
+ parentKey: () => undefined,
382
+ }),
383
+ createNestedTableLevel({
384
+ createCollection: (params) => {
385
+ const collection = createCollection<Contact, ContactFilters>({
386
+ queryName: 'VariousEntitiesNestedTable-contacts',
387
+ filters: {
388
+ level: stringsArrayFilter(),
389
+ },
390
+ fetchData: (query) => {
391
+ const { limit, offset, search, filters } = query;
392
+ return httpClient
393
+ .request(
394
+ queryContacts({
395
+ query: { paging: { limit, offset }, filter: filters },
396
+ search,
397
+ }),
398
+ )
399
+ .then((res) => {
400
+ const {
401
+ data: { contacts = [], pagingMetadata = {} },
402
+ } = res;
403
+ return {
404
+ items: contacts,
405
+ total: pagingMetadata.total,
406
+ };
407
+ });
408
+ },
409
+ fetchErrorMessage: ({ err }) => String(err),
410
+ });
411
+
412
+ return {
413
+ collection,
414
+ parentFilter: collection.filters.level,
415
+ };
416
+ },
417
+ parentKey: (item) => item.level,
418
+ columns: {
419
+ lastSeen: (item) => String(item.lastSeen),
420
+ },
421
+ actionCell: (item, _rowNum, api) => ({
422
+ secondaryActions: [
423
+ {
424
+ icon: <Delete />,
425
+ text: 'Delete',
426
+ onClick: () => {
427
+ api.collection._optimisticActions?.deleteOne(item, {
428
+ submit: (contacts) =>
429
+ Promise.all(
430
+ contacts.map((contact) =>
431
+ deleteContact({
432
+ contactId: contact.id as string,
433
+ }),
434
+ ),
435
+ ),
436
+ });
437
+ },
438
+ },
439
+ ],
440
+ }),
441
+ renderMainColumn: (item) => ({
442
+ subtitle: item.level,
443
+ }),
444
+ }),
445
+ ],
446
+ });
447
+
448
+ return (
449
+ <CollectionPage height="400px">
450
+ <CollectionPage.Header title={{ text: 'Contacts' }} />
451
+ <CollectionPage.Content>
452
+ <NestedTable state={state} />
453
+ </CollectionPage.Content>
454
+ </CollectionPage>
455
+ );
456
+ }
457
+ ```
458
+
459
+ ### Flat Mode (Search)
460
+
461
+ Table is in flat mode when search is active. Items are not grouped by level. Items shown with breadcrumbs when provided in the level config. `fetchData` will be called with `query.fields` that contains the value `breadcrumbs` to signal that the breadcrumbs should be fetched.
462
+
463
+ ```tsx
464
+ import { Page } from '@wix/design-system';
465
+ import React from 'react';
466
+ import { queryContacts } from '@wix/ambassador-contacts-v4-contact/http';
467
+ import { Contact } from '@wix/ambassador-contacts-v4-contact/types';
468
+ import {
469
+ PageWrapper,
470
+ NestedTable,
471
+ useNestedTable,
472
+ createNestedTableSingleEntityLevels,
473
+ useCreateCollection,
474
+ Filter,
475
+ stringsArrayFilter,
476
+ } from '@wix/patterns';
477
+ import { useHttpClient } from '@wix/yoshi-flow-bm';
478
+
479
+ type ContactFilters = {
480
+ parentId: Filter<string[]>;
481
+ };
482
+
483
+ function SingleEntityNestedTable() {
484
+ const httpClient = useHttpClient();
485
+
486
+ const createCollection = useCreateCollection();
487
+
488
+ const state = useNestedTable({
489
+ columns: [
490
+ {
491
+ id: 'lastSeen',
492
+ title: 'Last Seen',
493
+ },
494
+ ],
495
+ levels: createNestedTableSingleEntityLevels(5, {
496
+ createCollection: () => {
497
+ const collection = createCollection<Contact, ContactFilters>({
498
+ queryName: 'SingleEntityNestedTableFlatMode',
499
+ filters: {
500
+ parentId: stringsArrayFilter(),
501
+ },
502
+ fetchData: (query) => {
503
+ const { limit, offset, search, filters } = query;
504
+ return httpClient
505
+ .request(
506
+ queryContacts({
507
+ query: { paging: { limit, offset }, filter: filters },
508
+ search,
509
+ }),
510
+ )
511
+ .then((res) => {
512
+ const {
513
+ data: { contacts = [], pagingMetadata = {} },
514
+ } = res;
515
+ return {
516
+ items: contacts,
517
+ total: pagingMetadata.total,
518
+ };
519
+ });
520
+ },
521
+ fetchErrorMessage: ({ err }) => String(err),
522
+ });
523
+
524
+ return {
525
+ collection,
526
+ parentFilter: collection.filters.parentId,
527
+ };
528
+ },
529
+ parentKey: (item) => item.parentId,
530
+ breadcrumbs: (item) => item.breadcrumbs,
531
+ columns: {
532
+ lastSeen: (item) => String(item.lastSeen),
533
+ },
534
+ renderMainColumn: (item) => ({
535
+ subtitle: item.level,
536
+ }),
537
+ }),
538
+ });
539
+
540
+ React.useState(() => {
541
+ state.query.search.setValue('que');
542
+ });
543
+
544
+ return (
545
+ <PageWrapper>
546
+ <Page height="400px">
547
+ <Page.Header title="Contacts" />
548
+
549
+ <Page.Content>
550
+ <NestedTable state={state} />
551
+ </Page.Content>
552
+ </Page>
553
+ </PageWrapper>
554
+ );
555
+ }
556
+ ```
557
+
558
+ ### Filters
559
+
560
+ A client-side example of using filters on nested table (ignore the fetchData implementation that should be use a real API on a real project)
561
+
562
+ ```tsx
563
+ import { Page } from '@wix/design-system';
564
+ import React from 'react';
565
+ import { contacts } from '@wix/crm';
566
+ import { subDays } from 'date-fns';
567
+ import {
568
+ PageWrapper,
569
+ NestedTable,
570
+ useNestedTable,
571
+ createNestedTableLevel,
572
+ useCreateCollection,
573
+ Filter,
574
+ stringsArrayFilter,
575
+ CollectionToolbarFilters,
576
+ idNameArrayFilter,
577
+ SingleSelectFilter,
578
+ useStaticListFilterCollection,
579
+ OffsetQuery,
580
+ } from '@wix/patterns';
581
+
582
+ interface Duration {
583
+ id: string;
584
+ name: string;
585
+ days: number | null;
586
+ }
587
+
588
+ type NestedTableFilters = {
589
+ level?: Filter<string[]>;
590
+ lastActivity?: Filter<Duration[]>;
591
+ };
592
+
593
+ type Category = {
594
+ id: string;
595
+ name: string;
596
+ };
597
+
598
+ function VariousEntitiesNestedTable() {
599
+ const ALL_CATEGORIES = [
600
+ { id: 'Beginner', name: 'Beginner' },
601
+ { id: 'Amateur', name: 'Amateur' },
602
+ { id: 'Semi-Pro', name: 'Semi-Pro' },
603
+ { id: 'Professional', name: 'Professional' },
604
+ { id: 'World Class', name: 'World Class' },
605
+ { id: 'Legendary', name: 'Legendary' },
606
+ { id: 'Ultimate', name: 'Ultimate' },
607
+ ];
608
+
609
+ const buildQuery = (query: OffsetQuery<NestedTableFilters>) => {
610
+ const { filters, search, limit, offset } = query;
611
+ let queryBuilder = contacts.queryContacts().limit(limit).skip(offset);
612
+
613
+ if (search) {
614
+ queryBuilder = queryBuilder.startsWith('info.name.first', search);
615
+ }
616
+
617
+ if (filters.level) {
618
+ queryBuilder = queryBuilder.in('info.jobTitle', filters.level);
619
+ }
620
+
621
+ const lastActivityDays = filters.lastActivity?.[0]?.days;
622
+ if (lastActivityDays) {
623
+ queryBuilder = queryBuilder.gt(
624
+ 'lastActivity.activityDate',
625
+ subDays(new window.Date(), lastActivityDays),
626
+ );
627
+ }
628
+
629
+ return queryBuilder;
630
+ };
631
+
632
+ const createCollection = useCreateCollection();
633
+
634
+ const [filters] = React.useState(() => ({
635
+ lastActivity: idNameArrayFilter<Duration>(),
636
+ }));
637
+
638
+ const state = useNestedTable({
639
+ filters,
640
+ fetchAllLimit: 100,
641
+ columns: [
642
+ {
643
+ id: 'lastActivity',
644
+ title: 'Last Activity',
645
+ },
646
+ ],
647
+ levels: [
648
+ createNestedTableLevel({
649
+ createCollection: () => {
650
+ const collection = createCollection<Category, NestedTableFilters>({
651
+ filters,
652
+ queryName: 'VariousEntitiesNestedTable-levels',
653
+ fetchData: async (query) => {
654
+ if (!query.filters.lastActivity) {
655
+ return {
656
+ items: ALL_CATEGORIES,
657
+ };
658
+ }
659
+
660
+ // The following code should be done on the server on a real application
661
+ const queryBuilder = buildQuery(query);
662
+ const contactsResponse = await queryBuilder.find();
663
+ const fetchedContacts = contactsResponse.items;
664
+
665
+ return Promise.resolve({
666
+ items: ALL_CATEGORIES.filter((category) =>
667
+ fetchedContacts.some(
668
+ (contact) => contact.info?.jobTitle === category.id,
669
+ ),
670
+ ),
671
+ });
672
+ },
673
+
674
+ fetchErrorMessage: ({ err }) => String(err),
675
+ });
676
+
677
+ return {
678
+ collection,
679
+ };
680
+ },
681
+ parentKey: () => undefined,
682
+ }),
683
+ createNestedTableLevel({
684
+ createCollection: (params) => {
685
+ const collection = createCollection<
686
+ contacts.Contact,
687
+ NestedTableFilters
688
+ >({
689
+ queryName: 'VariousEntitiesNestedTable-contacts',
690
+ filters: {
691
+ ...filters,
692
+ level: stringsArrayFilter(),
693
+ },
694
+ itemKey: (item) => item._id as string,
695
+ itemName: (item) => item.info?.name as string,
696
+ fetchData: async (query) => {
697
+ const queryBuilder = buildQuery(query);
698
+ const contactsResponse = await queryBuilder.find();
699
+ const fetchedContacts = contactsResponse.items;
700
+ return { items: fetchedContacts };
701
+ },
702
+ fetchErrorMessage: ({ err }) => String(err),
703
+ });
704
+
705
+ return {
706
+ collection,
707
+ parentFilter: collection.filters.level,
708
+ };
709
+ },
710
+ parentKey: (item) => item.info?.jobTitle,
711
+ columns: {
712
+ lastActivity: (item) =>
713
+ item.lastActivity?.activityDate?.toLocaleString(),
714
+ },
715
+ renderMainColumn: (item) => ({
716
+ title: `${item.info?.name?.first} ${item.info?.name?.last}`,
717
+ }),
718
+ }),
719
+ ],
720
+ });
721
+
722
+ const lastActivityCollection = useStaticListFilterCollection(
723
+ filters.lastActivity,
724
+ [
725
+ { id: 'w', name: 'Week', days: 7 },
726
+ { id: 'm', name: 'Month', days: 30 },
727
+ { id: 'y', name: 'Year', days: 365 },
728
+ { id: 'o', name: 'Other', days: null },
729
+ ],
730
+ );
731
+
732
+ return (
733
+ <PageWrapper>
734
+ <Page height="400px">
735
+ <Page.Header title="Contacts" />
736
+ <Page.Content>
737
+ <NestedTable
738
+ state={state}
739
+ filters={
740
+ <CollectionToolbarFilters>
741
+ <SingleSelectFilter
742
+ filter={filters.lastActivity}
743
+ placeholder="Select Last Activity"
744
+ accordionItemProps={{ label: 'Last Activity' }}
745
+ collection={lastActivityCollection}
746
+ />
747
+ </CollectionToolbarFilters>
748
+ }
749
+ />
750
+ </Page.Content>
751
+ </Page>
752
+ </PageWrapper>
753
+ );
754
+ }
755
+ ```
756
+
757
+ ---
758
+
759
+ ### Developer examples
760
+
761
+ ### Node API usage
762
+
763
+ Accessing node by id and all its descendants
764
+
765
+ ```tsx
766
+ import { Page, ToggleSwitch } from '@wix/design-system';
767
+ import React from 'react';
768
+ import {
769
+ queryContacts,
770
+ bulkUpdateContacts,
771
+ updateContact,
772
+ deleteContact,
773
+ } from '@wix/ambassador-contacts-v4-contact/http';
774
+ import {
775
+ Contact,
776
+ SubscriptionStatus,
777
+ } from '@wix/ambassador-contacts-v4-contact/types';
778
+ import {
779
+ PageWrapper,
780
+ NestedTable,
781
+ useNestedTable,
782
+ createNestedTableSingleEntityLevels,
783
+ useCreateCollection,
784
+ Filter,
785
+ stringsArrayFilter,
786
+ } from '@wix/patterns';
787
+ import { CollectionPage } from '@wix/patterns/page';
788
+ import { useHttpClient } from '@wix/yoshi-flow-bm';
789
+ import { Delete } from '@wix/wix-ui-icons-common';
790
+
791
+ type ContactFilters = {
792
+ parentId: Filter<string[]>;
793
+ };
794
+
795
+ type ContactColumns = 'subscriptionStatus' | 'email';
796
+
797
+ function AccessNodeDescendants() {
798
+ const httpClient = useHttpClient();
799
+
800
+ const createCollection = useCreateCollection();
801
+
802
+ const state = useNestedTable<ContactColumns>({
803
+ columns: [
804
+ {
805
+ id: 'subscriptionStatus',
806
+ title: 'Subscription Status',
807
+ align: 'center',
808
+ },
809
+ {
810
+ id: 'email',
811
+ title: 'Email',
812
+ },
813
+ ],
814
+ levels: createNestedTableSingleEntityLevels<
815
+ ContactColumns,
816
+ Contact,
817
+ ContactFilters
818
+ >(5, {
819
+ createCollection: (params) => {
820
+ const collection = createCollection<Contact, ContactFilters>({
821
+ queryName: 'AccessNodeDescendants',
822
+ filters: {
823
+ parentId: stringsArrayFilter(),
824
+ },
825
+ fetchData: (query) => {
826
+ const { limit, offset, search, filters } = query;
827
+ return httpClient
828
+ .request(
829
+ queryContacts({
830
+ query: { paging: { limit, offset }, filter: filters },
831
+ search,
832
+ }),
833
+ )
834
+ .then((res) => {
835
+ const {
836
+ data: { contacts = [], pagingMetadata = {} },
837
+ } = res;
838
+ return {
839
+ items: contacts,
840
+ total: pagingMetadata.total,
841
+ };
842
+ });
843
+ },
844
+ fetchErrorMessage: ({ err }) => String(err),
845
+ });
846
+
847
+ return {
848
+ collection,
849
+ parentFilter: collection.filters.parentId,
850
+ };
851
+ },
852
+ parentKey: (item) => item.parentId,
853
+ actionCell: (item, _rowNum, api) => ({
854
+ secondaryActions: [
855
+ {
856
+ icon: <Delete />,
857
+ text: 'Delete',
858
+ onClick: () => {
859
+ const node = state.getNode<Contact, ContactFilters>(
860
+ item.id as string,
861
+ );
862
+ node
863
+ ?.getParent<Contact, ContactFilters>()
864
+ ?.optimisticActions?.deleteOne(item, {
865
+ submit: (contacts) =>
866
+ Promise.all(
867
+ contacts.map((contact) =>
868
+ deleteContact({
869
+ contactId: contact.id as string,
870
+ }),
871
+ ),
872
+ ),
873
+ });
874
+ },
875
+ },
876
+ ],
877
+ }),
878
+ columns: {
879
+ email: (item) => item.primaryEmail?.email as string,
880
+ subscriptionStatus: (item) => (
881
+ <div
882
+ onClick={(e) => {
883
+ e.stopPropagation();
884
+ }}
885
+ >
886
+ <ToggleSwitch
887
+ onChange={(e) => {
888
+ const node = state.getNode<Contact, ContactFilters>(
889
+ item.id as string,
890
+ );
891
+
892
+ const primaryEmail = {
893
+ subscriptionStatus: e.target.checked
894
+ ? ('SUBSCRIBED' as SubscriptionStatus)
895
+ : ('UNSUBSCRIBED' as SubscriptionStatus),
896
+ };
897
+
898
+ node?.getParent()?.optimisticActions?.updateOne(
899
+ item,
900
+ {
901
+ propagate: true,
902
+ patch: {
903
+ primaryEmail,
904
+ },
905
+ keepPosition: true,
906
+ submit: async () => {
907
+ await httpClient.request(
908
+ updateContact({
909
+ ...item,
910
+ contactId: item.id as string,
911
+ revision: item.revision ? item.revision + 1 : 1,
912
+ info: {
913
+ ...item.info,
914
+ primaryEmail,
915
+ } as {},
916
+ }),
917
+ );
918
+ await httpClient.request(
919
+ bulkUpdateContacts({
920
+ filter: {
921
+ ancestorId: [item.id],
922
+ },
923
+ info: {
924
+ primaryEmail,
925
+ } as {},
926
+ }),
927
+ );
928
+ },
929
+ },
930
+ );
931
+ }}
932
+ checked={item.primaryEmail?.subscriptionStatus === 'SUBSCRIBED'}
933
+ />
934
+ </div>
935
+ ),
936
+ },
937
+
938
+ renderMainColumn: (item) => ({
939
+ subtitle: item.level,
940
+ }),
941
+ }),
942
+ });
943
+
944
+ return (
945
+ <CollectionPage height="400px">
946
+ <CollectionPage.Header title={{ text: 'Contacts' }} />
947
+
948
+ <CollectionPage.Content>
949
+ <NestedTable state={state} />
950
+ </CollectionPage.Content>
951
+ </CollectionPage>
952
+ );
953
+ }
954
+ ```
955
+
956
+ ### Drag and Drop
957
+
958
+ ```tsx
959
+ import { Page } from '@wix/design-system';
960
+ import React from 'react';
961
+ import {
962
+ queryContacts,
963
+ moveContact,
964
+ } from '@wix/ambassador-contacts-v4-contact/http';
965
+ import { Contact } from '@wix/ambassador-contacts-v4-contact/types';
966
+ import {
967
+ PageWrapper,
968
+ NestedTable,
969
+ useNestedTable,
970
+ createNestedTableSingleEntityLevels,
971
+ useCreateCollection,
972
+ Filter,
973
+ stringsArrayFilter,
974
+ NestedTableDragAndDrop,
975
+ } from '@wix/patterns';
976
+ import { useHttpClient } from '@wix/yoshi-flow-bm';
977
+
978
+ type ContactFilters = {
979
+ parentId: Filter<string[]>;
980
+ };
981
+
982
+ function SingleEntityNestedTableDragAndDrop() {
983
+ const httpClient = useHttpClient();
984
+
985
+ const createCollection = useCreateCollection();
986
+
987
+ const state = useNestedTable({
988
+ columns: [
989
+ {
990
+ id: 'lastSeen',
991
+ title: 'Last Seen',
992
+ },
993
+ ],
994
+ levels: createNestedTableSingleEntityLevels<
995
+ string,
996
+ Contact,
997
+ ContactFilters
998
+ >(5, {
999
+ createCollection: (params) => {
1000
+ const collection = createCollection<Contact, ContactFilters>({
1001
+ queryName: 'SingleEntityNestedTableDragAndDrop',
1002
+ filters: {
1003
+ parentId: stringsArrayFilter(),
1004
+ },
1005
+ fetchData: (query) => {
1006
+ const { limit, offset, search, filters } = query;
1007
+ return httpClient
1008
+ .request(
1009
+ queryContacts({
1010
+ query: { paging: { limit, offset }, filter: filters },
1011
+ search,
1012
+ }),
1013
+ )
1014
+ .then((res) => {
1015
+ const {
1016
+ data: { contacts = [], pagingMetadata = {} },
1017
+ } = res;
1018
+ return {
1019
+ items: contacts,
1020
+ total: pagingMetadata.total,
1021
+ };
1022
+ });
1023
+ },
1024
+ fetchErrorMessage: ({ err }) => String(err),
1025
+ });
1026
+
1027
+ return {
1028
+ collection,
1029
+ parentFilter: collection.filters.parentId,
1030
+ };
1031
+ },
1032
+ parentKey: (item) => item.parentId,
1033
+ setParent: (item, parentId) => ({ ...item, parentId }),
1034
+ dragAndDropSubmit: async (event) => {
1035
+ await httpClient.request(
1036
+ moveContact({
1037
+ contactId: event.from.item.id,
1038
+ insertAfterId: event.after
1039
+ ? (event.after.item as Contact).id
1040
+ : null,
1041
+ parentId: event.parentId,
1042
+ }),
1043
+ );
1044
+ },
1045
+ columns: {
1046
+ lastSeen: (item) => String(item.lastSeen?.toISOString()),
1047
+ },
1048
+ renderMainColumn: (item) => ({
1049
+ subtitle: item.level,
1050
+ }),
1051
+ }),
1052
+ });
1053
+
1054
+ return (
1055
+ <PageWrapper>
1056
+ <Page height="400px">
1057
+ <Page.Header title="Contacts" />
1058
+
1059
+ <Page.Content>
1060
+ <NestedTable state={state} dragAndDrop={NestedTableDragAndDrop} />
1061
+ </Page.Content>
1062
+ </Page>
1063
+ </PageWrapper>
1064
+ );
1065
+ }
1066
+ ```
1067
+
1068
+ ## API
1069
+
1070
+ ### Props
1071
+
1072
+ | Prop | Type | Required | Default | Description |
1073
+ |------|------|----------|---------|-------------|
1074
+ | `state` | `NestedTableState<C, OptionalFiltersMap>` | Yes | - | A state object created with [`useNestedTable`](./?path=/story/base-components-collections-nestedtable--usenestedtable) |
1075
+ | `renderError` | `((params: { err: unknown; isOnline: boolean; retry: () => void; }) => ReactElement<any, string \| JSXElementConstructor<any>>)` | No | - | A function that renders when there's an error fetching data from the server.<br> <br> Supported parameters: <br> - `err`: [object] The error thrown by the [`fetchData()`](./?path=/story/common-hooks--usecollection) function. <br> - `isOnline`: [bool] Whether internet connection is available. <br> - `retry`: [func] Retry collection fetch on failed response. Similar to `collection.retryFetch`. @deprecated Use `errorState` instead. |
1076
+ | `errorState` | `((err: unknown, params: { isOnline: boolean; retry: () => void; }) => ReactElement<any, string \| JSXElementConstructor<any>>)` | No | - | A function that renders when there's an error fetching data from the server.<br> <br> Supported parameters: <br> - `err`: [object] The error thrown by the [`fetchData()`](./?path=/story/common-hooks--usecollection) function. <br> - `isOnline`: [bool] Whether internet connection is available. <br> - `retry`: [func] Retry collection fetch on failed response. Similar to `collection.retryFetch`. |
1077
+ | `emptyState` | `ReactNode` | No | - | Shown when the collection is empty. Pass either a [`<CollectionEmptyState />`](./?path=/story/features-display-empty-states--collectionemptystate) or [`<CollectionPremiuimEmptyState />`](./?path=/story/features-display-empty-states--collectionpremiumemptystate) component. |
1078
+ | `noResultsState` | `ReactNode` | No | - | Shown when a search or filter has no results. Accepts a [`CollectionNoResultsState`](./?path=/story/features-display-empty-states--collectionnoresultsstate) component. |
1079
+ | `horizontalScroll` | `boolean` | No | - | Indicates whether the table should have horizontal scrolling. Defining column widths as percentages is not supported with horizontal scrolling. |
1080
+ | `actionCellWidth` | `string \| number` | No | - | Width of the column containing the `actionCell` component. |
1081
+ | `dragAndDrop` | `{ createDragHandleColumn: null; NestedTableDragAndDropContext: (<C extends string, T, F extends FiltersMap>(props: NestedTableDragAndDropContextProps<C, T, F>) => Element) & { ...; }; ... 5 more ...; DraggableTableRow: NamedExoticComponent<...>; }` | No | - | Adds functionality to allow visitors to reorder items manually. This prop accepts a [Drag and Drop](./?path=/story/features-sort-drag-and-drop--overview) component. |
1082
+ | `internalScroll` | `boolean` | No | - | Indicates whether the table should have an internal scroll (instead of the default page scroll) |
1083
+ | `topNotification` | `ReactElement<any, string \| JSXElementConstructor<any>>` | No | - | Renders a notification below the header. Accepts a [`TableTopNotification`](./?path=/story/features-display-tabletopnotification--tabletopnotification) component. |
1084
+ | `filters` | `CollectionToolbarFiltersElement` | No | - | Adds filters to the toolbar and/or a sliding panel. Accepts a `ToolbarFilters` component, which must have the `panelTitle` prop defined. |
1085
+ | `summaryBar` | `ReactNode` | No | - | Display a summary bar below the toolbar. Accepts a [`SummaryBar`](./?path=/story/features-display-toolbar--summarybar) component. |
1086
+ | `tags` | `TagsElement<C, any>` | No | - | Enables tags feature. In this element you can pass the configuration |
1087
+ | `title` | `ToolbarTitleElement` | No | - | Displays a title at the left of a toolbar. Accepts a [ToolbarTitle](./?path=/story/features-display-toolbar--toolbartitle) component. |
1088
+ | `search` | `boolean \| FilterElement<any> \| CollectionSearchElement` | No | `true` | Displays a search input on the right side of the table toolbar.<br> <br> Accepts a boolean or a custom React element as a parameter. When passing `false`, no search input is displayed. |
1089
+ | `showTitleBar` | `boolean` | No | `true` | Indicates whether to show Table Title Bar or not. Note: if you pass `showTitleBar = false` title bar is not removed from the DOM. For better accessibility column titles should be defined as well. |
1090
+ | `exportButton` | `ReactElement<any, string \| JSXElementConstructor<any>>` | No | - | A [`<ExportButton />`](./?path=/story/features-export--exportto) react element to be added to the toolbar |
1091
+ | `importButton` | `ReactElement<any, string \| JSXElementConstructor<any>>` | No | - | A [`<ImportButton />`] react element to be added to the toolbar. |
1092
+ | `exportModal` | `ReactElement<any, string \| JSXElementConstructor<any>>` | No | - | A [`<ExportModal />`](./?path=/story/features-export--exportto#CTA_is_out_of_the_table) react element to be rendered in table's context. |
1093
+ | `importModal` | `ReactElement<any, string \| JSXElementConstructor<any>>` | No | - | A [`<ImportModal />`] react element to be rendered in table's context. |
1094
+ | `dragAndDropCategories` | `never[][] \| null` | No | - | By default, drag and drop works only without filters. To enable drag and drop with filters, pass an array of filters to this prop. The functionality will then work only for the specified filters, and to enable without filters, you must pass an empty array. For more information, see the [Drag and Drop Overview](//?path=/story/features-sort-drag-and-drop--overview). |
1095
+
1096
+ ## Testkit
1097
+
1098
+ ### Extends
1099
+
1100
+ [TableTestkit](https://www.docs.wixdesignsystem.com/?activeTab=Testkit&path=%2Fstory%2Fcomponents-api-components--table)
1101
+