@strapi/content-manager 0.0.0-experimental.25e22c6cc9bc6b35392bb55d09f641a0a65e7403 → 0.0.0-experimental.2cfaca2410c03f1dee31ca18c06aedfb313e0fb4
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-WRPUXGd6.js → ComponentConfigurationPage-DnnZJc1F.js} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-WRPUXGd6.js.map → ComponentConfigurationPage-DnnZJc1F.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-gdUj_t-O.mjs → ComponentConfigurationPage-hLMNf7KI.mjs} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-gdUj_t-O.mjs.map → ComponentConfigurationPage-hLMNf7KI.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-C1vjMBgy.js → EditConfigurationPage-CpLj5gYZ.js} +3 -3
- package/dist/_chunks/{EditConfigurationPage-C1vjMBgy.js.map → EditConfigurationPage-CpLj5gYZ.js.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-BwuIPOJG.mjs → EditConfigurationPage-Dh6sq-G4.mjs} +3 -3
- package/dist/_chunks/{EditConfigurationPage-BwuIPOJG.mjs.map → EditConfigurationPage-Dh6sq-G4.mjs.map} +1 -1
- package/dist/_chunks/{EditViewPage-0MiFkXa8.mjs → EditViewPage-BU1ugeVi.mjs} +19 -8
- package/dist/_chunks/EditViewPage-BU1ugeVi.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-DbcGfyqK.js → EditViewPage-D2QVRr_2.js} +19 -8
- package/dist/_chunks/EditViewPage-D2QVRr_2.js.map +1 -0
- package/dist/_chunks/{Field-BG1xu38N.js → Field-BEDX9i_V.js} +465 -145
- package/dist/_chunks/Field-BEDX9i_V.js.map +1 -0
- package/dist/_chunks/{Field-BDMSCcy5.mjs → Field-VSPY6uzs.mjs} +463 -143
- package/dist/_chunks/Field-VSPY6uzs.mjs.map +1 -0
- package/dist/_chunks/{Form-CPVWavB8.mjs → Form-05Oaes1N.mjs} +39 -17
- package/dist/_chunks/Form-05Oaes1N.mjs.map +1 -0
- package/dist/_chunks/{Form-9BnFyUjy.js → Form-DCaY8xBX.js} +39 -17
- package/dist/_chunks/Form-DCaY8xBX.js.map +1 -0
- package/dist/_chunks/{History-BVpd8LP3.mjs → History-BqO2G3MV.mjs} +44 -19
- package/dist/_chunks/History-BqO2G3MV.mjs.map +1 -0
- package/dist/_chunks/{History-BWWxLt2Z.js → History-BrJ1tUvt.js} +44 -19
- package/dist/_chunks/History-BrJ1tUvt.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-DozVMKcR.mjs → ListConfigurationPage-C6rsFlme.mjs} +20 -8
- package/dist/_chunks/ListConfigurationPage-C6rsFlme.mjs.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-6swzjdAZ.js → ListConfigurationPage-Eane5LKE.js} +20 -8
- package/dist/_chunks/ListConfigurationPage-Eane5LKE.js.map +1 -0
- package/dist/_chunks/{ListViewPage-BlzfjS2Q.js → ListViewPage-Coj-RPsx.js} +61 -43
- package/dist/_chunks/ListViewPage-Coj-RPsx.js.map +1 -0
- package/dist/_chunks/{ListViewPage-Ds0ulgfG.mjs → ListViewPage-yE_zYhcI.mjs} +59 -41
- package/dist/_chunks/ListViewPage-yE_zYhcI.mjs.map +1 -0
- package/dist/_chunks/{NoContentTypePage-D2nCCWEl.js → NoContentTypePage-BDJ0dshy.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-D2nCCWEl.js.map → NoContentTypePage-BDJ0dshy.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-BH11kaKt.mjs → NoContentTypePage-NW_FSVdY.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-BH11kaKt.mjs.map → NoContentTypePage-NW_FSVdY.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-DN_JlsU2.js → NoPermissionsPage-BOtb5FTM.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-DN_JlsU2.js.map → NoPermissionsPage-BOtb5FTM.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-BT2Tn0D_.mjs → NoPermissionsPage-h0I3ImsX.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-BT2Tn0D_.mjs.map → NoPermissionsPage-h0I3ImsX.mjs.map} +1 -1
- package/dist/_chunks/{Relations-CcgFTcWo.js → Relations-CVh0DOKv.js} +4 -4
- package/dist/_chunks/Relations-CVh0DOKv.js.map +1 -0
- package/dist/_chunks/{Relations-Dnag3fhV.mjs → Relations-FP0uWpBz.mjs} +4 -4
- package/dist/_chunks/Relations-FP0uWpBz.mjs.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-JNNNKUHs.mjs → index-CPCHQ3X_.mjs} +976 -658
- package/dist/_chunks/index-CPCHQ3X_.mjs.map +1 -0
- package/dist/_chunks/{index-CWpLBSt0.js → index-DTKVhcla.js} +968 -650
- package/dist/_chunks/index-DTKVhcla.js.map +1 -0
- package/dist/_chunks/{layout-DC503LnF.mjs → layout-B4UhJ8MJ.mjs} +27 -14
- package/dist/_chunks/layout-B4UhJ8MJ.mjs.map +1 -0
- package/dist/_chunks/{layout--iHdZzRk.js → layout-CWgZzMYf.js} +25 -12
- package/dist/_chunks/layout-CWgZzMYf.js.map +1 -0
- package/dist/_chunks/{relations-CTje5t-a.mjs → relations-B83Ge9a7.mjs} +2 -2
- package/dist/_chunks/{relations-CTje5t-a.mjs.map → relations-B83Ge9a7.mjs.map} +1 -1
- package/dist/_chunks/{relations-BbHizA5K.js → relations-D81a_2zw.js} +2 -2
- package/dist/_chunks/{relations-BbHizA5K.js.map → relations-D81a_2zw.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 +30 -1
- package/dist/admin/src/index.d.ts +1 -0
- package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -0
- 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 +4 -48
- package/dist/admin/src/pages/EditView/components/Header.d.ts +10 -11
- 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 +185 -113
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +186 -114
- 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-0MiFkXa8.mjs.map +0 -1
- package/dist/_chunks/EditViewPage-DbcGfyqK.js.map +0 -1
- package/dist/_chunks/Field-BDMSCcy5.mjs.map +0 -1
- package/dist/_chunks/Field-BG1xu38N.js.map +0 -1
- package/dist/_chunks/Form-9BnFyUjy.js.map +0 -1
- package/dist/_chunks/Form-CPVWavB8.mjs.map +0 -1
- package/dist/_chunks/History-BVpd8LP3.mjs.map +0 -1
- package/dist/_chunks/History-BWWxLt2Z.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-6swzjdAZ.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-DozVMKcR.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-BlzfjS2Q.js.map +0 -1
- package/dist/_chunks/ListViewPage-Ds0ulgfG.mjs.map +0 -1
- package/dist/_chunks/Relations-CcgFTcWo.js.map +0 -1
- package/dist/_chunks/Relations-Dnag3fhV.mjs.map +0 -1
- package/dist/_chunks/index-CWpLBSt0.js.map +0 -1
- package/dist/_chunks/index-JNNNKUHs.mjs.map +0 -1
- package/dist/_chunks/layout--iHdZzRk.js.map +0 -1
- package/dist/_chunks/layout-DC503LnF.mjs.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-DTKVhcla.js");
|
9
9
|
const fractionalIndexing = require("fractional-indexing");
|
10
|
-
const Relations = require("./Relations-
|
10
|
+
const Relations = require("./Relations-CVh0DOKv.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
|
});
|
@@ -627,20 +894,8 @@ const LinkContent = React__namespace.forwardRef(
|
|
627
894
|
const [linkText, setLinkText] = React__namespace.useState(elementText);
|
628
895
|
const [linkUrl, setLinkUrl] = React__namespace.useState(link.url);
|
629
896
|
const linkInputRef = React__namespace.useRef(null);
|
630
|
-
const
|
897
|
+
const isLastInsertedLink = editor.lastInsertedLinkPath ? !slate.Path.equals(path, editor.lastInsertedLinkPath) : true;
|
631
898
|
const [isSaveDisabled, setIsSaveDisabled] = React__namespace.useState(false);
|
632
|
-
const handleOpenChange = (isOpen) => {
|
633
|
-
if (isOpen) {
|
634
|
-
setPopoverOpen(isOpen);
|
635
|
-
setShowRemoveButton(isOpen);
|
636
|
-
} else {
|
637
|
-
setPopoverOpen(isOpen);
|
638
|
-
if (link.url === "") {
|
639
|
-
removeLink(editor);
|
640
|
-
}
|
641
|
-
slateReact.ReactEditor.focus(editor);
|
642
|
-
}
|
643
|
-
};
|
644
899
|
const onLinkChange = (e) => {
|
645
900
|
setIsSaveDisabled(false);
|
646
901
|
setLinkUrl(e.target.value);
|
@@ -661,15 +916,33 @@ const LinkContent = React__namespace.forwardRef(
|
|
661
916
|
editLink(editor, { url: linkUrl, text: linkText });
|
662
917
|
setPopoverOpen(false);
|
663
918
|
editor.lastInsertedLinkPath = null;
|
919
|
+
slateReact.ReactEditor.focus(editor);
|
920
|
+
};
|
921
|
+
const handleClose = () => {
|
922
|
+
if (link.url === "") {
|
923
|
+
removeLink(editor);
|
924
|
+
}
|
925
|
+
setPopoverOpen(false);
|
926
|
+
slateReact.ReactEditor.focus(editor);
|
664
927
|
};
|
665
928
|
React__namespace.useEffect(() => {
|
666
929
|
if (popoverOpen)
|
667
930
|
linkInputRef.current?.focus();
|
668
931
|
}, [popoverOpen]);
|
669
932
|
const inputNotDirty = !linkText || !linkUrl || link.url && link.url === linkUrl && elementText && elementText === linkText;
|
670
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Popover.Root, {
|
671
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
672
|
-
|
933
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Popover.Root, { open: popoverOpen, children: [
|
934
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
935
|
+
StyledBaseLink,
|
936
|
+
{
|
937
|
+
...attributes,
|
938
|
+
ref: forwardedRef,
|
939
|
+
href: link.url,
|
940
|
+
onClick: () => setPopoverOpen(true),
|
941
|
+
color: "primary600",
|
942
|
+
children
|
943
|
+
}
|
944
|
+
) }),
|
945
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Content, { onPointerDownOutside: handleClose, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { padding: 4, direction: "column", gap: 4, children: [
|
673
946
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Root, { width: "368px", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 1, alignItems: "stretch", children: [
|
674
947
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
675
948
|
id: "components.Blocks.popover.text",
|
@@ -715,7 +988,7 @@ const LinkContent = React__namespace.forwardRef(
|
|
715
988
|
{
|
716
989
|
variant: "danger-light",
|
717
990
|
onClick: () => removeLink(editor),
|
718
|
-
$visible:
|
991
|
+
$visible: isLastInsertedLink,
|
719
992
|
children: formatMessage({
|
720
993
|
id: "components.Blocks.popover.remove",
|
721
994
|
defaultMessage: "Remove"
|
@@ -723,11 +996,11 @@ const LinkContent = React__namespace.forwardRef(
|
|
723
996
|
}
|
724
997
|
),
|
725
998
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
|
726
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick:
|
999
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick: handleClose, children: formatMessage({
|
727
1000
|
id: "components.Blocks.popover.cancel",
|
728
1001
|
defaultMessage: "Cancel"
|
729
1002
|
}) }),
|
730
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, {
|
1003
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { disabled: Boolean(inputNotDirty) || isSaveDisabled, onClick: handleSave, children: formatMessage({
|
731
1004
|
id: "components.Blocks.popover.save",
|
732
1005
|
defaultMessage: "Save"
|
733
1006
|
}) })
|
@@ -1168,7 +1441,7 @@ const ToolbarButton = ({
|
|
1168
1441
|
width: 7,
|
1169
1442
|
height: 7,
|
1170
1443
|
hasRadius: true,
|
1171
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
|
1444
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { fill: disabled ? "neutral300" : enabledColor })
|
1172
1445
|
}
|
1173
1446
|
)
|
1174
1447
|
}
|
@@ -1313,6 +1586,26 @@ const ListButton = ({ block, format }) => {
|
|
1313
1586
|
}
|
1314
1587
|
return false;
|
1315
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
|
+
};
|
1316
1609
|
const toggleList = (format2) => {
|
1317
1610
|
let currentListEntry;
|
1318
1611
|
if (editor.selection) {
|
@@ -1346,7 +1639,7 @@ const ListButton = ({ block, format }) => {
|
|
1346
1639
|
name: format,
|
1347
1640
|
label: block.label,
|
1348
1641
|
isActive: isListActive(),
|
1349
|
-
disabled,
|
1642
|
+
disabled: isListDisabled(),
|
1350
1643
|
handleClick: () => toggleList(format)
|
1351
1644
|
}
|
1352
1645
|
);
|
@@ -1490,6 +1783,7 @@ const DragItem = styledComponents.styled(designSystem.Flex)`
|
|
1490
1783
|
}
|
1491
1784
|
`;
|
1492
1785
|
const DragIconButton = styledComponents.styled(designSystem.IconButton)`
|
1786
|
+
user-select: none;
|
1493
1787
|
display: flex;
|
1494
1788
|
align-items: center;
|
1495
1789
|
justify-content: center;
|
@@ -1513,7 +1807,7 @@ const DragIconButton = styledComponents.styled(designSystem.IconButton)`
|
|
1513
1807
|
}
|
1514
1808
|
svg {
|
1515
1809
|
height: auto;
|
1516
|
-
width: ${({ theme }) => theme.spaces[3]};
|
1810
|
+
min-width: ${({ theme }) => theme.spaces[3]};
|
1517
1811
|
|
1518
1812
|
path {
|
1519
1813
|
fill: ${({ theme }) => theme.colors.neutral700};
|
@@ -1618,6 +1912,7 @@ const DragAndDropElement = ({
|
|
1618
1912
|
DragIconButton,
|
1619
1913
|
{
|
1620
1914
|
tag: "div",
|
1915
|
+
contentEditable: false,
|
1621
1916
|
role: "button",
|
1622
1917
|
tabIndex: 0,
|
1623
1918
|
withTooltip: false,
|
@@ -1630,7 +1925,7 @@ const DragAndDropElement = ({
|
|
1630
1925
|
disabled,
|
1631
1926
|
draggable: true,
|
1632
1927
|
$dragHandleTopMargin: dragHandleTopMargin,
|
1633
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Drag, { color: "
|
1928
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Drag, { color: "primary500" })
|
1634
1929
|
}
|
1635
1930
|
),
|
1636
1931
|
children
|
@@ -1954,7 +2249,7 @@ const EditorLayout$1 = ({
|
|
1954
2249
|
/* @__PURE__ */ jsxRuntime.jsx(
|
1955
2250
|
CollapseIconButton,
|
1956
2251
|
{
|
1957
|
-
|
2252
|
+
label: formatMessage({
|
1958
2253
|
id: index.getTranslation("components.Blocks.collapse"),
|
1959
2254
|
defaultMessage: "Collapse"
|
1960
2255
|
}),
|
@@ -2293,7 +2588,7 @@ const BlocksEditor = React__namespace.forwardRef(
|
|
2293
2588
|
!isExpandedMode && /* @__PURE__ */ jsxRuntime.jsx(
|
2294
2589
|
ExpandIconButton,
|
2295
2590
|
{
|
2296
|
-
|
2591
|
+
label: formatMessage({
|
2297
2592
|
id: index.getTranslation("components.Blocks.expand"),
|
2298
2593
|
defaultMessage: "Expand"
|
2299
2594
|
}),
|
@@ -2359,30 +2654,27 @@ const createDefaultForm = (contentType, components = {}) => {
|
|
2359
2654
|
const Initializer = ({ disabled, name: name2, onClick }) => {
|
2360
2655
|
const { formatMessage } = reactIntl.useIntl();
|
2361
2656
|
const field = strapiAdmin.useField(name2);
|
2362
|
-
return /* @__PURE__ */ jsxRuntime.
|
2363
|
-
|
2364
|
-
|
2365
|
-
|
2366
|
-
|
2367
|
-
|
2368
|
-
|
2369
|
-
|
2370
|
-
|
2371
|
-
|
2372
|
-
|
2373
|
-
|
2374
|
-
|
2375
|
-
|
2376
|
-
|
2377
|
-
|
2378
|
-
|
2379
|
-
|
2380
|
-
|
2381
|
-
|
2382
|
-
|
2383
|
-
),
|
2384
|
-
field.error && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "danger600", variant: "pi", children: field.error })
|
2385
|
-
] });
|
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
|
+
) });
|
2386
2678
|
};
|
2387
2679
|
const CircleIcon = styledComponents.styled(Icons.PlusCircle)`
|
2388
2680
|
width: 2.4rem;
|
@@ -2416,7 +2708,18 @@ const NonRepeatableComponent = ({
|
|
2416
2708
|
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children: layout.map((row, index2) => {
|
2417
2709
|
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
2418
2710
|
const completeFieldName = `${name2}.${field.name}`;
|
2419
|
-
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
|
+
);
|
2420
2723
|
}) }, index2);
|
2421
2724
|
}) })
|
2422
2725
|
}
|
@@ -2456,7 +2759,7 @@ const RepeatableComponent = ({
|
|
2456
2759
|
}
|
2457
2760
|
return void 0;
|
2458
2761
|
}, [search, name2, value]);
|
2459
|
-
const prevValue =
|
2762
|
+
const prevValue = useDebounce.usePrev(value);
|
2460
2763
|
React__namespace.useEffect(() => {
|
2461
2764
|
if (prevValue && prevValue.length < value.length) {
|
2462
2765
|
setCollapseToOpen(value[value.length - 1].__temp_key__);
|
@@ -2594,7 +2897,18 @@ const RepeatableComponent = ({
|
|
2594
2897
|
children: layout.map((row, index22) => {
|
2595
2898
|
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
2596
2899
|
const completeFieldName = `${nameWithIndex}.${field.name}`;
|
2597
|
-
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
|
+
);
|
2598
2912
|
}) }, index22);
|
2599
2913
|
})
|
2600
2914
|
}
|
@@ -2689,7 +3003,7 @@ const Component = ({
|
|
2689
3003
|
/* @__PURE__ */ jsxRuntime.jsx(
|
2690
3004
|
designSystem.IconButton,
|
2691
3005
|
{
|
2692
|
-
|
3006
|
+
variant: "ghost",
|
2693
3007
|
onClick: onDeleteComponent,
|
2694
3008
|
label: formatMessage({
|
2695
3009
|
id: index.getTranslation("containers.Edit.delete"),
|
@@ -2702,7 +3016,7 @@ const Component = ({
|
|
2702
3016
|
designSystem.IconButton,
|
2703
3017
|
{
|
2704
3018
|
ref: composedAccordionRefs,
|
2705
|
-
|
3019
|
+
variant: "ghost",
|
2706
3020
|
onClick: (e) => e.stopPropagation(),
|
2707
3021
|
"data-handler-id": handlerId,
|
2708
3022
|
label: formatMessage({
|
@@ -2772,7 +3086,7 @@ const ComponentInput = ({
|
|
2772
3086
|
id: index.getTranslation("components.reset-entry"),
|
2773
3087
|
defaultMessage: "Reset Entry"
|
2774
3088
|
}),
|
2775
|
-
|
3089
|
+
variant: "ghost",
|
2776
3090
|
onClick: () => {
|
2777
3091
|
field.onChange(name2, null);
|
2778
3092
|
},
|
@@ -2801,11 +3115,8 @@ const AddComponentButton = ({
|
|
2801
3115
|
onClick,
|
2802
3116
|
disabled: isDisabled,
|
2803
3117
|
background: "neutral0",
|
2804
|
-
paddingTop: 3,
|
2805
|
-
paddingBottom: 3,
|
2806
|
-
paddingLeft: 4,
|
2807
|
-
paddingRight: 4,
|
2808
3118
|
style: { cursor: isDisabled ? "not-allowed" : "pointer" },
|
3119
|
+
variant: "tertiary",
|
2809
3120
|
children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { tag: "span", gap: 2, children: [
|
2810
3121
|
/* @__PURE__ */ jsxRuntime.jsx(StyledAddIcon, { "aria-hidden": true, $isOpen: isOpen, $hasError: hasError && !isOpen }),
|
2811
3122
|
/* @__PURE__ */ jsxRuntime.jsx(
|
@@ -2834,10 +3145,11 @@ const StyledAddIcon = styledComponents.styled(Icons.PlusCircle)`
|
|
2834
3145
|
}
|
2835
3146
|
`;
|
2836
3147
|
const AddComponentTitle = styledComponents.styled(designSystem.Typography)``;
|
2837
|
-
const StyledButton = styledComponents.styled(designSystem.
|
3148
|
+
const StyledButton = styledComponents.styled(designSystem.Button)`
|
2838
3149
|
border-radius: 26px;
|
2839
3150
|
border-color: ${({ theme }) => theme.colors.neutral150};
|
2840
3151
|
box-shadow: ${({ theme }) => theme.shadows.filterShadow};
|
3152
|
+
height: 5rem;
|
2841
3153
|
|
2842
3154
|
&:hover {
|
2843
3155
|
${AddComponentTitle} {
|
@@ -2849,7 +3161,7 @@ const StyledButton = styledComponents.styled(designSystem.BaseButton)`
|
|
2849
3161
|
fill: ${({ theme }) => theme.colors.primary600};
|
2850
3162
|
}
|
2851
3163
|
> path {
|
2852
|
-
fill: ${({ theme }) => theme.colors.
|
3164
|
+
fill: ${({ theme }) => theme.colors.primary600};
|
2853
3165
|
}
|
2854
3166
|
}
|
2855
3167
|
}
|
@@ -2980,18 +3292,6 @@ const NotAllowedInput = ({ hint, label, required, name: name2 }) => {
|
|
2980
3292
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
|
2981
3293
|
] });
|
2982
3294
|
};
|
2983
|
-
function useDebounce(value, delay) {
|
2984
|
-
const [debouncedValue, setDebouncedValue] = React.useState(value);
|
2985
|
-
React.useEffect(() => {
|
2986
|
-
const handler = setTimeout(() => {
|
2987
|
-
setDebouncedValue(value);
|
2988
|
-
}, delay);
|
2989
|
-
return () => {
|
2990
|
-
clearTimeout(handler);
|
2991
|
-
};
|
2992
|
-
}, [value, delay]);
|
2993
|
-
return debouncedValue;
|
2994
|
-
}
|
2995
3295
|
const uidApi = index.contentManagerApi.injectEndpoints({
|
2996
3296
|
endpoints: (builder) => ({
|
2997
3297
|
getDefaultUID: builder.query({
|
@@ -3026,7 +3326,10 @@ const uidApi = index.contentManagerApi.injectEndpoints({
|
|
3026
3326
|
config: {
|
3027
3327
|
params
|
3028
3328
|
}
|
3029
|
-
})
|
3329
|
+
}),
|
3330
|
+
providesTags: (_res, _error, params) => [
|
3331
|
+
{ type: "UidAvailability", id: params.contentTypeUID }
|
3332
|
+
]
|
3030
3333
|
})
|
3031
3334
|
})
|
3032
3335
|
});
|
@@ -3038,8 +3341,10 @@ const UIDInput = React__namespace.forwardRef(
|
|
3038
3341
|
const allFormValues = strapiAdmin.useForm("InputUID", (form) => form.values);
|
3039
3342
|
const [availability, setAvailability] = React__namespace.useState();
|
3040
3343
|
const [showRegenerate, setShowRegenerate] = React__namespace.useState(false);
|
3344
|
+
const isCloning = reactRouterDom.useMatch(index.CLONE_PATH) !== null;
|
3041
3345
|
const field = strapiAdmin.useField(name2);
|
3042
|
-
const debouncedValue = useDebounce(field.value, 300);
|
3346
|
+
const debouncedValue = useDebounce.useDebounce(field.value, 300);
|
3347
|
+
const hasChanged = debouncedValue !== field.initialValue;
|
3043
3348
|
const { toggleNotification } = strapiAdmin.useNotification();
|
3044
3349
|
const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
3045
3350
|
const { formatMessage } = reactIntl.useIntl();
|
@@ -3115,8 +3420,9 @@ const UIDInput = React__namespace.forwardRef(
|
|
3115
3420
|
params
|
3116
3421
|
},
|
3117
3422
|
{
|
3423
|
+
// Don't check availability if the value is empty or wasn't changed
|
3118
3424
|
skip: !Boolean(
|
3119
|
-
|
3425
|
+
(hasChanged || isCloning) && debouncedValue && UID_REGEX.test(debouncedValue.trim())
|
3120
3426
|
)
|
3121
3427
|
}
|
3122
3428
|
);
|
@@ -3145,6 +3451,7 @@ const UIDInput = React__namespace.forwardRef(
|
|
3145
3451
|
const isLoading = isGeneratingDefaultUID || isGeneratingUID || isCheckingAvailability;
|
3146
3452
|
const fieldRef = strapiAdmin.useFocusInputField(name2);
|
3147
3453
|
const composedRefs = designSystem.useComposedRefs(ref, fieldRef);
|
3454
|
+
const shouldShowAvailability = (hasChanged || isCloning) && debouncedValue != null && availability && !showRegenerate;
|
3148
3455
|
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { hint, name: name2, error: field.error, required, children: [
|
3149
3456
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { action: labelAction, children: label }),
|
3150
3457
|
/* @__PURE__ */ jsxRuntime.jsx(
|
@@ -3153,7 +3460,7 @@ const UIDInput = React__namespace.forwardRef(
|
|
3153
3460
|
ref: composedRefs,
|
3154
3461
|
disabled: props.disabled,
|
3155
3462
|
endAction: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { position: "relative", gap: 1, children: [
|
3156
|
-
|
3463
|
+
shouldShowAvailability && /* @__PURE__ */ jsxRuntime.jsxs(
|
3157
3464
|
TextValidation,
|
3158
3465
|
{
|
3159
3466
|
alignItems: "center",
|
@@ -3987,7 +4294,7 @@ const EditorLayout = ({
|
|
3987
4294
|
justifyContent: "flex-end",
|
3988
4295
|
shrink: 0,
|
3989
4296
|
width: "100%",
|
3990
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(ExpandButton$1, { onClick: onCollapse, children: [
|
4297
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(ExpandButton$1, { onClick: onCollapse, variant: "tertiary", size: "M", children: [
|
3991
4298
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({
|
3992
4299
|
id: "components.Wysiwyg.collapse",
|
3993
4300
|
defaultMessage: "Collapse"
|
@@ -4005,12 +4312,14 @@ const EditorLayout = ({
|
|
4005
4312
|
) }) });
|
4006
4313
|
}
|
4007
4314
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
4008
|
-
designSystem.
|
4315
|
+
designSystem.Flex,
|
4009
4316
|
{
|
4010
4317
|
borderColor: error ? "danger600" : "neutral200",
|
4011
4318
|
borderStyle: "solid",
|
4012
4319
|
borderWidth: "1px",
|
4013
4320
|
hasRadius: true,
|
4321
|
+
direction: "column",
|
4322
|
+
alignItems: "stretch",
|
4014
4323
|
children
|
4015
4324
|
}
|
4016
4325
|
);
|
@@ -4021,11 +4330,19 @@ const ExpandWrapper = styledComponents.styled(designSystem.Flex)`
|
|
4021
4330
|
const BoxWithBorder = styledComponents.styled(designSystem.Box)`
|
4022
4331
|
border-right: 1px solid ${({ theme }) => theme.colors.neutral200};
|
4023
4332
|
`;
|
4024
|
-
const ExpandButton$1 = styledComponents.styled(designSystem.
|
4333
|
+
const ExpandButton$1 = styledComponents.styled(designSystem.Button)`
|
4025
4334
|
background-color: transparent;
|
4026
4335
|
border: none;
|
4027
4336
|
align-items: center;
|
4028
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
|
+
|
4029
4346
|
svg {
|
4030
4347
|
margin-left: ${({ theme }) => `${theme.spaces[2]}`};
|
4031
4348
|
|
@@ -4292,40 +4609,28 @@ const quoteAndCodeHandler = (editor, markdownType) => {
|
|
4292
4609
|
insertWithoutTextToEdit(editor, markdownType, line, contentLength);
|
4293
4610
|
}
|
4294
4611
|
};
|
4295
|
-
const CustomIconButton = styledComponents.styled(designSystem.IconButton)`
|
4296
|
-
padding: ${({ theme }) => theme.spaces[2]};
|
4297
|
-
|
4298
|
-
svg {
|
4299
|
-
width: 1.8rem;
|
4300
|
-
height: 1.8rem;
|
4301
|
-
}
|
4302
|
-
`;
|
4303
|
-
const CustomLinkIconButton = styledComponents.styled(CustomIconButton)`
|
4304
|
-
svg {
|
4305
|
-
width: 0.8rem;
|
4306
|
-
height: 0.8rem;
|
4307
|
-
}
|
4308
|
-
`;
|
4309
4612
|
const MainButtons = styledComponents.styled(designSystem.IconButtonGroup)`
|
4310
4613
|
margin-left: ${({ theme }) => theme.spaces[4]};
|
4311
4614
|
`;
|
4312
4615
|
const MoreButton = styledComponents.styled(designSystem.IconButton)`
|
4313
4616
|
margin: ${({ theme }) => `0 ${theme.spaces[2]}`};
|
4314
|
-
padding: ${({ theme }) => theme.spaces[2]};
|
4315
|
-
|
4316
|
-
svg {
|
4317
|
-
width: 1.8rem;
|
4318
|
-
height: 1.8rem;
|
4319
|
-
}
|
4320
4617
|
`;
|
4321
4618
|
const IconButtonGroupMargin = styledComponents.styled(designSystem.IconButtonGroup)`
|
4322
4619
|
margin-right: ${({ theme }) => `${theme.spaces[2]}`};
|
4323
4620
|
`;
|
4324
|
-
const ExpandButton = styledComponents.styled(designSystem.
|
4621
|
+
const ExpandButton = styledComponents.styled(designSystem.Button)`
|
4325
4622
|
background-color: transparent;
|
4326
4623
|
border: none;
|
4327
4624
|
align-items: center;
|
4328
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
|
+
|
4329
4634
|
svg {
|
4330
4635
|
margin-left: ${({ theme }) => `${theme.spaces[2]}`};
|
4331
4636
|
path {
|
@@ -4337,8 +4642,8 @@ const ExpandButton = styledComponents.styled(designSystem.BaseButton)`
|
|
4337
4642
|
`;
|
4338
4643
|
const WysiwygFooter = ({ onToggleExpand }) => {
|
4339
4644
|
const { formatMessage } = reactIntl.useIntl();
|
4340
|
-
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: [
|
4341
|
-
/* @__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({
|
4342
4647
|
id: "components.WysiwygBottomControls.fullscreen",
|
4343
4648
|
defaultMessage: "Expand"
|
4344
4649
|
}) }),
|
@@ -4374,18 +4679,27 @@ const WysiwygNav = ({
|
|
4374
4679
|
borderRadius: `0.4rem 0.4rem 0 0`,
|
4375
4680
|
children: [
|
4376
4681
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { children: [
|
4377
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Root, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
4378
|
-
|
4379
|
-
|
4380
|
-
|
4381
|
-
|
4382
|
-
|
4383
|
-
|
4384
|
-
|
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
|
+
) }),
|
4385
4699
|
/* @__PURE__ */ jsxRuntime.jsxs(MainButtons, { children: [
|
4386
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
4387
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
4388
|
-
/* @__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, {}) })
|
4389
4703
|
] }),
|
4390
4704
|
/* @__PURE__ */ jsxRuntime.jsx(MoreButton, { disabled: true, label: "More", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.More, {}) })
|
4391
4705
|
] }),
|
@@ -4412,6 +4726,7 @@ const WysiwygNav = ({
|
|
4412
4726
|
placeholder: selectPlaceholder,
|
4413
4727
|
"aria-label": selectPlaceholder,
|
4414
4728
|
onChange: (value) => onActionClick(value, editorRef),
|
4729
|
+
size: "S",
|
4415
4730
|
children: [
|
4416
4731
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h1", children: "h1" }),
|
4417
4732
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h2", children: "h2" }),
|
@@ -4423,17 +4738,9 @@ const WysiwygNav = ({
|
|
4423
4738
|
}
|
4424
4739
|
) }),
|
4425
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, {}) }),
|
4426
4742
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4427
|
-
|
4428
|
-
{
|
4429
|
-
onClick: () => onActionClick("Bold", editorRef),
|
4430
|
-
label: "Bold",
|
4431
|
-
name: "Bold",
|
4432
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Bold, {})
|
4433
|
-
}
|
4434
|
-
),
|
4435
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
4436
|
-
CustomIconButton,
|
4743
|
+
designSystem.IconButton,
|
4437
4744
|
{
|
4438
4745
|
onClick: () => onActionClick("Italic", editorRef),
|
4439
4746
|
label: "Italic",
|
@@ -4442,7 +4749,7 @@ const WysiwygNav = ({
|
|
4442
4749
|
}
|
4443
4750
|
),
|
4444
4751
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4445
|
-
|
4752
|
+
designSystem.IconButton,
|
4446
4753
|
{
|
4447
4754
|
onClick: () => onActionClick("Underline", editorRef),
|
4448
4755
|
label: "Underline",
|
@@ -4456,7 +4763,7 @@ const WysiwygNav = ({
|
|
4456
4763
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Content, { sideOffset: 12, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { padding: 2, children: [
|
4457
4764
|
/* @__PURE__ */ jsxRuntime.jsxs(IconButtonGroupMargin, { children: [
|
4458
4765
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4459
|
-
|
4766
|
+
designSystem.IconButton,
|
4460
4767
|
{
|
4461
4768
|
onClick: () => onActionClick("Strikethrough", editorRef, handleTogglePopover),
|
4462
4769
|
label: "Strikethrough",
|
@@ -4465,7 +4772,7 @@ const WysiwygNav = ({
|
|
4465
4772
|
}
|
4466
4773
|
),
|
4467
4774
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4468
|
-
|
4775
|
+
designSystem.IconButton,
|
4469
4776
|
{
|
4470
4777
|
onClick: () => onActionClick("BulletList", editorRef, handleTogglePopover),
|
4471
4778
|
label: "BulletList",
|
@@ -4474,7 +4781,7 @@ const WysiwygNav = ({
|
|
4474
4781
|
}
|
4475
4782
|
),
|
4476
4783
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4477
|
-
|
4784
|
+
designSystem.IconButton,
|
4478
4785
|
{
|
4479
4786
|
onClick: () => onActionClick("NumberList", editorRef, handleTogglePopover),
|
4480
4787
|
label: "NumberList",
|
@@ -4485,7 +4792,7 @@ const WysiwygNav = ({
|
|
4485
4792
|
] }),
|
4486
4793
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.IconButtonGroup, { children: [
|
4487
4794
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4488
|
-
|
4795
|
+
designSystem.IconButton,
|
4489
4796
|
{
|
4490
4797
|
onClick: () => onActionClick("Code", editorRef, handleTogglePopover),
|
4491
4798
|
label: "Code",
|
@@ -4494,7 +4801,7 @@ const WysiwygNav = ({
|
|
4494
4801
|
}
|
4495
4802
|
),
|
4496
4803
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4497
|
-
|
4804
|
+
designSystem.IconButton,
|
4498
4805
|
{
|
4499
4806
|
onClick: () => {
|
4500
4807
|
handleTogglePopover();
|
@@ -4506,7 +4813,7 @@ const WysiwygNav = ({
|
|
4506
4813
|
}
|
4507
4814
|
),
|
4508
4815
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4509
|
-
|
4816
|
+
designSystem.IconButton,
|
4510
4817
|
{
|
4511
4818
|
onClick: () => onActionClick("Link", editorRef, handleTogglePopover),
|
4512
4819
|
label: "Link",
|
@@ -4515,7 +4822,7 @@ const WysiwygNav = ({
|
|
4515
4822
|
}
|
4516
4823
|
),
|
4517
4824
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4518
|
-
|
4825
|
+
designSystem.IconButton,
|
4519
4826
|
{
|
4520
4827
|
onClick: () => onActionClick("Quote", editorRef, handleTogglePopover),
|
4521
4828
|
label: "Quote",
|
@@ -4593,7 +4900,7 @@ const Wysiwyg = React__namespace.forwardRef(
|
|
4593
4900
|
const handleSelectAssets = (files) => {
|
4594
4901
|
const formattedFiles = files.map((f) => ({
|
4595
4902
|
alt: f.alternativeText || f.name,
|
4596
|
-
url:
|
4903
|
+
url: useDebounce.prefixFileUrlWithBackendUrl(f.url),
|
4597
4904
|
mime: f.mime
|
4598
4905
|
}));
|
4599
4906
|
insertFile(editorRef, formattedFiles);
|
@@ -4751,7 +5058,9 @@ const useFieldHint = (hint = void 0, attribute) => {
|
|
4751
5058
|
if (!maximum && !minimum) {
|
4752
5059
|
return hint;
|
4753
5060
|
}
|
4754
|
-
const units = !["biginteger", "integer", "number"].includes(
|
5061
|
+
const units = !["biginteger", "integer", "number", "dynamiczone", "component"].includes(
|
5062
|
+
attribute.type
|
5063
|
+
) ? formatMessage(
|
4755
5064
|
{
|
4756
5065
|
id: "content-manager.form.Input.hint.character.unit",
|
4757
5066
|
defaultMessage: "{maxValue, plural, one { character} other { characters}}"
|
@@ -4845,7 +5154,7 @@ const DynamicComponent = ({
|
|
4845
5154
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4846
5155
|
designSystem.IconButton,
|
4847
5156
|
{
|
4848
|
-
|
5157
|
+
variant: "ghost",
|
4849
5158
|
label: formatMessage(
|
4850
5159
|
{
|
4851
5160
|
id: index.getTranslation("components.DynamicZone.delete-label"),
|
@@ -4860,7 +5169,7 @@ const DynamicComponent = ({
|
|
4860
5169
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4861
5170
|
designSystem.IconButton,
|
4862
5171
|
{
|
4863
|
-
|
5172
|
+
variant: "ghost",
|
4864
5173
|
onClick: (e) => e.stopPropagation(),
|
4865
5174
|
"data-handler-id": handlerId,
|
4866
5175
|
ref: dragRef,
|
@@ -4921,7 +5230,18 @@ const DynamicComponent = ({
|
|
4921
5230
|
] }),
|
4922
5231
|
/* @__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: components[componentUid]?.layout?.map((row, rowInd) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
4923
5232
|
const fieldName = `${name2}.${index$1}.${field.name}`;
|
4924
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
5233
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
5234
|
+
designSystem.Grid.Item,
|
5235
|
+
{
|
5236
|
+
col: size,
|
5237
|
+
s: 12,
|
5238
|
+
xs: 12,
|
5239
|
+
direction: "column",
|
5240
|
+
alignItems: "stretch",
|
5241
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(MemoizedInputRenderer, { ...field, name: fieldName })
|
5242
|
+
},
|
5243
|
+
fieldName
|
5244
|
+
);
|
4925
5245
|
}) }, rowInd)) }) }) })
|
4926
5246
|
] }) }) })
|
4927
5247
|
] });
|
@@ -5114,7 +5434,7 @@ const DynamicZone = ({
|
|
5114
5434
|
const handleRemoveComponent = (name22, currentIndex) => () => {
|
5115
5435
|
removeFieldRow(name22, currentIndex);
|
5116
5436
|
};
|
5117
|
-
const hasError = error !== void 0
|
5437
|
+
const hasError = error !== void 0;
|
5118
5438
|
const renderButtonLabel = () => {
|
5119
5439
|
if (addComponentIsOpen) {
|
5120
5440
|
return formatMessage({ id: "app.utils.close-label", defaultMessage: "Close" });
|
@@ -5228,4 +5548,4 @@ exports.transformDocument = transformDocument;
|
|
5228
5548
|
exports.useDynamicZone = useDynamicZone;
|
5229
5549
|
exports.useFieldHint = useFieldHint;
|
5230
5550
|
exports.useLazyComponents = useLazyComponents;
|
5231
|
-
//# sourceMappingURL=Field-
|
5551
|
+
//# sourceMappingURL=Field-BEDX9i_V.js.map
|