@strapi/i18n 0.0.0-experimental.e60ec1829240dae21c1e1d29076681c322288813 → 0.0.0-experimental.e8d8fc824d0f6a695b2a9ebaa4680ed21c3645ca

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 (64) hide show
  1. package/LICENSE +18 -3
  2. package/dist/_chunks/{SettingsPage-CeqfDjsb.mjs → SettingsPage-B6QDUmu9.mjs} +117 -128
  3. package/dist/_chunks/SettingsPage-B6QDUmu9.mjs.map +1 -0
  4. package/dist/_chunks/{SettingsPage-Djqsdrzs.js → SettingsPage-BsHtr3lV.js} +118 -130
  5. package/dist/_chunks/SettingsPage-BsHtr3lV.js.map +1 -0
  6. package/dist/_chunks/{en-BuBc6LKZ.js → en-BKBz3tro.js} +14 -2
  7. package/dist/_chunks/en-BKBz3tro.js.map +1 -0
  8. package/dist/_chunks/{en-CnrTsjWS.mjs → en-DlXfy6Gy.mjs} +14 -2
  9. package/dist/_chunks/en-DlXfy6Gy.mjs.map +1 -0
  10. package/dist/_chunks/index-3XgwXL6T.js +1628 -0
  11. package/dist/_chunks/index-3XgwXL6T.js.map +1 -0
  12. package/dist/_chunks/index-iEQ79W05.mjs +1607 -0
  13. package/dist/_chunks/index-iEQ79W05.mjs.map +1 -0
  14. package/dist/admin/index.js +1 -1
  15. package/dist/admin/index.mjs +2 -2
  16. package/dist/admin/src/components/BulkLocaleActionModal.d.ts +16 -0
  17. package/dist/admin/src/components/CMHeaderActions.d.ts +35 -3
  18. package/dist/admin/src/components/CreateLocale.d.ts +6 -6
  19. package/dist/admin/src/components/EditLocale.d.ts +5 -4
  20. package/dist/admin/src/components/LocaleListCell.d.ts +4 -4
  21. package/dist/admin/src/contentReleasesHooks/releaseDetailsView.d.ts +9 -5
  22. package/dist/admin/src/services/api.d.ts +2 -3
  23. package/dist/admin/src/services/locales.d.ts +1 -1
  24. package/dist/admin/src/services/relations.d.ts +7 -0
  25. package/dist/admin/src/utils/baseQuery.d.ts +4 -19
  26. package/dist/admin/src/utils/clean.d.ts +4 -0
  27. package/dist/admin/src/utils/schemas.d.ts +1 -0
  28. package/dist/server/index.js +418 -478
  29. package/dist/server/index.js.map +1 -1
  30. package/dist/server/index.mjs +419 -478
  31. package/dist/server/index.mjs.map +1 -1
  32. package/dist/server/src/bootstrap.d.ts +1 -4
  33. package/dist/server/src/bootstrap.d.ts.map +1 -1
  34. package/dist/server/src/index.d.ts +21 -13
  35. package/dist/server/src/index.d.ts.map +1 -1
  36. package/dist/server/src/register.d.ts.map +1 -1
  37. package/dist/server/src/services/index.d.ts +20 -10
  38. package/dist/server/src/services/index.d.ts.map +1 -1
  39. package/dist/server/src/services/permissions/actions.d.ts +14 -2
  40. package/dist/server/src/services/permissions/actions.d.ts.map +1 -1
  41. package/dist/server/src/services/permissions.d.ts +14 -2
  42. package/dist/server/src/services/permissions.d.ts.map +1 -1
  43. package/dist/server/src/services/sanitize/index.d.ts +11 -0
  44. package/dist/server/src/services/sanitize/index.d.ts.map +1 -0
  45. package/dist/server/src/utils/index.d.ts +2 -2
  46. package/dist/server/src/utils/index.d.ts.map +1 -1
  47. package/dist/shared/contracts/content-manager.d.ts +20 -1
  48. package/package.json +19 -20
  49. package/dist/_chunks/SettingsPage-CeqfDjsb.mjs.map +0 -1
  50. package/dist/_chunks/SettingsPage-Djqsdrzs.js.map +0 -1
  51. package/dist/_chunks/en-BuBc6LKZ.js.map +0 -1
  52. package/dist/_chunks/en-CnrTsjWS.mjs.map +0 -1
  53. package/dist/_chunks/index-BDU1w_fd.mjs +0 -1058
  54. package/dist/_chunks/index-BDU1w_fd.mjs.map +0 -1
  55. package/dist/_chunks/index-DMXJeGjN.js +0 -1082
  56. package/dist/_chunks/index-DMXJeGjN.js.map +0 -1
  57. package/dist/admin/src/components/Initializer.d.ts +0 -5
  58. package/dist/server/src/migrations/content-type/disable/index.d.ts +0 -3
  59. package/dist/server/src/migrations/content-type/disable/index.d.ts.map +0 -1
  60. package/dist/server/src/migrations/content-type/enable/index.d.ts +0 -3
  61. package/dist/server/src/migrations/content-type/enable/index.d.ts.map +0 -1
  62. package/dist/server/src/services/entity-service-decorator.d.ts +0 -29
  63. package/dist/server/src/services/entity-service-decorator.d.ts.map +0 -1
  64. package/strapi-server.js +0 -3
@@ -8,10 +8,9 @@ const symbols = require("@strapi/icons/symbols");
8
8
  const reactIntl = require("react-intl");
9
9
  const icons = require("@strapi/icons");
10
10
  const yup = require("yup");
