@strapi/review-workflows 0.0.0-experimental.e60ec1829240dae21c1e1d29076681c322288813 → 0.0.0-experimental.f31889311d753b5f7d95198ae84d8fce1d156cd6

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 (41) hide show
  1. package/LICENSE +12 -17
  2. package/dist/_chunks/{Layout-BSrg0PBJ.mjs → Layout-BpMLb-Oo.mjs} +5 -11
  3. package/dist/_chunks/Layout-BpMLb-Oo.mjs.map +1 -0
  4. package/dist/_chunks/{Layout-BemsgaWF.js → Layout-Cwbb9usb.js} +5 -13
  5. package/dist/_chunks/Layout-Cwbb9usb.js.map +1 -0
  6. package/dist/_chunks/{_id-DO302-GM.mjs → _id-KpezMzxO.mjs} +307 -334
  7. package/dist/_chunks/_id-KpezMzxO.mjs.map +1 -0
  8. package/dist/_chunks/{_id-BDSg16su.js → _id-p9NnvlMP.js} +313 -342
  9. package/dist/_chunks/_id-p9NnvlMP.js.map +1 -0
  10. package/dist/_chunks/{index-BIHOhXvS.js → index-BTr8zF-9.js} +143 -166
  11. package/dist/_chunks/index-BTr8zF-9.js.map +1 -0
  12. package/dist/_chunks/{index-u8XaKwOw.mjs → index-BxkGN0Yj.mjs} +15 -22
  13. package/dist/_chunks/index-BxkGN0Yj.mjs.map +1 -0
  14. package/dist/_chunks/{index-DV2HXfsG.js → index-DqT_oXGP.js} +15 -24
  15. package/dist/_chunks/index-DqT_oXGP.js.map +1 -0
  16. package/dist/_chunks/{index-7V_6cgRk.mjs → index-DtJI5ZoC.mjs} +145 -166
  17. package/dist/_chunks/index-DtJI5ZoC.mjs.map +1 -0
  18. package/dist/_chunks/{router-BdBbXIaZ.mjs → router-B8G2sh6V.mjs} +3 -3
  19. package/dist/_chunks/{router-BdBbXIaZ.mjs.map → router-B8G2sh6V.mjs.map} +1 -1
  20. package/dist/_chunks/{router-BtE6OQHw.js → router-Bqj-105s.js} +3 -3
  21. package/dist/_chunks/{router-BtE6OQHw.js.map → router-Bqj-105s.js.map} +1 -1
  22. package/dist/admin/index.js +1 -1
  23. package/dist/admin/index.mjs +1 -1
  24. package/dist/admin/src/components/LimitsModal.d.ts +2 -4
  25. package/dist/admin/src/routes/settings/hooks/useDragAndDrop.d.ts +4 -4
  26. package/dist/admin/src/routes/settings/hooks/useKeyboardDragAndDrop.d.ts +1 -1
  27. package/dist/admin/src/routes/settings/hooks/useReviewWorkflows.d.ts +3 -3
  28. package/dist/admin/src/services/admin.d.ts +2 -2
  29. package/dist/admin/src/services/api.d.ts +2 -3
  30. package/dist/admin/src/services/content-manager.d.ts +6 -6
  31. package/dist/admin/src/services/settings.d.ts +4 -4
  32. package/dist/admin/src/utils/api.d.ts +4 -19
  33. package/package.json +13 -14
  34. package/dist/_chunks/Layout-BSrg0PBJ.mjs.map +0 -1
  35. package/dist/_chunks/Layout-BemsgaWF.js.map +0 -1
  36. package/dist/_chunks/_id-BDSg16su.js.map +0 -1
  37. package/dist/_chunks/_id-DO302-GM.mjs.map +0 -1
  38. package/dist/_chunks/index-7V_6cgRk.mjs.map +0 -1
  39. package/dist/_chunks/index-BIHOhXvS.js.map +0 -1
  40. package/dist/_chunks/index-DV2HXfsG.js.map +0 -1
  41. package/dist/_chunks/index-u8XaKwOw.mjs.map +0 -1
@@ -11,12 +11,11 @@ const reactIntl = require("react-intl");
11
11
  const reactRedux = require("react-redux");
12
12
  const reactRouterDom = require("react-router-dom");
13
13
  const yup = require("yup");
14
- const index = require("./index-BIHOhXvS.js");
15
- const Layout = require("./Layout-BemsgaWF.js");
14
+ const index = require("./index-BTr8zF-9.js");
15
+ const Layout = require("./Layout-Cwbb9usb.js");
16
16
  const reactDndHtml5Backend = require("react-dnd-html5-backend");
17
- const styled = require("styled-components");
17
+ const styledComponents = require("styled-components");
18
18
  const reactDnd = require("react-dnd");
