@wix/patterns 1.447.0 → 1.448.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 (569) 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/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +3 -3
  10. package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js.map +1 -1
  11. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  12. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  13. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  14. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  15. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
  16. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  17. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  18. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  19. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  20. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  21. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  22. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  23. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  24. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  25. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  26. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  27. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  28. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  29. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  30. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  31. package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
  32. package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
  33. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  34. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  35. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  36. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  37. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
  38. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  39. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js +3 -3
  40. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
  41. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  42. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  43. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  44. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  45. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  46. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
  47. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  48. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  49. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  50. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  51. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
  52. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  53. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
  54. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
  55. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
  56. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  57. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  58. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  59. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  60. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  61. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  62. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  63. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
  64. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
  65. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  66. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  67. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  68. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  69. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  70. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  71. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  72. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  73. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
  74. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  75. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  76. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  77. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  78. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  79. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  80. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js.map +1 -1
  81. package/dist/cjs/components/EntityPage/EntityPage.uni.driver.js +2 -0
  82. package/dist/cjs/components/EntityPage/EntityPage.uni.driver.js.map +1 -1
  83. package/dist/cjs/components/EntityPage/EntityPageActionsBar.js +88 -10
  84. package/dist/cjs/components/EntityPage/EntityPageActionsBar.js.map +1 -1
  85. package/dist/cjs/components/EntityPage/EntityPageDeleteAction.js +71 -0
  86. package/dist/cjs/components/EntityPage/EntityPageDeleteAction.js.map +1 -0
  87. package/dist/cjs/components/EntityPage/EntityPageDeleteConfirmModal.js +46 -0
  88. package/dist/cjs/components/EntityPage/EntityPageDeleteConfirmModal.js.map +1 -0
  89. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  90. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  91. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  92. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  93. package/dist/cjs/components/FormPage/FormPageActionsBar.js +6 -5
  94. package/dist/cjs/components/FormPage/FormPageActionsBar.js.map +1 -1
  95. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  96. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  97. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  98. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  99. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  100. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  101. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  102. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  103. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  104. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  105. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  106. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  107. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  108. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  109. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  110. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  111. package/dist/cjs/components/NestedTable/NestedTableRow.js +2 -2
  112. package/dist/cjs/components/NestedTable/NestedTableRow.js.map +1 -1
  113. package/dist/cjs/components/NestedTable/NestedTableRow.st.css +14 -4
  114. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +12 -6
  115. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  116. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css +16 -7
  117. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +8 -3
  118. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  119. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css +5 -1
  120. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +6 -3
  121. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  122. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragHandle.js +7 -4
  123. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragHandle.js.map +1 -1
  124. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  125. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  126. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  127. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  128. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  129. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  130. package/dist/cjs/components/QuerySearch.js +4 -1
  131. package/dist/cjs/components/QuerySearch.js.map +1 -1
  132. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  133. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  134. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +10 -10
  135. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  136. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  137. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  138. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  139. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  140. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js +4 -4
  141. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
  142. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  143. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  144. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  145. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  146. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  147. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  148. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  149. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  150. package/dist/cjs/components/common.st.css.js +4 -4
  151. package/dist/cjs/components/common.st.css.js.map +1 -1
  152. package/dist/cjs/exports/schema.js.map +1 -1
  153. package/dist/cjs/hooks/index.js +6 -0
  154. package/dist/cjs/hooks/index.js.map +1 -1
  155. package/dist/cjs/hooks/useEntityPage.js.map +1 -1
  156. package/dist/cjs/hooks/useOptionalCachedState.js +2 -0
  157. package/dist/cjs/hooks/useOptionalCachedState.js.map +1 -1
  158. package/dist/cjs/hooks/useSyncCollectionOnEntityDelete.js +40 -0
  159. package/dist/cjs/hooks/useSyncCollectionOnEntityDelete.js.map +1 -0
  160. package/dist/cjs/hooks/useSyncCollectionOnEntityReturn.js +13 -20
  161. package/dist/cjs/hooks/useSyncCollectionOnEntityReturn.js.map +1 -1
  162. package/dist/cjs/schema/sourceMutations.js +4 -1
  163. package/dist/cjs/schema/sourceMutations.js.map +1 -1
  164. package/dist/cjs/schema/useEntityPage.js +24 -4
  165. package/dist/cjs/schema/useEntityPage.js.map +1 -1
  166. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  167. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  168. package/dist/cjs/state/EditableTable/CellValueState.js +35 -10
  169. package/dist/cjs/state/EditableTable/CellValueState.js.map +1 -1
  170. package/dist/cjs/state/EditableTable/MutationState.js +25 -2
  171. package/dist/cjs/state/EditableTable/MutationState.js.map +1 -1
  172. package/dist/cjs/state/EntityPage/EntityPageDeleteActionState.js +147 -0
  173. package/dist/cjs/state/EntityPage/EntityPageDeleteActionState.js.map +1 -0
  174. package/dist/cjs/state/EntityPage/EntityPageState.js +33 -2
  175. package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
  176. package/dist/cjs/state/EntityPage/index.js +6 -0
  177. package/dist/cjs/state/EntityPage/index.js.map +1 -1
  178. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  179. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  180. package/dist/cjs/state/WixPatternsRouterState.js.map +1 -1
  181. package/dist/cjs/state/index.js +6 -0
  182. package/dist/cjs/state/index.js.map +1 -1
  183. package/dist/cjs/styles.global.css +2 -2
  184. package/dist/cjs/version.js +1 -1
  185. package/dist/cjs/version.js.map +1 -1
  186. package/dist/docs/Allow Users to Add Extended Fields.md +18 -16
  187. package/dist/docs/CollectionSearch.md +3 -1
  188. package/dist/docs/CollectionToolbar.md +1 -1
  189. package/dist/docs/Component Tests.md +4 -4
  190. package/dist/docs/CustomColumns.md +1 -1
  191. package/dist/docs/CustomFieldType.md +9 -9
  192. package/dist/docs/CustomFieldsViewWidget.md +10 -10
  193. package/dist/docs/CustomFieldsWidget.md +46 -35
  194. package/dist/docs/Display Extended Fields.md +21 -15
  195. package/dist/docs/Enable Filters for Extended Fields.md +4 -2
  196. package/dist/docs/EntityPage.AdditionalContent.md +1 -1
  197. package/dist/docs/EntityPage.Card.md +11 -11
  198. package/dist/docs/EntityPage.Content.md +1 -1
  199. package/dist/docs/EntityPage.Header.md +9 -6
  200. package/dist/docs/EntityPage.MainContent.md +1 -1
  201. package/dist/docs/EntityPageState.md +1 -1
  202. package/dist/docs/Explore Apps.md +8 -1
  203. package/dist/docs/ExportTo.md +6 -6
  204. package/dist/docs/Filter Overview.md +23 -8
  205. package/dist/docs/Grid.md +3 -3
  206. package/dist/docs/ImportButton.md +18 -8
  207. package/dist/docs/MultiBulkActionToolbar.md +1 -1
  208. package/dist/docs/MultiLevelSorting.md +3 -3
  209. package/dist/docs/Next.js.md +19 -19
  210. package/dist/docs/NumberRangeFilter.md +5 -5
  211. package/dist/docs/PageWrapper.md +1 -1
  212. package/dist/docs/PatternsReactRouter.md +77 -1
  213. package/dist/docs/PickerContent.md +14 -9
  214. package/dist/docs/PickerModal.md +4 -4
  215. package/dist/docs/PrimaryActionButton.md +2 -2
  216. package/dist/docs/SettingsPage.AdditionalContent.md +1 -1
  217. package/dist/docs/SettingsPage.Card.md +11 -11
  218. package/dist/docs/SettingsPage.Content.md +1 -1
  219. package/dist/docs/SettingsPage.Header.md +8 -5
  220. package/dist/docs/SettingsPage.MainContent.md +1 -1
  221. package/dist/docs/SettingsPageState.md +1 -1
  222. package/dist/docs/Suggestions.md +10 -10
  223. package/dist/docs/SummaryBar.md +6 -6
  224. package/dist/docs/TableTopNotification.md +1 -1
  225. package/dist/docs/TabsFilter.md +5 -5
  226. package/dist/docs/Tags.md +15 -7
  227. package/dist/docs/TagsWidget.md +48 -31
  228. package/dist/docs/ToolbarFilters.md +4 -4
  229. package/dist/docs/ToolbarTitle.md +4 -4
  230. package/dist/docs/Views.md +8 -8
  231. package/dist/docs/WidgetsFormProvider.md +11 -7
  232. package/dist/docs/WixPatternsProvider.md +48 -4
  233. package/dist/docs/Working with Cache.md +5 -5
  234. package/dist/docs/bulkActionModal.md +13 -8
  235. package/dist/docs/index.json +31 -31
  236. package/dist/docs/useAmbassadorCollection.md +4 -1
  237. package/dist/docs/useEntity.md +8 -5
  238. package/dist/docs/useEntityPage.md +9 -7
  239. package/dist/docs/useEntityPageContext.md +1 -1
  240. package/dist/docs/useGridCollection.md +8 -2
  241. package/dist/docs/useNestedTable.md +2 -2
  242. package/dist/docs/useOptimisticActions.md +2 -2
  243. package/dist/docs/usePatternsNavigate.md +8 -2
  244. package/dist/docs/usePickerContent.md +5 -2
  245. package/dist/docs/usePickerModal.md +4 -4
  246. package/dist/docs/usePickerStandalone.md +5 -2
  247. package/dist/docs/useSettingsPage.md +7 -7
  248. package/dist/docs/useSettingsPageContext.md +1 -1
  249. package/dist/docs/useTableCollection.md +8 -2
  250. package/dist/docs/useTableGridSwitchCollection.md +8 -2
  251. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  252. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
  253. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
  254. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
  255. package/dist/esm/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +2 -2
  256. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  257. package/dist/esm/components/Collapse/Collapse.st.css.js.map +1 -1
  258. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  259. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  260. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  261. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  262. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  263. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  264. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  265. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  266. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  267. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  268. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  269. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  270. package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
  271. package/dist/esm/components/EditableTable/EditableCell.st.css.js.map +1 -1
  272. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  273. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  274. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
  275. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  276. package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js +2 -2
  277. package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
  278. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  279. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  280. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  281. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  282. package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  283. package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
  284. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  285. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  286. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
  287. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
  288. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
  289. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
  290. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  291. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  292. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
  293. package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +2 -2
  294. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  295. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  296. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  297. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  298. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  299. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
  300. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  301. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  302. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  303. package/dist/esm/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  304. package/dist/esm/components/EntityPage/EntityPage.uni.driver.js +3 -1
  305. package/dist/esm/components/EntityPage/EntityPage.uni.driver.js.map +1 -1
  306. package/dist/esm/components/EntityPage/EntityPageActionsBar.js +46 -3
  307. package/dist/esm/components/EntityPage/EntityPageActionsBar.js.map +1 -1
  308. package/dist/esm/components/EntityPage/EntityPageDeleteAction.js +31 -0
  309. package/dist/esm/components/EntityPage/EntityPageDeleteAction.js.map +1 -0
  310. package/dist/esm/components/EntityPage/EntityPageDeleteConfirmModal.js +16 -0
  311. package/dist/esm/components/EntityPage/EntityPageDeleteConfirmModal.js.map +1 -0
  312. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  313. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  314. package/dist/esm/components/Fade/Fade.st.css.js.map +1 -1
  315. package/dist/esm/components/FormPage/FormPageActionsBar.js +2 -1
  316. package/dist/esm/components/FormPage/FormPageActionsBar.js.map +1 -1
  317. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  318. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  319. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  320. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  321. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  322. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  323. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  324. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  325. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  326. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  327. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  328. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  329. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  330. package/dist/esm/components/NestedTable/NestedTableRow.js +1 -3
  331. package/dist/esm/components/NestedTable/NestedTableRow.js.map +1 -1
  332. package/dist/esm/components/NestedTable/NestedTableRow.st.css +14 -4
  333. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +3 -3
  334. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  335. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css +16 -7
  336. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +3 -3
  337. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  338. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css +5 -1
  339. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +3 -3
  340. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  341. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragHandle.js +4 -1
  342. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragHandle.js.map +1 -1
  343. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  344. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  345. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  346. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  347. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  348. package/dist/esm/components/QuerySearch.js +3 -1
  349. package/dist/esm/components/QuerySearch.js.map +1 -1
  350. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  351. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
  352. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  353. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  354. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  355. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  356. package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js +2 -2
  357. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  358. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  359. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  360. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  361. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  362. package/dist/esm/components/common.st.css.js +2 -2
  363. package/dist/esm/components/common.st.css.js.map +1 -1
  364. package/dist/esm/hooks/index.js +1 -0
  365. package/dist/esm/hooks/index.js.map +1 -1
  366. package/dist/esm/hooks/useEntityPage.js.map +1 -1
  367. package/dist/esm/hooks/useOptionalCachedState.js +2 -0
  368. package/dist/esm/hooks/useOptionalCachedState.js.map +1 -1
  369. package/dist/esm/hooks/useSyncCollectionOnEntityDelete.js +36 -0
  370. package/dist/esm/hooks/useSyncCollectionOnEntityDelete.js.map +1 -0
  371. package/dist/esm/hooks/useSyncCollectionOnEntityReturn.js +24 -21
  372. package/dist/esm/hooks/useSyncCollectionOnEntityReturn.js.map +1 -1
  373. package/dist/esm/schema/sourceMutations.js +4 -1
  374. package/dist/esm/schema/sourceMutations.js.map +1 -1
  375. package/dist/esm/schema/useEntityPage.js +23 -2
  376. package/dist/esm/schema/useEntityPage.js.map +1 -1
  377. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  378. package/dist/esm/state/EditableTable/CellValueState.js +24 -11
  379. package/dist/esm/state/EditableTable/CellValueState.js.map +1 -1
  380. package/dist/esm/state/EditableTable/MutationState.js +26 -2
  381. package/dist/esm/state/EditableTable/MutationState.js.map +1 -1
  382. package/dist/esm/state/EntityPage/EntityPageDeleteActionState.js +136 -0
  383. package/dist/esm/state/EntityPage/EntityPageDeleteActionState.js.map +1 -0
  384. package/dist/esm/state/EntityPage/EntityPageState.js +29 -1
  385. package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
  386. package/dist/esm/state/EntityPage/index.js +1 -0
  387. package/dist/esm/state/EntityPage/index.js.map +1 -1
  388. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  389. package/dist/esm/state/WixPatternsRouterState.js.map +1 -1
  390. package/dist/esm/state/index.js +1 -0
  391. package/dist/esm/state/index.js.map +1 -1
  392. package/dist/esm/styles.global.css +2 -2
  393. package/dist/esm/version.js +1 -1
  394. package/dist/types/components/Collapse/Collapse.st.css.d.ts.map +1 -1
  395. package/dist/types/components/CollectionPageNew/CollectionPage.st.css.d.ts.map +1 -1
  396. package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.st.css.d.ts.map +1 -1
  397. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
  398. package/dist/types/components/EditableTable/EditableCell.st.css.d.ts.map +1 -1
  399. package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts.map +1 -1
  400. package/dist/types/components/EditableTable/cellTypes/array/Edit.st.css.d.ts.map +1 -1
  401. package/dist/types/components/EditableTable/cellTypes/boolean/Edit.st.css.d.ts.map +1 -1
  402. package/dist/types/components/EditableTable/cellTypes/boolean/View.st.css.d.ts.map +1 -1
  403. package/dist/types/components/EditableTable/cellTypes/color/Edit.st.css.d.ts.map +1 -1
  404. package/dist/types/components/EditableTable/cellTypes/datetime/View.st.css.d.ts.map +1 -1
  405. package/dist/types/components/EditableTable/cellTypes/object/View.st.css.d.ts.map +1 -1
  406. package/dist/types/components/EditableTable/cellTypes/time/Edit.st.css.d.ts.map +1 -1
  407. package/dist/types/components/EntityPage/EntityPage.uni.driver.d.ts +97 -1
  408. package/dist/types/components/EntityPage/EntityPage.uni.driver.d.ts.map +1 -1
  409. package/dist/types/components/EntityPage/EntityPageActionsBar.d.ts +2 -2
  410. package/dist/types/components/EntityPage/EntityPageActionsBar.d.ts.map +1 -1
  411. package/dist/types/components/EntityPage/EntityPageDeleteAction.d.ts +7 -0
  412. package/dist/types/components/EntityPage/EntityPageDeleteAction.d.ts.map +1 -0
  413. package/dist/types/components/EntityPage/EntityPageDeleteConfirmModal.d.ts +11 -0
  414. package/dist/types/components/EntityPage/EntityPageDeleteConfirmModal.d.ts.map +1 -0
  415. package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
  416. package/dist/types/components/FormPage/FormPageActionsBar.d.ts +3 -2
  417. package/dist/types/components/FormPage/FormPageActionsBar.d.ts.map +1 -1
  418. package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
  419. package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
  420. package/dist/types/components/MaxHeightText/MaxHeightText.st.css.d.ts.map +1 -1
  421. package/dist/types/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.d.ts.map +1 -1
  422. package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
  423. package/dist/types/components/NestedTable/NestedTableRow.d.ts.map +1 -1
  424. package/dist/types/components/NestedTable/NestedTableRow.st.css.d.ts +7 -1
  425. package/dist/types/components/NestedTable/NestedTableRow.st.css.d.ts.map +1 -1
  426. package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts +6 -1
  427. package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
  428. package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.d.ts +4 -1
  429. package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.d.ts.map +1 -1
  430. package/dist/types/components/NestedTableDragAndDrop/NestedTableDragHandle.d.ts.map +1 -1
  431. package/dist/types/components/PickerContent/PickerContentAdditionalStep.st.css.d.ts.map +1 -1
  432. package/dist/types/components/PickerTableListItem/PickerTableListItem.st.css.d.ts.map +1 -1
  433. package/dist/types/components/QuerySearch.d.ts.map +1 -1
  434. package/dist/types/components/SetupWidget/SetupWidget.st.css.d.ts.map +1 -1
  435. package/dist/types/components/SkeletonCard/SkeletonCard.st.css.d.ts.map +1 -1
  436. package/dist/types/components/ToolbarItemBox/ToolbarItemBox.st.css.d.ts.map +1 -1
  437. package/dist/types/components/common.st.css.d.ts.map +1 -1
  438. package/dist/types/exports/schema.d.ts +1 -1
  439. package/dist/types/exports/schema.d.ts.map +1 -1
  440. package/dist/types/hooks/index.d.ts +1 -0
  441. package/dist/types/hooks/index.d.ts.map +1 -1
  442. package/dist/types/hooks/useEntityPage.d.ts +1 -1
  443. package/dist/types/hooks/useEntityPage.d.ts.map +1 -1
  444. package/dist/types/hooks/useOptionalCachedState.d.ts.map +1 -1
  445. package/dist/types/hooks/useSyncCollectionOnEntityDelete.d.ts +4 -0
  446. package/dist/types/hooks/useSyncCollectionOnEntityDelete.d.ts.map +1 -0
  447. package/dist/types/hooks/useSyncCollectionOnEntityReturn.d.ts +1 -0
  448. package/dist/types/hooks/useSyncCollectionOnEntityReturn.d.ts.map +1 -1
  449. package/dist/types/schema/sourceMutations.d.ts.map +1 -1
  450. package/dist/types/schema/useEntityPage.d.ts.map +1 -1
  451. package/dist/types/state/EditableTable/CellValueState.d.ts.map +1 -1
  452. package/dist/types/state/EditableTable/MutationState.d.ts +5 -3
  453. package/dist/types/state/EditableTable/MutationState.d.ts.map +1 -1
  454. package/dist/types/state/EntityPage/EntityPageDeleteActionState.d.ts +55 -0
  455. package/dist/types/state/EntityPage/EntityPageDeleteActionState.d.ts.map +1 -0
  456. package/dist/types/state/EntityPage/EntityPageState.d.ts +16 -0
  457. package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
  458. package/dist/types/state/EntityPage/index.d.ts +1 -0
  459. package/dist/types/state/EntityPage/index.d.ts.map +1 -1
  460. package/dist/types/state/WixPatternsRouterState.d.ts +1 -0
  461. package/dist/types/state/WixPatternsRouterState.d.ts.map +1 -1
  462. package/dist/types/state/index.d.ts +1 -0
  463. package/dist/types/state/index.d.ts.map +1 -1
  464. package/dist/types/testkit/enzyme.d.ts +94 -0
  465. package/dist/types/testkit/enzyme.d.ts.map +1 -1
  466. package/dist/types/testkit/jsdom.d.ts +94 -0
  467. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  468. package/dist/types/testkit/playwright.d.ts +94 -0
  469. package/dist/types/testkit/playwright.d.ts.map +1 -1
  470. package/dist/types/testkit/puppeteer.d.ts +94 -0
  471. package/dist/types/testkit/puppeteer.d.ts.map +1 -1
  472. package/dist/types/version.d.ts +1 -1
  473. package/package.json +7 -7
  474. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  475. package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
  476. package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
  477. package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
  478. package/src/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.ts +2 -2
  479. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  480. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  481. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  482. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  483. package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
  484. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  485. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  486. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  487. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  488. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  489. package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
  490. package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
  491. package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
  492. package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
  493. package/src/components/EditableTable/cellTypes/array/Edit.st.css.ts +2 -2
  494. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  495. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  496. package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
  497. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  498. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  499. package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +2 -2
  500. package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
  501. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
  502. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
  503. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  504. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  505. package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
  506. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
  507. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  508. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  509. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  510. package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
  511. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  512. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  513. package/src/components/EmptyState/EmptyStateBase.st.css.ts +2 -2
  514. package/src/components/EntityPage/EntityPage.uni.driver.ts +13 -0
  515. package/src/components/EntityPage/EntityPageActionsBar.tsx +93 -9
  516. package/src/components/EntityPage/EntityPageDeleteAction.tsx +50 -0
  517. package/src/components/EntityPage/EntityPageDeleteConfirmModal.tsx +40 -0
  518. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  519. package/src/components/Fade/Fade.st.css.ts +2 -2
  520. package/src/components/FormPage/FormPageActionsBar.tsx +4 -1
  521. package/src/components/Heading/Heading.st.css.ts +2 -2
  522. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  523. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  524. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  525. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  526. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  527. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  528. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  529. package/src/components/NestedTable/NestedTableRow.st.css +14 -4
  530. package/src/components/NestedTable/NestedTableRow.st.css.ts +3 -3
  531. package/src/components/NestedTable/NestedTableRow.tsx +1 -4
  532. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css +16 -7
  533. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +3 -3
  534. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css +5 -1
  535. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +3 -3
  536. package/src/components/NestedTableDragAndDrop/NestedTableDragHandle.tsx +4 -2
  537. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  538. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  539. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  540. package/src/components/QuerySearch.tsx +3 -0
  541. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  542. package/src/components/SetupWidget/SetupWidget.st.css.ts +2 -2
  543. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  544. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  545. package/src/components/Table/AddFieldColumnHeader.st.css.ts +2 -2
  546. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  547. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  548. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  549. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  550. package/src/components/common.st.css.ts +2 -2
  551. package/src/exports/schema.ts +1 -0
  552. package/src/hooks/index.ts +1 -0
  553. package/src/hooks/useEntityPage.ts +2 -0
  554. package/src/hooks/useOptionalCachedState.ts +2 -0
  555. package/src/hooks/useSyncCollectionOnEntityDelete.ts +74 -0
  556. package/src/hooks/useSyncCollectionOnEntityReturn.ts +26 -23
  557. package/src/schema/sourceMutations.ts +5 -2
  558. package/src/schema/useEntityPage.ts +42 -6
  559. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  560. package/src/state/EditableTable/CellValueState.ts +37 -16
  561. package/src/state/EditableTable/MutationState.ts +58 -3
  562. package/src/state/EntityPage/EntityPageDeleteActionState.ts +228 -0
  563. package/src/state/EntityPage/EntityPageState.ts +48 -1
  564. package/src/state/EntityPage/index.ts +1 -0
  565. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  566. package/src/state/WixPatternsRouterState.ts +1 -0
  567. package/src/state/index.ts +1 -0
  568. package/src/styles.global.css +2 -2
  569. package/src/version.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  import { useState } from 'react';
