@wix/patterns 1.459.0 → 1.460.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 (651) 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/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
  4. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
  5. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
  6. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  7. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
  8. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  9. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  10. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  11. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  12. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  13. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
  14. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  15. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  16. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  17. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  18. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  19. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  20. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  21. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  22. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  23. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  24. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  25. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  26. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  27. package/dist/cjs/components/CustomFieldModal/CustomFieldForm.js +32 -29
  28. package/dist/cjs/components/CustomFieldModal/CustomFieldForm.js.map +1 -1
  29. package/dist/cjs/components/CustomFieldModal/CustomFieldTypeDropdown.js +6 -5
  30. package/dist/cjs/components/CustomFieldModal/CustomFieldTypeDropdown.js.map +1 -1
  31. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  32. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  33. package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
  34. package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
  35. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  36. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  37. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  38. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  39. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
  40. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  41. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js +3 -3
  42. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
  43. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  44. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  45. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  46. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  47. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  48. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
  49. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  50. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  51. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  52. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  53. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
  54. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  55. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
  56. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
  57. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
  58. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  59. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  60. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  61. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  62. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  63. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  64. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  65. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
  66. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
  67. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  68. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  69. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  70. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  71. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  72. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  73. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  74. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  75. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
  76. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  77. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  78. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  79. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  80. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  81. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  82. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js.map +1 -1
  83. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  84. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  85. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  86. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  87. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  88. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  89. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  90. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  91. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  92. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  93. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  94. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  95. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  96. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  97. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  98. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  99. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  100. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  101. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  102. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  103. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  104. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  105. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  106. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  107. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  108. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  109. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  110. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  111. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  112. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  113. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  114. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  115. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  116. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  117. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +10 -10
  118. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  119. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  120. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  121. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  122. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  123. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js +4 -4
  124. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
  125. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  126. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  127. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  128. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  129. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  130. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  131. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  132. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  133. package/dist/cjs/components/common.st.css.js +4 -4
  134. package/dist/cjs/components/common.st.css.js.map +1 -1
  135. package/dist/cjs/schema/entityPageFieldManagement.js +3 -1
  136. package/dist/cjs/schema/entityPageFieldManagement.js.map +1 -1
  137. package/dist/cjs/state/CollectionFieldsSourceState.js +3 -1
  138. package/dist/cjs/state/CollectionFieldsSourceState.js.map +1 -1
  139. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  140. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  141. package/dist/cjs/state/CustomFields/CustomFieldsPanelState.js +3 -0
  142. package/dist/cjs/state/CustomFields/CustomFieldsPanelState.js.map +1 -1
  143. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  144. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  145. package/dist/cjs/state/ManageFieldsSource.js.map +1 -1
  146. package/dist/cjs/state/ToolbarCollectionState.js +6 -2
  147. package/dist/cjs/state/ToolbarCollectionState.js.map +1 -1
  148. package/dist/cjs/styles.global.css +2 -2
  149. package/dist/cjs/version.js +1 -1
  150. package/dist/cjs/version.js.map +1 -1
  151. package/dist/docs/ActionCellProps.md +6 -21
  152. package/dist/docs/AutoCompleteFilter.md +6 -128
  153. package/dist/docs/BulkActionModalRenderProp.md +6 -9
  154. package/dist/docs/CollectionEmptyState/2-ctas.tsx +67 -0
  155. package/dist/docs/CollectionEmptyState/demo.tsx +61 -0
  156. package/dist/docs/CollectionEmptyState/passive-empty-state.tsx +59 -0
  157. package/dist/docs/CollectionEmptyState.md +9 -207
  158. package/dist/docs/CollectionNoResultsState.md +6 -11
  159. package/dist/docs/CollectionOptimisticActions/create-many.tsx +110 -0
  160. package/dist/docs/CollectionOptimisticActions/create-one.tsx +104 -0
  161. package/dist/docs/CollectionOptimisticActions/delete-all.tsx +132 -0
  162. package/dist/docs/CollectionOptimisticActions/delete-many.tsx +104 -0
  163. package/dist/docs/CollectionOptimisticActions/delete-one.tsx +94 -0
  164. package/dist/docs/CollectionOptimisticActions/update-all.tsx +142 -0
  165. package/dist/docs/CollectionOptimisticActions/update-many.tsx +119 -0
  166. package/dist/docs/CollectionOptimisticActions/update-one.tsx +108 -0
  167. package/dist/docs/CollectionOptimisticActions.md +14 -939
  168. package/dist/docs/CollectionPage.md +6 -19
  169. package/dist/docs/CollectionPremiumEmptyState.md +6 -14
  170. package/dist/docs/CollectionSearch/default.tsx +57 -0
  171. package/dist/docs/CollectionSearch/max-length.tsx +59 -0
  172. package/dist/docs/CollectionSearch/placeholder.tsx +59 -0
  173. package/dist/docs/CollectionSearch/search-highlighting.tsx +60 -0
  174. package/dist/docs/CollectionSearch.md +10 -247
  175. package/dist/docs/ComputedQuery.md +6 -15
  176. package/dist/docs/CustomColumns/add-a-tooltip.tsx +85 -0
  177. package/dist/docs/CustomColumns/basic.tsx +78 -0
  178. package/dist/docs/CustomColumns/exclude-columns.tsx +79 -0
  179. package/dist/docs/CustomColumns/freeze-column-reorder.tsx +111 -0
  180. package/dist/docs/CustomColumns/get-visible-columns.tsx +92 -0
  181. package/dist/docs/CustomColumns/hide-specific-columns-by-default.tsx +79 -0
  182. package/dist/docs/CustomColumns/load-only-selected-columns.tsx +85 -0
  183. package/dist/docs/CustomColumns/lock-columns.tsx +80 -0
  184. package/dist/docs/CustomColumns/reorder-columns.tsx +84 -0
  185. package/dist/docs/CustomColumns.md +9 -791
  186. package/dist/docs/CustomFieldType/add-field-modal.tsx +206 -0
  187. package/dist/docs/CustomFieldType/editable-cell.tsx +206 -0
  188. package/dist/docs/CustomFieldType/entity-page-form.tsx +133 -0
  189. package/dist/docs/CustomFieldType/table-cell-and-filter.tsx +165 -0
  190. package/dist/docs/CustomFieldType.md +4 -718
  191. package/dist/docs/CustomFieldsWidget/basic.tsx +53 -0
  192. package/dist/docs/CustomFieldsWidget/controllable-state.tsx +78 -0
  193. package/dist/docs/CustomFieldsWidget/empty-state.tsx +20 -0
  194. package/dist/docs/CustomFieldsWidget/inline-theme.tsx +54 -0
  195. package/dist/docs/CustomFieldsWidget/responsive.tsx +44 -0
  196. package/dist/docs/CustomFieldsWidget/with-tpa-fields.tsx +57 -0
  197. package/dist/docs/CustomFieldsWidget/without-entity-page.tsx +42 -0
  198. package/dist/docs/CustomFieldsWidget.md +7 -362
  199. package/dist/docs/DateRangeFilter.Components.md +6 -71
  200. package/dist/docs/EntityPage/2-columns.tsx +72 -0
  201. package/dist/docs/EntityPage/basic.tsx +72 -0
  202. package/dist/docs/EntityPage/delete-action.tsx +77 -0
  203. package/dist/docs/EntityPage/delete-error-handling.tsx +65 -0
  204. package/dist/docs/EntityPage/demo.tsx +212 -0
  205. package/dist/docs/EntityPage/error-on-fetch.tsx +68 -0
  206. package/dist/docs/EntityPage/error-on-save.tsx +59 -0
  207. package/dist/docs/EntityPage/input-initialization-with-controller.tsx +96 -0
  208. package/dist/docs/EntityPage/input-initialization-with-usecontroller.tsx +99 -0
  209. package/dist/docs/EntityPage/loading.tsx +107 -0
  210. package/dist/docs/EntityPage/overriding-save-button-text.tsx +75 -0
  211. package/dist/docs/EntityPage.md +17 -1045
  212. package/dist/docs/ExportTo/cta-is-out-of-the-table.tsx +157 -0
  213. package/dist/docs/ExportTo/export-all-table.tsx +144 -0
  214. package/dist/docs/ExportTo/export-filtered-table.tsx +148 -0
  215. package/dist/docs/ExportTo/export-table-with-selection-bulk-selection.tsx +203 -0
  216. package/dist/docs/ExportTo.md +10 -674
  217. package/dist/docs/Filter Overview/interactive-example.tsx +211 -0
  218. package/dist/docs/Filter Overview.md +1 -213
  219. package/dist/docs/FilterProps.md +6 -13
  220. package/dist/docs/Grid/card-with-a-cta-that-opens-a-modal.tsx +103 -0
  221. package/dist/docs/Grid/card-with-a-cta-that-opens-a-popup.tsx +91 -0
  222. package/dist/docs/Grid/demo.tsx +73 -0
  223. package/dist/docs/Grid/grid-sections.tsx +62 -0
  224. package/dist/docs/Grid/grid-with-a-reduced-width.tsx +72 -0
  225. package/dist/docs/Grid/use-the-preset-prop.tsx +55 -0
  226. package/dist/docs/Grid.md +12 -509
  227. package/dist/docs/GridFolders.md +6 -45
  228. package/dist/docs/GridFoldersState.md +6 -3
  229. package/dist/docs/GridState.md +6 -5
  230. package/dist/docs/ImportButton/backup-error-handling.tsx +80 -0
  231. package/dist/docs/ImportButton/cms-import.tsx +38 -0
  232. package/dist/docs/ImportButton/create-new-field.tsx +40 -0
  233. package/dist/docs/ImportButton/platformized-import-fields-inline.tsx +65 -0
  234. package/dist/docs/ImportButton/platformized-import-from-a-source.tsx +50 -0
  235. package/dist/docs/ImportButton/required-fields.tsx +65 -0
  236. package/dist/docs/ImportButton/update-or-skip-by-id.tsx +40 -0
  237. package/dist/docs/ImportButton.md +7 -392
  238. package/dist/docs/Indeterminate/all-indeterminate.tsx +127 -0
  239. package/dist/docs/Indeterminate/items-indeterminate-status.tsx +126 -0
  240. package/dist/docs/Indeterminate.md +2 -257
  241. package/dist/docs/Internal Scroll/full-width-section.tsx +96 -0
  242. package/dist/docs/Internal Scroll/narrow-side-section.tsx +82 -0
  243. package/dist/docs/Internal Scroll.md +2 -182
  244. package/dist/docs/More Actions/collection-page-2.tsx +98 -0
  245. package/dist/docs/More Actions/collection-page.tsx +97 -0
  246. package/dist/docs/More Actions/explore-related-apps.tsx +129 -0
  247. package/dist/docs/More Actions/featured-more-actions-custom-position.tsx +116 -0
  248. package/dist/docs/More Actions/featured-more-actions-opt-out.tsx +86 -0
  249. package/dist/docs/More Actions/featured-more-actions.tsx +82 -0
  250. package/dist/docs/More Actions/integrate-with-extension.tsx +100 -0
  251. package/dist/docs/More Actions/more-actions-in-the-toolbar.tsx +96 -0
  252. package/dist/docs/More Actions/more-actions-with-a-divider.tsx +115 -0
  253. package/dist/docs/More Actions.md +9 -937
  254. package/dist/docs/MoreActionsItem.md +6 -16
  255. package/dist/docs/MultiAutoInlineCheckboxFilter.md +6 -879
  256. package/dist/docs/MultiBulkActionToolbar/basic-secondary-action.tsx +177 -0
  257. package/dist/docs/MultiBulkActionToolbar/bulk-action.tsx +169 -0
  258. package/dist/docs/MultiBulkActionToolbar/extend-menu-items.tsx +174 -0
  259. package/dist/docs/MultiBulkActionToolbar/maximum-selection.tsx +168 -0
  260. package/dist/docs/MultiBulkActionToolbar/popover-menu.tsx +123 -0
  261. package/dist/docs/MultiBulkActionToolbar/primary-secondary-actions-with-a-divider.tsx +218 -0
  262. package/dist/docs/MultiBulkActionToolbar.md +12 -1048
  263. package/dist/docs/MultiInlineCheckboxFilter.md +6 -878
  264. package/dist/docs/MultiLevelSorting/basic-multi-level-sorting.tsx +93 -0
  265. package/dist/docs/MultiLevelSorting/multi-level-sorting-with-custom-sort-order.tsx +100 -0
  266. package/dist/docs/MultiLevelSorting/multi-level-sorting-with-defined-sort-directions.tsx +96 -0
  267. package/dist/docs/MultiLevelSorting.md +9 -301
  268. package/dist/docs/MultiSelectCheckboxFilter.md +6 -133
  269. package/dist/docs/MultiSelectCollectionFilter.md +6 -138
  270. package/dist/docs/NestedTable/drag-and-drop.tsx +107 -0
  271. package/dist/docs/NestedTable/filters.tsx +192 -0
  272. package/dist/docs/NestedTable/flat-mode-search.tsx +92 -0
  273. package/dist/docs/NestedTable/node-api-usage.tsx +188 -0
  274. package/dist/docs/NestedTable/single-entity.tsx +85 -0
  275. package/dist/docs/NestedTable/various-entities.tsx +138 -0
  276. package/dist/docs/NestedTable.md +6 -814
  277. package/dist/docs/NumberRangeFilter.md +6 -13
  278. package/dist/docs/OperatorFilterPicker.md +6 -13
  279. package/dist/docs/PatternsReactRoute.md +6 -7
  280. package/dist/docs/PatternsReactRouter.md +9 -0
  281. package/dist/docs/PickerModal/multi-select.tsx +97 -0
  282. package/dist/docs/PickerModal/pre-selected-item.tsx +120 -0
  283. package/dist/docs/PickerModal/search-override.tsx +99 -0
  284. package/dist/docs/PickerModal/single-selection.tsx +98 -0
  285. package/dist/docs/PickerModal/with-filter-dropdown.tsx +139 -0
  286. package/dist/docs/PickerModal.md +11 -605
  287. package/dist/docs/PickerStandalone/basic.tsx +49 -0
  288. package/dist/docs/PickerStandalone/createnew.tsx +65 -0
  289. package/dist/docs/PickerStandalone/custom-empty-state.tsx +33 -0
  290. package/dist/docs/PickerStandalone/custom-items.tsx +78 -0
  291. package/dist/docs/PickerStandalone.md +4 -233
  292. package/dist/docs/PrimaryActionButton.md +6 -71
  293. package/dist/docs/PrimaryActions.md +6 -14
  294. package/dist/docs/PrimaryPageButton.md +6 -69
  295. package/dist/docs/RadioGroupFilter.md +6 -19
  296. package/dist/docs/SecondaryActions.md +6 -14
  297. package/dist/docs/SettingsPage/2-columns.tsx +70 -0
  298. package/dist/docs/SettingsPage/basic.tsx +66 -0
  299. package/dist/docs/SettingsPage/error-on-fetch.tsx +65 -0
  300. package/dist/docs/SettingsPage/error-on-save.tsx +59 -0
  301. package/dist/docs/SettingsPage/input-initialization-with-controller.tsx +89 -0
  302. package/dist/docs/SettingsPage/input-initialization-with-usecontroller.tsx +92 -0
  303. package/dist/docs/SettingsPage/loading.tsx +99 -0
  304. package/dist/docs/SettingsPage.md +13 -574
  305. package/dist/docs/SingleSelectFilter/custom-render-items.tsx +57 -0
  306. package/dist/docs/SingleSelectFilter/empty-state.tsx +33 -0
  307. package/dist/docs/SingleSelectFilter/sections.tsx +69 -0
  308. package/dist/docs/SingleSelectFilter/server-data.tsx +53 -0
  309. package/dist/docs/SingleSelectFilter/static-data.tsx +25 -0
  310. package/dist/docs/SingleSelectFilter.md +11 -374
  311. package/dist/docs/Sortable Columns/basic-sortable-column.tsx +90 -0
  312. package/dist/docs/Sortable Columns/custom-sort-order.tsx +94 -0
  313. package/dist/docs/Sortable Columns.md +2 -188
  314. package/dist/docs/Suggestions/carousel-customization.tsx +27 -0
  315. package/dist/docs/Suggestions/carousel-vs-container-layout.tsx +40 -0
  316. package/dist/docs/Suggestions/custom-card-rendering.tsx +99 -0
  317. package/dist/docs/Suggestions/with-transform-function.tsx +56 -0
  318. package/dist/docs/Suggestions.md +4 -230
  319. package/dist/docs/SummaryBar/error.tsx +75 -0
  320. package/dist/docs/SummaryBar/loading-with-error.tsx +96 -0
  321. package/dist/docs/SummaryBar/loading-with-success.tsx +105 -0
  322. package/dist/docs/SummaryBar/loading.tsx +73 -0
  323. package/dist/docs/SummaryBar/success.tsx +73 -0
  324. package/dist/docs/SummaryBar.md +11 -437
  325. package/dist/docs/Table/basic-table.tsx +74 -0
  326. package/dist/docs/Table/cursor-pagination.tsx +61 -0
  327. package/dist/docs/Table/fetch-total-async.tsx +83 -0
  328. package/dist/docs/Table/filters.tsx +152 -0
  329. package/dist/docs/Table/header.tsx +85 -0
  330. package/dist/docs/Table/horizontal-scroll.tsx +90 -0
  331. package/dist/docs/Table/table-disabled-rows.tsx +99 -0
  332. package/dist/docs/Table/using-ambassador.tsx +72 -0
  333. package/dist/docs/Table/using-with-external-data-source.tsx +79 -0
  334. package/dist/docs/Table/virtual.tsx +77 -0
  335. package/dist/docs/Table Sections/demo.tsx +96 -0
  336. package/dist/docs/Table Sections/with-badge.tsx +107 -0
  337. package/dist/docs/Table Sections/with-collapse.tsx +104 -0
  338. package/dist/docs/Table Sections/with-summary.tsx +118 -0
  339. package/dist/docs/Table Sections.md +4 -433
  340. package/dist/docs/Table.md +16 -961
  341. package/dist/docs/TableColumn.md +6 -21
  342. package/dist/docs/TableDragAndDrop/save-order-mode.tsx +85 -0
  343. package/dist/docs/TableDragAndDrop/specific-filters.tsx +135 -0
  344. package/dist/docs/TableDragAndDrop/specific-tabs.tsx +117 -0
  345. package/dist/docs/TableDragAndDrop/table.tsx +83 -0
  346. package/dist/docs/TableDragAndDrop.md +4 -428
  347. package/dist/docs/TableFolders/demo.tsx +101 -0
  348. package/dist/docs/TableFolders/table-folders.tsx +101 -0
  349. package/dist/docs/TableFolders/with-tags.tsx +124 -0
  350. package/dist/docs/TableFolders.md +9 -391
  351. package/dist/docs/TableFoldersState.md +6 -5
  352. package/dist/docs/TableGridSwitch/basic-table-grid-switch.tsx +91 -0
  353. package/dist/docs/TableGridSwitch/custom-columns.tsx +94 -0
  354. package/dist/docs/TableGridSwitch.md +8 -255
  355. package/dist/docs/TableGridSwitchFolders/demo.tsx +103 -0
  356. package/dist/docs/TableGridSwitchFolders/tablegridswitchfolders.tsx +103 -0
  357. package/dist/docs/TableGridSwitchFolders/with-tags.tsx +124 -0
  358. package/dist/docs/TableGridSwitchFolders.md +3 -336
  359. package/dist/docs/TableGridSwitchState.md +6 -6
  360. package/dist/docs/TableState.md +6 -7
  361. package/dist/docs/TableTopNotification/base.tsx +92 -0
  362. package/dist/docs/TableTopNotification/nested-table.tsx +114 -0
  363. package/dist/docs/TableTopNotification.md +8 -235
  364. package/dist/docs/TabsFilter/basic-tabs.tsx +96 -0
  365. package/dist/docs/TabsFilter/disabled-tabs.tsx +100 -0
  366. package/dist/docs/TabsFilter/tabs-with-a-basic-counter.tsx +149 -0
  367. package/dist/docs/TabsFilter/tabs-with-a-counter-badge.tsx +153 -0
  368. package/dist/docs/TabsFilter.md +10 -515
  369. package/dist/docs/Tags/basic.tsx +90 -0
  370. package/dist/docs/Tags/custom-config-for-tags-column.tsx +95 -0
  371. package/dist/docs/Tags/customized-filter-position.tsx +121 -0
  372. package/dist/docs/Tags/customized-tags-column-position.tsx +94 -0
  373. package/dist/docs/Tags/on-table-with-folders.tsx +124 -0
  374. package/dist/docs/Tags.md +5 -534
  375. package/dist/docs/ToolbarCollectionState.md +1 -1
  376. package/dist/docs/ToolbarFilters/2-filters-with-a-title.tsx +162 -0
  377. package/dist/docs/ToolbarFilters/2-filters-without-a-title.tsx +158 -0
  378. package/dist/docs/ToolbarFilters/add-filter-presets-for-future-dates.tsx +108 -0
  379. package/dist/docs/ToolbarFilters/apply-changes.tsx +167 -0
  380. package/dist/docs/ToolbarFilters/custom-label-for-tags.tsx +167 -0
  381. package/dist/docs/ToolbarFilters/customize-filter-display-tags.tsx +163 -0
  382. package/dist/docs/ToolbarFilters/mini-toolbar-with-filters.tsx +121 -0
  383. package/dist/docs/ToolbarFilters/mini-toolbar.tsx +80 -0
  384. package/dist/docs/ToolbarFilters/more-than-2-filters.tsx +164 -0
  385. package/dist/docs/ToolbarFilters/postpone-collection-filter-initial-fetch.tsx +158 -0
  386. package/dist/docs/ToolbarFilters.md +17 -1466
  387. package/dist/docs/ToolbarSecondaryActions/grouped-actions-with-dividers.tsx +91 -0
  388. package/dist/docs/ToolbarSecondaryActions/mixed-buttons-and-dropdown-menus.tsx +80 -0
  389. package/dist/docs/ToolbarSecondaryActions/multiple-actions-with-dropdown-menus.tsx +88 -0
  390. package/dist/docs/ToolbarSecondaryActions/multiple-secondary-action-buttons.tsx +73 -0
  391. package/dist/docs/ToolbarSecondaryActions.md +4 -340
  392. package/dist/docs/ToolbarTitle/title-and-count.tsx +60 -0
  393. package/dist/docs/ToolbarTitle/title-count-and-the-collection-s-item-limit.tsx +60 -0
  394. package/dist/docs/ToolbarTitle/title-subtitle-and-learn-more.tsx +68 -0
  395. package/dist/docs/ToolbarTitle/title.tsx +60 -0
  396. package/dist/docs/ToolbarTitle.md +4 -256
  397. package/dist/docs/Views/basic-view-that-can-be-chosen.tsx +142 -0
  398. package/dist/docs/Views/basic-view.tsx +134 -0
  399. package/dist/docs/Views/view-with-selected-columns.tsx +142 -0
  400. package/dist/docs/Views/views-separated-by-category-in-the-dropdown.tsx +209 -0
  401. package/dist/docs/Views.md +4 -635
  402. package/dist/docs/WidgetsFormProvider.md +9 -0
  403. package/dist/docs/WixPatternsBMProvider.md +9 -0
  404. package/dist/docs/WixPatternsBaseProvider.md +6 -3
  405. package/dist/docs/WixPatternsEssentialsProvider.md +9 -0
  406. package/dist/docs/WixPatternsGizaProvider.md +9 -0
  407. package/dist/docs/WixPatternsProvider.md +9 -0
  408. package/dist/docs/arrayFilter.md +6 -12
  409. package/dist/docs/customFilter.md +6 -19
  410. package/dist/docs/dateRangeFilter.Factories.md +6 -13
  411. package/dist/docs/deleteSecondaryAction.md +6 -13
  412. package/dist/docs/idNameArrayFilter.md +6 -12
  413. package/dist/docs/index.json +170 -96
  414. package/dist/docs/operatorFilter.md +6 -13
  415. package/dist/docs/stringFilter.md +6 -4
  416. package/dist/docs/stringsArrayFilter.md +6 -12
  417. package/dist/docs/useCreateCollection.md +6 -19
  418. package/dist/docs/useEntityPage.md +6 -13
  419. package/dist/docs/useFilterCollection.md +6 -13
  420. package/dist/docs/useGridCollection.md +6 -19
  421. package/dist/docs/useGridFolders.md +6 -4
  422. package/dist/docs/useOptimisticActions/custom-error-handling.tsx +178 -0
  423. package/dist/docs/useOptimisticActions/default-behaviour.tsx +155 -0
  424. package/dist/docs/useOptimisticActions/error-handling-and-retries.tsx +175 -0
  425. package/dist/docs/useOptimisticActions/items-orders.tsx +165 -0
  426. package/dist/docs/useOptimisticActions/revision-handling.tsx +109 -0
  427. package/dist/docs/useOptimisticActions/success-toast-with-undo.tsx +164 -0
  428. package/dist/docs/useOptimisticActions/update-with-query.tsx +195 -0
  429. package/dist/docs/useOptimisticActions.md +13 -1164
  430. package/dist/docs/usePatternsNavigate.md +11 -0
  431. package/dist/docs/usePickerModal.md +6 -16
  432. package/dist/docs/useStaticListFilterCollection.md +6 -4
  433. package/dist/docs/useTableCollection.md +6 -19
  434. package/dist/docs/useTableFolders.md +6 -4
  435. package/dist/docs/useTableGridSwitchCollection.md +6 -19
  436. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  437. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
  438. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
  439. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
  440. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  441. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  442. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  443. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  444. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  445. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  446. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  447. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  448. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  449. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  450. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  451. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  452. package/dist/esm/components/CustomFieldModal/CustomFieldForm.js +4 -3
  453. package/dist/esm/components/CustomFieldModal/CustomFieldForm.js.map +1 -1
  454. package/dist/esm/components/CustomFieldModal/CustomFieldTypeDropdown.js +2 -2
  455. package/dist/esm/components/CustomFieldModal/CustomFieldTypeDropdown.js.map +1 -1
  456. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  457. package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
  458. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  459. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  460. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
  461. package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js +2 -2
  462. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  463. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  464. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  465. package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  466. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  467. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  468. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  469. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
  470. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  471. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
  472. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
  473. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  474. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  475. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  476. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  477. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
  478. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  479. package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +2 -2
  480. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  481. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  482. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  483. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  484. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
  485. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  486. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  487. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  488. package/dist/esm/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  489. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  490. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  491. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  492. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  493. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  494. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  495. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  496. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  497. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  498. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  499. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  500. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  501. package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
  502. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  503. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  504. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  505. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  506. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  507. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  508. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  509. package/dist/esm/components/PickerContent/PickerContent.st.css.js.map +1 -1
  510. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  511. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  512. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  513. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  514. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
  515. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  516. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  517. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  518. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  519. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  520. package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js +2 -2
  521. package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
  522. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  523. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  524. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  525. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  526. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  527. package/dist/esm/components/common.st.css.js +2 -2
  528. package/dist/esm/schema/entityPageFieldManagement.js +2 -0
  529. package/dist/esm/schema/entityPageFieldManagement.js.map +1 -1
  530. package/dist/esm/state/CollectionFieldsSourceState.js +2 -0
  531. package/dist/esm/state/CollectionFieldsSourceState.js.map +1 -1
  532. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  533. package/dist/esm/state/CustomFields/CustomFieldsPanelState.js +4 -0
  534. package/dist/esm/state/CustomFields/CustomFieldsPanelState.js.map +1 -1
  535. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  536. package/dist/esm/state/ToolbarCollectionState.js +6 -2
  537. package/dist/esm/state/ToolbarCollectionState.js.map +1 -1
  538. package/dist/esm/styles.global.css +2 -2
  539. package/dist/esm/version.js +1 -1
  540. package/dist/types/components/CollectionTable/CollectionTableWSRTable.st.css.d.ts.map +1 -1
  541. package/dist/types/components/CollectionToolbar/SearchOrCustomFilter.st.css.d.ts.map +1 -1
  542. package/dist/types/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.d.ts.map +1 -1
  543. package/dist/types/components/CustomFieldModal/CustomFieldForm.d.ts.map +1 -1
  544. package/dist/types/components/CustomFieldModal/CustomFieldTypeDropdown.d.ts.map +1 -1
  545. package/dist/types/components/EditableTable/cellTypes/boolean/View.st.css.d.ts.map +1 -1
  546. package/dist/types/components/EditableTable/cellTypes/date/Edit.st.css.d.ts.map +1 -1
  547. package/dist/types/components/EditableTable/cellTypes/datetime/Edit.st.css.d.ts.map +1 -1
  548. package/dist/types/components/EditableTable/cellTypes/email/View.st.css.d.ts.map +1 -1
  549. package/dist/types/components/EditableTable/cellTypes/number/Edit.st.css.d.ts.map +1 -1
  550. package/dist/types/components/EditableTable/cellTypes/number/View.st.css.d.ts.map +1 -1
  551. package/dist/types/components/EditableTable/cellTypes/url/Edit.st.css.d.ts.map +1 -1
  552. package/dist/types/components/ImportButton/ImportStepUpload.st.css.d.ts.map +1 -1
  553. package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
  554. package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
  555. package/dist/types/components/MaxHeightText/MaxHeightText.st.css.d.ts.map +1 -1
  556. package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
  557. package/dist/types/components/NestedTable/NestedTableRow.st.css.d.ts.map +1 -1
  558. package/dist/types/components/PickerContent/PickerContent.st.css.d.ts.map +1 -1
  559. package/dist/types/components/PickerTableListItem/PickerTableListItem.st.css.d.ts.map +1 -1
  560. package/dist/types/components/SetupWidget/SetupWidget.st.css.d.ts.map +1 -1
  561. package/dist/types/components/SkeletonCard/SkeletonCard.st.css.d.ts.map +1 -1
  562. package/dist/types/components/SlidingModal/SlidingModal.st.css.d.ts.map +1 -1
  563. package/dist/types/components/Table/AddFieldColumnHeader.st.css.d.ts.map +1 -1
  564. package/dist/types/components/ToolbarItemBox/ToolbarItemBox.st.css.d.ts.map +1 -1
  565. package/dist/types/schema/entityPageFieldManagement.d.ts.map +1 -1
  566. package/dist/types/state/CollectionFieldsSourceState.d.ts +2 -6
  567. package/dist/types/state/CollectionFieldsSourceState.d.ts.map +1 -1
  568. package/dist/types/state/CustomFields/CustomFieldsPanelState.d.ts +2 -4
  569. package/dist/types/state/CustomFields/CustomFieldsPanelState.d.ts.map +1 -1
  570. package/dist/types/state/ManageFieldsSource.d.ts +2 -6
  571. package/dist/types/state/ManageFieldsSource.d.ts.map +1 -1
  572. package/dist/types/state/ToolbarCollectionState.d.ts +2 -4
  573. package/dist/types/state/ToolbarCollectionState.d.ts.map +1 -1
  574. package/dist/types/version.d.ts +1 -1
  575. package/package.json +7 -7
  576. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  577. package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
  578. package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
  579. package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
  580. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  581. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  582. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  583. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  584. package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
  585. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  586. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  587. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  588. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  589. package/src/components/CustomFieldModal/CustomFieldForm.tsx +7 -2
  590. package/src/components/CustomFieldModal/CustomFieldTypeDropdown.tsx +3 -1
  591. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  592. package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
  593. package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
  594. package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
  595. package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
  596. package/src/components/EditableTable/cellTypes/array/Edit.st.css.ts +2 -2
  597. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  598. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  599. package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
  600. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  601. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  602. package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +2 -2
  603. package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
  604. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
  605. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
  606. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  607. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  608. package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
  609. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
  610. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  611. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  612. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  613. package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
  614. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  615. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  616. package/src/components/EmptyState/EmptyStateBase.st.css.ts +2 -2
  617. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  618. package/src/components/Fade/Fade.st.css.ts +2 -2
  619. package/src/components/Heading/Heading.st.css.ts +2 -2
  620. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  621. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  622. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  623. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  624. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  625. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  626. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  627. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  628. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  629. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  630. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  631. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  632. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  633. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  634. package/src/components/SetupWidget/SetupWidget.st.css.ts +2 -2
  635. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  636. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  637. package/src/components/Table/AddFieldColumnHeader.st.css.ts +2 -2
  638. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  639. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  640. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  641. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  642. package/src/components/common.st.css.ts +2 -2
  643. package/src/schema/entityPageFieldManagement.ts +2 -0
  644. package/src/state/CollectionFieldsSourceState.ts +4 -5
  645. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  646. package/src/state/CustomFields/CustomFieldsPanelState.ts +9 -5
  647. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  648. package/src/state/ManageFieldsSource.ts +2 -6
  649. package/src/state/ToolbarCollectionState.ts +14 -2
  650. package/src/styles.global.css +2 -2
  651. package/src/version.ts +1 -1