19
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
20
19
  function _interopNamespace(e) {
21
20
  if (e && e.__esModule)
22
21
  return e;
@@ -37,11 +36,10 @@ function _interopNamespace(e) {
37
36
  }
38
37
  const React__namespace = /* @__PURE__ */ _interopNamespace(React);
39
38
  const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
40
- const styled__default = /* @__PURE__ */ _interopDefault(styled);
41
39
  const adminApi = index.reviewWorkflowsApi.injectEndpoints({
42
40
  endpoints(builder) {
43
41
  return {
44
- getRoles: builder.query({
42
+ getAdminRoles: builder.query({
45
43
  query: () => ({
46
44
  url: `/admin/roles`,
47
45
  method: "GET"
@@ -53,7 +51,7 @@ const adminApi = index.reviewWorkflowsApi.injectEndpoints({
53
51
  };
54
52
  }
55
53
  });
56
- const { useGetRolesQuery } = adminApi;
54
+ const { useGetAdminRolesQuery } = adminApi;
57
55
  const useKeyboardDragAndDrop = (active, index2, { onCancel, onDropItem, onGrabItem, onMoveItem }) => {
58
56
  const [isSelected, setIsSelected] = React__namespace.useState(false);
59
57
  const handleMove = (movement) => {
@@ -272,23 +270,23 @@ const AddStage = ({ children, ...props }) => {
272
270
  return /* @__PURE__ */ jsxRuntime.jsx(
273
271
  StyledButton,
274
272
  {
275
- as: "button",
273
+ tag: "button",
276
274
  background: "neutral0",
277
- border: "neutral150",
275
+ borderColor: "neutral150",
278
276
  paddingBottom: 3,
279
277
  paddingLeft: 4,
280
278
  paddingRight: 4,
281
279
  paddingTop: 3,
282
280
  shadow: "filterShadow",
283
281
  ...props,
284
- children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", fontWeight: "bold", textColor: "inherit", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { as: "span", gap: 2, children: [
282
+ children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", fontWeight: "bold", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { tag: "span", gap: 2, children: [
285
283
  /* @__PURE__ */ jsxRuntime.jsx(icons.PlusCircle, { width: "2.4rem", height: "2.4rem", "aria-hidden": true }),
286
284
  children
287
285
  ] }) })
288
286
  }
289
287
  );
290
288
  };
291
- const StyledButton = styled__default.default(designSystem.Box)`
289
+ const StyledButton = styledComponents.styled(designSystem.Box)`
292
290
  border-radius: 26px;
293
291
  color: ${({ theme }) => theme.colors.neutral500};
294
292
 
@@ -300,7 +298,7 @@ const StyledButton = styled__default.default(designSystem.Box)`
300
298
  color: ${({ theme }) => theme.colors.primary600};
301
299
  }
302
300
  `;
303
- const Stages = ({ canDelete = true, canUpdate = true, isCreating = false }) => {
301
+ const Stages = ({ canDelete = true, canUpdate = true, isCreating }) => {
304
302
  const { formatMessage } = reactIntl.useIntl();
305
303
  const { trackUsage } = strapiAdmin.useTracking();
306
304
  const addFieldRow = strapiAdmin.useForm("Stages", (state) => state.addFieldRow);
@@ -315,35 +313,23 @@ const Stages = ({ canDelete = true, canUpdate = true, isCreating = false }) => {
315
313
  left: "50%",
316
314
  position: "absolute",
317
315
  top: "0",
318
- width: 2,
319
- zIndex: 1
316
+ width: 2
320
317
  }
321
318
  ),
322
- /* @__PURE__ */ jsxRuntime.jsx(
323
- designSystem.Flex,
324
- {
325
- direction: "column",
326
- alignItems: "stretch",
327
- gap: 6,
328
- zIndex: 2,
329
- position: "relative",
330
- as: "ol",
331
- children: stages.map((stage, index2) => {
332
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { as: "li", children: /* @__PURE__ */ jsxRuntime.jsx(
333
- Stage,
334
- {
335
- index: index2,
336
- canDelete: stages.length > 1 && canDelete,
337
- canReorder: stages.length > 1,
338
- canUpdate,
339
- stagesCount: stages.length,
340
- isOpen: isCreating,
341
- ...stage
342
- }
343
- ) }, stage.__temp_key__);
344
- })
345
- }
346
- )
319
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, position: "relative", tag: "ol", children: stages.map((stage, index2) => {
320
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { tag: "li", children: /* @__PURE__ */ jsxRuntime.jsx(
321
+ Stage,
322
+ {
323
+ index: index2,
324
+ canDelete: stages.length > 1 && canDelete,
325
+ canReorder: stages.length > 1,
326
+ canUpdate,
327
+ stagesCount: stages.length,
328
+ defaultOpen: isCreating,
329
+ ...stage
330
+ }
331
+ ) }, stage.__temp_key__);
332
+ }) })
347
333
  ] }),
348
334
  canUpdate && /* @__PURE__ */ jsxRuntime.jsx(
349
335
  AddStage,
@@ -361,7 +347,7 @@ const Stages = ({ canDelete = true, canUpdate = true, isCreating = false }) => {
361
347
  )
362
348
  ] });
363
349
  };
364
- const Background = styled__default.default(designSystem.Box)`
350
+ const Background = styledComponents.styled(designSystem.Box)`
365
351
  transform: translateX(-50%);
