@wix/patterns 1.440.0 → 1.442.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 (475) hide show
  1. package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
  2. package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
  3. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
  4. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
  5. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
  6. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  7. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
  8. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  9. package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +3 -3
  10. package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js.map +1 -1
  11. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  12. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  13. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  14. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  15. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
  16. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  17. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  18. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  19. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  20. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  21. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  22. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  23. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  24. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  25. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  26. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  27. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  28. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  29. package/dist/cjs/components/CustomColumnsPanel/ColumnListTableListItem.js +14 -13
  30. package/dist/cjs/components/CustomColumnsPanel/ColumnListTableListItem.js.map +1 -1
  31. package/dist/cjs/components/CustomFieldFilters/HasValueCustomFieldFilter.js +45 -0
  32. package/dist/cjs/components/CustomFieldFilters/HasValueCustomFieldFilter.js.map +1 -0
  33. package/dist/cjs/components/CustomFieldModal/CustomFieldTypeDropdown.js +7 -5
  34. package/dist/cjs/components/CustomFieldModal/CustomFieldTypeDropdown.js.map +1 -1
  35. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  36. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  37. package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
  38. package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
  39. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  40. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  41. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  42. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  43. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
  44. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  45. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js +3 -3
  46. package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
  47. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  48. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  49. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  50. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  51. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  52. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
  53. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  54. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  55. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  56. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  57. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
  58. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  59. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
  60. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
  61. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
  62. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  63. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  64. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  65. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  66. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  67. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  68. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  69. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
  70. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
  71. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  72. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  73. package/dist/cjs/components/EditableTable/cellTypes/richContent/index.js +3 -3
  74. package/dist/cjs/components/EditableTable/cellTypes/richContent/index.js.map +1 -1
  75. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  76. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  77. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  78. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  79. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  80. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  81. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
  82. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  83. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  84. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  85. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  86. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  87. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  88. package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js.map +1 -1
  89. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  90. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  91. package/dist/cjs/components/EntityPageFields/EntityPageCustomField.js +61 -0
  92. package/dist/cjs/components/EntityPageFields/EntityPageCustomField.js.map +1 -0
  93. package/dist/cjs/components/EntityPageFields/EntityPageField.js +39 -18
  94. package/dist/cjs/components/EntityPageFields/EntityPageField.js.map +1 -1
  95. package/dist/cjs/components/EntityPageFields/EntityPageFields.js +26 -19
  96. package/dist/cjs/components/EntityPageFields/EntityPageFields.js.map +1 -1
  97. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  98. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  99. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  100. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  101. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  102. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  103. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  104. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  105. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  106. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  107. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  108. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  109. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  110. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  111. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  112. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  113. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  114. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  115. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  116. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  117. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  118. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  119. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  120. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  121. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  122. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  123. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  124. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  125. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  126. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  127. package/dist/cjs/components/SchemaSource/schemaFieldManagement.js +36 -12
  128. package/dist/cjs/components/SchemaSource/schemaFieldManagement.js.map +1 -1
  129. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  130. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  131. package/dist/cjs/components/SetupWidget/SetupStepGroup.js +39 -23
  132. package/dist/cjs/components/SetupWidget/SetupStepGroup.js.map +1 -1
  133. package/dist/cjs/components/SetupWidget/SetupStepRow.js +91 -68
  134. package/dist/cjs/components/SetupWidget/SetupStepRow.js.map +1 -1
  135. package/dist/cjs/components/SetupWidget/SetupStepSecondaryCta.js +69 -0
  136. package/dist/cjs/components/SetupWidget/SetupStepSecondaryCta.js.map +1 -0
  137. package/dist/cjs/components/SetupWidget/SetupWidget.js +16 -13
  138. package/dist/cjs/components/SetupWidget/SetupWidget.js.map +1 -1
  139. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +9 -9
  140. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  141. package/dist/cjs/components/SetupWidget/SetupWidget.uni.driver.js +9 -0
  142. package/dist/cjs/components/SetupWidget/SetupWidget.uni.driver.js.map +1 -1
  143. package/dist/cjs/components/SetupWidget/index.js.map +1 -1
  144. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  145. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  146. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  147. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  148. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js +4 -4
  149. package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
  150. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  151. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  152. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  153. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  154. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  155. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  156. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  157. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  158. package/dist/cjs/components/common.st.css.js +4 -4
  159. package/dist/cjs/components/common.st.css.js.map +1 -1
  160. package/dist/cjs/hooks/useCreateWSRColumnBase.js +8 -6
  161. package/dist/cjs/hooks/useCreateWSRColumnBase.js.map +1 -1
  162. package/dist/cjs/index.js.map +1 -1
  163. package/dist/cjs/model/tableColumn.js.map +1 -1
  164. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  165. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  166. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  167. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  168. package/dist/cjs/state/TagsCollectionState.js.map +1 -1
  169. package/dist/cjs/state/buildEditableFieldColumns.js +1 -0
  170. package/dist/cjs/state/buildEditableFieldColumns.js.map +1 -1
  171. package/dist/cjs/state/buildFieldColumns.js +2 -1
  172. package/dist/cjs/state/buildFieldColumns.js.map +1 -1
  173. package/dist/cjs/state/buildFieldFilters.js +35 -4
  174. package/dist/cjs/state/buildFieldFilters.js.map +1 -1
  175. package/dist/cjs/styles.global.css +2 -2
  176. package/dist/cjs/utils/fieldTypePrefixIcons.js +27 -7
  177. package/dist/cjs/utils/fieldTypePrefixIcons.js.map +1 -1
  178. package/dist/cjs/version.js +1 -1
  179. package/dist/cjs/version.js.map +1 -1
  180. package/dist/docs/CustomFieldType.md +407 -0
  181. package/dist/docs/MultiAutoInlineCheckboxFilter.md +1 -1
  182. package/dist/docs/MultiInlineCheckboxFilter.md +1 -1
  183. package/dist/docs/TableColumn.md +1 -0
  184. package/dist/docs/index.json +38 -38
  185. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  186. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
  187. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
  188. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
  189. package/dist/esm/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +2 -2
  190. package/dist/esm/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js.map +1 -1
  191. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  192. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  193. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  194. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  195. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  196. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  197. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  198. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  199. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  200. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  201. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  202. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  203. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  204. package/dist/esm/components/CustomColumnsPanel/ColumnListTableListItem.js +4 -1
  205. package/dist/esm/components/CustomColumnsPanel/ColumnListTableListItem.js.map +1 -1
  206. package/dist/esm/components/CustomFieldFilters/HasValueCustomFieldFilter.js +30 -0
  207. package/dist/esm/components/CustomFieldFilters/HasValueCustomFieldFilter.js.map +1 -0
  208. package/dist/esm/components/CustomFieldModal/CustomFieldTypeDropdown.js +2 -0
  209. package/dist/esm/components/CustomFieldModal/CustomFieldTypeDropdown.js.map +1 -1
  210. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  211. package/dist/esm/components/DragHandle/DragHandle.st.css.js.map +1 -1
  212. package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
  213. package/dist/esm/components/EditableTable/EditableCell.st.css.js.map +1 -1
  214. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  215. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  216. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
  217. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  218. package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js +2 -2
  219. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  220. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  221. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  222. package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  223. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  224. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  225. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  226. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
  227. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  228. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
  229. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
  230. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  231. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  232. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  233. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
  234. package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +2 -2
  235. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  236. package/dist/esm/components/EditableTable/cellTypes/richContent/index.js +2 -1
  237. package/dist/esm/components/EditableTable/cellTypes/richContent/index.js.map +1 -1
  238. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  239. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  240. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  241. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  242. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  243. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  244. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
  245. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  246. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  247. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  248. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  249. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  250. package/dist/esm/components/EmptyState/EmptyStateBase.st.css.js +2 -2
  251. package/dist/esm/components/EmptyState/EmptyStateBase.st.css.js.map +1 -1
  252. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  253. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  254. package/dist/esm/components/EntityPageFields/EntityPageCustomField.js +27 -0
  255. package/dist/esm/components/EntityPageFields/EntityPageCustomField.js.map +1 -0
  256. package/dist/esm/components/EntityPageFields/EntityPageField.js +23 -13
  257. package/dist/esm/components/EntityPageFields/EntityPageField.js.map +1 -1
  258. package/dist/esm/components/EntityPageFields/EntityPageFields.js +2 -1
  259. package/dist/esm/components/EntityPageFields/EntityPageFields.js.map +1 -1
  260. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  261. package/dist/esm/components/Fade/Fade.st.css.js.map +1 -1
  262. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  263. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  264. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  265. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  266. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  267. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  268. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  269. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  270. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  271. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  272. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  273. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  274. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  275. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  276. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  277. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  278. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  279. package/dist/esm/components/SchemaSource/schemaFieldManagement.js +52 -28
  280. package/dist/esm/components/SchemaSource/schemaFieldManagement.js.map +1 -1
  281. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  282. package/dist/esm/components/SetupWidget/SetupStepGroup.js +6 -1
  283. package/dist/esm/components/SetupWidget/SetupStepGroup.js.map +1 -1
  284. package/dist/esm/components/SetupWidget/SetupStepRow.js +21 -15
  285. package/dist/esm/components/SetupWidget/SetupStepRow.js.map +1 -1
  286. package/dist/esm/components/SetupWidget/SetupStepSecondaryCta.js +20 -0
  287. package/dist/esm/components/SetupWidget/SetupStepSecondaryCta.js.map +1 -0
  288. package/dist/esm/components/SetupWidget/SetupWidget.js +5 -3
  289. package/dist/esm/components/SetupWidget/SetupWidget.js.map +1 -1
  290. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
  291. package/dist/esm/components/SetupWidget/SetupWidget.uni.driver.js +10 -1
  292. package/dist/esm/components/SetupWidget/SetupWidget.uni.driver.js.map +1 -1
  293. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  294. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  295. package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js +2 -2
  296. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  297. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  298. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  299. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  300. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  301. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  302. package/dist/esm/components/common.st.css.js +2 -2
  303. package/dist/esm/hooks/useCreateWSRColumnBase.js +2 -2
  304. package/dist/esm/hooks/useCreateWSRColumnBase.js.map +1 -1
  305. package/dist/esm/index.js.map +1 -1
  306. package/dist/esm/model/tableColumn.js.map +1 -1
  307. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  308. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  309. package/dist/esm/state/TagsCollectionState.js.map +1 -1
  310. package/dist/esm/state/buildEditableFieldColumns.js +1 -1
  311. package/dist/esm/state/buildEditableFieldColumns.js.map +1 -1
  312. package/dist/esm/state/buildFieldColumns.js +1 -0
  313. package/dist/esm/state/buildFieldColumns.js.map +1 -1
  314. package/dist/esm/state/buildFieldFilters.js +31 -0
  315. package/dist/esm/state/buildFieldFilters.js.map +1 -1
  316. package/dist/esm/styles.global.css +2 -2
  317. package/dist/esm/utils/fieldTypePrefixIcons.js +6 -1
  318. package/dist/esm/utils/fieldTypePrefixIcons.js.map +1 -1
  319. package/dist/esm/version.js +1 -1
  320. package/dist/types/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.d.ts.map +1 -1
  321. package/dist/types/components/CollectionPageNew/CollectionPage.st.css.d.ts.map +1 -1
  322. package/dist/types/components/CollectionTable/CollectionTable.st.css.d.ts.map +1 -1
  323. package/dist/types/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.d.ts.map +1 -1
  324. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
  325. package/dist/types/components/CustomColumnsPanel/ColumnListTableListItem.d.ts.map +1 -1
  326. package/dist/types/components/CustomFieldFilters/HasValueCustomFieldFilter.d.ts +24 -0
  327. package/dist/types/components/CustomFieldFilters/HasValueCustomFieldFilter.d.ts.map +1 -0
  328. package/dist/types/components/CustomFieldModal/CustomFieldTypeDropdown.d.ts.map +1 -1
  329. package/dist/types/components/DragHandle/DragHandle.st.css.d.ts.map +1 -1
  330. package/dist/types/components/EditableTable/EditableCell.st.css.d.ts.map +1 -1
  331. package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts.map +1 -1
  332. package/dist/types/components/EditableTable/cellTypes/boolean/Edit.st.css.d.ts.map +1 -1
  333. package/dist/types/components/EditableTable/cellTypes/date/Edit.st.css.d.ts.map +1 -1
  334. package/dist/types/components/EditableTable/cellTypes/datetime/Edit.st.css.d.ts.map +1 -1
  335. package/dist/types/components/EditableTable/cellTypes/email/View.st.css.d.ts.map +1 -1
  336. package/dist/types/components/EditableTable/cellTypes/richContent/index.d.ts.map +1 -1
  337. package/dist/types/components/EditableTable/cellTypes/select/Edit.st.css.d.ts.map +1 -1
  338. package/dist/types/components/EditableTable/cellTypes/text/Edit.st.css.d.ts.map +1 -1
  339. package/dist/types/components/EditableTable/cellTypes/text/View.st.css.d.ts.map +1 -1
  340. package/dist/types/components/EditableTable/cellTypes/time/Edit.st.css.d.ts.map +1 -1
  341. package/dist/types/components/EditableTable/cellTypes/url/Edit.st.css.d.ts.map +1 -1
  342. package/dist/types/components/EditableTable/cellTypes/url/View.st.css.d.ts.map +1 -1
  343. package/dist/types/components/EmptyState/EmptyStateBase.st.css.d.ts.map +1 -1
  344. package/dist/types/components/EntityPage/EntityPagePlain.st.css.d.ts.map +1 -1
  345. package/dist/types/components/EntityPageFields/EntityPageCustomField.d.ts +14 -0
  346. package/dist/types/components/EntityPageFields/EntityPageCustomField.d.ts.map +1 -0
  347. package/dist/types/components/EntityPageFields/EntityPageField.d.ts +4 -2
  348. package/dist/types/components/EntityPageFields/EntityPageField.d.ts.map +1 -1
  349. package/dist/types/components/EntityPageFields/EntityPageFields.d.ts.map +1 -1
  350. package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
  351. package/dist/types/components/ImportButton/ImportStepUpload.st.css.d.ts.map +1 -1
  352. package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
  353. package/dist/types/components/NestedTable/NestedTableRow.st.css.d.ts.map +1 -1
  354. package/dist/types/components/SchemaSource/schemaFieldManagement.d.ts.map +1 -1
  355. package/dist/types/components/SetupWidget/SetupStepGroup.d.ts +3 -1
  356. package/dist/types/components/SetupWidget/SetupStepGroup.d.ts.map +1 -1
  357. package/dist/types/components/SetupWidget/SetupStepRow.d.ts +3 -1
  358. package/dist/types/components/SetupWidget/SetupStepRow.d.ts.map +1 -1
  359. package/dist/types/components/SetupWidget/SetupStepSecondaryCta.d.ts +14 -0
  360. package/dist/types/components/SetupWidget/SetupStepSecondaryCta.d.ts.map +1 -0
  361. package/dist/types/components/SetupWidget/SetupWidget.d.ts +7 -1
  362. package/dist/types/components/SetupWidget/SetupWidget.d.ts.map +1 -1
  363. package/dist/types/components/SetupWidget/SetupWidget.uni.driver.d.ts +8 -0
  364. package/dist/types/components/SetupWidget/SetupWidget.uni.driver.d.ts.map +1 -1
  365. package/dist/types/components/SetupWidget/index.d.ts +1 -1
  366. package/dist/types/components/SetupWidget/index.d.ts.map +1 -1
  367. package/dist/types/components/ToolbarItem/ToolbarItem.st.css.d.ts.map +1 -1
  368. package/dist/types/components/ToolbarItemBox/ToolbarItemBox.st.css.d.ts.map +1 -1
  369. package/dist/types/hooks/useCreateWSRColumnBase.d.ts.map +1 -1
  370. package/dist/types/index.d.ts +1 -1
  371. package/dist/types/index.d.ts.map +1 -1
  372. package/dist/types/model/tableColumn.d.ts +19 -1
  373. package/dist/types/model/tableColumn.d.ts.map +1 -1
  374. package/dist/types/state/buildEditableFieldColumns.d.ts +2 -1
  375. package/dist/types/state/buildEditableFieldColumns.d.ts.map +1 -1
  376. package/dist/types/state/buildFieldColumns.d.ts.map +1 -1
  377. package/dist/types/state/buildFieldFilters.d.ts.map +1 -1
  378. package/dist/types/testkit/jsdom.d.ts +4 -0
  379. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  380. package/dist/types/utils/fieldTypePrefixIcons.d.ts +8 -2
  381. package/dist/types/utils/fieldTypePrefixIcons.d.ts.map +1 -1
  382. package/dist/types/version.d.ts +1 -1
  383. package/package.json +7 -7
  384. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  385. package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
  386. package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
  387. package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
  388. package/src/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.ts +2 -2
  389. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  390. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  391. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  392. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  393. package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
  394. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  395. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  396. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  397. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  398. package/src/components/CustomColumnsPanel/ColumnListTableListItem.tsx +4 -1
  399. package/src/components/CustomFieldFilters/HasValueCustomFieldFilter.tsx +48 -0
  400. package/src/components/CustomFieldModal/CustomFieldTypeDropdown.tsx +2 -0
  401. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  402. package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
  403. package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
  404. package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
  405. package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
  406. package/src/components/EditableTable/cellTypes/array/Edit.st.css.ts +2 -2
  407. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  408. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  409. package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
  410. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  411. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  412. package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +2 -2
  413. package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
  414. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
  415. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
  416. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  417. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  418. package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
  419. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
  420. package/src/components/EditableTable/cellTypes/richContent/index.tsx +4 -1
  421. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  422. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  423. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  424. package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
  425. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  426. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  427. package/src/components/EmptyState/EmptyStateBase.st.css.ts +2 -2
  428. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  429. package/src/components/EntityPageFields/EntityPageCustomField.tsx +61 -0
  430. package/src/components/EntityPageFields/EntityPageField.tsx +45 -17
  431. package/src/components/EntityPageFields/EntityPageFields.tsx +5 -0
  432. package/src/components/Fade/Fade.st.css.ts +2 -2
  433. package/src/components/Heading/Heading.st.css.ts +2 -2
  434. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  435. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  436. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  437. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  438. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  439. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  440. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  441. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  442. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  443. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  444. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  445. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  446. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  447. package/src/components/SchemaSource/schemaFieldManagement.ts +59 -31
  448. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  449. package/src/components/SetupWidget/SetupStepGroup.tsx +16 -0
  450. package/src/components/SetupWidget/SetupStepRow.tsx +49 -30
  451. package/src/components/SetupWidget/SetupStepSecondaryCta.tsx +58 -0
  452. package/src/components/SetupWidget/SetupWidget.st.css.ts +2 -2
  453. package/src/components/SetupWidget/SetupWidget.tsx +15 -0
  454. package/src/components/SetupWidget/SetupWidget.uni.driver.ts +18 -0
  455. package/src/components/SetupWidget/index.ts +1 -0
  456. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  457. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  458. package/src/components/Table/AddFieldColumnHeader.st.css.ts +2 -2
  459. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  460. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  461. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  462. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  463. package/src/components/common.st.css.ts +2 -2
  464. package/src/hooks/useCreateWSRColumnBase.tsx +12 -3
  465. package/src/index.ts +3 -0
  466. package/src/model/tableColumn.ts +13 -1
  467. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  468. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  469. package/src/state/TagsCollectionState.ts +3 -3
  470. package/src/state/buildEditableFieldColumns.ts +1 -1
  471. package/src/state/buildFieldColumns.tsx +1 -0
  472. package/src/state/buildFieldFilters.tsx +31 -0
  473. package/src/styles.global.css +2 -2
  474. package/src/utils/fieldTypePrefixIcons.tsx +13 -0
  475. package/src/version.ts +1 -1