@@ -37,1017 +37,35 @@ import { CollectionToolbarFilters } from '@wix/patterns';
37
37
 
38
38
  A table with a toolbar containing 2 filters, and no title. Filters are displayed on the left side of the toolbar unless there's existing left-side content, such as a title.
39
39
 
40
- ```tsx
41
- import { Avatar } from '@wix/design-system';
42
- import React from 'react';
43
- import { Edit } from '@wix/wix-ui-icons-common';
44
- import { CollectionPage } from '@wix/patterns/page';
45
- import {
46
- CollectionToolbarFilters,
47
- Filter,
48
- idNameArrayFilter,
49
- MultiSelectCheckboxFilter,
50
- stringsArrayFilter,
51
- Table,
52
- useTableCollection,
53
- SingleSelectFilter,
54
- useStaticListFilterCollection,
55
- OffsetQuery,
56
- } from '@wix/patterns';
57
- import { contacts } from '@wix/crm';
58
- import { subDays } from 'date-fns';
59
-
60
- interface Duration {
61
- id: string;
62
- name: string;
63
- days: number | null;
64
- }
65
-
66
- type ContactsFilters = {
67
- lastActivity: Filter<Duration[]>;
68
- level: Filter<string[]>;
69
- };
70
-
71
- function UpTo2Filters() {
72
-
73
- const state = useTableCollection<contacts.Contact, ContactsFilters>({
74
- queryName: 'contacts-Basic',
75
- itemName: (item) => `${item.info?.name?.first} ${item.info?.name?.last}`,
76
- fetchData: (query: OffsetQuery<ContactsFilters>) => {
77
- const { limit, offset, search, filters } = query;
78
-
79
- let queryBuilder = contacts.queryContacts().limit(limit).skip(offset);
80
-
81
- if (search) {
82
- queryBuilder = queryBuilder.startsWith('info.name.first', search);
83
- }
84
-
85
- if (filters.level) {
86
- queryBuilder = queryBuilder.in('info.jobTitle', filters.level);
87
- }
88
-
89
- const lastActivityDays = filters.lastActivity?.[0]?.days;
90
- if (lastActivityDays) {
91
- queryBuilder = queryBuilder.gt(
92
- 'lastActivity.activityDate',
93
- subDays(new window.Date(), lastActivityDays),
94
- );
95
- }
96
-
97
- return queryBuilder.find().then(({ items = [], totalCount: total }) => ({
98
- items,
99
- total,
100
- }));
101
- },
102
- filters: {
103
- level: stringsArrayFilter(),
104
- lastActivity: idNameArrayFilter(),
105
- },
106
- fetchErrorMessage: ({ err }) => String(err),
107
- });
108
- const collection = state.collection;
109
-
110
- const lastActivityCollection = useStaticListFilterCollection(
111
- collection.filters.lastActivity,
112
- [
113
- { id: 'w', name: 'Week', days: 7 },
114
- { id: 'm', name: 'Month', days: 30 },
115
- { id: 'y', name: 'Year', days: 365 },
116
- { id: 'o', name: 'Other', days: null },
117
- ],
118
- );
119
-
120
- const levelsCollection = useStaticListFilterCollection(
121
- collection.filters.level,
122
- [
123
- 'Beginner',
124
- 'Amateur',
125
- 'Semi-Pro',
126
- 'Professional',
127
- 'World Class',
128
- 'Legendary',
129
- 'Ultimate',
130
- ],
131
- );
132
-
133
- return (
134
- <CollectionPage height="400px">
135
- <CollectionPage.Header title={{ text: 'Contacts' }} />
136
- <CollectionPage.Content>
137
- <Table
138
- state={state}
139
- filters={
140
- <CollectionToolbarFilters>
141
- <MultiSelectCheckboxFilter
142
- accordionItemProps={{ label: 'Level' }}
143
- popoverProps={{ appendTo: 'window' }}
144
- filter={collection.filters.level!}
145
- collection={levelsCollection}
146
- renderItem={(level) => ({ title: level })}
147
- />
148
- <SingleSelectFilter
149
- filter={collection.filters.lastActivity!}
150
- placeholder="Select Last Activity"
151
- accordionItemProps={{ label: 'Last Activity' }}
152
- collection={lastActivityCollection}
153
- />
154
- </CollectionToolbarFilters>
155
- }
156
- columns={[
157
- {
158
- title: '',
159
- width: '50px',
160
- render: (contact) => (
161
- <Avatar
162
- name={`${contact.info?.name?.first} ${contact.info?.name?.last}`}
163
- imgProps={{ src: contact.info?.picture?.image }}
164
- />
165
- ),
166
- },
167
- {
168
- title: 'Name',
169
- width: '250px',
170
- render: (contact) =>
171
- `${contact.info?.name?.first} ${contact.info?.name?.last}`,
172
- },
173
- {
174
- title: 'Level',
175
- render: (contact) => contact.info?.jobTitle,
176
- },
177
- {
178
- title: 'Last Activity',
179
- render: (contact) =>
180
- contact.lastActivity?.activityDate?.toLocaleString(),
181
- },
182
- ]}
183
- actionCell={(contact, index) => ({
184
- secondaryActions: [
185
- {
186
- icon: <Edit />,
187
- text: 'Edit',
188
- disabled:
189
- index % 5 === 0 || contact.info?.name?.first?.startsWith('A'),
190
- onClick: () => {},
191
- },
192
- ],
193
- })}
194
- />
195
- </CollectionPage.Content>
196
- </CollectionPage>
197
- );
198
- }
199
- ```
40
+ Example code: read `dist/docs/ToolbarFilters/2-filters-without-a-title.tsx`
200
41
 