366
352
  `;
367
353
  const Stage = ({
@@ -369,16 +355,15 @@ const Stage = ({
369
355
  canDelete = false,
370
356
  canReorder = false,
371
357
  canUpdate = false,
372
- isOpen: isOpenDefault = false,
373
358
  stagesCount,
374
359
  name,
375
360
  permissions,
376
- color
361
+ color,
362
+ defaultOpen
377
363
  }) => {
378
364
  const [liveText, setLiveText] = React__namespace.useState();
379
365
  const { formatMessage } = reactIntl.useIntl();
380
366
  const { trackUsage } = strapiAdmin.useTracking();
381
- const [isOpen, setIsOpen] = React__namespace.useState(isOpenDefault);
382
367
  const stageErrors = strapiAdmin.useForm("Stages", (state) => state.errors.stages);
383
368
  const error = stageErrors?.[index2];
384
369
  const addFieldRow = strapiAdmin.useForm("Stage", (state) => state.addFieldRow);
@@ -460,7 +445,8 @@ const Stage = ({
460
445
  const handleCloneClick = () => {
461
446
  addFieldRow("stages", { name, color, permissions });
462
447
  };
463
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { ref: (ref) => composedRef(ref), children: [
448
+ const id = React__namespace.useId();
449
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { ref: composedRef, shadow: "tableShadow", children: [
464
450
  liveText && /* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { "aria-live": "assertive", children: liveText }),
465
451
  isDragging ? /* @__PURE__ */ jsxRuntime.jsx(
466
452
  designSystem.Box,
@@ -471,74 +457,61 @@ const Stage = ({
471
457
  borderWidth: "1px",
472
458
  display: "block",
473
459
  hasRadius: true,
474
- padding: 6,
475
- shadow: "tableShadow"
460
+ padding: 6
476
461
  }
477
- ) : /* @__PURE__ */ jsxRuntime.jsxs(
478
- designSystem.Accordion,
462
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
463
+ AccordionRoot,
479
464
  {
480
- size: "S",
481
- variant: "primary",
482
- onToggle: () => {
483
- setIsOpen(!isOpen);
484
- if (!isOpen) {
465
+ onValueChange: (value) => {
466
+ if (value) {
485
467
  trackUsage("willEditStage");
486
468
  }
487
469
  },
488
- expanded: isOpen,
489
- shadow: "tableShadow",
490
- error: Object.values(error ?? {})[0],
491
- hasErrorMessage: false,
492
- children: [
493
- /* @__PURE__ */ jsxRuntime.jsx(
494
- designSystem.AccordionToggle,
495
- {
496
- title: name,
497
- togglePosition: "left",
498
- action: (canDelete || canUpdate) && /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { children: [
499
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Root, { children: [
500
- /* @__PURE__ */ jsxRuntime.jsxs(ContextMenuTrigger, { size: "S", endIcon: null, paddingLeft: 2, paddingRight: 2, children: [
501
- /* @__PURE__ */ jsxRuntime.jsx(icons.More, { "aria-hidden": true, focusable: false }),
502
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { as: "span", children: formatMessage({
503
- id: "[tbdb].components.DynamicZone.more-actions",
504
- defaultMessage: "More actions"
505
- }) })
506
- ] }),
507
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Menu.Content, { popoverPlacement: "bottom-end", zIndex: 2, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.SubRoot, { children: [
508
- canUpdate && /* @__PURE__ */ jsxRuntime.jsx(designSystem.MenuItem, { onClick: handleCloneClick, children: formatMessage({
509
- id: "Settings.review-workflows.stage.delete",
510
- defaultMessage: "Duplicate stage"
511
- }) }),
512
- canDelete && /* @__PURE__ */ jsxRuntime.jsx(DeleteMenuItem, { onClick: () => removeFieldRow("stages", index2), children: formatMessage({
513
- id: "Settings.review-workflows.stage.delete",
514
- defaultMessage: "Delete"
515
- }) })
516
- ] }) })
470
+ defaultValue: defaultOpen ? id : void 0,
471
+ $error: Object.values(error ?? {}).length > 0,
472
+ children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Accordion.Item, { value: id, children: [
473
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Accordion.Header, { children: [
474
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Trigger, { children: name }),
475
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Actions, { children: canDelete || canUpdate ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
476
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Root, { children: [
477
+ /* @__PURE__ */ jsxRuntime.jsxs(ContextMenuTrigger, { size: "S", endIcon: null, paddingLeft: 2, paddingRight: 2, children: [
478
+ /* @__PURE__ */ jsxRuntime.jsx(icons.More, { "aria-hidden": true, focusable: false }),
479
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { tag: "span", children: formatMessage({
480
+ id: "[tbdb].components.DynamicZone.more-actions",
481
+ defaultMessage: "More actions"
482
+ }) })
517
483
  ] }),
518
- canUpdate && /* @__PURE__ */ jsxRuntime.jsx(
519
- DragIconButton,
520
- {
521
- background: "transparent",
522
- forwardedAs: "div",
523
- hasRadius: true,
524
- role: "button",
525
- noBorder: true,
526
- tabIndex: 0,
527
- "data-handler-id": handlerId,
528
- ref: dragRef,
529
- label: formatMessage({
530
- id: "Settings.review-workflows.stage.drag",
531
- defaultMessage: "Drag"
532
- }),
533
- onClick: (e) => e.stopPropagation(),
534
- onKeyDown: handleKeyDown,
535
- children: /* @__PURE__ */ jsxRuntime.jsx(icons.Drag, {})
536
- }
537
- )
538
- ] })
539
- }
540
- ),
541
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.AccordionContent, { padding: 6, background: "neutral0", hasRadius: true, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: [
484
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Menu.Content, { popoverPlacement: "bottom-end", zIndex: 2, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.SubRoot, { children: [
485
+ canUpdate && /* @__PURE__ */ jsxRuntime.jsx(designSystem.MenuItem, { onClick: handleCloneClick, children: formatMessage({
486
+ id: "Settings.review-workflows.stage.delete",
487
+ defaultMessage: "Duplicate stage"
488
+ }) }),
489
+ canDelete && /* @__PURE__ */ jsxRuntime.jsx(DeleteMenuItem, { onClick: () => removeFieldRow("stages", index2), children: formatMessage({
490
+ id: "Settings.review-workflows.stage.delete",
491
+ defaultMessage: "Delete"
492
+ }) })
493
+ ] }) })
494
+ ] }),
495
+ canUpdate && /* @__PURE__ */ jsxRuntime.jsx(
496
+ designSystem.IconButton,
497
+ {
498
+ background: "transparent",
499
+ hasRadius: true,
500
+ borderWidth: 0,
501
+ "data-handler-id": handlerId,
502
+ ref: dragRef,
503
+ label: formatMessage({
504
+ id: "Settings.review-workflows.stage.drag",
505
+ defaultMessage: "Drag"
506
+ }),
507
+ onClick: (e) => e.stopPropagation(),
508
+ onKeyDown: handleKeyDown,
509
+ children: /* @__PURE__ */ jsxRuntime.jsx(icons.Drag, {})
510
+ }
511
+ )
512
+ ] }) : null })
513
+ ] }),
514
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, padding: 6, children: [
542
515
  {
543
516
  disabled: !canUpdate,
544
517
  label: formatMessage({
@@ -576,16 +549,20 @@ const Stage = ({
576
549
  size: 6,
577
550
  type: "permissions"
578
551
  }
579
- ].map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: size, children: /* @__PURE__ */ jsxRuntime.jsx(InputRenderer, { ...field }) }, field.name)) }) })
580
- ]
552
+ ].map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: size, children: /* @__PURE__ */ jsxRuntime.jsx(InputRenderer, { ...field }) }, field.name)) }) })
553
+ ] })
581
554
  }
582
555
  )
583
556
  ] });
584
557
  };
585
- const DeleteMenuItem = styled__default.default(designSystem.MenuItem)`
558
+ const AccordionRoot = styledComponents.styled(designSystem.Accordion.Root)`
559
+ border: 1px solid
560
+ ${({ theme, $error }) => $error ? theme.colors.danger600 : theme.colors.neutral200};
561
+ `;
562
+ const DeleteMenuItem = styledComponents.styled(designSystem.MenuItem)`
586
563
  color: ${({ theme }) => theme.colors.danger600};
587
564
  `;