11
- const index = require("./index-DMXJeGjN.js");
11
+ const index = require("./index-3XgwXL6T.js");
12
12
  function _interopNamespace(e) {
13
- if (e && e.__esModule)
14
- return e;
13
+ if (e && e.__esModule) return e;
15
14
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
16
15
  if (e) {
17
16
  for (const k in e) {
@@ -29,11 +28,14 @@ function _interopNamespace(e) {
29
28
  }
30
29
  const React__namespace = /* @__PURE__ */ _interopNamespace(React);
31
30
  const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
31
+ const isBaseQueryError = (error) => {
32
+ return error.name !== void 0;
33
+ };
32
34
  const CreateLocale = ({ disabled, variant = "default" }) => {
33
35
  const { formatMessage } = reactIntl.useIntl();
34
36
  const [visible, setVisible] = React__namespace.useState(false);
35
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
36
- /* @__PURE__ */ jsxRuntime.jsx(
37
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Root, { open: visible, onOpenChange: setVisible, children: [
38
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
37
39
  designSystem.Button,
38
40
  {
39
41
  variant,
@@ -46,16 +48,16 @@ const CreateLocale = ({ disabled, variant = "default" }) => {
46
48
  defaultMessage: "Add new locale"
47
49
  })
48
50
  }
49
- ),
50
- visible ? /* @__PURE__ */ jsxRuntime.jsx(CreateModal, { onClose: () => setVisible(false) }) : null
51
+ ) }),
52
+ /* @__PURE__ */ jsxRuntime.jsx(CreateModal, { onClose: () => setVisible(false) })
51
53
  ] });
52
54
  };
53
55
  const LOCALE_SCHEMA = yup__namespace.object().shape({
54
- code: yup__namespace.string().required({
56
+ code: yup__namespace.string().nullable().required({
55
57
  id: "Settings.locales.modal.create.code.error",
56
58
  defaultMessage: "Please select a locale"
57
59
  }),
58
- name: yup__namespace.string().max(50, {
60
+ name: yup__namespace.string().nullable().max(50, {
59
61
  id: "Settings.locales.modal.create.name.error.min",
60
62
  defaultMessage: "The locale display name can only be less than 50 characters."
61
63
  }).required({
@@ -70,6 +72,7 @@ const initialFormValues = {
70
72
  isDefault: false
71
73
  };
72
74
  const CreateModal = ({ onClose }) => {
75
+ const titleId = designSystem.useId();
73
76
  const { toggleNotification } = strapiAdmin.useNotification();
74
77
  const {
75
78
  _unstableFormatAPIError: formatAPIError,
@@ -82,7 +85,7 @@ const CreateModal = ({ onClose }) => {
82
85
  try {
83
86
  const res = await createLocale(values);
84
87
  if ("error" in res) {
85
- if (index.isBaseQueryError(res.error) && res.error.name === "ValidationError") {
88
+ if (isBaseQueryError(res.error) && res.error.name === "ValidationError") {
86
89
  helpers.setErrors(formatValidationErrors(res.error));
87
90
  } else {
88
91
  toggleNotification({ type: "danger", message: formatAPIError(res.error) });
@@ -108,8 +111,7 @@ const CreateModal = ({ onClose }) => {
108
111
  });
109
112
  }
110
113
  };
111
- const titleId = React__namespace.useId();
112
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalLayout, { onClose, labelledBy: titleId, children: /* @__PURE__ */ jsxRuntime.jsxs(
114
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Content, { children: /* @__PURE__ */ jsxRuntime.jsxs(
113
115
  strapiAdmin.Form,
114
116
  {
115
117
  method: "POST",
@@ -117,50 +119,37 @@ const CreateModal = ({ onClose }) => {
117
119
  validationSchema: LOCALE_SCHEMA,
118
120
  onSubmit: handleSubmit,
119
121
  children: [
120
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "bold", textColor: "neutral800", as: "h2", id: titleId, children: formatMessage({
122
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Header, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Title, { children: formatMessage({
121
123
  id: index.getTranslation("Settings.list.actions.add"),
122
124
  defaultMessage: "Add new locale"
123
125
  }) }) }),
124
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalBody, { children: /* @__PURE__ */ jsxRuntime.jsxs(
125
- designSystem.TabGroup,
126
- {
127
- label: formatMessage({
126
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Body, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs.Root, { variant: "simple", defaultValue: "basic", children: [
127
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", children: [
128
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "h2", variant: "beta", id: titleId, children: formatMessage({
128
129
  id: index.getTranslation("Settings.locales.modal.title"),
129
- defaultMessage: "Configurations"
130
- }),
131
- variant: "simple",
132
- children: [
133
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", children: [
134
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "h2", variant: "beta", children: formatMessage({
135
- id: index.getTranslation("Settings.locales.modal.title"),
136
- defaultMessage: "Configuration"
137
- }) }),
138
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs, { children: [
139
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tab, { children: formatMessage({
140
- id: index.getTranslation("Settings.locales.modal.base"),
141
- defaultMessage: "Basic settings"
142
- }) }),
143
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tab, { children: formatMessage({
144
- id: index.getTranslation("Settings.locales.modal.advanced"),
145
- defaultMessage: "Advanced settings"
146
- }) })
147
- ] })
148
- ] }),
149
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Divider, {}),
150
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingTop: 7, paddingBottom: 7, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.TabPanels, { children: [
151
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.TabPanel, { children: /* @__PURE__ */ jsxRuntime.jsx(BaseForm, {}) }),
152
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.TabPanel, { children: /* @__PURE__ */ jsxRuntime.jsx(AdvancedForm, {}) })
153
- ] }) })
154
- ]
155
- }
156
- ) }),
157
- /* @__PURE__ */ jsxRuntime.jsx(
158
- designSystem.ModalFooter,
159
- {
160
- startActions: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick: onClose, children: formatMessage({ id: "app.components.Button.cancel", defaultMessage: "Cancel" }) }),
161
- endActions: /* @__PURE__ */ jsxRuntime.jsx(SubmitButton, {})
162
- }
163
- )
130
+ defaultMessage: "Configuration"
131
+ }) }),
132
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs.List, { "aria-labelledby": titleId, children: [
133
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Trigger, { value: "basic", children: formatMessage({
134
+ id: index.getTranslation("Settings.locales.modal.base"),
135
+ defaultMessage: "Basic settings"
136
+ }) }),
137
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Trigger, { value: "advanced", children: formatMessage({
138
+ id: index.getTranslation("Settings.locales.modal.advanced"),
139
+ defaultMessage: "Advanced settings"
140
+ }) })
141
+ ] })
142
+ ] }),
143
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Divider, {}),
144
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { paddingTop: 7, paddingBottom: 7, children: [
145
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "basic", children: /* @__PURE__ */ jsxRuntime.jsx(BaseForm, {}) }),
146
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "advanced", children: /* @__PURE__ */ jsxRuntime.jsx(AdvancedForm, {}) })
147
+ ] })
148
+ ] }) }),
149
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Footer, { children: [
150
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Close, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", children: formatMessage({ id: "app.components.Button.cancel", defaultMessage: "Cancel" }) }) }),
151
+ /* @__PURE__ */ jsxRuntime.jsx(SubmitButton, {})
152
+ ] })
164
153
  ]