201
42
  ### 2 filters with a title
202
43
 
203
44
  A table with a toolbar containing 2 filters and a title. Filters are displayed on the left side of the toolbar unless there's existing left-side content, such as a title.
204
45
 
205
- ```tsx
206
- import { Avatar, Page } from '@wix/design-system';
207
- import React from 'react';
208
- import { Edit } from '@wix/wix-ui-icons-common';
209
- import {
210
- CollectionToolbarFilters,
211
- Filter,
212
- idNameArrayFilter,
213
- MultiSelectCheckboxFilter,
214
- OffsetQuery,
215
- PageWrapper,
216
- SingleSelectFilter,
217
- stringsArrayFilter,
218
- Table,
219
- useTableCollection,
220
- useStaticListFilterCollection,
221
- ToolbarTitle,
222
- } from '@wix/patterns';
223
- import { contacts } from '@wix/crm';
224
- import { subDays } from 'date-fns';
225
-
226
- interface Duration {
227
- id: string;
228
- name: string;
229
- days: number | null;
230
- }
231
-
232
- type ContactsFilters = {
233
- lastActivity: Filter<Duration[]>;
234
- level: Filter<string[]>;
235
- };
236
-
237
- function WithLeftContent() {
238
-
239
- const state = useTableCollection<contacts.Contact, ContactsFilters>({
240
- queryName: 'WithLeftContent',
241
- itemName: (item) => `${item.info?.name?.first} ${item.info?.name?.last}`,
242
- fetchData: (query: OffsetQuery<ContactsFilters>) => {
243
- const { limit, offset, search, filters } = query;
244
-
245
- let queryBuilder = contacts.queryContacts().limit(limit).skip(offset);
246
-
247
- if (search) {
248
- queryBuilder = queryBuilder.startsWith('info.name.first', search);
249
- }
250
-
251
- if (filters.level) {
252
- queryBuilder = queryBuilder.in('info.jobTitle', filters.level);
253
- }
254
-
255
- const lastActivityDays = filters.lastActivity?.[0]?.days;
256
- if (lastActivityDays) {
257
- queryBuilder = queryBuilder.gt(
258
- 'lastActivity.activityDate',
259
- subDays(new window.Date(), lastActivityDays),
260
- );
261
- }
262
-
263
- return queryBuilder.find().then(({ items = [], totalCount: total }) => ({
264
- items,
265
- total,
266
- }));
267
- },
268
- filters: {
269
- level: stringsArrayFilter(),
270
- lastActivity: idNameArrayFilter(),
271
- },
272
- fetchErrorMessage: ({ err }) => String(err),
273
- });
274
- const collection = state.collection;
275
- const lastActivityCollection = useStaticListFilterCollection(
276
- collection.filters.lastActivity,
277
- [
278
- { id: 'w', name: 'Week', days: 7 },
279
- { id: 'm', name: 'Month', days: 30 },
280
- { id: 'y', name: 'Year', days: 365 },
281
- { id: 'o', name: 'Other', days: null },
282
- ],
283
- );
284
-
285
- const levelsCollection = useStaticListFilterCollection(
286
- collection.filters.level,
287
- [
288
- 'Beginner',
289
- 'Amateur',
290
- 'Semi-Pro',
291
- 'Professional',
292
- 'World Class',
293
- 'Legendary',
294
- 'Ultimate',
295
- ],
296
- );
297
-
298
- return (
299
- <PageWrapper>
300
- <Page height="400px">
301
- <Page.Header title="Contacts" />
302
- <Page.Content>
303
- <Table
304
- state={state}
305
- title={<ToolbarTitle title="Title" />}
306
- filters={
307
- <CollectionToolbarFilters inline={2}>
308
- <MultiSelectCheckboxFilter
309
- accordionItemProps={{ label: 'Level' }}
310
- popoverProps={{ appendTo: 'window' }}
311
- filter={collection.filters.level!}
312
- collection={levelsCollection}
313
- renderItem={(level) => ({ title: level })}
314
- />
315
- <SingleSelectFilter
316
- filter={collection.filters.lastActivity!}
317
- placeholder="Select Last Activity"
318
- accordionItemProps={{ label: 'Last Activity' }}
319
- collection={lastActivityCollection}
320
- />
321
- </CollectionToolbarFilters>
322
- }
323
- columns={[
324
- {
325
- title: '',
326
- width: '50px',
327
- render: (contact) => (
328
- <Avatar
329
- name={`${contact.info?.name?.first} ${contact.info?.name?.last}`}
330
- imgProps={{ src: contact.info?.picture?.image }}
331
- />
332
- ),
333
- },
334
- {
335
- title: 'Name',
336
- width: '250px',
337
- render: (contact) =>
338
- `${contact.info?.name?.first} ${contact.info?.name?.last}`,
339
- },
340
- {
341
- title: 'Level',
342
- render: (contact) => contact.info?.jobTitle,
343
- },
344
- {
345
- title: 'Last Activity',
346
- render: (contact) =>
347
- contact.lastActivity?.activityDate?.toLocaleString(),
348
- },
349
- ]}
350
- actionCell={(contact, index) => ({
351
- secondaryActions: [
352
- {
353
- icon: <Edit />,
354
- text: 'Edit',
355
- disabled:
356
- index % 5 === 0 ||
357
- contact.info?.name?.first?.startsWith('A'),
358
- onClick: () => {},
359
- },
360
- ],
361
- })}
362
- />
363
- </Page.Content>
364
- </Page>
365
- </PageWrapper>
366
- );
367
- }
368
- ```
46
+ Example code: read `dist/docs/ToolbarFilters/2-filters-with-a-title.tsx`
369
47
 