588
- const ContextMenuTrigger = styled__default.default(designSystem.Menu.Trigger)`
565
+ const ContextMenuTrigger = styledComponents.styled(designSystem.Menu.Trigger)`
589
566
  :hover,
590
567
  :focus {
591
568
  background-color: ${({ theme }) => theme.colors.neutral100};
@@ -595,22 +572,6 @@ const ContextMenuTrigger = styled__default.default(designSystem.Menu.Trigger)`
595
572
  font-size: 0;
596
573
  }
597
574
  `;
598
- const DragIconButton = styled__default.default(designSystem.IconButton)`
599
- align-items: center;
600
- border-radius: ${({ theme }) => theme.borderRadius};
601
- display: flex;
602
- justify-content: center;
603
-
604
- &:hover,
605
- &:focus {
606
- background-color: ${({ theme }) => theme.colors.neutral100};
607
- }
608
-
609
- svg {
610
- height: auto;
611
- width: ${({ theme }) => theme.spaces[3]};
612
- }
613
- `;
614
575
  const InputRenderer = (props) => {
615
576
  switch (props.type) {
616
577
  case "color":
@@ -636,54 +597,55 @@ const ColorSelector = ({ disabled, label, name, required }) => {
636
597
  color: hex
637
598
  }));
638
599
  const { themeColorName } = index.getStageColorByHex(value) ?? {};
639
- return /* @__PURE__ */ jsxRuntime.jsx(
640
- designSystem.SingleSelect,
641
- {
642
- disabled,
643
- error,
644
- required,
645
- label,
646
- onChange: (v) => {
647
- onChange(name, v.toString());
648
- },
649
- value: value?.toUpperCase(),
650
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(
651
- designSystem.Flex,
652
- {
653
- as: "span",
654
- height: 2,
655
- background: value,
656
- borderColor: themeColorName === "neutral0" ? "neutral150" : "transparent",
657
- hasRadius: true,
658
- shrink: 0,
659
- width: 2
660
- }
661
- ),
662
- children: colorOptions.map(({ value: value2, label: label2, color }) => {
663
- const { themeColorName: themeColorName2 } = index.getStageColorByHex(color) || {};
664
- return /* @__PURE__ */ jsxRuntime.jsx(
665
- designSystem.SingleSelectOption,
600
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { error, name, required, children: [
601
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: label }),
602
+ /* @__PURE__ */ jsxRuntime.jsx(
603
+ designSystem.SingleSelect,
604
+ {
605
+ disabled,
606
+ onChange: (v) => {
607
+ onChange(name, v.toString());
608
+ },
609
+ value: value?.toUpperCase(),
610
+ startIcon: /* @__PURE__ */ jsxRuntime.jsx(
611
+ designSystem.Flex,
666
612
  {
667
- value: value2,
668
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(
669
- designSystem.Flex,
670
- {
671
- as: "span",
672
- height: 2,
673
- background: color,
674
- borderColor: themeColorName2 === "neutral0" ? "neutral150" : "transparent",
675
- hasRadius: true,
676
- shrink: 0,
677
- width: 2
678
- }
679
- ),
680
- children: label2
681
- },
682
- value2
683
- );
684
- })
685
- }
686
- );
613
+ tag: "span",
614
+ height: 2,
615
+ background: value,
616
+ borderColor: themeColorName === "neutral0" ? "neutral150" : "transparent",
617
+ hasRadius: true,
618
+ shrink: 0,
619
+ width: 2
620
+ }
621
+ ),
622
+ children: colorOptions.map(({ value: value2, label: label2, color }) => {
623
+ const { themeColorName: themeColorName2 } = index.getStageColorByHex(color) || {};
624
+ return /* @__PURE__ */ jsxRuntime.jsx(
625
+ designSystem.SingleSelectOption,
626
+ {
627
+ value: value2,
628
+ startIcon: /* @__PURE__ */ jsxRuntime.jsx(
629
+ designSystem.Flex,
630
+ {
631
+ tag: "span",
632
+ height: 2,
633
+ background: color,
634
+ borderColor: themeColorName2 === "neutral0" ? "neutral150" : "transparent",
635
+ hasRadius: true,
636
+ shrink: 0,
637
+ width: 2
638
+ }
639
+ ),
640
+ children: label2
641
+ },
642
+ value2
643
+ );
644
+ })
645
+ }
646
+ ),
647
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
648
+ ] });
687
649
  };
