@wix/patterns 1.431.0 → 1.432.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 (525) 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/PrimaryActionButton.js +0 -1
  24. package/dist/cjs/components/CollectionToolbar/PrimaryActionButton.js.map +1 -1
  25. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  26. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  27. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  28. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  29. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  30. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  31. package/dist/cjs/components/CustomColumnsPanel/ColumnListTableListItem.js +2 -2
  32. package/dist/cjs/components/CustomColumnsPanel/ColumnListTableListItem.js.map +1 -1
  33. package/dist/cjs/components/CustomColumnsPanel/CustomColumnsPanel.js +30 -25
  34. package/dist/cjs/components/CustomColumnsPanel/CustomColumnsPanel.js.map +1 -1
  35. package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFieldsV2.js +172 -0
  36. package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFieldsV2.js.map +1 -0
  37. package/dist/cjs/components/CustomFieldModal/CustomFieldFormV2.js +86 -22
  38. package/dist/cjs/components/CustomFieldModal/CustomFieldFormV2.js.map +1 -1
  39. package/dist/cjs/components/CustomFieldModal/CustomFieldFormV2Permissions.js +296 -0
  40. package/dist/cjs/components/CustomFieldModal/CustomFieldFormV2Permissions.js.map +1 -0
  41. package/dist/cjs/components/CustomFieldModal/CustomFieldModal.js +11 -8
  42. package/dist/cjs/components/CustomFieldModal/CustomFieldModal.js.map +1 -1
  43. package/dist/cjs/components/CustomFieldModal/CustomFieldModal.uni.driver.js +9 -0
  44. package/dist/cjs/components/CustomFieldModal/CustomFieldModal.uni.driver.js.map +1 -1
  45. package/dist/cjs/components/CustomFieldModal/CustomFieldTypeDropdownV2.js +19 -12
  46. package/dist/cjs/components/CustomFieldModal/CustomFieldTypeDropdownV2.js.map +1 -1
  47. package/dist/cjs/components/CustomFieldsPanel/FieldManagementModals.js +5 -6
  48. package/dist/cjs/components/CustomFieldsPanel/FieldManagementModals.js.map +1 -1
  49. package/dist/cjs/components/CustomFieldsPanel/FieldsSourceAddFieldCTA.js +5 -5
  50. package/dist/cjs/components/CustomFieldsPanel/FieldsSourceAddFieldCTA.js.map +1 -1
  51. package/dist/cjs/components/DataExtension/dataExtensionFieldManagement.js +2 -0
  52. package/dist/cjs/components/DataExtension/dataExtensionFieldManagement.js.map +1 -1
  53. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  54. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  55. package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
  56. package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
  57. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  58. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  59. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  60. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  61. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
  62. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  63. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js +3 -3
  64. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
  65. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  66. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  67. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  68. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  69. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  70. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
  71. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  72. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  73. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  74. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  75. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
  76. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  77. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
  78. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
  79. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
  80. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  81. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  82. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  83. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  84. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  85. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  86. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  87. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
  88. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
  89. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  90. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  91. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  92. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  93. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  94. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  95. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  96. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  97. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
  98. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  99. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  100. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  101. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  102. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  103. package/dist/cjs/components/EntityPage/EntityPageColumnsPanelEntry.js +32 -0
  104. package/dist/cjs/components/EntityPage/EntityPageColumnsPanelEntry.js.map +1 -0
  105. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  106. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  107. package/dist/cjs/components/EntityPage/EntityPageSidePanels.js +52 -0
  108. package/dist/cjs/components/EntityPage/EntityPageSidePanels.js.map +1 -0
  109. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  110. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  111. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  112. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  113. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  114. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  115. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  116. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  117. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  118. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  119. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  120. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  121. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  122. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  123. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  124. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  125. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  126. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  127. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  128. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  129. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  130. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  131. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  132. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  133. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  134. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  135. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  136. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  137. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  138. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  139. package/dist/cjs/components/SchemaSource/schemaFieldManagement.js +4 -0
  140. package/dist/cjs/components/SchemaSource/schemaFieldManagement.js.map +1 -1
  141. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  142. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  143. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +9 -9
  144. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  145. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  146. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  147. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  148. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  149. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js +4 -4
  150. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
  151. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  152. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  153. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  154. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  155. package/dist/cjs/components/ToolbarCollection/useToolbarCollectionSyncProps.js +15 -17
  156. package/dist/cjs/components/ToolbarCollection/useToolbarCollectionSyncProps.js.map +1 -1
  157. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  158. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  159. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  160. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  161. package/dist/cjs/components/common.st.css.js +4 -4
  162. package/dist/cjs/components/common.st.css.js.map +1 -1
  163. package/dist/cjs/schema/EntityPageFieldsCard.js +42 -12
  164. package/dist/cjs/schema/EntityPageFieldsCard.js.map +1 -1
  165. package/dist/cjs/schema/entityPageFieldManagement.js +45 -0
  166. package/dist/cjs/schema/entityPageFieldManagement.js.map +1 -0
  167. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  168. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  169. package/dist/cjs/state/CustomColumnsEntityPageState.js +8 -3
  170. package/dist/cjs/state/CustomColumnsEntityPageState.js.map +1 -1
  171. package/dist/cjs/state/CustomColumnsPanelStateBase.js +4 -1
  172. package/dist/cjs/state/CustomColumnsPanelStateBase.js.map +1 -1
  173. package/dist/cjs/state/CustomColumnsState.js +1 -1
  174. package/dist/cjs/state/CustomColumnsState.js.map +1 -1
  175. package/dist/cjs/state/EntityPage/EntityPageState.js +19 -1
  176. package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
  177. package/dist/cjs/state/EntityPageFieldsCardState.js +49 -18
  178. package/dist/cjs/state/EntityPageFieldsCardState.js.map +1 -1
  179. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  180. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  181. package/dist/cjs/state/ManageFieldsSource.js +4 -0
  182. package/dist/cjs/state/ManageFieldsSource.js.map +1 -0
  183. package/dist/cjs/state/SidePanelsState.js +11 -0
  184. package/dist/cjs/state/SidePanelsState.js.map +1 -1
  185. package/dist/cjs/styles.global.css +2 -2
  186. package/dist/cjs/version.js +1 -1
  187. package/dist/cjs/version.js.map +1 -1
  188. package/dist/docs/EntityPageState.md +2 -0
  189. package/dist/docs/index.json +32 -32
  190. package/dist/docs/useEntity.md +2 -0
  191. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  192. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
  193. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
  194. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  195. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
  196. package/dist/esm/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +2 -2
  197. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  198. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  199. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  200. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  201. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  202. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  203. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  204. package/dist/esm/components/CollectionToolbar/PrimaryActionButton.js +1 -1
  205. package/dist/esm/components/CollectionToolbar/PrimaryActionButton.js.map +1 -1
  206. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  207. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  208. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  209. package/dist/esm/components/CustomColumnsPanel/ColumnListTableListItem.js +2 -2
  210. package/dist/esm/components/CustomColumnsPanel/ColumnListTableListItem.js.map +1 -1
  211. package/dist/esm/components/CustomColumnsPanel/CustomColumnsPanel.js +11 -7
  212. package/dist/esm/components/CustomColumnsPanel/CustomColumnsPanel.js.map +1 -1
  213. package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFieldsV2.js +32 -0
  214. package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFieldsV2.js.map +1 -0
  215. package/dist/esm/components/CustomFieldModal/CustomFieldFormV2.js +27 -6
  216. package/dist/esm/components/CustomFieldModal/CustomFieldFormV2.js.map +1 -1
  217. package/dist/esm/components/CustomFieldModal/CustomFieldFormV2Permissions.js +64 -0
  218. package/dist/esm/components/CustomFieldModal/CustomFieldFormV2Permissions.js.map +1 -0
  219. package/dist/esm/components/CustomFieldModal/CustomFieldModal.js +3 -1
  220. package/dist/esm/components/CustomFieldModal/CustomFieldModal.js.map +1 -1
  221. package/dist/esm/components/CustomFieldModal/CustomFieldModal.uni.driver.js +10 -1
  222. package/dist/esm/components/CustomFieldModal/CustomFieldModal.uni.driver.js.map +1 -1
  223. package/dist/esm/components/CustomFieldModal/CustomFieldTypeDropdownV2.js +12 -12
  224. package/dist/esm/components/CustomFieldModal/CustomFieldTypeDropdownV2.js.map +1 -1
  225. package/dist/esm/components/CustomFieldsPanel/FieldManagementModals.js +3 -4
  226. package/dist/esm/components/CustomFieldsPanel/FieldManagementModals.js.map +1 -1
  227. package/dist/esm/components/CustomFieldsPanel/FieldsSourceAddFieldCTA.js +1 -1
  228. package/dist/esm/components/CustomFieldsPanel/FieldsSourceAddFieldCTA.js.map +1 -1
  229. package/dist/esm/components/DataExtension/dataExtensionFieldManagement.js +2 -0
  230. package/dist/esm/components/DataExtension/dataExtensionFieldManagement.js.map +1 -1
  231. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  232. package/dist/esm/components/DragHandle/DragHandle.st.css.js.map +1 -1
  233. package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
  234. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  235. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  236. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  237. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  238. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
  239. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  240. package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js +2 -2
  241. package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
  242. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  243. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  244. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  245. package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  246. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  247. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  248. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  249. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  250. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
  251. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  252. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
  253. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
  254. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  255. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  256. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  257. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
  258. package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +2 -2
  259. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  260. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  261. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  262. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  263. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
  264. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  265. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  266. package/dist/esm/components/EntityPage/EntityPageColumnsPanelEntry.js +16 -0
  267. package/dist/esm/components/EntityPage/EntityPageColumnsPanelEntry.js.map +1 -0
  268. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  269. package/dist/esm/components/EntityPage/EntityPageSidePanels.js +20 -0
  270. package/dist/esm/components/EntityPage/EntityPageSidePanels.js.map +1 -0
  271. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  272. package/dist/esm/components/Fade/Fade.st.css.js.map +1 -1
  273. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  274. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  275. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  276. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  277. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  278. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  279. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  280. package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
  281. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  282. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  283. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  284. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  285. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  286. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  287. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  288. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  289. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  290. package/dist/esm/components/PickerContent/PickerContent.st.css.js.map +1 -1
  291. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  292. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  293. package/dist/esm/components/SchemaSource/schemaFieldManagement.js +4 -0
  294. package/dist/esm/components/SchemaSource/schemaFieldManagement.js.map +1 -1
  295. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  296. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
  297. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  298. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  299. package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js +2 -2
  300. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  301. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  302. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  303. package/dist/esm/components/ToolbarCollection/useToolbarCollectionSyncProps.js +16 -13
  304. package/dist/esm/components/ToolbarCollection/useToolbarCollectionSyncProps.js.map +1 -1
  305. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  306. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  307. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  308. package/dist/esm/components/common.st.css.js +2 -2
  309. package/dist/esm/schema/EntityPageFieldsCard.js +26 -4
  310. package/dist/esm/schema/EntityPageFieldsCard.js.map +1 -1
  311. package/dist/esm/schema/entityPageFieldManagement.js +34 -0
  312. package/dist/esm/schema/entityPageFieldManagement.js.map +1 -0
  313. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  314. package/dist/esm/state/CustomColumnsEntityPageState.js +14 -3
  315. package/dist/esm/state/CustomColumnsEntityPageState.js.map +1 -1
  316. package/dist/esm/state/CustomColumnsPanelStateBase.js +1 -1
  317. package/dist/esm/state/CustomColumnsPanelStateBase.js.map +1 -1
  318. package/dist/esm/state/CustomColumnsState.js +1 -1
  319. package/dist/esm/state/CustomColumnsState.js.map +1 -1
  320. package/dist/esm/state/EntityPage/EntityPageState.js +19 -1
  321. package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
  322. package/dist/esm/state/EntityPageFieldsCardState.js +34 -18
  323. package/dist/esm/state/EntityPageFieldsCardState.js.map +1 -1
  324. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  325. package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  326. package/dist/esm/state/ManageFieldsSource.js +2 -0
  327. package/dist/esm/state/ManageFieldsSource.js.map +1 -0
  328. package/dist/esm/state/SidePanelsState.js +11 -0
  329. package/dist/esm/state/SidePanelsState.js.map +1 -1
  330. package/dist/esm/styles.global.css +2 -2
  331. package/dist/esm/version.js +1 -1
  332. package/dist/types/components/CmsFieldManagement/CmsFieldModal.st.css.d.ts.map +1 -1
  333. package/dist/types/components/CollectionTable/CollectionTable.st.css.d.ts.map +1 -1
  334. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +28 -28
  335. package/dist/types/components/CollectionToolbar/CollectionToolbar.uni.driver.d.ts +11 -11
  336. package/dist/types/components/CollectionToolbar/PrimaryActionButton.d.ts.map +1 -1
  337. package/dist/types/components/CustomColumnsPanel/CustomColumnsPanel.d.ts.map +1 -1
  338. package/dist/types/components/CustomFieldModal/CustomFieldFormPiiFieldsV2.d.ts +15 -0
  339. package/dist/types/components/CustomFieldModal/CustomFieldFormPiiFieldsV2.d.ts.map +1 -0
  340. package/dist/types/components/CustomFieldModal/CustomFieldFormV2.d.ts.map +1 -1
  341. package/dist/types/components/CustomFieldModal/CustomFieldFormV2Permissions.d.ts +10 -0
  342. package/dist/types/components/CustomFieldModal/CustomFieldFormV2Permissions.d.ts.map +1 -0
  343. package/dist/types/components/CustomFieldModal/CustomFieldModal.d.ts.map +1 -1
  344. package/dist/types/components/CustomFieldModal/CustomFieldModal.uni.driver.d.ts +7 -3
  345. package/dist/types/components/CustomFieldModal/CustomFieldModal.uni.driver.d.ts.map +1 -1
  346. package/dist/types/components/CustomFieldModal/CustomFieldTypeDropdownV2.d.ts.map +1 -1
  347. package/dist/types/components/CustomFieldsPanel/FieldManagementModals.d.ts +5 -6
  348. package/dist/types/components/CustomFieldsPanel/FieldManagementModals.d.ts.map +1 -1
  349. package/dist/types/components/CustomFieldsPanel/FieldsSourceAddFieldCTA.d.ts +3 -3
  350. package/dist/types/components/CustomFieldsPanel/FieldsSourceAddFieldCTA.d.ts.map +1 -1
  351. package/dist/types/components/CustomFieldsWidget/CustomFieldsWidget.uni.driver.d.ts +9 -5
  352. package/dist/types/components/CustomFieldsWidget/CustomFieldsWidget.uni.driver.d.ts.map +1 -1
  353. package/dist/types/components/DataExtension/dataExtensionFieldManagement.d.ts.map +1 -1
  354. package/dist/types/components/DragHandle/DragHandle.st.css.d.ts.map +1 -1
  355. package/dist/types/components/DropdownFilter/CollectionDropdownFilter.uni.driver.d.ts +1 -1
  356. package/dist/types/components/EditableTable/EditableCell.uni.driver.d.ts +1 -1
  357. package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts +37 -33
  358. package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts.map +1 -1
  359. package/dist/types/components/EditableTable/HeaderActionsPopover.st.css.d.ts.map +1 -1
  360. package/dist/types/components/EditableTable/cellTypes/CellViewLayout.st.css.d.ts.map +1 -1
  361. package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts.map +1 -1
  362. package/dist/types/components/EditableTable/cellTypes/array/Edit.st.css.d.ts.map +1 -1
  363. package/dist/types/components/EditableTable/cellTypes/boolean/View.st.css.d.ts.map +1 -1
  364. package/dist/types/components/EditableTable/cellTypes/date/Edit.st.css.d.ts.map +1 -1
  365. package/dist/types/components/EditableTable/cellTypes/date/View.st.css.d.ts.map +1 -1
  366. package/dist/types/components/EditableTable/cellTypes/datetime/Edit.st.css.d.ts.map +1 -1
  367. package/dist/types/components/EditableTable/cellTypes/email/View.st.css.d.ts.map +1 -1
  368. package/dist/types/components/EditableTable/cellTypes/reference/Edit.uni.driver.d.ts +1 -1
  369. package/dist/types/components/EntityPage/EntityPageColumnsPanelEntry.d.ts +10 -0
  370. package/dist/types/components/EntityPage/EntityPageColumnsPanelEntry.d.ts.map +1 -0
  371. package/dist/types/components/EntityPage/EntityPageSidePanels.d.ts +16 -0
  372. package/dist/types/components/EntityPage/EntityPageSidePanels.d.ts.map +1 -0
  373. package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
  374. package/dist/types/components/FiltersPanel/FiltersPanel.uni.driver.d.ts +4 -4
  375. package/dist/types/components/Grid/Grid.uni.driver.d.ts +13 -13
  376. package/dist/types/components/Grid/GridFolders.uni.driver.d.ts +38 -38
  377. package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts +13 -13
  378. package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts +2 -2
  379. package/dist/types/components/ImportButton/ImportModal.uni.driver.d.ts +2 -2
  380. package/dist/types/components/Kanban/Kanban.uni.driver.d.ts +11 -11
  381. package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
  382. package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
  383. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +47 -54
  384. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts.map +1 -1
  385. package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
  386. package/dist/types/components/NestedTable/NestedTableRow.st.css.d.ts.map +1 -1
  387. package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
  388. package/dist/types/components/PickerContent/PickerContent.st.css.d.ts.map +1 -1
  389. package/dist/types/components/PickerModal/PickerModal.uni.driver.d.ts +1 -1
  390. package/dist/types/components/PickerModal/PickerModalLayout.uni.driver.d.ts +1 -1
  391. package/dist/types/components/SchemaSource/schemaFieldManagement.d.ts.map +1 -1
  392. package/dist/types/components/SummaryBar/SummaryBar.uni.driver.d.ts +1 -1
  393. package/dist/types/components/Table/Table.uni.driver.d.ts +35 -31
  394. package/dist/types/components/Table/Table.uni.driver.d.ts.map +1 -1
  395. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +46 -42
  396. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
  397. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +49 -45
  398. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts.map +1 -1
  399. package/dist/types/components/TabsFilter/TabsFilter.st.css.d.ts.map +1 -1
  400. package/dist/types/components/TabsFilter/TabsFilter.uni.driver.d.ts +1 -1
  401. package/dist/types/components/ToolbarCollection/useToolbarCollectionSyncProps.d.ts.map +1 -1
  402. package/dist/types/components/ToolbarItem/ToolbarItem.st.css.d.ts.map +1 -1
  403. package/dist/types/schema/EntityPageFieldsCard.d.ts +12 -4
  404. package/dist/types/schema/EntityPageFieldsCard.d.ts.map +1 -1
  405. package/dist/types/schema/entityPageFieldManagement.d.ts +16 -0
  406. package/dist/types/schema/entityPageFieldManagement.d.ts.map +1 -0
  407. package/dist/types/state/CustomColumnsEntityPageState.d.ts +10 -2
  408. package/dist/types/state/CustomColumnsEntityPageState.d.ts.map +1 -1
  409. package/dist/types/state/CustomColumnsPanelStateBase.d.ts +4 -3
  410. package/dist/types/state/CustomColumnsPanelStateBase.d.ts.map +1 -1
  411. package/dist/types/state/CustomColumnsState.d.ts +1 -1
  412. package/dist/types/state/CustomColumnsState.d.ts.map +1 -1
  413. package/dist/types/state/EntityPage/EntityPageState.d.ts +14 -0
  414. package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
  415. package/dist/types/state/EntityPageFieldsCardState.d.ts +18 -4
  416. package/dist/types/state/EntityPageFieldsCardState.d.ts.map +1 -1
  417. package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
  418. package/dist/types/state/ManageFieldsSource.d.ts +21 -0
  419. package/dist/types/state/ManageFieldsSource.d.ts.map +1 -0
  420. package/dist/types/state/SidePanelsState.d.ts +8 -0
  421. package/dist/types/state/SidePanelsState.d.ts.map +1 -1
  422. package/dist/types/testkit/enzyme.d.ts +236 -216
  423. package/dist/types/testkit/enzyme.d.ts.map +1 -1
  424. package/dist/types/testkit/jsdom.d.ts +291 -263
  425. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  426. package/dist/types/testkit/playwright.d.ts +273 -249
  427. package/dist/types/testkit/playwright.d.ts.map +1 -1
  428. package/dist/types/testkit/puppeteer.d.ts +284 -260
  429. package/dist/types/testkit/puppeteer.d.ts.map +1 -1
  430. package/dist/types/version.d.ts +1 -1
  431. package/package.json +6 -6
  432. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  433. package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
  434. package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
  435. package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
  436. package/src/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.ts +2 -2
  437. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  438. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  439. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  440. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  441. package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
  442. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  443. package/src/components/CollectionToolbar/PrimaryActionButton.tsx +0 -1
  444. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  445. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  446. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  447. package/src/components/CustomColumnsPanel/ColumnListTableListItem.tsx +2 -2
  448. package/src/components/CustomColumnsPanel/CustomColumnsPanel.tsx +12 -9
  449. package/src/components/CustomFieldModal/CustomFieldFormPiiFieldsV2.tsx +115 -0
  450. package/src/components/CustomFieldModal/CustomFieldFormV2.tsx +52 -4
  451. package/src/components/CustomFieldModal/CustomFieldFormV2Permissions.tsx +212 -0
  452. package/src/components/CustomFieldModal/CustomFieldModal.tsx +3 -1
  453. package/src/components/CustomFieldModal/CustomFieldModal.uni.driver.ts +14 -0
  454. package/src/components/CustomFieldModal/CustomFieldTypeDropdownV2.tsx +13 -10
  455. package/src/components/CustomFieldsPanel/FieldManagementModals.tsx +4 -9
  456. package/src/components/CustomFieldsPanel/FieldsSourceAddFieldCTA.tsx +2 -6
  457. package/src/components/DataExtension/dataExtensionFieldManagement.ts +4 -0
  458. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  459. package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
  460. package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
  461. package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
  462. package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
  463. package/src/components/EditableTable/cellTypes/array/Edit.st.css.ts +2 -2
  464. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  465. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  466. package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
  467. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  468. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  469. package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +2 -2
  470. package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
  471. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
  472. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
  473. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  474. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  475. package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
  476. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
  477. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  478. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  479. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  480. package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
  481. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  482. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  483. package/src/components/EntityPage/EntityPageColumnsPanelEntry.tsx +21 -0
  484. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  485. package/src/components/EntityPage/EntityPageSidePanels.tsx +36 -0
  486. package/src/components/Fade/Fade.st.css.ts +2 -2
  487. package/src/components/Heading/Heading.st.css.ts +2 -2
  488. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  489. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  490. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  491. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  492. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  493. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  494. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  495. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  496. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  497. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  498. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  499. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  500. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  501. package/src/components/SchemaSource/schemaFieldManagement.ts +4 -0
  502. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  503. package/src/components/SetupWidget/SetupWidget.st.css.ts +2 -2
  504. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  505. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  506. package/src/components/Table/AddFieldColumnHeader.st.css.ts +2 -2
  507. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  508. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  509. package/src/components/ToolbarCollection/useToolbarCollectionSyncProps.ts +19 -18
  510. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  511. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  512. package/src/components/common.st.css.ts +2 -2
  513. package/src/schema/EntityPageFieldsCard.tsx +39 -6
  514. package/src/schema/entityPageFieldManagement.ts +44 -0
  515. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  516. package/src/state/CustomColumnsEntityPageState.ts +23 -4
  517. package/src/state/CustomColumnsPanelStateBase.ts +4 -6
  518. package/src/state/CustomColumnsState.ts +1 -1
  519. package/src/state/EntityPage/EntityPageState.ts +23 -1
  520. package/src/state/EntityPageFieldsCardState.ts +53 -17
  521. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  522. package/src/state/ManageFieldsSource.ts +24 -0
  523. package/src/state/SidePanelsState.ts +15 -0
  524. package/src/styles.global.css +2 -2
  525. package/src/version.ts +1 -1
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "SlidingModal4175240601";
8
+ var _namespace_ = "SlidingModal3053485234";
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":"SlidingModal4175240601__root"};
16
+ export var classes = {"root":"SlidingModal3053485234__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "AddFieldColumnHeader2583207661";
8
+ var _namespace_ = "AddFieldColumnHeader2380146996";
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":"AddFieldColumnHeader2583207661__root","title":"AddFieldColumnHeader2583207661__title","hoverBridge":"AddFieldColumnHeader2583207661__hoverBridge"};
16
+ export var classes = {"root":"AddFieldColumnHeader2380146996__root","title":"AddFieldColumnHeader2380146996__title","hoverBridge":"AddFieldColumnHeader2380146996__hoverBridge"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "TabsFilter3289214861";
8
+ var _namespace_ = "TabsFilter773415960";
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":"TabsFilter3289214861__root","title":"TabsFilter3289214861__title"};
16
+ export var classes = {"root":"TabsFilter773415960__root","title":"TabsFilter773415960__title"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "ManageTagsModal3765695890";
8
+ var _namespace_ = "ManageTagsModal3581084668";
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":"ManageTagsModal3765695890__root"};
16
+ export var classes = {"root":"ManageTagsModal3581084668__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -60,26 +60,27 @@ export function useToolbarCollectionSyncProps<T, F extends FiltersMap>(
60
60
  }, []);
61
61
 
62
62
  useEffect(() => {
63
- reaction(
64
- () => ({
65
- scrollTop: state.scrollTopBeforeUnmount,
66
- routerState: router?.currentState,
67
- }),
68
- ({ scrollTop, routerState }) => {
69
- pageState.scrollTopBeforeUnmount = routerState?._createdEntity
70
- ? 0
71
- : scrollTop;
63
+ pageState.scrollTopBeforeUnmount = router?.currentState?._createdEntity
64
+ ? 0
65
+ : state.scrollTopBeforeUnmount;
66
+ // The offset belongs to a single trip back. The cached state outlives it,
67
+ // so leaving it set would restore it again on any later remount.
68
+ state.scrollTopBeforeUnmount = null;
69
+
70
+ return reaction(
71
+ () => router?.currentState,
72
+ (routerState) => {
73
+ if (!routerState?._chosenEntity) {
74
+ return;
75
+ }
76
+ // Reading it on unmount is too late: React detaches the page before
77
+ // effect cleanups run, and a detached element reports scrollTop 0.
78
+ const el = pageState.pageState.scrollableContentRef.current;
79
+ if (el) {
80
+ state.scrollTopBeforeUnmount = el.scrollTop;
81
+ }
72
82
  },
73
- { fireImmediately: true },
74
83
  );
75
-
76
- return () => {
77
- const scrollTop =
78
- pageState.pageState.scrollableContentRef.current?.scrollTop;
79
- if (scrollTop !== undefined) {
80
- state.scrollTopBeforeUnmount = scrollTop;
81
- }
82
- };
83
84
  }, []);
84
85
 
85
86
  const getIsUsingAllItemsView = () =>
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "ToolbarItem1137485981";
8
+ var _namespace_ = "ToolbarItem236369946";
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":"ToolbarItem1137485981__root"};
16
+ export var classes = {"root":"ToolbarItem236369946__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "ToolbarItemBox4022720849";
8
+ var _namespace_ = "ToolbarItemBox2074326680";
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":"ToolbarItemBox4022720849__root"};
16
+ export var classes = {"root":"ToolbarItemBox2074326680__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "common2729451634";
8
+ var _namespace_ = "common3243586050";
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":"common2729451634__root","column":"common2729451634__column","fullHeight":"common2729451634__fullHeight"};
16
+ export var classes = {"root":"common3243586050__root","column":"common3243586050__column","fullHeight":"common3243586050__fullHeight"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -7,10 +7,14 @@ import {
7
7
  type EntityPageCardProps,
8
8
  } from '../components/EntityPageCard';
9
9
  import { EntityPageFields } from '../components/EntityPageFields';
10
- import { CustomColumnsEntityPagePanelMount } from '../components/CustomColumnsPanel/CustomColumnsEntityPagePanelMount';
10
+ import { EntityPageColumnsPanelEntry } from '../components/EntityPage/EntityPageColumnsPanelEntry';
11
+ import { EntityPageSidePanels } from '../components/EntityPage/EntityPageSidePanels';
11
12
  import { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';
13
+ import { FieldManagementModals } from '../components/CustomFieldsPanel/FieldManagementModals';
12
14
  import { useEntityPageContext } from '../providers';
13
15
  import { EntityPageFieldsCardState } from '../state/EntityPageFieldsCardState';
16
+ import { SidePanelsState } from '../state/SidePanelsState';
17
+ import { entityPageFieldManagement } from './entityPageFieldManagement';
14
18
 
15
19
  export interface EntityPageFieldsCardProps
16
20
  extends Omit<EntityPageCardProps, 'children'> {
@@ -24,8 +28,8 @@ export interface EntityPageFieldsCardProps
24
28
  fieldIds?: string[];
25
29
  /**
26
30
  * Namespace the per-user show/hide and order are stored under. Default: the
27
- * source's collection id. Set it when a page has more than one fields card,
28
- * so they don't share one saved layout.
31
+ * source's collection id — set it only to store the layout under a name of
32
+ * your own.
29
33
  */
30
34
  persistencyKey?: string;
31
35
  /** Whether to show the "Manage fields" button and panel. Default: `true`. */
@@ -34,8 +38,16 @@ export interface EntityPageFieldsCardProps
34
38
  }
35
39
 
36
40
  /** The page's schema fields in a card, with a "Manage fields" panel that shows,
37
- * hides and reorders them. The choice is saved per user and survives reloads.
38
- * Render inside the `EntityPage` from this entry. */
41
+ * hides and reorders them, and adds, edits and deletes them. The choice is
42
+ * saved per user and survives reloads. Render inside the `EntityPage` from this
43
+ * entry.
44
+ *
45
+ * One card per page. Field management is built per card, so on a second card
46
+ * the rows of fields added from the first one render without their actions
47
+ * menu — the row comes from the page's schema, the menu from the card's own
48
+ * copy, which only the mutating card's copy gets merged into. Split the fields
49
+ * across cards only when none of them manages fields (`showManageFields:
50
+ * false`). */
39
51
  export function _EntityPageFieldsCard({
40
52
  title,
41
53
  subtitle,
@@ -50,6 +62,9 @@ export function _EntityPageFieldsCard({
50
62
  const { modalsContainerRef } = usePageContext();
51
63
  const pageState = useEntityPageContext();
52
64
 
65
+ // The page has no side-panel host until a feature needs one.
66
+ useState(() => SidePanelsState.setOnPage(pageState, container));
67
+
53
68
  const [state] = useState(
54
69
  () =>
55
70
  new EntityPageFieldsCardState({
@@ -65,12 +80,24 @@ export function _EntityPageFieldsCard({
65
80
  fieldIds,
66
81
  showManageFields,
67
82
  dragAndDrop: CustomColumnsDragAndDrop,
83
+ fieldManagement: entityPageFieldManagement,
68
84
  modalsContainerRef,
69
85
  }),
70
86
  );
71
87
 
72
88
  useEffect(() => state.init(), []);
73
89
 
90
+ useEffect(() => {
91
+ if (!state.panelState) {
92
+ return;
93
+ }
94
+
95
+ state.panelState.panels.registerSidePanel(
96
+ 'customColumns',
97
+ EntityPageColumnsPanelEntry,
98
+ );
99
+ }, []);
100
+
74
101
  return (
75
102
  <EntityPageCard dataHook={dataHook} {...rest}>
76
103
  <Card.Header
@@ -93,8 +120,14 @@ export function _EntityPageFieldsCard({
93
120
  <Card.Content>
94
121
  <EntityPageFields fieldIds={state.visibleFieldIds} />
95
122
  </Card.Content>
123
+ {/* The host lives on the page, so a panel opened here closes any other.
124
+ Rendered by the card rather than the page, so a page without a fields
125
+ card never bundles the side-panel modal. */}
96
126
  {state.panelState && (
97
- <CustomColumnsEntityPagePanelMount state={state.panelState} />
127
+ <EntityPageSidePanels panels={state.panelState.panels} />
128
+ )}
129
+ {state.manageFieldsSource && (
130
+ <FieldManagementModals source={state.manageFieldsSource} />
98
131
  )}
99
132
  </EntityPageCard>
100
133
  );
@@ -0,0 +1,44 @@
1
+ import type { SourceState } from '@wix/bex-core';
2
+ import { SchemaState } from '../components/SchemaSource/SchemaState';
3
+ import { createSchemaFieldActionsMenu } from '../components/SchemaSource/schemaFieldActions';
4
+ import { CustomFieldsPanelState } from '../state/CustomFields/CustomFieldsPanelState';
5
+ import type { ManageFieldsSource } from '../state/ManageFieldsSource';
6
+
7
+ /**
8
+ * Add / edit / delete field for an entity page, over the page's source.
9
+ *
10
+ * A collection page gets the same thing from its toolbar's
11
+ * `CollectionFieldsSourceState`, which an entity page has no toolbar to build —
12
+ * so the two pieces that don't need one are assembled here: the source's
13
+ * FieldsSource and per-field menu (`SchemaState`), and the modals
14
+ * (`CustomFieldsPanelState`).
15
+ */
16
+ export function entityPageFieldManagement({
17
+ sourceState,
18
+ closeSidePanel,
19
+ }: {
20
+ sourceState: SourceState<any>;
21
+ closeSidePanel: () => void;
22
+ }): ManageFieldsSource {
23
+ const schemaState = new SchemaState({ sourceState });
24
+ const { container } = sourceState;
25
+ const panel = new CustomFieldsPanelState({
26
+ fieldsSource: schemaState.fieldsSource,
27
+ container,
28
+ reportBi: container.reportBi,
29
+ closeSidePanel,
30
+ createFieldActionsMenu: createSchemaFieldActionsMenu(schemaState),
31
+ });
32
+
33
+ return {
34
+ fieldsSource: schemaState.fieldsSource,
35
+ customFieldsPanel: panel,
36
+ fieldActionsMenu: panel.fieldActionsMenu,
37
+ openFieldModal: (opts) =>
38
+ panel.openCustomFieldModal({
39
+ fieldId: opts?.fieldId,
40
+ origin: opts?.origin ?? 'external',
41
+ customOrigin: opts?.customOrigin,
42
+ }),
43
+ };
44
+ }
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "CollectionPageHeader2989145790";
8
+ var _namespace_ = "CollectionPageHeader1098151800";
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":"CollectionPageHeader2989145790__root"};
16
+ export var classes = {"root":"CollectionPageHeader1098151800__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,11 +5,12 @@ import { CustomColumnsActionName } from './CustomColumnsState';
5
5
  import { SidePanelsState } from './SidePanelsState';
6
6
  import { CustomColumnsPanelStateBase } from './CustomColumnsPanelStateBase';
7
7
  import { SchemaFieldsState } from './SchemaCard/SchemaFieldsState';
8
+ import type { ManageFieldsSource } from './ManageFieldsSource';
8
9
  import type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';
9
10
  import type { CustomColumnsDragAndDropState } from './CustomColumnsDragAndDropState';
10
11
  import type { Field, SchemaConfig } from '../types/SchemaConfig';
11
12
 
12
- type SchemaFields = Pick<SchemaConfig, 'fields'>;
13
+ type SchemaFields = Pick<SchemaConfig, 'id' | 'fields'>;
13
14
 
14
15
  export interface CustomColumnsEntityPageStateParams {
15
16
  panels: SidePanelsState;
@@ -22,6 +23,12 @@ export interface CustomColumnsEntityPageStateParams {
22
23
  /** Whether the panel presents itself as field management rather than column
23
24
  * selection. Default: `false`. */
24
25
  isFieldsEditable?: boolean;
26
+ /** Add / edit / delete field. Omitted ⇒ the panel only shows and reorders. */
27
+ manageFieldsSource?: ManageFieldsSource;
28
+ /** Namespaces this panel's column collection, the way a table's is namespaced
29
+ * by its collection. Default: the schema's id, when the schema is already
30
+ * loaded. */
31
+ collectionId?: string;
25
32
  showFieldTypeIcons?: boolean;
26
33
  dragAndDrop?: typeof CustomColumnsDragAndDrop;
27
34
  modalsContainerRef: {
@@ -35,6 +42,9 @@ function fieldToColumn(
35
42
  ): Column {
36
43
  return {
37
44
  id: field.id,
45
+ // The panel's per-field menu is keyed off this — without it a row has no
46
+ // edit / delete action.
47
+ field,
38
48
  name: field.displayName,
39
49
  title: field.displayName,
40
50
  render: () => null,
@@ -55,12 +65,20 @@ export class CustomColumnsEntityPageState extends CustomColumnsPanelStateBase {
55
65
  readonly _showFieldTypeIcons: boolean;
56
66
  readonly _schema: SchemaFields | (() => SchemaFields | null);
57
67
  readonly _isFieldsEditable: boolean;
68
+ readonly _manageFieldsSource?: ManageFieldsSource;
58
69
  readonly _dragAndDrop?: CustomColumnsDragAndDropState<unknown, any>;
59
70
 
60
71
  constructor(params: CustomColumnsEntityPageStateParams) {
61
72
  super({
62
73
  container: params.container,
63
- queryName: 'entity-page-custom-columns',
74
+ queryName: [
75
+ params.container.environment.componentId,
76
+ params.collectionId ??
77
+ (typeof params.schema === 'function' ? undefined : params.schema.id),
78
+ 'entity-page-custom-columns',
79
+ ]
80
+ .filter(Boolean)
81
+ .join('/'),
64
82
  });
65
83
 
66
84
  this.panels = params.panels;
@@ -68,6 +86,7 @@ export class CustomColumnsEntityPageState extends CustomColumnsPanelStateBase {
68
86
  this._showFieldTypeIcons = params.showFieldTypeIcons ?? true;
69
87
  this._schema = params.schema;
70
88
  this._isFieldsEditable = params.isFieldsEditable ?? false;
89
+ this._manageFieldsSource = params.manageFieldsSource;
71
90
 
72
91
  if (params.dragAndDrop) {
73
92
  const { fieldsState } = params;
@@ -135,8 +154,8 @@ export class CustomColumnsEntityPageState extends CustomColumnsPanelStateBase {
135
154
  return this._isFieldsEditable;
136
155
  }
137
156
 
138
- get collectionFieldsSource() {
139
- return null;
157
+ get manageFieldsSource() {
158
+ return this._manageFieldsSource;
140
159
  }
141
160
 
142
161
  get sidePanelTransition(): TransitionState<string> | undefined {
@@ -9,7 +9,7 @@ import { action, computed, makeObservable, observable } from 'mobx';
9
9
  import { Column } from '../model';
10
10
  import { CustomColumnsActionName } from './CustomColumnsState';
11
11
  import type { CustomColumnsDragAndDropState } from './CustomColumnsDragAndDropState';
12
- import type { CollectionFieldsSourceState } from './CollectionFieldsSourceState';
12
+ import type { ManageFieldsSource } from './ManageFieldsSource';
13
13
 
14
14
  export interface CustomColumnsPanelStateBaseParams {
15
15
  container: WixPatternsContainer;
@@ -65,15 +65,13 @@ export abstract class CustomColumnsPanelStateBase<
65
65
 
66
66
  /** Whether the panel manages schema fields rather than picking columns —
67
67
  * drives its title and subtitle. Sources that carry their own field
68
- * management report it through `collectionFieldsSource` instead. */
68
+ * management report it through `manageFieldsSource` instead. */
69
69
  get isFieldsEditable(): boolean {
70
70
  return false;
71
71
  }
72
72
 
73
- abstract get collectionFieldsSource():
74
- | CollectionFieldsSourceState
75
- | null
76
- | undefined;
73
+ /** Add / edit / delete field, when the surface offers it. */
74
+ abstract get manageFieldsSource(): ManageFieldsSource | null | undefined;
77
75
 
78
76
  abstract get sidePanelTransition(): TransitionState<string> | undefined;
79
77
 
@@ -501,7 +501,7 @@ export class CustomColumnsState<
501
501
  return this.table.showFieldTypeIcons;
502
502
  }
503
503
 
504
- get collectionFieldsSource() {
504
+ get manageFieldsSource() {
505
505
  return this.table.collectionFieldsSource;
506
506
  }
507
507
 
@@ -14,6 +14,8 @@ import { FieldValues, UseFormReturn } from 'react-hook-form';
14
14
  import { EntityPageStateBIReporter } from './EntityPageStateBIReporter';
15
15
  import { EventEmitter, TypedEmitter } from '@wix/bex-core/events';
16
16
  import { WixPatternsRouterState } from '../WixPatternsRouterState';
17
+ import type { SidePanelsState } from '../SidePanelsState';
18
+ import type { CustomColumnsEntityPageState } from '../CustomColumnsEntityPageState';
17
19
 
18
20
  type OnSaveParams = {
19
21
  widgetsFormData: { [key: string]: any };
@@ -127,6 +129,20 @@ export class EntityPageState<T, V extends FieldValues = FieldValues>
127
129
 
128
130
  actionsBarConfig?: EntityPageStateParams<T>['actionsBarConfig'];
129
131
 
132
+ /**
133
+ * The page's side-panel host, the way a table's lives on its toolbar.
134
+ * Attached by the first feature that needs one, through
135
+ * `SidePanelsState.setOnPage` — so a page with no panels neither builds nor
136
+ * bundles the side-panel code. Everything on the page shares this host, which
137
+ * is what keeps one panel open at a time.
138
+ */
139
+ panels: SidePanelsState | null = null;
140
+
141
+ /** The fields card's "Manage fields" state, set by the card that owns it —
142
+ * the panel is rendered by the host with no props and reads it from here,
143
+ * as a table's panel reads `toolbar.customColumnsState`. */
144
+ customColumnsState: CustomColumnsEntityPageState | null = null;
145
+
130
146
  readonly schemaSource?: SchemaSource<T>;
131
147
 
132
148
  /**
@@ -190,6 +206,7 @@ export class EntityPageState<T, V extends FieldValues = FieldValues>
190
206
  setEntity: action,
191
207
  _schema: observable.ref,
192
208
  setSchema: action,
209
+ customColumnsState: observable.ref,
193
210
  isFormDirty: computed,
194
211
  _withinRouter: computed,
195
212
  });
@@ -236,7 +253,12 @@ export class EntityPageState<T, V extends FieldValues = FieldValues>
236
253
  ]);
237
254
 
238
255
  this.setEntity(data.entity ?? null);
239
- if (loadedSchema) {
256
+ // Don't overwrite a schema something already set. A fields card mirrors the
257
+ // schema its field mutations merge into, and `loadSchema` is memoized — so
258
+ // setting it here again would put the pre-mutation fields map back and drop
259
+ // a field the server already has. Nothing is lost by keeping the newer one:
260
+ // this only ever re-sets the very same object (e.g. on `retryFetch`).
261
+ if (loadedSchema && !this.schema) {
240
262
  this.setSchema(loadedSchema.schema);
241
263
  }
242
264
  this.bi.appLoaded?.();
@@ -1,6 +1,7 @@
1
- import { computed, makeObservable, observable, runInAction } from 'mobx';
1
+ import { computed, makeObservable, reaction } from 'mobx';
2
2
  import {
3
3
  addEventListener,
4
+ SourceState,
4
5
  TaskState,
5
6
  type Schema,
6
7
  type WixPatternsContainer,
@@ -10,7 +11,7 @@ import { resolveEntityPageFields } from './EntityPage/resolveEntityPageFields';
10
11
  import type { EntityPageState } from './EntityPage/EntityPageState';
11
12
  import { SchemaCardState } from './SchemaCard/SchemaCardState';
12
13
  import type { SchemaViewConfig } from './SchemaCard/SchemaFieldsState';
13
- import { SidePanelsState } from './SidePanelsState';
14
+ import type { ManageFieldsSource } from './ManageFieldsSource';
14
15
  import { CustomColumnsEntityPageState } from './CustomColumnsEntityPageState';
15
16
 
16
17
  export interface EntityPageFieldsCardStateParams {
@@ -24,6 +25,12 @@ export interface EntityPageFieldsCardStateParams {
24
25
  showManageFields?: boolean;
25
26
  /** Passed in rather than imported so this stays free of component imports. */
26
27
  dragAndDrop?: typeof CustomColumnsDragAndDrop;
28
+ /** Builds add / edit / delete field over the page's source. Passed in for the
29
+ * same reason as `dragAndDrop`. Omitted ⇒ the panel only shows and reorders. */
30
+ fieldManagement?: (params: {
31
+ sourceState: SourceState<any>;
32
+ closeSidePanel: () => void;
33
+ }) => ManageFieldsSource;
27
34
  modalsContainerRef: {
28
35
  current: HTMLElement | null | undefined;
29
36
  };
@@ -40,51 +47,76 @@ export interface EntityPageFieldsCardStateParams {
40
47
  export class EntityPageFieldsCardState {
41
48
  readonly cardState: SchemaCardState;
42
49
  readonly panelState?: CustomColumnsEntityPageState;
50
+ /** Holds the loaded schema for the card. The page loads the same (memoized)
51
+ * schema into its own copy; this one is also what the field mutations merge
52
+ * their result into, so an added or renamed field shows up with no reload. */
53
+ readonly sourceState?: SourceState<any>;
54
+ /** Add / edit / delete field, when the page has a source and the panel is on. */
55
+ readonly manageFieldsSource?: ManageFieldsSource;
43
56
  /** The source's schema load. Owned here rather than read off the page state,
44
57
  * because this state's `init()` runs before the page's (child effects run
45
58
  * first) and the stored layout must not be read before the fields exist. */
46
59
  readonly loadTask = new TaskState();
47
- _loadedSchema: Schema | null = null;
48
60
  private readonly params: EntityPageFieldsCardStateParams;
49
61
 
50
62
  constructor(params: EntityPageFieldsCardStateParams) {
51
63
  this.params = params;
52
64
 
53
65
  makeObservable(this, {
54
- _loadedSchema: observable.ref,
55
66
  schema: computed,
56
67
  declaredFields: computed,
57
68
  visibleFieldIds: computed,
58
69
  canManageFields: computed,
59
70
  });
60
71
 
72
+ const { schemaSource } = params.pageState;
73
+ this.sourceState = schemaSource
74
+ ? new SourceState({ container: params.container, source: schemaSource })
75
+ : undefined;
76
+
61
77
  this.cardState = new SchemaCardState({
62
78
  fields: () => this.declaredFields,
63
79
  persistencyKey: params.persistencyKey,
64
80
  container: params.container,
65
81
  });
66
82
 
67
- if (params.showManageFields ?? true) {
83
+ const { panels } = params.pageState;
84
+
85
+ if ((params.showManageFields ?? true) && panels) {
86
+ this.manageFieldsSource =
87
+ this.sourceState &&
88
+ params.fieldManagement?.({
89
+ sourceState: this.sourceState,
90
+ closeSidePanel: panels.closeSidePanel,
91
+ });
68
92
  this.panelState = new CustomColumnsEntityPageState({
69
93
  container: params.container,
70
- panels: new SidePanelsState({
71
- container: params.container,
72
- panelGroupName: 'entity-page',
73
- }),
94
+ // The page's host, so this panel and anything else on the page take
95
+ // turns rather than stacking.
96
+ panels,
97
+ // Namespaces the panel's column collection, the way a table's is
98
+ // namespaced by its collection.
99
+ collectionId: params.pageState.schemaSource?.collectionId,
74
100
  fieldsState: this.cardState.fieldsState,
75
- schema: () => this.params.pageState.schema,
101
+ schema: () => this.schema,
102
+ manageFieldsSource: this.manageFieldsSource,
76
103
  isFieldsEditable: true,
77
104
  showFieldTypeIcons: true,
78
105
  dragAndDrop: params.dragAndDrop,
79
106
  modalsContainerRef: params.modalsContainerRef,
80
107
  });
108
+
109
+ // Where the registered panel reads it from — it renders with no props.
110
+ params.pageState.customColumnsState = this.panelState;
81
111
  }
82
112
  }
83
113
 
84
- /** The same object the page ends up with: the source memoizes its load, so
85
- * both read one result. */
114
+ /** The page's schema, or this state's own copy until the page has one — this
115
+ * load resolves first, since the page also waits for the entity fetch. They
116
+ * are the same object (the source memoizes its load), and after a field
117
+ * mutation the page holds the merged one, which `init` mirrors to it. */
86
118
  get schema(): Schema | null {
87
- return this._loadedSchema ?? this.params.pageState.schema;
119
+ return this.params.pageState.schema ?? this.sourceState?.schema ?? null;
88
120
  }
89
121
 
90
122
  /** The fields the card offers — empty until the schema loads. A required
@@ -129,10 +161,7 @@ export class EntityPageFieldsCardState {
129
161
  // `loadSchema` is memoized on the source, so this shares the one fetch the
130
162
  // page and the collection already make.
131
163
  this.loadTask.runOnce(async () => {
132
- const loaded = await this.params.pageState.schemaSource?.loadSchema();
133
- runInAction(() => {
134
- this._loadedSchema = loaded?.schema ?? null;
135
- });
164
+ await this.sourceState?.load();
136
165
  });
137
166
  // The card renders its fields regardless; a failed load leaves the page
138
167
  // itself showing the error.
@@ -147,6 +176,13 @@ export class EntityPageFieldsCardState {
147
176
  'beforeInitialFetch',
148
177
  () => this.loadTask.status.promise?.catch(() => {}),
149
178
  ),
179
+ // A field added, edited or deleted from the panel merges into this
180
+ // state's schema. The page renders its fields from its own copy, so give
181
+ // it the merged one — otherwise the change only shows after a reload.
182
+ reaction(
183
+ () => this.sourceState?.schema,
184
+ (schema) => schema && this.params.pageState.setSchema(schema),
185
+ ),
150
186
  this.cardState.init(),
151
187
  ];
152
188