@strapi/admin 4.12.0-beta.4 → 4.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/admin/src/content-manager/pages/ListView/components/BulkActionButtons/ConfirmBulkActionDialog/index.js +2 -0
  2. package/admin/src/content-manager/pages/ListView/components/BulkActionButtons/SelectedEntriesModal/index.js +83 -36
  3. package/admin/src/pages/AuthPage/components/Register/index.js +0 -4
  4. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/Events/index.js +1 -1
  5. package/admin/src/translations/en.json +1 -0
  6. package/build/7065.ec811562.chunk.js +114 -0
  7. package/build/{9806.91360bb6.chunk.js → 9806.aa25371d.chunk.js} +10 -10
  8. package/build/{Admin-authenticatedApp.24998de8.chunk.js → Admin-authenticatedApp.376233ff.chunk.js} +1 -1
  9. package/build/{admin-app.c2e4e128.chunk.js → admin-app.1c3f7fd6.chunk.js} +8 -8
  10. package/build/{content-manager.8772445b.chunk.js → content-manager.e9205db1.chunk.js} +95 -95
  11. package/build/{en-json.4c733bd1.chunk.js → en-json.e34140fc.chunk.js} +1 -1
  12. package/build/index.html +1 -1
  13. package/build/{main.ef5fb1a8.js → main.1e3b0985.js} +281 -281
  14. package/build/review-workflows-settings-create-view.05758184.chunk.js +1 -0
  15. package/build/review-workflows-settings-edit-view.c33f7c58.chunk.js +1 -0
  16. package/build/{review-workflows-settings-list-view.3ee9190d.chunk.js → review-workflows-settings-list-view.f055e1be.chunk.js} +8 -8
  17. package/build/{runtime~main.c99f4c36.js → runtime~main.58ec8df6.js} +2 -2
  18. package/build/sso-settings-page.7c9b2fd9.chunk.js +1 -0
  19. package/build/{webhook-edit-page.a91f27a1.chunk.js → webhook-edit-page.6cb479ff.chunk.js} +2 -2
  20. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/WorkflowAttributes/WorkflowAttributes.js +85 -9
  21. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/CreateView/CreateView.js +61 -4
  22. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js +71 -21
  23. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/ListView.js +1 -2
  24. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/reducer/index.js +1 -1
  25. package/ee/admin/pages/SettingsPage/pages/SingleSignOn/index.js +2 -8
  26. package/ee/server/bootstrap.js +2 -0
  27. package/ee/server/services/auth.js +1 -1
  28. package/ee/server/services/index.js +1 -0
  29. package/ee/server/services/review-workflows/metrics/index.js +51 -0
  30. package/ee/server/services/review-workflows/metrics/weekly-metrics.js +76 -0
  31. package/ee/server/services/review-workflows/workflows/index.js +5 -0
  32. package/ee/server/validation/authentication.js +6 -1
  33. package/package.json +9 -9
  34. package/build/7065.99ca8ab1.chunk.js +0 -112
  35. package/build/review-workflows-settings-create-view.d4b5dbb8.chunk.js +0 -1
  36. package/build/review-workflows-settings-edit-view.77299c63.chunk.js +0 -1
  37. package/build/sso-settings-page.3a1ed8c9.chunk.js +0 -1
  38. package/ee/server/services/review-workflows/metrics.js +0 -24
