@wix/patterns 1.359.0 → 1.360.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 (268) 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/Collapse/Collapse.st.css.js +3 -3
  4. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  5. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  6. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  7. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
  8. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  9. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  10. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  11. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  12. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  13. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  14. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  15. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  16. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  17. package/dist/cjs/components/CollectionViewsDropdown/CollectionViewsDropdown.uni.driver.js +85 -11
  18. package/dist/cjs/components/CollectionViewsDropdown/CollectionViewsDropdown.uni.driver.js.map +1 -1
  19. package/dist/cjs/components/CollectionViewsDropdown/ManageViewPopover.js +102 -75
  20. package/dist/cjs/components/CollectionViewsDropdown/ManageViewPopover.js.map +1 -1
  21. package/dist/cjs/components/CollectionViewsDropdown/ManageViewPopover.uni.driver.js +23 -9
  22. package/dist/cjs/components/CollectionViewsDropdown/ManageViewPopover.uni.driver.js.map +1 -1
  23. package/dist/cjs/components/CollectionViewsDropdown/SaveToNewViewFooter.js +63 -0
  24. package/dist/cjs/components/CollectionViewsDropdown/SaveToNewViewFooter.js.map +1 -0
  25. package/dist/cjs/components/CollectionViewsDropdown/SaveToNewViewFooter.uni.driver.js +20 -0
  26. package/dist/cjs/components/CollectionViewsDropdown/SaveToNewViewFooter.uni.driver.js.map +1 -0
  27. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.js +64 -30
  28. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.js.map +1 -1
  29. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  30. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  31. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdownPrefix.js +15 -9
  32. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdownPrefix.js.map +1 -1
  33. package/dist/cjs/components/CollectionViewsDropdown/viewsDropdownRenderHelpers.js +20 -12
  34. package/dist/cjs/components/CollectionViewsDropdown/viewsDropdownRenderHelpers.js.map +1 -1
  35. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  36. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  37. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  38. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  39. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  40. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  41. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  42. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  43. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
  44. package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
  45. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  46. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  47. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  48. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  49. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  50. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  51. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  52. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  53. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  54. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  55. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  56. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  57. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  58. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  59. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  60. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  61. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  62. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  63. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  64. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  65. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  66. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  67. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  68. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  69. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  70. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  71. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  72. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  73. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  74. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  75. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  76. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  77. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  78. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  79. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  80. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  81. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  82. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  83. package/dist/cjs/components/common.st.css.js +4 -4
  84. package/dist/cjs/components/common.st.css.js.map +1 -1
  85. package/dist/cjs/model/view.js.map +1 -1
  86. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  87. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  88. package/dist/cjs/state/CollectionViewsStateBIReporter.js +20 -2
  89. package/dist/cjs/state/CollectionViewsStateBIReporter.js.map +1 -1
  90. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  91. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  92. package/dist/cjs/styles.global.css +1 -1
  93. package/dist/cjs/version.js +1 -1
  94. package/dist/cjs/version.js.map +1 -1
  95. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  96. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  97. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  98. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
  99. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
  100. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  101. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  102. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  103. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  104. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  105. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  106. package/dist/esm/components/CollectionViewsDropdown/CollectionViewsDropdown.uni.driver.js +79 -11
  107. package/dist/esm/components/CollectionViewsDropdown/CollectionViewsDropdown.uni.driver.js.map +1 -1
  108. package/dist/esm/components/CollectionViewsDropdown/ManageViewPopover.js +28 -43
  109. package/dist/esm/components/CollectionViewsDropdown/ManageViewPopover.js.map +1 -1
  110. package/dist/esm/components/CollectionViewsDropdown/ManageViewPopover.uni.driver.js +24 -9
  111. package/dist/esm/components/CollectionViewsDropdown/ManageViewPopover.uni.driver.js.map +1 -1
  112. package/dist/esm/components/CollectionViewsDropdown/SaveToNewViewFooter.js +17 -0
  113. package/dist/esm/components/CollectionViewsDropdown/SaveToNewViewFooter.js.map +1 -0
  114. package/dist/esm/components/CollectionViewsDropdown/SaveToNewViewFooter.uni.driver.js +15 -0
  115. package/dist/esm/components/CollectionViewsDropdown/SaveToNewViewFooter.uni.driver.js.map +1 -0
  116. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.js +33 -10
  117. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.js.map +1 -1
  118. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  119. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdownPrefix.js +7 -2
  120. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdownPrefix.js.map +1 -1
  121. package/dist/esm/components/CollectionViewsDropdown/viewsDropdownRenderHelpers.js +7 -4
  122. package/dist/esm/components/CollectionViewsDropdown/viewsDropdownRenderHelpers.js.map +1 -1
  123. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  124. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  125. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  126. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  127. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  128. package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
  129. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  130. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  131. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  132. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  133. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  134. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  135. package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
  136. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  137. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  138. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  139. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  140. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  141. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  142. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  143. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  144. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  145. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  146. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  147. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  148. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  149. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  150. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  151. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  152. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  153. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  154. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  155. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  156. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  157. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  158. package/dist/esm/components/common.st.css.js +2 -2
  159. package/dist/esm/components/common.st.css.js.map +1 -1
  160. package/dist/esm/model/view.js.map +1 -1
  161. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  162. package/dist/esm/state/CollectionViewsStateBIReporter.js +19 -1
  163. package/dist/esm/state/CollectionViewsStateBIReporter.js.map +1 -1
  164. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  165. package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  166. package/dist/esm/styles.global.css +1 -1
  167. package/dist/esm/version.js +1 -1
  168. package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.st.css.d.ts.map +1 -1
  169. package/dist/types/components/CollectionTable/CollectionTable.st.css.d.ts.map +1 -1
  170. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +9 -7
  171. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts.map +1 -1
  172. package/dist/types/components/CollectionToolbar/CollectionToolbar.uni.driver.d.ts +2 -2
  173. package/dist/types/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.d.ts.map +1 -1
  174. package/dist/types/components/CollectionViewsDropdown/CollectionViewsDropdown.uni.driver.d.ts +9 -9
  175. package/dist/types/components/CollectionViewsDropdown/CollectionViewsDropdown.uni.driver.d.ts.map +1 -1
  176. package/dist/types/components/CollectionViewsDropdown/ManageViewPopover.d.ts +8 -5
  177. package/dist/types/components/CollectionViewsDropdown/ManageViewPopover.d.ts.map +1 -1
  178. package/dist/types/components/CollectionViewsDropdown/ManageViewPopover.uni.driver.d.ts +6 -6
  179. package/dist/types/components/CollectionViewsDropdown/ManageViewPopover.uni.driver.d.ts.map +1 -1
  180. package/dist/types/components/CollectionViewsDropdown/SaveToNewViewFooter.d.ts +12 -0
  181. package/dist/types/components/CollectionViewsDropdown/SaveToNewViewFooter.d.ts.map +1 -0
  182. package/dist/types/components/CollectionViewsDropdown/SaveToNewViewFooter.uni.driver.d.ts +18 -0
  183. package/dist/types/components/CollectionViewsDropdown/SaveToNewViewFooter.uni.driver.d.ts.map +1 -0
  184. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.d.ts +1 -0
  185. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.d.ts.map +1 -1
  186. package/dist/types/components/CollectionViewsDropdown/ViewsDropdownPrefix.d.ts.map +1 -1
  187. package/dist/types/components/CollectionViewsDropdown/viewsDropdownRenderHelpers.d.ts +3 -2
  188. package/dist/types/components/CollectionViewsDropdown/viewsDropdownRenderHelpers.d.ts.map +1 -1
  189. package/dist/types/components/EntityPage/EntityPagePlain.st.css.d.ts.map +1 -1
  190. package/dist/types/components/Grid/Grid.uni.driver.d.ts +2 -2
  191. package/dist/types/components/Grid/GridFolders.uni.driver.d.ts +6 -6
  192. package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts +2 -2
  193. package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
  194. package/dist/types/components/Kanban/Kanban.uni.driver.d.ts +2 -2
  195. package/dist/types/components/MaxHeightText/MaxHeightText.st.css.d.ts.map +1 -1
  196. package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
  197. package/dist/types/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.d.ts.map +1 -1
  198. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +7 -43
  199. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts.map +1 -1
  200. package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
  201. package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.d.ts.map +1 -1
  202. package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
  203. package/dist/types/components/Table/Table.uni.driver.d.ts +5 -5
  204. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +10 -16
  205. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
  206. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +7 -7
  207. package/dist/types/components/TabsFilter/TabsFilter.st.css.d.ts.map +1 -1
  208. package/dist/types/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.d.ts.map +1 -1
  209. package/dist/types/components/ToolbarItem/ToolbarItem.st.css.d.ts.map +1 -1
  210. package/dist/types/components/common.st.css.d.ts.map +1 -1
  211. package/dist/types/model/view.d.ts +1 -0
  212. package/dist/types/model/view.d.ts.map +1 -1
  213. package/dist/types/state/CollectionViewsStateBIReporter.d.ts.map +1 -1
  214. package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
  215. package/dist/types/testkit/enzyme.d.ts +36 -36
  216. package/dist/types/testkit/jsdom.d.ts +38 -38
  217. package/dist/types/testkit/playwright.d.ts +36 -36
  218. package/dist/types/testkit/puppeteer.d.ts +38 -38
  219. package/dist/types/version.d.ts +1 -1
  220. package/package.json +3 -3
  221. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  222. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  223. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  224. package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
  225. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  226. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  227. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  228. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  229. package/src/components/CollectionViewsDropdown/CollectionViewsDropdown.uni.driver.ts +87 -11
  230. package/src/components/CollectionViewsDropdown/ManageViewPopover.tsx +80 -49
  231. package/src/components/CollectionViewsDropdown/ManageViewPopover.uni.driver.ts +25 -9
  232. package/src/components/CollectionViewsDropdown/SaveToNewViewFooter.tsx +38 -0
  233. package/src/components/CollectionViewsDropdown/SaveToNewViewFooter.uni.driver.ts +21 -0
  234. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  235. package/src/components/CollectionViewsDropdown/ViewsDropdown.tsx +55 -13
  236. package/src/components/CollectionViewsDropdown/ViewsDropdownPrefix.tsx +13 -2
  237. package/src/components/CollectionViewsDropdown/viewsDropdownRenderHelpers.tsx +17 -8
  238. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  239. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  240. package/src/components/Fade/Fade.st.css.ts +2 -2
  241. package/src/components/Heading/Heading.st.css.ts +2 -2
  242. package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
  243. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  244. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  245. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  246. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  247. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  248. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  249. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  250. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  251. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  252. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  253. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  254. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  255. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  256. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  257. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  258. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  259. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  260. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  261. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  262. package/src/components/common.st.css.ts +2 -2
  263. package/src/model/view.ts +1 -0
  264. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  265. package/src/state/CollectionViewsStateBIReporter.ts +28 -0
  266. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  267. package/src/styles.global.css +1 -1
  268. package/src/version.ts +1 -1