165
154
  }
166
155
  ) });
@@ -175,8 +164,7 @@ const BaseForm = ({ mode = "create" }) => {
175
164
  const { formatMessage } = reactIntl.useIntl();
176
165
  const { toggleNotification } = strapiAdmin.useNotification();
177
166
  const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
178
- const { data: defaultLocales = [], error } = index.useGetDefaultLocalesQuery();
179
- const { data: locales = [] } = index.useGetLocalesQuery();
167
+ const { data: defaultLocales, error } = index.useGetDefaultLocalesQuery();
180
168
  React__namespace.useEffect(() => {
181
169
  if (error) {
182
170
  toggleNotification({
@@ -185,7 +173,7 @@ const BaseForm = ({ mode = "create" }) => {
185
173
  });
186
174
  }
187
175
  }, [error, formatAPIError, toggleNotification]);
188
- if (!Array.isArray(defaultLocales) || !Array.isArray(locales)) {
176
+ if (!Array.isArray(defaultLocales)) {
189
177
  return null;
190
178
  }
191
179
  const options = defaultLocales.map((locale) => ({
@@ -229,7 +217,7 @@ const BaseForm = ({ mode = "create" }) => {
229
217
  label: formatMessage(field.label),
230
218
  placeholder: field.placeholder ? formatMessage(field.placeholder) : void 0
231
219
  }));
232
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: translatedForm.map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: size, children: /* @__PURE__ */ jsxRuntime.jsx(FormRenderer, { ...field }) }, field.name)) });
220
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: translatedForm.map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: size, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsx(FormRenderer, { ...field }) }, field.name)) });
233
221
  };
234
222
  const AdvancedForm = ({ isDefaultLocale }) => {
235
223
  const { formatMessage } = reactIntl.useIntl();
@@ -253,7 +241,7 @@ const AdvancedForm = ({ isDefaultLocale }) => {
253
241
  hint: field.hint ? formatMessage(field.hint) : void 0,
254
242
  label: formatMessage(field.label)
255
243
  }));
256
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: form.map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: size, children: /* @__PURE__ */ jsxRuntime.jsx(FormRenderer, { ...field }) }, field.name)) });
244
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: form.map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: size, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsx(FormRenderer, { ...field }) }, field.name)) });
257
245
  };
258
246
  const FormRenderer = (field) => {
259
247
  switch (field.type) {
@@ -283,21 +271,21 @@ const EnumerationInput = ({
283
271
  onChange(name, value2);
284
272
  }
285
273
  };
286
- return /* @__PURE__ */ jsxRuntime.jsx(
287
- designSystem.SingleSelect,
288
- {
289
- disabled,
290
- error,
291
- hint,
292
- label,
293
- name,
294
- onChange: handleChange,
295
- placeholder,
296
- required,
297
- value,
298
- children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: option.value, children: option.label }, option.value))
299
- }
300
- );
274
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { error, hint, name, required, children: [
275
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: label }),
276
+ /* @__PURE__ */ jsxRuntime.jsx(
277
+ designSystem.SingleSelect,
278
+ {
279
+ disabled,
280
+ onChange: handleChange,
281
+ placeholder,
282
+ value,
283
+ children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: option.value, children: option.label }, option.value))
284
+ }
285
+ ),
286
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {}),
287
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
288
+ ] });
301
289
  };
302
290
  const DeleteLocale = ({ id, name }) => {
303
291
  const { formatMessage } = reactIntl.useIntl();
@@ -319,6 +307,7 @@ const DeleteLocale = ({ id, name }) => {
319
307
  defaultMessage: "Deleted locale"
320
308
  })
321
309
  });
310
+ setVisible(false);
322
311
  } catch (err) {
323
312
  toggleNotification({
324
313
  type: "danger",
@@ -329,8 +318,8 @@ const DeleteLocale = ({ id, name }) => {
329
318
  });
330
319
  }
331
320
  };
332
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
333
- /* @__PURE__ */ jsxRuntime.jsx(
321
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Dialog.Root, { open: visible, onOpenChange: setVisible, children: [
322
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
334
323
  designSystem.IconButton,
335
324
  {
336
325
  onClick: () => setVisible(true),
@@ -343,11 +332,11 @@ const DeleteLocale = ({ id, name }) => {
343
332
  name
344
333
  }
345
334
  ),
346
- icon: /* @__PURE__ */ jsxRuntime.jsx(icons.Trash, {}),
347
- borderWidth: 0
335
+ variant: "ghost",
336
+ children: /* @__PURE__ */ jsxRuntime.jsx(icons.Trash, {})
348
337
  }
349
- ),
350
- /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.ConfirmDialog, { onConfirm: handleConfirm, onClose: () => setVisible(false), isOpen: visible })
338
+ ) }),
339
+ /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.ConfirmDialog, { onConfirm: handleConfirm })
351
340
  ] });
