@strapi/content-manager 0.0.0-next.23a591758a1d192f794079bbe4821ef8d26e1555 → 0.0.0-next.24165c9d5cbc756c03fe23bc491569c77973f5ac

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/admin/chunks/{ComponentConfigurationPage-C5H-5L1u.js → ComponentConfigurationPage-Cgjg4CQj.js} +3 -3
  2. package/dist/admin/chunks/{ComponentConfigurationPage-C5H-5L1u.js.map → ComponentConfigurationPage-Cgjg4CQj.js.map} +1 -1
  3. package/dist/admin/chunks/{ComponentConfigurationPage-BN2kOtDm.mjs → ComponentConfigurationPage-D6mjS3eX.mjs} +3 -3
  4. package/dist/admin/chunks/{ComponentConfigurationPage-BN2kOtDm.mjs.map → ComponentConfigurationPage-D6mjS3eX.mjs.map} +1 -1
  5. package/dist/admin/chunks/{EditConfigurationPage-BExtZuB7.js → EditConfigurationPage-C5E6D6NI.js} +3 -3
  6. package/dist/admin/chunks/{EditConfigurationPage-BExtZuB7.js.map → EditConfigurationPage-C5E6D6NI.js.map} +1 -1
  7. package/dist/admin/chunks/{EditConfigurationPage-tMgOELQG.mjs → EditConfigurationPage-DSSrKbwM.mjs} +3 -3
  8. package/dist/admin/chunks/{EditConfigurationPage-tMgOELQG.mjs.map → EditConfigurationPage-DSSrKbwM.mjs.map} +1 -1
  9. package/dist/admin/chunks/{EditViewPage-CYe7wAXF.mjs → EditViewPage-B9oaTSxh.mjs} +6 -9
  10. package/dist/admin/chunks/EditViewPage-B9oaTSxh.mjs.map +1 -0
  11. package/dist/admin/chunks/{EditViewPage-DFkloeMZ.js → EditViewPage-Cyt_AqcH.js} +6 -9
  12. package/dist/admin/chunks/EditViewPage-Cyt_AqcH.js.map +1 -0
  13. package/dist/admin/chunks/{Form-DGUP3zQO.js → Form-BynZsnG8.js} +2 -2
  14. package/dist/admin/chunks/{Form-DGUP3zQO.js.map → Form-BynZsnG8.js.map} +1 -1
  15. package/dist/admin/chunks/{Form-DTO0ZIaB.mjs → Form-CiDhWFF2.mjs} +2 -2
  16. package/dist/admin/chunks/{Form-DTO0ZIaB.mjs.map → Form-CiDhWFF2.mjs.map} +1 -1
  17. package/dist/admin/chunks/{History-C333pgXF.mjs → History-BIzCrHlU.mjs} +5 -5
  18. package/dist/admin/chunks/{History-C333pgXF.mjs.map → History-BIzCrHlU.mjs.map} +1 -1
  19. package/dist/admin/chunks/{History-CQznK1pG.js → History-D8x3KfXk.js} +5 -5
  20. package/dist/admin/chunks/{History-CQznK1pG.js.map → History-D8x3KfXk.js.map} +1 -1
  21. package/dist/admin/chunks/{Input-BexkC_pp.mjs → Input-BrTcf7W8.mjs} +4 -4
  22. package/dist/admin/chunks/{Input-BexkC_pp.mjs.map → Input-BrTcf7W8.mjs.map} +1 -1
  23. package/dist/admin/chunks/{Input-DLJZHw9Y.js → Input-Cx7glRRR.js} +4 -4
  24. package/dist/admin/chunks/{Input-DLJZHw9Y.js.map → Input-Cx7glRRR.js.map} +1 -1
  25. package/dist/admin/chunks/{ListConfigurationPage-71I_stAM.js → ListConfigurationPage-C1HEB6A1.js} +2 -2
  26. package/dist/admin/chunks/{ListConfigurationPage-71I_stAM.js.map → ListConfigurationPage-C1HEB6A1.js.map} +1 -1
  27. package/dist/admin/chunks/{ListConfigurationPage-BX2WR7MI.mjs → ListConfigurationPage-JWHsiJKb.mjs} +2 -2
  28. package/dist/admin/chunks/{ListConfigurationPage-BX2WR7MI.mjs.map → ListConfigurationPage-JWHsiJKb.mjs.map} +1 -1
  29. package/dist/admin/chunks/{ListViewPage-DV3heO4F.js → ListViewPage-38RhQMrO.js} +3 -3
  30. package/dist/admin/chunks/{ListViewPage-DV3heO4F.js.map → ListViewPage-38RhQMrO.js.map} +1 -1
  31. package/dist/admin/chunks/{ListViewPage-BDeT3Dkk.mjs → ListViewPage-lpuA2rS8.mjs} +3 -3
  32. package/dist/admin/chunks/{ListViewPage-BDeT3Dkk.mjs.map → ListViewPage-lpuA2rS8.mjs.map} +1 -1
  33. package/dist/admin/chunks/{NoContentTypePage-9JHYpYVX.mjs → NoContentTypePage-mxdu7QG9.mjs} +2 -2
  34. package/dist/admin/chunks/{NoContentTypePage-9JHYpYVX.mjs.map → NoContentTypePage-mxdu7QG9.mjs.map} +1 -1
  35. package/dist/admin/chunks/{NoContentTypePage-COih9y2J.js → NoContentTypePage-q48fU1h9.js} +2 -2
  36. package/dist/admin/chunks/{NoContentTypePage-COih9y2J.js.map → NoContentTypePage-q48fU1h9.js.map} +1 -1
  37. package/dist/admin/chunks/{NoPermissionsPage-DGAwRIlN.js → NoPermissionsPage-B_p7s1uj.js} +2 -2
  38. package/dist/admin/chunks/{NoPermissionsPage-DGAwRIlN.js.map → NoPermissionsPage-B_p7s1uj.js.map} +1 -1
  39. package/dist/admin/chunks/{NoPermissionsPage-DTe9I47q.mjs → NoPermissionsPage-CihsLbNC.mjs} +2 -2
  40. package/dist/admin/chunks/{NoPermissionsPage-DTe9I47q.mjs.map → NoPermissionsPage-CihsLbNC.mjs.map} +1 -1
  41. package/dist/admin/chunks/{Preview-CXtc9yEV.js → Preview-CMoqDEKI.js} +176 -58
  42. package/dist/admin/chunks/Preview-CMoqDEKI.js.map +1 -0
  43. package/dist/admin/chunks/{Preview-BEq0FXda.mjs → Preview-DGQMt8XZ.mjs} +180 -62
  44. package/dist/admin/chunks/Preview-DGQMt8XZ.mjs.map +1 -0
  45. package/dist/admin/chunks/{Relations-qeZyLDgQ.mjs → Relations-BemEu63h.mjs} +3 -3
  46. package/dist/admin/chunks/{Relations-qeZyLDgQ.mjs.map → Relations-BemEu63h.mjs.map} +1 -1
  47. package/dist/admin/chunks/{Relations-o7_hVGyK.js → Relations-BtC_Gort.js} +3 -3
  48. package/dist/admin/chunks/{Relations-o7_hVGyK.js.map → Relations-BtC_Gort.js.map} +1 -1
  49. package/dist/admin/chunks/{en-LfhocNG2.mjs → en-CImiNxXE.mjs} +3 -1
  50. package/dist/admin/chunks/{en-LfhocNG2.mjs.map → en-CImiNxXE.mjs.map} +1 -1
  51. package/dist/admin/chunks/{en-C1CjdAtC.js → en-CLf4SuMQ.js} +3 -1
  52. package/dist/admin/chunks/{en-C1CjdAtC.js.map → en-CLf4SuMQ.js.map} +1 -1
  53. package/dist/admin/chunks/{index-BHimg6jW.js → index-D7EkCTnw.js} +66 -34
  54. package/dist/admin/chunks/index-D7EkCTnw.js.map +1 -0
  55. package/dist/admin/chunks/{index-Cs6qwFQu.mjs → index-njcS3gUl.mjs} +66 -35
  56. package/dist/admin/chunks/index-njcS3gUl.mjs.map +1 -0
  57. package/dist/admin/chunks/{layout-Dtahn4Ue.js → layout-Ccv9FwbI.js} +4 -4
  58. package/dist/admin/chunks/{layout-Dtahn4Ue.js.map → layout-Ccv9FwbI.js.map} +1 -1
  59. package/dist/admin/chunks/{layout-DStNia_P.mjs → layout-os6F94Aa.mjs} +4 -4
  60. package/dist/admin/chunks/{layout-DStNia_P.mjs.map → layout-os6F94Aa.mjs.map} +1 -1
  61. package/dist/admin/chunks/{relations-Cq8NRUto.mjs → relations-De8hSklO.mjs} +2 -2
  62. package/dist/admin/chunks/{relations-Cq8NRUto.mjs.map → relations-De8hSklO.mjs.map} +1 -1
  63. package/dist/admin/chunks/{relations-XOYEEqMz.js → relations-iguhDgFp.js} +2 -2
  64. package/dist/admin/chunks/{relations-XOYEEqMz.js.map → relations-iguhDgFp.js.map} +1 -1
  65. package/dist/admin/index.js +1 -1
  66. package/dist/admin/index.mjs +1 -1
  67. package/dist/admin/src/components/InjectionZone.d.ts +7 -1
  68. package/dist/admin/src/content-manager.d.ts +3 -0
  69. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  70. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +2 -1
  71. package/dist/server/index.js +1 -1
  72. package/dist/server/index.js.map +1 -1
  73. package/dist/server/index.mjs +1 -1
  74. package/dist/server/index.mjs.map +1 -1
  75. package/package.json +7 -7
  76. package/dist/admin/chunks/EditViewPage-CYe7wAXF.mjs.map +0 -1
  77. package/dist/admin/chunks/EditViewPage-DFkloeMZ.js.map +0 -1
  78. package/dist/admin/chunks/Preview-BEq0FXda.mjs.map +0 -1
  79. package/dist/admin/chunks/Preview-CXtc9yEV.js.map +0 -1
  80. package/dist/admin/chunks/index-BHimg6jW.js.map +0 -1
  81. package/dist/admin/chunks/index-Cs6qwFQu.mjs.map +0 -1