@@ -8,6 +8,7 @@ import { ViewsDropdownListItemUniDriver } from './ViewsDropdownListItem.uni.driv
8
8
  import { ManageViewPopoverUniDriver } from './ManageViewPopover.uni.driver';
9
9
  import { CollectionSaveViewModalUniDriver } from './modals/SaveView/CollectionSaveViewModal.uni.driver';
10
10
  import { CollectionRenameViewModalUniDriver } from './modals/RenameView/CollectionRenameViewModal.uni.driver';
11
+ import { SaveToNewViewFooterUniDriver } from './SaveToNewViewFooter.uni.driver';
11
12
 
12
13
  export const CollectionViewsDropdownUniDriver = (
13
14
  base: UniDriver,
@@ -16,10 +17,16 @@ export const CollectionViewsDropdownUniDriver = (
16
17
  const viewsDropdownDriverBase = () =>
17
18
  base.$('[data-hook="collection-views-dropdown"]');
18
19
 
19
- const manageViewPopover = () => ManageViewPopoverUniDriver(base, body);
20
+ // In redesign mode the manage view popover (3-dots menu) is rendered inside
21
+ // the dropdown list as a suffix on the selected view item. The dropdown
22
+ // content is rendered in a portal, so we search `body` instead of `base`.
23
+ // In legacy mode the popover is next to the dropdown inside `base`, but
24
+ // searching `body` still finds it because `base` is within `body`.
25
+ const manageViewPopover = () => ManageViewPopoverUniDriver(body, body);
20
26
  const getSaveViewModal = () => CollectionSaveViewModalUniDriver(base, body);
21
27
  const getRenameViewModal = () =>
22
28
  CollectionRenameViewModalUniDriver(base, body);
29
+ const saveToNewViewFooter = () => SaveToNewViewFooterUniDriver(body, body);
23
30
 
24
31
  const getDropdownLayoutBase = async () => {
25
32
  const contentDataHook = await viewsDropdownDriverBase().attr(
@@ -66,8 +73,48 @@ export const CollectionViewsDropdownUniDriver = (
66
73
  );
67
74
  };
68
75
 
69
- const openManageViewPopover = () => manageViewPopover().open();
70
- const saveNewViewActionClick = () => manageViewPopover().clickSaveNewView();
76
+ const open = () => viewsDropdownDriver().inputDriver.click();
77
+
78
+ /**
79
+ * Detect redesign mode by checking whether the popover trigger lives
80
+ * inside `base` (legacy — standalone next to the dropdown) or only
81
+ * inside the dropdown portal / body (redesign — suffix on selected item).
82
+ */
83
+ // const isRedesignMode = async () => {
84
+ // return !(
85
+ // await base.$('[data-hook="manage-view-popover-button"]').exists()
86
+ // );
87
+ // };
88
+
89
+ const openManageViewPopover = async () => {
90
+ // In redesign mode the 3-dots button is inside the dropdown list on the
91
+ // selected view, so we need to ensure the dropdown is open first.
92
+ // In legacy mode opening the dropdown is harmless — the trigger is always
93
+ // accessible in the component tree.
94
+ const isOpen = await viewsDropdownDriver().dropdownLayoutDriver.isShown();
95
+ if (!isOpen) {
96
+ await open();
97
+ }
98
+ await manageViewPopover().open();
99
+ };
100
+
101
+ const saveNewViewClick = async () => {
102
+ const isOpen = await viewsDropdownDriver().dropdownLayoutDriver.isShown();
103
+ if (!isOpen) {
104
+ await open();
105
+ }
106
+
107
+ // Redesign: "Save to New View" is in the dropdown footer
108
+ const footerExists = await saveToNewViewFooter().exists();
109
+ if (footerExists) {
110
+ return saveToNewViewFooter().clickSaveNewView();
111
+ }
112
+
113
+ // Legacy: "Save to New View" is inside the ManageViewPopover
114
+ await manageViewPopover().open();
115
+ await manageViewPopover().clickSaveNewView();
116
+ };
117
+
71
118
  const deleteViewActionClick = () => manageViewPopover().clickDeleteView();
72
119
  const saveViewChangesActionClick = () =>
73
120
  manageViewPopover().clickSaveChanges();
@@ -84,7 +131,24 @@ export const CollectionViewsDropdownUniDriver = (
84
131
  .$('[data-hook="initial-loader"]')
85
132
  .exists(),
86
133
  /** Get the currently selected view name */
87
- getSelected: () => viewsDropdownDriver().inputDriver.getValue(),
134
+ getSelected: async () => {
135
+ // When the dropdown is open and in editing mode (disableEditing=false),
136
+ // the input value shows the search text and the selected label moves to
137
+ // the placeholder. After onSelect fires (disableEditing=true) the value
138
+ // switches back to the selected label but the dropdown may still be
139
+ // visually shown. Try the value first; fall back to the placeholder.
140
+ const isOpen = await viewsDropdownDriver().dropdownLayoutDriver.isShown();
141
+ if (isOpen) {
142
+ const selectedId =
143
+ await viewsDropdownDriver().dropdownLayoutDriver.getSelectedOptionId();
144
+ if (!selectedId) {
145
+ return '';
146
+ }
147
+ const value = await viewsDropdownDriver().inputDriver.getValue();
148
+ return value || viewsDropdownDriver().inputDriver.getPlaceholder();
149
+ }
150
+ return viewsDropdownDriver().inputDriver.getValue();
151
+ },
88
152
  /** Get the dropdown input text */
89
153
  getInputValue: () => viewsDropdownDriver().inputDriver.getValue(),
90
154
  /** Indicates input is ready-only */
@@ -98,7 +162,7 @@ export const CollectionViewsDropdownUniDriver = (
98
162
  hasTotal: () =>
99
163
  viewsDropdownDriver().inputDriver.suffixComponentExists('.total-count'),
100
164
  /** Opens views dropdown */
101
- open: () => viewsDropdownDriver().inputDriver.click(),
165
+ open,
102
166
  /** Enter dropdown input text */
103
167
  enterText: (value: string) =>
104
168
  viewsDropdownDriver().inputDriver.enterText(value),
@@ -159,8 +223,8 @@ export const CollectionViewsDropdownUniDriver = (
159
223
  openManageViewPopover,
160
224
  /** Clicks the Save Changes action in the Manage View popover */
161
225
  saveViewChangesActionClick,
162
- /** Clicks the Save as New View action in the Manage View popover */
163
- saveNewViewActionClick,
226
+ /** Clicks the Save to New View button (auto-detects redesign vs legacy) */
227
+ saveNewViewActionClick: saveNewViewClick,
164
228
  /** Clicks the Rename action in the Manage View popover */
165
229
  renameViewActionClick,
166
230
  /** Clicks the Set as Default View action in the Manage View popover */
@@ -169,8 +233,21 @@ export const CollectionViewsDropdownUniDriver = (
169
233
  deleteViewActionClick,
170
234
  /** Get DropdownLayoutOptionUniDriver of a Save Changes option */
171
235
  getSaveViewChangesBtn: () => manageViewPopover().getSaveChangesBtn(),
172
- /** Get DropdownLayoutOptionUniDriver of a Save as New View option */
173
- getSaveNewViewBtn: () => manageViewPopover().getSaveNewViewBtn(),
236
+ /** Get the Save to New View button (auto-detects redesign vs legacy) */
237
+ getSaveNewViewBtn: async () => {
238
+ const isOpen = await viewsDropdownDriver().dropdownLayoutDriver.isShown();
239
+ if (!isOpen) {
240
+ await open();
241
+ }
242
+ // Redesign: footer button; Legacy: popover menu item
243
+ const footerExists = await saveToNewViewFooter().exists();
244
+ if (footerExists) {
245
+ return saveToNewViewFooter().getSaveNewViewBtn();
246
+ }
247
+
248
+ // Fallback to popover (e.g. popover not yet open in legacy mode)
249
+ return manageViewPopover().getSaveNewViewBtn();
250
+ },
174
251
  /** Get DropdownLayoutOptionUniDriver of a Delete View option */
175
252
  getDeleteViewBtn: () => manageViewPopover().getDeleteViewBtn(),
176
253
  /** Get DropdownLayoutOptionUniDriver of a Rename option */
@@ -180,8 +257,7 @@ export const CollectionViewsDropdownUniDriver = (
180
257
 
181
258
  /** Saves new view with a defined name and current filters / sort / columns */
182
259
  saveNewView: async (name: string) => {
183
- await openManageViewPopover();
184
- await saveNewViewActionClick();
260
+ await saveNewViewClick();
185
261
  const saveViewModal = getSaveViewModal();
186
262
  await saveViewModal.fillViewNameInput(name);
187
263
  await saveViewModal.clickSaveButton();
@@ -1,50 +1,85 @@
1
- import { TextButton, PopoverMenu } from '@wix/design-system';
2
- import React from 'react';
1
+ import { IconButton, PopoverMenu, TextButton } from '@wix/design-system';
2
+ import React, { useImperativeHandle, useRef, forwardRef } from 'react';
3
3
  import { observer } from 'mobx-react-lite';
4
4
  import {
5
5
  ChevronDown,
6
+ MoreSmall,
6
7
  Confirm,
7
8
  Duplicate,
8
9
  Edit,
9
10
  Delete,
10
11
  Flag,
11
12
  FlagDismiss,
13
+ Pin,
14
+ Revert,
12
15
  } from '@wix/wix-ui-icons-common';
13
16
  import { FiltersMap } from '@wix/bex-core';
14
17
  import { CollectionViewsState } from '../../state';
15
18
  import { useWixPatternsContainer } from '@wix/bex-core/react';
16
19
 
20
+ export interface ManageViewPopoverHandle {
21
+ focusTrigger: () => void;
22
+ }
23
+
17
24
  export interface ManageViewPopoverProps<T, F extends FiltersMap> {
18
25
  state: CollectionViewsState<T, F>;
19
26
  origin: string;
27
+ /** When true, renders as an inline IconButton inside the dropdown */
28
+ redesign?: boolean;
20
29
  }
21
30
 
22
31
  function _ManageViewPopover<T, F extends FiltersMap>(
23
32
  props: ManageViewPopoverProps<T, F>,
33
+ ref: React.Ref<ManageViewPopoverHandle>,
24
34
  ) {
25
35
  const container = useWixPatternsContainer();
26
- const { state } = props;
36
+ const { state, redesign } = props;
27
37
  const { views, table, emitter, isViewChanged } = state;
38
+ const buttonRef = useRef<HTMLButtonElement>(null);
39
+
40
+ useImperativeHandle(ref, () => ({
41
+ focusTrigger: () => buttonRef.current?.focus(),
42
+ }));
28
43
 
29
44
  const { translate: t } = container;
30
45
 
46
+ const triggerElement = redesign ? (
47
+ <IconButton
48
+ ref={buttonRef}
49
+ tabIndex={0}
50
+ size="tiny"
51
+ dataHook="manage-view-popover-button"
52
+ onClick={(e) => {
53
+ // Stop propagation so clicking the 3-dots button doesn't select
54
+ // the dropdown option it sits inside of.
55
+ e.stopPropagation();
56
+ // Prevent default so the click doesn't trigger form submission
57
+ // or other native behavior while inside DropdownLayout.
58
+ e.preventDefault();
59
+ }}
60
+ >
61
+ <MoreSmall />
62
+ </IconButton>
63
+ ) : (
64
+ <TextButton
65
+ size="small"
66
+ as="button"
67
+ dataHook="manage-view-popover-button"
68
+ suffixIcon={<ChevronDown />}
69
+ >
70
+ {t('cairo.manageView.CTA')}
71
+ </TextButton>
72
+ );
73
+
31
74
  return (
32
75
  <PopoverMenu
33
76
  minWidth={271}
77
+ {...(redesign && { placement: 'right', appendTo: 'window' })}
34
78
  onShow={() => {
35
79
  emitter.emit('openManageViewPopoverMenu');
36
80
  }}
37
81
  dataHook="manage-view-popover"
38
- triggerElement={
39
- <TextButton
40
- size="small"
41
- as="button"
42
- dataHook="manage-view-popover-button"
43
- suffixIcon={<ChevronDown />}
44
- >
45
- {t('cairo.manageView.CTA')}
46
- </TextButton>
47
- }
82
+ triggerElement={triggerElement}
48
83
  >
49
84
  <PopoverMenu.MenuItem
50
85
  text={t('cairo.manageView.saveChanges.CTA')}
@@ -54,38 +89,26 @@ function _ManageViewPopover<T, F extends FiltersMap>(
54
89
  !isViewChanged ||
55
90
  views.currentView?.isPreset
56
91
  }
57
- // subtitle={
58
- // views.currentView?.isPreset
59
- // ? t('cairo.manageView.saveChanges.disabled.predefinedView.tooltip')
60
- // : !isViewChanged
61
- // ? t('cairo.manageView.saveChanges.disabled.tooltip')
62
- // : undefined
63
- // }
64
92
  prefixIcon={<Confirm />}
65
93
  onClick={() => {
66
94
  state.saveViewChanges();
67
95
  }}
68
96
  />
69
- <PopoverMenu.MenuItem
70
- dataHook="save-new-view"
71
- disabled={views.reachedViewsLimit}
72
- onClick={() => {
73
- views.saveViewModal.open();
74
- table.closeSidePanel();
75
- }}
76
- text={t('cairo.manageView.saveNewView.CTA')}
77
- prefixIcon={<Duplicate />}
78
- />
97
+ {!redesign && (
98
+ <PopoverMenu.MenuItem
99
+ dataHook="save-new-view"
100
+ disabled={views.reachedViewsLimit}
101
+ onClick={() => {
102
+ views.saveViewModal.open();
103
+ table.closeSidePanel();
104
+ }}
105
+ text={t('cairo.manageView.saveNewView.CTA')}
106
+ prefixIcon={<Duplicate />}
107
+ />
108
+ )}
79
109
  <PopoverMenu.MenuItem
80
110
  dataHook="rename-view"
81
111
  disabled={views.currentView?.isPreset || isViewChanged}
82
- // subtitle={
83
- // views.currentView?.isPreset
84
- // ? t('cairo.manageView.Rename.disabled.predefinedView.tooltip')
85
- // : isViewChanged
86
- // ? t('cairo.manageView.Rename.disabled.tooltip')
87
- // : undefined
88
- // }
89
112
  onClick={() => {
90
113
  views.renameViewModal.open();
91
114
  table.closeSidePanel();
@@ -96,11 +119,6 @@ function _ManageViewPopover<T, F extends FiltersMap>(
96
119
  <PopoverMenu.MenuItem
97
120
  dataHook="set-as-default-view"
98
121
  disabled={!views.currentView || (isViewChanged && !views.isDefaultView)}
99
- // subtitle={
100
- // isViewChanged && !views.isDefaultView
101
- // ? t('cairo.manageView.setAsDefault.tooltip')
102
- // : undefined
103
- // }
104
122
  onClick={() => {
105
123
  state.setAsDefaultView();
106
124
  }}
@@ -109,16 +127,23 @@ function _ManageViewPopover<T, F extends FiltersMap>(
109
127
  ? t('cairo.manageView.setAsDefault.reset.CTA')
110
128
  : t('cairo.manageView.setAsDefault.CTA')
111
129
  }
112
- prefixIcon={views.isDefaultView ? <FlagDismiss /> : <Flag />}
130
+ prefixIcon={
131
+ views.isDefaultView ? (
132
+ redesign ? (
133
+ <Revert />
134
+ ) : (
135
+ <FlagDismiss />
136
+ )
137
+ ) : redesign ? (
138
+ <Pin />
139
+ ) : (
140
+ <Flag />
141
+ )
142
+ }
113
143
  />
114
144
  <PopoverMenu.MenuItem
115
145
  dataHook="delete-view"
116
146
  disabled={!views.isCurrentViewSelected || views.currentView?.isPreset}
117
- // subtitle={
118
- // views.isCurrentViewSelected && views.currentView?.isPreset
119
- // ? t('cairo.manageView.Delete.disabled.predefinedView.tooltip')
120
- // : undefined
121
- // }
122
147
  onClick={() => {
123
148
  state.deleteView();
124
149
  }}
@@ -129,4 +154,10 @@ function _ManageViewPopover<T, F extends FiltersMap>(
129
154
  );
130
155
  }
131
156
 
132
- export const ManageViewPopover = observer(_ManageViewPopover);
157
+ export const ManageViewPopover = observer(
158
+ forwardRef(_ManageViewPopover),
159
+ ) as <T, F extends FiltersMap>(
160
+ props: ManageViewPopoverProps<T, F> & {
161
+ ref?: React.Ref<ManageViewPopoverHandle>;
162
+ },
163
+ ) => React.ReactElement | null;
@@ -37,6 +37,19 @@ export const ManageViewPopoverUniDriver = (
37
37
  );
38
38
  };
39
39
 
40
+ /**
41
+ * In redesign mode the "Save to New View" item is removed from the popover
42
+ * (moved to a dropdown footer), so all option indices shift by -1.
43
+ * This helper detects which mode we're in by checking for the save-new-view item.
44
+ */
45
+ const getSaveNewViewOffset = async () => {
46
+ const contentElement = await getContentElement();
47
+ const hasSaveNew = await contentElement
48
+ .$('[data-hook="save-new-view"]')
49
+ .exists();
50
+ return hasSaveNew ? 1 : 0;
51
+ };
52
+
40
53
  return {
41
54
  ...baseUniDriverFactory(base),
42
55
  exists: () => manageViewPopoverDriver().exists(),
@@ -51,7 +64,7 @@ export const ManageViewPopoverUniDriver = (
51
64
  /** Trigger save changes action */
52
65
  clickSaveChanges: () =>
53
66
  manageViewPopoverDriver().clickAtChildByDataHook('save-changes-to-view'),
54
- /** Trigger save new view action */
67
+ /** Trigger save new view action (legacy mode only) */
55
68
  clickSaveNewView: () =>
56
69
  manageViewPopoverDriver().clickAtChildByDataHook('save-new-view'),
57
70
  /** Trigger rename view action */
@@ -63,30 +76,33 @@ export const ManageViewPopoverUniDriver = (
63
76
  /** Trigger delete view action */
64
77
  clickDeleteView: () =>
65
78
  manageViewPopoverDriver().clickAtChildByDataHook('delete-view'),
66
- /** Get save changes btn */
79
+ /** Get save changes btn (always at index 0) */
67
80
  getSaveChangesBtn: async () => {
68
81
  const dropdownLayoutDriver = await getDropdownLayoutDriver();
69
82
  return dropdownLayoutDriver.optionById(0);
70
83
  },
71
- /** Get save new view btn */
84
+ /** Get save new view btn (legacy mode only, index 1) */
72
85
  getSaveNewViewBtn: async () => {
73
86
  const dropdownLayoutDriver = await getDropdownLayoutDriver();
74
87
  return dropdownLayoutDriver.optionById(1);
75
88
  },
76
- /** Get rename view btn */
89
+ /** Get rename view btn (auto-detects redesign vs legacy offset) */
77
90
  getRenameViewBtn: async () => {
78
91
  const dropdownLayoutDriver = await getDropdownLayoutDriver();
79
- return dropdownLayoutDriver.optionById(2);
92
+ const offset = await getSaveNewViewOffset();
93
+ return dropdownLayoutDriver.optionById(1 + offset);
80
94
  },
81
- /** Get set as default view btn */
95
+ /** Get set as default view btn (auto-detects redesign vs legacy offset) */
82
96
  getSetAsDefaultViewBtn: async () => {
83
97
  const dropdownLayoutDriver = await getDropdownLayoutDriver();
84
- return dropdownLayoutDriver.optionById(3);
98
+ const offset = await getSaveNewViewOffset();
99
+ return dropdownLayoutDriver.optionById(2 + offset);
85
100
  },
86
- /** Get delete view btn */
101
+ /** Get delete view btn (auto-detects redesign vs legacy offset) */
87
102
  getDeleteViewBtn: async () => {
88
103
  const dropdownLayoutDriver = await getDropdownLayoutDriver();
89
- return dropdownLayoutDriver.optionById(4);
104
+ const offset = await getSaveNewViewOffset();
105
+ return dropdownLayoutDriver.optionById(3 + offset);
90
106
  },
91
107
  };
92
108
  };
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ import { observer } from 'mobx-react-lite';
3
+ import { Divider, ListItemAction } from '@wix/design-system';
4
+ import { Add } from '@wix/wix-ui-icons-common';
5
+ import { FiltersMap } from '@wix/bex-core';
6
+ import { CollectionViewsState } from '../../state';
7
+ import { useWixPatternsContainer } from '@wix/bex-core/react';
8
+
9
+ export interface SaveToNewViewFooterProps<T, F extends FiltersMap> {
10
+ state: CollectionViewsState<T, F>;
11
+ }
12
+
13
+ function _SaveToNewViewFooter<T, F extends FiltersMap>({
14
+ state,
15
+ }: SaveToNewViewFooterProps<T, F>) {
16
+ const { translate: t } = useWixPatternsContainer();
17
+ const { views: viewsState } = state;
18
+
19
+ return (
20
+ <div data-hook="save-to-new-view-footer">
21
+ <Divider />
22
+ <ListItemAction
23
+ size="medium"
24
+ weight="thin"
25
+ dataHook="save-to-new-view"
26
+ prefixIcon={<Add />}
27
+ disabled={viewsState.reachedViewsLimit}
28
+ onClick={() => {
29
+ viewsState.saveViewModal.open();
30
+ state.table.closeSidePanel();
31
+ }}
32
+ title={t('cairo.manageView.saveNewView.CTA')}
33
+ />
34
+ </div>
35
+ );
36
+ }
37
+
38
+ export const SaveToNewViewFooter = observer(_SaveToNewViewFooter);
@@ -0,0 +1,21 @@
1
+ import type { UniDriver } from '@wix/wix-ui-test-utils/unidriver';
2
+ import { TextButtonUniDriver } from '@wix/design-system/dist/testkit/unidriver';
3
+ import { baseUniDriverFactory } from '../../unidriver';
4
+
5
+ export const SaveToNewViewFooterUniDriver = (
6
+ base: UniDriver,
7
+ body: UniDriver,
8
+ ) => {
9
+ const footerBase = () => base.$('[data-hook="save-to-new-view-footer"]');
10
+ const saveButton = () =>
11
+ TextButtonUniDriver(base.$('[data-hook="save-to-new-view"]'), body);
12
+
13
+ return {
14
+ ...baseUniDriverFactory(base),
15
+ exists: () => footerBase().exists(),
16
+ /** Click the "Save to New View" button */
17
+ clickSaveNewView: () => saveButton().click(),
18
+ /** Get the "Save to New View" TextButton driver */
19
+ getSaveNewViewBtn: () => saveButton(),
20
+ };
21
+ };
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "ViewsDropdown3368516299";
8
+ var _namespace_ = "ViewsDropdown2380321708";
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":"ViewsDropdown3368516299__root"};
16
+ export var classes = {"root":"ViewsDropdown2380321708__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -1,4 +1,4 @@
1
- import React, { useMemo } from 'react';
1
+ import React, { useMemo, useRef } from 'react';
2
2
  import { observer } from 'mobx-react-lite';
3
3
  import {
4
4
  Box,
@@ -11,7 +11,10 @@ import { FiltersMap } from '@wix/bex-core';
11
11
  import { ViewsDropdownModals } from './ViewsDropdownModals';
12
12
  import { View } from '../../model';
13
13
  import { classes, st } from './ViewsDropdown.st.css.js';
14
- import { ManageViewPopover } from './ManageViewPopover';
14
+ import {
15
+ ManageViewPopover,
16
+ ManageViewPopoverHandle,
17
+ } from './ManageViewPopover';
15
18
  import {
16
19
  buildCategoryOption,
17
20
  buildViewOption,
@@ -19,9 +22,12 @@ import {
19
22
  getViewName,
20
23
  } from './viewsDropdownRenderHelpers';
21
24
  import { AutoCompleteReadonly } from './AutoCompleteReadonly';
25
+ import { SaveToNewViewFooter } from './SaveToNewViewFooter';
22
26
  import { ViewsDropdownPrefix } from './ViewsDropdownPrefix';
23
27
  import { useWixPatternsContainer } from '../..';
24
28
 
29
+ export const VIEWS_REDESIGN_EXPERIMENT = 'specs.cairo.ViewsRedesign';
30
+
25
31
  export type ViewsDropdownProps<T, F extends FiltersMap> = {
26
32
  state: CollectionViewsState<T, F>;
27
33
  onSelect?: (view: View<F>) => void;
@@ -38,6 +44,9 @@ function _ViewsDropdown<T, F extends FiltersMap>({
38
44
  ...dropdownProps
39
45
  }: ViewsDropdownProps<T, F>) {
40
46
  const container = useWixPatternsContainer();
47
+ const isRedesign = container.internalExperiments?.enabled(
48
+ VIEWS_REDESIGN_EXPERIMENT,
49
+ );
41
50
  const { views: viewsState } = state;
42
51
  const { currentView, collection, localSearchState } = viewsState;
43
52
  const { filteredCategoriesWithViews } = localSearchState;
@@ -45,22 +54,51 @@ function _ViewsDropdown<T, F extends FiltersMap>({
45
54
  const showLoader =
46
55
  collection.result.status.isIdle || collection.result.status.isLoading;
47
56
 
57
+ const manageViewRef = useRef<ManageViewPopoverHandle>(null);
48
58
  const viewsOptions = useMemo(() => {
49
59
  const { viewsWithoutCategory, categories } = filteredCategoriesWithViews;
50
60
 
61
+ const buildOption = (view: (typeof viewsWithoutCategory)[number]) => {
62
+ const isSelected = currentView?.id === view.id;
63
+ const option = buildViewOption({
64
+ view,
65
+ viewsState,
66
+ suffix:
67
+ isRedesign && isSelected ? (
68
+ <ManageViewPopover
69
+ ref={manageViewRef}
70
+ origin="MainToolbar"
71
+ state={state}
72
+ redesign
73
+ />
74
+ ) : undefined,
75
+ });
76
+
77
+ if (isRedesign && isSelected) {
78
+ return {
79
+ ...option,
80
+ onDrillIn: () => manageViewRef.current?.focusTrigger(),
81
+ };
82
+ }
83
+
84
+ return option;
85
+ };
86
+
51
87
  return [
52
- ...viewsWithoutCategory.map((view) =>
53
- buildViewOption({ view, viewsState }),
54
- ),
88
+ ...viewsWithoutCategory.map(buildOption),
55
89
  ...categories.flatMap((category) => [
56
- // Skip category header if category has no displayable name
57
90
  ...(getCategoryName({ category, viewsState })
58
91
  ? [buildCategoryOption({ category, viewsState })]
59
92
  : []),
60
- ...category.views.map((view) => buildViewOption({ view, viewsState })),
93
+ ...category.views.map(buildOption),
61
94
  ]),
62
95
  ];
63
- }, [filteredCategoriesWithViews, container.initTask.status]);
96
+ }, [
97
+ filteredCategoriesWithViews,
98
+ container.initTask.status,
99
+ currentView?.id,
100
+ isRedesign,
101
+ ]);
64
102
 
65
103
  const { options, fixedFooter } = showLoader
66
104
  ? {
@@ -79,7 +117,9 @@ function _ViewsDropdown<T, F extends FiltersMap>({
79
117
  }
80
118
  : {
81
119
  options: viewsOptions,
82
- fixedFooter: undefined,
120
+ fixedFooter: isRedesign ? (
121
+ <SaveToNewViewFooter state={state} />
122
+ ) : undefined,
83
123
  };
84
124
 
85
125
  const {
@@ -104,7 +144,7 @@ function _ViewsDropdown<T, F extends FiltersMap>({
104
144
  localSearchState.setInputValueAndScheduleSearch(e.target.value)
105
145
  }
106
146
  clearInput={() => localSearchState.clearSearch()}
107
- dropdownWidth={dropdownWidth}
147
+ dropdownWidth={isRedesign ? '264px' : dropdownWidth}
108
148
  popoverProps={{ placement: 'bottom-start' }}
109
149
  {...dropdownProps}
110
150
  onInputClicked={(e) => {
@@ -164,9 +204,11 @@ function _ViewsDropdown<T, F extends FiltersMap>({
164
204
  />
165
205
  </Box>
166
206
 
167
- <Box verticalAlign="middle" paddingLeft="SP2">
168
- <ManageViewPopover origin="MainToolbar" state={state} />
169
- </Box>
207
+ {!isRedesign && (
208
+ <Box verticalAlign="middle" paddingLeft="SP2">
209
+ <ManageViewPopover origin="MainToolbar" state={state} />
210
+ </Box>
211
+ )}
170
212
 
171
213
  <ViewsDropdownModals state={state} />
172
214
  </Box>
@@ -1,9 +1,15 @@
1
1
  import { Box, Input, Tooltip } from '@wix/design-system';
2
- import { FlagSmall, StatusAlertSmall } from '@wix/wix-ui-icons-common';
2
+ import {
3
+ FlagSmall,
4
+ PinSmall,
5
+ StatusAlertSmall,
6
+ } from '@wix/wix-ui-icons-common';
3
7
  import React from 'react';
4
8
  import { FiltersMap } from '@wix/bex-core';
5
9
  import { CollectionViewsState } from '../../state';
6
10
  import { observer } from 'mobx-react-lite';
11
+ import { useWixPatternsContainer } from '../..';
12
+ import { VIEWS_REDESIGN_EXPERIMENT } from './ViewsDropdown';
7
13
 
8
14
  export type ViewsDropdownPrefixProps<T, F extends FiltersMap> = {
9
15
  state: CollectionViewsState<T, F>;
@@ -13,6 +19,10 @@ export function _ViewsDropdownPrefix<T, F extends FiltersMap>(
13
19
  props: ViewsDropdownPrefixProps<T, F>,
14
20
  ) {
15
21
  const { state } = props;
22
+ const container = useWixPatternsContainer();
23
+ const isRedesign = container.internalExperiments?.enabled(
24
+ VIEWS_REDESIGN_EXPERIMENT,
25
+ );
16
26
 
17
27
  const { views } = state;
18
28
  const {
@@ -44,10 +54,11 @@ export function _ViewsDropdownPrefix<T, F extends FiltersMap>(
44
54
  }
45
55
 
46
56
  if (views.isDefaultView) {
57
+ const DefaultIcon = isRedesign ? PinSmall : FlagSmall;
47
58
  return (
48
59
  <Input.Affix>
49
60
  <Box dataHook="view-default">
50
- <FlagSmall />
61
+ <DefaultIcon />
51
62
  </Box>
52
63
  </Input.Affix>
53
64
  );