2
2
  import type { FieldValues } from 'react-hook-form';
3
3
  import type { SchemaSource } from '@wix/bex-core';
4
- import type { EntityPageState } from '../state';
4
+ import type { EntityPageDeleteAction, EntityPageState } from '../state';
5
5
  import {
6
6
  useEntityPage as useOpenEntityPage,
7
7
  type UseEntityPageParams,
@@ -32,7 +32,8 @@ export function useEntityPage<T, V extends FieldValues = FieldValues>(
32
32
  source: SchemaSource<T>,
33
33
  options: SchemaEntityPageOptions<T, V>,
34
34
  ): EntityPageState<T, V> {
35
- const { entityId, fetch, onSave, createLocalItem, ...rest } = options;
35
+ const { entityId, fetch, onSave, createLocalItem, deleteAction, ...rest } =
36
+ options;
36
37
 
37
38
  // The derived read and write need values that change or don't exist yet when
38
39
  // the state is created: the state itself (the save merges into the loaded
@@ -46,6 +47,7 @@ export function useEntityPage<T, V extends FieldValues = FieldValues>(
46
47
  fetch:
47
48
  fetch ?? (() => fetchFromSource(source, page.entityId, createLocalItem)),
48
49
  onSave: onSave ?? (() => saveToSource(source, page)),
50
+ deleteAction: resolveDeleteAction(page, deleteAction),
49
51
  } as UseEntityPageParams<T, V>);
50
52
 
51
53
  page.state = state;
@@ -53,6 +55,17 @@ export function useEntityPage<T, V extends FieldValues = FieldValues>(
53
55
  return state;
54
56
  }
55
57
 
58
+ function resolveDeleteAction<T, V extends FieldValues>(
59
+ page: PageRef<T, V>,
60
+ deleteAction: EntityPageDeleteAction<T> | undefined,
61
+ ): EntityPageDeleteAction<T> | undefined {
62
+ if (!deleteAction || !page.entityId) {
63
+ return undefined;
64
+ }
65
+
66
+ return deleteAction;
67
+ }
68
+
56
69
  interface PageRef<T, V extends FieldValues> {
57
70
  entityId?: string;
58
71
  state?: EntityPageState<T, V>;
@@ -99,11 +112,13 @@ async function saveToSource<T, V extends FieldValues>(
99
112
  throw new Error(`The source has no entity "${entityId}" to update`);
100
113
  }
101
114
 
115
+ const updatedEntity = { ...entity, ...values } as T;
116
+
102
117
  return {
103
- updatedEntity: await required(
104
- backend.update,
105
- 'updating',
106
- )({ ...entity, ...values } as T),
118
+ updatedEntity: await required(backend.update, 'updating')(updatedEntity, {
119
+ previousItem: entity,
120
+ changedFieldIds: changedFieldIds(entity, updatedEntity, state!.form),
121
+ }),
107
122
  };
108
123
  }
109
124
 
@@ -113,3 +128,24 @@ function required<F>(fn: F | undefined, action: string): F {
113
128
  }
114
129
  return fn;
115
130
  }