@@ -1,15 +1,15 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { useNotification, useClipboard, useQueryParams, useHistory, createContext, useRBAC, Page, Form } from '@strapi/admin/strapi-admin';
4
- import { Flex, Box, Typography, Tabs, IconButton, Grid, Portal, FocusTrap } from '@strapi/design-system';
3
+ import { useStrapiApp, useQueryParams, useNotification, useClipboard, DescriptionComponentRenderer, useHistory, createContext, useRBAC, Page, Form } from '@strapi/admin/strapi-admin';
4
+ import { Flex, Box, IconButton, Typography, Tabs, Grid, Portal, FocusTrap } from '@strapi/design-system';
5
5
  import { useIntl } from 'react-intl';
6
- import { Link as Link$1, useParams } from 'react-router-dom';
7
- import { D as DocumentStatus, l as DocumentRBAC, d as buildValidParams, C as COLLECTION_TYPES, N as useGetPreviewUrlQuery, M as useDocument, h as useDocumentLayout } from './index-Cs6qwFQu.mjs';
8
- import { F as FormLayout } from './Input-BexkC_pp.mjs';
9
- import { Link, Cross } from '@strapi/icons';
10
- import { stringify } from 'qs';
6
+ import { Link as Link$1, useParams, useLocation } from 'react-router-dom';
7
+ import { I as InjectionZone, N as DocumentActionButton, D as DocumentStatus, l as DocumentRBAC, d as buildValidParams, C as COLLECTION_TYPES, O as useGetPreviewUrlQuery, M as useDocument, h as useDocumentLayout, i as createYupSchema } from './index-njcS3gUl.mjs';
8
+ import { ArrowLeft, Link, Cross } from '@strapi/icons';
11
9
  import { styled } from 'styled-components';