352
341
  };
353
342
  const EditLocale = (props) => {
@@ -367,14 +356,14 @@ const EditLocale = (props) => {
367
356
  name: props.name
368
357
  }
369
358
  ),
370
- icon: /* @__PURE__ */ jsxRuntime.jsx(icons.Pencil, {}),
371
- borderWidth: 0
359
+ variant: "ghost",
360
+ children: /* @__PURE__ */ jsxRuntime.jsx(icons.Pencil, {})
372
361
  }
373
362
  ),
374
- visible ? /* @__PURE__ */ jsxRuntime.jsx(EditModal, { ...props, onClose: () => setVisible(false) }) : null
363
+ /* @__PURE__ */ jsxRuntime.jsx(EditModal, { ...props, open: visible, onOpenChange: setVisible })
375
364
  ] });
376
365
  };
377
- const EditModal = ({ id, code, isDefault, name, onClose }) => {
366
+ const EditModal = ({ id, code, isDefault, name, open, onOpenChange }) => {
378
367
  const { toggleNotification } = strapiAdmin.useNotification();
379
368
  const {
380
369
  _unstableFormatAPIError: formatAPIError,
@@ -382,7 +371,7 @@ const EditModal = ({ id, code, isDefault, name, onClose }) => {
382
371
  } = strapiAdmin.useAPIErrorHandler();
383
372
  const refetchPermissions = strapiAdmin.useAuth("EditModal", (state) => state.refetchPermissions);
384
373
  const { formatMessage } = reactIntl.useIntl();
385
- const titleId = React__namespace.useId();
374
+ const titleId = designSystem.useId();
386
375
  const [updateLocale] = index.useUpdateLocaleMutation();
387
376
  const handleSubmit = async ({ code: _code, ...data }, helpers) => {
388
377
  try {
@@ -391,7 +380,7 @@ const EditModal = ({ id, code, isDefault, name, onClose }) => {
391
380
  ...data
392
381
  });
393
382
  if ("error" in res) {
394
- if (index.isBaseQueryError(res.error) && res.error.name === "ValidationError") {
383
+ if (isBaseQueryError(res.error) && res.error.name === "ValidationError") {
395
384
  helpers.setErrors(formatValidationErrors(res.error));
396
385
  } else {
397
386
  toggleNotification({ type: "danger", message: formatAPIError(res.error) });
@@ -406,7 +395,7 @@ const EditModal = ({ id, code, isDefault, name, onClose }) => {
406
395
  })
407
396
  });
408
397
  refetchPermissions();
409
- onClose();
398
+ onOpenChange(false);
410
399
  } catch (err) {
411
400
  toggleNotification({
412
401
  type: "danger",
@@ -417,7 +406,7 @@ const EditModal = ({ id, code, isDefault, name, onClose }) => {
417
406
  });
418
407
  }
419
408
  };
420
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalLayout, { onClose, labelledBy: titleId, children: /* @__PURE__ */ jsxRuntime.jsxs(
409
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Root, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Content, { children: /* @__PURE__ */ jsxRuntime.jsxs(
421
410
  strapiAdmin.Form,
422
411
  {
423
412
  method: "PUT",
@@ -429,53 +418,45 @@ const EditModal = ({ id, code, isDefault, name, onClose }) => {
429
418
  },
430
419
  validationSchema: LOCALE_SCHEMA,
431
420
  children: [
432
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "bold", textColor: "neutral800", as: "h2", id: titleId, children: formatMessage({
433
- id: index.getTranslation("Settings.list.actions.edit"),
434
- defaultMessage: "Edit a locale"
435
- }) }) }),
436
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalBody, { children: /* @__PURE__ */ jsxRuntime.jsxs(
437
- designSystem.TabGroup,
421
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Header, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Title, { children: formatMessage(
438
422
  {
439
- label: formatMessage({
440
- id: index.getTranslation("Settings.locales.modal.title"),
441
- defaultMessage: "Configurations"
442
- }),
443
- variant: "simple",
444
- children: [
445
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", children: [
446
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "h2", variant: "beta", children: formatMessage({
447
- id: index.getTranslation("Settings.locales.modal.title"),
448
- defaultMessage: "Configuration"
449
- }) }),
450
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs, { children: [
451
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tab, { children: formatMessage({
452
- id: index.getTranslation("Settings.locales.modal.base"),
453
- defaultMessage: "Basic settings"
454
- }) }),
455
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tab, { children: formatMessage({
456
- id: index.getTranslation("Settings.locales.modal.advanced"),
457
- defaultMessage: "Advanced settings"
458
- }) })
459
- ] })
460
- ] }),
461
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Divider, {}),
462
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingTop: 7, paddingBottom: 7, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.TabPanels, { children: [
463
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.TabPanel, { children: /* @__PURE__ */ jsxRuntime.jsx(BaseForm, { mode: "edit" }) }),
464
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.TabPanel, { children: /* @__PURE__ */ jsxRuntime.jsx(AdvancedForm, { isDefaultLocale: isDefault }) })
465
- ] }) })
466
- ]
467
- }
468
- ) }),
469
- /* @__PURE__ */ jsxRuntime.jsx(
470
- designSystem.ModalFooter,
423
+ id: index.getTranslation("Settings.list.actions.edit"),
424
+ defaultMessage: "Edit a locale"
425
+ },
471
426
  {
472
- startActions: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick: onClose, children: formatMessage({ id: "app.components.Button.cancel", defaultMessage: "Cancel" }) }),
473
- endActions: /* @__PURE__ */ jsxRuntime.jsx(SubmitButton, {})
427
+ name
474
428
  }