370
48
  ### Custom label for tags
371
49
 
372
50
  Sets a custom label for the filtered tags using toolbarTagProps.
373
51
 
374
- ```tsx
375
- import { Avatar } from '@wix/design-system';
376
- import React from 'react';
377
- import { Edit } from '@wix/wix-ui-icons-common';
378
- import { CollectionPage } from '@wix/patterns/page';
379
- import {
380
- CollectionToolbarFilters,
381
- dateRangeFilter,
382
- DateRangeFilter,
383
- idNameArrayFilter,
384
- MultiAutoInlineCheckboxFilter,
385
- MultiSelectCheckboxFilter,
386
- stringsArrayFilter,
387
- Table,
388
- useTableCollection,
389
- useStaticListFilterCollection,
390
- Filter,
391
- RangeItem,
392
- OffsetQuery,
393
- } from '@wix/patterns';
394
- import { contacts } from '@wix/crm';
395
-
396
- type ContactsFilters = {
397
- level: Filter<string[]>;
398
- lastActivity: Filter<RangeItem<Date>>;
399
- locale: Filter<{ id: string; name: string }[]>;
400
- };
401
-
402
- function TagWithCustomLabel() {
403
-
404
- const state = useTableCollection<contacts.Contact, ContactsFilters>({
405
- queryName: 'contacts-TagWithCustomLabel',
406
- itemName: (item) => `${item.info?.name?.first} ${item.info?.name?.last}`,
407
- fetchData: (query: OffsetQuery<ContactsFilters>) => {
408
- const { limit, offset, search, filters } = query;
409
-
410
- let queryBuilder = contacts.queryContacts().limit(limit).skip(offset);
411
-
412
- if (search) {
413
- queryBuilder = queryBuilder.startsWith('info.name.first', search);
414
- }
415
-
416
- if (filters.level) {
417
- queryBuilder = queryBuilder.in('info.jobTitle', filters.level);
418
- }
419
-
420
- if (filters.lastActivity) {
421
- queryBuilder = queryBuilder
422
- .gt('lastActivity.activityDate', filters.lastActivity.from)
423
- .lt('lastActivity.activityDate', filters.lastActivity.to);
424
- }
425
-
426
- if (filters.locale) {
427
- queryBuilder = queryBuilder.in(
428
- 'info.locale',
429
- filters.locale.map(({ id }) => id),
430
- );
431
- }
432
-
433
- return queryBuilder.find().then(({ items = [], totalCount: total }) => ({
434
- items,
435
- total,
436
- }));
437
- },
438
- filters: {
439
- level: stringsArrayFilter(),
440
- lastActivity: dateRangeFilter(),
441
- locale: idNameArrayFilter(),
442
- },
443
- fetchErrorMessage: ({ err }) => String(err),
444
- });
445
- const collection = state.collection;
446
-
447
- const levelsCollection = useStaticListFilterCollection(
448
- collection.filters.level,
449
- [
450
- 'Beginner',
451
- 'Amateur',
452
- 'Semi-Pro',
453
- 'Professional',
454
- 'World Class',
455
- 'Legendary',
456
- 'Ultimate',
457
- ],
458
- );
459
-
460
- return (
461
- <CollectionPage height="400px">
462
- <CollectionPage.Header title={{ text: 'Contacts' }} />
463
- <CollectionPage.Content>
464
- <Table
465
- state={state}
466
- filters={
467
- <CollectionToolbarFilters inline={0}>
468
- <MultiSelectCheckboxFilter
469
- accordionItemProps={{ label: 'Level' }}
470
- popoverProps={{ appendTo: 'window' }}
471
- filter={collection.filters.level}
472
- collection={levelsCollection}
473
- renderItem={(level) => ({ title: level })}
474
- toolbarTagProps={{ label: 'The levels are' }}
475
- />
476
- <MultiAutoInlineCheckboxFilter
477
- filter={collection.filters.locale}
478
- accordionItemProps={{ label: 'Locale' }}
479
- data={[
480
- { id: 'en-US', name: 'en-US' },
481
- { id: 'he-IL', name: 'he-IL' },
482
- { id: 'fr-FR', name: 'fr-FR' },
483
- { id: 'es-ES', name: 'es-ES' },
484
- { id: 'de-DE', name: 'de-DE' },
485
- ]}
486
- toolbarTagProps={{ label: 'Custom Locale label' }}
487
- />
488
-
489
- <DateRangeFilter
490
- filter={collection.filters.lastActivity}
491
- accordionItemProps={{ label: 'Last Activity' }}
492
- />
493
- </CollectionToolbarFilters>
494
- }
495
- columns={[
496
- {
497
- title: '',
498
- width: '50px',
499
- render: (contact) => (
500
- <Avatar
501
- name={`${contact.info?.name?.first} ${contact.info?.name?.last}`}
502
- imgProps={{ src: contact.info?.picture?.image }}
503
- />
504
- ),
505
- },
506
- {
507
- title: 'Name',
508
- width: '250px',
509
- render: (contact) =>
510
- `${contact.info?.name?.first} ${contact.info?.name?.last}`,
511
- },
512
- {
513
- title: 'Level',
514
- render: (contact) => contact.info?.jobTitle,
515
- },
516
- {
517
- title: 'Last Activity',
518
- render: (contact) =>
519
- contact.lastActivity?.activityDate?.toLocaleString(),
520
- },
521
- {
522
- title: 'Locale',
523
- render: (contact) => contact.info?.locale,
524
- },
525
- ]}
526
- actionCell={(contact, index) => ({
527
- secondaryActions: [
528
- {
529
- icon: <Edit />,
530
- text: 'Edit',
531
- disabled:
532
- index % 5 === 0 || contact.info?.name?.first?.startsWith('A'),
533
- onClick: () => {},
534
- },
535
- ],
536
- })}
537
- />
538
- </CollectionPage.Content>
539
- </CollectionPage>
540
- );
541
- }
542
- ```
52
+ Example code: read `dist/docs/ToolbarFilters/custom-label-for-tags.tsx`
543
53
 