688
650
  const PermissionsField = ({ disabled, name, placeholder, required }) => {
689
651
  const { formatMessage } = reactIntl.useIntl();
@@ -692,57 +654,65 @@ const PermissionsField = ({ disabled, name, placeholder, required }) => {
692
654
  const { value = [], error, onChange } = strapiAdmin.useField(name);
693
655
  const allStages = strapiAdmin.useForm("PermissionsField", (state) => state.values.stages);
694
656
  const onFormValueChange = strapiAdmin.useForm("PermissionsField", (state) => state.onChange);
695
- const { data: roles = [], isLoading } = useGetRolesQuery();
657
+ const rolesErrorCount = React__namespace.useRef(0);
658
+ const { data: roles = [], isLoading, error: getRolesError } = useGetAdminRolesQuery();
696
659
  const filteredRoles = roles?.filter((role) => role.code !== "strapi-super-admin") ?? [];
697
660
  React__namespace.useEffect(() => {
698
- if (!isLoading && roles.length === 0) {
661
+ if (!isLoading && getRolesError && "status" in getRolesError && getRolesError.status == 403 && rolesErrorCount.current === 0) {
662
+ rolesErrorCount.current = 1;
699
663
  toggleNotification({
700
664
  blockTransition: true,
701
665
  type: "danger",
702
666
  message: formatMessage({
703
667
  id: "review-workflows.stage.permissions.noPermissions.description",
704
- defaultMessage: "You don’t have the permission to see roles"
668
+ defaultMessage: "You don’t have the permission to see roles. Contact your administrator."
705
669
  })
706
670
  });
707
671
  }
708
- }, [formatMessage, isLoading, roles, toggleNotification]);
672
+ }, [formatMessage, isLoading, roles, toggleNotification, getRolesError]);
709
673
  if (!isLoading && filteredRoles.length === 0) {
710
- return /* @__PURE__ */ jsxRuntime.jsx(
711
- designSystem.TextInput,
674
+ return /* @__PURE__ */ jsxRuntime.jsxs(
675
+ designSystem.Field.Root,
712
676
  {
713
- disabled: true,
714
677
  name,
715
678
  hint: formatMessage({
716
679
  id: "Settings.review-workflows.stage.permissions.noPermissions.description",
717
680
  defaultMessage: "You don’t have the permission to see roles"
718
681
  }),
719
- label: formatMessage({
720
- id: "Settings.review-workflows.stage.permissions.label",
721
- defaultMessage: "Roles that can change this stage"
722
- }),
723
- placeholder: formatMessage({
724
- id: "components.NotAllowedInput.text",
725
- defaultMessage: "No permissions to see this field"
726
- }),
727
682
  required,
728
- startAction: /* @__PURE__ */ jsxRuntime.jsx(StyledIcon, {}),
729
- type: "text",
730
- value: ""
683
+ children: [
684
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
685
+ id: "Settings.review-workflows.stage.permissions.label",
686
+ defaultMessage: "Roles that can change this stage"
687
+ }) }),
688
+ /* @__PURE__ */ jsxRuntime.jsx(
689
+ designSystem.TextInput,
690
+ {
691
+ disabled: true,
692
+ placeholder: formatMessage({
693
+ id: "components.NotAllowedInput.text",
694
+ defaultMessage: "No permissions to see this field"
695
+ }),
696
+ startAction: /* @__PURE__ */ jsxRuntime.jsx(icons.EyeStriked, { fill: "neutral600" }),
697
+ type: "text",
698
+ value: ""
699
+ }
700
+ ),
701
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
702
+ ]
731
703
  }
732
704
  );
733
705
  }
