@strapi/review-workflows 0.0.0-experimental.f75e3c6d67cc47c64ab37479efdbb7b43be50b78 → 0.0.0-experimental.f9cac24ba3b2f6acb12d0fb5669106e5a134174e

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 (58) hide show
  1. package/LICENSE +12 -17
  2. package/dist/_chunks/{Layout-lg3hbwGL.mjs → Layout-CJZ4iUxI.mjs} +8 -9
  3. package/dist/_chunks/Layout-CJZ4iUxI.mjs.map +1 -0
  4. package/dist/_chunks/{Layout-BMqtFafC.js → Layout-D7wwT4c7.js} +8 -9
  5. package/dist/_chunks/Layout-D7wwT4c7.js.map +1 -0
  6. package/dist/_chunks/{_id-B3jMqqMH.mjs → _id-DA44l-QM.mjs} +131 -165
  7. package/dist/_chunks/_id-DA44l-QM.mjs.map +1 -0
  8. package/dist/_chunks/{_id-B853wt9z.js → _id-DgUOk637.js} +130 -164
  9. package/dist/_chunks/_id-DgUOk637.js.map +1 -0
  10. package/dist/_chunks/{index-lebOqdrv.mjs → index-C33Q2-Fc.mjs} +108 -92
  11. package/dist/_chunks/index-C33Q2-Fc.mjs.map +1 -0
  12. package/dist/_chunks/{index-BhJmjDbj.mjs → index-CnyO97Gi.mjs} +16 -44
  13. package/dist/_chunks/index-CnyO97Gi.mjs.map +1 -0
  14. package/dist/_chunks/{index-CdU1x9cZ.js → index-DL9odlOl.js} +14 -42
  15. package/dist/_chunks/index-DL9odlOl.js.map +1 -0
  16. package/dist/_chunks/{index-Ujtj1Rcp.js → index-mQar1hfK.js} +106 -90
  17. package/dist/_chunks/index-mQar1hfK.js.map +1 -0
  18. package/dist/_chunks/{router-BboD243b.js → router-B1YtLp6u.js} +3 -3
  19. package/dist/_chunks/{router-BboD243b.js.map → router-B1YtLp6u.js.map} +1 -1
  20. package/dist/_chunks/{router-CvMnSjb9.mjs → router-BFv8U71z.mjs} +3 -3
  21. package/dist/_chunks/{router-CvMnSjb9.mjs.map → router-BFv8U71z.mjs.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/services/admin.d.ts +1 -1
  26. package/dist/admin/src/services/api.d.ts +1 -1
  27. package/dist/admin/src/services/content-manager.d.ts +4 -4
  28. package/dist/admin/src/services/settings.d.ts +1733 -7
  29. package/dist/server/index.js +41 -62
  30. package/dist/server/index.js.map +1 -1
  31. package/dist/server/index.mjs +41 -62
  32. package/dist/server/index.mjs.map +1 -1
  33. package/dist/server/src/controllers/assignees.d.ts.map +1 -1
  34. package/dist/server/src/controllers/index.d.ts +0 -1
  35. package/dist/server/src/controllers/index.d.ts.map +1 -1
  36. package/dist/server/src/controllers/stages.d.ts.map +1 -1
  37. package/dist/server/src/controllers/workflows.d.ts +0 -7
  38. package/dist/server/src/controllers/workflows.d.ts.map +1 -1
  39. package/dist/server/src/index.d.ts +1 -2
  40. package/dist/server/src/index.d.ts.map +1 -1
  41. package/dist/server/src/routes/review-workflows.d.ts.map +1 -1
  42. package/dist/server/src/services/document-service-middleware.d.ts.map +1 -1
  43. package/dist/server/src/services/index.d.ts +1 -1
  44. package/dist/server/src/services/metrics/weekly-metrics.d.ts.map +1 -1
  45. package/dist/server/src/services/stages.d.ts +2 -7
  46. package/dist/server/src/services/stages.d.ts.map +1 -1
  47. package/dist/shared/contracts/review-workflows.d.ts +1 -14
  48. package/dist/shared/contracts/review-workflows.d.ts.map +1 -1
  49. package/package.json +10 -10
  50. package/dist/_chunks/Layout-BMqtFafC.js.map +0 -1
  51. package/dist/_chunks/Layout-lg3hbwGL.mjs.map +0 -1
  52. package/dist/_chunks/_id-B3jMqqMH.mjs.map +0 -1
  53. package/dist/_chunks/_id-B853wt9z.js.map +0 -1
  54. package/dist/_chunks/index-BhJmjDbj.mjs.map +0 -1
  55. package/dist/_chunks/index-CdU1x9cZ.js.map +0 -1
  56. package/dist/_chunks/index-Ujtj1Rcp.js.map +0 -1
  57. package/dist/_chunks/index-lebOqdrv.mjs.map +0 -1
  58. package/strapi-server.js +0 -3
@@ -8,11 +8,10 @@ const designSystem = require("@strapi/design-system");
8
8
  const icons = require("@strapi/icons");
9
9
  const fractionalIndexing = require("fractional-indexing");
10
10
  const reactIntl = require("react-intl");
11
- const reactRedux = require("react-redux");
12
11
  const reactRouterDom = require("react-router-dom");
13
12
  const yup = require("yup");
14
- const index = require("./index-Ujtj1Rcp.js");
15
- const Layout = require("./Layout-BMqtFafC.js");
13
+ const index = require("./index-mQar1hfK.js");
14
+ const Layout = require("./Layout-D7wwT4c7.js");
16
15
  const reactDndHtml5Backend = require("react-dnd-html5-backend");
17
16
  const styledComponents = require("styled-components");
18
17
  const reactDnd = require("react-dnd");
@@ -313,35 +312,23 @@ const Stages = ({ canDelete = true, canUpdate = true, isCreating }) => {
313
312
  left: "50%",
314
313
  position: "absolute",
315
314
  top: "0",
316
- width: 2,
317
- zIndex: 1
315
+ width: 2
318
316
  }
319
317
  ),
