@wix/patterns 1.415.0 → 1.417.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 (443) hide show
  1. package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
  2. package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
  3. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
  4. package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
  5. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
  6. package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  7. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
  8. package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js.map +1 -1
  9. package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +3 -3
  10. package/dist/cjs/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js.map +1 -1
  11. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  12. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  13. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  14. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  15. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
  16. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  17. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  18. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  19. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  20. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.st.css.js.map +1 -1
  21. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  22. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  23. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  24. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  25. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  26. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  27. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  28. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  29. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  30. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  31. package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
  32. package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
  33. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  34. package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
  35. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  36. package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
  37. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
  38. package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
  39. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
  40. package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  41. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
  42. package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
  43. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  44. package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
  45. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
  46. package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
  47. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  48. package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  49. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
  50. package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  51. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
  52. package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
  53. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
  54. package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
  55. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  56. package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
  57. package/dist/cjs/components/EditableTable/cellTypes/index.js +3 -1
  58. package/dist/cjs/components/EditableTable/cellTypes/index.js.map +1 -1
  59. package/dist/cjs/components/EditableTable/cellTypes/multiReference/Edit.js +232 -0
  60. package/dist/cjs/components/EditableTable/cellTypes/multiReference/Edit.js.map +1 -0
  61. package/dist/cjs/components/EditableTable/cellTypes/multiReference/Edit.uni.driver.js +52 -0
  62. package/dist/cjs/components/EditableTable/cellTypes/multiReference/Edit.uni.driver.js.map +1 -0
  63. package/dist/cjs/components/EditableTable/cellTypes/multiReference/View.js +44 -0
  64. package/dist/cjs/components/EditableTable/cellTypes/multiReference/View.js.map +1 -0
  65. package/dist/cjs/components/EditableTable/cellTypes/multiReference/View.uni.driver.js +18 -0
  66. package/dist/cjs/components/EditableTable/cellTypes/multiReference/View.uni.driver.js.map +1 -0
  67. package/dist/cjs/components/EditableTable/cellTypes/multiReference/index.js +38 -0
  68. package/dist/cjs/components/EditableTable/cellTypes/multiReference/index.js.map +1 -0
  69. package/dist/cjs/components/EditableTable/cellTypes/multiReference/types.js +4 -0
  70. package/dist/cjs/components/EditableTable/cellTypes/multiReference/types.js.map +1 -0
  71. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
  72. package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
  73. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
  74. package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  75. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
  76. package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
  77. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  78. package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
  79. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
  80. package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
  81. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
  82. package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
  83. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  84. package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
  85. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
  86. package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
  87. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
  88. package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
  89. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
  90. package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  91. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  92. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  93. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  94. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  95. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  96. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  97. package/dist/cjs/components/ImportButton/CAIRO-4118-tasks.md +53 -0
  98. package/dist/cjs/components/ImportButton/ImportModal.uni.driver.js +0 -4
  99. package/dist/cjs/components/ImportButton/ImportModal.uni.driver.js.map +1 -1
  100. package/dist/cjs/components/ImportButton/ImportStepConfiguration.js +1 -1
  101. package/dist/cjs/components/ImportButton/ImportStepConfiguration.js.map +1 -1
  102. package/dist/cjs/components/ImportButton/ImportStepProgress.js +15 -29
  103. package/dist/cjs/components/ImportButton/ImportStepProgress.js.map +1 -1
  104. package/dist/cjs/components/ImportButton/ImportStepUpload.js +1 -12
  105. package/dist/cjs/components/ImportButton/ImportStepUpload.js.map +1 -1
  106. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  107. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  108. package/dist/cjs/components/ImportButton/getImportModalStepProps.js +6 -4
  109. package/dist/cjs/components/ImportButton/getImportModalStepProps.js.map +1 -1
  110. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  111. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  112. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  113. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  114. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  115. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  116. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  117. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  118. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  119. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  120. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  121. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  122. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  123. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  124. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  125. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  126. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  127. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  128. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  129. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  130. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  131. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  132. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  133. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  134. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  135. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  136. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js +5 -5
  137. package/dist/cjs/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  138. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  139. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  140. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  141. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  142. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  143. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  144. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  145. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  146. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  147. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  148. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  149. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  150. package/dist/cjs/components/common.st.css.js +4 -4
  151. package/dist/cjs/components/common.st.css.js.map +1 -1
  152. package/dist/cjs/index.js.map +1 -1
  153. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  154. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  155. package/dist/cjs/state/EditableTable/types.js.map +1 -1
  156. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  157. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  158. package/dist/cjs/styles.global.css +2 -2
  159. package/dist/cjs/types/SchemaConfig.js.map +1 -1
  160. package/dist/cjs/version.js +1 -1
  161. package/dist/cjs/version.js.map +1 -1
  162. package/dist/docs/index.json +25 -25
  163. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  164. package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
  165. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
  166. package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
  167. package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
  168. package/dist/esm/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js +2 -2
  169. package/dist/esm/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.js.map +1 -1
  170. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  171. package/dist/esm/components/Collapse/Collapse.st.css.js.map +1 -1
  172. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  173. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  174. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  175. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  176. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
  177. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  178. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  179. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  180. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  181. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  182. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  183. package/dist/esm/components/DragHandle/DragHandle.st.css.js.map +1 -1
  184. package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
  185. package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
  186. package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
  187. package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
  188. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
  189. package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
  190. package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
  191. package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
  192. package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
  193. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
  194. package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
  195. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
  196. package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
  197. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
  198. package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
  199. package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
  200. package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
  201. package/dist/esm/components/EditableTable/cellTypes/index.js +3 -1
  202. package/dist/esm/components/EditableTable/cellTypes/index.js.map +1 -1
  203. package/dist/esm/components/EditableTable/cellTypes/multiReference/Edit.js +159 -0
  204. package/dist/esm/components/EditableTable/cellTypes/multiReference/Edit.js.map +1 -0
  205. package/dist/esm/components/EditableTable/cellTypes/multiReference/Edit.uni.driver.js +43 -0
  206. package/dist/esm/components/EditableTable/cellTypes/multiReference/Edit.uni.driver.js.map +1 -0
  207. package/dist/esm/components/EditableTable/cellTypes/multiReference/View.js +19 -0
  208. package/dist/esm/components/EditableTable/cellTypes/multiReference/View.js.map +1 -0
  209. package/dist/esm/components/EditableTable/cellTypes/multiReference/View.uni.driver.js +14 -0
  210. package/dist/esm/components/EditableTable/cellTypes/multiReference/View.uni.driver.js.map +1 -0
  211. package/dist/esm/components/EditableTable/cellTypes/multiReference/index.js +34 -0
  212. package/dist/esm/components/EditableTable/cellTypes/multiReference/index.js.map +1 -0
  213. package/dist/esm/components/EditableTable/cellTypes/multiReference/types.js +2 -0
  214. package/dist/esm/components/EditableTable/cellTypes/multiReference/types.js.map +1 -0
  215. package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
  216. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
  217. package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
  218. package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +2 -2
  219. package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
  220. package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
  221. package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
  222. package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
  223. package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
  224. package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
  225. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
  226. package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
  227. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  228. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  229. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  230. package/dist/esm/components/Fade/Fade.st.css.js.map +1 -1
  231. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  232. package/dist/esm/components/ImportButton/CAIRO-4118-tasks.md +53 -0
  233. package/dist/esm/components/ImportButton/ImportModal.uni.driver.js +0 -4
  234. package/dist/esm/components/ImportButton/ImportModal.uni.driver.js.map +1 -1
  235. package/dist/esm/components/ImportButton/ImportStepConfiguration.js +1 -1
  236. package/dist/esm/components/ImportButton/ImportStepConfiguration.js.map +1 -1
  237. package/dist/esm/components/ImportButton/ImportStepProgress.js +8 -13
  238. package/dist/esm/components/ImportButton/ImportStepProgress.js.map +1 -1
  239. package/dist/esm/components/ImportButton/ImportStepUpload.js +3 -4
  240. package/dist/esm/components/ImportButton/ImportStepUpload.js.map +1 -1
  241. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  242. package/dist/esm/components/ImportButton/getImportModalStepProps.js +9 -3
  243. package/dist/esm/components/ImportButton/getImportModalStepProps.js.map +1 -1
  244. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  245. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  246. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  247. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  248. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  249. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  250. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  251. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  252. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  253. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  254. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  255. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  256. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  257. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  258. package/dist/esm/components/PickerContent/PickerContent.st.css.js.map +1 -1
  259. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  260. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  261. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  262. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
  263. package/dist/esm/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
  264. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  265. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  266. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  267. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  268. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  269. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  270. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  271. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  272. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  273. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  274. package/dist/esm/components/common.st.css.js +2 -2
  275. package/dist/esm/components/common.st.css.js.map +1 -1
  276. package/dist/esm/index.js.map +1 -1
  277. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  278. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  279. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  280. package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  281. package/dist/esm/styles.global.css +2 -2
  282. package/dist/esm/version.js +1 -1
  283. package/dist/types/components/CmsFieldManagement/CmsFieldModal.st.css.d.ts.map +1 -1
  284. package/dist/types/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.d.ts.map +1 -1
  285. package/dist/types/components/Collapse/Collapse.st.css.d.ts.map +1 -1
  286. package/dist/types/components/CollectionPageNew/CollectionPage.st.css.d.ts.map +1 -1
  287. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +0 -8
  288. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts.map +1 -1
  289. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
  290. package/dist/types/components/DragHandle/DragHandle.st.css.d.ts.map +1 -1
  291. package/dist/types/components/EditableTable/cellTypes/boolean/Edit.st.css.d.ts.map +1 -1
  292. package/dist/types/components/EditableTable/cellTypes/date/View.st.css.d.ts.map +1 -1
  293. package/dist/types/components/EditableTable/cellTypes/datetime/Edit.st.css.d.ts.map +1 -1
  294. package/dist/types/components/EditableTable/cellTypes/datetime/View.st.css.d.ts.map +1 -1
  295. package/dist/types/components/EditableTable/cellTypes/index.d.ts +2 -1
  296. package/dist/types/components/EditableTable/cellTypes/index.d.ts.map +1 -1
  297. package/dist/types/components/EditableTable/cellTypes/multiReference/Edit.d.ts +5 -0
  298. package/dist/types/components/EditableTable/cellTypes/multiReference/Edit.d.ts.map +1 -0
  299. package/dist/types/components/EditableTable/cellTypes/multiReference/Edit.uni.driver.d.ts +24 -0
  300. package/dist/types/components/EditableTable/cellTypes/multiReference/Edit.uni.driver.d.ts.map +1 -0
  301. package/dist/types/components/EditableTable/cellTypes/multiReference/View.d.ts +5 -0
  302. package/dist/types/components/EditableTable/cellTypes/multiReference/View.d.ts.map +1 -0
  303. package/dist/types/components/EditableTable/cellTypes/multiReference/View.uni.driver.d.ts +19 -0
  304. package/dist/types/components/EditableTable/cellTypes/multiReference/View.uni.driver.d.ts.map +1 -0
  305. package/dist/types/components/EditableTable/cellTypes/multiReference/index.d.ts +6 -0
  306. package/dist/types/components/EditableTable/cellTypes/multiReference/index.d.ts.map +1 -0
  307. package/dist/types/components/EditableTable/cellTypes/multiReference/types.d.ts +10 -0
  308. package/dist/types/components/EditableTable/cellTypes/multiReference/types.d.ts.map +1 -0
  309. package/dist/types/components/EditableTable/cellTypes/number/View.st.css.d.ts.map +1 -1
  310. package/dist/types/components/EditableTable/cellTypes/url/View.st.css.d.ts.map +1 -1
  311. package/dist/types/components/EntityPage/EntityPagePlain.st.css.d.ts.map +1 -1
  312. package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
  313. package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts +0 -4
  314. package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts.map +1 -1
  315. package/dist/types/components/ImportButton/ImportModal.uni.driver.d.ts +0 -4
  316. package/dist/types/components/ImportButton/ImportModal.uni.driver.d.ts.map +1 -1
  317. package/dist/types/components/ImportButton/ImportStepProgress.d.ts.map +1 -1
  318. package/dist/types/components/ImportButton/ImportStepUpload.d.ts.map +1 -1
  319. package/dist/types/components/ImportButton/getImportModalStepProps.d.ts.map +1 -1
  320. package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
  321. package/dist/types/components/LayoutSwitch/LayoutSwitch.uni.driver.d.ts +0 -8
  322. package/dist/types/components/LayoutSwitch/LayoutSwitch.uni.driver.d.ts.map +1 -1
  323. package/dist/types/components/MaxHeightText/MaxHeightText.st.css.d.ts.map +1 -1
  324. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +0 -8
  325. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts.map +1 -1
  326. package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
  327. package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
  328. package/dist/types/components/PickerContent/PickerContent.st.css.d.ts.map +1 -1
  329. package/dist/types/components/SetupWidget/SetupWidget.st.css.d.ts.map +1 -1
  330. package/dist/types/components/SkeletonCard/SkeletonCard.st.css.d.ts.map +1 -1
  331. package/dist/types/components/SlidingModal/SlidingModal.st.css.d.ts.map +1 -1
  332. package/dist/types/components/Table/Table.uni.driver.d.ts +0 -8
  333. package/dist/types/components/Table/Table.uni.driver.d.ts.map +1 -1
  334. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +0 -8
  335. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
  336. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +0 -8
  337. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts.map +1 -1
  338. package/dist/types/components/TabsFilter/TabsFilter.st.css.d.ts.map +1 -1
  339. package/dist/types/components/ToolbarItemBox/ToolbarItemBox.st.css.d.ts.map +1 -1
  340. package/dist/types/components/common.st.css.d.ts.map +1 -1
  341. package/dist/types/hooks/usePickerModal/PickerModalState.d.ts +2 -2
  342. package/dist/types/hooks/usePickerModal/PickerModalState.d.ts.map +1 -1
  343. package/dist/types/index.d.ts +1 -1
  344. package/dist/types/index.d.ts.map +1 -1
  345. package/dist/types/state/CollectionPage/CollectionPageHeader.st.css.d.ts.map +1 -1
  346. package/dist/types/state/EditableTable/types.d.ts +1 -0
  347. package/dist/types/state/EditableTable/types.d.ts.map +1 -1
  348. package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
  349. package/dist/types/testkit/enzyme.d.ts +0 -32
  350. package/dist/types/testkit/enzyme.d.ts.map +1 -1
  351. package/dist/types/testkit/jsdom.d.ts +0 -40
  352. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  353. package/dist/types/testkit/playwright.d.ts +0 -32
  354. package/dist/types/testkit/playwright.d.ts.map +1 -1
  355. package/dist/types/testkit/puppeteer.d.ts +0 -32
  356. package/dist/types/testkit/puppeteer.d.ts.map +1 -1
  357. package/dist/types/types/SchemaConfig.d.ts +12 -2
  358. package/dist/types/types/SchemaConfig.d.ts.map +1 -1
  359. package/dist/types/version.d.ts +1 -1
  360. package/package.json +6 -6
  361. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  362. package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
  363. package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
  364. package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
  365. package/src/components/CmsFieldManagement/formFields/CharactersLimitInput.st.css.ts +2 -2
  366. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  367. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  368. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  369. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  370. package/src/components/CollectionTable/CollectionTableWSRTable.st.css.ts +2 -2
  371. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  372. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  373. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  374. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  375. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  376. package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
  377. package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
  378. package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
  379. package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
  380. package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
  381. package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
  382. package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
  383. package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
  384. package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
  385. package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +2 -2
  386. package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
  387. package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
  388. package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
  389. package/src/components/EditableTable/cellTypes/index.ts +3 -0
  390. package/src/components/EditableTable/cellTypes/multiReference/Edit.tsx +265 -0
  391. package/src/components/EditableTable/cellTypes/multiReference/Edit.uni.driver.ts +52 -0
  392. package/src/components/EditableTable/cellTypes/multiReference/View.tsx +33 -0
  393. package/src/components/EditableTable/cellTypes/multiReference/View.uni.driver.ts +16 -0
  394. package/src/components/EditableTable/cellTypes/multiReference/index.ts +41 -0
  395. package/src/components/EditableTable/cellTypes/multiReference/types.ts +15 -0
  396. package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
  397. package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
  398. package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
  399. package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
  400. package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
  401. package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
  402. package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
  403. package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
  404. package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
  405. package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
  406. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  407. package/src/components/Fade/Fade.st.css.ts +2 -2
  408. package/src/components/Heading/Heading.st.css.ts +2 -2
  409. package/src/components/ImportButton/CAIRO-4118-tasks.md +53 -0
  410. package/src/components/ImportButton/ImportModal.uni.driver.ts +0 -10
  411. package/src/components/ImportButton/ImportStepConfiguration.tsx +1 -1
  412. package/src/components/ImportButton/ImportStepProgress.tsx +15 -23
  413. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  414. package/src/components/ImportButton/ImportStepUpload.tsx +2 -7
  415. package/src/components/ImportButton/getImportModalStepProps.tsx +10 -3
  416. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  417. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  418. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  419. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  420. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  421. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  422. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  423. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  424. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  425. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  426. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  427. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  428. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  429. package/src/components/SetupWidget/SetupWidget.st.css.ts +2 -2
  430. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  431. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  432. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  433. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  434. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  435. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  436. package/src/components/common.st.css.ts +2 -2
  437. package/src/index.ts +14 -0
  438. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  439. package/src/state/EditableTable/types.ts +1 -0
  440. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  441. package/src/styles.global.css +2 -2
  442. package/src/types/SchemaConfig.ts +19 -0
  443. package/src/version.ts +1 -1