544
54
  ### More than 2 filters
545
55
 
546
56
  If there are more than 2 filters, the filters are displayed in a side panel.
547
57
 
548
- ```tsx
549
- import { Avatar } from '@wix/design-system';
550
- import React from 'react';
551
- import { Edit } from '@wix/wix-ui-icons-common';
552
- import { CollectionPage } from '@wix/patterns/page';
553
- import {
554
- CollectionToolbarFilters,
555
- dateRangeFilter,
556
- DateRangeFilter,
557
- idNameArrayFilter,
558
- MultiAutoInlineCheckboxFilter,
559
- MultiSelectCheckboxFilter,
560
- stringsArrayFilter,
561
- Table,
562
- useTableCollection,
563
- useStaticListFilterCollection,
564
- Filter,
565
- RangeItem,
566
- OffsetQuery,
567
- } from '@wix/patterns';
568
- import { contacts } from '@wix/crm';
569
-
570
- type ContactsFilters = {
571
- level: Filter<string[]>;
572
- lastActivity: Filter<RangeItem<Date>>;
573
- locale: Filter<{ id: string; name: string }[]>;
574
- };
575
-
576
- function MoreThan2Filters() {
577
-
578
- const state = useTableCollection<contacts.Contact, ContactsFilters>({
579
- queryName: 'contacts-Basic',
580
- itemName: (item) => `${item.info?.name?.first} ${item.info?.name?.last}`,
581
- fetchData: (query: OffsetQuery<ContactsFilters>) => {
582
- const { limit, offset, search, filters } = query;
583
-
584
- let queryBuilder = contacts.queryContacts().limit(limit).skip(offset);
585
-
586
- if (search) {
587
- queryBuilder = queryBuilder.startsWith('info.name.first', search);
588
- }
589
-
590
- if (filters.level) {
591
- queryBuilder = queryBuilder.in('info.jobTitle', filters.level);
592
- }
593
-
594
- if (filters.lastActivity) {
595
- queryBuilder = queryBuilder
596
- .gt('lastActivity.activityDate', filters.lastActivity.from)
597
- .lt('lastActivity.activityDate', filters.lastActivity.to);
598
- }
599
-
600
- if (filters.locale) {
601
- queryBuilder = queryBuilder.in(
602
- 'info.locale',
603
- filters.locale.map(({ id }) => id),
604
- );
605
- }
606
-
607
- return queryBuilder.find().then(({ items = [], totalCount: total }) => ({
608
- items,
609
- total,
610
- }));
611
- },
612
- filters: {
613
- level: stringsArrayFilter(),
614
- lastActivity: dateRangeFilter(),
615
- locale: idNameArrayFilter(),
616
- },
617
- fetchErrorMessage: ({ err }) => String(err),
618
- });
619
- const collection = state.collection;
620
-
621
- const levelsCollection = useStaticListFilterCollection(
622
- collection.filters.level,
623
- [
624
- 'Beginner',
625
- 'Amateur',
626
- 'Semi-Pro',
627
- 'Professional',
628
- 'World Class',
629
- 'Legendary',
630
- 'Ultimate',
631
- ],
632
- );
633
-
634
- return (
635
- <CollectionPage height="400px">
636
- <CollectionPage.Header title={{ text: 'Contacts' }} />
637
- <CollectionPage.Content>
638
- <Table
639
- state={state}
640
- filters={
641
- <CollectionToolbarFilters inline={0}>
642
- <MultiSelectCheckboxFilter
643
- accordionItemProps={{ label: 'Level' }}
644
- popoverProps={{ appendTo: 'window' }}
645
- filter={collection.filters.level}
646
- collection={levelsCollection}
647
- renderItem={(level) => ({ title: level })}
648
- />
649
- <MultiAutoInlineCheckboxFilter
650
- filter={collection.filters.locale}
651
- accordionItemProps={{ label: 'Locale' }}
652
- data={[
653
- { id: 'en-US', name: 'en-US' },
654
- { id: 'he-IL', name: 'he-IL' },
655
- { id: 'fr-FR', name: 'fr-FR' },
656
- { id: 'es-ES', name: 'es-ES' },
657
- { id: 'de-DE', name: 'de-DE' },
658
- ]}
659
- />
660
- <DateRangeFilter
661
- filter={collection.filters.lastActivity}
662
- accordionItemProps={{ label: 'Last Activity' }}
663
- />
664
- </CollectionToolbarFilters>
665
- }
666
- columns={[
667
- {
668
- title: '',
669
- width: '50px',
670
- render: (contact) => (
671
- <Avatar
672
- name={`${contact.info?.name?.first} ${contact.info?.name?.last}`}
673
- imgProps={{ src: contact.info?.picture?.image }}
674
- />
675
- ),
676
- },
677
- {
678
- title: 'Name',
679
- width: '250px',
680
- render: (contact) =>
681
- `${contact.info?.name?.first} ${contact.info?.name?.last}`,
682
- },
683
- {
684
- title: 'Level',
685
- render: (contact) => contact.info?.jobTitle,
686
- },
687
- {
688
- title: 'Last Activity',
689
- render: (contact) =>
690
- contact.lastActivity?.activityDate?.toLocaleString(),
691
- },
692
- {
693
- title: 'Locale',
694
- render: (contact) => contact.info?.locale,
695
- },
696
- ]}
697
- actionCell={(contact, index) => ({
698
- secondaryActions: [
699
- {
700
- icon: <Edit />,
701
- text: 'Edit',
702
- disabled:
703
- index % 5 === 0 || contact.info?.name?.first?.startsWith('A'),
704
- onClick: () => {},
705
- },
706
- ],
707
- })}
708
- />
709
- </CollectionPage.Content>
710
- </CollectionPage>
711
- );
712
- }
713
- ```
58
+ Example code: read `dist/docs/ToolbarFilters/more-than-2-filters.tsx`
714
59
 