12
- import { getDocumentStatus } from './EditViewPage-CYe7wAXF.mjs';
10
+ import { F as FormLayout } from './Input-BrTcf7W8.mjs';
11
+ import { stringify } from 'qs';
12
+ import { getDocumentStatus } from './EditViewPage-B9oaTSxh.mjs';
13
13
  import 'lodash/fp/mapValues';
14
14
  import 'yup';
15
15
  import 'fractional-indexing';
@@ -78,9 +78,9 @@ import 'react-dnd-html5-backend';
78
78
  import './objects-wl73iEma.mjs';
79
79
  import 'lodash/clone';
80
80
  import 'lodash/toPath';
81
- import './Relations-qeZyLDgQ.mjs';
81
+ import './Relations-BemEu63h.mjs';
82
82
  import 'react-window';
83
- import './relations-Cq8NRUto.mjs';
83
+ import './relations-De8hSklO.mjs';
84
84
  import './ComponentIcon-BZcTc4rj.mjs';
85
85
  import '@strapi/icons/symbols';
86
86
  import 'codemirror5';
@@ -99,10 +99,17 @@ import 'markdown-it-sup';
99
99
  import 'highlight.js/styles/solarized-dark.css';
100
100
  import 'codemirror5/addon/display/placeholder';
101
101
 