734
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
735
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "flex-end", gap: 3, children: [
736
- /* @__PURE__ */ jsxRuntime.jsx(PermissionWrapper, { grow: 1, children: /* @__PURE__ */ jsxRuntime.jsx(
706
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "flex-end", gap: 3, children: [
707
+ /* @__PURE__ */ jsxRuntime.jsx(PermissionWrapper, { grow: 1, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { error, name, required: true, children: [
708
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
709
+ id: "Settings.review-workflows.stage.permissions.label",
710
+ defaultMessage: "Roles that can change this stage"
711
+ }) }),
712
+ /* @__PURE__ */ jsxRuntime.jsx(
737
713
  designSystem.MultiSelect,
738
714
  {
739
715
  disabled,
740
- error,
741
- id: name,
742
- label: formatMessage({
743
- id: "Settings.review-workflows.stage.permissions.label",
744
- defaultMessage: "Roles that can change this stage"
745
- }),
746
716
  onChange: (values) => {
747
717
  const permissions = values.map((value2) => ({
748
718
  role: parseInt(value2, 10),
@@ -751,7 +721,6 @@ const PermissionsField = ({ disabled, name, placeholder, required }) => {
751
721
  onChange(name, permissions);
752
722
  },
753
723
  placeholder,
754
- required: true,
755
724
  value: value.map((permission) => `${permission.role}`),
756
725
  withTags: true,
757
726
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -768,70 +737,65 @@ const PermissionsField = ({ disabled, name, placeholder, required }) => {
768
737
  }
769
738
  )
770
739
  }
771
- ) }),
772
- /* @__PURE__ */ jsxRuntime.jsx(
740
+ ),
741
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
742
+ ] }) }),
743
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Dialog.Root, { open: isApplyAllConfirmationOpen, onOpenChange: setIsApplyAllConfirmationOpen, children: [
744
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
773
745
  designSystem.IconButton,
774
746
  {
775
747
  disabled,
776
- icon: /* @__PURE__ */ jsxRuntime.jsx(icons.Duplicate, {}),
777
748
  label: formatMessage({
778
749
  id: "Settings.review-workflows.stage.permissions.apply.label",
779
750
  defaultMessage: "Apply to all stages"
780
751
  }),
781
752
  size: "L",
782
753
  variant: "secondary",
783
- onClick: () => setIsApplyAllConfirmationOpen(true)
754
+ children: /* @__PURE__ */ jsxRuntime.jsx(icons.Duplicate, {})
755
+ }
756
+ ) }),
757
+ /* @__PURE__ */ jsxRuntime.jsx(
758
+ strapiAdmin.ConfirmDialog,
759
+ {
760
+ onConfirm: () => {
761
+ onFormValueChange(
762
+ "stages",
763
+ allStages.map((stage) => ({
764
+ ...stage,
765
+ permissions: value
766
+ }))
767
+ );
768
+ setIsApplyAllConfirmationOpen(false);
769
+ toggleNotification({
770
+ type: "success",
771
+ message: formatMessage({
772
+ id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy.success",
773
+ defaultMessage: "Applied roles to all other stages of the workflow"
774
+ })
775
+ });
776
+ },
777
+ variant: "default",
778
+ children: formatMessage({
779
+ id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy",
780
+ defaultMessage: "Roles that can change that stage will be applied to all the other stages."
781
+ })
784
782
  }
785
783
  )
786
- ] }),
787
- /* @__PURE__ */ jsxRuntime.jsx(
788
- strapiAdmin.ConfirmDialog,
789
- {
790
- isOpen: isApplyAllConfirmationOpen,
791
- onClose: () => setIsApplyAllConfirmationOpen(false),
792
- onConfirm: () => {
793
- onFormValueChange(
794
- "stages",
795
- allStages.map((stage) => ({
796
- ...stage,
797
- permissions: value
798
- }))
799
- );
800
- setIsApplyAllConfirmationOpen(false);
801
- toggleNotification({
802
- type: "success",
803
- message: formatMessage({
804
- id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy.success",
805
- defaultMessage: "Applied roles to all other stages of the workflow"
806
- })
807
- });
808
- },
809
- variant: "default",
810
- children: formatMessage({
811
- id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy",
812
- defaultMessage: "Roles that can change that stage will be applied to all the other stages."
813
- })
814
- }
815
- )
816
- ] });
784
+ ] })
785
+ ] }) });
817
786
  };
818
- const StyledIcon = styled__default.default(icons.EyeStriked)`
819
- & > path {
820
- fill: ${({ theme }) => theme.colors.neutral600};
821
- }
822
- `;
823
- const NestedOption$1 = styled__default.default(designSystem.MultiSelectOption)`
787
+ const NestedOption$1 = styledComponents.styled(designSystem.MultiSelectOption)`
824
788
  padding-left: ${({ theme }) => theme.spaces[7]};
825
789
  `;
826
- const PermissionWrapper = styled__default.default(designSystem.Flex)`
790
+ const PermissionWrapper = styledComponents.styled(designSystem.Flex)`
827
791
  > * {
828
792
  flex-grow: 1;
829
793
  }
830
794
  `;
831
795
  const WorkflowAttributes = ({ canUpdate = true }) => {
832
796
  const { formatMessage } = reactIntl.useIntl();
833
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid, { background: "neutral0", hasRadius: true, gap: 4, padding: 6, shadow: "tableShadow", children: [
834
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsx(
797
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { background: "neutral0", hasRadius: true, gap: 4, padding: 6, shadow: "tableShadow", children: [
798
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsx(
835
799
  strapiAdmin.InputRenderer,
836
800
  {
837
801
  disabled: !canUpdate,
@@ -844,7 +808,7 @@ const WorkflowAttributes = ({ canUpdate = true }) => {
844
808
  type: "string"
845
809
  }
846
810
  ) }),
847
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsx(ContentTypesSelector, { disabled: !canUpdate }) })
811
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsx(ContentTypesSelector, { disabled: !canUpdate }) })
848
812
  ] });
849
813
  };
850
814
  const ContentTypesSelector = ({ disabled }) => {
@@ -865,86 +829,87 @@ const ContentTypesSelector = ({ disabled }) => {
865
829
  label: contentType.info.displayName,
866
830
  value: contentType.uid
867
831
  }));