@@ -104,6 +104,8 @@ const ConfirmDialogPublishAll = ({ isOpen, onToggleDialog, isConfirmButtonLoadin
104
104
  return data;
105
105
  },
106
106
  {
107
+ // The API is called everytime you select/deselect an entry, this check avoids us sending a query with bad data
108
+ enabled: selectedEntries.length > 0,
107
109
  onError(error) {
108
110
  toggleNotification({ type: 'warning', message: formatAPIError(error) });
109
111
  },
@@ -46,11 +46,11 @@ const TypographyMaxWidth = styled(Typography)`
46
46
  * EntryValidationText
47
47
  * -----------------------------------------------------------------------------------------------*/
48
48
 
49
- const EntryValidationText = ({ errors, isPublished }) => {
49
+ const EntryValidationText = ({ validationErrors, isPublished }) => {
50
50
  const { formatMessage } = useIntl();
51
51
 
52
- if (errors) {
53
- const errorMessages = Object.entries(errors)
52
+ if (validationErrors) {
53
+ const validationErrorsMessages = Object.entries(validationErrors)
54
54
  .map(([key, value]) =>
55
55
  formatMessage(
56
56
  { id: `${value.id}.withField`, defaultMessage: value.defaultMessage },
@@ -62,9 +62,9 @@ const EntryValidationText = ({ errors, isPublished }) => {
62
62
  return (
63
63
  <Flex gap={2}>
64
64
  <Icon color="danger600" as={CrossCircle} />
65
- <Tooltip description={errorMessages}>
65
+ <Tooltip description={validationErrorsMessages}>
66
66
  <TypographyMaxWidth textColor="danger600" variant="omega" fontWeight="semiBold" ellipsis>
67
- {errorMessages}
67
+ {validationErrorsMessages}
68
68
  </TypographyMaxWidth>
69
69
  </Tooltip>
70
70
  </Flex>
@@ -77,8 +77,8 @@ const EntryValidationText = ({ errors, isPublished }) => {
77
77
  <Icon color="success600" as={CheckCircle} />
78
78
  <Typography textColor="success600" fontWeight="bold">
79
79
  {formatMessage({
80
- id: 'app.utils.published',
81
- defaultMessage: 'Published',
80
+ id: 'content-manager.bulk-publish.already-published',
81
+ defaultMessage: 'Already Published',
82
82
  })}
83
83
  </Typography>
84
84
  </Flex>
@@ -99,12 +99,12 @@ const EntryValidationText = ({ errors, isPublished }) => {
99
99
  };
100
100
 
101
101
  EntryValidationText.defaultProps = {
102
- errors: null,
102
+ validationErrors: undefined,
103
103
  isPublished: false,
104
104
  };
105
105
 
106
106
  EntryValidationText.propTypes = {
107
- errors: PropTypes.shape({
107
+ validationErrors: PropTypes.shape({
108
108
  [PropTypes.string]: PropTypes.shape({
109
109
  id: PropTypes.string,
110
110
  defaultMessage: PropTypes.string,
@@ -117,7 +117,12 @@ EntryValidationText.propTypes = {
117
117
  * SelectedEntriesTableContent
118
118
  * -----------------------------------------------------------------------------------------------*/
119
119
 
120
- const SelectedEntriesTableContent = ({ isPublishing, rowsToDisplay, entriesToPublish }) => {
120
+ const SelectedEntriesTableContent = ({
121
+ isPublishing,
122
+ rowsToDisplay,
123
+ entriesToPublish,
124
+ validationErrors,
125
+ }) => {
121
126
  const {
122
127
  location: { pathname },
123
128
  } = useHistory();
@@ -149,19 +154,19 @@ const SelectedEntriesTableContent = ({ isPublishing, rowsToDisplay, entriesToPub
149
154
  </Table.Head>
150
155
  <Table.LoadingBody />
151
156
  <Table.Body>
152
- {rowsToDisplay.map(({ entity, errors }, index) => (
153
- <Tr key={entity.id}>
154
- <Body.CheckboxDataCell rowId={entity.id} index={index} />
157
+ {rowsToDisplay.map((row, index) => (
158
+ <Tr key={row.id}>
159
+ <Body.CheckboxDataCell rowId={row.id} index={index} />
155
160
  <Td>
156
- <Typography>{entity.id}</Typography>
161
+ <Typography>{row.id}</Typography>
157
162
  </Td>
158
163
  {shouldDisplayMainField && (
159
164
  <Td>
160
- <Typography>{entity[mainField]}</Typography>
165
+ <Typography>{row[mainField]}</Typography>
161
166
  </Td>
162
167
  )}
163
168
  <Td>
164
- {isPublishing && entriesToPublish.includes(entity.id) ? (
169
+ {isPublishing && entriesToPublish.includes(row.id) ? (
165
170
  <Flex gap={2}>
166
171
  <Typography>
167
172
  {formatMessage({
@@ -172,14 +177,17 @@ const SelectedEntriesTableContent = ({ isPublishing, rowsToDisplay, entriesToPub
172
177
  <Loader small />
173
178
  </Flex>
174
179
  ) : (
175
- <EntryValidationText errors={errors} isPublished={entity.publishedAt !== null} />
180
+ <EntryValidationText
181
+ validationErrors={validationErrors[row.id]}
182
+ isPublished={row.publishedAt !== null}
183
+ />
176
184
  )}
177
185
  </Td>
178
186
  <Td>
179
187
  <IconButton
180
188
  forwardedAs={Link}
181
189
  to={{
182
- pathname: `${pathname}/${entity.id}`,
190
+ pathname: `${pathname}/${row.id}`,
183
191
  state: { from: pathname },
184
192
  }}
185
193
  label={formatMessage(
@@ -188,6 +196,7 @@ const SelectedEntriesTableContent = ({ isPublishing, rowsToDisplay, entriesToPub
188
196
  )}
189
197
  noBorder
190
198
  target="_blank"
199
+ marginLeft="auto"
191
200
  >
192
201
  <Pencil />
193
202
  </IconButton>
@@ -203,12 +212,19 @@ SelectedEntriesTableContent.defaultProps = {
203
212
  isPublishing: false,
204
213
  rowsToDisplay: [],
205
214
  entriesToPublish: [],
215
+ validationErrors: {},
206
216
  };
207
217
 
208
218
  SelectedEntriesTableContent.propTypes = {
209
219
  isPublishing: PropTypes.bool,
210
220
  rowsToDisplay: PropTypes.arrayOf(PropTypes.object),
211
221
  entriesToPublish: PropTypes.arrayOf(PropTypes.number),
222
+ validationErrors: PropTypes.shape({
223
+ [PropTypes.string]: PropTypes.shape({
224
+ id: PropTypes.string,
225
+ defaultMessage: PropTypes.string,
226
+ }),
227
+ }),
212
228
  };
213
229
 
214
230
  /* -------------------------------------------------------------------------------------------------
@@ -221,7 +237,13 @@ const BoldChunk = (chunks) => <Typography fontWeight="bold">{chunks}</Typography
221
237
  * SelectedEntriesModalContent
222
238
  * -----------------------------------------------------------------------------------------------*/
223
239
 
224
- const SelectedEntriesModalContent = ({ toggleModal, refetchModalData, setEntriesToFetch }) => {
240
+ const SelectedEntriesModalContent = ({
241
+ toggleModal,
242
+ refetchModalData,
243
+ setEntriesToFetch,
244
+ setSelectedListViewEntries,
245
+ validationErrors,
246
+ }) => {
225
247
  const { formatMessage } = useIntl();
226
248
  const { selectedEntries, rows, onSelectRow, isLoading, isFetching } = useTableContext();
227
249
  const [isDialogOpen, setIsDialogOpen] = React.useState(false);
@@ -229,15 +251,15 @@ const SelectedEntriesModalContent = ({ toggleModal, refetchModalData, setEntries
229
251
  const [publishedCount, setPublishedCount] = React.useState(0);
230
252
 
231
253
  const entriesToPublish = rows
232
- .filter(({ entity, errors }) => selectedEntries.includes(entity.id) && !errors)
233
- .map(({ entity }) => entity.id);
254
+ .filter(({ id }) => selectedEntries.includes(id) && !validationErrors[id])
255
+ .map(({ id }) => id);
234
256
 
235
257
  const { post } = useFetchClient();
236
258
  const toggleNotification = useNotification();
237
259
  const { contentType } = useSelector(listViewDomain());
238
260
 
239
261
  const selectedEntriesWithErrorsCount = rowsToDisplay.filter(
240
- ({ entity, errors }) => selectedEntries.includes(entity.id) && errors
262
+ ({ id }) => selectedEntries.includes(id) && validationErrors[id]
241
263
  ).length;
242
264
  const selectedEntriesWithNoErrorsCount = selectedEntries.length - selectedEntriesWithErrorsCount;
243
265
 
@@ -247,18 +269,21 @@ const SelectedEntriesModalContent = ({ toggleModal, refetchModalData, setEntries
247
269
  {
248
270
  onSuccess() {
249
271
  const update = rowsToDisplay.filter((row) => {
250
- if (entriesToPublish.includes(row.entity.id)) {
272
+ if (entriesToPublish.includes(row.id)) {
251
273
  // Deselect the entries that have been published from the modal table
252
- onSelectRow({ name: row.entity.id, value: false });
274
+ onSelectRow({ name: row.id, value: false });
253
275
  }
254
276
 
255
277
  // Remove the entries that have been published from the table
256
- return !entriesToPublish.includes(row.entity.id);
278
+ return !entriesToPublish.includes(row.id);
257
279
  });
258
280
 
259
281
  setRowsToDisplay(update);
282
+ const publishedIds = update.map(({ id }) => id);
260
283
  // Set the parent's entries to fetch when clicking refresh
261
- setEntriesToFetch(update.map(({ entity }) => entity.id));
284
+ setEntriesToFetch(publishedIds);
285
+ // Deselect the entries that were published in the list view
286
+ setSelectedListViewEntries(publishedIds);
262
287
 
263
288
  if (update.length === 0) {
264
289
  toggleModal();
@@ -341,6 +366,7 @@ const SelectedEntriesModalContent = ({ toggleModal, refetchModalData, setEntries
341
366
  isPublishing={bulkPublishMutation.isLoading}
342
367
  rowsToDisplay={rowsToDisplay}
343
368
  entriesToPublish={entriesToPublish}
369
+ validationErrors={validationErrors}
344
370
  />
345
371
  </Box>
346
372
  </ModalBody>
@@ -382,10 +408,21 @@ const SelectedEntriesModalContent = ({ toggleModal, refetchModalData, setEntries
382
408
  );
383
409
  };
384
410
 
411
+ SelectedEntriesModalContent.defaultProps = {
412
+ validationErrors: {},
413
+ };
414
+
385
415
  SelectedEntriesModalContent.propTypes = {
386
416
  toggleModal: PropTypes.func.isRequired,
387
417
  refetchModalData: PropTypes.func.isRequired,
388
418
  setEntriesToFetch: PropTypes.func.isRequired,
419
+ setSelectedListViewEntries: PropTypes.func.isRequired,
420
+ validationErrors: PropTypes.shape({
421
+ [PropTypes.string]: PropTypes.shape({
422
+ id: PropTypes.string,
423
+ defaultMessage: PropTypes.string,
424
+ }),
425
+ }),
389
426
  };
390
427
 
391
428
  /* -------------------------------------------------------------------------------------------------
@@ -393,18 +430,23 @@ SelectedEntriesModalContent.propTypes = {
393
430
  * -----------------------------------------------------------------------------------------------*/
394
431
 
395
432
  const SelectedEntriesModal = ({ onToggle }) => {
396
- const { selectedEntries: selectedListViewEntries } = useTableContext();
433
+ const {
434
+ selectedEntries: selectedListViewEntries,
435
+ setSelectedEntries: setSelectedListViewEntries,
436
+ } = useTableContext();
397
437
  const { contentType, components } = useSelector(listViewDomain());
398
438
  // The child table will update this value based on the entries that were published
399
439
  const [entriesToFetch, setEntriesToFetch] = React.useState(selectedListViewEntries);
400
-
401
440
  // We want to keep the selected entries order same as the list view
402
441
  const [
403
442
  {
404
443
  query: { sort },
405
444
  },
406
445
  ] = useQueryParams();
446
+
407
447
  const queryParams = {
448
+ page: 1,
449
+ pageSize: entriesToFetch.length,
408
450
  sort,
409
451
  filters: {
410
452
  id: {
@@ -424,38 +466,43 @@ const SelectedEntriesModal = ({ onToggle }) => {
424
466
 
425
467
  if (data.results) {
426
468
  const schema = createYupSchema(contentType, { components }, { isDraft: false });
469
+ const validationErrors = {};
427
470
  const rows = data.results.map((entry) => {
428
471
  try {
429
472
  schema.validateSync(entry, { abortEarly: false });
430
473
 
431
- return { entity: entry };
474
+ return entry;
432
475
  } catch (e) {
433
- return {
434
- entity: entry,
435
- errors: getYupInnerErrors(e),
436
- };
476
+ validationErrors[entry.id] = getYupInnerErrors(e);
477
+
478
+ return entry;
437
479
  }
438
480
  });
439
481
 
440
- return rows;
482
+ return { rows, validationErrors };
441
483
  }
442
484
 
443
- return [];
485
+ return {
486
+ rows: [],
487
+ validationErrors: {},
488
+ };
444
489
  }
445
490
  );
446
491
 
447
492
  return (
448
493
  <Table.Root
449
- rows={data}
494
+ rows={data?.rows}
450
495
  defaultSelectedEntries={selectedListViewEntries}
451
496
  colCount={4}
452
497
  isLoading={isLoading}
453
498
  isFetching={isFetching}
454
499
  >
455
500
  <SelectedEntriesModalContent
501
+ setSelectedListViewEntries={setSelectedListViewEntries}
456
502
  setEntriesToFetch={setEntriesToFetch}
457
503
  toggleModal={onToggle}
458
504
  refetchModalData={refetch}
505
+ validationErrors={data?.validationErrors}
459
506
  />
460
507
  </Table.Root>
461
508
  );
@@ -98,10 +98,6 @@ const Register = ({ authType, fieldsToDisable, noSignin, onSubmit, schema }) =>
98
98
 
99
99
  if (!['password', 'confirmPassword'].includes(key) && typeof value === 'string') {
100
100
  normalizedvalue = normalizedvalue.trim();
101
-
102
- if (key === 'lastname') {
103
- normalizedvalue = normalizedvalue || null;
104
- }
105
101
  }
106
102
 
107
103
  acc[key] = normalizedvalue;
@@ -308,7 +308,7 @@ const EventRow = ({ disabledEvents, name, events, inputValue, handleSelect, hand
308
308
  </Td>
309
309
  );
310
310
  })}
311
- {events.length < targetColumns && <Td colSpan={`${targetColumns - events.length}`} />}
311
+ {events.length < targetColumns && <Td colSpan={targetColumns - events.length} />}
312
312
  </Tr>
313
313
  );
314
314
  };
@@ -678,6 +678,7 @@
678
678
  "content-manager.components.SettingsViewWrapper.pluginHeader.description.edit-settings": "Customize how the edit view will look like.",
679
679
  "content-manager.components.SettingsViewWrapper.pluginHeader.description.list-settings": "Define the settings of the list view.",
680
680
  "content-manager.components.SettingsViewWrapper.pluginHeader.title": "Configure the view — {name}",
681
+ "content-manager.bulk-publish.already-published": "Already Published",
681
682
  "content-manager.components.TableDelete.delete": "Delete all",
682
683
  "content-manager.components.TableDelete.deleteSelected": "Delete selected",
683
684
  "content-manager.components.TableDelete.label": "{number, plural, one {# entry} other {# entries}} selected",
@@ -0,0 +1,114 @@
1
+ (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[7065],{61234:function(w,m,e){"use strict";e.d(m,{v:function(){return a}});var t=e(32735),r=e(15062);function a(d,c){const o=(0,r.oR)();(0,t.useEffect)(()=>{o.injectReducer(d,c)},[o,d,c])}},50337:function(w,m,e){"use strict";e.d(m,{pl:function(){return s},aY:function(){return L},q5:function(){return l.q}});var t=e(32735),r=e(19565),a=e(86209),d=e(97889);const c={data:[],isLoading:!0};var y=(M,A)=>(0,d.ZP)(M,g=>{switch(A.type){case"GET_DATA_SUCCEEDED":{g.data=A.data,g.isLoading=!1;break}case"GET_DATA_ERROR":{g.isLoading=!1;break}default:return g}}),s=({ssoEnabled:M})=>{const[A,g]=(0,t.useReducer)(y,c),T=(0,r.lm)(),{get:f}=(0,r.kY)();return(0,t.useEffect)(()=>{(async()=>{try{if(!M){g({type:"GET_DATA_SUCCEEDED",data:[]});return}const{data:R}=await f((0,a.IF)("providers"));g({type:"GET_DATA_SUCCEEDED",data:R})}catch(R){console.error(R),g({type:"GET_DATA_ERROR"}),T({type:"warning",message:{id:"notification.error"}})}})()},[f,M,T]),A},n=e(36866),p=e.n(n),h=e(67879),i=e(53038),l=e(53104);const v="strapi-notification-seat-limit",x="https://cloud.strapi.io/profile/billing",O="https://strapi.io/billing/request-seats";var L=()=>{const{formatMessage:M}=(0,h.Z)();let{license:A,isError:g,isLoading:T}=(0,l.q)();const f=(0,r.lm)(),{pathname:D}=(0,i.TH)(),{enforcementUserCount:R,permittedSeats:W,licenseLimitStatus:I,isHostedOnStrapiCloud:U}=A;(0,t.useEffect)(()=>{if(g||T)return;const $=!p()(W)&&!window.sessionStorage.getItem(`${v}-${D}`)&&(I==="AT_LIMIT"||I==="OVER_LIMIT");let B;I==="OVER_LIMIT"?B="warning":I==="AT_LIMIT"&&(B="softWarning"),$&&f({type:B,message:M({id:"notification.ee.warning.over-.message",defaultMessage:"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app."},{licenseLimitStatus:I}),title:M({id:"notification.ee.warning.at-seat-limit.title",defaultMessage:"{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})"},{licenseLimitStatus:I,enforcementUserCount:R,permittedSeats:W}),link:{url:U?x:O,label:M({id:"notification.ee.warning.seat-limit.link",defaultMessage:"{isHostedOnStrapiCloud, select, true {ADD SEATS} other {CONTACT SALES}}"},{isHostedOnStrapiCloud:U})},blockTransition:!0,onClose(){window.sessionStorage.setItem(`${v}-${D}`,!0)}})},[f,A,D,M,T,W,I,R,U,g])}},53104:function(w,m,e){"use strict";e.d(m,{q:function(){return d}});var t=e(32735),r=e(19565),a=e(20108);function d({enabled:c}={enabled:!0}){const{get:o}=(0,r.kY)(),{data:y,isError:u,isLoading:s}=(0,a.useQuery)(["ee","license-limit-info"],async()=>{const{data:{data:h}}=await o("/admin/license-limit-information");return h},{enabled:c}),n=y??{},p=t.useCallback(h=>(n?.features??[]).find(l=>l.name===h)?.options??{},[n?.features]);return{license:n,getFeature:p,isError:u,isLoading:s}}},77061:function(w,m,e){"use strict";e.d(m,{CI:function(){return d},FP:function(){return o},Js:function(){return u},_V:function(){return a},fC:function(){return r},rI:function(){return y},xn:function(){return c}});var t=e(2121);function r({status:s,data:n}){return{type:t.qZ,payload:{status:s,workflow:n}}}function a(s){return{type:t.x4,payload:{stageId:s}}}function d(s={}){return{type:t.Ot,payload:s}}function c(s,n){return{type:t.Nj,payload:{stageId:s,...n}}}function o(s,n){return{type:t.$k,payload:{newIndex:n,oldIndex:s}}}function y(s){return{type:t.VS,payload:s}}function u(){return{type:t.gu}}},27187:function(w,m,e){"use strict";e.d(m,{eJ:function(){return g},lx:function(){return M},h4:function(){return T},fC:function(){return A}});var t=e(32735),r=e(96709),a=e(27649),d=e(17e3),c=e(82055),o=e(19565),y=e(29439),u=e(67879),s=e(17379),n=e(2121),p=e(87933),h=e(49372),i=e(16899),l=e(60216),v=e.n(l),x=e(8471);const O=(0,x.ZP)(p.k)`
2
+ svg path {
3
+ fill: ${({theme:f})=>f.colors.neutral600};
4
+ }
5
+ `;function P({name:f}){return t.createElement(p.k,{background:"primary100",borderStyle:"dashed",borderColor:"primary600",borderWidth:"1px",gap:3,hasRadius:!0,padding:3,shadow:"tableShadow",width:(0,o.Q1)(300)},t.createElement(O,{alignItems:"center",background:"neutral200",borderRadius:"50%",height:6,justifyContent:"center",width:6},t.createElement(i.Z,{width:`${8/16}rem`})),t.createElement(h.Z,{fontWeight:"bold"},f))}P.propTypes={name:v().string.isRequired};function L({type:f,item:D}){switch(f){case n.uL.STAGE:return t.createElement(P,{...D});default:return null}}function M(){return t.createElement(s.r,{renderItem:L})}function A({children:f}){return t.createElement(r.A,null,t.createElement(a.o,{tabIndex:-1},t.createElement(d.D,null,f)))}function g({href:f}){const{formatMessage:D}=(0,u.Z)();return t.createElement(o.rU,{startIcon:t.createElement(y.Z,null),to:f},D({id:"global.back",defaultMessage:"Back"}))}function T({title:f,subtitle:D,navigationAction:R,primaryAction:W}){return t.createElement(t.Fragment,null,t.createElement(o.SL,{name:f}),t.createElement(c.T,{navigationAction:R,primaryAction:W,title:f,subtitle:D}))}},90562:function(w,m,e){"use strict";e.d(m,{uT:function(){return L},fC:function(){return g},Dx:function(){return P}});var t=e(32735),r=e(49372),a=e(87933),d=e(85025),c=e(31600),o=e(72850),y=e(50563),u=e(95489),s=e(35331),n=e(60216),p=e.n(n),h=e(67879),i=e(8471),l=e.p+"0cd5f8915b265d5b1856.png";const v="limits-title",x="https://strapi.io/pricing-cloud",O="https://strapi.io/contact-sales";function P({children:T}){return t.createElement(r.Z,{variant:"alpha",id:v},T)}P.propTypes={children:p().node.isRequired};function L({children:T}){return t.createElement(r.Z,{variant:"omega"},T)}L.propTypes={children:p().node.isRequired};function M(){const{formatMessage:T}=(0,h.Z)();return t.createElement(a.k,{gap:2,paddingTop:4},t.createElement(u.Q,{variant:"default",isExternal:!0,href:x},T({id:"Settings.review-workflows.limit.cta.learn",defaultMessage:"Learn more"})),t.createElement(u.Q,{variant:"tertiary",isExternal:!0,href:O},T({id:"Settings.review-workflows.limit.cta.sales",defaultMessage:"Contact Sales"})))}const A=i.ZP.img`
6
+ // Margin top|right reverse the padding of ModalBody
7
+ margin-right: ${({theme:T})=>`-${T.spaces[7]}`};
8
+ margin-top: ${({theme:T})=>`-${T.spaces[7]}`};
9
+ width: 360px;
10
+ `;function g({children:T,isOpen:f,onClose:D}){const{formatMessage:R}=(0,h.Z)();return f?t.createElement(d.P,{labelledBy:v},t.createElement(c.f,null,t.createElement(a.k,{gap:2,paddingLeft:7,position:"relative"},t.createElement(a.k,{alignItems:"start",direction:"column",gap:2,width:"60%"},T,t.createElement(M,null)),t.createElement(a.k,{justifyContent:"end",height:"100%",width:"40%"},t.createElement(A,{src:l,"aria-hidden":!0,alt:"",loading:"lazy"}),t.createElement(o.x,{display:"flex",position:"absolute",right:0,top:0},t.createElement(y.h,{icon:t.createElement(s.Z,null),"aria-label":R({id:"global.close",defaultMessage:"Close"}),onClick:D})))))):null}g.defaultProps={isOpen:!1},g.propTypes={children:p().node.isRequired,isOpen:p().bool,onClose:p().func.isRequired}},45594:function(w,m,e){"use strict";e.d(m,{U:function(){return b}});var t=e(32735),r=e(72850),a=e(87933),d=e(19565),c=e(60216),o=e.n(c),y=e(67879),u=e(15062),s=e(8471),n=e(77061),p=e(49372),h=e(86308);const i=(0,s.ZP)(h.Z)`
11
+ > circle {
12
+ fill: ${({theme:E})=>E.colors.neutral150};
13
+ }
14
+ > path {
15
+ fill: ${({theme:E})=>E.colors.neutral600};
16
+ }
17
+ `,l=(0,s.ZP)(r.x)`
18
+ border-radius: 26px;
19
+
20
+ svg {
21
+ height: ${({theme:E})=>E.spaces[6]};
22
+ width: ${({theme:E})=>E.spaces[6]};
23
+
24
+ > path {
25
+ fill: ${({theme:E})=>E.colors.neutral600};
26
+ }
27
+ }
28
+
29
+ &:hover {
30
+ color: ${({theme:E})=>E.colors.primary600} !important;
31
+ ${p.Z} {
32
+ color: ${({theme:E})=>E.colors.primary600} !important;
33
+ }
34
+
35
+ ${i} {
36
+ > circle {
37
+ fill: ${({theme:E})=>E.colors.primary600};
38
+ }
39
+ > path {
40
+ fill: ${({theme:E})=>E.colors.neutral100};
41
+ }
42
+ }
43
+ }
44
+
45
+ &:active {
46
+ ${p.Z} {
47
+ color: ${({theme:E})=>E.colors.primary600};
48
+ }
49
+
50
+ ${i} {
51
+ > circle {
52
+ fill: ${({theme:E})=>E.colors.primary600};
53
+ }
54
+ > path {
55
+ fill: ${({theme:E})=>E.colors.neutral100};
56
+ }
57
+ }
58
+ }
59
+ `;function v({children:E,...Z}){return t.createElement(l,{as:"button",background:"neutral0",border:"neutral150",paddingBottom:3,paddingLeft:4,paddingRight:4,paddingTop:3,shadow:"filterShadow",...Z},t.createElement(a.k,{gap:2},t.createElement(i,{"aria-hidden":!0}),t.createElement(p.Z,{variant:"pi",fontWeight:"bold",textColor:"neutral500"},E)))}v.propTypes={children:o().node.isRequired};var x=e(3685),O=e(83828),P=e(61762),L=e(50563),M=e(89966),A=e(15335),g=e(5803),T=e(10369),f=e(77035),D=e(4038),R=e(47081),W=e(92802),I=e(51968),U=e(69242),$=e(97724),B=e(2121),K=e(68886);const V=(0,K.s)();function S(){return t.createElement(r.x,{background:"primary100",borderStyle:"dashed",borderColor:"primary600",borderWidth:"1px",display:"block",hasRadius:!0,padding:6,shadow:"tableShadow"})}function k({id:E,index:Z,canDelete:G,canReorder:ee,canUpdate:H,isOpen:te=!1,stagesCount:z}){const Y=C=>`${C+1} of ${z}`,Q=C=>{J(j({id:"dnd.grab-item",defaultMessage:"{item}, grabbed. Current position in list: {position}. Press up and down arrow to change position, Spacebar to drop, Escape to cancel."},{item:N.value,position:Y(C)}))},le=C=>{J(j({id:"dnd.drop-item",defaultMessage:"{item}, dropped. Final position in list: {position}."},{item:N.value,position:Y(C)}))},de=()=>{J(j({id:"dnd.cancel-item",defaultMessage:"{item}, dropped. Re-order cancelled."},{item:N.value}))},ce=(C,X)=>{J(j({id:"dnd.reorder",defaultMessage:"{item}, moved. New position in list: {position}."},{item:N.value,position:Y(C)})),q((0,n.FP)(X,C))},[ae,J]=t.useState(null),{formatMessage:j}=(0,y.Z)(),{trackUsage:ue}=(0,d.rS)(),q=(0,u.I0)(),[ne,me]=t.useState(te),[N,re,fe]=(0,W.U$)(`stages.${Z}.name`),[_,oe,ge]=(0,W.U$)(`stages.${Z}.color`),[{handlerId:pe,isDragging:ve,handleKeyDown:he},Ee,ye,Te,se]=(0,U.Y9)(ee,{index:Z,item:{name:N.value},onGrabItem:Q,onDropItem:le,onMoveItem:ce,onCancel:de,type:B.uL.STAGE}),Se=(0,$.FE)(Ee,ye),we=V.map(({hex:C,name:X})=>({value:C,label:j({id:"Settings.review-workflows.stage.color.name",defaultMessage:"{name}"},{name:X}),color:C}));t.useEffect(()=>{se((0,I.rX)(),{captureDraggingState:!1})},[se,Z]);const{themeColorName:Me}=(0,K.k)(_.value)??{};return t.createElement(r.x,{ref:Se},ae&&t.createElement(x.T,{"aria-live":"assertive"},ae),ve?t.createElement(S,null):t.createElement(O.U,{size:"S",variant:"primary",onToggle:()=>{me(!ne),ne||ue("willEditStage")},expanded:ne,shadow:"tableShadow",error:re.error??oe?.error??!1,hasErrorMessage:!1},t.createElement(P.B,{title:N.value,togglePosition:"left",action:t.createElement(a.k,null,G&&t.createElement(L.h,{background:"transparent",icon:t.createElement(D.Z,null),label:j({id:"Settings.review-workflows.stage.delete",defaultMessage:"Delete stage"}),noBorder:!0,onClick:()=>q((0,n._V)(E))}),t.createElement(L.h,{background:"transparent",disabled:!H,forwardedAs:"div",role:"button",noBorder:!0,tabIndex:0,"data-handler-id":pe,ref:Te,label:j({id:"Settings.review-workflows.stage.drag",defaultMessage:"Drag"}),onClick:C=>C.stopPropagation(),onKeyDown:he},t.createElement(R.Z,null)))}),t.createElement(M.v,{padding:6,background:"neutral0",hasRadius:!0},t.createElement(A.r,{gap:4},t.createElement(g.P,{col:6},t.createElement(T.o,{...N,id:N.name,disabled:!H,label:j({id:"Settings.review-workflows.stage.name.label",defaultMessage:"Stage name"}),error:re.error??!1,onChange:C=>{fe.setValue(C.target.value),q((0,n.xn)(E,{name:C.target.value}))},required:!0})),t.createElement(g.P,{col:6},t.createElement(f.q4,{disabled:!H,error:oe?.error??!1,id:_.name,required:!0,label:j({id:"content-manager.reviewWorkflows.stage.color",defaultMessage:"Color"}),onChange:C=>{ge.setValue(C),q((0,n.xn)(E,{color:C}))},value:_.value.toUpperCase(),startIcon:t.createElement(a.k,{as:"span",height:2,background:_.value,borderColor:Me==="neutral0"?"neutral150":"transparent",hasRadius:!0,shrink:0,width:2})},we.map(({value:C,label:X,color:ie})=>{const{themeColorName:xe}=(0,K.k)(ie);return t.createElement(f.ag,{value:C,key:C,startIcon:t.createElement(a.k,{as:"span",height:2,background:ie,borderColor:xe==="neutral0"?"neutral150":"transparent",hasRadius:!0,shrink:0,width:2})},X)})))))))}k.propTypes=o().shape({id:o().number.isRequired,color:o().string.isRequired,canDelete:o().bool.isRequired,canReorder:o().bool.isRequired,canUpdate:o().bool.isRequired,stagesCount:o().number.isRequired}).isRequired;const F=(0,s.ZP)(r.x)`
60
+ transform: translateX(-50%);
61
+ `;function b({canDelete:E,canUpdate:Z,stages:G}){const{formatMessage:ee}=(0,y.Z)(),H=(0,u.I0)(),{trackUsage:te}=(0,d.rS)();return t.createElement(a.k,{direction:"column",gap:6,width:"100%"},t.createElement(r.x,{position:"relative",spacing:4,width:"100%"},t.createElement(F,{background:"neutral200",height:"100%",left:"50%",position:"absolute",top:"0",width:2,zIndex:1}),t.createElement(a.k,{direction:"column",alignItems:"stretch",gap:6,zIndex:2,position:"relative",as:"ol"},G.map((z,Y)=>{const Q=z?.id??z.__temp_key__;return t.createElement(r.x,{key:`stage-${Q}`,as:"li"},t.createElement(k,{id:Q,index:Y,isOpen:!z.id,canDelete:G.length>1&&E,canReorder:G.length>1,canUpdate:Z,stagesCount:G.length}))}))),Z&&t.createElement(v,{type:"button",onClick:()=>{H((0,n.CI)({name:""})),te("willCreateStage")}},ee({id:"Settings.review-workflows.stage.add",defaultMessage:"Add new stage"})))}b.defaultProps={canDelete:!0,canUpdate:!0,stages:[]},b.propTypes={canDelete:o().bool,canUpdate:o().bool,stages:o().arrayOf(o().shape({id:o().number,__temp_key__:o().number,name:o().string.isRequired}))}},165:function(w,m,e){"use strict";e.d(m,{Y:function(){return O}});var t=e(32735),r=e(6407),a=e(49372),d=e(15335),c=e(5803),o=e(10369),y=e(19565),u=e(92802),s=e(60216),n=e.n(s),p=e(67879),h=e(15062),i=e(8471),l=e(77061);const v=(0,i.ZP)(r.ML)`
62
+ padding-left: ${({theme:L})=>L.spaces[7]};
63
+ `,x=(0,i.ZP)(a.Z)`
64
+ font-style: italic;
65
+ `;function O({canUpdate:L,contentTypes:{collectionTypes:M,singleTypes:A},currentWorkflow:g,workflows:T}){const{formatMessage:f,locale:D}=(0,p.Z)(),R=(0,h.I0)(),[W,I,U]=(0,u.U$)("name"),[$,B,K]=(0,u.U$)("contentTypes"),V=(0,y.Xe)(D,{sensitivity:"base"});return t.createElement(d.r,{background:"neutral0",hasRadius:!0,gap:4,padding:6,shadow:"tableShadow"},t.createElement(c.P,{col:6},t.createElement(o.o,{...W,id:W.name,disabled:!L,label:f({id:"Settings.review-workflows.workflow.name.label",defaultMessage:"Workflow Name"}),error:I.error??!1,onChange:S=>{R((0,l.rI)({name:S.target.value})),U.setValue(S.target.value)},required:!0})),t.createElement(c.P,{col:6},t.createElement(r.NU,{...$,customizeContent:S=>f({id:"Settings.review-workflows.workflow.contentTypes.displayValue",defaultMessage:"{count} {count, plural, one {content type} other {content types}} selected"},{count:S.length}),disabled:!L,error:B.error??!1,id:$.name,label:f({id:"Settings.review-workflows.workflow.contentTypes.label",defaultMessage:"Associated to"}),onChange:S=>{R((0,l.rI)({contentTypes:S})),K.setValue(S)},placeholder:f({id:"Settings.review-workflows.workflow.contentTypes.placeholder",defaultMessage:"Select"})},[...M.length>0?[{label:f({id:"Settings.review-workflows.workflow.contentTypes.collectionTypes.label",defaultMessage:"Collection Types"}),children:M.sort((S,k)=>V.compare(S.info.displayName,k.info.displayName)).map(S=>({label:S.info.displayName,value:S.uid}))}]:[],...A.length>0?[{label:f({id:"Settings.review-workflows.workflow.contentTypes.singleTypes.label",defaultMessage:"Single Types"}),children:A.map(S=>({label:S.info.displayName,value:S.uid}))}]:[]].map(S=>"children"in S?t.createElement(r.Ab,{key:S.label,label:S.label,values:S.children.map(k=>k.value.toString())},S.children.map(k=>{const{name:F}=T.find(b=>(g&&b.id!==g.id||!g)&&b.contentTypes.includes(k.value))??{};return t.createElement(v,{key:k.value,value:k.value},f({id:"Settings.review-workflows.workflow.contentTypes.assigned.notice",defaultMessage:"{label} {name, select, undefined {} other {<i>(assigned to <em>{name}</em> workflow)</i>}}"},{label:k.label,name:F,em:(...b)=>t.createElement(a.Z,{as:"em",fontWeight:"bold"},b),i:(...b)=>t.createElement(x,null,b)}))})):t.createElement(r.ML,{key:S.value,value:S.value},S.label)))))}const P=n().shape({uid:n().string.isRequired,info:n().shape({displayName:n().string.isRequired}).isRequired});O.defaultProps={canUpdate:!0,currentWorkflow:void 0},O.propTypes={canUpdate:n().bool,contentTypes:n().shape({collectionTypes:n().arrayOf(P).isRequired,singleTypes:n().arrayOf(P).isRequired}).isRequired,currentWorkflow:n().object,workflows:n().array.isRequired}},2121:function(w,m,e){"use strict";e.d(m,{$k:function(){return u},Ef:function(){return i},FT:function(){return p},Nj:function(){return y},Ot:function(){return o},VS:function(){return s},_X:function(){return l},gu:function(){return a},lv:function(){return n},qZ:function(){return d},sN:function(){return r},uL:function(){return h},x4:function(){return c}});var t=e(12301);const r="settings_review-workflows",a="Settings/Review_Workflows/RESET_WORKFLOW",d="Settings/Review_Workflows/SET_WORKFLOW",c="Settings/Review_Workflows/WORKFLOW_DELETE_STAGE",o="Settings/Review_Workflows/WORKFLOW_ADD_STAGE",y="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE",u="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE_POSITION",s="Settings/Review_Workflows/WORKFLOW_UPDATE",n={primary600:"Blue",primary200:"Lilac",alternative600:"Violet",alternative200:"Lavender",success600:"Green",success200:"Pale Green",danger500:"Cherry",danger200:"Pink",warning600:"Orange",warning200:"Yellow",secondary600:"Teal",secondary200:"Baby Blue",neutral400:"Gray",neutral0:"White"},p=t.W.colors.primary600,h={STAGE:"stage"},i="numberOfWorkflows",l="stagesPerWorkflow"},32329:function(w,m,e){"use strict";e.d(m,{n:function(){return a}});var t=e(19565),r=e(20108);function a(d={}){const{get:c}=(0,t.kY)(),{id:o="",...y}=d,u={populate:"stages"},{data:s,isLoading:n,status:p,refetch:h}=(0,r.useQuery)(["review-workflows","workflows",o],async()=>(await c(`/admin/review-workflows/workflows/${o}`,{params:{...u,...y}})).data);let i=[];return o&&s?.data?i=[s.data]:Array.isArray(s?.data)&&(i=s.data),{meta:s?.meta??{},workflows:i,isLoading:n,status:p,refetch:h}}},79989:function(w,m,e){"use strict";e.d(m,{E:function(){return c},I:function(){return o}});var t=e(97889),r=e(89793),a=e.n(r),d=e(2121);const c={status:"loading",serverState:{workflow:null},clientState:{currentWorkflow:{data:{name:"",contentTypes:[],stages:[]},isDirty:!1,hasDeletedServerStages:!1}}};function o(u=c,s){return(0,t.Uy)(u,n=>{const{payload:p}=s;switch(s.type){case d.qZ:{const{status:h,workflow:i}=p;n.status=h,i&&(n.serverState.workflow=i,n.clientState.currentWorkflow.data={...i,stages:i.stages.map(l=>({...l,color:l?.color??d.FT}))}),n.clientState.currentWorkflow.hasDeletedServerStages=!1;break}case d.gu:{n.clientState.currentWorkflow.data=c.clientState.currentWorkflow.data,n.serverState=c.serverState;break}case d.x4:{const{stageId:h}=p,{currentWorkflow:i}=u.clientState;n.clientState.currentWorkflow.data.stages=i.data.stages.filter(l=>(l?.id??l.__temp_key__)!==h),i.hasDeletedServerStages||(n.clientState.currentWorkflow.hasDeletedServerStages=!!(u.serverState.workflow?.stages??[]).find(l=>l.id===h));break}case d.Ot:{const{currentWorkflow:h}=u.clientState;h.data||(n.clientState.currentWorkflow.data={stages:[]});const i=y(n.clientState.currentWorkflow.data.stages);n.clientState.currentWorkflow.data.stages.push({...p,color:p?.color??d.FT,__temp_key__:i});break}case d.Nj:{const{currentWorkflow:h}=u.clientState,{stageId:i,...l}=p;n.clientState.currentWorkflow.data.stages=h.data.stages.map(v=>(v.id??v.__temp_key__)===i?{...v,...l}:v);break}case d.$k:{const{currentWorkflow:{data:{stages:h}}}=u.clientState,{newIndex:i,oldIndex:l}=p;if(i>=0&&i<h.length){const v=h[l];let x=[...h];x.splice(l,1),x.splice(i,0,v),n.clientState.currentWorkflow.data.stages=x}break}case d.VS:{n.clientState.currentWorkflow.data={...n.clientState.currentWorkflow.data,...p};break}default:break}u.clientState.currentWorkflow.data&&n.serverState.workflow?n.clientState.currentWorkflow.isDirty=!a()((0,t.Vk)(n.clientState.currentWorkflow).data,n.serverState.workflow):n.clientState.currentWorkflow.isDirty=!0})}const y=(u=[])=>{const s=u.map(n=>n.id??n.__temp_key__);return Math.max(...s,-1)+1}},68886:function(w,m,e){"use strict";e.d(m,{k:function(){return a},s:function(){return d}});var t=e(12301),r=e(2121);function a(c){if(!c)return null;const y=Object.entries(t.W.colors).filter(([,u])=>u.toUpperCase()===c.toUpperCase()).reduce((u,[s])=>(r.lv?.[s]&&(u=s),u),null);return y?{themeColorName:y,name:r.lv[y]}:null}function d(){return Object.entries(r.lv).map(([c,o])=>({hex:t.W.colors[c].toUpperCase(),name:o}))}},82920:function(w,m,e){"use strict";e.d(m,{V:function(){return d}});var t=e(3040),r=e.n(t),a=e(24346);async function d({values:c,formatMessage:o}){const y=a.Ry({contentTypes:a.IX().of(a.Z_()),name:a.Z_().max(255,o({id:"Settings.review-workflows.validation.name.max-length",defaultMessage:"Name can not be longer than 255 characters"})).required(),stages:a.IX().of(a.Ry().shape({name:a.Z_().required(o({id:"Settings.review-workflows.validation.stage.name",defaultMessage:"Name is required"})).max(255,o({id:"Settings.review-workflows.validation.stage.max-length",defaultMessage:"Name can not be longer than 255 characters"})).test("unique-name",o({id:"Settings.review-workflows.validation.stage.duplicate",defaultMessage:"Stage name must be unique"}),function(u){const{options:{context:s}}=this;return s.stages.filter(n=>n.name===u).length===1}),color:a.Z_().required(o({id:"Settings.review-workflows.validation.stage.color",defaultMessage:"Color is required"})).matches(/^#(?:[0-9a-fA-F]{3}){1,2}$/i)})).min(1)});try{return await y.validate(c,{abortEarly:!1,context:c}),!0}catch(u){let s={};return u instanceof a.p8&&u.inner.forEach(n=>{r()(s,n.path,n.message)}),s}}},51355:function(w,m,e){var t=e(94318),r=e(3387),a="[object Boolean]";function d(c){return c===!0||c===!1||r(c)&&t(c)==a}w.exports=d},95919:function(w,m,e){var t=e(80022);function r(a){return t(a)&&a!=+a}w.exports=r},80022:function(w,m,e){var t=e(94318),r=e(3387),a="[object Number]";function d(c){return typeof c=="number"||r(c)&&t(c)==a}w.exports=d},59578:function(w,m,e){var t=e(41119);function r(a){return t(a).toLowerCase()}w.exports=r},83828:function(w,m,e){"use strict";e.d(m,{U:function(){return h},y:function(){return n}});var t=e(74512),r=e(32735),a=e(8471),d=e(91045),c=e(74971),o=e(49372),y=e(87933),u=e(72850);const s=({theme:i,expanded:l,variant:v,disabled:x,error:O})=>O?`1px solid ${i.colors.danger600} !important`:x?`1px solid ${i.colors.neutral150}`:l?`1px solid ${i.colors.primary600}`:v==="primary"?`1px solid ${i.colors.neutral0}`:`1px solid ${i.colors.neutral100}`,n=(0,a.ZP)(o.Z)``,p=(0,a.ZP)(u.x)`
66
+ border: ${s};
67
+
68
+ &:hover:not([aria-disabled='true']) {
69
+ border: 1px solid ${({theme:i})=>i.colors.primary600};
70
+
71
+ ${n} {
72
+ color: ${({theme:i,expanded:l})=>l?void 0:i.colors.primary700};
73
+ }
74
+
75
+ ${o.Z} {
76
+ color: ${({theme:i,expanded:l})=>l?void 0:i.colors.primary600};
77
+ }
78
+
79
+ & > ${y.k} {
80
+ background: ${({theme:i})=>i.colors.primary100};
81
+ }
82
+
83
+ [data-strapi-dropdown='true'] {
84
+ background: ${({theme:i})=>i.colors.primary200};
85
+ }
86
+ }
87
+ `,h=({children:i,disabled:l=!1,error:v,expanded:x=!1,hasErrorMessage:O=!0,id:P,onToggle:L,toggle:M,size:A="M",variant:g="primary",shadow:T})=>{const f=(0,c.M)(P),D=r.useMemo(()=>({expanded:x,onToggle:L,toggle:M,id:f,size:A,variant:g,disabled:l}),[l,x,f,L,A,M,g]);return(0,t.jsxs)(d.S.Provider,{value:D,children:[(0,t.jsx)(p,{"data-strapi-expanded":x,disabled:l,"aria-disabled":l,expanded:x,hasRadius:!0,variant:g,error:v,shadow:T,children:i}),v&&O&&(0,t.jsx)(u.x,{paddingTop:1,children:(0,t.jsx)(o.Z,{variant:"pi",textColor:"danger600",children:v})})]})}},89966:function(w,m,e){"use strict";e.d(m,{v:function(){return d}});var t=e(74512),r=e(91045),a=e(72850);const d=({children:c,...o})=>{const{expanded:y,id:u}=(0,r.A)();if(!y)return null;const s=`accordion-content-${u}`,n=`accordion-label-${u}`,p=`accordion-desc-${u}`;return(0,t.jsx)(a.x,{role:"region",id:s,"aria-labelledby":n,"aria-describedby":p,...o,children:c})}},91045:function(w,m,e){"use strict";e.d(m,{A:function(){return a},S:function(){return r}});var t=e(32735);const r=(0,t.createContext)({disabled:!1,expanded:!1,id:"",size:"M",variant:"primary"}),a=()=>(0,t.useContext)(r)},61762:function(w,m,e){"use strict";e.d(m,{B:function(){return i}});var t=e(74512),r=e(16899),a=e(8471),d=e(83828),c=e(91045);const o=({expanded:l,disabled:v,variant:x})=>{let O="neutral100";return l?O="primary100":v?O="neutral150":x==="primary"&&(O="neutral0"),O};var y=e(7563),u=e(99140),s=e(87933),n=e(49372);const p=(0,a.ZP)(y.A)`
88
+ text-align: left;
89
+
90
+ // necessary to make the ellipsis prop work on the title
91
+ > span {
92
+ max-width: 100%;
93
+ }
94
+
95
+ svg {
96
+ width: ${14/16}rem;
97
+ height: ${14/16}rem;
98
+
99
+ path {
100
+ fill: ${({theme:l,expanded:v})=>v?l.colors.primary600:l.colors.neutral500};
101
+ }
102
+ }
103
+ `,h=(0,a.ZP)(s.k)`
104
+ min-height: ${({theme:l,size:v})=>l.sizes.accordions[v]};
105
+ border-radius: ${({theme:l,expanded:v})=>v?`${l.borderRadius} ${l.borderRadius} 0 0`:l.borderRadius};
106
+
107
+ &:hover {
108
+ svg {
109
+ path {
110
+ fill: ${({theme:l})=>l.colors.primary600};
111
+ }
112
+ }
113
+ }
114
+ `,i=({title:l,description:v,as:x="span",togglePosition:O="right",action:P,...L})=>{const{onToggle:M,toggle:A,expanded:g,id:T,size:f,variant:D,disabled:R}=(0,c.A)(),W=`accordion-content-${T}`,I=`accordion-label-${T}`,U=`accordion-desc-${T}`,$=f==="M"?6:4,B=f==="M"?$:$-2,K=o({expanded:g,disabled:R,variant:D}),V={as:x,fontWeight:f==="S"?"bold":void 0,id:I,textColor:g?"primary600":"neutral700",ellipsis:!0,variant:f==="M"?"delta":void 0},S=g?"primary600":"neutral600",k=g?"primary200":"neutral200",F=f==="M"?`${32/16}rem`:`${24/16}rem`,b=()=>{R||(A&&!M?(console.warn('Deprecation warning: Usage of "toggle" prop in Accordion component is deprecated. This is discouraged and will be removed in the next major release. Please use "onToggle" instead'),A()):M&&M())},E=(0,t.jsx)(s.k,{justifyContent:"center",borderRadius:"50%",height:F,width:F,transform:g?"rotate(180deg)":void 0,"data-strapi-dropdown":!0,"aria-hidden":!0,as:"span",background:k,cursor:R?"not-allowed":"pointer",onClick:b,shrink:0,children:(0,t.jsx)(u.J,{as:r.Z,width:f==="M"?`${11/16}rem`:`${8/16}rem`,color:g?"primary600":"neutral600"})});return(0,t.jsx)(h,{paddingBottom:B,paddingLeft:$,paddingRight:$,paddingTop:B,background:K,expanded:g,size:f,justifyContent:"space-between",cursor:R?"not-allowed":"",children:(0,t.jsxs)(s.k,{gap:3,flex:1,maxWidth:"100%",children:[O==="left"&&E,(0,t.jsx)(p,{onClick:b,"aria-disabled":R,"aria-expanded":g,"aria-controls":W,"aria-labelledby":I,"data-strapi-accordion-toggle":!0,expanded:g,type:"button",flex:1,minWidth:0,...L,children:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.y,{...V,children:l}),v&&(0,t.jsx)(n.Z,{as:"p",id:U,textColor:S,children:v})]})}),O==="right"&&(0,t.jsxs)(s.k,{gap:3,children:[E,P]}),O==="left"&&P]})})}},29439:function(w,m,e){"use strict";e.d(m,{Z:function(){return a}});var t=e(74512);const r=d=>(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 24 24",...d,children:(0,t.jsx)("path",{fill:"#212134",d:"M24 13.3a.2.2 0 0 1-.2.2H5.74l8.239 8.239a.2.2 0 0 1 0 .282L12.14 23.86a.2.2 0 0 1-.282 0L.14 12.14a.2.2 0 0 1 0-.282L11.86.14a.2.2 0 0 1 .282 0L13.98 1.98a.2.2 0 0 1 0 .282L5.74 10.5H23.8c.11 0 .2.09.2.2v2.6Z"})}),a=r},47081:function(w,m,e){"use strict";e.d(m,{Z:function(){return a}});var t=e(74512);const r=d=>(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 24 24",...d,children:[(0,t.jsx)("path",{fill:"#212134",d:"M16.563 5.587a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z"}),(0,t.jsx)("path",{fill:"#212134",d:"M18.487 3.083c-.012.788-.487 1.513-1.229 1.797a1.954 1.954 0 0 1-2.184-.574A1.943 1.943 0 0 1 14.9 2.11c.4-.684 1.2-1.066 1.981-.927a1.954 1.954 0 0 1 1.606 1.9c.011.748 1.17.748 1.158 0A3.138 3.138 0 0 0 17.565.17c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.284 3.575.678 1.124 1.993 1.674 3.273 1.431 1.432-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.158-.006ZM16.563 14.372a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z"}),(0,t.jsx)("path",{fill:"#212134",d:"M18.487 11.867c-.012.789-.487 1.513-1.229 1.797a1.954 1.954 0 0 1-2.184-.574 1.943 1.943 0 0 1-.174-2.196c.4-.684 1.2-1.066 1.981-.927.928.156 1.588.968 1.606 1.9.011.748 1.17.748 1.158 0a3.138 3.138 0 0 0-2.08-2.914c-1.176-.423-2.567-.029-3.36.933-.83 1.002-.968 2.45-.284 3.575.678 1.124 1.993 1.675 3.273 1.431 1.432-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.158-.005ZM16.563 23.392a2.503 2.503 0 1 0 0-5.006 2.503 2.503 0 0 0 0 5.006Z"}),(0,t.jsx)("path",{fill:"#212134",d:"M18.487 20.89c-.012.787-.487 1.512-1.229 1.796a1.954 1.954 0 0 1-2.184-.574 1.943 1.943 0 0 1-.174-2.196c.4-.684 1.2-1.066 1.981-.927.928.156 1.588.967 1.606 1.9.011.748 1.17.748 1.158 0a3.138 3.138 0 0 0-2.08-2.914c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.284 3.575.678 1.124 1.993 1.674 3.273 1.431 1.432-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.158-.006ZM7.378 5.622a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z"}),(0,t.jsx)("path",{fill:"#212134",d:"M9.302 3.119c-.011.788-.486 1.512-1.228 1.796a1.954 1.954 0 0 1-2.185-.574 1.943 1.943 0 0 1-.173-2.196c.4-.684 1.199-1.066 1.981-.927a1.943 1.943 0 0 1 1.605 1.9c.012.748 1.17.748 1.16 0A3.138 3.138 0 0 0 8.38.205c-1.176-.423-2.567-.029-3.36.933-.83 1.002-.968 2.45-.285 3.575.678 1.124 1.994 1.675 3.274 1.431 1.431-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.159-.005ZM7.378 14.406a2.503 2.503 0 1 0 0-5.006 2.503 2.503 0 0 0 0 5.006Z"}),(0,t.jsx)("path",{fill:"#212134",d:"M9.302 11.902c-.011.788-.486 1.513-1.228 1.797a1.954 1.954 0 0 1-2.185-.574 1.943 1.943 0 0 1-.173-2.196c.4-.684 1.199-1.066 1.981-.927a1.943 1.943 0 0 1 1.605 1.9c.012.748 1.17.748 1.16 0A3.138 3.138 0 0 0 8.38 8.988c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.285 3.575.678 1.124 1.994 1.674 3.274 1.431 1.431-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.159-.006ZM7.378 23.427a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z"}),(0,t.jsx)("path",{fill:"#212134",d:"M9.302 20.924c-.011.788-.486 1.513-1.228 1.797a1.954 1.954 0 0 1-2.185-.574 1.943 1.943 0 0 1-.173-2.196c.4-.684 1.199-1.066 1.981-.927.933.156 1.594.967 1.605 1.9.012.748 1.17.748 1.16 0A3.139 3.139 0 0 0 8.38 18.01c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.285 3.569.678 1.124 1.994 1.675 3.274 1.431 1.431-.272 2.428-1.593 2.451-3.019.012-.747-1.147-.747-1.159 0Z"})]}),a=r},86308:function(w,m,e){"use strict";e.d(m,{Z:function(){return a}});var t=e(74512);const r=d=>(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 24 24",...d,children:[(0,t.jsx)("circle",{cx:12,cy:12,r:12,fill:"#212134"}),(0,t.jsx)("path",{fill:"#F6F6F9",d:"M17 12.569c0 .124-.1.224-.225.224h-3.981v3.982c0 .124-.101.225-.226.225h-1.136a.225.225 0 0 1-.226-.225v-3.981H7.226A.225.225 0 0 1 7 12.567v-1.136c0-.125.1-.226.225-.226h3.982V7.226c0-.124.1-.225.224-.225h1.138c.124 0 .224.1.224.225v3.982h3.982c.124 0 .225.1.225.224v1.138Z"})]}),a=r}}]);