475
- )
429
+ ) }) }),
430
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Body, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs.Root, { variant: "simple", defaultValue: "basic", children: [
431
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", children: [
432
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "h2", variant: "beta", id: titleId, children: formatMessage({
433
+ id: index.getTranslation("Settings.locales.modal.title"),
434
+ defaultMessage: "Configuration"
435
+ }) }),
436
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs.List, { "aria-labelledby": titleId, children: [
437
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Trigger, { value: "basic", children: formatMessage({
438
+ id: index.getTranslation("Settings.locales.modal.base"),
439
+ defaultMessage: "Basic settings"
440
+ }) }),
441
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Trigger, { value: "advanced", children: formatMessage({
442
+ id: index.getTranslation("Settings.locales.modal.advanced"),
443
+ defaultMessage: "Advanced settings"
444
+ }) })
445
+ ] })
446
+ ] }),
447
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Divider, {}),
448
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { paddingTop: 7, paddingBottom: 7, children: [
449
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "basic", children: /* @__PURE__ */ jsxRuntime.jsx(BaseForm, { mode: "edit" }) }),
450
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "advanced", children: /* @__PURE__ */ jsxRuntime.jsx(AdvancedForm, { isDefaultLocale: isDefault }) })
451
+ ] })
452
+ ] }) }),
453
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Footer, { children: [
454
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Close, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", children: formatMessage({ id: "app.components.Button.cancel", defaultMessage: "Cancel" }) }) }),
455
+ /* @__PURE__ */ jsxRuntime.jsx(SubmitButton, {})
456
+ ] })
476
457
  ]
477
458
  }
478
- ) });
459
+ ) }) });
479
460
  };
480
461
  const LocaleTable = ({ locales = [], canDelete, canUpdate }) => {
481
462
  const [editLocaleId, setEditLocaleId] = React__namespace.useState();
@@ -521,7 +502,14 @@ const LocaleTable = ({ locales = [], canDelete, canUpdate }) => {
521
502
  ]
522
503
  }
523
504
  ),
524
- editLocaleId === locale.id ? /* @__PURE__ */ jsxRuntime.jsx(EditModal, { ...locale, onClose: () => setEditLocaleId(void 0) }) : null
505
+ /* @__PURE__ */ jsxRuntime.jsx(
506
+ EditModal,
507
+ {
508
+ ...locale,
509
+ onOpenChange: () => setEditLocaleId(void 0),
510
+ open: editLocaleId === locale.id
511
+ }
512
+ )
525
513
  ] }, locale.id)) })
526
514
  ] });
527
515
  };
@@ -582,4 +570,4 @@ const ProtectedSettingsPage = () => {
582
570
  };
583
571
  exports.ProtectedSettingsPage = ProtectedSettingsPage;
584
572
  exports.SettingsPage = SettingsPage;