868
- return /* @__PURE__ */ jsxRuntime.jsx(
869
- designSystem.MultiSelect,
870
- {
871
- customizeContent: (value2) => formatMessage(
872
- {
873
- id: "Settings.review-workflows.workflow.contentTypes.displayValue",
874
- defaultMessage: "{count} {count, plural, one {content type} other {content types}} selected"
875
- },
876
- { count: value2?.length }
877
- ),
878
- disabled: isDisabled,
879
- error,
880
- label: formatMessage({
881
- id: "Settings.review-workflows.workflow.contentTypes.label",
882
- defaultMessage: "Associated to"
883
- }),
884
- onChange: (values) => {
885
- onChange("contentTypes", values);
886
- },
887
- value,
888
- placeholder: formatMessage({
889
- id: "Settings.review-workflows.workflow.contentTypes.placeholder",
890
- defaultMessage: "Select"
891
- }),
892
- children: [
893
- ...collectionTypes.length > 0 ? [
894
- {
895
- label: formatMessage({
896
- id: "Settings.review-workflows.workflow.contentTypes.collectionTypes.label",
897
- defaultMessage: "Collection Types"
898
- }),
899
- children: collectionTypes
900
- }
901
- ] : [],
902
- ...singleTypes.length > 0 ? [
903
- {
904
- label: formatMessage({
905
- id: "Settings.review-workflows.workflow.contentTypes.singleTypes.label",
906
- defaultMessage: "Single Types"
907
- }),
908
- children: singleTypes
909
- }
910
- ] : []
911
- ].map((opt) => {
912
- return /* @__PURE__ */ jsxRuntime.jsx(
913
- designSystem.MultiSelectGroup,
832
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { error, name: "contentTypes", children: [
833
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
834
+ id: "Settings.review-workflows.workflow.contentTypes.label",
835
+ defaultMessage: "Associated to"
836
+ }) }),
837
+ /* @__PURE__ */ jsxRuntime.jsx(
838
+ designSystem.MultiSelect,
839
+ {
840
+ customizeContent: (value2) => formatMessage(
914
841
  {
915
- label: opt.label,
916
- values: opt.children.map((child) => child.value.toString()),
917
- children: opt.children.map((child) => {
918
- const { name: assignedWorkflowName } = workflows?.find(
919
- (workflow) => (currentWorkflow && workflow.id !== currentWorkflow.id || !currentWorkflow) && workflow.contentTypes.includes(child.value)
920
- ) ?? {};
921
- return /* @__PURE__ */ jsxRuntime.jsx(NestedOption, { value: child.value, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, {
922
- // @ts-expect-error - formatMessage options doesn't expect to be a React component but that's what we need actually for the <i> and <em> components
923
- children: formatMessage(
924
- {
925
- id: "Settings.review-workflows.workflow.contentTypes.assigned.notice",
926
- defaultMessage: "{label} {name, select, undefined {} other {<i>(assigned to <em>{name}</em> workflow)</i>}}"
927
- },
928
- {
929
- label: child.label,
930
- name: assignedWorkflowName,
931
- em: (...children) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "em", fontWeight: "bold", children }),
932
- i: (...children) => /* @__PURE__ */ jsxRuntime.jsx(ContentTypeTakeNotice, { children })
933
- }
934
- )
935
- }) }, child.value);
936
- })
842
+ id: "Settings.review-workflows.workflow.contentTypes.displayValue",
843
+ defaultMessage: "{count} {count, plural, one {content type} other {content types}} selected"
937
844
  },
938
- opt.label
939
- );
940
- })
941
- }
942
- );
845
+ { count: value2?.length }
846
+ ),
847
+ disabled: isDisabled,
848
+ onChange: (values) => {
849
+ onChange("contentTypes", values);
850
+ },
851
+ value,
852
+ placeholder: formatMessage({
853
+ id: "Settings.review-workflows.workflow.contentTypes.placeholder",
854
+ defaultMessage: "Select"
855
+ }),
856
+ children: [
857
+ ...collectionTypes.length > 0 ? [
858
+ {
859
+ label: formatMessage({
860
+ id: "Settings.review-workflows.workflow.contentTypes.collectionTypes.label",
861
+ defaultMessage: "Collection Types"
862
+ }),
863
+ children: collectionTypes
864
+ }
865
+ ] : [],
866
+ ...singleTypes.length > 0 ? [
867
+ {
868
+ label: formatMessage({
869
+ id: "Settings.review-workflows.workflow.contentTypes.singleTypes.label",
870
+ defaultMessage: "Single Types"
871
+ }),
872
+ children: singleTypes
873
+ }
874
+ ] : []
875
+ ].map((opt) => {
876
+ return /* @__PURE__ */ jsxRuntime.jsx(
877
+ designSystem.MultiSelectGroup,
878
+ {
879
+ label: opt.label,
880
+ values: opt.children.map((child) => child.value.toString()),
881
+ children: opt.children.map((child) => {
882
+ const { name: assignedWorkflowName } = workflows?.find(
883
+ (workflow) => (currentWorkflow && workflow.id !== currentWorkflow.id || !currentWorkflow) && workflow.contentTypes.includes(child.value)
884
+ ) ?? {};
885
+ return /* @__PURE__ */ jsxRuntime.jsx(NestedOption, { value: child.value, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, {
886
+ // @ts-expect-error - formatMessage options doesn't expect to be a React component but that's what we need actually for the <i> and <em> components
887
+ children: formatMessage(
888
+ {
889
+ id: "Settings.review-workflows.workflow.contentTypes.assigned.notice",
890
+ defaultMessage: "{label} {name, select, undefined {} other {<i>(assigned to <em>{name}</em> workflow)</i>}}"
891
+ },
892
+ {
893
+ label: child.label,
894
+ name: assignedWorkflowName,
895
+ em: (...children) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "em", fontWeight: "bold", children }),
896
+ i: (...children) => /* @__PURE__ */ jsxRuntime.jsx(ContentTypeTakeNotice, { children })
897
+ }
898
+ )
899
+ }) }, child.value);
900
+ })
901
+ },
902
+ opt.label
903
+ );
904
+ })
905
+ }
906
+ )
907
+ ] });
943
908
  };
