@wix/patterns 1.308.0 → 1.317.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 (427) hide show
  1. package/dist/cjs/components/ActionControl/ActionSubItemProps.js.map +1 -1
  2. package/dist/cjs/components/ArchivedItemsPanel/ArchivedItemsCTAButton.js +25 -15
  3. package/dist/cjs/components/ArchivedItemsPanel/ArchivedItemsCTAButton.js.map +1 -1
  4. package/dist/cjs/components/ArchivedItemsPanel/ArchivedItemsPanel.js +26 -79
  5. package/dist/cjs/components/ArchivedItemsPanel/ArchivedItemsPanel.js.map +1 -1
  6. package/dist/cjs/components/ArchivedItemsPanel/DeleteFieldModal.js +74 -0
  7. package/dist/cjs/components/ArchivedItemsPanel/DeleteFieldModal.js.map +1 -0
  8. package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
  9. package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
  10. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  11. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  12. package/dist/cjs/components/CollectionCard/CollectionCard.js +24 -15
  13. package/dist/cjs/components/CollectionCard/CollectionCard.js.map +1 -1
  14. package/dist/cjs/components/CollectionErrorState/CollectionErrorState.js.map +1 -1
  15. package/dist/cjs/components/CollectionPageHeaderNew/CollectionPageHeader.js.map +1 -1
  16. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  17. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  18. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  19. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  20. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.js +26 -24
  21. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.js.map +1 -1
  22. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  23. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  24. package/dist/cjs/components/CollectionToolbar/CollectionToolbarActionsGroupProps.js.map +1 -1
  25. package/dist/cjs/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.js +12 -10
  26. package/dist/cjs/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.js.map +1 -1
  27. package/dist/cjs/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.js +42 -28
  28. package/dist/cjs/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.js.map +1 -1
  29. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.js +14 -10
  30. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.js.map +1 -1
  31. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css +4 -5
  32. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  33. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  34. package/dist/cjs/components/CollectionToolbar/useIsCollectionToolbarExists.js +3 -2
  35. package/dist/cjs/components/CollectionToolbar/useIsCollectionToolbarExists.js.map +1 -1
  36. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  37. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  38. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  39. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  40. package/dist/cjs/components/CustomColumnsPanel/CustomColumnsPanel.js +5 -2
  41. package/dist/cjs/components/CustomColumnsPanel/CustomColumnsPanel.js.map +1 -1
  42. package/dist/cjs/components/CustomDrawerLayout.js +99 -0
  43. package/dist/cjs/components/CustomDrawerLayout.js.map +1 -0
  44. package/dist/cjs/components/CustomFieldsWidget/CustomFieldsWidgetCommonComponents.js +12 -3
  45. package/dist/cjs/components/CustomFieldsWidget/CustomFieldsWidgetCommonComponents.js.map +1 -1
  46. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  47. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  48. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  49. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  50. package/dist/cjs/components/ExportButton/ExportButton.js +55 -37
  51. package/dist/cjs/components/ExportButton/ExportButton.js.map +1 -1
  52. package/dist/cjs/components/ExportButton/ExportButtonModalLayout.js +16 -1
  53. package/dist/cjs/components/ExportButton/ExportButtonModalLayout.js.map +1 -1
  54. package/dist/cjs/components/ExportButton/ExportModal.js +26 -10
  55. package/dist/cjs/components/ExportButton/ExportModal.js.map +1 -1
  56. package/dist/cjs/components/ExportButton/ExportModal.uni.driver.js +8 -7
  57. package/dist/cjs/components/ExportButton/ExportModal.uni.driver.js.map +1 -1
  58. package/dist/cjs/components/ExportButton/ExportStepProgress.js +1 -1
  59. package/dist/cjs/components/ExportButton/ExportStepProgress.js.map +1 -1
  60. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  61. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  62. package/dist/cjs/components/FiltersPanel/FiltersPanelAppliedFiltersSection.js +2 -0
  63. package/dist/cjs/components/FiltersPanel/FiltersPanelAppliedFiltersSection.js.map +1 -1
  64. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  65. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  66. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  67. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  68. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  69. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  70. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  71. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  72. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  73. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  74. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  75. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  76. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  77. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  78. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  79. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  80. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  81. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  82. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  83. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  84. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  85. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  86. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  87. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  88. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  89. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  90. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  91. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  92. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  93. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  94. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  95. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  96. package/dist/cjs/components/Suggestions/MarketingCard.js +244 -0
  97. package/dist/cjs/components/Suggestions/MarketingCard.js.map +1 -0
  98. package/dist/cjs/components/Suggestions/MarketingCard.uni.driver.js +26 -0
  99. package/dist/cjs/components/Suggestions/MarketingCard.uni.driver.js.map +1 -0
  100. package/dist/cjs/components/Suggestions/Suggestions.js +102 -48
  101. package/dist/cjs/components/Suggestions/Suggestions.js.map +1 -1
  102. package/dist/cjs/components/Suggestions/Suggestions.uni.driver.js +67 -17
  103. package/dist/cjs/components/Suggestions/Suggestions.uni.driver.js.map +1 -1
  104. package/dist/cjs/components/Suggestions/index.js +5 -5
  105. package/dist/cjs/components/Suggestions/index.js.map +1 -1
  106. package/dist/cjs/components/Suggestions/types.js +4 -0
  107. package/dist/cjs/components/Suggestions/types.js.map +1 -0
  108. package/dist/cjs/components/TabTotal/TabTotalCounterBadge.js +4 -1
  109. package/dist/cjs/components/TabTotal/TabTotalCounterBadge.js.map +1 -1
  110. package/dist/cjs/components/TabsFilter/TabsDropdown.js +8 -6
  111. package/dist/cjs/components/TabsFilter/TabsDropdown.js.map +1 -1
  112. package/dist/cjs/components/TabsFilter/TabsFilter.js +14 -8
  113. package/dist/cjs/components/TabsFilter/TabsFilter.js.map +1 -1
  114. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  115. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  116. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  117. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  118. package/dist/cjs/components/ToolbarCollection/ToolbarCollection.js.map +1 -1
  119. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  120. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  121. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  122. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  123. package/dist/cjs/components/ToolbarTitle/ToolbarTitle.js +17 -9
  124. package/dist/cjs/components/ToolbarTitle/ToolbarTitle.js.map +1 -1
  125. package/dist/cjs/components/common.st.css.js +4 -4
  126. package/dist/cjs/components/common.st.css.js.map +1 -1
  127. package/dist/cjs/exports/testkit/unidriver.js +4 -1
  128. package/dist/cjs/exports/testkit/unidriver.js.map +1 -1
  129. package/dist/cjs/hooks/useBulkActionMobileGroups.js +2 -1
  130. package/dist/cjs/hooks/useBulkActionMobileGroups.js.map +1 -1
  131. package/dist/cjs/hooks/useItemsSelectionFilter/useItemsSelectionFilter.js.map +1 -1
  132. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  133. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  134. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  135. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  136. package/dist/cjs/state/NestedTableState/NestedTableNodeStateOptimisticActions.js.map +1 -1
  137. package/dist/cjs/state/NestedTableState/NestedTableNodeStatePublicAPI.js.map +1 -1
  138. package/dist/cjs/state/NestedTableState/index.js +5 -2
  139. package/dist/cjs/state/NestedTableState/index.js.map +1 -1
  140. package/dist/cjs/state/ToolbarCollectionState.js +3 -1
  141. package/dist/cjs/state/ToolbarCollectionState.js.map +1 -1
  142. package/dist/cjs/styles.global.css +1 -1
  143. package/dist/cjs/version.js +1 -1
  144. package/dist/cjs/version.js.map +1 -1
  145. package/dist/cjs/wix-design-system-version.js +1 -1
  146. package/dist/cjs/wix-design-system-version.js.map +1 -1
  147. package/dist/esm/components/ArchivedItemsPanel/ArchivedItemsCTAButton.js +6 -5
  148. package/dist/esm/components/ArchivedItemsPanel/ArchivedItemsCTAButton.js.map +1 -1
  149. package/dist/esm/components/ArchivedItemsPanel/ArchivedItemsPanel.js +25 -44
  150. package/dist/esm/components/ArchivedItemsPanel/ArchivedItemsPanel.js.map +1 -1
  151. package/dist/esm/components/ArchivedItemsPanel/DeleteFieldModal.js +22 -0
  152. package/dist/esm/components/ArchivedItemsPanel/DeleteFieldModal.js.map +1 -0
  153. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  154. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  155. package/dist/esm/components/CollectionCard/CollectionCard.js +3 -1
  156. package/dist/esm/components/CollectionCard/CollectionCard.js.map +1 -1
  157. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  158. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  159. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  160. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  161. package/dist/esm/components/CollectionToolbar/CollectionToolbar.js +3 -2
  162. package/dist/esm/components/CollectionToolbar/CollectionToolbar.js.map +1 -1
  163. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  164. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  165. package/dist/esm/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.js +2 -2
  166. package/dist/esm/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.js.map +1 -1
  167. package/dist/esm/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.js +20 -14
  168. package/dist/esm/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.js.map +1 -1
  169. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.js +11 -8
  170. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.js.map +1 -1
  171. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css +4 -5
  172. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  173. package/dist/esm/components/CollectionToolbar/useIsCollectionToolbarExists.js +2 -2
  174. package/dist/esm/components/CollectionToolbar/useIsCollectionToolbarExists.js.map +1 -1
  175. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  176. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  177. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  178. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  179. package/dist/esm/components/CustomColumnsPanel/CustomColumnsPanel.js +1 -1
  180. package/dist/esm/components/CustomColumnsPanel/CustomColumnsPanel.js.map +1 -1
  181. package/dist/esm/components/CustomDrawerLayout.js +13 -0
  182. package/dist/esm/components/CustomDrawerLayout.js.map +1 -0
  183. package/dist/esm/components/CustomFieldsWidget/CustomFieldsWidgetCommonComponents.js +3 -1
  184. package/dist/esm/components/CustomFieldsWidget/CustomFieldsWidgetCommonComponents.js.map +1 -1
  185. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  186. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  187. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  188. package/dist/esm/components/ExportButton/ExportButton.js +10 -3
  189. package/dist/esm/components/ExportButton/ExportButton.js.map +1 -1
  190. package/dist/esm/components/ExportButton/ExportButtonModalLayout.js +6 -0
  191. package/dist/esm/components/ExportButton/ExportButtonModalLayout.js.map +1 -1
  192. package/dist/esm/components/ExportButton/ExportModal.js +8 -3
  193. package/dist/esm/components/ExportButton/ExportModal.js.map +1 -1
  194. package/dist/esm/components/ExportButton/ExportModal.uni.driver.js +8 -7
  195. package/dist/esm/components/ExportButton/ExportModal.uni.driver.js.map +1 -1
  196. package/dist/esm/components/ExportButton/ExportStepProgress.js +1 -1
  197. package/dist/esm/components/ExportButton/ExportStepProgress.js.map +1 -1
  198. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  199. package/dist/esm/components/Fade/Fade.st.css.js.map +1 -1
  200. package/dist/esm/components/FiltersPanel/FiltersPanelAppliedFiltersSection.js +1 -0
  201. package/dist/esm/components/FiltersPanel/FiltersPanelAppliedFiltersSection.js.map +1 -1
  202. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  203. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  204. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  205. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  206. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  207. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  208. package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
  209. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  210. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  211. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  212. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  213. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  214. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  215. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  216. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  217. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  218. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  219. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  220. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  221. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  222. package/dist/esm/components/Suggestions/MarketingCard.js +60 -0
  223. package/dist/esm/components/Suggestions/MarketingCard.js.map +1 -0
  224. package/dist/esm/components/Suggestions/MarketingCard.uni.driver.js +22 -0
  225. package/dist/esm/components/Suggestions/MarketingCard.uni.driver.js.map +1 -0
  226. package/dist/esm/components/Suggestions/Suggestions.js +33 -6
  227. package/dist/esm/components/Suggestions/Suggestions.js.map +1 -1
  228. package/dist/esm/components/Suggestions/Suggestions.uni.driver.js +67 -18
  229. package/dist/esm/components/Suggestions/Suggestions.uni.driver.js.map +1 -1
  230. package/dist/esm/components/Suggestions/index.js +4 -1
  231. package/dist/esm/components/Suggestions/index.js.map +1 -1
  232. package/dist/esm/components/Suggestions/types.js +2 -0
  233. package/dist/esm/components/Suggestions/types.js.map +1 -0
  234. package/dist/esm/components/TabTotal/TabTotalCounterBadge.js +2 -2
  235. package/dist/esm/components/TabTotal/TabTotalCounterBadge.js.map +1 -1
  236. package/dist/esm/components/TabsFilter/TabsDropdown.js +3 -3
  237. package/dist/esm/components/TabsFilter/TabsDropdown.js.map +1 -1
  238. package/dist/esm/components/TabsFilter/TabsFilter.js +2 -2
  239. package/dist/esm/components/TabsFilter/TabsFilter.js.map +1 -1
  240. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  241. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  242. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  243. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  244. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  245. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  246. package/dist/esm/components/ToolbarTitle/ToolbarTitle.js +8 -2
  247. package/dist/esm/components/ToolbarTitle/ToolbarTitle.js.map +1 -1
  248. package/dist/esm/components/common.st.css.js +2 -2
  249. package/dist/esm/exports/testkit/unidriver.js +2 -1
  250. package/dist/esm/exports/testkit/unidriver.js.map +1 -1
  251. package/dist/esm/hooks/useBulkActionMobileGroups.js +2 -1
  252. package/dist/esm/hooks/useBulkActionMobileGroups.js.map +1 -1
  253. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  254. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  255. package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  256. package/dist/esm/state/NestedTableState/NestedTableNodeStateOptimisticActions.js.map +1 -1
  257. package/dist/esm/state/ToolbarCollectionState.js +2 -0
  258. package/dist/esm/state/ToolbarCollectionState.js.map +1 -1
  259. package/dist/esm/styles.global.css +1 -1
  260. package/dist/esm/version.js +1 -1
  261. package/dist/esm/wix-design-system-version.js +1 -1
  262. package/dist/types/components/ActionControl/ActionSubItemProps.d.ts +8 -6
  263. package/dist/types/components/ActionControl/ActionSubItemProps.d.ts.map +1 -1
  264. package/dist/types/components/ArchivedItemsPanel/ArchivedItemsCTAButton.d.ts +3 -1
  265. package/dist/types/components/ArchivedItemsPanel/ArchivedItemsCTAButton.d.ts.map +1 -1
  266. package/dist/types/components/ArchivedItemsPanel/ArchivedItemsPanel.d.ts.map +1 -1
  267. package/dist/types/components/ArchivedItemsPanel/DeleteFieldModal.d.ts +11 -0
  268. package/dist/types/components/ArchivedItemsPanel/DeleteFieldModal.d.ts.map +1 -0
  269. package/dist/types/components/CollectionCard/CollectionCard.d.ts.map +1 -1
  270. package/dist/types/components/CollectionErrorState/CollectionErrorState.d.ts +1 -1
  271. package/dist/types/components/CollectionPageHeaderNew/CollectionPageHeader.d.ts +4 -4
  272. package/dist/types/components/CollectionPageNew/CollectionPage.st.css.d.ts.map +1 -1
  273. package/dist/types/components/CollectionTable/CollectionTable.st.css.d.ts.map +1 -1
  274. package/dist/types/components/CollectionToolbar/CollectionToolbar.d.ts.map +1 -1
  275. package/dist/types/components/CollectionToolbar/CollectionToolbar.st.css.d.ts.map +1 -1
  276. package/dist/types/components/CollectionToolbar/CollectionToolbarActionsGroupProps.d.ts +2 -0
  277. package/dist/types/components/CollectionToolbar/CollectionToolbarActionsGroupProps.d.ts.map +1 -1
  278. package/dist/types/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.d.ts.map +1 -1
  279. package/dist/types/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.d.ts +5 -1
  280. package/dist/types/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.d.ts.map +1 -1
  281. package/dist/types/components/CollectionToolbar/SearchOrCustomFilter.d.ts +3 -0
  282. package/dist/types/components/CollectionToolbar/SearchOrCustomFilter.d.ts.map +1 -1
  283. package/dist/types/components/CollectionToolbar/useIsCollectionToolbarExists.d.ts +2 -1
  284. package/dist/types/components/CollectionToolbar/useIsCollectionToolbarExists.d.ts.map +1 -1
  285. package/dist/types/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.d.ts.map +1 -1
  286. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
  287. package/dist/types/components/CustomColumnsPanel/CustomColumnsPanel.d.ts.map +1 -1
  288. package/dist/types/components/CustomDrawerLayout.d.ts +15 -0
  289. package/dist/types/components/CustomDrawerLayout.d.ts.map +1 -0
  290. package/dist/types/components/CustomFieldsWidget/CustomFieldsWidgetCommonComponents.d.ts.map +1 -1
  291. package/dist/types/components/EntityPage/EntityPagePlain.st.css.d.ts.map +1 -1
  292. package/dist/types/components/ExportButton/ExportButton.d.ts.map +1 -1
  293. package/dist/types/components/ExportButton/ExportButtonModalLayout.d.ts.map +1 -1
  294. package/dist/types/components/ExportButton/ExportModal.d.ts.map +1 -1
  295. package/dist/types/components/ExportButton/ExportModal.uni.driver.d.ts.map +1 -1
  296. package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
  297. package/dist/types/components/FiltersPanel/FiltersPanelAppliedFiltersSection.d.ts.map +1 -1
  298. package/dist/types/components/Grid/GridFolders.uni.driver.d.ts +4 -0
  299. package/dist/types/components/Grid/GridFolders.uni.driver.d.ts.map +1 -1
  300. package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
  301. package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
  302. package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
  303. package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.d.ts.map +1 -1
  304. package/dist/types/components/Suggestions/MarketingCard.d.ts +41 -0
  305. package/dist/types/components/Suggestions/MarketingCard.d.ts.map +1 -0
  306. package/dist/types/components/Suggestions/MarketingCard.uni.driver.d.ts +61 -0
  307. package/dist/types/components/Suggestions/MarketingCard.uni.driver.d.ts.map +1 -0
  308. package/dist/types/components/Suggestions/Suggestions.d.ts +1 -23
  309. package/dist/types/components/Suggestions/Suggestions.d.ts.map +1 -1
  310. package/dist/types/components/Suggestions/Suggestions.uni.driver.d.ts +18 -8
  311. package/dist/types/components/Suggestions/Suggestions.uni.driver.d.ts.map +1 -1
  312. package/dist/types/components/Suggestions/index.d.ts +4 -1
  313. package/dist/types/components/Suggestions/index.d.ts.map +1 -1
  314. package/dist/types/components/Suggestions/types.d.ts +38 -0
  315. package/dist/types/components/Suggestions/types.d.ts.map +1 -0
  316. package/dist/types/components/TabTotal/TabTotalCounterBadge.d.ts.map +1 -1
  317. package/dist/types/components/TabsFilter/TabsDropdown.d.ts +2 -0
  318. package/dist/types/components/TabsFilter/TabsDropdown.d.ts.map +1 -1
  319. package/dist/types/components/TabsFilter/TabsFilter.d.ts +15 -4
  320. package/dist/types/components/TabsFilter/TabsFilter.d.ts.map +1 -1
  321. package/dist/types/components/TabsFilter/TabsFilter.st.css.d.ts.map +1 -1
  322. package/dist/types/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.d.ts.map +1 -1
  323. package/dist/types/components/ToolbarCollection/ToolbarCollection.d.ts +3 -3
  324. package/dist/types/components/ToolbarTitle/ToolbarTitle.d.ts.map +1 -1
  325. package/dist/types/exports/testkit/unidriver.d.ts +2 -1
  326. package/dist/types/exports/testkit/unidriver.d.ts.map +1 -1
  327. package/dist/types/hooks/useBulkActionMobileGroups.d.ts.map +1 -1
  328. package/dist/types/hooks/useItemsSelectionFilter/useItemsSelectionFilter.d.ts +1 -1
  329. package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
  330. package/dist/types/state/NestedTableState/NestedTableNodeStateOptimisticActions.d.ts +24 -0
  331. package/dist/types/state/NestedTableState/NestedTableNodeStateOptimisticActions.d.ts.map +1 -1
  332. package/dist/types/state/NestedTableState/NestedTableNodeStatePublicAPI.d.ts +1 -0
  333. package/dist/types/state/NestedTableState/NestedTableNodeStatePublicAPI.d.ts.map +1 -1
  334. package/dist/types/state/NestedTableState/index.d.ts +1 -0
  335. package/dist/types/state/NestedTableState/index.d.ts.map +1 -1
  336. package/dist/types/state/ToolbarCollectionState.d.ts +1 -0
  337. package/dist/types/state/ToolbarCollectionState.d.ts.map +1 -1
  338. package/dist/types/testkit/jsdom.d.ts +11 -7
  339. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  340. package/dist/types/version.d.ts +1 -1
  341. package/dist/types/wix-design-system-version.d.ts +1 -1
  342. package/package.json +6 -6
  343. package/src/components/ActionControl/ActionSubItemProps.tsx +8 -6
  344. package/src/components/ArchivedItemsPanel/ArchivedItemsCTAButton.tsx +15 -5
  345. package/src/components/ArchivedItemsPanel/ArchivedItemsPanel.tsx +41 -85
  346. package/src/components/ArchivedItemsPanel/DeleteFieldModal.tsx +50 -0
  347. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  348. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  349. package/src/components/CollectionCard/CollectionCard.tsx +6 -0
  350. package/src/components/CollectionErrorState/CollectionErrorState.tsx +1 -1
  351. package/src/components/CollectionPageHeaderNew/CollectionPageHeader.tsx +4 -4
  352. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  353. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  354. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  355. package/src/components/CollectionToolbar/CollectionToolbar.tsx +6 -3
  356. package/src/components/CollectionToolbar/CollectionToolbarActionsGroupProps.ts +2 -0
  357. package/src/components/CollectionToolbar/CollectionToolbarActionsGroupResponsiveLayout.tsx +2 -1
  358. package/src/components/CollectionToolbar/CollectionToolbarActionsToolbarItemsGroup.tsx +58 -41
  359. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css +4 -5
  360. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  361. package/src/components/CollectionToolbar/SearchOrCustomFilter.tsx +16 -9
  362. package/src/components/CollectionToolbar/useIsCollectionToolbarExists.tsx +5 -2
  363. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  364. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  365. package/src/components/CustomColumnsPanel/CustomColumnsPanel.tsx +1 -0
  366. package/src/components/CustomDrawerLayout.tsx +82 -0
  367. package/src/components/CustomFieldsWidget/CustomFieldsWidgetCommonComponents.tsx +4 -0
  368. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  369. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  370. package/src/components/ExportButton/ExportButton.tsx +30 -9
  371. package/src/components/ExportButton/ExportButtonModalLayout.tsx +14 -0
  372. package/src/components/ExportButton/ExportModal.tsx +21 -2
  373. package/src/components/ExportButton/ExportModal.uni.driver.ts +11 -10
  374. package/src/components/ExportButton/ExportStepProgress.tsx +1 -1
  375. package/src/components/Fade/Fade.st.css.ts +2 -2
  376. package/src/components/FiltersPanel/FiltersPanelAppliedFiltersSection.tsx +1 -0
  377. package/src/components/Heading/Heading.st.css.ts +2 -2
  378. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  379. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  380. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  381. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  382. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  383. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  384. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  385. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  386. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  387. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  388. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  389. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  390. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  391. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  392. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  393. package/src/components/Suggestions/MarketingCard.tsx +196 -0
  394. package/src/components/Suggestions/MarketingCard.uni.driver.ts +53 -0
  395. package/src/components/Suggestions/Suggestions.tsx +99 -63
  396. package/src/components/Suggestions/Suggestions.uni.driver.ts +89 -23
  397. package/src/components/Suggestions/index.ts +14 -1
  398. package/src/components/Suggestions/types.ts +41 -0
  399. package/src/components/TabTotal/TabTotalCounterBadge.tsx +4 -2
  400. package/src/components/TabsFilter/TabsDropdown.tsx +9 -2
  401. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  402. package/src/components/TabsFilter/TabsFilter.tsx +23 -4
  403. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  404. package/src/components/ToolbarCollection/ToolbarCollection.tsx +3 -3
  405. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  406. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  407. package/src/components/ToolbarTitle/ToolbarTitle.tsx +10 -0
  408. package/src/components/common.st.css.ts +2 -2
  409. package/src/exports/testkit/unidriver.ts +5 -1
  410. package/src/hooks/useBulkActionMobileGroups.ts +2 -1
  411. package/src/hooks/useItemsSelectionFilter/useItemsSelectionFilter.ts +1 -1
  412. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  413. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  414. package/src/state/NestedTableState/NestedTableNodeStateOptimisticActions.ts +24 -0
  415. package/src/state/NestedTableState/NestedTableNodeStatePublicAPI.ts +1 -0
  416. package/src/state/NestedTableState/index.ts +1 -0
  417. package/src/state/ToolbarCollectionState.ts +3 -0
  418. package/src/styles.global.css +1 -1
  419. package/src/version.ts +1 -1
  420. package/src/wix-design-system-version.ts +1 -1
  421. package/dist/cjs/components/Suggestions/Suggestions.driver.js +0 -58
  422. package/dist/cjs/components/Suggestions/Suggestions.driver.js.map +0 -1
  423. package/dist/esm/components/Suggestions/Suggestions.driver.js +0 -32
  424. package/dist/esm/components/Suggestions/Suggestions.driver.js.map +0 -1
  425. package/dist/types/components/Suggestions/Suggestions.driver.d.ts +0 -40
  426. package/dist/types/components/Suggestions/Suggestions.driver.d.ts.map +0 -1
  427. package/src/components/Suggestions/Suggestions.driver.tsx +0 -47
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "PickerContentAdditionalStep2653849695";
8
+ var _namespace_ = "PickerContentAdditionalStep2051639453";
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":"PickerContentAdditionalStep2653849695__root","titles":"PickerContentAdditionalStep2653849695__titles","suffix":"PickerContentAdditionalStep2653849695__suffix"};
16
+ export var classes = {"root":"PickerContentAdditionalStep2051639453__root","titles":"PickerContentAdditionalStep2051639453__titles","suffix":"PickerContentAdditionalStep2051639453__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_ = "PickerTableListItem4193578985";
8
+ var _namespace_ = "PickerTableListItem2181412847";
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":"PickerTableListItem4193578985__root"};
16
+ export var classes = {"root":"PickerTableListItem2181412847__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_ = "ScrollableContent2579072526";
8
+ var _namespace_ = "ScrollableContent3215793638";
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":"ScrollableContent2579072526__root"};
16
+ export var classes = {"root":"ScrollableContent3215793638__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_ = "SkeletonCard342119583";
8
+ var _namespace_ = "SkeletonCard837474356";
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":"SkeletonCard342119583__root","headerLoading":"SkeletonCard342119583__headerLoading"};
16
+ export var classes = {"root":"SkeletonCard837474356__root","headerLoading":"SkeletonCard837474356__headerLoading"};
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_ = "SlidingModal1985984796";
8
+ var _namespace_ = "SlidingModal1449859352";
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":"SlidingModal1985984796__root"};
16
+ export var classes = {"root":"SlidingModal1449859352__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -0,0 +1,196 @@
1
+ import React from 'react';
2
+ import {
3
+ Box,
4
+ MarketingLayout,
5
+ SkeletonLine,
6
+ Card,
7
+ Button,
8
+ BadgeSkin,
9
+ ButtonSkin,
10
+ Image,
11
+ Text,
12
+ TextButton,
13
+ Badge,
14
+ SkeletonRectangle,
15
+ ButtonPriority,
16
+ } from '@wix/design-system';
17
+ import { Offer } from '@wix/bex-utils/@wix/ambassador-dealer-v1-serving-offer/types';
18
+ import { BaseCardComponentProps, SuggestionsCardProps } from './types';
19
+
20
+ /**
21
+ * Schema for marketing card content.
22
+ * This defines the structure expected in offer.asset.creative for MarketingCard rendering.
23
+ */
24
+ export interface MarketingCardSchema {
25
+ title: string;
26
+ description: {
27
+ text: string;
28
+ learnMore?: {
29
+ link: string;
30
+ text?: string; // defaults to 'Learn more'
31
+ };
32
+ };
33
+ imageUrl: string;
34
+ ctaButton?: {
35
+ text: string;
36
+ link: string;
37
+ skin?: Extract<ButtonSkin, 'standard' | 'premium' | 'ai'>; // defaults to 'standard'
38
+ priority?: Extract<ButtonPriority, 'primary' | 'secondary'>; // defaults to 'secondary'
39
+ };
40
+ badge?: {
41
+ text: string;
42
+ skin?: Extract<BadgeSkin, 'general' | 'success' | 'premium'>; // defaults to 'general'
43
+ };
44
+ }
45
+
46
+ const getCardWidth = (totalOffers: number) => {
47
+ if (totalOffers === 1) {
48
+ return '100%';
49
+ }
50
+ if (totalOffers === 2) {
51
+ return '50%';
52
+ }
53
+ return '550px';
54
+ };
55
+
56
+ interface MarketingCardInternalProps {
57
+ schema: MarketingCardSchema;
58
+ totalOffers: number;
59
+ }
60
+
61
+ const MarketingCardInternal: React.FC<MarketingCardInternalProps> = ({
62
+ schema,
63
+ totalOffers,
64
+ }) => {
65
+ const {
66
+ title,
67
+ description: descriptionData,
68
+ imageUrl,
69
+ ctaButton: ctaButtonData,
70
+ badge: badgeData,
71
+ } = schema;
72
+
73
+ const handleCtaClick = () => {
74
+ if (ctaButtonData?.link) {
75
+ window.open(ctaButtonData.link, '_blank');
76
+ }
77
+ };
78
+
79
+ const handleLearnMoreClick = () => {
80
+ if (descriptionData?.learnMore?.link) {
81
+ window.open(descriptionData.learnMore.link, '_blank');
82
+ }
83
+ };
84
+
85
+ const description = (
86
+ <>
87
+ <Text size="small" secondary dataHook="suggestions-card-subtitle">
88
+ {descriptionData.text}{' '}
89
+ </Text>
90
+ {descriptionData.learnMore && (
91
+ <TextButton
92
+ size="small"
93
+ secondary
94
+ dataHook="suggestions-card-learn-more"
95
+ onClick={handleLearnMoreClick}
96
+ >
97
+ {descriptionData.learnMore.text ?? 'Learn more'}
98
+ </TextButton>
99
+ )}
100
+ </>
101
+ );
102
+
103
+ const ctaButton = ctaButtonData ? (
104
+ <Button
105
+ size="small"
106
+ skin={ctaButtonData.skin || 'standard'}
107
+ priority={ctaButtonData.priority || 'secondary'}
108
+ dataHook="suggestions-card-button"
109
+ onClick={handleCtaClick}
110
+ >
111
+ {ctaButtonData.text}
112
+ </Button>
113
+ ) : null;
114
+
115
+ const badge = badgeData ? (
116
+ <Badge
117
+ skin={badgeData.skin || 'general'}
118
+ size="small"
119
+ dataHook="suggestion-card-badge"
120
+ uppercase={false}
121
+ >
122
+ {badgeData.text}
123
+ </Badge>
124
+ ) : null;
125
+
126
+ const image = (
127
+ <Image
128
+ src={imageUrl}
129
+ width={96}
130
+ height={96}
131
+ borderRadius="8px"
132
+ dataHook="suggestions-card-image"
133
+ />
134
+ );
135
+
136
+ return (
137
+ <Box dataHook="suggestions-card" width={getCardWidth(totalOffers)}>
138
+ <Card stretchVertically>
139
+ <MarketingLayout
140
+ title={title}
141
+ description={description}
142
+ image={image}
143
+ actions={[ctaButton]}
144
+ badge={badge}
145
+ hiddenBadge={!badge}
146
+ />
147
+ </Card>
148
+ </Box>
149
+ );
150
+ };
151
+
152
+ /**
153
+ * Creates a render function for marketing cards.
154
+ * @param translateOffer - Optional function to transform offer data into MarketingCardSchema.
155
+ * If not provided, uses offer.asset.creative directly.
156
+ * @returns A render function compatible with Suggestions.renderCard prop.
157
+ */
158
+ export const renderMarketingCard =
159
+ (translateOffer?: (offer: Offer) => MarketingCardSchema | null) =>
160
+ (props: SuggestionsCardProps): React.ReactNode | null => {
161
+ const schema = translateOffer
162
+ ? translateOffer(props.offer)
163
+ : (props.offer?.asset?.creative as MarketingCardSchema | null);
164
+
165
+ const requiredFieldsExist =
166
+ schema?.title && schema?.imageUrl && schema?.description?.text;
167
+
168
+ if (!requiredFieldsExist) {
169
+ return null;
170
+ }
171
+ return (
172
+ <MarketingCardInternal schema={schema} totalOffers={props.totalOffers} />
173
+ );
174
+ };
175
+
176
+ /**
177
+ * Skeleton component for MarketingCard during loading state.
178
+ */
179
+ export const MarketingCardSkeleton: React.FC<BaseCardComponentProps> = ({
180
+ totalOffers,
181
+ }) => {
182
+ return (
183
+ <Box dataHook="suggestions-card" width={getCardWidth(totalOffers)}>
184
+ <Card stretchVertically>
185
+ <MarketingLayout
186
+ title={<SkeletonLine width="120px" />}
187
+ description={<SkeletonLine width="168px" />}
188
+ actions={[<SkeletonRectangle width="72px" height="30px" />]}
189
+ image={<SkeletonRectangle width="96px" height="96px" />}
190
+ badge={<Badge />}
191
+ hiddenBadge={true}
192
+ />
193
+ </Card>
194
+ </Box>
195
+ );
196
+ };
@@ -0,0 +1,53 @@
1
+ import { UniDriver } from '@wix/wix-ui-test-utils/unidriver';
2
+ import {
3
+ MarketingLayoutUniDriver,
4
+ BadgeUniDriver,
5
+ ButtonUniDriver,
6
+ TextButtonUniDriver,
7
+ TextUniDriver,
8
+ ImageUniDriver,
9
+ } from '@wix/design-system/dist/testkit/unidriver';
10
+ import { baseUniDriverFactory } from '../../unidriver';
11
+
12
+ export function MarketingCardUniDriver(base: UniDriver, body: UniDriver) {
13
+ const marketingLayout = MarketingLayoutUniDriver(base, body);
14
+
15
+ const subtitle = TextUniDriver(
16
+ base.$('[data-hook="suggestions-card-subtitle"]'),
17
+ body,
18
+ );
19
+ const learnMore = TextButtonUniDriver(
20
+ base.$('[data-hook="suggestions-card-learn-more"]'),
21
+ body,
22
+ );
23
+
24
+ const ctaButton = ButtonUniDriver(
25
+ base.$('[data-hook="suggestions-card-button"]'),
26
+ body,
27
+ );
28
+ const badge = BadgeUniDriver(
29
+ base.$('[data-hook="suggestion-card-badge"]'),
30
+ body,
31
+ );
32
+ const image = ImageUniDriver(
33
+ base.$('[data-hook="suggestions-card-image"]'),
34
+ body,
35
+ );
36
+
37
+ return {
38
+ ...baseUniDriverFactory(base),
39
+
40
+ getTitleText: () => marketingLayout.getTitleText(),
41
+ description: {
42
+ subtitle,
43
+ learnMore,
44
+ },
45
+ ctaButton,
46
+ badge,
47
+ image,
48
+ };
49
+ }
50
+
51
+ export type MarketingCardUniDriverType = ReturnType<
52
+ typeof MarketingCardUniDriver
53
+ >;
@@ -1,33 +1,15 @@
1
1
  import React, { useEffect, useState } from 'react';
2
- import { CarouselWIP, CarouselWIPProps, COLOR_TOKENS } from '@wix/design-system';
2
+ import {
3
+ CarouselWIP,
4
+ CarouselWIPProps,
5
+ COLOR_TOKENS,
6
+ Box,
7
+ } from '@wix/design-system';
3
8
  import { SuggestionsState } from '../../state/Suggestions/SuggestionsState';
4
9
  import { observer } from 'mobx-react-lite';
5
- import { Offer } from '@wix/bex-utils/@wix/ambassador-dealer-v1-serving-offer/types';
6
10
  import { useWixPatternsContainer } from '@wix/bex-core/react';
7
-
8
- export interface BaseCardComponentProps {
9
- index: number;
10
- totalCards: number;
11
- }
12
-
13
- export interface SuggestionsCardComponentProps extends BaseCardComponentProps {
14
- offer: Offer;
15
- }
16
-
17
- export interface SuggestionsProps {
18
- /** The placement ID to fetch offers for */
19
- placementId: string;
20
- /** Props to pass to the carousel component */
21
- carouselProps?: CarouselWIPProps;
22
- /** Card component to render each offer */
23
- CardComponent: React.ComponentType<SuggestionsCardComponentProps>;
24
- /** Skeleton component to render when loading */
25
- CardSkeleton: React.ComponentType<BaseCardComponentProps>;
26
- /** Number of skeletons to render when loading */
27
- skeletonsNumber?: number;
28
- /** Data hook to use for the suggestions component */
29
- dataHook?: string;
30
- }
11
+ import { MarketingCardSkeleton } from './MarketingCard';
12
+ import { SuggestionsProps } from './types';
31
13
 
32
14
  const defaultCarouselProps: CarouselWIPProps = {
33
15
  hideDots: true,
@@ -39,14 +21,56 @@ const defaultCarouselProps: CarouselWIPProps = {
39
21
  controlsStartEnd: 'hidden',
40
22
  };
41
23
 
24
+ interface SuggestionsContainerProps {
25
+ count: number;
26
+ children: React.ReactNode;
27
+ carouselProps?: CarouselWIPProps;
28
+ dataHook: string;
29
+ dataState: 'idle' | 'loading';
30
+ }
31
+
32
+ const SuggestionsContainer: React.FC<SuggestionsContainerProps> = ({
33
+ count,
34
+ children,
35
+ carouselProps,
36
+ dataHook,
37
+ dataState,
38
+ }) => {
39
+ if (count <= 2) {
40
+ return (
41
+ <div data-hook={dataHook}>
42
+ <Box
43
+ direction="horizontal"
44
+ gap="SP4"
45
+ dataHook={`${dataHook}-container-${dataState}`}
46
+ >
47
+ {children}
48
+ </Box>
49
+ </div>
50
+ );
51
+ }
52
+
53
+ return (
54
+ <div data-hook={dataHook}>
55
+ <CarouselWIP
56
+ dataHook={`${dataHook}-carousel-${dataState}`}
57
+ {...defaultCarouselProps}
58
+ {...carouselProps}
59
+ >
60
+ {children}
61
+ </CarouselWIP>
62
+ </div>
63
+ );
64
+ };
65
+
42
66
  export const Suggestions: React.FC<SuggestionsProps> = observer(
43
67
  ({
44
68
  placementId,
45
- CardComponent,
46
- CardSkeleton,
69
+ renderCard,
70
+ CardSkeleton = MarketingCardSkeleton,
47
71
  carouselProps,
48
72
  skeletonsNumber = 4,
49
- dataHook,
73
+ dataHook = 'suggestions',
50
74
  }) => {
51
75
  const { httpClient } = useWixPatternsContainer();
52
76
 
@@ -59,46 +83,58 @@ export const Suggestions: React.FC<SuggestionsProps> = observer(
59
83
  }, [state]);
60
84
 
61
85
  if (state.hasOffers) {
86
+ const cardCount = state.offers.length;
87
+ const cards = state.offers
88
+ .map((offer, index) => ({
89
+ key: offer.offerGuid || `suggestion-${index}`,
90
+ element: renderCard({
91
+ offer,
92
+ index,
93
+ totalOffers: state.offers.length,
94
+ }),
95
+ }))
96
+ .filter(({ element }) => element !== null);
97
+
98
+ // Return null if all cards filtered out
99
+ if (cards.length === 0) {
100
+ return null;
101
+ }
102
+
62
103
  return (
63
- <div data-hook={dataHook}>
64
- <CarouselWIP
65
- key="suggestions-carousel"
66
- dataHook="suggestions-carousel"
67
- {...defaultCarouselProps}
68
- {...carouselProps}
69
- >
70
- {state.offers.map((offer, index: number) => (
71
- <CardComponent
72
- offer={offer}
73
- index={index}
74
- totalCards={state.offers.length}
75
- key={offer.offerGuid || `suggestion-${index}`}
76
- />
77
- ))}
78
- </CarouselWIP>
79
- </div>
104
+ <SuggestionsContainer
105
+ // use initial cards count for container, to match the count the cards get rendered with
106
+ count={cardCount}
107
+ carouselProps={carouselProps}
108
+ dataHook={dataHook}
109
+ dataState="idle"
110
+ >
111
+ {cards.map(({ key, element }) => (
112
+ <React.Fragment key={key}>{element}</React.Fragment>
113
+ ))}
114
+ </SuggestionsContainer>
80
115
  );
81
116
  }
82
117
 
83
118
  if (state.isFetching) {
119
+ const skeletons = Array.from({ length: skeletonsNumber }).map(
120
+ (_, index) => (
121
+ <CardSkeleton
122
+ index={index}
123
+ totalOffers={skeletonsNumber}
124
+ key={index}
125
+ />
126
+ ),
127
+ );
128
+
84
129
  return (
85
- <div data-hook={dataHook}>
86
- <CarouselWIP
87
- key="suggestions-carousel-skeleton"
88
- dataHook="suggestions-carousel-skeleton"
89
- {...defaultCarouselProps}
90
- controlsPosition="none"
91
- {...carouselProps}
92
- >
93
- {Array.from({ length: skeletonsNumber }).map((_, index) => (
94
- <CardSkeleton
95
- index={index}
96
- totalCards={skeletonsNumber}
97
- key={index}
98
- />
99
- ))}
100
- </CarouselWIP>
101
- </div>
130
+ <SuggestionsContainer
131
+ count={skeletonsNumber}
132
+ carouselProps={{ ...carouselProps, controlsPosition: 'none' }}
133
+ dataHook={dataHook}
134
+ dataState="loading"
135
+ >
136
+ {skeletons}
137
+ </SuggestionsContainer>
102
138
  );
103
139
  }
104
140
 
@@ -4,35 +4,101 @@ import {
4
4
  UniDriver,
5
5
  } from '@wix/wix-ui-test-utils/unidriver';
6
6
 
7
- export const SuggestionsUniDriver = (base: UniDriver, body: UniDriver) => {
8
- const carousel = CarouselWIPUniDriver(
9
- base.$('[data-hook="suggestions-carousel"]'),
7
+ export interface SuggestionsUniDriverOptions {
8
+ /** Data hook for the Suggestions component (default: 'suggestions') */
9
+ dataHook?: string;
10
+ /** Data hook for individual cards (default: 'suggestions-card' for MarketingCard) */
11
+ cardDataHook?: string;
12
+ }
13
+
14
+ export const SuggestionsUniDriver = (
15
+ base: UniDriver,
16
+ body: UniDriver,
17
+ options: SuggestionsUniDriverOptions = {},
18
+ ) => {
19
+ const dataHook = options.dataHook ?? 'suggestions';
20
+ const cardDataHook = options.cardDataHook ?? 'suggestions-card';
21
+
22
+ const carouselIdle = CarouselWIPUniDriver(
23
+ base.$(`[data-hook="${dataHook}-carousel-idle"]`),
10
24
  body,
11
25
  );
12
- const carouselSkeleton = CarouselWIPUniDriver(
13
- base.$('[data-hook="suggestions-carousel-skeleton"]'),
26
+ const carouselLoading = CarouselWIPUniDriver(
27
+ base.$(`[data-hook="${dataHook}-carousel-loading"]`),
14
28
  body,
15
29
  );
16
30
 
31
+ const containerIdle = base.$(`[data-hook="${dataHook}-container-idle"]`);
32
+ const containerLoading = base.$(
33
+ `[data-hook="${dataHook}-container-loading"]`,
34
+ );
35
+
36
+ const getCarouselChildren = async (): Promise<UniDriver[] | null> => {
37
+ if (await carouselIdle.exists()) {
38
+ // @ts-expect-error carousel types are wrong, getChildren returns a Promise of an array and not UniDriverList
39
+ return carouselIdle.getChildren();
40
+ }
41
+ if (await carouselLoading.exists()) {
42
+ // @ts-expect-error carousel types are wrong, getChildren returns a Promise of an array and not UniDriverList
43
+ return carouselLoading.getChildren();
44
+ }
45
+ return null;
46
+ };
47
+
48
+ const getContainerChildren = async () => {
49
+ if (await containerIdle.exists()) {
50
+ return containerIdle.$$(`[data-hook="${cardDataHook}"]`);
51
+ }
52
+ if (await containerLoading.exists()) {
53
+ return containerLoading.$$(`[data-hook="${cardDataHook}"]`);
54
+ }
55
+ return null;
56
+ };
57
+
58
+ const isLoadingState = async () => {
59
+ const isContainerLoading = await containerLoading.exists();
60
+ const isCarouselLoading = await carouselLoading.exists();
61
+ return isContainerLoading || isCarouselLoading;
62
+ };
63
+
17
64
  return {
18
65
  ...baseUniDriverFactory(base),
19
- isLoading: () => carouselSkeleton.exists(),
20
- hasOffers: () => carousel.exists(),
21
- isEmpty: async () =>
22
- !(await carousel.exists()) && !(await carouselSkeleton.exists()),
23
- getCardsCounts: async () =>
24
- // @ts-expect-error carousel types are wrong, getChildren returns a Promise of an array and not UniDriverList
25
- (await carousel.exists()) ? (await carousel.getChildren()).length : 0,
26
- getSkeletonCardsCount: async () =>
27
- (await carouselSkeleton.exists())
28
- ? // @ts-expect-error carousel types are wrong, getChildren returns a Promise of an array and not UniDriverList
29
- (await carouselSkeleton.getChildren()).length
30
- : 0,
31
- // @ts-expect-error carousel types are wrong, getChildren returns a Promise of an array and not UniDriverList
32
- getCardAt: async (index: number) => (await carousel.getChildren())[index],
33
- getSkeletonCardAt: (index: number) =>
34
- carouselSkeleton.getChildren().at(index),
35
- carousel: () => carousel,
36
- carouselSkeleton: () => carouselSkeleton,
66
+ isLoading: isLoadingState,
67
+ hasOffers: async () => {
68
+ const carouselExists = await carouselIdle.exists();
69
+ const containerExists = await containerIdle.exists();
70
+ return carouselExists || containerExists;
71
+ },
72
+ isEmpty: async () => {
73
+ const carouselExists = await carouselIdle.exists();
74
+ const containerExists = await containerIdle.exists();
75
+ return !carouselExists && !containerExists;
76
+ },
77
+ getCardsCounts: async () => {
78
+ const carouselChildren = await getCarouselChildren();
79
+ if (carouselChildren) {
80
+ return carouselChildren.length;
81
+ }
82
+ const containerChildren = await getContainerChildren();
83
+ if (containerChildren) {
84
+ return containerChildren.count();
85
+ }
86
+ return 0;
87
+ },
88
+ getCardAt: async (index: number) => {
89
+ const carouselChildren = await getCarouselChildren();
90
+ if (carouselChildren) {
91
+ return carouselChildren[index];
92
+ }
93
+ const containerChildren = await getContainerChildren();
94
+ if (containerChildren) {
95
+ return containerChildren.at(index);
96
+ }
97
+ throw new Error(`No cards found at index ${index}`);
98
+ },
99
+ carousel: async () =>
100
+ (await carouselIdle.exists()) ? carouselIdle : carouselLoading,
101
+ container: async () =>
102
+ (await containerIdle.exists()) ? containerIdle : containerLoading,
37
103
  };
38
104
  };
@@ -1 +1,14 @@
1
- export * from './Suggestions';
1
+ // Main component
2
+ export { Suggestions } from './Suggestions';
3
+
4
+ // Types
5
+ export type {
6
+ SuggestionsProps,
7
+ SuggestionsCardProps,
8
+ BaseCardComponentProps,
9
+ Offer,
10
+ } from './types';
11
+
12
+ // MarketingCard - pre-built card component
13
+ export { renderMarketingCard, MarketingCardSkeleton } from './MarketingCard';
14
+ export type { MarketingCardSchema } from './MarketingCard';