@@ -0,0 +1,265 @@
1
+ import React, { useCallback, useEffect, useMemo, useRef } from 'react';
2
+ import { Box } from '@wix/design-system';
3
+ import {
4
+ CellMultiReferenceInput,
5
+ type CellMultiReferenceInputHandle,
6
+ type CellMultiReferenceItem,
7
+ } from '@wix/patterns-fields';
8
+ import { observer } from 'mobx-react-lite';
9
+ import { useCollection } from '@wix/bex-core/react';
10
+ import type { CellEditProps } from '../../types';
11
+ import { useCloseOnAncestorScroll } from '../../../../hooks/useCloseOnAncestorScroll';
12
+ import { useFilterCollectionStates } from '../../../../hooks/useFilterCollectionStates';
13
+ import { FilterTranslationProvider } from '../../../../providers';
14
+ import { getImageFieldId } from '../reference/getImageFieldId';
15
+ import { useOpenReferencedCollection } from '../reference/openCollectionContext';
16
+ import type {
17
+ MultiReferenceValue,
18
+ ReferenceItem,
19
+ ReferenceTypeConfig,
20
+ } from './types';
21
+
22
+ function _MultiReferenceEditContent({
23
+ value,
24
+ onChange,
25
+ onCommit,
26
+ typeConfig,
27
+ editTrigger,
28
+ inputRef,
29
+ }: CellEditProps<MultiReferenceValue>) {
30
+ const config = typeConfig as ReferenceTypeConfig | undefined;
31
+ const refSchema = config?.refSchema;
32
+ const acHandle = useRef<CellMultiReferenceInputHandle | null>(null);
33
+ const wrapperRef = useRef<HTMLDivElement | null>(null);
34
+ // Opener provided by ReferenceEditWrapper (a stable ancestor) so the
35
+ // navigation + return-to-foreground subscription survive this editor
36
+ // unmounting when the overlay opens.
37
+ const openReferencedCollection = useOpenReferencedCollection();
38
+
39
+ const idField = refSchema?.idField ?? '_id';
40
+ const displayField = refSchema?.displayField ?? 'title';
41
+ const imageField = getImageFieldId(refSchema?.fields);
42
+
43
+ const collection = useCollection<ReferenceItem>({
44
+ queryName: `multi-reference-cell-edit-${refSchema?.id ?? 'unknown'}`,
45
+ itemKey: (item) => item.id,
46
+ itemName: (item) => item.name,
47
+ fetchData: async (query) => {
48
+ if (!config?.fetchReferenceItems) {
49
+ return { items: [], total: 0 };
50
+ }
51
+ return config.fetchReferenceItems(query);
52
+ },
53
+ });
54
+
55
+ const initialSearchTextRef = useRef(
56
+ editTrigger &&
57
+ typeof editTrigger === 'object' &&
58
+ editTrigger.kind === 'type'
59
+ ? editTrigger.key
60
+ : undefined,
61
+ );
62
+
63
+ useEffect(() => {
64
+ const dispose = collection.init();
65
+ if (initialSearchTextRef.current !== undefined) {
66
+ collection.search(initialSearchTextRef.current, { clearResult: true });
67
+ }
68
+ // Seed editingValue with the current value so a no-op edit commits the same
69
+ // list back instead of `undefined` (which would clear the cell).
70
+ onChange(value ?? []);
71
+ return dispose;
72
+ // eslint-disable-next-line react-hooks/exhaustive-deps
73
+ }, [collection]);
74
+
75
+ const selectedRefs = value ?? [];
76
+
77
+ const selectedItems = useMemo<CellMultiReferenceItem[]>(
78
+ () =>
79
+ selectedRefs.map((ref, i) => ({
80
+ id: String(ref[idField] ?? i),
81
+ name: String(ref[displayField] ?? ''),
82
+ image: imageField ? (ref[imageField] as string | undefined) : undefined,
83
+ })),
84
+ [selectedRefs, idField, displayField, imageField],
85
+ );
86
+
87
+ const selectedIds = useMemo(
88
+ () => new Set(selectedItems.map((item) => item.id)),
89
+ [selectedItems],
90
+ );
91
+
92
+ const keyedItems = collection.result.keyedItems;
93
+ const fetchedLastPage = collection.fetchedLastPage;
94
+ const searchValue = collection.query.search.value;
95
+
96
+ // Exclude already-selected references from the dropdown options.
97
+ const items = useMemo<CellMultiReferenceItem[]>(
98
+ () =>
99
+ keyedItems
100
+ .map((ki) => ({
101
+ id: String(ki.key),
102
+ name: ki.item.name,
103
+ image: ki.item.image,
104
+ }))
105
+ .filter((item) => !selectedIds.has(item.id)),
106
+ [keyedItems, selectedIds],
107
+ );
108
+
109
+ const handleSelect = useCallback(
110
+ (item: CellMultiReferenceItem) => {
111
+ const next = [
112
+ ...selectedRefs,
113
+ {
114
+ [idField]: item.id,
115
+ [displayField]: item.name,
116
+ ...(imageField && item.image ? { [imageField]: item.image } : {}),
117
+ },
118
+ ];
119
+ onChange(next);
120
+ collection.clearSearch();
121
+ },
122
+ [selectedRefs, idField, displayField, imageField, onChange, collection],
123
+ );
124
+
125
+ const handleRemoveTag = useCallback(
126
+ (id: string) => {
127
+ const next = selectedRefs.filter(
128
+ (ref) => String(ref[idField] ?? '') !== id,
129
+ );
130
+ onChange(next.length ? next : null);
131
+ },
132
+ [selectedRefs, idField, onChange],
133
+ );
134
+
135
+ const handleSearchChange = useCallback(
136
+ (search: string) => {
137
+ if (search) {
138
+ collection.search(search, { clearResult: true });
139
+ } else {
140
+ collection.clearSearch();
141
+ }
142
+ },
143
+ [collection],
144
+ );
145
+
146
+ const handleKeyDown = useCallback(
147
+ (e: React.KeyboardEvent) => {
148
+ // Production should commit (not revert) on Escape — close the editor and
149
+ // keep the current selection. Stop propagation so the framework's default
150
+ // cancel-on-Escape doesn't also fire.
151
+ if (e.key === 'Escape') {
152
+ e.preventDefault();
153
+ e.stopPropagation();
154
+ onCommit();
155
+ }
156
+ },
157
+ [onCommit],
158
+ );
159
+
160
+ const closeDropdown = useCallback(() => acHandle.current?.hideOptions(), []);
161
+ useCloseOnAncestorScroll(wrapperRef, closeDropdown, true);
162
+
163
+ // Commit on blur, unless focus moved into the portaled dropdown / popover.
164
+ const handleBlur = useCallback(() => {
165
+ requestAnimationFrame(() => {
166
+ const active = document.activeElement as HTMLElement | null;
167
+ if (!active) {
168
+ onCommit();
169
+ return;
170
+ }
171
+ if (wrapperRef.current?.contains(active)) {
172
+ return;
173
+ }
174
+ if (
175
+ active.closest(
176
+ '[role="listbox"], [role="dialog"], [data-hook*="popover"]',
177
+ )
178
+ ) {
179
+ return;
180
+ }
181
+ onCommit();
182
+ });
183
+ }, [onCommit]);
184
+
185
+ // Click-outside fallback. Empty cells often never get a focused descendant,
186
+ // so onBlur on the wrapper never fires.
187
+ useEffect(() => {
188
+ const handleDocMouseDown = (e: MouseEvent) => {
189
+ const target = e.target as HTMLElement | null;
190
+ if (!target) {
191
+ return;
192
+ }
193
+ if (wrapperRef.current?.contains(target)) {
194
+ return;
195
+ }
196
+ if (
197
+ target.closest?.(
198
+ '[role="listbox"], [role="dialog"], [data-hook*="popover"]',
199
+ )
200
+ ) {
201
+ return;
202
+ }
203
+ onCommit();
204
+ };
205
+ document.addEventListener('mousedown', handleDocMouseDown);
206
+ return () => document.removeEventListener('mousedown', handleDocMouseDown);
207
+ }, [onCommit]);
208
+
209
+ const { showInitialLoader, fixedFooter } = useFilterCollectionStates({
210
+ collection,
211
+ fixedFooter: config?.renderFooter?.(),
212
+ });
213
+
214
+ // Refresh this editor's dropdown options when the overlay closes — force
215
+ // invalidates the shared query cache (keyed by queryName), so even after this
216
+ // editor has unmounted the next open refetches fresh.
217
+ const handleOpenCollection = useMemo(
218
+ () =>
219
+ openReferencedCollection
220
+ ? () =>
221
+ openReferencedCollection(() =>
222
+ collection.clearResultAndMoveToStart({ force: true }),
223
+ )
224
+ : undefined,
225
+ [openReferencedCollection, collection],
226
+ );
227
+
228
+ if (!refSchema) {
229
+ return null;
230
+ }
231
+
232
+ return (
233
+ <Box ref={wrapperRef} width="100%" height="100%">
234
+ <CellMultiReferenceInput
235
+ ref={acHandle}
236
+ items={items}
237
+ selectedItems={selectedItems}
238
+ value={searchValue}
239
+ onChange={handleSearchChange}
240
+ onSelect={handleSelect}
241
+ onRemoveTag={handleRemoveTag}
242
+ onKeyDown={handleKeyDown}
243
+ onBlur={handleBlur}
244
+ infiniteScroll
245
+ hasMore={!showInitialLoader && !fetchedLastPage}
246
+ loadMore={collection.fetchNextPageIfNeeded}
247
+ fixedFooter={fixedFooter}
248
+ onOpenCollection={handleOpenCollection}
249
+ autoOpen={!!editTrigger}
250
+ inputRef={inputRef}
251
+ dataHook="multi-reference-edit"
252
+ />
253
+ </Box>
254
+ );
255
+ }
256
+
257
+ const MultiReferenceEditContent = observer(_MultiReferenceEditContent);
258
+
259
+ export const MultiReferenceEdit = (
260
+ props: CellEditProps<MultiReferenceValue>,
261
+ ) => (
262
+ <FilterTranslationProvider>
263
+ <MultiReferenceEditContent {...props} />
264
+ </FilterTranslationProvider>
265
+ );
@@ -0,0 +1,52 @@
1
+ import { UniDriver } from '@wix/wix-ui-test-utils/unidriver';
2
+ import { baseUniDriverFactory } from '../../../../unidriver';
3
+
4
+ const { fireEvent = null } =
5
+ process.env.NODE_ENV === 'test'
6
+ ? (() => {
7
+ try {
8
+ return require('@testing-library/react');
9
+ } catch {}
10
+ return {};
11
+ })()
12
+ : {};
13
+
14
+ export function MultiReferenceEditUniDriver(base: UniDriver, body: UniDriver) {
15
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
+ const getNativeInput = () =>
17
+ (base.$('input') as any).getNative() as Promise<HTMLInputElement>;
18
+
19
+ return {
20
+ ...baseUniDriverFactory(base),
21
+ hasInput: () => base.$('input').exists(),
22
+ getInputValue: () => base.$('input').value(),
23
+ getTagsCount: () =>
24
+ base.$$('[data-hook="multi-reference-edit-tag"]').count(),
25
+ typeInInput: async (value: string) => {
26
+ fireEvent.change(await getNativeInput(), { target: { value } });
27
+ },
28
+ pressKeyOnInput: async (key: string) => {
29
+ fireEvent.keyDown(await getNativeInput(), { key });
30
+ },
31
+ // Dropdown options are portal-mounted to document.body, so search in body.
32
+ getOptionCount: async () =>
33
+ body.$$('[data-hook="list-item-select"]').count(),
34
+ getOptionTitleByIndex: async (index: number) => {
35
+ const option = await body.$$('[data-hook="list-item-select"]').get(index);
36
+ return option.$('[data-hook="list-item-select-title"]').text();
37
+ },
38
+ clickOptionByIndex: async (index: number) => {
39
+ const option = await body.$$('[data-hook="list-item-select"]').get(index);
40
+ return option.click();
41
+ },
42
+ hasOpenCollectionButton: () =>
43
+ body.$('[data-hook="reference-open-collection"]').exists(),
44
+ clickOpenCollection: async () => {
45
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
46
+ const el = (
47
+ body.$('[data-hook="reference-open-collection"]') as any
48
+ ).getNative() as Promise<HTMLElement>;
49
+ fireEvent.click(await el);
50
+ },
51
+ };
52
+ }
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { CellMultiReferenceView } from '@wix/patterns-fields';
3
+ import type { CellMultiReferenceItem } from '@wix/patterns-fields';
4
+ import type { CellViewProps } from '../../types';
5
+ import { getImageFieldId } from '../reference/getImageFieldId';
6
+ import type { MultiReferenceValue, ReferenceTypeConfig } from './types';
7
+
8
+ export const MultiReferenceView: React.FC<
9
+ CellViewProps<MultiReferenceValue>
10
+ > = ({ value, typeConfig, columnId, rowKey }) => {
11
+ const config = typeConfig as ReferenceTypeConfig | undefined;
12
+ const refs = value ?? [];
13
+ if (refs.length === 0 || !config?.refSchema) {
14
+ return null;
15
+ }
16
+
17
+ const { displayField, idField } = config.refSchema;
18
+ const imageField = getImageFieldId(config.refSchema.fields);
19
+
20
+ const items: CellMultiReferenceItem[] = refs.map((ref, i) => ({
21
+ id: String(ref[idField] ?? i),
22
+ name: String(ref[displayField] ?? ''),
23
+ image: imageField ? (ref[imageField] as string | undefined) : undefined,
24
+ }));
25
+
26
+ return (
27
+ <CellMultiReferenceView
28
+ items={items}
29
+ dataHook="multi-reference-view"
30
+ fieldId={`multi-reference-view-${columnId}-${rowKey}`}
31
+ />
32
+ );
33
+ };
@@ -0,0 +1,16 @@
1
+ import { UniDriver } from '@wix/wix-ui-test-utils/unidriver';
2
+ import { baseUniDriverFactory } from '../../../../unidriver';
3
+
4
+ export function MultiReferenceViewUniDriver(base: UniDriver, _body: UniDriver) {
5
+ const tags = () => base.$$('[data-hook="cell-multi-reference-tag"]');
6
+ const overflow = () => base.$('[data-hook="tag-list-overflow-chip"]');
7
+ return {
8
+ ...baseUniDriverFactory(base),
9
+ hasTags: async () => (await tags().count()) > 0,
10
+ getTagsCount: () => tags().count(),
11
+ isEmpty: async () =>
12
+ !(await base.$('[data-hook="cell-multi-reference-tags"]').exists()),
13
+ hasOverflowChip: () => overflow().exists(),
14
+ getOverflowChipText: async () => (await overflow().text()) ?? '',
15
+ };
16
+ }
@@ -0,0 +1,41 @@
1
+ import { defineCellType } from '../../types';
2
+ import { ReferenceEditWrapper } from '../reference/ReferenceEditWrapper';
3
+ import { MultiReferenceView } from './View';
4
+ import { MultiReferenceEdit } from './Edit';
5
+ import type { MultiReferenceValue } from './types';
6
+
7
+ export { MultiReferenceView, MultiReferenceEdit };
8
+ export type {
9
+ MultiReferenceValue,
10
+ ReferenceItem,
11
+ RefSchema,
12
+ ReferenceTypeConfig,
13
+ } from './types';
14
+
15
+ export const multiReferenceCellType = defineCellType<MultiReferenceValue>({
16
+ type: 'multiReference',
17
+ ViewComponent: MultiReferenceView,
18
+ EditComponent: MultiReferenceEdit,
19
+ EditWrapper: ReferenceEditWrapper,
20
+ // Compact, single-line JSON for clipboard TSV (no pretty-printing).
21
+ serialize: (value) => (value && value.length ? JSON.stringify(value) : ''),
22
+ deserialize: (raw) => {
23
+ if (!raw) {
24
+ return null;
25
+ }
26
+ try {
27
+ const parsed = JSON.parse(raw);
28
+ if (Array.isArray(parsed)) {
29
+ return parsed;
30
+ }
31
+ } catch {}
32
+ return null;
33
+ },
34
+ editable: true,
35
+ clearable: true,
36
+ // Single click opens the chip editor (parity with the UX handoff).
37
+ editOnClick: () => true,
38
+ // Enter edit on a printable key without clearing the existing chips — the
39
+ // MultiSelect input takes over typing once edit opens.
40
+ onTypeToEdit: () => ({}),
41
+ });
@@ -0,0 +1,15 @@
1
+ import type {
2
+ ReferenceItem,
3
+ RefSchema,
4
+ ReferenceTypeConfig,
5
+ } from '../reference/types';
6
+
7
+ export type { ReferenceItem, RefSchema, ReferenceTypeConfig };
8
+
9
+ /**
10
+ * A multi-reference cell holds an array of denormalized reference objects —
11
+ * the plural sibling of the `reference` cell's `Record<string, unknown> | null`.
12
+ * Each object carries the schema's `idField`, `displayField` and (optionally)
13
+ * the image field, so the view renders without re-fetching.
14
+ */
15
+ export type MultiReferenceValue = Record<string, unknown>[] | null;
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "Edit3997170827";
8
+ var _namespace_ = "Edit1685580225";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"Edit3997170827__root","numberInput":"Edit3997170827__numberInput"};
16
+ export var classes = {"root":"Edit1685580225__root","numberInput":"Edit1685580225__numberInput"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "View3717091114";
8
+ var _namespace_ = "View715682817";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"View3717091114__root","textView":"View3717091114__textView"};
16
+ export var classes = {"root":"View715682817__root","textView":"View715682817__textView"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "Edit1884076868";
8
+ var _namespace_ = "Edit1245266781";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"Edit1884076868__root","jsonInput":"Edit1884076868__jsonInput"};
16
+ export var classes = {"root":"Edit1245266781__root","jsonInput":"Edit1245266781__jsonInput"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "View4108766999";
8
+ var _namespace_ = "View3600163408";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"View4108766999__root"};
16
+ export var classes = {"root":"View3600163408__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "Edit1063584883";
8
+ var _namespace_ = "Edit1548529658";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"Edit1063584883__root","selectInput":"Edit1063584883__selectInput"};
16
+ export var classes = {"root":"Edit1548529658__root","selectInput":"Edit1548529658__selectInput"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "Edit2539786971";
8
+ var _namespace_ = "Edit1263282934";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"Edit2539786971__root","editWrapper":"Edit2539786971__editWrapper","inputArea":"Edit2539786971__inputArea"};
16
+ export var classes = {"root":"Edit1263282934__root","editWrapper":"Edit1263282934__editWrapper","inputArea":"Edit1263282934__inputArea"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "View109019798";
8
+ var _namespace_ = "View227164221";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"View109019798__root"};
16
+ export var classes = {"root":"View227164221__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "Edit3891897524";
8
+ var _namespace_ = "Edit1808874999";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"Edit3891897524__root","wrapper":"Edit3891897524__wrapper","overlay":"Edit3891897524__overlay"};
16
+ export var classes = {"root":"Edit1808874999__root","wrapper":"Edit1808874999__wrapper","overlay":"Edit1808874999__overlay"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "Edit3618082279";
8
+ var _namespace_ = "Edit2107803644";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"Edit3618082279__root","urlInput":"Edit3618082279__urlInput"};
16
+ export var classes = {"root":"Edit2107803644__root","urlInput":"Edit2107803644__urlInput"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "View1464552216";
8
+ var _namespace_ = "View713368013";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"View1464552216__root","textView":"View1464552216__textView","urlText":"View1464552216__urlText","suffix":"View1464552216__suffix"};
16
+ export var classes = {"root":"View713368013__root","textView":"View713368013__textView","urlText":"View713368013__urlText","suffix":"View713368013__suffix"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "EntityPagePlain583315663";
8
+ var _namespace_ = "EntityPagePlain3351248795";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"EntityPagePlain583315663__root"};
16
+ export var classes = {"root":"EntityPagePlain3351248795__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "Fade68256681";
8
+ var _namespace_ = "Fade1213724873";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"Fade68256681__root"};
16
+ export var classes = {"root":"Fade1213724873__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "Heading1825965899";
8
+ var _namespace_ = "Heading1396813473";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"Heading1825965899__root"};
16
+ export var classes = {"root":"Heading1396813473__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};