@strapi/content-manager 0.0.0-experimental.826f263c58b6886b849d3f03b81f7a530bc51c91 → 0.0.0-experimental.93181c8b900e97a04bf10785b368657101ec98d8
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-CR5XdR33.mjs → ComponentConfigurationPage-DJEJ49QD.mjs} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-CR5XdR33.mjs.map → ComponentConfigurationPage-DJEJ49QD.mjs.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-DJcn1DrO.js → ComponentConfigurationPage-D_g11bYV.js} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-DJcn1DrO.js.map → ComponentConfigurationPage-D_g11bYV.js.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-tDtWj7R2.js → EditConfigurationPage-CeL712KW.js} +3 -3
- package/dist/_chunks/{EditConfigurationPage-tDtWj7R2.js.map → EditConfigurationPage-CeL712KW.js.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-DmCIb4kD.mjs → EditConfigurationPage-QBZdUYyG.mjs} +3 -3
- package/dist/_chunks/{EditConfigurationPage-DmCIb4kD.mjs.map → EditConfigurationPage-QBZdUYyG.mjs.map} +1 -1
- package/dist/_chunks/{EditViewPage-DvaV7U9b.mjs → EditViewPage-CvRUUpVh.mjs} +58 -47
- package/dist/_chunks/EditViewPage-CvRUUpVh.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-CoQEnFlC.js → EditViewPage-g5TwrgRY.js} +57 -46
- package/dist/_chunks/EditViewPage-g5TwrgRY.js.map +1 -0
- package/dist/_chunks/{Field-ZdrmmQ4Y.js → Field-ncdInvxS.js} +521 -203
- package/dist/_chunks/Field-ncdInvxS.js.map +1 -0
- package/dist/_chunks/{Field-Cz_J9551.mjs → Field-reyvfnop.mjs} +523 -205
- package/dist/_chunks/Field-reyvfnop.mjs.map +1 -0
- package/dist/_chunks/{Form-Bpig5rch.js → Form-BJ7bYiUx.js} +40 -28
- package/dist/_chunks/Form-BJ7bYiUx.js.map +1 -0
- package/dist/_chunks/{Form-Dxmihyw8.mjs → Form-DoMGsYxH.mjs} +42 -30
- package/dist/_chunks/Form-DoMGsYxH.mjs.map +1 -0
- package/dist/_chunks/{History-BZP8n7KT.mjs → History-BseDJOrj.mjs} +141 -37
- package/dist/_chunks/History-BseDJOrj.mjs.map +1 -0
- package/dist/_chunks/{History-BfX6XmZK.js → History-pbhkxIrf.js} +140 -36
- package/dist/_chunks/History-pbhkxIrf.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-B3CXj8PY.js → ListConfigurationPage-Bna8zfjr.js} +57 -46
- package/dist/_chunks/ListConfigurationPage-Bna8zfjr.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-DxKuVkKz.mjs → ListConfigurationPage-DWE_fr5B.mjs} +58 -48
- package/dist/_chunks/ListConfigurationPage-DWE_fr5B.mjs.map +1 -0
- package/dist/_chunks/{ListViewPage-Bk9VO__I.js → ListViewPage-Dymsvnv6.js} +82 -93
- package/dist/_chunks/ListViewPage-Dymsvnv6.js.map +1 -0
- package/dist/_chunks/{ListViewPage-D5D3tVPq.mjs → ListViewPage-lQ-VLV2G.mjs} +84 -95
- package/dist/_chunks/ListViewPage-lQ-VLV2G.mjs.map +1 -0
- package/dist/_chunks/{NoContentTypePage-DsB2F7Z1.js → NoContentTypePage-B4t_OsDR.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-DsB2F7Z1.js.map → NoContentTypePage-B4t_OsDR.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-DnMeuQCj.mjs → NoContentTypePage-VCQOMwlf.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-DnMeuQCj.mjs.map → NoContentTypePage-VCQOMwlf.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-BQDM64_b.js → NoPermissionsPage-BOwB6hki.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-BQDM64_b.js.map → NoPermissionsPage-BOwB6hki.js.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-OyoME_Tf.mjs → NoPermissionsPage-TV830k4P.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-OyoME_Tf.mjs.map → NoPermissionsPage-TV830k4P.mjs.map} +1 -1
- package/dist/_chunks/{Relations-BOYZmuWy.mjs → Relations-D6NAlnsl.mjs} +4 -4
- package/dist/_chunks/Relations-D6NAlnsl.mjs.map +1 -0
- package/dist/_chunks/{Relations-B6B3A3mb.js → Relations-DdlstXTu.js} +4 -4
- package/dist/_chunks/Relations-DdlstXTu.js.map +1 -0
- package/dist/_chunks/{en-BN1bvFK7.js → en-Cf41pH5f.js} +12 -7
- package/dist/_chunks/{en-BN1bvFK7.js.map → en-Cf41pH5f.js.map} +1 -1
- package/dist/_chunks/{en-Dzv55oQw.mjs → en-DCszE74t.mjs} +12 -7
- package/dist/_chunks/{en-Dzv55oQw.mjs.map → en-DCszE74t.mjs.map} +1 -1
- package/dist/_chunks/{index-VHviNMeW.mjs → index-BYSWwHBJ.mjs} +515 -463
- package/dist/_chunks/index-BYSWwHBJ.mjs.map +1 -0
- package/dist/_chunks/{index-DzN3kBgx.js → index-CQos-KS0.js} +495 -443
- package/dist/_chunks/index-CQos-KS0.js.map +1 -0
- package/dist/_chunks/{layout-CPn1PM6x.mjs → layout-0TY7UtKO.mjs} +39 -22
- package/dist/_chunks/layout-0TY7UtKO.mjs.map +1 -0
- package/dist/_chunks/{layout-b91XRlD2.js → layout-B4XAqu1v.js} +37 -20
- package/dist/_chunks/layout-B4XAqu1v.js.map +1 -0
- package/dist/_chunks/{relations-BsqxS6tR.mjs → relations-DFDWfa0s.mjs} +2 -2
- package/dist/_chunks/{relations-BsqxS6tR.mjs.map → relations-DFDWfa0s.mjs.map} +1 -1
- package/dist/_chunks/{relations-CA7IYmcP.js → relations-xZ2tMj1G.js} +2 -2
- package/dist/_chunks/{relations-CA7IYmcP.js.map → relations-xZ2tMj1G.js.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +5 -5
- package/dist/admin/src/history/components/VersionInputRenderer.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/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/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 +180 -106
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +181 -107
- 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 +8 -8
- package/dist/_chunks/EditViewPage-CoQEnFlC.js.map +0 -1
- package/dist/_chunks/EditViewPage-DvaV7U9b.mjs.map +0 -1
- package/dist/_chunks/Field-Cz_J9551.mjs.map +0 -1
- package/dist/_chunks/Field-ZdrmmQ4Y.js.map +0 -1
- package/dist/_chunks/Form-Bpig5rch.js.map +0 -1
- package/dist/_chunks/Form-Dxmihyw8.mjs.map +0 -1
- package/dist/_chunks/History-BZP8n7KT.mjs.map +0 -1
- package/dist/_chunks/History-BfX6XmZK.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-B3CXj8PY.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-DxKuVkKz.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-Bk9VO__I.js.map +0 -1
- package/dist/_chunks/ListViewPage-D5D3tVPq.mjs.map +0 -1
- package/dist/_chunks/Relations-B6B3A3mb.js.map +0 -1
- package/dist/_chunks/Relations-BOYZmuWy.mjs.map +0 -1
- package/dist/_chunks/index-DzN3kBgx.js.map +0 -1
- package/dist/_chunks/index-VHviNMeW.mjs.map +0 -1
- package/dist/_chunks/layout-CPn1PM6x.mjs.map +0 -1
- package/dist/_chunks/layout-b91XRlD2.js.map +0 -1
@@ -2,12 +2,12 @@ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import * as React from "react";
|
3
3
|
import { useState, useEffect, useCallback, memo } from "react";
|
4
4
|
import { useStrapiApp, createContext, useField, useNotification, useForm, useAPIErrorHandler, useQueryParams, useFocusInputField, InputRenderer as InputRenderer$1 } from "@strapi/admin/strapi-admin";
|
5
|
-
import { Typography, Flex,
|
5
|
+
import { Box, SingleSelect, SingleSelectOption, Typography, Flex, BaseLink, Button, Popover, Field, Tooltip, IconButton, useComposedRefs, Portal, FocusTrap, Divider, VisuallyHidden, Grid as Grid$1, Accordion, TextButton, TextInput, IconButtonGroup, Menu, MenuItem } from "@strapi/design-system";
|
6
6
|
import pipe$1 from "lodash/fp/pipe";
|
7
7
|
import { useIntl } from "react-intl";
|
8
|
-
import {
|
8
|
+
import { m as DOCUMENT_META_FIELDS, g as getTranslation, c as useDoc, e as contentManagerApi, n as CLONE_PATH, d as buildValidParams, f as useDocumentRBAC, o as useDocLayout } from "./index-BYSWwHBJ.mjs";
|
9
9
|
import { generateNKeysBetween } from "fractional-indexing";
|
10
|
-
import { u as useComponent, C as ComponentProvider, M as MemoizedRelationsField } from "./Relations-
|
10
|
+
import { u as useComponent, C as ComponentProvider, M as MemoizedRelationsField } from "./Relations-D6NAlnsl.mjs";
|
11
11
|
import { Code, HeadingOne, HeadingTwo, HeadingThree, HeadingFour, HeadingFive, HeadingSix, Image as Image$1, NumberList, BulletList, Paragraph, Quotes, Link as Link$1, Drag, Collapse, Bold, Italic, Underline, StrikeThrough, Expand, PlusCircle, Plus, Trash, EyeStriked, CheckCircle, WarningCircle, Loader, ArrowClockwise, More } from "@strapi/icons";
|
12
12
|
import { styled, css, keyframes } from "styled-components";
|
13
13
|
import { C as ComponentIcon, a as COMPONENT_ICONS } from "./ComponentIcon-u4bIXTFY.mjs";
|
@@ -19,7 +19,7 @@ import { withHistory } from "slate-history";
|
|
19
19
|
import { useFocused, useSelected, ReactEditor, Editable, useSlate, Slate, withReact } from "slate-react";
|
20
20
|
import { p as prefixFileUrlWithBackendUrl, u as usePrev } from "./usePrev-DH6iah0A.mjs";
|
21
21
|
import * as Toolbar from "@radix-ui/react-toolbar";
|
22
|
-
import { useLocation } from "react-router-dom";
|
22
|
+
import { useLocation, useMatch } from "react-router-dom";
|
23
23
|
import CodeMirror from "codemirror5";
|
24
24
|
import sanitizeHtml from "sanitize-html";
|
25
25
|
import { getLanguage, highlight, highlightAuto } from "highlight.js";
|
@@ -160,6 +160,220 @@ const useLazyComponents = (componentUids = []) => {
|
|
160
160
|
}, []);
|
161
161
|
return { isLazyLoading: loading, lazyComponentStore, cleanup };
|
162
162
|
};
|
163
|
+
const codeLanguages = [
|
164
|
+
{
|
165
|
+
value: "asm",
|
166
|
+
label: "Assembly"
|
167
|
+
},
|
168
|
+
{
|
169
|
+
value: "bash",
|
170
|
+
label: "Bash"
|
171
|
+
},
|
172
|
+
{
|
173
|
+
value: "c",
|
174
|
+
label: "C"
|
175
|
+
},
|
176
|
+
{
|
177
|
+
value: "clojure",
|
178
|
+
label: "Clojure"
|
179
|
+
},
|
180
|
+
{
|
181
|
+
value: "cobol",
|
182
|
+
label: "COBOL"
|
183
|
+
},
|
184
|
+
{
|
185
|
+
value: "cpp",
|
186
|
+
label: "C++"
|
187
|
+
},
|
188
|
+
{
|
189
|
+
value: "csharp",
|
190
|
+
label: "C#"
|
191
|
+
},
|
192
|
+
{
|
193
|
+
value: "css",
|
194
|
+
label: "CSS"
|
195
|
+
},
|
196
|
+
{
|
197
|
+
value: "dart",
|
198
|
+
label: "Dart"
|
199
|
+
},
|
200
|
+
{
|
201
|
+
value: "dockerfile",
|
202
|
+
label: "Dockerfile"
|
203
|
+
},
|
204
|
+
{
|
205
|
+
value: "elixir",
|
206
|
+
label: "Elixir"
|
207
|
+
},
|
208
|
+
{
|
209
|
+
value: "erlang",
|
210
|
+
label: "Erlang"
|
211
|
+
},
|
212
|
+
{
|
213
|
+
value: "fortran",
|
214
|
+
label: "Fortran"
|
215
|
+
},
|
216
|
+
{
|
217
|
+
value: "fsharp",
|
218
|
+
label: "F#"
|
219
|
+
},
|
220
|
+
{
|
221
|
+
value: "go",
|
222
|
+
label: "Go"
|
223
|
+
},
|
224
|
+
{
|
225
|
+
value: "graphql",
|
226
|
+
label: "GraphQL"
|
227
|
+
},
|
228
|
+
{
|
229
|
+
value: "groovy",
|
230
|
+
label: "Groovy"
|
231
|
+
},
|
232
|
+
{
|
233
|
+
value: "haskell",
|
234
|
+
label: "Haskell"
|
235
|
+
},
|
236
|
+
{
|
237
|
+
value: "haxe",
|
238
|
+
label: "Haxe"
|
239
|
+
},
|
240
|
+
{
|
241
|
+
value: "html",
|
242
|
+
label: "HTML"
|
243
|
+
},
|
244
|
+
{
|
245
|
+
value: "ini",
|
246
|
+
label: "INI"
|
247
|
+
},
|
248
|
+
{
|
249
|
+
value: "java",
|
250
|
+
label: "Java"
|
251
|
+
},
|
252
|
+
{
|
253
|
+
value: "javascript",
|
254
|
+
label: "JavaScript"
|
255
|
+
},
|
256
|
+
{
|
257
|
+
value: "jsx",
|
258
|
+
label: "JavaScript (React)"
|
259
|
+
},
|
260
|
+
{
|
261
|
+
value: "json",
|
262
|
+
label: "JSON"
|
263
|
+
},
|
264
|
+
{
|
265
|
+
value: "julia",
|
266
|
+
label: "Julia"
|
267
|
+
},
|
268
|
+
{
|
269
|
+
value: "kotlin",
|
270
|
+
label: "Kotlin"
|
271
|
+
},
|
272
|
+
{
|
273
|
+
value: "latex",
|
274
|
+
label: "LaTeX"
|
275
|
+
},
|
276
|
+
{
|
277
|
+
value: "lua",
|
278
|
+
label: "Lua"
|
279
|
+
},
|
280
|
+
{
|
281
|
+
value: "markdown",
|
282
|
+
label: "Markdown"
|
283
|
+
},
|
284
|
+
{
|
285
|
+
value: "matlab",
|
286
|
+
label: "MATLAB"
|
287
|
+
},
|
288
|
+
{
|
289
|
+
value: "makefile",
|
290
|
+
label: "Makefile"
|
291
|
+
},
|
292
|
+
{
|
293
|
+
value: "objectivec",
|
294
|
+
label: "Objective-C"
|
295
|
+
},
|
296
|
+
{
|
297
|
+
value: "perl",
|
298
|
+
label: "Perl"
|
299
|
+
},
|
300
|
+
{
|
301
|
+
value: "php",
|
302
|
+
label: "PHP"
|
303
|
+
},
|
304
|
+
{
|
305
|
+
value: "plaintext",
|
306
|
+
label: "Plain text"
|
307
|
+
},
|
308
|
+
{
|
309
|
+
value: "powershell",
|
310
|
+
label: "PowerShell"
|
311
|
+
},
|
312
|
+
{
|
313
|
+
value: "python",
|
314
|
+
label: "Python"
|
315
|
+
},
|
316
|
+
{
|
317
|
+
value: "r",
|
318
|
+
label: "R"
|
319
|
+
},
|
320
|
+
{
|
321
|
+
value: "ruby",
|
322
|
+
label: "Ruby"
|
323
|
+
},
|
324
|
+
{
|
325
|
+
value: "rust",
|
326
|
+
label: "Rust"
|
327
|
+
},
|
328
|
+
{
|
329
|
+
value: "sas",
|
330
|
+
label: "SAS"
|
331
|
+
},
|
332
|
+
{
|
333
|
+
value: "scala",
|
334
|
+
label: "Scala"
|
335
|
+
},
|
336
|
+
{
|
337
|
+
value: "scheme",
|
338
|
+
label: "Scheme"
|
339
|
+
},
|
340
|
+
{
|
341
|
+
value: "shell",
|
342
|
+
label: "Shell"
|
343
|
+
},
|
344
|
+
{
|
345
|
+
value: "sql",
|
346
|
+
label: "SQL"
|
347
|
+
},
|
348
|
+
{
|
349
|
+
value: "stata",
|
350
|
+
label: "Stata"
|
351
|
+
},
|
352
|
+
{
|
353
|
+
value: "swift",
|
354
|
+
label: "Swift"
|
355
|
+
},
|
356
|
+
{
|
357
|
+
value: "typescript",
|
358
|
+
label: "TypeScript"
|
359
|
+
},
|
360
|
+
{
|
361
|
+
value: "tsx",
|
362
|
+
label: "TypeScript (React)"
|
363
|
+
},
|
364
|
+
{
|
365
|
+
value: "vbnet",
|
366
|
+
label: "VB.NET"
|
367
|
+
},
|
368
|
+
{
|
369
|
+
value: "xml",
|
370
|
+
label: "XML"
|
371
|
+
},
|
372
|
+
{
|
373
|
+
value: "yaml",
|
374
|
+
label: "YAML"
|
375
|
+
}
|
376
|
+
];
|
163
377
|
const baseHandleConvert = (editor, attributesToSet) => {
|
164
378
|
const [_, lastNodePath] = Editor$1.last(editor, []);
|
165
379
|
Transforms.unwrapNodes(editor, {
|
@@ -230,6 +444,7 @@ const CodeBlock = styled.pre`
|
|
230
444
|
overflow: auto;
|
231
445
|
padding: ${({ theme }) => `${theme.spaces[3]} ${theme.spaces[4]}`};
|
232
446
|
flex-shrink: 1;
|
447
|
+
|
233
448
|
& > code {
|
234
449
|
font-family: 'SF Mono', SFMono-Regular, ui-monospace, 'DejaVu Sans Mono', Menlo, Consolas,
|
235
450
|
monospace;
|
@@ -238,9 +453,61 @@ const CodeBlock = styled.pre`
|
|
238
453
|
max-width: 100%;
|
239
454
|
}
|
240
455
|
`;
|
456
|
+
const CodeEditor = (props) => {
|
457
|
+
const { editor } = useBlocksEditorContext("ImageDialog");
|
458
|
+
const editorIsFocused = useFocused();
|
459
|
+
const imageIsSelected = useSelected();
|
460
|
+
const { formatMessage } = useIntl();
|
461
|
+
const [isSelectOpen, setIsSelectOpen] = React.useState(false);
|
462
|
+
const shouldDisplayLanguageSelect = editorIsFocused && imageIsSelected || isSelectOpen;
|
463
|
+
return /* @__PURE__ */ jsxs(Box, { position: "relative", width: "100%", children: [
|
464
|
+
/* @__PURE__ */ jsx(CodeBlock, { ...props.attributes, children: /* @__PURE__ */ jsx("code", { children: props.children }) }),
|
465
|
+
shouldDisplayLanguageSelect && /* @__PURE__ */ jsx(
|
466
|
+
Box,
|
467
|
+
{
|
468
|
+
position: "absolute",
|
469
|
+
background: "neutral0",
|
470
|
+
borderColor: "neutral150",
|
471
|
+
borderStyle: "solid",
|
472
|
+
borderWidth: "0.5px",
|
473
|
+
shadow: "tableShadow",
|
474
|
+
top: "100%",
|
475
|
+
marginTop: 1,
|
476
|
+
right: 0,
|
477
|
+
padding: 1,
|
478
|
+
hasRadius: true,
|
479
|
+
children: /* @__PURE__ */ jsx(
|
480
|
+
SingleSelect,
|
481
|
+
{
|
482
|
+
onChange: (open) => {
|
483
|
+
Transforms.setNodes(
|
484
|
+
editor,
|
485
|
+
{ language: open.toString() },
|
486
|
+
{ match: (node) => !Editor$1.isEditor(node) && node.type === "code" }
|
487
|
+
);
|
488
|
+
},
|
489
|
+
value: props.element.type === "code" && props.element.language || "plaintext",
|
490
|
+
onOpenChange: (open) => {
|
491
|
+
setIsSelectOpen(open);
|
492
|
+
if (!open) {
|
493
|
+
ReactEditor.focus(editor);
|
494
|
+
}
|
495
|
+
},
|
496
|
+
onCloseAutoFocus: (e) => e.preventDefault(),
|
497
|
+
"aria-label": formatMessage({
|
498
|
+
id: "components.Blocks.blocks.code.languageLabel",
|
499
|
+
defaultMessage: "Select a language"
|
500
|
+
}),
|
501
|
+
children: codeLanguages.map(({ value, label }) => /* @__PURE__ */ jsx(SingleSelectOption, { value, children: label }, value))
|
502
|
+
}
|
503
|
+
)
|
504
|
+
}
|
505
|
+
)
|
506
|
+
] });
|
507
|
+
};
|
241
508
|
const codeBlocks = {
|
242
509
|
code: {
|
243
|
-
renderElement: (props) => /* @__PURE__ */ jsx(
|
510
|
+
renderElement: (props) => /* @__PURE__ */ jsx(CodeEditor, { ...props }),
|
244
511
|
icon: Code,
|
245
512
|
label: {
|
246
513
|
id: "components.Blocks.blocks.code",
|
@@ -249,7 +516,7 @@ const codeBlocks = {
|
|
249
516
|
matchNode: (node) => node.type === "code",
|
250
517
|
isInBlocksSelector: true,
|
251
518
|
handleConvert(editor) {
|
252
|
-
baseHandleConvert(editor, { type: "code" });
|
519
|
+
baseHandleConvert(editor, { type: "code", language: "plaintext" });
|
253
520
|
},
|
254
521
|
handleEnterKey(editor) {
|
255
522
|
pressEnterTwiceToExit(editor);
|
@@ -589,18 +856,12 @@ const LinkContent = React.forwardRef(
|
|
589
856
|
const [popoverOpen, setPopoverOpen] = React.useState(
|
590
857
|
editor.lastInsertedLinkPath ? Path.equals(path, editor.lastInsertedLinkPath) : false
|
591
858
|
);
|
592
|
-
const linkRef = React.useRef(null);
|
593
859
|
const elementText = link.children.map((child) => child.text).join("");
|
594
860
|
const [linkText, setLinkText] = React.useState(elementText);
|
595
861
|
const [linkUrl, setLinkUrl] = React.useState(link.url);
|
596
862
|
const linkInputRef = React.useRef(null);
|
597
|
-
const
|
863
|
+
const isLastInsertedLink = editor.lastInsertedLinkPath ? !Path.equals(path, editor.lastInsertedLinkPath) : true;
|
598
864
|
const [isSaveDisabled, setIsSaveDisabled] = React.useState(false);
|
599
|
-
const handleOpenEditPopover = (e) => {
|
600
|
-
e.preventDefault();
|
601
|
-
setPopoverOpen(true);
|
602
|
-
setShowRemoveButton(true);
|
603
|
-
};
|
604
865
|
const onLinkChange = (e) => {
|
605
866
|
setIsSaveDisabled(false);
|
606
867
|
setLinkUrl(e.target.value);
|
@@ -621,33 +882,33 @@ const LinkContent = React.forwardRef(
|
|
621
882
|
editLink(editor, { url: linkUrl, text: linkText });
|
622
883
|
setPopoverOpen(false);
|
623
884
|
editor.lastInsertedLinkPath = null;
|
885
|
+
ReactEditor.focus(editor);
|
624
886
|
};
|
625
|
-
const
|
626
|
-
setPopoverOpen(false);
|
887
|
+
const handleClose = () => {
|
627
888
|
if (link.url === "") {
|
628
889
|
removeLink(editor);
|
629
890
|
}
|
891
|
+
setPopoverOpen(false);
|
630
892
|
ReactEditor.focus(editor);
|
631
893
|
};
|
632
|
-
const inputNotDirty = !linkText || !linkUrl || link.url && link.url === linkUrl && elementText && elementText === linkText;
|
633
|
-
const composedRefs = useComposedRefs(linkRef, forwardedRef);
|
634
894
|
React.useEffect(() => {
|
635
895
|
if (popoverOpen)
|
636
896
|
linkInputRef.current?.focus();
|
637
897
|
}, [popoverOpen]);
|
638
|
-
|
639
|
-
|
898
|
+
const inputNotDirty = !linkText || !linkUrl || link.url && link.url === linkUrl && elementText && elementText === linkText;
|
899
|
+
return /* @__PURE__ */ jsxs(Popover.Root, { open: popoverOpen, children: [
|
900
|
+
/* @__PURE__ */ jsx(Popover.Trigger, { children: /* @__PURE__ */ jsx(
|
640
901
|
StyledBaseLink,
|
641
902
|
{
|
642
903
|
...attributes,
|
643
|
-
ref:
|
904
|
+
ref: forwardedRef,
|
644
905
|
href: link.url,
|
645
|
-
onClick:
|
906
|
+
onClick: () => setPopoverOpen(true),
|
646
907
|
color: "primary600",
|
647
908
|
children
|
648
909
|
}
|
649
|
-
),
|
650
|
-
|
910
|
+
) }),
|
911
|
+
/* @__PURE__ */ jsx(Popover.Content, { onPointerDownOutside: handleClose, children: /* @__PURE__ */ jsxs(Flex, { padding: 4, direction: "column", gap: 4, children: [
|
651
912
|
/* @__PURE__ */ jsx(Field.Root, { width: "368px", children: /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: 1, alignItems: "stretch", children: [
|
652
913
|
/* @__PURE__ */ jsx(Field.Label, { children: formatMessage({
|
653
914
|
id: "components.Blocks.popover.text",
|
@@ -693,7 +954,7 @@ const LinkContent = React.forwardRef(
|
|
693
954
|
{
|
694
955
|
variant: "danger-light",
|
695
956
|
onClick: () => removeLink(editor),
|
696
|
-
$visible:
|
957
|
+
$visible: isLastInsertedLink,
|
697
958
|
children: formatMessage({
|
698
959
|
id: "components.Blocks.popover.remove",
|
699
960
|
defaultMessage: "Remove"
|
@@ -701,11 +962,11 @@ const LinkContent = React.forwardRef(
|
|
701
962
|
}
|
702
963
|
),
|
703
964
|
/* @__PURE__ */ jsxs(Flex, { gap: 2, children: [
|
704
|
-
/* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick:
|
965
|
+
/* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: handleClose, children: formatMessage({
|
705
966
|
id: "components.Blocks.popover.cancel",
|
706
967
|
defaultMessage: "Cancel"
|
707
968
|
}) }),
|
708
|
-
/* @__PURE__ */ jsx(Button, {
|
969
|
+
/* @__PURE__ */ jsx(Button, { disabled: Boolean(inputNotDirty) || isSaveDisabled, onClick: handleSave, children: formatMessage({
|
709
970
|
id: "components.Blocks.popover.save",
|
710
971
|
defaultMessage: "Save"
|
711
972
|
}) })
|
@@ -1146,7 +1407,7 @@ const ToolbarButton = ({
|
|
1146
1407
|
width: 7,
|
1147
1408
|
height: 7,
|
1148
1409
|
hasRadius: true,
|
1149
|
-
children: /* @__PURE__ */ jsx(Icon, {
|
1410
|
+
children: /* @__PURE__ */ jsx(Icon, { fill: disabled ? "neutral300" : enabledColor })
|
1150
1411
|
}
|
1151
1412
|
)
|
1152
1413
|
}
|
@@ -1291,6 +1552,26 @@ const ListButton = ({ block, format }) => {
|
|
1291
1552
|
}
|
1292
1553
|
return false;
|
1293
1554
|
};
|
1555
|
+
const isListDisabled = () => {
|
1556
|
+
if (disabled) {
|
1557
|
+
return true;
|
1558
|
+
}
|
1559
|
+
if (!editor.selection) {
|
1560
|
+
return false;
|
1561
|
+
}
|
1562
|
+
const anchorNodeEntry = Editor$1.above(editor, {
|
1563
|
+
at: editor.selection.anchor,
|
1564
|
+
match: (node) => !Editor$1.isEditor(node) && node.type !== "text"
|
1565
|
+
});
|
1566
|
+
const focusNodeEntry = Editor$1.above(editor, {
|
1567
|
+
at: editor.selection.focus,
|
1568
|
+
match: (node) => !Editor$1.isEditor(node) && node.type !== "text"
|
1569
|
+
});
|
1570
|
+
if (!anchorNodeEntry || !focusNodeEntry) {
|
1571
|
+
return false;
|
1572
|
+
}
|
1573
|
+
return anchorNodeEntry[0] !== focusNodeEntry[0];
|
1574
|
+
};
|
1294
1575
|
const toggleList = (format2) => {
|
1295
1576
|
let currentListEntry;
|
1296
1577
|
if (editor.selection) {
|
@@ -1324,7 +1605,7 @@ const ListButton = ({ block, format }) => {
|
|
1324
1605
|
name: format,
|
1325
1606
|
label: block.label,
|
1326
1607
|
isActive: isListActive(),
|
1327
|
-
disabled,
|
1608
|
+
disabled: isListDisabled(),
|
1328
1609
|
handleClick: () => toggleList(format)
|
1329
1610
|
}
|
1330
1611
|
);
|
@@ -1491,7 +1772,7 @@ const DragIconButton = styled(IconButton)`
|
|
1491
1772
|
}
|
1492
1773
|
svg {
|
1493
1774
|
height: auto;
|
1494
|
-
width: ${({ theme }) => theme.spaces[3]};
|
1775
|
+
min-width: ${({ theme }) => theme.spaces[3]};
|
1495
1776
|
|
1496
1777
|
path {
|
1497
1778
|
fill: ${({ theme }) => theme.colors.neutral700};
|
@@ -1608,7 +1889,7 @@ const DragAndDropElement = ({
|
|
1608
1889
|
disabled,
|
1609
1890
|
draggable: true,
|
1610
1891
|
$dragHandleTopMargin: dragHandleTopMargin,
|
1611
|
-
children: /* @__PURE__ */ jsx(Drag, { color: "
|
1892
|
+
children: /* @__PURE__ */ jsx(Drag, { color: "primary500" })
|
1612
1893
|
}
|
1613
1894
|
),
|
1614
1895
|
children
|
@@ -1932,7 +2213,7 @@ const EditorLayout$1 = ({
|
|
1932
2213
|
/* @__PURE__ */ jsx(
|
1933
2214
|
CollapseIconButton,
|
1934
2215
|
{
|
1935
|
-
|
2216
|
+
label: formatMessage({
|
1936
2217
|
id: getTranslation("components.Blocks.collapse"),
|
1937
2218
|
defaultMessage: "Collapse"
|
1938
2219
|
}),
|
@@ -2271,7 +2552,7 @@ const BlocksEditor = React.forwardRef(
|
|
2271
2552
|
!isExpandedMode && /* @__PURE__ */ jsx(
|
2272
2553
|
ExpandIconButton,
|
2273
2554
|
{
|
2274
|
-
|
2555
|
+
label: formatMessage({
|
2275
2556
|
id: getTranslation("components.Blocks.expand"),
|
2276
2557
|
defaultMessage: "Expand"
|
2277
2558
|
}),
|
@@ -2337,30 +2618,27 @@ const createDefaultForm = (contentType, components = {}) => {
|
|
2337
2618
|
const Initializer = ({ disabled, name: name2, onClick }) => {
|
2338
2619
|
const { formatMessage } = useIntl();
|
2339
2620
|
const field = useField(name2);
|
2340
|
-
return /* @__PURE__ */
|
2341
|
-
|
2342
|
-
|
2343
|
-
|
2344
|
-
|
2345
|
-
|
2346
|
-
|
2347
|
-
|
2348
|
-
|
2349
|
-
|
2350
|
-
|
2351
|
-
|
2352
|
-
|
2353
|
-
|
2354
|
-
|
2355
|
-
|
2356
|
-
|
2357
|
-
|
2358
|
-
|
2359
|
-
|
2360
|
-
|
2361
|
-
),
|
2362
|
-
field.error && /* @__PURE__ */ jsx(Typography, { textColor: "danger600", variant: "pi", children: field.error })
|
2363
|
-
] });
|
2621
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
2622
|
+
Box,
|
2623
|
+
{
|
2624
|
+
tag: "button",
|
2625
|
+
background: "neutral100",
|
2626
|
+
borderColor: field.error ? "danger600" : "neutral200",
|
2627
|
+
hasRadius: true,
|
2628
|
+
disabled,
|
2629
|
+
onClick,
|
2630
|
+
paddingTop: 9,
|
2631
|
+
paddingBottom: 9,
|
2632
|
+
type: "button",
|
2633
|
+
children: /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: 2, children: [
|
2634
|
+
/* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(CircleIcon, {}) }),
|
2635
|
+
/* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { textColor: "primary600", variant: "pi", fontWeight: "bold", children: formatMessage({
|
2636
|
+
id: getTranslation("components.empty-repeatable"),
|
2637
|
+
defaultMessage: "No entry yet. Click on the button below to add one."
|
2638
|
+
}) }) })
|
2639
|
+
] })
|
2640
|
+
}
|
2641
|
+
) });
|
2364
2642
|
};
|
2365
2643
|
const CircleIcon = styled(PlusCircle)`
|
2366
2644
|
width: 2.4rem;
|
@@ -2392,9 +2670,20 @@ const NonRepeatableComponent = ({
|
|
2392
2670
|
hasRadius: isNested,
|
2393
2671
|
borderColor: isNested ? "neutral200" : void 0,
|
2394
2672
|
children: /* @__PURE__ */ jsx(Flex, { direction: "column", alignItems: "stretch", gap: 6, children: layout.map((row, index) => {
|
2395
|
-
return /* @__PURE__ */ jsx(Grid$1, { gap: 4, children: row.map(({ size, ...field }) => {
|
2673
|
+
return /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
2396
2674
|
const completeFieldName = `${name2}.${field.name}`;
|
2397
|
-
return /* @__PURE__ */ jsx(
|
2675
|
+
return /* @__PURE__ */ jsx(
|
2676
|
+
Grid$1.Item,
|
2677
|
+
{
|
2678
|
+
col: size,
|
2679
|
+
s: 12,
|
2680
|
+
xs: 12,
|
2681
|
+
direction: "column",
|
2682
|
+
alignItems: "stretch",
|
2683
|
+
children: children({ ...field, name: completeFieldName })
|
2684
|
+
},
|
2685
|
+
completeFieldName
|
2686
|
+
);
|
2398
2687
|
}) }, index);
|
2399
2688
|
}) })
|
2400
2689
|
}
|
@@ -2570,9 +2859,20 @@ const RepeatableComponent = ({
|
|
2570
2859
|
onGrabItem: handleGrabItem,
|
2571
2860
|
__temp_key__: key,
|
2572
2861
|
children: layout.map((row, index2) => {
|
2573
|
-
return /* @__PURE__ */ jsx(Grid$1, { gap: 4, children: row.map(({ size, ...field }) => {
|
2862
|
+
return /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
2574
2863
|
const completeFieldName = `${nameWithIndex}.${field.name}`;
|
2575
|
-
return /* @__PURE__ */ jsx(
|
2864
|
+
return /* @__PURE__ */ jsx(
|
2865
|
+
Grid$1.Item,
|
2866
|
+
{
|
2867
|
+
col: size,
|
2868
|
+
s: 12,
|
2869
|
+
xs: 12,
|
2870
|
+
direction: "column",
|
2871
|
+
alignItems: "stretch",
|
2872
|
+
children: children({ ...field, name: completeFieldName })
|
2873
|
+
},
|
2874
|
+
completeFieldName
|
2875
|
+
);
|
2576
2876
|
}) }, index2);
|
2577
2877
|
})
|
2578
2878
|
}
|
@@ -2617,7 +2917,7 @@ const TextButtonCustom = styled(TextButton)`
|
|
2617
2917
|
}
|
2618
2918
|
|
2619
2919
|
@media (prefers-reduced-motion: no-preference) {
|
2620
|
-
transition: background-color 120ms ${(props) => props.theme.easings.easeOutQuad};
|
2920
|
+
transition: background-color 120ms ${(props) => props.theme.motion.easings.easeOutQuad};
|
2621
2921
|
}
|
2622
2922
|
`;
|
2623
2923
|
const Component = ({
|
@@ -2667,7 +2967,7 @@ const Component = ({
|
|
2667
2967
|
/* @__PURE__ */ jsx(
|
2668
2968
|
IconButton,
|
2669
2969
|
{
|
2670
|
-
|
2970
|
+
variant: "ghost",
|
2671
2971
|
onClick: onDeleteComponent,
|
2672
2972
|
label: formatMessage({
|
2673
2973
|
id: getTranslation("containers.Edit.delete"),
|
@@ -2680,7 +2980,7 @@ const Component = ({
|
|
2680
2980
|
IconButton,
|
2681
2981
|
{
|
2682
2982
|
ref: composedAccordionRefs,
|
2683
|
-
|
2983
|
+
variant: "ghost",
|
2684
2984
|
onClick: (e) => e.stopPropagation(),
|
2685
2985
|
"data-handler-id": handlerId,
|
2686
2986
|
label: formatMessage({
|
@@ -2750,7 +3050,7 @@ const ComponentInput = ({
|
|
2750
3050
|
id: getTranslation("components.reset-entry"),
|
2751
3051
|
defaultMessage: "Reset Entry"
|
2752
3052
|
}),
|
2753
|
-
|
3053
|
+
variant: "ghost",
|
2754
3054
|
onClick: () => {
|
2755
3055
|
field.onChange(name2, null);
|
2756
3056
|
},
|
@@ -2779,11 +3079,8 @@ const AddComponentButton = ({
|
|
2779
3079
|
onClick,
|
2780
3080
|
disabled: isDisabled,
|
2781
3081
|
background: "neutral0",
|
2782
|
-
paddingTop: 3,
|
2783
|
-
paddingBottom: 3,
|
2784
|
-
paddingLeft: 4,
|
2785
|
-
paddingRight: 4,
|
2786
3082
|
style: { cursor: isDisabled ? "not-allowed" : "pointer" },
|
3083
|
+
variant: "tertiary",
|
2787
3084
|
children: /* @__PURE__ */ jsxs(Flex, { tag: "span", gap: 2, children: [
|
2788
3085
|
/* @__PURE__ */ jsx(StyledAddIcon, { "aria-hidden": true, $isOpen: isOpen, $hasError: hasError && !isOpen }),
|
2789
3086
|
/* @__PURE__ */ jsx(
|
@@ -2812,10 +3109,11 @@ const StyledAddIcon = styled(PlusCircle)`
|
|
2812
3109
|
}
|
2813
3110
|
`;
|
2814
3111
|
const AddComponentTitle = styled(Typography)``;
|
2815
|
-
const StyledButton = styled(
|
3112
|
+
const StyledButton = styled(Button)`
|
2816
3113
|
border-radius: 26px;
|
2817
3114
|
border-color: ${({ theme }) => theme.colors.neutral150};
|
2818
3115
|
box-shadow: ${({ theme }) => theme.shadows.filterShadow};
|
3116
|
+
height: 5rem;
|
2819
3117
|
|
2820
3118
|
&:hover {
|
2821
3119
|
${AddComponentTitle} {
|
@@ -2827,7 +3125,7 @@ const StyledButton = styled(BaseButton)`
|
|
2827
3125
|
fill: ${({ theme }) => theme.colors.primary600};
|
2828
3126
|
}
|
2829
3127
|
> path {
|
2830
|
-
fill: ${({ theme }) => theme.colors.
|
3128
|
+
fill: ${({ theme }) => theme.colors.primary600};
|
2831
3129
|
}
|
2832
3130
|
}
|
2833
3131
|
}
|
@@ -2885,7 +3183,7 @@ const ComponentBox = styled(Flex)`
|
|
2885
3183
|
cursor: pointer;
|
2886
3184
|
|
2887
3185
|
@media (prefers-reduced-motion: no-preference) {
|
2888
|
-
transition: color 120ms ${(props) => props.theme.easings.easeOutQuad};
|
3186
|
+
transition: color 120ms ${(props) => props.theme.motion.easings.easeOutQuad};
|
2889
3187
|
}
|
2890
3188
|
|
2891
3189
|
&:focus,
|
@@ -3004,7 +3302,10 @@ const uidApi = contentManagerApi.injectEndpoints({
|
|
3004
3302
|
config: {
|
3005
3303
|
params
|
3006
3304
|
}
|
3007
|
-
})
|
3305
|
+
}),
|
3306
|
+
providesTags: (_res, _error, params) => [
|
3307
|
+
{ type: "UidAvailability", id: params.contentTypeUID }
|
3308
|
+
]
|
3008
3309
|
})
|
3009
3310
|
})
|
3010
3311
|
});
|
@@ -3016,8 +3317,10 @@ const UIDInput = React.forwardRef(
|
|
3016
3317
|
const allFormValues = useForm("InputUID", (form) => form.values);
|
3017
3318
|
const [availability, setAvailability] = React.useState();
|
3018
3319
|
const [showRegenerate, setShowRegenerate] = React.useState(false);
|
3320
|
+
const isCloning = useMatch(CLONE_PATH) !== null;
|
3019
3321
|
const field = useField(name2);
|
3020
3322
|
const debouncedValue = useDebounce(field.value, 300);
|
3323
|
+
const hasChanged = debouncedValue !== field.initialValue;
|
3021
3324
|
const { toggleNotification } = useNotification();
|
3022
3325
|
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
|
3023
3326
|
const { formatMessage } = useIntl();
|
@@ -3093,8 +3396,9 @@ const UIDInput = React.forwardRef(
|
|
3093
3396
|
params
|
3094
3397
|
},
|
3095
3398
|
{
|
3399
|
+
// Don't check availability if the value is empty or wasn't changed
|
3096
3400
|
skip: !Boolean(
|
3097
|
-
|
3401
|
+
(hasChanged || isCloning) && debouncedValue && UID_REGEX.test(debouncedValue.trim())
|
3098
3402
|
)
|
3099
3403
|
}
|
3100
3404
|
);
|
@@ -3123,6 +3427,7 @@ const UIDInput = React.forwardRef(
|
|
3123
3427
|
const isLoading = isGeneratingDefaultUID || isGeneratingUID || isCheckingAvailability;
|
3124
3428
|
const fieldRef = useFocusInputField(name2);
|
3125
3429
|
const composedRefs = useComposedRefs(ref, fieldRef);
|
3430
|
+
const shouldShowAvailability = (hasChanged || isCloning) && debouncedValue != null && availability && !showRegenerate;
|
3126
3431
|
return /* @__PURE__ */ jsxs(Field.Root, { hint, name: name2, error: field.error, required, children: [
|
3127
3432
|
/* @__PURE__ */ jsx(Field.Label, { action: labelAction, children: label }),
|
3128
3433
|
/* @__PURE__ */ jsx(
|
@@ -3131,7 +3436,7 @@ const UIDInput = React.forwardRef(
|
|
3131
3436
|
ref: composedRefs,
|
3132
3437
|
disabled: props.disabled,
|
3133
3438
|
endAction: /* @__PURE__ */ jsxs(Flex, { position: "relative", gap: 1, children: [
|
3134
|
-
|
3439
|
+
shouldShowAvailability && /* @__PURE__ */ jsxs(
|
3135
3440
|
TextValidation,
|
3136
3441
|
{
|
3137
3442
|
alignItems: "center",
|
@@ -3965,7 +4270,7 @@ const EditorLayout = ({
|
|
3965
4270
|
justifyContent: "flex-end",
|
3966
4271
|
shrink: 0,
|
3967
4272
|
width: "100%",
|
3968
|
-
children: /* @__PURE__ */ jsxs(ExpandButton$1, { onClick: onCollapse, children: [
|
4273
|
+
children: /* @__PURE__ */ jsxs(ExpandButton$1, { onClick: onCollapse, variant: "tertiary", size: "M", children: [
|
3969
4274
|
/* @__PURE__ */ jsx(Typography, { children: formatMessage({
|
3970
4275
|
id: "components.Wysiwyg.collapse",
|
3971
4276
|
defaultMessage: "Collapse"
|
@@ -3983,12 +4288,14 @@ const EditorLayout = ({
|
|
3983
4288
|
) }) });
|
3984
4289
|
}
|
3985
4290
|
return /* @__PURE__ */ jsx(
|
3986
|
-
|
4291
|
+
Flex,
|
3987
4292
|
{
|
3988
4293
|
borderColor: error ? "danger600" : "neutral200",
|
3989
4294
|
borderStyle: "solid",
|
3990
4295
|
borderWidth: "1px",
|
3991
4296
|
hasRadius: true,
|
4297
|
+
direction: "column",
|
4298
|
+
alignItems: "stretch",
|
3992
4299
|
children
|
3993
4300
|
}
|
3994
4301
|
);
|
@@ -3999,11 +4306,19 @@ const ExpandWrapper = styled(Flex)`
|
|
3999
4306
|
const BoxWithBorder = styled(Box)`
|
4000
4307
|
border-right: 1px solid ${({ theme }) => theme.colors.neutral200};
|
4001
4308
|
`;
|
4002
|
-
const ExpandButton$1 = styled(
|
4309
|
+
const ExpandButton$1 = styled(Button)`
|
4003
4310
|
background-color: transparent;
|
4004
4311
|
border: none;
|
4005
4312
|
align-items: center;
|
4006
4313
|
|
4314
|
+
& > span {
|
4315
|
+
display: flex;
|
4316
|
+
justify-content: space-between;
|
4317
|
+
align-items: center;
|
4318
|
+
width: 100%;
|
4319
|
+
font-weight: ${({ theme }) => theme.fontWeights.regular};
|
4320
|
+
}
|
4321
|
+
|
4007
4322
|
svg {
|
4008
4323
|
margin-left: ${({ theme }) => `${theme.spaces[2]}`};
|
4009
4324
|
|
@@ -4270,42 +4585,28 @@ const quoteAndCodeHandler = (editor, markdownType) => {
|
|
4270
4585
|
insertWithoutTextToEdit(editor, markdownType, line, contentLength);
|
4271
4586
|
}
|
4272
4587
|
};
|
4273
|
-
const CustomIconButton = styled(IconButton)`
|
4274
|
-
padding: ${({ theme }) => theme.spaces[2]};
|
4275
|
-
/* Trick to prevent the outline from overflowing because of the general outline-offset */
|
4276
|
-
outline-offset: -2px !important;
|
4277
|
-
|
4278
|
-
svg {
|
4279
|
-
width: 1.8rem;
|
4280
|
-
height: 1.8rem;
|
4281
|
-
}
|
4282
|
-
`;
|
4283
|
-
const CustomLinkIconButton = styled(CustomIconButton)`
|
4284
|
-
svg {
|
4285
|
-
width: 0.8rem;
|
4286
|
-
height: 0.8rem;
|
4287
|
-
}
|
4288
|
-
`;
|
4289
4588
|
const MainButtons = styled(IconButtonGroup)`
|
4290
4589
|
margin-left: ${({ theme }) => theme.spaces[4]};
|
4291
4590
|
`;
|
4292
4591
|
const MoreButton = styled(IconButton)`
|
4293
4592
|
margin: ${({ theme }) => `0 ${theme.spaces[2]}`};
|
4294
|
-
padding: ${({ theme }) => theme.spaces[2]};
|
4295
|
-
|
4296
|
-
svg {
|
4297
|
-
width: 1.8rem;
|
4298
|
-
height: 1.8rem;
|
4299
|
-
}
|
4300
4593
|
`;
|
4301
4594
|
const IconButtonGroupMargin = styled(IconButtonGroup)`
|
4302
4595
|
margin-right: ${({ theme }) => `${theme.spaces[2]}`};
|
4303
4596
|
`;
|
4304
|
-
const ExpandButton = styled(
|
4597
|
+
const ExpandButton = styled(Button)`
|
4305
4598
|
background-color: transparent;
|
4306
4599
|
border: none;
|
4307
4600
|
align-items: center;
|
4308
4601
|
|
4602
|
+
& > span {
|
4603
|
+
display: flex;
|
4604
|
+
justify-content: space-between;
|
4605
|
+
align-items: center;
|
4606
|
+
width: 100%;
|
4607
|
+
font-weight: ${({ theme }) => theme.fontWeights.regular};
|
4608
|
+
}
|
4609
|
+
|
4309
4610
|
svg {
|
4310
4611
|
margin-left: ${({ theme }) => `${theme.spaces[2]}`};
|
4311
4612
|
path {
|
@@ -4317,8 +4618,8 @@ const ExpandButton = styled(BaseButton)`
|
|
4317
4618
|
`;
|
4318
4619
|
const WysiwygFooter = ({ onToggleExpand }) => {
|
4319
4620
|
const { formatMessage } = useIntl();
|
4320
|
-
return /* @__PURE__ */ jsx(Box, { padding: 2, background: "neutral100", borderRadius: `0 0 0.4rem 0.4rem`, children: /* @__PURE__ */ jsx(Flex, { justifyContent: "flex-end", alignItems: "flex-end", children: /* @__PURE__ */ jsxs(ExpandButton, { id: "expand", onClick: onToggleExpand, children: [
|
4321
|
-
/* @__PURE__ */ jsx(Typography, { children: formatMessage({
|
4621
|
+
return /* @__PURE__ */ jsx(Box, { padding: 2, background: "neutral100", borderRadius: `0 0 0.4rem 0.4rem`, children: /* @__PURE__ */ jsx(Flex, { justifyContent: "flex-end", alignItems: "flex-end", children: /* @__PURE__ */ jsxs(ExpandButton, { id: "expand", onClick: onToggleExpand, variant: "tertiary", size: "M", children: [
|
4622
|
+
/* @__PURE__ */ jsx(Typography, { textColor: "neutral800", children: formatMessage({
|
4322
4623
|
id: "components.WysiwygBottomControls.fullscreen",
|
4323
4624
|
defaultMessage: "Expand"
|
4324
4625
|
}) }),
|
@@ -4340,7 +4641,7 @@ const WysiwygNav = ({
|
|
4340
4641
|
id: "components.Wysiwyg.selectOptions.title",
|
4341
4642
|
defaultMessage: "Add a title"
|
4342
4643
|
});
|
4343
|
-
|
4644
|
+
React.useRef(null);
|
4344
4645
|
const handleTogglePopover = () => {
|
4345
4646
|
setVisiblePopover((prev) => !prev);
|
4346
4647
|
};
|
@@ -4354,18 +4655,27 @@ const WysiwygNav = ({
|
|
4354
4655
|
borderRadius: `0.4rem 0.4rem 0 0`,
|
4355
4656
|
children: [
|
4356
4657
|
/* @__PURE__ */ jsxs(Flex, { children: [
|
4357
|
-
/* @__PURE__ */ jsx(Field.Root, { children: /* @__PURE__ */ jsxs(
|
4358
|
-
|
4359
|
-
|
4360
|
-
|
4361
|
-
|
4362
|
-
|
4363
|
-
|
4364
|
-
|
4658
|
+
/* @__PURE__ */ jsx(Field.Root, { children: /* @__PURE__ */ jsxs(
|
4659
|
+
SingleSelect,
|
4660
|
+
{
|
4661
|
+
disabled: true,
|
4662
|
+
placeholder: selectPlaceholder,
|
4663
|
+
"aria-label": selectPlaceholder,
|
4664
|
+
size: "S",
|
4665
|
+
children: [
|
4666
|
+
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h1", children: "h1" }),
|
4667
|
+
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h2", children: "h2" }),
|
4668
|
+
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h3", children: "h3" }),
|
4669
|
+
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h4", children: "h4" }),
|
4670
|
+
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h5", children: "h5" }),
|
4671
|
+
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h6", children: "h6" })
|
4672
|
+
]
|
4673
|
+
}
|
4674
|
+
) }),
|
4365
4675
|
/* @__PURE__ */ jsxs(MainButtons, { children: [
|
4366
|
-
/* @__PURE__ */ jsx(
|
4367
|
-
/* @__PURE__ */ jsx(
|
4368
|
-
/* @__PURE__ */ jsx(
|
4676
|
+
/* @__PURE__ */ jsx(IconButton, { disabled: true, label: "Bold", name: "Bold", children: /* @__PURE__ */ jsx(Bold, {}) }),
|
4677
|
+
/* @__PURE__ */ jsx(IconButton, { disabled: true, label: "Italic", name: "Italic", children: /* @__PURE__ */ jsx(Italic, {}) }),
|
4678
|
+
/* @__PURE__ */ jsx(IconButton, { disabled: true, label: "Underline", name: "Underline", children: /* @__PURE__ */ jsx(Underline, {}) })
|
4369
4679
|
] }),
|
4370
4680
|
/* @__PURE__ */ jsx(MoreButton, { disabled: true, label: "More", children: /* @__PURE__ */ jsx(More, {}) })
|
4371
4681
|
] }),
|
@@ -4392,6 +4702,7 @@ const WysiwygNav = ({
|
|
4392
4702
|
placeholder: selectPlaceholder,
|
4393
4703
|
"aria-label": selectPlaceholder,
|
4394
4704
|
onChange: (value) => onActionClick(value, editorRef),
|
4705
|
+
size: "S",
|
4395
4706
|
children: [
|
4396
4707
|
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h1", children: "h1" }),
|
4397
4708
|
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h2", children: "h2" }),
|
@@ -4403,17 +4714,9 @@ const WysiwygNav = ({
|
|
4403
4714
|
}
|
4404
4715
|
) }),
|
4405
4716
|
/* @__PURE__ */ jsxs(MainButtons, { children: [
|
4717
|
+
/* @__PURE__ */ jsx(IconButton, { onClick: () => onActionClick("Bold", editorRef), label: "Bold", name: "Bold", children: /* @__PURE__ */ jsx(Bold, {}) }),
|
4406
4718
|
/* @__PURE__ */ jsx(
|
4407
|
-
|
4408
|
-
{
|
4409
|
-
onClick: () => onActionClick("Bold", editorRef),
|
4410
|
-
label: "Bold",
|
4411
|
-
name: "Bold",
|
4412
|
-
children: /* @__PURE__ */ jsx(Bold, {})
|
4413
|
-
}
|
4414
|
-
),
|
4415
|
-
/* @__PURE__ */ jsx(
|
4416
|
-
CustomIconButton,
|
4719
|
+
IconButton,
|
4417
4720
|
{
|
4418
4721
|
onClick: () => onActionClick("Italic", editorRef),
|
4419
4722
|
label: "Italic",
|
@@ -4422,7 +4725,7 @@ const WysiwygNav = ({
|
|
4422
4725
|
}
|
4423
4726
|
),
|
4424
4727
|
/* @__PURE__ */ jsx(
|
4425
|
-
|
4728
|
+
IconButton,
|
4426
4729
|
{
|
4427
4730
|
onClick: () => onActionClick("Underline", editorRef),
|
4428
4731
|
label: "Underline",
|
@@ -4431,79 +4734,81 @@ const WysiwygNav = ({
|
|
4431
4734
|
}
|
4432
4735
|
)
|
4433
4736
|
] }),
|
4434
|
-
/* @__PURE__ */
|
4435
|
-
|
4436
|
-
/* @__PURE__ */ jsxs(
|
4437
|
-
/* @__PURE__ */
|
4438
|
-
|
4439
|
-
|
4440
|
-
|
4441
|
-
|
4442
|
-
|
4443
|
-
|
4444
|
-
|
4445
|
-
|
4446
|
-
|
4447
|
-
|
4448
|
-
|
4449
|
-
|
4450
|
-
|
4451
|
-
|
4452
|
-
|
4453
|
-
|
4454
|
-
|
4455
|
-
|
4456
|
-
|
4457
|
-
|
4458
|
-
|
4459
|
-
|
4460
|
-
|
4461
|
-
|
4462
|
-
|
4463
|
-
|
4464
|
-
|
4465
|
-
|
4466
|
-
/* @__PURE__ */
|
4467
|
-
|
4468
|
-
|
4469
|
-
|
4470
|
-
|
4471
|
-
|
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
|
-
|
4501
|
-
|
4502
|
-
|
4503
|
-
|
4504
|
-
|
4505
|
-
|
4506
|
-
|
4737
|
+
/* @__PURE__ */ jsxs(Popover.Root, { children: [
|
4738
|
+
/* @__PURE__ */ jsx(Popover.Trigger, { children: /* @__PURE__ */ jsx(MoreButton, { label: "More", children: /* @__PURE__ */ jsx(More, {}) }) }),
|
4739
|
+
/* @__PURE__ */ jsx(Popover.Content, { sideOffset: 12, children: /* @__PURE__ */ jsxs(Flex, { padding: 2, children: [
|
4740
|
+
/* @__PURE__ */ jsxs(IconButtonGroupMargin, { children: [
|
4741
|
+
/* @__PURE__ */ jsx(
|
4742
|
+
IconButton,
|
4743
|
+
{
|
4744
|
+
onClick: () => onActionClick("Strikethrough", editorRef, handleTogglePopover),
|
4745
|
+
label: "Strikethrough",
|
4746
|
+
name: "Strikethrough",
|
4747
|
+
children: /* @__PURE__ */ jsx(StrikeThrough, {})
|
4748
|
+
}
|
4749
|
+
),
|
4750
|
+
/* @__PURE__ */ jsx(
|
4751
|
+
IconButton,
|
4752
|
+
{
|
4753
|
+
onClick: () => onActionClick("BulletList", editorRef, handleTogglePopover),
|
4754
|
+
label: "BulletList",
|
4755
|
+
name: "BulletList",
|
4756
|
+
children: /* @__PURE__ */ jsx(BulletList, {})
|
4757
|
+
}
|
4758
|
+
),
|
4759
|
+
/* @__PURE__ */ jsx(
|
4760
|
+
IconButton,
|
4761
|
+
{
|
4762
|
+
onClick: () => onActionClick("NumberList", editorRef, handleTogglePopover),
|
4763
|
+
label: "NumberList",
|
4764
|
+
name: "NumberList",
|
4765
|
+
children: /* @__PURE__ */ jsx(NumberList, {})
|
4766
|
+
}
|
4767
|
+
)
|
4768
|
+
] }),
|
4769
|
+
/* @__PURE__ */ jsxs(IconButtonGroup, { children: [
|
4770
|
+
/* @__PURE__ */ jsx(
|
4771
|
+
IconButton,
|
4772
|
+
{
|
4773
|
+
onClick: () => onActionClick("Code", editorRef, handleTogglePopover),
|
4774
|
+
label: "Code",
|
4775
|
+
name: "Code",
|
4776
|
+
children: /* @__PURE__ */ jsx(Code, {})
|
4777
|
+
}
|
4778
|
+
),
|
4779
|
+
/* @__PURE__ */ jsx(
|
4780
|
+
IconButton,
|
4781
|
+
{
|
4782
|
+
onClick: () => {
|
4783
|
+
handleTogglePopover();
|
4784
|
+
onToggleMediaLib();
|
4785
|
+
},
|
4786
|
+
label: "Image",
|
4787
|
+
name: "Image",
|
4788
|
+
children: /* @__PURE__ */ jsx(Image$1, {})
|
4789
|
+
}
|
4790
|
+
),
|
4791
|
+
/* @__PURE__ */ jsx(
|
4792
|
+
IconButton,
|
4793
|
+
{
|
4794
|
+
onClick: () => onActionClick("Link", editorRef, handleTogglePopover),
|
4795
|
+
label: "Link",
|
4796
|
+
name: "Link",
|
4797
|
+
children: /* @__PURE__ */ jsx(Link$1, {})
|
4798
|
+
}
|
4799
|
+
),
|
4800
|
+
/* @__PURE__ */ jsx(
|
4801
|
+
IconButton,
|
4802
|
+
{
|
4803
|
+
onClick: () => onActionClick("Quote", editorRef, handleTogglePopover),
|
4804
|
+
label: "Quote",
|
4805
|
+
name: "Quote",
|
4806
|
+
children: /* @__PURE__ */ jsx(Quotes, {})
|
4807
|
+
}
|
4808
|
+
)
|
4809
|
+
] })
|
4810
|
+
] }) })
|
4811
|
+
] })
|
4507
4812
|
] }),
|
4508
4813
|
onTogglePreviewMode && /* @__PURE__ */ jsx(Button, { onClick: onTogglePreviewMode, variant: "tertiary", children: formatMessage({
|
4509
4814
|
id: "components.Wysiwyg.ToggleMode.preview-mode",
|
@@ -4729,7 +5034,9 @@ const useFieldHint = (hint = void 0, attribute) => {
|
|
4729
5034
|
if (!maximum && !minimum) {
|
4730
5035
|
return hint;
|
4731
5036
|
}
|
4732
|
-
const units = !["biginteger", "integer", "number"].includes(
|
5037
|
+
const units = !["biginteger", "integer", "number", "dynamiczone", "component"].includes(
|
5038
|
+
attribute.type
|
5039
|
+
) ? formatMessage(
|
4733
5040
|
{
|
4734
5041
|
id: "content-manager.form.Input.hint.character.unit",
|
4735
5042
|
defaultMessage: "{maxValue, plural, one { character} other { characters}}"
|
@@ -4823,7 +5130,7 @@ const DynamicComponent = ({
|
|
4823
5130
|
/* @__PURE__ */ jsx(
|
4824
5131
|
IconButton,
|
4825
5132
|
{
|
4826
|
-
|
5133
|
+
variant: "ghost",
|
4827
5134
|
label: formatMessage(
|
4828
5135
|
{
|
4829
5136
|
id: getTranslation("components.DynamicZone.delete-label"),
|
@@ -4838,7 +5145,7 @@ const DynamicComponent = ({
|
|
4838
5145
|
/* @__PURE__ */ jsx(
|
4839
5146
|
IconButton,
|
4840
5147
|
{
|
4841
|
-
|
5148
|
+
variant: "ghost",
|
4842
5149
|
onClick: (e) => e.stopPropagation(),
|
4843
5150
|
"data-handler-id": handlerId,
|
4844
5151
|
ref: dragRef,
|
@@ -4897,9 +5204,20 @@ const DynamicComponent = ({
|
|
4897
5204
|
),
|
4898
5205
|
/* @__PURE__ */ jsx(Accordion.Actions, { children: accordionActions })
|
4899
5206
|
] }),
|
4900
|
-
/* @__PURE__ */ jsx(Accordion.Content, { children: /* @__PURE__ */ jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsx(Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children: components[componentUid]?.layout?.map((row, rowInd) => /* @__PURE__ */ jsx(Grid$1, { gap: 4, children: row.map(({ size, ...field }) => {
|
5207
|
+
/* @__PURE__ */ jsx(Accordion.Content, { children: /* @__PURE__ */ jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsx(Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children: components[componentUid]?.layout?.map((row, rowInd) => /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
4901
5208
|
const fieldName = `${name2}.${index}.${field.name}`;
|
4902
|
-
return /* @__PURE__ */ jsx(
|
5209
|
+
return /* @__PURE__ */ jsx(
|
5210
|
+
Grid$1.Item,
|
5211
|
+
{
|
5212
|
+
col: size,
|
5213
|
+
s: 12,
|
5214
|
+
xs: 12,
|
5215
|
+
direction: "column",
|
5216
|
+
alignItems: "stretch",
|
5217
|
+
children: /* @__PURE__ */ jsx(MemoizedInputRenderer, { ...field, name: fieldName })
|
5218
|
+
},
|
5219
|
+
fieldName
|
5220
|
+
);
|
4903
5221
|
}) }, rowInd)) }) }) })
|
4904
5222
|
] }) }) })
|
4905
5223
|
] });
|
@@ -5092,7 +5410,7 @@ const DynamicZone = ({
|
|
5092
5410
|
const handleRemoveComponent = (name22, currentIndex) => () => {
|
5093
5411
|
removeFieldRow(name22, currentIndex);
|
5094
5412
|
};
|
5095
|
-
const hasError = error !== void 0
|
5413
|
+
const hasError = error !== void 0;
|
5096
5414
|
const renderButtonLabel = () => {
|
5097
5415
|
if (addComponentIsOpen) {
|
5098
5416
|
return formatMessage({ id: "app.utils.close-label", defaultMessage: "Close" });
|
@@ -5208,4 +5526,4 @@ export {
|
|
5208
5526
|
transformDocument as t,
|
5209
5527
|
useLazyComponents as u
|
5210
5528
|
};
|
5211
|
-
//# sourceMappingURL=Field-
|
5529
|
+
//# sourceMappingURL=Field-reyvfnop.mjs.map
|