131
+
132
+ function changedFieldIds<T, V extends FieldValues>(
133
+ previousItem: T,
134
+ updatedItem: T,
135
+ form: EntityPageState<T, V>['form'],
136
+ ): string[] {
137
+ const dirtyFields = form.formState.dirtyFields as Record<string, unknown>;
138
+ const dirtyFieldIds = Object.entries(dirtyFields)
139
+ .filter(([, value]) => Boolean(value))
140
+ .map(([fieldId]) => fieldId);
141
+
142
+ const previousRecord = previousItem as Record<string, unknown>;
143
+ const updatedRecord = updatedItem as Record<string, unknown>;
144
+ const changedByValue = Array.from(
145
+ new Set([...Object.keys(previousRecord), ...Object.keys(updatedRecord)]),
146
+ ).filter(
147
+ (fieldId) => !Object.is(previousRecord[fieldId], updatedRecord[fieldId]),
148
+ );
149
+
150
+ return Array.from(new Set([...dirtyFieldIds, ...changedByValue]));
151
+ }
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "CollectionPageHeader4273170589";
8
+ var _namespace_ = "CollectionPageHeader2816488786";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"CollectionPageHeader4273170589__root"};
16
+ export var classes = {"root":"CollectionPageHeader2816488786__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -300,7 +300,10 @@ export class CellValueState<T, F extends FiltersMap> {
300
300
  * read-only cells protected regardless of entry point.
301
301
  */
302
302
  applyBulkValues(changes: { rowKey: string; columnId: string; value: any }[]) {
303
- const rowItems = new Map<string, T>();
303
+ const rowUpdates = new Map<
304
+ string,
305
+ { item: T; changedFieldIds: Set<string> }
306
+ >();
304
307
 
305
308
  for (const { rowKey, columnId, value } of changes) {
306
309
  const column = this._parent._columnMap.get(columnId);
@@ -339,10 +342,17 @@ export class CellValueState<T, F extends FiltersMap> {
339
342
  }
340
343
  continue;
341
344
  }
342
- const currentItem =
343
- rowItems.get(rowKey) ??
344
- this._consumeRowDrafts(rowKey, keyedItem.item);
345
- rowItems.set(rowKey, column.setValue(currentItem, value));
345
+ let rowUpdate = rowUpdates.get(rowKey);
346
+ if (!rowUpdate) {
347
+ const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);
348
+ rowUpdate = {
349
+ item: consumed.item,
350
+ changedFieldIds: new Set(consumed.changedFieldIds),
351
+ };
352
+ rowUpdates.set(rowKey, rowUpdate);
353
+ }
354
+ rowUpdate.item = column.setValue(rowUpdate.item, value);
355
+ rowUpdate.changedFieldIds.add(column.id);
346
356
  } else if (pendingKey) {
347
357
  this._pendingCells.set(pendingKey, {
348
358
  value,
@@ -351,7 +361,11 @@ export class CellValueState<T, F extends FiltersMap> {
351
361
  }
352
362
  }
353
363
 
354
- this._parent.mutation.updateItems(Array.from(rowItems.values()));
364
+ const updates = Array.from(rowUpdates.values());
365
+ this._parent.mutation.updateItems(
366
+ updates.map(({ item }) => item),
367
+ updates.map(({ changedFieldIds }) => Array.from(changedFieldIds)),
368
+ );
355
369
  }
356
370
 
357
371
  private _applyValue(rowKey: string, columnId: string, value: any) {
@@ -393,26 +407,32 @@ export class CellValueState<T, F extends FiltersMap> {
393
407
  }
394
408
  }
395
409
 
396
- const items: T[] = [];
410
+ const updates: { item: T; changedFieldIds: string[] }[] = [];
397
411
  for (const rowKey of rowKeys) {
398
412
  const keyedItem = this._parent._getKeyedItem(rowKey);
399
413
  if (!keyedItem) {
400
414
  this._dropRowDrafts(rowKey);
401
415
  } else if (this._parent.mutation.isLocalNewRow(rowKey)) {
402
- this._parent.mutation.commitNewRow(
403
- rowKey,
404
- this._consumeRowDrafts(rowKey, keyedItem.item),
405
- );
416
+ const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);
417
+ this._parent.mutation.commitNewRow(rowKey, consumed.item);
406
418
  } else {
407
- items.push(this._consumeRowDrafts(rowKey, keyedItem.item));
419
+ const consumed = this._consumeRowDrafts(rowKey, keyedItem.item);
420
+ updates.push(consumed);
408
421
  }
409
422
  }