@@ -149,23 +149,43 @@ const ICON_STYLE = {
149
149
  };
150
150
  function getFieldTypeIcon({
151
151
  fieldType,
152
- size = 'small'
152
+ size = 'small',
153
+ icons
153
154
  }) {
154
155
  const Fallback = size === 'medium' ? _lazy.Database : _lazy.DatabaseSmall;
156
+ if (icons) {
157
+ const Icon = size === 'medium' ? icons.Medium : icons.Small;
158
+ return /*#__PURE__*/_react.default.createElement("span", {
159
+ style: ICON_STYLE,
160
+ __self: this,
161
+ __source: {
162
+ fileName: _jsxFileName,
163
+ lineNumber: 161,
164
+ columnNumber: 7
165
+ }
166
+ }, /*#__PURE__*/_react.default.createElement(Icon, {
167
+ __self: this,
168
+ __source: {
169
+ fileName: _jsxFileName,
170
+ lineNumber: 162,
171
+ columnNumber: 9
172
+ }
173
+ }));
174
+ }
155
175
  if (!fieldType) {
156
176
  return /*#__PURE__*/_react.default.createElement("span", {
157
177
  style: ICON_STYLE,
158
178
  __self: this,
159
179
  __source: {
160
180
  fileName: _jsxFileName,
161
- lineNumber: 156,
181
+ lineNumber: 169,
162
182
  columnNumber: 7
163
183
  }
164
184
  }, /*#__PURE__*/_react.default.createElement(Fallback, {
165
185
  __self: this,
166
186
  __source: {
167
187
  fileName: _jsxFileName,
168
- lineNumber: 157,
188
+ lineNumber: 170,
169
189
  columnNumber: 9
170
190
  }
171
191
  }));
@@ -177,14 +197,14 @@ function getFieldTypeIcon({
177
197
  __self: this,
178
198
  __source: {
179
199
  fileName: _jsxFileName,
180
- lineNumber: 166,
200
+ lineNumber: 179,
181
201
  columnNumber: 7
182
202
  }
183
203
  }, /*#__PURE__*/_react.default.createElement(Fallback, {
184
204
  __self: this,
185
205
  __source: {
186
206
  fileName: _jsxFileName,
187
- lineNumber: 167,
207
+ lineNumber: 180,
188
208
  columnNumber: 9
189
209
  }
190
210
  }));
@@ -195,14 +215,14 @@ function getFieldTypeIcon({
195
215
  __self: this,
196
216
  __source: {
197
217
  fileName: _jsxFileName,
198
- lineNumber: 174,
218
+ lineNumber: 187,
199
219
  columnNumber: 5
200
220
  }
201
221
  }, /*#__PURE__*/_react.default.createElement(Icon, {
202
222
  __self: this,
203
223
  __source: {
204
224
  fileName: _jsxFileName,
205
- lineNumber: 175,
225
+ lineNumber: 188,
206
226
  columnNumber: 7
207
227
  }
208
228
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_lazy","_jsxFileName","toFieldType","value","replace","toUpperCase","FIELD_TYPE_ICON_MAP","SHORT_TEXT","small","TextSmall","medium","Text","LONG_TEXT","NUMBER","NumberSmall","Number","BOOLEAN","SquareRatioCheckedSmall","SquareRatioChecked","DATE","DateSmall","Date","DATE_TIME","DateAndTimeSmall","DateAndTime","DATETIME","TIME","TimeSmall","Time","URL","LinkSmall","Link","EMAIL","EmailSmall","Email","IMAGE","ImageSmall","Image","MEDIA_GALLERY","ProGalleriesSmall","ProGalleries","AUDIO","MusicSmall","Music","DOCUMENT","DocumentSmall","Document","MULTI_DOCUMENT","DocDuplicate","RICH_TEXT","RichTextSmall","RichText","RICH_CONTENT","ArticleSmall","Article","REFERENCE","ReferenceSmall","Reference","MULTI_REFERENCE","MultireferenceSmall","Multireference","OBJECT","CodeObjectSmall","CodeObject","ARRAY","TagSmall","Tag","ADDRESS","LocationSmall","Location","INTEGER","DECIMAL","CHECKBOX","FILES","MULTI_SELECT","ICON_STYLE","display","alignItems","getFieldTypeIcon","fieldType","size","Fallback","Database","DatabaseSmall","default","createElement","style","__self","__source","fileName","lineNumber","columnNumber","entry","Icon"],"sources":["../../../src/utils/fieldTypePrefixIcons.tsx"],"sourcesContent":["import React, { type ComponentType, type ReactNode } from 'react';\nimport {\n Text,\n TextSmall,\n Image,\n ImageSmall,\n SquareRatioChecked,\n SquareRatioCheckedSmall,\n Number,\n NumberSmall,\n Date,\n DateSmall,\n DateAndTime,\n DateAndTimeSmall,\n Time,\n TimeSmall,\n Article,\n ArticleSmall,\n RichText,\n RichTextSmall,\n Reference,\n ReferenceSmall,\n Multireference,\n MultireferenceSmall,\n Link,\n LinkSmall,\n Document,\n DocumentSmall,\n DocDuplicate,\n Music,\n MusicSmall,\n Location,\n LocationSmall,\n Tag,\n TagSmall,\n CodeObject,\n CodeObjectSmall,\n ProGalleries,\n ProGalleriesSmall,\n Email,\n EmailSmall,\n Database,\n DatabaseSmall,\n} from '@wix/wix-ui-icons-common/lazy';\nimport type { PatternsFieldType } from '@wix/bex-core';\n\n/**\n * Canonical field type keys (UPPER_SNAKE_CASE).\n * The map is keyed by these values; incoming camelCase strings\n * are normalised before lookup.\n */\nexport type FieldType =\n | 'SHORT_TEXT'\n | 'LONG_TEXT'\n | 'NUMBER'\n | 'BOOLEAN'\n | 'DATE'\n | 'DATE_TIME'\n | 'DATETIME'\n | 'TIME'\n | 'URL'\n | 'EMAIL'\n | 'IMAGE'\n | 'MEDIA_GALLERY'\n | 'AUDIO'\n | 'DOCUMENT'\n | 'MULTI_DOCUMENT'\n | 'RICH_TEXT'\n | 'RICH_CONTENT'\n | 'REFERENCE'\n | 'MULTI_REFERENCE'\n | 'OBJECT'\n | 'ARRAY'\n | 'ADDRESS'\n | 'COLOR'\n | 'INTEGER'\n | 'DECIMAL'\n | 'CHECKBOX'\n | 'DROPDOWN'\n | 'FILES'\n | 'MULTI_SELECT';\n\n/**\n * Converts any casing (camelCase, snake_case, etc.) to a canonical FieldType.\n * e.g. \"shortText\" → \"SHORT_TEXT\", \"dateTime\" → \"DATE_TIME\".\n * Already UPPER_SNAKE_CASE strings pass through unchanged.\n */\nexport function toFieldType(value: string): FieldType {\n return value.replace(/([a-z])([A-Z])/g, '$1_$2').toUpperCase() as FieldType;\n}\n\ninterface FieldPrefixIconEntry {\n small: ComponentType;\n medium: ComponentType;\n}\n\n/**\n * Maps canonical UPPER_SNAKE_CASE field types to icon components (small + medium).\n */\nconst FIELD_TYPE_ICON_MAP: Partial<\n Record<FieldType | PatternsFieldType, FieldPrefixIconEntry>\n> = {\n SHORT_TEXT: { small: TextSmall, medium: Text },\n LONG_TEXT: { small: TextSmall, medium: Text },\n NUMBER: { small: NumberSmall, medium: Number },\n BOOLEAN: { small: SquareRatioCheckedSmall, medium: SquareRatioChecked },\n DATE: { small: DateSmall, medium: Date },\n DATE_TIME: { small: DateAndTimeSmall, medium: DateAndTime },\n DATETIME: { small: DateAndTimeSmall, medium: DateAndTime },\n TIME: { small: TimeSmall, medium: Time },\n URL: { small: LinkSmall, medium: Link },\n EMAIL: { small: EmailSmall, medium: Email },\n IMAGE: { small: ImageSmall, medium: Image },\n MEDIA_GALLERY: { small: ProGalleriesSmall, medium: ProGalleries },\n AUDIO: { small: MusicSmall, medium: Music },\n DOCUMENT: { small: DocumentSmall, medium: Document },\n MULTI_DOCUMENT: { small: DocumentSmall, medium: DocDuplicate },\n RICH_TEXT: { small: RichTextSmall, medium: RichText },\n RICH_CONTENT: { small: ArticleSmall, medium: Article },\n REFERENCE: { small: ReferenceSmall, medium: Reference },\n MULTI_REFERENCE: { small: MultireferenceSmall, medium: Multireference },\n OBJECT: { small: CodeObjectSmall, medium: CodeObject },\n ARRAY: { small: TagSmall, medium: Tag },\n ADDRESS: { small: LocationSmall, medium: Location },\n INTEGER: { small: NumberSmall, medium: Number },\n DECIMAL: { small: NumberSmall, medium: Number },\n CHECKBOX: { small: SquareRatioCheckedSmall, medium: SquareRatioChecked },\n FILES: { small: DocumentSmall, medium: Document },\n MULTI_SELECT: { small: TagSmall, medium: Tag },\n};\n\n/**\n * Returns an icon ReactNode for the given field type string and size.\n * Accepts both UPPER_SNAKE_CASE and camelCase input.\n * If the field type is not mapped (or undefined), returns an info fallback icon.\n *\n * @param fieldType - The field type string\n * @param size - 'small' (default, for column headers / customize panel) or 'medium' (for filters)\n */\nconst ICON_STYLE: React.CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n};\n\nexport function getFieldTypeIcon({\n fieldType,\n size = 'small',\n}: {\n fieldType?: FieldType | PatternsFieldType;\n size?: 'small' | 'medium';\n}): ReactNode {\n const Fallback = size === 'medium' ? Database : DatabaseSmall;\n\n if (!fieldType) {\n return (\n <span style={ICON_STYLE}>\n <Fallback />\n </span>\n );\n }\n\n const entry = FIELD_TYPE_ICON_MAP[fieldType];\n\n if (!entry) {\n return (\n <span style={ICON_STYLE}>\n <Fallback />\n </span>\n );\n }\n\n const Icon = size === 'medium' ? entry.medium : entry.small;\n return (\n <span style={ICON_STYLE}>\n <Icon />\n </span>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_lazy","_jsxFileName","toFieldType","value","replace","toUpperCase","FIELD_TYPE_ICON_MAP","SHORT_TEXT","small","TextSmall","medium","Text","LONG_TEXT","NUMBER","NumberSmall","Number","BOOLEAN","SquareRatioCheckedSmall","SquareRatioChecked","DATE","DateSmall","Date","DATE_TIME","DateAndTimeSmall","DateAndTime","DATETIME","TIME","TimeSmall","Time","URL","LinkSmall","Link","EMAIL","EmailSmall","Email","IMAGE","ImageSmall","Image","MEDIA_GALLERY","ProGalleriesSmall","ProGalleries","AUDIO","MusicSmall","Music","DOCUMENT","DocumentSmall","Document","MULTI_DOCUMENT","DocDuplicate","RICH_TEXT","RichTextSmall","RichText","RICH_CONTENT","ArticleSmall","Article","REFERENCE","ReferenceSmall","Reference","MULTI_REFERENCE","MultireferenceSmall","Multireference","OBJECT","CodeObjectSmall","CodeObject","ARRAY","TagSmall","Tag","ADDRESS","LocationSmall","Location","INTEGER","DECIMAL","CHECKBOX","FILES","MULTI_SELECT","ICON_STYLE","display","alignItems","getFieldTypeIcon","fieldType","size","icons","Fallback","Database","DatabaseSmall","Icon","Medium","Small","default","createElement","style","__self","__source","fileName","lineNumber","columnNumber","entry"],"sources":["../../../src/utils/fieldTypePrefixIcons.tsx"],"sourcesContent":["import React, { type ComponentType, type ReactNode } from 'react';\nimport {\n Text,\n TextSmall,\n Image,\n ImageSmall,\n SquareRatioChecked,\n SquareRatioCheckedSmall,\n Number,\n NumberSmall,\n Date,\n DateSmall,\n DateAndTime,\n DateAndTimeSmall,\n Time,\n TimeSmall,\n Article,\n ArticleSmall,\n RichText,\n RichTextSmall,\n Reference,\n ReferenceSmall,\n Multireference,\n MultireferenceSmall,\n Link,\n LinkSmall,\n Document,\n DocumentSmall,\n DocDuplicate,\n Music,\n MusicSmall,\n Location,\n LocationSmall,\n Tag,\n TagSmall,\n CodeObject,\n CodeObjectSmall,\n ProGalleries,\n ProGalleriesSmall,\n Email,\n EmailSmall,\n Database,\n DatabaseSmall,\n} from '@wix/wix-ui-icons-common/lazy';\nimport type { PatternsFieldType } from '@wix/bex-core';\n\n/**\n * Canonical field type keys (UPPER_SNAKE_CASE).\n * The map is keyed by these values; incoming camelCase strings\n * are normalised before lookup.\n */\nexport type FieldType =\n | 'SHORT_TEXT'\n | 'LONG_TEXT'\n | 'NUMBER'\n | 'BOOLEAN'\n | 'DATE'\n | 'DATE_TIME'\n | 'DATETIME'\n | 'TIME'\n | 'URL'\n | 'EMAIL'\n | 'IMAGE'\n | 'MEDIA_GALLERY'\n | 'AUDIO'\n | 'DOCUMENT'\n | 'MULTI_DOCUMENT'\n | 'RICH_TEXT'\n | 'RICH_CONTENT'\n | 'REFERENCE'\n | 'MULTI_REFERENCE'\n | 'OBJECT'\n | 'ARRAY'\n | 'ADDRESS'\n | 'COLOR'\n | 'INTEGER'\n | 'DECIMAL'\n | 'CHECKBOX'\n | 'DROPDOWN'\n | 'FILES'\n | 'MULTI_SELECT';\n\n/**\n * Converts any casing (camelCase, snake_case, etc.) to a canonical FieldType.\n * e.g. \"shortText\" → \"SHORT_TEXT\", \"dateTime\" → \"DATE_TIME\".\n * Already UPPER_SNAKE_CASE strings pass through unchanged.\n */\nexport function toFieldType(value: string): FieldType {\n return value.replace(/([a-z])([A-Z])/g, '$1_$2').toUpperCase() as FieldType;\n}\n\ninterface FieldPrefixIconEntry {\n small: ComponentType;\n medium: ComponentType;\n}\n\n/**\n * Maps canonical UPPER_SNAKE_CASE field types to icon components (small + medium).\n */\nconst FIELD_TYPE_ICON_MAP: Partial<\n Record<FieldType | PatternsFieldType, FieldPrefixIconEntry>\n> = {\n SHORT_TEXT: { small: TextSmall, medium: Text },\n LONG_TEXT: { small: TextSmall, medium: Text },\n NUMBER: { small: NumberSmall, medium: Number },\n BOOLEAN: { small: SquareRatioCheckedSmall, medium: SquareRatioChecked },\n DATE: { small: DateSmall, medium: Date },\n DATE_TIME: { small: DateAndTimeSmall, medium: DateAndTime },\n DATETIME: { small: DateAndTimeSmall, medium: DateAndTime },\n TIME: { small: TimeSmall, medium: Time },\n URL: { small: LinkSmall, medium: Link },\n EMAIL: { small: EmailSmall, medium: Email },\n IMAGE: { small: ImageSmall, medium: Image },\n MEDIA_GALLERY: { small: ProGalleriesSmall, medium: ProGalleries },\n AUDIO: { small: MusicSmall, medium: Music },\n DOCUMENT: { small: DocumentSmall, medium: Document },\n MULTI_DOCUMENT: { small: DocumentSmall, medium: DocDuplicate },\n RICH_TEXT: { small: RichTextSmall, medium: RichText },\n RICH_CONTENT: { small: ArticleSmall, medium: Article },\n REFERENCE: { small: ReferenceSmall, medium: Reference },\n MULTI_REFERENCE: { small: MultireferenceSmall, medium: Multireference },\n OBJECT: { small: CodeObjectSmall, medium: CodeObject },\n ARRAY: { small: TagSmall, medium: Tag },\n ADDRESS: { small: LocationSmall, medium: Location },\n INTEGER: { small: NumberSmall, medium: Number },\n DECIMAL: { small: NumberSmall, medium: Number },\n CHECKBOX: { small: SquareRatioCheckedSmall, medium: SquareRatioChecked },\n FILES: { small: DocumentSmall, medium: Document },\n MULTI_SELECT: { small: TagSmall, medium: Tag },\n};\n\n/**\n * Returns an icon ReactNode for the given field type string and size.\n * Accepts both UPPER_SNAKE_CASE and camelCase input.\n * If the field type is not mapped (or undefined), returns an info fallback icon.\n *\n * @param fieldType - The field type string\n * @param size - 'small' (default, for column headers / customize panel) or 'medium' (for filters)\n */\nconst ICON_STYLE: React.CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n};\n\nexport function getFieldTypeIcon({\n fieldType,\n size = 'small',\n icons,\n}: {\n fieldType?: FieldType | PatternsFieldType;\n size?: 'small' | 'medium';\n /** Explicit icons (e.g. a custom field type's `display.icons`). Present ⇒\n * used instead of the type map. */\n icons?: { Small: ComponentType; Medium: ComponentType };\n}): ReactNode {\n const Fallback = size === 'medium' ? Database : DatabaseSmall;\n\n if (icons) {\n const Icon = size === 'medium' ? icons.Medium : icons.Small;\n return (\n <span style={ICON_STYLE}>\n <Icon />\n </span>\n );\n }\n\n if (!fieldType) {\n return (\n <span style={ICON_STYLE}>\n <Fallback />\n </span>\n );\n }\n\n const entry = FIELD_TYPE_ICON_MAP[fieldType];\n\n if (!entry) {\n return (\n <span style={ICON_STYLE}>\n <Fallback />\n </span>\n );\n }\n\n const Icon = size === 'medium' ? entry.medium : entry.small;\n return (\n <span style={ICON_STYLE}>\n <Icon />\n </span>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,5 +2,5 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.version = void 0;
5
- const version = exports.version = 'patterns@1.440.0';
5
+ const version = exports.version = 'patterns@1.442.0';
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["version","exports"],"sources":["../../src/version.ts"],"sourcesContent":["export const version = 'patterns@1.440.0';\n"],"mappings":";;;;AAAO,MAAMA,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["version","exports"],"sources":["../../src/version.ts"],"sourcesContent":["export const version = 'patterns@1.442.0';\n"],"mappings":";;;;AAAO,MAAMA,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,kBAAkB","ignoreList":[]}
@@ -14,6 +14,8 @@ A **custom field type** is a consumer-defined field that plugs into every schema
14
14
  - `value` — value semantics (`defaultValue`, `isEmpty`, `validate`) used by every surface.
15
15
  - `capabilities` — e.g. `sortable`.
16
16
  - `actions` — extra items on the field's "more actions" menus.
17
+ - `form` — the field's input in the entity-page form.
18
+ - `fieldModal` — opts the type into the add/edit-field modal's type picker, so users can create fields of this type.
17
19
  - `display` — the type's label and icons in field menus.
18
20
 
19
21
  A field uses the type via `type: 'CUSTOM'` and `customType` pointing at the definition's key. `table` and `editableTable` are independent — neither falls back to the other, so implement only the surfaces you need.
@@ -410,6 +412,359 @@ function CustomFieldTypeSpreadsheet() {
410
412
  }
411
413
  ```
412
414
 
415
+ ### Add-field modal
416
+
417
+ What you get: a custom type users can create fields of. The `fieldModal` slot opts the Progress type into the add-field modal — click the "+" header button, pick "Progress" in the type picker (it shows the definition's label, icons, subtitle, and group), name it, and confirm. The new field arrives at the source's `fieldActions.addField` as `{ type: 'CUSTOM', customType: 'docs.progress' }` and its column appears immediately, rendered by the type's `editableTable` slot. Requires `schemaPermissions.createField` and `fieldActions.addField` on the source. Note the picker offers only what the source declares (`fieldModal.types`) plus creatable custom types, and persistence belongs to the source's `FieldActions` — this demo stores fields in memory, so they reset on refresh; a source backed by a real service persists them (see the API tab).
418
+
419
+ ```tsx
420
+ import React from 'react';
421
+ import { CollectionPage } from '@wix/patterns/page';
422
+ import { EditableTable, defineFieldType } from '@wix/patterns';
423
+ import type { EditableColumn, Field } from '@wix/patterns';
424
+ import {
425
+ useSchemaSource,
426
+ useEditableTableCollection,
427
+ } from '@wix/patterns/schema';
428
+ import type {
429
+ CollectionBackend,
430
+ FieldActions,
431
+ LoadedSchema,
432
+ Schema,
433
+ } from '@wix/patterns/schema';
434
+
435
+ type Task = { id: string; name: string; progress?: number };
436
+
437
+ function CustomFieldTypeFieldModal() {
438
+ // Plain object store (the live-example scope shadows the global `Map`).
439
+ const [store] = React.useState<{ tasks: Task[]; nextId: number }>(() => ({
440
+ nextId: 4,
441
+ tasks: [
442
+ { id: '1', name: 'Design homepage', progress: 80 },
443
+ { id: '2', name: 'Set up payments', progress: 100 },
444
+ { id: '3', name: 'Write product descriptions', progress: 25 },
445
+ ],
446
+ }));
447
+
448
+ const clamp = (value: number) =>
449
+ Math.max(0, Math.min(100, Math.round(value) || 0));
450
+
451
+ const ProgressCellView = ({ value }: { value: number }) => (
452
+ <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>
453
+ <div
454
+ style={{
455
+ width: '80px',
456
+ height: '6px',
457
+ borderRadius: '3px',
458
+ background: '#DFE5EB',
459
+ overflow: 'hidden',
460
+ }}
461
+ >
462
+ <div
463
+ style={{
464
+ width: `${clamp(value ?? 0)}%`,
465
+ height: '100%',
466
+ background: '#3899EC',
467
+ }}
468
+ />
469
+ </div>
470
+ <span>{clamp(value ?? 0)}%</span>
471
+ </div>
472
+ );
473
+
474
+ const progressFieldType = defineFieldType<number>({
475
+ type: 'docs.progress',
476
+ display: {
477
+ label: 'Progress',
478
+ icons: { Small: () => <span>%</span>, Medium: () => <span>%</span> },
479
+ },
480
+ filter: { filterable: false },
481
+ value: { defaultValue: 0, isEmpty: (v) => v == null },
482
+ capabilities: { sortable: true },
483
+ editableTable: {
484
+ ViewComponent: ProgressCellView,
485
+ serialize: (v) => String(clamp(v ?? 0)),
486
+ deserialize: (raw) => clamp(parseFloat(raw)),
487
+ },
488
+ // Opts the type into the add-field modal: it shows in the type picker with
489
+ // the definition's label and icons, and a created field arrives at the
490
+ // source's addField as { type: 'CUSTOM', customType: 'docs.progress' }.
491
+ fieldModal: {
492
+ creatable: true,
493
+ namePlaceholder: 'e.g. Progress',
494
+ subtitle: 'A 0–100% progress bar',
495
+ group: 'Custom types',
496
+ },
497
+ });
498
+
499
+ const [schema] = React.useState<Schema>(() => ({
500
+ id: 'docs-custom-field-type-modal',
501
+ fields: {},
502
+ displayField: 'name',
503
+ idField: 'id',
504
+ itemPermissions: { createItem: true, updateItem: true, deleteItem: true },
505
+ // Enables the add-field flow — the editable table shows the "+" header
506
+ // button, which opens the add-field modal.
507
+ schemaPermissions: {
508
+ createField: true,
509
+ updateField: true,
510
+ deleteField: true,
511
+ },
512
+ }));
513
+
514
+ // In-memory field CRUD: each mutation returns the updated fields map, which
515
+ // the source merges into the loaded schema so the columns update in place.
516
+ const fieldActions: FieldActions = {
517
+ addField: async (field) => {
518
+ schema.fields = { ...schema.fields, [field.id]: field };
519
+ return schema.fields;
520
+ },
521
+ editField: async (fieldId, updates) => {
522
+ const existing = schema.fields[fieldId];
523
+ if (existing) {
524
+ schema.fields = {
525
+ ...schema.fields,
526
+ [fieldId]: { ...existing, ...updates } as Field,
527
+ };
528
+ }
529
+ return schema.fields;
530
+ },
531
+ deleteField: async (fieldId) => {
532
+ const rest = { ...schema.fields };
533
+ delete rest[fieldId];
534
+ schema.fields = rest;
535
+ return schema.fields;
536
+ },
537
+ };
538
+
539
+ const backend: CollectionBackend<Task> = {
540
+ find: async ({ search = '', sort = [] }) => {
541
+ const found = store.tasks.filter((task) =>
542
+ task.name.toLowerCase().includes(search.toLowerCase()),
543
+ );
544
+ if (sort.length) {
545
+ const [{ fieldName, order }] = sort;
546
+ found.sort((a, b) => {
547
+ const left = a[fieldName as keyof Task] ?? 0;
548
+ const right = b[fieldName as keyof Task] ?? 0;
549
+ const diff = left < right ? -1 : left > right ? 1 : 0;
550
+ return order === 'asc' ? diff : -diff;
551
+ });
552
+ }
553
+ return { items: found, total: found.length };
554
+ },
555
+ create: async (entity) => {
556
+ const created = { id: `task-${store.nextId++}`, name: '', ...entity };
557
+ store.tasks = [...store.tasks, created];
558
+ return created;
559
+ },
560
+ update: async (entity) => {
561
+ store.tasks = store.tasks.map((task) =>
562
+ task.id === entity.id ? entity : task,
563
+ );
564
+ return entity;
565
+ },
566
+ bulkDelete: async (entityIds) => {
567
+ store.tasks = store.tasks.filter((task) => !entityIds.includes(task.id));
568
+ },
569
+ };
570
+
571
+ const loadSchema = async (): Promise<LoadedSchema<Task>> => ({
572
+ schema,
573
+ backend,
574
+ fieldActions,
575
+ });
576
+
577
+ const columns: EditableColumn<Task>[] = [
578
+ {
579
+ id: 'name',
580
+ title: 'Name',
581
+ cellType: 'text',
582
+ getValue: (task) => task.name,
583
+ setValue: (task, value) => ({ ...task, name: value }),
584
+ width: 220,
585
+ },
586
+ ];
587
+
588
+ const source = useSchemaSource<Task>({
589
+ collectionId: 'docs-custom-field-type-modal',
590
+ loadSchema,
591
+ fieldTypes: [progressFieldType],
592
+ // The modal renders only what the source declares: these standard picker
593
+ // options plus every creatable custom type (appended automatically).
594
+ fieldModal: {
595
+ text: {
596
+ addTitle: 'Add a field',
597
+ editTitle: 'Edit field',
598
+ },
599
+ types: [
600
+ {
601
+ patternsType: 'SHORT_TEXT',
602
+ label: 'Text',
603
+ subtitle: 'Titles, paragraph',
604
+ group: 'Essentials',
605
+ },
606
+ {
607
+ patternsType: 'NUMBER',
608
+ label: 'Number',
609
+ subtitle: 'ID, rating, order number',
610
+ group: 'Essentials',
611
+ },
612
+ ],
613
+ },
614
+ });
615
+ const state = useEditableTableCollection<Task>(source);
616
+
617
+ return (
618
+ <CollectionPage height="400px">
619
+ <CollectionPage.Header title={{ text: 'Tasks' }} />
620
+ <CollectionPage.Content>
621
+ <EditableTable state={state} columns={columns} />
622
+ </CollectionPage.Content>
623
+ </CollectionPage>
624
+ );
625
+ }
626
+ ```
627
+
628
+ ### Entity-page form
629
+
630
+ What you get: the custom type in the entity-page form. The `form` slot's component renders only the Progress input — it receives `value`/`onChange` props, and the entity page owns the form wiring (registration on the form, validation from the definition's `value.validate`) and the field UI (label, required marker, error message). Without a `form` slot, an entity page rendering the field throws in development (production skips it). Try it: change the progress, save from the header, and the value round-trips through the source's backend.
631
+
632
+ ```tsx
633
+ import React from 'react';
634
+ import { defineFieldType } from '@wix/patterns';
635
+ import type { Field, FormFieldComponentProps } from '@wix/patterns';
636
+ import { useForm } from '@wix/patterns/form';
637
+ import {
638
+ EntityPage,
639
+ EntityPageFieldsCard,
640
+ useEntityPage,
641
+ useSchemaSource,
642
+ } from '@wix/patterns/schema';
643
+ import type {
644
+ CollectionBackend,
645
+ LoadedSchema,
646
+ Schema,
647
+ } from '@wix/patterns/schema';
648
+ import { Input } from '@wix/design-system';
649
+
650
+ type Task = { id: string; name: string; progress?: number };
651
+
652
+ function CustomFieldTypeEntityPage() {
653
+ // Plain object store (the live-example scope shadows the global `Map`).
654
+ const [store] = React.useState<{ task: Task }>(() => ({
655
+ task: { id: '1', name: 'Design homepage', progress: 80 },
656
+ }));
657
+
658
+ const clamp = (value: number) =>
659
+ Math.max(0, Math.min(100, Math.round(value) || 0));
660
+
661
+ // The entity-page form input. The entity page owns the form wiring and the
662
+ // field UI (label, error message from the definition's value.validate) —
663
+ // this renders only the input.
664
+ const ProgressFormField = ({
665
+ value,
666
+ onChange,
667
+ onBlur,
668
+ }: FormFieldComponentProps<number>) => (
669
+ <Input
670
+ type="number"
671
+ min={0}
672
+ max={100}
673
+ suffix={<Input.Affix>%</Input.Affix>}
674
+ value={String(value ?? 0)}
675
+ // parseFloat, not Number — the example scope shadows `Number`.
676
+ onChange={(event) => onChange(clamp(parseFloat(event.target.value)))}
677
+ onBlur={onBlur}
678
+ />
679
+ );
680
+
681
+ const progressFieldType = defineFieldType<number>({
682
+ type: 'docs.progress',
683
+ display: {
684
+ label: 'Progress',
685
+ icons: { Small: () => <span>%</span>, Medium: () => <span>%</span> },
686
+ },
687
+ filter: { filterable: false },
688
+ value: {
689
+ defaultValue: 0,
690
+ isEmpty: (v) => v == null,
691
+ // Runs on every surface that validates the field — the entity-page
692
+ // form wires it into its own validation.
693
+ validate: (v) =>
694
+ v != null && (v < 0 || v > 100)
695
+ ? 'Progress must be between 0 and 100'
696
+ : null,
697
+ },
698
+ // Required once the field renders on an entity page — development throws
699
+ // without it; production skips the field.
700
+ form: { Component: ProgressFormField },
701
+ });
702
+
703
+ const progressField: Field = {
704
+ id: 'progress',
705
+ displayName: 'Progress',
706
+ type: 'CUSTOM',
707
+ customType: 'docs.progress',
708
+ };
709
+
710
+ const schema: Schema = {
711
+ id: 'docs-custom-field-type-entity-page',
712
+ fields: {
713
+ name: { id: 'name', displayName: 'Name', type: 'SHORT_TEXT' } as Field,
714
+ progress: progressField,
715
+ },
716
+ displayField: 'name',
717
+ idField: 'id',
718
+ };
719
+
720
+ // The entity page reads and writes the entity through the source's backend:
721
+ // `fetch` derives from `get`, saving from `update`.
722
+ const backend: CollectionBackend<Task> = {
723
+ find: async () => ({ items: [store.task], total: 1 }),
724
+ get: async () => store.task,
725
+ update: async (entity) => {
726
+ store.task = entity;
727
+ return entity;
728
+ },
729
+ };
730
+
731
+ const loadSchema = async (): Promise<LoadedSchema<Task>> => ({
732
+ schema,
733
+ backend,
734
+ });
735
+
736
+ const source = useSchemaSource<Task>({
737
+ collectionId: 'docs-custom-field-type-entity-page',
738
+ loadSchema,
739
+ fieldTypes: [progressFieldType],
740
+ });
741
+
742
+ const form = useForm();
743
+ const state = useEntityPage<Task>(source, {
744
+ parentPageId: '',
745
+ form,
746
+ entityId: '1',
747
+ saveSuccessToast: 'Saved',
748
+ saveErrorToast: () => 'Failed to save',
749
+ });
750
+
751
+ return (
752
+ <EntityPage state={state} dataHook="docs-custom-field-type-entity-page">
753
+ <EntityPage.Header title={{ text: store.task.name }} />
754
+ <EntityPage.Content>
755
+ <EntityPage.MainContent>
756
+ <EntityPageFieldsCard
757
+ title="Fields"
758
+ subtitle="The Progress field renders through its `form` slot"
759
+ minHeight="204px"
760
+ />
761
+ </EntityPage.MainContent>
762
+ </EntityPage.Content>
763
+ </EntityPage>
764
+ );
765
+ }
766
+ ```
767
+
413
768
  ## API
414
769
 
415
770
  ### Overview
@@ -472,6 +827,56 @@ Items appear on every field-actions menu (editable table column header, manage-f
472
827
 
473
828
  - `items?: Array` — `disabledTooltip` returning a string disables the item and shows the tooltip.
474
829
 
830
+ #### `form` — the entity-page form input
831
+
832
+ Required once a field of this type renders on an entity page — development throws a clear error without it; production skips the field.
833
+
834
+ - `Component` — receives `FormFieldComponentProps` (`field`, `value`, `onChange(value)`, `onBlur`, `dataHook?`) and renders only the input. The entity page owns the form wiring and the field UI: it registers the field on the form (seeding the value from the entity, falling back to `value.defaultValue`), runs `value.validate` on it, and wraps the component in a WDS `FormField` with the label, required marker, and error message.
835
+
836
+ #### `fieldModal` — the add/edit-field modal (opt-in)
837
+
838
+ Absent ⇒ the modal never offers this type. With it, the type shows in the add-field type picker (using `display.label` and `display.icons`), and a created field arrives at the source's `FieldActions.addField` as `{ type: 'CUSTOM', customType: }`. Requires the source to support field creation (`schemaPermissions.createField` + `fieldActions.addField`).
839
+
840
+ - `creatable: boolean` — true ⇒ offered in the picker.
841
+ - `namePlaceholder?: string` — placeholder for the name input; absent ⇒ the modal's generic placeholder.
842
+ - `subtitle?: string` — one-line description under the type in the picker.
843
+ - `group?: string` — group heading the type is listed under.
844
+ - `supportsPii?: boolean` — absent ⇒ follows the source-wide setting.
845
+ - `piiWarning?: () => FieldPiiWarning | undefined` — warning shown while the PII toggle is on.
846
+ - `settingsSection?: FieldSettingsSection` — the type's own collapsible settings section (`Component`, `hasError`, `getValues`, `setValues`); its values reach the source's `addField`/`editField` as `settings`, untouched.
847
+
848
+ ##### What the modal offers, and who persists it
849
+
850
+ The modal renders only what the source declares — there is no built-in list of standard types, because offering a type is a promise the source's backend can store it. A source adapter declares its creatable set once (`fieldModal.types` on the source, e.g. `useCmsSchemaSource` declares the types `@wix/data` can create); creatable custom types are appended to that set automatically.
851
+
852
+ Saving goes through the source's `FieldActions` — **persistence is the source's responsibility, Cairo only routes the modal's confirm**:
853
+
854
+ ```ts
855
+ const fieldActions: FieldActions = {
856
+ // Called on confirm with the new field — a custom type arrives as
857
+ // { type: 'CUSTOM', customType } — plus the settings section's values.
858
+ // Persist it in your service, then return the collection's updated fields
859
+ // map; Cairo merges it into the loaded schema so the columns update
860
+ // without a reload.
861
+ addField: async (field, settings) => {
862
+ await myService.createField(collectionId, field, settings);
863
+ return (await myService.getSchema(collectionId)).fields;
864
+ },
865
+ editField: async (fieldId, updates, settings) => {
866
+ await myService.updateField(collectionId, fieldId, updates, settings);
867
+ return (await myService.getSchema(collectionId)).fields;
868
+ },
869
+ deleteField: async (fieldId) => {
870
+ await myService.deleteField(collectionId, fieldId);
871
+ return (await myService.getSchema(collectionId)).fields;
872
+ },
873
+ };
874
+
875
+ const loadSchema = async () => ({ schema, backend, fieldActions });
876
+ ```
877
+
878
+ Your backend must be able to store and serve fields of the custom type — that verification is the consumer's responsibility. The live examples here keep fields in memory, so their changes reset on refresh; a source backed by a real service (e.g. the CMS adapter, which calls the collection APIs) persists them.
879
+
475
880
 
476
881
  ### Props
477
882
 
@@ -481,5 +886,7 @@ Items appear on every field-actions menu (editable table column header, manage-f
481
886
  | `filter` | `FilterTypeConfig \| { filterable: false; }` | Yes | - | Filter behavior, or an explicit opt-out — never silently absent. |
482
887
  | `table` | `TableCellConfig<V>` | No | - | Absent ⇒ the field renders with the default cell in the read-only table. |
483
888
  | `editableTable` | `EditableCellConfig<V>` | No | - | Absent ⇒ the field renders as a read-only cell in editable surfaces. |
889
+ | `form` | `FormTypeConfig<V>` | No | - | Required once a field of this type renders on an entity page: development throws without it; production skips the field. |
484
890
  | `actions` | `FieldActionsConfig` | No | - | Extra items for the field's "more actions" menu. |
891
+ | `fieldModal` | `FieldModalConfig` | No | - | Absent ⇒ the add/edit field modal never offers this type. Fields of the type created elsewhere still open in the modal for name/PII edits. |
485
892
 
@@ -65,9 +65,9 @@ import { MultiAutoInlineCheckboxFilter } from '@wix/patterns';
65
65
  | `align` | `"right" \| "left" \| "center" \| "space-between"` | No | - | Defines how the children are aligned according to the X axis |
66
66
  | `page` | `Page` | No | - | This feature is well established and works across many devices and browser versions. It’s been available across browsers since February 2023. **Syntax**: `auto \| <custom-ident>` **Initial value**: `auto` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :-: \| \| **85** \| **110** \| **1** \| **85** \| No \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/page |
67
67
  | `inline` | `boolean` | No | - | Defines if the box behaves as an inline element |
68
+ | `minHeight` | `any` | No | - | Sets the minimum height of the box in pixels This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `auto \| <length-percentage [0,∞]> \| min-content \| max-content \| fit-content \| fit-content(<length-percentage [0,∞]>) \| <calc-size()> \| <anchor-size()>` **Initial value**: `auto` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :-----: \| :----: \| :---: \| \| **1** \| **3** \| **1.3** \| **12** \| **7** \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-height |
68
69
  | `width` | `any` | No | - | Sets the width of the box in pixels This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `auto \| <length-percentage [0,∞]> \| min-content \| max-content \| fit-content \| fit-content(<length-percentage [0,∞]>) \| <calc-size()> \| <anchor-size()>` **Initial value**: `auto` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :---: \| \| **1** \| **1** \| **1** \| **12** \| **4** \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/width |
69
70
  | `zIndex` | `ZIndex` | No | - | This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `auto \| <integer>` **Initial value**: `auto` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :---: \| \| **1** \| **1** \| **1** \| **12** \| **4** \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/z-index |
70
- | `minHeight` | `any` | No | - | Sets the minimum height of the box in pixels This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `auto \| <length-percentage [0,∞]> \| min-content \| max-content \| fit-content \| fit-content(<length-percentage [0,∞]>) \| <calc-size()> \| <anchor-size()>` **Initial value**: `auto` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :-----: \| :----: \| :---: \| \| **1** \| **3** \| **1.3** \| **12** \| **7** \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-height |
71
71
  | `grid` | `Grid` | No | - | This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. **Syntax**: `<'grid-template'> \| <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? \| [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :------: \| :----: \| :-: \| \| **57** \| **52** \| **10.1** \| **16** \| No \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid |
72
72
  | `fill` | `Fill` | No | - | This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. **Syntax**: `<paint>` **Initial value**: `black` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :-----: \| :-: \| \| **1** \| **3** \| **4** \| **≤15** \| No \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/fill |
73
73
  | `container` | `Container` | No | - | This feature is well established and works across many devices and browser versions. It’s been available across browsers since February 2023. **Syntax**: `<'container-name'> [ / <'container-type'> ]?` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :-----: \| :-----: \| :----: \| :-----: \| :-: \| \| **105** \| **110** \| **16** \| **105** \| No \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/container |
@@ -86,9 +86,9 @@ function BasicMultiInlineCheckboxFilter() {
86
86
  | `align` | `"right" \| "left" \| "center" \| "space-between"` | No | - | Defines how the children are aligned according to the X axis |
87
87
  | `page` | `Page` | No | - | This feature is well established and works across many devices and browser versions. It’s been available across browsers since February 2023. **Syntax**: `auto \| <custom-ident>` **Initial value**: `auto` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :-: \| \| **85** \| **110** \| **1** \| **85** \| No \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/page |
88
88
  | `inline` | `boolean` | No | - | Defines if the box behaves as an inline element |
89
+ | `minHeight` | `any` | No | - | Sets the minimum height of the box in pixels This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `auto \| <length-percentage [0,∞]> \| min-content \| max-content \| fit-content \| fit-content(<length-percentage [0,∞]>) \| <calc-size()> \| <anchor-size()>` **Initial value**: `auto` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :-----: \| :----: \| :---: \| \| **1** \| **3** \| **1.3** \| **12** \| **7** \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-height |
89
90
  | `width` | `any` | No | - | Sets the width of the box in pixels This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `auto \| <length-percentage [0,∞]> \| min-content \| max-content \| fit-content \| fit-content(<length-percentage [0,∞]>) \| <calc-size()> \| <anchor-size()>` **Initial value**: `auto` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :---: \| \| **1** \| **1** \| **1** \| **12** \| **4** \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/width |
90
91
  | `zIndex` | `ZIndex` | No | - | This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `auto \| <integer>` **Initial value**: `auto` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :---: \| \| **1** \| **1** \| **1** \| **12** \| **4** \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/z-index |
91
- | `minHeight` | `any` | No | - | Sets the minimum height of the box in pixels This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `auto \| <length-percentage [0,∞]> \| min-content \| max-content \| fit-content \| fit-content(<length-percentage [0,∞]>) \| <calc-size()> \| <anchor-size()>` **Initial value**: `auto` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :-----: \| :----: \| :---: \| \| **1** \| **3** \| **1.3** \| **12** \| **7** \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/min-height |
92
92
  | `grid` | `Grid` | No | - | This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. **Syntax**: `<'grid-template'> \| <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? \| [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :------: \| :----: \| :-: \| \| **57** \| **52** \| **10.1** \| **16** \| No \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/grid |
93
93
  | `fill` | `Fill` | No | - | This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017. **Syntax**: `<paint>` **Initial value**: `black` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :-----: \| :-: \| \| **1** \| **3** \| **4** \| **≤15** \| No \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/fill |
94
94
  | `container` | `Container` | No | - | This feature is well established and works across many devices and browser versions. It’s been available across browsers since February 2023. **Syntax**: `<'container-name'> [ / <'container-type'> ]?` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :-----: \| :-----: \| :----: \| :-----: \| :-: \| \| **105** \| **110** \| **16** \| **105** \| No \| @see https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/container |
@@ -37,4 +37,5 @@ A column of a [`Table`](./?path=/story/base-components-collections-table-table--
37
37
  | `render` | `(row: any, rowNum: number) => ReactNode` | Yes | - | A callback that is called for each row in the data to display the value of this row for the specified column. |
38
38
  | `mobile` | `ColumnMobileConfig` | No | - | Mobile column configuration. Determines how this column is displayed on mobile devices. - column: 'first' - Stacks vertically with other 'first' columns - column: 'second' - Displays as standalone second column - undefined - Hidden on mobile |
39
39
  | `fieldType` | `"SHORT_TEXT" \| "LONG_TEXT" \| "NUMBER" \| "BOOLEAN" \| "DATE" \| "DATE_TIME" \| "DATETIME" \| "TIME" \| "URL" \| "EMAIL" \| "IMAGE" \| "MEDIA_GALLERY" \| "AUDIO" \| "DOCUMENT" \| "MULTI_DOCUMENT" \| "RICH_TEXT" \| "RICH_CONTENT" \| "REFERENCE" \| "MULTI_REFERENCE" \| "OBJECT" \| "ARRAY" \| "ADDRESS" \| "COLOR" \| "INTEGER" \| "DECIMAL" \| "CHECKBOX" \| "DROPDOWN" \| "FILES" \| "MULTI_SELECT"` | No | - | The field type string used to resolve a prefix icon for the column. Cairo maps this to the appropriate icon internally. |
40
+ | `fieldTypeIcons` | `{ Small: ComponentType<{}>; Medium: ComponentType<{}>; }` | No | - | Explicit prefix icons for the column (e.g. a custom field type's `display.icons`). When present, used instead of the `fieldType` mapping. |
40
41