715
60
  ### Apply changes
716
61
 
717
62
  This example adds an apply filters button. If you want to get a reference to the filter that is about to be applied, use [getPendingFilter](./?path=%2Fstory%2Fcommon-state--toolbarcollectionstate).
718
63
 
719
- ```tsx
720
- import { Avatar } from '@wix/design-system';
721
- import React from 'react';
722
- import { Edit } from '@wix/wix-ui-icons-common';
723
- import { CollectionPage } from '@wix/patterns/page';
724
- import {
725
- AddApplyFiltersButton,
726
- CollectionToolbarFilters,
727
- dateRangeFilter,
728
- DateRangeFilter,
729
- Filter,
730
- idNameArrayFilter,
731
- MultiAutoInlineCheckboxFilter,
732
- MultiSelectCheckboxFilter,
733
- RangeItem,
734
- stringsArrayFilter,
735
- Table,
736
- useTableCollection,
737
- useStaticListFilterCollection,
738
- OffsetQuery,
739
- } from '@wix/patterns';
740
- import { contacts } from '@wix/crm';
741
-
742
- type ContactsFilters = {
743
- level: Filter<string[]>;
744
- lastActivity: Filter<RangeItem<Date>>;
745
- locale: Filter<{ id: string; name: string }[]>;
746
- };
747
-
748
- export function ApplyChanges() {
749
- const state = useTableCollection<contacts.Contact, ContactsFilters>({
750
- queryName: 'contacts-Basic',
751
- itemName: (item) => `${item.info?.name?.first} ${item.info?.name?.last}`,
752
- fetchData: (query: OffsetQuery<ContactsFilters>) => {
753
- const { limit, offset, search, filters } = query;
754
-
755
- let queryBuilder = contacts.queryContacts().limit(limit).skip(offset);
756
-
757
- if (search) {
758
- queryBuilder = queryBuilder.startsWith('info.name.first', search);
759
- }
760
-
761
- if (filters.level) {
762
- queryBuilder = queryBuilder.in('info.jobTitle', filters.level);
763
- }
764
-
765
- if (filters.lastActivity) {
766
- queryBuilder = queryBuilder
767
- .gt('lastActivity.activityDate', filters.lastActivity.from)
768
- .lt('lastActivity.activityDate', filters.lastActivity.to);
769
- }
770
-
771
- if (filters.locale) {
772
- queryBuilder = queryBuilder.in(
773
- 'info.locale',
774
- filters.locale.map(({ id }) => id),
775
- );
776
- }
777
-
778
- return queryBuilder.find().then(({ items = [], totalCount: total }) => ({
779
- items,
780
- total,
781
- }));
782
- },
783
- filters: {
784
- level: stringsArrayFilter(),
785
- lastActivity: dateRangeFilter(),
786
- locale: idNameArrayFilter(),
787
- },
788
- fetchErrorMessage: ({ err }) => String(err),
789
- });
790
- const collection = state.collection;
791
-
792
- const levelsCollection = useStaticListFilterCollection(
793
- state.collection.filters.level,
794
- [
795
- 'Beginner',
796
- 'Amateur',
797
- 'Semi-Pro',
798
- 'Professional',
799
- 'World Class',
800
- 'Legendary',
801
- 'Ultimate',
802
- ],
803
- );
804
-
805
- return (
806
- <CollectionPage height="400px">
807
- <CollectionPage.Header title={{ text: 'Contacts' }} />
808
- <CollectionPage.Content>
809
- <Table
810
- dataHook="apply-changes-table"
811
- state={state}
812
- AddApplyFiltersButton={AddApplyFiltersButton}
813
- filters={
814
- <CollectionToolbarFilters useNewFilters>
815
- <MultiSelectCheckboxFilter
816
- accordionItemProps={{ label: 'Level' }}
817
- popoverProps={{ appendTo: 'window' }}
818
- filter={collection.filters.level}
819
- collection={levelsCollection}
820
- renderItem={(level) => ({ title: level })}
821
- />
822
- <MultiAutoInlineCheckboxFilter
823
- filter={collection.filters.locale}
824
- accordionItemProps={{ label: 'Locale' }}
825
- data={[
826
- { id: 'en-US', name: 'en-US' },
827
- { id: 'he-IL', name: 'he-IL' },
828
- { id: 'fr-FR', name: 'fr-FR' },
829
- { id: 'es-ES', name: 'es-ES' },
830
- { id: 'de-DE', name: 'de-DE' },
831
- ]}
832
- />
833
-
834
- <DateRangeFilter
835
- filter={collection.filters.lastActivity}
836
- accordionItemProps={{ label: 'Last Activity' }}
837
- />
838
- </CollectionToolbarFilters>
839
- }
840
- columns={[
841
- {
842
- title: '',
843
- width: '50px',
844
- render: (contact) => (
845
- <Avatar
846
- name={`${contact.info?.name?.first} ${contact.info?.name?.last}`}
847
- imgProps={{ src: contact.info?.picture?.image }}
848
- />
849
- ),
850
- },
851
- {
852
- title: 'Name',
853
- width: '250px',
854
- render: (contact) =>
855
- `${contact.info?.name?.first} ${contact.info?.name?.last}`,
856
- },
857
- {
858
- title: 'Level',
859
- render: (contact) => contact.info?.jobTitle,
860
- },
861
- {
862
- title: 'Last Activity',
863
- render: (contact) =>
864
- contact.lastActivity?.activityDate?.toLocaleString(),
865
- },
866
- {
867
- title: 'Locale',
868
- render: (contact) => contact.info?.locale,
869
- },
870
- ]}
871
- actionCell={(contact, index) => ({
872
- secondaryActions: [
873
- {
874
- icon: <Edit />,
875
- text: 'Edit',
876
- disabled:
877
- index % 5 === 0 || contact.info?.name?.first?.startsWith('A'),
878
- onClick: () => {},
879
- },
880
- ],
881
- })}
882
- />
883
- </CollectionPage.Content>
884
- </CollectionPage>
885
- );
886
- }
887
- ```
64
+ Example code: read `dist/docs/ToolbarFilters/apply-changes.tsx`
888
65
 
889
66
  ### Postpone collection filter initial fetch
890
67
 