410
- if (items.length > 0) {
411
- this._parent.mutation.updateItems(items);
423
+ if (updates.length > 0) {
424
+ this._parent.mutation.updateItems(
425
+ updates.map(({ item }) => item),
426
+ updates.map(({ changedFieldIds }) => changedFieldIds),
427
+ );
412
428
  }
413
429
  }
414
430
 
415
- private _consumeRowDrafts(rowKey: string, item: T): T {
431
+ private _consumeRowDrafts(
432
+ rowKey: string,
433
+ item: T,
434
+ ): { item: T; changedFieldIds: string[] } {
435
+ const changedFieldIds = new Set<string>();
416
436
  for (const [key, entry] of this._draftCells) {
417
437
  if (entry.rowKey !== rowKey) {
418
438
  continue;
@@ -420,10 +440,11 @@ export class CellValueState<T, F extends FiltersMap> {
420
440
  const column = this._parent._columnMap.get(entry.columnId);
421
441
  if (column?.setValue) {
422
442
  item = column.setValue(item, entry.value);
443
+ changedFieldIds.add(column.id);
423
444
  }
424
445
  this._draftCells.delete(key);
425
446
  }
426
- return item;
447
+ return { item, changedFieldIds: Array.from(changedFieldIds) };
427
448
  }
428
449
 
429
450
  /** Drop a row's draft entries without saving (the row no longer exists). */
@@ -1,6 +1,7 @@
1
1
  import { action, makeObservable, observable, runInAction } from 'mobx';
2
2
  import type {
3
3
  CollectionOptimisticActions,
4
+ CollectionUpdateContext,
4
5
  CollectionState,
5
6
  FiltersMap,
6
7
  KeyedItem,
@@ -11,7 +12,10 @@ export interface EditableTableMutationHandlers<T> {
11
12
  /** Factory to create a new empty item with a fresh ID */
12
13
  createItem: () => T;
13
14
  /** Submit updated items to the server */
14
- submitUpdate: (items: T[]) => Promise<T[] | void>;
15
+ submitUpdate: (
16
+ items: T[],
17
+ contexts?: CollectionUpdateContext<T>[],
18
+ ) => Promise<T[] | void>;
15
19
  /** Submit newly created items to the server */
16
20
  submitCreate: (items: T[]) => Promise<T[] | void>;
17
21
  /** Submit item deletions to the server */
@@ -239,14 +243,18 @@ export class MutationState<T, F extends FiltersMap> {
239
243
  });
240
244
  }
241
245
 
242
- updateItems(updatedItems: T[]) {
246
+ updateItems(
247
+ updatedItems: T[],
248
+ changedFieldIdsByItem?: string[][],
249
+ ) {
243
250
  const t = this._parent.collection.translate;
244
251
  if (updatedItems.length === 0) {
245
252
  return;
246
253
  }
254
+ const contexts = this._updateContexts(updatedItems, changedFieldIdsByItem);
247
255
  this._optimisticActions.updateMany(updatedItems, {
248
256
  keepPosition: true,
249
- submit: this._handlers.submitUpdate,
257
+ submit: (items) => this._submitUpdate(items, updatedItems, contexts),
250
258
  successToast: t('cairo.editableTable.updateItem.success.toast', {
251
259
  count: updatedItems.length,
252
260
  }),
@@ -260,6 +268,35 @@ export class MutationState<T, F extends FiltersMap> {
260
268
  });
261
269
  }
262
270
 
271
+ private _submitUpdate(
272
+ items: T[],
273
+ updatedItems: T[],
274
+ contexts: CollectionUpdateContext<T>[],
275
+ ) {
276
+ const sameItems =
277
+ items.length === updatedItems.length &&
278
+ items.every((item, index) => item === updatedItems[index]);
279
+
280
+ return this._handlers.submitUpdate(items, sameItems ? contexts : undefined);
281
+ }
282
+
283
+ private _updateContexts(
284
+ updatedItems: T[],
285
+ changedFieldIdsByItem?: string[][],
286
+ ): CollectionUpdateContext<T>[] {
287
+ return updatedItems.map((item, index) => {
288
+ const key = this._parent.collection.itemKey(item);
289
+ const previousItem =
290
+ this._parent.collection.result.get(key)?.item ?? item;
291
+ return {
292
+ previousItem,
293
+ changedFieldIds:
294
+ changedFieldIdsByItem?.[index] ??
295
+ changedFieldIdsFromItems(previousItem, item),
296
+ };
297
+ });
298
+ }
299
+
263
300
  /**
264
301
  * Nearest row above `rowKey` that a create can anchor on: a server row
265
302
  * that is not a draft and not itself a created row still living as an
@@ -336,3 +373,21 @@ export class MutationState<T, F extends FiltersMap> {
336
373
  return createdItems;
337
374
  };
338
375
  }
376
+
377
+ const changedFieldIdsFromItems = <T>(
378
+ previousItem: T,
379
+ updatedItem: T,
380
+ ): string[] => {
381
+ if (!isRecord(previousItem) || !isRecord(updatedItem)) {
382
+ return [];
383
+ }
384
+
385
+ return Array.from(
386
+ new Set([...Object.keys(previousItem), ...Object.keys(updatedItem)]),
387
+ ).filter(
388
+ (fieldId) => !Object.is(previousItem[fieldId], updatedItem[fieldId]),
389
+ );
390
+ };
391
+
392
+ const isRecord = (value: unknown): value is Record<string, unknown> =>
393
+ typeof value === 'object' && value !== null;
@@ -0,0 +1,228 @@
1
+ import { TaskState } from '@wix/bex-core';
2
+ import type {
3
+ LoadedSchema,
4
+ SchemaSource,
5
+ ToastConfig,
6
+ WixPatternsContainer,
7
+ } from '@wix/bex-core';
8
+ import { computed, makeObservable } from 'mobx';
9
+
10
+ type DeleteErrorToast = (
11
+ err: unknown,
12
+ params: { retry: () => void },
13
+ ) =>
14
+ | {
15
+ message?: string;
16
+ tryAgain?: boolean;
17
+ action?: { text: string; onClick: () => void };
18
+ }
19
+ | string;
20
+
21
+ export interface EntityPageDeleteActionConfig<T> {
22
+ enabled?: boolean;
23
+ onDelete?: (entity: T) => Promise<void>;
24
+ successToast?: Pick<ToastConfig, 'message'> | string;
25
+ errorToast?: DeleteErrorToast;
26
+ itemName?: (entity: T) => string;
27
+ }
28
+
29
+ export type EntityPageDeleteAction<T> =
30
+ | boolean
31
+ | EntityPageDeleteActionConfig<T>;
32
+
33
+ export interface EntityPageDeleteActionStateParams<T> {
34
+ container: WixPatternsContainer;
35
+ deleteAction?: EntityPageDeleteAction<T>;
36
+ schemaSource?: SchemaSource<T>;
37
+ getEntity: () => T | null;
38
+ getLoadedSchema: () => LoadedSchema<T> | null;
39
+ transformEntityToCollectionItem: (entity: T) => any;
40
+ onDeleted: (deletedCollectionItem: any) => void;
41
+ emitDelete: () => void;
42
+ emitDeleteError: (err: unknown) => void;
43
+ }
44
+
45
+ export class EntityPageDeleteActionState<T> {
46
+ readonly container: WixPatternsContainer;
47
+ readonly deleteAction?: EntityPageDeleteAction<T>;
48
+ readonly schemaSource?: SchemaSource<T>;
49
+ readonly getEntity: () => T | null;
50
+ readonly getLoadedSchema: () => LoadedSchema<T> | null;
51
+ readonly transformEntityToCollectionItem: (entity: T) => any;
52
+ readonly onDeleted: (deletedCollectionItem: any) => void;
53
+ readonly emitDelete: () => void;
54
+ readonly emitDeleteError: (err: unknown) => void;
55
+
56
+ readonly task = new TaskState<void>();
57
+
58
+ constructor(params: EntityPageDeleteActionStateParams<T>) {
59
+ this.container = params.container;
60
+ this.deleteAction = params.deleteAction;
61
+ this.schemaSource = params.schemaSource;
62
+ this.getEntity = params.getEntity;
63
+ this.getLoadedSchema = params.getLoadedSchema;
64
+ this.transformEntityToCollectionItem =
65
+ params.transformEntityToCollectionItem;
66
+ this.onDeleted = params.onDeleted;
67
+ this.emitDelete = params.emitDelete;
68
+ this.emitDeleteError = params.emitDeleteError;
69
+
70
+ makeObservable(this, {
71
+ canShow: computed,
72
+ disabledReason: computed,
73
+ });
74
+ }
75
+
76
+ private get config(): EntityPageDeleteActionConfig<T> | null {
77
+ if (!this.deleteAction) {
78
+ return null;
79
+ }
80
+
81
+ return typeof this.deleteAction === 'boolean' ? {} : this.deleteAction;
82
+ }
83
+
84
+ private get isEnabled() {
85
+ return this.config?.enabled !== false;
86
+ }
87
+
88
+ private getDeleteHandler(): ((entity: T) => Promise<void>) | undefined {
89
+ const config = this.config;
90
+ if (!config || !this.isEnabled) {
91
+ return undefined;
92
+ }
93
+
94
+ if (config.onDelete) {
95
+ return config.onDelete;
96
+ }
97
+
98
+ const backendDelete = this.getLoadedSchema()?.backend.delete;
99
+ if (this.schemaSource && backendDelete) {
100
+ return (entity) => backendDelete(this.schemaSource!.itemKey(entity));
101
+ }
102
+
103
+ return undefined;
104
+ }
105
+
106
+ get canShow() {
107
+ const itemPermissions = this.getLoadedSchema()?.schema.itemPermissions;
108
+ return (
109
+ !!this.getEntity() &&
110
+ !!this.config &&
111
+ this.isEnabled &&
112
+ !!this.getDeleteHandler() &&
113
+ (itemPermissions?.deleteItem ?? true)
114
+ );
115
+ }
116
+
117
+ get disabledReason() {
118
+ const entity = this.getEntity();
119
+ const itemPermissions = this.getLoadedSchema()?.schema.itemPermissions;
120
+ const disabledResult =
121
+ entity && itemPermissions?.isRemoveItemDisabled
122
+ ? itemPermissions.isRemoveItemDisabled(entity)
123
+ : undefined;
124
+
125
+ if (!disabledResult?.disabled) {
126
+ return undefined;
127
+ }
128
+
129
+ return disabledResult.reason ?? this.container.translate('cairo.disabled');
130
+ }
131
+
132
+ getItemName(entity: T) {
133
+ const itemName =
134
+ this.config?.itemName?.(entity) ?? this.schemaSource?.itemName(entity);
135
+
136
+ return (
137
+ itemName ||
138
+ this.container.translate('cairo.entity.item', {
139
+ num: 1,
140
+ })
141
+ );
142
+ }
143
+
144
+ private showSuccessToast(deletedEntity: T) {
145
+ const successToast = this.config?.successToast;
146
+ const message =
147
+ typeof successToast === 'string' ? successToast : successToast?.message;
148
+
149
+ this.container.showToast?.({
150
+ type: 'SUCCESS',
151
+ biName: 'cairo-entity-page-delete-success-toast',
152
+ message:
153
+ message ??
154
+ this.container.translate('cairo.deleteSuccess', {
155
+ itemName: this.getItemName(deletedEntity),
156
+ }),
157
+ });
158
+ }
159
+
160
+ private showErrorToast(err: unknown) {
161
+ const errorToast = this.config?.errorToast?.(err, {
162
+ retry: () => this.deleteEntity(),
163
+ });
164
+ const message =
165
+ typeof errorToast === 'string' ? errorToast : errorToast?.message;
166
+ const showTryAgain =
167
+ typeof errorToast === 'string' ? true : errorToast?.tryAgain !== false;
168
+ const action =
169
+ typeof errorToast === 'string' ? undefined : errorToast?.action;
170
+
171
+ this.container.showToast?.({
172
+ type: 'ERROR',
173
+ biName: 'cairo-entity-page-delete-error-toast',
174
+ message:
175
+ message ?? this.container.translate('cairo.technical.error.text'),
176
+ action:
177
+ action || showTryAgain
178
+ ? {
179
+ uiType: 'LINK',
180
+ text:
181
+ action?.text ?? this.container.translate('cairo.toast.retry'),
182
+ onClick: () => {
183
+ if (action?.onClick) {
184
+ action.onClick();
185
+ } else {
186
+ this.deleteEntity();
187
+ }
188
+ },
189
+ removeToastOnClick: true,
190
+ }
191
+ : undefined,
192
+ });
193
+ }
194
+
195
+ async deleteEntity() {
196
+ if (this.task.status.isLoading || !this.canShow || this.disabledReason) {
197
+ return;
198
+ }
199
+
200
+ const entity = this.getEntity();
201
+ const deleteHandler = this.getDeleteHandler();
202
+ if (!entity || !deleteHandler) {
203
+ return;
204
+ }
205
+
206
+ this.emitDelete();
207
+
208
+ let caughtError: unknown;
209
+ await this.task.run(
210
+ async () => {
211
+ await deleteHandler(entity);
212
+ },
213
+ (err) => {
214
+ caughtError = err;
215
+ },
216
+ );
217
+
218
+ if (caughtError) {
219
+ this.showErrorToast(caughtError);
220
+ this.container.errorMonitor.captureException(caughtError);
221
+ this.emitDeleteError(caughtError);
222
+ throw caughtError;
223
+ }
224
+
225
+ this.showSuccessToast(entity);
226
+ this.onDeleted(this.transformEntityToCollectionItem(entity));
227
+ }
228
+ }
@@ -7,6 +7,7 @@ import {
7
7
  SchemaSource,
8
8
  Schema,
9
9
  } from '@wix/bex-core';
10
+ import type { LoadedSchema } from '@wix/bex-core';
10
11
  import { action, computed, makeObservable, observable } from 'mobx';
11
12
  import type { PatternsFieldsAppContainer } from '@wix/patterns-fields/providers';
12
13
  import { fieldsContainerOf } from '../../model/schemaFieldsContainer';
@@ -16,6 +17,10 @@ import { EventEmitter, TypedEmitter } from '@wix/bex-core/events';
16
17
  import { WixPatternsRouterState } from '../WixPatternsRouterState';
17
18
  import type { SidePanelsState } from '../SidePanelsState';
18
19
  import type { CustomColumnsEntityPageState } from '../CustomColumnsEntityPageState';
20
+ import {
21
+ EntityPageDeleteAction,
22
+ EntityPageDeleteActionState,
23
+ } from './EntityPageDeleteActionState';
19
24
 
20
25
  type OnSaveParams = {
21
26
  widgetsFormData: { [key: string]: any };
@@ -58,6 +63,13 @@ interface EntityPageStateParamsBase<T, V extends FieldValues = FieldValues> {
58
63
  }
59
64
  | string;
60
65
 
66
+ /**
67
+ * Enables deleting the loaded entity from the entity page. Pass `true` for a
68
+ * schema-backed page to use the source backend, or an object to customize the
69
+ * action and to provide a delete handler for manually wired pages.
70
+ */
71
+ deleteAction?: EntityPageDeleteAction<T>;
72
+
61
73
  /**
62
74
  * An optional function to transform the updated entity data before it is passed to the collection page.
63
75
  * @param entity the updated entity.
@@ -136,6 +148,7 @@ export class EntityPageState<T, V extends FieldValues = FieldValues>
136
148
 
137
149
  _entity: T | null = null;
138
150
  _schema: Schema | null = null;
151
+ _loadedSchema: LoadedSchema<T> | null = null;
139
152
  private readonly _parentPageId?: string;
140
153
  private readonly _parentPath?: string;
141
154
  private readonly _parentReferrer?: string;
@@ -175,10 +188,13 @@ export class EntityPageState<T, V extends FieldValues = FieldValues>
175
188
  _routerState: WixPatternsRouterState | null = null;
176
189
 
177
190
  readonly formPage: FormPageState<V>;
191
+ readonly deleteActionState: EntityPageDeleteActionState<T>;
178
192
 
179
193
  readonly events = new EventEmitter() as TypedEmitter<{
180
194
  save: () => void;
181
195
  saveError: (err: unknown) => void;
196
+ delete: () => void;
197
+ deleteError: (err: unknown) => void;
182
198
  }>;
183
199
 
184
200
  constructor(params: EntityPageStateParams<T, V>) {
@@ -195,6 +211,19 @@ export class EntityPageState<T, V extends FieldValues = FieldValues>
195
211
  this.schemaSource = params.schemaSource;
196
212
 
197
213
  this.container = params.container;
214
+ this.deleteActionState = new EntityPageDeleteActionState<T>({
215
+ container: this.container,
216
+ deleteAction: params.deleteAction,
217
+ schemaSource: this.schemaSource,
218
+ getEntity: () => this.entity,
219
+ getLoadedSchema: () => this.loadedSchema,
220
+ transformEntityToCollectionItem: this.transformEntityToCollectionItem,
221
+ onDeleted: action((deletedCollectionItem) =>
222
+ this.handleEntityDeleted(deletedCollectionItem),
223
+ ),
224
+ emitDelete: () => this.events.emit('delete'),
225
+ emitDeleteError: (err) => this.events.emit('deleteError', err),
226
+ });
198
227
 
199
228
  this._routerState = params.routerState ?? null;
200
229
 
@@ -220,6 +249,8 @@ export class EntityPageState<T, V extends FieldValues = FieldValues>
220
249
  setEntity: action,
221
250
  _schema: observable.ref,
222
251
  setSchema: action,
252
+ _loadedSchema: observable.ref,
253
+ setLoadedSchema: action,
223
254
  customColumnsState: observable.ref,
224
255
  isFormDirty: computed,
225
256
  _withinRouter: computed,
@@ -267,6 +298,7 @@ export class EntityPageState<T, V extends FieldValues = FieldValues>
267
298
  ]);
268
299
 
269
300
  this.setEntity(data.entity ?? null);
301
+ this.setLoadedSchema(loadedSchema ?? null);
270
302
  // Don't overwrite a schema something already set. A fields card mirrors the
271
303
  // schema its field mutations merge into, and `loadSchema` is memoized — so
272
304
  // setting it here again would put the pre-mutation fields map back and drop
@@ -303,6 +335,14 @@ export class EntityPageState<T, V extends FieldValues = FieldValues>
303
335
  return this._schema;
304
336
  }
305
337
 
338
+ setLoadedSchema(loadedSchema: LoadedSchema<T> | null) {
339
+ this._loadedSchema = loadedSchema;
340
+ }
341
+
342
+ get loadedSchema(): LoadedSchema<T> | null {
343
+ return this._loadedSchema;
344
+ }
345
+
306
346
  get isFetching() {
307
347
  return this.formPage.isFetching;
308
348
  }
@@ -338,8 +378,10 @@ export class EntityPageState<T, V extends FieldValues = FieldValues>
338
378
 
339
379
  navigateToParent(updatedEntity?: any) {
340
380
  const entityStringKey = this._entity ? '_updatedEntity' : '_createdEntity';
341
- const entityObject = { [entityStringKey]: updatedEntity };
381
+ this.navigateToParentWithState({ [entityStringKey]: updatedEntity });
382
+ }
342
383
 
384
+ navigateToParentWithState(entityObject: Record<string, unknown>) {
343
385
  if (this._withinRouter) {
344
386
  this._routerState!.navigate(this._parentPath!, { state: entityObject });
345
387
  } else {
@@ -407,6 +449,11 @@ export class EntityPageState<T, V extends FieldValues = FieldValues>
407
449
  });
408
450
  }
409
451
 
452
+ private handleEntityDeleted(deletedCollectionItem: any) {
453
+ this.isSubmitSuccessful = true;
454
+ this.navigateToParentWithState({ _deletedEntity: deletedCollectionItem });
455
+ }
456
+
410
457
  async handleSubmit(e?: React.BaseSyntheticEvent) {
411
458
  if (this.formPage.submitTask.status.isLoading) {
412
459
  return;
@@ -1,3 +1,4 @@
1
1
  export * from './EntityPageState';
2
+ export * from './EntityPageDeleteActionState';
2
3
  export * from './useEntityPageHeader';
3
4
  export * from './useEntityPageContent';
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "FormPageHeader3029584173";
8
+ var _namespace_ = "FormPageHeader3751915783";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"FormPageHeader3029584173__root"};
16
+ export var classes = {"root":"FormPageHeader3751915783__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -12,6 +12,7 @@ interface WixPatternsRouterStateParams {
12
12
  export type RouteState = {
13
13
  _createdEntity?: any;
14
14
  _updatedEntity?: any;
15
+ _deletedEntity?: any;
15
16
  _chosenEntity?: any;
16
17
  } | null;
17
18