@payloadcms/ui 4.0.0-canary.1 → 4.0.0-canary.3
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/css/colors.css +3 -0
- package/dist/css/design-tokens.css +5 -0
- package/dist/css/elevations.css +4 -0
- package/dist/css/radius.css +1 -3
- package/dist/css/theme.css +4 -0
- package/dist/css/utilities.css +5 -0
- package/dist/elements/APIKeyInput/index.css +92 -0
- package/dist/elements/APIKeyInput/index.d.ts +14 -0
- package/dist/elements/APIKeyInput/index.d.ts.map +1 -0
- package/dist/elements/APIKeyInput/index.js +86 -0
- package/dist/elements/APIKeyInput/index.js.map +1 -0
- package/dist/elements/AppHeader/index.d.ts +3 -2
- package/dist/elements/AppHeader/index.d.ts.map +1 -1
- package/dist/elements/AppHeader/index.js +2 -2
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.css +10 -4
- package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.js +43 -40
- package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.css +25 -0
- package/dist/elements/BulkUpload/AddingFilesView/index.d.ts +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.css +9 -0
- package/dist/elements/BulkUpload/EditForm/index.d.ts +1 -1
- package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js +59 -55
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.css +71 -0
- package/dist/elements/BulkUpload/EditMany/index.d.ts +1 -1
- package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.js +1 -1
- package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.css +54 -75
- package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +60 -50
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/ColumnSelector/index.js +1 -1
- package/dist/elements/ColumnSelector/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.css +7 -1
- package/dist/elements/DocumentFields/index.css +1 -1
- package/dist/elements/Drawer/index.d.ts +25 -0
- package/dist/elements/Drawer/index.d.ts.map +1 -1
- package/dist/elements/Drawer/index.js +134 -62
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.css +32 -0
- package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.js +19 -18
- package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.css +36 -0
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts +1 -1
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +1 -1
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -1
- package/dist/elements/Hierarchy/Field/index.client.d.ts +1 -1
- package/dist/elements/Hierarchy/Field/index.client.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Field/index.client.js +5 -2
- package/dist/elements/Hierarchy/Field/index.client.js.map +1 -1
- package/dist/elements/Hierarchy/Field/index.css +37 -0
- package/dist/elements/Hierarchy/MoveMany/index.d.ts +0 -1
- package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/MoveMany/index.js +0 -1
- package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/index.css +27 -0
- package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts +1 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/index.js +1 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/index.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.js +36 -16
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/TreeNode/index.js +20 -15
- package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +1 -1
- package/dist/elements/LoadMoreRow/index.css +34 -0
- package/dist/elements/LoadMoreRow/index.d.ts +1 -1
- package/dist/elements/LoadMoreRow/index.d.ts.map +1 -1
- package/dist/elements/LoadMoreRow/index.js +4 -8
- package/dist/elements/LoadMoreRow/index.js.map +1 -1
- package/dist/elements/Popup/PopupButtonList/index.css +5 -0
- package/dist/elements/Popup/PopupGroupLabel/index.css +19 -4
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.d.ts +13 -0
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.d.ts.map +1 -0
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js +41 -0
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js.map +1 -0
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts +1 -0
- package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +4 -5
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.d.ts +2 -1
- package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/PublishMany/index.d.ts +2 -6
- package/dist/elements/PublishMany/index.d.ts.map +1 -1
- package/dist/elements/PublishMany/index.js +0 -38
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValue/index.css +1 -1
- package/dist/elements/ReactSelect/getCaptureMenuScroll.d.ts +5 -0
- package/dist/elements/ReactSelect/getCaptureMenuScroll.d.ts.map +1 -0
- package/dist/elements/ReactSelect/getCaptureMenuScroll.js +10 -0
- package/dist/elements/ReactSelect/getCaptureMenuScroll.js.map +1 -0
- package/dist/elements/ReactSelect/getMenuListStyles.d.ts +6 -0
- package/dist/elements/ReactSelect/getMenuListStyles.d.ts.map +1 -0
- package/dist/elements/ReactSelect/getMenuListStyles.js +7 -0
- package/dist/elements/ReactSelect/getMenuListStyles.js.map +1 -0
- package/dist/elements/ReactSelect/index.css +0 -1
- package/dist/elements/ReactSelect/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/index.js +168 -140
- package/dist/elements/ReactSelect/index.js.map +1 -1
- package/dist/elements/ReactSelect/types.d.ts +1 -0
- package/dist/elements/ReactSelect/types.d.ts.map +1 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/SchedulePublishButton/index.d.ts.map +1 -1
- package/dist/elements/SchedulePublishButton/index.js +6 -1
- package/dist/elements/SchedulePublishButton/index.js.map +1 -1
- package/dist/elements/SelectMany/index.js +1 -1
- package/dist/elements/SelectMany/index.js.map +1 -1
- package/dist/elements/Table/index.css +7 -5
- package/dist/elements/Tabs/index.css +100 -0
- package/dist/elements/Tabs/index.d.ts +32 -0
- package/dist/elements/Tabs/index.d.ts.map +1 -0
- package/dist/elements/Tabs/index.js +62 -0
- package/dist/elements/Tabs/index.js.map +1 -0
- package/dist/elements/TimezonePicker/index.css +0 -15
- package/dist/elements/Toasts/fieldErrors.d.ts +1 -0
- package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
- package/dist/elements/Toasts/fieldErrors.js +25 -9
- package/dist/elements/Toasts/fieldErrors.js.map +1 -1
- package/dist/elements/Toasts/index.css +5 -0
- package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
- package/dist/elements/UnpublishButton/index.js +5 -13
- package/dist/elements/UnpublishButton/index.js.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.d.ts +2 -1
- package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/UnpublishMany/index.d.ts +2 -4
- package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/index.js +0 -38
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/UserMenu/LanguageMenu/index.js +1 -1
- package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/SettingsMenu/index.d.ts +6 -2
- package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/SettingsMenu/index.js +15 -10
- package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/ThemeMenu/index.js +1 -1
- package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/index.d.ts +2 -1
- package/dist/elements/UserMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/index.js +8 -5
- package/dist/elements/UserMenu/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +7 -0
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +26 -26
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/RadioGroup/index.css +6 -0
- package/dist/fields/Tabs/Tab/index.d.ts +0 -1
- package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
- package/dist/fields/Tabs/Tab/index.js +12 -23
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Tabs/index.d.ts.map +1 -1
- package/dist/fields/Tabs/index.js +37 -37
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Upload/HasMany/index.css +4 -0
- package/dist/forms/RenderFields/RenderField.d.ts +1 -1
- package/dist/icons/Check/index.css +1 -2
- package/dist/icons/Check/index.js +1 -1
- package/dist/icons/Check/index.js.map +1 -1
- package/dist/icons/Gear/index.d.ts.map +1 -1
- package/dist/icons/Gear/index.js +8 -1
- package/dist/icons/Gear/index.js.map +1 -1
- package/dist/icons/{Write → Key}/index.css +1 -1
- package/dist/icons/Key/index.d.ts +7 -0
- package/dist/icons/Key/index.d.ts.map +1 -0
- package/dist/icons/Key/index.js +24 -0
- package/dist/icons/Key/index.js.map +1 -0
- package/dist/icons/Schedule/index.d.ts.map +1 -1
- package/dist/icons/Schedule/index.js +38 -39
- package/dist/icons/Schedule/index.js.map +1 -1
- package/dist/icons/Warning/index.css +1 -7
- package/dist/icons/Warning/index.d.ts +1 -1
- package/dist/icons/Warning/index.d.ts.map +1 -1
- package/dist/icons/Warning/index.js +11 -16
- package/dist/icons/Warning/index.js.map +1 -1
- package/dist/icons/WarningTriangle/index.css +5 -0
- package/dist/icons/WarningTriangle/index.d.ts +6 -0
- package/dist/icons/WarningTriangle/index.d.ts.map +1 -0
- package/dist/icons/WarningTriangle/index.js +21 -0
- package/dist/icons/WarningTriangle/index.js.map +1 -0
- package/dist/icons/Write/index.d.ts +0 -1
- package/dist/icons/Write/index.d.ts.map +1 -1
- package/dist/icons/Write/index.js +1 -2
- package/dist/icons/Write/index.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +4 -0
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.d.ts +4 -0
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js +27 -24
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/TableColumns/RenderDefaultCell/index.css +1 -0
- package/dist/providers/ToastContainer/index.css +208 -0
- package/dist/providers/ToastContainer/index.d.ts +1 -0
- package/dist/providers/ToastContainer/index.d.ts.map +1 -1
- package/dist/providers/ToastContainer/index.js +19 -6
- package/dist/providers/ToastContainer/index.js.map +1 -1
- package/dist/scss/app.scss +1 -2
- package/dist/styles.css +1 -1
- package/dist/templates/Default/index.d.ts.map +1 -1
- package/dist/templates/Default/index.js +51 -9
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/utilities/getHasScheduledPublish.d.ts +12 -0
- package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -0
- package/dist/utilities/getHasScheduledPublish.js +38 -0
- package/dist/utilities/getHasScheduledPublish.js.map +1 -0
- package/dist/utilities/getVersions.d.ts.map +1 -1
- package/dist/utilities/getVersions.js +1 -21
- package/dist/utilities/getVersions.js.map +1 -1
- package/dist/views/Document/index.d.ts.map +1 -1
- package/dist/views/Document/index.js +10 -1
- package/dist/views/Document/index.js.map +1 -1
- package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
- package/dist/views/Edit/Auth/APIKey.js +10 -32
- package/dist/views/Edit/Auth/APIKey.js.map +1 -1
- package/dist/views/Edit/Auth/index.css +0 -67
- package/dist/views/HierarchyList/DocumentListSelection/index.js +4 -4
- package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
- package/dist/views/List/ListSelection/index.js +4 -4
- package/dist/views/List/ListSelection/index.js.map +1 -1
- package/dist/views/List/handleGroupBy.d.ts.map +1 -1
- package/dist/views/List/handleGroupBy.js +9 -0
- package/dist/views/List/handleGroupBy.js.map +1 -1
- package/dist/views/List/index.client.d.ts.map +1 -1
- package/dist/views/List/index.client.js +3 -2
- package/dist/views/List/index.client.js.map +1 -1
- package/dist/views/List/index.css +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +2 -1
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
- package/dist/views/List/renderListViewSlots.js +11 -0
- package/dist/views/List/renderListViewSlots.js.map +1 -1
- package/dist/views/Logout/LogoutClient.js +1 -1
- package/dist/views/Logout/LogoutClient.js.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/index.css +5 -0
- package/dist/views/Version/SelectComparison/VersionDrawer/index.d.ts +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/index.d.ts.map +1 -1
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js +1 -2
- package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/index.css +5 -0
- package/dist/views/Version/SelectComparison/index.d.ts +1 -1
- package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
- package/dist/views/Version/SelectComparison/index.js +1 -1
- package/dist/views/Version/SelectComparison/index.js.map +1 -1
- package/dist/views/Versions/index.css +2 -2
- package/dist/views/Versions/index.d.ts +1 -1
- package/dist/views/Versions/index.d.ts.map +1 -1
- package/dist/views/Versions/index.js +3 -26
- package/dist/views/Versions/index.js.map +1 -1
- package/package.json +5 -5
- package/dist/elements/BulkUpload/AddingFilesView/index.scss +0 -25
- package/dist/elements/BulkUpload/EditForm/index.scss +0 -11
- package/dist/elements/BulkUpload/EditMany/index.scss +0 -171
- package/dist/elements/FileDetails/DraggableFileDetails/index.scss +0 -35
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.scss +0 -78
- package/dist/elements/Hierarchy/Field/index.scss +0 -41
- package/dist/elements/Hierarchy/MoveMany/index.scss +0 -7
- package/dist/elements/Hierarchy/Tree/LoadMore/index.scss +0 -26
- package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts +0 -7
- package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/TreeConnector.js +0 -23
- package/dist/elements/Hierarchy/Tree/TreeConnector.js.map +0 -1
- package/dist/elements/LoadMoreRow/index.scss +0 -45
- package/dist/fields/Tabs/Tab/index.css +0 -82
- package/dist/scss/toasts.scss +0 -146
- package/dist/views/Version/SelectComparison/VersionDrawer/index.scss +0 -18
- package/dist/views/Version/SelectComparison/index.scss +0 -9
|
@@ -48,15 +48,16 @@
|
|
|
48
48
|
padding-inline-end: var(--spacer-3);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
/* Linked cells: move padding to the anchor for full-cell clickability */
|
|
51
|
+
/* Linked cells: move padding to the anchor/button for full-cell clickability */
|
|
52
52
|
.cell--linked {
|
|
53
53
|
padding: 0;
|
|
54
54
|
|
|
55
|
-
> a {
|
|
55
|
+
> :is(a, button) {
|
|
56
56
|
display: flex;
|
|
57
57
|
align-items: center;
|
|
58
58
|
padding: var(--spacer-2) var(--spacer-2-5);
|
|
59
59
|
min-height: calc(var(--spacer-4) * 2);
|
|
60
|
+
cursor: pointer;
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
63
|
|
|
@@ -176,16 +177,17 @@
|
|
|
176
177
|
}
|
|
177
178
|
}
|
|
178
179
|
|
|
179
|
-
/* Linked cells: move padding to the anchor for full-cell clickability */
|
|
180
|
+
/* Linked cells: move padding to the anchor/button for full-cell clickability */
|
|
180
181
|
.cell--linked {
|
|
181
182
|
padding: 0;
|
|
182
183
|
|
|
183
|
-
> a {
|
|
184
|
+
> :is(a, button) {
|
|
184
185
|
padding: 0 var(--spacer-2-5);
|
|
185
186
|
min-height: var(--spacer-5);
|
|
187
|
+
cursor: pointer;
|
|
186
188
|
}
|
|
187
189
|
|
|
188
|
-
&:first-child > a {
|
|
190
|
+
&:first-child > :is(a, button) {
|
|
189
191
|
padding-inline-start: var(--spacer-2-5);
|
|
190
192
|
}
|
|
191
193
|
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
@layer payload-default {
|
|
2
|
+
.tabs__tabs-wrap {
|
|
3
|
+
overflow-x: auto;
|
|
4
|
+
overflow-y: hidden;
|
|
5
|
+
margin-bottom: var(--spacer-2);
|
|
6
|
+
position: relative;
|
|
7
|
+
padding-bottom: 2px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.tabs__tabs {
|
|
11
|
+
display: inline-flex;
|
|
12
|
+
min-width: 100%;
|
|
13
|
+
vertical-align: bottom;
|
|
14
|
+
position: relative;
|
|
15
|
+
z-index: 1;
|
|
16
|
+
box-shadow: inset 0px -1px var(--color-border);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.tabs__tab-button {
|
|
20
|
+
appearance: none;
|
|
21
|
+
background: none;
|
|
22
|
+
border: none;
|
|
23
|
+
display: flex;
|
|
24
|
+
align-items: center;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
gap: var(--spacer-1);
|
|
27
|
+
padding: var(--spacer-1) var(--spacer-2);
|
|
28
|
+
margin: 0;
|
|
29
|
+
margin-bottom: var(--spacer-2);
|
|
30
|
+
cursor: pointer;
|
|
31
|
+
position: relative;
|
|
32
|
+
white-space: nowrap;
|
|
33
|
+
flex-shrink: 0;
|
|
34
|
+
font-family: var(--text-body-medium-font-family);
|
|
35
|
+
font-size: var(--text-body-medium-font-size);
|
|
36
|
+
font-weight: var(--text-body-medium-font-weight);
|
|
37
|
+
line-height: var(--text-body-medium-line-height);
|
|
38
|
+
letter-spacing: var(--text-letter-spacing);
|
|
39
|
+
color: var(--color-text-secondary);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.tabs__tab-button:after {
|
|
43
|
+
content: '';
|
|
44
|
+
position: absolute;
|
|
45
|
+
left: var(--spacer-2);
|
|
46
|
+
right: var(--spacer-2);
|
|
47
|
+
bottom: calc(-1 * var(--spacer-2) - 1px);
|
|
48
|
+
height: 3px;
|
|
49
|
+
background: var(--color-icon-brand);
|
|
50
|
+
border-radius: var(--radius-full);
|
|
51
|
+
opacity: 0;
|
|
52
|
+
z-index: 1;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.tabs__tab-button:hover:after {
|
|
56
|
+
background: var(--color-bg-tertiary);
|
|
57
|
+
opacity: 1;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.tabs__tab-button:focus-visible {
|
|
61
|
+
outline-offset: -1px;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.tabs__tab-button--hidden {
|
|
65
|
+
display: none;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.tabs__tab-button--active {
|
|
69
|
+
font-weight: var(--text-body-medium-strong-font-weight);
|
|
70
|
+
color: var(--color-text);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.tabs__tab-button--active:after {
|
|
74
|
+
background: var(--color-icon-brand);
|
|
75
|
+
opacity: 1;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.tabs__tab-button--active:hover:after {
|
|
79
|
+
background: var(--color-icon-brand);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.tabs__tab-button--has-error {
|
|
83
|
+
color: var(--color-text-danger);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.tabs__tab-button--has-error:after {
|
|
87
|
+
background: var(--field-color-border-error);
|
|
88
|
+
opacity: 1;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.tabs__tab-button--has-error:hover:after {
|
|
92
|
+
background: var(--field-color-border-error);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
@media (max-width: 768px) {
|
|
96
|
+
.tabs__tab-button {
|
|
97
|
+
padding-bottom: var(--spacer-2);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './index.css';
|
|
3
|
+
export type TabsTab<TValue extends string = string> = {
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
hidden?: boolean;
|
|
6
|
+
label: React.ReactNode;
|
|
7
|
+
value: TValue;
|
|
8
|
+
};
|
|
9
|
+
export type TabsProps<TValue extends string = string> = {
|
|
10
|
+
className?: string;
|
|
11
|
+
onChange: (value: TValue) => void;
|
|
12
|
+
tabs: TabsTab<TValue>[];
|
|
13
|
+
value: TValue;
|
|
14
|
+
};
|
|
15
|
+
export declare const Tabs: <TValue extends string = string>({ className, onChange, tabs, value, }: TabsProps<TValue>) => React.JSX.Element;
|
|
16
|
+
export declare const TabsList: React.FC<{
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
className?: string;
|
|
19
|
+
tabsClassName?: string;
|
|
20
|
+
tabsWrapClassName?: string;
|
|
21
|
+
}>;
|
|
22
|
+
export declare const TabButton: React.FC<{
|
|
23
|
+
children: React.ReactNode;
|
|
24
|
+
className?: string;
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
hasError?: boolean;
|
|
27
|
+
hidden?: boolean;
|
|
28
|
+
isActive?: boolean;
|
|
29
|
+
modifierClassName?: string;
|
|
30
|
+
onClick: () => void;
|
|
31
|
+
}>;
|
|
32
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Tabs/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,aAAa,CAAA;AAIpB,MAAM,MAAM,OAAO,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,uCAKlD,SAAS,CAAC,MAAM,CAAC,sBAgBnB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,CAaA,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAiCA,CAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import './index.css';
|
|
6
|
+
const baseClass = 'tabs';
|
|
7
|
+
export const Tabs = ({
|
|
8
|
+
className,
|
|
9
|
+
onChange,
|
|
10
|
+
tabs,
|
|
11
|
+
value
|
|
12
|
+
}) => {
|
|
13
|
+
return /*#__PURE__*/_jsx(TabsList, {
|
|
14
|
+
className: className,
|
|
15
|
+
children: tabs.map(tab => /*#__PURE__*/_jsx(TabButton, {
|
|
16
|
+
disabled: tab.disabled,
|
|
17
|
+
hidden: tab.hidden,
|
|
18
|
+
isActive: tab.value === value,
|
|
19
|
+
onClick: () => onChange(tab.value),
|
|
20
|
+
children: tab.label
|
|
21
|
+
}, tab.value))
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
export const TabsList = ({
|
|
25
|
+
children,
|
|
26
|
+
className,
|
|
27
|
+
tabsClassName,
|
|
28
|
+
tabsWrapClassName
|
|
29
|
+
}) => {
|
|
30
|
+
return /*#__PURE__*/_jsx("div", {
|
|
31
|
+
className: [baseClass, className].filter(Boolean).join(' '),
|
|
32
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
33
|
+
className: [`${baseClass}__tabs-wrap`, tabsWrapClassName].filter(Boolean).join(' '),
|
|
34
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
35
|
+
className: [`${baseClass}__tabs`, tabsClassName].filter(Boolean).join(' '),
|
|
36
|
+
role: "tablist",
|
|
37
|
+
children: children
|
|
38
|
+
})
|
|
39
|
+
})
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
export const TabButton = ({
|
|
43
|
+
children,
|
|
44
|
+
className,
|
|
45
|
+
disabled,
|
|
46
|
+
hasError,
|
|
47
|
+
hidden,
|
|
48
|
+
isActive,
|
|
49
|
+
modifierClassName,
|
|
50
|
+
onClick
|
|
51
|
+
}) => {
|
|
52
|
+
return /*#__PURE__*/_jsx("button", {
|
|
53
|
+
"aria-selected": isActive,
|
|
54
|
+
className: [`${baseClass}__tab-button`, className, hasError && `${baseClass}__tab-button--has-error`, hasError && modifierClassName && `${modifierClassName}--has-error`, isActive && `${baseClass}__tab-button--active`, isActive && modifierClassName && `${modifierClassName}--active`, hidden && `${baseClass}__tab-button--hidden`, hidden && modifierClassName && `${modifierClassName}--hidden`].filter(Boolean).join(' '),
|
|
55
|
+
disabled: disabled,
|
|
56
|
+
onClick: onClick,
|
|
57
|
+
role: "tab",
|
|
58
|
+
type: "button",
|
|
59
|
+
children: children
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","baseClass","Tabs","className","onChange","tabs","value","_jsx","TabsList","map","tab","TabButton","disabled","hidden","isActive","onClick","label","children","tabsClassName","tabsWrapClassName","filter","Boolean","join","role","hasError","modifierClassName","type"],"sources":["../../../src/elements/Tabs/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport './index.css'\n\nconst baseClass = 'tabs'\n\nexport type TabsTab<TValue extends string = string> = {\n disabled?: boolean\n hidden?: boolean\n label: React.ReactNode\n value: TValue\n}\n\nexport type TabsProps<TValue extends string = string> = {\n className?: string\n onChange: (value: TValue) => void\n tabs: TabsTab<TValue>[]\n value: TValue\n}\n\nexport const Tabs = <TValue extends string = string>({\n className,\n onChange,\n tabs,\n value,\n}: TabsProps<TValue>) => {\n return (\n <TabsList className={className}>\n {tabs.map((tab) => (\n <TabButton\n disabled={tab.disabled}\n hidden={tab.hidden}\n isActive={tab.value === value}\n key={tab.value}\n onClick={() => onChange(tab.value)}\n >\n {tab.label}\n </TabButton>\n ))}\n </TabsList>\n )\n}\n\nexport const TabsList: React.FC<{\n children: React.ReactNode\n className?: string\n tabsClassName?: string\n tabsWrapClassName?: string\n}> = ({ children, className, tabsClassName, tabsWrapClassName }) => {\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <div className={[`${baseClass}__tabs-wrap`, tabsWrapClassName].filter(Boolean).join(' ')}>\n <div\n className={[`${baseClass}__tabs`, tabsClassName].filter(Boolean).join(' ')}\n role=\"tablist\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nexport const TabButton: React.FC<{\n children: React.ReactNode\n className?: string\n disabled?: boolean\n hasError?: boolean\n hidden?: boolean\n isActive?: boolean\n modifierClassName?: string\n onClick: () => void\n}> = ({\n children,\n className,\n disabled,\n hasError,\n hidden,\n isActive,\n modifierClassName,\n onClick,\n}) => {\n return (\n <button\n aria-selected={isActive}\n className={[\n `${baseClass}__tab-button`,\n className,\n hasError && `${baseClass}__tab-button--has-error`,\n hasError && modifierClassName && `${modifierClassName}--has-error`,\n isActive && `${baseClass}__tab-button--active`,\n isActive && modifierClassName && `${modifierClassName}--active`,\n hidden && `${baseClass}__tab-button--hidden`,\n hidden && modifierClassName && `${modifierClassName}--hidden`,\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={disabled}\n onClick={onClick}\n role=\"tab\"\n type=\"button\"\n >\n {children}\n </button>\n )\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAgBlB,OAAO,MAAMC,IAAA,GAAOA,CAAiC;EACnDC,SAAS;EACTC,QAAQ;EACRC,IAAI;EACJC;AAAK,CACa;EAClB,oBACEC,IAAA,CAACC,QAAA;IAASL,SAAA,EAAWA,SAAA;cAClBE,IAAA,CAAKI,GAAG,CAAEC,GAAA,iBACTH,IAAA,CAACI,SAAA;MACCC,QAAA,EAAUF,GAAA,CAAIE,QAAQ;MACtBC,MAAA,EAAQH,GAAA,CAAIG,MAAM;MAClBC,QAAA,EAAUJ,GAAA,CAAIJ,KAAK,KAAKA,KAAA;MAExBS,OAAA,EAASA,CAAA,KAAMX,QAAA,CAASM,GAAA,CAAIJ,KAAK;gBAEhCI,GAAA,CAAIM;OAHAN,GAAA,CAAIJ,KAAK;;AAQxB;AAEA,OAAO,MAAME,QAAA,GAKRA,CAAC;EAAES,QAAQ;EAAEd,SAAS;EAAEe,aAAa;EAAEC;AAAiB,CAAE;EAC7D,oBACEZ,IAAA,CAAC;IAAIJ,SAAA,EAAW,CAACF,SAAA,EAAWE,SAAA,CAAU,CAACiB,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;cAC1D,aAAAf,IAAA,CAAC;MAAIJ,SAAA,EAAW,CAAC,GAAGF,SAAA,aAAsB,EAAEkB,iBAAA,CAAkB,CAACC,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;gBAClF,aAAAf,IAAA,CAAC;QACCJ,SAAA,EAAW,CAAC,GAAGF,SAAA,QAAiB,EAAEiB,aAAA,CAAc,CAACE,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;QACtEC,IAAA,EAAK;kBAEJN;;;;AAKX;AAEA,OAAO,MAAMN,SAAA,GASRA,CAAC;EACJM,QAAQ;EACRd,SAAS;EACTS,QAAQ;EACRY,QAAQ;EACRX,MAAM;EACNC,QAAQ;EACRW,iBAAiB;EACjBV;AAAO,CACR;EACC,oBACER,IAAA,CAAC;IACC,iBAAeO,QAAA;IACfX,SAAA,EAAW,CACT,GAAGF,SAAA,cAAuB,EAC1BE,SAAA,EACAqB,QAAA,IAAY,GAAGvB,SAAA,yBAAkC,EACjDuB,QAAA,IAAYC,iBAAA,IAAqB,GAAGA,iBAAA,aAA8B,EAClEX,QAAA,IAAY,GAAGb,SAAA,sBAA+B,EAC9Ca,QAAA,IAAYW,iBAAA,IAAqB,GAAGA,iBAAA,UAA2B,EAC/DZ,MAAA,IAAU,GAAGZ,SAAA,sBAA+B,EAC5CY,MAAA,IAAUY,iBAAA,IAAqB,GAAGA,iBAAA,UAA2B,CAC9D,CACEL,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;IACRV,QAAA,EAAUA,QAAA;IACVG,OAAA,EAASA,OAAA;IACTQ,IAAA,EAAK;IACLG,IAAA,EAAK;cAEJT;;AAGP","ignoreList":[]}
|
|
@@ -196,20 +196,5 @@
|
|
|
196
196
|
max-height: calc(var(--spacer-6) * 5);
|
|
197
197
|
padding-inline: var(--spacer-2);
|
|
198
198
|
padding-bottom: var(--spacer-2);
|
|
199
|
-
scrollbar-width: thin;
|
|
200
|
-
scrollbar-color: color-mix(in srgb, var(--color-text) 40%, transparent) transparent;
|
|
201
|
-
|
|
202
|
-
&::-webkit-scrollbar {
|
|
203
|
-
width: 4px;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
&::-webkit-scrollbar-thumb {
|
|
207
|
-
background: color-mix(in srgb, var(--color-text) 40%, transparent);
|
|
208
|
-
border-radius: 2px;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
&::-webkit-scrollbar-track {
|
|
212
|
-
background: transparent;
|
|
213
|
-
}
|
|
214
199
|
}
|
|
215
200
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldErrors.d.ts","sourceRoot":"","sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"fieldErrors.d.ts","sourceRoot":"","sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,aAAa,CAAA;AA6BpB,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG;IACxD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB,CAwBA;AAED,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE;;CAAA,qBA4BhD"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
5
5
|
import React from 'react';
|
|
6
|
+
import { WarningIcon } from '../../icons/Warning/index.js';
|
|
7
|
+
import './index.css';
|
|
6
8
|
function groupSimilarErrors(items) {
|
|
7
9
|
const result = [];
|
|
8
10
|
for (const item of items) {
|
|
@@ -66,14 +68,28 @@ export function FieldErrorsToast(t0) {
|
|
|
66
68
|
} = t2;
|
|
67
69
|
let t3;
|
|
68
70
|
if ($[2] !== errors || $[3] !== message) {
|
|
69
|
-
t3 = _jsxs(
|
|
70
|
-
children: [
|
|
71
|
-
|
|
72
|
-
children:
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
71
|
+
t3 = _jsxs(_Fragment, {
|
|
72
|
+
children: [_jsx("div", {
|
|
73
|
+
className: "toast-icon",
|
|
74
|
+
children: _jsx(WarningIcon, {
|
|
75
|
+
size: 24
|
|
76
|
+
})
|
|
77
|
+
}), _jsx("div", {
|
|
78
|
+
className: "toast-content",
|
|
79
|
+
"data-testid": "field-errors-toast",
|
|
80
|
+
children: _jsxs("div", {
|
|
81
|
+
className: "toast-title",
|
|
82
|
+
children: [message, Array.isArray(errors) && errors.length > 0 ? errors.length === 1 ? _jsx("span", {
|
|
83
|
+
className: "field-error",
|
|
84
|
+
"data-testid": "field-error",
|
|
85
|
+
children: errors[0]
|
|
86
|
+
}) : _jsx("ul", {
|
|
87
|
+
className: "field-errors",
|
|
88
|
+
"data-testid": "field-errors",
|
|
89
|
+
children: errors.map(_temp)
|
|
90
|
+
}) : null]
|
|
91
|
+
})
|
|
92
|
+
})]
|
|
77
93
|
});
|
|
78
94
|
$[2] = errors;
|
|
79
95
|
$[3] = message;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldErrors.js","names":["c","_c","React","groupSimilarErrors","items","result","item","parts","split","inserted","i","length","startsWith","splice","push","createErrorsFromMessage","message","colonIndex","indexOf","intro","slice","errorsString","undefined","errors","map","error","replaceAll","trim","FieldErrorsToast","t0","$","errorMessage","t1","t2","useState","t3","_jsxs","children","
|
|
1
|
+
{"version":3,"file":"fieldErrors.js","names":["c","_c","React","WarningIcon","groupSimilarErrors","items","result","item","parts","split","inserted","i","length","startsWith","splice","push","createErrorsFromMessage","message","colonIndex","indexOf","intro","slice","errorsString","undefined","errors","map","error","replaceAll","trim","FieldErrorsToast","t0","$","errorMessage","t1","t2","useState","t3","_jsxs","_Fragment","children","_jsx","className","size","Array","isArray","_temp","index"],"sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { WarningIcon } from '../../icons/Warning/index.js'\nimport './index.css'\n\nfunction groupSimilarErrors(items: string[]): string[] {\n const result: string[] = []\n\n for (const item of items) {\n if (item) {\n const parts = item.split(' → ')\n let inserted = false\n\n // Find a place where a similar path exists\n for (let i = 0; i < result.length; i++) {\n if (result[i].startsWith(parts[0])) {\n result.splice(i + 1, 0, item)\n inserted = true\n break\n }\n }\n\n // If no similar path was found, add to the end\n if (!inserted) {\n result.push(item)\n }\n }\n }\n\n return result\n}\n\nexport function createErrorsFromMessage(message: string): {\n errors?: string[]\n message: string\n} {\n const colonIndex = message.indexOf(':')\n const intro = colonIndex >= 0 ? message.slice(0, colonIndex) : message\n const errorsString = colonIndex >= 0 ? message.slice(colonIndex + 1) : undefined\n\n if (!errorsString) {\n return {\n message: intro,\n }\n }\n\n const errors = errorsString.split(',').map((error) => error.replaceAll(' > ', ' → ').trim())\n\n if (errors.length === 1) {\n return {\n errors,\n message: `${intro}: `,\n }\n }\n\n return {\n errors: groupSimilarErrors(errors),\n message: `${intro} (${errors.length}):`,\n }\n}\n\nexport function FieldErrorsToast({ errorMessage }) {\n const [{ errors, message }] = React.useState(() => createErrorsFromMessage(errorMessage))\n\n return (\n <>\n <div className=\"toast-icon\">\n <WarningIcon size={24} />\n </div>\n <div className=\"toast-content\" data-testid=\"field-errors-toast\">\n <div className=\"toast-title\">\n {message}\n {Array.isArray(errors) && errors.length > 0 ? (\n errors.length === 1 ? (\n <span className=\"field-error\" data-testid=\"field-error\">\n {errors[0]}\n </span>\n ) : (\n <ul className=\"field-errors\" data-testid=\"field-errors\">\n {errors.map((error, index) => {\n return <li key={index}>{error}</li>\n })}\n </ul>\n )\n ) : null}\n </div>\n </div>\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAMzD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAMzD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAWpD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EAAE,SAAS,GACjB,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,0BAA+B,qBA8LtD"}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useModal } from '@faceless-ui/modal';
|
|
5
5
|
import { getTranslation } from '@payloadcms/translations';
|
|
6
|
-
import { formatAdminURL } from 'payload/shared';
|
|
6
|
+
import { formatAdminURL, hasLocalizeStatusEnabled } from 'payload/shared';
|
|
7
7
|
import * as qs from 'qs-esm';
|
|
8
|
-
import React, { useCallback,
|
|
8
|
+
import React, { useCallback, useState } from 'react';
|
|
9
9
|
import { toast } from 'sonner';
|
|
10
10
|
import { useForm } from '../../forms/Form/context.js';
|
|
11
11
|
import { useConfig } from '../../providers/Config/index.js';
|
|
@@ -13,7 +13,6 @@ import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
|
|
|
13
13
|
import { useLocale } from '../../providers/Locale/index.js';
|
|
14
14
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
15
15
|
import { requests } from '../../utilities/api.js';
|
|
16
|
-
import { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js';
|
|
17
16
|
import { ConfirmationModal } from '../ConfirmationModal/index.js';
|
|
18
17
|
import { PopupList } from '../Popup/index.js';
|
|
19
18
|
export function UnpublishButton({
|
|
@@ -47,7 +46,6 @@ export function UnpublishButton({
|
|
|
47
46
|
label: localeLabel
|
|
48
47
|
} = useLocale();
|
|
49
48
|
const [unpublishAll, setUnpublishAll] = useState(false);
|
|
50
|
-
const [hasLocalizedFields, setHasLocalizedFields] = useState(false);
|
|
51
49
|
const unPublishModalSlug = `confirm-un-publish-${id}`;
|
|
52
50
|
const {
|
|
53
51
|
routes: {
|
|
@@ -142,23 +140,17 @@ export function UnpublishButton({
|
|
|
142
140
|
toast.error(t('error:unPublishingDocument'));
|
|
143
141
|
});
|
|
144
142
|
}, [dataFromProps, resetForm, collectionSlug, globalSlug, serverURL, api, localeCode, id, i18n.language, incrementVersionCount, setHasPublishedDoc, setMostRecentVersionIsAutosaved, setUnpublishedVersionCount, t]);
|
|
145
|
-
useEffect(() => {
|
|
146
|
-
const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields);
|
|
147
|
-
setHasLocalizedFields(hasLocalizedField);
|
|
148
|
-
}, [entityConfig?.fields]);
|
|
149
143
|
const drafts = entityConfig?.versions?.drafts;
|
|
150
144
|
const hasDraftsEnabled = typeof drafts === 'object' && drafts !== null;
|
|
151
145
|
const canUnpublish = React.useMemo(() => {
|
|
152
146
|
return hasDraftsEnabled && hasPublishPermission && hasPublishedDoc && !isTrashed;
|
|
153
147
|
}, [hasPublishPermission, hasPublishedDoc, isTrashed, hasDraftsEnabled]);
|
|
154
148
|
const canUnpublishCurrentLocale = React.useMemo(() => {
|
|
155
|
-
if (!canUnpublish
|
|
149
|
+
if (!canUnpublish) {
|
|
156
150
|
return false;
|
|
157
151
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
return isLocalizeStatusEnabled && isExperimentalEnabled;
|
|
161
|
-
}, [canUnpublish, hasLocalizedFields, drafts, config.experimental?.localizeStatus]);
|
|
152
|
+
return Boolean(entityConfig && hasLocalizeStatusEnabled(entityConfig));
|
|
153
|
+
}, [canUnpublish, entityConfig]);
|
|
162
154
|
const label = getTranslation(localeLabel, i18n);
|
|
163
155
|
if (!canUnpublish) {
|
|
164
156
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","qs","React","useCallback","useEffect","useState","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","traverseForLocalizedFields","ConfirmationModal","PopupList","UnpublishButton","label","labelProp","id","collectionSlug","data","dataFromProps","globalSlug","hasPublishedDoc","hasPublishPermission","incrementVersionCount","isTrashed","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","toggleModal","config","getEntityConfig","reset","resetForm","code","localeCode","localeLabel","unpublishAll","setUnpublishAll","hasLocalizedFields","setHasLocalizedFields","unPublishModalSlug","routes","api","serverURL","i18n","t","entityConfig","useMemo","unpublish","url","method","queryString","stringify","depth","locale","undefined","unpublishAllLocales","addQueryPrefix","apiRoute","path","res","body","JSON","_status","headers","language","status","success","json","errors","message","error","catch","hasLocalizedField","fields","drafts","versions","hasDraftsEnabled","canUnpublish","canUnpublishCurrentLocale","isLocalizeStatusEnabled","localizeStatus","isExperimentalEnabled","experimental","_jsxs","Fragment","_jsx","Button","onClick","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/UnpublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UnpublishButtonClientProps } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { PopupList } from '../Popup/index.js'\nexport function UnpublishButton({\n label: labelProp,\n}: { label?: string } & UnpublishButtonClientProps = {}) {\n const {\n id,\n collectionSlug,\n data: dataFromProps,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n incrementVersionCount,\n isTrashed,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n } = useDocumentInfo()\n const { toggleModal } = useModal()\n\n const { config, getEntityConfig } = useConfig()\n const { reset: resetForm } = useForm()\n const { code: localeCode, label: localeLabel } = useLocale()\n const [unpublishAll, setUnpublishAll] = useState(false)\n const [hasLocalizedFields, setHasLocalizedFields] = useState(false)\n const unPublishModalSlug = `confirm-un-publish-${id}`\n\n const {\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const unpublish = useCallback(\n (unpublishAll?: boolean) => {\n void (async () => {\n let url\n let method\n\n const queryString = qs.stringify(\n {\n depth: 0,\n 'fallback-locale': 'null',\n locale: unpublishAll ? undefined : localeCode,\n unpublishAllLocales: unpublishAll,\n },\n { addQueryPrefix: true },\n )\n\n if (collectionSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/${id}${queryString}`,\n serverURL,\n })\n method = 'patch'\n }\n\n if (globalSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${queryString}`,\n serverURL,\n })\n method = 'post'\n }\n\n try {\n const res = await requests[method](url, {\n body: JSON.stringify({ _status: 'draft' }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n void resetForm({\n ...(dataFromProps || {}),\n _status: 'draft',\n })\n\n toast.success(t('version:unpublishedSuccessfully'))\n if (!unpublishAll) {\n incrementVersionCount()\n }\n setUnpublishedVersionCount(1)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(false)\n } else {\n try {\n const json = await res.json()\n if (json.errors?.[0]?.message) {\n toast.error(json.errors[0].message)\n } else if (json.error) {\n toast.error(json.error)\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n } catch {\n toast.error(t('error:unPublishingDocument'))\n }\n }\n } catch {\n toast.error(t('error:unPublishingDocument'))\n }\n })().catch(() => {\n toast.error(t('error:unPublishingDocument'))\n })\n },\n [\n dataFromProps,\n resetForm,\n collectionSlug,\n globalSlug,\n serverURL,\n api,\n localeCode,\n id,\n i18n.language,\n incrementVersionCount,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n t,\n ],\n )\n\n useEffect(() => {\n const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields)\n setHasLocalizedFields(hasLocalizedField)\n }, [entityConfig?.fields])\n\n const drafts = entityConfig?.versions?.drafts\n const hasDraftsEnabled = typeof drafts === 'object' && drafts !== null\n\n const canUnpublish = React.useMemo(() => {\n return hasDraftsEnabled && hasPublishPermission && hasPublishedDoc && !isTrashed\n }, [hasPublishPermission, hasPublishedDoc, isTrashed, hasDraftsEnabled])\n\n const canUnpublishCurrentLocale = React.useMemo(() => {\n if (!canUnpublish || !hasLocalizedFields) {\n return false\n }\n\n const isLocalizeStatusEnabled = drafts && drafts.localizeStatus === true\n const isExperimentalEnabled = config.experimental?.localizeStatus === true\n\n return isLocalizeStatusEnabled && isExperimentalEnabled\n }, [canUnpublish, hasLocalizedFields, drafts, config.experimental?.localizeStatus])\n\n const label = getTranslation(localeLabel, i18n)\n\n if (!canUnpublish) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id=\"action-unpublish\"\n onClick={() => {\n setUnpublishAll(true)\n toggleModal(unPublishModalSlug)\n }}\n >\n {labelProp || t('version:unpublish')}\n </PopupList.Button>\n {canUnpublishCurrentLocale && (\n <PopupList.Button\n id=\"action-unpublish-locale\"\n onClick={() => {\n setUnpublishAll(false)\n toggleModal(unPublishModalSlug)\n }}\n >\n {labelProp ? `${labelProp} [${label}]` : t('version:unpublishIn', { locale: label })}\n </PopupList.Button>\n )}\n <ConfirmationModal\n body={\n !unpublishAll\n ? t('version:aboutToUnpublishIn', { locale: label })\n : t('version:aboutToUnpublish')\n }\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={unPublishModalSlug}\n onConfirm={() => unpublish(unpublishAll)}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","hasLocalizeStatusEnabled","qs","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","ConfirmationModal","PopupList","UnpublishButton","label","labelProp","id","collectionSlug","data","dataFromProps","globalSlug","hasPublishedDoc","hasPublishPermission","incrementVersionCount","isTrashed","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","toggleModal","config","getEntityConfig","reset","resetForm","code","localeCode","localeLabel","unpublishAll","setUnpublishAll","unPublishModalSlug","routes","api","serverURL","i18n","t","entityConfig","useMemo","unpublish","url","method","queryString","stringify","depth","locale","undefined","unpublishAllLocales","addQueryPrefix","apiRoute","path","res","body","JSON","_status","headers","language","status","success","json","errors","message","error","catch","drafts","versions","hasDraftsEnabled","canUnpublish","canUnpublishCurrentLocale","Boolean","_jsxs","Fragment","_jsx","Button","onClick","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/UnpublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UnpublishButtonClientProps } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, hasLocalizeStatusEnabled } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { PopupList } from '../Popup/index.js'\nexport function UnpublishButton({\n label: labelProp,\n}: { label?: string } & UnpublishButtonClientProps = {}) {\n const {\n id,\n collectionSlug,\n data: dataFromProps,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n incrementVersionCount,\n isTrashed,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n } = useDocumentInfo()\n const { toggleModal } = useModal()\n\n const { config, getEntityConfig } = useConfig()\n const { reset: resetForm } = useForm()\n const { code: localeCode, label: localeLabel } = useLocale()\n const [unpublishAll, setUnpublishAll] = useState(false)\n const unPublishModalSlug = `confirm-un-publish-${id}`\n\n const {\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const unpublish = useCallback(\n (unpublishAll?: boolean) => {\n void (async () => {\n let url\n let method\n\n const queryString = qs.stringify(\n {\n depth: 0,\n 'fallback-locale': 'null',\n locale: unpublishAll ? undefined : localeCode,\n unpublishAllLocales: unpublishAll,\n },\n { addQueryPrefix: true },\n )\n\n if (collectionSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/${id}${queryString}`,\n serverURL,\n })\n method = 'patch'\n }\n\n if (globalSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${queryString}`,\n serverURL,\n })\n method = 'post'\n }\n\n try {\n const res = await requests[method](url, {\n body: JSON.stringify({ _status: 'draft' }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n void resetForm({\n ...(dataFromProps || {}),\n _status: 'draft',\n })\n\n toast.success(t('version:unpublishedSuccessfully'))\n if (!unpublishAll) {\n incrementVersionCount()\n }\n setUnpublishedVersionCount(1)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(false)\n } else {\n try {\n const json = await res.json()\n if (json.errors?.[0]?.message) {\n toast.error(json.errors[0].message)\n } else if (json.error) {\n toast.error(json.error)\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n } catch {\n toast.error(t('error:unPublishingDocument'))\n }\n }\n } catch {\n toast.error(t('error:unPublishingDocument'))\n }\n })().catch(() => {\n toast.error(t('error:unPublishingDocument'))\n })\n },\n [\n dataFromProps,\n resetForm,\n collectionSlug,\n globalSlug,\n serverURL,\n api,\n localeCode,\n id,\n i18n.language,\n incrementVersionCount,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n t,\n ],\n )\n\n const drafts = entityConfig?.versions?.drafts\n const hasDraftsEnabled = typeof drafts === 'object' && drafts !== null\n\n const canUnpublish = React.useMemo(() => {\n return hasDraftsEnabled && hasPublishPermission && hasPublishedDoc && !isTrashed\n }, [hasPublishPermission, hasPublishedDoc, isTrashed, hasDraftsEnabled])\n\n const canUnpublishCurrentLocale = React.useMemo(() => {\n if (!canUnpublish) {\n return false\n }\n\n return Boolean(entityConfig && hasLocalizeStatusEnabled(entityConfig))\n }, [canUnpublish, entityConfig])\n\n const label = getTranslation(localeLabel, i18n)\n\n if (!canUnpublish) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id=\"action-unpublish\"\n onClick={() => {\n setUnpublishAll(true)\n toggleModal(unPublishModalSlug)\n }}\n >\n {labelProp || t('version:unpublish')}\n </PopupList.Button>\n {canUnpublishCurrentLocale && (\n <PopupList.Button\n id=\"action-unpublish-locale\"\n onClick={() => {\n setUnpublishAll(false)\n toggleModal(unPublishModalSlug)\n }}\n >\n {labelProp ? `${labelProp} [${label}]` : t('version:unpublishIn', { locale: label })}\n </PopupList.Button>\n )}\n <ConfirmationModal\n body={\n !unpublishAll\n ? t('version:aboutToUnpublishIn', { locale: label })\n : t('version:aboutToUnpublish')\n }\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={unPublishModalSlug}\n onConfirm={() => unpublish(unpublishAll)}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,12 +2,13 @@ import type { Where } from 'payload';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { UnpublishManyProps } from './index.js';
|
|
4
4
|
type UnpublishManyDrawerContentProps = {
|
|
5
|
+
collection: UnpublishManyProps['collection'];
|
|
5
6
|
drawerSlug: string;
|
|
6
7
|
ids: (number | string)[];
|
|
7
8
|
onSuccess?: () => void;
|
|
8
9
|
selectAll: boolean;
|
|
9
10
|
where?: Where;
|
|
10
|
-
}
|
|
11
|
+
};
|
|
11
12
|
export declare function UnpublishManyDrawerContent(props: UnpublishManyDrawerContentProps): React.JSX.Element;
|
|
12
13
|
export {};
|
|
13
14
|
//# sourceMappingURL=DrawerContent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/DrawerContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAKpC,OAAO,KAAsB,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAWpD,KAAK,+BAA+B,GAAG;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,
|
|
1
|
+
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/DrawerContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAKpC,OAAO,KAAsB,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAWpD,KAAK,+BAA+B,GAAG;IACrC,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAA;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,+BAA+B,qBA4JhF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.js","names":["getTranslation","combineWhereConstraints","formatAdminURL","mergeListSearchAndWhere","qs","React","useCallback","toast","useConfig","useLocale","useRouteCache","useRouter","useSearchParams","useTranslation","requests","parseSearchParams","ConfirmationModal","UnpublishManyDrawerContent","props","collection","slug","labels","plural","singular","drawerSlug","ids","onSuccess","selectAll","where","config","routes","api","code","locale","i18n","t","searchParams","router","clearRouteCache","addDefaultError","error","queryString","useMemo","whereConstraints","_status","not_equals","push","queryWithSearch","collectionConfig","search","get","id","in","stringify","select","addQueryPrefix","handleUnpublish","url","apiRoute","path","patch","body","JSON","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","count","label","errors","message","description","map","join","replace","page","undefined","forEach","_err","_jsx","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/UnpublishMany/DrawerContent.tsx"],"sourcesContent":["import type { Where } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { combineWhereConstraints, formatAdminURL, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport type { UnpublishManyProps } from './index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouter, useSearchParams } from '../../providers/RouterAdapter/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\n\ntype UnpublishManyDrawerContentProps = {\n drawerSlug: string\n ids: (number | string)[]\n onSuccess?: () => void\n selectAll: boolean\n where?: Where\n}
|
|
1
|
+
{"version":3,"file":"DrawerContent.js","names":["getTranslation","combineWhereConstraints","formatAdminURL","mergeListSearchAndWhere","qs","React","useCallback","toast","useConfig","useLocale","useRouteCache","useRouter","useSearchParams","useTranslation","requests","parseSearchParams","ConfirmationModal","UnpublishManyDrawerContent","props","collection","slug","labels","plural","singular","drawerSlug","ids","onSuccess","selectAll","where","config","routes","api","code","locale","i18n","t","searchParams","router","clearRouteCache","addDefaultError","error","queryString","useMemo","whereConstraints","_status","not_equals","push","queryWithSearch","collectionConfig","search","get","id","in","stringify","select","addQueryPrefix","handleUnpublish","url","apiRoute","path","patch","body","JSON","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","count","label","errors","message","description","map","join","replace","page","undefined","forEach","_err","_jsx","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/UnpublishMany/DrawerContent.tsx"],"sourcesContent":["import type { Where } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { combineWhereConstraints, formatAdminURL, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport type { UnpublishManyProps } from './index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouter, useSearchParams } from '../../providers/RouterAdapter/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\n\ntype UnpublishManyDrawerContentProps = {\n collection: UnpublishManyProps['collection']\n drawerSlug: string\n ids: (number | string)[]\n onSuccess?: () => void\n selectAll: boolean\n where?: Where\n}\n\nexport function UnpublishManyDrawerContent(props: UnpublishManyDrawerContentProps) {\n const {\n collection,\n collection: { slug, labels: { plural, singular } } = {},\n drawerSlug,\n ids,\n onSuccess,\n selectAll,\n where,\n } = props\n\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const searchParams = useSearchParams()\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const queryString = React.useMemo((): string => {\n const whereConstraints: Where[] = [\n {\n _status: {\n not_equals: 'draft',\n },\n },\n ]\n\n if (where) {\n whereConstraints.push(where)\n }\n\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n if (queryWithSearch) {\n whereConstraints.push(queryWithSearch)\n }\n\n if (!selectAll) {\n // If we're not selecting all, we need to select specific docs\n whereConstraints.push({\n id: {\n in: ids || [],\n },\n })\n }\n\n return qs.stringify(\n {\n locale,\n select: {},\n where: combineWhereConstraints(whereConstraints),\n },\n { addQueryPrefix: true },\n )\n }, [collection, searchParams, selectAll, ids, locale, where])\n\n const handleUnpublish = useCallback(async () => {\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${slug}${queryString}`,\n })\n await requests\n .patch(url, {\n body: JSON.stringify({\n _status: 'draft',\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (res.status < 400 || deletedDocs > 0) {\n toast.success(\n t('general:updatedCountSuccessfully', {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (_err) {\n return addDefaultError()\n }\n })\n }, [\n api,\n slug,\n queryString,\n i18n,\n plural,\n singular,\n t,\n router,\n searchParams,\n selectAll,\n clearRouteCache,\n addDefaultError,\n onSuccess,\n ])\n\n return (\n <ConfirmationModal\n body={t('version:aboutToUnpublishSelection', { label: getTranslation(plural, i18n) })}\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={drawerSlug}\n onConfirm={handleUnpublish}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,9 +2,6 @@ import type { ClientCollectionConfig, Where } from 'payload';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
export type UnpublishManyProps = {
|
|
4
4
|
collection: ClientCollectionConfig;
|
|
5
|
-
};
|
|
6
|
-
export declare const UnpublishMany: React.FC<UnpublishManyProps>;
|
|
7
|
-
export declare const UnpublishMany_v4: React.FC<{
|
|
8
5
|
count: number;
|
|
9
6
|
ids: (number | string)[];
|
|
10
7
|
/**
|
|
@@ -14,5 +11,6 @@ export declare const UnpublishMany_v4: React.FC<{
|
|
|
14
11
|
onSuccess?: () => void;
|
|
15
12
|
selectAll: boolean;
|
|
16
13
|
where?: Where;
|
|
17
|
-
}
|
|
14
|
+
};
|
|
15
|
+
export declare const UnpublishMany: React.FC<UnpublishManyProps>;
|
|
18
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAG5D,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAG5D,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,sBAAsB,CAAA;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA6CtD,CAAA"}
|