@strapi/content-manager 0.0.0-experimental.c3e9d4b26f9fd3d9eb530b5c11f9baa1d09b13ad → 0.0.0-experimental.c592deb623aed3f74ef7fdacfad9757ed59d34f7
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.
- package/LICENSE +18 -3
- package/dist/_chunks/{ComponentConfigurationPage-BMajAl1u.mjs → ComponentConfigurationPage-7-qB29e7.mjs} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-BMajAl1u.mjs.map → ComponentConfigurationPage-7-qB29e7.mjs.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-y_7iLdmB.js → ComponentConfigurationPage-DP7AC0UU.js} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-y_7iLdmB.js.map → ComponentConfigurationPage-DP7AC0UU.js.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-CcOoD26O.mjs → EditConfigurationPage-CI4XoymK.mjs} +3 -3
- package/dist/_chunks/{EditConfigurationPage-CcOoD26O.mjs.map → EditConfigurationPage-CI4XoymK.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-CPVB8Uqc.js → EditConfigurationPage-DITVliEI.js} +3 -3
- package/dist/_chunks/{EditConfigurationPage-CPVB8Uqc.js.map → EditConfigurationPage-DITVliEI.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-CTTDHKkQ.js → EditViewPage-CUS2EAhB.js} +62 -47
- package/dist/_chunks/EditViewPage-CUS2EAhB.js.map +1 -0
- package/dist/_chunks/{EditViewPage-DWb0DE7R.mjs → EditViewPage-Dzpno8xI.mjs} +63 -48
- package/dist/_chunks/EditViewPage-Dzpno8xI.mjs.map +1 -0
- package/dist/_chunks/{Field-DnStdvQw.mjs → Field-B_jG_EV9.mjs} +541 -221
- package/dist/_chunks/Field-B_jG_EV9.mjs.map +1 -0
- package/dist/_chunks/{Field-C5Z1Ivdv.js → Field-CtUU1Fg8.js} +543 -223
- package/dist/_chunks/Field-CtUU1Fg8.js.map +1 -0
- package/dist/_chunks/{Form-DqGgE55Q.mjs → Form-BXHao2mZ.mjs} +53 -35
- package/dist/_chunks/Form-BXHao2mZ.mjs.map +1 -0
- package/dist/_chunks/{Form-B81OtW-k.js → Form-DTqO0ymI.js} +51 -33
- package/dist/_chunks/Form-DTqO0ymI.js.map +1 -0
- package/dist/_chunks/{History-DS6-HCYX.mjs → History-2Ah2CQ4T.mjs} +52 -29
- package/dist/_chunks/History-2Ah2CQ4T.mjs.map +1 -0
- package/dist/_chunks/{History-4NbOq2dX.js → History-C_uSGzO5.js} +51 -28
- package/dist/_chunks/History-C_uSGzO5.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-DQJJltko.mjs → ListConfigurationPage-BjSJlaoC.mjs} +58 -48
- package/dist/_chunks/ListConfigurationPage-BjSJlaoC.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-CpfstlYY.js → ListConfigurationPage-nyuP7OSy.js} +57 -46
- package/dist/_chunks/ListConfigurationPage-nyuP7OSy.js.map +1 -0
- package/dist/_chunks/{ListViewPage-nQrOQuVo.mjs → ListViewPage-B75x3nz2.mjs} +103 -102
- package/dist/_chunks/ListViewPage-B75x3nz2.mjs.map +1 -0
- package/dist/_chunks/{ListViewPage-CA3I75m5.js → ListViewPage-DHgHD8Xg.js} +105 -104
- package/dist/_chunks/ListViewPage-DHgHD8Xg.js.map +1 -0
- package/dist/_chunks/{NoContentTypePage-Dldu-_Mx.js → NoContentTypePage-CDUKdZ7d.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-Dldu-_Mx.js.map → NoContentTypePage-CDUKdZ7d.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-DbnHE22g.mjs → NoContentTypePage-DUacQSyF.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-DbnHE22g.mjs.map → NoContentTypePage-DUacQSyF.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-fOIkQM0v.mjs → NoPermissionsPage-SFllMekk.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-fOIkQM0v.mjs.map → NoPermissionsPage-SFllMekk.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-CO2MK200.js → NoPermissionsPage-zwIZydDI.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-CO2MK200.js.map → NoPermissionsPage-zwIZydDI.js.map} +1 -1
- package/dist/_chunks/{Relations-BDRl99Ux.mjs → Relations-D2NRW8fC.mjs} +14 -10
- package/dist/_chunks/Relations-D2NRW8fC.mjs.map +1 -0
- package/dist/_chunks/{Relations-DG2jnOcr.js → Relations-NFLaRNPr.js} +14 -10
- package/dist/_chunks/Relations-NFLaRNPr.js.map +1 -0
- package/dist/_chunks/{en-fbKQxLGn.js → en-BlhnxQfj.js} +11 -9
- package/dist/_chunks/{en-fbKQxLGn.js.map → en-BlhnxQfj.js.map} +1 -1
- package/dist/_chunks/{en-Ux26r5pl.mjs → en-C8YBvRrK.mjs} +11 -9
- package/dist/_chunks/{en-Ux26r5pl.mjs.map → en-C8YBvRrK.mjs.map} +1 -1
- package/dist/_chunks/{index-Drt2DN7v.mjs → index-C9HxCo5R.mjs} +1008 -867
- package/dist/_chunks/index-C9HxCo5R.mjs.map +1 -0
- package/dist/_chunks/{index-BZoNZMXL.js → index-ovJRE1FM.js} +998 -857
- package/dist/_chunks/index-ovJRE1FM.js.map +1 -0
- package/dist/_chunks/{layout-BzAbmoO6.mjs → layout-DaUjDiWQ.mjs} +27 -14
- package/dist/_chunks/layout-DaUjDiWQ.mjs.map +1 -0
- package/dist/_chunks/{layout-DEYBqgF1.js → layout-UNWstw_s.js} +25 -12
- package/dist/_chunks/layout-UNWstw_s.js.map +1 -0
- package/dist/_chunks/{relations-D26zVRdi.mjs → relations-D8iFAeRu.mjs} +2 -2
- package/dist/_chunks/{relations-D26zVRdi.mjs.map → relations-D8iFAeRu.mjs.map} +1 -1
- package/dist/_chunks/{relations-D0eZ4VWw.js → relations-NN3coOG5.js} +2 -2
- package/dist/_chunks/{relations-D0eZ4VWw.js.map → relations-NN3coOG5.js.map} +1 -1
- package/dist/_chunks/{usePrev-B9w_-eYc.js → useDebounce-CtcjDB3L.js} +14 -1
- package/dist/_chunks/useDebounce-CtcjDB3L.js.map +1 -0
- package/dist/_chunks/useDebounce-DmuSJIF3.mjs +29 -0
- package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +1 -0
- package/dist/admin/index.js +2 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +3 -2
- package/dist/admin/src/exports.d.ts +1 -1
- package/dist/admin/src/history/index.d.ts +3 -0
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/hooks/useDocument.d.ts +32 -1
- package/dist/admin/src/index.d.ts +1 -0
- package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +8 -3
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/constants.d.ts +4 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Relations.d.ts +20 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.d.ts +2 -2
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.d.ts +2 -2
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +6 -58
- package/dist/admin/src/pages/EditView/components/Header.d.ts +11 -11
- package/dist/admin/src/pages/ListView/components/BulkActions/Actions.d.ts +3 -30
- package/dist/admin/src/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.d.ts +2 -2
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/components.d.ts +2 -2
- package/dist/admin/src/services/contentTypes.d.ts +3 -3
- package/dist/admin/src/services/documents.d.ts +19 -17
- package/dist/admin/src/services/init.d.ts +1 -1
- package/dist/admin/src/services/relations.d.ts +2 -2
- package/dist/admin/src/services/uid.d.ts +3 -3
- package/dist/admin/src/utils/validation.d.ts +4 -1
- package/dist/server/index.js +191 -110
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +192 -111
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
- package/dist/server/src/controllers/relations.d.ts.map +1 -1
- package/dist/server/src/controllers/uid.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/dimensions.d.ts +4 -2
- package/dist/server/src/controllers/validation/dimensions.d.ts.map +1 -1
- package/dist/server/src/history/services/history.d.ts.map +1 -1
- package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
- package/dist/server/src/history/services/utils.d.ts +2 -1
- package/dist/server/src/history/services/utils.d.ts.map +1 -1
- package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
- package/dist/server/src/services/document-manager.d.ts.map +1 -1
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/permission-checker.d.ts.map +1 -1
- package/dist/server/src/services/utils/populate.d.ts.map +1 -1
- package/dist/shared/contracts/collection-types.d.ts +3 -1
- package/dist/shared/contracts/collection-types.d.ts.map +1 -1
- package/package.json +11 -11
- package/dist/_chunks/EditViewPage-CTTDHKkQ.js.map +0 -1
- package/dist/_chunks/EditViewPage-DWb0DE7R.mjs.map +0 -1
- package/dist/_chunks/Field-C5Z1Ivdv.js.map +0 -1
- package/dist/_chunks/Field-DnStdvQw.mjs.map +0 -1
- package/dist/_chunks/Form-B81OtW-k.js.map +0 -1
- package/dist/_chunks/Form-DqGgE55Q.mjs.map +0 -1
- package/dist/_chunks/History-4NbOq2dX.js.map +0 -1
- package/dist/_chunks/History-DS6-HCYX.mjs.map +0 -1
- package/dist/_chunks/ListConfigurationPage-CpfstlYY.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-DQJJltko.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-CA3I75m5.js.map +0 -1
- package/dist/_chunks/ListViewPage-nQrOQuVo.mjs.map +0 -1
- package/dist/_chunks/Relations-BDRl99Ux.mjs.map +0 -1
- package/dist/_chunks/Relations-DG2jnOcr.js.map +0 -1
- package/dist/_chunks/index-BZoNZMXL.js.map +0 -1
- package/dist/_chunks/index-Drt2DN7v.mjs.map +0 -1
- package/dist/_chunks/layout-BzAbmoO6.mjs.map +0 -1
- package/dist/_chunks/layout-DEYBqgF1.js.map +0 -1
- package/dist/_chunks/usePrev-B9w_-eYc.js.map +0 -1
- package/dist/_chunks/usePrev-DH6iah0A.mjs +0 -16
- package/dist/_chunks/usePrev-DH6iah0A.mjs.map +0 -1
- package/strapi-server.js +0 -3
@@ -5,9 +5,9 @@ const strapiAdmin = require("@strapi/admin/strapi-admin");
|
|
5
5
|
const designSystem = require("@strapi/design-system");
|
6
6
|
const pipe$1 = require("lodash/fp/pipe");
|
7
7
|
const reactIntl = require("react-intl");
|
8
|
-
const index = require("./index-
|
8
|
+
const index = require("./index-ovJRE1FM.js");
|
9
9
|
const fractionalIndexing = require("fractional-indexing");
|
10
|
-
const Relations = require("./Relations-
|
10
|
+
const Relations = require("./Relations-NFLaRNPr.js");
|
11
11
|
const Icons = require("@strapi/icons");
|
12
12
|
const styledComponents = require("styled-components");
|
13
13
|
const ComponentIcon = require("./ComponentIcon-BXdiCGQp.js");
|
@@ -17,7 +17,7 @@ const objects = require("./objects-gigeqt7s.js");
|
|
17
17
|
const slate = require("slate");
|
18
18
|
const slateHistory = require("slate-history");
|
19
19
|
const slateReact = require("slate-react");
|
20
|
-
const
|
20
|
+
const useDebounce = require("./useDebounce-CtcjDB3L.js");
|
21
21
|
const Toolbar = require("@radix-ui/react-toolbar");
|
22
22
|
const reactRouterDom = require("react-router-dom");
|
23
23
|
const CodeMirror = require("codemirror5");
|
@@ -194,6 +194,220 @@ const useLazyComponents = (componentUids = []) => {
|
|
194
194
|
}, []);
|
195
195
|
return { isLazyLoading: loading, lazyComponentStore, cleanup };
|
196
196
|
};
|
197
|
+
const codeLanguages = [
|
198
|
+
{
|
199
|
+
value: "asm",
|
200
|
+
label: "Assembly"
|
201
|
+
},
|
202
|
+
{
|
203
|
+
value: "bash",
|
204
|
+
label: "Bash"
|
205
|
+
},
|
206
|
+
{
|
207
|
+
value: "c",
|
208
|
+
label: "C"
|
209
|
+
},
|
210
|
+
{
|
211
|
+
value: "clojure",
|
212
|
+
label: "Clojure"
|
213
|
+
},
|
214
|
+
{
|
215
|
+
value: "cobol",
|
216
|
+
label: "COBOL"
|
217
|
+
},
|
218
|
+
{
|
219
|
+
value: "cpp",
|
220
|
+
label: "C++"
|
221
|
+
},
|
222
|
+
{
|
223
|
+
value: "csharp",
|
224
|
+
label: "C#"
|
225
|
+
},
|
226
|
+
{
|
227
|
+
value: "css",
|
228
|
+
label: "CSS"
|
229
|
+
},
|
230
|
+
{
|
231
|
+
value: "dart",
|
232
|
+
label: "Dart"
|
233
|
+
},
|
234
|
+
{
|
235
|
+
value: "dockerfile",
|
236
|
+
label: "Dockerfile"
|
237
|
+
},
|
238
|
+
{
|
239
|
+
value: "elixir",
|
240
|
+
label: "Elixir"
|
241
|
+
},
|
242
|
+
{
|
243
|
+
value: "erlang",
|
244
|
+
label: "Erlang"
|
245
|
+
},
|
246
|
+
{
|
247
|
+
value: "fortran",
|
248
|
+
label: "Fortran"
|
249
|
+
},
|
250
|
+
{
|
251
|
+
value: "fsharp",
|
252
|
+
label: "F#"
|
253
|
+
},
|
254
|
+
{
|
255
|
+
value: "go",
|
256
|
+
label: "Go"
|
257
|
+
},
|
258
|
+
{
|
259
|
+
value: "graphql",
|
260
|
+
label: "GraphQL"
|
261
|
+
},
|
262
|
+
{
|
263
|
+
value: "groovy",
|
264
|
+
label: "Groovy"
|
265
|
+
},
|
266
|
+
{
|
267
|
+
value: "haskell",
|
268
|
+
label: "Haskell"
|
269
|
+
},
|
270
|
+
{
|
271
|
+
value: "haxe",
|
272
|
+
label: "Haxe"
|
273
|
+
},
|
274
|
+
{
|
275
|
+
value: "html",
|
276
|
+
label: "HTML"
|
277
|
+
},
|
278
|
+
{
|
279
|
+
value: "ini",
|
280
|
+
label: "INI"
|
281
|
+
},
|
282
|
+
{
|
283
|
+
value: "java",
|
284
|
+
label: "Java"
|
285
|
+
},
|
286
|
+
{
|
287
|
+
value: "javascript",
|
288
|
+
label: "JavaScript"
|
289
|
+
},
|
290
|
+
{
|
291
|
+
value: "jsx",
|
292
|
+
label: "JavaScript (React)"
|
293
|
+
},
|
294
|
+
{
|
295
|
+
value: "json",
|
296
|
+
label: "JSON"
|
297
|
+
},
|
298
|
+
{
|
299
|
+
value: "julia",
|
300
|
+
label: "Julia"
|
301
|
+
},
|
302
|
+
{
|
303
|
+
value: "kotlin",
|
304
|
+
label: "Kotlin"
|
305
|
+
},
|
306
|
+
{
|
307
|
+
value: "latex",
|
308
|
+
label: "LaTeX"
|
309
|
+
},
|
310
|
+
{
|
311
|
+
value: "lua",
|
312
|
+
label: "Lua"
|
313
|
+
},
|
314
|
+
{
|
315
|
+
value: "markdown",
|
316
|
+
label: "Markdown"
|
317
|
+
},
|
318
|
+
{
|
319
|
+
value: "matlab",
|
320
|
+
label: "MATLAB"
|
321
|
+
},
|
322
|
+
{
|
323
|
+
value: "makefile",
|
324
|
+
label: "Makefile"
|
325
|
+
},
|
326
|
+
{
|
327
|
+
value: "objectivec",
|
328
|
+
label: "Objective-C"
|
329
|
+
},
|
330
|
+
{
|
331
|
+
value: "perl",
|
332
|
+
label: "Perl"
|
333
|
+
},
|
334
|
+
{
|
335
|
+
value: "php",
|
336
|
+
label: "PHP"
|
337
|
+
},
|
338
|
+
{
|
339
|
+
value: "plaintext",
|
340
|
+
label: "Plain text"
|
341
|
+
},
|
342
|
+
{
|
343
|
+
value: "powershell",
|
344
|
+
label: "PowerShell"
|
345
|
+
},
|
346
|
+
{
|
347
|
+
value: "python",
|
348
|
+
label: "Python"
|
349
|
+
},
|
350
|
+
{
|
351
|
+
value: "r",
|
352
|
+
label: "R"
|
353
|
+
},
|
354
|
+
{
|
355
|
+
value: "ruby",
|
356
|
+
label: "Ruby"
|
357
|
+
},
|
358
|
+
{
|
359
|
+
value: "rust",
|
360
|
+
label: "Rust"
|
361
|
+
},
|
362
|
+
{
|
363
|
+
value: "sas",
|
364
|
+
label: "SAS"
|
365
|
+
},
|
366
|
+
{
|
367
|
+
value: "scala",
|
368
|
+
label: "Scala"
|
369
|
+
},
|
370
|
+
{
|
371
|
+
value: "scheme",
|
372
|
+
label: "Scheme"
|
373
|
+
},
|
374
|
+
{
|
375
|
+
value: "shell",
|
376
|
+
label: "Shell"
|
377
|
+
},
|
378
|
+
{
|
379
|
+
value: "sql",
|
380
|
+
label: "SQL"
|
381
|
+
},
|
382
|
+
{
|
383
|
+
value: "stata",
|
384
|
+
label: "Stata"
|
385
|
+
},
|
386
|
+
{
|
387
|
+
value: "swift",
|
388
|
+
label: "Swift"
|
389
|
+
},
|
390
|
+
{
|
391
|
+
value: "typescript",
|
392
|
+
label: "TypeScript"
|
393
|
+
},
|
394
|
+
{
|
395
|
+
value: "tsx",
|
396
|
+
label: "TypeScript (React)"
|
397
|
+
},
|
398
|
+
{
|
399
|
+
value: "vbnet",
|
400
|
+
label: "VB.NET"
|
401
|
+
},
|
402
|
+
{
|
403
|
+
value: "xml",
|
404
|
+
label: "XML"
|
405
|
+
},
|
406
|
+
{
|
407
|
+
value: "yaml",
|
408
|
+
label: "YAML"
|
409
|
+
}
|
410
|
+
];
|
197
411
|
const baseHandleConvert = (editor, attributesToSet) => {
|
198
412
|
const [_, lastNodePath] = slate.Editor.last(editor, []);
|
199
413
|
slate.Transforms.unwrapNodes(editor, {
|
@@ -264,6 +478,7 @@ const CodeBlock = styledComponents.styled.pre`
|
|
264
478
|
overflow: auto;
|
265
479
|
padding: ${({ theme }) => `${theme.spaces[3]} ${theme.spaces[4]}`};
|
266
480
|
flex-shrink: 1;
|
481
|
+
|
267
482
|
& > code {
|
268
483
|
font-family: 'SF Mono', SFMono-Regular, ui-monospace, 'DejaVu Sans Mono', Menlo, Consolas,
|
269
484
|
monospace;
|
@@ -272,9 +487,61 @@ const CodeBlock = styledComponents.styled.pre`
|
|
272
487
|
max-width: 100%;
|
273
488
|
}
|
274
489
|
`;
|
490
|
+
const CodeEditor = (props) => {
|
491
|
+
const { editor } = useBlocksEditorContext("ImageDialog");
|
492
|
+
const editorIsFocused = slateReact.useFocused();
|
493
|
+
const imageIsSelected = slateReact.useSelected();
|
494
|
+
const { formatMessage } = reactIntl.useIntl();
|
495
|
+
const [isSelectOpen, setIsSelectOpen] = React__namespace.useState(false);
|
496
|
+
const shouldDisplayLanguageSelect = editorIsFocused && imageIsSelected || isSelectOpen;
|
497
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { position: "relative", width: "100%", children: [
|
498
|
+
/* @__PURE__ */ jsxRuntime.jsx(CodeBlock, { ...props.attributes, children: /* @__PURE__ */ jsxRuntime.jsx("code", { children: props.children }) }),
|
499
|
+
shouldDisplayLanguageSelect && /* @__PURE__ */ jsxRuntime.jsx(
|
500
|
+
designSystem.Box,
|
501
|
+
{
|
502
|
+
position: "absolute",
|
503
|
+
background: "neutral0",
|
504
|
+
borderColor: "neutral150",
|
505
|
+
borderStyle: "solid",
|
506
|
+
borderWidth: "0.5px",
|
507
|
+
shadow: "tableShadow",
|
508
|
+
top: "100%",
|
509
|
+
marginTop: 1,
|
510
|
+
right: 0,
|
511
|
+
padding: 1,
|
512
|
+
hasRadius: true,
|
513
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
514
|
+
designSystem.SingleSelect,
|
515
|
+
{
|
516
|
+
onChange: (open) => {
|
517
|
+
slate.Transforms.setNodes(
|
518
|
+
editor,
|
519
|
+
{ language: open.toString() },
|
520
|
+
{ match: (node) => !slate.Editor.isEditor(node) && node.type === "code" }
|
521
|
+
);
|
522
|
+
},
|
523
|
+
value: props.element.type === "code" && props.element.language || "plaintext",
|
524
|
+
onOpenChange: (open) => {
|
525
|
+
setIsSelectOpen(open);
|
526
|
+
if (!open) {
|
527
|
+
slateReact.ReactEditor.focus(editor);
|
528
|
+
}
|
529
|
+
},
|
530
|
+
onCloseAutoFocus: (e) => e.preventDefault(),
|
531
|
+
"aria-label": formatMessage({
|
532
|
+
id: "components.Blocks.blocks.code.languageLabel",
|
533
|
+
defaultMessage: "Select a language"
|
534
|
+
}),
|
535
|
+
children: codeLanguages.map(({ value, label }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value, children: label }, value))
|
536
|
+
}
|
537
|
+
)
|
538
|
+
}
|
539
|
+
)
|
540
|
+
] });
|
541
|
+
};
|
275
542
|
const codeBlocks = {
|
276
543
|
code: {
|
277
|
-
renderElement: (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
544
|
+
renderElement: (props) => /* @__PURE__ */ jsxRuntime.jsx(CodeEditor, { ...props }),
|
278
545
|
icon: Icons.Code,
|
279
546
|
label: {
|
280
547
|
id: "components.Blocks.blocks.code",
|
@@ -283,7 +550,7 @@ const codeBlocks = {
|
|
283
550
|
matchNode: (node) => node.type === "code",
|
284
551
|
isInBlocksSelector: true,
|
285
552
|
handleConvert(editor) {
|
286
|
-
baseHandleConvert(editor, { type: "code" });
|
553
|
+
baseHandleConvert(editor, { type: "code", language: "plaintext" });
|
287
554
|
},
|
288
555
|
handleEnterKey(editor) {
|
289
556
|
pressEnterTwiceToExit(editor);
|
@@ -501,7 +768,7 @@ const ImageDialog = () => {
|
|
501
768
|
const nodeImage = {
|
502
769
|
...expectedImage,
|
503
770
|
alternativeText: expectedImage.alternativeText || expectedImage.name,
|
504
|
-
url:
|
771
|
+
url: useDebounce.prefixFileUrlWithBackendUrl(image.url)
|
505
772
|
};
|
506
773
|
return nodeImage;
|
507
774
|
});
|
@@ -623,18 +890,12 @@ const LinkContent = React__namespace.forwardRef(
|
|
623
890
|
const [popoverOpen, setPopoverOpen] = React__namespace.useState(
|
624
891
|
editor.lastInsertedLinkPath ? slate.Path.equals(path, editor.lastInsertedLinkPath) : false
|
625
892
|
);
|
626
|
-
const linkRef = React__namespace.useRef(null);
|
627
893
|
const elementText = link.children.map((child) => child.text).join("");
|
628
894
|
const [linkText, setLinkText] = React__namespace.useState(elementText);
|
629
895
|
const [linkUrl, setLinkUrl] = React__namespace.useState(link.url);
|
630
896
|
const linkInputRef = React__namespace.useRef(null);
|
631
|
-
const
|
897
|
+
const isLastInsertedLink = editor.lastInsertedLinkPath ? !slate.Path.equals(path, editor.lastInsertedLinkPath) : true;
|
632
898
|
const [isSaveDisabled, setIsSaveDisabled] = React__namespace.useState(false);
|
633
|
-
const handleOpenEditPopover = (e) => {
|
634
|
-
e.preventDefault();
|
635
|
-
setPopoverOpen(true);
|
636
|
-
setShowRemoveButton(true);
|
637
|
-
};
|
638
899
|
const onLinkChange = (e) => {
|
639
900
|
setIsSaveDisabled(false);
|
640
901
|
setLinkUrl(e.target.value);
|
@@ -655,33 +916,33 @@ const LinkContent = React__namespace.forwardRef(
|
|
655
916
|
editLink(editor, { url: linkUrl, text: linkText });
|
656
917
|
setPopoverOpen(false);
|
657
918
|
editor.lastInsertedLinkPath = null;
|
919
|
+
slateReact.ReactEditor.focus(editor);
|
658
920
|
};
|
659
|
-
const
|
660
|
-
setPopoverOpen(false);
|
921
|
+
const handleClose = () => {
|
661
922
|
if (link.url === "") {
|
662
923
|
removeLink(editor);
|
663
924
|
}
|
925
|
+
setPopoverOpen(false);
|
664
926
|
slateReact.ReactEditor.focus(editor);
|
665
927
|
};
|
666
|
-
const inputNotDirty = !linkText || !linkUrl || link.url && link.url === linkUrl && elementText && elementText === linkText;
|
667
|
-
const composedRefs = designSystem.useComposedRefs(linkRef, forwardedRef);
|
668
928
|
React__namespace.useEffect(() => {
|
669
929
|
if (popoverOpen)
|
670
930
|
linkInputRef.current?.focus();
|
671
931
|
}, [popoverOpen]);
|
672
|
-
|
673
|
-
|
932
|
+
const inputNotDirty = !linkText || !linkUrl || link.url && link.url === linkUrl && elementText && elementText === linkText;
|
933
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Popover.Root, { open: popoverOpen, children: [
|
934
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
674
935
|
StyledBaseLink,
|
675
936
|
{
|
676
937
|
...attributes,
|
677
|
-
ref:
|
938
|
+
ref: forwardedRef,
|
678
939
|
href: link.url,
|
679
|
-
onClick:
|
940
|
+
onClick: () => setPopoverOpen(true),
|
680
941
|
color: "primary600",
|
681
942
|
children
|
682
943
|
}
|
683
|
-
),
|
684
|
-
|
944
|
+
) }),
|
945
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Content, { onPointerDownOutside: handleClose, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { padding: 4, direction: "column", gap: 4, children: [
|
685
946
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Root, { width: "368px", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 1, alignItems: "stretch", children: [
|
686
947
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
687
948
|
id: "components.Blocks.popover.text",
|
@@ -727,7 +988,7 @@ const LinkContent = React__namespace.forwardRef(
|
|
727
988
|
{
|
728
989
|
variant: "danger-light",
|
729
990
|
onClick: () => removeLink(editor),
|
730
|
-
$visible:
|
991
|
+
$visible: isLastInsertedLink,
|
731
992
|
children: formatMessage({
|
732
993
|
id: "components.Blocks.popover.remove",
|
733
994
|
defaultMessage: "Remove"
|
@@ -735,11 +996,11 @@ const LinkContent = React__namespace.forwardRef(
|
|
735
996
|
}
|
736
997
|
),
|
737
998
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
|
738
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick:
|
999
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick: handleClose, children: formatMessage({
|
739
1000
|
id: "components.Blocks.popover.cancel",
|
740
1001
|
defaultMessage: "Cancel"
|
741
1002
|
}) }),
|
742
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, {
|
1003
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { disabled: Boolean(inputNotDirty) || isSaveDisabled, onClick: handleSave, children: formatMessage({
|
743
1004
|
id: "components.Blocks.popover.save",
|
744
1005
|
defaultMessage: "Save"
|
745
1006
|
}) })
|
@@ -1180,7 +1441,7 @@ const ToolbarButton = ({
|
|
1180
1441
|
width: 7,
|
1181
1442
|
height: 7,
|
1182
1443
|
hasRadius: true,
|
1183
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
|
1444
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { fill: disabled ? "neutral300" : enabledColor })
|
1184
1445
|
}
|
1185
1446
|
)
|
1186
1447
|
}
|
@@ -1325,6 +1586,26 @@ const ListButton = ({ block, format }) => {
|
|
1325
1586
|
}
|
1326
1587
|
return false;
|
1327
1588
|
};
|
1589
|
+
const isListDisabled = () => {
|
1590
|
+
if (disabled) {
|
1591
|
+
return true;
|
1592
|
+
}
|
1593
|
+
if (!editor.selection) {
|
1594
|
+
return false;
|
1595
|
+
}
|
1596
|
+
const anchorNodeEntry = slate.Editor.above(editor, {
|
1597
|
+
at: editor.selection.anchor,
|
1598
|
+
match: (node) => !slate.Editor.isEditor(node) && node.type !== "text"
|
1599
|
+
});
|
1600
|
+
const focusNodeEntry = slate.Editor.above(editor, {
|
1601
|
+
at: editor.selection.focus,
|
1602
|
+
match: (node) => !slate.Editor.isEditor(node) && node.type !== "text"
|
1603
|
+
});
|
1604
|
+
if (!anchorNodeEntry || !focusNodeEntry) {
|
1605
|
+
return false;
|
1606
|
+
}
|
1607
|
+
return anchorNodeEntry[0] !== focusNodeEntry[0];
|
1608
|
+
};
|
1328
1609
|
const toggleList = (format2) => {
|
1329
1610
|
let currentListEntry;
|
1330
1611
|
if (editor.selection) {
|
@@ -1358,7 +1639,7 @@ const ListButton = ({ block, format }) => {
|
|
1358
1639
|
name: format,
|
1359
1640
|
label: block.label,
|
1360
1641
|
isActive: isListActive(),
|
1361
|
-
disabled,
|
1642
|
+
disabled: isListDisabled(),
|
1362
1643
|
handleClick: () => toggleList(format)
|
1363
1644
|
}
|
1364
1645
|
);
|
@@ -1502,6 +1783,7 @@ const DragItem = styledComponents.styled(designSystem.Flex)`
|
|
1502
1783
|
}
|
1503
1784
|
`;
|
1504
1785
|
const DragIconButton = styledComponents.styled(designSystem.IconButton)`
|
1786
|
+
user-select: none;
|
1505
1787
|
display: flex;
|
1506
1788
|
align-items: center;
|
1507
1789
|
justify-content: center;
|
@@ -1525,7 +1807,7 @@ const DragIconButton = styledComponents.styled(designSystem.IconButton)`
|
|
1525
1807
|
}
|
1526
1808
|
svg {
|
1527
1809
|
height: auto;
|
1528
|
-
width: ${({ theme }) => theme.spaces[3]};
|
1810
|
+
min-width: ${({ theme }) => theme.spaces[3]};
|
1529
1811
|
|
1530
1812
|
path {
|
1531
1813
|
fill: ${({ theme }) => theme.colors.neutral700};
|
@@ -1630,6 +1912,7 @@ const DragAndDropElement = ({
|
|
1630
1912
|
DragIconButton,
|
1631
1913
|
{
|
1632
1914
|
tag: "div",
|
1915
|
+
contentEditable: false,
|
1633
1916
|
role: "button",
|
1634
1917
|
tabIndex: 0,
|
1635
1918
|
withTooltip: false,
|
@@ -1642,7 +1925,7 @@ const DragAndDropElement = ({
|
|
1642
1925
|
disabled,
|
1643
1926
|
draggable: true,
|
1644
1927
|
$dragHandleTopMargin: dragHandleTopMargin,
|
1645
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Drag, { color: "
|
1928
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Drag, { color: "primary500" })
|
1646
1929
|
}
|
1647
1930
|
),
|
1648
1931
|
children
|
@@ -1966,7 +2249,7 @@ const EditorLayout$1 = ({
|
|
1966
2249
|
/* @__PURE__ */ jsxRuntime.jsx(
|
1967
2250
|
CollapseIconButton,
|
1968
2251
|
{
|
1969
|
-
|
2252
|
+
label: formatMessage({
|
1970
2253
|
id: index.getTranslation("components.Blocks.collapse"),
|
1971
2254
|
defaultMessage: "Collapse"
|
1972
2255
|
}),
|
@@ -2305,7 +2588,7 @@ const BlocksEditor = React__namespace.forwardRef(
|
|
2305
2588
|
!isExpandedMode && /* @__PURE__ */ jsxRuntime.jsx(
|
2306
2589
|
ExpandIconButton,
|
2307
2590
|
{
|
2308
|
-
|
2591
|
+
label: formatMessage({
|
2309
2592
|
id: index.getTranslation("components.Blocks.expand"),
|
2310
2593
|
defaultMessage: "Expand"
|
2311
2594
|
}),
|
@@ -2371,30 +2654,27 @@ const createDefaultForm = (contentType, components = {}) => {
|
|
2371
2654
|
const Initializer = ({ disabled, name: name2, onClick }) => {
|
2372
2655
|
const { formatMessage } = reactIntl.useIntl();
|
2373
2656
|
const field = strapiAdmin.useField(name2);
|
2374
|
-
return /* @__PURE__ */ jsxRuntime.
|
2375
|
-
|
2376
|
-
|
2377
|
-
|
2378
|
-
|
2379
|
-
|
2380
|
-
|
2381
|
-
|
2382
|
-
|
2383
|
-
|
2384
|
-
|
2385
|
-
|
2386
|
-
|
2387
|
-
|
2388
|
-
|
2389
|
-
|
2390
|
-
|
2391
|
-
|
2392
|
-
|
2393
|
-
|
2394
|
-
|
2395
|
-
),
|
2396
|
-
field.error && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "danger600", variant: "pi", children: field.error })
|
2397
|
-
] });
|
2657
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
2658
|
+
designSystem.Box,
|
2659
|
+
{
|
2660
|
+
tag: "button",
|
2661
|
+
background: "neutral100",
|
2662
|
+
borderColor: field.error ? "danger600" : "neutral200",
|
2663
|
+
hasRadius: true,
|
2664
|
+
disabled,
|
2665
|
+
onClick,
|
2666
|
+
paddingTop: 9,
|
2667
|
+
paddingBottom: 9,
|
2668
|
+
type: "button",
|
2669
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 2, children: [
|
2670
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(CircleIcon, {}) }),
|
2671
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "primary600", variant: "pi", fontWeight: "bold", children: formatMessage({
|
2672
|
+
id: index.getTranslation("components.empty-repeatable"),
|
2673
|
+
defaultMessage: "No entry yet. Click on the button below to add one."
|
2674
|
+
}) }) })
|
2675
|
+
] })
|
2676
|
+
}
|
2677
|
+
) });
|
2398
2678
|
};
|
2399
2679
|
const CircleIcon = styledComponents.styled(Icons.PlusCircle)`
|
2400
2680
|
width: 2.4rem;
|
@@ -2426,9 +2706,20 @@ const NonRepeatableComponent = ({
|
|
2426
2706
|
hasRadius: isNested,
|
2427
2707
|
borderColor: isNested ? "neutral200" : void 0,
|
2428
2708
|
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children: layout.map((row, index2) => {
|
2429
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: row.map(({ size, ...field }) => {
|
2709
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
2430
2710
|
const completeFieldName = `${name2}.${field.name}`;
|
2431
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
2711
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
2712
|
+
designSystem.Grid.Item,
|
2713
|
+
{
|
2714
|
+
col: size,
|
2715
|
+
s: 12,
|
2716
|
+
xs: 12,
|
2717
|
+
direction: "column",
|
2718
|
+
alignItems: "stretch",
|
2719
|
+
children: children({ ...field, name: completeFieldName })
|
2720
|
+
},
|
2721
|
+
completeFieldName
|
2722
|
+
);
|
2432
2723
|
}) }, index2);
|
2433
2724
|
}) })
|
2434
2725
|
}
|
@@ -2468,7 +2759,7 @@ const RepeatableComponent = ({
|
|
2468
2759
|
}
|
2469
2760
|
return void 0;
|
2470
2761
|
}, [search, name2, value]);
|
2471
|
-
const prevValue =
|
2762
|
+
const prevValue = useDebounce.usePrev(value);
|
2472
2763
|
React__namespace.useEffect(() => {
|
2473
2764
|
if (prevValue && prevValue.length < value.length) {
|
2474
2765
|
setCollapseToOpen(value[value.length - 1].__temp_key__);
|
@@ -2604,9 +2895,20 @@ const RepeatableComponent = ({
|
|
2604
2895
|
onGrabItem: handleGrabItem,
|
2605
2896
|
__temp_key__: key,
|
2606
2897
|
children: layout.map((row, index22) => {
|
2607
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: row.map(({ size, ...field }) => {
|
2898
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
2608
2899
|
const completeFieldName = `${nameWithIndex}.${field.name}`;
|
2609
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
2900
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
2901
|
+
designSystem.Grid.Item,
|
2902
|
+
{
|
2903
|
+
col: size,
|
2904
|
+
s: 12,
|
2905
|
+
xs: 12,
|
2906
|
+
direction: "column",
|
2907
|
+
alignItems: "stretch",
|
2908
|
+
children: children({ ...field, name: completeFieldName })
|
2909
|
+
},
|
2910
|
+
completeFieldName
|
2911
|
+
);
|
2610
2912
|
}) }, index22);
|
2611
2913
|
})
|
2612
2914
|
}
|
@@ -2651,7 +2953,7 @@ const TextButtonCustom = styledComponents.styled(designSystem.TextButton)`
|
|
2651
2953
|
}
|
2652
2954
|
|
2653
2955
|
@media (prefers-reduced-motion: no-preference) {
|
2654
|
-
transition: background-color 120ms ${(props) => props.theme.easings.easeOutQuad};
|
2956
|
+
transition: background-color 120ms ${(props) => props.theme.motion.easings.easeOutQuad};
|
2655
2957
|
}
|
2656
2958
|
`;
|
2657
2959
|
const Component = ({
|
@@ -2701,7 +3003,7 @@ const Component = ({
|
|
2701
3003
|
/* @__PURE__ */ jsxRuntime.jsx(
|
2702
3004
|
designSystem.IconButton,
|
2703
3005
|
{
|
2704
|
-
|
3006
|
+
variant: "ghost",
|
2705
3007
|
onClick: onDeleteComponent,
|
2706
3008
|
label: formatMessage({
|
2707
3009
|
id: index.getTranslation("containers.Edit.delete"),
|
@@ -2714,7 +3016,7 @@ const Component = ({
|
|
2714
3016
|
designSystem.IconButton,
|
2715
3017
|
{
|
2716
3018
|
ref: composedAccordionRefs,
|
2717
|
-
|
3019
|
+
variant: "ghost",
|
2718
3020
|
onClick: (e) => e.stopPropagation(),
|
2719
3021
|
"data-handler-id": handlerId,
|
2720
3022
|
label: formatMessage({
|
@@ -2784,7 +3086,7 @@ const ComponentInput = ({
|
|
2784
3086
|
id: index.getTranslation("components.reset-entry"),
|
2785
3087
|
defaultMessage: "Reset Entry"
|
2786
3088
|
}),
|
2787
|
-
|
3089
|
+
variant: "ghost",
|
2788
3090
|
onClick: () => {
|
2789
3091
|
field.onChange(name2, null);
|
2790
3092
|
},
|
@@ -2813,11 +3115,8 @@ const AddComponentButton = ({
|
|
2813
3115
|
onClick,
|
2814
3116
|
disabled: isDisabled,
|
2815
3117
|
background: "neutral0",
|
2816
|
-
paddingTop: 3,
|
2817
|
-
paddingBottom: 3,
|
2818
|
-
paddingLeft: 4,
|
2819
|
-
paddingRight: 4,
|
2820
3118
|
style: { cursor: isDisabled ? "not-allowed" : "pointer" },
|
3119
|
+
variant: "tertiary",
|
2821
3120
|
children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { tag: "span", gap: 2, children: [
|
2822
3121
|
/* @__PURE__ */ jsxRuntime.jsx(StyledAddIcon, { "aria-hidden": true, $isOpen: isOpen, $hasError: hasError && !isOpen }),
|
2823
3122
|
/* @__PURE__ */ jsxRuntime.jsx(
|
@@ -2846,10 +3145,11 @@ const StyledAddIcon = styledComponents.styled(Icons.PlusCircle)`
|
|
2846
3145
|
}
|
2847
3146
|
`;
|
2848
3147
|
const AddComponentTitle = styledComponents.styled(designSystem.Typography)``;
|
2849
|
-
const StyledButton = styledComponents.styled(designSystem.
|
3148
|
+
const StyledButton = styledComponents.styled(designSystem.Button)`
|
2850
3149
|
border-radius: 26px;
|
2851
3150
|
border-color: ${({ theme }) => theme.colors.neutral150};
|
2852
3151
|
box-shadow: ${({ theme }) => theme.shadows.filterShadow};
|
3152
|
+
height: 5rem;
|
2853
3153
|
|
2854
3154
|
&:hover {
|
2855
3155
|
${AddComponentTitle} {
|
@@ -2861,7 +3161,7 @@ const StyledButton = styledComponents.styled(designSystem.BaseButton)`
|
|
2861
3161
|
fill: ${({ theme }) => theme.colors.primary600};
|
2862
3162
|
}
|
2863
3163
|
> path {
|
2864
|
-
fill: ${({ theme }) => theme.colors.
|
3164
|
+
fill: ${({ theme }) => theme.colors.primary600};
|
2865
3165
|
}
|
2866
3166
|
}
|
2867
3167
|
}
|
@@ -2919,7 +3219,7 @@ const ComponentBox = styledComponents.styled(designSystem.Flex)`
|
|
2919
3219
|
cursor: pointer;
|
2920
3220
|
|
2921
3221
|
@media (prefers-reduced-motion: no-preference) {
|
2922
|
-
transition: color 120ms ${(props) => props.theme.easings.easeOutQuad};
|
3222
|
+
transition: color 120ms ${(props) => props.theme.motion.easings.easeOutQuad};
|
2923
3223
|
}
|
2924
3224
|
|
2925
3225
|
&:focus,
|
@@ -2992,18 +3292,6 @@ const NotAllowedInput = ({ hint, label, required, name: name2 }) => {
|
|
2992
3292
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
|
2993
3293
|
] });
|
2994
3294
|
};
|
2995
|
-
function useDebounce(value, delay) {
|
2996
|
-
const [debouncedValue, setDebouncedValue] = React.useState(value);
|
2997
|
-
React.useEffect(() => {
|
2998
|
-
const handler = setTimeout(() => {
|
2999
|
-
setDebouncedValue(value);
|
3000
|
-
}, delay);
|
3001
|
-
return () => {
|
3002
|
-
clearTimeout(handler);
|
3003
|
-
};
|
3004
|
-
}, [value, delay]);
|
3005
|
-
return debouncedValue;
|
3006
|
-
}
|
3007
3295
|
const uidApi = index.contentManagerApi.injectEndpoints({
|
3008
3296
|
endpoints: (builder) => ({
|
3009
3297
|
getDefaultUID: builder.query({
|
@@ -3038,7 +3326,10 @@ const uidApi = index.contentManagerApi.injectEndpoints({
|
|
3038
3326
|
config: {
|
3039
3327
|
params
|
3040
3328
|
}
|
3041
|
-
})
|
3329
|
+
}),
|
3330
|
+
providesTags: (_res, _error, params) => [
|
3331
|
+
{ type: "UidAvailability", id: params.contentTypeUID }
|
3332
|
+
]
|
3042
3333
|
})
|
3043
3334
|
})
|
3044
3335
|
});
|
@@ -3050,8 +3341,10 @@ const UIDInput = React__namespace.forwardRef(
|
|
3050
3341
|
const allFormValues = strapiAdmin.useForm("InputUID", (form) => form.values);
|
3051
3342
|
const [availability, setAvailability] = React__namespace.useState();
|
3052
3343
|
const [showRegenerate, setShowRegenerate] = React__namespace.useState(false);
|
3344
|
+
const isCloning = reactRouterDom.useMatch(index.CLONE_PATH) !== null;
|
3053
3345
|
const field = strapiAdmin.useField(name2);
|
3054
|
-
const debouncedValue = useDebounce(field.value, 300);
|
3346
|
+
const debouncedValue = useDebounce.useDebounce(field.value, 300);
|
3347
|
+
const hasChanged = debouncedValue !== field.initialValue;
|
3055
3348
|
const { toggleNotification } = strapiAdmin.useNotification();
|
3056
3349
|
const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
3057
3350
|
const { formatMessage } = reactIntl.useIntl();
|
@@ -3127,8 +3420,9 @@ const UIDInput = React__namespace.forwardRef(
|
|
3127
3420
|
params
|
3128
3421
|
},
|
3129
3422
|
{
|
3423
|
+
// Don't check availability if the value is empty or wasn't changed
|
3130
3424
|
skip: !Boolean(
|
3131
|
-
|
3425
|
+
(hasChanged || isCloning) && debouncedValue && UID_REGEX.test(debouncedValue.trim())
|
3132
3426
|
)
|
3133
3427
|
}
|
3134
3428
|
);
|
@@ -3157,6 +3451,7 @@ const UIDInput = React__namespace.forwardRef(
|
|
3157
3451
|
const isLoading = isGeneratingDefaultUID || isGeneratingUID || isCheckingAvailability;
|
3158
3452
|
const fieldRef = strapiAdmin.useFocusInputField(name2);
|
3159
3453
|
const composedRefs = designSystem.useComposedRefs(ref, fieldRef);
|
3454
|
+
const shouldShowAvailability = (hasChanged || isCloning) && debouncedValue != null && availability && !showRegenerate;
|
3160
3455
|
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { hint, name: name2, error: field.error, required, children: [
|
3161
3456
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { action: labelAction, children: label }),
|
3162
3457
|
/* @__PURE__ */ jsxRuntime.jsx(
|
@@ -3165,7 +3460,7 @@ const UIDInput = React__namespace.forwardRef(
|
|
3165
3460
|
ref: composedRefs,
|
3166
3461
|
disabled: props.disabled,
|
3167
3462
|
endAction: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { position: "relative", gap: 1, children: [
|
3168
|
-
|
3463
|
+
shouldShowAvailability && /* @__PURE__ */ jsxRuntime.jsxs(
|
3169
3464
|
TextValidation,
|
3170
3465
|
{
|
3171
3466
|
alignItems: "center",
|
@@ -3999,7 +4294,7 @@ const EditorLayout = ({
|
|
3999
4294
|
justifyContent: "flex-end",
|
4000
4295
|
shrink: 0,
|
4001
4296
|
width: "100%",
|
4002
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(ExpandButton$1, { onClick: onCollapse, children: [
|
4297
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(ExpandButton$1, { onClick: onCollapse, variant: "tertiary", size: "M", children: [
|
4003
4298
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({
|
4004
4299
|
id: "components.Wysiwyg.collapse",
|
4005
4300
|
defaultMessage: "Collapse"
|
@@ -4017,12 +4312,14 @@ const EditorLayout = ({
|
|
4017
4312
|
) }) });
|
4018
4313
|
}
|
4019
4314
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
4020
|
-
designSystem.
|
4315
|
+
designSystem.Flex,
|
4021
4316
|
{
|
4022
4317
|
borderColor: error ? "danger600" : "neutral200",
|
4023
4318
|
borderStyle: "solid",
|
4024
4319
|
borderWidth: "1px",
|
4025
4320
|
hasRadius: true,
|
4321
|
+
direction: "column",
|
4322
|
+
alignItems: "stretch",
|
4026
4323
|
children
|
4027
4324
|
}
|
4028
4325
|
);
|
@@ -4033,11 +4330,19 @@ const ExpandWrapper = styledComponents.styled(designSystem.Flex)`
|
|
4033
4330
|
const BoxWithBorder = styledComponents.styled(designSystem.Box)`
|
4034
4331
|
border-right: 1px solid ${({ theme }) => theme.colors.neutral200};
|
4035
4332
|
`;
|
4036
|
-
const ExpandButton$1 = styledComponents.styled(designSystem.
|
4333
|
+
const ExpandButton$1 = styledComponents.styled(designSystem.Button)`
|
4037
4334
|
background-color: transparent;
|
4038
4335
|
border: none;
|
4039
4336
|
align-items: center;
|
4040
4337
|
|
4338
|
+
& > span {
|
4339
|
+
display: flex;
|
4340
|
+
justify-content: space-between;
|
4341
|
+
align-items: center;
|
4342
|
+
width: 100%;
|
4343
|
+
font-weight: ${({ theme }) => theme.fontWeights.regular};
|
4344
|
+
}
|
4345
|
+
|
4041
4346
|
svg {
|
4042
4347
|
margin-left: ${({ theme }) => `${theme.spaces[2]}`};
|
4043
4348
|
|
@@ -4304,42 +4609,28 @@ const quoteAndCodeHandler = (editor, markdownType) => {
|
|
4304
4609
|
insertWithoutTextToEdit(editor, markdownType, line, contentLength);
|
4305
4610
|
}
|
4306
4611
|
};
|
4307
|
-
const CustomIconButton = styledComponents.styled(designSystem.IconButton)`
|
4308
|
-
padding: ${({ theme }) => theme.spaces[2]};
|
4309
|
-
/* Trick to prevent the outline from overflowing because of the general outline-offset */
|
4310
|
-
outline-offset: -2px !important;
|
4311
|
-
|
4312
|
-
svg {
|
4313
|
-
width: 1.8rem;
|
4314
|
-
height: 1.8rem;
|
4315
|
-
}
|
4316
|
-
`;
|
4317
|
-
const CustomLinkIconButton = styledComponents.styled(CustomIconButton)`
|
4318
|
-
svg {
|
4319
|
-
width: 0.8rem;
|
4320
|
-
height: 0.8rem;
|
4321
|
-
}
|
4322
|
-
`;
|
4323
4612
|
const MainButtons = styledComponents.styled(designSystem.IconButtonGroup)`
|
4324
4613
|
margin-left: ${({ theme }) => theme.spaces[4]};
|
4325
4614
|
`;
|
4326
4615
|
const MoreButton = styledComponents.styled(designSystem.IconButton)`
|
4327
4616
|
margin: ${({ theme }) => `0 ${theme.spaces[2]}`};
|
4328
|
-
padding: ${({ theme }) => theme.spaces[2]};
|
4329
|
-
|
4330
|
-
svg {
|
4331
|
-
width: 1.8rem;
|
4332
|
-
height: 1.8rem;
|
4333
|
-
}
|
4334
4617
|
`;
|
4335
4618
|
const IconButtonGroupMargin = styledComponents.styled(designSystem.IconButtonGroup)`
|
4336
4619
|
margin-right: ${({ theme }) => `${theme.spaces[2]}`};
|
4337
4620
|
`;
|
4338
|
-
const ExpandButton = styledComponents.styled(designSystem.
|
4621
|
+
const ExpandButton = styledComponents.styled(designSystem.Button)`
|
4339
4622
|
background-color: transparent;
|
4340
4623
|
border: none;
|
4341
4624
|
align-items: center;
|
4342
4625
|
|
4626
|
+
& > span {
|
4627
|
+
display: flex;
|
4628
|
+
justify-content: space-between;
|
4629
|
+
align-items: center;
|
4630
|
+
width: 100%;
|
4631
|
+
font-weight: ${({ theme }) => theme.fontWeights.regular};
|
4632
|
+
}
|
4633
|
+
|
4343
4634
|
svg {
|
4344
4635
|
margin-left: ${({ theme }) => `${theme.spaces[2]}`};
|
4345
4636
|
path {
|
@@ -4351,8 +4642,8 @@ const ExpandButton = styledComponents.styled(designSystem.BaseButton)`
|
|
4351
4642
|
`;
|
4352
4643
|
const WysiwygFooter = ({ onToggleExpand }) => {
|
4353
4644
|
const { formatMessage } = reactIntl.useIntl();
|
4354
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { padding: 2, background: "neutral100", borderRadius: `0 0 0.4rem 0.4rem`, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "flex-end", alignItems: "flex-end", children: /* @__PURE__ */ jsxRuntime.jsxs(ExpandButton, { id: "expand", onClick: onToggleExpand, children: [
|
4355
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({
|
4645
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { padding: 2, background: "neutral100", borderRadius: `0 0 0.4rem 0.4rem`, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "flex-end", alignItems: "flex-end", children: /* @__PURE__ */ jsxRuntime.jsxs(ExpandButton, { id: "expand", onClick: onToggleExpand, variant: "tertiary", size: "M", children: [
|
4646
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", children: formatMessage({
|
4356
4647
|
id: "components.WysiwygBottomControls.fullscreen",
|
4357
4648
|
defaultMessage: "Expand"
|
4358
4649
|
}) }),
|
@@ -4374,7 +4665,7 @@ const WysiwygNav = ({
|
|
4374
4665
|
id: "components.Wysiwyg.selectOptions.title",
|
4375
4666
|
defaultMessage: "Add a title"
|
4376
4667
|
});
|
4377
|
-
|
4668
|
+
React__namespace.useRef(null);
|
4378
4669
|
const handleTogglePopover = () => {
|
4379
4670
|
setVisiblePopover((prev) => !prev);
|
4380
4671
|
};
|
@@ -4388,18 +4679,27 @@ const WysiwygNav = ({
|
|
4388
4679
|
borderRadius: `0.4rem 0.4rem 0 0`,
|
4389
4680
|
children: [
|
4390
4681
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { children: [
|
4391
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Root, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
4392
|
-
|
4393
|
-
|
4394
|
-
|
4395
|
-
|
4396
|
-
|
4397
|
-
|
4398
|
-
|
4682
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Root, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
4683
|
+
designSystem.SingleSelect,
|
4684
|
+
{
|
4685
|
+
disabled: true,
|
4686
|
+
placeholder: selectPlaceholder,
|
4687
|
+
"aria-label": selectPlaceholder,
|
4688
|
+
size: "S",
|
4689
|
+
children: [
|
4690
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h1", children: "h1" }),
|
4691
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h2", children: "h2" }),
|
4692
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h3", children: "h3" }),
|
4693
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h4", children: "h4" }),
|
4694
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h5", children: "h5" }),
|
4695
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h6", children: "h6" })
|
4696
|
+
]
|
4697
|
+
}
|
4698
|
+
) }),
|
4399
4699
|
/* @__PURE__ */ jsxRuntime.jsxs(MainButtons, { children: [
|
4400
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
4401
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
4402
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
4700
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.IconButton, { disabled: true, label: "Bold", name: "Bold", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Bold, {}) }),
|
4701
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.IconButton, { disabled: true, label: "Italic", name: "Italic", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Italic, {}) }),
|
4702
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.IconButton, { disabled: true, label: "Underline", name: "Underline", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Underline, {}) })
|
4403
4703
|
] }),
|
4404
4704
|
/* @__PURE__ */ jsxRuntime.jsx(MoreButton, { disabled: true, label: "More", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.More, {}) })
|
4405
4705
|
] }),
|
@@ -4426,6 +4726,7 @@ const WysiwygNav = ({
|
|
4426
4726
|
placeholder: selectPlaceholder,
|
4427
4727
|
"aria-label": selectPlaceholder,
|
4428
4728
|
onChange: (value) => onActionClick(value, editorRef),
|
4729
|
+
size: "S",
|
4429
4730
|
children: [
|
4430
4731
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h1", children: "h1" }),
|
4431
4732
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h2", children: "h2" }),
|
@@ -4437,17 +4738,9 @@ const WysiwygNav = ({
|
|
4437
4738
|
}
|
4438
4739
|
) }),
|
4439
4740
|
/* @__PURE__ */ jsxRuntime.jsxs(MainButtons, { children: [
|
4741
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.IconButton, { onClick: () => onActionClick("Bold", editorRef), label: "Bold", name: "Bold", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Bold, {}) }),
|
4440
4742
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4441
|
-
|
4442
|
-
{
|
4443
|
-
onClick: () => onActionClick("Bold", editorRef),
|
4444
|
-
label: "Bold",
|
4445
|
-
name: "Bold",
|
4446
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Bold, {})
|
4447
|
-
}
|
4448
|
-
),
|
4449
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
4450
|
-
CustomIconButton,
|
4743
|
+
designSystem.IconButton,
|
4451
4744
|
{
|
4452
4745
|
onClick: () => onActionClick("Italic", editorRef),
|
4453
4746
|
label: "Italic",
|
@@ -4456,7 +4749,7 @@ const WysiwygNav = ({
|
|
4456
4749
|
}
|
4457
4750
|
),
|
4458
4751
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4459
|
-
|
4752
|
+
designSystem.IconButton,
|
4460
4753
|
{
|
4461
4754
|
onClick: () => onActionClick("Underline", editorRef),
|
4462
4755
|
label: "Underline",
|
@@ -4465,79 +4758,81 @@ const WysiwygNav = ({
|
|
4465
4758
|
}
|
4466
4759
|
)
|
4467
4760
|
] }),
|
4468
|
-
/* @__PURE__ */ jsxRuntime.
|
4469
|
-
|
4470
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
4471
|
-
/* @__PURE__ */ jsxRuntime.
|
4472
|
-
|
4473
|
-
|
4474
|
-
|
4475
|
-
|
4476
|
-
|
4477
|
-
|
4478
|
-
|
4479
|
-
|
4480
|
-
|
4481
|
-
|
4482
|
-
|
4483
|
-
|
4484
|
-
|
4485
|
-
|
4486
|
-
|
4487
|
-
|
4488
|
-
|
4489
|
-
|
4490
|
-
|
4491
|
-
|
4492
|
-
|
4493
|
-
|
4494
|
-
|
4495
|
-
|
4496
|
-
|
4497
|
-
|
4498
|
-
|
4499
|
-
|
4500
|
-
/* @__PURE__ */ jsxRuntime.
|
4501
|
-
|
4502
|
-
|
4503
|
-
|
4504
|
-
|
4505
|
-
|
4506
|
-
|
4507
|
-
|
4508
|
-
|
4509
|
-
|
4510
|
-
|
4511
|
-
|
4512
|
-
|
4513
|
-
|
4514
|
-
|
4515
|
-
|
4516
|
-
|
4517
|
-
|
4518
|
-
|
4519
|
-
|
4520
|
-
|
4521
|
-
|
4522
|
-
|
4523
|
-
|
4524
|
-
|
4525
|
-
|
4526
|
-
|
4527
|
-
|
4528
|
-
|
4529
|
-
|
4530
|
-
|
4531
|
-
|
4532
|
-
|
4533
|
-
|
4534
|
-
|
4535
|
-
|
4536
|
-
|
4537
|
-
|
4538
|
-
|
4539
|
-
|
4540
|
-
|
4761
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Popover.Root, { children: [
|
4762
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(MoreButton, { label: "More", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.More, {}) }) }),
|
4763
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Content, { sideOffset: 12, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { padding: 2, children: [
|
4764
|
+
/* @__PURE__ */ jsxRuntime.jsxs(IconButtonGroupMargin, { children: [
|
4765
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
4766
|
+
designSystem.IconButton,
|
4767
|
+
{
|
4768
|
+
onClick: () => onActionClick("Strikethrough", editorRef, handleTogglePopover),
|
4769
|
+
label: "Strikethrough",
|
4770
|
+
name: "Strikethrough",
|
4771
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.StrikeThrough, {})
|
4772
|
+
}
|
4773
|
+
),
|
4774
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
4775
|
+
designSystem.IconButton,
|
4776
|
+
{
|
4777
|
+
onClick: () => onActionClick("BulletList", editorRef, handleTogglePopover),
|
4778
|
+
label: "BulletList",
|
4779
|
+
name: "BulletList",
|
4780
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.BulletList, {})
|
4781
|
+
}
|
4782
|
+
),
|
4783
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
4784
|
+
designSystem.IconButton,
|
4785
|
+
{
|
4786
|
+
onClick: () => onActionClick("NumberList", editorRef, handleTogglePopover),
|
4787
|
+
label: "NumberList",
|
4788
|
+
name: "NumberList",
|
4789
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.NumberList, {})
|
4790
|
+
}
|
4791
|
+
)
|
4792
|
+
] }),
|
4793
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.IconButtonGroup, { children: [
|
4794
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
4795
|
+
designSystem.IconButton,
|
4796
|
+
{
|
4797
|
+
onClick: () => onActionClick("Code", editorRef, handleTogglePopover),
|
4798
|
+
label: "Code",
|
4799
|
+
name: "Code",
|
4800
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Code, {})
|
4801
|
+
}
|
4802
|
+
),
|
4803
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
4804
|
+
designSystem.IconButton,
|
4805
|
+
{
|
4806
|
+
onClick: () => {
|
4807
|
+
handleTogglePopover();
|
4808
|
+
onToggleMediaLib();
|
4809
|
+
},
|
4810
|
+
label: "Image",
|
4811
|
+
name: "Image",
|
4812
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Image, {})
|
4813
|
+
}
|
4814
|
+
),
|
4815
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
4816
|
+
designSystem.IconButton,
|
4817
|
+
{
|
4818
|
+
onClick: () => onActionClick("Link", editorRef, handleTogglePopover),
|
4819
|
+
label: "Link",
|
4820
|
+
name: "Link",
|
4821
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Link, {})
|
4822
|
+
}
|
4823
|
+
),
|
4824
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
4825
|
+
designSystem.IconButton,
|
4826
|
+
{
|
4827
|
+
onClick: () => onActionClick("Quote", editorRef, handleTogglePopover),
|
4828
|
+
label: "Quote",
|
4829
|
+
name: "Quote",
|
4830
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Quotes, {})
|
4831
|
+
}
|
4832
|
+
)
|
4833
|
+
] })
|
4834
|
+
] }) })
|
4835
|
+
] })
|
4541
4836
|
] }),
|
4542
4837
|
onTogglePreviewMode && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { onClick: onTogglePreviewMode, variant: "tertiary", children: formatMessage({
|
4543
4838
|
id: "components.Wysiwyg.ToggleMode.preview-mode",
|
@@ -4605,7 +4900,7 @@ const Wysiwyg = React__namespace.forwardRef(
|
|
4605
4900
|
const handleSelectAssets = (files) => {
|
4606
4901
|
const formattedFiles = files.map((f) => ({
|
4607
4902
|
alt: f.alternativeText || f.name,
|
4608
|
-
url:
|
4903
|
+
url: useDebounce.prefixFileUrlWithBackendUrl(f.url),
|
4609
4904
|
mime: f.mime
|
4610
4905
|
}));
|
4611
4906
|
insertFile(editorRef, formattedFiles);
|
@@ -4683,6 +4978,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
|
|
4683
4978
|
const {
|
4684
4979
|
edit: { components }
|
4685
4980
|
} = index.useDocLayout();
|
4981
|
+
const field = strapiAdmin.useField(props.name);
|
4686
4982
|
if (!visible) {
|
4687
4983
|
return null;
|
4688
4984
|
}
|
@@ -4693,7 +4989,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
|
|
4693
4989
|
if (attributeHasCustomFieldProperty(props.attribute)) {
|
4694
4990
|
const CustomInput = lazyComponentStore[props.attribute.customField];
|
4695
4991
|
if (CustomInput) {
|
4696
|
-
return /* @__PURE__ */ jsxRuntime.jsx(CustomInput, { ...props, hint, disabled: fieldIsDisabled });
|
4992
|
+
return /* @__PURE__ */ jsxRuntime.jsx(CustomInput, { ...props, ...field, hint, disabled: fieldIsDisabled });
|
4697
4993
|
}
|
4698
4994
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
4699
4995
|
strapiAdmin.InputRenderer,
|
@@ -4763,7 +5059,9 @@ const useFieldHint = (hint = void 0, attribute) => {
|
|
4763
5059
|
if (!maximum && !minimum) {
|
4764
5060
|
return hint;
|
4765
5061
|
}
|
4766
|
-
const units = !["biginteger", "integer", "number"].includes(
|
5062
|
+
const units = !["biginteger", "integer", "number", "dynamiczone", "component"].includes(
|
5063
|
+
attribute.type
|
5064
|
+
) ? formatMessage(
|
4767
5065
|
{
|
4768
5066
|
id: "content-manager.form.Input.hint.character.unit",
|
4769
5067
|
defaultMessage: "{maxValue, plural, one { character} other { characters}}"
|
@@ -4857,7 +5155,7 @@ const DynamicComponent = ({
|
|
4857
5155
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4858
5156
|
designSystem.IconButton,
|
4859
5157
|
{
|
4860
|
-
|
5158
|
+
variant: "ghost",
|
4861
5159
|
label: formatMessage(
|
4862
5160
|
{
|
4863
5161
|
id: index.getTranslation("components.DynamicZone.delete-label"),
|
@@ -4872,7 +5170,7 @@ const DynamicComponent = ({
|
|
4872
5170
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4873
5171
|
designSystem.IconButton,
|
4874
5172
|
{
|
4875
|
-
|
5173
|
+
variant: "ghost",
|
4876
5174
|
onClick: (e) => e.stopPropagation(),
|
4877
5175
|
"data-handler-id": handlerId,
|
4878
5176
|
ref: dragRef,
|
@@ -4931,10 +5229,32 @@ const DynamicComponent = ({
|
|
4931
5229
|
),
|
4932
5230
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Actions, { children: accordionActions })
|
4933
5231
|
] }),
|
4934
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children:
|
4935
|
-
|
4936
|
-
|
4937
|
-
|
5232
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: components[componentUid]?.layout?.map((row, rowInd) => /* @__PURE__ */ jsxRuntime.jsx(
|
5233
|
+
designSystem.Grid.Item,
|
5234
|
+
{
|
5235
|
+
col: 12,
|
5236
|
+
s: 12,
|
5237
|
+
xs: 12,
|
5238
|
+
direction: "column",
|
5239
|
+
alignItems: "stretch",
|
5240
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
5241
|
+
const fieldName = `${name2}.${index$1}.${field.name}`;
|
5242
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
5243
|
+
designSystem.Grid.Item,
|
5244
|
+
{
|
5245
|
+
col: size,
|
5246
|
+
s: 12,
|
5247
|
+
xs: 12,
|
5248
|
+
direction: "column",
|
5249
|
+
alignItems: "stretch",
|
5250
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(MemoizedInputRenderer, { ...field, name: fieldName })
|
5251
|
+
},
|
5252
|
+
fieldName
|
5253
|
+
);
|
5254
|
+
}) })
|
5255
|
+
},
|
5256
|
+
rowInd
|
5257
|
+
)) }) }) }) })
|
4938
5258
|
] }) }) })
|
4939
5259
|
] });
|
4940
5260
|
};
|
@@ -5126,7 +5446,7 @@ const DynamicZone = ({
|
|
5126
5446
|
const handleRemoveComponent = (name22, currentIndex) => () => {
|
5127
5447
|
removeFieldRow(name22, currentIndex);
|
5128
5448
|
};
|
5129
|
-
const hasError = error !== void 0
|
5449
|
+
const hasError = error !== void 0;
|
5130
5450
|
const renderButtonLabel = () => {
|
5131
5451
|
if (addComponentIsOpen) {
|
5132
5452
|
return formatMessage({ id: "app.utils.close-label", defaultMessage: "Close" });
|
@@ -5240,4 +5560,4 @@ exports.transformDocument = transformDocument;
|
|
5240
5560
|
exports.useDynamicZone = useDynamicZone;
|
5241
5561
|
exports.useFieldHint = useFieldHint;
|
5242
5562
|
exports.useLazyComponents = useLazyComponents;
|
5243
|
-
//# sourceMappingURL=Field-
|
5563
|
+
//# sourceMappingURL=Field-CtUU1Fg8.js.map
|