320
- /* @__PURE__ */ jsxRuntime.jsx(
321
- designSystem.Flex,
322
- {
323
- direction: "column",
324
- alignItems: "stretch",
325
- gap: 6,
326
- zIndex: 2,
327
- position: "relative",
328
- tag: "ol",
329
- children: stages.map((stage, index2) => {
330
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { tag: "li", children: /* @__PURE__ */ jsxRuntime.jsx(
331
- Stage,
332
- {
333
- index: index2,
334
- canDelete: stages.length > 1 && canDelete,
335
- canReorder: stages.length > 1,
336
- canUpdate,
337
- stagesCount: stages.length,
338
- defaultOpen: isCreating,
339
- ...stage
340
- }
341
- ) }, stage.__temp_key__);
342
- })
343
- }
344
- )
318
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, position: "relative", tag: "ol", children: stages.map((stage, index2) => {
319
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { tag: "li", children: /* @__PURE__ */ jsxRuntime.jsx(
320
+ Stage,
321
+ {
322
+ index: index2,
323
+ canDelete: stages.length > 1 && canDelete,
324
+ canReorder: stages.length > 1,
325
+ canUpdate,
326
+ stagesCount: stages.length,
327
+ defaultOpen: isCreating,
328
+ ...stage
329
+ }
330
+ ) }, stage.__temp_key__);
331
+ }) })
345
332
  ] }),
