@wix/patterns 1.477.0 → 1.479.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/CmsFieldManagement/CmsFieldForm.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/CmsFieldForm.st.css.js.map +1 -1
- package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
- package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +3 -3
- package/dist/cjs/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.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/CollectionPageHeaderNew/CollectionPageHeader.js.map +1 -1
- package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css +9 -3
- 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/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
- package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.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/CollectionToolbar/ToolbarOverflowMenu.js +57 -22
- package/dist/cjs/components/CollectionToolbar/ToolbarOverflowMenu.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/useToolbarOverflowItems.js +7 -1
- package/dist/cjs/components/CollectionToolbar/useToolbarOverflowItems.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/ViewsDropdown.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
- package/dist/cjs/components/CustomFieldModal/CustomFieldForm.js +17 -16
- package/dist/cjs/components/CustomFieldModal/CustomFieldForm.js.map +1 -1
- package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.js +37 -21
- package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.js.map +1 -1
- package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.st.css +15 -0
- package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js +28 -0
- package/dist/cjs/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js.map +1 -0
- package/dist/cjs/components/CustomFieldModal/CustomFieldTypeDropdown.js +17 -10
- package/dist/cjs/components/CustomFieldModal/CustomFieldTypeDropdown.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/EditableTable/AddItemRow.js +6 -3
- package/dist/cjs/components/EditableTable/AddItemRow.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableCell.js +13 -7
- package/dist/cjs/components/EditableTable/EditableCell.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableCell.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/EditableCell.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableTable.js +20 -11
- package/dist/cjs/components/EditableTable/EditableTable.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableTable.uni.driver.js +1 -0
- package/dist/cjs/components/EditableTable/EditableTable.uni.driver.js.map +1 -1
- package/dist/cjs/components/EditableTable/EditableTableContextMenu.js +19 -15
- package/dist/cjs/components/EditableTable/EditableTableContextMenu.js.map +1 -1
- package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/HeaderFieldActions.js +11 -3
- package/dist/cjs/components/EditableTable/HeaderFieldActions.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/array/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/boolean/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/color/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/date/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/date/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js +8 -8
- package/dist/cjs/components/EditableTable/cellTypes/datetime/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js +7 -7
- package/dist/cjs/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/email/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/number/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/number/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/object/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js +4 -4
- package/dist/cjs/components/EditableTable/cellTypes/text/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
- package/dist/cjs/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js +4 -4
- package/dist/cjs/components/EditableTable/cellTypes/time/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js +3 -3
- package/dist/cjs/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js +5 -5
- package/dist/cjs/components/EditableTable/cellTypes/url/View.st.css.js.map +1 -1
- package/dist/cjs/components/EditableTable/useAddRow.js +6 -1
- package/dist/cjs/components/EditableTable/useAddRow.js.map +1 -1
- package/dist/cjs/components/EditableTable/useEditableTableContextMenu.js +13 -1
- package/dist/cjs/components/EditableTable/useEditableTableContextMenu.js.map +1 -1
- package/dist/cjs/components/EmptyState/EmptyStateBase.st.css.js +2 -2
- package/dist/cjs/components/EmptyState/EmptyStateBase.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/FieldActions/HeaderActionsPopover.js +19 -6
- package/dist/cjs/components/FieldActions/HeaderActionsPopover.js.map +1 -1
- package/dist/cjs/components/Grid/Grid.js.map +1 -1
- 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/ImportButton.js +26 -12
- package/dist/cjs/components/ImportButton/ImportButton.js.map +1 -1
- package/dist/cjs/components/ImportButton/ImportButton.uni.driver.js +6 -1
- package/dist/cjs/components/ImportButton/ImportButton.uni.driver.js.map +1 -1
- package/dist/cjs/components/ImportButton/ImportProps.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/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
- package/dist/cjs/components/LayoutSwitch/LayoutSwitch.js +42 -10
- package/dist/cjs/components/LayoutSwitch/LayoutSwitch.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/MoreActions/MoreActionsIcon.js +28 -25
- package/dist/cjs/components/MoreActions/MoreActionsIcon.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/PageSubTitle/PageSubTitle.js +7 -7
- package/dist/cjs/components/PageSubTitle/PageSubTitle.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/PrimaryActions/PrimaryActions.js +1 -2
- package/dist/cjs/components/PrimaryActions/PrimaryActions.js.map +1 -1
- package/dist/cjs/components/ResponsiveButton/ResponsiveButton.js +23 -9
- package/dist/cjs/components/ResponsiveButton/ResponsiveButton.js.map +1 -1
- package/dist/cjs/components/SchemaSource/schemaFieldManagement.js +2 -0
- package/dist/cjs/components/SchemaSource/schemaFieldManagement.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/SetupWidget/SetupWidget.st.css.js +10 -10
- package/dist/cjs/components/SetupWidget/SetupWidget.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/Table/AddFieldColumnHeader.st.css.js +6 -6
- package/dist/cjs/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
- package/dist/cjs/components/TabsFilter/TabsFilter.js +9 -8
- package/dist/cjs/components/TabsFilter/TabsFilter.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/ToolbarCollection/ToolbarCollection.js +5 -3
- package/dist/cjs/components/ToolbarCollection/ToolbarCollection.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/useCollectionPageChild/useCollectionPageChild.js +32 -1
- package/dist/cjs/hooks/useCollectionPageChild/useCollectionPageChild.js.map +1 -1
- package/dist/cjs/hooks/useLayoutSwitchCollection.js +2 -1
- package/dist/cjs/hooks/useLayoutSwitchCollection.js.map +1 -1
- package/dist/cjs/hooks/usePickerModal/UsePickerModalParamsBase.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/schema/syncSourcePermissions.js +1 -0
- package/dist/cjs/schema/syncSourcePermissions.js.map +1 -1
- package/dist/cjs/schema/useLayoutSwitchCollection.js +2 -0
- package/dist/cjs/schema/useLayoutSwitchCollection.js.map +1 -1
- package/dist/cjs/state/CollectionPage/CollectionPageActionsBar.js +23 -11
- package/dist/cjs/state/CollectionPage/CollectionPageActionsBar.js.map +1 -1
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css +11 -5
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +6 -3
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
- package/dist/cjs/state/CollectionPage/MobilePrimaryActionBar.js +25 -0
- package/dist/cjs/state/CollectionPage/MobilePrimaryActionBar.js.map +1 -0
- package/dist/cjs/state/CollectionPage/MobilePrimaryActionBar.st.css +6 -0
- package/dist/cjs/state/CollectionPage/MobilePrimaryActionBar.st.css.js +25 -0
- package/dist/cjs/state/CollectionPage/MobilePrimaryActionBar.st.css.js.map +1 -0
- package/dist/cjs/state/CollectionPage/TitleBadges.js +8 -7
- package/dist/cjs/state/CollectionPage/TitleBadges.js.map +1 -1
- package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js +4 -4
- package/dist/cjs/state/CollectionPage/TitleBadges.st.css.js.map +1 -1
- package/dist/cjs/state/CollectionPage/useCollectionPageHeader.js +59 -21
- package/dist/cjs/state/CollectionPage/useCollectionPageHeader.js.map +1 -1
- package/dist/cjs/state/EditableTable/CellInteractionState.js +19 -2
- package/dist/cjs/state/EditableTable/CellInteractionState.js.map +1 -1
- package/dist/cjs/state/EditableTable/CellValueState.js +19 -1
- package/dist/cjs/state/EditableTable/CellValueState.js.map +1 -1
- package/dist/cjs/state/EditableTable/ClipboardState.js +37 -6
- package/dist/cjs/state/EditableTable/ClipboardState.js.map +1 -1
- package/dist/cjs/state/EditableTable/EditableTableState.js +29 -2
- package/dist/cjs/state/EditableTable/EditableTableState.js.map +1 -1
- package/dist/cjs/state/EditableTable/EditableTableStateBIReporter.js +17 -3
- package/dist/cjs/state/EditableTable/EditableTableStateBIReporter.js.map +1 -1
- package/dist/cjs/state/EditableTable/index.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/LayoutSwitchState.js +2 -1
- package/dist/cjs/state/LayoutSwitchState.js.map +1 -1
- package/dist/cjs/state/TableState.js.map +1 -1
- package/dist/cjs/state/ToolbarCollectionState.js +8 -3
- package/dist/cjs/state/ToolbarCollectionState.js.map +1 -1
- package/dist/cjs/state/ViewTypeState.js +6 -2
- package/dist/cjs/state/ViewTypeState.js.map +1 -1
- package/dist/cjs/styles.global.css +2 -2
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/docs/ActionSubItem.md +1 -1
- package/dist/docs/Allow Users to Add Extended Fields.md +3 -3
- package/dist/docs/BulkSelectState.md +1 -1
- package/dist/docs/CMS Collection and Entity Template.md +57 -0
- package/dist/docs/Category.md +1 -1
- package/dist/docs/Collection Toolkit.md +7 -0
- package/dist/docs/Collection and Entity Template.md +59 -0
- package/dist/docs/Collection and Read-Only Detail Template.md +47 -0
- package/dist/docs/CollectionEmptyState.md +1 -1
- package/dist/docs/CollectionErrorState.md +1 -1
- package/dist/docs/CollectionNoResultsState.md +1 -1
- package/dist/docs/CollectionOptimisticActions.md +2 -2
- package/dist/docs/CollectionPage.Content.md +1 -1
- package/dist/docs/CollectionPage.Header.md +6 -6
- package/dist/docs/CollectionPage.md +2 -2
- package/dist/docs/CollectionPremiumEmptyState.md +1 -1
- package/dist/docs/CollectionSearch.md +5 -5
- package/dist/docs/CollectionState.md +3 -3
- package/dist/docs/CollectionToolbar.md +2 -2
- package/dist/docs/Component Tests.md +2 -2
- package/dist/docs/ComputedQuery.md +1 -1
- package/dist/docs/CustomColumns.md +2 -2
- package/dist/docs/CustomFieldsViewWidget.md +1 -1
- package/dist/docs/CustomFieldsWidget.md +3 -3
- package/dist/docs/Data Extension Overview.md +5 -5
- package/dist/docs/DataResultRaw.md +1 -1
- package/dist/docs/Display Extended Fields.md +4 -4
- package/dist/docs/Enable Filters for Extended Fields.md +3 -3
- package/dist/docs/EntityPage.AdditionalContent.md +2 -2
- package/dist/docs/EntityPage.Card.md +1 -1
- package/dist/docs/EntityPage.Content.md +2 -2
- package/dist/docs/EntityPage.Header.md +2 -2
- package/dist/docs/EntityPage.MainContent.md +2 -2
- package/dist/docs/EntityPage.Slots.md +1 -1
- package/dist/docs/EntityPage.md +8 -8
- package/dist/docs/EntityPageState.md +2 -2
- package/dist/docs/Explore Apps.md +1 -1
- package/dist/docs/ExportTo.md +2 -2
- package/dist/docs/Filter Overview.md +23 -23
- package/dist/docs/FilterProps.md +1 -1
- package/dist/docs/FormPageState.md +1 -1
- package/dist/docs/Grid Sections.md +4 -4
- package/dist/docs/Grid.md +4 -4
- package/dist/docs/GridDragAndDrop.md +3 -3
- package/dist/docs/GridFolders.md +1 -1
- package/dist/docs/GridFoldersSection.md +1 -1
- package/dist/docs/GridFoldersState.md +2 -2
- package/dist/docs/GridSectionsProp.md +3 -3
- package/dist/docs/GridState.md +2 -2
- package/dist/docs/ImportButton.md +1 -1
- package/dist/docs/InMemoryBackend.md +3 -3
- package/dist/docs/More Actions.md +5 -5
- package/dist/docs/MoreActionsItem.md +2 -2
- package/dist/docs/MultiAutoInlineCheckboxFilter.md +1 -1
- package/dist/docs/MultiBulkActionToolbar.md +1 -1
- package/dist/docs/MultiLevelSorting.md +3 -3
- package/dist/docs/MultiSelectCheckboxFilter.md +2 -2
- package/dist/docs/MultiSelectCollectionFilter.md +1 -1
- package/dist/docs/NestedTable.md +19 -19
- package/dist/docs/NestedTableLevel.md +3 -3
- package/dist/docs/NestedTableNodeState.md +3 -3
- package/dist/docs/NestedTableState.md +4 -4
- package/dist/docs/Page Templates.md +47 -0
- package/dist/docs/PageWrapper.md +1 -1
- package/dist/docs/PickerContent.md +7 -7
- package/dist/docs/PickerModal.md +4 -4
- package/dist/docs/PickerStandalone.md +2 -2
- package/dist/docs/PrimaryPageButton.md +1 -1
- package/dist/docs/RadioGroupFilter.md +1 -1
- package/dist/docs/Reading the Doc Indices.md +22 -5
- package/dist/docs/Settings Page Template.md +41 -0
- package/dist/docs/SettingsPage.AdditionalContent.md +2 -2
- package/dist/docs/SettingsPage.Card.md +1 -1
- package/dist/docs/SettingsPage.Content.md +2 -2
- package/dist/docs/SettingsPage.Header.md +2 -2
- package/dist/docs/SettingsPage.MainContent.md +2 -2
- package/dist/docs/SettingsPage.md +4 -4
- package/dist/docs/SettingsPageState.md +1 -1
- package/dist/docs/SingleSelectFilter.md +2 -2
- package/dist/docs/Sortable Columns.md +4 -4
- package/dist/docs/SummaryBar.md +1 -1
- package/dist/docs/Table Sections.md +4 -4
- package/dist/docs/Table.md +4 -4
- package/dist/docs/TableColumn.md +3 -3
- package/dist/docs/TableDragAndDrop.md +3 -3
- package/dist/docs/TableFolders.md +1 -1
- package/dist/docs/TableFoldersState.md +2 -2
- package/dist/docs/TableGridSwitch.md +4 -4
- package/dist/docs/TableGridSwitchDragAndDrop.md +3 -3
- package/dist/docs/TableGridSwitchFolders.md +20 -20
- package/dist/docs/TableGridSwitchFoldersState.md +5 -5
- package/dist/docs/TableGridSwitchState.md +2 -2
- package/dist/docs/TableSectionsProp.md +3 -3
- package/dist/docs/TableState.md +2 -2
- package/dist/docs/TableTopNotification.md +2 -2
- package/dist/docs/TabsFilter.md +1 -1
- package/dist/docs/Tags Overview.md +1 -1
- package/dist/docs/Tags.md +3 -3
- package/dist/docs/TagsWidget.md +3 -3
- package/dist/docs/ToolbarCollectionState.md +1 -1
- package/dist/docs/ToolbarFilters.md +1 -1
- package/dist/docs/ToolbarSecondaryActions.md +1 -1
- package/dist/docs/View.md +1 -1
- package/dist/docs/Views.md +1 -1
- package/dist/docs/WidgetsFormProvider.md +3 -3
- package/dist/docs/WixPatternsEssentialsProvider.md +1 -1
- package/dist/docs/WixPatternsProvider.md +3 -3
- package/dist/docs/arrayFilter.md +2 -2
- package/dist/docs/bulkActionModal.md +2 -2
- package/dist/docs/createNestedTableLevel.md +3 -3
- package/dist/docs/createNestedTableSingleEntityLevels.md +1 -1
- package/dist/docs/customFilter.md +2 -2
- package/dist/docs/dateRangeFilter.Factories.md +1 -1
- package/dist/docs/index.json +120 -0
- package/dist/docs/useAmbassadorCollection.md +2 -2
- package/dist/docs/useCollection.md +2 -2
- package/dist/docs/useCreateCollection.md +1 -1
- package/dist/docs/useCreateNestedOptimisticActions.md +5 -5
- package/dist/docs/useEntity.md +2 -2
- package/dist/docs/useEntityPage.md +3 -3
- package/dist/docs/useEntityPageContext.md +2 -2
- package/dist/docs/useGridCollection.md +2 -2
- package/dist/docs/useGridFolders.md +2 -2
- package/dist/docs/useNestedTable.md +5 -5
- package/dist/docs/useOptimisticActions.md +2 -2
- package/dist/docs/usePatternsNavigate.md +1 -1
- package/dist/docs/usePickerContent.md +2 -2
- package/dist/docs/usePickerModal.md +1 -1
- package/dist/docs/usePickerStandalone.md +2 -2
- package/dist/docs/useSchemaSource.md +0 -2
- package/dist/docs/useSettingsPage.md +2 -2
- package/dist/docs/useSettingsPageContext.md +2 -2
- package/dist/docs/useStaticListFilterCollection.md +2 -2
- package/dist/docs/useTableCollection.md +1 -1
- package/dist/docs/useTableFolders.md +2 -2
- package/dist/docs/useTableGridSwitchCollection.md +2 -2
- package/dist/docs/useTableGridSwitchFolders.md +4 -4
- package/dist/docs/useWidgetsFormContext.md +2 -2
- package/dist/dts-bundle/components/CollectionPage.d.ts +5 -5
- package/dist/dts-bundle/components/Grid.d.ts +1 -1
- package/dist/dts-bundle/components/LayoutSwitch.d.ts +1 -1
- package/dist/dts-bundle/components/TableGridSwitch.d.ts +1 -1
- package/dist/dts-bundle/components/schema/Grid.d.ts +1 -1
- package/dist/dts-bundle/hooks/useLayoutSwitchCollection.d.ts +15 -4
- package/dist/dts-bundle/hooks/usePickerModal.d.ts +1 -1
- package/dist/dts-bundle/index.json +51 -51
- package/dist/dts-bundle/index.txt +13 -13
- package/dist/dts-bundle/types/EntityPageState.d.ts +7 -5
- package/dist/dts-bundle/types/SchemaSource.d.ts +20 -6
- package/dist/dts-bundle/types/SchemaSourceInput.d.ts +20 -6
- package/dist/dts-bundle/types/TableState.d.ts +1 -1
- package/dist/dts-bundle/types/ToolbarCollectionBaseProps.d.ts +6 -6
- package/dist/dts-bundle/types/UseCmsSchemaSourceDeps.d.ts +8 -1
- package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/esm/components/CardContainer/CardContainer.st.css.js.map +1 -1
- package/dist/esm/components/CmsFieldManagement/CmsFieldForm.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js +2 -2
- package/dist/esm/components/CmsFieldManagement/CmsFieldModal.st.css.js.map +1 -1
- package/dist/esm/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.js +2 -2
- package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
- package/dist/esm/components/CollectionPageNew/CollectionPage.st.css +9 -3
- package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
- package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTableWSRTable.st.css.js +2 -2
- 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/CollectionToolbar/ToolbarOverflowMenu.js +15 -6
- package/dist/esm/components/CollectionToolbar/ToolbarOverflowMenu.js.map +1 -1
- package/dist/esm/components/CollectionToolbar/useToolbarOverflowItems.js +5 -0
- package/dist/esm/components/CollectionToolbar/useToolbarOverflowItems.js.map +1 -1
- 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/ViewsDropdown.st.css.js +2 -2
- package/dist/esm/components/CustomFieldModal/CustomFieldForm.js +5 -4
- package/dist/esm/components/CustomFieldModal/CustomFieldForm.js.map +1 -1
- package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.js +8 -3
- package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.js.map +1 -1
- package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.st.css +15 -0
- package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js +15 -0
- package/dist/esm/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.js.map +1 -0
- package/dist/esm/components/CustomFieldModal/CustomFieldTypeDropdown.js +12 -4
- package/dist/esm/components/CustomFieldModal/CustomFieldTypeDropdown.js.map +1 -1
- package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/esm/components/EditableTable/AddItemRow.js +2 -2
- package/dist/esm/components/EditableTable/AddItemRow.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableCell.js +7 -1
- package/dist/esm/components/EditableTable/EditableCell.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableCell.st.css.js +2 -2
- package/dist/esm/components/EditableTable/EditableTable.js +11 -4
- package/dist/esm/components/EditableTable/EditableTable.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableTable.uni.driver.js +2 -0
- package/dist/esm/components/EditableTable/EditableTable.uni.driver.js.map +1 -1
- package/dist/esm/components/EditableTable/EditableTableContextMenu.js +16 -6
- package/dist/esm/components/EditableTable/EditableTableContextMenu.js.map +1 -1
- package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js +2 -2
- package/dist/esm/components/EditableTable/HeaderActionsPopover.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/HeaderFieldActions.js +9 -2
- package/dist/esm/components/EditableTable/HeaderFieldActions.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/CellViewLayout.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/address/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/array/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/boolean/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/boolean/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/color/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/date/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/date/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/datetime/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/datetime/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/email/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/email/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/number/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/number/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/object/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/object/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/select/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/text/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/text/View.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/time/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js +2 -2
- package/dist/esm/components/EditableTable/cellTypes/url/Edit.st.css.js.map +1 -1
- package/dist/esm/components/EditableTable/cellTypes/url/View.st.css.js +2 -2
- package/dist/esm/components/EditableTable/useAddRow.js +7 -2
- package/dist/esm/components/EditableTable/useAddRow.js.map +1 -1
- package/dist/esm/components/EditableTable/useEditableTableContextMenu.js +12 -1
- package/dist/esm/components/EditableTable/useEditableTableContextMenu.js.map +1 -1
- package/dist/esm/components/EmptyState/EmptyStateBase.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/FieldActions/HeaderActionsPopover.js +13 -2
- package/dist/esm/components/FieldActions/HeaderActionsPopover.js.map +1 -1
- package/dist/esm/components/Heading/Heading.st.css.js +2 -2
- package/dist/esm/components/ImportButton/ImportButton.js +3 -1
- package/dist/esm/components/ImportButton/ImportButton.js.map +1 -1
- package/dist/esm/components/ImportButton/ImportButton.uni.driver.js +5 -0
- package/dist/esm/components/ImportButton/ImportButton.uni.driver.js.map +1 -1
- package/dist/esm/components/ImportButton/ImportStepUpload.st.css.js +2 -2
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/esm/components/LayoutSwitch/LayoutSwitch.js +27 -0
- package/dist/esm/components/LayoutSwitch/LayoutSwitch.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/MaxLines/MaxLines.st.css.js.map +1 -1
- package/dist/esm/components/MoreActions/MoreActionsIcon.js +5 -4
- package/dist/esm/components/MoreActions/MoreActionsIcon.js.map +1 -1
- 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/PageSubTitle/PageSubTitle.js +9 -7
- package/dist/esm/components/PageSubTitle/PageSubTitle.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/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
- package/dist/esm/components/PrimaryActions/PrimaryActions.js +1 -1
- package/dist/esm/components/PrimaryActions/PrimaryActions.js.map +1 -1
- package/dist/esm/components/ResponsiveButton/ResponsiveButton.js +7 -3
- package/dist/esm/components/ResponsiveButton/ResponsiveButton.js.map +1 -1
- package/dist/esm/components/SchemaSource/schemaFieldManagement.js +2 -0
- package/dist/esm/components/SchemaSource/schemaFieldManagement.js.map +1 -1
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/esm/components/SetupWidget/SetupWidget.st.css.js +2 -2
- package/dist/esm/components/SetupWidget/SetupWidget.st.css.js.map +1 -1
- package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
- package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
- package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js +2 -2
- package/dist/esm/components/Table/AddFieldColumnHeader.st.css.js.map +1 -1
- package/dist/esm/components/TabsFilter/TabsFilter.js +3 -2
- package/dist/esm/components/TabsFilter/TabsFilter.js.map +1 -1
- package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
- package/dist/esm/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
- package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
- package/dist/esm/components/ToolbarCollection/ToolbarCollection.js +2 -2
- package/dist/esm/components/ToolbarCollection/ToolbarCollection.js.map +1 -1
- package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/esm/components/common.st.css.js +2 -2
- package/dist/esm/hooks/useCollectionPageChild/useCollectionPageChild.js +17 -1
- package/dist/esm/hooks/useCollectionPageChild/useCollectionPageChild.js.map +1 -1
- package/dist/esm/hooks/useLayoutSwitchCollection.js +1 -0
- package/dist/esm/hooks/useLayoutSwitchCollection.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/schema/syncSourcePermissions.js +1 -0
- package/dist/esm/schema/syncSourcePermissions.js.map +1 -1
- package/dist/esm/schema/useLayoutSwitchCollection.js +2 -1
- package/dist/esm/schema/useLayoutSwitchCollection.js.map +1 -1
- package/dist/esm/state/CollectionPage/CollectionPageActionsBar.js +4 -1
- package/dist/esm/state/CollectionPage/CollectionPageActionsBar.js.map +1 -1
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css +11 -5
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +3 -3
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
- package/dist/esm/state/CollectionPage/MobilePrimaryActionBar.js +7 -0
- package/dist/esm/state/CollectionPage/MobilePrimaryActionBar.js.map +1 -0
- package/dist/esm/state/CollectionPage/MobilePrimaryActionBar.st.css +6 -0
- package/dist/esm/state/CollectionPage/MobilePrimaryActionBar.st.css.js +15 -0
- package/dist/esm/state/CollectionPage/MobilePrimaryActionBar.st.css.js.map +1 -0
- package/dist/esm/state/CollectionPage/TitleBadges.js +2 -2
- package/dist/esm/state/CollectionPage/TitleBadges.js.map +1 -1
- package/dist/esm/state/CollectionPage/TitleBadges.st.css.js +2 -2
- package/dist/esm/state/CollectionPage/TitleBadges.st.css.js.map +1 -1
- package/dist/esm/state/CollectionPage/useCollectionPageHeader.js +32 -8
- package/dist/esm/state/CollectionPage/useCollectionPageHeader.js.map +1 -1
- package/dist/esm/state/EditableTable/CellInteractionState.js +13 -2
- package/dist/esm/state/EditableTable/CellInteractionState.js.map +1 -1
- package/dist/esm/state/EditableTable/CellValueState.js +7 -1
- package/dist/esm/state/EditableTable/CellValueState.js.map +1 -1
- package/dist/esm/state/EditableTable/ClipboardState.js +33 -6
- package/dist/esm/state/EditableTable/ClipboardState.js.map +1 -1
- package/dist/esm/state/EditableTable/EditableTableState.js +28 -3
- package/dist/esm/state/EditableTable/EditableTableState.js.map +1 -1
- package/dist/esm/state/EditableTable/EditableTableStateBIReporter.js +19 -3
- package/dist/esm/state/EditableTable/EditableTableStateBIReporter.js.map +1 -1
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
- package/dist/esm/state/LayoutSwitchState.js +1 -0
- package/dist/esm/state/LayoutSwitchState.js.map +1 -1
- package/dist/esm/state/ToolbarCollectionState.js +6 -3
- package/dist/esm/state/ToolbarCollectionState.js.map +1 -1
- package/dist/esm/state/ViewTypeState.js +9 -2
- package/dist/esm/state/ViewTypeState.js.map +1 -1
- package/dist/esm/styles.global.css +2 -2
- package/dist/esm/version.js +1 -1
- package/dist/examples/ImportButton/cms-import.tsx +0 -6
- package/dist/examples/ImportButton/create-new-field.tsx +0 -6
- package/dist/examples/ImportButton/update-or-skip-by-id.tsx +0 -6
- package/dist/examples/useSchemaSource/cms-collection.tsx +0 -6
- package/dist/examples/useSchemaSource/extra-columns-and-data.tsx +0 -6
- package/dist/templates/cms-collection-entity/ItemEntityPage.tsx +47 -0
- package/dist/templates/cms-collection-entity/ItemsApp.tsx +28 -0
- package/dist/templates/cms-collection-entity/ItemsCollectionPage.tsx +56 -0
- package/dist/templates/cms-collection-entity/collection.ts +9 -0
- package/dist/templates/cms-collection-entity/page.tsx +32 -0
- package/dist/templates/collection-detail/ItemDetailPage.tsx +44 -0
- package/dist/templates/collection-detail/ItemsApp.tsx +26 -0
- package/dist/templates/collection-detail/ItemsCollectionPage.tsx +111 -0
- package/dist/templates/collection-detail/items-api.ts +66 -0
- package/dist/templates/collection-detail/page.tsx +32 -0
- package/dist/templates/collection-entity/ItemEntityPage.tsx +73 -0
- package/dist/templates/collection-entity/ItemsApp.tsx +30 -0
- package/dist/templates/collection-entity/ItemsCollectionPage.tsx +120 -0
- package/dist/templates/collection-entity/items-api.ts +66 -0
- package/dist/templates/collection-entity/page.tsx +32 -0
- package/dist/templates/settings-page/SettingsPageView.tsx +78 -0
- package/dist/templates/settings-page/page.tsx +18 -0
- package/dist/templates/settings-page/settings-api.ts +17 -0
- package/dist/types/components/CardContainer/CardContainer.st.css.d.ts.map +1 -1
- package/dist/types/components/CmsFieldManagement/CmsFieldModal.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionPageHeaderNew/CollectionPageHeader.d.ts +5 -5
- package/dist/types/components/CollectionPageNew/CollectionPage.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +2 -0
- package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/ToolbarOverflowMenu.d.ts +3 -1
- package/dist/types/components/CollectionToolbar/ToolbarOverflowMenu.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/useToolbarOverflowItems.d.ts.map +1 -1
- package/dist/types/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.d.ts.map +1 -1
- package/dist/types/components/CustomFieldModal/CustomFieldForm.d.ts.map +1 -1
- package/dist/types/components/CustomFieldModal/CustomFieldFormPiiFields.d.ts.map +1 -1
- package/dist/types/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.d.ts +19 -0
- package/dist/types/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.d.ts.map +1 -0
- package/dist/types/components/CustomFieldModal/CustomFieldTypeDropdown.d.ts.map +1 -1
- package/dist/types/components/EditableTable/AddItemRow.d.ts +3 -2
- package/dist/types/components/EditableTable/AddItemRow.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableCell.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableTable.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts +3 -0
- package/dist/types/components/EditableTable/EditableTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/EditableTable/EditableTableContextMenu.d.ts.map +1 -1
- package/dist/types/components/EditableTable/HeaderActionsPopover.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/HeaderFieldActions.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/CellViewLayout.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/address/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/boolean/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/datetime/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/email/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/object/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/select/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/text/View.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/cellTypes/url/Edit.st.css.d.ts.map +1 -1
- package/dist/types/components/EditableTable/useAddRow.d.ts +1 -0
- package/dist/types/components/EditableTable/useAddRow.d.ts.map +1 -1
- package/dist/types/components/EditableTable/useEditableTableContextMenu.d.ts +1 -1
- package/dist/types/components/EditableTable/useEditableTableContextMenu.d.ts.map +1 -1
- package/dist/types/components/FieldActions/HeaderActionsPopover.d.ts +2 -1
- package/dist/types/components/FieldActions/HeaderActionsPopover.d.ts.map +1 -1
- package/dist/types/components/Grid/Grid.d.ts +1 -1
- package/dist/types/components/ImportButton/ImportButton.d.ts.map +1 -1
- package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts +2 -0
- package/dist/types/components/ImportButton/ImportButton.uni.driver.d.ts.map +1 -1
- package/dist/types/components/ImportButton/ImportProps.d.ts +2 -0
- package/dist/types/components/ImportButton/ImportProps.d.ts.map +1 -1
- package/dist/types/components/LayoutSwitch/LayoutSwitch.d.ts.map +1 -1
- package/dist/types/components/MaxHeightText/MaxHeightText.st.css.d.ts.map +1 -1
- package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
- package/dist/types/components/MoreActions/MoreActionsIcon.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 +2 -0
- 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/PageSubTitle/PageSubTitle.d.ts.map +1 -1
- package/dist/types/components/PickerTableListItem/PickerTableListItem.st.css.d.ts.map +1 -1
- package/dist/types/components/PrimaryActions/PrimaryActions.d.ts.map +1 -1
- package/dist/types/components/ResponsiveButton/ResponsiveButton.d.ts +6 -4
- package/dist/types/components/ResponsiveButton/ResponsiveButton.d.ts.map +1 -1
- package/dist/types/components/SchemaSource/schemaFieldManagement.d.ts.map +1 -1
- package/dist/types/components/SetupWidget/SetupWidget.st.css.d.ts.map +1 -1
- package/dist/types/components/SkeletonCard/SkeletonCard.st.css.d.ts.map +1 -1
- package/dist/types/components/Table/AddFieldColumnHeader.st.css.d.ts.map +1 -1
- package/dist/types/components/Table/Table.uni.driver.d.ts +2 -0
- package/dist/types/components/Table/Table.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +2 -0
- package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +2 -0
- package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TabsFilter/TabsFilter.d.ts.map +1 -1
- package/dist/types/components/TabsFilter/TabsFilter.st.css.d.ts.map +1 -1
- package/dist/types/components/ToolbarCollection/ToolbarCollection.d.ts +6 -6
- package/dist/types/components/ToolbarCollection/ToolbarCollection.d.ts.map +1 -1
- package/dist/types/hooks/useCollectionPageChild/useCollectionPageChild.d.ts.map +1 -1
- package/dist/types/hooks/useLayoutSwitchCollection.d.ts +6 -0
- package/dist/types/hooks/useLayoutSwitchCollection.d.ts.map +1 -1
- package/dist/types/hooks/usePickerModal/UsePickerModalParamsBase.d.ts +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/schema/syncSourcePermissions.d.ts.map +1 -1
- package/dist/types/schema/useLayoutSwitchCollection.d.ts +6 -0
- package/dist/types/schema/useLayoutSwitchCollection.d.ts.map +1 -1
- package/dist/types/state/CollectionPage/CollectionPageActionsBar.d.ts.map +1 -1
- package/dist/types/state/CollectionPage/CollectionPageHeader.st.css.d.ts +4 -1
- package/dist/types/state/CollectionPage/CollectionPageHeader.st.css.d.ts.map +1 -1
- package/dist/types/state/CollectionPage/MobilePrimaryActionBar.d.ts +5 -0
- package/dist/types/state/CollectionPage/MobilePrimaryActionBar.d.ts.map +1 -0
- package/dist/types/state/CollectionPage/MobilePrimaryActionBar.st.css.d.ts +16 -0
- package/dist/types/state/CollectionPage/MobilePrimaryActionBar.st.css.d.ts.map +1 -0
- package/dist/types/state/CollectionPage/TitleBadges.d.ts +3 -1
- package/dist/types/state/CollectionPage/TitleBadges.d.ts.map +1 -1
- package/dist/types/state/CollectionPage/TitleBadges.st.css.d.ts.map +1 -1
- package/dist/types/state/CollectionPage/useCollectionPageHeader.d.ts.map +1 -1
- package/dist/types/state/EditableTable/CellInteractionState.d.ts.map +1 -1
- package/dist/types/state/EditableTable/CellValueState.d.ts +3 -2
- package/dist/types/state/EditableTable/CellValueState.d.ts.map +1 -1
- package/dist/types/state/EditableTable/ClipboardState.d.ts +5 -3
- package/dist/types/state/EditableTable/ClipboardState.d.ts.map +1 -1
- package/dist/types/state/EditableTable/EditableTableState.d.ts +11 -4
- package/dist/types/state/EditableTable/EditableTableState.d.ts.map +1 -1
- package/dist/types/state/EditableTable/EditableTableStateBIReporter.d.ts +9 -2
- package/dist/types/state/EditableTable/EditableTableStateBIReporter.d.ts.map +1 -1
- package/dist/types/state/EditableTable/index.d.ts +1 -1
- package/dist/types/state/EditableTable/index.d.ts.map +1 -1
- package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
- package/dist/types/state/LayoutSwitchState.d.ts +3 -0
- package/dist/types/state/LayoutSwitchState.d.ts.map +1 -1
- package/dist/types/state/TableState.d.ts +1 -1
- package/dist/types/state/ToolbarCollectionState.d.ts +3 -1
- package/dist/types/state/ToolbarCollectionState.d.ts.map +1 -1
- package/dist/types/state/ViewTypeState.d.ts +2 -0
- package/dist/types/state/ViewTypeState.d.ts.map +1 -1
- package/dist/types/testkit/enzyme.d.ts +8 -0
- package/dist/types/testkit/enzyme.d.ts.map +1 -1
- package/dist/types/testkit/jsdom.d.ts +11 -0
- package/dist/types/testkit/jsdom.d.ts.map +1 -1
- package/dist/types/testkit/playwright.d.ts +11 -0
- package/dist/types/testkit/playwright.d.ts.map +1 -1
- package/dist/types/testkit/puppeteer.d.ts +11 -0
- package/dist/types/testkit/puppeteer.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +11 -8
- package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
- package/src/components/CmsFieldManagement/CmsFieldForm.st.css.ts +2 -2
- package/src/components/CmsFieldManagement/CmsFieldModal.st.css.ts +2 -2
- package/src/components/CmsFieldManagement/Sections/ValidationAndDefaultsSection.st.css.ts +2 -2
- package/src/components/Collapse/Collapse.st.css.ts +2 -2
- package/src/components/CollectionPageHeaderNew/CollectionPageHeader.tsx +5 -5
- package/src/components/CollectionPageNew/CollectionPage.st.css +9 -3
- 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/CollectionTable/CollectionTableWSRTable.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/CollectionToolbar/ToolbarOverflowMenu.tsx +47 -16
- package/src/components/CollectionToolbar/useToolbarOverflowItems.ts +7 -0
- package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
- package/src/components/CustomFieldModal/CustomFieldForm.tsx +18 -13
- package/src/components/CustomFieldModal/CustomFieldFormPiiFields.st.css +15 -0
- package/src/components/CustomFieldModal/CustomFieldFormPiiFields.st.css.ts +25 -0
- package/src/components/CustomFieldModal/CustomFieldFormPiiFields.tsx +26 -14
- package/src/components/CustomFieldModal/CustomFieldTypeDropdown.tsx +15 -5
- package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
- package/src/components/EditableTable/AddItemRow.tsx +5 -2
- package/src/components/EditableTable/EditableCell.st.css.ts +2 -2
- package/src/components/EditableTable/EditableCell.tsx +7 -1
- package/src/components/EditableTable/EditableTable.tsx +24 -4
- package/src/components/EditableTable/EditableTable.uni.driver.ts +4 -0
- package/src/components/EditableTable/EditableTableContextMenu.tsx +20 -8
- package/src/components/EditableTable/HeaderActionsPopover.st.css.ts +2 -2
- package/src/components/EditableTable/HeaderFieldActions.tsx +13 -1
- package/src/components/EditableTable/cellTypes/CellViewLayout.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/address/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/array/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/boolean/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/boolean/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/color/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/date/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/date/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/datetime/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/datetime/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/email/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/email/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/number/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/number/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/object/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/object/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/select/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/text/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/text/View.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/time/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/url/Edit.st.css.ts +2 -2
- package/src/components/EditableTable/cellTypes/url/View.st.css.ts +2 -2
- package/src/components/EditableTable/useAddRow.ts +8 -2
- package/src/components/EditableTable/useEditableTableContextMenu.ts +13 -0
- package/src/components/EmptyState/EmptyStateBase.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/FieldActions/HeaderActionsPopover.tsx +15 -1
- package/src/components/Grid/Grid.tsx +1 -1
- package/src/components/Heading/Heading.st.css.ts +2 -2
- package/src/components/ImportButton/ImportButton.tsx +19 -9
- package/src/components/ImportButton/ImportButton.uni.driver.ts +6 -0
- package/src/components/ImportButton/ImportProps.tsx +2 -0
- package/src/components/ImportButton/ImportStepUpload.st.css.ts +2 -2
- package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
- package/src/components/LayoutSwitch/LayoutSwitch.tsx +43 -0
- 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/MoreActions/MoreActionsIcon.tsx +27 -13
- 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/PageSubTitle/PageSubTitle.tsx +24 -20
- 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/PrimaryActions/PrimaryActions.tsx +0 -1
- package/src/components/ResponsiveButton/ResponsiveButton.tsx +26 -14
- package/src/components/SchemaSource/schemaFieldManagement.ts +2 -0
- package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
- package/src/components/SetupWidget/SetupWidget.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/Table/AddFieldColumnHeader.st.css.ts +2 -2
- package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
- package/src/components/TabsFilter/TabsFilter.tsx +3 -2
- package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
- package/src/components/ToolbarCollection/ToolbarCollection.tsx +8 -6
- 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/useCollectionPageChild/useCollectionPageChild.tsx +26 -1
- package/src/hooks/useLayoutSwitchCollection.ts +7 -0
- package/src/hooks/usePickerModal/UsePickerModalParamsBase.ts +1 -1
- package/src/index.ts +1 -0
- package/src/schema/syncSourcePermissions.ts +1 -0
- package/src/schema/useLayoutSwitchCollection.ts +24 -11
- package/src/state/CollectionPage/CollectionPageActionsBar.tsx +7 -1
- package/src/state/CollectionPage/CollectionPageHeader.st.css +11 -5
- package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +3 -3
- package/src/state/CollectionPage/MobilePrimaryActionBar.st.css +6 -0
- package/src/state/CollectionPage/MobilePrimaryActionBar.st.css.ts +25 -0
- package/src/state/CollectionPage/MobilePrimaryActionBar.tsx +15 -0
- package/src/state/CollectionPage/TitleBadges.st.css.ts +2 -2
- package/src/state/CollectionPage/TitleBadges.tsx +4 -2
- package/src/state/CollectionPage/useCollectionPageHeader.tsx +43 -10
- package/src/state/EditableTable/CellInteractionState.ts +19 -2
- package/src/state/EditableTable/CellValueState.ts +12 -2
- package/src/state/EditableTable/ClipboardState.ts +42 -7
- package/src/state/EditableTable/EditableTableState.ts +47 -5
- package/src/state/EditableTable/EditableTableStateBIReporter.ts +23 -3
- package/src/state/EditableTable/index.ts +1 -0
- package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
- package/src/state/LayoutSwitchState.ts +4 -0
- package/src/state/TableState.ts +1 -1
- package/src/state/ToolbarCollectionState.ts +12 -3
- package/src/state/ViewTypeState.ts +12 -2
- package/src/styles.global.css +2 -2
- package/src/version.ts +1 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { withDashboard } from '@wix/patterns';
|
|
3
|
+
import { WixPatternsProvider } from '@wix/patterns/provider';
|
|
4
|
+
import { PatternsReactRoute, PatternsReactRouter } from '@wix/patterns/router';
|
|
5
|
+
import { ItemsCollectionPage } from './ItemsCollectionPage';
|
|
6
|
+
import { ItemEntityPage } from './ItemEntityPage';
|
|
7
|
+
|
|
8
|
+
export const ItemsApp = withDashboard(() => (
|
|
9
|
+
<WixPatternsProvider>
|
|
10
|
+
<PatternsReactRouter>
|
|
11
|
+
<PatternsReactRoute
|
|
12
|
+
type="collection"
|
|
13
|
+
path="/"
|
|
14
|
+
element={<ItemsCollectionPage />}
|
|
15
|
+
/>
|
|
16
|
+
<PatternsReactRoute
|
|
17
|
+
type="editEntity"
|
|
18
|
+
path="/:id"
|
|
19
|
+
element={<ItemEntityPage />}
|
|
20
|
+
/>
|
|
21
|
+
<PatternsReactRoute
|
|
22
|
+
type="createEntity"
|
|
23
|
+
path="/new"
|
|
24
|
+
element={<ItemEntityPage />}
|
|
25
|
+
/>
|
|
26
|
+
</PatternsReactRouter>
|
|
27
|
+
</WixPatternsProvider>
|
|
28
|
+
));
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
CollectionEmptyState,
|
|
4
|
+
CollectionErrorState,
|
|
5
|
+
CollectionNoResultsState,
|
|
6
|
+
PrimaryActions,
|
|
7
|
+
} from '@wix/patterns';
|
|
8
|
+
import { CollectionPage } from '@wix/patterns/page';
|
|
9
|
+
import { usePatternsNavigate } from '@wix/patterns/router';
|
|
10
|
+
// The schema entry's Table and hook, not the root ones: these take the source first.
|
|
11
|
+
import { Table, useTableCollection } from '@wix/patterns/schema';
|
|
12
|
+
import { useCmsSchemaSource } from '@wix/patterns-cms';
|
|
13
|
+
import { COLLECTION_ID, type CmsItem } from './collection';
|
|
14
|
+
|
|
15
|
+
export const ItemsCollectionPage = () => {
|
|
16
|
+
const { navigateToEntityPage } = usePatternsNavigate<CmsItem>();
|
|
17
|
+
const openNew = () => navigateToEntityPage({ path: '/new' });
|
|
18
|
+
|
|
19
|
+
// Each page builds its own source from the same collection id.
|
|
20
|
+
const source = useCmsSchemaSource<CmsItem>({ collectionId: COLLECTION_ID });
|
|
21
|
+
|
|
22
|
+
// The source supplies the fetch, the search, the item key and name, and one
|
|
23
|
+
// column per schema field.
|
|
24
|
+
const state = useTableCollection(source, { persistQueryToUrl: true });
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<CollectionPage>
|
|
28
|
+
<CollectionPage.Header
|
|
29
|
+
title={{ text: 'Items' }}
|
|
30
|
+
primaryAction={<PrimaryActions label="Add item" onClick={openNew} />}
|
|
31
|
+
/>
|
|
32
|
+
<CollectionPage.Content>
|
|
33
|
+
<Table
|
|
34
|
+
state={state}
|
|
35
|
+
emptyState={
|
|
36
|
+
<CollectionEmptyState
|
|
37
|
+
title="No items yet"
|
|
38
|
+
addNewCta={{ text: 'Add item', onClick: openNew }}
|
|
39
|
+
/>
|
|
40
|
+
}
|
|
41
|
+
noResultsState={<CollectionNoResultsState title="No items match" />}
|
|
42
|
+
errorState={(err, { retry }) => (
|
|
43
|
+
<CollectionErrorState
|
|
44
|
+
title="Couldn't load items"
|
|
45
|
+
subtitle={String(err)}
|
|
46
|
+
action={{ text: 'Retry', onClick: retry }}
|
|
47
|
+
/>
|
|
48
|
+
)}
|
|
49
|
+
onRowClick={(item: CmsItem) =>
|
|
50
|
+
navigateToEntityPage({ path: `/${item._id}`, entity: item })
|
|
51
|
+
}
|
|
52
|
+
/>
|
|
53
|
+
</CollectionPage.Content>
|
|
54
|
+
</CollectionPage>
|
|
55
|
+
);
|
|
56
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// The CMS collection both pages read. For a collection your app ships, this is
|
|
2
|
+
// the full scoped id: your app namespace, a slash, and the collection's id suffix.
|
|
3
|
+
export const COLLECTION_ID = 'your-app-namespace/items';
|
|
4
|
+
|
|
5
|
+
// A CMS row always has an _id. Every other field comes from the schema, so none
|
|
6
|
+
// is declared here.
|
|
7
|
+
export interface CmsItem extends Record<string, unknown> {
|
|
8
|
+
_id: string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// The dashboard page's entry file. A Wix CLI app has to hand the page location
|
|
2
|
+
// to the router itself: PatternsReactRouter reads it from the location prop of
|
|
3
|
+
// withDashboard (in ItemsApp), and nothing else supplies it. Leaving it out
|
|
4
|
+
// passes tsc and the build, and fails only when the page is opened.
|
|
5
|
+
import React, { useEffect, useState } from 'react';
|
|
6
|
+
import { dashboard } from '@wix/dashboard';
|
|
7
|
+
import { WixDesignSystemProvider } from '@wix/design-system';
|
|
8
|
+
import '@wix/design-system/styles.global.css';
|
|
9
|
+
import { ItemsApp } from './ItemsApp';
|
|
10
|
+
|
|
11
|
+
type PageLocation = Parameters<
|
|
12
|
+
Parameters<typeof dashboard.observeState>[0]
|
|
13
|
+
>[1]['pageLocation'];
|
|
14
|
+
|
|
15
|
+
const Page = () => {
|
|
16
|
+
const [location, setLocation] = useState<PageLocation | undefined>();
|
|
17
|
+
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
const subscription = dashboard.observeState((_pageParams, environment) => {
|
|
20
|
+
setLocation(environment.pageLocation);
|
|
21
|
+
});
|
|
22
|
+
return () => subscription.disconnect();
|
|
23
|
+
}, []);
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<WixDesignSystemProvider>
|
|
27
|
+
{location ? <ItemsApp location={location} /> : null}
|
|
28
|
+
</WixDesignSystemProvider>
|
|
29
|
+
);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export default Page;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { useParams } from 'react-router-dom';
|
|
3
|
+
import { Card, Loader, Page, Text } from '@wix/design-system';
|
|
4
|
+
import { usePatternsNavigate } from '@wix/patterns/router';
|
|
5
|
+
import { fetchItem, type Item } from './items-api';
|
|
6
|
+
|
|
7
|
+
// An EntityPage has no read-only mode: fetch and onSave are required, and its
|
|
8
|
+
// actions bar keeps a Save button. A display-only record opens a design-system
|
|
9
|
+
// Page instead.
|
|
10
|
+
export const ItemDetailPage = () => {
|
|
11
|
+
const { id } = useParams<{ id: string }>();
|
|
12
|
+
const { navigateToCollectionPage } = usePatternsNavigate();
|
|
13
|
+
const [item, setItem] = useState<Item | undefined>();
|
|
14
|
+
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (id) {
|
|
17
|
+
fetchItem(id).then(setItem);
|
|
18
|
+
}
|
|
19
|
+
}, [id]);
|
|
20
|
+
|
|
21
|
+
return (
|
|
22
|
+
<Page>
|
|
23
|
+
{/* The way back is the header's back button: there is no Cancel. */}
|
|
24
|
+
<Page.Header
|
|
25
|
+
title={item?.name ?? 'Item'}
|
|
26
|
+
showBackButton
|
|
27
|
+
onBackClicked={() => navigateToCollectionPage({ path: '/' })}
|
|
28
|
+
/>
|
|
29
|
+
<Page.Content>
|
|
30
|
+
{item ? (
|
|
31
|
+
<Card>
|
|
32
|
+
<Card.Header title="Details" />
|
|
33
|
+
<Card.Divider />
|
|
34
|
+
<Card.Content>
|
|
35
|
+
<Text>{item.name}</Text>
|
|
36
|
+
</Card.Content>
|
|
37
|
+
</Card>
|
|
38
|
+
) : (
|
|
39
|
+
<Loader />
|
|
40
|
+
)}
|
|
41
|
+
</Page.Content>
|
|
42
|
+
</Page>
|
|
43
|
+
);
|
|
44
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { withDashboard } from '@wix/patterns';
|
|
3
|
+
import { WixPatternsProvider } from '@wix/patterns/provider';
|
|
4
|
+
import { PatternsReactRoute, PatternsReactRouter } from '@wix/patterns/router';
|
|
5
|
+
import { ItemsCollectionPage } from './ItemsCollectionPage';
|
|
6
|
+
import { ItemDetailPage } from './ItemDetailPage';
|
|
7
|
+
|
|
8
|
+
// The detail route is an editEntity route even though nothing is edited: that
|
|
9
|
+
// type wires the way back to the collection, and it stays the same if the page
|
|
10
|
+
// later grows an edit form.
|
|
11
|
+
export const ItemsApp = withDashboard(() => (
|
|
12
|
+
<WixPatternsProvider>
|
|
13
|
+
<PatternsReactRouter>
|
|
14
|
+
<PatternsReactRoute
|
|
15
|
+
type="collection"
|
|
16
|
+
path="/"
|
|
17
|
+
element={<ItemsCollectionPage />}
|
|
18
|
+
/>
|
|
19
|
+
<PatternsReactRoute
|
|
20
|
+
type="editEntity"
|
|
21
|
+
path="/:id"
|
|
22
|
+
element={<ItemDetailPage />}
|
|
23
|
+
/>
|
|
24
|
+
</PatternsReactRouter>
|
|
25
|
+
</WixPatternsProvider>
|
|
26
|
+
));
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
CollectionEmptyState,
|
|
4
|
+
CollectionErrorState,
|
|
5
|
+
CollectionNoResultsState,
|
|
6
|
+
CollectionSearch,
|
|
7
|
+
CollectionToolbarFilters,
|
|
8
|
+
MultiSelectCheckboxFilter,
|
|
9
|
+
Table,
|
|
10
|
+
stringsArrayFilter,
|
|
11
|
+
useStaticListFilterCollection,
|
|
12
|
+
useTableCollection,
|
|
13
|
+
} from '@wix/patterns';
|
|
14
|
+
import { CollectionPage } from '@wix/patterns/page';
|
|
15
|
+
import { usePatternsNavigate } from '@wix/patterns/router';
|
|
16
|
+
import { fetchItemsPage, type Item, type ItemStatus } from './items-api';
|
|
17
|
+
|
|
18
|
+
const STATUS_LABELS: Record<ItemStatus, string> = {
|
|
19
|
+
ACTIVE: 'Active',
|
|
20
|
+
ARCHIVED: 'Archived',
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
// Module level: one filter per page, not one per render. Its name is not the
|
|
24
|
+
// visible title (that comes from the label props below); it feeds
|
|
25
|
+
// accessibility legends, BI and data hooks.
|
|
26
|
+
const statusFilter = stringsArrayFilter<ItemStatus>({
|
|
27
|
+
name: 'Status',
|
|
28
|
+
itemKey: (status) => status,
|
|
29
|
+
itemName: (status) => STATUS_LABELS[status] ?? status,
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
export const ItemsCollectionPage = () => {
|
|
33
|
+
const { navigateToEntityPage } = usePatternsNavigate<Item>();
|
|
34
|
+
|
|
35
|
+
const state = useTableCollection<Item, { status: typeof statusFilter }>({
|
|
36
|
+
queryName: 'items',
|
|
37
|
+
paginationMode: 'cursor',
|
|
38
|
+
itemKey: (item) => item.id,
|
|
39
|
+
itemName: (item) => item.name,
|
|
40
|
+
filters: { status: statusFilter },
|
|
41
|
+
// Every declared filter and the search term are read here. One that never
|
|
42
|
+
// reaches the query still renders, and narrows nothing.
|
|
43
|
+
fetchData: (query) =>
|
|
44
|
+
fetchItemsPage({
|
|
45
|
+
limit: query.limit,
|
|
46
|
+
cursor: query.cursor ?? undefined,
|
|
47
|
+
search: query.search,
|
|
48
|
+
filters: { status: query.filters.status },
|
|
49
|
+
}),
|
|
50
|
+
fetchErrorMessage: ({ err }) =>
|
|
51
|
+
err instanceof Error ? err.message : 'Failed to load items',
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const statusOptions = useStaticListFilterCollection(statusFilter, [
|
|
55
|
+
'ACTIVE',
|
|
56
|
+
'ARCHIVED',
|
|
57
|
+
]);
|
|
58
|
+
|
|
59
|
+
return (
|
|
60
|
+
<CollectionPage>
|
|
61
|
+
{/* Read-only: nothing to create, so no primary action. */}
|
|
62
|
+
<CollectionPage.Header title={{ text: 'Items' }} />
|
|
63
|
+
<CollectionPage.Content>
|
|
64
|
+
<Table
|
|
65
|
+
state={state}
|
|
66
|
+
// Search is on by default, so a table without this prop ships a box
|
|
67
|
+
// that reaches no query.
|
|
68
|
+
search={<CollectionSearch placeholder="Search items" />}
|
|
69
|
+
filters={
|
|
70
|
+
<CollectionToolbarFilters>
|
|
71
|
+
<MultiSelectCheckboxFilter
|
|
72
|
+
filter={statusFilter}
|
|
73
|
+
collection={statusOptions}
|
|
74
|
+
toolbarItemProps={{ label: 'Status' }}
|
|
75
|
+
accordionItemProps={{ label: 'Status' }}
|
|
76
|
+
/>
|
|
77
|
+
</CollectionToolbarFilters>
|
|
78
|
+
}
|
|
79
|
+
emptyState={<CollectionEmptyState title="No items yet" />}
|
|
80
|
+
noResultsState={
|
|
81
|
+
<CollectionNoResultsState
|
|
82
|
+
title="No items match"
|
|
83
|
+
subtitle="Try another search or clear the filters."
|
|
84
|
+
/>
|
|
85
|
+
}
|
|
86
|
+
// Without it a failed query looks like a slow one: skeletons, forever.
|
|
87
|
+
errorState={(err, { retry }) => (
|
|
88
|
+
<CollectionErrorState
|
|
89
|
+
title="Couldn't load items"
|
|
90
|
+
subtitle={String(err)}
|
|
91
|
+
action={{ text: 'Retry', onClick: retry }}
|
|
92
|
+
/>
|
|
93
|
+
)}
|
|
94
|
+
// Rows open the read-only detail route. Passing the row lets it title
|
|
95
|
+
// itself before its fetch.
|
|
96
|
+
onRowClick={(item) =>
|
|
97
|
+
navigateToEntityPage({ path: `/${item.id}`, entity: item })
|
|
98
|
+
}
|
|
99
|
+
columns={[
|
|
100
|
+
{ id: 'name', title: 'Name', render: (item) => item.name },
|
|
101
|
+
{
|
|
102
|
+
id: 'status',
|
|
103
|
+
title: 'Status',
|
|
104
|
+
render: (item) => STATUS_LABELS[item.status],
|
|
105
|
+
},
|
|
106
|
+
]}
|
|
107
|
+
/>
|
|
108
|
+
</CollectionPage.Content>
|
|
109
|
+
</CollectionPage>
|
|
110
|
+
);
|
|
111
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Where the page's data comes from. Replace each function body with your own
|
|
2
|
+
// calls (an SDK, a REST endpoint) and keep the signatures: the pages call only
|
|
3
|
+
// these, so nothing else changes when the data source does.
|
|
4
|
+
//
|
|
5
|
+
// The in-memory list below exists only so the template runs as-is.
|
|
6
|
+
|
|
7
|
+
export type ItemStatus = 'ACTIVE' | 'ARCHIVED';
|
|
8
|
+
|
|
9
|
+
export interface Item {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
status: ItemStatus;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface ItemsPageQuery {
|
|
16
|
+
limit: number;
|
|
17
|
+
cursor?: string;
|
|
18
|
+
search?: string;
|
|
19
|
+
filters: { status?: ItemStatus[] | null };
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface ItemsPage {
|
|
23
|
+
items: Item[];
|
|
24
|
+
// Always present, and undefined on the last page: an empty string reads as
|
|
25
|
+
// "there is another page" and the table keeps asking for it.
|
|
26
|
+
cursor: string | undefined;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
let items: Item[] = [
|
|
30
|
+
{ id: '1', name: 'First item', status: 'ACTIVE' },
|
|
31
|
+
{ id: '2', name: 'Second item', status: 'ARCHIVED' },
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
export async function fetchItemsPage(
|
|
35
|
+
query: ItemsPageQuery,
|
|
36
|
+
): Promise<ItemsPage> {
|
|
37
|
+
const term = query.search?.trim().toLowerCase();
|
|
38
|
+
const statuses = query.filters.status;
|
|
39
|
+
const matching = items.filter(
|
|
40
|
+
(item) =>
|
|
41
|
+
(!term || item.name.toLowerCase().includes(term)) &&
|
|
42
|
+
(!statuses?.length || statuses.includes(item.status)),
|
|
43
|
+
);
|
|
44
|
+
const start = query.cursor ? Number(query.cursor) : 0;
|
|
45
|
+
const end = start + query.limit;
|
|
46
|
+
return {
|
|
47
|
+
items: matching.slice(start, end),
|
|
48
|
+
cursor: end < matching.length ? String(end) : undefined,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export async function fetchItem(id: string): Promise<Item | undefined> {
|
|
53
|
+
return items.find((item) => item.id === id);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export async function saveItem(
|
|
57
|
+
item: Partial<Item> & { name: string },
|
|
58
|
+
): Promise<Item> {
|
|
59
|
+
const saved: Item = {
|
|
60
|
+
id: item.id ?? String(Date.now()),
|
|
61
|
+
status: item.status ?? 'ACTIVE',
|
|
62
|
+
name: item.name,
|
|
63
|
+
};
|
|
64
|
+
items = [...items.filter((existing) => existing.id !== saved.id), saved];
|
|
65
|
+
return saved;
|
|
66
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// The dashboard page's entry file. A Wix CLI app has to hand the page location
|
|
2
|
+
// to the router itself: PatternsReactRouter reads it from the location prop of
|
|
3
|
+
// withDashboard (in ItemsApp), and nothing else supplies it. Leaving it out
|
|
4
|
+
// passes tsc and the build, and fails only when the page is opened.
|
|
5
|
+
import React, { useEffect, useState } from 'react';
|
|
6
|
+
import { dashboard } from '@wix/dashboard';
|
|
7
|
+
import { WixDesignSystemProvider } from '@wix/design-system';
|
|
8
|
+
import '@wix/design-system/styles.global.css';
|
|
9
|
+
import { ItemsApp } from './ItemsApp';
|
|
10
|
+
|
|
11
|
+
type PageLocation = Parameters<
|
|
12
|
+
Parameters<typeof dashboard.observeState>[0]
|
|
13
|
+
>[1]['pageLocation'];
|
|
14
|
+
|
|
15
|
+
const Page = () => {
|
|
16
|
+
const [location, setLocation] = useState<PageLocation | undefined>();
|
|
17
|
+
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
const subscription = dashboard.observeState((_pageParams, environment) => {
|
|
20
|
+
setLocation(environment.pageLocation);
|
|
21
|
+
});
|
|
22
|
+
return () => subscription.disconnect();
|
|
23
|
+
}, []);
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<WixDesignSystemProvider>
|
|
27
|
+
{location ? <ItemsApp location={location} /> : null}
|
|
28
|
+
</WixDesignSystemProvider>
|
|
29
|
+
);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export default Page;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useParams } from 'react-router-dom';
|
|
3
|
+
import { Card, FormField, Input } from '@wix/design-system';
|
|
4
|
+
import { EntityPage, useEntityPage, useEntityPageContext } from '@wix/patterns';
|
|
5
|
+
import { useController, useForm } from '@wix/patterns/form';
|
|
6
|
+
import { fetchItem, saveItem, type Item } from './items-api';
|
|
7
|
+
|
|
8
|
+
// The form's shape is yours, and need not match the saved type.
|
|
9
|
+
type ItemFormFields = { name: string };
|
|
10
|
+
|
|
11
|
+
// One component serves both /new and /:id.
|
|
12
|
+
export const ItemEntityPage = () => {
|
|
13
|
+
const { id } = useParams<{ id?: string }>();
|
|
14
|
+
const form = useForm<ItemFormFields>();
|
|
15
|
+
|
|
16
|
+
const state = useEntityPage<Item, ItemFormFields>({
|
|
17
|
+
// The collection route, for the router's back navigation.
|
|
18
|
+
parentPath: '/',
|
|
19
|
+
// A getter: a successful create moves /new to /:id while the page stays mounted.
|
|
20
|
+
isNewEntity: () => !id,
|
|
21
|
+
form,
|
|
22
|
+
fetch: async () => ({ entity: id ? await fetchItem(id) : undefined }),
|
|
23
|
+
onSave: async () => ({
|
|
24
|
+
updatedEntity: await saveItem({ id, ...form.getValues() }),
|
|
25
|
+
}),
|
|
26
|
+
saveSuccessToast: 'Item saved',
|
|
27
|
+
saveErrorToast: () => 'Failed to save the item',
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
return (
|
|
31
|
+
<EntityPage state={state}>
|
|
32
|
+
<EntityPage.Header title={{ text: id ? 'Edit item' : 'New item' }} />
|
|
33
|
+
<EntityPage.Content>
|
|
34
|
+
<EntityPage.MainContent>
|
|
35
|
+
<Card>
|
|
36
|
+
<Card.Header title="Details" />
|
|
37
|
+
<Card.Divider />
|
|
38
|
+
<Card.Content>
|
|
39
|
+
<NameField />
|
|
40
|
+
</Card.Content>
|
|
41
|
+
</Card>
|
|
42
|
+
</EntityPage.MainContent>
|
|
43
|
+
</EntityPage.Content>
|
|
44
|
+
</EntityPage>
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
// One controller per field. It reads the page's form, and it renders inside
|
|
49
|
+
// Card.Content, where the entity has loaded, so its default value is the saved one.
|
|
50
|
+
const NameField = () => {
|
|
51
|
+
const page = useEntityPageContext<Item, ItemFormFields>();
|
|
52
|
+
const { field, fieldState } = useController({
|
|
53
|
+
name: 'name',
|
|
54
|
+
control: page.form.control,
|
|
55
|
+
defaultValue: page.entity?.name ?? '',
|
|
56
|
+
rules: { required: { value: true, message: 'A name is required' } },
|
|
57
|
+
});
|
|
58
|
+
return (
|
|
59
|
+
<FormField
|
|
60
|
+
label="Name"
|
|
61
|
+
required
|
|
62
|
+
status={fieldState.error ? 'error' : undefined}
|
|
63
|
+
statusMessage={fieldState.error?.message}
|
|
64
|
+
>
|
|
65
|
+
<Input
|
|
66
|
+
inputRef={field.ref}
|
|
67
|
+
value={field.value}
|
|
68
|
+
onChange={field.onChange}
|
|
69
|
+
onBlur={field.onBlur}
|
|
70
|
+
/>
|
|
71
|
+
</FormField>
|
|
72
|
+
);
|
|
73
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { withDashboard } from '@wix/patterns';
|
|
3
|
+
import { WixPatternsProvider } from '@wix/patterns/provider';
|
|
4
|
+
import { PatternsReactRoute, PatternsReactRouter } from '@wix/patterns/router';
|
|
5
|
+
import { ItemsCollectionPage } from './ItemsCollectionPage';
|
|
6
|
+
import { ItemEntityPage } from './ItemEntityPage';
|
|
7
|
+
|
|
8
|
+
// The provider is a parent of everything that reads the collection or the
|
|
9
|
+
// router, never a sibling of it.
|
|
10
|
+
export const ItemsApp = withDashboard(() => (
|
|
11
|
+
<WixPatternsProvider>
|
|
12
|
+
<PatternsReactRouter>
|
|
13
|
+
<PatternsReactRoute
|
|
14
|
+
type="collection"
|
|
15
|
+
path="/"
|
|
16
|
+
element={<ItemsCollectionPage />}
|
|
17
|
+
/>
|
|
18
|
+
<PatternsReactRoute
|
|
19
|
+
type="editEntity"
|
|
20
|
+
path="/:id"
|
|
21
|
+
element={<ItemEntityPage />}
|
|
22
|
+
/>
|
|
23
|
+
<PatternsReactRoute
|
|
24
|
+
type="createEntity"
|
|
25
|
+
path="/new"
|
|
26
|
+
element={<ItemEntityPage />}
|
|
27
|
+
/>
|
|
28
|
+
</PatternsReactRouter>
|
|
29
|
+
</WixPatternsProvider>
|
|
30
|
+
));
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
CollectionEmptyState,
|
|
4
|
+
CollectionErrorState,
|
|
5
|
+
CollectionNoResultsState,
|
|
6
|
+
CollectionSearch,
|
|
7
|
+
CollectionToolbarFilters,
|
|
8
|
+
MultiSelectCheckboxFilter,
|
|
9
|
+
PrimaryActions,
|
|
10
|
+
Table,
|
|
11
|
+
stringsArrayFilter,
|
|
12
|
+
useStaticListFilterCollection,
|
|
13
|
+
useTableCollection,
|
|
14
|
+
} from '@wix/patterns';
|
|
15
|
+
import { CollectionPage } from '@wix/patterns/page';
|
|
16
|
+
import { usePatternsNavigate } from '@wix/patterns/router';
|
|
17
|
+
import { fetchItemsPage, type Item, type ItemStatus } from './items-api';
|
|
18
|
+
|
|
19
|
+
const STATUS_LABELS: Record<ItemStatus, string> = {
|
|
20
|
+
ACTIVE: 'Active',
|
|
21
|
+
ARCHIVED: 'Archived',
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
// Module level: one filter per page, not one per render. Its name is not the
|
|
25
|
+
// visible title (that comes from the label props below); it feeds
|
|
26
|
+
// accessibility legends, BI and data hooks.
|
|
27
|
+
const statusFilter = stringsArrayFilter<ItemStatus>({
|
|
28
|
+
name: 'Status',
|
|
29
|
+
itemKey: (status) => status,
|
|
30
|
+
itemName: (status) => STATUS_LABELS[status] ?? status,
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
export const ItemsCollectionPage = () => {
|
|
34
|
+
const { navigateToEntityPage } = usePatternsNavigate<Item>();
|
|
35
|
+
// No record yet, so no entity is passed.
|
|
36
|
+
const openNew = () => navigateToEntityPage({ path: '/new' });
|
|
37
|
+
|
|
38
|
+
const state = useTableCollection<Item, { status: typeof statusFilter }>({
|
|
39
|
+
queryName: 'items',
|
|
40
|
+
paginationMode: 'cursor',
|
|
41
|
+
itemKey: (item) => item.id,
|
|
42
|
+
itemName: (item) => item.name,
|
|
43
|
+
filters: { status: statusFilter },
|
|
44
|
+
// Every declared filter and the search term are read here. One that never
|
|
45
|
+
// reaches the query still renders, and narrows nothing.
|
|
46
|
+
fetchData: (query) =>
|
|
47
|
+
fetchItemsPage({
|
|
48
|
+
limit: query.limit,
|
|
49
|
+
cursor: query.cursor ?? undefined,
|
|
50
|
+
search: query.search,
|
|
51
|
+
filters: { status: query.filters.status },
|
|
52
|
+
}),
|
|
53
|
+
fetchErrorMessage: ({ err }) =>
|
|
54
|
+
err instanceof Error ? err.message : 'Failed to load items',
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const statusOptions = useStaticListFilterCollection(statusFilter, [
|
|
58
|
+
'ACTIVE',
|
|
59
|
+
'ARCHIVED',
|
|
60
|
+
]);
|
|
61
|
+
|
|
62
|
+
return (
|
|
63
|
+
<CollectionPage>
|
|
64
|
+
<CollectionPage.Header
|
|
65
|
+
title={{ text: 'Items' }}
|
|
66
|
+
primaryAction={<PrimaryActions label="Add item" onClick={openNew} />}
|
|
67
|
+
/>
|
|
68
|
+
<CollectionPage.Content>
|
|
69
|
+
<Table
|
|
70
|
+
state={state}
|
|
71
|
+
// Search is on by default, so a table without this prop ships a box
|
|
72
|
+
// that reaches no query.
|
|
73
|
+
search={<CollectionSearch placeholder="Search items" />}
|
|
74
|
+
filters={
|
|
75
|
+
<CollectionToolbarFilters>
|
|
76
|
+
<MultiSelectCheckboxFilter
|
|
77
|
+
filter={statusFilter}
|
|
78
|
+
collection={statusOptions}
|
|
79
|
+
toolbarItemProps={{ label: 'Status' }}
|
|
80
|
+
accordionItemProps={{ label: 'Status' }}
|
|
81
|
+
/>
|
|
82
|
+
</CollectionToolbarFilters>
|
|
83
|
+
}
|
|
84
|
+
emptyState={
|
|
85
|
+
<CollectionEmptyState
|
|
86
|
+
title="No items yet"
|
|
87
|
+
addNewCta={{ text: 'Add item', onClick: openNew }}
|
|
88
|
+
/>
|
|
89
|
+
}
|
|
90
|
+
noResultsState={
|
|
91
|
+
<CollectionNoResultsState
|
|
92
|
+
title="No items match"
|
|
93
|
+
subtitle="Try another search or clear the filters."
|
|
94
|
+
/>
|
|
95
|
+
}
|
|
96
|
+
// Without it a failed query looks like a slow one: skeletons, forever.
|
|
97
|
+
errorState={(err, { retry }) => (
|
|
98
|
+
<CollectionErrorState
|
|
99
|
+
title="Couldn't load items"
|
|
100
|
+
subtitle={String(err)}
|
|
101
|
+
action={{ text: 'Retry', onClick: retry }}
|
|
102
|
+
/>
|
|
103
|
+
)}
|
|
104
|
+
// Passing the row lets the entity page title itself before its fetch.
|
|
105
|
+
onRowClick={(item) =>
|
|
106
|
+
navigateToEntityPage({ path: `/${item.id}`, entity: item })
|
|
107
|
+
}
|
|
108
|
+
columns={[
|
|
109
|
+
{ id: 'name', title: 'Name', render: (item) => item.name },
|
|
110
|
+
{
|
|
111
|
+
id: 'status',
|
|
112
|
+
title: 'Status',
|
|
113
|
+
render: (item) => STATUS_LABELS[item.status],
|
|
114
|
+
},
|
|
115
|
+
]}
|
|
116
|
+
/>
|
|
117
|
+
</CollectionPage.Content>
|
|
118
|
+
</CollectionPage>
|
|
119
|
+
);
|
|
120
|
+
};
|