102
+ // TODO use ArrowLineLeft once it's available in the DS
103
+ const AnimatedArrow = styled(ArrowLeft)`
104
+ will-change: transform;
105
+ rotate: ${(props)=>props.isSideEditorOpen ? '0deg' : '180deg'};
106
+ transition: rotate 0.2s ease-in-out;
107
+ `;
102
108
  const UnstablePreviewContent = ()=>{
103
109
  const previewUrl = usePreviewContext('PreviewContent', (state)=>state.url);
104
110
  const layout = usePreviewContext('PreviewContent', (state)=>state.layout);
105
111
  const { formatMessage } = useIntl();
112
+ const [isSideEditorOpen, setIsSideEditorOpen] = React.useState(true);
106
113
  return /*#__PURE__*/ jsxs(Flex, {
107
114
  flex: 1,
108
115
  overflow: "auto",
@@ -110,26 +117,56 @@ const UnstablePreviewContent = ()=>{
110
117
  children: [
111
118
  /*#__PURE__*/ jsx(Box, {
112
119
  overflow: "auto",
113
- flex: 1,
120
+ width: isSideEditorOpen ? '50%' : 0,
114
121
  borderWidth: "0 1px 0 0",
115
122
  borderColor: "neutral150",
116
- padding: 6,
123
+ paddingTop: 6,
124
+ paddingBottom: 6,
125
+ // Remove horizontal padding when the editor is closed or it won't fully disappear
126
+ paddingLeft: isSideEditorOpen ? 6 : 0,
127
+ paddingRight: isSideEditorOpen ? 6 : 0,
128
+ transition: "all 0.2s ease-in-out",
117
129
  children: /*#__PURE__*/ jsx(FormLayout, {
118
130
  layout: layout.layout,
119
131
  hasBackground: true
120
132
  })
121
133
  }),
122
- /*#__PURE__*/ jsx(Box, {
123
- src: previewUrl,
124
- title: formatMessage({
125
- id: 'content-manager.preview.panel.title',
126
- defaultMessage: 'Preview'
127
- }),
134
+ /*#__PURE__*/ jsxs(Box, {
135
+ position: "relative",
128
136
  flex: 1,
129
137
  height: "100%",
130
- borderWidth: 0,
131
- tag: "iframe"
132
- }, previewUrl)
138
+ overflow: "hidden",
139
+ children: [
140
+ /*#__PURE__*/ jsx(Box, {
141
+ src: previewUrl,
142
+ title: formatMessage({
143
+ id: 'content-manager.preview.panel.title',
144
+ defaultMessage: 'Preview'
145
+ }),
146
+ width: "100%",
147
+ height: "100%",
148
+ borderWidth: 0,
149
+ tag: "iframe"
150
+ }, previewUrl),
151
+ /*#__PURE__*/ jsx(IconButton, {
152
+ variant: "tertiary",
153
+ label: formatMessage(isSideEditorOpen ? {
154
+ id: 'content-manager.preview.content.close-editor',
155
+ defaultMessage: 'Close editor'
156
+ } : {
157
+ id: 'content-manager.preview.content.open-editor',
158
+ defaultMessage: 'Open editor'
159
+ }),
160
+ onClick: ()=>setIsSideEditorOpen((prev)=>!prev),
161
+ position: "absolute",
162
+ top: 2,
163
+ left: 2,
164
+ children: /*#__PURE__*/ jsx(AnimatedArrow, {
165
+ isSideEditorOpen: isSideEditorOpen
166
+ })
167
+ })
168
+ ]
169
+ })
133
170
  ]
134
171
  });
135
172
  };
@@ -229,42 +266,44 @@ const PreviewTabs = ()=>{
229
266
  if (!hasDraftAndPublish) {
230
267
  return null;
231
268
  }
232
- return /*#__PURE__*/ jsx(Fragment, {
233
- children: /*#__PURE__*/ jsx(Tabs.Root, {
234
- variant: "simple",
235
- value: query.status || 'draft',
236
- onValueChange: handleTabChange,
237
- children: /*#__PURE__*/ jsxs(Tabs.List, {
238
- "aria-label": formatMessage({
239
- id: 'preview.tabs.label',
240
- defaultMessage: 'Document status'
269
+ return /*#__PURE__*/ jsx(Tabs.Root, {
270
+ variant: "simple",
271
+ value: query.status || 'draft',
272
+ onValueChange: handleTabChange,
273
+ children: /*#__PURE__*/ jsxs(Tabs.List, {
274
+ "aria-label": formatMessage({
275
+ id: 'preview.tabs.label',
276
+ defaultMessage: 'Document status'
277
+ }),
278
+ children: [
279
+ /*#__PURE__*/ jsx(StatusTab, {
280
+ value: "draft",
281
+ children: formatMessage({
282
+ id: 'content-manager.containers.List.draft',
283
+ defaultMessage: 'draft'
284
+ })
241
285
  }),
242
- children: [
243
- /*#__PURE__*/ jsx(StatusTab, {
244
- value: "draft",
245
- children: formatMessage({
246
- id: 'content-manager.containers.List.draft',
247
- defaultMessage: 'draft'
248
- })
249
- }),
250
- /*#__PURE__*/ jsx(StatusTab, {
251
- value: "published",
252
- disabled: documentStatus === 'draft',
253
- children: formatMessage({
254
- id: 'content-manager.containers.List.published',
255
- defaultMessage: 'published'
256
- })
286
+ /*#__PURE__*/ jsx(StatusTab, {
287
+ value: "published",
288
+ disabled: documentStatus === 'draft',
289
+ children: formatMessage({
290
+ id: 'content-manager.containers.List.published',
291
+ defaultMessage: 'published'
257
292
  })
258
- ]
259
- })
293
+ })
294
+ ]
260
295
  })
261
296
  });
262
297
  };
263
298
  /* -------------------------------------------------------------------------------------------------
264
299
  * PreviewHeader
265
300
  * -----------------------------------------------------------------------------------------------*/ const UnstablePreviewHeader = ()=>{
266
- // Get the document title
267
301
  const title = usePreviewContext('PreviewHeader', (state)=>state.title);
302
+ const document = usePreviewContext('PreviewHeader', (state)=>state.document);
303
+ const schema = usePreviewContext('PreviewHeader', (state)=>state.schema);
304
+ const meta = usePreviewContext('PreviewHeader', (state)=>state.meta);
305
+ const plugins = useStrapiApp('PreviewHeader', (state)=>state.plugins);
306
+ const [{ query }] = useQueryParams();
268
307
  const { formatMessage } = useIntl();
269
308
  const { toggleNotification } = useNotification();
270
309
  const { copy } = useClipboard();
@@ -278,7 +317,17 @@ const PreviewTabs = ()=>{
278
317
  type: 'success'
279
318
  });
280
319
  };
320
+ const hasDraftAndPublish = schema.options?.draftAndPublish ?? false;
321
+ const props = {
322
+ activeTab: query.status ?? null,
323
+ collectionType: schema.kind === 'collectionType' ? 'collection-types' : 'single-types',
324
+ model: schema.uid,
325
+ documentId: document.documentId,
326
+ document,
327
+ meta
328
+ };
281
329
  return /*#__PURE__*/ jsxs(Flex, {
330
+ height: "48px",
282
331
  gap: 4,
283
332
  background: "neutral0",
284
333
  borderColor: "neutral150",
@@ -306,17 +355,60 @@ const PreviewTabs = ()=>{
306
355
  /*#__PURE__*/ jsxs(Flex, {
307
356
  flex: 1,
308
357
  paddingRight: 2,
309
- justifyContent: "space-between",
358
+ gap: 2,
359
+ justifyContent: hasDraftAndPublish ? 'space-between' : 'flex-end',
310
360
  children: [
311
- /*#__PURE__*/ jsx(PreviewTabs, {}),
312
- /*#__PURE__*/ jsx(IconButton, {
313
- type: "button",
314
- label: formatMessage({
315
- id: 'preview.copy.label',
316
- defaultMessage: 'Copy preview link'
317
- }),
318
- onClick: handleCopyLink,
319
- children: /*#__PURE__*/ jsx(Link, {})
361
+ /*#__PURE__*/ jsx(Flex, {
362
+ flex: "1 1 70%",
363
+ children: /*#__PURE__*/ jsx(PreviewTabs, {})
364
+ }),
365
+ /*#__PURE__*/ jsxs(Flex, {
366
+ gap: 2,
367
+ children: [
368
+ /*#__PURE__*/ jsx(IconButton, {
369
+ type: "button",
370
+ label: formatMessage({
371
+ id: 'preview.copy.label',
372
+ defaultMessage: 'Copy preview link'
373
+ }),
374
+ onClick: handleCopyLink,
375
+ children: /*#__PURE__*/ jsx(Link, {})
376
+ }),
377
+ /*#__PURE__*/ jsx(InjectionZone, {
378
+ area: "preview.actions"
379
+ }),
380
+ /*#__PURE__*/ jsx(DescriptionComponentRenderer, {
381
+ props: props,
382
+ descriptions: plugins['content-manager'].apis.getDocumentActions('preview'),
383
+ children: (actions)=>{
384
+ const filteredActions = actions.filter((action)=>[
385
+ action.position
386
+ ].flat().includes('preview'));
387
+ const [primaryAction, secondaryAction] = filteredActions;
388
+ if (!primaryAction && !secondaryAction) return null;
389
+ // Both actions are available when draft and publish enabled
390
+ if (primaryAction && secondaryAction) {
391
+ return /*#__PURE__*/ jsxs(Fragment, {
392
+ children: [
393
+ /*#__PURE__*/ jsx(DocumentActionButton, {
394
+ ...secondaryAction,
395
+ variant: secondaryAction.variant || 'secondary'
396
+ }),
397
+ /*#__PURE__*/ jsx(DocumentActionButton, {
398
+ ...primaryAction,
399
+ variant: primaryAction.variant || 'default'
400
+ })
401
+ ]
402
+ });
403
+ }
404
+ // Otherwise we just have the save action
405
+ return /*#__PURE__*/ jsx(DocumentActionButton, {
406
+ ...primaryAction,
407
+ variant: primaryAction.variant || 'secondary'
408
+ });
409
+ }
410
+ })
411
+ ]
320
412
  })
321
413
  ]
322
414
  })
@@ -407,6 +499,7 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
407
499
  /* -------------------------------------------------------------------------------------------------
408
500
  * PreviewPage
409
501
  * -----------------------------------------------------------------------------------------------*/ const PreviewPage = ()=>{
502
+ const location = useLocation();
410
503
  const { formatMessage } = useIntl();
411
504
  // Read all the necessary data from the URL to find the right preview URL
412
505
  const { slug: model, id: documentId, collectionType } = useParams();
@@ -444,13 +537,23 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
444
537
  if (documentResponse.isLoading || previewUrlResponse.isLoading || documentLayoutResponse.isLoading) {
445
538
  return /*#__PURE__*/ jsx(Page.Loading, {});
446
539
  }
447
- if (previewUrlResponse.error || documentLayoutResponse.error || !documentResponse.document || !documentResponse.meta || !documentResponse.schema) {
540
+ const initialValues = documentResponse.getInitialFormValues();
541
+ if (previewUrlResponse.error || documentLayoutResponse.error || !documentResponse.document || !documentResponse.meta || !documentResponse.schema || !initialValues) {
448
542
  return /*#__PURE__*/ jsx(Page.Error, {});
449
543
  }
450
544
  if (!previewUrlResponse.data?.data?.url) {
451
545
  return /*#__PURE__*/ jsx(Page.NoData, {});
452
546
  }
453
547
  const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);
548
+ const validateSync = (values, options)=>{
549
+ const yupSchema = createYupSchema(documentResponse.schema?.attributes, documentResponse.components, {
550
+ status: documentResponse.document?.status,
551
+ ...options
552
+ });
553
+ return yupSchema.validateSync(values, {
554
+ abortEarly: false
555
+ });
556
+ };
454
557
  return /*#__PURE__*/ jsxs(Fragment, {
455
558
  children: [
456
559
  /*#__PURE__*/ jsx(Page.Title, {
@@ -469,9 +572,20 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
469
572
  schema: documentResponse.schema,
470
573
  layout: documentLayoutResponse.edit,
471
574
  children: /*#__PURE__*/ jsx(Form, {
472
- method: "POST",
473
- initialValues: documentResponse.document,
575
+ method: "PUT",
576
+ disabled: query.status === 'published' && documentResponse && documentResponse.document.status === 'published',
577
+ initialValues: documentResponse.getInitialFormValues(),
578
+ initialErrors: location?.state?.forceValidation ? validateSync(initialValues, {}) : {},
474
579
  height: "100%",
580
+ validate: (values, options)=>{
581
+ const yupSchema = createYupSchema(documentResponse.schema?.attributes, documentResponse.components, {
582
+ status: documentResponse.document?.status,
583
+ ...options
584
+ });
585
+ return yupSchema.validate(values, {
586
+ abortEarly: false
587
+ });
588
+ },
475
589
  children: /*#__PURE__*/ jsx(Flex, {
476
590
  direction: "column",
477
591
  height: "100%",
@@ -505,6 +619,10 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
505
619
  {
506
620
  action: 'plugin::content-manager.explorer.update',
507
621
  subject: model
622
+ },
623
+ {
624
+ action: 'plugin::content-manager.explorer.publish',
625
+ subject: model
508
626
  }
509
627
  ]);
510
628
  if (isLoading) {
@@ -548,4 +666,4 @@ const ProtectedPreviewPage = ()=>{
548
666
  };
549
667
 
550
668
  export { ProtectedPreviewPage, usePreviewContext };
551
- //# sourceMappingURL=Preview-BEq0FXda.mjs.map
669
+ //# sourceMappingURL=Preview-DGQMt8XZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Preview-DGQMt8XZ.mjs","sources":["../../../admin/src/preview/components/PreviewContent.tsx","../../../admin/src/preview/components/PreviewHeader.tsx","../../../admin/src/preview/pages/Preview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, IconButton } from '@strapi/design-system';\nimport { ArrowLeft } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { FormLayout } from '../../pages/EditView/components/FormLayout';\nimport { usePreviewContext } from '../pages/Preview';\n\n// TODO use ArrowLineLeft once it's available in the DS\nconst AnimatedArrow = styled(ArrowLeft)<{ isSideEditorOpen: boolean }>`\n will-change: transform;\n rotate: ${(props) => (props.isSideEditorOpen ? '0deg' : '180deg')};\n transition: rotate 0.2s ease-in-out;\n`;\n\nconst UnstablePreviewContent = () => {\n const previewUrl = usePreviewContext('PreviewContent', (state) => state.url);\n const layout = usePreviewContext('PreviewContent', (state) => state.layout);\n\n const { formatMessage } = useIntl();\n\n const [isSideEditorOpen, setIsSideEditorOpen] = React.useState(true);\n\n return (\n <Flex flex={1} overflow=\"auto\" alignItems=\"stretch\">\n <Box\n overflow=\"auto\"\n width={isSideEditorOpen ? '50%' : 0}\n borderWidth=\"0 1px 0 0\"\n borderColor=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n // Remove horizontal padding when the editor is closed or it won't fully disappear\n paddingLeft={isSideEditorOpen ? 6 : 0}\n paddingRight={isSideEditorOpen ? 6 : 0}\n transition=\"all 0.2s ease-in-out\"\n >\n <FormLayout layout={layout.layout} hasBackground />\n </Box>\n <Box position=\"relative\" flex={1} height=\"100%\" overflow=\"hidden\">\n <Box\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n width=\"100%\"\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n <IconButton\n variant=\"tertiary\"\n label={formatMessage(\n isSideEditorOpen\n ? {\n id: 'content-manager.preview.content.close-editor',\n defaultMessage: 'Close editor',\n }\n : {\n id: 'content-manager.preview.content.open-editor',\n defaultMessage: 'Open editor',\n }\n )}\n onClick={() => setIsSideEditorOpen((prev) => !prev)}\n position=\"absolute\"\n top={2}\n left={2}\n >\n <AnimatedArrow isSideEditorOpen={isSideEditorOpen} />\n </IconButton>\n </Box>\n </Flex>\n );\n};\n\nconst PreviewContent = () => {\n const previewUrl = usePreviewContext('PreviewContent', (state) => state.url);\n\n const { formatMessage } = useIntl();\n\n return (\n <Box\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n width=\"100%\"\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n );\n};\n\nexport { PreviewContent, UnstablePreviewContent };\n","import * as React from 'react';\n\nimport {\n DescriptionComponentRenderer,\n useClipboard,\n useHistory,\n useNotification,\n useQueryParams,\n useStrapiApp,\n} from '@strapi/admin/strapi-admin';\nimport { IconButton, Tabs, Typography, Grid, Flex } from '@strapi/design-system';\nimport { Cross, Link as LinkIcon } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { DocumentActionButton } from '../../pages/EditView/components/DocumentActions';\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport { getDocumentStatus } from '../../pages/EditView/EditViewPage';\nimport { usePreviewContext } from '../pages/Preview';\n\nimport type { ContentManagerPlugin, DocumentActionProps } from '../../content-manager';\n\n/* -------------------------------------------------------------------------------------------------\n * ClosePreviewButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst ClosePreviewButton = () => {\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n }>();\n const { formatMessage } = useIntl();\n\n const canGoBack = useHistory('BackButton', (state) => state.canGoBack);\n const goBack = useHistory('BackButton', (state) => state.goBack);\n const history = useHistory('BackButton', (state) => state.history);\n const locationIndex = useHistory('BackButton', (state) => state.currentLocationIndex);\n\n /**\n * Get the link destination from the history.\n * Rely on a fallback (the parent edit view page) if there's no page to go back .\n */\n const historyTo = canGoBack ? history.at(locationIndex - 2) : undefined;\n const fallback = {\n pathname: '..',\n search: stringify(query, { encode: false }),\n } satisfies To;\n const toWithFallback = historyTo ?? fallback;\n\n const handleClick = (e: React.MouseEvent) => {\n if (canGoBack) {\n // Prevent normal link behavior, go back in the history stack instead\n e.preventDefault();\n goBack();\n return;\n }\n\n // Otherwise rely on native link behavior to go back to the edit view. We don't use navigate()\n // here in order to get the relative=\"path\" functionality from the Link component.\n };\n\n return (\n <IconButton\n variant=\"ghost\"\n tag={Link}\n relative=\"path\"\n to={toWithFallback}\n onClick={handleClick}\n label={formatMessage({\n id: 'content-manager.preview.header.close',\n defaultMessage: 'Close preview',\n })}\n >\n <Cross />\n </IconButton>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Status\n * -----------------------------------------------------------------------------------------------*/\n\nconst Status = () => {\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n if (!hasDraftAndPublished) {\n return null;\n }\n\n const status = getDocumentStatus(document, meta);\n\n return <DocumentStatus status={status} size=\"XS\" />;\n};\n\nconst PreviewTabs = () => {\n const { formatMessage } = useIntl();\n\n // URL query params\n const [{ query }, setQuery] = useQueryParams<{ status: 'draft' | 'published' }>();\n\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublish = schema?.options?.draftAndPublish ?? false;\n const documentStatus = getDocumentStatus(document, meta);\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n if (!hasDraftAndPublish) {\n return null;\n }\n\n return (\n <Tabs.Root variant=\"simple\" value={query.status || 'draft'} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'preview.tabs.label',\n defaultMessage: 'Document status',\n })}\n >\n <StatusTab value=\"draft\">\n {formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab value=\"published\" disabled={documentStatus === 'draft'}>\n {formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'published',\n })}\n </StatusTab>\n </Tabs.List>\n </Tabs.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst UnstablePreviewHeader = () => {\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const plugins = useStrapiApp('PreviewHeader', (state) => state.plugins);\n\n const [{ query }] = useQueryParams<{\n status?: 'draft' | 'published';\n }>();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n const handleCopyLink = () => {\n copy(window.location.href);\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.preview.copy.success',\n defaultMessage: 'Copied preview link',\n }),\n type: 'success',\n });\n };\n\n const hasDraftAndPublish = schema.options?.draftAndPublish ?? false;\n const props = {\n activeTab: query.status ?? null,\n collectionType: schema.kind === 'collectionType' ? 'collection-types' : 'single-types',\n model: schema.uid,\n documentId: document.documentId,\n document,\n meta,\n } satisfies DocumentActionProps;\n\n return (\n <Flex height=\"48px\" gap={4} background=\"neutral0\" borderColor=\"neutral150\" tag=\"header\">\n {/* Title and status */}\n <TitleContainer height=\"100%\" paddingLeft={2} paddingRight={4}>\n <ClosePreviewButton />\n <PreviewTitle\n tag=\"h1\"\n title={title}\n maxWidth=\"200px\"\n fontSize={2}\n paddingLeft={2}\n paddingRight={3}\n fontWeight={600}\n >\n {title}\n </PreviewTitle>\n <Status />\n </TitleContainer>\n\n {/* Tabs and actions */}\n <Flex\n flex={1}\n paddingRight={2}\n gap={2}\n justifyContent={hasDraftAndPublish ? 'space-between' : 'flex-end'}\n >\n <Flex flex=\"1 1 70%\">\n <PreviewTabs />\n </Flex>\n <Flex gap={2}>\n <IconButton\n type=\"button\"\n label={formatMessage({\n id: 'preview.copy.label',\n defaultMessage: 'Copy preview link',\n })}\n onClick={handleCopyLink}\n >\n <LinkIcon />\n </IconButton>\n <InjectionZone area=\"preview.actions\" />\n <DescriptionComponentRenderer\n props={props}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('preview')}\n >\n {(actions) => {\n const filteredActions = actions.filter((action) =>\n [action.position].flat().includes('preview')\n );\n const [primaryAction, secondaryAction] = filteredActions;\n\n if (!primaryAction && !secondaryAction) return null;\n\n // Both actions are available when draft and publish enabled\n if (primaryAction && secondaryAction) {\n return (\n <>\n {/* Save */}\n <DocumentActionButton\n {...secondaryAction}\n variant={secondaryAction.variant || 'secondary'}\n />\n {/* Publish */}\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'default'}\n />\n </>\n );\n }\n\n // Otherwise we just have the save action\n return (\n <DocumentActionButton\n {...primaryAction}\n variant={primaryAction.variant || 'secondary'}\n />\n );\n }}\n </DescriptionComponentRenderer>\n </Flex>\n </Flex>\n </Flex>\n );\n};\n\nconst PreviewHeader = () => {\n // Get the document title\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\n\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n const handleCopyLink = () => {\n copy(window.location.href);\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.preview.copy.success',\n defaultMessage: 'Copied preview link',\n }),\n type: 'success',\n });\n };\n\n return (\n <Grid.Root\n gap={3}\n gridCols={3}\n paddingLeft={2}\n paddingRight={2}\n background=\"neutral0\"\n borderColor=\"neutral150\"\n tag=\"header\"\n >\n {/* Title and status */}\n <Grid.Item xs={1} paddingTop={2} paddingBottom={2} gap={3}>\n <ClosePreviewButton />\n <PreviewTitle tag=\"h1\" fontWeight={600} fontSize={2} maxWidth=\"200px\" title={title}>\n {title}\n </PreviewTitle>\n <Status />\n </Grid.Item>\n {/* Tabs */}\n <Grid.Item xs={1} marginBottom=\"-1px\" alignItems=\"end\" margin=\"auto\">\n <PreviewTabs />\n </Grid.Item>\n {/* Copy link */}\n <Grid.Item xs={1} justifyContent=\"end\" paddingTop={2} paddingBottom={2}>\n <IconButton\n type=\"button\"\n label={formatMessage({\n id: 'preview.copy.label',\n defaultMessage: 'Copy preview link',\n })}\n onClick={handleCopyLink}\n >\n <LinkIcon />\n </IconButton>\n </Grid.Item>\n </Grid.Root>\n );\n};\n\nconst PreviewTitle = styled(Typography)`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\nconst TitleContainer = styled(Flex)`\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nexport { PreviewHeader, UnstablePreviewHeader };\n","import * as React from 'react';\n\nimport {\n Page,\n useQueryParams,\n useRBAC,\n createContext,\n Form as FormContext,\n} from '@strapi/admin/strapi-admin';\nimport { Box, Flex, FocusTrap, Portal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\n\nimport { GetPreviewUrl } from '../../../../shared/contracts/preview';\nimport { COLLECTION_TYPES } from '../../constants/collections';\nimport { DocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDocument } from '../../hooks/useDocument';\nimport { type EditLayout, useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { buildValidParams } from '../../utils/api';\nimport { createYupSchema } from '../../utils/validation';\nimport { PreviewContent, UnstablePreviewContent } from '../components/PreviewContent';\nimport { PreviewHeader, UnstablePreviewHeader } from '../components/PreviewHeader';\nimport { useGetPreviewUrlQuery } from '../services/preview';\n\nimport type { UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreviewContextValue {\n url: string;\n title: string;\n document: NonNullable<ReturnType<UseDocument>['document']>;\n meta: NonNullable<ReturnType<UseDocument>['meta']>;\n schema: NonNullable<ReturnType<UseDocument>['schema']>;\n layout: EditLayout;\n}\n\nconst [PreviewProvider, usePreviewContext] = createContext<PreviewContextValue>('PreviewPage');\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst PreviewPage = () => {\n const location = useLocation();\n const { formatMessage } = useIntl();\n\n // Read all the necessary data from the URL to find the right preview URL\n const {\n slug: model,\n id: documentId,\n collectionType,\n } = useParams<{\n slug: UID.ContentType;\n id: string;\n collectionType: string;\n }>();\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n status?: string;\n }>();\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n if (!collectionType) {\n throw new Error('Could not find collectionType in url params');\n }\n\n if (!model) {\n throw new Error('Could not find model in url params');\n }\n\n // Only collection types must have a documentId\n if (collectionType === COLLECTION_TYPES && !documentId) {\n throw new Error('Could not find documentId in url params');\n }\n\n const previewUrlResponse = useGetPreviewUrlQuery({\n params: {\n contentType: model,\n },\n query: {\n documentId,\n locale: params.locale,\n status: params.status as GetPreviewUrl.Request['query']['status'],\n },\n });\n\n const documentResponse = useDocument({\n model,\n collectionType,\n documentId,\n params,\n });\n\n const documentLayoutResponse = useDocumentLayout(model);\n\n if (\n documentResponse.isLoading ||\n previewUrlResponse.isLoading ||\n documentLayoutResponse.isLoading\n ) {\n return <Page.Loading />;\n }\n\n const initialValues = documentResponse.getInitialFormValues();\n\n if (\n previewUrlResponse.error ||\n documentLayoutResponse.error ||\n !documentResponse.document ||\n !documentResponse.meta ||\n !documentResponse.schema ||\n !initialValues\n ) {\n return <Page.Error />;\n }\n\n if (!previewUrlResponse.data?.data?.url) {\n return <Page.NoData />;\n }\n\n const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n {\n id: 'content-manager.preview.page-title',\n defaultMessage: '{contentType} preview',\n },\n {\n contentType: documentTitle,\n }\n )}\n </Page.Title>\n <PreviewProvider\n url={previewUrlResponse.data.data.url}\n document={documentResponse.document}\n title={documentTitle}\n meta={documentResponse.meta}\n schema={documentResponse.schema}\n layout={documentLayoutResponse.edit}\n >\n <FormContext\n method=\"PUT\"\n disabled={\n query.status === 'published' &&\n documentResponse &&\n documentResponse.document.status === 'published'\n }\n initialValues={documentResponse.getInitialFormValues()}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n height=\"100%\"\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n >\n <Flex direction=\"column\" height=\"100%\" alignItems=\"stretch\">\n {window.strapi.future.isEnabled('unstablePreviewSideEditor') ? (\n <>\n <UnstablePreviewHeader />\n <UnstablePreviewContent />\n </>\n ) : (\n <>\n <PreviewHeader />\n <PreviewContent />\n </>\n )}\n </Flex>\n </FormContext>\n </PreviewProvider>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedPreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedPreviewPageImpl = () => {\n const { slug: model } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC([\n { action: 'plugin::content-manager.explorer.read', subject: model },\n { action: 'plugin::content-manager.explorer.update', subject: model },\n { action: 'plugin::content-manager.explorer.publish', subject: model },\n ]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !model) {\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Error />\n </Box>\n );\n }\n\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Protect\n permissions={permissions.filter((permission) =>\n permission.action.includes('explorer.read')\n )}\n >\n <DocumentRBAC permissions={permissions}>\n <PreviewPage />\n </DocumentRBAC>\n </Page.Protect>\n </Box>\n );\n};\n\nconst ProtectedPreviewPage = () => {\n return (\n <Portal>\n <FocusTrap>\n <ProtectedPreviewPageImpl />\n </FocusTrap>\n </Portal>\n );\n};\n\nexport { ProtectedPreviewPage, usePreviewContext };\n"],"names":["AnimatedArrow","styled","ArrowLeft","props","isSideEditorOpen","UnstablePreviewContent","previewUrl","usePreviewContext","state","url","layout","formatMessage","useIntl","setIsSideEditorOpen","React","useState","_jsxs","Flex","flex","overflow","alignItems","_jsx","Box","width","borderWidth","borderColor","paddingTop","paddingBottom","paddingLeft","paddingRight","transition","FormLayout","hasBackground","position","height","src","title","id","defaultMessage","tag","IconButton","variant","label","onClick","prev","top","left","PreviewContent","ClosePreviewButton","query","useQueryParams","canGoBack","useHistory","goBack","history","locationIndex","currentLocationIndex","historyTo","at","undefined","fallback","pathname","search","stringify","encode","toWithFallback","handleClick","e","preventDefault","Link","relative","to","Cross","Status","document","schema","meta","hasDraftAndPublished","options","draftAndPublish","status","getDocumentStatus","DocumentStatus","size","PreviewTabs","setQuery","hasDraftAndPublish","documentStatus","handleTabChange","Tabs","Root","value","onValueChange","List","aria-label","StatusTab","disabled","UnstablePreviewHeader","plugins","useStrapiApp","toggleNotification","useNotification","copy","useClipboard","handleCopyLink","window","location","href","message","type","activeTab","collectionType","kind","model","uid","documentId","gap","background","TitleContainer","PreviewTitle","maxWidth","fontSize","fontWeight","justifyContent","LinkIcon","InjectionZone","area","DescriptionComponentRenderer","descriptions","apis","getDocumentActions","actions","filteredActions","filter","action","flat","includes","primaryAction","secondaryAction","_Fragment","DocumentActionButton","PreviewHeader","Grid","gridCols","Item","xs","marginBottom","margin","Typography","Trigger","theme","colors","neutral150","PreviewProvider","createContext","PreviewPage","useLocation","slug","useParams","params","useMemo","buildValidParams","Error","COLLECTION_TYPES","previewUrlResponse","useGetPreviewUrlQuery","contentType","locale","documentResponse","useDocument","documentLayoutResponse","useDocumentLayout","isLoading","Page","Loading","initialValues","getInitialFormValues","error","data","NoData","documentTitle","getTitle","edit","settings","mainField","validateSync","values","yupSchema","createYupSchema","attributes","components","abortEarly","Title","FormContext","method","initialErrors","forceValidation","validate","direction","strapi","future","isEnabled","ProtectedPreviewPageImpl","permissions","useRBAC","subject","zIndex","Protect","permission","DocumentRBAC","ProtectedPreviewPage","Portal","FocusTrap"],"mappings":"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"}
@@ -10,9 +10,9 @@ import { useIntl } from 'react-intl';
10
10
  import { NavLink } from 'react-router-dom';
11
11
  import { FixedSizeList } from 'react-window';
12
12
  import { styled } from 'styled-components';
13
- import { c as useDoc, d as buildValidParams, C as COLLECTION_TYPES, g as getTranslation, D as DocumentStatus } from './index-Cs6qwFQu.mjs';
13
+ import { c as useDoc, d as buildValidParams, C as COLLECTION_TYPES, g as getTranslation, D as DocumentStatus } from './index-njcS3gUl.mjs';
14
14
  import { u as useDragAndDrop, I as ItemTypes, D as DROP_SENSITIVITY } from './useDragAndDrop-HYwNDExe.mjs';
15
- import { u as useGetRelationsQuery, g as getRelationLabel, a as useDebounce, b as useLazySearchRelationsQuery } from './relations-Cq8NRUto.mjs';
15
+ import { u as useGetRelationsQuery, g as getRelationLabel, a as useDebounce, b as useLazySearchRelationsQuery } from './relations-De8hSklO.mjs';
16
16
 
17
17
  /**
18
18
  * We use this component to wrap any individual component field in the Edit View,
@@ -1288,4 +1288,4 @@ const MemoizedRelationsField = /*#__PURE__*/ React.memo(RelationsField);
1288
1288
  const MemoizedUnstableRelationsField = /*#__PURE__*/ React.memo(UnstableRelationsField);
1289
1289
 
1290
1290
  export { ComponentProvider as C, DisconnectButton as D, FlexWrapper as F, LinkEllipsis as L, MemoizedUnstableRelationsField as M, MemoizedRelationsField as a, useComponent as u };
1291
- //# sourceMappingURL=Relations-qeZyLDgQ.mjs.map
1291
+ //# sourceMappingURL=Relations-BemEu63h.mjs.map