346
333
  canUpdate && /* @__PURE__ */ jsxRuntime.jsx(
347
334
  AddStage,
@@ -458,7 +445,7 @@ const Stage = ({
458
445
  addFieldRow("stages", { name, color, permissions });
459
446
  };
460
447
  const id = React__namespace.useId();
461
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { ref: composedRef, children: [
448
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { ref: composedRef, shadow: "tableShadow", children: [
462
449
  liveText && /* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { "aria-live": "assertive", children: liveText }),
463
450
  isDragging ? /* @__PURE__ */ jsxRuntime.jsx(
464
451
  designSystem.Box,
@@ -509,7 +496,7 @@ const Stage = ({
509
496
  {
510
497
  background: "transparent",
511
498
  hasRadius: true,
512
- borderWidth: 0,
499
+ variant: "ghost",
513
500
  "data-handler-id": handlerId,
514
501
  ref: dragRef,
515
502
  label: formatMessage({
@@ -523,7 +510,7 @@ const Stage = ({
523
510
  )
524
511
  ] }) : null })
525
512
  ] }),
526
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, padding: 6, children: [
513
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, padding: 6, children: [
527
514
  {
528
515
  disabled: !canUpdate,
529
516
  label: formatMessage({
@@ -561,7 +548,7 @@ const Stage = ({
561
548
  size: 6,
562
549
  type: "permissions"
563
550
  }
564
- ].map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: size, children: /* @__PURE__ */ jsxRuntime.jsx(InputRenderer, { ...field }) }, field.name)) }) })
551
+ ].map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: size, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsx(InputRenderer, { ...field }) }, field.name)) }) })
565
552
  ] })
566
553
  }
567
554
  )
@@ -666,20 +653,22 @@ const PermissionsField = ({ disabled, name, placeholder, required }) => {
666
653
  const { value = [], error, onChange } = strapiAdmin.useField(name);
667
654
  const allStages = strapiAdmin.useForm("PermissionsField", (state) => state.values.stages);
668
655
  const onFormValueChange = strapiAdmin.useForm("PermissionsField", (state) => state.onChange);
669
- const { data: roles = [], isLoading } = useGetAdminRolesQuery();
656
+ const rolesErrorCount = React__namespace.useRef(0);
657
+ const { data: roles = [], isLoading, error: getRolesError } = useGetAdminRolesQuery();
670
658
  const filteredRoles = roles?.filter((role) => role.code !== "strapi-super-admin") ?? [];
671
659
  React__namespace.useEffect(() => {
672
- if (!isLoading && roles.length === 0) {
660
+ if (!isLoading && getRolesError && "status" in getRolesError && getRolesError.status == 403 && rolesErrorCount.current === 0) {
661
+ rolesErrorCount.current = 1;
673
662
  toggleNotification({
674
663
  blockTransition: true,
675
664
  type: "danger",
676
665
  message: formatMessage({
677
666
  id: "review-workflows.stage.permissions.noPermissions.description",
678
- defaultMessage: "You don’t have the permission to see roles"
667
+ defaultMessage: "You don’t have the permission to see roles. Contact your administrator."
679
668
  })
680
669
  });
681
670
  }
682
- }, [formatMessage, isLoading, roles, toggleNotification]);
671
+ }, [formatMessage, isLoading, roles, toggleNotification, getRolesError]);
683
672
  if (!isLoading && filteredRoles.length === 0) {
684
673
  return /* @__PURE__ */ jsxRuntime.jsxs(
685
674
  designSystem.Field.Root,
@@ -713,45 +702,45 @@ const PermissionsField = ({ disabled, name, placeholder, required }) => {
713
702
  }
714
703
  );
715
704
  }
