@wix/patterns 1.359.0 → 1.363.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.
- package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
- package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
- package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +3 -3
- package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/CollectionViewsDropdown.uni.driver.js +85 -11
- package/dist/cjs/components/CollectionViewsDropdown/CollectionViewsDropdown.uni.driver.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/ManageViewPopover.js +102 -75
- package/dist/cjs/components/CollectionViewsDropdown/ManageViewPopover.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/ManageViewPopover.uni.driver.js +23 -9
- package/dist/cjs/components/CollectionViewsDropdown/ManageViewPopover.uni.driver.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/SaveToNewViewFooter.js +63 -0
- package/dist/cjs/components/CollectionViewsDropdown/SaveToNewViewFooter.js.map +1 -0
- package/dist/cjs/components/CollectionViewsDropdown/SaveToNewViewFooter.uni.driver.js +20 -0
- package/dist/cjs/components/CollectionViewsDropdown/SaveToNewViewFooter.uni.driver.js.map +1 -0
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.js +64 -30
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdownPrefix.js +15 -9
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdownPrefix.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/viewsDropdownRenderHelpers.js +20 -12
- package/dist/cjs/components/CollectionViewsDropdown/viewsDropdownRenderHelpers.js.map +1 -1
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
- package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
- package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
- package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
- package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
- package/dist/cjs/components/FiltersPanel/FilterAccordionResetButton.js +40 -0
- package/dist/cjs/components/FiltersPanel/FilterAccordionResetButton.js.map +1 -0
- package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
- package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
- package/dist/cjs/components/ImportButton/ImportButtonModalLayout.js +101 -10
- package/dist/cjs/components/ImportButton/ImportButtonModalLayout.js.map +1 -1
- package/dist/cjs/components/ImportButton/ImportModal.uni.driver.js +4 -1
- package/dist/cjs/components/ImportButton/ImportModal.uni.driver.js.map +1 -1
- package/dist/cjs/components/ImportButton/ImportStepConfiguration.js +60 -56
- package/dist/cjs/components/ImportButton/ImportStepConfiguration.js.map +1 -1
- package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js +3 -3
- package/dist/cjs/components/ImportButton/ImportStepUpload.st.css.js.map +1 -1
- package/dist/cjs/components/ImportButton/ImportStepper.js +8 -2
- package/dist/cjs/components/ImportButton/ImportStepper.js.map +1 -1
- package/dist/cjs/components/ImportButton/getImportModalStepProps.js +73 -16
- package/dist/cjs/components/ImportButton/getImportModalStepProps.js.map +1 -1
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
- package/dist/cjs/components/Kanban/Kanban.js +1 -0
- package/dist/cjs/components/Kanban/Kanban.js.map +1 -1
- package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
- package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
- package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
- package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
- package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
- package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
- package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
- package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
- package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
- package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
- package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
- package/dist/cjs/components/common.st.css.js +4 -4
- package/dist/cjs/components/common.st.css.js.map +1 -1
- package/dist/cjs/hooks/useBuildAccordionItems.js +34 -4
- package/dist/cjs/hooks/useBuildAccordionItems.js.map +1 -1
- package/dist/cjs/model/view.js.map +1 -1
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
- package/dist/cjs/state/CollectionViewsStateBIReporter.js +20 -2
- package/dist/cjs/state/CollectionViewsStateBIReporter.js.map +1 -1
- package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
- package/dist/cjs/state/KanbanState/KanbanState.js +4 -1
- package/dist/cjs/state/KanbanState/KanbanState.js.map +1 -1
- package/dist/cjs/styles.global.css +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
- package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
- package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js.map +1 -1
- package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
- package/dist/esm/components/CollectionViewsDropdown/CollectionViewsDropdown.uni.driver.js +79 -11
- package/dist/esm/components/CollectionViewsDropdown/CollectionViewsDropdown.uni.driver.js.map +1 -1
- package/dist/esm/components/CollectionViewsDropdown/ManageViewPopover.js +28 -43
- package/dist/esm/components/CollectionViewsDropdown/ManageViewPopover.js.map +1 -1
- package/dist/esm/components/CollectionViewsDropdown/ManageViewPopover.uni.driver.js +24 -9
- package/dist/esm/components/CollectionViewsDropdown/ManageViewPopover.uni.driver.js.map +1 -1
- package/dist/esm/components/CollectionViewsDropdown/SaveToNewViewFooter.js +17 -0
- package/dist/esm/components/CollectionViewsDropdown/SaveToNewViewFooter.js.map +1 -0
- package/dist/esm/components/CollectionViewsDropdown/SaveToNewViewFooter.uni.driver.js +15 -0
- package/dist/esm/components/CollectionViewsDropdown/SaveToNewViewFooter.uni.driver.js.map +1 -0
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.js +33 -10
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.js.map +1 -1
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdownPrefix.js +7 -2
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdownPrefix.js.map +1 -1
- package/dist/esm/components/CollectionViewsDropdown/viewsDropdownRenderHelpers.js +7 -4
- package/dist/esm/components/CollectionViewsDropdown/viewsDropdownRenderHelpers.js.map +1 -1
- package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
- package/dist/esm/components/Fade/Fade.st.css.js +2 -2
- package/dist/esm/components/Fade/Fade.st.css.js.map +1 -1
- package/dist/esm/components/FiltersPanel/FilterAccordionResetButton.js +18 -0
- package/dist/esm/components/FiltersPanel/FilterAccordionResetButton.js.map +1 -0
- package/dist/esm/components/Heading/Heading.st.css.js +2 -2
- package/dist/esm/components/ImportButton/ImportButtonModalLayout.js +16 -4
- package/dist/esm/components/ImportButton/ImportButtonModalLayout.js.map +1 -1
- package/dist/esm/components/ImportButton/ImportModal.uni.driver.js +4 -1
- package/dist/esm/components/ImportButton/ImportModal.uni.driver.js.map +1 -1
- package/dist/esm/components/ImportButton/ImportStepConfiguration.js +17 -11
- package/dist/esm/components/ImportButton/ImportStepConfiguration.js.map +1 -1
- package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
- package/dist/esm/components/ImportButton/ImportStepper.js +6 -1
- package/dist/esm/components/ImportButton/ImportStepper.js.map +1 -1
- package/dist/esm/components/ImportButton/getImportModalStepProps.js +24 -9
- package/dist/esm/components/ImportButton/getImportModalStepProps.js.map +1 -1
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
- package/dist/esm/components/Kanban/Kanban.js +1 -1
- package/dist/esm/components/Kanban/Kanban.js.map +1 -1
- package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
- package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
- package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
- package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
- package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
- package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
- package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
- package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
- package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
- package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
- package/dist/esm/components/common.st.css.js +2 -2
- package/dist/esm/components/common.st.css.js.map +1 -1
- package/dist/esm/hooks/useBuildAccordionItems.js +5 -2
- package/dist/esm/hooks/useBuildAccordionItems.js.map +1 -1
- package/dist/esm/model/view.js.map +1 -1
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/esm/state/CollectionViewsStateBIReporter.js +19 -1
- package/dist/esm/state/CollectionViewsStateBIReporter.js.map +1 -1
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/esm/state/KanbanState/KanbanState.js +4 -1
- package/dist/esm/state/KanbanState/KanbanState.js.map +1 -1
- package/dist/esm/styles.global.css +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTable.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +197 -7
- package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/CollectionToolbar.uni.driver.d.ts +2 -2
- package/dist/types/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionViewsDropdown/CollectionViewsDropdown.uni.driver.d.ts +9 -9
- package/dist/types/components/CollectionViewsDropdown/CollectionViewsDropdown.uni.driver.d.ts.map +1 -1
- package/dist/types/components/CollectionViewsDropdown/ManageViewPopover.d.ts +8 -5
- package/dist/types/components/CollectionViewsDropdown/ManageViewPopover.d.ts.map +1 -1
- package/dist/types/components/CollectionViewsDropdown/ManageViewPopover.uni.driver.d.ts +6 -6
- package/dist/types/components/CollectionViewsDropdown/ManageViewPopover.uni.driver.d.ts.map +1 -1
- package/dist/types/components/CollectionViewsDropdown/SaveToNewViewFooter.d.ts +12 -0
- package/dist/types/components/CollectionViewsDropdown/SaveToNewViewFooter.d.ts.map +1 -0
- package/dist/types/components/CollectionViewsDropdown/SaveToNewViewFooter.uni.driver.d.ts +18 -0
- package/dist/types/components/CollectionViewsDropdown/SaveToNewViewFooter.uni.driver.d.ts.map +1 -0
- package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.d.ts +1 -0
- package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.d.ts.map +1 -1
- package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionViewsDropdown/ViewsDropdownPrefix.d.ts.map +1 -1
- package/dist/types/components/CollectionViewsDropdown/viewsDropdownRenderHelpers.d.ts +3 -2
- package/dist/types/components/CollectionViewsDropdown/viewsDropdownRenderHelpers.d.ts.map +1 -1
- package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
- package/dist/types/components/FiltersPanel/FilterAccordionResetButton.d.ts +13 -0
- package/dist/types/components/FiltersPanel/FilterAccordionResetButton.d.ts.map +1 -0
- package/dist/types/components/Grid/Grid.uni.driver.d.ts +2 -2
- package/dist/types/components/Grid/GridFolders.uni.driver.d.ts +6 -6
- package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts +2 -2
- package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts +94 -0
- package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts.map +1 -1
- package/dist/types/components/ImportButton/ImportButtonModalLayout.d.ts.map +1 -1
- package/dist/types/components/ImportButton/ImportModal.uni.driver.d.ts +95 -0
- package/dist/types/components/ImportButton/ImportModal.uni.driver.d.ts.map +1 -1
- package/dist/types/components/ImportButton/ImportStepConfiguration.d.ts.map +1 -1
- package/dist/types/components/ImportButton/ImportStepper.d.ts.map +1 -1
- package/dist/types/components/ImportButton/getImportModalStepProps.d.ts +2 -1
- package/dist/types/components/ImportButton/getImportModalStepProps.d.ts.map +1 -1
- package/dist/types/components/InputOverflow/InputOverflow.st.css.d.ts.map +1 -1
- package/dist/types/components/Kanban/Kanban.uni.driver.d.ts +2 -2
- package/dist/types/components/MaxHeightText/MaxHeightText.st.css.d.ts.map +1 -1
- package/dist/types/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +195 -43
- package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTableRow.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.d.ts.map +1 -1
- package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
- package/dist/types/components/Table/Table.uni.driver.d.ts +193 -5
- package/dist/types/components/Table/Table.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +200 -18
- package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +199 -7
- package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts.map +1 -1
- package/dist/types/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.d.ts.map +1 -1
- package/dist/types/components/ToolbarItem/ToolbarItem.st.css.d.ts.map +1 -1
- package/dist/types/components/ToolbarItemBox/ToolbarItemBox.st.css.d.ts.map +1 -1
- package/dist/types/components/common.st.css.d.ts.map +1 -1
- package/dist/types/hooks/useBuildAccordionItems.d.ts.map +1 -1
- package/dist/types/model/view.d.ts +1 -0
- package/dist/types/model/view.d.ts.map +1 -1
- package/dist/types/state/CollectionViewsStateBIReporter.d.ts.map +1 -1
- package/dist/types/state/KanbanState/KanbanState.d.ts +2 -0
- package/dist/types/state/KanbanState/KanbanState.d.ts.map +1 -1
- package/dist/types/testkit/enzyme.d.ts +788 -36
- package/dist/types/testkit/enzyme.d.ts.map +1 -1
- package/dist/types/testkit/jsdom.d.ts +790 -38
- package/dist/types/testkit/jsdom.d.ts.map +1 -1
- package/dist/types/testkit/playwright.d.ts +788 -36
- package/dist/types/testkit/playwright.d.ts.map +1 -1
- package/dist/types/testkit/puppeteer.d.ts +790 -38
- package/dist/types/testkit/puppeteer.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +5 -5
- package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
- package/src/components/Collapse/Collapse.st.css.ts +2 -2
- package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
- package/src/components/CollectionSectionHeader/CollectionSectionHeader.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
- package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
- package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/CollectionViewsDropdown.uni.driver.ts +87 -11
- package/src/components/CollectionViewsDropdown/ManageViewPopover.tsx +80 -49
- package/src/components/CollectionViewsDropdown/ManageViewPopover.uni.driver.ts +25 -9
- package/src/components/CollectionViewsDropdown/SaveToNewViewFooter.tsx +38 -0
- package/src/components/CollectionViewsDropdown/SaveToNewViewFooter.uni.driver.ts +21 -0
- package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/ViewsDropdown.tsx +55 -13
- package/src/components/CollectionViewsDropdown/ViewsDropdownPrefix.tsx +13 -2
- package/src/components/CollectionViewsDropdown/viewsDropdownRenderHelpers.tsx +17 -8
- package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
- package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
- package/src/components/Fade/Fade.st.css.ts +2 -2
- package/src/components/FiltersPanel/FilterAccordionResetButton.tsx +41 -0
- package/src/components/Heading/Heading.st.css.ts +2 -2
- package/src/components/ImportButton/ImportButtonModalLayout.tsx +81 -15
- package/src/components/ImportButton/ImportModal.uni.driver.ts +11 -0
- package/src/components/ImportButton/ImportStepConfiguration.tsx +84 -74
- package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
- package/src/components/ImportButton/ImportStepper.tsx +11 -1
- package/src/components/ImportButton/getImportModalStepProps.tsx +47 -7
- package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
- package/src/components/Kanban/Kanban.tsx +1 -1
- package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
- package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
- package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
- package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
- package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
- package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
- package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
- package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
- package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
- package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
- package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
- package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
- package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
- package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
- package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
- package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
- package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
- package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
- package/src/components/common.st.css.ts +2 -2
- package/src/hooks/useBuildAccordionItems.tsx +15 -1
- package/src/model/view.ts +1 -0
- package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
- package/src/state/CollectionViewsStateBIReporter.ts +28 -0
- package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
- package/src/state/KanbanState/KanbanState.ts +6 -1
- package/src/styles.global.css +1 -1
- 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
|
-
|
|
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
|
|
70
|
-
|
|
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: () =>
|
|
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
|
|
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
|
|
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
|
|
173
|
-
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
|
|
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 {
|
|
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
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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={
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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_ = "
|
|
8
|
+
var _namespace_ = "ViewsDropdown514972543";
|
|
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":"
|
|
16
|
+
export var classes = {"root":"ViewsDropdown514972543__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 {
|
|
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(
|
|
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(
|
|
93
|
+
...category.views.map(buildOption),
|
|
61
94
|
]),
|
|
62
95
|
];
|
|
63
|
-
}, [
|
|
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:
|
|
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
|
-
|
|
168
|
-
<
|
|
169
|
-
|
|
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 {
|
|
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
|
-
<
|
|
61
|
+
<DefaultIcon />
|
|
51
62
|
</Box>
|
|
52
63
|
</Input.Affix>
|
|
53
64
|
);
|