@wix/patterns 1.426.0 → 1.427.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 (630) hide show
  1. package/dist/cjs/bm/testProviderPropsOverrides.js +4 -1
  2. package/dist/cjs/bm/testProviderPropsOverrides.js.map +1 -1
  3. package/dist/cjs/components/ActionModal/CustomActionModal.js +5 -3
  4. package/dist/cjs/components/ActionModal/CustomActionModal.js.map +1 -1
  5. package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
  6. package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
  7. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
  8. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
  9. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
  10. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  11. package/dist/cjs/components/CmsFieldManagement/FieldEditorModal.js +5 -3
  12. package/dist/cjs/components/CmsFieldManagement/FieldEditorModal.js.map +1 -1
  13. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
  14. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  15. package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +3 -3
  16. package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js.map +1 -1
  17. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  18. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  19. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  20. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  21. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
  22. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  23. package/dist/cjs/components/CollectionTable/CollectionTable.js +12 -10
  24. package/dist/cjs/components/CollectionTable/CollectionTable.js.map +1 -1
  25. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  26. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  27. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  28. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  29. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  30. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  31. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  32. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  33. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  34. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  35. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  36. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  37. package/dist/cjs/components/DataExtension/DataExtensionImportFieldEditor.js +74 -0
  38. package/dist/cjs/components/DataExtension/DataExtensionImportFieldEditor.js.map +1 -0
  39. package/dist/cjs/components/DataExtension/platformizedImportRef.js +124 -0
  40. package/dist/cjs/components/DataExtension/platformizedImportRef.js.map +1 -0
  41. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  42. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  43. package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
  44. package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
  45. package/dist/cjs/components/EditableTable/EditableTable.js +10 -9
  46. package/dist/cjs/components/EditableTable/EditableTable.js.map +1 -1
  47. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  48. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  49. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  50. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  51. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
  52. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  53. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js +3 -3
  54. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
  55. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  56. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  57. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  58. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  59. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  60. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
  61. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  62. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  63. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  64. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  65. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
  66. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  67. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
  68. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
  69. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
  70. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  71. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  72. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  73. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  74. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  75. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  76. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  77. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
  78. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
  79. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  80. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  81. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  82. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  83. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  84. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  85. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  86. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  87. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
  88. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  89. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  90. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  91. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  92. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  93. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  94. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  95. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  96. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  97. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  98. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  99. package/dist/cjs/components/ImportButton/CAIRO-4118-tasks.md +4 -4
  100. package/dist/cjs/components/ImportButton/CmsImportFieldEditor.js +66 -0
  101. package/dist/cjs/components/ImportButton/CmsImportFieldEditor.js.map +1 -0
  102. package/dist/cjs/components/ImportButton/ImportButton.js +10 -8
  103. package/dist/cjs/components/ImportButton/ImportButton.js.map +1 -1
  104. package/dist/cjs/components/ImportButton/ImportButtonModalLayout.js +19 -42
  105. package/dist/cjs/components/ImportButton/ImportButtonModalLayout.js.map +1 -1
  106. package/dist/cjs/components/ImportButton/ImportIdCollisionControl.js +1 -1
  107. package/dist/cjs/components/ImportButton/ImportIdCollisionControl.js.map +1 -1
  108. package/dist/cjs/components/ImportButton/ImportModal.uni.driver.js +15 -0
  109. package/dist/cjs/components/ImportButton/ImportModal.uni.driver.js.map +1 -1
  110. package/dist/cjs/components/ImportButton/ImportProps.js.map +1 -1
  111. package/dist/cjs/components/ImportButton/ImportRequiredFieldsSideNote.js +97 -0
  112. package/dist/cjs/components/ImportButton/ImportRequiredFieldsSideNote.js.map +1 -0
  113. package/dist/cjs/components/ImportButton/ImportStepConfiguration.js +76 -37
  114. package/dist/cjs/components/ImportButton/ImportStepConfiguration.js.map +1 -1
  115. package/dist/cjs/components/ImportButton/ImportStepSummary.js +159 -0
  116. package/dist/cjs/components/ImportButton/ImportStepSummary.js.map +1 -0
  117. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  118. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  119. package/dist/cjs/components/ImportButton/ImportStepper.js +7 -3
  120. package/dist/cjs/components/ImportButton/ImportStepper.js.map +1 -1
  121. package/dist/cjs/components/ImportButton/getImportModalStepProps.js +73 -15
  122. package/dist/cjs/components/ImportButton/getImportModalStepProps.js.map +1 -1
  123. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  124. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  125. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  126. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  127. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  128. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  129. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  130. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  131. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  132. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  133. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  134. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  135. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  136. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  137. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  138. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  139. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  140. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  141. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  142. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  143. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  144. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  145. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  146. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  147. package/dist/cjs/components/SchemaSource/schemaFieldManagement.js +13 -6
  148. package/dist/cjs/components/SchemaSource/schemaFieldManagement.js.map +1 -1
  149. package/dist/cjs/components/SchemaSource/schemaImportRef.js +27 -10
  150. package/dist/cjs/components/SchemaSource/schemaImportRef.js.map +1 -1
  151. package/dist/cjs/components/SchemaSource/standardFieldTypeLabels.js +40 -0
  152. package/dist/cjs/components/SchemaSource/standardFieldTypeLabels.js.map +1 -0
  153. package/dist/cjs/components/SchemaSource/tableSchemaSource.js +73 -21
  154. package/dist/cjs/components/SchemaSource/tableSchemaSource.js.map +1 -1
  155. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  156. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  157. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +9 -9
  158. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  159. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  160. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  161. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  162. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  163. package/dist/cjs/components/Table/AddFieldColumnHeader.js +100 -0
  164. package/dist/cjs/components/Table/AddFieldColumnHeader.js.map +1 -0
  165. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css +36 -0
  166. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js +24 -0
  167. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -0
  168. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  169. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  170. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  171. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  172. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  173. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  174. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  175. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  176. package/dist/cjs/components/common.st.css.js +4 -4
  177. package/dist/cjs/components/common.st.css.js.map +1 -1
  178. package/dist/cjs/exports/schema.js +12 -0
  179. package/dist/cjs/exports/schema.js.map +1 -0
  180. package/dist/cjs/exports/testkit/index.js +4 -2
  181. package/dist/cjs/exports/testkit/index.js.map +1 -1
  182. package/dist/cjs/hooks/index.js +6 -0
  183. package/dist/cjs/hooks/index.js.map +1 -1
  184. package/dist/cjs/hooks/useCreateWSRColumnBase.js +17 -6
  185. package/dist/cjs/hooks/useCreateWSRColumnBase.js.map +1 -1
  186. package/dist/cjs/hooks/usePlatformizedImport.js +48 -0
  187. package/dist/cjs/hooks/usePlatformizedImport.js.map +1 -0
  188. package/dist/cjs/hooks/useSchemaImport.js +24 -7
  189. package/dist/cjs/hooks/useSchemaImport.js.map +1 -1
  190. package/dist/cjs/hooks/useTableCollection.js.map +1 -1
  191. package/dist/cjs/index.js +8 -3
  192. package/dist/cjs/index.js.map +1 -1
  193. package/dist/cjs/schema/index.js +45 -0
  194. package/dist/cjs/schema/index.js.map +1 -0
  195. package/dist/cjs/schema/schemaCollectionOptions.js +27 -0
  196. package/dist/cjs/schema/schemaCollectionOptions.js.map +1 -0
  197. package/dist/cjs/schema/schemaSourceMutations.js +37 -0
  198. package/dist/cjs/schema/schemaSourceMutations.js.map +1 -0
  199. package/dist/cjs/schema/useCollection.js +14 -0
  200. package/dist/cjs/schema/useCollection.js.map +1 -0
  201. package/dist/cjs/schema/useEditableTableCollection.js +37 -0
  202. package/dist/cjs/schema/useEditableTableCollection.js.map +1 -0
  203. package/dist/cjs/schema/useGridCollection.js +23 -0
  204. package/dist/cjs/schema/useGridCollection.js.map +1 -0
  205. package/dist/cjs/schema/useLayoutSwitchCollection.js +39 -0
  206. package/dist/cjs/schema/useLayoutSwitchCollection.js.map +1 -0
  207. package/dist/cjs/schema/useTableCollection.js +23 -0
  208. package/dist/cjs/schema/useTableCollection.js.map +1 -0
  209. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  210. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  211. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  212. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  213. package/dist/cjs/styles.global.css +2 -2
  214. package/dist/cjs/version.js +1 -1
  215. package/dist/cjs/version.js.map +1 -1
  216. package/dist/docs/ImportButton.md +527 -0
  217. package/dist/docs/MultiAutoInlineCheckboxFilter.md +1 -1
  218. package/dist/docs/MultiInlineCheckboxFilter.md +1 -1
  219. package/dist/docs/Table.md +2 -1
  220. package/dist/docs/TableGridSwitch.md +2 -1
  221. package/dist/docs/index.json +46 -34
  222. package/dist/docs/usePlatformizedImport.md +59 -0
  223. package/dist/docs/useSchemaImport.md +53 -0
  224. package/dist/esm/bm/testProviderPropsOverrides.js +5 -2
  225. package/dist/esm/bm/testProviderPropsOverrides.js.map +1 -1
  226. package/dist/esm/components/ActionModal/CustomActionModal.js +2 -2
  227. package/dist/esm/components/ActionModal/CustomActionModal.js.map +1 -1
  228. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  229. package/dist/esm/components/CardContainer/CardContainer.st.css.js.map +1 -1
  230. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
  231. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
  232. package/dist/esm/components/CmsFieldManagement/FieldEditorModal.js +2 -2
  233. package/dist/esm/components/CmsFieldManagement/FieldEditorModal.js.map +1 -1
  234. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
  235. package/dist/esm/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +2 -2
  236. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  237. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  238. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  239. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  240. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  241. package/dist/esm/components/CollectionTable/CollectionTable.js +2 -1
  242. package/dist/esm/components/CollectionTable/CollectionTable.js.map +1 -1
  243. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  244. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  245. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  246. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  247. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  248. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  249. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  250. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  251. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  252. package/dist/esm/components/DataExtension/DataExtensionImportFieldEditor.js +58 -0
  253. package/dist/esm/components/DataExtension/DataExtensionImportFieldEditor.js.map +1 -0
  254. package/dist/esm/components/DataExtension/platformizedImportRef.js +88 -0
  255. package/dist/esm/components/DataExtension/platformizedImportRef.js.map +1 -0
  256. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  257. package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
  258. package/dist/esm/components/EditableTable/EditableTable.js +1 -1
  259. package/dist/esm/components/EditableTable/EditableTable.js.map +1 -1
  260. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  261. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  262. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  263. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
  264. package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js +2 -2
  265. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  266. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  267. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  268. package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  269. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  270. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  271. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  272. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
  273. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
  274. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
  275. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  276. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  277. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
  278. package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +2 -2
  279. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  280. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  281. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  282. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  283. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  284. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  285. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
  286. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  287. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  288. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  289. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  290. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  291. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  292. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  293. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  294. package/dist/esm/components/Heading/Heading.st.css.js.map +1 -1
  295. package/dist/esm/components/ImportButton/CAIRO-4118-tasks.md +4 -4
  296. package/dist/esm/components/ImportButton/CmsImportFieldEditor.js +42 -0
  297. package/dist/esm/components/ImportButton/CmsImportFieldEditor.js.map +1 -0
  298. package/dist/esm/components/ImportButton/ImportButton.js +2 -2
  299. package/dist/esm/components/ImportButton/ImportButton.js.map +1 -1
  300. package/dist/esm/components/ImportButton/ImportButtonModalLayout.js +3 -16
  301. package/dist/esm/components/ImportButton/ImportButtonModalLayout.js.map +1 -1
  302. package/dist/esm/components/ImportButton/ImportIdCollisionControl.js +1 -1
  303. package/dist/esm/components/ImportButton/ImportIdCollisionControl.js.map +1 -1
  304. package/dist/esm/components/ImportButton/ImportModal.uni.driver.js +15 -0
  305. package/dist/esm/components/ImportButton/ImportModal.uni.driver.js.map +1 -1
  306. package/dist/esm/components/ImportButton/ImportRequiredFieldsSideNote.js +32 -0
  307. package/dist/esm/components/ImportButton/ImportRequiredFieldsSideNote.js.map +1 -0
  308. package/dist/esm/components/ImportButton/ImportStepConfiguration.js +27 -14
  309. package/dist/esm/components/ImportButton/ImportStepConfiguration.js.map +1 -1
  310. package/dist/esm/components/ImportButton/ImportStepSummary.js +23 -0
  311. package/dist/esm/components/ImportButton/ImportStepSummary.js.map +1 -0
  312. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  313. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  314. package/dist/esm/components/ImportButton/ImportStepper.js +4 -0
  315. package/dist/esm/components/ImportButton/ImportStepper.js.map +1 -1
  316. package/dist/esm/components/ImportButton/getImportModalStepProps.js +39 -3
  317. package/dist/esm/components/ImportButton/getImportModalStepProps.js.map +1 -1
  318. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  319. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  320. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  321. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  322. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  323. package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
  324. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  325. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  326. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  327. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  328. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  329. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  330. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  331. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  332. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  333. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  334. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  335. package/dist/esm/components/SchemaSource/schemaFieldManagement.js +16 -8
  336. package/dist/esm/components/SchemaSource/schemaFieldManagement.js.map +1 -1
  337. package/dist/esm/components/SchemaSource/schemaImportRef.js +20 -6
  338. package/dist/esm/components/SchemaSource/schemaImportRef.js.map +1 -1
  339. package/dist/esm/components/SchemaSource/standardFieldTypeLabels.js +36 -0
  340. package/dist/esm/components/SchemaSource/standardFieldTypeLabels.js.map +1 -0
  341. package/dist/esm/components/SchemaSource/tableSchemaSource.js +67 -18
  342. package/dist/esm/components/SchemaSource/tableSchemaSource.js.map +1 -1
  343. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  344. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  345. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
  346. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  347. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  348. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  349. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  350. package/dist/esm/components/Table/AddFieldColumnHeader.js +30 -0
  351. package/dist/esm/components/Table/AddFieldColumnHeader.js.map +1 -0
  352. package/dist/esm/components/Table/AddFieldColumnHeader.st.css +36 -0
  353. package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js +15 -0
  354. package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js.map +1 -0
  355. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  356. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  357. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  358. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  359. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  360. package/dist/esm/components/common.st.css.js +2 -2
  361. package/dist/esm/exports/schema.js +2 -0
  362. package/dist/esm/exports/schema.js.map +1 -0
  363. package/dist/esm/exports/testkit/index.js +1 -1
  364. package/dist/esm/exports/testkit/index.js.map +1 -1
  365. package/dist/esm/hooks/index.js +1 -0
  366. package/dist/esm/hooks/index.js.map +1 -1
  367. package/dist/esm/hooks/useCreateWSRColumnBase.js +6 -3
  368. package/dist/esm/hooks/useCreateWSRColumnBase.js.map +1 -1
  369. package/dist/esm/hooks/usePlatformizedImport.js +23 -0
  370. package/dist/esm/hooks/usePlatformizedImport.js.map +1 -0
  371. package/dist/esm/hooks/useSchemaImport.js +9 -7
  372. package/dist/esm/hooks/useSchemaImport.js.map +1 -1
  373. package/dist/esm/index.js +1 -1
  374. package/dist/esm/index.js.map +1 -1
  375. package/dist/esm/schema/index.js +7 -0
  376. package/dist/esm/schema/index.js.map +1 -0
  377. package/dist/esm/schema/schemaCollectionOptions.js +16 -0
  378. package/dist/esm/schema/schemaCollectionOptions.js.map +1 -0
  379. package/dist/esm/schema/schemaSourceMutations.js +25 -0
  380. package/dist/esm/schema/schemaSourceMutations.js.map +1 -0
  381. package/dist/esm/schema/useCollection.js +9 -0
  382. package/dist/esm/schema/useCollection.js.map +1 -0
  383. package/dist/esm/schema/useEditableTableCollection.js +23 -0
  384. package/dist/esm/schema/useEditableTableCollection.js.map +1 -0
  385. package/dist/esm/schema/useGridCollection.js +15 -0
  386. package/dist/esm/schema/useGridCollection.js.map +1 -0
  387. package/dist/esm/schema/useLayoutSwitchCollection.js +28 -0
  388. package/dist/esm/schema/useLayoutSwitchCollection.js.map +1 -0
  389. package/dist/esm/schema/useTableCollection.js +15 -0
  390. package/dist/esm/schema/useTableCollection.js.map +1 -0
  391. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  392. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  393. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  394. package/dist/esm/styles.global.css +2 -2
  395. package/dist/esm/version.js +1 -1
  396. package/dist/types/bm/testProviderPropsOverrides.d.ts.map +1 -1
  397. package/dist/types/components/ActionModal/CustomActionModal.d.ts +3 -1
  398. package/dist/types/components/ActionModal/CustomActionModal.d.ts.map +1 -1
  399. package/dist/types/components/CardContainer/CardContainer.st.css.d.ts.map +1 -1
  400. package/dist/types/components/CmsFieldManagement/FieldEditorModal.d.ts +3 -1
  401. package/dist/types/components/CmsFieldManagement/FieldEditorModal.d.ts.map +1 -1
  402. package/dist/types/components/CollectionPageNew/CollectionPage.st.css.d.ts.map +1 -1
  403. package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.st.css.d.ts.map +1 -1
  404. package/dist/types/components/CollectionTable/CollectionTable.d.ts +11 -0
  405. package/dist/types/components/CollectionTable/CollectionTable.d.ts.map +1 -1
  406. package/dist/types/components/CollectionTable/CollectionTable.st.css.d.ts.map +1 -1
  407. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +20 -6
  408. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts.map +1 -1
  409. package/dist/types/components/CollectionToolbar/SearchOrCustomFilter.st.css.d.ts.map +1 -1
  410. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
  411. package/dist/types/components/DataExtension/DataExtensionImportFieldEditor.d.ts +8 -0
  412. package/dist/types/components/DataExtension/DataExtensionImportFieldEditor.d.ts.map +1 -0
  413. package/dist/types/components/DataExtension/platformizedImportRef.d.ts +59 -0
  414. package/dist/types/components/DataExtension/platformizedImportRef.d.ts.map +1 -0
  415. package/dist/types/components/EditableTable/EditableTable.d.ts +4 -4
  416. package/dist/types/components/EditableTable/EditableTable.d.ts.map +1 -1
  417. package/dist/types/components/EditableTable/HeaderActionsPopover.st.css.d.ts.map +1 -1
  418. package/dist/types/components/EditableTable/cellTypes/boolean/Edit.st.css.d.ts.map +1 -1
  419. package/dist/types/components/EditableTable/cellTypes/date/View.st.css.d.ts.map +1 -1
  420. package/dist/types/components/EditableTable/cellTypes/object/View.st.css.d.ts.map +1 -1
  421. package/dist/types/components/EditableTable/cellTypes/text/View.st.css.d.ts.map +1 -1
  422. package/dist/types/components/EditableTable/cellTypes/url/Edit.st.css.d.ts.map +1 -1
  423. package/dist/types/components/EditableTable/cellTypes/url/View.st.css.d.ts.map +1 -1
  424. package/dist/types/components/EntityPage/EntityPagePlain.st.css.d.ts.map +1 -1
  425. package/dist/types/components/Heading/Heading.st.css.d.ts.map +1 -1
  426. package/dist/types/components/ImportButton/CmsImportFieldEditor.d.ts +8 -0
  427. package/dist/types/components/ImportButton/CmsImportFieldEditor.d.ts.map +1 -0
  428. package/dist/types/components/ImportButton/ImportButton.d.ts.map +1 -1
  429. package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts +8 -0
  430. package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts.map +1 -1
  431. package/dist/types/components/ImportButton/ImportButtonModalLayout.d.ts.map +1 -1
  432. package/dist/types/components/ImportButton/ImportModal.uni.driver.d.ts +12 -2
  433. package/dist/types/components/ImportButton/ImportModal.uni.driver.d.ts.map +1 -1
  434. package/dist/types/components/ImportButton/ImportProps.d.ts +27 -5
  435. package/dist/types/components/ImportButton/ImportProps.d.ts.map +1 -1
  436. package/dist/types/components/ImportButton/ImportRequiredFieldsSideNote.d.ts +19 -0
  437. package/dist/types/components/ImportButton/ImportRequiredFieldsSideNote.d.ts.map +1 -0
  438. package/dist/types/components/ImportButton/ImportStepConfiguration.d.ts +1 -3
  439. package/dist/types/components/ImportButton/ImportStepConfiguration.d.ts.map +1 -1
  440. package/dist/types/components/ImportButton/ImportStepSummary.d.ts +11 -0
  441. package/dist/types/components/ImportButton/ImportStepSummary.d.ts.map +1 -0
  442. package/dist/types/components/ImportButton/ImportStepUpload.st.css.d.ts.map +1 -1
  443. package/dist/types/components/ImportButton/ImportStepper.d.ts.map +1 -1
  444. package/dist/types/components/ImportButton/getImportModalStepProps.d.ts +1 -3
  445. package/dist/types/components/ImportButton/getImportModalStepProps.d.ts.map +1 -1
  446. package/dist/types/components/LayoutSwitch/LayoutSwitch.uni.driver.d.ts +16 -0
  447. package/dist/types/components/LayoutSwitch/LayoutSwitch.uni.driver.d.ts.map +1 -1
  448. package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
  449. package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
  450. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +16 -0
  451. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts.map +1 -1
  452. package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
  453. package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
  454. package/dist/types/components/PickerContent/PickerContentAdditionalStep.st.css.d.ts.map +1 -1
  455. package/dist/types/components/SchemaSource/schemaFieldManagement.d.ts.map +1 -1
  456. package/dist/types/components/SchemaSource/schemaImportRef.d.ts +4 -4
  457. package/dist/types/components/SchemaSource/schemaImportRef.d.ts.map +1 -1
  458. package/dist/types/components/SchemaSource/standardFieldTypeLabels.d.ts +11 -0
  459. package/dist/types/components/SchemaSource/standardFieldTypeLabels.d.ts.map +1 -0
  460. package/dist/types/components/SchemaSource/tableSchemaSource.d.ts +2 -3
  461. package/dist/types/components/SchemaSource/tableSchemaSource.d.ts.map +1 -1
  462. package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
  463. package/dist/types/components/SetupWidget/SetupWidget.st.css.d.ts.map +1 -1
  464. package/dist/types/components/SlidingModal/SlidingModal.st.css.d.ts.map +1 -1
  465. package/dist/types/components/Table/AddFieldColumnHeader.d.ts +6 -0
  466. package/dist/types/components/Table/AddFieldColumnHeader.d.ts.map +1 -0
  467. package/dist/types/components/Table/AddFieldColumnHeader.st.css.d.ts +15 -0
  468. package/dist/types/components/Table/AddFieldColumnHeader.st.css.d.ts.map +1 -0
  469. package/dist/types/components/Table/Table.uni.driver.d.ts +16 -0
  470. package/dist/types/components/Table/Table.uni.driver.d.ts.map +1 -1
  471. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +16 -0
  472. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
  473. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +16 -0
  474. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts.map +1 -1
  475. package/dist/types/components/TabsFilter/TabsFilter.st.css.d.ts.map +1 -1
  476. package/dist/types/exports/schema.d.ts +3 -0
  477. package/dist/types/exports/schema.d.ts.map +1 -0
  478. package/dist/types/exports/testkit/index.d.ts +2 -1
  479. package/dist/types/exports/testkit/index.d.ts.map +1 -1
  480. package/dist/types/hooks/index.d.ts +1 -0
  481. package/dist/types/hooks/index.d.ts.map +1 -1
  482. package/dist/types/hooks/useCreateWSRColumnBase.d.ts +3 -1
  483. package/dist/types/hooks/useCreateWSRColumnBase.d.ts.map +1 -1
  484. package/dist/types/hooks/usePlatformizedImport.d.ts +43 -0
  485. package/dist/types/hooks/usePlatformizedImport.d.ts.map +1 -0
  486. package/dist/types/hooks/useSchemaImport.d.ts +13 -6
  487. package/dist/types/hooks/useSchemaImport.d.ts.map +1 -1
  488. package/dist/types/hooks/useTableCollection.d.ts +1 -1
  489. package/dist/types/hooks/useTableCollection.d.ts.map +1 -1
  490. package/dist/types/index.d.ts +1 -2
  491. package/dist/types/index.d.ts.map +1 -1
  492. package/dist/types/schema/index.d.ts +8 -0
  493. package/dist/types/schema/index.d.ts.map +1 -0
  494. package/dist/types/schema/schemaCollectionOptions.d.ts +19 -0
  495. package/dist/types/schema/schemaCollectionOptions.d.ts.map +1 -0
  496. package/dist/types/schema/schemaSourceMutations.d.ts +9 -0
  497. package/dist/types/schema/schemaSourceMutations.d.ts.map +1 -0
  498. package/dist/types/schema/useCollection.d.ts +9 -0
  499. package/dist/types/schema/useCollection.d.ts.map +1 -0
  500. package/dist/types/schema/useEditableTableCollection.d.ts +17 -0
  501. package/dist/types/schema/useEditableTableCollection.d.ts.map +1 -0
  502. package/dist/types/schema/useGridCollection.d.ts +7 -0
  503. package/dist/types/schema/useGridCollection.d.ts.map +1 -0
  504. package/dist/types/schema/useLayoutSwitchCollection.d.ts +17 -0
  505. package/dist/types/schema/useLayoutSwitchCollection.d.ts.map +1 -0
  506. package/dist/types/schema/useTableCollection.d.ts +7 -0
  507. package/dist/types/schema/useTableCollection.d.ts.map +1 -0
  508. package/dist/types/state/CollectionPage/CollectionPageHeader.st.css.d.ts.map +1 -1
  509. package/dist/types/testkit/enzyme.d.ts +64 -0
  510. package/dist/types/testkit/enzyme.d.ts.map +1 -1
  511. package/dist/types/testkit/jsdom.d.ts +80 -0
  512. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  513. package/dist/types/testkit/playwright.d.ts +64 -0
  514. package/dist/types/testkit/playwright.d.ts.map +1 -1
  515. package/dist/types/testkit/puppeteer.d.ts +64 -0
  516. package/dist/types/testkit/puppeteer.d.ts.map +1 -1
  517. package/dist/types/version.d.ts +1 -1
  518. package/package.json +13 -7
  519. package/schema/package.json +6 -0
  520. package/src/bm/testProviderPropsOverrides.ts +12 -2
  521. package/src/components/ActionModal/CustomActionModal.tsx +4 -0
  522. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  523. package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
  524. package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
  525. package/src/components/CmsFieldManagement/FieldEditorModal.tsx +4 -0
  526. package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
  527. package/src/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.ts +2 -2
  528. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  529. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  530. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  531. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  532. package/src/components/CollectionTable/CollectionTable.tsx +14 -0
  533. package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
  534. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  535. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  536. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  537. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  538. package/src/components/DataExtension/DataExtensionImportFieldEditor.tsx +81 -0
  539. package/src/components/DataExtension/platformizedImportRef.ts +147 -0
  540. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  541. package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
  542. package/src/components/EditableTable/EditableTable.tsx +5 -3
  543. package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
  544. package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
  545. package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
  546. package/src/components/EditableTable/cellTypes/array/Edit.st.css.ts +2 -2
  547. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  548. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  549. package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
  550. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  551. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  552. package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +2 -2
  553. package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
  554. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
  555. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
  556. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  557. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  558. package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
  559. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
  560. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  561. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  562. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  563. package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
  564. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  565. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  566. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  567. package/src/components/Fade/Fade.st.css.ts +2 -2
  568. package/src/components/Heading/Heading.st.css.ts +2 -2
  569. package/src/components/ImportButton/CAIRO-4118-tasks.md +4 -4
  570. package/src/components/ImportButton/CmsImportFieldEditor.tsx +62 -0
  571. package/src/components/ImportButton/ImportButton.tsx +2 -1
  572. package/src/components/ImportButton/ImportButtonModalLayout.tsx +3 -25
  573. package/src/components/ImportButton/ImportIdCollisionControl.tsx +1 -1
  574. package/src/components/ImportButton/ImportModal.uni.driver.ts +26 -0
  575. package/src/components/ImportButton/ImportProps.tsx +28 -5
  576. package/src/components/ImportButton/ImportRequiredFieldsSideNote.tsx +60 -0
  577. package/src/components/ImportButton/ImportStepConfiguration.tsx +38 -19
  578. package/src/components/ImportButton/ImportStepSummary.tsx +72 -0
  579. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  580. package/src/components/ImportButton/ImportStepper.tsx +4 -0
  581. package/src/components/ImportButton/getImportModalStepProps.tsx +50 -7
  582. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  583. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  584. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  585. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  586. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  587. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  588. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  589. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  590. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  591. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  592. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  593. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  594. package/src/components/SchemaSource/schemaFieldManagement.ts +19 -8
  595. package/src/components/SchemaSource/schemaImportRef.ts +22 -7
  596. package/src/components/SchemaSource/standardFieldTypeLabels.ts +47 -0
  597. package/src/components/SchemaSource/tableSchemaSource.ts +75 -22
  598. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  599. package/src/components/SetupWidget/SetupWidget.st.css.ts +2 -2
  600. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  601. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  602. package/src/components/Table/AddFieldColumnHeader.st.css +36 -0
  603. package/src/components/Table/AddFieldColumnHeader.st.css.ts +25 -0
  604. package/src/components/Table/AddFieldColumnHeader.tsx +65 -0
  605. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  606. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  607. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  608. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  609. package/src/components/common.st.css.ts +2 -2
  610. package/src/exports/schema.ts +13 -0
  611. package/src/exports/testkit/index.ts +6 -1
  612. package/src/hooks/index.ts +1 -0
  613. package/src/hooks/useCreateWSRColumnBase.tsx +15 -2
  614. package/src/hooks/usePlatformizedImport.tsx +77 -0
  615. package/src/hooks/useSchemaImport.tsx +35 -0
  616. package/src/hooks/useTableCollection.ts +1 -1
  617. package/src/index.ts +1 -2
  618. package/src/schema/index.ts +7 -0
  619. package/src/schema/schemaCollectionOptions.ts +44 -0
  620. package/src/schema/schemaSourceMutations.ts +35 -0
  621. package/src/schema/useCollection.ts +22 -0
  622. package/src/schema/useEditableTableCollection.ts +70 -0
  623. package/src/schema/useGridCollection.ts +33 -0
  624. package/src/schema/useLayoutSwitchCollection.ts +73 -0
  625. package/src/schema/useTableCollection.ts +42 -0
  626. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  627. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  628. package/src/styles.global.css +2 -2
  629. package/src/version.ts +1 -1
  630. package/src/hooks/useSchemaImport.ts +0 -21
