@wix/patterns 1.476.0 → 1.478.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 (570) hide show
  1. package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
  2. package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
  3. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
  4. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
  5. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
  6. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  7. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
  8. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  9. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  10. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  11. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  12. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  13. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
  14. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  15. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  16. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  17. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  18. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  19. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  20. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  21. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  22. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  23. package/dist/cjs/components/CollectionToolbar/ToolbarOverflowMenu.js +57 -22
  24. package/dist/cjs/components/CollectionToolbar/ToolbarOverflowMenu.js.map +1 -1
  25. package/dist/cjs/components/CollectionToolbar/useToolbarOverflowItems.js +7 -1
  26. package/dist/cjs/components/CollectionToolbar/useToolbarOverflowItems.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/CustomFieldModal/CustomFieldForm.js +13 -13
  32. package/dist/cjs/components/CustomFieldModal/CustomFieldForm.js.map +1 -1
  33. package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.js +37 -21
  34. package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.js.map +1 -1
  35. package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.st.css +15 -0
  36. package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js +28 -0
  37. package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js.map +1 -0
  38. package/dist/cjs/components/CustomFieldModal/CustomFieldTypeDropdown.js +6 -8
  39. package/dist/cjs/components/CustomFieldModal/CustomFieldTypeDropdown.js.map +1 -1
  40. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  41. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  42. package/dist/cjs/components/EditableTable/AddItemRow.js +6 -3
  43. package/dist/cjs/components/EditableTable/AddItemRow.js.map +1 -1
  44. package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
  45. package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
  46. package/dist/cjs/components/EditableTable/EditableTable.js +12 -10
  47. package/dist/cjs/components/EditableTable/EditableTable.js.map +1 -1
  48. package/dist/cjs/components/EditableTable/EditableTable.uni.driver.js +1 -0
  49. package/dist/cjs/components/EditableTable/EditableTable.uni.driver.js.map +1 -1
  50. package/dist/cjs/components/EditableTable/EditableTableContextMenu.js +15 -11
  51. package/dist/cjs/components/EditableTable/EditableTableContextMenu.js.map +1 -1
  52. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  53. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  54. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  55. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  56. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
  57. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  58. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js +3 -3
  59. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
  60. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  61. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  62. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  63. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  64. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  65. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
  66. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  67. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  68. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  69. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  70. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
  71. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  72. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
  73. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
  74. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
  75. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  76. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  77. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  78. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  79. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  80. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  81. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  82. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
  83. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
  84. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  85. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  86. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  87. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  88. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  89. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  90. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  91. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  92. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
  93. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  94. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  95. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  96. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  97. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  98. package/dist/cjs/components/EditableTable/useAddRow.js +6 -1
  99. package/dist/cjs/components/EditableTable/useAddRow.js.map +1 -1
  100. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  101. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js.map +1 -1
  102. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  103. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  104. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  105. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  106. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  107. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  108. package/dist/cjs/components/ImportButton/ImportButton.js +26 -12
  109. package/dist/cjs/components/ImportButton/ImportButton.js.map +1 -1
  110. package/dist/cjs/components/ImportButton/ImportButton.uni.driver.js +6 -1
  111. package/dist/cjs/components/ImportButton/ImportButton.uni.driver.js.map +1 -1
  112. package/dist/cjs/components/ImportButton/ImportProps.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/LayoutSwitch/LayoutSwitch.js +42 -10
  118. package/dist/cjs/components/LayoutSwitch/LayoutSwitch.js.map +1 -1
  119. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  120. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  121. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  122. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  123. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  124. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  125. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  126. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  127. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  128. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  129. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  130. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  131. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  132. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  133. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  134. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  135. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  136. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  137. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  138. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  139. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  140. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  141. package/dist/cjs/components/ResponsiveButton/ResponsiveButton.js +23 -9
  142. package/dist/cjs/components/ResponsiveButton/ResponsiveButton.js.map +1 -1
  143. package/dist/cjs/components/SchemaSource/schemaFieldManagement.js +2 -0
  144. package/dist/cjs/components/SchemaSource/schemaFieldManagement.js.map +1 -1
  145. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  146. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  147. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +10 -10
  148. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  149. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  150. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  151. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  152. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  153. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js +6 -6
  154. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
  155. package/dist/cjs/components/TabsFilter/TabsFilter.js +9 -8
  156. package/dist/cjs/components/TabsFilter/TabsFilter.js.map +1 -1
  157. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  158. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  159. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  160. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  161. package/dist/cjs/components/ToolbarCollection/ToolbarCollection.js +5 -3
  162. package/dist/cjs/components/ToolbarCollection/ToolbarCollection.js.map +1 -1
  163. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  164. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  165. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  166. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  167. package/dist/cjs/components/common.st.css.js +4 -4
  168. package/dist/cjs/components/common.st.css.js.map +1 -1
  169. package/dist/cjs/schema/syncSourcePermissions.js +1 -0
  170. package/dist/cjs/schema/syncSourcePermissions.js.map +1 -1
  171. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  172. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  173. package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js +4 -4
  174. package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js.map +1 -1
  175. package/dist/cjs/state/EditableTable/EditableTableState.js +15 -0
  176. package/dist/cjs/state/EditableTable/EditableTableState.js.map +1 -1
  177. package/dist/cjs/state/EditableTable/index.js.map +1 -1
  178. package/dist/cjs/state/EntityPage/EntityPageState.js +2 -1
  179. package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
  180. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  181. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  182. package/dist/cjs/state/ToolbarCollectionState.js +8 -3
  183. package/dist/cjs/state/ToolbarCollectionState.js.map +1 -1
  184. package/dist/cjs/styles.global.css +2 -2
  185. package/dist/cjs/test-utils/index.js +6 -0
  186. package/dist/cjs/test-utils/index.js.map +1 -1
  187. package/dist/cjs/test-utils/scrollUntilRendered.js +45 -0
  188. package/dist/cjs/test-utils/scrollUntilRendered.js.map +1 -0
  189. package/dist/cjs/version.js +1 -1
  190. package/dist/cjs/version.js.map +1 -1
  191. package/dist/docs/Collection Toolkit.md +16 -1
  192. package/dist/docs/Collection to Entity Flow.md +8 -1
  193. package/dist/docs/Composition and Providers.md +16 -1
  194. package/dist/docs/CustomFieldType.md +10 -1
  195. package/dist/docs/ImportButton.md +6 -25
  196. package/dist/docs/Reading the Doc Indices.md +21 -0
  197. package/dist/docs/index.json +62 -6
  198. package/dist/docs/useSchemaSource.md +22 -84
  199. package/dist/dts-bundle/components/EditableTable.d.ts +551 -0
  200. package/dist/dts-bundle/components/EntityPageFieldsCard.d.ts +100 -0
  201. package/dist/dts-bundle/components/LayoutSwitch.d.ts +931 -0
  202. package/dist/dts-bundle/components/schema/EntityPage.d.ts +317 -0
  203. package/dist/dts-bundle/components/schema/Grid.d.ts +467 -0
  204. package/dist/dts-bundle/components/schema/Table.d.ts +360 -0
  205. package/dist/dts-bundle/exports/core.d.ts +1 -0
  206. package/dist/dts-bundle/exports/essentials.d.ts +0 -1
  207. package/dist/dts-bundle/exports/giza.d.ts +0 -1
  208. package/dist/dts-bundle/exports/index.d.ts +1 -2
  209. package/dist/dts-bundle/exports/schema.d.ts +14 -7
  210. package/dist/dts-bundle/functions/listCmsCollections.d.ts +12 -0
  211. package/dist/dts-bundle/hooks/schema/useCollection.d.ts +341 -0
  212. package/dist/dts-bundle/hooks/schema/useEntityPage.d.ts +244 -0
  213. package/dist/dts-bundle/hooks/schema/useGridCollection.d.ts +338 -0
  214. package/dist/dts-bundle/hooks/schema/useTableCollection.d.ts +338 -0
  215. package/dist/dts-bundle/hooks/useCmsSchemaSource.d.ts +439 -0
  216. package/dist/dts-bundle/hooks/useEditableTableCollection.d.ts +422 -0
  217. package/dist/dts-bundle/hooks/useLayoutSwitchCollection.d.ts +418 -0
  218. package/dist/dts-bundle/hooks/useSchemaSource.d.ts +59 -0
  219. package/dist/dts-bundle/index.json +328 -18
  220. package/dist/dts-bundle/index.txt +23 -2
  221. package/dist/dts-bundle/types/CellType.d.ts +839 -0
  222. package/dist/dts-bundle/types/CmsCollectionSummary.d.ts +9 -0
  223. package/dist/dts-bundle/types/EntityPageState.d.ts +8 -6
  224. package/dist/dts-bundle/types/SchemaSource.d.ts +21 -53
  225. package/dist/dts-bundle/types/SchemaSourceInput.d.ts +824 -0
  226. package/dist/dts-bundle/types/UseCmsSchemaSourceDeps.d.ts +922 -0
  227. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  228. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
  229. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
  230. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
  231. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
  232. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  233. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  234. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  235. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  236. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  237. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  238. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  239. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  240. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  241. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  242. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  243. package/dist/esm/components/CollectionToolbar/ToolbarOverflowMenu.js +15 -6
  244. package/dist/esm/components/CollectionToolbar/ToolbarOverflowMenu.js.map +1 -1
  245. package/dist/esm/components/CollectionToolbar/useToolbarOverflowItems.js +5 -0
  246. package/dist/esm/components/CollectionToolbar/useToolbarOverflowItems.js.map +1 -1
  247. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  248. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  249. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  250. package/dist/esm/components/CustomFieldModal/CustomFieldForm.js +3 -2
  251. package/dist/esm/components/CustomFieldModal/CustomFieldForm.js.map +1 -1
  252. package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.js +8 -3
  253. package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.js.map +1 -1
  254. package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.st.css +15 -0
  255. package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js +15 -0
  256. package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js.map +1 -0
  257. package/dist/esm/components/CustomFieldModal/CustomFieldTypeDropdown.js +2 -2
  258. package/dist/esm/components/CustomFieldModal/CustomFieldTypeDropdown.js.map +1 -1
  259. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  260. package/dist/esm/components/DragHandle/DragHandle.st.css.js.map +1 -1
  261. package/dist/esm/components/EditableTable/AddItemRow.js +2 -2
  262. package/dist/esm/components/EditableTable/AddItemRow.js.map +1 -1
  263. package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
  264. package/dist/esm/components/EditableTable/EditableTable.js +2 -2
  265. package/dist/esm/components/EditableTable/EditableTable.js.map +1 -1
  266. package/dist/esm/components/EditableTable/EditableTable.uni.driver.js +2 -0
  267. package/dist/esm/components/EditableTable/EditableTable.uni.driver.js.map +1 -1
  268. package/dist/esm/components/EditableTable/EditableTableContextMenu.js +12 -2
  269. package/dist/esm/components/EditableTable/EditableTableContextMenu.js.map +1 -1
  270. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  271. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  272. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  273. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
  274. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  275. package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js +2 -2
  276. package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
  277. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  278. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  279. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  280. package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  281. package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
  282. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  283. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  284. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
  285. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  286. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
  287. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
  288. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  289. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  290. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  291. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  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/Edit.st.css.js.map +1 -1
  295. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  296. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  297. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  298. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  299. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  300. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  301. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
  302. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  303. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  304. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  305. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  306. package/dist/esm/components/EditableTable/useAddRow.js +7 -2
  307. package/dist/esm/components/EditableTable/useAddRow.js.map +1 -1
  308. package/dist/esm/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  309. package/dist/esm/components/EmptyState/EmptyStateBase.st.css.js.map +1 -1
  310. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  311. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  312. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  313. package/dist/esm/components/Heading/Heading.st.css.js.map +1 -1
  314. package/dist/esm/components/ImportButton/ImportButton.js +3 -1
  315. package/dist/esm/components/ImportButton/ImportButton.js.map +1 -1
  316. package/dist/esm/components/ImportButton/ImportButton.uni.driver.js +5 -0
  317. package/dist/esm/components/ImportButton/ImportButton.uni.driver.js.map +1 -1
  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/LayoutSwitch/LayoutSwitch.js +27 -0
  322. package/dist/esm/components/LayoutSwitch/LayoutSwitch.js.map +1 -1
  323. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  324. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  325. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  326. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  327. package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
  328. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  329. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  330. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  331. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  332. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  333. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  334. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  335. package/dist/esm/components/PickerContent/PickerContent.st.css.js.map +1 -1
  336. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  337. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  338. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  339. package/dist/esm/components/ResponsiveButton/ResponsiveButton.js +7 -3
  340. package/dist/esm/components/ResponsiveButton/ResponsiveButton.js.map +1 -1
  341. package/dist/esm/components/SchemaSource/schemaFieldManagement.js +2 -0
  342. package/dist/esm/components/SchemaSource/schemaFieldManagement.js.map +1 -1
  343. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  344. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
  345. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  346. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  347. package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js +2 -2
  348. package/dist/esm/components/TabsFilter/TabsFilter.js +3 -2
  349. package/dist/esm/components/TabsFilter/TabsFilter.js.map +1 -1
  350. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  351. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  352. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  353. package/dist/esm/components/ToolbarCollection/ToolbarCollection.js +2 -2
  354. package/dist/esm/components/ToolbarCollection/ToolbarCollection.js.map +1 -1
  355. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  356. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  357. package/dist/esm/components/common.st.css.js +2 -2
  358. package/dist/esm/schema/syncSourcePermissions.js +1 -0
  359. package/dist/esm/schema/syncSourcePermissions.js.map +1 -1
  360. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  361. package/dist/esm/state/CollectionPage/TitleBadges.st.css.js +2 -2
  362. package/dist/esm/state/EditableTable/EditableTableState.js +13 -0
  363. package/dist/esm/state/EditableTable/EditableTableState.js.map +1 -1
  364. package/dist/esm/state/EntityPage/EntityPageState.js +2 -0
  365. package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
  366. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  367. package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  368. package/dist/esm/state/ToolbarCollectionState.js +6 -3
  369. package/dist/esm/state/ToolbarCollectionState.js.map +1 -1
  370. package/dist/esm/styles.global.css +2 -2
  371. package/dist/esm/test-utils/index.js +1 -0
  372. package/dist/esm/test-utils/index.js.map +1 -1
  373. package/dist/esm/test-utils/scrollUntilRendered.js +32 -0
  374. package/dist/esm/test-utils/scrollUntilRendered.js.map +1 -0
  375. package/dist/esm/version.js +1 -1
  376. package/dist/examples/ImportButton/cms-import.tsx +0 -6
  377. package/dist/examples/ImportButton/create-new-field.tsx +0 -6
  378. package/dist/examples/ImportButton/update-or-skip-by-id.tsx +0 -6
  379. package/dist/examples/useSchemaSource/cms-collection.tsx +1 -7
  380. package/dist/examples/useSchemaSource/extra-columns-and-data.tsx +1 -7
  381. package/dist/types/components/CmsFieldManagement/CmsFieldForm.st.css.d.ts.map +1 -1
  382. package/dist/types/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.d.ts.map +1 -1
  383. package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.st.css.d.ts.map +1 -1
  384. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +2 -0
  385. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts.map +1 -1
  386. package/dist/types/components/CollectionToolbar/CollectionToolbar.st.css.d.ts.map +1 -1
  387. package/dist/types/components/CollectionToolbar/SearchOrCustomFilter.st.css.d.ts.map +1 -1
  388. package/dist/types/components/CollectionToolbar/ToolbarOverflowMenu.d.ts +3 -1
  389. package/dist/types/components/CollectionToolbar/ToolbarOverflowMenu.d.ts.map +1 -1
  390. package/dist/types/components/CollectionToolbar/useToolbarOverflowItems.d.ts.map +1 -1
  391. package/dist/types/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.d.ts.map +1 -1
  392. package/dist/types/components/CustomFieldModal/CustomFieldForm.d.ts.map +1 -1
  393. package/dist/types/components/CustomFieldModal/CustomFieldFormPiiFields.d.ts.map +1 -1
  394. package/dist/types/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.d.ts +19 -0
  395. package/dist/types/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.d.ts.map +1 -0
  396. package/dist/types/components/CustomFieldModal/CustomFieldTypeDropdown.d.ts.map +1 -1
  397. package/dist/types/components/DragHandle/DragHandle.st.css.d.ts.map +1 -1
  398. package/dist/types/components/EditableTable/AddItemRow.d.ts +3 -2
  399. package/dist/types/components/EditableTable/AddItemRow.d.ts.map +1 -1
  400. package/dist/types/components/EditableTable/EditableTable.d.ts.map +1 -1
  401. package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts +3 -0
  402. package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts.map +1 -1
  403. package/dist/types/components/EditableTable/EditableTableContextMenu.d.ts.map +1 -1
  404. package/dist/types/components/EditableTable/cellTypes/CellViewLayout.st.css.d.ts.map +1 -1
  405. package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts.map +1 -1
  406. package/dist/types/components/EditableTable/cellTypes/array/Edit.st.css.d.ts.map +1 -1
  407. package/dist/types/components/EditableTable/cellTypes/boolean/View.st.css.d.ts.map +1 -1
  408. package/dist/types/components/EditableTable/cellTypes/color/Edit.st.css.d.ts.map +1 -1
  409. package/dist/types/components/EditableTable/cellTypes/datetime/Edit.st.css.d.ts.map +1 -1
  410. package/dist/types/components/EditableTable/cellTypes/email/Edit.st.css.d.ts.map +1 -1
  411. package/dist/types/components/EditableTable/cellTypes/number/Edit.st.css.d.ts.map +1 -1
  412. package/dist/types/components/EditableTable/cellTypes/object/Edit.st.css.d.ts.map +1 -1
  413. package/dist/types/components/EditableTable/cellTypes/object/View.st.css.d.ts.map +1 -1
  414. package/dist/types/components/EditableTable/cellTypes/text/Edit.st.css.d.ts.map +1 -1
  415. package/dist/types/components/EditableTable/cellTypes/time/Edit.st.css.d.ts.map +1 -1
  416. package/dist/types/components/EditableTable/cellTypes/url/Edit.st.css.d.ts.map +1 -1
  417. package/dist/types/components/EditableTable/useAddRow.d.ts +1 -0
  418. package/dist/types/components/EditableTable/useAddRow.d.ts.map +1 -1
  419. package/dist/types/components/EmptyState/EmptyStateBase.st.css.d.ts.map +1 -1
  420. package/dist/types/components/Heading/Heading.st.css.d.ts.map +1 -1
  421. package/dist/types/components/ImportButton/ImportButton.d.ts.map +1 -1
  422. package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts +2 -0
  423. package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts.map +1 -1
  424. package/dist/types/components/ImportButton/ImportProps.d.ts +2 -0
  425. package/dist/types/components/ImportButton/ImportProps.d.ts.map +1 -1
  426. package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
  427. package/dist/types/components/LayoutSwitch/LayoutSwitch.d.ts.map +1 -1
  428. package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
  429. package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
  430. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +2 -0
  431. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts.map +1 -1
  432. package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.d.ts.map +1 -1
  433. package/dist/types/components/PickerContent/PickerContent.st.css.d.ts.map +1 -1
  434. package/dist/types/components/PickerContent/PickerContentAdditionalStep.st.css.d.ts.map +1 -1
  435. package/dist/types/components/ResponsiveButton/ResponsiveButton.d.ts +6 -4
  436. package/dist/types/components/ResponsiveButton/ResponsiveButton.d.ts.map +1 -1
  437. package/dist/types/components/SchemaSource/schemaFieldManagement.d.ts.map +1 -1
  438. package/dist/types/components/Table/Table.uni.driver.d.ts +2 -0
  439. package/dist/types/components/Table/Table.uni.driver.d.ts.map +1 -1
  440. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +2 -0
  441. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
  442. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +2 -0
  443. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts.map +1 -1
  444. package/dist/types/components/TabsFilter/TabsFilter.d.ts.map +1 -1
  445. package/dist/types/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.d.ts.map +1 -1
  446. package/dist/types/components/ToolbarCollection/ToolbarCollection.d.ts.map +1 -1
  447. package/dist/types/schema/syncSourcePermissions.d.ts.map +1 -1
  448. package/dist/types/state/EditableTable/EditableTableState.d.ts +9 -2
  449. package/dist/types/state/EditableTable/EditableTableState.d.ts.map +1 -1
  450. package/dist/types/state/EditableTable/index.d.ts +1 -1
  451. package/dist/types/state/EditableTable/index.d.ts.map +1 -1
  452. package/dist/types/state/EntityPage/EntityPageState.d.ts +1 -1
  453. package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
  454. package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
  455. package/dist/types/state/ToolbarCollectionState.d.ts +3 -1
  456. package/dist/types/state/ToolbarCollectionState.d.ts.map +1 -1
  457. package/dist/types/test-utils/index.d.ts +1 -0
  458. package/dist/types/test-utils/index.d.ts.map +1 -1
  459. package/dist/types/test-utils/scrollUntilRendered.d.ts +24 -0
  460. package/dist/types/test-utils/scrollUntilRendered.d.ts.map +1 -0
  461. package/dist/types/testkit/enzyme.d.ts +8 -0
  462. package/dist/types/testkit/enzyme.d.ts.map +1 -1
  463. package/dist/types/testkit/jsdom.d.ts +11 -0
  464. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  465. package/dist/types/testkit/playwright.d.ts +11 -0
  466. package/dist/types/testkit/playwright.d.ts.map +1 -1
  467. package/dist/types/testkit/puppeteer.d.ts +11 -0
  468. package/dist/types/testkit/puppeteer.d.ts.map +1 -1
  469. package/dist/types/version.d.ts +1 -1
  470. package/package.json +8 -8
  471. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  472. package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
  473. package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
  474. package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
  475. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  476. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  477. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  478. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  479. package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
  480. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  481. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  482. package/src/components/CollectionToolbar/ToolbarOverflowMenu.tsx +47 -16
  483. package/src/components/CollectionToolbar/useToolbarOverflowItems.ts +7 -0
  484. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  485. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  486. package/src/components/CustomFieldModal/CustomFieldForm.tsx +7 -4
  487. package/src/components/CustomFieldModal/CustomFieldFormPiiFields.st.css +15 -0
  488. package/src/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.ts +25 -0
  489. package/src/components/CustomFieldModal/CustomFieldFormPiiFields.tsx +26 -14
  490. package/src/components/CustomFieldModal/CustomFieldTypeDropdown.tsx +3 -4
  491. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  492. package/src/components/EditableTable/AddItemRow.tsx +5 -2
  493. package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
  494. package/src/components/EditableTable/EditableTable.tsx +8 -2
  495. package/src/components/EditableTable/EditableTable.uni.driver.ts +4 -0
  496. package/src/components/EditableTable/EditableTableContextMenu.tsx +16 -4
  497. package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
  498. package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
  499. package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
  500. package/src/components/EditableTable/cellTypes/array/Edit.st.css.ts +2 -2
  501. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  502. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  503. package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
  504. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  505. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  506. package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +2 -2
  507. package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
  508. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
  509. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
  510. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  511. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  512. package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
  513. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
  514. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  515. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  516. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  517. package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
  518. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  519. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  520. package/src/components/EditableTable/useAddRow.ts +8 -2
  521. package/src/components/EmptyState/EmptyStateBase.st.css.ts +2 -2
  522. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  523. package/src/components/Fade/Fade.st.css.ts +2 -2
  524. package/src/components/Heading/Heading.st.css.ts +2 -2
  525. package/src/components/ImportButton/ImportButton.tsx +19 -9
  526. package/src/components/ImportButton/ImportButton.uni.driver.ts +6 -0
  527. package/src/components/ImportButton/ImportProps.tsx +2 -0
  528. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  529. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  530. package/src/components/LayoutSwitch/LayoutSwitch.tsx +43 -0
  531. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  532. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  533. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  534. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  535. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  536. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  537. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  538. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  539. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  540. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  541. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  542. package/src/components/ResponsiveButton/ResponsiveButton.tsx +26 -14
  543. package/src/components/SchemaSource/schemaFieldManagement.ts +2 -0
  544. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  545. package/src/components/SetupWidget/SetupWidget.st.css.ts +2 -2
  546. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  547. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  548. package/src/components/Table/AddFieldColumnHeader.st.css.ts +2 -2
  549. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  550. package/src/components/TabsFilter/TabsFilter.tsx +3 -2
  551. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  552. package/src/components/ToolbarCollection/ToolbarCollection.tsx +2 -0
  553. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  554. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  555. package/src/components/common.st.css.ts +2 -2
  556. package/src/schema/syncSourcePermissions.ts +1 -0
  557. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  558. package/src/state/CollectionPage/TitleBadges.st.css.ts +2 -2
  559. package/src/state/EditableTable/EditableTableState.ts +28 -2
  560. package/src/state/EditableTable/index.ts +1 -0
  561. package/src/state/EntityPage/EntityPageState.ts +2 -1
  562. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  563. package/src/state/ToolbarCollectionState.ts +12 -3
  564. package/src/styles.global.css +2 -2
  565. package/src/test-utils/index.ts +1 -0
  566. package/src/test-utils/scrollUntilRendered.ts +98 -0
  567. package/src/version.ts +1 -1
  568. package/dist/examples/ImportButton/platformized-import-from-a-source.tsx +0 -56
  569. package/dist/examples/useSchemaSource/your-own-source.tsx +0 -173
  570. /package/dist/examples/ImportButton/{platformized-import-fields-inline.tsx → platformized-import.tsx} +0 -0