716
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
717
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "flex-end", gap: 3, children: [
718
- /* @__PURE__ */ jsxRuntime.jsx(PermissionWrapper, { grow: 1, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { error, name, required: true, children: [
719
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
720
- id: "Settings.review-workflows.stage.permissions.label",
721
- defaultMessage: "Roles that can change this stage"
722
- }) }),
723
- /* @__PURE__ */ jsxRuntime.jsx(
724
- designSystem.MultiSelect,
725
- {
726
- disabled,
727
- onChange: (values) => {
728
- const permissions = values.map((value2) => ({
729
- role: parseInt(value2, 10),
730
- action: "admin::review-workflows.stage.transition"
731
- }));
732
- onChange(name, permissions);
733
- },
734
- placeholder,
735
- value: value.map((permission) => `${permission.role}`),
736
- withTags: true,
737
- children: /* @__PURE__ */ jsxRuntime.jsx(
738
- designSystem.MultiSelectGroup,
739
- {
740
- label: formatMessage({
741
- id: "Settings.review-workflows.stage.permissions.allRoles.label",
742
- defaultMessage: "All roles"
743
- }),
744
- values: filteredRoles.map((r) => `${r.id}`),
745
- children: filteredRoles.map((role) => {
746
- return /* @__PURE__ */ jsxRuntime.jsx(NestedOption$1, { value: `${role.id}`, children: role.name }, role.id);
747
- })
748
- }
749
- )
750
- }
751
- ),
752
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
753
- ] }) }),
705
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "flex-end", gap: 3, children: [
706
+ /* @__PURE__ */ jsxRuntime.jsx(PermissionWrapper, { grow: 1, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { error, name, required: true, children: [
707
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
708
+ id: "Settings.review-workflows.stage.permissions.label",
709
+ defaultMessage: "Roles that can change this stage"
710
+ }) }),
754
711
  /* @__PURE__ */ jsxRuntime.jsx(
712
+ designSystem.MultiSelect,
713
+ {
714
+ disabled,
715
+ onChange: (values) => {
716
+ const permissions = values.map((value2) => ({
717
+ role: parseInt(value2, 10),
718
+ action: "admin::review-workflows.stage.transition"
719
+ }));
720
+ onChange(name, permissions);
721
+ },
722
+ placeholder,
723
+ value: value.map((permission) => `${permission.role}`),
724
+ withTags: true,
725
+ children: /* @__PURE__ */ jsxRuntime.jsx(
726
+ designSystem.MultiSelectGroup,
727
+ {
728
+ label: formatMessage({
729
+ id: "Settings.review-workflows.stage.permissions.allRoles.label",
730
+ defaultMessage: "All roles"
731
+ }),
732
+ values: filteredRoles.map((r) => `${r.id}`),
733
+ children: filteredRoles.map((role) => {
734
+ return /* @__PURE__ */ jsxRuntime.jsx(NestedOption$1, { value: `${role.id}`, children: role.name }, role.id);
735
+ })
736
+ }
737
+ )
738
+ }
739
+ ),
740
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
741
+ ] }) }),
742
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Dialog.Root, { open: isApplyAllConfirmationOpen, onOpenChange: setIsApplyAllConfirmationOpen, children: [
743
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
755
744
  designSystem.IconButton,
756
745
  {
757
746
  disabled,
@@ -760,42 +749,38 @@ const PermissionsField = ({ disabled, name, placeholder, required }) => {
760
749
  defaultMessage: "Apply to all stages"
761
750
  }),
762
751
  size: "L",
763
- variant: "secondary",
764
- onClick: () => setIsApplyAllConfirmationOpen(true),
765
752
  children: /* @__PURE__ */ jsxRuntime.jsx(icons.Duplicate, {})
766
753
  }
754
+ ) }),
755
+ /* @__PURE__ */ jsxRuntime.jsx(
756
+ strapiAdmin.ConfirmDialog,
757
+ {
758
+ onConfirm: () => {
759
+ onFormValueChange(
760
+ "stages",
761
+ allStages.map((stage) => ({
762
+ ...stage,
763
+ permissions: value
764
+ }))
765
+ );
766
+ setIsApplyAllConfirmationOpen(false);
767
+ toggleNotification({
768
+ type: "success",
769
+ message: formatMessage({
770
+ id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy.success",
771
+ defaultMessage: "Applied roles to all other stages of the workflow"
772
+ })
773
+ });
774
+ },
775
+ variant: "default",
776
+ children: formatMessage({
777
+ id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy",
778
+ defaultMessage: "Roles that can change that stage will be applied to all the other stages."
779
+ })
780
+ }
767
781
  )