@@ -0,0 +1,527 @@
1
+ # ImportButton
2
+
3
+ **Category:** Features/Import
4
+
5
+ ## Design
6
+
7
+ ### Description
8
+
9
+ The `ImportButton` is the platformized solution for importing a CSV file into a collection.
10
+
11
+ It renders an import action in the collection toolbar. On the default toolbar it shows a `ResponsiveButton`; on a bulk-action toolbar (`toolbarType="bulkActionToolbar"`) it shows a small secondary `Button`. Clicking it opens a multi-step modal (a `Drawer` on mobile) that walks the user through:
12
+
13
+ 1. **Upload** — pick a `.csv` file.
14
+ 2. **Map columns** — match each CSV column to an existing collection field, create a new field for it, or skip it.
15
+ 3. **Import** — the rows are sent to the server and progress is shown.
16
+ 4. **Summary** — created / updated / failed counts, with a "Download CSV" of the failed rows when some rows were rejected.
17
+
18
+ Like `ExportTo`, the feature has two parts:
19
+
20
+ - **Client** — the button and modal, shipped in `@wix/patterns`. You configure it with a single `config` object plus a `renderFieldEditor`, both produced by a **source hook** (below), and place it with the `` `importButton` prop.
21
+ - **Server** — the actual write is done by a Wix Hub **Data Movement** job (see the [data-hub infrastructure](#data-hub-infrastructure) section). The client uploads the file, submits the job, and polls it to completion.
22
+
23
+ #### Choosing a source hook
24
+
25
+ `ImportButton` never takes hand-built inputs. You pick the hook that matches where the data is written, and spread its result onto ``:
26
+
27
+ - **CMS (Wix Data)** — [`useSchemaImport`](./?path=/story/features-import--use-schema-import). Reads the import inputs live from the same schema source that backs the table, and supplies the CMS create/edit-field modal.
28
+
29
+ ```jsx
30
+ import { ImportButton, useSchemaImport } from '@wix/patterns';
31
+
32
+ const importProps = useSchemaImport(schemaSource);
33
+
34
+ } />;
35
+ ```
36
+
37
+ - **Platformized (non–Wix-Data destination)** — [`usePlatformizedImport`](./?path=/story/features-import--use-platformized-import). For a target such as the stores catalog. Reads the table's toolbar so a DataExtension source's live fields are wired in.
38
+
39
+ ```jsx
40
+ import { ImportButton, usePlatformizedImport } from '@wix/patterns';
41
+
42
+ const importProps = usePlatformizedImport({
43
+ state,
44
+ destination: { storesCatalogProducts: {} },
45
+ fields: [{ id: 'name', header: 'Name', required: true }],
46
+ });
47
+
48
+ } />;
49
+ ```
50
+
51
+ See each hook's page for its full props.
52
+
53
+ #### data-hub infrastructure
54
+
55
+ The import runs **entirely server-side** in [Wix Data Hub](https://github.com/wix-private/wix-data-hub) — a generic data-movement job executor. The client drives it through the `@wix/ambassador-hub-v1-job` API ([job submission & monitoring](https://github.com/wix-private/cloud/blob/master/hub/wix-data-hub-fs2)); the actual reading/writing is done by the [Data Hub executor](https://github.com/wix-private/wix-data-hub/blob/master/packages/wix-data-hub-executor-c/README.md), whose model is: a **source** reads batches, **transformations** alter them, and a **destination** writes them. The client only:
56
+
57
+ 1. Reserves an upload URL and PUTs the (rewritten) CSV, receiving a `fileId`.
58
+ 2. Submits a job (`source: { file }`, `destination`) and receives a `jobId`.
59
+ 3. Polls the job every 2 seconds until it reaches `COMPLETED`, `PARTIALLY_SUCCESSFUL`, or `FAILED`.
60
+ 4. Lists the job's per-row movement logs to build the failed-rows CSV, and terminates the job if the user cancels. Terminating does **not** roll back rows already written — that is what an optional `backup` (on either hook) is for.
61
+
62
+ The **`destination`** you pass identifies which executor [destination](https://github.com/wix-private/wix-data-hub/blob/master/packages/wix-data-hub-executor-c/src/api/destination.ts) writes the rows — e.g. `{ wixDataCollection: … }` ([wix-data-collection](https://github.com/wix-private/wix-data-hub/tree/master/packages/wix-data-hub-executor-c/src/plugins/wix-data-collection) plugin) or `{ storesCatalogProducts: {} }` ([online-stores](https://github.com/wix-private/wix-data-hub/tree/master/packages/wix-data-hub-executor-c/src/plugins/online-stores) plugin). The CMS hook (`useSchemaImport`) builds the `wixDataCollection` destination for you; a platformized hook passes its `destination` through verbatim.
63
+
64
+ Because a failed import comes back on a `200` (the failure is in the job status, not an HTTP error), the optional `jobApplicationErrorMap` (on either hook) lets you map the job's application-error codes to messages. You supply only the code → message map; the import resolves it through the error handler internally.
65
+
66
+
67
+ ```tsx
68
+ import { ImportButton, useSchemaImport, usePlatformizedImport } from '@wix/patterns';
69
+ ```
70
+
71
+ ---
72
+
73
+ ### Examples
74
+
75
+ ### CMS import
76
+
77
+ A Wix Data (CMS) collection. `useSchemaImport` reads the import inputs live from the table’s schema source and supplies the CMS create/edit-field modal; spread its result onto ``.
78
+
79
+ ```tsx
80
+ import React from 'react';
81
+ import { CollectionPage } from '@wix/patterns/page';
82
+ import {
83
+ CustomColumns,
84
+ ImportButton,
85
+ Table,
86
+ tableSchemaSource,
87
+ useSchemaImport,
88
+ useTableCollection,
89
+ } from '@wix/patterns';
90
+ import { createInMemorySchemaSource } from '@wix/patterns/testkit';
91
+
92
+ type CmsItem = {
93
+ _id: string;
94
+ name: string;
95
+ price: string;
96
+ };
97
+
98
+ function CmsImport() {
99
+ // In a real app, build the source with `createCmsSchemaSource` from
100
+ // `@wix/patterns-cms`. This docs example uses an in-memory source so it runs
101
+ // with no backend — the wiring below is identical either way.
102
+ const [schemaSource] = React.useState(() => {
103
+ const { source } = createInMemorySchemaSource<CmsItem>({
104
+ collectionId: 'Products',
105
+ fields: [
106
+ { id: 'name', displayName: 'Name', type: 'SHORT_TEXT' },
107
+ { id: 'price', displayName: 'Price', type: 'NUMBER' },
108
+ ],
109
+ items: [
110
+ { _id: '1', name: 'Coffee Mug', price: '12' },
111
+ { _id: '2', name: 'T-Shirt', price: '25' },
112
+ ],
113
+ });
114
+ return tableSchemaSource(source);
115
+ });
116
+
117
+ const state = useTableCollection<CmsItem>(schemaSource.collectionConfig);
118
+
119
+ // `useSchemaImport` reads the import inputs (fields, collection, create-new-
120
+ // field, backup) live from the schema source and returns the `ImportButton`
121
+ // props — `config` + the CMS create/edit-field modal — so just spread them.
122
+ const importProps = useSchemaImport(schemaSource);
123
+
124
+ return (
125
+ <CollectionPage>
126
+ <CollectionPage.Header title={{ text: 'Products' }} />
127
+ <CollectionPage.Content>
128
+ <Table
129
+ state={state}
130
+ horizontalScroll
131
+ fieldsSource={schemaSource}
132
+ customColumns={<CustomColumns />}
133
+ columns={[]}
134
+ importButton={<ImportButton {...importProps} />}
135
+ />
136
+ </CollectionPage.Content>
137
+ </CollectionPage>
138
+ );
139
+ }
140
+
141
+ export default CmsImport;
142
+ ```
143
+
144
+ ---
145
+
146
+ ### Platformized import
147
+
148
+ A non–Wix-Data destination (here the stores catalog). `usePlatformizedImport` builds the config from the table’s toolbar + your `fields`/`destination`; spread its result onto ``.
149
+
150
+ ```tsx
151
+ import { Page } from '@wix/design-system';
152
+ import React from 'react';
153
+ import {
154
+ ImportButton,
155
+ PageWrapper,
156
+ Table,
157
+ ToolbarTitle,
158
+ usePlatformizedImport,
159
+ useTableCollection,
160
+ } from '@wix/patterns';
161
+ import { queryStoreVariants } from '@wix/ambassador-stores-catalog-v1-product/http';
162
+ import { StoreVariant } from '@wix/ambassador-stores-catalog-v1-product/types';
163
+ import { useHttpClient } from '@wix/yoshi-flow-bm';
164
+
165
+ function PlatformizedImport() {
166
+ const httpClient = useHttpClient();
167
+
168
+ const state = useTableCollection<StoreVariant>({
169
+ queryName: 'ImportButton-platformized',
170
+ fetchData: (query) => {
171
+ const { limit } = query;
172
+ return httpClient
173
+ .request(queryStoreVariants({ query: { cursorPaging: { limit } } }))
174
+ .then(({ data }) => ({
175
+ items: data.variants ?? [],
176
+ total: data.metadata?.total,
177
+ }));
178
+ },
179
+ itemKey: (variant) => variant.id ?? '',
180
+ itemName: (variant) => variant.productName ?? '',
181
+ fetchErrorMessage: () => 'Error fetching products',
182
+ });
183
+
184
+ // `usePlatformizedImport` reads the table's toolbar and returns the
185
+ // `ImportButton` props for a platformized (non–Wix-Data) destination — here
186
+ // the stores catalog. Spread the result.
187
+ const importProps = usePlatformizedImport({
188
+ state,
189
+ destination: { storesCatalogProducts: {} },
190
+ fields: [
191
+ { id: 'name', header: 'Name' },
192
+ { id: 'sku', header: 'SKU' },
193
+ ],
194
+ });
195
+
196
+ return (
197
+ <PageWrapper>
198
+ <Page height="400px">
199
+ <Page.Header title="Products" />
200
+ <Page.Content>
201
+ <Table
202
+ state={state}
203
+ horizontalScroll
204
+ title={<ToolbarTitle title="Products" showTotal />}
205
+ columns={[
206
+ { title: 'Name', render: (variant) => variant.productName },
207
+ ]}
208
+ importButton={<ImportButton {...importProps} />}
209
+ />
210
+ </Page.Content>
211
+ </Page>
212
+ </PageWrapper>
213
+ );
214
+ }
215
+
216
+ export default PlatformizedImport;
217
+ ```
218
+
219
+ ---
220
+
221
+ ### Required fields
222
+
223
+ Mark fields with `required: true`. The import is blocked while any required field is still unmapped, with a footnote listing the missing ones. (Shown with `usePlatformizedImport`.)
224
+
225
+ ```tsx
226
+ import { Page } from '@wix/design-system';
227
+ import React from 'react';
228
+ import {
229
+ ImportButton,
230
+ PageWrapper,
231
+ Table,
232
+ ToolbarTitle,
233
+ usePlatformizedImport,
234
+ useTableCollection,
235
+ } from '@wix/patterns';
236
+ import { queryStoreVariants } from '@wix/ambassador-stores-catalog-v1-product/http';
237
+ import { StoreVariant } from '@wix/ambassador-stores-catalog-v1-product/types';
238
+ import { useHttpClient } from '@wix/yoshi-flow-bm';
239
+
240
+ function RequiredFields() {
241
+ const httpClient = useHttpClient();
242
+
243
+ const state = useTableCollection<StoreVariant>({
244
+ queryName: 'ImportButton-required',
245
+ fetchData: (query) => {
246
+ const { limit } = query;
247
+ return httpClient
248
+ .request(queryStoreVariants({ query: { cursorPaging: { limit } } }))
249
+ .then(({ data }) => ({
250
+ items: data.variants ?? [],
251
+ total: data.metadata?.total,
252
+ }));
253
+ },
254
+ itemKey: (variant) => variant.id ?? '',
255
+ itemName: (variant) => variant.productName ?? '',
256
+ fetchErrorMessage: () => 'Error fetching products',
257
+ });
258
+
259
+ // Mark fields `required: true`. The import is blocked while any required field
260
+ // is still unmapped, with a footnote listing the missing ones.
261
+ const importProps = usePlatformizedImport({
262
+ state,
263
+ destination: { storesCatalogProducts: {} },
264
+ fields: [
265
+ { id: 'name', header: 'Name', required: true },
266
+ { id: 'price', header: 'Price', required: true },
267
+ { id: 'sku', header: 'SKU' },
268
+ ],
269
+ });
270
+
271
+ return (
272
+ <PageWrapper>
273
+ <Page height="400px">
274
+ <Page.Header title="Products" />
275
+ <Page.Content>
276
+ <Table
277
+ state={state}
278
+ horizontalScroll
279
+ title={<ToolbarTitle title="Products" showTotal />}
280
+ columns={[
281
+ { title: 'Name', render: (variant) => variant.productName },
282
+ ]}
283
+ importButton={<ImportButton {...importProps} />}
284
+ />
285
+ </Page.Content>
286
+ </Page>
287
+ </PageWrapper>
288
+ );
289
+ }
290
+
291
+ export default RequiredFields;
292
+ ```
293
+
294
+ ---
295
+
296
+ ### Create new field
297
+
298
+ A CMS capability: when the collection’s schema permits adding fields, unmapped CSV columns default to creating a new field (with an "Edit field" affordance) instead of being skipped. `useSchemaImport` wires it from the schema automatically.
299
+
300
+ ```tsx
301
+ import React from 'react';
302
+ import { CollectionPage } from '@wix/patterns/page';
303
+ import {
304
+ CustomColumns,
305
+ ImportButton,
306
+ Table,
307
+ tableSchemaSource,
308
+ useSchemaImport,
309
+ useTableCollection,
310
+ } from '@wix/patterns';
311
+ import { createInMemorySchemaSource } from '@wix/patterns/testkit';
312
+
313
+ type CmsItem = {
314
+ _id: string;
315
+ name: string;
316
+ };
317
+
318
+ // "Create new field" is a CMS (Wix Data) capability. `useSchemaImport` wires it
319
+ // automatically: when the collection's schema permits adding fields
320
+ // (`schemaPermissions.createField`), CSV columns that don't match an existing
321
+ // field default to creating a new field (with an "Edit field" affordance)
322
+ // instead of being skipped. Here only `name` exists, so other CSV columns become
323
+ // new fields. (In a real app the source is `createCmsSchemaSource`.)
324
+ function CreateNewField() {
325
+ const [schemaSource] = React.useState(() => {
326
+ const { source } = createInMemorySchemaSource<CmsItem>({
327
+ collectionId: 'Products',
328
+ fields: [{ id: 'name', displayName: 'Name', type: 'SHORT_TEXT' }],
329
+ items: [{ _id: '1', name: 'Coffee Mug' }],
330
+ schemaPermissions: {
331
+ createField: true,
332
+ updateField: true,
333
+ deleteField: true,
334
+ },
335
+ });
336
+ return tableSchemaSource(source);
337
+ });
338
+
339
+ const state = useTableCollection<CmsItem>(schemaSource.collectionConfig);
340
+ const importProps = useSchemaImport(schemaSource);
341
+
342
+ return (
343
+ <CollectionPage>
344
+ <CollectionPage.Header title={{ text: 'Products' }} />
345
+ <CollectionPage.Content>
346
+ <Table
347
+ state={state}
348
+ horizontalScroll
349
+ fieldsSource={schemaSource}
350
+ customColumns={<CustomColumns />}
351
+ columns={[]}
352
+ importButton={<ImportButton {...importProps} />}
353
+ />
354
+ </CollectionPage.Content>
355
+ </CollectionPage>
356
+ );
357
+ }
358
+
359
+ export default CreateNewField;
360
+ ```
361
+
362
+ ---
363
+
364
+ ### Update or skip by ID
365
+
366
+ A CMS behavior: when a CSV column maps to the collection’s id field (`_id`), that row floats to the top and the modal offers an "update or skip" write policy for rows that collide on ID.
367
+
368
+ ```tsx
369
+ import React from 'react';
370
+ import { CollectionPage } from '@wix/patterns/page';
371
+ import {
372
+ CustomColumns,
373
+ ImportButton,
374
+ Table,
375
+ tableSchemaSource,
376
+ useSchemaImport,
377
+ useTableCollection,
378
+ } from '@wix/patterns';
379
+ import { createInMemorySchemaSource } from '@wix/patterns/testkit';
380
+
381
+ type CmsItem = {
382
+ _id: string;
383
+ name: string;
384
+ };
385
+
386
+ // Update-or-skip-by-ID is a CMS (Wix Data) behavior. When a CSV column maps to
387
+ // the collection's id field (`_id`), that row floats to the top and the modal
388
+ // offers an "update or skip" write policy for rows that collide on ID. Include
389
+ // the id field in the schema so it's mappable; `useSchemaImport` derives the id
390
+ // field from the schema. (In a real app the source is `createCmsSchemaSource`.)
391
+ function IdCollisionWritePolicy() {
392
+ const [schemaSource] = React.useState(() => {
393
+ const { source } = createInMemorySchemaSource<CmsItem>({
394
+ collectionId: 'Products',
395
+ idField: '_id',
396
+ fields: [
397
+ { id: '_id', displayName: 'ID', type: 'SHORT_TEXT' },
398
+ { id: 'name', displayName: 'Name', type: 'SHORT_TEXT' },
399
+ ],
400
+ items: [{ _id: '1', name: 'Coffee Mug' }],
401
+ });
402
+ return tableSchemaSource(source);
403
+ });
404
+
405
+ const state = useTableCollection<CmsItem>(schemaSource.collectionConfig);
406
+ const importProps = useSchemaImport(schemaSource);
407
+
408
+ return (
409
+ <CollectionPage>
410
+ <CollectionPage.Header title={{ text: 'Products' }} />
411
+ <CollectionPage.Content>
412
+ <Table
413
+ state={state}
414
+ horizontalScroll
415
+ fieldsSource={schemaSource}
416
+ customColumns={<CustomColumns />}
417
+ columns={[]}
418
+ importButton={<ImportButton {...importProps} />}
419
+ />
420
+ </CollectionPage.Content>
421
+ </CollectionPage>
422
+ );
423
+ }
424
+
425
+ export default IdCollisionWritePolicy;
426
+ ```
427
+
428
+ ---
429
+
430
+ ### Backup & error handling
431
+
432
+ Pass a `backup` to snapshot the collection before importing (undone on cancel) and a `jobApplicationErrorMap` to map a failed job’s application-error codes to messages. (Shown with `usePlatformizedImport`.)
433
+
434
+ ```tsx
435
+ import { Page } from '@wix/design-system';
436
+ import React from 'react';
437
+ import {
438
+ ImportButton,
439
+ PageWrapper,
440
+ Table,
441
+ ToolbarTitle,
442
+ usePlatformizedImport,
443
+ useTableCollection,
444
+ } from '@wix/patterns';
445
+ import { queryStoreVariants } from '@wix/ambassador-stores-catalog-v1-product/http';
446
+ import { StoreVariant } from '@wix/ambassador-stores-catalog-v1-product/types';
447
+ import { useHttpClient } from '@wix/yoshi-flow-bm';
448
+
449
+ function BackupAndErrorHandling() {
450
+ const httpClient = useHttpClient();
451
+
452
+ const state = useTableCollection<StoreVariant>({
453
+ queryName: 'ImportButton-backup',
454
+ fetchData: (query) => {
455
+ const { limit } = query;
456
+ return httpClient
457
+ .request(queryStoreVariants({ query: { cursorPaging: { limit } } }))
458
+ .then(({ data }) => ({
459
+ items: data.variants ?? [],
460
+ total: data.metadata?.total,
461
+ }));
462
+ },
463
+ itemKey: (variant) => variant.id ?? '',
464
+ itemName: (variant) => variant.productName ?? '',
465
+ fetchErrorMessage: () => 'Error fetching products',
466
+ });
467
+
468
+ const importProps = usePlatformizedImport({
469
+ state,
470
+ destination: { storesCatalogProducts: {} },
471
+ fields: [{ id: 'name', header: 'Name', required: true }],
472
+
473
+ // Optional: snapshot the collection before importing. The returned `restore`
474
+ // runs only if the user cancels mid-import (a job failure leaves partial
475
+ // rows and offers "Try again" instead).
476
+ backup: async () => {
477
+ // ...take a snapshot...
478
+ return {
479
+ restore: async () => {
480
+ // ...restore the snapshot...
481
+ },
482
+ };
483
+ },
484
+
485
+ // Optional: map the failed job's application-error codes to messages. You
486
+ // supply only the code → message map; the import resolves it through the
487
+ // error handler internally.
488
+ jobApplicationErrorMap: {
489
+ MISSING_REQUIRED_FIELDS: ({ data }) => ({
490
+ message: `Missing required fields: ${data?.missingFields?.join(', ')}`,
491
+ }),
492
+ },
493
+ });
494
+
495
+ return (
496
+ <PageWrapper>
497
+ <Page height="400px">
498
+ <Page.Header title="Products" />
499
+ <Page.Content>
500
+ <Table
501
+ state={state}
502
+ horizontalScroll
503
+ title={<ToolbarTitle title="Products" showTotal />}
504
+ columns={[
505
+ { title: 'Name', render: (variant) => variant.productName },
506
+ ]}
507
+ importButton={<ImportButton {...importProps} />}
508
+ />
509
+ </Page.Content>
510
+ </Page>
511
+ </PageWrapper>
512
+ );
513
+ }
514
+
515
+ export default BackupAndErrorHandling;
516
+ ```
517
+
518
+ ## API
519
+
520
+ ### Props
521
+
522
+ | Prop | Type | Required | Default | Description |
523
+ |------|------|----------|---------|-------------|
524
+ | `config` | `ImportButtonConfig` | Yes | - | The import inputs. Build it with a source hook — `useSchemaImport` for a CMS (Wix Data) collection, or `usePlatformizedImport` for a platformized destination — and pass the returned `config`. |
525
+ | `renderFieldEditor` | `RenderImportFieldEditor` | No | - | Renders the source's create/edit-field modal (see {@link RenderImportFieldEditor}). Supplied by consumer-driven sources (e.g. `useSchemaImport` for CMS). A DataExtension destination provides its own internally, so it need not be passed for that case. |
526
+ | `toolbarType` | `"bulkActionToolbar" \| "default"` | No | - | Which button variant to render. `'default'` (the default) shows a `ResponsiveButton`; `'bulkActionToolbar'` shows a compact secondary `Button`. |
527
+
@@ -599,7 +599,7 @@ import { MultiAutoInlineCheckboxFilter } from '@wix/patterns';
599
599
  | `MozUserModify` | `"-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "read-only" \| "read-write" \| "write-only"` | No | - | The **`user-modify`** property has no effect in Firefox. It was originally planned to determine whether or not the content of an element can be edited by a user. **Syntax**: `read-only \| read-write \| write-only` **Initial value**: `read-only` |
600
600
  | `MozUserSelect` | `"auto" \| "none" \| "-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "text" \| "all" \| "-moz-none"` | No | - | This feature is not Baseline because it does not work in some of the most widely-used browsers. **Syntax**: `auto \| text \| none \| all` **Initial value**: `auto` |
601
601
  | `MozWindowDragging` | `"-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "drag" \| "no-drag"` | No | - | **Syntax**: `drag \| no-drag` **Initial value**: `drag` |
602
- | `MozWindowShadow` | `"none" \| "-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "menu" \| "tooltip" \| "default" \| "sheet"` | No | - | **Syntax**: `default \| menu \| tooltip \| sheet \| none` **Initial value**: `default` |
602
+ | `MozWindowShadow` | `"none" \| "-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "default" \| "menu" \| "tooltip" \| "sheet"` | No | - | **Syntax**: `default \| menu \| tooltip \| sheet \| none` **Initial value**: `default` |
603
603
  | `msAccelerator` | `"-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "false" \| "true"` | No | - | **Syntax**: `false \| true` **Initial value**: `false` |
604
604
  | `msBlockProgression` | `"-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "bt" \| "lr" \| "rl" \| "tb"` | No | - | **Syntax**: `tb \| rl \| bt \| lr` **Initial value**: `tb` |
605
605
  | `msContentZoomChaining` | `"none" \| "-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "chained"` | No | - | **Syntax**: `none \| chained` **Initial value**: `none` |
@@ -620,7 +620,7 @@ function BasicMultiInlineCheckboxFilter() {
620
620
  | `MozUserModify` | `"-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "read-only" \| "read-write" \| "write-only"` | No | - | The **`user-modify`** property has no effect in Firefox. It was originally planned to determine whether or not the content of an element can be edited by a user. **Syntax**: `read-only \| read-write \| write-only` **Initial value**: `read-only` |
621
621
  | `MozUserSelect` | `"auto" \| "none" \| "-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "text" \| "all" \| "-moz-none"` | No | - | This feature is not Baseline because it does not work in some of the most widely-used browsers. **Syntax**: `auto \| text \| none \| all` **Initial value**: `auto` |
622
622
  | `MozWindowDragging` | `"-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "drag" \| "no-drag"` | No | - | **Syntax**: `drag \| no-drag` **Initial value**: `drag` |
623
- | `MozWindowShadow` | `"none" \| "-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "menu" \| "tooltip" \| "default" \| "sheet"` | No | - | **Syntax**: `default \| menu \| tooltip \| sheet \| none` **Initial value**: `default` |
623
+ | `MozWindowShadow` | `"none" \| "-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "default" \| "menu" \| "tooltip" \| "sheet"` | No | - | **Syntax**: `default \| menu \| tooltip \| sheet \| none` **Initial value**: `default` |
624
624
  | `msAccelerator` | `"-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "false" \| "true"` | No | - | **Syntax**: `false \| true` **Initial value**: `false` |
625
625
  | `msBlockProgression` | `"-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "bt" \| "lr" \| "rl" \| "tb"` | No | - | **Syntax**: `tb \| rl \| bt \| lr` **Initial value**: `tb` |
626
626
  | `msContentZoomChaining` | `"none" \| "-moz-initial" \| "inherit" \| "initial" \| "revert" \| "revert-layer" \| "unset" \| "chained"` | No | - | **Syntax**: `none \| chained` **Initial value**: `none` |
@@ -1001,10 +1001,11 @@ function UseExternalDataSource() {
1001
1001
  | `exportButton` | `ReactElement<any, string \| JSXElementConstructor<any>>` | No | - | A [`<ExportButton />`](./?path=/story/features-export--exportto) react element to be added to the toolbar. |
1002
1002
  | `dragAndDrop` | `TableDragAndDropType` | No | - | Adds functionality to allow visitors to reorder items manually. For more information, see the [Drag and Drop Overview](./?path=/story/features-sort-drag-and-drop--overview). |
1003
1003
  | `dataExtension` | `(FC<DataExtensionOverrides> & DataExtensionObjectType) \| DataExtensionElement` | No | - | Data extension implementation: `import { DataExtension } from '@wix/patterns';` |
1004
- | `fieldsSource` | `FieldsSourceProvider` | No | - | Attaches a field source to the table — the way to add a source's fields, filters, and field management. Build it with `tableSchemaSource(...)` for a schema source (also spread its `collectionConfig` into the collection hook), or `dataExtensionTableSource(...)` for DataExtension, which extends the consumer's own collection. |
1004
+ | `fieldsSource` | `FieldsSourceProvider` | No | - | A fields source (e.g. `dataExtensionTableSource(...)`) whose fields become columns and whose field management wires into the table. Schema sources attach via the `@wix/patterns/schema` collection hooks instead. |
1005
1005
  | `tags` | `TagsElement<T, F>` | No | - | Enables tags feature. In this element you can pass the configuration |
1006
1006
  | `checkboxTooltipContent` | `((rowData: KeyedItem<T>) => string)` | No | - | A function that receives the item of the row and returns a string for tooltip content. |
1007
1007
  | `bulkActionToolbar` | `BulkActionToolbarRenderProp<T, F>` | No | - | Render a custom toolbar when more than 1 item is selected.<br> The function accepts the following parameters * `selectedValues`: The items that were checked via the selection column * `uncheckedValues`: The items that were unchecked via the selection column * `allSelected`: Indicates whether the "Select All" checkbox is checked * `openModal`: Opens the modal that contains the component from `bulkActionModal` render prop * `clearSelection`: Clears all existing selection, call this after the action on the selected items was done * `total`: Total items in the server (taken from [`fetchData`](./?path=/story/common-hooks--usecollection) return value). * `openConfirmModal`: Opens a `<MessageModalLayout/>` to confirm an action about to be applied on the selected items. * `query`: ComputedQuery<F> - Representation of the current paging, sorting & filtering applied. Usually for using together with bulk action such as `updateAll` and `deleteAll` > When passed, enables `showSelection` by default. |
1008
+ | `showAddFieldButton` | `boolean` | No | - | When true, wraps every column header with the AddField hover popover. The "+" button is revealed when the consumer hovers a column header and triggers either the schema's `addField` or the data-extension's custom fields modal. Off by default. |
1008
1009
  | `bulkActionModal` | `BulkActionModalRenderProp<T, F>` | No | - | Opens a modal from the [`MultiBulkActionToolbar`](./?path=/story/features-actions-bulk-actions--multibulkactiontoolbar). Supported parameters: + `selectedValues`: Selected item values. + `uncheckedValues`: Unselected item values. + `isSelectAll`: [bool] Whether the **Select All** option is selected. + `closeModal`: Closes the modal. + `query`: [object] Instance of [ComputedQuery](./?path=/story/common-types--computedquery) that represents the query that resulted in an empty state. Representation of the current paging, sorting and filtering applied. Usually for using together with bulk action such as `updateAll` and `deleteAll`. |
1009
1010
  | `dataHook` | `string` | No | - | Applies a data-hook HTML attribute to be used in the tests |
1010
1011
  | `search` | `boolean \| FilterElement<any> \| CollectionSearchElement` | No | `true` | Displays a search input on the right side of the table toolbar.<br> <br> Accepts a boolean or a custom React element as a parameter. When passing `false`, no search input is displayed. |
@@ -282,8 +282,9 @@ function TableGridSwitchAdvanceSorting() {
282
282
  | `rowStatus` | `((row: KeyedItem<T>, rowNum: number) => TableRowStatusValue \| null)` | No | - | When provided, renders a fixed-width status slot per row to the right of the selection/row-number column. The callback returns a `{ status, messages }` config for rows that need a status indicator, or `null`/`undefined` for an empty but width-reserved slot — the slot never collapses. Only `error` and `warning` statuses are supported; the slot is exclusively for those two indicator kinds, rendered via the WDS `<StatusIndicator/>`. |
283
283
  | `stickySelectionColumn` | `boolean` | No | - | Whether to add a sticky column. <br> Sticky columns allow you to display specific columns at all times while the visitor scrolls the table horizontally. |
284
284
  | `dataExtension` | `(FC<DataExtensionOverrides> & DataExtensionObjectType) \| DataExtensionElement` | No | - | Data extension implementation: `import { DataExtension } from '@wix/patterns';` |
285
- | `fieldsSource` | `FieldsSourceProvider` | No | - | Attaches a field source to the table — the way to add a source's fields, filters, and field management. Build it with `tableSchemaSource(...)` for a schema source (also spread its `collectionConfig` into the collection hook), or `dataExtensionTableSource(...)` for DataExtension, which extends the consumer's own collection. |
285
+ | `fieldsSource` | `FieldsSourceProvider` | No | - | A fields source (e.g. `dataExtensionTableSource(...)`) whose fields become columns and whose field management wires into the table. Schema sources attach via the `@wix/patterns/schema` collection hooks instead. |
286
286
  | `checkboxTooltipContent` | `((rowData: KeyedItem<T>) => string)` | No | - | A function that receives the item of the row and returns a string for tooltip content. |
287
+ | `showAddFieldButton` | `boolean` | No | - | When true, wraps every column header with the AddField hover popover. The "+" button is revealed when the consumer hovers a column header and triggers either the schema's `addField` or the data-extension's custom fields modal. Off by default. |
287
288
  | `bulkActionModal` | `BulkActionModalRenderProp<T, F>` | No | - | Opens a modal from the [`MultiBulkActionToolbar`](./?path=/story/features-actions-bulk-actions--multibulkactiontoolbar). Supported parameters: + `selectedValues`: Selected item values. + `uncheckedValues`: Unselected item values. + `isSelectAll`: [bool] Whether the **Select All** option is selected. + `closeModal`: Closes the modal. + `query`: [object] Instance of [ComputedQuery](./?path=/story/common-types--computedquery) that represents the query that resulted in an empty state. Representation of the current paging, sorting and filtering applied. Usually for using together with bulk action such as `updateAll` and `deleteAll`. |
288
289
  | `actionCellWidth` | `string \| number` | No | - | Width of the column containing the `actionCell` component. |
289
290
  | `actionCellProps` | `ActionCellPropsType<T>` | No | - | Extra columns props for the actions cell. |