@strapi/content-manager 0.0.0-experimental.cb311d9fcfbd8e441f790aea232f0a39bdd90e16 → 0.0.0-experimental.cfda358b7f27015e34e739b8742a2962ae2e7aee
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/dist/_chunks/CardDragPreview-C0QyJgRA.js.map +1 -1
- package/dist/_chunks/CardDragPreview-DOxamsuj.mjs.map +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-DL1MHO8i.js → ComponentConfigurationPage-BTR_hQow.js} +5 -6
- package/dist/_chunks/{ComponentConfigurationPage-DL1MHO8i.js.map → ComponentConfigurationPage-BTR_hQow.js.map} +1 -1
- package/dist/_chunks/{ComponentConfigurationPage-D0dyDTwq.mjs → ComponentConfigurationPage-bLQr82ce.mjs} +4 -4
- package/dist/_chunks/{ComponentConfigurationPage-D0dyDTwq.mjs.map → ComponentConfigurationPage-bLQr82ce.mjs.map} +1 -1
- package/dist/_chunks/{ComponentIcon-BXdiCGQp.js → ComponentIcon-CRbtQEUV.js} +2 -3
- package/dist/_chunks/{ComponentIcon-BXdiCGQp.js.map → ComponentIcon-CRbtQEUV.js.map} +1 -1
- package/dist/_chunks/ComponentIcon-u4bIXTFY.mjs.map +1 -1
- package/dist/_chunks/{EditConfigurationPage-13b7S5Cq.mjs → EditConfigurationPage-BhRSnUsL.mjs} +4 -4
- package/dist/_chunks/{EditConfigurationPage-13b7S5Cq.mjs.map → EditConfigurationPage-BhRSnUsL.mjs.map} +1 -1
- package/dist/_chunks/{EditConfigurationPage-CMaOf-A-.js → EditConfigurationPage-z39Wv3E6.js} +5 -6
- package/dist/_chunks/{EditConfigurationPage-CMaOf-A-.js.map → EditConfigurationPage-z39Wv3E6.js.map} +1 -1
- package/dist/_chunks/{EditViewPage-C3tIZ8F5.mjs → EditViewPage-BCjNxNlY.mjs} +63 -12
- package/dist/_chunks/EditViewPage-BCjNxNlY.mjs.map +1 -0
- package/dist/_chunks/{EditViewPage-BSVmMpRd.js → EditViewPage-wujOq90c.js} +63 -13
- package/dist/_chunks/EditViewPage-wujOq90c.js.map +1 -0
- package/dist/_chunks/{Field-DUCVth4C.js → Field-B5QXnctJ.js} +320 -169
- package/dist/_chunks/Field-B5QXnctJ.js.map +1 -0
- package/dist/_chunks/{Field-BvuT8cGL.mjs → Field-Byr3mPTl.mjs} +316 -165
- package/dist/_chunks/Field-Byr3mPTl.mjs.map +1 -0
- package/dist/_chunks/FieldTypeIcon-CMlNO8PE.mjs.map +1 -1
- package/dist/_chunks/FieldTypeIcon-Dnwq_IRF.js.map +1 -1
- package/dist/_chunks/{Form-BZmDNVr9.mjs → Form-BZgvE8C8.mjs} +37 -18
- package/dist/_chunks/Form-BZgvE8C8.mjs.map +1 -0
- package/dist/_chunks/{Form-Cpl4W1ak.js → Form-D7mexvm3.js} +39 -21
- package/dist/_chunks/Form-D7mexvm3.js.map +1 -0
- package/dist/_chunks/{History-Cq_Hrzuu.mjs → History-CqNgxkqK.mjs} +43 -100
- package/dist/_chunks/History-CqNgxkqK.mjs.map +1 -0
- package/dist/_chunks/{History-D4U2YISB.js → History-DYl2A8Z_.js} +42 -100
- package/dist/_chunks/History-DYl2A8Z_.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-Bny6CdWe.js → ListConfigurationPage-BXnu_OoY.js} +19 -9
- package/dist/_chunks/ListConfigurationPage-BXnu_OoY.js.map +1 -0
- package/dist/_chunks/{ListConfigurationPage-W-KQHmBv.mjs → ListConfigurationPage-BbQjzKkQ.mjs} +19 -8
- package/dist/_chunks/ListConfigurationPage-BbQjzKkQ.mjs.map +1 -0
- package/dist/_chunks/{ListViewPage-O8F1pBJo.js → ListViewPage-BtSi8C1l.js} +103 -77
- package/dist/_chunks/ListViewPage-BtSi8C1l.js.map +1 -0
- package/dist/_chunks/{ListViewPage-HBBnJa8K.mjs → ListViewPage-D4ofkbjR.mjs} +99 -72
- package/dist/_chunks/ListViewPage-D4ofkbjR.mjs.map +1 -0
- package/dist/_chunks/{NoContentTypePage-CQWChGPw.js → NoContentTypePage-CitJeOq4.js} +2 -2
- package/dist/_chunks/{NoContentTypePage-CQWChGPw.js.map → NoContentTypePage-CitJeOq4.js.map} +1 -1
- package/dist/_chunks/{NoContentTypePage-B-gIhHWM.mjs → NoContentTypePage-DyUx5mXh.mjs} +2 -2
- package/dist/_chunks/{NoContentTypePage-B-gIhHWM.mjs.map → NoContentTypePage-DyUx5mXh.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-XhOPl8wx.mjs → NoPermissionsPage-DhIiyWkk.mjs} +2 -2
- package/dist/_chunks/{NoPermissionsPage-XhOPl8wx.mjs.map → NoPermissionsPage-DhIiyWkk.mjs.map} +1 -1
- package/dist/_chunks/{NoPermissionsPage-CY46zxnM.js → NoPermissionsPage-DzgWz0M-.js} +2 -2
- package/dist/_chunks/{NoPermissionsPage-CY46zxnM.js.map → NoPermissionsPage-DzgWz0M-.js.map} +1 -1
- package/dist/_chunks/Preview-BaYGJ0nb.mjs +293 -0
- package/dist/_chunks/Preview-BaYGJ0nb.mjs.map +1 -0
- package/dist/_chunks/Preview-DfNx8Ke-.js +311 -0
- package/dist/_chunks/Preview-DfNx8Ke-.js.map +1 -0
- package/dist/_chunks/{Relations-vFZ6Wasg.mjs → Relations-DM2yUTST.mjs} +76 -42
- package/dist/_chunks/Relations-DM2yUTST.mjs.map +1 -0
- package/dist/_chunks/{Relations-C4gGfZRv.js → Relations-DuKCaXrv.js} +76 -43
- package/dist/_chunks/Relations-DuKCaXrv.js.map +1 -0
- package/dist/_chunks/{en-uOUIxfcQ.js → en-BK8Xyl5I.js} +28 -15
- package/dist/_chunks/{en-uOUIxfcQ.js.map → en-BK8Xyl5I.js.map} +1 -1
- package/dist/_chunks/{en-BrCTWlZv.mjs → en-Dtk_ot79.mjs} +28 -15
- package/dist/_chunks/{en-BrCTWlZv.mjs.map → en-Dtk_ot79.mjs.map} +1 -1
- package/dist/_chunks/{es-EUonQTon.js → es-9K52xZIr.js} +2 -2
- package/dist/_chunks/{ja-CcFe8diO.js.map → es-9K52xZIr.js.map} +1 -1
- package/dist/_chunks/{es-CeXiYflN.mjs → es-D34tqjMw.mjs} +2 -2
- package/dist/_chunks/{es-CeXiYflN.mjs.map → es-D34tqjMw.mjs.map} +1 -1
- package/dist/_chunks/{fr-CD9VFbPM.mjs → fr--pg5jUbt.mjs} +13 -3
- package/dist/_chunks/{fr-CD9VFbPM.mjs.map → fr--pg5jUbt.mjs.map} +1 -1
- package/dist/_chunks/{fr-B7kGGg3E.js → fr-B2Kyv8Z9.js} +13 -3
- package/dist/_chunks/{fr-B7kGGg3E.js.map → fr-B2Kyv8Z9.js.map} +1 -1
- package/dist/_chunks/hooks-BAaaKPS_.js.map +1 -1
- package/dist/_chunks/{index-5EMXLEM_.js → index-BUWEmX8m.js} +1320 -996
- package/dist/_chunks/index-BUWEmX8m.js.map +1 -0
- package/dist/_chunks/{index-Dpxg3ctD.mjs → index-DVAIIsOs.mjs} +1338 -1014
- package/dist/_chunks/index-DVAIIsOs.mjs.map +1 -0
- package/dist/_chunks/{ja-CcFe8diO.js → ja-7sfIbjxE.js} +2 -2
- package/dist/_chunks/{es-EUonQTon.js.map → ja-7sfIbjxE.js.map} +1 -1
- package/dist/_chunks/{ja-CtsUxOvk.mjs → ja-BHqhDq4V.mjs} +2 -2
- package/dist/_chunks/{ja-CtsUxOvk.mjs.map → ja-BHqhDq4V.mjs.map} +1 -1
- package/dist/_chunks/{layout-C0INpKap.mjs → layout-Bxsv5mP7.mjs} +9 -8
- package/dist/_chunks/layout-Bxsv5mP7.mjs.map +1 -0
- package/dist/_chunks/{layout-P3eKO1Qy.js → layout-C3fN7Ejz.js} +10 -10
- package/dist/_chunks/layout-C3fN7Ejz.js.map +1 -0
- package/dist/_chunks/{objects-gigeqt7s.js → objects-BcXOv6_9.js} +2 -4
- package/dist/_chunks/{objects-gigeqt7s.js.map → objects-BcXOv6_9.js.map} +1 -1
- package/dist/_chunks/{objects-mKMAmfec.mjs → objects-D6yBsdmx.mjs} +2 -4
- package/dist/_chunks/{objects-mKMAmfec.mjs.map → objects-D6yBsdmx.mjs.map} +1 -1
- package/dist/_chunks/{relations-B1y0K6LE.js → relations-BPZKAoEY.js} +6 -7
- package/dist/_chunks/relations-BPZKAoEY.js.map +1 -0
- package/dist/_chunks/{relations-FBRRBWeO.mjs → relations-o3pPhzY4.mjs} +6 -7
- package/dist/_chunks/relations-o3pPhzY4.mjs.map +1 -0
- 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/_chunks/{useDragAndDrop-J0TUUbR6.js → useDragAndDrop-BMtgCYzL.js} +5 -9
- package/dist/_chunks/{useDragAndDrop-J0TUUbR6.js.map → useDragAndDrop-BMtgCYzL.js.map} +1 -1
- package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs → useDragAndDrop-DJ6jqvZN.mjs} +4 -7
- package/dist/_chunks/{useDragAndDrop-DdHgKsqq.mjs.map → useDragAndDrop-DJ6jqvZN.mjs.map} +1 -1
- package/dist/admin/index.js +2 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +5 -4
- package/dist/admin/src/content-manager.d.ts +3 -2
- package/dist/admin/src/exports.d.ts +1 -1
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/hooks/useDocument.d.ts +32 -1
- package/dist/admin/src/pages/EditView/EditViewPage.d.ts +9 -1
- package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -1
- package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +2 -2
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +7 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/utils/prismLanguages.d.ts +49 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/constants.d.ts +1 -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 +11 -11
- package/dist/admin/src/preview/components/PreviewContent.d.ts +2 -0
- package/dist/admin/src/preview/components/PreviewHeader.d.ts +2 -0
- package/dist/admin/src/preview/components/PreviewSidePanel.d.ts +3 -0
- package/dist/admin/src/preview/index.d.ts +4 -0
- package/dist/admin/src/preview/pages/Preview.d.ts +11 -0
- package/dist/admin/src/preview/routes.d.ts +3 -0
- package/dist/admin/src/preview/services/preview.d.ts +3 -0
- package/dist/admin/src/router.d.ts +1 -1
- 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 -20
- 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 +482 -219
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +482 -218
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/relations.d.ts.map +1 -1
- package/dist/server/src/controllers/utils/metadata.d.ts +15 -1
- package/dist/server/src/controllers/utils/metadata.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 +3 -3
- package/dist/server/src/history/services/utils.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +4 -4
- package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
- package/dist/server/src/preview/controllers/index.d.ts +2 -0
- package/dist/server/src/preview/controllers/index.d.ts.map +1 -0
- package/dist/server/src/preview/controllers/preview.d.ts +13 -0
- package/dist/server/src/preview/controllers/preview.d.ts.map +1 -0
- package/dist/server/src/preview/controllers/validation/preview.d.ts +6 -0
- package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -0
- package/dist/server/src/preview/index.d.ts +4 -0
- package/dist/server/src/preview/index.d.ts.map +1 -0
- package/dist/server/src/preview/routes/index.d.ts +8 -0
- package/dist/server/src/preview/routes/index.d.ts.map +1 -0
- package/dist/server/src/preview/routes/preview.d.ts +4 -0
- package/dist/server/src/preview/routes/preview.d.ts.map +1 -0
- package/dist/server/src/preview/services/index.d.ts +16 -0
- package/dist/server/src/preview/services/index.d.ts.map +1 -0
- package/dist/server/src/preview/services/preview-config.d.ts +32 -0
- package/dist/server/src/preview/services/preview-config.d.ts.map +1 -0
- package/dist/server/src/preview/services/preview.d.ts +12 -0
- package/dist/server/src/preview/services/preview.d.ts.map +1 -0
- package/dist/server/src/preview/utils.d.ts +19 -0
- package/dist/server/src/preview/utils.d.ts.map +1 -0
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/index.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 +8 -8
- package/dist/server/src/services/document-metadata.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +4 -4
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/permission-checker.d.ts.map +1 -1
- package/dist/server/src/services/utils/configuration/index.d.ts +2 -2
- package/dist/server/src/services/utils/configuration/layouts.d.ts +2 -2
- package/dist/server/src/utils/index.d.ts +2 -0
- package/dist/server/src/utils/index.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/dist/shared/contracts/index.d.ts +1 -0
- package/dist/shared/contracts/index.d.ts.map +1 -1
- package/dist/shared/contracts/preview.d.ts +27 -0
- package/dist/shared/contracts/preview.d.ts.map +1 -0
- package/dist/shared/index.js +4 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/index.mjs +4 -0
- package/dist/shared/index.mjs.map +1 -1
- package/package.json +17 -15
- package/dist/_chunks/EditViewPage-BSVmMpRd.js.map +0 -1
- package/dist/_chunks/EditViewPage-C3tIZ8F5.mjs.map +0 -1
- package/dist/_chunks/Field-BvuT8cGL.mjs.map +0 -1
- package/dist/_chunks/Field-DUCVth4C.js.map +0 -1
- package/dist/_chunks/Form-BZmDNVr9.mjs.map +0 -1
- package/dist/_chunks/Form-Cpl4W1ak.js.map +0 -1
- package/dist/_chunks/History-Cq_Hrzuu.mjs.map +0 -1
- package/dist/_chunks/History-D4U2YISB.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-Bny6CdWe.js.map +0 -1
- package/dist/_chunks/ListConfigurationPage-W-KQHmBv.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-HBBnJa8K.mjs.map +0 -1
- package/dist/_chunks/ListViewPage-O8F1pBJo.js.map +0 -1
- package/dist/_chunks/Relations-C4gGfZRv.js.map +0 -1
- package/dist/_chunks/Relations-vFZ6Wasg.mjs.map +0 -1
- package/dist/_chunks/index-5EMXLEM_.js.map +0 -1
- package/dist/_chunks/index-Dpxg3ctD.mjs.map +0 -1
- package/dist/_chunks/layout-C0INpKap.mjs.map +0 -1
- package/dist/_chunks/layout-P3eKO1Qy.js.map +0 -1
- package/dist/_chunks/relations-B1y0K6LE.js.map +0 -1
- package/dist/_chunks/relations-FBRRBWeO.mjs.map +0 -1
- package/dist/_chunks/usePrev-B9w_-eYc.js.map +0 -1
- package/dist/_chunks/usePrev-DH6iah0A.mjs +0 -16
- package/dist/_chunks/usePrev-DH6iah0A.mjs.map +0 -1
- package/strapi-server.js +0 -3
@@ -5,19 +5,70 @@ const strapiAdmin = require("@strapi/admin/strapi-admin");
|
|
5
5
|
const designSystem = require("@strapi/design-system");
|
6
6
|
const pipe$1 = require("lodash/fp/pipe");
|
7
7
|
const reactIntl = require("react-intl");
|
8
|
-
const index = require("./index-
|
8
|
+
const index = require("./index-BUWEmX8m.js");
|
9
9
|
const fractionalIndexing = require("fractional-indexing");
|
10
|
-
const Relations = require("./Relations-
|
10
|
+
const Relations = require("./Relations-DuKCaXrv.js");
|
11
11
|
const Icons = require("@strapi/icons");
|
12
12
|
const styledComponents = require("styled-components");
|
13
|
-
const ComponentIcon = require("./ComponentIcon-
|
13
|
+
const ComponentIcon = require("./ComponentIcon-CRbtQEUV.js");
|
14
14
|
const reactDndHtml5Backend = require("react-dnd-html5-backend");
|
15
|
-
const useDragAndDrop = require("./useDragAndDrop-
|
16
|
-
const objects = require("./objects-
|
15
|
+
const useDragAndDrop = require("./useDragAndDrop-BMtgCYzL.js");
|
16
|
+
const objects = require("./objects-BcXOv6_9.js");
|
17
17
|
const slate = require("slate");
|
18
18
|
const slateHistory = require("slate-history");
|
19
19
|
const slateReact = require("slate-react");
|
20
|
-
const
|
20
|
+
const Prism = require("prismjs");
|
21
|
+
require("prismjs/themes/prism-solarizedlight.css");
|
22
|
+
require("prismjs/components/prism-asmatmel");
|
23
|
+
require("prismjs/components/prism-bash");
|
24
|
+
require("prismjs/components/prism-basic");
|
25
|
+
require("prismjs/components/prism-c");
|
26
|
+
require("prismjs/components/prism-clojure");
|
27
|
+
require("prismjs/components/prism-cobol");
|
28
|
+
require("prismjs/components/prism-cpp");
|
29
|
+
require("prismjs/components/prism-csharp");
|
30
|
+
require("prismjs/components/prism-dart");
|
31
|
+
require("prismjs/components/prism-docker");
|
32
|
+
require("prismjs/components/prism-elixir");
|
33
|
+
require("prismjs/components/prism-erlang");
|
34
|
+
require("prismjs/components/prism-fortran");
|
35
|
+
require("prismjs/components/prism-fsharp");
|
36
|
+
require("prismjs/components/prism-go");
|
37
|
+
require("prismjs/components/prism-graphql");
|
38
|
+
require("prismjs/components/prism-groovy");
|
39
|
+
require("prismjs/components/prism-haskell");
|
40
|
+
require("prismjs/components/prism-haxe");
|
41
|
+
require("prismjs/components/prism-ini");
|
42
|
+
require("prismjs/components/prism-java");
|
43
|
+
require("prismjs/components/prism-javascript");
|
44
|
+
require("prismjs/components/prism-jsx");
|
45
|
+
require("prismjs/components/prism-json");
|
46
|
+
require("prismjs/components/prism-julia");
|
47
|
+
require("prismjs/components/prism-kotlin");
|
48
|
+
require("prismjs/components/prism-latex");
|
49
|
+
require("prismjs/components/prism-lua");
|
50
|
+
require("prismjs/components/prism-markdown");
|
51
|
+
require("prismjs/components/prism-matlab");
|
52
|
+
require("prismjs/components/prism-makefile");
|
53
|
+
require("prismjs/components/prism-objectivec");
|
54
|
+
require("prismjs/components/prism-perl");
|
55
|
+
require("prismjs/components/prism-php");
|
56
|
+
require("prismjs/components/prism-powershell");
|
57
|
+
require("prismjs/components/prism-python");
|
58
|
+
require("prismjs/components/prism-r");
|
59
|
+
require("prismjs/components/prism-ruby");
|
60
|
+
require("prismjs/components/prism-rust");
|
61
|
+
require("prismjs/components/prism-sas");
|
62
|
+
require("prismjs/components/prism-scala");
|
63
|
+
require("prismjs/components/prism-scheme");
|
64
|
+
require("prismjs/components/prism-sql");
|
65
|
+
require("prismjs/components/prism-stata");
|
66
|
+
require("prismjs/components/prism-swift");
|
67
|
+
require("prismjs/components/prism-typescript");
|
68
|
+
require("prismjs/components/prism-tsx");
|
69
|
+
require("prismjs/components/prism-vbnet");
|
70
|
+
require("prismjs/components/prism-yaml");
|
71
|
+
const useDebounce = require("./useDebounce-CtcjDB3L.js");
|
21
72
|
const Toolbar = require("@radix-ui/react-toolbar");
|
22
73
|
const reactRouterDom = require("react-router-dom");
|
23
74
|
const CodeMirror = require("codemirror5");
|
@@ -37,8 +88,7 @@ require("highlight.js/styles/solarized-dark.css");
|
|
37
88
|
require("codemirror5/addon/display/placeholder");
|
38
89
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
39
90
|
function _interopNamespace(e) {
|
40
|
-
if (e && e.__esModule)
|
41
|
-
return e;
|
91
|
+
if (e && e.__esModule) return e;
|
42
92
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
43
93
|
if (e) {
|
44
94
|
for (const k in e) {
|
@@ -56,6 +106,7 @@ function _interopNamespace(e) {
|
|
56
106
|
}
|
57
107
|
const React__namespace = /* @__PURE__ */ _interopNamespace(React);
|
58
108
|
const pipe__default = /* @__PURE__ */ _interopDefault(pipe$1);
|
109
|
+
const Prism__namespace = /* @__PURE__ */ _interopNamespace(Prism);
|
59
110
|
const Toolbar__namespace = /* @__PURE__ */ _interopNamespace(Toolbar);
|
60
111
|
const CodeMirror__default = /* @__PURE__ */ _interopDefault(CodeMirror);
|
61
112
|
const sanitizeHtml__default = /* @__PURE__ */ _interopDefault(sanitizeHtml);
|
@@ -197,7 +248,8 @@ const useLazyComponents = (componentUids = []) => {
|
|
197
248
|
const codeLanguages = [
|
198
249
|
{
|
199
250
|
value: "asm",
|
200
|
-
label: "Assembly"
|
251
|
+
label: "Assembly",
|
252
|
+
decorate: "asmatmel"
|
201
253
|
},
|
202
254
|
{
|
203
255
|
value: "bash",
|
@@ -233,7 +285,8 @@ const codeLanguages = [
|
|
233
285
|
},
|
234
286
|
{
|
235
287
|
value: "dockerfile",
|
236
|
-
label: "Dockerfile"
|
288
|
+
label: "Dockerfile",
|
289
|
+
decorate: "docker"
|
237
290
|
},
|
238
291
|
{
|
239
292
|
value: "elixir",
|
@@ -389,7 +442,8 @@ const codeLanguages = [
|
|
389
442
|
},
|
390
443
|
{
|
391
444
|
value: "typescript",
|
392
|
-
label: "TypeScript"
|
445
|
+
label: "TypeScript",
|
446
|
+
decorate: "ts"
|
393
447
|
},
|
394
448
|
{
|
395
449
|
value: "tsx",
|
@@ -405,7 +459,8 @@ const codeLanguages = [
|
|
405
459
|
},
|
406
460
|
{
|
407
461
|
value: "yaml",
|
408
|
-
label: "YAML"
|
462
|
+
label: "YAML",
|
463
|
+
decorate: "yml"
|
409
464
|
}
|
410
465
|
];
|
411
466
|
const baseHandleConvert = (editor, attributesToSet) => {
|
@@ -471,6 +526,29 @@ const pressEnterTwiceToExit = (editor) => {
|
|
471
526
|
});
|
472
527
|
}
|
473
528
|
};
|
529
|
+
const decorateCode = ([node, path]) => {
|
530
|
+
const ranges = [];
|
531
|
+
if (!slate.Element.isElement(node) || node.type !== "code") return ranges;
|
532
|
+
const text = slate.Node.string(node);
|
533
|
+
const language = codeLanguages.find((lang) => lang.value === node.language);
|
534
|
+
const decorateKey = language?.decorate ?? language?.value;
|
535
|
+
const selectedLanguage = Prism__namespace.languages[decorateKey || "plaintext"];
|
536
|
+
const tokens = Prism__namespace.tokenize(text, selectedLanguage);
|
537
|
+
let start = 0;
|
538
|
+
for (const token of tokens) {
|
539
|
+
const length = token.length;
|
540
|
+
const end = start + length;
|
541
|
+
if (typeof token !== "string") {
|
542
|
+
ranges.push({
|
543
|
+
anchor: { path, offset: start },
|
544
|
+
focus: { path, offset: end },
|
545
|
+
className: `token ${token.type}`
|
546
|
+
});
|
547
|
+
}
|
548
|
+
start = end;
|
549
|
+
}
|
550
|
+
return ranges;
|
551
|
+
};
|
474
552
|
const CodeBlock = styledComponents.styled.pre`
|
475
553
|
border-radius: ${({ theme }) => theme.borderRadius};
|
476
554
|
background-color: ${({ theme }) => theme.colors.neutral100};
|
@@ -542,7 +620,7 @@ const CodeEditor = (props) => {
|
|
542
620
|
const codeBlocks = {
|
543
621
|
code: {
|
544
622
|
renderElement: (props) => /* @__PURE__ */ jsxRuntime.jsx(CodeEditor, { ...props }),
|
545
|
-
icon: Icons.
|
623
|
+
icon: Icons.CodeBlock,
|
546
624
|
label: {
|
547
625
|
id: "components.Blocks.blocks.code",
|
548
626
|
defaultMessage: "Code block"
|
@@ -731,8 +809,7 @@ const ImageDialog = () => {
|
|
731
809
|
const [isOpen, setIsOpen] = React__namespace.useState(true);
|
732
810
|
const { editor } = useBlocksEditorContext("ImageDialog");
|
733
811
|
const components = strapiAdmin.useStrapiApp("ImageDialog", (state) => state.components);
|
734
|
-
if (!components || !isOpen)
|
735
|
-
return null;
|
812
|
+
if (!components || !isOpen) return null;
|
736
813
|
const MediaLibraryDialog = components["media-library"];
|
737
814
|
const insertImages = (images) => {
|
738
815
|
slate.Transforms.unwrapNodes(editor, {
|
@@ -741,14 +818,12 @@ const ImageDialog = () => {
|
|
741
818
|
});
|
742
819
|
const nodeEntryBeingReplaced = slate.Editor.above(editor, {
|
743
820
|
match(node) {
|
744
|
-
if (slate.Editor.isEditor(node))
|
745
|
-
return false;
|
821
|
+
if (slate.Editor.isEditor(node)) return false;
|
746
822
|
const isInlineNode = ["text", "link"].includes(node.type);
|
747
823
|
return !isInlineNode;
|
748
824
|
}
|
749
825
|
});
|
750
|
-
if (!nodeEntryBeingReplaced)
|
751
|
-
return;
|
826
|
+
if (!nodeEntryBeingReplaced) return;
|
752
827
|
const [, pathToInsert] = nodeEntryBeingReplaced;
|
753
828
|
slate.Transforms.removeNodes(editor);
|
754
829
|
const nodesToInsert = images.map((image) => {
|
@@ -768,7 +843,7 @@ const ImageDialog = () => {
|
|
768
843
|
const nodeImage = {
|
769
844
|
...expectedImage,
|
770
845
|
alternativeText: expectedImage.alternativeText || expectedImage.name,
|
771
|
-
url:
|
846
|
+
url: useDebounce.prefixFileUrlWithBackendUrl(image.url)
|
772
847
|
};
|
773
848
|
return nodeImage;
|
774
849
|
});
|
@@ -926,8 +1001,7 @@ const LinkContent = React__namespace.forwardRef(
|
|
926
1001
|
slateReact.ReactEditor.focus(editor);
|
927
1002
|
};
|
928
1003
|
React__namespace.useEffect(() => {
|
929
|
-
if (popoverOpen)
|
930
|
-
linkInputRef.current?.focus();
|
1004
|
+
if (popoverOpen) linkInputRef.current?.focus();
|
931
1005
|
}, [popoverOpen]);
|
932
1006
|
const inputNotDirty = !linkText || !linkUrl || link.url && link.url === linkUrl && elementText && elementText === linkText;
|
933
1007
|
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Popover.Root, { open: popoverOpen, children: [
|
@@ -997,11 +1071,11 @@ const LinkContent = React__namespace.forwardRef(
|
|
997
1071
|
),
|
998
1072
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
|
999
1073
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick: handleClose, children: formatMessage({
|
1000
|
-
id: "
|
1074
|
+
id: "global.cancel",
|
1001
1075
|
defaultMessage: "Cancel"
|
1002
1076
|
}) }),
|
1003
1077
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { disabled: Boolean(inputNotDirty) || isSaveDisabled, onClick: handleSave, children: formatMessage({
|
1004
|
-
id: "
|
1078
|
+
id: "global.save",
|
1005
1079
|
defaultMessage: "Save"
|
1006
1080
|
}) })
|
1007
1081
|
] })
|
@@ -1082,8 +1156,7 @@ const isText$1 = (node) => {
|
|
1082
1156
|
return slate.Node.isNode(node) && !slate.Editor.isEditor(node) && node.type === "text";
|
1083
1157
|
};
|
1084
1158
|
const handleBackspaceKeyOnList = (editor, event) => {
|
1085
|
-
if (!editor.selection)
|
1086
|
-
return;
|
1159
|
+
if (!editor.selection) return;
|
1087
1160
|
const [currentListItem, currentListItemPath] = slate.Editor.parent(editor, editor.selection.anchor);
|
1088
1161
|
const [currentList, currentListPath] = slate.Editor.parent(editor, currentListItemPath);
|
1089
1162
|
const isListEmpty = currentList.children.length === 1 && isText$1(currentListItem.children[0]) && currentListItem.children[0].text === "";
|
@@ -1192,8 +1265,7 @@ const handleEnterKeyOnList = (editor) => {
|
|
1192
1265
|
};
|
1193
1266
|
const handleConvertToList = (editor, format) => {
|
1194
1267
|
const convertedPath = baseHandleConvert(editor, { type: "list-item" });
|
1195
|
-
if (!convertedPath)
|
1196
|
-
return;
|
1268
|
+
if (!convertedPath) return;
|
1197
1269
|
slate.Transforms.wrapNodes(editor, { type: "list", format, children: [] }, { at: convertedPath });
|
1198
1270
|
};
|
1199
1271
|
const handleTabOnList = (editor) => {
|
@@ -1205,8 +1277,7 @@ const handleTabOnList = (editor) => {
|
|
1205
1277
|
}
|
1206
1278
|
const [currentListItem, currentListItemPath] = currentListItemEntry;
|
1207
1279
|
const [currentList] = slate.Editor.parent(editor, currentListItemPath);
|
1208
|
-
if (currentListItem === currentList.children[0])
|
1209
|
-
return;
|
1280
|
+
if (currentListItem === currentList.children[0]) return;
|
1210
1281
|
const currentListItemIndex = currentList.children.findIndex((item) => item === currentListItem);
|
1211
1282
|
const previousNode = currentList.children[currentListItemIndex - 1];
|
1212
1283
|
if (previousNode.type === "list") {
|
@@ -1441,7 +1512,7 @@ const ToolbarButton = ({
|
|
1441
1512
|
width: 7,
|
1442
1513
|
height: 7,
|
1443
1514
|
hasRadius: true,
|
1444
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Icon, {
|
1515
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { fill: disabled ? "neutral300" : enabledColor })
|
1445
1516
|
}
|
1446
1517
|
)
|
1447
1518
|
}
|
@@ -1573,8 +1644,7 @@ const isListNode = (node) => {
|
|
1573
1644
|
const ListButton = ({ block, format }) => {
|
1574
1645
|
const { editor, disabled, blocks } = useBlocksEditorContext("ListButton");
|
1575
1646
|
const isListActive = () => {
|
1576
|
-
if (!editor.selection)
|
1577
|
-
return false;
|
1647
|
+
if (!editor.selection) return false;
|
1578
1648
|
const currentListEntry = slate.Editor.above(editor, {
|
1579
1649
|
match: (node) => !slate.Editor.isEditor(node) && node.type === "list",
|
1580
1650
|
at: editor.selection.anchor
|
@@ -1648,8 +1718,7 @@ const LinkButton = ({ disabled }) => {
|
|
1648
1718
|
const { editor } = useBlocksEditorContext("LinkButton");
|
1649
1719
|
const isLinkActive = () => {
|
1650
1720
|
const { selection } = editor;
|
1651
|
-
if (!selection)
|
1652
|
-
return false;
|
1721
|
+
if (!selection) return false;
|
1653
1722
|
const [match] = Array.from(
|
1654
1723
|
slate.Editor.nodes(editor, {
|
1655
1724
|
at: slate.Editor.unhangRange(editor, selection),
|
@@ -1783,6 +1852,7 @@ const DragItem = styledComponents.styled(designSystem.Flex)`
|
|
1783
1852
|
}
|
1784
1853
|
`;
|
1785
1854
|
const DragIconButton = styledComponents.styled(designSystem.IconButton)`
|
1855
|
+
user-select: none;
|
1786
1856
|
display: flex;
|
1787
1857
|
align-items: center;
|
1788
1858
|
justify-content: center;
|
@@ -1854,8 +1924,7 @@ const DragAndDropElement = ({
|
|
1854
1924
|
displayedValue: children
|
1855
1925
|
},
|
1856
1926
|
onDropItem(currentIndex, newIndex) {
|
1857
|
-
if (newIndex)
|
1858
|
-
handleMoveBlock(newIndex, currentIndex);
|
1927
|
+
if (newIndex) handleMoveBlock(newIndex, currentIndex);
|
1859
1928
|
}
|
1860
1929
|
});
|
1861
1930
|
const composedBoxRefs = designSystem.useComposedRefs(blockRef, dropRef);
|
@@ -1911,6 +1980,7 @@ const DragAndDropElement = ({
|
|
1911
1980
|
DragIconButton,
|
1912
1981
|
{
|
1913
1982
|
tag: "div",
|
1983
|
+
contentEditable: false,
|
1914
1984
|
role: "button",
|
1915
1985
|
tabIndex: 0,
|
1916
1986
|
withTooltip: false,
|
@@ -1960,7 +2030,7 @@ const baseRenderLeaf = (props, modifiers2) => {
|
|
1960
2030
|
}
|
1961
2031
|
return currentChildren;
|
1962
2032
|
}, props.children);
|
1963
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { ...props.attributes, children: wrappedChildren });
|
2033
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { ...props.attributes, className: props.leaf.className, children: wrappedChildren });
|
1964
2034
|
};
|
1965
2035
|
const baseRenderElement = ({
|
1966
2036
|
props,
|
@@ -1998,8 +2068,7 @@ const BlocksContent = ({ placeholder, ariaLabelId }) => {
|
|
1998
2068
|
[modifiers2]
|
1999
2069
|
);
|
2000
2070
|
const handleMoveBlocks = (editor2, event) => {
|
2001
|
-
if (!editor2.selection)
|
2002
|
-
return;
|
2071
|
+
if (!editor2.selection) return;
|
2003
2072
|
const start = slate.Range.start(editor2.selection);
|
2004
2073
|
const currentIndex = [start.path[0]];
|
2005
2074
|
let newIndexPosition = 0;
|
@@ -2136,8 +2205,7 @@ const BlocksContent = ({ placeholder, ariaLabelId }) => {
|
|
2136
2205
|
}
|
2137
2206
|
};
|
2138
2207
|
const handleScrollSelectionIntoView = () => {
|
2139
|
-
if (!editor.selection)
|
2140
|
-
return;
|
2208
|
+
if (!editor.selection) return;
|
2141
2209
|
const domRange = slateReact.ReactEditor.toDOMRange(editor, editor.selection);
|
2142
2210
|
const domRect = domRange.getBoundingClientRect();
|
2143
2211
|
const blocksInput = blocksRef.current;
|
@@ -2175,6 +2243,7 @@ const BlocksContent = ({ placeholder, ariaLabelId }) => {
|
|
2175
2243
|
readOnly: disabled,
|
2176
2244
|
placeholder,
|
2177
2245
|
isExpandedMode,
|
2246
|
+
decorate: decorateCode,
|
2178
2247
|
renderElement,
|
2179
2248
|
renderLeaf,
|
2180
2249
|
onKeyDown: handleKeyDown,
|
@@ -2331,8 +2400,7 @@ const InlineCode = styledComponents.styled.code`
|
|
2331
2400
|
`;
|
2332
2401
|
const baseCheckIsActive = (editor, name2) => {
|
2333
2402
|
const marks = slate.Editor.marks(editor);
|
2334
|
-
if (!marks)
|
2335
|
-
return false;
|
2403
|
+
if (!marks) return false;
|
2336
2404
|
return Boolean(marks[name2]);
|
2337
2405
|
};
|
2338
2406
|
const baseHandleToggle = (editor, name2) => {
|
@@ -2656,7 +2724,7 @@ const Initializer = ({ disabled, name: name2, onClick }) => {
|
|
2656
2724
|
designSystem.Box,
|
2657
2725
|
{
|
2658
2726
|
tag: "button",
|
2659
|
-
background: "neutral100",
|
2727
|
+
background: disabled ? "neutral150" : "neutral100",
|
2660
2728
|
borderColor: field.error ? "danger600" : "neutral200",
|
2661
2729
|
hasRadius: true,
|
2662
2730
|
disabled,
|
@@ -2664,32 +2732,32 @@ const Initializer = ({ disabled, name: name2, onClick }) => {
|
|
2664
2732
|
paddingTop: 9,
|
2665
2733
|
paddingBottom: 9,
|
2666
2734
|
type: "button",
|
2735
|
+
style: { cursor: disabled ? "not-allowed" : "pointer" },
|
2667
2736
|
children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 2, children: [
|
2668
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
2669
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
2670
|
-
|
2671
|
-
|
2672
|
-
|
2737
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", color: disabled ? "neutral500" : "primary600", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.PlusCircle, { width: "3.2rem", height: "3.2rem" }) }),
|
2738
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
2739
|
+
designSystem.Typography,
|
2740
|
+
{
|
2741
|
+
textColor: disabled ? "neutral600" : "primary600",
|
2742
|
+
variant: "pi",
|
2743
|
+
fontWeight: "bold",
|
2744
|
+
children: formatMessage({
|
2745
|
+
id: index.getTranslation("components.empty-repeatable"),
|
2746
|
+
defaultMessage: "No entry yet. Click to add one."
|
2747
|
+
})
|
2748
|
+
}
|
2749
|
+
) })
|
2673
2750
|
] })
|
2674
2751
|
}
|
2675
2752
|
) });
|
2676
2753
|
};
|
2677
|
-
const CircleIcon = styledComponents.styled(Icons.PlusCircle)`
|
2678
|
-
width: 2.4rem;
|
2679
|
-
height: 2.4rem;
|
2680
|
-
> circle {
|
2681
|
-
fill: ${({ theme }) => theme.colors.primary200};
|
2682
|
-
}
|
2683
|
-
> path {
|
2684
|
-
fill: ${({ theme }) => theme.colors.primary600};
|
2685
|
-
}
|
2686
|
-
`;
|
2687
2754
|
const NonRepeatableComponent = ({
|
2688
2755
|
attribute,
|
2689
2756
|
name: name2,
|
2690
2757
|
children,
|
2691
2758
|
layout
|
2692
2759
|
}) => {
|
2760
|
+
const { formatMessage } = reactIntl.useIntl();
|
2693
2761
|
const { value } = strapiAdmin.useField(name2);
|
2694
2762
|
const level = Relations.useComponent("NonRepeatableComponent", (state) => state.level);
|
2695
2763
|
const isNested = level > 0;
|
@@ -2706,7 +2774,22 @@ const NonRepeatableComponent = ({
|
|
2706
2774
|
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children: layout.map((row, index2) => {
|
2707
2775
|
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
2708
2776
|
const completeFieldName = `${name2}.${field.name}`;
|
2709
|
-
|
2777
|
+
const translatedLabel = formatMessage({
|
2778
|
+
id: `content-manager.components.${attribute.component}.${field.name}`,
|
2779
|
+
defaultMessage: field.label
|
2780
|
+
});
|
2781
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
2782
|
+
designSystem.Grid.Item,
|
2783
|
+
{
|
2784
|
+
col: size,
|
2785
|
+
s: 12,
|
2786
|
+
xs: 12,
|
2787
|
+
direction: "column",
|
2788
|
+
alignItems: "stretch",
|
2789
|
+
children: children({ ...field, label: translatedLabel, name: completeFieldName })
|
2790
|
+
},
|
2791
|
+
completeFieldName
|
2792
|
+
);
|
2710
2793
|
}) }, index2);
|
2711
2794
|
}) })
|
2712
2795
|
}
|
@@ -2725,13 +2808,34 @@ const RepeatableComponent = ({
|
|
2725
2808
|
const { search: searchString } = reactRouterDom.useLocation();
|
2726
2809
|
const search = React__namespace.useMemo(() => new URLSearchParams(searchString), [searchString]);
|
2727
2810
|
const { components } = index.useDoc();
|
2728
|
-
const {
|
2811
|
+
const {
|
2812
|
+
value = [],
|
2813
|
+
error,
|
2814
|
+
rawError
|
2815
|
+
} = strapiAdmin.useField(name2);
|
2729
2816
|
const addFieldRow = strapiAdmin.useForm("RepeatableComponent", (state) => state.addFieldRow);
|
2730
2817
|
const moveFieldRow = strapiAdmin.useForm("RepeatableComponent", (state) => state.moveFieldRow);
|
2731
2818
|
const removeFieldRow = strapiAdmin.useForm("RepeatableComponent", (state) => state.removeFieldRow);
|
2732
2819
|
const { max = Infinity } = attribute;
|
2733
2820
|
const [collapseToOpen, setCollapseToOpen] = React__namespace.useState("");
|
2734
2821
|
const [liveText, setLiveText] = React__namespace.useState("");
|
2822
|
+
React__namespace.useEffect(() => {
|
2823
|
+
const hasNestedErrors = rawError && Array.isArray(rawError) && rawError.length > 0;
|
2824
|
+
const hasNestedValue = value && Array.isArray(value) && value.length > 0;
|
2825
|
+
if (hasNestedErrors && hasNestedValue) {
|
2826
|
+
const errorOpenItems = rawError.map((_, idx) => {
|
2827
|
+
return value[idx] ? value[idx].__temp_key__ : null;
|
2828
|
+
}).filter((value2) => !!value2);
|
2829
|
+
if (errorOpenItems && errorOpenItems.length > 0) {
|
2830
|
+
setCollapseToOpen((collapseToOpen2) => {
|
2831
|
+
if (!errorOpenItems.includes(collapseToOpen2)) {
|
2832
|
+
return errorOpenItems[0];
|
2833
|
+
}
|
2834
|
+
return collapseToOpen2;
|
2835
|
+
});
|
2836
|
+
}
|
2837
|
+
}
|
2838
|
+
}, [rawError, value]);
|
2735
2839
|
const componentTmpKeyWithFocussedField = React__namespace.useMemo(() => {
|
2736
2840
|
if (search.has("field")) {
|
2737
2841
|
const fieldParam = search.get("field");
|
@@ -2746,7 +2850,7 @@ const RepeatableComponent = ({
|
|
2746
2850
|
}
|
2747
2851
|
return void 0;
|
2748
2852
|
}, [search, name2, value]);
|
2749
|
-
const prevValue =
|
2853
|
+
const prevValue = useDebounce.usePrev(value);
|
2750
2854
|
React__namespace.useEffect(() => {
|
2751
2855
|
if (prevValue && prevValue.length < value.length) {
|
2752
2856
|
setCollapseToOpen(value[value.length - 1].__temp_key__);
|
@@ -2884,7 +2988,26 @@ const RepeatableComponent = ({
|
|
2884
2988
|
children: layout.map((row, index22) => {
|
2885
2989
|
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
2886
2990
|
const completeFieldName = `${nameWithIndex}.${field.name}`;
|
2887
|
-
|
2991
|
+
const translatedLabel = formatMessage({
|
2992
|
+
id: `content-manager.components.${attribute.component}.${field.name}`,
|
2993
|
+
defaultMessage: field.label
|
2994
|
+
});
|
2995
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
2996
|
+
designSystem.Grid.Item,
|
2997
|
+
{
|
2998
|
+
col: size,
|
2999
|
+
s: 12,
|
3000
|
+
xs: 12,
|
3001
|
+
direction: "column",
|
3002
|
+
alignItems: "stretch",
|
3003
|
+
children: children({
|
3004
|
+
...field,
|
3005
|
+
label: translatedLabel,
|
3006
|
+
name: completeFieldName
|
3007
|
+
})
|
3008
|
+
},
|
3009
|
+
completeFieldName
|
3010
|
+
);
|
2888
3011
|
}) }, index22);
|
2889
3012
|
})
|
2890
3013
|
}
|
@@ -2979,7 +3102,7 @@ const Component = ({
|
|
2979
3102
|
/* @__PURE__ */ jsxRuntime.jsx(
|
2980
3103
|
designSystem.IconButton,
|
2981
3104
|
{
|
2982
|
-
|
3105
|
+
variant: "ghost",
|
2983
3106
|
onClick: onDeleteComponent,
|
2984
3107
|
label: formatMessage({
|
2985
3108
|
id: index.getTranslation("containers.Edit.delete"),
|
@@ -2992,7 +3115,7 @@ const Component = ({
|
|
2992
3115
|
designSystem.IconButton,
|
2993
3116
|
{
|
2994
3117
|
ref: composedAccordionRefs,
|
2995
|
-
|
3118
|
+
variant: "ghost",
|
2996
3119
|
onClick: (e) => e.stopPropagation(),
|
2997
3120
|
"data-handler-id": handlerId,
|
2998
3121
|
label: formatMessage({
|
@@ -3062,7 +3185,7 @@ const ComponentInput = ({
|
|
3062
3185
|
id: index.getTranslation("components.reset-entry"),
|
3063
3186
|
defaultMessage: "Reset Entry"
|
3064
3187
|
}),
|
3065
|
-
|
3188
|
+
variant: "ghost",
|
3066
3189
|
onClick: () => {
|
3067
3190
|
field.onChange(name2, null);
|
3068
3191
|
},
|
@@ -3091,11 +3214,8 @@ const AddComponentButton = ({
|
|
3091
3214
|
onClick,
|
3092
3215
|
disabled: isDisabled,
|
3093
3216
|
background: "neutral0",
|
3094
|
-
paddingTop: 3,
|
3095
|
-
paddingBottom: 3,
|
3096
|
-
paddingLeft: 4,
|
3097
|
-
paddingRight: 4,
|
3098
3217
|
style: { cursor: isDisabled ? "not-allowed" : "pointer" },
|
3218
|
+
variant: "tertiary",
|
3099
3219
|
children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { tag: "span", gap: 2, children: [
|
3100
3220
|
/* @__PURE__ */ jsxRuntime.jsx(StyledAddIcon, { "aria-hidden": true, $isOpen: isOpen, $hasError: hasError && !isOpen }),
|
3101
3221
|
/* @__PURE__ */ jsxRuntime.jsx(
|
@@ -3124,10 +3244,11 @@ const StyledAddIcon = styledComponents.styled(Icons.PlusCircle)`
|
|
3124
3244
|
}
|
3125
3245
|
`;
|
3126
3246
|
const AddComponentTitle = styledComponents.styled(designSystem.Typography)``;
|
3127
|
-
const StyledButton = styledComponents.styled(designSystem.
|
3247
|
+
const StyledButton = styledComponents.styled(designSystem.Button)`
|
3128
3248
|
border-radius: 26px;
|
3129
3249
|
border-color: ${({ theme }) => theme.colors.neutral150};
|
3130
3250
|
box-shadow: ${({ theme }) => theme.shadows.filterShadow};
|
3251
|
+
height: 5rem;
|
3131
3252
|
|
3132
3253
|
&:hover {
|
3133
3254
|
${AddComponentTitle} {
|
@@ -3139,7 +3260,7 @@ const StyledButton = styledComponents.styled(designSystem.BaseButton)`
|
|
3139
3260
|
fill: ${({ theme }) => theme.colors.primary600};
|
3140
3261
|
}
|
3141
3262
|
> path {
|
3142
|
-
fill: ${({ theme }) => theme.colors.
|
3263
|
+
fill: ${({ theme }) => theme.colors.primary600};
|
3143
3264
|
}
|
3144
3265
|
}
|
3145
3266
|
}
|
@@ -3270,18 +3391,6 @@ const NotAllowedInput = ({ hint, label, required, name: name2 }) => {
|
|
3270
3391
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
|
3271
3392
|
] });
|
3272
3393
|
};
|
3273
|
-
function useDebounce(value, delay) {
|
3274
|
-
const [debouncedValue, setDebouncedValue] = React.useState(value);
|
3275
|
-
React.useEffect(() => {
|
3276
|
-
const handler = setTimeout(() => {
|
3277
|
-
setDebouncedValue(value);
|
3278
|
-
}, delay);
|
3279
|
-
return () => {
|
3280
|
-
clearTimeout(handler);
|
3281
|
-
};
|
3282
|
-
}, [value, delay]);
|
3283
|
-
return debouncedValue;
|
3284
|
-
}
|
3285
3394
|
const uidApi = index.contentManagerApi.injectEndpoints({
|
3286
3395
|
endpoints: (builder) => ({
|
3287
3396
|
getDefaultUID: builder.query({
|
@@ -3316,7 +3425,10 @@ const uidApi = index.contentManagerApi.injectEndpoints({
|
|
3316
3425
|
config: {
|
3317
3426
|
params
|
3318
3427
|
}
|
3319
|
-
})
|
3428
|
+
}),
|
3429
|
+
providesTags: (_res, _error, params) => [
|
3430
|
+
{ type: "UidAvailability", id: params.contentTypeUID }
|
3431
|
+
]
|
3320
3432
|
})
|
3321
3433
|
})
|
3322
3434
|
});
|
@@ -3328,8 +3440,10 @@ const UIDInput = React__namespace.forwardRef(
|
|
3328
3440
|
const allFormValues = strapiAdmin.useForm("InputUID", (form) => form.values);
|
3329
3441
|
const [availability, setAvailability] = React__namespace.useState();
|
3330
3442
|
const [showRegenerate, setShowRegenerate] = React__namespace.useState(false);
|
3443
|
+
const isCloning = reactRouterDom.useMatch(index.CLONE_PATH) !== null;
|
3331
3444
|
const field = strapiAdmin.useField(name2);
|
3332
|
-
const debouncedValue = useDebounce(field.value, 300);
|
3445
|
+
const debouncedValue = useDebounce.useDebounce(field.value, 300);
|
3446
|
+
const hasChanged = debouncedValue !== field.initialValue;
|
3333
3447
|
const { toggleNotification } = strapiAdmin.useNotification();
|
3334
3448
|
const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
3335
3449
|
const { formatMessage } = reactIntl.useIntl();
|
@@ -3405,8 +3519,9 @@ const UIDInput = React__namespace.forwardRef(
|
|
3405
3519
|
params
|
3406
3520
|
},
|
3407
3521
|
{
|
3522
|
+
// Don't check availability if the value is empty or wasn't changed
|
3408
3523
|
skip: !Boolean(
|
3409
|
-
|
3524
|
+
(hasChanged || isCloning) && debouncedValue && UID_REGEX.test(debouncedValue.trim())
|
3410
3525
|
)
|
3411
3526
|
}
|
3412
3527
|
);
|
@@ -3435,6 +3550,7 @@ const UIDInput = React__namespace.forwardRef(
|
|
3435
3550
|
const isLoading = isGeneratingDefaultUID || isGeneratingUID || isCheckingAvailability;
|
3436
3551
|
const fieldRef = strapiAdmin.useFocusInputField(name2);
|
3437
3552
|
const composedRefs = designSystem.useComposedRefs(ref, fieldRef);
|
3553
|
+
const shouldShowAvailability = (hasChanged || isCloning) && debouncedValue != null && availability && !showRegenerate;
|
3438
3554
|
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { hint, name: name2, error: field.error, required, children: [
|
3439
3555
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { action: labelAction, children: label }),
|
3440
3556
|
/* @__PURE__ */ jsxRuntime.jsx(
|
@@ -3443,7 +3559,7 @@ const UIDInput = React__namespace.forwardRef(
|
|
3443
3559
|
ref: composedRefs,
|
3444
3560
|
disabled: props.disabled,
|
3445
3561
|
endAction: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { position: "relative", gap: 1, children: [
|
3446
|
-
|
3562
|
+
shouldShowAvailability && /* @__PURE__ */ jsxRuntime.jsxs(
|
3447
3563
|
TextValidation,
|
3448
3564
|
{
|
3449
3565
|
alignItems: "center",
|
@@ -3732,8 +3848,7 @@ const Wrapper = styledComponents.styled.div`
|
|
3732
3848
|
`;
|
3733
3849
|
var listRE = /^(\s*)(>[> ]*|[*+-] \[[x ]\]\s|[*+-]\s|(\d+)([.)]))(\s*)/, emptyListRE = /^(\s*)(>[> ]*|[*+-] \[[x ]\]|[*+-]|(\d+)[.)])(\s*)$/, unorderedListRE = /[*+-]\s/;
|
3734
3850
|
function newlineAndIndentContinueMarkdownList(cm) {
|
3735
|
-
if (cm.getOption("disableInput"))
|
3736
|
-
return CodeMirror__default.default.Pass;
|
3851
|
+
if (cm.getOption("disableInput")) return CodeMirror__default.default.Pass;
|
3737
3852
|
var ranges = cm.listSelections(), replacements = [];
|
3738
3853
|
for (var i = 0; i < ranges.length; i++) {
|
3739
3854
|
var pos = ranges[i].head;
|
@@ -3767,8 +3882,7 @@ function newlineAndIndentContinueMarkdownList(cm) {
|
|
3767
3882
|
var numbered = !(unorderedListRE.test(match[2]) || match[2].indexOf(">") >= 0);
|
3768
3883
|
var bullet = numbered ? parseInt(match[3], 10) + 1 + match[4] : match[2].replace("x", " ");
|
3769
3884
|
replacements[i] = "\n" + indent + bullet + after;
|
3770
|
-
if (numbered)
|
3771
|
-
incrementRemainingMarkdownListNumbers(cm, pos);
|
3885
|
+
if (numbered) incrementRemainingMarkdownListNumbers(cm, pos);
|
3772
3886
|
}
|
3773
3887
|
}
|
3774
3888
|
cm.replaceSelections(replacements);
|
@@ -3786,10 +3900,8 @@ function incrementRemainingMarkdownListNumbers(cm, pos) {
|
|
3786
3900
|
var newNumber = parseInt(startItem[3], 10) + lookAhead - skipCount;
|
3787
3901
|
var nextNumber = parseInt(nextItem[3], 10), itemNumber = nextNumber;
|
3788
3902
|
if (startIndent === nextIndent && !isNaN(nextNumber)) {
|
3789
|
-
if (newNumber === nextNumber)
|
3790
|
-
|
3791
|
-
if (newNumber > nextNumber)
|
3792
|
-
itemNumber = newNumber + 1;
|
3903
|
+
if (newNumber === nextNumber) itemNumber = nextNumber + 1;
|
3904
|
+
if (newNumber > nextNumber) itemNumber = newNumber + 1;
|
3793
3905
|
cm.replaceRange(
|
3794
3906
|
nextLine.replace(listRE, nextIndent + itemNumber + nextItem[4] + nextItem[5]),
|
3795
3907
|
{
|
@@ -3802,10 +3914,8 @@ function incrementRemainingMarkdownListNumbers(cm, pos) {
|
|
3802
3914
|
}
|
3803
3915
|
);
|
3804
3916
|
} else {
|
3805
|
-
if (startIndent.length > nextIndent.length)
|
3806
|
-
|
3807
|
-
if (startIndent.length < nextIndent.length && lookAhead === 1)
|
3808
|
-
return;
|
3917
|
+
if (startIndent.length > nextIndent.length) return;
|
3918
|
+
if (startIndent.length < nextIndent.length && lookAhead === 1) return;
|
3809
3919
|
skipCount += 1;
|
3810
3920
|
}
|
3811
3921
|
}
|
@@ -4277,7 +4387,7 @@ const EditorLayout = ({
|
|
4277
4387
|
justifyContent: "flex-end",
|
4278
4388
|
shrink: 0,
|
4279
4389
|
width: "100%",
|
4280
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(ExpandButton$1, { onClick: onCollapse, children: [
|
4390
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(ExpandButton$1, { onClick: onCollapse, variant: "tertiary", size: "M", children: [
|
4281
4391
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({
|
4282
4392
|
id: "components.Wysiwyg.collapse",
|
4283
4393
|
defaultMessage: "Collapse"
|
@@ -4295,12 +4405,14 @@ const EditorLayout = ({
|
|
4295
4405
|
) }) });
|
4296
4406
|
}
|
4297
4407
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
4298
|
-
designSystem.
|
4408
|
+
designSystem.Flex,
|
4299
4409
|
{
|
4300
4410
|
borderColor: error ? "danger600" : "neutral200",
|
4301
4411
|
borderStyle: "solid",
|
4302
4412
|
borderWidth: "1px",
|
4303
4413
|
hasRadius: true,
|
4414
|
+
direction: "column",
|
4415
|
+
alignItems: "stretch",
|
4304
4416
|
children
|
4305
4417
|
}
|
4306
4418
|
);
|
@@ -4311,11 +4423,19 @@ const ExpandWrapper = styledComponents.styled(designSystem.Flex)`
|
|
4311
4423
|
const BoxWithBorder = styledComponents.styled(designSystem.Box)`
|
4312
4424
|
border-right: 1px solid ${({ theme }) => theme.colors.neutral200};
|
4313
4425
|
`;
|
4314
|
-
const ExpandButton$1 = styledComponents.styled(designSystem.
|
4426
|
+
const ExpandButton$1 = styledComponents.styled(designSystem.Button)`
|
4315
4427
|
background-color: transparent;
|
4316
4428
|
border: none;
|
4317
4429
|
align-items: center;
|
4318
4430
|
|
4431
|
+
& > span {
|
4432
|
+
display: flex;
|
4433
|
+
justify-content: space-between;
|
4434
|
+
align-items: center;
|
4435
|
+
width: 100%;
|
4436
|
+
font-weight: ${({ theme }) => theme.fontWeights.regular};
|
4437
|
+
}
|
4438
|
+
|
4319
4439
|
svg {
|
4320
4440
|
margin-left: ${({ theme }) => `${theme.spaces[2]}`};
|
4321
4441
|
|
@@ -4582,40 +4702,28 @@ const quoteAndCodeHandler = (editor, markdownType) => {
|
|
4582
4702
|
insertWithoutTextToEdit(editor, markdownType, line, contentLength);
|
4583
4703
|
}
|
4584
4704
|
};
|
4585
|
-
const CustomIconButton = styledComponents.styled(designSystem.IconButton)`
|
4586
|
-
padding: ${({ theme }) => theme.spaces[2]};
|
4587
|
-
|
4588
|
-
svg {
|
4589
|
-
width: 1.8rem;
|
4590
|
-
height: 1.8rem;
|
4591
|
-
}
|
4592
|
-
`;
|
4593
|
-
const CustomLinkIconButton = styledComponents.styled(CustomIconButton)`
|
4594
|
-
svg {
|
4595
|
-
width: 0.8rem;
|
4596
|
-
height: 0.8rem;
|
4597
|
-
}
|
4598
|
-
`;
|
4599
4705
|
const MainButtons = styledComponents.styled(designSystem.IconButtonGroup)`
|
4600
4706
|
margin-left: ${({ theme }) => theme.spaces[4]};
|
4601
4707
|
`;
|
4602
4708
|
const MoreButton = styledComponents.styled(designSystem.IconButton)`
|
4603
4709
|
margin: ${({ theme }) => `0 ${theme.spaces[2]}`};
|
4604
|
-
padding: ${({ theme }) => theme.spaces[2]};
|
4605
|
-
|
4606
|
-
svg {
|
4607
|
-
width: 1.8rem;
|
4608
|
-
height: 1.8rem;
|
4609
|
-
}
|
4610
4710
|
`;
|
4611
4711
|
const IconButtonGroupMargin = styledComponents.styled(designSystem.IconButtonGroup)`
|
4612
4712
|
margin-right: ${({ theme }) => `${theme.spaces[2]}`};
|
4613
4713
|
`;
|
4614
|
-
const ExpandButton = styledComponents.styled(designSystem.
|
4714
|
+
const ExpandButton = styledComponents.styled(designSystem.Button)`
|
4615
4715
|
background-color: transparent;
|
4616
4716
|
border: none;
|
4617
4717
|
align-items: center;
|
4618
4718
|
|
4719
|
+
& > span {
|
4720
|
+
display: flex;
|
4721
|
+
justify-content: space-between;
|
4722
|
+
align-items: center;
|
4723
|
+
width: 100%;
|
4724
|
+
font-weight: ${({ theme }) => theme.fontWeights.regular};
|
4725
|
+
}
|
4726
|
+
|
4619
4727
|
svg {
|
4620
4728
|
margin-left: ${({ theme }) => `${theme.spaces[2]}`};
|
4621
4729
|
path {
|
@@ -4627,7 +4735,7 @@ const ExpandButton = styledComponents.styled(designSystem.BaseButton)`
|
|
4627
4735
|
`;
|
4628
4736
|
const WysiwygFooter = ({ onToggleExpand }) => {
|
4629
4737
|
const { formatMessage } = reactIntl.useIntl();
|
4630
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { padding: 2, background: "neutral100", borderRadius: `0 0 0.4rem 0.4rem`, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "flex-end", alignItems: "flex-end", children: /* @__PURE__ */ jsxRuntime.jsxs(ExpandButton, { id: "expand", onClick: onToggleExpand, children: [
|
4738
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { padding: 2, background: "neutral100", borderRadius: `0 0 0.4rem 0.4rem`, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "flex-end", alignItems: "flex-end", children: /* @__PURE__ */ jsxRuntime.jsxs(ExpandButton, { id: "expand", onClick: onToggleExpand, variant: "tertiary", size: "M", children: [
|
4631
4739
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", children: formatMessage({
|
4632
4740
|
id: "components.WysiwygBottomControls.fullscreen",
|
4633
4741
|
defaultMessage: "Expand"
|
@@ -4664,18 +4772,27 @@ const WysiwygNav = ({
|
|
4664
4772
|
borderRadius: `0.4rem 0.4rem 0 0`,
|
4665
4773
|
children: [
|
4666
4774
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { children: [
|
4667
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Root, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
4668
|
-
|
4669
|
-
|
4670
|
-
|
4671
|
-
|
4672
|
-
|
4673
|
-
|
4674
|
-
|
4775
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Root, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
4776
|
+
designSystem.SingleSelect,
|
4777
|
+
{
|
4778
|
+
disabled: true,
|
4779
|
+
placeholder: selectPlaceholder,
|
4780
|
+
"aria-label": selectPlaceholder,
|
4781
|
+
size: "S",
|
4782
|
+
children: [
|
4783
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h1", children: "h1" }),
|
4784
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h2", children: "h2" }),
|
4785
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h3", children: "h3" }),
|
4786
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h4", children: "h4" }),
|
4787
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h5", children: "h5" }),
|
4788
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h6", children: "h6" })
|
4789
|
+
]
|
4790
|
+
}
|
4791
|
+
) }),
|
4675
4792
|
/* @__PURE__ */ jsxRuntime.jsxs(MainButtons, { children: [
|
4676
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
4677
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
4678
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
4793
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.IconButton, { disabled: true, label: "Bold", name: "Bold", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Bold, {}) }),
|
4794
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.IconButton, { disabled: true, label: "Italic", name: "Italic", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Italic, {}) }),
|
4795
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.IconButton, { disabled: true, label: "Underline", name: "Underline", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Underline, {}) })
|
4679
4796
|
] }),
|
4680
4797
|
/* @__PURE__ */ jsxRuntime.jsx(MoreButton, { disabled: true, label: "More", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.More, {}) })
|
4681
4798
|
] }),
|
@@ -4702,6 +4819,7 @@ const WysiwygNav = ({
|
|
4702
4819
|
placeholder: selectPlaceholder,
|
4703
4820
|
"aria-label": selectPlaceholder,
|
4704
4821
|
onChange: (value) => onActionClick(value, editorRef),
|
4822
|
+
size: "S",
|
4705
4823
|
children: [
|
4706
4824
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h1", children: "h1" }),
|
4707
4825
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h2", children: "h2" }),
|
@@ -4713,17 +4831,9 @@ const WysiwygNav = ({
|
|
4713
4831
|
}
|
4714
4832
|
) }),
|
4715
4833
|
/* @__PURE__ */ jsxRuntime.jsxs(MainButtons, { children: [
|
4834
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.IconButton, { onClick: () => onActionClick("Bold", editorRef), label: "Bold", name: "Bold", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Bold, {}) }),
|
4716
4835
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4717
|
-
|
4718
|
-
{
|
4719
|
-
onClick: () => onActionClick("Bold", editorRef),
|
4720
|
-
label: "Bold",
|
4721
|
-
name: "Bold",
|
4722
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Bold, {})
|
4723
|
-
}
|
4724
|
-
),
|
4725
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
4726
|
-
CustomIconButton,
|
4836
|
+
designSystem.IconButton,
|
4727
4837
|
{
|
4728
4838
|
onClick: () => onActionClick("Italic", editorRef),
|
4729
4839
|
label: "Italic",
|
@@ -4732,7 +4842,7 @@ const WysiwygNav = ({
|
|
4732
4842
|
}
|
4733
4843
|
),
|
4734
4844
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4735
|
-
|
4845
|
+
designSystem.IconButton,
|
4736
4846
|
{
|
4737
4847
|
onClick: () => onActionClick("Underline", editorRef),
|
4738
4848
|
label: "Underline",
|
@@ -4746,7 +4856,7 @@ const WysiwygNav = ({
|
|
4746
4856
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Content, { sideOffset: 12, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { padding: 2, children: [
|
4747
4857
|
/* @__PURE__ */ jsxRuntime.jsxs(IconButtonGroupMargin, { children: [
|
4748
4858
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4749
|
-
|
4859
|
+
designSystem.IconButton,
|
4750
4860
|
{
|
4751
4861
|
onClick: () => onActionClick("Strikethrough", editorRef, handleTogglePopover),
|
4752
4862
|
label: "Strikethrough",
|
@@ -4755,7 +4865,7 @@ const WysiwygNav = ({
|
|
4755
4865
|
}
|
4756
4866
|
),
|
4757
4867
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4758
|
-
|
4868
|
+
designSystem.IconButton,
|
4759
4869
|
{
|
4760
4870
|
onClick: () => onActionClick("BulletList", editorRef, handleTogglePopover),
|
4761
4871
|
label: "BulletList",
|
@@ -4764,7 +4874,7 @@ const WysiwygNav = ({
|
|
4764
4874
|
}
|
4765
4875
|
),
|
4766
4876
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4767
|
-
|
4877
|
+
designSystem.IconButton,
|
4768
4878
|
{
|
4769
4879
|
onClick: () => onActionClick("NumberList", editorRef, handleTogglePopover),
|
4770
4880
|
label: "NumberList",
|
@@ -4775,7 +4885,7 @@ const WysiwygNav = ({
|
|
4775
4885
|
] }),
|
4776
4886
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.IconButtonGroup, { children: [
|
4777
4887
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4778
|
-
|
4888
|
+
designSystem.IconButton,
|
4779
4889
|
{
|
4780
4890
|
onClick: () => onActionClick("Code", editorRef, handleTogglePopover),
|
4781
4891
|
label: "Code",
|
@@ -4784,7 +4894,7 @@ const WysiwygNav = ({
|
|
4784
4894
|
}
|
4785
4895
|
),
|
4786
4896
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4787
|
-
|
4897
|
+
designSystem.IconButton,
|
4788
4898
|
{
|
4789
4899
|
onClick: () => {
|
4790
4900
|
handleTogglePopover();
|
@@ -4796,7 +4906,7 @@ const WysiwygNav = ({
|
|
4796
4906
|
}
|
4797
4907
|
),
|
4798
4908
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4799
|
-
|
4909
|
+
designSystem.IconButton,
|
4800
4910
|
{
|
4801
4911
|
onClick: () => onActionClick("Link", editorRef, handleTogglePopover),
|
4802
4912
|
label: "Link",
|
@@ -4805,7 +4915,7 @@ const WysiwygNav = ({
|
|
4805
4915
|
}
|
4806
4916
|
),
|
4807
4917
|
/* @__PURE__ */ jsxRuntime.jsx(
|
4808
|
-
|
4918
|
+
designSystem.IconButton,
|
4809
4919
|
{
|
4810
4920
|
onClick: () => onActionClick("Quote", editorRef, handleTogglePopover),
|
4811
4921
|
label: "Quote",
|
@@ -4883,7 +4993,7 @@ const Wysiwyg = React__namespace.forwardRef(
|
|
4883
4993
|
const handleSelectAssets = (files) => {
|
4884
4994
|
const formattedFiles = files.map((f) => ({
|
4885
4995
|
alt: f.alternativeText || f.name,
|
4886
|
-
url:
|
4996
|
+
url: useDebounce.prefixFileUrlWithBackendUrl(f.url),
|
4887
4997
|
mime: f.mime
|
4888
4998
|
}));
|
4889
4999
|
insertFile(editorRef, formattedFiles);
|
@@ -4942,15 +5052,19 @@ const Wysiwyg = React__namespace.forwardRef(
|
|
4942
5052
|
);
|
4943
5053
|
const MemoizedWysiwyg = React__namespace.memo(Wysiwyg);
|
4944
5054
|
const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
|
4945
|
-
const { id } = index.useDoc();
|
5055
|
+
const { id, document: document2, collectionType } = index.useDoc();
|
4946
5056
|
const isFormDisabled = strapiAdmin.useForm("InputRenderer", (state) => state.disabled);
|
4947
5057
|
const isInDynamicZone = useDynamicZone("isInDynamicZone", (state) => state.isInDynamicZone);
|
4948
5058
|
const canCreateFields = index.useDocumentRBAC("InputRenderer", (rbac) => rbac.canCreateFields);
|
4949
5059
|
const canReadFields = index.useDocumentRBAC("InputRenderer", (rbac) => rbac.canReadFields);
|
4950
5060
|
const canUpdateFields = index.useDocumentRBAC("InputRenderer", (rbac) => rbac.canUpdateFields);
|
4951
5061
|
const canUserAction = index.useDocumentRBAC("InputRenderer", (rbac) => rbac.canUserAction);
|
4952
|
-
|
4953
|
-
|
5062
|
+
let idToCheck = id;
|
5063
|
+
if (collectionType === index.SINGLE_TYPES) {
|
5064
|
+
idToCheck = document2?.documentId;
|
5065
|
+
}
|
5066
|
+
const editableFields = idToCheck ? canUpdateFields : canCreateFields;
|
5067
|
+
const readableFields = idToCheck ? canReadFields : canCreateFields;
|
4954
5068
|
const canUserReadField = canUserAction(props.name, readableFields, props.type);
|
4955
5069
|
const canUserEditField = canUserAction(props.name, editableFields, props.type);
|
4956
5070
|
const fields = strapiAdmin.useStrapiApp("InputRenderer", (app) => app.fields);
|
@@ -4961,6 +5075,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
|
|
4961
5075
|
const {
|
4962
5076
|
edit: { components }
|
4963
5077
|
} = index.useDocLayout();
|
5078
|
+
const field = strapiAdmin.useField(props.name);
|
4964
5079
|
if (!visible) {
|
4965
5080
|
return null;
|
4966
5081
|
}
|
@@ -4971,7 +5086,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
|
|
4971
5086
|
if (attributeHasCustomFieldProperty(props.attribute)) {
|
4972
5087
|
const CustomInput = lazyComponentStore[props.attribute.customField];
|
4973
5088
|
if (CustomInput) {
|
4974
|
-
return /* @__PURE__ */ jsxRuntime.jsx(CustomInput, { ...props, hint, disabled: fieldIsDisabled });
|
5089
|
+
return /* @__PURE__ */ jsxRuntime.jsx(CustomInput, { ...props, ...field, hint, disabled: fieldIsDisabled });
|
4975
5090
|
}
|
4976
5091
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
4977
5092
|
strapiAdmin.InputRenderer,
|
@@ -5132,12 +5247,20 @@ const DynamicComponent = ({
|
|
5132
5247
|
React__namespace.useEffect(() => {
|
5133
5248
|
dragPreviewRef(reactDndHtml5Backend.getEmptyImage(), { captureDraggingState: false });
|
5134
5249
|
}, [dragPreviewRef, index$1]);
|
5250
|
+
const accordionValue = React__namespace.useId();
|
5251
|
+
const { value = [], rawError } = strapiAdmin.useField(`${name2}.${index$1}`);
|
5252
|
+
const [collapseToOpen, setCollapseToOpen] = React__namespace.useState("");
|
5253
|
+
React__namespace.useEffect(() => {
|
5254
|
+
if (rawError && value) {
|
5255
|
+
setCollapseToOpen(accordionValue);
|
5256
|
+
}
|
5257
|
+
}, [rawError, value, accordionValue]);
|
5135
5258
|
const composedBoxRefs = designSystem.useComposedRefs(boxRef, dropRef);
|
5136
5259
|
const accordionActions = disabled ? null : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
5137
5260
|
/* @__PURE__ */ jsxRuntime.jsx(
|
5138
5261
|
designSystem.IconButton,
|
5139
5262
|
{
|
5140
|
-
|
5263
|
+
variant: "ghost",
|
5141
5264
|
label: formatMessage(
|
5142
5265
|
{
|
5143
5266
|
id: index.getTranslation("components.DynamicZone.delete-label"),
|
@@ -5152,7 +5275,7 @@ const DynamicComponent = ({
|
|
5152
5275
|
/* @__PURE__ */ jsxRuntime.jsx(
|
5153
5276
|
designSystem.IconButton,
|
5154
5277
|
{
|
5155
|
-
|
5278
|
+
variant: "ghost",
|
5156
5279
|
onClick: (e) => e.stopPropagation(),
|
5157
5280
|
"data-handler-id": handlerId,
|
5158
5281
|
ref: dragRef,
|
@@ -5197,10 +5320,9 @@ const DynamicComponent = ({
|
|
5197
5320
|
] })
|
5198
5321
|
] });
|
5199
5322
|
const accordionTitle = title ? `${displayName} ${title}` : displayName;
|
5200
|
-
const accordionValue = React__namespace.useId();
|
5201
5323
|
return /* @__PURE__ */ jsxRuntime.jsxs(ComponentContainer, { tag: "li", width: "100%", children: [
|
5202
5324
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(Rectangle, { background: "neutral200" }) }),
|
5203
|
-
/* @__PURE__ */ jsxRuntime.jsx(StyledBox, { ref: composedBoxRefs, hasRadius: true, children: isDragging ? /* @__PURE__ */ jsxRuntime.jsx(Preview, {}) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Root, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Accordion.Item, { value: accordionValue, children: [
|
5325
|
+
/* @__PURE__ */ jsxRuntime.jsx(StyledBox, { ref: composedBoxRefs, hasRadius: true, children: isDragging ? /* @__PURE__ */ jsxRuntime.jsx(Preview, {}) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Root, { value: collapseToOpen, onValueChange: setCollapseToOpen, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Accordion.Item, { value: accordionValue, children: [
|
5204
5326
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Accordion.Header, { children: [
|
5205
5327
|
/* @__PURE__ */ jsxRuntime.jsx(
|
5206
5328
|
designSystem.Accordion.Trigger,
|
@@ -5211,10 +5333,39 @@ const DynamicComponent = ({
|
|
5211
5333
|
),
|
5212
5334
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Actions, { children: accordionActions })
|
5213
5335
|
] }),
|
5214
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children:
|
5215
|
-
|
5216
|
-
|
5217
|
-
|
5336
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: components[componentUid]?.layout?.map((row, rowInd) => /* @__PURE__ */ jsxRuntime.jsx(
|
5337
|
+
designSystem.Grid.Item,
|
5338
|
+
{
|
5339
|
+
col: 12,
|
5340
|
+
s: 12,
|
5341
|
+
xs: 12,
|
5342
|
+
direction: "column",
|
5343
|
+
alignItems: "stretch",
|
5344
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
|
5345
|
+
const fieldName = `${name2}.${index$1}.${field.name}`;
|
5346
|
+
const fieldWithTranslatedLabel = {
|
5347
|
+
...field,
|
5348
|
+
label: formatMessage({
|
5349
|
+
id: `content-manager.components.${componentUid}.${field.name}`,
|
5350
|
+
defaultMessage: field.label
|
5351
|
+
})
|
5352
|
+
};
|
5353
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
5354
|
+
designSystem.Grid.Item,
|
5355
|
+
{
|
5356
|
+
col: size,
|
5357
|
+
s: 12,
|
5358
|
+
xs: 12,
|
5359
|
+
direction: "column",
|
5360
|
+
alignItems: "stretch",
|
5361
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(MemoizedInputRenderer, { ...fieldWithTranslatedLabel, name: fieldName })
|
5362
|
+
},
|
5363
|
+
fieldName
|
5364
|
+
);
|
5365
|
+
}) })
|
5366
|
+
},
|
5367
|
+
rowInd
|
5368
|
+
)) }) }) }) })
|
5218
5369
|
] }) }) })
|
5219
5370
|
] });
|
5220
5371
|
};
|
@@ -5520,4 +5671,4 @@ exports.transformDocument = transformDocument;
|
|
5520
5671
|
exports.useDynamicZone = useDynamicZone;
|
5521
5672
|
exports.useFieldHint = useFieldHint;
|
5522
5673
|
exports.useLazyComponents = useLazyComponents;
|
5523
|
-
//# sourceMappingURL=Field-
|
5674
|
+
//# sourceMappingURL=Field-B5QXnctJ.js.map
|