768
- ] }),
769
- /* @__PURE__ */ jsxRuntime.jsx(
770
- strapiAdmin.ConfirmDialog,
771
- {
772
- isOpen: isApplyAllConfirmationOpen,
773
- onClose: () => setIsApplyAllConfirmationOpen(false),
774
- onConfirm: () => {
775
- onFormValueChange(
776
- "stages",
777
- allStages.map((stage) => ({
778
- ...stage,
779
- permissions: value
780
- }))
781
- );
782
- setIsApplyAllConfirmationOpen(false);
783
- toggleNotification({
784
- type: "success",
785
- message: formatMessage({
786
- id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy.success",
787
- defaultMessage: "Applied roles to all other stages of the workflow"
788
- })
789
- });
790
- },
791
- variant: "default",
792
- children: formatMessage({
793
- id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy",
794
- defaultMessage: "Roles that can change that stage will be applied to all the other stages."
795
- })
796
- }
797
- )
798
- ] });
782
+ ] })
783
+ ] }) });
799
784
  };
800
785
  const NestedOption$1 = styledComponents.styled(designSystem.MultiSelectOption)`
801
786
  padding-left: ${({ theme }) => theme.spaces[7]};
@@ -807,8 +792,8 @@ const PermissionWrapper = styledComponents.styled(designSystem.Flex)`
807
792
  `;
808
793
  const WorkflowAttributes = ({ canUpdate = true }) => {
809
794
  const { formatMessage } = reactIntl.useIntl();
810
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid, { background: "neutral0", hasRadius: true, gap: 4, padding: 6, shadow: "tableShadow", children: [
811
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsx(
795
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { background: "neutral0", hasRadius: true, gap: 4, padding: 6, shadow: "tableShadow", children: [
796
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsx(
812
797
  strapiAdmin.InputRenderer,
813
798
  {
814
799
  disabled: !canUpdate,
@@ -821,7 +806,7 @@ const WorkflowAttributes = ({ canUpdate = true }) => {
821
806
  type: "string"
822
807
  }
823
808
  ) }),
824
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsx(ContentTypesSelector, { disabled: !canUpdate }) })
809
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsx(ContentTypesSelector, { disabled: !canUpdate }) })
825
810
  ] });
826
811
  };
827
812
  const ContentTypesSelector = ({ disabled }) => {
@@ -930,10 +915,10 @@ const WORKFLOW_SCHEMA = yup__namespace.object({
930
915
  name: yup__namespace.string().max(255, {
931
916
  id: "review-workflows.validation.name.max-length",
932
917
  defaultMessage: "Name can not be longer than 255 characters"
933
- }).required(),
918
+ }).required().nullable(),
934
919
  stages: yup__namespace.array().of(
935
920
  yup__namespace.object().shape({
936
- name: yup__namespace.string().required({
921
+ name: yup__namespace.string().nullable().required({
937
922
  id: "review-workflows.validation.stage.name",
938
923
  defaultMessage: "Name is required"
939
924
  }).max(255, {
@@ -950,7 +935,7 @@ const WORKFLOW_SCHEMA = yup__namespace.object({
950
935
  return stages.filter((stage) => stage.name === stageName).length === 1;
951
936
  }
952
937
  ),
953
- color: yup__namespace.string().required({
938
+ color: yup__namespace.string().nullable().required({
954
939
  id: "review-workflows.validation.stage.color",
955
940
  defaultMessage: "Color is required"
956
941
  }).matches(/^#(?:[0-9a-fA-F]{3}){1,2}$/i),
@@ -976,7 +961,6 @@ const EditPage = () => {
976
961
  const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
977
962
  const navigate = reactRouterDom.useNavigate();
978
963
  const { toggleNotification } = strapiAdmin.useNotification();
979
- const dispatch = reactRedux.useDispatch();
980
964
  const {
981
965
  isLoading: isLoadingWorkflow,
982
966
  meta,
@@ -984,7 +968,7 @@ const EditPage = () => {
984
968
  error,
985
969
  update,
986
970
  create
987
- } = Layout.useReviewWorkflows({ id: isCreatingWorkflow ? void 0 : id });
971
+ } = Layout.useReviewWorkflows();
988
972
  const permissions = index.useTypedSelector(
989
973
  (state) => state.admin_app.permissions["settings"]?.["review-workflows"]
990
974
  );
@@ -1027,36 +1011,13 @@ const EditPage = () => {
1027
1011
  });
1028
1012
  if ("error" in res && index.isBaseQueryError(res.error) && res.error.name === "ValidationError") {
1029
1013
  helpers.setErrors(formatValidationErrors(res.error));
1030
- } else if ("data" in res) {
1031
- for (const uid of res.data.contentTypes) {
1032
- dispatch({
1033
- type: "contentManagerApi/invalidateTags",
1034
- payload: [
1035
- {
1036
- type: "ContentTypesConfiguration",
1037
- id: uid
1038
- }
1039
- ]
1040
- });
1041
- }
1042
1014
  }
1043
1015
  } else {
1044
1016
  const res = await create(data);
1045
1017
  if ("error" in res && index.isBaseQueryError(res.error) && res.error.name === "ValidationError") {
1046
1018
  helpers.setErrors(formatValidationErrors(res.error));
1047
1019
  } else if ("data" in res) {
1048
- for (const uid of res.data.contentTypes) {
1049
- dispatch({
1050
- type: "contentManagerApi/invalidateTags",
1051
- payload: [
1052
- {
1053
- type: "ContentTypesConfiguration",
1054
- id: uid
1055
- }
1056
- ]
1057
- });
1058
- }
1059
- navigate(`../${res.data.id}`);
1020
+ navigate(`../${res.data.id}`, { replace: true });
1060
1021
  }
1061
1022
  }
1062
1023
  } catch (error2) {
@@ -1155,7 +1116,6 @@ const EditPage = () => {
1155
1116
  {
1156
1117
  startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Check, {}),
1157
1118
  type: "submit",
1158
- size: "M",
1159
1119
  disabled: !modified || isSubmitting || values.stages.length === 0,
1160
1120
  loading: !Boolean(Object.keys(savePrompts).length > 0) && isSubmitting,
1161
1121
  children: formatMessage({
@@ -1178,23 +1138,22 @@ const EditPage = () => {
1178
1138
  }
1179
1139
  ),
1180
1140
  /* @__PURE__ */ jsxRuntime.jsx(Layout.Root, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "stretch", direction: "column", gap: 7, children: [
1181
- /* @__PURE__ */ jsxRuntime.jsx(WorkflowAttributes, { canUpdate }),
1141
+ /* @__PURE__ */ jsxRuntime.jsx(WorkflowAttributes, { canUpdate: canUpdate || canCreate }),
1182
1142
  /* @__PURE__ */ jsxRuntime.jsx(
1183
1143
  Stages,
1184
1144
  {
1185
1145
  canDelete,
1186
- canUpdate,
1146
+ canUpdate: canUpdate || canCreate,
1187
1147
  isCreating: isCreatingWorkflow
1188
1148
  }
1189
1149
  )
1190
1150
  ] }) }),
1191
1151
  /* @__PURE__ */ jsxRuntime.jsx(
1192
- strapiAdmin.ConfirmDialog,
1152
+ designSystem.Dialog.Root,
1193
1153
  {
1194
- isOpen: Object.keys(savePrompts).length > 0,
1195
- onClose: handleConfirmClose,
1196
- onConfirm: handleConfirmDeleteDialog(values, { setErrors }),
1197
- children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 5, children: [
1154
+ open: Object.keys(savePrompts).length > 0,
1155
+ onOpenChange: handleConfirmClose,
1156
+ children: /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.ConfirmDialog, { onConfirm: handleConfirmDeleteDialog(values, { setErrors }), children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 5, children: [
1198
1157
  savePrompts.hasDeletedServerStages && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textAlign: "center", variant: "omega", children: formatMessage({
1199
1158
  id: "review-workflows.page.delete.confirm.stages.body",
1200
1159
  defaultMessage: "All entries assigned to deleted stages will be moved to the previous stage."
@@ -1206,7 +1165,7 @@ const EditPage = () => {
1206
1165
  },
1207
1166
  {
1208
1167
  count: contentTypesFromOtherWorkflows?.filter(
1209
- (contentType) => currentWorkflow?.contentTypes?.includes(contentType)
1168
+ (contentType) => values.contentTypes.includes(contentType)
1210
1169
  ).length ?? 0
1211
1170
  }
1212
1171
  ) }),
@@ -1214,7 +1173,7 @@ const EditPage = () => {
1214
1173
  id: "review-workflows.page.delete.confirm.confirm",
1215
1174
  defaultMessage: "Are you sure you want to save?"
1216
1175
  }) })
1217
- ] })
1176
+ ] }) })
1218
1177
  }
1219
1178
  )
1220
1179
  ] })
@@ -1223,8 +1182,8 @@ const EditPage = () => {
1223
1182
  /* @__PURE__ */ jsxRuntime.jsxs(
1224
1183
  index.LimitsModal.Root,
1225
1184
  {
1226
- isOpen: showLimitModal === "workflow",
1227
- onClose: () => setShowLimitModal(null),
1185
+ open: showLimitModal === "workflow",
1186
+ onOpenChange: () => setShowLimitModal(null),
1228
1187
  children: [
1229
1188
  /* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Title, { children: formatMessage({
1230
1189
  id: "review-workflows.edit.page.workflows.limit.title",
@@ -1237,16 +1196,23 @@ const EditPage = () => {
1237
1196
  ]
1238
1197
  }
1239
1198
  ),
1240
- /* @__PURE__ */ jsxRuntime.jsxs(index.LimitsModal.Root, { isOpen: showLimitModal === "stage", onClose: () => setShowLimitModal(null), children: [
1241
- /* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Title, { children: formatMessage({
1242
- id: "review-workflows.edit.page.stages.limit.title",
1243
- defaultMessage: "You have reached the limit of stages for this workflow in your plan"
1244
- }) }),
1245
- /* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Body, { children: formatMessage({
1246
- id: "review-workflows.edit.page.stages.limit.body",
1247
- defaultMessage: "Try deleting some stages or contact Sales to enable more stages."
1248
- }) })
1249
- ] })
1199
+ /* @__PURE__ */ jsxRuntime.jsxs(
1200
+ index.LimitsModal.Root,
1201
+ {
1202
+ open: showLimitModal === "stage",
1203
+ onOpenChange: () => setShowLimitModal(null),
1204
+ children: [
1205
+ /* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Title, { children: formatMessage({
1206
+ id: "review-workflows.edit.page.stages.limit.title",
1207
+ defaultMessage: "You have reached the limit of stages for this workflow in your plan"
1208
+ }) }),
1209
+ /* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Body, { children: formatMessage({
1210
+ id: "review-workflows.edit.page.stages.limit.body",
1211
+ defaultMessage: "Try deleting some stages or contact Sales to enable more stages."
1212
+ }) })
1213
+ ]
1214
+ }
1215
+ )
1250
1216
  ] });
1251
1217
  };
1252
1218
  const addTmpKeysToStages = (data) => {
@@ -1268,4 +1234,4 @@ const ProtectedEditPage = () => {
1268
1234
  return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Protect, { permissions, children: /* @__PURE__ */ jsxRuntime.jsx(EditPage, {}) });
1269
1235
  };
1270
1236
  exports.ProtectedEditPage = ProtectedEditPage;
1271
- //# sourceMappingURL=_id-B853wt9z.js.map
1237
+ //# sourceMappingURL=_id-DgUOk637.js.map