891
- ```tsx
892
- import { Avatar } from '@wix/design-system';
893
- import React from 'react';
894
- import { Edit } from '@wix/wix-ui-icons-common';
895
- import { CollectionPage } from '@wix/patterns/page';
896
- import {
897
- CollectionToolbarFilters,
898
- dateRangeFilter,
899
- DateRangeFilter,
900
- Filter,
901
- AddApplyFiltersButton,
902
- idNameArrayFilter,
903
- Table,
904
- MultiSelectCollectionFilter,
905
- RangeItem,
906
- useTableCollection,
907
- useFilterCollection,
908
- OffsetQuery,
909
- } from '@wix/patterns';
910
- import { contacts } from '@wix/crm';
911
-
912
- type ContactFilters = {
913
- contacts: Filter<Contact[]>;
914
- lastActivity: Filter<RangeItem<Date>>;
915
- };
916
-
917
- type Contact = {
918
- id: string;
919
- name: string;
920
- };
921
-
922
- function PostponeCollectionFilterInitialFetch() {
923
-
924
- const state = useTableCollection<contacts.Contact, ContactFilters>({
925
- queryName: 'PostponeCollectionFilterInitialFetch',
926
- itemName: (item) => `${item.info?.name?.first} ${item.info?.name?.last}`,
927
- fetchData: (query: OffsetQuery<ContactFilters>) => {
928
- const { limit, offset, search, filters } = query;
929
-
930
- let queryBuilder = contacts.queryContacts().limit(limit).skip(offset);
931
-
932
- if (search) {
933
- queryBuilder = queryBuilder.startsWith('info.name.first', search);
934
- }
935
-
936
- if (filters.contacts) {
937
- queryBuilder = queryBuilder.in(
938
- '_id',
939
- filters.contacts.map(({ id }) => id),
940
- );
941
- }
942
-
943
- if (filters.lastActivity) {
944
- queryBuilder = queryBuilder
945
- .gt('lastActivity.activityDate', filters.lastActivity.from)
946
- .lt('lastActivity.activityDate', filters.lastActivity.to);
947
- }
948
-
949
- return queryBuilder.find().then(({ items = [], totalCount: total }) => ({
950
- items,
951
- total,
952
- }));
953
- },
954
- filters: {
955
- contacts: idNameArrayFilter(),
956
- lastActivity: dateRangeFilter(),
957
- },
958
- fetchErrorMessage: ({ err }) => String(err),
959
- });
960
- const collection = state.collection;
961
-
962
- const contactsCollection = useFilterCollection<Contact>(
963
- collection.filters.contacts,
964
- {
965
- queryName: 'contacts',
966
- paginationMode: 'offset',
967
- fetchData: (query: OffsetQuery) => {
968
- const { limit, offset, search } = query;
969
-
970
- let queryBuilder = contacts.queryContacts().limit(limit).skip(offset);
971
-
972
- if (search) {
973
- queryBuilder = queryBuilder.startsWith('info.name.first', search);
974
- }
975
-
976
- return queryBuilder
977
- .find()
978
- .then(({ items = [], totalCount: total }) => ({
979
- items: items.map((item) => ({
980
- id: item._id!,
981
- name: `${item.info?.name?.first} ${item.info?.name?.last}`,
982
- })),
983
- total,
984
- }));
985
- },
986
- filters: {},
987
- },
988
- );
989
-
990
- return (
991
- <CollectionPage height="400px">
992
- <CollectionPage.Header title={{ text: 'Contacts' }} />
993
- <CollectionPage.Content>
994
- <Table
995
- state={state}
996
- AddApplyFiltersButton={AddApplyFiltersButton}
997
- filters={
998
- <CollectionToolbarFilters inline={0}>
999
- <MultiSelectCollectionFilter
1000
- filter={collection.filters.contacts}
1001
- collection={contactsCollection}
1002
- accordionItemProps={{ label: 'Contacts' }}
1003
- initialFetchTiming="focus"
1004
- />
1005
- <DateRangeFilter
1006
- filter={collection.filters.lastActivity}
1007
- accordionItemProps={{ label: 'Last Activity' }}
1008
- />
1009
- </CollectionToolbarFilters>
1010
- }
1011
- columns={[
1012
- {
1013
- title: '',
1014
- width: '50px',
1015
- render: (contact) => (
1016
- <Avatar
1017
- name={`${contact.info?.name?.first} ${contact.info?.name?.last}`}
1018
- imgProps={{ src: contact.info?.picture?.image }}
1019
- />
1020
- ),
1021
- },
1022
- {
1023
- title: 'Name',
1024
- width: '250px',
1025
- render: (contact) =>
1026
- `${contact.info?.name?.first} ${contact.info?.name?.last}`,
1027
- },
1028
- {
1029
- title: 'Last Activity',
1030
- render: (contact) =>
1031
- contact.lastActivity?.activityDate?.toLocaleString(),
1032
- },
1033
- ]}
1034
- actionCell={(contact, index) => ({
1035
- secondaryActions: [
1036
- {
1037
- icon: <Edit />,
1038
- text: 'Edit',
1039
- disabled:
1040
- index % 5 === 0 || contact.info?.name?.first?.startsWith('A'),
1041
- onClick: () => {},
1042
- },
1043
- ],
1044
- })}
1045
- />
1046
- </CollectionPage.Content>
1047
- </CollectionPage>
1048
- );
1049
- }
1050
- ```
68
+ Example code: read `dist/docs/ToolbarFilters/postpone-collection-filter-initial-fetch.tsx`
1051
69
 
1052
70
  ### Customize filter display tags
1053
71
 
@@ -1057,501 +75,34 @@ Customize the text of the tags displayed when a user selects a filter item.
1057
75
 
1058
76
  Default: Filter item name
1059
77
 
1060
- ```tsx
1061
- import { Avatar } from '@wix/design-system';
1062
- import React from 'react';
1063
- import { Edit } from '@wix/wix-ui-icons-common';
1064
- import { CollectionPage } from '@wix/patterns/page';
1065
- import {
1066
- CollectionToolbarFilters,
1067
- idNameArrayFilter,
1068
- Table,
1069
- MultiSelectCheckboxFilter,
1070
- SingleSelectFilter,
1071
- stringsArrayFilter,
1072
- useTableCollection,
1073
- Filter,
1074
- useStaticListFilterCollection,
1075
- OffsetQuery,
1076
- } from '@wix/patterns';
1077
- import { contacts } from '@wix/crm';
1078
-
1079
- type ContactFilters = {
1080
- locale: Filter<{ id: string; name: string }[]>;
1081
- level: Filter<string[]>;
1082
- };
1083
-
1084
- function CustomizeSelectedTagsContent() {
1085
-
1086
- const state = useTableCollection<contacts.Contact, ContactFilters>({
1087
- queryName: 'CustomizeSelectedTagsContent',
1088
- itemName: (item) => `${item.info?.name?.first} ${item.info?.name?.last}`,
1089
- fetchData: (query: OffsetQuery<ContactFilters>) => {
1090
- const { limit, offset, search, filters } = query;
1091
-
1092
- let queryBuilder = contacts.queryContacts().limit(limit).skip(offset);
1093
-
1094
- if (search) {
1095
- queryBuilder = queryBuilder.startsWith('info.name.first', search);
1096
- }
1097
-
1098
- if (filters.level) {
1099
- queryBuilder = queryBuilder.in('info.jobTitle', filters.level);
1100
- }
1101
-
1102
- if (filters.locale) {
1103
- queryBuilder = queryBuilder.in(
1104
- 'info.locale',
1105
- filters.locale.map(({ id }) => id),
1106
- );
1107
- }
1108
-
1109
- return queryBuilder.find().then(({ items = [], totalCount: total }) => ({
1110
- items,
1111
- total,
1112
- }));
1113
- },
1114
- filters: {
1115
- level: stringsArrayFilter({ itemName: (item) => `Level: ${item}` }),
1116
- locale: idNameArrayFilter({
1117
- itemName: (item) => `Locale: ${item.name}`,
1118
- }),
1119
- },
1120
- fetchErrorMessage: ({ err }) => String(err),
1121
- });
1122
- const collection = state.collection;
1123
- const localeCollection = useStaticListFilterCollection(
1124
- collection.filters.locale,
1125
- [
1126
- { id: 'en-US', name: 'en-US' },
1127
- { id: 'he-IL', name: 'he-IL' },
1128
- { id: 'fr-FR', name: 'fr-FR' },
1129
- { id: 'es-ES', name: 'es-ES' },
1130
- { id: 'de-DE', name: 'de-DE' },
1131
- ],
1132
- );
1133
-
1134
- const levelsCollection = useStaticListFilterCollection(
1135
- collection.filters.level,
1136
- [
1137
- 'Beginner',
1138
- 'Amateur',
1139
- 'Semi-Pro',
1140
- 'Professional',
1141
- 'World Class',
1142
- 'Legendary',
1143
- 'Ultimate',
1144
- ],
1145
- );
1146
-
1147
- return (
1148
- <CollectionPage height="400px">
1149
- <CollectionPage.Header title={{ text: 'Contacts' }} />
1150
- <CollectionPage.Content>
1151
- <Table
1152
- state={state}
1153
- filters={
1154
- <CollectionToolbarFilters useNewFilters>
1155
- <MultiSelectCheckboxFilter
1156
- accordionItemProps={{ label: 'Level' }}
1157
- popoverProps={{ appendTo: 'window' }}
1158
- filter={collection.filters.level!}
1159
- collection={levelsCollection}
1160
- renderItem={(level) => ({ title: level })}
1161
- renderToolbarTag={(item) => ({
1162
- children: `Title: ${item}`,
1163
- })}
1164
- />
1165
- <SingleSelectFilter
1166
- filter={collection.filters.locale}
1167
- placeholder="Select Locale"
1168
- accordionItemProps={{ label: 'Locale Single' }}
1169
- renderItem={(item) => ({ title: item.name })}
1170
- collection={localeCollection}
1171
- renderToolbarTag={(item) => ({
1172
- children: `The locale is: ${item.name}`,
1173
- })}
1174
- />
1175
- </CollectionToolbarFilters>
1176
- }
1177
- columns={[
1178
- {
1179
- title: '',
1180
- width: '50px',
1181
- render: (contact) => (
1182
- <Avatar
1183
- name={`${contact.info?.name?.first} ${contact.info?.name?.last}`}
1184
- imgProps={{ src: contact.info?.picture?.image }}
1185
- />
1186
- ),
1187
- },
1188
- {
1189
- title: 'Name',
1190
- width: '250px',
1191
- render: (contact) =>
1192
- `${contact.info?.name?.first} ${contact.info?.name?.last}`,
1193
- },
1194
- {
1195
- title: 'Level',
1196
- render: (contact) => contact.info?.jobTitle,
1197
- },
1198
- {
1199
- title: 'Locale',
1200
- render: (contact) => contact.info?.locale,
1201
- },
1202
- {
1203
- title: 'Last Activity',
1204
- render: (contact) =>
1205
- contact.lastActivity?.activityDate?.toLocaleString(),
1206
- },
1207
- ]}
1208
- actionCell={(contact, index) => ({
1209
- secondaryActions: [
1210
- {
1211
- icon: <Edit />,
1212
- text: 'Edit',
1213
- disabled:
1214
- index % 5 === 0 || contact.info?.name?.first?.startsWith('A'),
1215
- onClick: () => {},
1216
- },
1217
- ],
1218
- })}
1219
- />
1220
- </CollectionPage.Content>
1221
- </CollectionPage>
1222
- );
1223
- }
1224
- ```
78
+ Example code: read `dist/docs/ToolbarFilters/customize-filter-display-tags.tsx`
1225
79
 
1226
80
  ### Add filter presets for future dates.
1227
81
 