585
- //# sourceMappingURL=SettingsPage-Djqsdrzs.js.map
573
+ //# sourceMappingURL=SettingsPage-BsHtr3lV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsPage-BsHtr3lV.js","sources":["../../admin/src/utils/baseQuery.ts","../../admin/src/components/CreateLocale.tsx","../../admin/src/components/DeleteLocale.tsx","../../admin/src/components/EditLocale.tsx","../../admin/src/components/LocaleTable.tsx","../../admin/src/pages/SettingsPage.tsx"],"sourcesContent":["import { SerializedError } from '@reduxjs/toolkit';\nimport { type ApiError, type UnknownApiError } from '@strapi/admin/strapi-admin';\n\ntype BaseQueryError = ApiError | UnknownApiError | SerializedError;\n\nconst isBaseQueryError = (error: BaseQueryError): error is ApiError | UnknownApiError => {\n return error.name !== undefined;\n};\n\nexport { isBaseQueryError };\n","import * as React from 'react';\n\nimport {\n Form,\n type InputProps,\n InputRenderer,\n useField,\n type FormHelpers,\n useForm,\n useAPIErrorHandler,\n useNotification,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n ButtonProps,\n Divider,\n Field,\n Flex,\n Grid,\n Modal,\n SingleSelect,\n SingleSelectOption,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Check, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { CreateLocale } from '../../../shared/contracts/locales';\nimport { useCreateLocaleMutation, useGetDefaultLocalesQuery } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\n/* -------------------------------------------------------------------------------------------------\n * CreateLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateLocaleProps extends Pick<ButtonProps, 'disabled' | 'variant'> {}\n\nconst CreateLocale = ({ disabled, variant = 'default' }: CreateLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <Modal.Root open={visible} onOpenChange={setVisible}>\n <Modal.Trigger>\n <Button\n variant={variant}\n disabled={disabled}\n startIcon={<Plus />}\n onClick={() => setVisible(true)}\n size=\"S\"\n >\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Button>\n </Modal.Trigger>\n <CreateModal onClose={() => setVisible(false)} />\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateModal\n * -----------------------------------------------------------------------------------------------*/\n\nconst LOCALE_SCHEMA = yup.object().shape({\n code: yup.string().nullable().required({\n id: 'Settings.locales.modal.create.code.error',\n defaultMessage: 'Please select a locale',\n }),\n name: yup\n .string()\n .nullable()\n .max(50, {\n id: 'Settings.locales.modal.create.name.error.min',\n defaultMessage: 'The locale display name can only be less than 50 characters.',\n })\n .required({\n id: 'Settings.locales.modal.create.name.error.required',\n defaultMessage: 'Please give the locale a display name',\n }),\n isDefault: yup.boolean(),\n});\n\ntype FormValues = CreateLocale.Request['body'];\n\nconst initialFormValues = {\n code: '',\n name: '',\n isDefault: false,\n} satisfies FormValues;\n\ntype ModalCreateProps = {\n onClose: () => void;\n};\n\nconst CreateModal = ({ onClose }: ModalCreateProps) => {\n const titleId = useId();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const [createLocale] = useCreateLocaleMutation();\n const { formatMessage } = useIntl();\n const refetchPermissions = useAuth('CreateModal', (state) => state.refetchPermissions);\n\n const handleSubmit = async (values: FormValues, helpers: FormHelpers<FormValues>) => {\n try {\n const res = await createLocale(values);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.create.success'),\n defaultMessage: 'Created locale',\n }),\n });\n\n refetchPermissions();\n onClose();\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Content>\n <Form\n method=\"POST\"\n initialValues={initialFormValues}\n validationSchema={LOCALE_SCHEMA}\n onSubmit={handleSubmit}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n\n <Divider />\n\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SubmitButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst SubmitButton = () => {\n const { formatMessage } = useIntl();\n const isSubmitting = useForm('SubmitButton', (state) => state.isSubmitting);\n const modified = useForm('SubmitButton', (state) => state.modified);\n\n return (\n <Button type=\"submit\" startIcon={<Check />} disabled={isSubmitting || !modified}>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BaseForm\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseFormProps {\n mode?: 'create' | 'edit';\n}\n\nconst BaseForm = ({ mode = 'create' }: BaseFormProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data: defaultLocales, error } = useGetDefaultLocalesQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (!Array.isArray(defaultLocales)) {\n return null;\n }\n\n const options = defaultLocales.map((locale) => ({\n label: locale.name,\n value: locale.code,\n }));\n\n const translatedForm = [\n {\n disabled: mode !== 'create',\n label: {\n id: getTranslation('Settings.locales.modal.create.code.label'),\n defaultMessage: 'Locales',\n },\n name: 'code',\n options,\n placeholder: {\n id: 'components.placeholder.select',\n defaultMessage: 'Select',\n },\n required: true,\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: {\n id: getTranslation('Settings.locales.modal.create.name.label.description'),\n defaultMessage: 'Locale will be displayed under that name in the administration panel',\n },\n label: {\n id: getTranslation('Settings.locales.modal.create.name.label'),\n defaultMessage: 'Locale display name',\n },\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n placeholder: field.placeholder ? formatMessage(field.placeholder) : undefined,\n }));\n\n return (\n <Grid.Root gap={4}>\n {translatedForm.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AdvancedForm\n * -----------------------------------------------------------------------------------------------*/\n\ntype AdvancedFormProps = {\n isDefaultLocale?: boolean;\n};\n\nconst AdvancedForm = ({ isDefaultLocale }: AdvancedFormProps) => {\n const { formatMessage } = useIntl();\n\n const form = [\n {\n disabled: isDefaultLocale,\n hint: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault.hint'),\n defaultMessage: 'One default locale is required, change it by selecting another one',\n },\n label: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault'),\n defaultMessage: 'Set as default locale',\n },\n name: 'isDefault',\n size: 6,\n type: 'boolean' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n })) satisfies InputProps[];\n\n return (\n <Grid.Root gap={4}>\n {form.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormRenderer\n * -----------------------------------------------------------------------------------------------*/\n\nconst FormRenderer = (field: InputProps) => {\n switch (field.type) {\n /**\n * This will override the default input renderer\n * choice for `enumeration`.\n */\n case 'enumeration':\n return <EnumerationInput {...field} />;\n default:\n return <InputRenderer {...field} />;\n }\n};\n\nconst EnumerationInput = ({\n disabled,\n hint,\n label,\n name,\n options,\n placeholder,\n required,\n}: Extract<InputProps, { type: 'enumeration' }>) => {\n const { value, error, onChange } = useField(name);\n const { data: defaultLocales = [] } = useGetDefaultLocalesQuery();\n\n const handleChange = (value: string) => {\n if (Array.isArray(defaultLocales)) {\n // We know it exists because the options are created from the list of default locales\n const locale = defaultLocales.find((locale) => locale.code === value)!;\n\n onChange(name, value);\n // This lets us automatically fill the name field with the locale name\n onChange('name', locale.name);\n } else {\n onChange(name, value);\n }\n };\n\n return (\n <Field.Root error={error} hint={hint} name={name} required={required}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect\n disabled={disabled}\n // @ts-expect-error – This will dissapear when the DS removes support for numbers to be returned by SingleSelect.\n onChange={handleChange}\n placeholder={placeholder}\n value={value}\n >\n {options.map((option) => (\n <SingleSelectOption value={option.value} key={option.value}>\n {option.label}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nexport { CreateLocale, BaseForm, AdvancedForm, SubmitButton, LOCALE_SCHEMA };\n","import * as React from 'react';\n\nimport { ConfirmDialog, useAPIErrorHandler, useNotification } from '@strapi/admin/strapi-admin';\nimport { Dialog, IconButton } from '@strapi/design-system';\nimport { Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useDeleteLocaleMutation } from '../services/locales';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport type { Locale } from '../../../shared/contracts/locales';\n\n/* -------------------------------------------------------------------------------------------------\n * DeleteLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DeleteLocaleProps extends Locale {}\n\nconst DeleteLocale = ({ id, name }: DeleteLocaleProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [visible, setVisible] = React.useState(false);\n\n const [deleteLocale] = useDeleteLocaleMutation();\n const handleConfirm = async () => {\n try {\n const res = await deleteLocale(id);\n\n if ('error' in res) {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.delete.success'),\n defaultMessage: 'Deleted locale',\n }),\n });\n\n setVisible(false);\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Dialog.Root open={visible} onOpenChange={setVisible}>\n <Dialog.Trigger>\n <IconButton\n onClick={() => setVisible(true)}\n label={formatMessage(\n {\n id: getTranslation('Settings.list.actions.delete'),\n defaultMessage: 'Delete {name} locale',\n },\n {\n name,\n }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleConfirm} />\n </Dialog.Root>\n );\n};\n\nexport { DeleteLocale };\n","import * as React from 'react';\n\nimport {\n useNotification,\n useAPIErrorHandler,\n Form,\n FormHelpers,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Divider,\n Flex,\n IconButton,\n Modal,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Locale, UpdateLocale } from '../../../shared/contracts/locales';\nimport { useUpdateLocaleMutation } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport { AdvancedForm, BaseForm, LOCALE_SCHEMA, SubmitButton } from './CreateLocale';\n\n/* -------------------------------------------------------------------------------------------------\n * EditLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditLocaleProps extends Omit<EditModalProps, 'open' | 'onOpenChange'> {}\n\nconst EditLocale = (props: EditLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <>\n <IconButton\n onClick={() => setVisible(true)}\n label={formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit {name} locale',\n },\n {\n name: props.name,\n }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n <EditModal {...props} open={visible} onOpenChange={setVisible} />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditModalProps extends Pick<Locale, 'id' | 'isDefault' | 'name' | 'code'> {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\ntype FormValues = UpdateLocale.Request['body'] & { code: string };\n\n/**\n * @internal\n * @description Exported to be used when someone clicks on a table row.\n */\nconst EditModal = ({ id, code, isDefault, name, open, onOpenChange }: EditModalProps) => {\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const refetchPermissions = useAuth('EditModal', (state) => state.refetchPermissions);\n const { formatMessage } = useIntl();\n const titleId = useId();\n\n const [updateLocale] = useUpdateLocaleMutation();\n const handleSubmit = async (\n { code: _code, ...data }: FormValues,\n helpers: FormHelpers<FormValues>\n ) => {\n try {\n /**\n * We don't need to send the code, because the\n * code can never be changed.\n */\n const res = await updateLocale({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.edit.success'),\n defaultMessage: 'Updated locale',\n }),\n });\n\n refetchPermissions();\n onOpenChange(false);\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Root open={open} onOpenChange={onOpenChange}>\n <Modal.Content>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={{\n code,\n name,\n isDefault,\n }}\n validationSchema={LOCALE_SCHEMA}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit a locale',\n },\n {\n name,\n }\n )}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider />\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm mode=\"edit\" />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm isDefaultLocale={isDefault} />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\nexport { EditLocale, EditModal };\n","import * as React from 'react';\n\nimport {\n Flex,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTranslation } from '../utils/getTranslation';\n\nimport { DeleteLocale } from './DeleteLocale';\nimport { EditLocale, EditModal } from './EditLocale';\n\nimport type { Locale } from '../../../shared/contracts/locales';\n\n/* -------------------------------------------------------------------------------------------------\n * LocaleTable\n * -----------------------------------------------------------------------------------------------*/\n\ntype LocaleTableProps = {\n locales?: Locale[];\n canDelete?: boolean;\n canUpdate?: boolean;\n onDeleteLocale?: (locale: Locale) => void;\n onEditLocale?: (locale: Locale) => void;\n};\n\nconst LocaleTable = ({ locales = [], canDelete, canUpdate }: LocaleTableProps) => {\n const [editLocaleId, setEditLocaleId] = React.useState<Locale['id']>();\n const { formatMessage } = useIntl();\n\n const handleClick = (localeId: Locale['id']) => () => {\n if (canUpdate) {\n setEditLocaleId(localeId);\n }\n };\n\n return (\n <Table colCount={4} rowCount={locales.length + 1}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('Settings.locales.row.id'),\n defaultMessage: 'ID',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('Settings.locales.row.displayName'),\n defaultMessage: 'Display name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('Settings.locales.row.default-locale'),\n defaultMessage: 'Default locale',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>Actions</VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {locales.map((locale) => (\n <React.Fragment key={locale.id}>\n <Tr\n onClick={handleClick(locale.id)}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td>\n <Typography textColor=\"neutral800\">{locale.id}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{locale.name}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {locale.isDefault\n ? formatMessage({\n id: getTranslation('Settings.locales.default'),\n defaultMessage: 'Default',\n })\n : null}\n </Typography>\n </Td>\n <Td>\n <Flex gap={1} justifyContent=\"flex-end\" onClick={(e) => e.stopPropagation()}>\n {canUpdate && <EditLocale {...locale} />}\n {canDelete && !locale.isDefault && <DeleteLocale {...locale} />}\n </Flex>\n </Td>\n </Tr>\n <EditModal\n {...locale}\n onOpenChange={() => setEditLocaleId(undefined)}\n open={editLocaleId === locale.id}\n />\n </React.Fragment>\n ))}\n </Tbody>\n </Table>\n );\n};\n\nexport { LocaleTable };\nexport type { LocaleTableProps };\n","import * as React from 'react';\n\nimport {\n Page,\n useAPIErrorHandler,\n useNotification,\n useRBAC,\n Layouts,\n} from '@strapi/admin/strapi-admin';\nimport { EmptyStateLayout } from '@strapi/design-system';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { CreateLocale } from '../components/CreateLocale';\nimport { LocaleTable } from '../components/LocaleTable';\nimport { PERMISSIONS } from '../constants';\nimport { useGetLocalesQuery } from '../services/locales';\nimport { getTranslation } from '../utils/getTranslation';\n\nconst SettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { data: locales, isLoading: isLoadingLocales, error } = useGetLocalesQuery();\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canUpdate, canCreate, canDelete },\n } = useRBAC(PERMISSIONS);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const isLoading = isLoadingLocales || isLoadingRBAC;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !Array.isArray(locales)) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main tabIndex={-1}>\n <Layouts.Header\n primaryAction={<CreateLocale disabled={!canCreate} />}\n title={formatMessage({\n id: getTranslation('plugin.name'),\n defaultMessage: 'Internationalization',\n })}\n subtitle={formatMessage({\n id: getTranslation('Settings.list.description'),\n defaultMessage: 'Configure the settings',\n })}\n />\n <Layouts.Content>\n {locales.length > 0 ? (\n <LocaleTable locales={locales} canDelete={canDelete} canUpdate={canUpdate} />\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width={undefined} height={undefined} />}\n content={formatMessage({\n id: getTranslation('Settings.list.empty.title'),\n defaultMessage: 'There are no locales',\n })}\n action={<CreateLocale disabled={!canCreate} variant=\"secondary\" />}\n />\n )}\n </Layouts.Content>\n </Page.Main>\n );\n};\n\nconst ProtectedSettingsPage = () => {\n return (\n <Page.Protect permissions={PERMISSIONS.read}>\n <SettingsPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedSettingsPage, SettingsPage };\n"],"names":["useIntl","React","Modal","jsx","Button","Plus","getTranslation","yup","useId","useNotification","useAPIErrorHandler","useCreateLocaleMutation","useAuth","jsxs","Form","Tabs","Flex","Typography","Divider","Box","useForm","Check","useGetDefaultLocalesQuery","Grid","InputRenderer","useField","value","locale","Field","SingleSelect","SingleSelectOption","useDeleteLocaleMutation","Dialog","IconButton","Trash","ConfirmDialog","Fragment","Pencil","useUpdateLocaleMutation","Table","Thead","Tr","Th","VisuallyHidden","Tbody","Td","useGetLocalesQuery","useRBAC","PERMISSIONS","Page","Layouts","EmptyStateLayout","EmptyDocuments"],"mappings":"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"}
@@ -1,14 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const en = {
4
- "actions.delete.label": "Delete locale",
4
+ "actions.delete.label": "Delete entry ({locale})",
5
5
  "actions.delete.dialog.title": "Confirmation",
6
6
  "actions.delete.dialog.body": "Are you sure you want to delete this locale?",
7
7
  "actions.delete.error": "An error occurred while trying to delete the document locale.",
8
8
  "CMEditViewCopyLocale.copy-failure": "Failed to copy locale",
9
9
  "CMEditViewCopyLocale.copy-success": "Locale copied",
10
10
  "CMEditViewCopyLocale.copy-text": "Fill in from another locale",
11
+ "CMEditViewCopyLocale.cancel-text": "No, cancel",
11
12
  "CMEditViewCopyLocale.submit-text": "Yes, fill in",
13
+ "CMEditViewCopyLocale.dialog.title": "Confirmation",
14
+ "CMEditViewCopyLocale.dialog.body": "Your current content will be erased and filled by the content of the selected locale:",
15
+ "CMEditViewCopyLocale.dialog.field.label": "Locale",
16
+ "CMEditViewCopyLocale.dialog.field.placeholder": "Select one locale...",
17
+ "CMEditViewBulkLocale.publish-title": "Publish multiple locales",
18
+ "CMEditViewBulkLocale.unpublish-title": "Unpublish multiple locales",
19
+ "CMEditViewBulkLocale.status": "Status",
20
+ "CMEditViewBulkLocale.publication-status": "Publication Status",
21
+ "CMEditViewBulkLocale.draft-relation-warning": "Some locales are related to draft entries. Publishing them could leave broken links in your app.",
22
+ "CMEditViewBulkLocale.continue-confirmation": "Are you sure you want to continue?",
23
+ "CMEditViewLocalePicker.locale.create": "Create <bold>{locale}</bold> locale",
12
24
  "CMListView.popover.display-locales.label": "Display translated locales",
13
25
  "CheckboxConfirmation.Modal.body": "Do you want to disable it?",
14
26
  "CheckboxConfirmation.Modal.button-confirm": "Yes, disable",
@@ -66,4 +78,4 @@ const en = {
66
78
  "plugin.schema.i18n.localized.label-field": "Enable localization for this field"
67
79
  };
68
80
  exports.default = en;
69
- //# sourceMappingURL=en-BuBc6LKZ.js.map
81
+ //# sourceMappingURL=en-BKBz3tro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en-BKBz3tro.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,12 +1,24 @@
1
1
  const en = {
2
- "actions.delete.label": "Delete locale",
2
+ "actions.delete.label": "Delete entry ({locale})",
3
3
  "actions.delete.dialog.title": "Confirmation",
4
4
  "actions.delete.dialog.body": "Are you sure you want to delete this locale?",
5
5
  "actions.delete.error": "An error occurred while trying to delete the document locale.",
6
6
  "CMEditViewCopyLocale.copy-failure": "Failed to copy locale",
7
7
  "CMEditViewCopyLocale.copy-success": "Locale copied",
8
8
  "CMEditViewCopyLocale.copy-text": "Fill in from another locale",
9
+ "CMEditViewCopyLocale.cancel-text": "No, cancel",
9
10
  "CMEditViewCopyLocale.submit-text": "Yes, fill in",
11
+ "CMEditViewCopyLocale.dialog.title": "Confirmation",
12
+ "CMEditViewCopyLocale.dialog.body": "Your current content will be erased and filled by the content of the selected locale:",
13
+ "CMEditViewCopyLocale.dialog.field.label": "Locale",
14
+ "CMEditViewCopyLocale.dialog.field.placeholder": "Select one locale...",
15
+ "CMEditViewBulkLocale.publish-title": "Publish multiple locales",
16
+ "CMEditViewBulkLocale.unpublish-title": "Unpublish multiple locales",
17
+ "CMEditViewBulkLocale.status": "Status",
18
+ "CMEditViewBulkLocale.publication-status": "Publication Status",
19
+ "CMEditViewBulkLocale.draft-relation-warning": "Some locales are related to draft entries. Publishing them could leave broken links in your app.",
20
+ "CMEditViewBulkLocale.continue-confirmation": "Are you sure you want to continue?",
21
+ "CMEditViewLocalePicker.locale.create": "Create <bold>{locale}</bold> locale",
10
22
  "CMListView.popover.display-locales.label": "Display translated locales",
11
23
  "CheckboxConfirmation.Modal.body": "Do you want to disable it?",
12
24
  "CheckboxConfirmation.Modal.button-confirm": "Yes, disable",
@@ -66,4 +78,4 @@ const en = {
66
78
  export {
67
79
  en as default
68
80
  };
69
- //# sourceMappingURL=en-CnrTsjWS.mjs.map
81
+ //# sourceMappingURL=en-DlXfy6Gy.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en-DlXfy6Gy.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}