@strapi/content-manager 0.0.0-experimental.62ce06180fe9a772eaeb3d43d238b26644f39f7c → 0.0.0-experimental.65ad956ae83ac65d866b9bb3e8c022c34b85468f
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-DErJQEVW.mjs → ComponentConfigurationPage-CpBFh6_r.mjs} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-DErJQEVW.mjs.map → ComponentConfigurationPage-CpBFh6_r.mjs.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-Cl7eB3s4.js → ComponentConfigurationPage-_zF8p6CY.js} +3 -3
- package/dist/_chunks/{ComponentConfigurationPage-Cl7eB3s4.js.map → ComponentConfigurationPage-_zF8p6CY.js.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-CBosWqQ7.mjs → EditConfigurationPage-CE_yavTi.mjs} +3 -3
- package/dist/_chunks/{EditConfigurationPage-CBosWqQ7.mjs.map → EditConfigurationPage-CE_yavTi.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-CyfFvH6-.js → EditConfigurationPage-_aG2DJSU.js} +3 -3
- package/dist/_chunks/{EditConfigurationPage-CyfFvH6-.js.map → EditConfigurationPage-_aG2DJSU.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-ClIueJnM.mjs → EditViewPage-DeTn7rAF.mjs} +19 -8
- package/dist/_chunks/EditViewPage-DeTn7rAF.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-DxyAOItK.js → EditViewPage-G9uNzwYL.js} +19 -8
- package/dist/_chunks/EditViewPage-G9uNzwYL.js.map +1 -0
- package/dist/_chunks/{Field-BZBYmvaf.mjs → Field-CnCKhI1R.mjs} +463 -143
- package/dist/_chunks/Field-CnCKhI1R.mjs.map +1 -0
- package/dist/_chunks/{Field-C0Y_SR9e.js → Field-DDHUWEfV.js} +465 -145
- package/dist/_chunks/Field-DDHUWEfV.js.map +1 -0
- package/dist/_chunks/{Form-DwvGnISS.js → Form-DYETaKUX.js} +35 -16
- package/dist/_chunks/Form-DYETaKUX.js.map +1 -0
- package/dist/_chunks/{Form-jwRSC2kV.mjs → Form-IvVVwqRL.mjs} +35 -16
- package/dist/_chunks/Form-IvVVwqRL.mjs.map +1 -0
- package/dist/_chunks/{History-BgzAIj0G.mjs → History-BMunT-do.mjs} +44 -19
- package/dist/_chunks/History-BMunT-do.mjs.map +1 -0
- package/dist/_chunks/{History-Cda0Yjzz.js → History-CnZDctSO.js} +44 -19
- package/dist/_chunks/History-CnZDctSO.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-C29EF97r.js → ListConfigurationPage-BynalOp8.js} +20 -8
- package/dist/_chunks/ListConfigurationPage-BynalOp8.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-GH55qfoT.mjs → ListConfigurationPage-CDqkCxgV.mjs} +20 -8
- package/dist/_chunks/ListConfigurationPage-CDqkCxgV.mjs.map +1 -0
- package/dist/_chunks/{ListViewPage-CnRt0UT7.js → ListViewPage-I88Ouzoq.js} +56 -42
- package/dist/_chunks/ListViewPage-I88Ouzoq.js.map +1 -0
- package/dist/_chunks/{ListViewPage-QU03PFj1.mjs → ListViewPage-_5gS-DOF.mjs} +54 -40
- package/dist/_chunks/ListViewPage-_5gS-DOF.mjs.map +1 -0
- package/dist/_chunks/{NoContentTypePage-DFDjxByI.js → NoContentTypePage-BaWQ7HsA.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-DFDjxByI.js.map → NoContentTypePage-BaWQ7HsA.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-CPs2CnzH.mjs → NoContentTypePage-Dht-55hr.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-CPs2CnzH.mjs.map → NoContentTypePage-Dht-55hr.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-ct58lcY0.mjs → NoPermissionsPage-Bs8D5W_v.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-ct58lcY0.mjs.map → NoPermissionsPage-Bs8D5W_v.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-BVHI-jv5.js → NoPermissionsPage-DCVUh5at.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-BVHI-jv5.js.map → NoPermissionsPage-DCVUh5at.js.map} +1 -1
- package/dist/_chunks/{Relations-BjpPPCKp.js → Relations-BPgFQeGj.js} +4 -4
- package/dist/_chunks/Relations-BPgFQeGj.js.map +1 -0
- package/dist/_chunks/{Relations-KMf5qEN0.mjs → Relations-Chdt5qWc.mjs} +4 -4
- package/dist/_chunks/Relations-Chdt5qWc.mjs.map +1 -0
- package/dist/_chunks/{en-fbKQxLGn.js → en-BVzUkPxZ.js} +10 -8
- package/dist/_chunks/{en-fbKQxLGn.js.map → en-BVzUkPxZ.js.map} +1 -1
- package/dist/_chunks/{en-Ux26r5pl.mjs → en-CPTj6CjC.mjs} +10 -8
- package/dist/_chunks/{en-Ux26r5pl.mjs.map → en-CPTj6CjC.mjs.map} +1 -1
- package/dist/_chunks/{index-D9ZwczCV.js → index-BhbLFX4l.js} +440 -199
- package/dist/_chunks/index-BhbLFX4l.js.map +1 -0
- package/dist/_chunks/{index-6kKXK7y8.mjs → index-D4UGPFZC.mjs} +447 -206
- package/dist/_chunks/index-D4UGPFZC.mjs.map +1 -0
- package/dist/_chunks/{layout-BJfBoBiF.js → layout-CYA7s0qO.js} +25 -12
- package/dist/_chunks/layout-CYA7s0qO.js.map +1 -0
- package/dist/_chunks/{layout-B1Z-9koY.mjs → layout-D4HI4_PS.mjs} +27 -14
- package/dist/_chunks/layout-D4HI4_PS.mjs.map +1 -0
- package/dist/_chunks/{relations-CgZg7Pyx.mjs → relations-1pXaYpBK.mjs} +2 -2
- package/dist/_chunks/{relations-CgZg7Pyx.mjs.map → relations-1pXaYpBK.mjs.map} +1 -1
- package/dist/_chunks/{relations-CMvjzyU3.js → relations-DDZ9OxNo.js} +2 -2
- package/dist/_chunks/{relations-CMvjzyU3.js.map → relations-DDZ9OxNo.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 +1 -1
- package/dist/admin/index.mjs +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 +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 +178 -105
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +179 -106
- 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 +9 -9
- package/dist/_chunks/EditViewPage-ClIueJnM.mjs.map +0 -1
- package/dist/_chunks/EditViewPage-DxyAOItK.js.map +0 -1
- package/dist/_chunks/Field-BZBYmvaf.mjs.map +0 -1
- package/dist/_chunks/Field-C0Y_SR9e.js.map +0 -1
- package/dist/_chunks/Form-DwvGnISS.js.map +0 -1
- package/dist/_chunks/Form-jwRSC2kV.mjs.map +0 -1
- package/dist/_chunks/History-BgzAIj0G.mjs.map +0 -1
- package/dist/_chunks/History-Cda0Yjzz.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-C29EF97r.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-GH55qfoT.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-CnRt0UT7.js.map +0 -1
- package/dist/_chunks/ListViewPage-QU03PFj1.mjs.map +0 -1
- package/dist/_chunks/Relations-BjpPPCKp.js.map +0 -1
- package/dist/_chunks/Relations-KMf5qEN0.mjs.map +0 -1
- package/dist/_chunks/index-6kKXK7y8.mjs.map +0 -1
- package/dist/_chunks/index-D9ZwczCV.js.map +0 -1
- package/dist/_chunks/layout-B1Z-9koY.mjs.map +0 -1
- package/dist/_chunks/layout-BJfBoBiF.js.map +0 -1
- package/dist/_chunks/usePrev-B9w_-eYc.js.map +0 -1
- package/dist/_chunks/usePrev-DH6iah0A.mjs +0 -16
- package/dist/_chunks/usePrev-DH6iah0A.mjs.map +0 -1
@@ -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 { m as DOCUMENT_META_FIELDS, g as getTranslation, c as useDoc, e as contentManagerApi, d as buildValidParams, f as useDocumentRBAC,
|
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-D4UGPFZC.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-Chdt5qWc.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";
|
@@ -17,9 +17,9 @@ import { g as getIn } from "./objects-mKMAmfec.mjs";
|
|
17
17
|
import { Editor as Editor$1, Transforms, Node, Element, Range, Path, Point, createEditor } from "slate";
|
18
18
|
import { withHistory } from "slate-history";
|
19
19
|
import { useFocused, useSelected, ReactEditor, Editable, useSlate, Slate, withReact } from "slate-react";
|
20
|
-
import { p as prefixFileUrlWithBackendUrl, u as usePrev } from "./
|
20
|
+
import { p as prefixFileUrlWithBackendUrl, u as usePrev, a as useDebounce } from "./useDebounce-DmuSJIF3.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);
|
@@ -593,20 +860,8 @@ const LinkContent = React.forwardRef(
|
|
593
860
|
const [linkText, setLinkText] = React.useState(elementText);
|
594
861
|
const [linkUrl, setLinkUrl] = React.useState(link.url);
|
595
862
|
const linkInputRef = React.useRef(null);
|
596
|
-
const
|
863
|
+
const isLastInsertedLink = editor.lastInsertedLinkPath ? !Path.equals(path, editor.lastInsertedLinkPath) : true;
|
597
864
|
const [isSaveDisabled, setIsSaveDisabled] = React.useState(false);
|
598
|
-
const handleOpenChange = (isOpen) => {
|
599
|
-
if (isOpen) {
|
600
|
-
setPopoverOpen(isOpen);
|
601
|
-
setShowRemoveButton(isOpen);
|
602
|
-
} else {
|
603
|
-
setPopoverOpen(isOpen);
|
604
|
-
if (link.url === "") {
|
605
|
-
removeLink(editor);
|
606
|
-
}
|
607
|
-
ReactEditor.focus(editor);
|
608
|
-
}
|
609
|
-
};
|
610
865
|
const onLinkChange = (e) => {
|
611
866
|
setIsSaveDisabled(false);
|
612
867
|
setLinkUrl(e.target.value);
|
@@ -627,15 +882,33 @@ const LinkContent = React.forwardRef(
|
|
627
882
|
editLink(editor, { url: linkUrl, text: linkText });
|
628
883
|
setPopoverOpen(false);
|
629
884
|
editor.lastInsertedLinkPath = null;
|
885
|
+
ReactEditor.focus(editor);
|
886
|
+
};
|
887
|
+
const handleClose = () => {
|
888
|
+
if (link.url === "") {
|
889
|
+
removeLink(editor);
|
890
|
+
}
|
891
|
+
setPopoverOpen(false);
|
892
|
+
ReactEditor.focus(editor);
|
630
893
|
};
|
631
894
|
React.useEffect(() => {
|
632
895
|
if (popoverOpen)
|
633
896
|
linkInputRef.current?.focus();
|
634
897
|
}, [popoverOpen]);
|
635
898
|
const inputNotDirty = !linkText || !linkUrl || link.url && link.url === linkUrl && elementText && elementText === linkText;
|
636
|
-
return /* @__PURE__ */ jsxs(Popover.Root, {
|
637
|
-
/* @__PURE__ */ jsx(Popover.Trigger, { children: /* @__PURE__ */ jsx(
|
638
|
-
|
899
|
+
return /* @__PURE__ */ jsxs(Popover.Root, { open: popoverOpen, children: [
|
900
|
+
/* @__PURE__ */ jsx(Popover.Trigger, { children: /* @__PURE__ */ jsx(
|
901
|
+
StyledBaseLink,
|
902
|
+
{
|
903
|
+
...attributes,
|
904
|
+
ref: forwardedRef,
|
905
|
+
href: link.url,
|
906
|
+
onClick: () => setPopoverOpen(true),
|
907
|
+
color: "primary600",
|
908
|
+
children
|
909
|
+
}
|
910
|
+
) }),
|
911
|
+
/* @__PURE__ */ jsx(Popover.Content, { onPointerDownOutside: handleClose, children: /* @__PURE__ */ jsxs(Flex, { padding: 4, direction: "column", gap: 4, children: [
|
639
912
|
/* @__PURE__ */ jsx(Field.Root, { width: "368px", children: /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: 1, alignItems: "stretch", children: [
|
640
913
|
/* @__PURE__ */ jsx(Field.Label, { children: formatMessage({
|
641
914
|
id: "components.Blocks.popover.text",
|
@@ -681,7 +954,7 @@ const LinkContent = React.forwardRef(
|
|
681
954
|
{
|
682
955
|
variant: "danger-light",
|
683
956
|
onClick: () => removeLink(editor),
|
684
|
-
$visible:
|
957
|
+
$visible: isLastInsertedLink,
|
685
958
|
children: formatMessage({
|
686
959
|
id: "components.Blocks.popover.remove",
|
687
960
|
defaultMessage: "Remove"
|
@@ -689,11 +962,11 @@ const LinkContent = React.forwardRef(
|
|
689
962
|
}
|
690
963
|
),
|
691
964
|
/* @__PURE__ */ jsxs(Flex, { gap: 2, children: [
|
692
|
-
/* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick:
|
965
|
+
/* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: handleClose, children: formatMessage({
|
693
966
|
id: "components.Blocks.popover.cancel",
|
694
967
|
defaultMessage: "Cancel"
|
695
968
|
}) }),
|
696
|
-
/* @__PURE__ */ jsx(Button, {
|
969
|
+
/* @__PURE__ */ jsx(Button, { disabled: Boolean(inputNotDirty) || isSaveDisabled, onClick: handleSave, children: formatMessage({
|
697
970
|
id: "components.Blocks.popover.save",
|
698
971
|
defaultMessage: "Save"
|
699
972
|
}) })
|
@@ -1134,7 +1407,7 @@ const ToolbarButton = ({
|
|
1134
1407
|
width: 7,
|
1135
1408
|
height: 7,
|
1136
1409
|
hasRadius: true,
|
1137
|
-
children: /* @__PURE__ */ jsx(Icon, {
|
1410
|
+
children: /* @__PURE__ */ jsx(Icon, { fill: disabled ? "neutral300" : enabledColor })
|
1138
1411
|
}
|
1139
1412
|
)
|
1140
1413
|
}
|
@@ -1279,6 +1552,26 @@ const ListButton = ({ block, format }) => {
|
|
1279
1552
|
}
|
1280
1553
|
return false;
|
1281
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
|
+
};
|
1282
1575
|
const toggleList = (format2) => {
|
1283
1576
|
let currentListEntry;
|
1284
1577
|
if (editor.selection) {
|
@@ -1312,7 +1605,7 @@ const ListButton = ({ block, format }) => {
|
|
1312
1605
|
name: format,
|
1313
1606
|
label: block.label,
|
1314
1607
|
isActive: isListActive(),
|
1315
|
-
disabled,
|
1608
|
+
disabled: isListDisabled(),
|
1316
1609
|
handleClick: () => toggleList(format)
|
1317
1610
|
}
|
1318
1611
|
);
|
@@ -1456,6 +1749,7 @@ const DragItem = styled(Flex)`
|
|
1456
1749
|
}
|
1457
1750
|
`;
|
1458
1751
|
const DragIconButton = styled(IconButton)`
|
1752
|
+
user-select: none;
|
1459
1753
|
display: flex;
|
1460
1754
|
align-items: center;
|
1461
1755
|
justify-content: center;
|
@@ -1479,7 +1773,7 @@ const DragIconButton = styled(IconButton)`
|
|
1479
1773
|
}
|
1480
1774
|
svg {
|
1481
1775
|
height: auto;
|
1482
|
-
width: ${({ theme }) => theme.spaces[3]};
|
1776
|
+
min-width: ${({ theme }) => theme.spaces[3]};
|
1483
1777
|
|
1484
1778
|
path {
|
1485
1779
|
fill: ${({ theme }) => theme.colors.neutral700};
|
@@ -1584,6 +1878,7 @@ const DragAndDropElement = ({
|
|
1584
1878
|
DragIconButton,
|
1585
1879
|
{
|
1586
1880
|
tag: "div",
|
1881
|
+
contentEditable: false,
|
1587
1882
|
role: "button",
|
1588
1883
|
tabIndex: 0,
|
1589
1884
|
withTooltip: false,
|
@@ -1596,7 +1891,7 @@ const DragAndDropElement = ({
|
|
1596
1891
|
disabled,
|
1597
1892
|
draggable: true,
|
1598
1893
|
$dragHandleTopMargin: dragHandleTopMargin,
|
1599
|
-
children: /* @__PURE__ */ jsx(Drag, { color: "
|
1894
|
+
children: /* @__PURE__ */ jsx(Drag, { color: "primary500" })
|
1600
1895
|
}
|
1601
1896
|
),
|
1602
1897
|
children
|
@@ -1920,7 +2215,7 @@ const EditorLayout$1 = ({
|
|
1920
2215
|
/* @__PURE__ */ jsx(
|
1921
2216
|
CollapseIconButton,
|
1922
2217
|
{
|
1923
|
-
|
2218
|
+
label: formatMessage({
|
1924
2219
|
id: getTranslation("components.Blocks.collapse"),
|
1925
2220
|
defaultMessage: "Collapse"
|
1926
2221
|
}),
|
@@ -2259,7 +2554,7 @@ const BlocksEditor = React.forwardRef(
|
|
2259
2554
|
!isExpandedMode && /* @__PURE__ */ jsx(
|
2260
2555
|
ExpandIconButton,
|
2261
2556
|
{
|
2262
|
-
|
2557
|
+
label: formatMessage({
|
2263
2558
|
id: getTranslation("components.Blocks.expand"),
|
2264
2559
|
defaultMessage: "Expand"
|
2265
2560
|
}),
|
@@ -2325,30 +2620,27 @@ const createDefaultForm = (contentType, components = {}) => {
|
|
2325
2620
|
const Initializer = ({ disabled, name: name2, onClick }) => {
|
2326
2621
|
const { formatMessage } = useIntl();
|
2327
2622
|
const field = useField(name2);
|
2328
|
-
return /* @__PURE__ */
|
2329
|
-
|
2330
|
-
|
2331
|
-
|
2332
|
-
|
2333
|
-
|
2334
|
-
|
2335
|
-
|
2336
|
-
|
2337
|
-
|
2338
|
-
|
2339
|
-
|
2340
|
-
|
2341
|
-
|
2342
|
-
|
2343
|
-
|
2344
|
-
|
2345
|
-
|
2346
|
-
|
2347
|
-
|
2348
|
-
|
2349
|
-
),
|
2350
|
-
field.error && /* @__PURE__ */ jsx(Typography, { textColor: "danger600", variant: "pi", children: field.error })
|
2351
|
-
] });
|
2623
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
2624
|
+
Box,
|
2625
|
+
{
|
2626
|
+
tag: "button",
|
2627
|
+
background: "neutral100",
|
2628
|
+
borderColor: field.error ? "danger600" : "neutral200",
|
2629
|
+
hasRadius: true,
|
2630
|
+
disabled,
|
2631
|
+
onClick,
|
2632
|
+
paddingTop: 9,
|
2633
|
+
paddingBottom: 9,
|
2634
|
+
type: "button",
|
2635
|
+
children: /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: 2, children: [
|
2636
|
+
/* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(CircleIcon, {}) }),
|
2637
|
+
/* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { textColor: "primary600", variant: "pi", fontWeight: "bold", children: formatMessage({
|
2638
|
+
id: getTranslation("components.empty-repeatable"),
|
2639
|
+
defaultMessage: "No entry yet. Click on the button below to add one."
|
2640
|
+
}) }) })
|
2641
|
+
] })
|
2642
|
+
}
|
2643
|
+
) });
|
2352
2644
|
};
|
2353
2645
|
const CircleIcon = styled(PlusCircle)`
|
2354
2646
|
width: 2.4rem;
|
@@ -2382,7 +2674,18 @@ const NonRepeatableComponent = ({
|
|
2382
2674
|
children: /* @__PURE__ */ jsx(Flex, { direction: "column", alignItems: "stretch", gap: 6, children: layout.map((row, index) => {
|
2383
2675
|
return /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
2384
2676
|
const completeFieldName = `${name2}.${field.name}`;
|
2385
|
-
return /* @__PURE__ */ jsx(
|
2677
|
+
return /* @__PURE__ */ jsx(
|
2678
|
+
Grid$1.Item,
|
2679
|
+
{
|
2680
|
+
col: size,
|
2681
|
+
s: 12,
|
2682
|
+
xs: 12,
|
2683
|
+
direction: "column",
|
2684
|
+
alignItems: "stretch",
|
2685
|
+
children: children({ ...field, name: completeFieldName })
|
2686
|
+
},
|
2687
|
+
completeFieldName
|
2688
|
+
);
|
2386
2689
|
}) }, index);
|
2387
2690
|
}) })
|
2388
2691
|
}
|
@@ -2560,7 +2863,18 @@ const RepeatableComponent = ({
|
|
2560
2863
|
children: layout.map((row, index2) => {
|
2561
2864
|
return /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
2562
2865
|
const completeFieldName = `${nameWithIndex}.${field.name}`;
|
2563
|
-
return /* @__PURE__ */ jsx(
|
2866
|
+
return /* @__PURE__ */ jsx(
|
2867
|
+
Grid$1.Item,
|
2868
|
+
{
|
2869
|
+
col: size,
|
2870
|
+
s: 12,
|
2871
|
+
xs: 12,
|
2872
|
+
direction: "column",
|
2873
|
+
alignItems: "stretch",
|
2874
|
+
children: children({ ...field, name: completeFieldName })
|
2875
|
+
},
|
2876
|
+
completeFieldName
|
2877
|
+
);
|
2564
2878
|
}) }, index2);
|
2565
2879
|
})
|
2566
2880
|
}
|
@@ -2655,7 +2969,7 @@ const Component = ({
|
|
2655
2969
|
/* @__PURE__ */ jsx(
|
2656
2970
|
IconButton,
|
2657
2971
|
{
|
2658
|
-
|
2972
|
+
variant: "ghost",
|
2659
2973
|
onClick: onDeleteComponent,
|
2660
2974
|
label: formatMessage({
|
2661
2975
|
id: getTranslation("containers.Edit.delete"),
|
@@ -2668,7 +2982,7 @@ const Component = ({
|
|
2668
2982
|
IconButton,
|
2669
2983
|
{
|
2670
2984
|
ref: composedAccordionRefs,
|
2671
|
-
|
2985
|
+
variant: "ghost",
|
2672
2986
|
onClick: (e) => e.stopPropagation(),
|
2673
2987
|
"data-handler-id": handlerId,
|
2674
2988
|
label: formatMessage({
|
@@ -2738,7 +3052,7 @@ const ComponentInput = ({
|
|
2738
3052
|
id: getTranslation("components.reset-entry"),
|
2739
3053
|
defaultMessage: "Reset Entry"
|
2740
3054
|
}),
|
2741
|
-
|
3055
|
+
variant: "ghost",
|
2742
3056
|
onClick: () => {
|
2743
3057
|
field.onChange(name2, null);
|
2744
3058
|
},
|
@@ -2767,11 +3081,8 @@ const AddComponentButton = ({
|
|
2767
3081
|
onClick,
|
2768
3082
|
disabled: isDisabled,
|
2769
3083
|
background: "neutral0",
|
2770
|
-
paddingTop: 3,
|
2771
|
-
paddingBottom: 3,
|
2772
|
-
paddingLeft: 4,
|
2773
|
-
paddingRight: 4,
|
2774
3084
|
style: { cursor: isDisabled ? "not-allowed" : "pointer" },
|
3085
|
+
variant: "tertiary",
|
2775
3086
|
children: /* @__PURE__ */ jsxs(Flex, { tag: "span", gap: 2, children: [
|
2776
3087
|
/* @__PURE__ */ jsx(StyledAddIcon, { "aria-hidden": true, $isOpen: isOpen, $hasError: hasError && !isOpen }),
|
2777
3088
|
/* @__PURE__ */ jsx(
|
@@ -2800,10 +3111,11 @@ const StyledAddIcon = styled(PlusCircle)`
|
|
2800
3111
|
}
|
2801
3112
|
`;
|
2802
3113
|
const AddComponentTitle = styled(Typography)``;
|
2803
|
-
const StyledButton = styled(
|
3114
|
+
const StyledButton = styled(Button)`
|
2804
3115
|
border-radius: 26px;
|
2805
3116
|
border-color: ${({ theme }) => theme.colors.neutral150};
|
2806
3117
|
box-shadow: ${({ theme }) => theme.shadows.filterShadow};
|
3118
|
+
height: 5rem;
|
2807
3119
|
|
2808
3120
|
&:hover {
|
2809
3121
|
${AddComponentTitle} {
|
@@ -2815,7 +3127,7 @@ const StyledButton = styled(BaseButton)`
|
|
2815
3127
|
fill: ${({ theme }) => theme.colors.primary600};
|
2816
3128
|
}
|
2817
3129
|
> path {
|
2818
|
-
fill: ${({ theme }) => theme.colors.
|
3130
|
+
fill: ${({ theme }) => theme.colors.primary600};
|
2819
3131
|
}
|
2820
3132
|
}
|
2821
3133
|
}
|
@@ -2946,18 +3258,6 @@ const NotAllowedInput = ({ hint, label, required, name: name2 }) => {
|
|
2946
3258
|
/* @__PURE__ */ jsx(Field.Hint, {})
|
2947
3259
|
] });
|
2948
3260
|
};
|
2949
|
-
function useDebounce(value, delay) {
|
2950
|
-
const [debouncedValue, setDebouncedValue] = useState(value);
|
2951
|
-
useEffect(() => {
|
2952
|
-
const handler = setTimeout(() => {
|
2953
|
-
setDebouncedValue(value);
|
2954
|
-
}, delay);
|
2955
|
-
return () => {
|
2956
|
-
clearTimeout(handler);
|
2957
|
-
};
|
2958
|
-
}, [value, delay]);
|
2959
|
-
return debouncedValue;
|
2960
|
-
}
|
2961
3261
|
const uidApi = contentManagerApi.injectEndpoints({
|
2962
3262
|
endpoints: (builder) => ({
|
2963
3263
|
getDefaultUID: builder.query({
|
@@ -2992,7 +3292,10 @@ const uidApi = contentManagerApi.injectEndpoints({
|
|
2992
3292
|
config: {
|
2993
3293
|
params
|
2994
3294
|
}
|
2995
|
-
})
|
3295
|
+
}),
|
3296
|
+
providesTags: (_res, _error, params) => [
|
3297
|
+
{ type: "UidAvailability", id: params.contentTypeUID }
|
3298
|
+
]
|
2996
3299
|
})
|
2997
3300
|
})
|
2998
3301
|
});
|
@@ -3004,8 +3307,10 @@ const UIDInput = React.forwardRef(
|
|
3004
3307
|
const allFormValues = useForm("InputUID", (form) => form.values);
|
3005
3308
|
const [availability, setAvailability] = React.useState();
|
3006
3309
|
const [showRegenerate, setShowRegenerate] = React.useState(false);
|
3310
|
+
const isCloning = useMatch(CLONE_PATH) !== null;
|
3007
3311
|
const field = useField(name2);
|
3008
3312
|
const debouncedValue = useDebounce(field.value, 300);
|
3313
|
+
const hasChanged = debouncedValue !== field.initialValue;
|
3009
3314
|
const { toggleNotification } = useNotification();
|
3010
3315
|
const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
|
3011
3316
|
const { formatMessage } = useIntl();
|
@@ -3081,8 +3386,9 @@ const UIDInput = React.forwardRef(
|
|
3081
3386
|
params
|
3082
3387
|
},
|
3083
3388
|
{
|
3389
|
+
// Don't check availability if the value is empty or wasn't changed
|
3084
3390
|
skip: !Boolean(
|
3085
|
-
|
3391
|
+
(hasChanged || isCloning) && debouncedValue && UID_REGEX.test(debouncedValue.trim())
|
3086
3392
|
)
|
3087
3393
|
}
|
3088
3394
|
);
|
@@ -3111,6 +3417,7 @@ const UIDInput = React.forwardRef(
|
|
3111
3417
|
const isLoading = isGeneratingDefaultUID || isGeneratingUID || isCheckingAvailability;
|
3112
3418
|
const fieldRef = useFocusInputField(name2);
|
3113
3419
|
const composedRefs = useComposedRefs(ref, fieldRef);
|
3420
|
+
const shouldShowAvailability = (hasChanged || isCloning) && debouncedValue != null && availability && !showRegenerate;
|
3114
3421
|
return /* @__PURE__ */ jsxs(Field.Root, { hint, name: name2, error: field.error, required, children: [
|
3115
3422
|
/* @__PURE__ */ jsx(Field.Label, { action: labelAction, children: label }),
|
3116
3423
|
/* @__PURE__ */ jsx(
|
@@ -3119,7 +3426,7 @@ const UIDInput = React.forwardRef(
|
|
3119
3426
|
ref: composedRefs,
|
3120
3427
|
disabled: props.disabled,
|
3121
3428
|
endAction: /* @__PURE__ */ jsxs(Flex, { position: "relative", gap: 1, children: [
|
3122
|
-
|
3429
|
+
shouldShowAvailability && /* @__PURE__ */ jsxs(
|
3123
3430
|
TextValidation,
|
3124
3431
|
{
|
3125
3432
|
alignItems: "center",
|
@@ -3953,7 +4260,7 @@ const EditorLayout = ({
|
|
3953
4260
|
justifyContent: "flex-end",
|
3954
4261
|
shrink: 0,
|
3955
4262
|
width: "100%",
|
3956
|
-
children: /* @__PURE__ */ jsxs(ExpandButton$1, { onClick: onCollapse, children: [
|
4263
|
+
children: /* @__PURE__ */ jsxs(ExpandButton$1, { onClick: onCollapse, variant: "tertiary", size: "M", children: [
|
3957
4264
|
/* @__PURE__ */ jsx(Typography, { children: formatMessage({
|
3958
4265
|
id: "components.Wysiwyg.collapse",
|
3959
4266
|
defaultMessage: "Collapse"
|
@@ -3971,12 +4278,14 @@ const EditorLayout = ({
|
|
3971
4278
|
) }) });
|
3972
4279
|
}
|
3973
4280
|
return /* @__PURE__ */ jsx(
|
3974
|
-
|
4281
|
+
Flex,
|
3975
4282
|
{
|
3976
4283
|
borderColor: error ? "danger600" : "neutral200",
|
3977
4284
|
borderStyle: "solid",
|
3978
4285
|
borderWidth: "1px",
|
3979
4286
|
hasRadius: true,
|
4287
|
+
direction: "column",
|
4288
|
+
alignItems: "stretch",
|
3980
4289
|
children
|
3981
4290
|
}
|
3982
4291
|
);
|
@@ -3987,11 +4296,19 @@ const ExpandWrapper = styled(Flex)`
|
|
3987
4296
|
const BoxWithBorder = styled(Box)`
|
3988
4297
|
border-right: 1px solid ${({ theme }) => theme.colors.neutral200};
|
3989
4298
|
`;
|
3990
|
-
const ExpandButton$1 = styled(
|
4299
|
+
const ExpandButton$1 = styled(Button)`
|
3991
4300
|
background-color: transparent;
|
3992
4301
|
border: none;
|
3993
4302
|
align-items: center;
|
3994
4303
|
|
4304
|
+
& > span {
|
4305
|
+
display: flex;
|
4306
|
+
justify-content: space-between;
|
4307
|
+
align-items: center;
|
4308
|
+
width: 100%;
|
4309
|
+
font-weight: ${({ theme }) => theme.fontWeights.regular};
|
4310
|
+
}
|
4311
|
+
|
3995
4312
|
svg {
|
3996
4313
|
margin-left: ${({ theme }) => `${theme.spaces[2]}`};
|
3997
4314
|
|
@@ -4258,40 +4575,28 @@ const quoteAndCodeHandler = (editor, markdownType) => {
|
|
4258
4575
|
insertWithoutTextToEdit(editor, markdownType, line, contentLength);
|
4259
4576
|
}
|
4260
4577
|
};
|
4261
|
-
const CustomIconButton = styled(IconButton)`
|
4262
|
-
padding: ${({ theme }) => theme.spaces[2]};
|
4263
|
-
|
4264
|
-
svg {
|
4265
|
-
width: 1.8rem;
|
4266
|
-
height: 1.8rem;
|
4267
|
-
}
|
4268
|
-
`;
|
4269
|
-
const CustomLinkIconButton = styled(CustomIconButton)`
|
4270
|
-
svg {
|
4271
|
-
width: 0.8rem;
|
4272
|
-
height: 0.8rem;
|
4273
|
-
}
|
4274
|
-
`;
|
4275
4578
|
const MainButtons = styled(IconButtonGroup)`
|
4276
4579
|
margin-left: ${({ theme }) => theme.spaces[4]};
|
4277
4580
|
`;
|
4278
4581
|
const MoreButton = styled(IconButton)`
|
4279
4582
|
margin: ${({ theme }) => `0 ${theme.spaces[2]}`};
|
4280
|
-
padding: ${({ theme }) => theme.spaces[2]};
|
4281
|
-
|
4282
|
-
svg {
|
4283
|
-
width: 1.8rem;
|
4284
|
-
height: 1.8rem;
|
4285
|
-
}
|
4286
4583
|
`;
|
4287
4584
|
const IconButtonGroupMargin = styled(IconButtonGroup)`
|
4288
4585
|
margin-right: ${({ theme }) => `${theme.spaces[2]}`};
|
4289
4586
|
`;
|
4290
|
-
const ExpandButton = styled(
|
4587
|
+
const ExpandButton = styled(Button)`
|
4291
4588
|
background-color: transparent;
|
4292
4589
|
border: none;
|
4293
4590
|
align-items: center;
|
4294
4591
|
|
4592
|
+
& > span {
|
4593
|
+
display: flex;
|
4594
|
+
justify-content: space-between;
|
4595
|
+
align-items: center;
|
4596
|
+
width: 100%;
|
4597
|
+
font-weight: ${({ theme }) => theme.fontWeights.regular};
|
4598
|
+
}
|
4599
|
+
|
4295
4600
|
svg {
|
4296
4601
|
margin-left: ${({ theme }) => `${theme.spaces[2]}`};
|
4297
4602
|
path {
|
@@ -4303,8 +4608,8 @@ const ExpandButton = styled(BaseButton)`
|
|
4303
4608
|
`;
|
4304
4609
|
const WysiwygFooter = ({ onToggleExpand }) => {
|
4305
4610
|
const { formatMessage } = useIntl();
|
4306
|
-
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: [
|
4307
|
-
/* @__PURE__ */ jsx(Typography, { children: formatMessage({
|
4611
|
+
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: [
|
4612
|
+
/* @__PURE__ */ jsx(Typography, { textColor: "neutral800", children: formatMessage({
|
4308
4613
|
id: "components.WysiwygBottomControls.fullscreen",
|
4309
4614
|
defaultMessage: "Expand"
|
4310
4615
|
}) }),
|
@@ -4340,18 +4645,27 @@ const WysiwygNav = ({
|
|
4340
4645
|
borderRadius: `0.4rem 0.4rem 0 0`,
|
4341
4646
|
children: [
|
4342
4647
|
/* @__PURE__ */ jsxs(Flex, { children: [
|
4343
|
-
/* @__PURE__ */ jsx(Field.Root, { children: /* @__PURE__ */ jsxs(
|
4344
|
-
|
4345
|
-
|
4346
|
-
|
4347
|
-
|
4348
|
-
|
4349
|
-
|
4350
|
-
|
4648
|
+
/* @__PURE__ */ jsx(Field.Root, { children: /* @__PURE__ */ jsxs(
|
4649
|
+
SingleSelect,
|
4650
|
+
{
|
4651
|
+
disabled: true,
|
4652
|
+
placeholder: selectPlaceholder,
|
4653
|
+
"aria-label": selectPlaceholder,
|
4654
|
+
size: "S",
|
4655
|
+
children: [
|
4656
|
+
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h1", children: "h1" }),
|
4657
|
+
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h2", children: "h2" }),
|
4658
|
+
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h3", children: "h3" }),
|
4659
|
+
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h4", children: "h4" }),
|
4660
|
+
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h5", children: "h5" }),
|
4661
|
+
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h6", children: "h6" })
|
4662
|
+
]
|
4663
|
+
}
|
4664
|
+
) }),
|
4351
4665
|
/* @__PURE__ */ jsxs(MainButtons, { children: [
|
4352
|
-
/* @__PURE__ */ jsx(
|
4353
|
-
/* @__PURE__ */ jsx(
|
4354
|
-
/* @__PURE__ */ jsx(
|
4666
|
+
/* @__PURE__ */ jsx(IconButton, { disabled: true, label: "Bold", name: "Bold", children: /* @__PURE__ */ jsx(Bold, {}) }),
|
4667
|
+
/* @__PURE__ */ jsx(IconButton, { disabled: true, label: "Italic", name: "Italic", children: /* @__PURE__ */ jsx(Italic, {}) }),
|
4668
|
+
/* @__PURE__ */ jsx(IconButton, { disabled: true, label: "Underline", name: "Underline", children: /* @__PURE__ */ jsx(Underline, {}) })
|
4355
4669
|
] }),
|
4356
4670
|
/* @__PURE__ */ jsx(MoreButton, { disabled: true, label: "More", children: /* @__PURE__ */ jsx(More, {}) })
|
4357
4671
|
] }),
|
@@ -4378,6 +4692,7 @@ const WysiwygNav = ({
|
|
4378
4692
|
placeholder: selectPlaceholder,
|
4379
4693
|
"aria-label": selectPlaceholder,
|
4380
4694
|
onChange: (value) => onActionClick(value, editorRef),
|
4695
|
+
size: "S",
|
4381
4696
|
children: [
|
4382
4697
|
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h1", children: "h1" }),
|
4383
4698
|
/* @__PURE__ */ jsx(SingleSelectOption, { value: "h2", children: "h2" }),
|
@@ -4389,17 +4704,9 @@ const WysiwygNav = ({
|
|
4389
4704
|
}
|
4390
4705
|
) }),
|
4391
4706
|
/* @__PURE__ */ jsxs(MainButtons, { children: [
|
4707
|
+
/* @__PURE__ */ jsx(IconButton, { onClick: () => onActionClick("Bold", editorRef), label: "Bold", name: "Bold", children: /* @__PURE__ */ jsx(Bold, {}) }),
|
4392
4708
|
/* @__PURE__ */ jsx(
|
4393
|
-
|
4394
|
-
{
|
4395
|
-
onClick: () => onActionClick("Bold", editorRef),
|
4396
|
-
label: "Bold",
|
4397
|
-
name: "Bold",
|
4398
|
-
children: /* @__PURE__ */ jsx(Bold, {})
|
4399
|
-
}
|
4400
|
-
),
|
4401
|
-
/* @__PURE__ */ jsx(
|
4402
|
-
CustomIconButton,
|
4709
|
+
IconButton,
|
4403
4710
|
{
|
4404
4711
|
onClick: () => onActionClick("Italic", editorRef),
|
4405
4712
|
label: "Italic",
|
@@ -4408,7 +4715,7 @@ const WysiwygNav = ({
|
|
4408
4715
|
}
|
4409
4716
|
),
|
4410
4717
|
/* @__PURE__ */ jsx(
|
4411
|
-
|
4718
|
+
IconButton,
|
4412
4719
|
{
|
4413
4720
|
onClick: () => onActionClick("Underline", editorRef),
|
4414
4721
|
label: "Underline",
|
@@ -4422,7 +4729,7 @@ const WysiwygNav = ({
|
|
4422
4729
|
/* @__PURE__ */ jsx(Popover.Content, { sideOffset: 12, children: /* @__PURE__ */ jsxs(Flex, { padding: 2, children: [
|
4423
4730
|
/* @__PURE__ */ jsxs(IconButtonGroupMargin, { children: [
|
4424
4731
|
/* @__PURE__ */ jsx(
|
4425
|
-
|
4732
|
+
IconButton,
|
4426
4733
|
{
|
4427
4734
|
onClick: () => onActionClick("Strikethrough", editorRef, handleTogglePopover),
|
4428
4735
|
label: "Strikethrough",
|
@@ -4431,7 +4738,7 @@ const WysiwygNav = ({
|
|
4431
4738
|
}
|
4432
4739
|
),
|
4433
4740
|
/* @__PURE__ */ jsx(
|
4434
|
-
|
4741
|
+
IconButton,
|
4435
4742
|
{
|
4436
4743
|
onClick: () => onActionClick("BulletList", editorRef, handleTogglePopover),
|
4437
4744
|
label: "BulletList",
|
@@ -4440,7 +4747,7 @@ const WysiwygNav = ({
|
|
4440
4747
|
}
|
4441
4748
|
),
|
4442
4749
|
/* @__PURE__ */ jsx(
|
4443
|
-
|
4750
|
+
IconButton,
|
4444
4751
|
{
|
4445
4752
|
onClick: () => onActionClick("NumberList", editorRef, handleTogglePopover),
|
4446
4753
|
label: "NumberList",
|
@@ -4451,7 +4758,7 @@ const WysiwygNav = ({
|
|
4451
4758
|
] }),
|
4452
4759
|
/* @__PURE__ */ jsxs(IconButtonGroup, { children: [
|
4453
4760
|
/* @__PURE__ */ jsx(
|
4454
|
-
|
4761
|
+
IconButton,
|
4455
4762
|
{
|
4456
4763
|
onClick: () => onActionClick("Code", editorRef, handleTogglePopover),
|
4457
4764
|
label: "Code",
|
@@ -4460,7 +4767,7 @@ const WysiwygNav = ({
|
|
4460
4767
|
}
|
4461
4768
|
),
|
4462
4769
|
/* @__PURE__ */ jsx(
|
4463
|
-
|
4770
|
+
IconButton,
|
4464
4771
|
{
|
4465
4772
|
onClick: () => {
|
4466
4773
|
handleTogglePopover();
|
@@ -4472,7 +4779,7 @@ const WysiwygNav = ({
|
|
4472
4779
|
}
|
4473
4780
|
),
|
4474
4781
|
/* @__PURE__ */ jsx(
|
4475
|
-
|
4782
|
+
IconButton,
|
4476
4783
|
{
|
4477
4784
|
onClick: () => onActionClick("Link", editorRef, handleTogglePopover),
|
4478
4785
|
label: "Link",
|
@@ -4481,7 +4788,7 @@ const WysiwygNav = ({
|
|
4481
4788
|
}
|
4482
4789
|
),
|
4483
4790
|
/* @__PURE__ */ jsx(
|
4484
|
-
|
4791
|
+
IconButton,
|
4485
4792
|
{
|
4486
4793
|
onClick: () => onActionClick("Quote", editorRef, handleTogglePopover),
|
4487
4794
|
label: "Quote",
|
@@ -4717,7 +5024,9 @@ const useFieldHint = (hint = void 0, attribute) => {
|
|
4717
5024
|
if (!maximum && !minimum) {
|
4718
5025
|
return hint;
|
4719
5026
|
}
|
4720
|
-
const units = !["biginteger", "integer", "number"].includes(
|
5027
|
+
const units = !["biginteger", "integer", "number", "dynamiczone", "component"].includes(
|
5028
|
+
attribute.type
|
5029
|
+
) ? formatMessage(
|
4721
5030
|
{
|
4722
5031
|
id: "content-manager.form.Input.hint.character.unit",
|
4723
5032
|
defaultMessage: "{maxValue, plural, one { character} other { characters}}"
|
@@ -4811,7 +5120,7 @@ const DynamicComponent = ({
|
|
4811
5120
|
/* @__PURE__ */ jsx(
|
4812
5121
|
IconButton,
|
4813
5122
|
{
|
4814
|
-
|
5123
|
+
variant: "ghost",
|
4815
5124
|
label: formatMessage(
|
4816
5125
|
{
|
4817
5126
|
id: getTranslation("components.DynamicZone.delete-label"),
|
@@ -4826,7 +5135,7 @@ const DynamicComponent = ({
|
|
4826
5135
|
/* @__PURE__ */ jsx(
|
4827
5136
|
IconButton,
|
4828
5137
|
{
|
4829
|
-
|
5138
|
+
variant: "ghost",
|
4830
5139
|
onClick: (e) => e.stopPropagation(),
|
4831
5140
|
"data-handler-id": handlerId,
|
4832
5141
|
ref: dragRef,
|
@@ -4887,7 +5196,18 @@ const DynamicComponent = ({
|
|
4887
5196
|
] }),
|
4888
5197
|
/* @__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 }) => {
|
4889
5198
|
const fieldName = `${name2}.${index}.${field.name}`;
|
4890
|
-
return /* @__PURE__ */ jsx(
|
5199
|
+
return /* @__PURE__ */ jsx(
|
5200
|
+
Grid$1.Item,
|
5201
|
+
{
|
5202
|
+
col: size,
|
5203
|
+
s: 12,
|
5204
|
+
xs: 12,
|
5205
|
+
direction: "column",
|
5206
|
+
alignItems: "stretch",
|
5207
|
+
children: /* @__PURE__ */ jsx(MemoizedInputRenderer, { ...field, name: fieldName })
|
5208
|
+
},
|
5209
|
+
fieldName
|
5210
|
+
);
|
4891
5211
|
}) }, rowInd)) }) }) })
|
4892
5212
|
] }) }) })
|
4893
5213
|
] });
|
@@ -5080,7 +5400,7 @@ const DynamicZone = ({
|
|
5080
5400
|
const handleRemoveComponent = (name22, currentIndex) => () => {
|
5081
5401
|
removeFieldRow(name22, currentIndex);
|
5082
5402
|
};
|
5083
|
-
const hasError = error !== void 0
|
5403
|
+
const hasError = error !== void 0;
|
5084
5404
|
const renderButtonLabel = () => {
|
5085
5405
|
if (addComponentIsOpen) {
|
5086
5406
|
return formatMessage({ id: "app.utils.close-label", defaultMessage: "Close" });
|
@@ -5196,4 +5516,4 @@ export {
|
|
5196
5516
|
transformDocument as t,
|
5197
5517
|
useLazyComponents as u
|
5198
5518
|
};
|
5199
|
-
//# sourceMappingURL=Field-
|
5519
|
+
//# sourceMappingURL=Field-CnCKhI1R.mjs.map
|