1228
- ```tsx
1229
- import { Avatar } from '@wix/design-system';
1230
- import React from 'react';
1231
- import { CollectionPage } from '@wix/patterns/page';
1232
- import {
1233
- CollectionToolbarFilters,
1234
- CollectionEmptyState,
1235
- DateRangeFilter,
1236
- dateRangeFilter,
1237
- OffsetQuery,
1238
- Filter,
1239
- RangeItem,
1240
- useCollection,
1241
- } from '@wix/patterns';
1242
- import { TableVirtual } from '../../../src';
1243
- import { contacts } from '@wix/crm';
1244
-
1245
- type ContactsFilters = {
1246
- lastActivity: Filter<RangeItem<Date>>;
1247
- };
1248
-
1249
- function FutureDateRangeFilter() {
1250
- const collection = useCollection<contacts.Contact, ContactsFilters>({
1251
- queryName: 'contacts-Basic',
1252
- itemName: (item) => `${item.info?.name?.first} ${item.info?.name?.last}`,
1253
- fetchData: (query: OffsetQuery<ContactsFilters>) => {
1254
- const { limit, offset, search, filters } = query;
1255
-
1256
- let queryBuilder = contacts.queryContacts().limit(limit).skip(offset);
1257
-
1258
- if (search) {
1259
- queryBuilder = queryBuilder.startsWith('info.name.first', search);
1260
- }
1261
-
1262
- if (filters.lastActivity) {
1263
- queryBuilder = queryBuilder
1264
- .gt('lastActivity.activityDate', filters.lastActivity.from)
1265
- .lt('lastActivity.activityDate', filters.lastActivity.to);
1266
- }
1267
-
1268
- return queryBuilder.find().then(({ items = [], totalCount: total }) => ({
1269
- items,
1270
- total,
1271
- }));
1272
- },
1273
- fetchErrorMessage: ({ err }) => String(err),
1274
- filters: {
1275
- lastActivity: dateRangeFilter(),
1276
- },
1277
- });
1278
-
1279
- return (
1280
- <CollectionPage height="400px">
1281
- <CollectionPage.Header title={{ text: 'Contacts' }} />
1282
- <CollectionPage.Content>
1283
- <TableVirtual
1284
- state={collection}
1285
- rowHeight={78}
1286
- columns={[
1287
- {
1288
- title: '',
1289
- width: '50px',
1290
- render: (contact) => (
1291
- <Avatar
1292
- name={`${contact.info?.name?.first} ${contact.info?.name?.last}`}
1293
- imgProps={{ src: contact.info?.picture?.image }}
1294
- />
1295
- ),
1296
- },
1297
- {
1298
- title: 'Name',
1299
- width: '250px',
1300
- render: (contact) =>
1301
- `${contact.info?.name?.first} ${contact.info?.name?.last}`,
1302
- },
1303
- {
1304
- title: 'Last Activity',
1305
- render: (contact) =>
1306
- contact.lastActivity?.activityDate?.toLocaleString(),
1307
- },
1308
- ]}
1309
- emptyState={<CollectionEmptyState />}
1310
- filters={
1311
- <CollectionToolbarFilters
1312
- panelTitle="Filter your contacts"
1313
- useNewFilters
1314
- >
1315
- <DateRangeFilter
1316
- filter={collection.filters.lastActivity}
1317
- accordionItemProps={{ label: 'Last Activity' }}
1318
- mode="COMBINE"
1319
- dateRangeOptions={[
1320
- 'SEVEN_DAYS',
1321
- 'FOURTEEN_DAYS',
1322
- 'MONTH',
1323
- 'TODAY',
1324
- 'TOMORROW',
1325
- 'NEXT_THREE_DAYS',
1326
- 'NEXT_SEVEN_DAYS',
1327
- 'NEXT_THIRTY_DAYS',
1328
- ]}
1329
- />
1330
- </CollectionToolbarFilters>
1331
- }
1332
- />
1333
- </CollectionPage.Content>
1334
- </CollectionPage>
1335
- );
1336
- }
1337
- ```
82
+ Example code: read `dist/docs/ToolbarFilters/add-filter-presets-for-future-dates.tsx`
1338
83
 
1339
84
  ### Mini toolbar
1340
85
 
1341
86
  To create a mini toolbar, set the `width` prop of the `<Box>` component to a minimum of `228px`.
1342
87
 
1343
- ```tsx
1344
- import { Avatar, Box } from '@wix/design-system';
1345
- import React from 'react';
1346
- import { CollectionPage } from '@wix/patterns/page';
1347
- import {
1348
- CollectionEmptyState,
1349
- Table,
1350
- OffsetQuery,
1351
- useOptimisticActions,
1352
- useTableCollection,
1353
- } from '@wix/patterns';
1354
- import { contacts } from '@wix/crm';
1355
-
1356
- function MinifiedToolbarScroll() {
1357
- const state = useTableCollection<contacts.Contact>({
1358
- queryName: 'MinifiedToolbarScroll',
1359
- itemName: (item) => `${item.info?.name?.first} ${item.info?.name?.last}`,
1360
- fetchData: (query: OffsetQuery) => {
1361
- const { limit, offset, search, filters } = query;
1362
-
1363
- let queryBuilder = contacts.queryContacts().limit(limit).skip(offset);
1364
-
1365
- if (search) {
1366
- queryBuilder = queryBuilder.startsWith('info.name.first', search);
1367
- }
1368
-
1369
- return queryBuilder.find().then(({ items = [], totalCount: total }) => ({
1370
- items,
1371
- total,
1372
- }));
1373
- },
1374
- fetchErrorMessage: () => 'Error fetching contacts',
1375
- limit: 50,
1376
- filters: {},
1377
- });
1378
- const collection = state.collection;
1379
- useOptimisticActions(collection);
1380
-
1381
- return (
1382
- <CollectionPage height="622px">
1383
- <CollectionPage.Header title={{ text: 'Contacts' }} />
1384
- <CollectionPage.Content>
1385
- <Box direction="vertical" width="390px" height="482px">
1386
- <Table
1387
- state={collection}
1388
- horizontalScroll
1389
- internalScroll
1390
- columns={[
1391
- {
1392
- id: 'avatar',
1393
- title: '',
1394
- hideable: true,
1395
- width: '50px',
1396
- render: (contact) => (
1397
- <Avatar
1398
- name={`${contact.info?.name?.first} ${contact.info?.name?.last}`}
1399
- imgProps={{ src: contact.info?.picture?.image }}
1400
- />
1401
- ),
1402
- },
1403
- {
1404
- title: 'Name',
1405
- render: (contact) =>
1406
- `${contact.info?.name?.first} ${contact.info?.name?.last}`,
1407
- },
1408
- ]}
1409
- actionCell={() => {
1410
- return {
1411
- primaryAction: {
1412
- text: 'Edit',
1413
- onClick: () => {},
1414
- },
1415
- };
1416
- }}
1417
- emptyState={<CollectionEmptyState />}
1418
- />
1419
- </Box>
1420
- </CollectionPage.Content>
1421
- </CollectionPage>
1422
- );
1423
- }
1424
- ```
88
+ Example code: read `dist/docs/ToolbarFilters/mini-toolbar.tsx`
1425
89
 
1426
90
  ### Mini toolbar with filters
1427
91
 
1428
92
  To create a mini toolbar, set the `width` prop of the `<Box>` component to a minimum of `228px`. To add filters, set the Table component's `filters` prop.
1429
93
 
1430
- ```tsx
1431
- import { Avatar, Box } from '@wix/design-system';
1432
- import React from 'react';
1433
- import { CollectionPage } from '@wix/patterns/page';
1434
- import {
1435
- CollectionEmptyState,
1436
- CollectionToolbarFilters,
1437
- Filter,
1438
- OffsetQuery,
1439
- SingleSelectFilter,
1440
- stringsArrayFilter,
1441
- Table,
1442
- useTableCollection,
1443
- useOptimisticActions,
1444
- useStaticListFilterCollection,
1445
- } from '@wix/patterns';
1446
- import { contacts } from '@wix/crm';
1447
-
1448
- type ContactsFilters = {
1449
- level: Filter<string[]>;
1450
- };
1451
-
1452
- function MinifiedToolbarSearchAndFilters() {
94
+ Example code: read `dist/docs/ToolbarFilters/mini-toolbar-with-filters.tsx`
1453
95
 
1454
- const state = useTableCollection<contacts.Contact, ContactsFilters>({
1455
- queryName: 'MinifiedToolbarScroll',
1456
- itemName: (item) => `${item.info?.name?.first} ${item.info?.name?.last}`,
1457
- fetchData: (query: OffsetQuery<ContactsFilters>) => {
1458
- const { limit, offset, search, filters } = query;
1459
-
1460
- let queryBuilder = contacts.queryContacts().limit(limit).skip(offset);
1461
-
1462
- if (search) {
1463
- queryBuilder = queryBuilder.startsWith('info.name.first', search);
1464
- }
1465
-
1466
- if (filters.level) {
1467
- queryBuilder = queryBuilder.in('info.jobTitle', filters.level);
1468
- }
1469
-
1470
- return queryBuilder.find().then(({ items = [], totalCount: total }) => ({
1471
- items,
1472
- total,
1473
- }));
1474
- },
1475
- fetchErrorMessage: () => 'Error fetching contacts',
1476
- limit: 50,
1477
- filters: {
1478
- level: stringsArrayFilter(),
1479
- },
1480
- });
1481
- const collection = state.collection;
1482
- useOptimisticActions(collection);
96
+ ## API
1483
97
 
1484
- const levelsCollection = useStaticListFilterCollection(
1485
- collection.filters.level,
1486
- [
1487
- 'Beginner',
1488
- 'Amateur',
1489
- 'Semi-Pro',
1490
- 'Professional',
1491
- 'World Class',
1492
- 'Legendary',
1493
- 'Ultimate',
1494
- 'Ye',
1495
- ],
1496
- );
98
+ ### Props
1497
99
 
1498
- return (
1499
- <CollectionPage height="622px">
1500
- <CollectionPage.Header title={{ text: 'Contacts' }} />
1501
- <CollectionPage.Content>
1502
- <Box direction="vertical" width="390px" height="482px">
1503
- <Table
1504
- state={collection}
1505
- internalScroll
1506
- filters={
1507
- <CollectionToolbarFilters inline={0}>
1508
- <SingleSelectFilter
1509
- accordionItemProps={{
1510
- label: 'Contact Level',
1511
- }}
1512
- border="round"
1513
- filter={collection.filters.level}
1514
- collection={levelsCollection}
1515
- />
1516
- </CollectionToolbarFilters>
1517
- }
1518
- columns={[
1519
- {
1520
- id: 'avatar',
1521
- title: '',
1522
- hideable: true,
1523
- width: '50px',
1524
- render: (contact) => (
1525
- <Avatar
1526
- name={`${contact.info?.name?.first} ${contact.info?.name?.last}`}
1527
- imgProps={{ src: contact.info?.picture?.image }}
1528
- />
1529
- ),
1530
- },
1531
- {
1532
- title: 'Name',
1533
- render: (contact) =>
1534
- `${contact.info?.name?.first} ${contact.info?.name?.last}`,
1535
- },
1536
- ]}
1537
- actionCell={() => {
1538
- return {
1539
- primaryAction: {
1540
- text: 'Edit',
1541
- onClick: () => {},
1542
- },
1543
- };
1544
- }}
1545
- emptyState={<CollectionEmptyState />}
1546
- />
1547
- </Box>
1548
- </CollectionPage.Content>
1549
- </CollectionPage>
1550
- );
1551
- }
1552
- ```
100
+ Read `dist/dts-bundle/components/CollectionToolbarFilters.d.ts` for `ToolbarFilters`'s full prop list, with types and
101
+ descriptions. They are not repeated here, so the bundle is the single source of truth.
1553
102
 
1554
- ## API
103
+ A one-line stub in that file is an answer, not a truncation: an empty body with a
104
+ "Produced by" note means you get the value from that hook or factory rather than
105
+ constructing it. `dist/dts-bundle/index.json` maps every name to its bundle path.
1555
106
 
1556
107
  ## BI
1557
108