944
- const NestedOption = styled__default.default(designSystem.MultiSelectOption)`
909
+ const NestedOption = styledComponents.styled(designSystem.MultiSelectOption)`
945
910
  padding-left: ${({ theme }) => theme.spaces[7]};
946
911
  `;
947
- const ContentTypeTakeNotice = styled__default.default(designSystem.Typography)`
912
+ const ContentTypeTakeNotice = styledComponents.styled(designSystem.Typography)`
948
913
  font-style: italic;
949
914
  `;
950
915
  const WORKFLOW_SCHEMA = yup__namespace.object({
@@ -1200,23 +1165,22 @@ const EditPage = () => {
1200
1165
  }
1201
1166
  ),
1202
1167
  /* @__PURE__ */ jsxRuntime.jsx(Layout.Root, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "stretch", direction: "column", gap: 7, children: [
1203
- /* @__PURE__ */ jsxRuntime.jsx(WorkflowAttributes, { canUpdate }),
1168
+ /* @__PURE__ */ jsxRuntime.jsx(WorkflowAttributes, { canUpdate: canUpdate || canCreate }),
1204
1169
  /* @__PURE__ */ jsxRuntime.jsx(
1205
1170
  Stages,
1206
1171
  {
1207
1172
  canDelete,
1208
- canUpdate,
1173
+ canUpdate: canUpdate || canCreate,
1209
1174
  isCreating: isCreatingWorkflow
1210
1175
  }
1211
1176
  )
1212
1177
  ] }) }),
1213
1178
  /* @__PURE__ */ jsxRuntime.jsx(
1214
- strapiAdmin.ConfirmDialog,
1179
+ designSystem.Dialog.Root,
1215
1180
  {
1216
- isOpen: Object.keys(savePrompts).length > 0,
1217
- onClose: handleConfirmClose,
1218
- onConfirm: handleConfirmDeleteDialog(values, { setErrors }),
1219
- children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 5, children: [
1181
+ open: Object.keys(savePrompts).length > 0,
1182
+ onOpenChange: handleConfirmClose,
1183
+ children: /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.ConfirmDialog, { onConfirm: handleConfirmDeleteDialog(values, { setErrors }), children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 5, children: [
1220
1184
  savePrompts.hasDeletedServerStages && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textAlign: "center", variant: "omega", children: formatMessage({
1221
1185
  id: "review-workflows.page.delete.confirm.stages.body",
1222
1186
  defaultMessage: "All entries assigned to deleted stages will be moved to the previous stage."
@@ -1236,7 +1200,7 @@ const EditPage = () => {
1236
1200
  id: "review-workflows.page.delete.confirm.confirm",
1237
1201
  defaultMessage: "Are you sure you want to save?"
1238
1202
  }) })
1239
- ] })
1203
+ ] }) })
1240
1204
  }
1241
1205
  )
1242
1206
  ] })
@@ -1245,8 +1209,8 @@ const EditPage = () => {
1245
1209
  /* @__PURE__ */ jsxRuntime.jsxs(
1246
1210
  index.LimitsModal.Root,
1247
1211
  {
1248
- isOpen: showLimitModal === "workflow",
1249
- onClose: () => setShowLimitModal(null),
1212
+ open: showLimitModal === "workflow",
1213
+ onOpenChange: () => setShowLimitModal(null),
1250
1214
  children: [
1251
1215
  /* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Title, { children: formatMessage({
1252
1216
  id: "review-workflows.edit.page.workflows.limit.title",
@@ -1259,16 +1223,23 @@ const EditPage = () => {
1259
1223
  ]
1260
1224
  }
1261
1225
  ),
1262
- /* @__PURE__ */ jsxRuntime.jsxs(index.LimitsModal.Root, { isOpen: showLimitModal === "stage", onClose: () => setShowLimitModal(null), children: [
1263
- /* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Title, { children: formatMessage({
1264
- id: "review-workflows.edit.page.stages.limit.title",
1265
- defaultMessage: "You have reached the limit of stages for this workflow in your plan"
1266
- }) }),
1267
- /* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Body, { children: formatMessage({
1268
- id: "review-workflows.edit.page.stages.limit.body",
1269
- defaultMessage: "Try deleting some stages or contact Sales to enable more stages."
1270
- }) })
1271
- ] })
1226
+ /* @__PURE__ */ jsxRuntime.jsxs(
1227
+ index.LimitsModal.Root,
1228
+ {
1229
+ open: showLimitModal === "stage",
1230
+ onOpenChange: () => setShowLimitModal(null),
1231
+ children: [
1232
+ /* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Title, { children: formatMessage({
1233
+ id: "review-workflows.edit.page.stages.limit.title",
1234
+ defaultMessage: "You have reached the limit of stages for this workflow in your plan"
1235
+ }) }),
1236
+ /* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Body, { children: formatMessage({
1237
+ id: "review-workflows.edit.page.stages.limit.body",
1238
+ defaultMessage: "Try deleting some stages or contact Sales to enable more stages."
1239
+ }) })
1240
+ ]
1241
+ }
1242
+ )
1272
1243
  ] });
1273
1244
  };
1274
1245
  const addTmpKeysToStages = (data) => {
@@ -1290,4 +1261,4 @@ const ProtectedEditPage = () => {
1290
1261
  return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Protect, { permissions, children: /* @__PURE__ */ jsxRuntime.jsx(EditPage, {}) });
1291
1262
  };
1292
1263
  exports.ProtectedEditPage = ProtectedEditPage;
1293
- //# sourceMappingURL=_id-BDSg16su.js.map
1264
+ //# sourceMappingURL=_id-p9NnvlMP.js.map