@@ -0,0 +1,824 @@
1
+ import { ReactNode, ComponentType, ReactElement, MutableRefObject } from 'react';
2
+
3
+ type PatternsFieldType = 'SHORT_TEXT' | 'LONG_TEXT' | 'NUMBER' | 'BOOLEAN' | 'DATE' | 'DATETIME' | 'TIME' | 'URL' | 'ARRAY' | 'REFERENCE' | 'MULTI_REFERENCE' | 'OBJECT' | 'IMAGE' | 'VIDEO' | 'MEDIA_GALLERY' | 'ADDRESS' | 'RICH_TEXT' | 'DOCUMENT' | 'RICH_CONTENT' | 'MULTI_DOCUMENT' | 'EMAIL' | 'AUDIO' | 'COLOR' | 'CUSTOM' | 'UNKNOWN';
4
+ type QueryOperator = 'CONTAINS' | 'ENDS_WITH' | 'EQ' | 'EXISTS' | 'GT' | 'GTE' | 'HAS_ALL' | 'HAS_SOME' | 'LT' | 'LTE' | 'NE' | 'STARTS_WITH' | 'URLIZED';
5
+ interface NumberRange {
6
+ min?: number;
7
+ max?: number;
8
+ }
9
+ interface StringLengthRange {
10
+ minLength?: number;
11
+ maxLength?: number;
12
+ }
13
+ interface SpecificValue {
14
+ id: string;
15
+ value: string;
16
+ }
17
+ interface BaseField {
18
+ id: string;
19
+ displayName: string;
20
+ isPii?: boolean;
21
+ helpText?: string;
22
+ /** Whether this is a system-managed field (not user-created). */
23
+ isSystem?: boolean;
24
+ /** The group this field belongs to, when the source groups its fields.
25
+ * Absent ⇒ ungrouped. */
26
+ group?: string;
27
+ /** Whether this is the collection's primary display field. */
28
+ isPrimary?: boolean;
29
+ validation?: {
30
+ numberRange?: NumberRange;
31
+ stringLengthRange?: StringLengthRange;
32
+ specificValues?: SpecificValue[];
33
+ /** Regular expression source the value must match. Applies to text-like
34
+ * fields only; mutually exclusive with `specificValues`. */
35
+ pattern?: string;
36
+ required: boolean;
37
+ };
38
+ capabilities?: {
39
+ supportedQueryOperators: QueryOperator[];
40
+ sortable: boolean;
41
+ };
42
+ }
43
+ interface BaseReferenceField extends BaseField {
44
+ referenceMetadata: {
45
+ referencedCollectionId: string;
46
+ };
47
+ }
48
+ interface ReferenceField extends BaseReferenceField {
49
+ type: 'REFERENCE';
50
+ }
51
+ interface MultiReferenceField extends BaseReferenceField {
52
+ type: 'MULTI_REFERENCE';
53
+ }
54
+ interface NonReferenceField extends BaseField {
55
+ type: Exclude<PatternsFieldType, 'REFERENCE' | 'MULTI_REFERENCE'>;
56
+ /** Present iff `type` is 'CUSTOM'; keys a field type definition registered on the source. */
57
+ customType?: string;
58
+ }
59
+ type Field = ReferenceField | MultiReferenceField | NonReferenceField;
60
+
61
+ /**
62
+ * `ComputedQuery` — cut here because it has its own bundle.
63
+ * Full shape: `types/ComputedQuery.d.ts`.
64
+ */
65
+ interface ComputedQuery<F = any> {
66
+ [key: string]: unknown;
67
+ }
68
+
69
+ /**
70
+ * `DataResultRaw` — cut here because it has its own bundle.
71
+ * Full shape: `types/DataResultRaw.d.ts`.
72
+ */
73
+ interface DataResultRaw<T = any> {
74
+ [key: string]: unknown;
75
+ }
76
+
77
+ /**
78
+ * `OffsetQuery` — cut here because it has its own bundle.
79
+ * Full shape: `types/OffsetQuery.d.ts`.
80
+ */
81
+ type OffsetQuery<F = any> = Omit<ComputedQuery<F>, 'cursor'>;
82
+ type OffsetQueryResult<T> = Omit<DataResultRaw<T>, 'cursor'>;
83
+ type CursorQueryResult<T> = Omit<DataResultRaw<T>, 'cursor'> & {
84
+ cursor: string | undefined | null;
85
+ };
86
+ /**
87
+ * `CursorQuery` — cut here because it has its own bundle.
88
+ * Full shape: `types/CursorQuery.d.ts`.
89
+ */
90
+ type CursorQuery<F = any> = Omit<ComputedQuery<F>, 'offset'>;
91
+ type FetchTotalFn = (query: CursorQuery) => Promise<number>;
92
+
93
+ /** Field-management permissions. Absent when the schema's fields cannot be edited. */
94
+ interface SchemaPermissions {
95
+ createField: boolean;
96
+ updateField: boolean;
97
+ deleteField: boolean;
98
+ }
99
+ interface ItemDisabledResult<R = string> {
100
+ disabled: boolean;
101
+ reason?: R;
102
+ }
103
+ /** The per-item delete verdict. */
104
+ type RemoveItemDisabledResult = ItemDisabledResult;
105
+ type CreateItemDisabledResult = ItemDisabledResult<ReactNode>;
106
+ /** Item-level CRUD permissions. */
107
+ interface ItemPermissions<T = Record<string, unknown>> {
108
+ createItem: boolean;
109
+ updateItem: boolean;
110
+ deleteItem: boolean;
111
+ /** Deleting several items in one operation. Absent = follows `deleteItem`. */
112
+ bulkDeleteItems?: boolean;
113
+ /** Per-item refinement of `deleteItem`: disables deleting an item even
114
+ * though `deleteItem` is true, optionally with a reason. Must be pure and
115
+ * synchronous. Absent = all items deletable. */
116
+ isRemoveItemDisabled?: (item: T) => RemoveItemDisabledResult;
117
+ isCreateItemDisabled?: () => CreateItemDisabledResult;
118
+ }
119
+ /**
120
+ * A source-neutral description of a collection — data only, no behavior.
121
+ * Item access is in `CollectionBackend`, field mutations in `FieldActions`.
122
+ */
123
+ interface Schema {
124
+ id: string;
125
+ fields: Record<string, Field | undefined>;
126
+ /** Human-readable label, when the source has one. Reported to BI. */
127
+ name?: string;
128
+ /** The kind of data set, when the source distinguishes kinds. Reported to BI. */
129
+ type?: string;
130
+ /** The field that best represents the entity (titles/selections). */
131
+ displayField: string;
132
+ /** The identifier field. */
133
+ idField: string;
134
+ /** Group display order, present when fields carry a `group`. */
135
+ groups?: string[];
136
+ /** Absent when the schema's fields cannot be edited. */
137
+ schemaPermissions?: SchemaPermissions;
138
+ itemPermissions?: ItemPermissions;
139
+ }
140
+ interface BackupConfig {
141
+ create: () => Promise<{
142
+ backupId: string;
143
+ }>;
144
+ waitForCompletion: (backupId: string, options?: {
145
+ signal?: AbortSignal;
146
+ }) => Promise<void>;
147
+ cancel?: (backupId: string) => Promise<void>;
148
+ restore?: (backupId: string) => Promise<{
149
+ restorationId: string;
150
+ }>;
151
+ waitForRestoration?: (restorationId: string, options?: {
152
+ signal?: AbortSignal;
153
+ }) => Promise<void>;
154
+ }
155
+ interface BulkInsertError {
156
+ rowIndex: number;
157
+ message?: string;
158
+ code?: string;
159
+ }
160
+ interface BulkInsertResult {
161
+ succeeded?: number;
162
+ failed?: number;
163
+ errors?: BulkInsertError[];
164
+ }
165
+ /**
166
+ * Metadata for an item update. `changedFieldIds` narrows follow-up comparison
167
+ * work to fields the UI already knows were edited, which avoids diffing every
168
+ * value when some fields are large or expensive to compare.
169
+ */
170
+ interface CollectionUpdateContext<T = Record<string, unknown>> {
171
+ previousItem: T;
172
+ changedFieldIds: string[];
173
+ }
174
+ /** Item data access shared by both pagination modes. `find` (on
175
+ * `CollectionBackend`) is the only required call — the rest are capabilities
176
+ * a source provides when it (or its consumer) supports them. */
177
+ interface CollectionBackendBase<T = Record<string, unknown>> {
178
+ get?: (entityId: string) => Promise<T>;
179
+ create?: (entity: Partial<T>) => Promise<T>;
180
+ update?: (entity: T, context?: CollectionUpdateContext<T>) => Promise<T>;
181
+ delete?: (entityId: string) => Promise<void>;
182
+ bulkDelete?: (entityIds: string[]) => Promise<void>;
183
+ move?: (id: string, params: {
184
+ moveAfterId: string | null | undefined;
185
+ }) => Promise<void>;
186
+ backup?: BackupConfig;
187
+ bulkInsert?: (entities: Partial<T>[]) => Promise<BulkInsertResult>;
188
+ }
189
+ /** Per-call search scope the query layer passes to a backend's `find`. */
190
+ interface FindOptions {
191
+ searchableFieldIds?: string[];
192
+ }
193
+ /**
194
+ * The query-layer fetch-data fns plus the optional `find` options the runtime
195
+ * already accepts. Kept separate so the shared `OffsetFetchDataFn`/
196
+ * `CursorFetchDataFn` used by `fetchData` stay unchanged.
197
+ */
198
+ type OffsetFindFn<T, F extends FiltersMap> = (query: OffsetQuery<F>, options?: FindOptions) => Promise<OffsetQueryResult<T>>;
199
+ type CursorFindFn<T, F extends FiltersMap> = (query: CursorQuery<F>, options?: FindOptions) => Promise<CursorQueryResult<T>>;
200
+ /**
201
+ * A source's item data access. The source declares its `paginationMode`
202
+ * (offset by default) together with the matching `find`, same as core's
203
+ * `PaginationModeConfig`.
204
+ */
205
+ type CollectionBackend<T = Record<string, unknown>, F extends FiltersMap = OptionalFiltersMap> = CollectionBackendBase<T> & ({
206
+ paginationMode?: 'offset';
207
+ find: OffsetFindFn<T, F>;
208
+ } | {
209
+ paginationMode: 'cursor';
210
+ find: CursorFindFn<T, F>;
211
+ fetchTotal?: FetchTotalFn;
212
+ });
213
+ /**
214
+ * Whatever the source's settings section collected in the add/edit field modal.
215
+ * The modal and the collection layer only carry it; the source that produced it
216
+ * is the only one that looks inside, so it declares its own shape on `addField`
217
+ * and `editField` (both are methods, so a narrower parameter type is allowed).
218
+ */
219
+ type FieldSettings = unknown;
220
+ /** Field-management actions. All optional — a read-only source provides none. */
221
+ interface FieldActions {
222
+ /**
223
+ * Field-mutating actions return the collection's updated fields map so the
224
+ * caller can merge its local state from the response, without reloading the
225
+ * schema. (`renameField` is the exception — nothing consumes its result yet.)
226
+ */
227
+ addField?(field: Field, settings?: FieldSettings): Promise<Schema['fields']>;
228
+ /**
229
+ * Adds several fields in a single mutation, each under its `field.id` key
230
+ * (callers decide the keys up front — e.g. CSV import uploads values under
231
+ * them), unlike `addField`, which derives a fresh key from the display name.
232
+ */
233
+ addFields?: (fields: Field[]) => Promise<Schema['fields']>;
234
+ editField?(fieldId: string, updates: Partial<Field>, settings?: FieldSettings): Promise<Schema['fields']>;
235
+ deleteField?: (fieldId: string) => Promise<Schema['fields']>;
236
+ renameField?: (fieldId: string, newName: string) => Promise<void>;
237
+ makePrimary?: (fieldId: string) => Promise<Schema['fields']>;
238
+ duplicateField?: (fieldId: string) => Promise<Schema['fields']>;
239
+ duplicateFieldWithContent?: (fieldId: string) => Promise<Schema['fields']>;
240
+ }
241
+ /** Everything a source provides for a collection. */
242
+ interface LoadedSchema<T = Record<string, unknown>> {
243
+ schema: Schema;
244
+ backend: CollectionBackend<T>;
245
+ fieldActions?: FieldActions;
246
+ }
247
+
248
+ /** Presentation for one existing field, without changing its type or behavior. */
249
+ interface FieldPresentation {
250
+ typeDisplay?: Partial<FieldTypeDisplay>;
251
+ collectionInputLabel?: string;
252
+ }
253
+ /** Read/write permission defaults a source supports, per audience. */
254
+ interface FieldPermissions {
255
+ installedApps?: {
256
+ hide?: boolean;
257
+ defaultRead?: boolean;
258
+ defaultWrite?: boolean;
259
+ };
260
+ siteVisitors?: {
261
+ hide?: boolean;
262
+ defaultRead?: boolean;
263
+ defaultWrite?: boolean;
264
+ };
265
+ }
266
+ /** The add-modal subtitle: a line of text, an optional second note line, and an
267
+ * optional "learn more" link. */
268
+ interface FieldModalSubtitle {
269
+ text: string;
270
+ note?: string;
271
+ learnMore?: {
272
+ label: string;
273
+ href: string;
274
+ };
275
+ }
276
+ /** The text a source supplies for the add/edit field modal. */
277
+ interface FieldModalText {
278
+ addTitle: string;
279
+ editTitle: string;
280
+ /** Subtitle for the add modal; omit for none. */
281
+ addSubtitle?: FieldModalSubtitle;
282
+ /** Label of the collapsible section below the main fields. */
283
+ settingsLabel?: string;
284
+ /** Label of the field ID input. Absent ⇒ the standard key label. */
285
+ keyLabel?: string;
286
+ }
287
+ /** A warning shown under the PII toggle, with an optional action button. */
288
+ interface FieldPiiWarning {
289
+ text: string;
290
+ action?: {
291
+ label: string;
292
+ onClick: () => void;
293
+ };
294
+ }
295
+ interface FieldModalCollectionOption {
296
+ id: string;
297
+ label: string;
298
+ }
299
+ type FieldModalCollectionOptionsLoader = () => Promise<FieldModalCollectionOption[]>;
300
+ interface FieldModalCollectionAction {
301
+ label: string;
302
+ icon?: ComponentType;
303
+ disabled?: boolean;
304
+ /** Return an option to select, or undefined on cancellation. The option may
305
+ * be pending creation; persistence remains the source's responsibility. */
306
+ onClick: () => Promise<FieldModalCollectionOption | undefined>;
307
+ }
308
+ /** Extra collection picker a field type can add to the main modal body. */
309
+ interface FieldModalCollectionInput {
310
+ label?: string;
311
+ placeholder?: string;
312
+ emptyStateMessage?: string;
313
+ errorMessage?: string;
314
+ required?: boolean;
315
+ loadOptions?: FieldModalCollectionOptionsLoader;
316
+ /** An action below the options, also shown when no options match. */
317
+ dropdownAction?: FieldModalCollectionAction;
318
+ /** Restores the picker value from an existing field. */
319
+ getValue?: (field: Field) => string | undefined;
320
+ /** Adds picker-derived values to the source-owned settings payload. */
321
+ getSettings?: (collectionId: string) => FieldSettings;
322
+ }
323
+ interface FieldSettingsProps {
324
+ /** The picked field type, or absent before one is picked. */
325
+ fieldType?: string;
326
+ /** Validation rules the section should render as fixed, not user-editable.
327
+ * A section ignores any entry it doesn't recognize. */
328
+ lockedRules?: readonly string[];
329
+ }
330
+ /**
331
+ * The collapsible section below the main add/edit field inputs, supplied by the
332
+ * source. The modal renders it, blocks confirm while it has an error, and hands
333
+ * its values to the source's own `addField`/`editField` — it never looks inside.
334
+ */
335
+ interface FieldSettingsSection {
336
+ Component: ComponentType<FieldSettingsProps>;
337
+ /** True keeps the modal open on confirm. The section shows the error itself. */
338
+ hasError(fieldType?: string): boolean;
339
+ /** Passed to `FieldActions.addField`/`editField` as-is. */
340
+ getValues(fieldType?: string): FieldSettings;
341
+ /**
342
+ * Fills the inputs when the modal opens: the field being edited, or nothing
343
+ * for a new field. Pushed in rather than read from a prop, so the values are
344
+ * there whether or not the section has been rendered yet.
345
+ */
346
+ setValues(field?: Field): void;
347
+ /**
348
+ * Prefills a new field's rules from the caller's requested initial values —
349
+ * there is no backing `Field` yet, so this is separate from `setValues`.
350
+ * Absent ⇒ the section doesn't support prefilling any rule this way, and
351
+ * the modal drops that rule from `lockedProperties` rather than locking a
352
+ * control at a value it could never actually apply.
353
+ */
354
+ setInitialValues?(initial: {
355
+ required?: boolean;
356
+ }): void;
357
+ }
358
+
359
+ /**
360
+ * `Filter` — cut here because it has its own bundle.
361
+ * Full shape: `types/Filter.d.ts`.
362
+ */
363
+ interface Filter<T = any> {
364
+ [key: string]: unknown;
365
+ }
366
+ type FiltersMap = {
367
+ [key: string]: Filter<any> | undefined;
368
+ };
369
+ type OptionalFiltersMap = {
370
+ [key: string]: undefined;
371
+ };
372
+
373
+ type ValidationRule = {
374
+ type: 'required';
375
+ message: string;
376
+ } | {
377
+ type: 'min' | 'max';
378
+ value: number;
379
+ message: string;
380
+ } | {
381
+ type: 'minLength' | 'maxLength';
382
+ value: number;
383
+ message: string;
384
+ } | {
385
+ type: 'pattern';
386
+ value: RegExp;
387
+ message: string;
388
+ } | {
389
+ type: 'custom';
390
+ validate: (value: unknown) => boolean;
391
+ message: string;
392
+ } | {
393
+ type: 'specificValues';
394
+ values: {
395
+ id: string;
396
+ value: string;
397
+ }[];
398
+ message: string;
399
+ };
400
+ interface Focusable {
401
+ focus: () => void;
402
+ }
403
+ type EditTrigger = {
404
+ kind: 'type';
405
+ key: string;
406
+ } | 'enter' | 'click' | 'doubleClick';
407
+ interface CellViewProps<V> {
408
+ value: V;
409
+ typeConfig?: unknown;
410
+ validation?: ValidationRule[];
411
+ /** Stable id of the column. Cell components can use it to derive unique DOM ids. */
412
+ columnId: string;
413
+ /** Stable key of the row. Cell components can use it to derive unique DOM ids. */
414
+ rowKey: string;
415
+ /** Whether the cell is editable. Used to conditionally render placeholders (don't show them for read-only cells). */
416
+ isEditable?: boolean;
417
+ }
418
+ interface CellEditProps<V> {
419
+ value: V;
420
+ onChange(value: V): void;
421
+ onCommit: () => void;
422
+ onCancel: () => void;
423
+ /**
424
+ * Signals that the cell is starting an editing operation that will move focus
425
+ * outside the table (e.g., opening a media manager or a modal). Calling this
426
+ * sets isEditing=true so the table does not clear cell focus while the
427
+ * external UI is open. Pair with onCommit (after the operation succeeds)
428
+ * or onCancel (if the user dismisses without a value change).
429
+ */
430
+ onStartEdit?: () => void;
431
+ /** Ref to the focusable input element. Used for type-to-edit (focusing the input when user starts typing on a focused cell). */
432
+ inputRef?: MutableRefObject<Focusable | undefined | null>;
433
+ typeConfig?: unknown;
434
+ /** How edit mode was triggered. Edit components can use this to customize behavior (e.g., date picker auto-opens on 'type'). */
435
+ editTrigger?: EditTrigger | null;
436
+ /** Column-level validation rules. Edit components can derive UI behavior (e.g., maxLength blocking/tooltip) from these. */
437
+ validation?: ValidationRule[];
438
+ /** Stable id of the column. Cell components can use it to derive unique DOM ids. */
439
+ columnId: string;
440
+ /** Stable key of the row. Cell components can use it to derive unique DOM ids. */
441
+ rowKey: string;
442
+ }
443
+ /**
444
+ * Props passed to a cell type's optional `EditWrapper`. The table mounts the
445
+ * wrapper around the cell content and keeps it mounted across the edit↔view
446
+ * transition, so the wrapper can own behavior that must outlive the inline
447
+ * editor (e.g. a reference cell navigating to an overlay and refreshing on
448
+ * return). The wrapper hands anything the editor needs down via its own context.
449
+ */
450
+ interface CellEditWrapperProps {
451
+ /** The column's typeConfig (same value handed to the cell's Edit/View). */
452
+ typeConfig?: unknown;
453
+ /** Stable id of the column. */
454
+ columnId: string;
455
+ /** Stable key of the row. */
456
+ rowKey: string;
457
+ /** The cell content (the Edit or View component) to render inside the wrapper. */
458
+ children: ReactNode;
459
+ }
460
+ type EditableCellContextMenuAction = 'copy' | 'cut' | 'paste' | 'clear';
461
+ interface EditableCellContextMenuActionContext<V> {
462
+ /** Current cell value, including pending or draft edits. */
463
+ value: V;
464
+ /** Field metadata associated with the column, when available. */
465
+ field?: Field;
466
+ /** Stable key of the row. */
467
+ rowKey: string;
468
+ /** Stable id of the column. */
469
+ columnId: string;
470
+ }
471
+ interface EditableCellContextMenuActionConfig<V> {
472
+ /** Returning a non-empty string disables the action and shows the tooltip. */
473
+ disabledTooltip(context: EditableCellContextMenuActionContext<V>): string | undefined;
474
+ }
475
+ /**
476
+ * The editable-cell slot of a field type definition: how a cell of that type
477
+ * renders, edits, and moves through the clipboard. The definition's key
478
+ * identifies the type and the definition's `value` owns validation, so the
479
+ * slot carries neither.
480
+ *
481
+ * Members that take `V` use method syntax so a definition typed with a
482
+ * concrete value type stays assignable where a loosely typed definition is
483
+ * expected (see `FieldTypeDefinition`).
484
+ */
485
+ interface EditableCellConfig<V> {
486
+ /** Render cell in view mode (read-only display). */
487
+ ViewComponent(props: CellViewProps<V>): ReactElement | null;
488
+ /** Render cell in edit mode (inline editor). Optional — omit for view-only cells. */
489
+ EditComponent?(props: CellEditProps<V>): ReactElement | null;
490
+ /** Serialize value to clipboard string. */
491
+ serialize?(value: V): string;
492
+ /** Deserialize clipboard string to value. */
493
+ deserialize?(raw: string): V;
494
+ /** Can this cell type be edited? (default: true) */
495
+ editable?: boolean;
496
+ /** Availability of Cairo's built-in cell context-menu actions. */
497
+ contextMenu?: Partial<Record<EditableCellContextMenuAction, EditableCellContextMenuActionConfig<V>>>;
498
+ /** Toggle value on single click (e.g., boolean checkbox). Skips focus→edit flow. */
499
+ toggleValue?(value: V): V;
500
+ /** Enter edit mode on single click (e.g., image cell with no value). */
501
+ editOnClick?(value: V): boolean;
502
+ /** Show the EditComponent when the cell is focused, without entering edit mode.
503
+ * Keyboard navigation remains active. Similar to toggleValue but without toggling. */
504
+ showEditWhenFocused?: boolean;
505
+ /** Optional wrapper component the cell type defines to own behavior that must
506
+ * outlive the inline editor. Mounted around the cell content and kept mounted
507
+ * across the edit↔view transition. */
508
+ EditWrapper?: ComponentType<CellEditWrapperProps>;
509
+ /** Cell content can grow past row height when focused. Only applies to
510
+ * showEditWhenFocused cells. */
511
+ growable?: boolean;
512
+ /** Called on type-to-edit. Return object with cleared value and/or prevent flag.
513
+ * Return undefined to block the key. Return {} to enter edit mode without changing the value. */
514
+ onTypeToEdit?(params: {
515
+ key: string;
516
+ validation?: ValidationRule[];
517
+ }): {
518
+ value?: V;
519
+ } | undefined;
520
+ /** Optional hook to normalize the committed value (e.g. auto-prepend https://).
521
+ * Called before the edit commits; the value is written back before committing. */
522
+ normalizeOnCommit?(value: V): V;
523
+ /** When true, type-to-edit flushes the edit-mode render synchronously and
524
+ * focuses the input within the same keydown event, then lets the browser's
525
+ * default action deliver the keystroke to the now-focused input naturally.
526
+ * Use for cells that wrap a controlled input whose value can't be seeded via props. */
527
+ nativeTypeToEdit?: boolean;
528
+ }
529
+ /** The props the filter builder passes to a definition's toolbar filter
530
+ * component — the same contract the built-in filter elements receive. */
531
+ interface FilterTypeComponentProps<V = any> {
532
+ filter: Filter<V>;
533
+ toolbarItemProps?: {
534
+ label?: ReactNode;
535
+ };
536
+ toolbarTagProps?: {
537
+ label?: string;
538
+ };
539
+ accordionItemProps?: {
540
+ label?: string;
541
+ };
542
+ }
543
+ /** The filter slot of a field type definition: the filter state registered on
544
+ * the collection query and the toolbar element that renders it. */
545
+ interface FilterTypeConfig {
546
+ createFilter: (field: Field) => Filter<any>;
547
+ Component: ComponentType<FilterTypeComponentProps>;
548
+ }
549
+ /**
550
+ * The read-only table slot of a field type definition: how a cell of that
551
+ * type renders in the table, and the column's layout. Independent of
552
+ * `editableTable` — neither slot falls back to the other.
553
+ */
554
+ /** What a read-only table cell is told about itself. */
555
+ interface TableCellProps<V> {
556
+ value: V;
557
+ /** Stable id of the column. Cell components can use it to derive unique DOM ids. */
558
+ columnId: string;
559
+ /** The row this cell belongs to, so a cell can act on its item and not just
560
+ * display it. Typed loosely for the same reason as `FieldsSource.getCellValue`:
561
+ * the row shape belongs to the source, not to Cairo. */
562
+ row: unknown;
563
+ }
564
+ interface TableCellConfig<V> {
565
+ /** Render the cell. Method syntax keeps the definition assignable to
566
+ * `FieldTypeDefinition<unknown>` (see FieldTypeDefinition). */
567
+ CellComponent(props: TableCellProps<V>): ReactElement | null;
568
+ /** Column width. Required — custom types get no built-in layout default. */
569
+ width: string;
570
+ /** Default: 'start'. */
571
+ align?: 'start' | 'center' | 'end';
572
+ }
573
+ /** An extra menu item a field type definition adds to a field's actions menu. */
574
+ interface FieldTypeActionItem {
575
+ key: string;
576
+ label: string;
577
+ icon?: ReactNode;
578
+ skin?: 'destructive';
579
+ onClick: (field: Field) => void;
580
+ /** Default: visible. */
581
+ visible?: (field: Field) => boolean;
582
+ /** Returning a string disables the item and shows the tooltip. */
583
+ disabledTooltip?: (field: Field) => string | undefined;
584
+ }
585
+ /** The actions slot of a field type definition: extra items for the field's "more actions" menu. */
586
+ interface FieldActionsConfig {
587
+ items?: FieldTypeActionItem[];
588
+ }
589
+ /** Display metadata for a field type: menu label and type icons. */
590
+ interface FieldTypeDisplay {
591
+ label: string;
592
+ icons: {
593
+ Small: ComponentType;
594
+ Medium: ComponentType;
595
+ };
596
+ }
597
+ /** Value semantics of a field type, independent of any rendering surface.
598
+ * Members use method syntax so a definition typed with a concrete value type
599
+ * stays assignable where a loosely typed definition is expected. */
600
+ interface FieldValueBehavior<V> {
601
+ defaultValue?: V;
602
+ isEmpty?(value: V): boolean;
603
+ /** Returns an error message, or null when the value is valid. Every surface
604
+ * that validates a field of this type runs this. */
605
+ validate?(value: V, rules?: ValidationRule[]): string | null;
606
+ }
607
+ interface FieldCapabilities {
608
+ sortable: boolean;
609
+ }
610
+ /** The field-modal slot of a field type definition: opts the type into the
611
+ * add/edit-field modal's type picker and describes its entry there. */
612
+ interface FieldModalConfig {
613
+ /** True ⇒ the add-field modal offers this type. */
614
+ creatable: boolean;
615
+ /** Placeholder for the name input. Absent ⇒ the modal's generic placeholder. */
616
+ namePlaceholder?: string;
617
+ /** Optional valid field ID base. Default: the normalized uppercase type ID.
618
+ * Numeric suffixes are added only on collision. */
619
+ keyBase?: string;
620
+ /** One-line description under the type in the picker. */
621
+ subtitle?: string;
622
+ /** Group heading this type is listed under in the picker. */
623
+ group?: string;
624
+ /** Whether a field of this type can be marked PII. Absent ⇒ follows the
625
+ * source-wide setting. */
626
+ supportsPii?: boolean;
627
+ /** Warning shown while the PII toggle is on. Read on every render, so it can
628
+ * use data that only exists once the schema has loaded. Default: none. */
629
+ piiWarning?: () => FieldPiiWarning | undefined;
630
+ /** This type's collapsible settings section — the same contract a
631
+ * source-declared type option carries (see `FieldSettingsSection`). */
632
+ settingsSection?: FieldSettingsSection;
633
+ /** Collection picker shown in the main add/edit field form. */
634
+ collectionInput?: FieldModalCollectionInput;
635
+ }
636
+ /**
637
+ * Props the entity-page form dispatcher passes to a field type's form
638
+ * component. The dispatcher owns the form wiring (registration, validation
639
+ * from the definition's `value.validate`) and the field UI (label, required
640
+ * marker, error message); the component renders the input: read `value`,
641
+ * report edits through `onChange`, and hand back the focusable control
642
+ * through `inputRef` so a blocked save can reach it.
643
+ */
644
+ interface FormFieldComponentProps<V> {
645
+ field: Field;
646
+ value: V;
647
+ onChange(value: V): void;
648
+ /** Call when the input loses focus — marks the field touched, so error
649
+ * timing matches the built-in renderers. */
650
+ onBlur: () => void;
651
+ /** Ref to the focusable input element. Used to focus the field when a
652
+ * blocked save reports an error on it. Absent ⇒ the entity page brings the
653
+ * field into view and focuses the first control it finds inside. */
654
+ inputRef?: MutableRefObject<Focusable | undefined | null>;
655
+ dataHook?: string;
656
+ }
657
+ /** The entity-page form slot of a field type definition. */
658
+ interface FormTypeConfig<V = unknown> {
659
+ /** Renders the input. Method syntax keeps the definition assignable to
660
+ * `FieldTypeDefinition<unknown>` (see FieldTypeDefinition). */
661
+ Component(props: FormFieldComponentProps<V>): ReactElement | null;
662
+ }
663
+ /**
664
+ * A consumer-defined field type. Defined once on the fields source; every
665
+ * entry point that renders the field resolves its slot from here. `V` is the
666
+ * field's value type — `defineFieldType` infers it, and it keeps all the
667
+ * slots consistent with each other.
668
+ *
669
+ * Sources hold definitions of mixed value types in one
670
+ * `FieldTypeDefinition[]` (= `FieldTypeDefinition<unknown>[]`) array. That
671
+ * works because every member that takes `V` is declared with method syntax,
672
+ * which TypeScript checks bivariantly — so `FieldTypeDefinition<number>` is
673
+ * assignable to `FieldTypeDefinition<unknown>` without casts.
674
+ */
675
+ interface FieldTypeDefinition<V = unknown> {
676
+ /** Unique key for the type. A built-in type uses its `PatternsFieldType`; a
677
+ * consumer-defined type uses the string its fields reference via `customType`. */
678
+ type: string;
679
+ display: FieldTypeDisplay;
680
+ /** Filter behavior, or an explicit opt-out — never silently absent. */
681
+ filter: FilterTypeConfig | {
682
+ filterable: false;
683
+ };
684
+ value?: FieldValueBehavior<V>;
685
+ capabilities?: FieldCapabilities;
686
+ /** Absent ⇒ the field renders with the default cell in the read-only table. */
687
+ table?: TableCellConfig<V>;
688
+ /** Absent ⇒ the field renders as a read-only cell in editable surfaces. */
689
+ editableTable?: EditableCellConfig<V>;
690
+ /** Required once a field of this type renders on an entity page:
691
+ * development throws without it; production skips the field. */
692
+ form?: FormTypeConfig<V>;
693
+ /** Extra items for the field's "more actions" menu. */
694
+ actions?: FieldActionsConfig;
695
+ /** Absent ⇒ the add/edit field modal never offers this type. Fields of the
696
+ * type created elsewhere still open in the modal for name/PII edits. */
697
+ fieldModal?: FieldModalConfig;
698
+ }
699
+
700
+ /** A field type the add/edit field modal offers, with everything that type
701
+ * brings to it. Declare one entry per `patternsType` — the type is the entry's
702
+ * identity. Nothing here reaches the table or the filters; that is `fieldTypes`
703
+ * (`FieldTypeDefinition[]`). */
704
+ interface FieldTypeOption {
705
+ patternsType: PatternsFieldType;
706
+ /** Custom display name. Absent ⇒ the UI's standard name for this type. */
707
+ label?: string;
708
+ /** Custom name-input placeholder. Absent ⇒ the UI's standard placeholder. */
709
+ namePlaceholder?: string;
710
+ /** Optional valid field ID base. Default: the normalized uppercase type ID.
711
+ * Numeric suffixes are added only on collision. */
712
+ keyBase?: string;
713
+ /** A one-line description shown under the type in the add-field menu. */
714
+ subtitle?: string;
715
+ /** The group heading this type is listed under in the add-field menu, in
716
+ * first-seen order. Types sharing a heading form one group. Absent ⇒
717
+ * ungrouped. */
718
+ group?: string;
719
+ /** Whether a field of this type can be marked PII. Absent ⇒ follows the
720
+ * source's `supportsPii`. */
721
+ supportsPii?: boolean;
722
+ /** Warning shown while the PII toggle is on. Read on every render, so it can
723
+ * use data that only exists once the schema has loaded. Default: none. */
724
+ piiWarning?: () => FieldPiiWarning | undefined;
725
+ /** This type's own part of the collapsible section in the add/edit field
726
+ * modal. Default: none. */
727
+ settingsSection?: FieldSettingsSection;
728
+ /** Collection picker shown in the main add/edit field form. */
729
+ collectionInput?: FieldModalCollectionInput;
730
+ }
731
+ /** Everything the add/edit field modal shows for this source. */
732
+ interface FieldModalInput {
733
+ /** Title and subtitle. Default: generic titles. */
734
+ text?: FieldModalText;
735
+ /** Default option loader for reference-like built-in field types. */
736
+ loadReferenceableCollectionOptions?: FieldModalCollectionOptionsLoader;
737
+ /** The types the modal offers, in display order. Default: none. */
738
+ types?: FieldTypeOption[];
739
+ }
740
+ /** Copy shown before deleting a field. Strings are translated by the caller. */
741
+ interface DeleteFieldConfirmation {
742
+ title: string;
743
+ description: string;
744
+ /** When provided, confirmation requires this checkbox to be checked. */
745
+ confirmationCheckboxLabel?: string;
746
+ }
747
+ /** Identifies the collection behind a table on BI events. */
748
+ interface SchemaBiParams {
749
+ tableId?: string;
750
+ tableName?: string;
751
+ tableType?: string;
752
+ }
753
+ /** What a caller passes. Only `collectionId` and `loadSchema` are required. */
754
+ interface SchemaSourceInput<T> {
755
+ collectionId: string;
756
+ loadSchema: () => Promise<LoadedSchema<T>>;
757
+ /** Sources for collections this one references, keyed by the referenced
758
+ * collection id. A renderer resolves a reference field through the matching
759
+ * entry — its `loadSchema` gives the referenced schema and `sourceFetchData`
760
+ * queries the referenced items. Default: none. */
761
+ references?: Record<string, SchemaSource<any>>;
762
+ /** Lazy source lookup for a referenced collection that is not in `references`.
763
+ * Is used when a reference field is created in the add field modal.
764
+ * The returned source owns its own async schema/item loading. */
765
+ getReferencedCollectionSource?: (collectionId: string) => SchemaSource<any> | undefined;
766
+ paginationMode?: 'offset';
767
+ /** Stable row identity. Default: `row[idField]`. */
768
+ itemKey?: (item: T) => string;
769
+ /** Row display label. Default: `row[displayField]`. */
770
+ itemName?: (item: T) => string;
771
+ /** Fields free-text search runs against. Default: `[displayField]`. */
772
+ searchableFieldIds?: (schema: Schema) => string[];
773
+ /** What the add/edit field modal shows. Default: no types, generic titles. */
774
+ fieldModal?: FieldModalInput;
775
+ /** Consumer-defined field types: how a field of that type renders, filters and
776
+ * validates wherever it appears. A field with `type: 'CUSTOM'` resolves its
777
+ * definition here by `customType`. The add/edit field modal never reads this
778
+ * — see `fieldModal`. Default: none. */
779
+ fieldTypes?: FieldTypeDefinition[];
780
+ /** Overrides one existing field's type label, icons and collection-picker
781
+ * label. Does not change its type, values or add-field options. */
782
+ getFieldPresentation?: (field: Field) => FieldPresentation | undefined;
783
+ /** Default: `schemaPermissions.createField`. */
784
+ canAddFields?: (schema: Schema) => boolean;
785
+ /** Default: `schemaPermissions.updateField`, except for system fields and
786
+ * the id field. */
787
+ canEditField?: (field: Field, schema: Schema) => boolean;
788
+ /** Default: `schemaPermissions.deleteField`, except for system fields and
789
+ * the id field. */
790
+ canDeleteField?: (field: Field, schema: Schema) => boolean;
791
+ /** Resolved when deletion is requested. Undefined keeps the default dialog. */
792
+ getDeleteFieldConfirmation?: (field: Field, schema: Schema) => DeleteFieldConfirmation | undefined;
793
+ /** Permission defaults shown in the modal. Absent ⇒ no permissions section. */
794
+ fieldPermissions?: FieldPermissions;
795
+ /** Default: `false`. */
796
+ supportsPii?: boolean;
797
+ /** The value of a field on an item. Default: `item[field.id]`. */
798
+ getFieldValue?: (item: T, field: Field) => unknown;
799
+ /** Writes a field's value on an item, returning the updated item.
800
+ * Default: `{ ...item, [field.id]: value }`. */
801
+ setFieldValue?: (item: T, field: Field, value: unknown) => T;
802
+ }
803
+ /** The resolved source: defaults filled, `loadSchema` memoized. */
804
+ /**
805
+ * `SchemaSource` — cut here because it has its own bundle.
806
+ * Full shape: `types/SchemaSource.d.ts`.
807
+ */
808
+ interface SchemaSource<T = any> {
809
+ [key: string]: unknown;
810
+ }
811
+ /** The collection fetch derived from a source: loads once, then queries the
812
+ * backend's `find`.
813
+ *
814
+ * Free-text search covers the columns the page is showing: the table keeps
815
+ * `query.columns` in sync with them, so the scope comes off the query rather
816
+ * than being threaded in. Falls back to the source's own `searchableFieldIds`
817
+ * before any columns are known (or with no table attached). */
818
+ declare function sourceFetchData<T>(source: SchemaSource<T>): (query: OffsetQuery) => Promise<OffsetQueryResult<T>>;
819
+ /** Fills source-neutral defaults over `input` and memoizes the load so the collection
820
+ * query and the table columns share a single fetch. */
821
+ declare function defineSchemaSource<T>(input: SchemaSourceInput<T>): SchemaSource<T>;
822
+
823
+ export { defineSchemaSource, sourceFetchData };
824
+ export type { DeleteFieldConfirmation, FieldModalInput, FieldTypeOption, SchemaBiParams, SchemaSource, SchemaSourceInput };