@strapi/admin 5.0.0-beta.1 → 5.0.0-beta.3
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/admin/AdminSeatInfo-H5eNy3Gq.js +105 -0
- package/dist/admin/AdminSeatInfo-H5eNy3Gq.js.map +1 -0
- package/dist/admin/AdminSeatInfo-jPH1stsB.mjs +101 -0
- package/dist/admin/AdminSeatInfo-jPH1stsB.mjs.map +1 -0
- package/dist/admin/ApplicationInfoPage-QiVVy6LS.mjs +664 -0
- package/dist/admin/ApplicationInfoPage-QiVVy6LS.mjs.map +1 -0
- package/dist/admin/ApplicationInfoPage-leY1AEgo.js +692 -0
- package/dist/admin/ApplicationInfoPage-leY1AEgo.js.map +1 -0
- package/dist/admin/AuthResponse-5G-7aJDM.mjs +43 -0
- package/dist/admin/AuthResponse-5G-7aJDM.mjs.map +1 -0
- package/dist/admin/AuthResponse-kdo9DYPT.js +70 -0
- package/dist/admin/AuthResponse-kdo9DYPT.js.map +1 -0
- package/dist/admin/AuthenticatedLayout-1x0WC6c6.js +1121 -0
- package/dist/admin/AuthenticatedLayout-1x0WC6c6.js.map +1 -0
- package/dist/admin/AuthenticatedLayout-zaOd05gw.mjs +1088 -0
- package/dist/admin/AuthenticatedLayout-zaOd05gw.mjs.map +1 -0
- package/dist/admin/CreateActionEE-2DKYzbq_.js +61 -0
- package/dist/admin/CreateActionEE-2DKYzbq_.js.map +1 -0
- package/dist/admin/CreateActionEE-TcGdWjIN.mjs +53 -0
- package/dist/admin/CreateActionEE-TcGdWjIN.mjs.map +1 -0
- package/dist/admin/CreatePage-J84OUqE4.js +269 -0
- package/dist/admin/CreatePage-J84OUqE4.js.map +1 -0
- package/dist/admin/CreatePage-gSoe3n8A.mjs +13 -0
- package/dist/admin/CreatePage-gSoe3n8A.mjs.map +1 -0
- package/dist/admin/CreatePage-pniatTP-.mjs +240 -0
- package/dist/admin/CreatePage-pniatTP-.mjs.map +1 -0
- package/dist/admin/CreatePage-z4ERqv1R.js +18 -0
- package/dist/admin/CreatePage-z4ERqv1R.js.map +1 -0
- package/dist/admin/CreateView-BdO0Pvex.mjs +13 -0
- package/dist/admin/CreateView-BdO0Pvex.mjs.map +1 -0
- package/dist/admin/CreateView-JNmfRawb.js +17 -0
- package/dist/admin/CreateView-JNmfRawb.js.map +1 -0
- package/dist/admin/CreateView-NwMXZjDh.js +17 -0
- package/dist/admin/CreateView-NwMXZjDh.js.map +1 -0
- package/dist/admin/CreateView-sFb3ySEj.mjs +13 -0
- package/dist/admin/CreateView-sFb3ySEj.mjs.map +1 -0
- package/dist/admin/EditPage-3wx6NJgA.mjs +790 -0
- package/dist/admin/EditPage-3wx6NJgA.mjs.map +1 -0
- package/dist/admin/EditPage-IQRLHMer.mjs +322 -0
- package/dist/admin/EditPage-IQRLHMer.mjs.map +1 -0
- package/dist/admin/EditPage-dAyJwJfs.js +351 -0
- package/dist/admin/EditPage-dAyJwJfs.js.map +1 -0
- package/dist/admin/EditPage-eR6riBsR.js +818 -0
- package/dist/admin/EditPage-eR6riBsR.js.map +1 -0
- package/dist/admin/EditPage-rdOE18EC.js +281 -0
- package/dist/admin/EditPage-rdOE18EC.js.map +1 -0
- package/dist/admin/EditPage-yztdPcnM.mjs +255 -0
- package/dist/admin/EditPage-yztdPcnM.mjs.map +1 -0
- package/dist/admin/EditView-fbzip_S8.mjs +332 -0
- package/dist/admin/EditView-fbzip_S8.mjs.map +1 -0
- package/dist/admin/EditView-oyHNBKvL.js +358 -0
- package/dist/admin/EditView-oyHNBKvL.js.map +1 -0
- package/dist/admin/EditViewPage-LdDGNi6d.js +875 -0
- package/dist/admin/EditViewPage-LdDGNi6d.js.map +1 -0
- package/dist/admin/EditViewPage-rDgxiutd.mjs +842 -0
- package/dist/admin/EditViewPage-rDgxiutd.mjs.map +1 -0
- package/dist/admin/EventsTable--peC0Geq.js +36 -0
- package/dist/admin/EventsTable--peC0Geq.js.map +1 -0
- package/dist/admin/EventsTable-rNMPq-X1.mjs +32 -0
- package/dist/admin/EventsTable-rNMPq-X1.mjs.map +1 -0
- package/dist/admin/HomePage-14WM2hIE.js +15 -0
- package/dist/admin/HomePage-14WM2hIE.js.map +1 -0
- package/dist/admin/HomePage-e2Bs6Kar.js +591 -0
- package/dist/admin/HomePage-e2Bs6Kar.js.map +1 -0
- package/dist/admin/HomePage-qgAro8dS.mjs +563 -0
- package/dist/admin/HomePage-qgAro8dS.mjs.map +1 -0
- package/dist/admin/HomePage-zQ7HL9y6.mjs +11 -0
- package/dist/admin/HomePage-zQ7HL9y6.mjs.map +1 -0
- package/dist/admin/InstalledPluginsPage-ZIPyDrzh.js +121 -0
- package/dist/admin/InstalledPluginsPage-ZIPyDrzh.js.map +1 -0
- package/dist/admin/InstalledPluginsPage-s_PGIc3_.mjs +96 -0
- package/dist/admin/InstalledPluginsPage-s_PGIc3_.mjs.map +1 -0
- package/dist/admin/Layout-KAX2c8wc.js +232 -0
- package/dist/admin/Layout-KAX2c8wc.js.map +1 -0
- package/dist/admin/Layout-mEj5c1Bi.mjs +204 -0
- package/dist/admin/Layout-mEj5c1Bi.mjs.map +1 -0
- package/dist/admin/ListPage-AI8neqxV.mjs +332 -0
- package/dist/admin/ListPage-AI8neqxV.mjs.map +1 -0
- package/dist/admin/ListPage-ARW72ceH.js +357 -0
- package/dist/admin/ListPage-ARW72ceH.js.map +1 -0
- package/dist/admin/ListPage-AUimd0cK.js +563 -0
- package/dist/admin/ListPage-AUimd0cK.js.map +1 -0
- package/dist/admin/ListPage-BIpKdUdv.mjs +486 -0
- package/dist/admin/ListPage-BIpKdUdv.mjs.map +1 -0
- package/dist/admin/ListPage-DxI49fdQ.js +307 -0
- package/dist/admin/ListPage-DxI49fdQ.js.map +1 -0
- package/dist/admin/ListPage-MvgbZlgc.js +15 -0
- package/dist/admin/ListPage-MvgbZlgc.js.map +1 -0
- package/dist/admin/ListPage-ZDEeaYvm.mjs +11 -0
- package/dist/admin/ListPage-ZDEeaYvm.mjs.map +1 -0
- package/dist/admin/ListPage-asZ9aDzG.mjs +282 -0
- package/dist/admin/ListPage-asZ9aDzG.mjs.map +1 -0
- package/dist/admin/ListPage-romICg1Z.js +514 -0
- package/dist/admin/ListPage-romICg1Z.js.map +1 -0
- package/dist/admin/ListPage-tniramRN.mjs +535 -0
- package/dist/admin/ListPage-tniramRN.mjs.map +1 -0
- package/dist/admin/ListView-1VRmjfh8.js +232 -0
- package/dist/admin/ListView-1VRmjfh8.js.map +1 -0
- package/dist/admin/ListView-6hlTFx5H.mjs +197 -0
- package/dist/admin/ListView-6hlTFx5H.mjs.map +1 -0
- package/dist/admin/ListView-GYuN24HV.mjs +206 -0
- package/dist/admin/ListView-GYuN24HV.mjs.map +1 -0
- package/dist/admin/ListView-ph55AtDF.js +223 -0
- package/dist/admin/ListView-ph55AtDF.js.map +1 -0
- package/dist/admin/Login-LxE58baP.mjs +31 -0
- package/dist/admin/Login-LxE58baP.mjs.map +1 -0
- package/dist/admin/Login-WeDT3kAj.js +39 -0
- package/dist/admin/Login-WeDT3kAj.js.map +1 -0
- package/dist/admin/MagicLinkEE-AO_SBYi5.mjs +27 -0
- package/dist/admin/MagicLinkEE-AO_SBYi5.mjs.map +1 -0
- package/dist/admin/MagicLinkEE-_fUwHKdf.js +31 -0
- package/dist/admin/MagicLinkEE-_fUwHKdf.js.map +1 -0
- package/dist/admin/MarketplacePage-26cUn4e5.mjs +1020 -0
- package/dist/admin/MarketplacePage-26cUn4e5.mjs.map +1 -0
- package/dist/admin/MarketplacePage-m8Lf3adM.js +1051 -0
- package/dist/admin/MarketplacePage-m8Lf3adM.js.map +1 -0
- package/dist/admin/Ornaments-RhzFP9rf.js +214 -0
- package/dist/admin/Ornaments-RhzFP9rf.js.map +1 -0
- package/dist/admin/Permissions-NRzJqZEr.js +2086 -0
- package/dist/admin/Permissions-NRzJqZEr.js.map +1 -0
- package/dist/admin/Permissions-VzklM1ie.mjs +2050 -0
- package/dist/admin/Permissions-VzklM1ie.mjs.map +1 -0
- package/dist/admin/PrivateRoute-KAM10GGM.js +22 -0
- package/dist/admin/PrivateRoute-KAM10GGM.js.map +1 -0
- package/dist/admin/PrivateRoute-wDu6Vo0N.mjs +20 -0
- package/dist/admin/PrivateRoute-wDu6Vo0N.mjs.map +1 -0
- package/dist/admin/ProfilePage-0d-k7mtP.mjs +387 -0
- package/dist/admin/ProfilePage-0d-k7mtP.mjs.map +1 -0
- package/dist/admin/ProfilePage-oSih4pcL.js +415 -0
- package/dist/admin/ProfilePage-oSih4pcL.js.map +1 -0
- package/dist/admin/PurchaseAuditLogs-8_4PcW7P.mjs +48 -0
- package/dist/admin/PurchaseAuditLogs-8_4PcW7P.mjs.map +1 -0
- package/dist/admin/PurchaseAuditLogs-tS_tVSGI.js +52 -0
- package/dist/admin/PurchaseAuditLogs-tS_tVSGI.js.map +1 -0
- package/dist/admin/PurchaseSingleSignOn--gblfVu6.mjs +51 -0
- package/dist/admin/PurchaseSingleSignOn--gblfVu6.mjs.map +1 -0
- package/dist/admin/PurchaseSingleSignOn-9SV6-fYs.js +55 -0
- package/dist/admin/PurchaseSingleSignOn-9SV6-fYs.js.map +1 -0
- package/dist/admin/SelectRoles-V_PZUtVT.mjs +106 -0
- package/dist/admin/SelectRoles-V_PZUtVT.mjs.map +1 -0
- package/dist/admin/SelectRoles-ZsRUnSdr.js +114 -0
- package/dist/admin/SelectRoles-ZsRUnSdr.js.map +1 -0
- package/dist/admin/SingleSignOnPage-jtjy4_4U.js +259 -0
- package/dist/admin/SingleSignOnPage-jtjy4_4U.js.map +1 -0
- package/dist/admin/SingleSignOnPage-kbLz1A_y.mjs +234 -0
- package/dist/admin/SingleSignOnPage-kbLz1A_y.mjs.map +1 -0
- package/dist/admin/Table-ZFyORhH3.mjs +196 -0
- package/dist/admin/Table-ZFyORhH3.mjs.map +1 -0
- package/dist/admin/Table-kMt3jQ2g.js +221 -0
- package/dist/admin/Table-kMt3jQ2g.js.map +1 -0
- package/dist/admin/TokenTypeSelect-Ngz4ONEL.js +386 -0
- package/dist/admin/TokenTypeSelect-Ngz4ONEL.js.map +1 -0
- package/dist/admin/TokenTypeSelect-oOKwvsQ2.mjs +358 -0
- package/dist/admin/TokenTypeSelect-oOKwvsQ2.mjs.map +1 -0
- package/dist/admin/UseCasePage-2wum_xzS.mjs +146 -0
- package/dist/admin/UseCasePage-2wum_xzS.mjs.map +1 -0
- package/dist/admin/UseCasePage-qrhHiF5S.js +175 -0
- package/dist/admin/UseCasePage-qrhHiF5S.js.map +1 -0
- package/dist/admin/admin-DUKhYsmP.mjs +256 -0
- package/dist/admin/admin-DUKhYsmP.mjs.map +1 -0
- package/dist/admin/admin-vlKSOeHB.js +274 -0
- package/dist/admin/admin-vlKSOeHB.js.map +1 -0
- package/dist/admin/apiTokens-dBRuo1wd.mjs +56 -0
- package/dist/admin/apiTokens-dBRuo1wd.mjs.map +1 -0
- package/dist/admin/apiTokens-lXn03No3.js +62 -0
- package/dist/admin/apiTokens-lXn03No3.js.map +1 -0
- package/dist/admin/ar-74XpZHjA.js +853 -0
- package/dist/admin/ar-74XpZHjA.js.map +1 -0
- package/dist/admin/ar-gTQs8p7A.mjs +832 -0
- package/dist/admin/ar-gTQs8p7A.mjs.map +1 -0
- package/dist/admin/ca-A-U5stlG.mjs +520 -0
- package/dist/admin/ca-A-U5stlG.mjs.map +1 -0
- package/dist/admin/ca-tfhzbe_0.js +538 -0
- package/dist/admin/ca-tfhzbe_0.js.map +1 -0
- package/dist/admin/constants-enREoOEa.mjs +52 -0
- package/dist/admin/constants-enREoOEa.mjs.map +1 -0
- package/dist/admin/constants-jQFnBWVd.js +60 -0
- package/dist/admin/constants-jQFnBWVd.js.map +1 -0
- package/dist/admin/cs-iYqoHUVt.mjs +166 -0
- package/dist/admin/cs-iYqoHUVt.mjs.map +1 -0
- package/dist/admin/cs-sS-228vY.js +179 -0
- package/dist/admin/cs-sS-228vY.js.map +1 -0
- package/dist/admin/de-og0YSnla.js +532 -0
- package/dist/admin/de-og0YSnla.js.map +1 -0
- package/dist/admin/de-uZBjRd6a.mjs +514 -0
- package/dist/admin/de-uZBjRd6a.mjs.map +1 -0
- package/dist/admin/dk-GtDhDxRc.js +452 -0
- package/dist/admin/dk-GtDhDxRc.js.map +1 -0
- package/dist/admin/dk-nXAO32DE.mjs +434 -0
- package/dist/admin/dk-nXAO32DE.mjs.map +1 -0
- package/dist/admin/ee.js +12 -0
- package/dist/admin/ee.js.map +1 -0
- package/dist/admin/ee.mjs +3 -0
- package/dist/admin/ee.mjs.map +1 -0
- package/dist/admin/en-2FB7x9Rq.js +804 -0
- package/dist/admin/en-2FB7x9Rq.js.map +1 -0
- package/dist/admin/en-qvX6GTOD.mjs +783 -0
- package/dist/admin/en-qvX6GTOD.mjs.map +1 -0
- package/dist/admin/es-TQtY4G8X.js +615 -0
- package/dist/admin/es-TQtY4G8X.js.map +1 -0
- package/dist/admin/es-i0dEHPPQ.mjs +595 -0
- package/dist/admin/es-i0dEHPPQ.mjs.map +1 -0
- package/dist/admin/eu-SRdPRyQu.js +645 -0
- package/dist/admin/eu-SRdPRyQu.js.map +1 -0
- package/dist/admin/eu-wFmYHERY.mjs +625 -0
- package/dist/admin/eu-wFmYHERY.mjs.map +1 -0
- package/dist/admin/fr-GW5-kEO9.js +571 -0
- package/dist/admin/fr-GW5-kEO9.js.map +1 -0
- package/dist/admin/fr-OI7VyC_k.mjs +550 -0
- package/dist/admin/fr-OI7VyC_k.mjs.map +1 -0
- package/dist/admin/gu-z6qqOLRh.js +438 -0
- package/dist/admin/gu-z6qqOLRh.js.map +1 -0
- package/dist/admin/gu-zSaMc-a6.mjs +429 -0
- package/dist/admin/gu-zSaMc-a6.mjs.map +1 -0
- package/dist/admin/he-CLdZZ_n1.js +329 -0
- package/dist/admin/he-CLdZZ_n1.js.map +1 -0
- package/dist/admin/he-YzAGShlQ.mjs +315 -0
- package/dist/admin/he-YzAGShlQ.mjs.map +1 -0
- package/dist/admin/hi-3pMoYe6q.js +537 -0
- package/dist/admin/hi-3pMoYe6q.js.map +1 -0
- package/dist/admin/hi-ZQ4t6UdY.mjs +519 -0
- package/dist/admin/hi-ZQ4t6UdY.mjs.map +1 -0
- package/dist/admin/hu-O1FJoY8c.mjs +625 -0
- package/dist/admin/hu-O1FJoY8c.mjs.map +1 -0
- package/dist/admin/hu-VxIqV1X0.js +645 -0
- package/dist/admin/hu-VxIqV1X0.js.map +1 -0
- package/dist/admin/id-Lb_0kPQU.mjs +290 -0
- package/dist/admin/id-Lb_0kPQU.mjs.map +1 -0
- package/dist/admin/id-cUUpuxZO.js +303 -0
- package/dist/admin/id-cUUpuxZO.js.map +1 -0
- package/dist/admin/index-dcaxfEDi.js +5241 -0
- package/dist/admin/index-dcaxfEDi.js.map +1 -0
- package/dist/admin/index-oBxjGftZ.mjs +5163 -0
- package/dist/admin/index-oBxjGftZ.mjs.map +1 -0
- package/dist/admin/index.js +26 -27
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +3 -3
- package/dist/admin/it-136monzD.mjs +299 -0
- package/dist/admin/it-136monzD.mjs.map +1 -0
- package/dist/admin/it-m8H0rXTP.js +312 -0
- package/dist/admin/it-m8H0rXTP.js.map +1 -0
- package/dist/admin/ja-0-FUC0T4.mjs +434 -0
- package/dist/admin/ja-0-FUC0T4.mjs.map +1 -0
- package/dist/admin/ja-jhqUhh7F.js +452 -0
- package/dist/admin/ja-jhqUhh7F.js.map +1 -0
- package/dist/admin/ko-Fq49QS3z.js +451 -0
- package/dist/admin/ko-Fq49QS3z.js.map +1 -0
- package/dist/admin/ko-H3Y8GpnD.mjs +433 -0
- package/dist/admin/ko-H3Y8GpnD.mjs.map +1 -0
- package/dist/admin/ml-NPdcpJoN.mjs +519 -0
- package/dist/admin/ml-NPdcpJoN.mjs.map +1 -0
- package/dist/admin/ml-mLJM4sQP.js +537 -0
- package/dist/admin/ml-mLJM4sQP.js.map +1 -0
- package/dist/admin/ms-NDmpSkMY.js +213 -0
- package/dist/admin/ms-NDmpSkMY.js.map +1 -0
- package/dist/admin/ms-v9c434YI.mjs +200 -0
- package/dist/admin/ms-v9c434YI.mjs.map +1 -0
- package/dist/admin/nl-RREi1JAg.js +641 -0
- package/dist/admin/nl-RREi1JAg.js.map +1 -0
- package/dist/admin/nl-qHmOt3d1.mjs +621 -0
- package/dist/admin/nl-qHmOt3d1.mjs.map +1 -0
- package/dist/admin/no-2wT9Jd9n.js +313 -0
- package/dist/admin/no-2wT9Jd9n.js.map +1 -0
- package/dist/admin/no-XGZQN-Ji.mjs +300 -0
- package/dist/admin/no-XGZQN-Ji.mjs.map +1 -0
- package/dist/admin/pl-Id5YX-Pw.mjs +519 -0
- package/dist/admin/pl-Id5YX-Pw.mjs.map +1 -0
- package/dist/admin/pl-kU2npCRO.js +537 -0
- package/dist/admin/pl-kU2npCRO.js.map +1 -0
- package/dist/admin/pt-BR-0o0Gf-P8.mjs +588 -0
- package/dist/admin/pt-BR-0o0Gf-P8.mjs.map +1 -0
- package/dist/admin/pt-BR-R-dMJxPL.js +608 -0
- package/dist/admin/pt-BR-R-dMJxPL.js.map +1 -0
- package/dist/admin/pt-IygqsPYv.js +212 -0
- package/dist/admin/pt-IygqsPYv.js.map +1 -0
- package/dist/admin/pt-f52AXrxz.mjs +200 -0
- package/dist/admin/pt-f52AXrxz.mjs.map +1 -0
- package/dist/admin/rbac-WZsv1761.js +1237 -0
- package/dist/admin/rbac-WZsv1761.js.map +1 -0
- package/dist/admin/rbac-sYT_mXH0.mjs +1171 -0
- package/dist/admin/rbac-sYT_mXH0.mjs.map +1 -0
- package/dist/admin/ru-5TBoMH_2.js +766 -0
- package/dist/admin/ru-5TBoMH_2.js.map +1 -0
- package/dist/admin/ru-FpmG9SEf.mjs +745 -0
- package/dist/admin/ru-FpmG9SEf.mjs.map +1 -0
- package/dist/admin/sa-KUwV8aRB.mjs +519 -0
- package/dist/admin/sa-KUwV8aRB.mjs.map +1 -0
- package/dist/admin/sa-KmwTiEO5.js +537 -0
- package/dist/admin/sa-KmwTiEO5.js.map +1 -0
- package/dist/admin/selectors-3gRe5pAj.mjs +6 -0
- package/dist/admin/selectors-3gRe5pAj.mjs.map +1 -0
- package/dist/admin/selectors-CiTVxP8O.js +8 -0
- package/dist/admin/selectors-CiTVxP8O.js.map +1 -0
- package/dist/admin/sk-IV2uPmXo.js +503 -0
- package/dist/admin/sk-IV2uPmXo.js.map +1 -0
- package/dist/admin/sk-g_1C955P.mjs +483 -0
- package/dist/admin/sk-g_1C955P.mjs.map +1 -0
- package/dist/admin/src/StrapiApp.d.ts +12 -41
- package/dist/admin/src/components/Context.d.ts +6 -0
- package/dist/admin/src/components/Filters.d.ts +6 -1
- package/dist/admin/src/components/Form.d.ts +10 -1
- package/dist/admin/src/components/PageHelpers.d.ts +4 -0
- package/dist/admin/src/core/apis/rbac.d.ts +24 -0
- package/dist/admin/src/core/store/configure.d.ts +7 -18
- package/dist/admin/src/core/store/hooks.d.ts +6 -21
- package/dist/admin/src/ee.d.ts +5 -0
- package/dist/admin/src/features/Auth.d.ts +14 -3
- package/dist/admin/src/features/StrapiApp.d.ts +3 -1
- package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
- package/dist/admin/src/hooks/useContentTypes.d.ts +3 -3
- package/dist/admin/src/hooks/useRBAC.d.ts +33 -1
- package/dist/admin/src/index.d.ts +8 -4
- package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
- package/dist/admin/src/selectors.d.ts +4 -14
- package/dist/admin/src/services/admin.d.ts +5 -5
- package/dist/admin/src/services/api.d.ts +3 -3
- package/dist/admin/src/services/apiTokens.d.ts +1 -1
- package/dist/admin/src/services/auth.d.ts +10 -10
- package/dist/admin/src/services/contentApi.d.ts +1 -1
- package/dist/admin/src/services/contentManager.d.ts +2 -2
- package/dist/admin/src/services/transferTokens.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +8 -8
- package/dist/admin/src/services/webhooks.d.ts +2 -2
- package/dist/admin/src/utils/once.d.ts +1 -0
- package/dist/admin/src/utils/urls.d.ts +7 -1
- package/dist/admin/src/utils/users.d.ts +4 -4
- package/dist/admin/sv-Uv9nW9cN.js +640 -0
- package/dist/admin/sv-Uv9nW9cN.js.map +1 -0
- package/dist/admin/sv-lzyY1dsz.mjs +620 -0
- package/dist/admin/sv-lzyY1dsz.mjs.map +1 -0
- package/dist/admin/test.js +170 -2649
- package/dist/admin/test.js.map +1 -1
- package/dist/admin/test.mjs +166 -2645
- package/dist/admin/test.mjs.map +1 -1
- package/dist/admin/tests/mockData.d.ts +0 -1065
- package/dist/admin/tests/store.d.ts +0 -169
- package/dist/admin/tests/utils.d.ts +2 -176
- package/dist/admin/th-7LJ9Y8EL.mjs +284 -0
- package/dist/admin/th-7LJ9Y8EL.mjs.map +1 -0
- package/dist/admin/th-SXQwWjv6.js +297 -0
- package/dist/admin/th-SXQwWjv6.js.map +1 -0
- package/dist/admin/tr-09v-DLMg.mjs +581 -0
- package/dist/admin/tr-09v-DLMg.mjs.map +1 -0
- package/dist/admin/tr-RBQM-Vq5.js +601 -0
- package/dist/admin/tr-RBQM-Vq5.js.map +1 -0
- package/dist/admin/transferTokens-5qQjIKFd.js +65 -0
- package/dist/admin/transferTokens-5qQjIKFd.js.map +1 -0
- package/dist/admin/transferTokens-OLPKYcY_.mjs +59 -0
- package/dist/admin/transferTokens-OLPKYcY_.mjs.map +1 -0
- package/dist/admin/uk-38IblmOr.mjs +201 -0
- package/dist/admin/uk-38IblmOr.mjs.map +1 -0
- package/dist/admin/uk-5T4XFIKm.js +214 -0
- package/dist/admin/uk-5T4XFIKm.js.map +1 -0
- package/dist/admin/useAdminRoles-HWIbyk2Z.mjs +28 -0
- package/dist/admin/useAdminRoles-HWIbyk2Z.mjs.map +1 -0
- package/dist/admin/useAdminRoles-Q2BxHs4o.js +50 -0
- package/dist/admin/useAdminRoles-Q2BxHs4o.js.map +1 -0
- package/dist/admin/useEnterprise-DUs6BYlP.js +50 -0
- package/dist/admin/useEnterprise-DUs6BYlP.js.map +1 -0
- package/dist/admin/useEnterprise-jpsYZWzn.mjs +28 -0
- package/dist/admin/useEnterprise-jpsYZWzn.mjs.map +1 -0
- package/dist/admin/useLicenseLimitNotification-0UWeCY_u.js +105 -0
- package/dist/admin/useLicenseLimitNotification-0UWeCY_u.js.map +1 -0
- package/dist/admin/useLicenseLimitNotification-aTNbD3xK.mjs +80 -0
- package/dist/admin/useLicenseLimitNotification-aTNbD3xK.mjs.map +1 -0
- package/dist/admin/useLicenseLimits-F7K-YWAE.mjs +23 -0
- package/dist/admin/useLicenseLimits-F7K-YWAE.mjs.map +1 -0
- package/dist/admin/useLicenseLimits-m11DOu9p.js +45 -0
- package/dist/admin/useLicenseLimits-m11DOu9p.js.map +1 -0
- package/dist/admin/useWebhooks-7BXPSMHG.mjs +91 -0
- package/dist/admin/useWebhooks-7BXPSMHG.mjs.map +1 -0
- package/dist/admin/useWebhooks-oZ5DKtvz.js +93 -0
- package/dist/admin/useWebhooks-oZ5DKtvz.js.map +1 -0
- package/dist/admin/users-R5A0kUOV.js +33 -0
- package/dist/admin/users-R5A0kUOV.js.map +1 -0
- package/dist/admin/users-a4KTyEyc.mjs +30 -0
- package/dist/admin/users-a4KTyEyc.mjs.map +1 -0
- package/dist/admin/validation-2MGgF10o.js +65 -0
- package/dist/admin/validation-2MGgF10o.js.map +1 -0
- package/dist/admin/validation-gH-06ERZ.mjs +43 -0
- package/dist/admin/validation-gH-06ERZ.mjs.map +1 -0
- package/dist/admin/vi-mj-Smy3d.js +200 -0
- package/dist/admin/vi-mj-Smy3d.js.map +1 -0
- package/dist/admin/vi-ryNZtXtk.mjs +187 -0
- package/dist/admin/vi-ryNZtXtk.mjs.map +1 -0
- package/dist/admin/zh-6qF5HCOo.js +642 -0
- package/dist/admin/zh-6qF5HCOo.js.map +1 -0
- package/dist/admin/zh-Hans-HlxDUeVA.mjs +716 -0
- package/dist/admin/zh-Hans-HlxDUeVA.mjs.map +1 -0
- package/dist/admin/zh-Hans-eWSoi9-X.js +737 -0
- package/dist/admin/zh-Hans-eWSoi9-X.js.map +1 -0
- package/dist/admin/zh-WEteLuNm.mjs +622 -0
- package/dist/admin/zh-WEteLuNm.mjs.map +1 -0
- package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +1 -1
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/ee/server/index.js +20 -31
- package/dist/ee/server/index.js.map +1 -1
- package/dist/ee/server/index.mjs +21 -32
- package/dist/ee/server/index.mjs.map +1 -1
- package/dist/package.json.d.ts +24 -33
- package/dist/server/index.js +51 -55
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +52 -56
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/server/src/controllers/webhooks.d.ts.map +1 -1
- package/dist/server/src/services/passport.d.ts.map +1 -1
- package/dist/server/src/validation/project-settings.d.ts +52 -6
- package/dist/server/src/validation/project-settings.d.ts.map +1 -1
- package/dist/shared/contracts/content-types.d.ts +5 -0
- package/dist/shared/contracts/content-types.d.ts.map +1 -0
- package/package.json +25 -34
- package/dist/admin/AdminSeatInfo-Gp4BFR1_.js +0 -105
- package/dist/admin/AdminSeatInfo-Gp4BFR1_.js.map +0 -1
- package/dist/admin/AdminSeatInfo-dDgFBcLY.mjs +0 -101
- package/dist/admin/AdminSeatInfo-dDgFBcLY.mjs.map +0 -1
- package/dist/admin/ApplicationInfoPage-GQLKLk5T.mjs +0 -670
- package/dist/admin/ApplicationInfoPage-GQLKLk5T.mjs.map +0 -1
- package/dist/admin/ApplicationInfoPage-e_sOqQMh.js +0 -698
- package/dist/admin/ApplicationInfoPage-e_sOqQMh.js.map +0 -1
- package/dist/admin/AuthResponse-gf-zZkxm.mjs +0 -43
- package/dist/admin/AuthResponse-gf-zZkxm.mjs.map +0 -1
- package/dist/admin/AuthResponse-l5QiAAK7.js +0 -70
- package/dist/admin/AuthResponse-l5QiAAK7.js.map +0 -1
- package/dist/admin/AuthenticatedLayout-3fYM18Xy.mjs +0 -1115
- package/dist/admin/AuthenticatedLayout-3fYM18Xy.mjs.map +0 -1
- package/dist/admin/AuthenticatedLayout-gGQYIisy.js +0 -1148
- package/dist/admin/AuthenticatedLayout-gGQYIisy.js.map +0 -1
- package/dist/admin/ComponentConfigurationPage-0kf7a5LK.mjs +0 -237
- package/dist/admin/ComponentConfigurationPage-0kf7a5LK.mjs.map +0 -1
- package/dist/admin/ComponentConfigurationPage-U7RcNJFs.js +0 -262
- package/dist/admin/ComponentConfigurationPage-U7RcNJFs.js.map +0 -1
- package/dist/admin/ComponentIcon-AkrHxAkm.mjs +0 -158
- package/dist/admin/ComponentIcon-AkrHxAkm.mjs.map +0 -1
- package/dist/admin/ComponentIcon-wcNWpdCz.js +0 -180
- package/dist/admin/ComponentIcon-wcNWpdCz.js.map +0 -1
- package/dist/admin/CreateActionEE-HO-FmNjw.js +0 -61
- package/dist/admin/CreateActionEE-HO-FmNjw.js.map +0 -1
- package/dist/admin/CreateActionEE-OscS6KZj.mjs +0 -53
- package/dist/admin/CreateActionEE-OscS6KZj.mjs.map +0 -1
- package/dist/admin/CreatePage-1a_Nb-RK.mjs +0 -248
- package/dist/admin/CreatePage-1a_Nb-RK.mjs.map +0 -1
- package/dist/admin/CreatePage-8rG8fSZv.mjs +0 -245
- package/dist/admin/CreatePage-8rG8fSZv.mjs.map +0 -1
- package/dist/admin/CreatePage-B0kLot_Q.js +0 -18
- package/dist/admin/CreatePage-B0kLot_Q.js.map +0 -1
- package/dist/admin/CreatePage-c92hDTE3.mjs +0 -13
- package/dist/admin/CreatePage-c92hDTE3.mjs.map +0 -1
- package/dist/admin/CreatePage-h9gJgINE.js +0 -274
- package/dist/admin/CreatePage-h9gJgINE.js.map +0 -1
- package/dist/admin/CreatePage-pN8WcSWM.js +0 -272
- package/dist/admin/CreatePage-pN8WcSWM.js.map +0 -1
- package/dist/admin/CreateView-Gd7sLphf.js +0 -17
- package/dist/admin/CreateView-Gd7sLphf.js.map +0 -1
- package/dist/admin/CreateView-PIPvgwa8.mjs +0 -13
- package/dist/admin/CreateView-PIPvgwa8.mjs.map +0 -1
- package/dist/admin/CreateView-kVD9MjAf.js +0 -17
- package/dist/admin/CreateView-kVD9MjAf.js.map +0 -1
- package/dist/admin/CreateView-nXkGgZTO.mjs +0 -13
- package/dist/admin/CreateView-nXkGgZTO.mjs.map +0 -1
- package/dist/admin/EditConfigurationPage-YAS-MAtE.js +0 -155
- package/dist/admin/EditConfigurationPage-YAS-MAtE.js.map +0 -1
- package/dist/admin/EditConfigurationPage-jugWslla.mjs +0 -130
- package/dist/admin/EditConfigurationPage-jugWslla.mjs.map +0 -1
- package/dist/admin/EditPage-6pGLGlrZ.mjs +0 -794
- package/dist/admin/EditPage-6pGLGlrZ.mjs.map +0 -1
- package/dist/admin/EditPage-I99-ASjb.mjs +0 -325
- package/dist/admin/EditPage-I99-ASjb.mjs.map +0 -1
- package/dist/admin/EditPage-NrM8ZRAf.mjs +0 -303
- package/dist/admin/EditPage-NrM8ZRAf.mjs.map +0 -1
- package/dist/admin/EditPage-ci9fcWte.js +0 -327
- package/dist/admin/EditPage-ci9fcWte.js.map +0 -1
- package/dist/admin/EditPage-fT6nuOwT.mjs +0 -260
- package/dist/admin/EditPage-fT6nuOwT.mjs.map +0 -1
- package/dist/admin/EditPage-hEDFGDcC.js +0 -822
- package/dist/admin/EditPage-hEDFGDcC.js.map +0 -1
- package/dist/admin/EditPage-m5HVhxC-.js +0 -286
- package/dist/admin/EditPage-m5HVhxC-.js.map +0 -1
- package/dist/admin/EditPage-um8Yysr-.js +0 -354
- package/dist/admin/EditPage-um8Yysr-.js.map +0 -1
- package/dist/admin/EditView-79rujo0b.mjs +0 -336
- package/dist/admin/EditView-79rujo0b.mjs.map +0 -1
- package/dist/admin/EditView-zEf-a-YM.js +0 -362
- package/dist/admin/EditView-zEf-a-YM.js.map +0 -1
- package/dist/admin/EditViewPage-BJdNfzBZ.mjs +0 -198
- package/dist/admin/EditViewPage-BJdNfzBZ.mjs.map +0 -1
- package/dist/admin/EditViewPage-Y67V7K7l.js +0 -226
- package/dist/admin/EditViewPage-Y67V7K7l.js.map +0 -1
- package/dist/admin/EditViewPage-iuq_KY3C.mjs +0 -846
- package/dist/admin/EditViewPage-iuq_KY3C.mjs.map +0 -1
- package/dist/admin/EditViewPage-vrE8FNb1.js +0 -879
- package/dist/admin/EditViewPage-vrE8FNb1.js.map +0 -1
- package/dist/admin/EventsTable-LOh2EX0N.mjs +0 -32
- package/dist/admin/EventsTable-LOh2EX0N.mjs.map +0 -1
- package/dist/admin/EventsTable-bm16Pj4a.js +0 -36
- package/dist/admin/EventsTable-bm16Pj4a.js.map +0 -1
- package/dist/admin/FieldTypeIcon-SCwhXPf6.mjs +0 -50
- package/dist/admin/FieldTypeIcon-SCwhXPf6.mjs.map +0 -1
- package/dist/admin/FieldTypeIcon-u9dTaLwb.js +0 -52
- package/dist/admin/FieldTypeIcon-u9dTaLwb.js.map +0 -1
- package/dist/admin/Filters-5FAHd62q.js +0 -511
- package/dist/admin/Filters-5FAHd62q.js.map +0 -1
- package/dist/admin/Filters-hYfcsahl.mjs +0 -489
- package/dist/admin/Filters-hYfcsahl.mjs.map +0 -1
- package/dist/admin/Form-7gccxUtH.mjs +0 -739
- package/dist/admin/Form-7gccxUtH.mjs.map +0 -1
- package/dist/admin/Form-m0qUJusG.js +0 -767
- package/dist/admin/Form-m0qUJusG.js.map +0 -1
- package/dist/admin/History-UVk6YZaL.js +0 -456
- package/dist/admin/History-UVk6YZaL.js.map +0 -1
- package/dist/admin/History-gNttF1-u.mjs +0 -430
- package/dist/admin/History-gNttF1-u.mjs.map +0 -1
- package/dist/admin/HomePage-2q7ngwX4.mjs +0 -11
- package/dist/admin/HomePage-2q7ngwX4.mjs.map +0 -1
- package/dist/admin/HomePage-_eHszm7N.mjs +0 -521
- package/dist/admin/HomePage-_eHszm7N.mjs.map +0 -1
- package/dist/admin/HomePage-jwm3AAzI.js +0 -530
- package/dist/admin/HomePage-jwm3AAzI.js.map +0 -1
- package/dist/admin/HomePage-ozwWqZdZ.js +0 -15
- package/dist/admin/HomePage-ozwWqZdZ.js.map +0 -1
- package/dist/admin/InputRenderer-tdeZayqM.js +0 -5345
- package/dist/admin/InputRenderer-tdeZayqM.js.map +0 -1
- package/dist/admin/InputRenderer-uXGu-VvL.mjs +0 -5304
- package/dist/admin/InputRenderer-uXGu-VvL.mjs.map +0 -1
- package/dist/admin/InstalledPluginsPage-rGp1BINi.mjs +0 -101
- package/dist/admin/InstalledPluginsPage-rGp1BINi.mjs.map +0 -1
- package/dist/admin/InstalledPluginsPage-relNbZiA.js +0 -126
- package/dist/admin/InstalledPluginsPage-relNbZiA.js.map +0 -1
- package/dist/admin/Layout-JSg7Wwnx.mjs +0 -89
- package/dist/admin/Layout-JSg7Wwnx.mjs.map +0 -1
- package/dist/admin/Layout-gqm-mRb2.mjs +0 -209
- package/dist/admin/Layout-gqm-mRb2.mjs.map +0 -1
- package/dist/admin/Layout-rp7YlCuF.js +0 -237
- package/dist/admin/Layout-rp7YlCuF.js.map +0 -1
- package/dist/admin/Layout-tPXv8ts4.js +0 -97
- package/dist/admin/Layout-tPXv8ts4.js.map +0 -1
- package/dist/admin/ListConfigurationPage-1JkDop6y.mjs +0 -651
- package/dist/admin/ListConfigurationPage-1JkDop6y.mjs.map +0 -1
- package/dist/admin/ListConfigurationPage-egv99PTx.js +0 -679
- package/dist/admin/ListConfigurationPage-egv99PTx.js.map +0 -1
- package/dist/admin/ListPage-5VIwPlnG.js +0 -520
- package/dist/admin/ListPage-5VIwPlnG.js.map +0 -1
- package/dist/admin/ListPage-85XB15gk.js +0 -305
- package/dist/admin/ListPage-85XB15gk.js.map +0 -1
- package/dist/admin/ListPage-NG7c9Zx-.js +0 -313
- package/dist/admin/ListPage-NG7c9Zx-.js.map +0 -1
- package/dist/admin/ListPage-Wf8HxliA.js +0 -15
- package/dist/admin/ListPage-Wf8HxliA.js.map +0 -1
- package/dist/admin/ListPage-Y0vGfxO1.mjs +0 -492
- package/dist/admin/ListPage-Y0vGfxO1.mjs.map +0 -1
- package/dist/admin/ListPage-_1MCPNWC.mjs +0 -11
- package/dist/admin/ListPage-_1MCPNWC.mjs.map +0 -1
- package/dist/admin/ListPage-bdblB4wE.mjs +0 -338
- package/dist/admin/ListPage-bdblB4wE.mjs.map +0 -1
- package/dist/admin/ListPage-d0uTS6lH.js +0 -363
- package/dist/admin/ListPage-d0uTS6lH.js.map +0 -1
- package/dist/admin/ListPage-e0975Wh-.js +0 -568
- package/dist/admin/ListPage-e0975Wh-.js.map +0 -1
- package/dist/admin/ListPage-eMKRFxzM.mjs +0 -288
- package/dist/admin/ListPage-eMKRFxzM.mjs.map +0 -1
- package/dist/admin/ListPage-tFqx6zb_.mjs +0 -540
- package/dist/admin/ListPage-tFqx6zb_.mjs.map +0 -1
- package/dist/admin/ListPage-v07yRAHk.mjs +0 -277
- package/dist/admin/ListPage-v07yRAHk.mjs.map +0 -1
- package/dist/admin/ListView-9shnR2xp.mjs +0 -212
- package/dist/admin/ListView-9shnR2xp.mjs.map +0 -1
- package/dist/admin/ListView-IaEe1_Uy.js +0 -238
- package/dist/admin/ListView-IaEe1_Uy.js.map +0 -1
- package/dist/admin/ListView-_EZZ571X.js +0 -228
- package/dist/admin/ListView-_EZZ571X.js.map +0 -1
- package/dist/admin/ListView-z9G1Eash.mjs +0 -202
- package/dist/admin/ListView-z9G1Eash.mjs.map +0 -1
- package/dist/admin/ListViewPage-FE12IpwT.mjs +0 -925
- package/dist/admin/ListViewPage-FE12IpwT.mjs.map +0 -1
- package/dist/admin/ListViewPage-u5WSF93L.js +0 -957
- package/dist/admin/ListViewPage-u5WSF93L.js.map +0 -1
- package/dist/admin/Login-9iKNSYCJ.mjs +0 -31
- package/dist/admin/Login-9iKNSYCJ.mjs.map +0 -1
- package/dist/admin/Login-ug0ICazL.js +0 -39
- package/dist/admin/Login-ug0ICazL.js.map +0 -1
- package/dist/admin/MagicLinkEE-3a4aj5bM.mjs +0 -27
- package/dist/admin/MagicLinkEE-3a4aj5bM.mjs.map +0 -1
- package/dist/admin/MagicLinkEE-TlpYCgSF.js +0 -31
- package/dist/admin/MagicLinkEE-TlpYCgSF.js.map +0 -1
- package/dist/admin/MarketplacePage-BBs4GMeX.mjs +0 -1014
- package/dist/admin/MarketplacePage-BBs4GMeX.mjs.map +0 -1
- package/dist/admin/MarketplacePage-GuZItQkJ.js +0 -1045
- package/dist/admin/MarketplacePage-GuZItQkJ.js.map +0 -1
- package/dist/admin/NoContentTypePage-MI-TNgDm.mjs +0 -50
- package/dist/admin/NoContentTypePage-MI-TNgDm.mjs.map +0 -1
- package/dist/admin/NoContentTypePage-WM9PSeKc.js +0 -54
- package/dist/admin/NoContentTypePage-WM9PSeKc.js.map +0 -1
- package/dist/admin/NoPermissionsPage-K6eIf5zl.mjs +0 -23
- package/dist/admin/NoPermissionsPage-K6eIf5zl.mjs.map +0 -1
- package/dist/admin/NoPermissionsPage-PP92ItBk.js +0 -27
- package/dist/admin/NoPermissionsPage-PP92ItBk.js.map +0 -1
- package/dist/admin/NotAllowed-9d8xvtvI.mjs +0 -36
- package/dist/admin/NotAllowed-9d8xvtvI.mjs.map +0 -1
- package/dist/admin/NotAllowed-FmDlK9I3.js +0 -42
- package/dist/admin/NotAllowed-FmDlK9I3.js.map +0 -1
- package/dist/admin/Ornaments-fHu7120M.js +0 -214
- package/dist/admin/Ornaments-fHu7120M.js.map +0 -1
- package/dist/admin/Permissions-jsl-R7bI.js +0 -2082
- package/dist/admin/Permissions-jsl-R7bI.js.map +0 -1
- package/dist/admin/Permissions-v99MLjbi.mjs +0 -2046
- package/dist/admin/Permissions-v99MLjbi.mjs.map +0 -1
- package/dist/admin/PrivateRoute-AFoVG5Bk.js +0 -22
- package/dist/admin/PrivateRoute-AFoVG5Bk.js.map +0 -1
- package/dist/admin/PrivateRoute-XiRz2oSq.mjs +0 -20
- package/dist/admin/PrivateRoute-XiRz2oSq.mjs.map +0 -1
- package/dist/admin/ProfilePage-HjJiMiTt.mjs +0 -391
- package/dist/admin/ProfilePage-HjJiMiTt.mjs.map +0 -1
- package/dist/admin/ProfilePage-wGM1mvXn.js +0 -419
- package/dist/admin/ProfilePage-wGM1mvXn.js.map +0 -1
- package/dist/admin/PurchaseAuditLogs-Rrl9r1j8.mjs +0 -48
- package/dist/admin/PurchaseAuditLogs-Rrl9r1j8.mjs.map +0 -1
- package/dist/admin/PurchaseAuditLogs-couRts7-.js +0 -52
- package/dist/admin/PurchaseAuditLogs-couRts7-.js.map +0 -1
- package/dist/admin/PurchaseReviewWorkflows--btlOW_J.mjs +0 -51
- package/dist/admin/PurchaseReviewWorkflows--btlOW_J.mjs.map +0 -1
- package/dist/admin/PurchaseReviewWorkflows-iyB5BJRO.js +0 -55
- package/dist/admin/PurchaseReviewWorkflows-iyB5BJRO.js.map +0 -1
- package/dist/admin/PurchaseSingleSignOn-L8l1HqSb.mjs +0 -51
- package/dist/admin/PurchaseSingleSignOn-L8l1HqSb.mjs.map +0 -1
- package/dist/admin/PurchaseSingleSignOn-oXrB5aDz.js +0 -55
- package/dist/admin/PurchaseSingleSignOn-oXrB5aDz.js.map +0 -1
- package/dist/admin/ReviewWorkflowsColumn-NUu47oVz.mjs +0 -34
- package/dist/admin/ReviewWorkflowsColumn-NUu47oVz.mjs.map +0 -1
- package/dist/admin/ReviewWorkflowsColumn-uIqJfjyd.js +0 -39
- package/dist/admin/ReviewWorkflowsColumn-uIqJfjyd.js.map +0 -1
- package/dist/admin/SelectRoles-5vr-vXOm.js +0 -114
- package/dist/admin/SelectRoles-5vr-vXOm.js.map +0 -1
- package/dist/admin/SelectRoles-ytHc3di2.mjs +0 -106
- package/dist/admin/SelectRoles-ytHc3di2.mjs.map +0 -1
- package/dist/admin/SingleSignOnPage-1Wqj_7y-.js +0 -263
- package/dist/admin/SingleSignOnPage-1Wqj_7y-.js.map +0 -1
- package/dist/admin/SingleSignOnPage-7oJES3UH.mjs +0 -238
- package/dist/admin/SingleSignOnPage-7oJES3UH.mjs.map +0 -1
- package/dist/admin/Table-LQhGojNx.mjs +0 -165
- package/dist/admin/Table-LQhGojNx.mjs.map +0 -1
- package/dist/admin/Table-M5UsBfFs.js +0 -190
- package/dist/admin/Table-M5UsBfFs.js.map +0 -1
- package/dist/admin/TokenTypeSelect-5o9mvFd7.mjs +0 -357
- package/dist/admin/TokenTypeSelect-5o9mvFd7.mjs.map +0 -1
- package/dist/admin/TokenTypeSelect-ZBDI26vJ.js +0 -385
- package/dist/admin/TokenTypeSelect-ZBDI26vJ.js.map +0 -1
- package/dist/admin/UseCasePage-e7rn-aW-.mjs +0 -146
- package/dist/admin/UseCasePage-e7rn-aW-.mjs.map +0 -1
- package/dist/admin/UseCasePage-q3u-xs7F.js +0 -175
- package/dist/admin/UseCasePage-q3u-xs7F.js.map +0 -1
- package/dist/admin/apiTokens-_gKUBKPQ.js +0 -62
- package/dist/admin/apiTokens-_gKUBKPQ.js.map +0 -1
- package/dist/admin/apiTokens-nD8zbNlc.mjs +0 -56
- package/dist/admin/apiTokens-nD8zbNlc.mjs.map +0 -1
- package/dist/admin/ar-i6ait0_Z.js +0 -939
- package/dist/admin/ar-i6ait0_Z.js.map +0 -1
- package/dist/admin/ar-lYsknZVT.mjs +0 -918
- package/dist/admin/ar-lYsknZVT.mjs.map +0 -1
- package/dist/admin/ca-1Cl4eOmr.js +0 -727
- package/dist/admin/ca-1Cl4eOmr.js.map +0 -1
- package/dist/admin/ca-ruPjUw52.mjs +0 -709
- package/dist/admin/ca-ruPjUw52.mjs.map +0 -1
- package/dist/admin/constants-6E1OwHx7.js +0 -197
- package/dist/admin/constants-6E1OwHx7.js.map +0 -1
- package/dist/admin/constants-AdKxCt0x.mjs +0 -52
- package/dist/admin/constants-AdKxCt0x.mjs.map +0 -1
- package/dist/admin/constants-D6NLEhwu.mjs +0 -172
- package/dist/admin/constants-D6NLEhwu.mjs.map +0 -1
- package/dist/admin/constants-DxpaZFhM.mjs +0 -10
- package/dist/admin/constants-DxpaZFhM.mjs.map +0 -1
- package/dist/admin/constants-ZZWbRAQT.js +0 -60
- package/dist/admin/constants-ZZWbRAQT.js.map +0 -1
- package/dist/admin/constants-wsN7Fj5H.js +0 -14
- package/dist/admin/constants-wsN7Fj5H.js.map +0 -1
- package/dist/admin/cs-MneRs5g8.js +0 -294
- package/dist/admin/cs-MneRs5g8.js.map +0 -1
- package/dist/admin/cs-cEW7Jgll.mjs +0 -281
- package/dist/admin/cs-cEW7Jgll.mjs.map +0 -1
- package/dist/admin/de-vPJQw5Tm.js +0 -719
- package/dist/admin/de-vPJQw5Tm.js.map +0 -1
- package/dist/admin/de-xZr3TXsT.mjs +0 -701
- package/dist/admin/de-xZr3TXsT.mjs.map +0 -1
- package/dist/admin/dk-_Fh6kypZ.js +0 -637
- package/dist/admin/dk-_Fh6kypZ.js.map +0 -1
- package/dist/admin/dk-nqK-ugFb.mjs +0 -619
- package/dist/admin/dk-nqK-ugFb.mjs.map +0 -1
- package/dist/admin/en-X84kQxpg.js +0 -1068
- package/dist/admin/en-X84kQxpg.js.map +0 -1
- package/dist/admin/en-qxG24n4z.mjs +0 -1047
- package/dist/admin/en-qxG24n4z.mjs.map +0 -1
- package/dist/admin/es-6dicYJQA.mjs +0 -779
- package/dist/admin/es-6dicYJQA.mjs.map +0 -1
- package/dist/admin/es-FC_8jlK7.js +0 -799
- package/dist/admin/es-FC_8jlK7.js.map +0 -1
- package/dist/admin/eu-Pzqod2VF.js +0 -835
- package/dist/admin/eu-Pzqod2VF.js.map +0 -1
- package/dist/admin/eu-l9nvfvQj.mjs +0 -815
- package/dist/admin/eu-l9nvfvQj.mjs.map +0 -1
- package/dist/admin/fr-8h2tzs3Z.js +0 -765
- package/dist/admin/fr-8h2tzs3Z.js.map +0 -1
- package/dist/admin/fr-97oVHDGZ.mjs +0 -744
- package/dist/admin/fr-97oVHDGZ.mjs.map +0 -1
- package/dist/admin/gu-YXP9LW1p.mjs +0 -617
- package/dist/admin/gu-YXP9LW1p.mjs.map +0 -1
- package/dist/admin/gu-fkXeW5oU.js +0 -626
- package/dist/admin/gu-fkXeW5oU.js.map +0 -1
- package/dist/admin/he-Rnd0orlz.mjs +0 -315
- package/dist/admin/he-Rnd0orlz.mjs.map +0 -1
- package/dist/admin/he-YNZzVWgP.js +0 -329
- package/dist/admin/he-YNZzVWgP.js.map +0 -1
- package/dist/admin/hi-42LJgJV1.mjs +0 -707
- package/dist/admin/hi-42LJgJV1.mjs.map +0 -1
- package/dist/admin/hi-ubgoUzQ0.js +0 -725
- package/dist/admin/hi-ubgoUzQ0.js.map +0 -1
- package/dist/admin/hu-oHJgjivB.js +0 -835
- package/dist/admin/hu-oHJgjivB.js.map +0 -1
- package/dist/admin/hu-xsansjmF.mjs +0 -815
- package/dist/admin/hu-xsansjmF.mjs.map +0 -1
- package/dist/admin/id-JurRr0gC.mjs +0 -438
- package/dist/admin/id-JurRr0gC.mjs.map +0 -1
- package/dist/admin/id-T2ge96wh.js +0 -451
- package/dist/admin/id-T2ge96wh.js.map +0 -1
- package/dist/admin/index-1NFAbkxM.mjs +0 -5927
- package/dist/admin/index-1NFAbkxM.mjs.map +0 -1
- package/dist/admin/index-mQQPK-ix.js +0 -6023
- package/dist/admin/index-mQQPK-ix.js.map +0 -1
- package/dist/admin/it-890_w-P3.mjs +0 -449
- package/dist/admin/it-890_w-P3.mjs.map +0 -1
- package/dist/admin/it-uWPMs24z.js +0 -462
- package/dist/admin/it-uWPMs24z.js.map +0 -1
- package/dist/admin/ja-F61alnK1.mjs +0 -618
- package/dist/admin/ja-F61alnK1.mjs.map +0 -1
- package/dist/admin/ja-pw-zE8MH.js +0 -636
- package/dist/admin/ja-pw-zE8MH.js.map +0 -1
- package/dist/admin/ko-DfQWK5T3.mjs +0 -616
- package/dist/admin/ko-DfQWK5T3.mjs.map +0 -1
- package/dist/admin/ko-XhK2FY3_.js +0 -634
- package/dist/admin/ko-XhK2FY3_.js.map +0 -1
- package/dist/admin/ml-EVaVYywL.mjs +0 -707
- package/dist/admin/ml-EVaVYywL.mjs.map +0 -1
- package/dist/admin/ml-hT2VI8JA.js +0 -725
- package/dist/admin/ml-hT2VI8JA.js.map +0 -1
- package/dist/admin/ms-CzgcVrsY.mjs +0 -332
- package/dist/admin/ms-CzgcVrsY.mjs.map +0 -1
- package/dist/admin/ms-DoMJCZ42.js +0 -345
- package/dist/admin/ms-DoMJCZ42.js.map +0 -1
- package/dist/admin/nl-LLi_sx9P.js +0 -831
- package/dist/admin/nl-LLi_sx9P.js.map +0 -1
- package/dist/admin/nl-XNqQYx_K.mjs +0 -811
- package/dist/admin/nl-XNqQYx_K.mjs.map +0 -1
- package/dist/admin/no-JwA1Lt4Y.mjs +0 -300
- package/dist/admin/no-JwA1Lt4Y.mjs.map +0 -1
- package/dist/admin/no-wmtVIVuz.js +0 -313
- package/dist/admin/no-wmtVIVuz.js.map +0 -1
- package/dist/admin/pl-05ncDTwZ.js +0 -724
- package/dist/admin/pl-05ncDTwZ.js.map +0 -1
- package/dist/admin/pl-euPz4n1g.mjs +0 -706
- package/dist/admin/pl-euPz4n1g.mjs.map +0 -1
- package/dist/admin/pt-BR-vpbGYSYw.mjs +0 -777
- package/dist/admin/pt-BR-vpbGYSYw.mjs.map +0 -1
- package/dist/admin/pt-BR-xA4J5pi2.js +0 -797
- package/dist/admin/pt-BR-xA4J5pi2.js.map +0 -1
- package/dist/admin/pt-RlnkaSdF.mjs +0 -287
- package/dist/admin/pt-RlnkaSdF.mjs.map +0 -1
- package/dist/admin/pt-yArB6nEx.js +0 -299
- package/dist/admin/pt-yArB6nEx.js.map +0 -1
- package/dist/admin/reducers-IQWvK_9L.mjs +0 -4617
- package/dist/admin/reducers-IQWvK_9L.mjs.map +0 -1
- package/dist/admin/reducers-wZUQqmNX.js +0 -4764
- package/dist/admin/reducers-wZUQqmNX.js.map +0 -1
- package/dist/admin/ru-4bDDGI3o.js +0 -996
- package/dist/admin/ru-4bDDGI3o.js.map +0 -1
- package/dist/admin/ru-tyoEF5X6.mjs +0 -975
- package/dist/admin/ru-tyoEF5X6.mjs.map +0 -1
- package/dist/admin/sa-OOEUNg5o.js +0 -725
- package/dist/admin/sa-OOEUNg5o.js.map +0 -1
- package/dist/admin/sa-s-WVHU-Y.mjs +0 -707
- package/dist/admin/sa-s-WVHU-Y.mjs.map +0 -1
- package/dist/admin/selectors-PTHjHMQi.js +0 -8
- package/dist/admin/selectors-PTHjHMQi.js.map +0 -1
- package/dist/admin/selectors-nn3C3YKE.mjs +0 -6
- package/dist/admin/selectors-nn3C3YKE.mjs.map +0 -1
- package/dist/admin/sk-1sQSF-r2.js +0 -693
- package/dist/admin/sk-1sQSF-r2.js.map +0 -1
- package/dist/admin/sk-5bIrjuCN.mjs +0 -673
- package/dist/admin/sk-5bIrjuCN.mjs.map +0 -1
- package/dist/admin/src/components/InjectionZone.d.ts +0 -59
- package/dist/admin/src/content-manager/components/ComponentIcon.d.ts +0 -8
- package/dist/admin/src/content-manager/components/ConfigurationForm/EditFieldForm.d.ts +0 -9
- package/dist/admin/src/content-manager/components/ConfigurationForm/Fields.d.ts +0 -21
- package/dist/admin/src/content-manager/components/ConfigurationForm/Form.d.ts +0 -32
- package/dist/admin/src/content-manager/components/DragPreviews/CardDragPreview.d.ts +0 -7
- package/dist/admin/src/content-manager/components/DragPreviews/ComponentDragPreview.d.ts +0 -6
- package/dist/admin/src/content-manager/components/DragPreviews/RelationDragPreview.d.ts +0 -11
- package/dist/admin/src/content-manager/components/FieldTypeIcon.d.ts +0 -9
- package/dist/admin/src/content-manager/components/LeftMenu.d.ts +0 -2
- package/dist/admin/src/content-manager/constants/attributes.d.ts +0 -14
- package/dist/admin/src/content-manager/constants/collections.d.ts +0 -3
- package/dist/admin/src/content-manager/constants/dragAndDrop.d.ts +0 -8
- package/dist/admin/src/content-manager/exports.d.ts +0 -10
- package/dist/admin/src/content-manager/features/DocumentRBAC.d.ts +0 -36
- package/dist/admin/src/content-manager/history/components/HistoryAction.d.ts +0 -3
- package/dist/admin/src/content-manager/history/components/VersionContent.d.ts +0 -2
- package/dist/admin/src/content-manager/history/components/VersionHeader.d.ts +0 -5
- package/dist/admin/src/content-manager/history/components/VersionsList.d.ts +0 -2
- package/dist/admin/src/content-manager/history/pages/History.d.ts +0 -25
- package/dist/admin/src/content-manager/history/routes.d.ts +0 -11
- package/dist/admin/src/content-manager/history/services/historyVersion.d.ts +0 -7
- package/dist/admin/src/content-manager/hooks/useContentManagerInitData.d.ts +0 -15
- package/dist/admin/src/content-manager/hooks/useContentTypeSchema.d.ts +0 -24
- package/dist/admin/src/content-manager/hooks/useDocument.d.ts +0 -89
- package/dist/admin/src/content-manager/hooks/useDocumentActions.d.ts +0 -102
- package/dist/admin/src/content-manager/hooks/useDocumentLayout.d.ts +0 -138
- package/dist/admin/src/content-manager/hooks/useDragAndDrop.d.ts +0 -51
- package/dist/admin/src/content-manager/hooks/useKeyboardDragAndDrop.d.ts +0 -14
- package/dist/admin/src/content-manager/hooks/useLazyComponents.d.ts +0 -13
- package/dist/admin/src/content-manager/hooks/useSyncRbac.d.ts +0 -15
- package/dist/admin/src/content-manager/layout.d.ts +0 -16
- package/dist/admin/src/content-manager/modules/rbac.d.ts +0 -14
- package/dist/admin/src/content-manager/modules/reducers.d.ts +0 -4
- package/dist/admin/src/content-manager/pages/ComponentConfigurationPage.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditConfigurationPage.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/EditViewPage.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/DocumentActions.d.ts +0 -69
- package/dist/admin/src/content-manager/pages/EditView/components/DocumentStatus.d.ts +0 -16
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Paragraph.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.d.ts +0 -6
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.d.ts +0 -61
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Modifiers.d.ts +0 -16
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/plugins/withImages.d.ts +0 -11
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/plugins/withLinks.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.d.ts +0 -8
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/conversions.d.ts +0 -13
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/enterKey.d.ts +0 -6
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/links.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/types.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Component/Initializer.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Component/Input.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Component/NonRepeatable.d.ts +0 -6
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Component/Repeatable.d.ts +0 -6
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/ComponentContext.d.ts +0 -42
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/AddComponentButton.d.ts +0 -11
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/ComponentCard.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.d.ts +0 -17
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.d.ts +0 -14
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/DynamicZoneLabel.d.ts +0 -12
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +0 -13
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/NotAllowed.d.ts +0 -7
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Relations.d.ts +0 -26
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/UID.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/Editor.d.ts +0 -18
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.d.ts +0 -59
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/Field.d.ts +0 -11
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.d.ts +0 -5
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.d.ts +0 -7
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.d.ts +0 -17
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +0 -54
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.d.ts +0 -5
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.d.ts +0 -4
- package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.d.ts +0 -16
- package/dist/admin/src/content-manager/pages/EditView/components/FormLayout.d.ts +0 -5
- package/dist/admin/src/content-manager/pages/EditView/components/Header.d.ts +0 -35
- package/dist/admin/src/content-manager/pages/EditView/components/InputRenderer.d.ts +0 -14
- package/dist/admin/src/content-manager/pages/EditView/components/Panels.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/EditView/utils/data.d.ts +0 -20
- package/dist/admin/src/content-manager/pages/EditView/utils/forms.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/ListConfiguration/ListConfigurationPage.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/ListConfiguration/components/DraggableCard.d.ts +0 -12
- package/dist/admin/src/content-manager/pages/ListConfiguration/components/EditFieldForm.d.ts +0 -8
- package/dist/admin/src/content-manager/pages/ListConfiguration/components/Header.d.ts +0 -8
- package/dist/admin/src/content-manager/pages/ListConfiguration/components/Settings.d.ts +0 -5
- package/dist/admin/src/content-manager/pages/ListConfiguration/components/SortDisplayedFields.d.ts +0 -6
- package/dist/admin/src/content-manager/pages/ListView/ListViewPage.d.ts +0 -3
- package/dist/admin/src/content-manager/pages/ListView/components/AutoCloneFailureModal.d.ts +0 -8
- package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/Actions.d.ts +0 -52
- package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.d.ts +0 -15
- package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/PublishAction.d.ts +0 -31
- package/dist/admin/src/content-manager/pages/ListView/components/Filters.d.ts +0 -8
- package/dist/admin/src/content-manager/pages/ListView/components/InjectionZoneList.d.ts +0 -7
- package/dist/admin/src/content-manager/pages/ListView/components/TableActions.d.ts +0 -8
- package/dist/admin/src/content-manager/pages/ListView/components/TableCells/CellContent.d.ts +0 -9
- package/dist/admin/src/content-manager/pages/ListView/components/TableCells/CellValue.d.ts +0 -8
- package/dist/admin/src/content-manager/pages/ListView/components/TableCells/Components.d.ts +0 -12
- package/dist/admin/src/content-manager/pages/ListView/components/TableCells/Media.d.ts +0 -23
- package/dist/admin/src/content-manager/pages/ListView/components/TableCells/Relations.d.ts +0 -12
- package/dist/admin/src/content-manager/pages/ListView/components/ViewSettingsMenu.d.ts +0 -10
- package/dist/admin/src/content-manager/pages/NoContentTypePage.d.ts +0 -2
- package/dist/admin/src/content-manager/pages/NoPermissionsPage.d.ts +0 -2
- package/dist/admin/src/content-manager/router.d.ts +0 -5
- package/dist/admin/src/content-manager/services/api.d.ts +0 -3
- package/dist/admin/src/content-manager/services/components.d.ts +0 -6
- package/dist/admin/src/content-manager/services/contentTypes.d.ts +0 -18
- package/dist/admin/src/content-manager/services/documents.d.ts +0 -94
- package/dist/admin/src/content-manager/services/init.d.ts +0 -10
- package/dist/admin/src/content-manager/services/relations.d.ts +0 -49
- package/dist/admin/src/content-manager/services/uid.d.ts +0 -32
- package/dist/admin/src/content-manager/utils/api.d.ts +0 -19
- package/dist/admin/src/content-manager/utils/attributes.d.ts +0 -19
- package/dist/admin/src/content-manager/utils/relations.d.ts +0 -12
- package/dist/admin/src/content-manager/utils/translations.d.ts +0 -2
- package/dist/admin/src/content-manager/utils/validation.d.ts +0 -7
- package/dist/admin/src/core/apis/content-manager.d.ts +0 -126
- package/dist/admin/src/hooks/useInjectionZone.d.ts +0 -2
- package/dist/admin/src/pages/Settings/pages/PurchaseReviewWorkflows.d.ts +0 -2
- package/dist/admin/src/utils/getYupInnerErrors.d.ts +0 -7
- package/dist/admin/src/utils/hashAdminUserEmail.d.ts +0 -6
- package/dist/admin/sv-JVgQU2PS.mjs +0 -810
- package/dist/admin/sv-JVgQU2PS.mjs.map +0 -1
- package/dist/admin/sv-d0rqYiHZ.js +0 -830
- package/dist/admin/sv-d0rqYiHZ.js.map +0 -1
- package/dist/admin/th-er8qvbeL.mjs +0 -420
- package/dist/admin/th-er8qvbeL.mjs.map +0 -1
- package/dist/admin/th-mqExIzdv.js +0 -433
- package/dist/admin/th-mqExIzdv.js.map +0 -1
- package/dist/admin/tr-aYPucbUC.js +0 -788
- package/dist/admin/tr-aYPucbUC.js.map +0 -1
- package/dist/admin/tr-b2vrBJ49.mjs +0 -768
- package/dist/admin/tr-b2vrBJ49.mjs.map +0 -1
- package/dist/admin/transferTokens-P5z1yVh2.js +0 -65
- package/dist/admin/transferTokens-P5z1yVh2.js.map +0 -1
- package/dist/admin/transferTokens-PlBVZdw3.mjs +0 -59
- package/dist/admin/transferTokens-PlBVZdw3.mjs.map +0 -1
- package/dist/admin/uk-1c7KIaI6.js +0 -346
- package/dist/admin/uk-1c7KIaI6.js.map +0 -1
- package/dist/admin/uk-RfkbT49M.mjs +0 -333
- package/dist/admin/uk-RfkbT49M.mjs.map +0 -1
- package/dist/admin/useAdminRoles-BG7b996L.mjs +0 -28
- package/dist/admin/useAdminRoles-BG7b996L.mjs.map +0 -1
- package/dist/admin/useAdminRoles-THWXour6.js +0 -50
- package/dist/admin/useAdminRoles-THWXour6.js.map +0 -1
- package/dist/admin/useContentTypes-PEGh0Cg-.mjs +0 -51
- package/dist/admin/useContentTypes-PEGh0Cg-.mjs.map +0 -1
- package/dist/admin/useContentTypes-RoSvxizj.js +0 -73
- package/dist/admin/useContentTypes-RoSvxizj.js.map +0 -1
- package/dist/admin/useDebounce-OnUygPz6.mjs +0 -17
- package/dist/admin/useDebounce-OnUygPz6.mjs.map +0 -1
- package/dist/admin/useDebounce-tz5EMJbt.js +0 -39
- package/dist/admin/useDebounce-tz5EMJbt.js.map +0 -1
- package/dist/admin/useDocumentLayout-4trWL6Jz.mjs +0 -732
- package/dist/admin/useDocumentLayout-4trWL6Jz.mjs.map +0 -1
- package/dist/admin/useDocumentLayout-V_N5dUwQ.js +0 -764
- package/dist/admin/useDocumentLayout-V_N5dUwQ.js.map +0 -1
- package/dist/admin/useLicenseLimitNotification-9DqSZuyc.mjs +0 -80
- package/dist/admin/useLicenseLimitNotification-9DqSZuyc.mjs.map +0 -1
- package/dist/admin/useLicenseLimitNotification-SiWQ5LGo.js +0 -105
- package/dist/admin/useLicenseLimitNotification-SiWQ5LGo.js.map +0 -1
- package/dist/admin/useReviewWorkflows-0ty4mwQd.js +0 -29
- package/dist/admin/useReviewWorkflows-0ty4mwQd.js.map +0 -1
- package/dist/admin/useReviewWorkflows-HwyFyit7.mjs +0 -27
- package/dist/admin/useReviewWorkflows-HwyFyit7.mjs.map +0 -1
- package/dist/admin/useSyncRbac-LNOzRXJ5.mjs +0 -45
- package/dist/admin/useSyncRbac-LNOzRXJ5.mjs.map +0 -1
- package/dist/admin/useSyncRbac-vkWgDJTE.js +0 -67
- package/dist/admin/useSyncRbac-vkWgDJTE.js.map +0 -1
- package/dist/admin/useWebhooks-DmGNXCdi.js +0 -93
- package/dist/admin/useWebhooks-DmGNXCdi.js.map +0 -1
- package/dist/admin/useWebhooks-dOVyaYlw.mjs +0 -91
- package/dist/admin/useWebhooks-dOVyaYlw.mjs.map +0 -1
- package/dist/admin/validateWorkflow-99y3bkNx.js +0 -1077
- package/dist/admin/validateWorkflow-99y3bkNx.js.map +0 -1
- package/dist/admin/validateWorkflow-ubLwZqCK.mjs +0 -1033
- package/dist/admin/validateWorkflow-ubLwZqCK.mjs.map +0 -1
- package/dist/admin/validation-cpJKCQz1.mjs +0 -43
- package/dist/admin/validation-cpJKCQz1.mjs.map +0 -1
- package/dist/admin/validation-lIVymZ0n.js +0 -65
- package/dist/admin/validation-lIVymZ0n.js.map +0 -1
- package/dist/admin/vi-Rg9es0FD.js +0 -301
- package/dist/admin/vi-Rg9es0FD.js.map +0 -1
- package/dist/admin/vi-pyngavdo.mjs +0 -288
- package/dist/admin/vi-pyngavdo.mjs.map +0 -1
- package/dist/admin/zh-Hans-Gbpdme1Q.mjs +0 -939
- package/dist/admin/zh-Hans-Gbpdme1Q.mjs.map +0 -1
- package/dist/admin/zh-Hans-SgnidiuG.js +0 -960
- package/dist/admin/zh-Hans-SgnidiuG.js.map +0 -1
- package/dist/admin/zh-ONWhjzCj.js +0 -839
- package/dist/admin/zh-ONWhjzCj.js.map +0 -1
- package/dist/admin/zh-fMjW2qMl.mjs +0 -819
- package/dist/admin/zh-fMjW2qMl.mjs.map +0 -1
- package/dist/ee/admin/src/content-manager/pages/EditView/components/AssigneeSelect.d.ts +0 -2
- package/dist/ee/admin/src/content-manager/pages/EditView/components/ReviewWorkflowsPanel.d.ts +0 -3
- package/dist/ee/admin/src/content-manager/pages/EditView/components/StageSelect.d.ts +0 -1
- package/dist/ee/admin/src/content-manager/pages/EditView/components/constants.d.ts +0 -2
- package/dist/ee/admin/src/content-manager/pages/ListSettingsView/constants.d.ts +0 -7
- package/dist/ee/admin/src/content-manager/pages/ListView/components/AssigneeFilter.d.ts +0 -7
- package/dist/ee/admin/src/content-manager/pages/ListView/components/ReviewWorkflowsAssigneeEE.d.ts +0 -7
- package/dist/ee/admin/src/content-manager/pages/ListView/components/ReviewWorkflowsColumn.d.ts +0 -2
- package/dist/ee/admin/src/content-manager/pages/ListView/components/ReviewWorkflowsStageEE.d.ts +0 -7
- package/dist/ee/admin/src/content-manager/pages/ListView/components/StageFilter.d.ts +0 -8
- package/dist/ee/admin/src/content-manager/pages/ListView/constants.d.ts +0 -69
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/CreatePage.d.ts +0 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/EditPage.d.ts +0 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/ListPage.d.ts +0 -2
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/actions.d.ts +0 -86
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/AddStage.d.ts +0 -2
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/Layout.d.ts +0 -12
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/LimitsModal.d.ts +0 -15
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/Stage.d.ts +0 -10
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/StageDragPreview.d.ts +0 -4
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/Stages.d.ts +0 -7
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/WorkflowAttributes.d.ts +0 -4
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/constants.d.ts +0 -20
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows.d.ts +0 -15
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/reducer.d.ts +0 -38
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/selectors.d.ts +0 -62
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/utils/colors.d.ts +0 -8
- package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/utils/validateWorkflow.d.ts +0 -5
- package/dist/ee/admin/src/services/reviewWorkflows.d.ts +0 -39
- package/dist/shared/contracts/review-workflows.d.ts +0 -83
- package/dist/shared/contracts/review-workflows.d.ts.map +0 -1
- /package/dist/admin/src/{content-manager/hooks → hooks}/usePrev.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InputRenderer-tdeZayqM.js","sources":["../../admin/src/content-manager/hooks/useLazyComponents.ts","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/conversions.ts","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/enterKey.ts","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/links.ts","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/types.ts","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/List.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Paragraph.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Blocks/Quote.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/Modifiers.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/plugins/withImages.ts","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/plugins/withLinks.ts","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.ts","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.tsx","../../admin/src/content-manager/pages/EditView/utils/data.ts","../../admin/src/content-manager/pages/EditView/utils/forms.ts","../../admin/src/content-manager/pages/EditView/components/FormInputs/Component/Initializer.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/Component/NonRepeatable.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/Component/Repeatable.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/Component/Input.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/AddComponentButton.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/DynamicZoneLabel.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/DynamicZone/Field.tsx","../../admin/src/content-manager/services/uid.ts","../../admin/src/content-manager/pages/EditView/components/FormInputs/UID.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.ts","../../admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.ts","../../admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/Editor.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/utils/utils.ts","../../admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.tsx","../../admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/Field.tsx","../../admin/src/content-manager/pages/EditView/components/InputRenderer.tsx"],"sourcesContent":["import { ComponentType, useCallback, useEffect, useState } from 'react';\n\nimport { type CustomField } from '../../core/apis/CustomFields';\nimport { useStrapiApp } from '../../features/StrapiApp';\n\nconst componentStore = new Map<string, ComponentType | undefined>();\n\ntype LazyComponentStore = Record<string, ComponentType | undefined>;\n\ninterface UseLazyComponentsReturn {\n isLazyLoading: boolean;\n lazyComponentStore: LazyComponentStore;\n cleanup: () => void;\n}\n\n/**\n * @description A hook to lazy load custom field components\n */\nconst useLazyComponents = (componentUids: string[] = []): UseLazyComponentsReturn => {\n const [lazyComponentStore, setLazyComponentStore] = useState(Object.fromEntries(componentStore));\n /**\n * Start loading only if there are any components passed in\n * and there are some new to load\n */\n const newUids = componentUids.filter((uid) => !componentStore.get(uid));\n const [loading, setLoading] = useState(() => !!newUids.length);\n const getCustomField = useStrapiApp('useLazyComponents', (state) => state.customFields.get);\n\n useEffect(() => {\n const setStore = (store: Record<string, ComponentType | undefined>) => {\n setLazyComponentStore(store);\n setLoading(false);\n };\n\n const lazyLoadComponents = async (\n uids: string[],\n components: Array<ReturnType<CustomField['components']['Input']>>\n ) => {\n const modules = await Promise.all(components);\n\n uids.forEach((uid, index) => {\n componentStore.set(uid, modules[index].default);\n });\n\n setStore(Object.fromEntries(componentStore));\n };\n\n if (newUids.length > 0) {\n setLoading(true);\n\n const componentPromises = newUids.reduce<\n Array<ReturnType<CustomField['components']['Input']>>\n >((arrayOfPromises, uid) => {\n const customField = getCustomField(uid);\n\n if (customField) {\n arrayOfPromises.push(customField.components.Input());\n }\n\n return arrayOfPromises;\n }, []);\n\n if (componentPromises.length > 0) {\n lazyLoadComponents(newUids, componentPromises);\n }\n }\n }, [newUids, getCustomField]);\n\n /**\n * Wrap this in a callback so it can be used in\n * effects to cleanup the cached store if required\n */\n const cleanup = useCallback(() => {\n componentStore.clear();\n setLazyComponentStore({});\n }, []);\n\n return { isLazyLoading: loading, lazyComponentStore, cleanup };\n};\n\nexport { useLazyComponents };\nexport type { UseLazyComponentsReturn, LazyComponentStore };\n","import * as React from 'react';\n\nimport { type Element, type Path, Editor, Transforms } from 'slate';\n\n/**\n * Extracts some logic that is common to most blocks' handleConvert functions.\n * @returns The path of the converted block\n */\nconst baseHandleConvert = <T extends Element>(\n editor: Editor,\n attributesToSet: Partial<T> & { type: T['type'] }\n): void | Path => {\n // If there is no selection, convert last inserted node\n const [_, lastNodePath] = Editor.last(editor, []);\n\n // If the selection is inside a list, split the list so that the modified block is outside of it\n Transforms.unwrapNodes(editor, {\n match: (node) => !Editor.isEditor(node) && node.type === 'list',\n split: true,\n at: editor.selection ?? lastNodePath,\n });\n\n // Make sure we get a block node, not an inline node\n const [, updatedLastNodePath] = Editor.last(editor, []);\n const entry = Editor.above(editor, {\n match: (node) => !Editor.isEditor(node) && node.type !== 'text' && node.type !== 'link',\n at: editor.selection ?? updatedLastNodePath,\n });\n\n if (!entry || Editor.isEditor(entry[0])) {\n return;\n }\n\n const [element, elementPath] = entry;\n\n Transforms.setNodes(\n editor,\n {\n ...getAttributesToClear(element),\n ...attributesToSet,\n } as Partial<Element>,\n { at: elementPath }\n );\n\n return elementPath;\n};\n\n/**\n * Set all attributes except type and children to null so that Slate deletes them\n */\nconst getAttributesToClear = (element: Element) => {\n const { children: _children, type: _type, ...extra } = element;\n\n const attributesToClear = Object.keys(extra).reduce(\n (currentAttributes, key) => ({ ...currentAttributes, [key]: null }),\n {}\n );\n\n return attributesToClear as Record<string, null>;\n};\n\nexport { baseHandleConvert, getAttributesToClear };\n","import { type Text, Editor, Node, Transforms } from 'slate';\n\nconst isText = (node: unknown): node is Text => {\n return Node.isNode(node) && !Editor.isEditor(node) && node.type === 'text';\n};\n\n/**\n * Inserts a line break the first time the user presses enter, and exits the node the second time.\n */\nconst pressEnterTwiceToExit = (editor: Editor) => {\n /**\n * To determine if we should break out of the node, check 2 things:\n * 1. If the cursor is at the end of the node\n * 2. If the last line of the node is empty\n */\n const nodeEntry = Editor.above(editor, {\n match: (node) => !Editor.isEditor(node) && !['link', 'text'].includes(node.type),\n });\n if (!nodeEntry || !editor.selection) {\n return;\n }\n const [node, nodePath] = nodeEntry;\n const isNodeEnd = Editor.isEnd(editor, editor.selection.anchor, nodePath);\n const lastTextNode = node.children.at(-1);\n const isEmptyLine = isText(lastTextNode) && lastTextNode.text.endsWith('\\n');\n\n if (isNodeEnd && isEmptyLine) {\n // Remove the last line break\n Transforms.delete(editor, { distance: 1, unit: 'character', reverse: true });\n // Break out of the node by creating a new paragraph\n Transforms.insertNodes(editor, {\n type: 'paragraph',\n children: [{ type: 'text', text: '' }],\n });\n return;\n }\n\n // Otherwise insert a new line within the node\n Transforms.insertText(editor, '\\n');\n\n // If there's nothing after the cursor, disable modifiers\n if (isNodeEnd) {\n ['bold', 'italic', 'underline', 'strikethrough', 'code'].forEach((modifier) => {\n Editor.removeMark(editor, modifier);\n });\n }\n};\n\nexport { pressEnterTwiceToExit };\n","import * as React from 'react';\n\nimport { Code } from '@strapi/icons';\nimport styled from 'styled-components';\n\nimport { type BlocksStore } from '../BlocksEditor';\nimport { baseHandleConvert } from '../utils/conversions';\nimport { pressEnterTwiceToExit } from '../utils/enterKey';\nimport { type Block } from '../utils/types';\n\nconst CodeBlock = styled.pre.attrs({ role: 'code' })`\n border-radius: ${({ theme }) => theme.borderRadius};\n background-color: ${({ theme }) => theme.colors.neutral100};\n max-width: 100%;\n overflow: auto;\n padding: ${({ theme }) => `${theme.spaces[3]} ${theme.spaces[4]}`};\n flex-shrink: 1;\n & > code {\n font-family: 'SF Mono', SFMono-Regular, ui-monospace, 'DejaVu Sans Mono', Menlo, Consolas,\n monospace;\n color: ${({ theme }) => theme.colors.neutral800};\n overflow: auto;\n max-width: 100%;\n }\n`;\n\nconst codeBlocks: Pick<BlocksStore, 'code'> = {\n code: {\n renderElement: (props) => (\n <CodeBlock {...props.attributes}>\n <code>{props.children}</code>\n </CodeBlock>\n ),\n icon: Code,\n label: {\n id: 'components.Blocks.blocks.code',\n defaultMessage: 'Code block',\n },\n matchNode: (node) => node.type === 'code',\n isInBlocksSelector: true,\n handleConvert(editor) {\n baseHandleConvert<Block<'code'>>(editor, { type: 'code' });\n },\n handleEnterKey(editor) {\n pressEnterTwiceToExit(editor);\n },\n snippets: ['```'],\n dragHandleTopMargin: '10px',\n },\n};\n\nexport { codeBlocks };\n","import * as React from 'react';\n\nimport { Typography } from '@strapi/design-system';\nimport {\n HeadingFive,\n HeadingFour,\n HeadingOne,\n HeadingSix,\n HeadingThree,\n HeadingTwo,\n} from '@strapi/icons';\nimport { Editor } from 'slate';\nimport styled from 'styled-components';\n\nimport { type BlocksStore } from '../BlocksEditor';\nimport { baseHandleConvert } from '../utils/conversions';\nimport { type Block } from '../utils/types';\n\nconst H1 = styled(Typography).attrs({ as: 'h1' })`\n font-size: ${42 / 16}rem;\n line-height: ${({ theme }) => theme.lineHeights[1]};\n`;\n\nconst H2 = styled(Typography).attrs({ as: 'h2' })`\n font-size: ${35 / 16}rem;\n line-height: ${({ theme }) => theme.lineHeights[1]};\n`;\n\nconst H3 = styled(Typography).attrs({ as: 'h3' })`\n font-size: ${29 / 16}rem;\n line-height: ${({ theme }) => theme.lineHeights[1]};\n`;\n\nconst H4 = styled(Typography).attrs({ as: 'h4' })`\n font-size: ${24 / 16}rem;\n line-height: ${({ theme }) => theme.lineHeights[1]};\n`;\n\nconst H5 = styled(Typography).attrs({ as: 'h5' })`\n font-size: ${20 / 16}rem;\n line-height: ${({ theme }) => theme.lineHeights[1]};\n`;\n\nconst H6 = styled(Typography).attrs({ as: 'h6' })`\n font-size: 1rem;\n line-height: ${({ theme }) => theme.lineHeights[1]};\n`;\n\n/**\n * Common handler for converting a node to a heading\n */\nconst handleConvertToHeading = (editor: Editor, level: Block<'heading'>['level']) => {\n baseHandleConvert<Block<'heading'>>(editor, { type: 'heading', level });\n};\n\nconst headingBlocks: Pick<\n BlocksStore,\n 'heading-one' | 'heading-two' | 'heading-three' | 'heading-four' | 'heading-five' | 'heading-six'\n> = {\n 'heading-one': {\n renderElement: (props) => <H1 {...props.attributes}>{props.children}</H1>,\n icon: HeadingOne,\n label: {\n id: 'components.Blocks.blocks.heading1',\n defaultMessage: 'Heading 1',\n },\n handleConvert: (editor) => handleConvertToHeading(editor, 1),\n matchNode: (node) => node.type === 'heading' && node.level === 1,\n isInBlocksSelector: true,\n snippets: ['#'],\n dragHandleTopMargin: '14px',\n },\n 'heading-two': {\n renderElement: (props) => <H2 {...props.attributes}>{props.children}</H2>,\n icon: HeadingTwo,\n label: {\n id: 'components.Blocks.blocks.heading2',\n defaultMessage: 'Heading 2',\n },\n handleConvert: (editor) => handleConvertToHeading(editor, 2),\n matchNode: (node) => node.type === 'heading' && node.level === 2,\n isInBlocksSelector: true,\n snippets: ['##'],\n dragHandleTopMargin: '10px',\n },\n 'heading-three': {\n renderElement: (props) => <H3 {...props.attributes}>{props.children}</H3>,\n icon: HeadingThree,\n label: {\n id: 'components.Blocks.blocks.heading3',\n defaultMessage: 'Heading 3',\n },\n handleConvert: (editor) => handleConvertToHeading(editor, 3),\n matchNode: (node) => node.type === 'heading' && node.level === 3,\n isInBlocksSelector: true,\n snippets: ['###'],\n dragHandleTopMargin: '7px',\n },\n 'heading-four': {\n renderElement: (props) => <H4 {...props.attributes}>{props.children}</H4>,\n icon: HeadingFour,\n label: {\n id: 'components.Blocks.blocks.heading4',\n defaultMessage: 'Heading 4',\n },\n handleConvert: (editor) => handleConvertToHeading(editor, 4),\n matchNode: (node) => node.type === 'heading' && node.level === 4,\n isInBlocksSelector: true,\n snippets: ['####'],\n dragHandleTopMargin: '4px',\n },\n 'heading-five': {\n renderElement: (props) => <H5 {...props.attributes}>{props.children}</H5>,\n icon: HeadingFive,\n label: {\n id: 'components.Blocks.blocks.heading5',\n defaultMessage: 'Heading 5',\n },\n handleConvert: (editor) => handleConvertToHeading(editor, 5),\n matchNode: (node) => node.type === 'heading' && node.level === 5,\n isInBlocksSelector: true,\n snippets: ['#####'],\n },\n 'heading-six': {\n renderElement: (props) => <H6 {...props.attributes}>{props.children}</H6>,\n icon: HeadingSix,\n label: {\n id: 'components.Blocks.blocks.heading6',\n defaultMessage: 'Heading 6',\n },\n handleConvert: (editor) => handleConvertToHeading(editor, 6),\n matchNode: (node) => node.type === 'heading' && node.level === 6,\n isInBlocksSelector: true,\n snippets: ['######'],\n dragHandleTopMargin: '-2px',\n },\n};\n\nexport { headingBlocks };\n","import * as React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { Picture } from '@strapi/icons';\nimport { type Element, Transforms, Editor } from 'slate';\nimport { useFocused, type RenderElementProps, useSelected } from 'slate-react';\nimport styled, { css } from 'styled-components';\n\nimport { useStrapiApp } from '../../../../../../../features/StrapiApp';\nimport { prefixFileUrlWithBackendUrl } from '../../../../../../../utils/urls';\nimport { useBlocksEditorContext, type BlocksStore } from '../BlocksEditor';\nimport { type Block } from '../utils/types';\n\nimport type { Schema } from '@strapi/types';\n\ninterface ImageWrapperProps extends React.ComponentProps<typeof Box> {\n isFocused: boolean;\n}\n\nconst ImageWrapper = styled(Flex)<ImageWrapperProps>`\n transition-property: box-shadow;\n transition-duration: 0.2s;\n ${(props) =>\n props.isFocused &&\n css`\n box-shadow: ${props.theme.colors.primary600} 0px 0px 0px 3px;\n `}\n\n & > img {\n height: auto;\n // The max-height is decided with the design team, the 56px is the height of the toolbar\n max-height: calc(512px - 56px);\n max-width: 100%;\n object-fit: contain;\n }\n`;\n\nconst IMAGE_SCHEMA_FIELDS = [\n 'name',\n 'alternativeText',\n 'url',\n 'caption',\n 'width',\n 'height',\n 'formats',\n 'hash',\n 'ext',\n 'mime',\n 'size',\n 'previewUrl',\n 'provider',\n 'provider_metadata',\n 'createdAt',\n 'updatedAt',\n];\n\nconst pick = <T extends object, K extends keyof T>(object: T, keys: K[]): Pick<T, K> => {\n const entries = keys.map((key) => [key, object[key]]);\n return Object.fromEntries(entries);\n};\n\n// Type guard to force TypeScript to narrow the type of the element in Blocks component\nconst isImage = (element: Element): element is Block<'image'> => {\n return element.type === 'image';\n};\n\n// Added a background color to the image wrapper to make it easier to recognize the image block\nconst Image = ({ attributes, children, element }: RenderElementProps) => {\n const editorIsFocused = useFocused();\n const imageIsSelected = useSelected();\n\n if (!isImage(element)) {\n return null;\n }\n const { url, alternativeText, width, height } = element.image;\n\n return (\n <Box {...attributes}>\n {children}\n <ImageWrapper\n background=\"neutral100\"\n contentEditable={false}\n justifyContent=\"center\"\n isFocused={editorIsFocused && imageIsSelected}\n hasRadius\n >\n <img src={url} alt={alternativeText} width={width} height={height} />\n </ImageWrapper>\n </Box>\n );\n};\n\nconst ImageDialog = () => {\n const [isOpen, setIsOpen] = React.useState(true);\n const { editor } = useBlocksEditorContext('ImageDialog');\n const components = useStrapiApp('ImageDialog', (state) => state.components);\n\n if (!components || !isOpen) return null;\n\n const MediaLibraryDialog = components['media-library'] as React.ComponentType<{\n allowedTypes: Schema.Attribute.MediaKind[];\n onClose: () => void;\n onSelectAssets: (_images: Schema.Attribute.MediaValue<true>) => void;\n }>;\n\n const insertImages = (images: Block<'image'>['image'][]) => {\n // If the selection is inside a list, split the list so that the modified block is outside of it\n Transforms.unwrapNodes(editor, {\n match: (node) => !Editor.isEditor(node) && node.type === 'list',\n split: true,\n });\n\n // Save the path of the node that is being replaced by an image to insert the images there later\n // It's the closest full block node above the selection\n const nodeEntryBeingReplaced = Editor.above(editor, {\n match(node) {\n if (Editor.isEditor(node)) return false;\n\n const isInlineNode = ['text', 'link'].includes(node.type);\n\n return !isInlineNode;\n },\n });\n\n if (!nodeEntryBeingReplaced) return;\n const [, pathToInsert] = nodeEntryBeingReplaced;\n\n // Remove the previous node that is being replaced by an image\n Transforms.removeNodes(editor);\n\n // Convert images to nodes and insert them\n const nodesToInsert = images.map((image) => {\n const imageNode: Block<'image'> = {\n type: 'image',\n image,\n children: [{ type: 'text', text: '' }],\n };\n return imageNode;\n });\n Transforms.insertNodes(editor, nodesToInsert, { at: pathToInsert });\n\n // Set the selection on the image since it was cleared by calling removeNodes\n Transforms.select(editor, pathToInsert);\n };\n\n const handleSelectAssets = (images: Schema.Attribute.MediaValue<true>) => {\n const formattedImages = images.map((image) => {\n // Create an object with imageSchema defined and exclude unnecessary props coming from media library config\n const expectedImage = pick(image, IMAGE_SCHEMA_FIELDS);\n\n const nodeImage: Block<'image'>['image'] = {\n ...expectedImage,\n alternativeText: expectedImage.alternativeText || expectedImage.name,\n url: prefixFileUrlWithBackendUrl(image.url),\n };\n\n return nodeImage;\n });\n\n insertImages(formattedImages);\n setIsOpen(false);\n };\n\n return (\n <MediaLibraryDialog\n allowedTypes={['images']}\n onClose={() => setIsOpen(false)}\n onSelectAssets={handleSelectAssets}\n />\n );\n};\n\nconst imageBlocks: Pick<BlocksStore, 'image'> = {\n image: {\n renderElement: (props) => <Image {...props} />,\n icon: Picture,\n label: {\n id: 'components.Blocks.blocks.image',\n defaultMessage: 'Image',\n },\n matchNode: (node) => node.type === 'image',\n isInBlocksSelector: true,\n handleBackspaceKey(editor) {\n // Prevent issue where the image remains when it's the only block in the document\n if (editor.children.length === 1) {\n Transforms.setNodes(editor, {\n type: 'paragraph',\n // @ts-expect-error we're only setting image as null so that Slate deletes it\n image: null,\n children: [{ type: 'text', text: '' }],\n });\n } else {\n Transforms.removeNodes(editor);\n }\n },\n handleEnterKey(editor) {\n Transforms.insertNodes(editor, {\n type: 'paragraph',\n children: [{ type: 'text', text: '' }],\n });\n },\n handleConvert: () => {\n // All the logic is managed inside the ImageDialog component,\n // because the blocks are only created when the user selects images in the modal and submits\n // and if he closes the modal, then no changes are made to the editor\n return () => <ImageDialog />;\n },\n snippets: ['!['],\n },\n};\n\nexport { imageBlocks };\n","import { Transforms, Editor, Element as SlateElement, Node, Range } from 'slate';\n\nimport { type Block } from './types';\n\nconst removeLink = (editor: Editor) => {\n Transforms.unwrapNodes(editor, {\n match: (node) => !Editor.isEditor(node) && SlateElement.isElement(node) && node.type === 'link',\n });\n};\n\nconst insertLink = (editor: Editor, { url }: { url: string }) => {\n if (editor.selection) {\n // We want to remove all link on the selection\n const linkNodes = Array.from(\n Editor.nodes(editor, {\n at: editor.selection,\n match: (node) => !Editor.isEditor(node) && node.type === 'link',\n })\n );\n\n linkNodes.forEach(([, path]) => {\n Transforms.unwrapNodes(editor, { at: path });\n });\n\n if (Range.isCollapsed(editor.selection)) {\n const link: Block<'link'> = {\n type: 'link',\n url: url ?? '',\n children: [{ type: 'text', text: url }],\n };\n\n Transforms.insertNodes(editor, link);\n } else {\n Transforms.wrapNodes(editor, { type: 'link', url: url ?? '' } as Block<'link'>, {\n split: true,\n });\n }\n }\n};\n\nconst editLink = (editor: Editor, link: { url: string; text: string }) => {\n const { url, text } = link;\n\n if (!editor.selection) {\n return;\n }\n\n const linkEntry = Editor.above(editor, {\n match: (node) => !Editor.isEditor(node) && node.type === 'link',\n });\n\n if (linkEntry) {\n const [, linkPath] = linkEntry;\n Transforms.setNodes(editor, { url }, { at: linkPath });\n\n // If link text is different, we remove the old text and insert the new one\n if (text !== '' && text !== Editor.string(editor, linkPath)) {\n const linkNodeChildrens = Array.from(Node.children(editor, linkPath, { reverse: true }));\n\n linkNodeChildrens.forEach(([, childPath]) => {\n Transforms.removeNodes(editor, { at: childPath });\n });\n\n Transforms.insertNodes(editor, [{ type: 'text', text }], { at: linkPath.concat(0) });\n }\n }\n};\n\nexport { insertLink, editLink, removeLink };\n","import type { Schema } from '@strapi/types';\nimport type { Element, Node } from 'slate';\n\ntype Block<T extends Element['type']> = Extract<Node, { type: T }>;\n\n// Wrap Object.entries to get the correct types\nconst getEntries = <T extends object>(object: T) =>\n Object.entries(object) as [keyof T, T[keyof T]][];\n\n// Wrap Object.keys to get the correct types\nconst getKeys = <T extends object>(object: T) => Object.keys(object) as (keyof T)[];\n\nconst isLinkNode = (element: Element): element is Schema.Attribute.LinkInlineNode => {\n return element.type === 'link';\n};\n\nconst isListNode = (element: Element): element is Schema.Attribute.ListBlockNode => {\n return element.type === 'list';\n};\n\nexport { type Block, getEntries, getKeys, isLinkNode, isListNode };\n","import * as React from 'react';\n\nimport {\n BaseLink,\n Button,\n Field,\n FieldInput,\n FieldLabel,\n Flex,\n Popover,\n useComposedRefs,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { Editor, Path, Range, Transforms } from 'slate';\nimport { type RenderElementProps, ReactEditor } from 'slate-react';\nimport styled from 'styled-components';\n\nimport { type BlocksStore, useBlocksEditorContext } from '../BlocksEditor';\nimport { editLink, removeLink } from '../utils/links';\nimport { isLinkNode, type Block } from '../utils/types';\n\nconst StyledBaseLink = styled(BaseLink)`\n text-decoration: none;\n`;\n\nconst RemoveButton = styled(Button)<{ visible: boolean }>`\n visibility: ${(props) => (props.visible ? 'visible' : 'hidden')};\n`;\n\ninterface LinkContentProps extends RenderElementProps {\n link: Block<'link'>;\n}\n\nconst LinkContent = React.forwardRef<HTMLAnchorElement, LinkContentProps>(\n ({ link, children, attributes }, forwardedRef) => {\n const { formatMessage } = useIntl();\n const { editor } = useBlocksEditorContext('Link');\n const path = ReactEditor.findPath(editor, link);\n const [popoverOpen, setPopoverOpen] = React.useState(\n editor.lastInsertedLinkPath ? Path.equals(path, editor.lastInsertedLinkPath) : false\n );\n const linkRef = React.useRef<HTMLAnchorElement>(null!);\n const elementText = link.children.map((child) => child.text).join('');\n const [linkText, setLinkText] = React.useState(elementText);\n const [linkUrl, setLinkUrl] = React.useState(link.url);\n const linkInputRef = React.useRef<HTMLInputElement>(null);\n const [showRemoveButton, setShowRemoveButton] = React.useState(false);\n const [isSaveDisabled, setIsSaveDisabled] = React.useState(false);\n\n const handleOpenEditPopover: React.MouseEventHandler<HTMLAnchorElement> = (e) => {\n e.preventDefault();\n setPopoverOpen(true);\n setShowRemoveButton(true);\n };\n\n const onLinkChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setIsSaveDisabled(false);\n setLinkUrl(e.target.value);\n\n try {\n // eslint-disable-next-line no-new\n new URL(\n e.target.value?.startsWith('/') ? `https://strapi.io${e.target.value}` : e.target.value\n );\n } catch (error) {\n setIsSaveDisabled(true);\n }\n };\n\n const handleSave: React.FormEventHandler = (e) => {\n e.stopPropagation();\n\n // If the selection is collapsed, we select the parent node because we want all the link to be replaced)\n if (editor.selection && Range.isCollapsed(editor.selection)) {\n const [, parentPath] = Editor.parent(editor, editor.selection.focus?.path);\n Transforms.select(editor, parentPath);\n }\n\n editLink(editor, { url: linkUrl, text: linkText });\n setPopoverOpen(false);\n editor.lastInsertedLinkPath = null;\n };\n\n const handleDismiss = () => {\n setPopoverOpen(false);\n\n if (link.url === '') {\n removeLink(editor);\n }\n\n ReactEditor.focus(editor);\n };\n\n const inputNotDirty =\n !linkText ||\n !linkUrl ||\n (link.url && link.url === linkUrl && elementText && elementText === linkText);\n\n const composedRefs = useComposedRefs(linkRef, forwardedRef);\n\n React.useEffect(() => {\n // Focus on the link input element when the popover opens\n if (popoverOpen) linkInputRef.current?.focus();\n }, [popoverOpen]);\n\n return (\n <>\n <StyledBaseLink\n {...attributes}\n ref={composedRefs}\n href={link.url}\n onClick={handleOpenEditPopover}\n color=\"primary600\"\n >\n {children}\n </StyledBaseLink>\n {popoverOpen && (\n <Popover source={linkRef} onDismiss={handleDismiss} padding={4} contentEditable={false}>\n <Flex as=\"form\" onSubmit={handleSave} direction=\"column\" gap={4}>\n <Field width=\"368px\">\n <Flex direction=\"column\" gap={1} alignItems=\"stretch\">\n <FieldLabel>\n {formatMessage({\n id: 'components.Blocks.popover.text',\n defaultMessage: 'Text',\n })}\n </FieldLabel>\n <FieldInput\n name=\"text\"\n placeholder={formatMessage({\n id: 'components.Blocks.popover.text.placeholder',\n defaultMessage: 'Enter link text',\n })}\n value={linkText}\n onChange={(e) => {\n setLinkText(e.target.value);\n }}\n />\n </Flex>\n </Field>\n <Field width=\"368px\">\n <Flex direction=\"column\" gap={1} alignItems=\"stretch\">\n <FieldLabel>\n {formatMessage({\n id: 'components.Blocks.popover.link',\n defaultMessage: 'Link',\n })}\n </FieldLabel>\n <FieldInput\n ref={linkInputRef}\n name=\"url\"\n placeholder={formatMessage({\n id: 'components.Blocks.popover.link.placeholder',\n defaultMessage: 'Paste link',\n })}\n value={linkUrl}\n onChange={onLinkChange}\n />\n </Flex>\n </Field>\n <Flex justifyContent=\"space-between\" width=\"100%\">\n <RemoveButton\n variant=\"danger-light\"\n onClick={() => removeLink(editor)}\n visible={showRemoveButton}\n >\n {formatMessage({\n id: 'components.Blocks.popover.remove',\n defaultMessage: 'Remove',\n })}\n </RemoveButton>\n <Flex gap={2}>\n <Button variant=\"tertiary\" onClick={handleDismiss}>\n {formatMessage({\n id: 'components.Blocks.popover.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n <Button type=\"submit\" disabled={Boolean(inputNotDirty) || isSaveDisabled}>\n {formatMessage({\n id: 'components.Blocks.popover.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n </Flex>\n </Flex>\n </Popover>\n )}\n </>\n );\n }\n);\n\nconst Link = React.forwardRef<HTMLAnchorElement, RenderElementProps>((props, forwardedRef) => {\n if (!isLinkNode(props.element)) {\n return null;\n }\n\n // LinkContent uses React hooks that rely on props.element being a link. If the type guard above\n // doesn't pass, those hooks would be called conditionnally, which is not allowed.\n // Hence the need for a separate component.\n return <LinkContent {...props} link={props.element} ref={forwardedRef} />;\n});\n\nconst linkBlocks: Pick<BlocksStore, 'link'> = {\n link: {\n renderElement: (props) => (\n <Link element={props.element} attributes={props.attributes}>\n {props.children}\n </Link>\n ),\n // No handleConvert here, links are created via the link button in the toolbar\n matchNode: (node) => node.type === 'link',\n isInBlocksSelector: false,\n },\n};\n\nexport { linkBlocks };\n","import * as React from 'react';\n\nimport { Typography } from '@strapi/design-system';\nimport { BulletList, NumberList } from '@strapi/icons';\nimport { type Text, Editor, Node, Transforms, Path } from 'slate';\nimport { type RenderElementProps, ReactEditor } from 'slate-react';\nimport styled, { type CSSProperties, css } from 'styled-components';\n\nimport { type BlocksStore } from '../BlocksEditor';\nimport { baseHandleConvert } from '../utils/conversions';\nimport { isListNode, type Block } from '../utils/types';\n\nconst listStyle = css`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.spaces[2]};\n margin-inline-start: ${({ theme }) => theme.spaces[0]};\n margin-inline-end: ${({ theme }) => theme.spaces[0]};\n padding-inline-start: ${({ theme }) => theme.spaces[2]};\n\n ol,\n ul {\n margin-block-start: ${({ theme }) => theme.spaces[0]};\n margin-block-end: ${({ theme }) => theme.spaces[0]};\n }\n\n li {\n margin-inline-start: ${({ theme }) => theme.spaces[3]};\n }\n`;\n\nconst Orderedlist = styled.ol<{ listStyleType: CSSProperties['listStyleType'] }>`\n list-style-type: ${(props) => props.listStyleType};\n ${listStyle}\n`;\n\nconst Unorderedlist = styled.ul<{ listStyleType: CSSProperties['listStyleType'] }>`\n list-style-type: ${(props) => props.listStyleType};\n ${listStyle}\n`;\n\nconst orderedStyles = ['decimal', 'lower-alpha', 'upper-roman'];\nconst unorderedStyles = ['disc', 'circle', 'square'];\n\nconst List = ({ attributes, children, element }: RenderElementProps) => {\n if (!isListNode(element)) {\n return null;\n }\n\n // Decide the subsequent style by referencing the given styles according to the format,\n // allowing for infinite nested lists\n const listStyles = element.format === 'ordered' ? orderedStyles : unorderedStyles;\n const nextIndex = (element.indentLevel || 0) % listStyles!.length;\n const listStyleType = listStyles![nextIndex];\n\n if (element.format === 'ordered') {\n return (\n <Orderedlist listStyleType={listStyleType} {...attributes}>\n {children}\n </Orderedlist>\n );\n }\n\n return (\n <Unorderedlist listStyleType={listStyleType} {...attributes}>\n {children}\n </Unorderedlist>\n );\n};\n\nconst replaceListWithEmptyBlock = (editor: Editor, currentListPath: Path) => {\n // Delete the empty list\n Transforms.removeNodes(editor, { at: currentListPath });\n\n if (currentListPath[0] === 0) {\n // If the list was the only (or first) block element then insert empty paragraph as editor needs default value\n Transforms.insertNodes(\n editor,\n {\n type: 'paragraph',\n children: [{ type: 'text', text: '' }],\n },\n { at: currentListPath }\n );\n Transforms.select(editor, currentListPath);\n }\n};\n\nconst isText = (node: unknown): node is Text => {\n return Node.isNode(node) && !Editor.isEditor(node) && node.type === 'text';\n};\n\n/**\n * Common handler for the backspace event on ordered and unordered lists\n */\nconst handleBackspaceKeyOnList = (editor: Editor, event: React.KeyboardEvent<HTMLElement>) => {\n if (!editor.selection) return;\n\n const [currentListItem, currentListItemPath] = Editor.parent(editor, editor.selection.anchor);\n const [currentList, currentListPath] = Editor.parent(editor, currentListItemPath);\n const isListEmpty =\n currentList.children.length === 1 &&\n isText(currentListItem.children[0]) &&\n currentListItem.children[0].text === '';\n const isListItemEmpty =\n currentListItem.children.length === 1 &&\n isText(currentListItem.children[0]) &&\n currentListItem.children[0].text === '';\n const isFocusAtTheBeginningOfAChild =\n editor.selection.focus.offset === 0 && editor.selection.focus.path.at(-2) === 0;\n\n if (isListEmpty) {\n const parentListEntry = Editor.above(editor, {\n at: currentListPath,\n match: (node) => !Editor.isEditor(node) && node.type === 'list',\n });\n if (!parentListEntry) {\n event.preventDefault();\n replaceListWithEmptyBlock(editor, currentListPath);\n }\n } else if (isFocusAtTheBeginningOfAChild) {\n // If the focus is at the beginning of a child node we need to replace it with a paragraph\n Transforms.liftNodes(editor, {\n match: (node) => !Editor.isEditor(node) && node.type === 'list-item',\n });\n Transforms.setNodes(editor, { type: 'paragraph' });\n } else if (isListItemEmpty) {\n const previousEntry = Editor.previous(editor, {\n at: currentListItemPath,\n });\n const nextEntry = Editor.next(editor, {\n at: currentListItemPath,\n });\n\n if (previousEntry && nextEntry) {\n // If previous and next nodes are lists or list-items, delete empty list item\n event.preventDefault();\n Transforms.removeNodes(editor, {\n at: currentListItemPath,\n });\n\n // If previous and next nodes are lists with same format and indent Levels, then merge the nodes\n const [previousList] = previousEntry;\n const [nextList] = nextEntry;\n if (\n !Editor.isEditor(previousList) &&\n !isText(previousList) &&\n isListNode(previousList) &&\n !Editor.isEditor(nextList) &&\n !isText(nextList) &&\n isListNode(nextList)\n ) {\n if (\n previousList.type === 'list' &&\n nextList.type === 'list' &&\n previousList.format === nextList.format &&\n previousList.indentLevel === nextList.indentLevel\n ) {\n Transforms.mergeNodes(editor, {\n at: currentListItemPath,\n });\n }\n }\n }\n }\n};\n\n/**\n * Common handler for the enter key on ordered and unordered lists\n */\nconst handleEnterKeyOnList = (editor: Editor) => {\n const currentListItemEntry = Editor.above(editor, {\n match: (node) => !Editor.isEditor(node) && node.type === 'list-item',\n });\n\n if (!currentListItemEntry || !editor.selection) {\n return;\n }\n\n const [currentListItem, currentListItemPath] = currentListItemEntry;\n const [currentList, currentListPath] = Editor.parent(editor, currentListItemPath);\n const isListEmpty =\n currentList.children.length === 1 &&\n isText(currentListItem.children[0]) &&\n currentListItem.children[0].text === '';\n const isListItemEmpty =\n currentListItem.children.length === 1 &&\n isText(currentListItem.children[0]) &&\n currentListItem.children[0].text === '';\n const isFocusAtTheBeginningOfAChild =\n editor.selection.focus.offset === 0 && editor.selection.focus.path.at(-1) === 0;\n\n if (isListEmpty) {\n replaceListWithEmptyBlock(editor, currentListPath);\n } else if (isFocusAtTheBeginningOfAChild && !isListItemEmpty) {\n // If the focus is at the beginning of a child node, shift below the list item and create a new list-item\n const currentNode = Editor.above(editor, { at: editor.selection.anchor });\n Transforms.insertNodes(editor, { type: 'list-item', children: [{ type: 'text', text: '' }] });\n if (currentNode) {\n const path = currentNode[1];\n const updatedPath = [...path.slice(0, -1), path[path.length - 1] + 1];\n Transforms.select(editor, {\n anchor: { path: updatedPath.concat(0), offset: 0 },\n focus: { path: updatedPath.concat(0), offset: 0 },\n });\n }\n } else if (isListItemEmpty) {\n // Check if there is a list above the current list and shift list-item under it\n if (\n !Editor.isEditor(currentList) &&\n isListNode(currentList) &&\n currentList?.indentLevel &&\n currentList.indentLevel > 0\n ) {\n const previousIndentLevel = currentList.indentLevel - 1;\n\n const parentListNodeEntry = Editor.above(editor, {\n match: (node) =>\n !Editor.isEditor(node) &&\n node.type === 'list' &&\n (node.indentLevel || 0) === previousIndentLevel,\n });\n\n if (parentListNodeEntry) {\n // Get the parent list path and add 1 to it to exit from the current list\n const modifiedPath = currentListItemPath.slice(0, -1);\n if (modifiedPath.length > 0) {\n modifiedPath[modifiedPath.length - 1] += 1;\n }\n\n // Shift list-item under parent list\n Transforms.moveNodes(editor, {\n at: currentListItemPath,\n to: modifiedPath,\n });\n return;\n }\n }\n\n // Otherwise delete the empty list item and create a new paragraph below the parent list\n Transforms.removeNodes(editor, { at: currentListItemPath });\n\n const createdParagraphPath = Path.next(currentListPath);\n Transforms.insertNodes(\n editor,\n {\n type: 'paragraph',\n children: [{ type: 'text', text: '' }],\n },\n { at: createdParagraphPath }\n );\n\n // Move the selection to the newly created paragraph\n Transforms.select(editor, createdParagraphPath);\n } else {\n // Check if the cursor is at the end of the list item\n const isNodeEnd = Editor.isEnd(editor, editor.selection.anchor, currentListItemPath);\n\n if (isNodeEnd) {\n // If there was nothing after the cursor, create a fresh new list item,\n // in order to avoid carrying over the modifiers from the previous list item\n Transforms.insertNodes(editor, { type: 'list-item', children: [{ type: 'text', text: '' }] });\n } else {\n // If there is something after the cursor, split the current list item,\n // so that we keep the content and the modifiers\n Transforms.splitNodes(editor);\n }\n }\n};\n\n/**\n * Common handler for converting a node to a list\n */\nconst handleConvertToList = (editor: Editor, format: Block<'list'>['format']) => {\n const convertedPath = baseHandleConvert<Block<'list-item'>>(editor, { type: 'list-item' });\n\n if (!convertedPath) return;\n\n Transforms.wrapNodes(editor, { type: 'list', format, children: [] }, { at: convertedPath });\n};\n\n/**\n * Common handler for the tab key on ordered and unordered lists\n */\nconst handleTabOnList = (editor: Editor) => {\n const currentListItemEntry = Editor.above(editor, {\n match: (node) => !Editor.isEditor(node) && node.type === 'list-item',\n });\n\n if (!currentListItemEntry || !editor.selection) {\n return;\n }\n\n const [currentListItem, currentListItemPath] = currentListItemEntry;\n const [currentList] = Editor.parent(editor, currentListItemPath);\n\n // Skip tabbing if list-item is the first item in the list\n if (currentListItem === currentList.children[0]) return;\n\n const currentListItemIndex = currentList.children.findIndex((item) => item === currentListItem);\n const previousNode = currentList.children[currentListItemIndex - 1];\n\n // If previous node is a list block then move the list-item under it\n if (previousNode.type === 'list') {\n const nodePath = ReactEditor.findPath(editor, previousNode);\n const insertAtPath = previousNode.children.length;\n\n Transforms.moveNodes(editor, {\n at: currentListItemPath,\n to: nodePath.concat(insertAtPath),\n });\n return;\n }\n\n if (!Editor.isEditor(currentList) && isListNode(currentList)) {\n // Wrap list-item with list block on tab\n Transforms.wrapNodes(editor, {\n type: 'list',\n format: currentList.format,\n indentLevel: (currentList.indentLevel || 0) + 1,\n children: [],\n });\n }\n};\n\nconst listBlocks: Pick<BlocksStore, 'list-ordered' | 'list-unordered' | 'list-item'> = {\n 'list-ordered': {\n renderElement: (props) => <List {...props} />,\n label: {\n id: 'components.Blocks.blocks.orderedList',\n defaultMessage: 'Numbered list',\n },\n icon: NumberList,\n matchNode: (node) => node.type === 'list' && node.format === 'ordered',\n isInBlocksSelector: true,\n handleConvert: (editor) => handleConvertToList(editor, 'ordered'),\n handleEnterKey: handleEnterKeyOnList,\n handleBackspaceKey: handleBackspaceKeyOnList,\n handleTab: handleTabOnList,\n snippets: ['1.'],\n },\n 'list-unordered': {\n renderElement: (props) => <List {...props} />,\n label: {\n id: 'components.Blocks.blocks.unorderedList',\n defaultMessage: 'Bulleted list',\n },\n icon: BulletList,\n matchNode: (node) => node.type === 'list' && node.format === 'unordered',\n isInBlocksSelector: true,\n handleConvert: (editor) => handleConvertToList(editor, 'unordered'),\n handleEnterKey: handleEnterKeyOnList,\n handleBackspaceKey: handleBackspaceKeyOnList,\n handleTab: handleTabOnList,\n snippets: ['-', '*', '+'],\n },\n 'list-item': {\n renderElement: (props) => (\n <Typography as=\"li\" {...props.attributes}>\n {props.children}\n </Typography>\n ),\n // No handleConvert, list items are created when converting to the parent list\n matchNode: (node) => node.type === 'list-item',\n isInBlocksSelector: false,\n dragHandleTopMargin: '-2px',\n },\n};\n\nexport { listBlocks };\n","import * as React from 'react';\n\nimport { Typography } from '@strapi/design-system';\nimport { Paragraph } from '@strapi/icons';\nimport { type Text, Editor, Transforms } from 'slate';\n\nimport { type BlocksStore } from '../BlocksEditor';\nimport { baseHandleConvert } from '../utils/conversions';\nimport { type Block } from '../utils/types';\n\nconst paragraphBlocks: Pick<BlocksStore, 'paragraph'> = {\n paragraph: {\n renderElement: (props) => (\n <Typography as=\"p\" variant=\"omega\" {...props.attributes}>\n {props.children}\n </Typography>\n ),\n icon: Paragraph,\n label: {\n id: 'components.Blocks.blocks.text',\n defaultMessage: 'Text',\n },\n matchNode: (node) => node.type === 'paragraph',\n isInBlocksSelector: true,\n dragHandleTopMargin: '-2px',\n handleConvert(editor) {\n baseHandleConvert<Block<'paragraph'>>(editor, { type: 'paragraph' });\n },\n handleEnterKey(editor) {\n if (!editor.selection) {\n return;\n }\n\n // We need to keep track of the initial position of the cursor\n const anchorPathInitialPosition = editor.selection.anchor.path;\n /**\n * Split the nodes where the cursor is. This will create a new paragraph with the content\n * after the cursor, while retaining all the children, modifiers etc.\n */\n Transforms.splitNodes(editor, {\n // Makes sure we always create a new node,\n // even if there's nothing to the right of the cursor in the node.\n always: true,\n });\n\n // Check if the created node is empty (if there was no text after the cursor in the node)\n // This lets us know if we need to carry over the modifiers from the previous node\n const parentBlockEntry = Editor.above(editor, {\n match: (node) => !Editor.isEditor(node) && node.type !== 'text',\n });\n if (!parentBlockEntry) {\n return;\n }\n const [, parentBlockPath] = parentBlockEntry;\n const isNodeEnd = Editor.isEnd(editor, editor.selection.anchor, parentBlockPath);\n\n /**\n * Delete and recreate the node that was created at the right of the cursor.\n * This is to avoid node pollution\n * (e.g. keeping the level attribute when converting a heading to a paragraph).\n * Select the parent of the selection because we want the full block, not the leaf.\n * And copy its children to make sure we keep the modifiers.\n */\n const [fragmentedNode] = Editor.parent(editor, editor.selection.anchor.path);\n Transforms.removeNodes(editor);\n\n // Check if after the current position there is another node\n const hasNextNode = editor.children.length - anchorPathInitialPosition[0] > 1;\n\n // Insert the new node at the right position.\n // The next line after the editor selection if present or otherwise at the end of the editor.\n Transforms.insertNodes(\n editor,\n {\n type: 'paragraph',\n // Don't carry over the modifiers from the previous node if there was no text after the cursor\n children: (isNodeEnd ? [{ type: 'text', text: '' }] : fragmentedNode.children) as Text[],\n },\n {\n at: hasNextNode ? [anchorPathInitialPosition[0] + 1] : [editor.children.length],\n }\n );\n\n /**\n * The new selection will by default be at the end of the created node.\n * Instead we manually move it to the start of the created node.\n * Make sure to we go to the start of the node and not the start of the leaf.\n */\n Transforms.select(editor, editor.start([anchorPathInitialPosition[0] + 1]));\n },\n },\n};\n\nexport { paragraphBlocks };\n","import * as React from 'react';\n\nimport { Quote } from '@strapi/icons';\nimport styled from 'styled-components';\n\nimport { type BlocksStore } from '../BlocksEditor';\nimport { baseHandleConvert } from '../utils/conversions';\nimport { pressEnterTwiceToExit } from '../utils/enterKey';\nimport { type Block } from '../utils/types';\n\nconst Blockquote = styled.blockquote.attrs({ role: 'blockquote' })`\n font-weight: ${({ theme }) => theme.fontWeights.regular};\n border-left: ${({ theme }) => `${theme.spaces[1]} solid ${theme.colors.neutral200}`};\n padding: ${({ theme }) => theme.spaces[2]} ${({ theme }) => theme.spaces[4]};\n color: ${({ theme }) => theme.colors.neutral600};\n`;\n\nconst quoteBlocks: Pick<BlocksStore, 'quote'> = {\n quote: {\n renderElement: (props) => (\n // The div is needed to make sure the padding bottom from BlocksContent is applied properly\n // when the quote is the last block in the editor\n <div>\n <Blockquote {...props.attributes}>{props.children}</Blockquote>\n </div>\n ),\n icon: Quote,\n label: {\n id: 'components.Blocks.blocks.quote',\n defaultMessage: 'Quote',\n },\n matchNode: (node) => node.type === 'quote',\n isInBlocksSelector: true,\n handleConvert(editor) {\n baseHandleConvert<Block<'quote'>>(editor, { type: 'quote' });\n },\n handleEnterKey(editor) {\n pressEnterTwiceToExit(editor);\n },\n snippets: ['>'],\n dragHandleTopMargin: '6px',\n },\n};\n\nexport { quoteBlocks };\n","import * as React from 'react';\n\nimport * as Toolbar from '@radix-ui/react-toolbar';\nimport { Flex, Icon, Tooltip, SingleSelect, SingleSelectOption, Box } from '@strapi/design-system';\nimport { Link } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { Editor, Transforms, Element as SlateElement, Node, type Ancestor } from 'slate';\nimport { ReactEditor } from 'slate-react';\nimport styled from 'styled-components';\n\nimport {\n type BlocksStore,\n type SelectorBlockKey,\n isSelectorBlockKey,\n useBlocksEditorContext,\n} from './BlocksEditor';\nimport { insertLink } from './utils/links';\nimport { type Block, getEntries, getKeys } from './utils/types';\n\nconst ToolbarWrapper = styled(Flex)`\n &[aria-disabled='true'] {\n cursor: not-allowed;\n }\n`;\n\nconst Separator = styled(Toolbar.Separator)`\n background: ${({ theme }) => theme.colors.neutral150};\n width: 1px;\n height: ${24 / 16}rem;\n`;\n\nconst FlexButton = styled(Flex)`\n // Inherit the not-allowed cursor from ToolbarWrapper when disabled\n &[aria-disabled] {\n cursor: inherit;\n }\n\n &[aria-disabled='false'] {\n cursor: pointer;\n\n // Only apply hover styles if the button is enabled\n &:hover {\n background: ${({ theme }) => theme.colors.primary100};\n }\n }\n`;\n\nconst SelectWrapper = styled(Box)`\n // Styling changes to SingleSelect component don't work, so adding wrapper to target SingleSelect\n div[role='combobox'] {\n border: none;\n cursor: pointer;\n min-height: unset;\n padding-top: 6px;\n padding-bottom: 6px;\n\n &[aria-disabled='false']:hover {\n cursor: pointer;\n background: ${({ theme }) => theme.colors.primary100};\n }\n\n &[aria-disabled] {\n background: transparent;\n cursor: inherit;\n\n // Select text and icons should also have disabled color\n span {\n color: ${({ theme }) => theme.colors.neutral600};\n }\n }\n }\n`;\n\n/**\n * Handles the modal component that may be returned by a block when converting it\n */\nfunction useConversionModal() {\n const [modalElement, setModalComponent] = React.useState<React.JSX.Element | null>(null);\n\n const handleConversionResult = (renderModal: void | (() => React.JSX.Element) | undefined) => {\n // Not all blocks return a modal\n if (renderModal) {\n // Use cloneElement to apply a key because to create a new instance of the component\n // Without the new key, the state is kept from previous times that option was picked\n setModalComponent(React.cloneElement(renderModal(), { key: Date.now() }));\n }\n };\n\n return { modalElement, handleConversionResult };\n}\n\ninterface ToolbarButtonProps {\n icon: React.ComponentType;\n name: string;\n label: MessageDescriptor;\n isActive: boolean;\n disabled: boolean;\n handleClick: () => void;\n}\n\nconst ToolbarButton = ({\n icon,\n name,\n label,\n isActive,\n disabled,\n handleClick,\n}: ToolbarButtonProps) => {\n const { editor } = useBlocksEditorContext('ToolbarButton');\n const { formatMessage } = useIntl();\n const labelMessage = formatMessage(label);\n\n const enabledColor = isActive ? 'primary600' : 'neutral600';\n\n return (\n <Tooltip description={labelMessage}>\n <Toolbar.ToggleItem\n value={name}\n data-state={isActive ? 'on' : 'off'}\n onMouseDown={(e) => {\n e.preventDefault();\n handleClick();\n ReactEditor.focus(editor);\n }}\n aria-disabled={disabled}\n disabled={disabled}\n aria-label={labelMessage}\n asChild\n >\n <FlexButton\n as=\"button\"\n background={isActive ? 'primary100' : ''}\n alignItems=\"center\"\n justifyContent=\"center\"\n width={7}\n height={7}\n hasRadius\n >\n <Icon width={3} height={3} as={icon} color={disabled ? 'neutral300' : enabledColor} />\n </FlexButton>\n </Toolbar.ToggleItem>\n </Tooltip>\n );\n};\n\nconst BlocksDropdown = () => {\n const { editor, blocks, disabled } = useBlocksEditorContext('BlocksDropdown');\n const { formatMessage } = useIntl();\n const { modalElement, handleConversionResult } = useConversionModal();\n\n const blockKeysToInclude: SelectorBlockKey[] = getEntries(blocks).reduce<\n ReturnType<typeof getEntries>\n >((currentKeys, entry) => {\n const [key, block] = entry;\n\n return block.isInBlocksSelector ? [...currentKeys, key] : currentKeys;\n }, []);\n\n const [blockSelected, setBlockSelected] = React.useState<SelectorBlockKey>('paragraph');\n\n const handleSelect = (optionKey: unknown) => {\n if (!isSelectorBlockKey(optionKey)) {\n return;\n }\n\n const editorIsEmpty =\n editor.children.length === 1 && Editor.isEmpty(editor, editor.children[0]);\n\n if (!editor.selection && !editorIsEmpty) {\n // When there is no selection, create an empty block at the end of the editor\n // so that it can be converted to the selected block\n Transforms.insertNodes(\n editor,\n {\n type: 'quote',\n children: [{ type: 'text', text: '' }],\n },\n {\n select: true,\n // Since there's no selection, Slate will automatically insert the node at the end\n }\n );\n } else if (!editor.selection && editorIsEmpty) {\n // When there is no selection and the editor is empty,\n // select the empty paragraph from Slate's initialValue so it gets converted\n Transforms.select(editor, Editor.start(editor, [0, 0]));\n }\n\n // If selection is already a list block, toggle its format\n const currentListEntry = Editor.above(editor, {\n match: (node) => !Editor.isEditor(node) && node.type === 'list',\n });\n\n if (currentListEntry && ['list-ordered', 'list-unordered'].includes(optionKey)) {\n const [currentList, currentListPath] = currentListEntry;\n const format = optionKey === 'list-ordered' ? 'ordered' : 'unordered';\n\n if (!Editor.isEditor(currentList) && isListNode(currentList)) {\n // Format is different, toggle list format\n if (currentList.format !== format) {\n Transforms.setNodes(editor, { format }, { at: currentListPath });\n }\n }\n return;\n }\n\n // Let the block handle the Slate conversion logic\n const maybeRenderModal = blocks[optionKey].handleConvert?.(editor);\n handleConversionResult(maybeRenderModal);\n\n setBlockSelected(optionKey);\n\n ReactEditor.focus(editor);\n };\n\n /**\n * Prevent the select from focusing itself so ReactEditor.focus(editor) can focus the editor instead.\n *\n * The editor first loses focus to a blur event when clicking the select button. However,\n * refocusing the editor is not enough since the select's default behavior is to refocus itself\n * after an option is selected.\n *\n */\n const preventSelectFocus = (e: Event) => e.preventDefault();\n\n // Listen to the selection change and update the selected block in the dropdown\n React.useEffect(() => {\n if (editor.selection) {\n let selectedNode: Ancestor;\n\n // If selection anchor is a list-item, get its parent\n const currentListEntry = Editor.above(editor, {\n match: (node) => !Editor.isEditor(node) && node.type === 'list',\n at: editor.selection.anchor,\n });\n\n if (currentListEntry) {\n const [currentList] = currentListEntry;\n selectedNode = currentList;\n } else {\n // Get the parent node of the anchor other than list-item\n const [anchorNode] = Editor.parent(editor, editor.selection.anchor, {\n edge: 'start',\n depth: 2,\n });\n\n // @ts-expect-error slate's delete behaviour creates an exceptional type\n if (anchorNode.type === 'list-item') {\n // When the last node in the selection is a list item,\n // slate's default delete operation leaves an empty list-item instead of converting it into a paragraph.\n // Issue: https://github.com/ianstormtaylor/slate/issues/2500\n\n Transforms.setNodes(editor, { type: 'paragraph' });\n // @ts-expect-error convert explicitly type to paragraph\n selectedNode = { ...anchorNode, type: 'paragraph' };\n } else {\n selectedNode = anchorNode;\n }\n }\n\n // Find the block key that matches the anchor node\n const anchorBlockKey = getKeys(blocks).find(\n (blockKey) => !Editor.isEditor(selectedNode) && blocks[blockKey].matchNode(selectedNode)\n );\n\n // Change the value selected in the dropdown if it doesn't match the anchor block key\n if (anchorBlockKey && anchorBlockKey !== blockSelected) {\n setBlockSelected(anchorBlockKey as SelectorBlockKey);\n }\n }\n }, [editor.selection, editor, blocks, blockSelected]);\n\n return (\n <>\n <SelectWrapper>\n <SingleSelect\n startIcon={<Icon as={blocks[blockSelected].icon} />}\n onChange={handleSelect}\n placeholder={formatMessage(blocks[blockSelected].label)}\n value={blockSelected}\n onCloseAutoFocus={preventSelectFocus}\n aria-label={formatMessage({\n id: 'components.Blocks.blocks.selectBlock',\n defaultMessage: 'Select a block',\n })}\n disabled={disabled}\n >\n {blockKeysToInclude.map((key) => (\n <BlockOption\n key={key}\n value={key}\n label={blocks[key].label}\n icon={blocks[key].icon}\n blockSelected={blockSelected}\n />\n ))}\n </SingleSelect>\n </SelectWrapper>\n {modalElement}\n </>\n );\n};\n\ninterface BlockOptionProps {\n value: string;\n icon: React.ComponentType;\n label: MessageDescriptor;\n blockSelected: string;\n}\n\nconst BlockOption = ({ value, icon, label, blockSelected }: BlockOptionProps) => {\n const { formatMessage } = useIntl();\n\n const isSelected = value === blockSelected;\n\n return (\n <SingleSelectOption\n startIcon={<Icon as={icon} color={isSelected ? 'primary600' : 'neutral600'} />}\n value={value}\n >\n {formatMessage(label)}\n </SingleSelectOption>\n );\n};\n\nconst isListNode = (node: unknown): node is Block<'list'> => {\n return Node.isNode(node) && !Editor.isEditor(node) && node.type === 'list';\n};\n\ninterface ListButtonProps {\n block: BlocksStore['list-ordered'] | BlocksStore['list-unordered'];\n format: Block<'list'>['format'];\n}\n\nconst ListButton = ({ block, format }: ListButtonProps) => {\n const { editor, disabled, blocks } = useBlocksEditorContext('ListButton');\n\n const isListActive = () => {\n if (!editor.selection) return false;\n\n // Get the parent list at selection anchor node\n const currentListEntry = Editor.above(editor, {\n match: (node) => !Editor.isEditor(node) && node.type === 'list',\n at: editor.selection.anchor,\n });\n\n if (currentListEntry) {\n const [currentList] = currentListEntry;\n if (!Editor.isEditor(currentList) && isListNode(currentList) && currentList.format === format)\n return true;\n }\n return false;\n };\n\n const toggleList = (format: Block<'list'>['format']) => {\n let currentListEntry;\n if (editor.selection) {\n currentListEntry = Editor.above(editor, {\n match: (node) => !Editor.isEditor(node) && node.type === 'list',\n });\n } else {\n // If no selection, toggle last inserted node\n const [_, lastNodePath] = Editor.last(editor, []);\n currentListEntry = Editor.above(editor, {\n match: (node) => !Editor.isEditor(node) && node.type === 'list',\n at: lastNodePath,\n });\n }\n\n if (!currentListEntry) {\n // If selection is not a list then convert it to list\n blocks[`list-${format}`].handleConvert!(editor);\n return;\n }\n\n // If selection is already a list then toggle format\n const [currentList, currentListPath] = currentListEntry;\n\n if (!Editor.isEditor(currentList) && isListNode(currentList)) {\n if (currentList.format !== format) {\n // Format is different, toggle list format\n Transforms.setNodes(editor, { format }, { at: currentListPath });\n } else {\n // Format is same, convert selected list-item to paragraph\n blocks['paragraph'].handleConvert!(editor);\n }\n }\n };\n\n return (\n <ToolbarButton\n icon={block.icon}\n name={format}\n label={block.label}\n isActive={isListActive()}\n disabled={disabled}\n handleClick={() => toggleList(format)}\n />\n );\n};\n\nconst LinkButton = ({ disabled }: { disabled: boolean }) => {\n const { editor } = useBlocksEditorContext('LinkButton');\n\n const isLinkActive = () => {\n const { selection } = editor;\n\n if (!selection) return false;\n\n const [match] = Array.from(\n Editor.nodes(editor, {\n at: Editor.unhangRange(editor, selection),\n match: (node) => SlateElement.isElement(node) && node.type === 'link',\n })\n );\n\n return Boolean(match);\n };\n\n const isLinkDisabled = () => {\n // Always disabled when the whole editor is disabled\n if (disabled) {\n return true;\n }\n\n // Always enabled when there's no selection\n if (!editor.selection) {\n return false;\n }\n\n // Get the block node closest to the anchor and focus\n const anchorNodeEntry = Editor.above(editor, {\n at: editor.selection.anchor,\n match: (node) => !Editor.isEditor(node) && node.type !== 'text',\n });\n const focusNodeEntry = Editor.above(editor, {\n at: editor.selection.focus,\n match: (node) => !Editor.isEditor(node) && node.type !== 'text',\n });\n\n if (!anchorNodeEntry || !focusNodeEntry) {\n return false;\n }\n\n // Disabled if the anchor and focus are not in the same block\n return anchorNodeEntry[0] !== focusNodeEntry[0];\n };\n\n const addLink = () => {\n editor.shouldSaveLinkPath = true;\n // We insert an empty anchor, so we split the DOM to have a element we can use as reference for the popover\n insertLink(editor, { url: '' });\n };\n\n return (\n <ToolbarButton\n icon={Link}\n name=\"link\"\n label={{\n id: 'components.Blocks.link',\n defaultMessage: 'Link',\n }}\n isActive={isLinkActive()}\n handleClick={addLink}\n disabled={isLinkDisabled()}\n />\n );\n};\n\nconst BlocksToolbar = () => {\n const { editor, blocks, modifiers, disabled } = useBlocksEditorContext('BlocksToolbar');\n\n /**\n * The modifier buttons are disabled when an image is selected.\n */\n const checkButtonDisabled = () => {\n // Always disabled when the whole editor is disabled\n if (disabled) {\n return true;\n }\n\n if (!editor.selection) {\n return false;\n }\n\n const selectedNode = editor.children[editor.selection.anchor.path[0]];\n\n if (['image', 'code'].includes(selectedNode.type)) {\n return true;\n }\n\n return false;\n };\n\n const isButtonDisabled = checkButtonDisabled();\n\n return (\n <Toolbar.Root aria-disabled={disabled} asChild>\n <ToolbarWrapper gap={2} padding={2}>\n <BlocksDropdown />\n <Separator />\n <Toolbar.ToggleGroup type=\"multiple\" asChild>\n <Flex gap={1}>\n {Object.entries(modifiers).map(([name, modifier]) => (\n <ToolbarButton\n key={name}\n name={name}\n icon={modifier.icon}\n label={modifier.label}\n isActive={modifier.checkIsActive(editor)}\n handleClick={() => modifier.handleToggle(editor)}\n disabled={isButtonDisabled}\n />\n ))}\n <LinkButton disabled={isButtonDisabled} />\n </Flex>\n </Toolbar.ToggleGroup>\n <Separator />\n <Toolbar.ToggleGroup type=\"single\" asChild>\n <Flex gap={1}>\n <ListButton block={blocks['list-unordered']} format=\"unordered\" />\n <ListButton block={blocks['list-ordered']} format=\"ordered\" />\n </Flex>\n </Toolbar.ToggleGroup>\n </ToolbarWrapper>\n </Toolbar.Root>\n );\n};\n\nexport { BlocksToolbar, useConversionModal };\n","import * as React from 'react';\n\nimport { Box, Flex, IconButton, useComposedRefs } from '@strapi/design-system';\nimport { Drag } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Editor, Range, Transforms } from 'slate';\nimport { ReactEditor, type RenderElementProps, type RenderLeafProps, Editable } from 'slate-react';\nimport styled, { CSSProperties, css } from 'styled-components';\n\nimport { ItemTypes } from '../../../../../constants/dragAndDrop';\nimport { useDragAndDrop, DIRECTIONS } from '../../../../../hooks/useDragAndDrop';\nimport { getTranslation } from '../../../../../utils/translations';\n\nimport { type BlocksStore, useBlocksEditorContext } from './BlocksEditor';\nimport { useConversionModal } from './BlocksToolbar';\nimport { type ModifiersStore } from './Modifiers';\nimport { getEntries, isLinkNode, isListNode } from './utils/types';\n\nconst StyledEditable = styled(Editable)<{ isExpandedMode: boolean }>`\n // The outline style is set on the wrapper with :focus-within\n outline: none;\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.spaces[3]};\n height: 100%;\n // For fullscreen align input in the center with fixed width\n width: ${(props) => (props.isExpandedMode ? '512px' : '100%')};\n margin: auto;\n\n > *:last-child {\n padding-bottom: ${({ theme }) => theme.spaces[3]};\n }\n`;\n\nconst Wrapper = styled(Box)<{ isOverDropTarget: boolean }>`\n position: ${({ isOverDropTarget }) => isOverDropTarget && 'relative'};\n`;\n\ntype DragDirection = (typeof DIRECTIONS)[keyof typeof DIRECTIONS];\n\nconst DropPlaceholder = styled(Box)<{\n dragDirection: DragDirection | null;\n placeholderMargin: 1 | 2;\n}>`\n position: absolute;\n right: 0;\n\n // Show drop placeholder 8px above or below the drop target\n ${({ dragDirection, theme, placeholderMargin }) => css`\n top: ${dragDirection === DIRECTIONS.UPWARD && `-${theme.spaces[placeholderMargin]}`};\n bottom: ${dragDirection === DIRECTIONS.DOWNWARD && `-${theme.spaces[placeholderMargin]}`};\n `}\n`;\n\nconst DragItem = styled(Flex)<{ dragVisibility: CSSProperties['visibility'] }>`\n // Style each block rendered using renderElement()\n & > [data-slate-node='element'] {\n width: 100%;\n opacity: inherit;\n }\n\n // Set the visibility of drag button\n [role='button'] {\n visibility: ${(props) => props.dragVisibility};\n opacity: inherit;\n }\n &[aria-disabled='true'] {\n user-drag: none;\n }\n`;\n\nconst DragIconButton = styled(IconButton)<{ dragHandleTopMargin?: CSSProperties['marginTop'] }>`\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: ${({ theme }) => theme.borderRadius};\n width: ${({ theme }) => theme.spaces[4]};\n height: ${({ theme }) => theme.spaces[6]};\n visibility: hidden;\n cursor: grab;\n opacity: inherit;\n margin-top: ${(props) => props.dragHandleTopMargin ?? 0};\n\n &:hover {\n background: ${({ theme }) => theme.colors.neutral200};\n }\n &:active {\n cursor: grabbing;\n }\n &[aria-disabled='true'] {\n cursor: not-allowed;\n background: transparent;\n }\n svg {\n height: auto;\n width: ${({ theme }) => theme.spaces[3]};\n\n path {\n fill: ${({ theme }) => theme.colors.neutral700};\n }\n }\n`;\n\ntype Direction = {\n setDragDirection: (direction: DragDirection) => void;\n dragDirection: DragDirection | null;\n};\n\ntype DragAndDropElementProps = Direction & {\n children: RenderElementProps['children'];\n index: Array<number>;\n dragHandleTopMargin?: CSSProperties['marginTop'];\n};\n\nconst DragAndDropElement = ({\n children,\n index,\n setDragDirection,\n dragDirection,\n dragHandleTopMargin,\n}: DragAndDropElementProps) => {\n const { editor, disabled, name, setLiveText } = useBlocksEditorContext('drag-and-drop');\n const { formatMessage } = useIntl();\n const [dragVisibility, setDragVisibility] = React.useState<CSSProperties['visibility']>('hidden');\n\n const handleMoveBlock = React.useCallback(\n (newIndex: Array<number>, currentIndex: Array<number>) => {\n Transforms.moveNodes(editor, {\n at: currentIndex,\n to: newIndex,\n });\n\n // Add 1 to the index for the live text message\n const currentIndexPosition = [currentIndex[0] + 1, ...currentIndex.slice(1)];\n const newIndexPosition = [newIndex[0] + 1, ...newIndex.slice(1)];\n\n setLiveText(\n formatMessage(\n {\n id: getTranslation('components.Blocks.dnd.reorder'),\n defaultMessage: '{item}, moved. New position in the editor: {position}.',\n },\n {\n item: `${name}.${currentIndexPosition.join(',')}`,\n position: `${newIndexPosition.join(',')} of ${editor.children.length}`,\n }\n )\n );\n },\n [editor, formatMessage, name, setLiveText]\n );\n\n const [{ handlerId, isDragging, isOverDropTarget, direction }, blockRef, dropRef, dragRef] =\n useDragAndDrop(!disabled, {\n type: `${ItemTypes.BLOCKS}_${name}`,\n index,\n item: {\n index,\n displayedValue: children,\n },\n onDropItem(currentIndex, newIndex) {\n if (newIndex) handleMoveBlock(newIndex, currentIndex);\n },\n });\n\n const composedBoxRefs = useComposedRefs(blockRef, dropRef);\n\n // Set Drag direction before loosing state while dragging\n React.useEffect(() => {\n if (direction) {\n setDragDirection(direction);\n }\n }, [direction, setDragDirection]);\n\n // On selection change hide drag handle\n React.useEffect(() => {\n setDragVisibility('hidden');\n }, [editor.selection]);\n\n return (\n <Wrapper ref={(ref) => composedBoxRefs(ref!)} isOverDropTarget={isOverDropTarget}>\n {isOverDropTarget && (\n <DropPlaceholder\n borderStyle=\"solid\"\n borderColor=\"secondary200\"\n borderWidth=\"2px\"\n width=\"calc(100% - 24px)\"\n marginLeft=\"auto\"\n dragDirection={dragDirection}\n // For list items placeholder reduce the margin around\n placeholderMargin={children.props.as && children.props.as === 'li' ? 1 : 2}\n />\n )}\n {isDragging ? (\n <CloneDragItem dragHandleTopMargin={dragHandleTopMargin}>{children}</CloneDragItem>\n ) : (\n <DragItem\n ref={dragRef}\n data-handler-id={handlerId}\n gap={2}\n paddingLeft={2}\n alignItems=\"start\"\n onDragStart={(event) => {\n const target = event.target as HTMLElement;\n const currentTarget = event.currentTarget as HTMLElement;\n\n // Dragging action should only trigger drag event when button is dragged, however update styles on the whole dragItem.\n if (target.getAttribute('role') !== 'button') {\n event.preventDefault();\n } else {\n // Setting styles using dragging state is not working, so set it on current target element as nodes get dragged\n currentTarget.style.opacity = '0.5';\n }\n }}\n onDragEnd={(event) => {\n const currentTarget = event.currentTarget as HTMLElement;\n currentTarget.style.opacity = '1';\n }}\n onMouseMove={() => setDragVisibility('visible')}\n onSelect={() => setDragVisibility('visible')}\n onMouseLeave={() => setDragVisibility('hidden')}\n aria-disabled={disabled}\n dragVisibility={dragVisibility}\n >\n <DragIconButton\n forwardedAs=\"div\"\n role=\"button\"\n tabIndex={0}\n aria-label={formatMessage({\n id: getTranslation('components.DragHandle-label'),\n defaultMessage: 'Drag',\n })}\n onClick={(e) => e.stopPropagation()}\n aria-disabled={disabled}\n disabled={disabled}\n draggable\n // For some blocks top margin added to drag handle to align at the text level\n dragHandleTopMargin={dragHandleTopMargin}\n >\n <Drag color=\"neutral600\" />\n </DragIconButton>\n {children}\n </DragItem>\n )}\n </Wrapper>\n );\n};\n\ninterface CloneDragItemProps {\n children: RenderElementProps['children'];\n dragHandleTopMargin?: CSSProperties['marginTop'];\n}\n\n// To prevent applying opacity to the original item being dragged, display a cloned element without opacity.\nconst CloneDragItem = ({ children, dragHandleTopMargin }: CloneDragItemProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <DragItem gap={2} paddingLeft={2} alignItems=\"start\" dragVisibility=\"visible\">\n <DragIconButton\n forwardedAs=\"div\"\n role=\"button\"\n aria-label={formatMessage({\n id: getTranslation('components.DragHandle-label'),\n defaultMessage: 'Drag',\n })}\n dragHandleTopMargin={dragHandleTopMargin}\n >\n <Drag color=\"neutral600\" />\n </DragIconButton>\n {children}\n </DragItem>\n );\n};\n\nconst baseRenderLeaf = (props: RenderLeafProps, modifiers: ModifiersStore) => {\n // Recursively wrap the children for each active modifier\n const wrappedChildren = getEntries(modifiers).reduce((currentChildren, modifierEntry) => {\n const [name, modifier] = modifierEntry;\n\n if (props.leaf[name]) {\n return modifier.renderLeaf(currentChildren);\n }\n\n return currentChildren;\n }, props.children);\n\n return <span {...props.attributes}>{wrappedChildren}</span>;\n};\n\ntype BaseRenderElementProps = Direction & {\n props: RenderElementProps['children'];\n blocks: BlocksStore;\n editor: Editor;\n};\n\nconst baseRenderElement = ({\n props,\n blocks,\n editor,\n setDragDirection,\n dragDirection,\n}: BaseRenderElementProps) => {\n const { element } = props;\n\n const blockMatch = Object.values(blocks).find((block) => block.matchNode(element));\n const block = blockMatch || blocks.paragraph;\n const nodePath = ReactEditor.findPath(editor, element);\n\n // Link is inline block so it cannot be dragged\n // List items and nested list blocks i.e. lists with indent level higher than 0 are skipped from dragged items\n if (\n isLinkNode(element) ||\n (isListNode(element) && element.indentLevel && element.indentLevel > 0) ||\n element.type === 'list-item'\n ) {\n return block.renderElement(props);\n }\n\n return (\n <DragAndDropElement\n index={nodePath}\n setDragDirection={setDragDirection}\n dragDirection={dragDirection}\n dragHandleTopMargin={block.dragHandleTopMargin}\n >\n {block.renderElement(props)}\n </DragAndDropElement>\n );\n};\n\ninterface BlocksContentProps {\n placeholder?: string;\n ariaLabelId: string;\n}\n\nconst BlocksContent = ({ placeholder, ariaLabelId }: BlocksContentProps) => {\n const { editor, disabled, blocks, modifiers, setLiveText, isExpandedMode } =\n useBlocksEditorContext('BlocksContent');\n const blocksRef = React.useRef<HTMLDivElement>(null);\n const { formatMessage } = useIntl();\n const [dragDirection, setDragDirection] = React.useState<DragDirection | null>(null);\n const { modalElement, handleConversionResult } = useConversionModal();\n\n // Create renderLeaf function based on the modifiers store\n const renderLeaf = React.useCallback(\n (props: RenderLeafProps) => baseRenderLeaf(props, modifiers),\n [modifiers]\n );\n\n const handleMoveBlocks = (editor: Editor, event: React.KeyboardEvent<HTMLElement>) => {\n if (!editor.selection) return;\n\n const start = Range.start(editor.selection);\n const currentIndex = [start.path[0]];\n let newIndexPosition = 0;\n\n if (event.key === 'ArrowUp') {\n newIndexPosition = currentIndex[0] > 0 ? currentIndex[0] - 1 : currentIndex[0];\n } else {\n newIndexPosition =\n currentIndex[0] < editor.children.length - 1 ? currentIndex[0] + 1 : currentIndex[0];\n }\n\n const newIndex = [newIndexPosition];\n\n if (newIndexPosition !== currentIndex[0]) {\n Transforms.moveNodes(editor, {\n at: currentIndex,\n to: newIndex,\n });\n\n setLiveText(\n formatMessage(\n {\n id: getTranslation('components.Blocks.dnd.reorder'),\n defaultMessage: '{item}, moved. New position in the editor: {position}.',\n },\n {\n item: `${name}.${currentIndex[0] + 1}`,\n position: `${newIndex[0] + 1} of ${editor.children.length}`,\n }\n )\n );\n\n event.preventDefault();\n }\n };\n\n // Create renderElement function base on the blocks store\n const renderElement = React.useCallback(\n (props: RenderElementProps) =>\n baseRenderElement({ props, blocks, editor, dragDirection, setDragDirection }),\n [blocks, editor, dragDirection, setDragDirection]\n );\n\n const checkSnippet = (event: React.KeyboardEvent<HTMLElement>) => {\n // Get current text block\n if (!editor.selection) {\n return;\n }\n\n const [textNode, textNodePath] = Editor.node(editor, editor.selection.anchor.path);\n\n // Narrow the type to a text node\n if (Editor.isEditor(textNode) || textNode.type !== 'text') {\n return;\n }\n\n // Don't check for snippets if we're not at the start of a block\n if (textNodePath.at(-1) !== 0) {\n return;\n }\n\n // Check if the text node starts with a known snippet\n const blockMatchingSnippet = Object.values(blocks).find((block) => {\n return block.snippets?.includes(textNode.text);\n });\n\n if (blockMatchingSnippet?.handleConvert) {\n // Prevent the space from being created and delete the snippet\n event.preventDefault();\n Transforms.delete(editor, {\n distance: textNode.text.length,\n unit: 'character',\n reverse: true,\n });\n\n // Convert the selected block\n const maybeRenderModal = blockMatchingSnippet.handleConvert(editor);\n handleConversionResult(maybeRenderModal);\n }\n };\n\n const handleEnter = (event: React.KeyboardEvent<HTMLElement>) => {\n if (!editor.selection) {\n return;\n }\n\n const selectedNode = editor.children[editor.selection.anchor.path[0]];\n const selectedBlock = Object.values(blocks).find((block) => block.matchNode(selectedNode));\n if (!selectedBlock) {\n return;\n }\n\n // Allow forced line breaks when shift is pressed\n if (event.shiftKey && selectedNode.type !== 'image') {\n Transforms.insertText(editor, '\\n');\n return;\n }\n\n // Check if there's an enter handler for the selected block\n if (selectedBlock.handleEnterKey) {\n selectedBlock.handleEnterKey(editor);\n } else {\n blocks.paragraph.handleEnterKey!(editor);\n }\n };\n\n const handleBackspaceEvent = (event: React.KeyboardEvent<HTMLElement>) => {\n if (!editor.selection) {\n return;\n }\n\n const selectedNode = editor.children[editor.selection.anchor.path[0]];\n const selectedBlock = Object.values(blocks).find((block) => block.matchNode(selectedNode));\n\n if (!selectedBlock) {\n return;\n }\n\n if (selectedBlock.handleBackspaceKey) {\n selectedBlock.handleBackspaceKey(editor, event);\n }\n };\n\n const handleTab = (event: React.KeyboardEvent<HTMLElement>) => {\n if (!editor.selection) {\n return;\n }\n\n const selectedNode = editor.children[editor.selection.anchor.path[0]];\n const selectedBlock = Object.values(blocks).find((block) => block.matchNode(selectedNode));\n if (!selectedBlock) {\n return;\n }\n\n if (selectedBlock.handleTab) {\n event.preventDefault();\n selectedBlock.handleTab(editor);\n }\n };\n\n const handleKeyboardShortcuts = (event: React.KeyboardEvent<HTMLElement>) => {\n const isCtrlOrCmd = event.metaKey || event.ctrlKey;\n\n if (isCtrlOrCmd) {\n // Check if there's a modifier to toggle\n Object.values(modifiers).forEach((value) => {\n if (value.isValidEventKey(event)) {\n value.handleToggle(editor);\n return;\n }\n });\n if (event.shiftKey && ['ArrowUp', 'ArrowDown'].includes(event.key)) {\n handleMoveBlocks(editor, event);\n }\n }\n };\n\n const handleKeyDown: React.KeyboardEventHandler<HTMLElement> = (event) => {\n // Find the right block-specific handlers for enter and backspace key presses\n switch (event.key) {\n case 'Enter':\n event.preventDefault();\n return handleEnter(event);\n case 'Backspace':\n return handleBackspaceEvent(event);\n case 'Tab':\n return handleTab(event);\n case 'Escape':\n return ReactEditor.blur(editor);\n }\n\n handleKeyboardShortcuts(event);\n\n // Check if a snippet was triggered\n if (event.key === ' ') {\n checkSnippet(event);\n }\n };\n\n /**\n * scrollSelectionIntoView : Slate's default method to scroll a DOM selection into the view,\n * thats shifting layout for us when there is a overflowY:scroll on the viewport.\n * We are overriding it to check if the selection is not fully within the visible area of the editor,\n * we use scrollBy one line to the bottom\n */\n const handleScrollSelectionIntoView = () => {\n if (!editor.selection) return;\n const domRange = ReactEditor.toDOMRange(editor, editor.selection);\n const domRect = domRange.getBoundingClientRect();\n const blocksInput = blocksRef.current;\n\n if (!blocksInput) {\n return;\n }\n\n const editorRect = blocksInput.getBoundingClientRect();\n\n // Check if the selection is not fully within the visible area of the editor\n if (domRect.top < editorRect.top || domRect.bottom > editorRect.bottom) {\n // Scroll by one line to the bottom\n blocksInput.scrollBy({\n top: 28, // 20px is the line-height + 8px line gap\n behavior: 'smooth',\n });\n }\n };\n\n return (\n <Box\n ref={blocksRef}\n grow={1}\n width=\"100%\"\n overflow=\"auto\"\n fontSize={2}\n background=\"neutral0\"\n color=\"neutral800\"\n lineHeight={6}\n paddingRight={4}\n paddingTop={6}\n paddingBottom={3}\n >\n <StyledEditable\n aria-labelledby={ariaLabelId}\n readOnly={disabled}\n placeholder={placeholder}\n isExpandedMode={isExpandedMode}\n renderElement={renderElement}\n renderLeaf={renderLeaf}\n onKeyDown={handleKeyDown}\n scrollSelectionIntoView={handleScrollSelectionIntoView}\n // As we have our own handler to drag and drop the elements returing true will skip slate's own event handler\n onDrop={() => {\n return true;\n }}\n onDragStart={() => {\n return true;\n }}\n />\n {modalElement}\n </Box>\n );\n};\n\nexport { BlocksContent, BlocksContentProps };\n","import * as React from 'react';\n\nimport { Box, Flex, FocusTrap, Portal, IconButton, InputWrapper } from '@strapi/design-system';\nimport { Collapse } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { getTranslation } from '../../../../../utils/translations';\n\nimport { useBlocksEditorContext } from './BlocksEditor';\n\nconst CollapseIconButton = styled(IconButton)`\n position: absolute;\n bottom: ${12 / 16}rem;\n right: ${12 / 16}rem;\n`;\n\nconst ExpandWrapper = styled(Flex)`\n // Background with 20% opacity\n background: ${({ theme }) => `${theme.colors.neutral800}1F`};\n`;\n\ninterface EditorLayoutProps {\n children: React.ReactNode;\n error?: string;\n onCollapse: () => void;\n disabled: boolean;\n ariaDescriptionId: string;\n}\n\nconst EditorLayout = ({\n children,\n error,\n disabled,\n onCollapse,\n ariaDescriptionId,\n}: EditorLayoutProps) => {\n const { formatMessage } = useIntl();\n const { isExpandedMode } = useBlocksEditorContext('editorLayout');\n\n React.useEffect(() => {\n if (isExpandedMode) {\n document.body.classList.add('lock-body-scroll');\n }\n\n return () => {\n document.body.classList.remove('lock-body-scroll');\n };\n }, [isExpandedMode]);\n\n if (isExpandedMode) {\n return (\n <Portal role=\"dialog\" aria-modal={false}>\n <FocusTrap onEscape={onCollapse}>\n <ExpandWrapper\n position=\"fixed\"\n top={0}\n left={0}\n right={0}\n bottom={0}\n zIndex={4}\n justifyContent=\"center\"\n onClick={onCollapse}\n >\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"popupShadow\"\n overflow=\"hidden\"\n width=\"90%\"\n height=\"90%\"\n onClick={(e) => e.stopPropagation()}\n aria-describedby={ariaDescriptionId}\n position=\"relative\"\n >\n <Flex height=\"100%\" alignItems=\"flex-start\" direction=\"column\">\n {children}\n <CollapseIconButton\n aria-label={formatMessage({\n id: getTranslation('components.Blocks.collapse'),\n defaultMessage: 'Collapse',\n })}\n onClick={onCollapse}\n >\n <Collapse />\n </CollapseIconButton>\n </Flex>\n </Box>\n </ExpandWrapper>\n </FocusTrap>\n </Portal>\n );\n }\n\n return (\n <InputWrapper\n direction=\"column\"\n alignItems=\"flex-start\"\n height=\"512px\"\n disabled={disabled}\n hasError={Boolean(error)}\n style={{ overflow: 'hidden' }}\n aria-describedby={ariaDescriptionId}\n position=\"relative\"\n >\n {children}\n </InputWrapper>\n );\n};\n\nexport { EditorLayout };\n","import * as React from 'react';\n\nimport { Typography } from '@strapi/design-system';\nimport { Bold, Italic, Underline, StrikeThrough, Code } from '@strapi/icons';\nimport { type MessageDescriptor } from 'react-intl';\nimport { Editor, Text, Transforms } from 'slate';\nimport styled, { css } from 'styled-components';\n\nconst stylesToInherit = css`\n font-size: inherit;\n color: inherit;\n line-height: inherit;\n`;\n\nconst BoldText = styled(Typography).attrs({ fontWeight: 'bold' })`\n ${stylesToInherit}\n`;\n\nconst ItalicText = styled(Typography)`\n font-style: italic;\n ${stylesToInherit}\n`;\n\nconst UnderlineText = styled(Typography).attrs({ textDecoration: 'underline' })`\n ${stylesToInherit}\n`;\n\nconst StrikeThroughText = styled(Typography).attrs({ textDecoration: 'line-through' })`\n ${stylesToInherit}\n`;\n\nconst InlineCode = styled.code`\n background-color: ${({ theme }) => theme.colors.neutral150};\n border-radius: ${({ theme }) => theme.borderRadius};\n padding: ${({ theme }) => `0 ${theme.spaces[2]}`};\n font-family: 'SF Mono', SFMono-Regular, ui-monospace, 'DejaVu Sans Mono', Menlo, Consolas,\n monospace;\n color: inherit;\n`;\n\ntype ModifierKey = Exclude<keyof Text, 'type' | 'text'>;\n\ntype ModifiersStore = {\n [K in ModifierKey]: {\n icon: React.ComponentType;\n isValidEventKey: (event: React.KeyboardEvent<HTMLElement>) => boolean;\n label: MessageDescriptor;\n checkIsActive: (editor: Editor) => boolean;\n handleToggle: (editor: Editor) => void;\n renderLeaf: (children: React.JSX.Element | string) => React.JSX.Element;\n };\n};\n\n/**\n * The default handler for checking if a modifier is active\n */\nconst baseCheckIsActive = (editor: Editor, name: ModifierKey) => {\n const marks = Editor.marks(editor);\n if (!marks) return false;\n\n return Boolean(marks[name]);\n};\n\n/**\n * The default handler for toggling a modifier\n */\nconst baseHandleToggle = (editor: Editor, name: ModifierKey) => {\n const marks = Editor.marks(editor);\n\n // If there is no selection, set selection to the end of line\n if (!editor.selection) {\n const endOfEditor = Editor.end(editor, []);\n Transforms.select(editor, endOfEditor);\n }\n\n // Toggle the modifier\n if (marks?.[name]) {\n Editor.removeMark(editor, name);\n } else {\n Editor.addMark(editor, name, true);\n }\n};\n\nconst modifiers: ModifiersStore = {\n bold: {\n icon: Bold,\n isValidEventKey: (event) => event.key === 'b',\n label: { id: 'components.Blocks.modifiers.bold', defaultMessage: 'Bold' },\n checkIsActive: (editor) => baseCheckIsActive(editor, 'bold'),\n handleToggle: (editor) => baseHandleToggle(editor, 'bold'),\n renderLeaf: (children) => <BoldText>{children}</BoldText>,\n },\n italic: {\n icon: Italic,\n isValidEventKey: (event) => event.key === 'i',\n label: { id: 'components.Blocks.modifiers.italic', defaultMessage: 'Italic' },\n checkIsActive: (editor) => baseCheckIsActive(editor, 'italic'),\n handleToggle: (editor) => baseHandleToggle(editor, 'italic'),\n renderLeaf: (children) => <ItalicText>{children}</ItalicText>,\n },\n underline: {\n icon: Underline,\n isValidEventKey: (event) => event.key === 'u',\n label: { id: 'components.Blocks.modifiers.underline', defaultMessage: 'Underline' },\n checkIsActive: (editor) => baseCheckIsActive(editor, 'underline'),\n handleToggle: (editor) => baseHandleToggle(editor, 'underline'),\n renderLeaf: (children) => <UnderlineText>{children}</UnderlineText>,\n },\n strikethrough: {\n icon: StrikeThrough,\n isValidEventKey: (event) => event.key === 'S' && event.shiftKey,\n label: { id: 'components.Blocks.modifiers.strikethrough', defaultMessage: 'Strikethrough' },\n checkIsActive: (editor) => baseCheckIsActive(editor, 'strikethrough'),\n handleToggle: (editor) => baseHandleToggle(editor, 'strikethrough'),\n renderLeaf: (children) => <StrikeThroughText>{children}</StrikeThroughText>,\n },\n code: {\n icon: Code,\n isValidEventKey: (event) => event.key === 'e',\n label: { id: 'components.Blocks.modifiers.code', defaultMessage: 'Inline code' },\n checkIsActive: (editor) => baseCheckIsActive(editor, 'code'),\n handleToggle: (editor) => baseHandleToggle(editor, 'code'),\n renderLeaf: (children) => <InlineCode>{children}</InlineCode>,\n },\n};\n\nexport { type ModifiersStore, modifiers };\n","import { type Editor } from 'slate';\n\n/**\n * Images are void elements. They handle the rendering of their children instead of Slate.\n * See the Slate documentation for more information:\n * - https://docs.slatejs.org/api/nodes/element#void-vs-not-void\n * - https://docs.slatejs.org/api/nodes/element#rendering-void-elements\n */\nconst withImages = (editor: Editor) => {\n const { isVoid } = editor;\n\n editor.isVoid = (element) => {\n return element.type === 'image' ? true : isVoid(element);\n };\n\n return editor;\n};\n\nexport { withImages };\n","import { type BaseEditor, Path, Transforms, Range, Point, Editor } from 'slate';\n\nimport { insertLink } from '../utils/links';\n\ninterface LinkEditor extends BaseEditor {\n lastInsertedLinkPath: Path | null;\n shouldSaveLinkPath: boolean;\n}\n\nconst withLinks = (editor: Editor) => {\n const { isInline, apply, insertText, insertData } = editor;\n\n // Links are inline elements, so we need to override the isInline method for slate\n editor.isInline = (element) => {\n return element.type === 'link' ? true : isInline(element);\n };\n\n // We keep a track of the last inserted link path\n // So we can show the popover on the link component if that link is the last one inserted\n editor.lastInsertedLinkPath = null;\n\n // We intercept the apply method, so everytime we insert a new link, we save its path\n editor.apply = (operation) => {\n if (operation.type === 'insert_node') {\n if (\n !Editor.isEditor(operation.node) &&\n operation.node.type === 'link' &&\n editor.shouldSaveLinkPath\n ) {\n editor.lastInsertedLinkPath = operation.path;\n }\n } else if (operation.type === 'move_node') {\n // We need to update the last inserted link path when link is moved\n // If link is the first word in the paragraph we dont need to update the path\n if (\n Path.hasPrevious(operation.path) &&\n editor.lastInsertedLinkPath &&\n editor.shouldSaveLinkPath\n ) {\n editor.lastInsertedLinkPath = Path.transform(editor.lastInsertedLinkPath, operation);\n }\n }\n\n apply(operation);\n };\n\n editor.insertText = (text) => {\n // When selection is at the end of a link and user types a space, we want to break the link\n if (editor.selection && Range.isCollapsed(editor.selection) && text === ' ') {\n const linksInSelection = Array.from(\n Editor.nodes(editor, {\n at: editor.selection,\n match: (node) => !Editor.isEditor(node) && node.type === 'link',\n })\n );\n\n const selectionIsInLink = editor.selection && linksInSelection.length > 0;\n const selectionIsAtEndOfLink =\n selectionIsInLink &&\n Point.equals(editor.selection.anchor, Editor.end(editor, linksInSelection[0][1]));\n\n if (selectionIsAtEndOfLink) {\n Transforms.insertNodes(\n editor,\n { text: ' ', type: 'text' },\n { at: Path.next(linksInSelection[0][1]), select: true }\n );\n\n return;\n }\n }\n\n insertText(text);\n };\n\n // Add data as a clickable link if its a valid URL\n editor.insertData = (data) => {\n const pastedText = data.getData('text/plain');\n\n if (pastedText) {\n try {\n // eslint-disable-next-line no-new\n new URL(pastedText);\n // Do not show link popup on copy-paste a link, so do not save its path\n editor.shouldSaveLinkPath = false;\n insertLink(editor, { url: pastedText });\n return;\n } catch (error) {\n // continue normal data insertion\n }\n }\n\n insertData(data);\n };\n\n return editor;\n};\n\nexport { withLinks, type LinkEditor };\n","import { type Text, Node, Editor, Element, Transforms } from 'slate';\n\nconst isText = (node: unknown): node is Text => {\n return Node.isNode(node) && !Editor.isEditor(node) && node.type === 'text';\n};\n\n/**\n * This plugin is used to normalize the Slate document to match the Strapi schema.\n */\nconst withStrapiSchema = (editor: Editor) => {\n const { normalizeNode } = editor;\n\n /**\n * On the strapi schema, we want text nodes to have type: text\n * By default, Slate add text nodes without type: text\n * So we add this normalization for the cases when Slate add text nodes automatically\n */\n editor.normalizeNode = (entry) => {\n const [node, path] = entry;\n\n if (!Element.isElement(node) && !isText(node)) {\n Transforms.setNodes(editor, { type: 'text' }, { at: path });\n\n return;\n }\n\n normalizeNode(entry);\n };\n\n return editor;\n};\n\nexport { withStrapiSchema };\n","import * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\nimport { IconButton, Divider, VisuallyHidden } from '@strapi/design-system';\nimport { Expand } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { Editor, type Descendant, createEditor } from 'slate';\nimport { withHistory } from 'slate-history';\nimport { type RenderElementProps, Slate, withReact, ReactEditor, useSlate } from 'slate-react';\nimport styled, { type CSSProperties } from 'styled-components';\n\nimport { FieldValue } from '../../../../../../components/Form';\nimport { getTranslation } from '../../../../../utils/translations';\n\nimport { codeBlocks } from './Blocks/Code';\nimport { headingBlocks } from './Blocks/Heading';\nimport { imageBlocks } from './Blocks/Image';\nimport { linkBlocks } from './Blocks/Link';\nimport { listBlocks } from './Blocks/List';\nimport { paragraphBlocks } from './Blocks/Paragraph';\nimport { quoteBlocks } from './Blocks/Quote';\nimport { BlocksContent, type BlocksContentProps } from './BlocksContent';\nimport { BlocksToolbar } from './BlocksToolbar';\nimport { EditorLayout } from './EditorLayout';\nimport { type ModifiersStore, modifiers } from './Modifiers';\nimport { withImages } from './plugins/withImages';\nimport { withLinks } from './plugins/withLinks';\nimport { withStrapiSchema } from './plugins/withStrapiSchema';\n\nimport type { Schema } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * BlocksEditorProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseBlock {\n renderElement: (props: RenderElementProps) => React.JSX.Element;\n matchNode: (node: Schema.Attribute.BlocksNode) => boolean;\n handleConvert?: (editor: Editor) => void | (() => React.JSX.Element);\n handleEnterKey?: (editor: Editor) => void;\n handleBackspaceKey?: (editor: Editor, event: React.KeyboardEvent<HTMLElement>) => void;\n handleTab?: (editor: Editor) => void;\n snippets?: string[];\n dragHandleTopMargin?: CSSProperties['marginTop'];\n}\n\ninterface NonSelectorBlock extends BaseBlock {\n isInBlocksSelector: false;\n}\n\ninterface SelectorBlock extends BaseBlock {\n isInBlocksSelector: true;\n icon: React.ComponentType;\n label: MessageDescriptor;\n}\n\ntype NonSelectorBlockKey = 'list-item' | 'link';\n\nconst selectorBlockKeys = [\n 'paragraph',\n 'heading-one',\n 'heading-two',\n 'heading-three',\n 'heading-four',\n 'heading-five',\n 'heading-six',\n 'list-ordered',\n 'list-unordered',\n 'image',\n 'quote',\n 'code',\n] as const;\n\ntype SelectorBlockKey = (typeof selectorBlockKeys)[number];\n\nconst isSelectorBlockKey = (key: unknown): key is SelectorBlockKey => {\n return typeof key === 'string' && selectorBlockKeys.includes(key as SelectorBlockKey);\n};\n\ntype BlocksStore = {\n [K in SelectorBlockKey]: SelectorBlock;\n} & {\n [K in NonSelectorBlockKey]: NonSelectorBlock;\n};\n\ninterface BlocksEditorContextValue {\n blocks: BlocksStore;\n modifiers: ModifiersStore;\n disabled: boolean;\n name: string;\n setLiveText: (text: string) => void;\n isExpandedMode: boolean;\n}\n\nconst [BlocksEditorProvider, usePartialBlocksEditorContext] =\n createContext<BlocksEditorContextValue>('BlocksEditor');\n\nfunction useBlocksEditorContext(\n consumerName: string\n): BlocksEditorContextValue & { editor: Editor } {\n const context = usePartialBlocksEditorContext(consumerName);\n const editor = useSlate();\n\n return {\n ...context,\n editor,\n };\n}\n\n/* -------------------------------------------------------------------------------------------------\n * BlocksEditor\n * -----------------------------------------------------------------------------------------------*/\n\nconst EditorDivider = styled(Divider)`\n background: ${({ theme }) => theme.colors.neutral200};\n`;\n\nconst ExpandIconButton = styled(IconButton)`\n position: absolute;\n bottom: ${12 / 16}rem;\n right: ${12 / 16}rem;\n`;\n\n/**\n * Forces an update of the Slate editor when the value prop changes from outside of Slate.\n * The root cause is that Slate is not a controlled component: https://github.com/ianstormtaylor/slate/issues/4612\n * Why not use JSON.stringify(value) as the key?\n * Because it would force a rerender of the entire editor every time the user types a character.\n * Why not use the entity id as the key, since it's unique for each locale?\n * Because it would not solve the problem when using the \"fill in from other locale\" feature\n */\nfunction useResetKey(value?: Schema.Attribute.BlocksValue): {\n key: number;\n incrementSlateUpdatesCount: () => void;\n} {\n // Keep track how many times Slate detected a change from a user interaction in the editor\n const slateUpdatesCount = React.useRef(0);\n // Keep track of how many times the value prop was updated, whether from within editor or from outside\n const valueUpdatesCount = React.useRef(0);\n // Use a key to force a rerender of the Slate editor when needed\n const [key, setKey] = React.useState(0);\n\n React.useEffect(() => {\n valueUpdatesCount.current += 1;\n\n // If the 2 refs are not equal, it means the value was updated from outside\n if (valueUpdatesCount.current !== slateUpdatesCount.current) {\n // So we change the key to force a rerender of the Slate editor,\n // which will pick up the new value through its initialValue prop\n setKey((previousKey) => previousKey + 1);\n\n // Then bring the 2 refs back in sync\n slateUpdatesCount.current = valueUpdatesCount.current;\n }\n }, [value]);\n\n return { key, incrementSlateUpdatesCount: () => (slateUpdatesCount.current += 1) };\n}\n\nconst pipe =\n (...fns: ((baseEditor: Editor) => Editor)[]) =>\n (value: Editor) =>\n fns.reduce<Editor>((prev, fn) => fn(prev), value);\n\ninterface BlocksEditorProps\n extends Pick<FieldValue<Schema.Attribute.BlocksValue>, 'onChange' | 'value' | 'error'>,\n BlocksContentProps {\n disabled?: boolean;\n name: string;\n}\n\nconst BlocksEditor = React.forwardRef<{ focus: () => void }, BlocksEditorProps>(\n ({ disabled = false, name, onChange, value, error, ...contentProps }, forwardedRef) => {\n const { formatMessage } = useIntl();\n const [editor] = React.useState(() =>\n pipe(withHistory, withImages, withStrapiSchema, withReact, withLinks)(createEditor())\n );\n const [liveText, setLiveText] = React.useState('');\n const ariaDescriptionId = React.useId();\n const [isExpandedMode, setIsExpandedMode] = React.useState(false);\n\n const handleToggleExpand = () => {\n setIsExpandedMode((prev) => !prev);\n };\n\n /**\n * Editable is not able to hold the ref, https://github.com/ianstormtaylor/slate/issues/4082\n * so with \"useImperativeHandle\" we can use ReactEditor methods to expose to the parent above\n * also not passing forwarded ref here, gives console warning.\n */\n React.useImperativeHandle(\n forwardedRef,\n () => ({\n focus() {\n ReactEditor.focus(editor);\n },\n }),\n [editor]\n );\n\n const { key, incrementSlateUpdatesCount } = useResetKey(value);\n\n const handleSlateChange = (state: Descendant[]) => {\n const isAstChange = editor.operations.some((op) => op.type !== 'set_selection');\n\n if (isAstChange) {\n incrementSlateUpdatesCount();\n\n onChange(name, state as Schema.Attribute.BlocksValue);\n }\n };\n\n const blocks: BlocksStore = {\n ...paragraphBlocks,\n ...headingBlocks,\n ...listBlocks,\n ...linkBlocks,\n ...imageBlocks,\n ...quoteBlocks,\n ...codeBlocks,\n };\n\n return (\n <>\n <VisuallyHidden id={ariaDescriptionId}>\n {formatMessage({\n id: getTranslation('components.Blocks.dnd.instruction'),\n defaultMessage: `To reorder blocks, press Command or Control along with Shift and the Up or Down arrow keys`,\n })}\n </VisuallyHidden>\n <VisuallyHidden aria-live=\"assertive\">{liveText}</VisuallyHidden>\n <Slate\n editor={editor}\n initialValue={value || [{ type: 'paragraph', children: [{ type: 'text', text: '' }] }]}\n onChange={handleSlateChange}\n key={key}\n >\n <BlocksEditorProvider\n blocks={blocks}\n modifiers={modifiers}\n disabled={disabled}\n name={name}\n setLiveText={setLiveText}\n isExpandedMode={isExpandedMode}\n >\n <EditorLayout\n error={error}\n disabled={disabled}\n onCollapse={handleToggleExpand}\n ariaDescriptionId={ariaDescriptionId}\n >\n <BlocksToolbar />\n <EditorDivider width=\"100%\" />\n <BlocksContent {...contentProps} />\n {!isExpandedMode && (\n <ExpandIconButton\n aria-label={formatMessage({\n id: getTranslation('components.Blocks.expand'),\n defaultMessage: 'Expand',\n })}\n onClick={handleToggleExpand}\n >\n <Expand />\n </ExpandIconButton>\n )}\n </EditorLayout>\n </BlocksEditorProvider>\n </Slate>\n </>\n );\n }\n);\n\nexport {\n type BlocksStore,\n type SelectorBlockKey,\n BlocksEditor,\n BlocksEditorProvider,\n useBlocksEditorContext,\n isSelectorBlockKey,\n};\n","import * as React from 'react';\n\nimport { Field, FieldError, FieldHint, FieldLabel, Flex } from '@strapi/design-system';\n\nimport { useField } from '../../../../../../components/Form';\nimport { InputProps } from '../../../../../../components/FormInputs/types';\n\nimport { BlocksEditor } from './BlocksEditor';\n\nimport type { Schema } from '@strapi/types';\n\ninterface BlocksInputProps extends Omit<InputProps, 'type'> {\n type: Schema.Attribute.Blocks['type'];\n}\n\nconst BlocksInput = React.forwardRef<{ focus: () => void }, BlocksInputProps>(\n ({ label, name, required = false, hint, ...editorProps }, forwardedRef) => {\n const id = React.useId();\n const field = useField(name);\n\n return (\n <Field id={id} name={name} hint={hint} error={field.error} required={required}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <FieldLabel>{label}</FieldLabel>\n <BlocksEditor\n name={name}\n error={field.error}\n ref={forwardedRef}\n value={field.value}\n onChange={field.onChange}\n ariaLabelId={id}\n {...editorProps}\n />\n <FieldHint />\n <FieldError />\n </Flex>\n </Field>\n );\n }\n);\n\nexport { BlocksInput };\n","import { generateNKeysBetween } from 'fractional-indexing';\nimport pipe from 'lodash/fp/pipe';\n\nimport { DOCUMENT_META_FIELDS } from '../../../constants/attributes';\n\nimport type { ComponentsDictionary, Document } from '../../../hooks/useDocument';\nimport type { Schema, UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * traverseData\n * -----------------------------------------------------------------------------------------------*/\n\ntype Predicate = <TAttribute extends Schema.Attribute.AnyAttribute>(\n attribute: TAttribute,\n value: Schema.Attribute.Value<TAttribute>\n) => boolean;\ntype Transform = <TAttribute extends Schema.Attribute.AnyAttribute>(\n value: any,\n attribute: TAttribute\n) => any;\ntype AnyData = Omit<Document, 'id'>;\n\nconst BLOCK_LIST_ATTRIBUTE_KEYS = ['__component', '__temp_key__'];\n\n/**\n * @internal This function is used to traverse the data and transform the values.\n * Given a predicate function, it will transform the value (using the given transform function)\n * if the predicate returns true. If it finds that the attribute is a component or dynamiczone,\n * it will recursively traverse those data structures as well.\n *\n * It is possible to break the ContentManager by using this function incorrectly, for example,\n * if you transform a number into a string but the attribute type is a number, the ContentManager\n * will not be able to save the data and the Form will likely crash because the component it's\n * passing the data too won't succesfully be able to handle the value.\n */\nconst traverseData =\n (predicate: Predicate, transform: Transform) =>\n (schema: Schema.Schema, components: ComponentsDictionary = {}) =>\n (data: AnyData = {}) => {\n const traverse = (datum: AnyData, attributes: Schema.Schema['attributes']) => {\n return Object.entries(datum).reduce<AnyData>((acc, [key, value]) => {\n const attribute = attributes[key];\n\n /**\n * If the attribute is a block list attribute, we don't want to transform it.\n * We also don't want to transform null or undefined values.\n */\n if (BLOCK_LIST_ATTRIBUTE_KEYS.includes(key) || value === null || value === undefined) {\n acc[key] = value;\n return acc;\n }\n\n if (attribute.type === 'component') {\n if (attribute.repeatable) {\n const componentValue = (\n predicate(attribute, value) ? transform(value, attribute) : value\n ) as Schema.Attribute.Value<Schema.Attribute.Component<UID.Component, true>>;\n acc[key] = componentValue.map((componentData) =>\n traverse(componentData, components[attribute.component]?.attributes ?? {})\n );\n } else {\n const componentValue = (\n predicate(attribute, value) ? transform(value, attribute) : value\n ) as Schema.Attribute.Value<Schema.Attribute.Component<UID.Component, false>>;\n\n acc[key] = traverse(componentValue, components[attribute.component]?.attributes ?? {});\n }\n } else if (attribute.type === 'dynamiczone') {\n const dynamicZoneValue = (\n predicate(attribute, value) ? transform(value, attribute) : value\n ) as Schema.Attribute.Value<Schema.Attribute.DynamicZone>;\n\n acc[key] = dynamicZoneValue.map((componentData) =>\n traverse(componentData, components[componentData.__component]?.attributes ?? {})\n );\n } else if (predicate(attribute, value)) {\n acc[key] = transform(value, attribute);\n } else {\n acc[key] = value;\n }\n\n return acc;\n }, {});\n };\n\n return traverse(data, schema.attributes);\n };\n\n/* -------------------------------------------------------------------------------------------------\n * removeProhibitedFields\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal Removes all the fields that are not allowed.\n */\nconst removeProhibitedFields = (prohibitedFields: Schema.Attribute.Kind[]) =>\n traverseData(\n (attribute) => prohibitedFields.includes(attribute.type),\n () => ''\n );\n\n/* -------------------------------------------------------------------------------------------------\n * prepareRelations\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Sets all relation values to an empty array.\n */\nconst prepareRelations = traverseData(\n (attribute) => attribute.type === 'relation',\n () => ({\n connect: [],\n disconnect: [],\n })\n);\n\n/* -------------------------------------------------------------------------------------------------\n * prepareTempKeys\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Adds a `__temp_key__` to each component and dynamiczone item. This gives us\n * a stable identifier regardless of it's ids etc. that we can then use for drag and drop.\n */\nconst prepareTempKeys = traverseData(\n (attribute) =>\n (attribute.type === 'component' && attribute.repeatable) || attribute.type === 'dynamiczone',\n (data) => {\n if (Array.isArray(data) && data.length > 0) {\n const keys = generateNKeysBetween(undefined, undefined, data.length);\n\n return data.map((datum, index) => ({\n ...datum,\n __temp_key__: keys[index],\n }));\n }\n\n return data;\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * removeFieldsThatDontExistOnSchema\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Fields that don't exist in the schema like createdAt etc. are only on the first level (not nested),\n * as such we don't need to traverse the components to remove them.\n */\nconst removeFieldsThatDontExistOnSchema = (schema: Schema.Schema) => (data: AnyData) => {\n const schemaKeys = Object.keys(schema.attributes);\n const dataKeys = Object.keys(data);\n\n const keysToRemove = dataKeys.filter((key) => !schemaKeys.includes(key));\n\n const revisedData = [...keysToRemove, ...DOCUMENT_META_FIELDS].reduce((acc, key) => {\n delete acc[key];\n\n return acc;\n }, structuredClone(data));\n\n return revisedData;\n};\n\n/**\n * @internal\n * @description We need to remove null fields from the data-structure because it will pass it\n * to the specific inputs breaking them as most would prefer empty strings or `undefined` if\n * they're controlled / uncontrolled.\n */\nconst removeNullValues = (data: AnyData) => {\n return Object.entries(data).reduce<AnyData>((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n\n acc[key] = value;\n\n return acc;\n }, {});\n};\n\n/* -------------------------------------------------------------------------------------------------\n * transformDocuments\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Takes a document data structure (this could be from the API or a default form structure)\n * and applies consistent data transformations to it. This is also used when we add new components to the\n * form to ensure the data is correctly prepared from their default state e.g. relations are set to an empty array.\n */\nconst transformDocument =\n (schema: Schema.Schema, components: ComponentsDictionary = {}) =>\n (document: AnyData) => {\n const transformations = pipe(\n removeFieldsThatDontExistOnSchema(schema),\n removeProhibitedFields(['password'])(schema, components),\n removeNullValues,\n prepareRelations(schema, components),\n prepareTempKeys(schema, components)\n );\n\n return transformations(document);\n };\n\nexport { removeProhibitedFields, prepareRelations, transformDocument };\n","import type { ComponentsDictionary, Document } from '../../../hooks/useDocument';\nimport type { Schema } from '@strapi/types';\n\ntype AnyData = Omit<Document, 'id'>;\n\n/* -------------------------------------------------------------------------------------------------\n * createDefaultForm\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal Using the content-type schema & the components dictionary of the content-type,\n * creates a form with pre-filled default values. This is used when creating a new entry.\n */\nconst createDefaultForm = (\n contentType: Schema.Schema,\n components: ComponentsDictionary = {}\n): AnyData => {\n const traverseSchema = (attributes: Schema.Schema['attributes']): AnyData => {\n return Object.entries(attributes).reduce<AnyData>((acc, [key, attribute]) => {\n if ('default' in attribute) {\n acc[key] = attribute.default;\n } else if (attribute.type === 'component' && attribute.required) {\n const defaultComponentForm = traverseSchema(components[attribute.component].attributes);\n\n if (attribute.repeatable) {\n acc[key] = attribute.min ? [...Array(attribute.min).fill(defaultComponentForm)] : [];\n } else {\n acc[key] = defaultComponentForm;\n }\n } else if (attribute.type === 'dynamiczone' && attribute.required) {\n acc[key] = [];\n }\n\n return acc;\n }, {});\n };\n\n return traverseSchema(contentType.attributes);\n};\n\nexport { createDefaultForm };\n","import * as React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { PlusCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useField } from '../../../../../../components/Form';\nimport { getTranslation } from '../../../../../utils/translations';\n\ninterface InitializerProps {\n disabled?: boolean;\n name: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement> & React.MouseEventHandler<HTMLDivElement>;\n}\n\nconst Initializer = ({ disabled, name, onClick }: InitializerProps) => {\n const { formatMessage } = useIntl();\n\n const field = useField(name);\n\n return (\n <>\n <Box\n as=\"button\"\n background=\"neutral100\"\n borderColor={field.error ? 'danger600' : 'neutral200'}\n hasRadius\n disabled={disabled}\n onClick={onClick}\n paddingTop={9}\n paddingBottom={9}\n type=\"button\"\n >\n <Flex direction=\"column\" gap={2}>\n <Flex justifyContent=\"center\">\n <CircleIcon />\n </Flex>\n <Flex justifyContent=\"center\">\n <Typography textColor=\"primary600\" variant=\"pi\" fontWeight=\"bold\">\n {formatMessage({\n id: getTranslation('components.empty-repeatable'),\n defaultMessage: 'No entry yet. Click on the button below to add one.',\n })}\n </Typography>\n </Flex>\n </Flex>\n </Box>\n {field.error && (\n <Typography textColor=\"danger600\" variant=\"pi\">\n {field.error}\n </Typography>\n )}\n </>\n );\n};\n\nconst CircleIcon = styled(PlusCircle)`\n width: ${24 / 16}rem;\n height: ${24 / 16}rem;\n > circle {\n fill: ${({ theme }) => theme.colors.primary200};\n }\n > path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n`;\n\nexport { Initializer };\nexport type { InitializerProps };\n","import { Box, Flex, Grid, GridItem } from '@strapi/design-system';\n\nimport { useField } from '../../../../../../components/Form';\nimport { useDocLayout } from '../../../../../hooks/useDocumentLayout';\nimport { InputRenderer } from '../../InputRenderer';\nimport { ComponentProvider, useComponent } from '../ComponentContext';\n\nimport type { ComponentInputProps } from './Input';\n\ninterface NonRepeatableComponentProps extends Omit<ComponentInputProps, 'required' | 'label'> {}\n\nconst NonRepeatableComponent = ({ attribute, name }: NonRepeatableComponentProps) => {\n const {\n edit: { components },\n } = useDocLayout();\n\n const { value } = useField(name);\n const level = useComponent('NonRepeatableComponent', (state) => state.level);\n\n const { layout } = components[attribute.component];\n\n const isNested = level > 0;\n\n return (\n <ComponentProvider id={value?.id} uid={attribute.component} level={level + 1} type=\"component\">\n <Box\n background={'neutral100'}\n paddingLeft={6}\n paddingRight={6}\n paddingTop={6}\n paddingBottom={6}\n hasRadius={isNested}\n borderColor={isNested ? 'neutral200' : undefined}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {layout.map((row, index) => {\n return (\n <Grid gap={4} key={index}>\n {row.map(({ size, ...field }) => {\n /**\n * Layouts are built from schemas so they don't understand the complete\n * schema tree, for components we append the parent name to the field name\n * because this is the structure for the data & permissions also understand\n * the nesting involved.\n */\n const completeFieldName = `${name}.${field.name}`;\n\n return (\n <GridItem col={size} key={completeFieldName} s={12} xs={12}>\n <InputRenderer {...field} name={completeFieldName} />\n </GridItem>\n );\n })}\n </Grid>\n );\n })}\n </Flex>\n </Box>\n </ComponentProvider>\n );\n};\n\nexport { NonRepeatableComponent };\nexport type { NonRepeatableComponentProps };\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n TextButton,\n VisuallyHidden,\n Accordion,\n AccordionContent as DSAccordionContent,\n AccordionToggle,\n Grid,\n GridItem,\n IconButton,\n Typography,\n KeyboardNavigable,\n useComposedRefs,\n} from '@strapi/design-system';\nimport { Plus, Drag, Trash } from '@strapi/icons';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { useField, useForm } from '../../../../../../components/Form';\nimport { useNotification } from '../../../../../../features/Notifications';\nimport { getIn } from '../../../../../../utils/objects';\nimport { ItemTypes } from '../../../../../constants/dragAndDrop';\nimport { useDoc } from '../../../../../hooks/useDocument';\nimport { useDocLayout } from '../../../../../hooks/useDocumentLayout';\nimport { useDragAndDrop, type UseDragAndDropOptions } from '../../../../../hooks/useDragAndDrop';\nimport { getTranslation } from '../../../../../utils/translations';\nimport { transformDocument } from '../../../utils/data';\nimport { createDefaultForm } from '../../../utils/forms';\nimport { InputRenderer } from '../../InputRenderer';\nimport { ComponentProvider, useComponent } from '../ComponentContext';\n\nimport { Initializer } from './Initializer';\n\nimport type { ComponentInputProps } from './Input';\nimport type { Schema } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * RepeatableComponent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface RepeatableComponentProps extends Omit<ComponentInputProps, 'label' | 'required'> {}\n\nconst RepeatableComponent = ({\n attribute,\n disabled,\n name,\n mainField,\n}: RepeatableComponentProps) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search: searchString } = useLocation();\n const search = React.useMemo(() => new URLSearchParams(searchString), [searchString]);\n const { components } = useDoc();\n\n const { value = [], error } =\n useField<Schema.Attribute.ComponentValue<`${string}.${string}`, true>>(name);\n const addFieldRow = useForm('RepeatableComponent', (state) => state.addFieldRow);\n const moveFieldRow = useForm('RepeatableComponent', (state) => state.moveFieldRow);\n const removeFieldRow = useForm('RepeatableComponent', (state) => state.removeFieldRow);\n const { max = Infinity } = attribute;\n\n const [collapseToOpen, setCollapseToOpen] = React.useState<number | null>(null);\n const [liveText, setLiveText] = React.useState('');\n\n /**\n * Get the temp key of the component that has the field that is currently focussed\n * as defined by the `field` query param. We can then force this specific component\n * to be in its \"open\" state.\n */\n const componentTmpKeyWithFocussedField = React.useMemo(() => {\n if (search.has('field')) {\n const fieldParam = search.get('field');\n\n if (!fieldParam) {\n return undefined;\n }\n\n const [, path] = fieldParam.split(`${name}.`);\n\n if (getIn(value, path, undefined) !== undefined) {\n const [subpath] = path.split('.');\n\n return getIn(value, subpath, undefined)?.__temp_key__;\n }\n }\n\n return undefined;\n }, [search, name, value]);\n\n React.useEffect(() => {\n if (typeof componentTmpKeyWithFocussedField === 'number') {\n setCollapseToOpen(componentTmpKeyWithFocussedField);\n }\n }, [componentTmpKeyWithFocussedField]);\n\n const toggleCollapses = () => {\n setCollapseToOpen(null);\n };\n\n const handleClick = () => {\n if (value.length < max) {\n const schema = components[attribute.component];\n const form = createDefaultForm(schema, components);\n const data = transformDocument(schema, components)(form);\n\n addFieldRow(name, data);\n // setCollapseToOpen(nextTempKey);\n } else if (value.length >= max) {\n toggleNotification({\n type: 'info',\n message: formatMessage({\n id: getTranslation('components.notification.info.maximum-requirement'),\n }),\n });\n }\n };\n\n const handleMoveComponentField: ComponentProps['onMoveItem'] = (newIndex, currentIndex) => {\n setLiveText(\n formatMessage(\n {\n id: getTranslation('dnd.reorder'),\n defaultMessage: '{item}, moved. New position in list: {position}.',\n },\n {\n item: `${name}.${currentIndex}`,\n position: getItemPos(newIndex),\n }\n )\n );\n\n moveFieldRow(name, currentIndex, newIndex);\n };\n\n const handleToggle = (key: number) => () => {\n if (collapseToOpen === key) {\n setCollapseToOpen(null);\n } else {\n setCollapseToOpen(key);\n }\n };\n\n const getItemPos = (index: number) => `${index + 1} of ${value.length}`;\n\n const handleCancel = (index: number) => {\n setLiveText(\n formatMessage(\n {\n id: getTranslation('dnd.cancel-item'),\n defaultMessage: '{item}, dropped. Re-order cancelled.',\n },\n {\n item: `${name}.${index}`,\n }\n )\n );\n };\n\n const handleGrabItem = (index: number) => {\n setLiveText(\n formatMessage(\n {\n id: getTranslation('dnd.grab-item'),\n defaultMessage: `{item}, grabbed. Current position in list: {position}. Press up and down arrow to change position, Spacebar to drop, Escape to cancel.`,\n },\n {\n item: `${name}.${index}`,\n position: getItemPos(index),\n }\n )\n );\n };\n\n const handleDropItem = (index: number) => {\n setLiveText(\n formatMessage(\n {\n id: getTranslation('dnd.drop-item'),\n defaultMessage: `{item}, dropped. Final position in list: {position}.`,\n },\n {\n item: `${name}.${index}`,\n position: getItemPos(index),\n }\n )\n );\n };\n\n const ariaDescriptionId = React.useId();\n\n const level = useComponent('RepeatableComponent', (state) => state.level);\n\n if (value.length === 0) {\n return <Initializer disabled={disabled} name={name} onClick={handleClick} />;\n }\n\n return (\n <Box hasRadius>\n <VisuallyHidden id={ariaDescriptionId}>\n {formatMessage({\n id: getTranslation('dnd.instructions'),\n defaultMessage: `Press spacebar to grab and re-order`,\n })}\n </VisuallyHidden>\n <VisuallyHidden aria-live=\"assertive\">{liveText}</VisuallyHidden>\n <AccordionGroup error={error}>\n <AccordionContent aria-describedby={ariaDescriptionId}>\n {value.map(({ __temp_key__: key, id }, index) => {\n return (\n <ComponentProvider\n key={key}\n // id is always a number in a component\n id={id as number}\n uid={attribute.component}\n level={level + 1}\n type=\"repeatable\"\n >\n <Component\n disabled={disabled}\n name={`${name}.${index}`}\n attribute={attribute}\n index={index}\n isOpen={collapseToOpen === key}\n mainField={mainField}\n onMoveItem={handleMoveComponentField}\n onClickToggle={handleToggle(key)}\n onDeleteComponent={() => {\n removeFieldRow(name, index);\n toggleCollapses();\n }}\n toggleCollapses={toggleCollapses}\n onCancel={handleCancel}\n onDropItem={handleDropItem}\n onGrabItem={handleGrabItem}\n />\n </ComponentProvider>\n );\n })}\n </AccordionContent>\n <AccordionFooter>\n <Flex justifyContent=\"center\" height=\"48px\" background=\"neutral0\">\n <TextButtonCustom disabled={disabled} onClick={handleClick} startIcon={<Plus />}>\n {formatMessage({\n id: getTranslation('containers.EditView.add.new-entry'),\n defaultMessage: 'Add an entry',\n })}\n </TextButtonCustom>\n </Flex>\n </AccordionFooter>\n </AccordionGroup>\n </Box>\n );\n};\n\nconst TextButtonCustom = styled(TextButton)`\n height: 100%;\n width: 100%;\n border-radius: 0 0 4px 4px;\n display: flex;\n justify-content: center;\n span {\n font-weight: 600;\n font-size: 14px;\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Accordion\n * -----------------------------------------------------------------------------------------------*/\n\nconst AccordionFooter = styled(Box)`\n overflow: hidden;\n border-bottom: 1px solid ${({ theme }) => theme.colors.neutral200};\n border-right: 1px solid ${({ theme }) => theme.colors.neutral200};\n border-left: 1px solid ${({ theme }) => theme.colors.neutral200};\n border-radius: 0 0 ${({ theme }) => theme.borderRadius} ${({ theme }) => theme.borderRadius};\n`;\n\nconst AccordionContent = styled(Box)`\n border-bottom: none;\n\n /* add the borders and make sure the top is transparent to avoid jumping with the hover effect */\n & > div > div {\n border: 1px solid ${({ theme }) => theme.colors.neutral200};\n border-top-color: transparent;\n }\n\n /* the top accordion _does_ need a border though */\n & > div:first-child > div {\n border-top: 1px solid ${({ theme }) => theme.colors.neutral200};\n }\n\n /* Reset all the border-radius' */\n & > div > div,\n & > div > div > div {\n border-radius: unset;\n }\n\n /* Give the border radius back to the first accordion */\n & > div:first-child > div,\n & > div:first-child > div > div {\n border-radius: ${({ theme }) => theme.borderRadius} ${({ theme }) => theme.borderRadius} 0 0;\n }\n\n & > div > div[data-strapi-expanded='true'] {\n border: 1px solid ${({ theme }) => theme.colors.primary600};\n }\n`;\n\ninterface AccordionGroupProps {\n children: React.ReactNode;\n error?: string;\n}\n\nconst AccordionGroup = ({ children, error }: AccordionGroupProps) => {\n return (\n <KeyboardNavigable attributeName=\"data-strapi-accordion-toggle\">\n {children}\n {error && (\n <Box paddingTop={1}>\n <Typography variant=\"pi\" textColor=\"danger600\">\n {error}\n </Typography>\n </Box>\n )}\n </KeyboardNavigable>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Field\n * -----------------------------------------------------------------------------------------------*/\n\nconst CustomIconButton = styled(IconButton)<{ expanded?: boolean }>`\n background-color: transparent;\n\n svg {\n path {\n fill: ${({ theme, expanded }) =>\n expanded ? theme.colors.primary600 : theme.colors.neutral600};\n }\n }\n\n &:hover {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n }\n }\n`;\n\nconst ActionsFlex = styled(Flex)<{ expanded?: boolean }>`\n & .drag-handle {\n background: unset;\n\n svg {\n path {\n fill: ${({ theme, expanded }) => (expanded ? theme.colors.primary600 : undefined)};\n }\n }\n\n &:hover {\n svg {\n path {\n /* keeps the hover style of the accordion */\n fill: ${({ theme }) => theme.colors.primary600};\n }\n }\n }\n }\n`;\n\ninterface ComponentProps\n extends Pick<UseDragAndDropOptions, 'onGrabItem' | 'onDropItem' | 'onCancel' | 'onMoveItem'>,\n Pick<RepeatableComponentProps, 'mainField'> {\n attribute: Schema.Attribute.Component<`${string}.${string}`, boolean>;\n disabled?: boolean;\n index: number;\n isOpen?: boolean;\n name: string;\n onClickToggle: () => void;\n onDeleteComponent?: React.MouseEventHandler<HTMLButtonElement>;\n toggleCollapses: () => void;\n}\n\nconst Component = ({\n attribute,\n disabled,\n index,\n isOpen,\n name,\n mainField = {\n name: 'id',\n type: 'integer',\n },\n onClickToggle,\n onDeleteComponent,\n toggleCollapses,\n ...dragProps\n}: ComponentProps) => {\n const { formatMessage } = useIntl();\n const {\n edit: { components },\n } = useDocLayout();\n\n const { layout } = components[attribute.component];\n\n const displayValue = useForm('RepeatableComponent', (state) => {\n return getIn(state.values, [...name.split('.'), mainField.name]);\n });\n\n const accordionRef = React.useRef<HTMLButtonElement>(null!);\n\n /**\n * The last item in the fieldName array will be the index of this component.\n * Drag and drop should be isolated to the parent component so nested repeatable\n * components are not affected by the drag and drop of the parent component in\n * their own re-ordering context.\n */\n const componentKey = name.split('.').slice(0, -1).join('.');\n\n const [{ handlerId, isDragging, handleKeyDown }, boxRef, dropRef, dragRef, dragPreviewRef] =\n useDragAndDrop(!disabled, {\n type: `${ItemTypes.COMPONENT}_${componentKey}`,\n index,\n item: {\n index,\n displayedValue: displayValue,\n },\n onStart() {\n // Close all collapses\n toggleCollapses();\n },\n ...dragProps,\n });\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef, index]);\n\n const composedAccordionRefs = useComposedRefs<HTMLButtonElement>(accordionRef, dragRef);\n const composedBoxRefs = useComposedRefs(boxRef, dropRef);\n\n return (\n <Box ref={(ref) => composedBoxRefs(ref!)}>\n {isDragging ? (\n <Preview />\n ) : (\n <Accordion expanded={isOpen} onToggle={onClickToggle} id={name} size=\"S\">\n <AccordionToggle\n action={\n disabled ? null : (\n <ActionsFlex gap={0} expanded={isOpen}>\n <CustomIconButton\n expanded={isOpen}\n borderWidth={0}\n onClick={onDeleteComponent}\n label={formatMessage({\n id: getTranslation('containers.Edit.delete'),\n defaultMessage: 'Delete',\n })}\n icon={<Trash />}\n />\n <IconButton\n className=\"drag-handle\"\n ref={composedAccordionRefs}\n forwardedAs=\"div\"\n role=\"button\"\n borderWidth={0}\n tabIndex={0}\n onClick={(e) => e.stopPropagation()}\n data-handler-id={handlerId}\n label={formatMessage({\n id: getTranslation('components.DragHandle-label'),\n defaultMessage: 'Drag',\n })}\n onKeyDown={handleKeyDown}\n >\n <Drag />\n </IconButton>\n </ActionsFlex>\n )\n }\n title={displayValue}\n togglePosition=\"left\"\n />\n <DSAccordionContent>\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n background=\"neutral100\"\n padding={6}\n gap={6}\n >\n {layout.map((row, index) => {\n return (\n <Grid gap={4} key={index}>\n {row.map(({ size, ...field }) => {\n /**\n * Layouts are built from schemas so they don't understand the complete\n * schema tree, for components we append the parent name to the field name\n * because this is the structure for the data & permissions also understand\n * the nesting involved.\n */\n const completeFieldName = `${name}.${field.name}`;\n\n return (\n <GridItem col={size} key={completeFieldName} s={12} xs={12}>\n <InputRenderer {...field} name={completeFieldName} />\n </GridItem>\n );\n })}\n </Grid>\n );\n })}\n </Flex>\n </DSAccordionContent>\n </Accordion>\n )}\n </Box>\n );\n};\n\nconst Preview = () => {\n return <StyledSpan as=\"span\" padding={6} background=\"primary100\" />;\n};\n\nconst StyledSpan = styled(Box)`\n display: block;\n outline: 1px dashed ${({ theme }) => theme.colors.primary500};\n outline-offset: -1px;\n`;\n\nexport { RepeatableComponent };\nexport type { RepeatableComponentProps };\n","import { Box, Flex, IconButton, Typography } from '@strapi/design-system';\nimport { Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { InputProps, useField } from '../../../../../../components/Form';\nimport { useDoc } from '../../../../../hooks/useDocument';\nimport { EditFieldLayout } from '../../../../../hooks/useDocumentLayout';\nimport { getTranslation } from '../../../../../utils/translations';\nimport { transformDocument } from '../../../utils/data';\nimport { createDefaultForm } from '../../../utils/forms';\n\nimport { Initializer } from './Initializer';\nimport { NonRepeatableComponent } from './NonRepeatable';\nimport { RepeatableComponent } from './Repeatable';\n\ninterface ComponentInputProps\n extends Omit<Extract<EditFieldLayout, { type: 'component' }>, 'size' | 'hint'>,\n Pick<InputProps, 'hint'> {}\n\nconst ComponentInput = ({\n label,\n required,\n name,\n attribute,\n disabled,\n ...props\n}: ComponentInputProps) => {\n const { formatMessage } = useIntl();\n const field = useField(name);\n\n const showResetComponent = !attribute.repeatable && field.value && !disabled;\n\n const { components } = useDoc();\n\n const handleInitialisationClick = () => {\n const schema = components[attribute.component];\n const form = createDefaultForm(schema, components);\n const data = transformDocument(schema, components)(form);\n\n field.onChange(name, data);\n };\n\n return (\n <Box>\n <Flex justifyContent=\"space-between\">\n <Flex paddingBottom={1}>\n <Typography\n textColor=\"neutral800\"\n htmlFor={name}\n variant=\"pi\"\n fontWeight=\"bold\"\n as=\"label\"\n >\n {label}\n {attribute.repeatable && (\n <> ({Array.isArray(field.value) ? field.value.length : 0})</>\n )}\n {required && <Typography textColor=\"danger600\">*</Typography>}\n </Typography>\n {/* {labelAction && <LabelAction paddingLeft={1}>{labelAction}</LabelAction>} */}\n </Flex>\n\n {showResetComponent && (\n <IconButton\n label={formatMessage({\n id: getTranslation('components.reset-entry'),\n defaultMessage: 'Reset Entry',\n })}\n icon={<Trash />}\n borderWidth={0}\n onClick={() => {\n field.onChange(name, null);\n }}\n />\n )}\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n {/**\n * if the field isn't repeatable then we display a button to start the field\n * TODO: should this just live in the `NonRepeatableComponent`?\n */}\n {!attribute.repeatable && !field.value && (\n <Initializer disabled={disabled} name={name} onClick={handleInitialisationClick} />\n )}\n {!attribute.repeatable && field.value ? (\n <NonRepeatableComponent\n attribute={attribute}\n name={name}\n disabled={disabled}\n {...props}\n />\n ) : null}\n {attribute.repeatable && (\n <RepeatableComponent attribute={attribute} name={name} disabled={disabled} {...props} />\n )}\n </Flex>\n </Box>\n );\n};\n\n// const LabelAction = styled(Box)`\n// svg path {\n// fill: ${({ theme }) => theme.colors.neutral500};\n// }\n// `;\n\nexport { ComponentInput };\nexport type { ComponentInputProps };\n","import * as React from 'react';\n\nimport { BaseButton, Flex, Typography } from '@strapi/design-system';\nimport { PlusCircle } from '@strapi/icons';\nimport styled from 'styled-components';\n\ninterface AddComponentButtonProps {\n children: React.ReactNode;\n hasError?: boolean;\n isDisabled?: boolean;\n isOpen?: boolean;\n onClick: React.MouseEventHandler<HTMLButtonElement> & React.MouseEventHandler<HTMLDivElement>;\n}\n\nconst AddComponentButton = ({\n hasError,\n isDisabled,\n isOpen,\n children,\n onClick,\n}: AddComponentButtonProps) => {\n return (\n <StyledButton\n type=\"button\"\n onClick={onClick}\n disabled={isDisabled}\n background=\"neutral0\"\n paddingTop={3}\n paddingBottom={3}\n paddingLeft={4}\n paddingRight={4}\n style={{ cursor: isDisabled ? 'not-allowed' : 'pointer' }}\n >\n <Flex as=\"span\" gap={2}>\n <StyledAddIcon aria-hidden $isOpen={isOpen} $hasError={hasError && !isOpen} />\n <Typography\n variant=\"pi\"\n fontWeight=\"bold\"\n textColor={hasError && !isOpen ? 'danger600' : 'neutral500'}\n >\n {children}\n </Typography>\n </Flex>\n </StyledButton>\n );\n};\n\nconst StyledAddIcon = styled(PlusCircle)<{ $isOpen?: boolean; $hasError?: boolean }>`\n height: ${({ theme }) => theme.spaces[6]};\n width: ${({ theme }) => theme.spaces[6]};\n transform: ${({ $isOpen }) => ($isOpen ? 'rotate(45deg)' : 'rotate(0deg)')};\n\n > circle {\n fill: ${({ theme, $hasError }) =>\n $hasError ? theme.colors.danger200 : theme.colors.neutral150};\n }\n > path {\n fill: ${({ theme, $hasError }) =>\n $hasError ? theme.colors.danger600 : theme.colors.neutral600};\n }\n`;\n\nconst StyledButton = styled(BaseButton)`\n border-radius: 26px;\n border-color: ${({ theme }) => theme.colors.neutral150};\n box-shadow: ${({ theme }) => theme.shadows.filterShadow};\n\n &:hover {\n ${Typography} {\n color: ${({ theme }) => theme.colors.primary600};\n }\n\n ${StyledAddIcon} {\n > circle {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n > path {\n fill: ${({ theme }) => theme.colors.neutral100};\n }\n }\n }\n &:active {\n ${Typography} {\n color: ${({ theme }) => theme.colors.primary600};\n }\n ${StyledAddIcon} {\n > circle {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n > path {\n fill: ${({ theme }) => theme.colors.neutral100};\n }\n }\n }\n`;\n\nexport { AddComponentButton };\nexport type { AddComponentButtonProps };\n","import * as React from 'react';\n\nimport {\n Accordion,\n AccordionContent,\n AccordionToggle,\n AccordionVariant,\n Box,\n Flex,\n Typography,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { ComponentIcon } from '../../../../../components/ComponentIcon';\n\ninterface ComponentCategoryProps {\n category: string;\n components?: Array<{\n uid: string;\n displayName: string;\n icon?: string;\n }>;\n isOpen?: boolean;\n onAddComponent: (\n componentUid: string\n ) => React.MouseEventHandler<HTMLButtonElement> & React.MouseEventHandler<HTMLDivElement>;\n onToggle: (category: string) => void;\n variant?: AccordionVariant;\n}\n\nconst ComponentCategory = ({\n category,\n components = [],\n variant = 'primary',\n isOpen,\n onAddComponent,\n onToggle,\n}: ComponentCategoryProps) => {\n const { formatMessage } = useIntl();\n\n const handleToggle = () => {\n onToggle(category);\n };\n\n return (\n <Accordion expanded={isOpen} onToggle={handleToggle} size=\"S\">\n <AccordionToggle\n // @ts-expect-error – Error in the design-system\n variant={variant}\n title={formatMessage({ id: category, defaultMessage: category })}\n togglePosition=\"left\"\n />\n <AccordionContent>\n <Box paddingTop={4} paddingBottom={4} paddingLeft={3} paddingRight={3}>\n <Grid>\n {components.map(({ uid, displayName, icon }) => (\n <ComponentBox\n key={uid}\n as=\"button\"\n type=\"button\"\n background=\"neutral100\"\n justifyContent=\"center\"\n onClick={onAddComponent(uid)}\n hasRadius\n height={`${84 / 16}rem`}\n shrink={0}\n borderColor=\"neutral200\"\n >\n <Flex direction=\"column\" gap={1} alignItems=\"center\" justifyContent=\"center\">\n <ComponentIcon icon={icon} />\n\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"neutral600\">\n {displayName}\n </Typography>\n </Flex>\n </ComponentBox>\n ))}\n </Grid>\n </Box>\n </AccordionContent>\n </Accordion>\n );\n};\n\nconst Grid = styled.div`\n display: grid;\n grid-template-columns: repeat(auto-fit, ${140 / 16}rem);\n grid-gap: ${({ theme }) => theme.spaces[1]};\n`;\n\nconst ComponentBox = styled(Flex)`\n &:focus,\n &:hover {\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n\n ${Typography} {\n color: ${({ theme }) => theme.colors.primary600};\n }\n\n /* > Flex > ComponentIcon */\n > div > div:first-child {\n background: ${({ theme }) => theme.colors.primary200};\n color: ${({ theme }) => theme.colors.primary600};\n }\n }\n`;\n\nexport { ComponentCategory };\nexport type { ComponentCategoryProps };\n","import * as React from 'react';\n\nimport { Box, Flex, KeyboardNavigable, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTranslation } from '../../../../../utils/translations';\n\nimport { ComponentCategory, ComponentCategoryProps } from './ComponentCategory';\n\ninterface ComponentPickerProps {\n dynamicComponentsByCategory?: Record<string, NonNullable<ComponentCategoryProps['components']>>;\n isOpen?: boolean;\n onClickAddComponent: (componentUid: string) => void;\n}\n\nconst ComponentPicker = ({\n dynamicComponentsByCategory = {},\n isOpen,\n onClickAddComponent,\n}: ComponentPickerProps) => {\n const { formatMessage } = useIntl();\n\n const [categoryToOpen, setCategoryToOpen] = React.useState('');\n\n React.useEffect(() => {\n const categoryKeys = Object.keys(dynamicComponentsByCategory);\n\n if (isOpen && categoryKeys.length > 0) {\n setCategoryToOpen(categoryKeys[0]);\n }\n }, [isOpen, dynamicComponentsByCategory]);\n\n const handleAddComponentToDz = (componentUid: string) => () => {\n onClickAddComponent(componentUid);\n setCategoryToOpen('');\n };\n\n const handleClickToggle = (categoryName: string) => {\n setCategoryToOpen((currentCat) => (currentCat === categoryName ? '' : categoryName));\n };\n\n if (!isOpen) {\n return null;\n }\n\n return (\n <Box\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={5}\n paddingRight={5}\n background=\"neutral0\"\n shadow=\"tableShadow\"\n borderColor=\"neutral150\"\n hasRadius\n >\n <Flex justifyContent=\"center\">\n <Typography fontWeight=\"bold\" textColor=\"neutral600\">\n {formatMessage({\n id: getTranslation('components.DynamicZone.ComponentPicker-label'),\n defaultMessage: 'Pick one component',\n })}\n </Typography>\n </Flex>\n <Box paddingTop={2}>\n <KeyboardNavigable attributeName=\"data-strapi-accordion-toggle\">\n {Object.entries(dynamicComponentsByCategory).map(([category, components], index) => (\n <ComponentCategory\n key={category}\n category={category}\n components={components}\n onAddComponent={handleAddComponentToDz}\n isOpen={category === categoryToOpen}\n onToggle={handleClickToggle}\n variant={index % 2 === 1 ? 'primary' : 'secondary'}\n />\n ))}\n </KeyboardNavigable>\n </Box>\n </Box>\n );\n};\n\nexport { ComponentPicker };\nexport type { ComponentPickerProps };\n","import * as React from 'react';\n\nimport {\n Accordion,\n AccordionContent,\n AccordionToggle,\n Box,\n Flex,\n Grid,\n GridItem,\n IconButton,\n VisuallyHidden,\n useComposedRefs,\n} from '@strapi/design-system';\nimport { Menu, MenuItem } from '@strapi/design-system/v2';\nimport { Drag, More, Trash } from '@strapi/icons';\nimport { getEmptyImage } from 'react-dnd-html5-backend';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useForm } from '../../../../../../components/Form';\nimport { getIn } from '../../../../../../utils/objects';\nimport { ComponentIcon } from '../../../../../components/ComponentIcon';\nimport { ItemTypes } from '../../../../../constants/dragAndDrop';\nimport { useDocLayout } from '../../../../../hooks/useDocumentLayout';\nimport { type UseDragAndDropOptions, useDragAndDrop } from '../../../../../hooks/useDragAndDrop';\nimport { getTranslation } from '../../../../../utils/translations';\nimport { InputRenderer } from '../../InputRenderer';\n\nimport type { ComponentPickerProps } from './ComponentPicker';\n\ninterface DynamicComponentProps\n extends Pick<UseDragAndDropOptions, 'onGrabItem' | 'onDropItem' | 'onCancel'>,\n Pick<ComponentPickerProps, 'dynamicComponentsByCategory'> {\n componentUid: string;\n disabled?: boolean;\n index: number;\n name: string;\n onAddComponent: (componentUid: string, index: number) => void;\n onRemoveComponentClick: () => void;\n onMoveComponent: (dragIndex: number, hoverIndex: number) => void;\n}\n\nconst DynamicComponent = ({\n componentUid,\n disabled,\n index,\n name,\n onRemoveComponentClick,\n onMoveComponent,\n onGrabItem,\n onDropItem,\n onCancel,\n dynamicComponentsByCategory = {},\n onAddComponent,\n}: DynamicComponentProps) => {\n const [isOpen, setIsOpen] = React.useState(true);\n const { formatMessage } = useIntl();\n const formValues = useForm('DynamicComponent', (state) => state.values);\n const {\n edit: { components },\n } = useDocLayout();\n\n const title = React.useMemo(() => {\n const { mainField } = components[componentUid]?.settings ?? { mainField: 'id' };\n\n const mainFieldValue = getIn(formValues, `${name}.${index}.${mainField}`);\n\n const displayedValue = mainField === 'id' ? '' : String(mainFieldValue).trim();\n\n const mainValue = displayedValue.length > 0 ? `- ${displayedValue}` : displayedValue;\n\n return mainValue;\n }, [componentUid, components, formValues, name, index]);\n\n const { icon, displayName } = React.useMemo(() => {\n const [category] = componentUid.split('.');\n const { icon, displayName } = (dynamicComponentsByCategory[category] ?? []).find(\n (component) => component.uid === componentUid\n ) ?? { icon: null, displayName: null };\n\n return { icon, displayName };\n }, [componentUid, dynamicComponentsByCategory]);\n\n // const fieldsErrors = Object.keys(formErrors).filter((errorKey) => {\n // const errorKeysArray = errorKey.split('.');\n\n // if (`${errorKeysArray[0]}.${errorKeysArray[1]}` === `${name}.${index}`) {\n // return true;\n // }\n\n // return false;\n // });\n\n // let errorMessage;\n\n // if (fieldsErrors.length > 0) {\n // errorMessage = formatMessage({\n // id: getTranslation('components.DynamicZone.error-message'),\n // defaultMessage: 'The component contains error(s)',\n // });\n // }\n\n const handleToggle = () => {\n setIsOpen((s) => !s);\n };\n\n const [{ handlerId, isDragging, handleKeyDown }, boxRef, dropRef, dragRef, dragPreviewRef] =\n useDragAndDrop(!disabled, {\n type: `${ItemTypes.DYNAMIC_ZONE}_${name}`,\n index,\n item: {\n index,\n displayedValue: `${displayName} ${title}`,\n icon,\n },\n onMoveItem: onMoveComponent,\n onDropItem,\n onGrabItem,\n onCancel,\n });\n\n React.useEffect(() => {\n dragPreviewRef(getEmptyImage(), { captureDraggingState: false });\n }, [dragPreviewRef, index]);\n\n const composedBoxRefs = useComposedRefs(boxRef, dropRef);\n\n const accordionActions = disabled ? null : (\n <ActionsFlex gap={0}>\n <IconButtonCustom\n borderWidth={0}\n label={formatMessage(\n {\n id: getTranslation('components.DynamicZone.delete-label'),\n defaultMessage: 'Delete {name}',\n },\n { name: title }\n )}\n onClick={onRemoveComponentClick}\n >\n <Trash />\n </IconButtonCustom>\n <IconButton\n forwardedAs=\"div\"\n role=\"button\"\n borderWidth={0}\n tabIndex={0}\n onClick={(e) => e.stopPropagation()}\n data-handler-id={handlerId}\n ref={dragRef}\n label={formatMessage({\n id: getTranslation('components.DragHandle-label'),\n defaultMessage: 'Drag',\n })}\n onKeyDown={handleKeyDown}\n >\n <Drag />\n </IconButton>\n <Menu.Root>\n <Menu.Trigger size=\"S\" endIcon={null} paddingLeft={2} paddingRight={2}>\n <More aria-hidden focusable={false} />\n <VisuallyHidden as=\"span\">\n {formatMessage({\n id: getTranslation('components.DynamicZone.more-actions'),\n defaultMessage: 'More actions',\n })}\n </VisuallyHidden>\n </Menu.Trigger>\n <Menu.Content>\n <Menu.SubRoot>\n <Menu.SubTrigger>\n {formatMessage({\n id: getTranslation('components.DynamicZone.add-item-above'),\n defaultMessage: 'Add component above',\n })}\n </Menu.SubTrigger>\n <Menu.SubContent>\n {Object.entries(dynamicComponentsByCategory).map(([category, components]) => (\n <React.Fragment key={category}>\n <Menu.Label>{category}</Menu.Label>\n {components.map(({ displayName, uid }) => (\n <MenuItem key={componentUid} onSelect={() => onAddComponent(uid, index)}>\n {displayName}\n </MenuItem>\n ))}\n </React.Fragment>\n ))}\n </Menu.SubContent>\n </Menu.SubRoot>\n <Menu.SubRoot>\n <Menu.SubTrigger>\n {formatMessage({\n id: getTranslation('components.DynamicZone.add-item-below'),\n defaultMessage: 'Add component below',\n })}\n </Menu.SubTrigger>\n <Menu.SubContent>\n {Object.entries(dynamicComponentsByCategory).map(([category, components]) => (\n <React.Fragment key={category}>\n <Menu.Label>{category}</Menu.Label>\n {components.map(({ displayName, uid }) => (\n <MenuItem key={componentUid} onSelect={() => onAddComponent(uid, index + 1)}>\n {displayName}\n </MenuItem>\n ))}\n </React.Fragment>\n ))}\n </Menu.SubContent>\n </Menu.SubRoot>\n </Menu.Content>\n </Menu.Root>\n </ActionsFlex>\n );\n\n return (\n <ComponentContainer as=\"li\" width=\"100%\">\n <Flex justifyContent=\"center\">\n <Rectangle background=\"neutral200\" />\n </Flex>\n {/* @ts-expect-error – Fix this ref issue */}\n <StyledBox ref={composedBoxRefs} hasRadius>\n {isDragging ? (\n <Preview />\n ) : (\n <Accordion expanded={isOpen} onToggle={handleToggle} size=\"S\" /*error={errorMessage}*/>\n <AccordionToggle\n // @ts-expect-error – Issue in DS where AccordionToggle props don't extend TextButton\n startIcon={<ComponentIcon icon={icon} showBackground={false} size=\"S\" />}\n action={accordionActions}\n title={`${displayName} ${title}`}\n togglePosition=\"left\"\n />\n <AccordionContent>\n <AccordionContentRadius background=\"neutral0\">\n <Box paddingLeft={6} paddingRight={6} paddingTop={6} paddingBottom={6}>\n {components[componentUid]?.layout?.map((row, rowInd) => (\n <Grid gap={4} key={rowInd}>\n {row.map(({ size, ...field }) => {\n const fieldName = `${name}.${index}.${field.name}`;\n\n return (\n <GridItem col={size} key={fieldName} s={12} xs={12}>\n <InputRenderer {...field} name={fieldName} />\n </GridItem>\n );\n })}\n </Grid>\n ))}\n </Box>\n </AccordionContentRadius>\n </AccordionContent>\n </Accordion>\n )}\n </StyledBox>\n </ComponentContainer>\n );\n};\n\nconst ActionsFlex = styled(Flex)`\n /* \n we need to remove the background from the button but we can't \n wrap the element in styled because it breaks the forwardedAs which\n we need for drag handler to work on firefox\n */\n div[role='button'] {\n background: transparent;\n }\n`;\n\nconst IconButtonCustom = styled(IconButton)<{ expanded?: boolean }>`\n background-color: transparent;\n\n svg path {\n fill: ${({ theme, expanded }) =>\n expanded ? theme.colors.primary600 : theme.colors.neutral600};\n }\n`;\n\n// TODO: Delete once https://github.com/strapi/design-system/pull/858\n// is merged and released.\nconst StyledBox = styled(Box)`\n > div:first-child {\n box-shadow: ${({ theme }) => theme.shadows.tableShadow};\n }\n`;\n\nconst AccordionContentRadius = styled(Box)`\n border-radius: 0 0 ${({ theme }) => theme.spaces[1]} ${({ theme }) => theme.spaces[1]};\n`;\n\nconst Rectangle = styled(Box)`\n width: ${({ theme }) => theme.spaces[2]};\n height: ${({ theme }) => theme.spaces[4]};\n`;\n\nconst Preview = styled.span`\n display: block;\n background-color: ${({ theme }) => theme.colors.primary100};\n outline: 1px dashed ${({ theme }) => theme.colors.primary500};\n outline-offset: -1px;\n padding: ${({ theme }) => theme.spaces[6]};\n`;\n\nconst ComponentContainer = styled(Box)`\n list-style: none;\n padding: 0;\n margin: 0;\n`;\n\nexport { DynamicComponent };\nexport type { DynamicComponentProps };\n","import * as React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\n\ninterface DynamicZoneLabelProps {\n label?: React.ReactNode;\n labelAction?: React.ReactNode;\n name: string;\n numberOfComponents?: number;\n required?: boolean;\n hint?: React.ReactNode;\n}\n\nconst DynamicZoneLabel = ({\n hint,\n label,\n labelAction,\n name,\n numberOfComponents = 0,\n required,\n}: DynamicZoneLabelProps) => {\n return (\n <Flex justifyContent=\"center\">\n <Box\n paddingTop={3}\n paddingBottom={3}\n paddingRight={4}\n paddingLeft={4}\n borderRadius=\"26px\"\n background=\"neutral0\"\n shadow=\"filterShadow\"\n color=\"neutral500\"\n >\n <Flex direction=\"column\" justifyContent=\"center\">\n <Flex maxWidth={`${356 / 16}rem`}>\n <Typography variant=\"pi\" textColor=\"neutral600\" fontWeight=\"bold\" ellipsis>\n {label || name} \n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\" fontWeight=\"bold\">\n ({numberOfComponents})\n </Typography>\n {required && <Typography textColor=\"danger600\">*</Typography>}\n {labelAction && <Box paddingLeft={1}>{labelAction}</Box>}\n </Flex>\n {hint && (\n <Box paddingTop={1} maxWidth={`${356 / 16}rem`}>\n <Typography variant=\"pi\" textColor=\"neutral600\" ellipsis>\n {hint}\n </Typography>\n </Box>\n )}\n </Flex>\n </Box>\n </Flex>\n );\n};\n\nexport { DynamicZoneLabel };\nexport type { DynamicZoneLabelProps };\n","import * as React from 'react';\n\nimport { Box, Flex, VisuallyHidden } from '@strapi/design-system';\nimport pipe from 'lodash/fp/pipe';\nimport { useIntl } from 'react-intl';\n\nimport { createContext } from '../../../../../../components/Context';\nimport { InputProps, useField, useForm } from '../../../../../../components/Form';\nimport { useNotification } from '../../../../../../features/Notifications';\nimport { useDoc } from '../../../../../hooks/useDocument';\nimport { type EditFieldLayout } from '../../../../../hooks/useDocumentLayout';\nimport { getTranslation } from '../../../../../utils/translations';\nimport { transformDocument } from '../../../utils/data';\nimport { createDefaultForm } from '../../../utils/forms';\nimport { ComponentProvider, useComponent } from '../ComponentContext';\n\nimport { AddComponentButton } from './AddComponentButton';\nimport { ComponentPicker } from './ComponentPicker';\nimport { DynamicComponent, DynamicComponentProps } from './DynamicComponent';\nimport { DynamicZoneLabel } from './DynamicZoneLabel';\n\nimport type { Schema } from '@strapi/types';\n\ninterface DynamicZoneContextValue {\n isInDynamicZone: boolean;\n}\n\nconst [DynamicZoneProvider, useDynamicZone] = createContext<DynamicZoneContextValue>(\n 'DynamicZone',\n {\n isInDynamicZone: false,\n }\n);\n\ninterface DynamicZoneProps\n extends Omit<Extract<EditFieldLayout, { type: 'dynamiczone' }>, 'size' | 'hint'>,\n Pick<InputProps, 'hint'> {}\n\nconst DynamicZone = ({\n attribute,\n disabled,\n hint,\n label,\n name,\n required = false,\n}: DynamicZoneProps) => {\n // We cannot use the default props here\n const { max = Infinity, min = -Infinity } = attribute ?? {};\n\n const [addComponentIsOpen, setAddComponentIsOpen] = React.useState(false);\n const [liveText, setLiveText] = React.useState('');\n const { components } = useDoc();\n const { addFieldRow, removeFieldRow, moveFieldRow } = useForm(\n 'DynamicZone',\n ({ addFieldRow, removeFieldRow, moveFieldRow }) => ({\n addFieldRow,\n removeFieldRow,\n moveFieldRow,\n })\n );\n\n type DzWithTempKey =\n Schema.Attribute.GetDynamicZoneValue<Schema.Attribute.DynamicZone>[number] & {\n __temp_key__: number;\n };\n\n const { value = [], error } = useField<Array<DzWithTempKey>>(name);\n\n const dynamicComponentsByCategory = React.useMemo(() => {\n return attribute.components.reduce<\n NonNullable<DynamicComponentProps['dynamicComponentsByCategory']>\n >((acc, componentUid) => {\n const { category, info } = components[componentUid] ?? { info: {} };\n\n const component = { uid: componentUid, displayName: info.displayName, icon: info.icon };\n\n if (!acc[category]) {\n acc[category] = [];\n }\n\n acc[category] = [...acc[category], component];\n\n return acc;\n }, {});\n }, [attribute.components, components]);\n\n const { formatMessage } = useIntl();\n\n const { toggleNotification } = useNotification();\n\n const dynamicDisplayedComponentsLength = value.length;\n\n const handleAddComponent = (uid: string, position?: number) => {\n setAddComponentIsOpen(false);\n\n const schema = components[uid];\n const form = createDefaultForm(schema, components);\n const transformations = pipe(transformDocument(schema, components), (data) => ({\n ...data,\n __component: uid,\n }));\n\n const data = transformations(form);\n\n addFieldRow(name, data, position);\n };\n\n const handleClickOpenPicker = () => {\n if (dynamicDisplayedComponentsLength < max) {\n setAddComponentIsOpen((prev) => !prev);\n } else {\n toggleNotification({\n type: 'info',\n message: formatMessage({\n id: getTranslation('components.notification.info.maximum-requirement'),\n }),\n });\n }\n };\n\n const handleMoveComponent = (newIndex: number, currentIndex: number) => {\n setLiveText(\n formatMessage(\n {\n id: getTranslation('dnd.reorder'),\n defaultMessage: '{item}, moved. New position in list: {position}.',\n },\n {\n item: `${name}.${currentIndex}`,\n position: getItemPos(newIndex),\n }\n )\n );\n\n moveFieldRow(name, currentIndex, newIndex);\n };\n\n const getItemPos = (index: number) => `${index + 1} of ${value.length}`;\n\n const handleCancel = (index: number) => {\n setLiveText(\n formatMessage(\n {\n id: getTranslation('dnd.cancel-item'),\n defaultMessage: '{item}, dropped. Re-order cancelled.',\n },\n {\n item: `${name}.${index}`,\n }\n )\n );\n };\n\n const handleGrabItem = (index: number) => {\n setLiveText(\n formatMessage(\n {\n id: getTranslation('dnd.grab-item'),\n defaultMessage: `{item}, grabbed. Current position in list: {position}. Press up and down arrow to change position, Spacebar to drop, Escape to cancel.`,\n },\n {\n item: `${name}.${index}`,\n position: getItemPos(index),\n }\n )\n );\n };\n\n const handleDropItem = (index: number) => {\n setLiveText(\n formatMessage(\n {\n id: getTranslation('dnd.drop-item'),\n defaultMessage: `{item}, dropped. Final position in list: {position}.`,\n },\n {\n item: `${name}.${index}`,\n position: getItemPos(index),\n }\n )\n );\n };\n\n const handleRemoveComponent = (name: string, currentIndex: number) => () => {\n removeFieldRow(name, currentIndex);\n };\n\n const hasError =\n error !== undefined ||\n dynamicDisplayedComponentsLength < min ||\n dynamicDisplayedComponentsLength > max;\n\n const renderButtonLabel = () => {\n if (addComponentIsOpen) {\n return formatMessage({ id: 'app.utils.close-label', defaultMessage: 'Close' });\n }\n\n if (hasError && dynamicDisplayedComponentsLength > max) {\n return formatMessage(\n {\n id: getTranslation(`components.DynamicZone.extra-components`),\n defaultMessage:\n 'There {number, plural, =0 {are # extra components} one {is # extra component} other {are # extra components}}',\n },\n {\n number: dynamicDisplayedComponentsLength - max,\n }\n );\n }\n\n if (hasError && dynamicDisplayedComponentsLength < min) {\n return formatMessage(\n {\n id: getTranslation(`components.DynamicZone.missing-components`),\n defaultMessage:\n 'There {number, plural, =0 {are # missing components} one {is # missing component} other {are # missing components}}',\n },\n { number: min - dynamicDisplayedComponentsLength }\n );\n }\n\n return formatMessage(\n {\n id: getTranslation('components.DynamicZone.add-component'),\n defaultMessage: 'Add a component to {componentName}',\n },\n { componentName: label || name }\n );\n };\n\n const level = useComponent('DynamicZone', (state) => state.level);\n\n const ariaDescriptionId = React.useId();\n\n return (\n <DynamicZoneProvider isInDynamicZone>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {dynamicDisplayedComponentsLength > 0 && (\n <Box>\n <DynamicZoneLabel\n hint={hint}\n label={label}\n // labelAction={labelAction}\n name={name}\n numberOfComponents={dynamicDisplayedComponentsLength}\n required={required}\n />\n <VisuallyHidden id={ariaDescriptionId}>\n {formatMessage({\n id: getTranslation('dnd.instructions'),\n defaultMessage: `Press spacebar to grab and re-order`,\n })}\n </VisuallyHidden>\n <VisuallyHidden aria-live=\"assertive\">{liveText}</VisuallyHidden>\n <ol aria-describedby={ariaDescriptionId}>\n {value.map((field, index) => (\n <ComponentProvider\n key={field.__temp_key__}\n level={level + 1}\n uid={field.__component}\n // id is always a number in a dynamic zone.\n id={field.id as number}\n type=\"dynamiczone\"\n >\n <DynamicComponent\n disabled={disabled}\n name={name}\n index={index}\n componentUid={field.__component}\n onMoveComponent={handleMoveComponent}\n onRemoveComponentClick={handleRemoveComponent(name, index)}\n onCancel={handleCancel}\n onDropItem={handleDropItem}\n onGrabItem={handleGrabItem}\n onAddComponent={handleAddComponent}\n dynamicComponentsByCategory={dynamicComponentsByCategory}\n />\n </ComponentProvider>\n ))}\n </ol>\n </Box>\n )}\n <Flex justifyContent=\"center\">\n <AddComponentButton\n hasError={hasError}\n isDisabled={disabled}\n isOpen={addComponentIsOpen}\n onClick={handleClickOpenPicker}\n >\n {renderButtonLabel()}\n </AddComponentButton>\n </Flex>\n <ComponentPicker\n dynamicComponentsByCategory={dynamicComponentsByCategory}\n isOpen={addComponentIsOpen}\n onClickAddComponent={handleAddComponent}\n />\n </Flex>\n </DynamicZoneProvider>\n );\n};\n\nexport { DynamicZone, useDynamicZone };\nexport type { DynamicZoneProps };\n","/**\n * Related to the InputUID component, not the UIDs of content-types.\n */\n\nimport { Contracts } from '@strapi/plugin-content-manager/_internal/shared';\n\nimport { contentManagerApi } from './api';\n\nconst uidApi = contentManagerApi.injectEndpoints({\n endpoints: (builder) => ({\n getDefaultUID: builder.query<\n Contracts.UID.GenerateUID.Response['data'],\n Contracts.UID.GenerateUID.Request['body'] & {\n params: Contracts.UID.GenerateUID.Request['query'];\n }\n >({\n query: ({ params, ...data }) => {\n return {\n url: '/content-manager/uid/generate',\n method: 'POST',\n data,\n config: {\n params,\n },\n };\n },\n transformResponse: (response: Contracts.UID.GenerateUID.Response) => response.data,\n }),\n generateUID: builder.mutation<\n Contracts.UID.GenerateUID.Response['data'],\n Contracts.UID.GenerateUID.Request['body'] & {\n params: Contracts.UID.GenerateUID.Request['query'];\n }\n >({\n query: ({ params, ...data }) => ({\n url: '/content-manager/uid/generate',\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n transformResponse: (response: Contracts.UID.GenerateUID.Response) => response.data,\n }),\n getAvailability: builder.query<\n Contracts.UID.CheckUIDAvailability.Response,\n Contracts.UID.CheckUIDAvailability.Request['body'] & {\n params: Contracts.UID.CheckUIDAvailability.Request['query'];\n }\n >({\n query: ({ params, ...data }) => ({\n url: '/content-manager/uid/check-availability',\n method: 'POST',\n data,\n config: {\n params,\n },\n }),\n }),\n }),\n});\n\nconst { useGenerateUIDMutation, useGetDefaultUIDQuery, useGetAvailabilityQuery } = uidApi;\n\nexport { useGenerateUIDMutation, useGetDefaultUIDQuery, useGetAvailabilityQuery };\n","import * as React from 'react';\n\nimport { FieldAction, Flex, TextInput, Typography, useComposedRefs } from '@strapi/design-system';\nimport { CheckCircle, ExclamationMarkCircle, Loader, Refresh } from '@strapi/icons';\nimport { Contracts } from '@strapi/plugin-content-manager/_internal/shared';\nimport { useIntl } from 'react-intl';\nimport styled, { keyframes } from 'styled-components';\n\nimport { type InputProps, useField, useForm } from '../../../../../components/Form';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useDebounce } from '../../../../../hooks/useDebounce';\nimport { useFocusInputField } from '../../../../../hooks/useFocusInputField';\nimport { useQueryParams } from '../../../../../hooks/useQueryParams';\nimport { useDoc } from '../../../../hooks/useDocument';\nimport {\n useGenerateUIDMutation,\n useGetAvailabilityQuery,\n useGetDefaultUIDQuery,\n} from '../../../../services/uid';\nimport { buildValidParams } from '../../../../utils/api';\n\nimport type { Schema } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * InputUID\n * -----------------------------------------------------------------------------------------------*/\n\nconst UID_REGEX = /^[A-Za-z0-9-_.~]*$/;\n\ninterface UIDInputProps extends Omit<InputProps, 'type'> {\n type: Schema.Attribute.TypeOf<Schema.Attribute.UID>;\n}\n\nconst UIDInput = React.forwardRef<any, UIDInputProps>(\n ({ hint, disabled, label, name, placeholder, required }, ref) => {\n const { model, id } = useDoc();\n const allFormValues = useForm('InputUID', (form) => form.values);\n const [availability, setAvailability] =\n React.useState<Contracts.UID.CheckUIDAvailability.Response>();\n const [showRegenerate, setShowRegenerate] = React.useState(false);\n const field = useField(name);\n const debouncedValue = useDebounce(field.value, 300);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { formatMessage } = useIntl();\n const [{ query }] = useQueryParams();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n const {\n data: defaultGeneratedUID,\n isLoading: isGeneratingDefaultUID,\n error: apiError,\n } = useGetDefaultUIDQuery(\n {\n contentTypeUID: model,\n field: name,\n data: {\n id: id ?? '',\n ...allFormValues,\n },\n params,\n },\n {\n skip: field.value || !required,\n }\n );\n\n React.useEffect(() => {\n if (apiError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(apiError),\n });\n }\n }, [apiError, formatAPIError, toggleNotification]);\n\n /**\n * If the defaultGeneratedUID is available, then we set it as the value,\n * but we also want to set it as the initialValue too.\n */\n React.useEffect(() => {\n if (defaultGeneratedUID && field.value === undefined) {\n field.onChange(name, defaultGeneratedUID);\n }\n }, [defaultGeneratedUID, field, name]);\n\n const [generateUID, { isLoading: isGeneratingUID }] = useGenerateUIDMutation();\n\n const handleRegenerateClick = async () => {\n try {\n const res = await generateUID({\n contentTypeUID: model,\n field: name,\n data: { id: id ?? '', ...allFormValues },\n params,\n });\n\n if ('data' in res) {\n field.onChange(name, res.data);\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred.',\n }),\n });\n }\n };\n\n const {\n data: availabilityData,\n isLoading: isCheckingAvailability,\n error: availabilityError,\n } = useGetAvailabilityQuery(\n {\n contentTypeUID: model,\n field: name,\n value: debouncedValue ? debouncedValue.trim() : '',\n params,\n },\n {\n skip: !Boolean(\n debouncedValue !== field.initialValue &&\n debouncedValue &&\n UID_REGEX.test(debouncedValue.trim())\n ),\n }\n );\n\n React.useEffect(() => {\n if (availabilityError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(availabilityError),\n });\n }\n }, [availabilityError, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n /**\n * always store the data in state because that way as seen below\n * we can then remove the data to stop showing the label.\n */\n setAvailability(availabilityData);\n\n let timer: number;\n\n if (availabilityData?.isAvailable) {\n timer = window.setTimeout(() => {\n setAvailability(undefined);\n }, 4000);\n }\n\n return () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n }, [availabilityData]);\n\n const isLoading = isGeneratingDefaultUID || isGeneratingUID || isCheckingAvailability;\n\n const fieldRef = useFocusInputField(name);\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <TextInput\n ref={composedRefs}\n disabled={disabled}\n error={field.error}\n endAction={\n <Flex position=\"relative\" gap={1}>\n {availability && !showRegenerate && (\n <TextValidation\n alignItems=\"center\"\n gap={1}\n justifyContent=\"flex-end\"\n available={!!availability?.isAvailable}\n data-not-here-outer\n position=\"absolute\"\n pointerEvents=\"none\"\n right={6}\n width=\"100px\"\n >\n {availability?.isAvailable ? <CheckCircle /> : <ExclamationMarkCircle />}\n\n <Typography\n textColor={availability.isAvailable ? 'success600' : 'danger600'}\n variant=\"pi\"\n >\n {formatMessage(\n availability.isAvailable\n ? {\n id: 'content-manager.components.uid.available',\n defaultMessage: 'Available',\n }\n : {\n id: 'content-manager.components.uid.unavailable',\n defaultMessage: 'Unavailable',\n }\n )}\n </Typography>\n </TextValidation>\n )}\n\n {!disabled && (\n <>\n {showRegenerate && (\n <TextValidation alignItems=\"center\" justifyContent=\"flex-end\" gap={1}>\n <Typography textColor=\"primary600\" variant=\"pi\">\n {formatMessage({\n id: 'content-manager.components.uid.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Typography>\n </TextValidation>\n )}\n\n <FieldActionWrapper\n onClick={handleRegenerateClick}\n label={formatMessage({\n id: 'content-manager.components.uid.regenerate',\n defaultMessage: 'Regenerate',\n })}\n onMouseEnter={() => setShowRegenerate(true)}\n onMouseLeave={() => setShowRegenerate(false)}\n >\n {isLoading ? (\n <LoadingWrapper data-testid=\"loading-wrapper\">\n <Loader />\n </LoadingWrapper>\n ) : (\n <Refresh />\n )}\n </FieldActionWrapper>\n </>\n )}\n </Flex>\n }\n hint={hint}\n // @ts-expect-error – label _could_ be a ReactNode since it's a child, this should be fixed in the DS.\n label={label}\n name={name}\n onChange={field.onChange}\n placeholder={placeholder}\n value={field.value ?? ''}\n required={required}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * FieldActionWrapper\n * -----------------------------------------------------------------------------------------------*/\n\nconst FieldActionWrapper = styled(FieldAction)`\n svg {\n height: 1rem;\n width: 1rem;\n path {\n fill: ${({ theme }) => theme.colors.neutral400};\n }\n }\n\n svg:hover {\n path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * TextValidation\n * -----------------------------------------------------------------------------------------------*/\n\nconst TextValidation = styled(Flex)<{ available?: boolean }>`\n svg {\n height: ${12 / 16}rem;\n width: ${12 / 16}rem;\n\n path {\n fill: ${({ theme, available }) =>\n available ? theme.colors.success600 : theme.colors.danger600};\n }\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * LoadingWrapper\n * -----------------------------------------------------------------------------------------------*/\n\nconst rotation = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(359deg);\n }\n`;\n\nconst LoadingWrapper = styled(Flex)`\n animation: ${rotation} 2s infinite linear;\n`;\n\nexport { UIDInput };\nexport type { UIDInputProps };\n","import { getLanguage, highlight, highlightAuto } from 'highlight.js';\nimport Markdown from 'markdown-it';\n// @ts-expect-error - library does not export types\nimport abbr from 'markdown-it-abbr';\nimport container from 'markdown-it-container';\n// @ts-expect-error - library does not export types\nimport deflist from 'markdown-it-deflist';\nimport emoji from 'markdown-it-emoji';\nimport footnote from 'markdown-it-footnote';\n// @ts-expect-error - library does not export types\nimport ins from 'markdown-it-ins';\n// @ts-expect-error - library does not export types\nimport mark from 'markdown-it-mark';\n// @ts-expect-error - library does not export types\nimport sub from 'markdown-it-sub';\n// @ts-expect-error - library does not export types\nimport sup from 'markdown-it-sup';\n\nimport 'highlight.js/styles/solarized-dark.css';\n\nconst md: Markdown = new Markdown({\n html: true, // Enable HTML tags in source\n xhtmlOut: false,\n breaks: true,\n langPrefix: 'language-',\n linkify: true,\n typographer: true,\n // Code from: https://github.com/markdown-it/markdown-it/blob/master/support/demo_template/index.js#L83\n highlight(str, lang) {\n if (lang && lang !== 'auto' && getLanguage(lang)) {\n return (\n '<pre class=\"hljs language-' +\n md.utils.escapeHtml(lang.toLowerCase()) +\n '\"><code>' +\n highlight(lang, str, true).value +\n '</code></pre>'\n );\n }\n\n if (lang === 'auto') {\n const result = highlightAuto(str);\n\n return (\n '<pre class=\"hljs language-' +\n md.utils.escapeHtml(result.language!) +\n '\"><code>' +\n result.value +\n '</code></pre>'\n );\n }\n\n return '<pre class=\"hljs\"><code>' + md.utils.escapeHtml(str) + '</code></pre>';\n },\n})\n .use(abbr)\n .use(container, 'warning')\n .use(container, 'tip')\n .use(deflist)\n .use(emoji)\n .use(footnote)\n .use(ins)\n .use(mark)\n .use(sub)\n .use(sup);\n\n// Code from: https://github.com/markdown-it/markdown-it-footnote/blob/master/index.js#L29\nmd.renderer.rules.footnote_ref = (tokens, idx, options, env, slf) => {\n const caption = slf.rules.footnote_caption?.(tokens, idx, options, env, slf);\n\n return '<sup class=\"footnote-ref\"><span>' + caption + '</span></sup>';\n};\n\nmd.renderer.rules.footnote_anchor = () => {\n /* ↩ with escape code to prevent display as Apple Emoji on iOS */\n return ' <span class=\"footnote-backref\">\\u21a9\\uFE0E</span>';\n};\n\nexport { md };\n","import * as React from 'react';\n\nimport sanitizeHtml from 'sanitize-html';\nimport styled from 'styled-components';\n\nimport { md } from './utils/mdRenderer';\n\ninterface PreviewWysiwygProps {\n data?: string;\n}\n\nconst PreviewWysiwyg = ({ data = '' }: PreviewWysiwygProps) => {\n const html = React.useMemo(\n () =>\n sanitizeHtml(md.render(data.replaceAll('\\\\n', '\\n') || ''), {\n ...sanitizeHtml.defaults,\n allowedTags: false,\n allowedAttributes: {\n '*': ['href', 'align', 'alt', 'center', 'width', 'height', 'type', 'controls', 'target'],\n img: ['src', 'alt'],\n source: ['src', 'type'],\n },\n }),\n [data]\n );\n\n return (\n <Wrapper>\n <div dangerouslySetInnerHTML={{ __html: html }} />\n </Wrapper>\n );\n};\n\nconst Wrapper = styled.div`\n position: absolute;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: auto;\n padding: ${({ theme }) => `${theme.spaces[3]} ${theme.spaces[4]}`};\n font-size: ${14 / 16}rem;\n background-color: ${({ theme }) => theme.colors.neutral0};\n color: ${({ theme }) => theme.colors.neutral800};\n line-height: ${({ theme }) => theme.lineHeights[6]};\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-block-start: ${({ theme }) => theme.spaces[2]};\n margin-block-end: ${({ theme }) => theme.spaces[2]};\n }\n\n p {\n margin-bottom: ${({ theme }) => theme.spaces[2]};\n }\n\n h1 {\n font-size: ${36 / 16}rem;\n font-weight: 600;\n }\n\n h2 {\n font-size: ${30 / 16}rem;\n font-weight: 500;\n }\n\n h3 {\n font-size: ${24 / 16}rem;\n font-weight: 500;\n }\n\n h4 {\n font-size: ${20 / 16}rem;\n font-weight: 500;\n }\n\n strong {\n font-weight: 800;\n }\n\n em {\n font-style: italic;\n }\n\n blockquote {\n margin-top: ${({ theme }) => theme.spaces[8]};\n margin-bottom: ${({ theme }) => theme.spaces[7]};\n font-size: ${14 / 16}rem;\n font-weight: 400;\n border-left: 4px solid ${({ theme }) => theme.colors.neutral150};\n font-style: italic;\n padding: ${({ theme }) => theme.spaces[2]} ${({ theme }) => theme.spaces[5]};\n }\n\n img {\n max-width: 100%;\n }\n\n table {\n thead {\n background: ${({ theme }) => theme.colors.neutral150};\n\n th {\n padding: ${({ theme }) => theme.spaces[4]};\n }\n }\n tr {\n border: 1px solid ${({ theme }) => theme.colors.neutral200};\n }\n th,\n td {\n padding: ${({ theme }) => theme.spaces[4]};\n border: 1px solid ${({ theme }) => theme.colors.neutral200};\n border-bottom: 0;\n border-top: 0;\n }\n }\n\n pre,\n code {\n font-size: ${14 / 16}rem;\n border-radius: 4px;\n /* \n Hard coded since the color is the same between themes,\n theme.colors.neutral800 changes between themes.\n\n Matches the color of the JSON Input component.\n */\n background-color: #32324d;\n max-width: 100%;\n overflow: auto;\n padding: ${({ theme }) => theme.spaces[2]};\n }\n\n /* Inline code */\n p,\n pre,\n td {\n > code {\n color: #839496;\n }\n }\n\n ol {\n list-style-type: decimal;\n margin-block-start: ${({ theme }) => theme.spaces[4]};\n margin-block-end: ${({ theme }) => theme.spaces[4]};\n margin-inline-start: 0px;\n margin-inline-end: 0px;\n padding-inline-start: ${({ theme }) => theme.spaces[4]};\n\n ol,\n ul {\n margin-block-start: 0px;\n margin-block-end: 0px;\n }\n }\n\n ul {\n list-style-type: disc;\n margin-block-start: ${({ theme }) => theme.spaces[4]};\n margin-block-end: ${({ theme }) => theme.spaces[4]};\n margin-inline-start: 0px;\n margin-inline-end: 0px;\n padding-inline-start: ${({ theme }) => theme.spaces[4]};\n\n ul,\n ol {\n margin-block-start: 0px;\n margin-block-end: 0px;\n }\n }\n`;\n\nexport { PreviewWysiwyg };\n","import CodeMirror from 'codemirror5';\n\n// Disabling eslint on purpose\n/* eslint-disable */\n\nvar listRE = /^(\\s*)(>[> ]*|[*+-] \\[[x ]\\]\\s|[*+-]\\s|(\\d+)([.)]))(\\s*)/,\n emptyListRE = /^(\\s*)(>[> ]*|[*+-] \\[[x ]\\]|[*+-]|(\\d+)[.)])(\\s*)$/,\n unorderedListRE = /[*+-]\\s/;\n\n/*\n functions coming from CodeMirror addons continuelist.js\n ===> https://github.com/codemirror/CodeMirror/blob/master/addon/edit/continuelist.js\n\n we imported it because the way the addon ask to use markdown mode\n since we have our own markdown preview system we couldn't use it directly\n only thing we changed is removing the part that enabled addon only with markdown mode\n*/\n\nfunction newlineAndIndentContinueMarkdownList(cm: CodeMirror.Editor) {\n // @ts-expect-error - cm does not recognize disableInput.\n if (cm.getOption('disableInput')) return CodeMirror.Pass;\n var ranges = cm.listSelections(),\n replacements = [];\n for (var i = 0; i < ranges.length; i++) {\n var pos = ranges[i].head;\n\n var eolState = cm.getStateAfter(pos.line);\n var inList = eolState.list !== false;\n var inQuote = eolState.quote !== 0;\n\n var line = cm.getLine(pos.line),\n match = listRE.exec(line);\n var cursorBeforeBullet = /^\\s*$/.test(line.slice(0, pos.ch));\n if (!ranges[i].empty() || (!inList && !inQuote) || !match || cursorBeforeBullet) {\n cm.execCommand('newlineAndIndent');\n return;\n }\n if (emptyListRE.test(line)) {\n var endOfQuote = inQuote && />\\s*$/.test(line);\n var endOfList = !/>\\s*$/.test(line);\n if (endOfQuote || endOfList)\n cm.replaceRange(\n '',\n {\n line: pos.line,\n ch: 0,\n },\n {\n line: pos.line,\n ch: pos.ch + 1,\n }\n );\n replacements[i] = '\\n';\n } else {\n var indent = match[1],\n after = match[5];\n var numbered = !(unorderedListRE.test(match[2]) || match[2].indexOf('>') >= 0);\n var bullet = numbered ? parseInt(match[3], 10) + 1 + match[4] : match[2].replace('x', ' ');\n replacements[i] = '\\n' + indent + bullet + after;\n\n if (numbered) incrementRemainingMarkdownListNumbers(cm, pos);\n }\n }\n\n cm.replaceSelections(replacements);\n}\n\nfunction incrementRemainingMarkdownListNumbers(cm: CodeMirror.Editor, pos: CodeMirror.Position) {\n var startLine = pos.line,\n lookAhead = 0,\n skipCount = 0;\n var startItem = listRE.exec(cm.getLine(startLine)),\n startIndent = startItem![1];\n\n do {\n lookAhead += 1;\n var nextLineNumber = startLine + lookAhead;\n var nextLine = cm.getLine(nextLineNumber);\n var nextItem = listRE.exec(nextLine);\n\n if (nextItem) {\n var nextIndent = nextItem[1];\n var newNumber = parseInt(startItem![3], 10) + lookAhead - skipCount;\n var nextNumber = parseInt(nextItem[3], 10),\n itemNumber = nextNumber;\n\n if (startIndent === nextIndent && !isNaN(nextNumber)) {\n if (newNumber === nextNumber) itemNumber = nextNumber + 1;\n if (newNumber > nextNumber) itemNumber = newNumber + 1;\n cm.replaceRange(\n nextLine.replace(listRE, nextIndent + itemNumber + nextItem[4] + nextItem[5]),\n {\n line: nextLineNumber,\n ch: 0,\n },\n {\n line: nextLineNumber,\n ch: nextLine.length,\n }\n );\n } else {\n if (startIndent.length > nextIndent.length) return;\n // This doesn't run if the next line immediately indents, as it is\n // not clear of the users intention (new indented item or same level)\n if (startIndent.length < nextIndent.length && lookAhead === 1) return;\n skipCount += 1;\n }\n }\n } while (nextItem);\n}\n\nexport { newlineAndIndentContinueMarkdownList };\n","import * as React from 'react';\n\nimport CodeMirror, { EditorFromTextArea } from 'codemirror5';\nimport styled from 'styled-components';\n\nimport { PreviewWysiwyg } from './PreviewWysiwyg';\nimport { newlineAndIndentContinueMarkdownList } from './utils/continueList';\n\nimport type { FieldValue } from '../../../../../../components/Form';\nimport type { InputProps } from '../../../../../../components/FormInputs/types';\n\nimport 'codemirror5/addon/display/placeholder';\n\ninterface EditorApi {\n focus: () => void;\n scrollIntoView: (args?: Parameters<HTMLElement['scrollIntoView']>[0]) => void;\n}\n\ninterface EditorProps extends Omit<FieldValue, 'initialValue'>, Omit<InputProps, 'type' | 'label'> {\n editorRef: React.MutableRefObject<EditorFromTextArea>;\n isPreviewMode?: boolean;\n isExpandMode?: boolean;\n textareaRef: React.RefObject<HTMLTextAreaElement>;\n}\n\nconst Editor = React.forwardRef<EditorApi, EditorProps>(\n (\n {\n disabled,\n editorRef,\n error,\n isPreviewMode,\n isExpandMode,\n name,\n onChange,\n placeholder,\n textareaRef,\n value,\n },\n forwardedRef\n ) => {\n const onChangeRef = React.useRef(onChange);\n\n React.useEffect(() => {\n if (editorRef.current) {\n // Ensure the editor and its wrapper are cleaned up whenever this view is re-rendered\n // e.g. in case of re-ordering wysiwyg components in a DynamicZone\n editorRef.current.toTextArea();\n }\n editorRef.current = CodeMirror.fromTextArea(textareaRef.current!, {\n lineWrapping: true,\n extraKeys: {\n Enter: 'newlineAndIndentContinueMarkdownList',\n Tab: false,\n 'Shift-Tab': false,\n },\n readOnly: false,\n smartIndent: false,\n placeholder,\n spellcheck: true,\n inputStyle: 'contenteditable',\n });\n\n // @ts-expect-error – doesn't think command exists?\n CodeMirror.commands.newlineAndIndentContinueMarkdownList =\n newlineAndIndentContinueMarkdownList;\n editorRef.current.on('change', (doc) => {\n onChangeRef.current(name, doc.getValue());\n });\n }, [editorRef, textareaRef, name, placeholder]);\n\n React.useEffect(() => {\n if (value && !editorRef.current.hasFocus()) {\n editorRef.current.setValue(value);\n }\n }, [editorRef, value]);\n\n React.useEffect(() => {\n if (isPreviewMode || disabled) {\n editorRef.current.setOption('readOnly', 'nocursor');\n } else {\n editorRef.current.setOption('readOnly', false);\n }\n }, [disabled, isPreviewMode, editorRef]);\n\n React.useEffect(() => {\n if (error) {\n editorRef.current.setOption('screenReaderLabel', error);\n } else {\n // to replace with translation\n editorRef.current.setOption('screenReaderLabel', 'Editor');\n }\n }, [editorRef, error]);\n\n React.useImperativeHandle(\n forwardedRef,\n () => ({\n focus() {\n editorRef.current.getInputField().focus();\n },\n scrollIntoView(args?: Parameters<HTMLElement['scrollIntoView']>[0]) {\n editorRef.current.getInputField().scrollIntoView(args);\n },\n }),\n [editorRef]\n );\n\n return (\n <EditorAndPreviewWrapper>\n <EditorStylesContainer isExpandMode={isExpandMode} disabled={disabled || isPreviewMode}>\n <textarea ref={textareaRef} />\n </EditorStylesContainer>\n {isPreviewMode && <PreviewWysiwyg data={value} />}\n </EditorAndPreviewWrapper>\n );\n }\n);\n\nconst EditorAndPreviewWrapper = styled.div`\n position: relative;\n height: calc(100% - 48px);\n`;\n\nconst EditorStylesContainer = styled.div<{ disabled?: boolean; isExpandMode?: boolean }>`\n cursor: ${({ disabled }) => (disabled ? 'not-allowed !important' : 'auto')};\n height: 100%;\n /* BASICS */\n .CodeMirror-placeholder {\n color: ${({ theme }) => theme.colors.neutral600} !important;\n }\n\n .CodeMirror {\n /* Set height, width, borders, and global font properties here */\n font-size: ${14 / 16}rem;\n height: ${({ isExpandMode }) =>\n isExpandMode\n ? '100%'\n : '410px'}; // 512px(total height) - 48px (header) - 52px(footer) - 2px border\n color: ${({ theme }) => theme.colors.neutral800};\n direction: ltr;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell,\n 'Open Sans', 'Helvetica Neue', sans-serif;\n }\n\n /* PADDING */\n\n .CodeMirror-lines {\n padding: ${({ theme }) => `${theme.spaces[3]} ${theme.spaces[4]}`};\n /* Vertical padding around content */\n }\n\n .CodeMirror-scrollbar-filler,\n .CodeMirror-gutter-filler {\n /* The little square between H and V scrollbars */\n background-color: ${({ theme }) => `${theme.colors.neutral0}`};\n }\n\n /* GUTTER */\n\n .CodeMirror-gutters {\n border-right: 1px solid #ddd;\n background-color: #f7f7f7;\n white-space: nowrap;\n }\n .CodeMirror-linenumbers {\n }\n .CodeMirror-linenumber {\n padding: 0 3px 0 5px;\n min-width: 20px;\n text-align: right;\n color: #999;\n white-space: nowrap;\n }\n\n .CodeMirror-guttermarker {\n color: black;\n }\n .CodeMirror-guttermarker-subtle {\n color: #999;\n }\n\n /* CURSOR */\n\n .CodeMirror-cursor {\n border-left: 1px solid black;\n border-right: none;\n width: 0;\n }\n /* Shown when moving in bi-directional text */\n .CodeMirror div.CodeMirror-secondarycursor {\n border-left: 1px solid silver;\n }\n .cm-fat-cursor .CodeMirror-cursor {\n width: auto;\n border: 0 !important;\n background: #7e7;\n }\n .cm-fat-cursor div.CodeMirror-cursors {\n /* z-index: 1; */\n }\n\n .cm-fat-cursor-mark {\n background-color: rgba(20, 255, 20, 0.5);\n -webkit-animation: blink 1.06s steps(1) infinite;\n -moz-animation: blink 1.06s steps(1) infinite;\n animation: blink 1.06s steps(1) infinite;\n }\n .cm-animate-fat-cursor {\n width: auto;\n border: 0;\n -webkit-animation: blink 1.06s steps(1) infinite;\n -moz-animation: blink 1.06s steps(1) infinite;\n animation: blink 1.06s steps(1) infinite;\n background-color: #7e7;\n }\n\n /* Can style cursor different in overwrite (non-insert) mode */\n .CodeMirror-overwrite .CodeMirror-cursor {\n }\n\n .cm-tab {\n display: inline-block;\n text-decoration: inherit;\n }\n\n .CodeMirror-rulers {\n position: absolute;\n left: 0;\n right: 0;\n top: -50px;\n bottom: 0;\n overflow: hidden;\n }\n .CodeMirror-ruler {\n border-left: 1px solid #ccc;\n top: 0;\n bottom: 0;\n position: absolute;\n }\n\n /* DEFAULT THEME */\n\n .cm-header,\n .cm-strong {\n font-weight: bold;\n }\n .cm-em {\n font-style: italic;\n }\n .cm-link {\n text-decoration: underline;\n }\n .cm-strikethrough {\n text-decoration: line-through;\n }\n\n .CodeMirror-composing {\n border-bottom: 2px solid;\n }\n\n /* Default styles for common addons */\n\n div.CodeMirror span.CodeMirror-matchingbracket {\n color: #0b0;\n }\n div.CodeMirror span.CodeMirror-nonmatchingbracket {\n color: #a22;\n }\n .CodeMirror-matchingtag {\n background: rgba(255, 150, 0, 0.3);\n }\n .CodeMirror-activeline-background {\n background: #e8f2ff;\n }\n\n /* STOP */\n\n /* The rest of this file contains styles related to the mechanics of\n the editor. You probably shouldn't touch them. */\n\n .CodeMirror {\n position: relative;\n overflow: hidden;\n background: ${({ theme }) => `${theme.colors.neutral0}`};\n }\n\n .CodeMirror-scroll {\n overflow: scroll !important; /* Things will break if this is overridden */\n /* 50px is the magic margin used to hide the element's real scrollbars */\n /* See overflow: hidden in .CodeMirror */\n margin-bottom: -50px;\n margin-right: -50px;\n padding-bottom: 50px;\n height: 100%;\n outline: none; /* Prevent dragging from highlighting the element */\n position: relative;\n }\n .CodeMirror-sizer {\n position: relative;\n border-right: 50px solid transparent;\n }\n\n /* The fake, visible scrollbars. Used to force redraw during scrolling\n before actual scrolling happens, thus preventing shaking and\n flickering artifacts. */\n .CodeMirror-vscrollbar,\n .CodeMirror-hscrollbar,\n .CodeMirror-scrollbar-filler,\n .CodeMirror-gutter-filler {\n position: absolute;\n z-index: 1;\n display: none;\n outline: none;\n }\n\n .CodeMirror-vscrollbar {\n right: 0;\n top: 0;\n overflow-x: hidden;\n overflow-y: scroll;\n }\n .CodeMirror-hscrollbar {\n bottom: 0;\n left: 0;\n overflow-y: hidden;\n overflow-x: scroll;\n }\n .CodeMirror-scrollbar-filler {\n right: 0;\n bottom: 0;\n }\n\n .CodeMirror-lines {\n cursor: text;\n min-height: 1px; /* prevents collapsing before first draw */\n }\n /* Reset some styles that the rest of the page might have set */\n .CodeMirror pre.CodeMirror-line,\n .CodeMirror pre.CodeMirror-line-like {\n -moz-border-radius: 0;\n -webkit-border-radius: 0;\n border-radius: 0;\n border-width: 0;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n white-space: pre;\n word-wrap: normal;\n line-height: 1.5;\n color: inherit;\n /* z-index: 2; */\n position: relative;\n overflow: visible;\n -webkit-tap-highlight-color: transparent;\n -webkit-font-variant-ligatures: contextual;\n font-variant-ligatures: contextual;\n }\n\n .CodeMirror pre.CodeMirror-line-like {\n z-index: 2;\n }\n\n .CodeMirror-wrap pre.CodeMirror-line,\n .CodeMirror-wrap pre.CodeMirror-line-like {\n word-wrap: break-word;\n white-space: pre-wrap;\n word-break: normal;\n }\n\n .CodeMirror-linebackground {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: 0;\n }\n\n .CodeMirror-linewidget {\n position: relative;\n /* z-index: 2; */\n padding: 0.1px; /* Force widget margins to stay inside of the container */\n }\n\n .CodeMirror-widget {\n }\n\n .CodeMirror-rtl pre {\n direction: rtl;\n }\n\n .CodeMirror-code {\n outline: none;\n }\n\n /* Force content-box sizing for the elements where we expect it */\n .CodeMirror-scroll,\n .CodeMirror-sizer,\n .CodeMirror-gutter,\n .CodeMirror-gutters,\n .CodeMirror-linenumber {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n }\n\n .CodeMirror-measure {\n position: absolute;\n width: 100%;\n height: 0;\n overflow: hidden;\n visibility: hidden;\n }\n\n .CodeMirror-cursor {\n position: absolute;\n pointer-events: none;\n border-color: ${({ theme }) => `${theme.colors.neutral800}`};\n }\n .CodeMirror-measure pre {\n position: static;\n }\n\n div.CodeMirror-cursors {\n visibility: hidden;\n position: relative;\n + div {\n z-index: 0 !important;\n }\n }\n\n div.CodeMirror-dragcursors {\n visibility: visible;\n }\n\n .CodeMirror-focused div.CodeMirror-cursors {\n visibility: visible;\n }\n\n .CodeMirror-selected {\n background: ${({ theme }) => theme.colors.neutral200};\n /* z-index: -10; */\n }\n .CodeMirror-crosshair {\n cursor: crosshair;\n }\n\n /* Used to force a border model for a node */\n .cm-force-border {\n padding-right: 0.1px;\n }\n\n /* See issue #2901 */\n .cm-tab-wrap-hack:after {\n content: '';\n }\n\n /* Help users use markselection to safely style text background */\n span.CodeMirror-selectedtext {\n background: none;\n }\n\n span {\n color: ${({ theme }) => theme.colors.neutral800} !important;\n }\n`;\n\nexport { Editor };\nexport type { EditorProps, EditorApi };\n","import * as React from 'react';\n\nimport { BaseButton, Box, Flex, FocusTrap, Portal, Typography } from '@strapi/design-system';\nimport { Collapse } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { PreviewWysiwyg } from './PreviewWysiwyg';\n\ninterface EditorLayoutProps {\n children: React.ReactNode;\n isExpandMode: boolean;\n error?: string;\n previewContent?: string;\n onCollapse: () => void;\n}\n\nconst EditorLayout = ({\n children,\n isExpandMode,\n error,\n previewContent = '',\n onCollapse,\n}: EditorLayoutProps) => {\n const { formatMessage } = useIntl();\n\n React.useEffect(() => {\n if (isExpandMode) {\n document.body.classList.add('lock-body-scroll');\n }\n\n return () => {\n document.body.classList.remove('lock-body-scroll');\n };\n }, [isExpandMode]);\n\n if (isExpandMode) {\n return (\n <Portal role=\"dialog\" aria-modal={false}>\n <FocusTrap onEscape={onCollapse}>\n <ExpandWrapper\n position=\"fixed\"\n top={0}\n left={0}\n right={0}\n bottom={0}\n zIndex={4}\n justifyContent=\"center\"\n onClick={onCollapse}\n >\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"popupShadow\"\n overflow=\"hidden\"\n width=\"90%\"\n height=\"90%\"\n onClick={(e) => e.stopPropagation()}\n >\n <Flex height=\"100%\" alignItems=\"flex-start\">\n <BoxWithBorder flex=\"1\" height=\"100%\">\n {children}\n </BoxWithBorder>\n <Flex alignItems=\"start\" direction=\"column\" flex={1} height=\"100%\" width=\"100%\">\n <Flex\n height={`${48 / 16}rem`}\n background=\"neutral100\"\n justifyContent=\"flex-end\"\n shrink={0}\n width=\"100%\"\n >\n <ExpandButton onClick={onCollapse}>\n <Typography>\n {formatMessage({\n id: 'components.Wysiwyg.collapse',\n defaultMessage: 'Collapse',\n })}\n </Typography>\n <Collapse />\n </ExpandButton>\n </Flex>\n\n <Box position=\"relative\" height=\"100%\" width=\"100%\">\n <PreviewWysiwyg data={previewContent} />\n </Box>\n </Flex>\n </Flex>\n </Box>\n </ExpandWrapper>\n </FocusTrap>\n </Portal>\n );\n }\n\n return (\n <Box\n borderColor={error ? 'danger600' : 'neutral200'}\n borderStyle=\"solid\"\n borderWidth=\"1px\"\n hasRadius\n >\n {children}\n </Box>\n );\n};\n\nconst ExpandWrapper = styled(Flex)`\n background: ${({ theme }) =>\n `${theme.colors.neutral800}${Math.floor(0.2 * 255)\n .toString(16)\n .padStart(2, '0')}`};\n`;\n\nconst BoxWithBorder = styled(Box)`\n border-right: 1px solid ${({ theme }) => theme.colors.neutral200};\n`;\n\nconst ExpandButton = styled(BaseButton)`\n background-color: transparent;\n border: none;\n align-items: center;\n\n svg {\n margin-left: ${({ theme }) => `${theme.spaces[2]}`};\n\n path {\n fill: ${({ theme }) => theme.colors.neutral700};\n width: ${12 / 16}rem;\n height: ${12 / 16}rem;\n }\n }\n`;\n\nexport { EditorLayout, ExpandButton };\nexport type { EditorLayoutProps };\n","import { MutableRefObject } from 'react';\n\nimport CodeMirror from 'codemirror5';\n\nexport const replaceText = (markdownName: string, textToChange: string) => {\n let editedText;\n\n switch (markdownName) {\n case 'Strikethrough':\n editedText = `~~${textToChange}~~`;\n break;\n case 'Bold':\n editedText = `**${textToChange}**`;\n break;\n case 'Italic':\n editedText = `_${textToChange}_`;\n break;\n case 'Underline':\n editedText = `<u>${textToChange}</u>`;\n break;\n case 'Code':\n editedText = `\\`\\`\\`\\n${textToChange}\\n\\`\\`\\``;\n break;\n case 'Link':\n editedText = `[${textToChange}](link)`;\n break;\n case 'Quote':\n editedText = `>${textToChange}`;\n break;\n default:\n editedText = textToChange;\n }\n\n return editedText;\n};\n\nexport const insertText = (markdownName: string) => {\n let editedText;\n // object to calculate text that will be selected after insert of markdown\n const selection = { start: markdownName.length, end: 0 };\n\n switch (markdownName) {\n case 'Strikethrough':\n editedText = `~~${markdownName}~~`;\n selection.end = 2;\n break;\n case 'Bold':\n editedText = `**${markdownName}**`;\n selection.end = 2;\n break;\n case 'Italic':\n editedText = `_${markdownName}_`;\n selection.end = 1;\n break;\n case 'alt':\n editedText = `[${markdownName}]()`;\n selection.end = 3;\n break;\n case 'Underline':\n editedText = `<u>${markdownName}</u>`;\n selection.end = 4;\n break;\n case 'Code':\n editedText = `\\`\\`\\`\\n${markdownName}\\n\\`\\`\\``;\n selection.end = 3;\n break;\n case 'Link':\n editedText = `[${markdownName}](link)`;\n selection.end = 7;\n break;\n case 'Quote':\n editedText = `>${markdownName}`;\n selection.end = 0;\n break;\n default:\n editedText = '';\n }\n\n return { editedText, selection };\n};\n\nexport const insertListOrTitle = (markdown: string) => {\n let textToInsert;\n\n switch (markdown) {\n case 'BulletList':\n textToInsert = '- ';\n break;\n case 'NumberList':\n textToInsert = '1. ';\n break;\n case 'h1':\n textToInsert = '# ';\n break;\n case 'h2':\n textToInsert = '## ';\n break;\n case 'h3':\n textToInsert = '### ';\n break;\n case 'h4':\n textToInsert = '#### ';\n break;\n case 'h5':\n textToInsert = '##### ';\n break;\n case 'h6':\n textToInsert = '###### ';\n break;\n default:\n return '';\n }\n\n return textToInsert;\n};\n\n// EDITOR ACTIONS FUNCTIONS\n\nexport const markdownHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string\n) => {\n const textToEdit = editor.current.getSelection();\n let textToInsert;\n\n if (textToEdit) {\n const editedText = replaceText(markdownType, textToEdit);\n editor.current.replaceSelection(editedText);\n editor.current.focus();\n } else {\n textToInsert = insertText(markdownType);\n editor.current.replaceSelection(textToInsert.editedText);\n editor.current.focus();\n // set selection-focus to text to replace with content\n const { line, ch } = editor.current.getCursor();\n const endSelection = ch - textToInsert.selection.end;\n const startSelection = ch - textToInsert.selection.end - textToInsert.selection.start;\n editor.current.setSelection({ line, ch: startSelection }, { line, ch: endSelection });\n }\n};\n\nexport const listHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n listType: string\n) => {\n const doc = editor.current.getDoc();\n const insertion = listType === 'BulletList' ? '- ' : '1. ';\n\n if (doc.somethingSelected()) {\n const selections = doc.listSelections();\n let remove: boolean | null = null;\n\n editor.current.operation(function () {\n selections.forEach(function (selection) {\n const pos = [selection.head.line, selection.anchor.line].sort();\n\n // Remove if the first text starts with it\n if (remove == null) {\n remove = doc.getLine(pos[0]).startsWith(insertion);\n }\n\n for (let i = pos[0]; i <= pos[1]; i++) {\n if (remove) {\n // Don't remove if we don't start with it\n if (doc.getLine(i).startsWith(insertion)) {\n doc.replaceRange('', { line: i, ch: 0 }, { line: i, ch: insertion.length });\n }\n } else {\n const lineInsertion = listType === 'BulletList' ? '- ' : `${i + 1}. `;\n doc.replaceRange(lineInsertion, { line: i, ch: 0 });\n }\n }\n });\n });\n } else {\n const { line: currentLine } = doc.getCursor();\n const listToInsert = insertListOrTitle(listType);\n const lineContent = editor.current.getLine(currentLine);\n\n const textToInsert = listToInsert + lineContent;\n editor.current.setSelection(\n { line: currentLine, ch: 0 },\n { line: currentLine, ch: lineContent.length }\n );\n editor.current.replaceSelection(textToInsert);\n }\n\n editor.current.focus();\n};\n\nexport const titleHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n titleType: string\n) => {\n const { line: currentLine } = editor.current.getCursor();\n const titleToInsert = insertListOrTitle(titleType);\n const lineContent = editor.current.getLine(currentLine);\n\n // replace hashtags followed by a space in case user want to change the type of title\n const lineWithNoTitle = lineContent.replace(/#{1,6}\\s/g, '').trim();\n\n const textToInsert = titleToInsert + lineWithNoTitle;\n editor.current.setSelection(\n { line: currentLine, ch: 0 },\n { line: currentLine, ch: lineContent.length }\n );\n editor.current.replaceSelection(textToInsert);\n\n setTimeout(() => {\n const newLastLineLength = editor.current.getLine(currentLine).length;\n editor.current.focus();\n editor.current.setCursor({ line: currentLine, ch: newLastLineLength });\n }, 0);\n};\n\nexport const insertFile = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n files: any[]\n) => {\n let { line } = editor.current.getCursor();\n const { ch } = editor.current.getCursor();\n\n files.forEach((file, i) => {\n let contentLength = editor.current.getLine(line).length;\n editor.current.setCursor({ line, ch: contentLength });\n // create a new line after first image markdown inserted\n // or if there is content in current line\n\n if (i > 0 || (i === 0 && ch !== 0)) {\n contentLength = editor.current.getLine(line).length;\n editor.current.setCursor({ line, ch: contentLength });\n line++;\n editor.current.replaceSelection('\\n');\n }\n\n if (file.mime.includes('image')) {\n editor.current.replaceSelection(``);\n } else {\n editor.current.replaceSelection(`[${file.alt}](${file.url})`);\n }\n });\n\n setTimeout(() => editor.current.focus(), 0);\n};\n\n// NEXT FUNCTIONS FOR QUOTE OR CODE MARKDOWN\n\nconst insertWithTextToEdit = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string,\n line: number,\n contentLength: number,\n textToEdit: string\n) => {\n const textToInsert = replaceText(markdownType, textToEdit);\n\n // remove content after current line\n const contentToMove = editor.current.getRange(\n { line: line + 1, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n editor.current.replaceRange('', { line: line + 1, ch: 0 }, { line: Infinity, ch: Infinity });\n\n // remove word that was selected\n // set cursor end of line + move to next line\n // add text to insert\n editor.current.replaceSelection('');\n editor.current.setCursor({ line, ch: contentLength });\n editor.current.replaceSelection('\\n');\n editor.current.replaceSelection(textToInsert);\n\n if (markdownType === 'Code') {\n const { line: newLine } = editor.current.getCursor();\n editor.current.setCursor({ line: newLine - 1, ch: textToEdit.length });\n }\n\n // add content we had to remove earlier\n editor.current.replaceRange(\n contentToMove,\n { line: line + 4, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n\n editor.current.focus();\n};\n\nconst insertWithoutTextToEdit = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string,\n line: number,\n contentLength: number\n) => {\n const textToInsert = insertText(markdownType);\n\n // remove content after current line\n const contentToMove = editor.current.getRange(\n { line: line + 1, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n editor.current.replaceRange('', { line: line + 1, ch: 0 }, { line: Infinity, ch: Infinity });\n\n // replace cursor to next line\n editor.current.setCursor({ line, ch: contentLength });\n editor.current.replaceSelection('\\n');\n editor.current.replaceSelection(textToInsert.editedText);\n\n // set selection on \"Code\" or \"Quote\" word\n\n if (markdownType === 'Code') {\n line += 2;\n\n editor.current.setSelection({ line, ch: 0 }, { line, ch: 4 });\n } else {\n line += 1;\n\n const { ch } = editor.current.getCursor();\n const endSelection = ch - textToInsert.selection.end;\n const startSelection = ch - textToInsert.selection.end - textToInsert.selection.start;\n editor.current.setSelection({ line, ch: startSelection }, { line, ch: endSelection });\n }\n\n // add content we had to remove earlier\n editor.current.replaceRange(\n contentToMove,\n { line: line + 2, ch: 0 },\n { line: Infinity, ch: Infinity }\n );\n editor.current.focus();\n};\n\nexport const quoteAndCodeHandler = (\n editor: MutableRefObject<CodeMirror.EditorFromTextArea>,\n markdownType: string\n) => {\n const textToEdit = editor.current.getSelection();\n const { line } = editor.current.getCursor();\n const contentLength = editor.current.getLine(line).length;\n\n if (textToEdit) {\n insertWithTextToEdit(editor, markdownType, line, contentLength, textToEdit);\n } else {\n insertWithoutTextToEdit(editor, markdownType, line, contentLength);\n }\n};\n","import { BaseButton, IconButton, IconButtonGroup } from '@strapi/design-system';\nimport styled from 'styled-components';\n\n// NAV BUTTONS\nexport const CustomIconButton = styled(IconButton)`\n padding: ${({ theme }) => theme.spaces[2]};\n /* Trick to prevent the outline from overflowing because of the general outline-offset */\n outline-offset: -2px !important;\n\n svg {\n width: ${18 / 16}rem;\n height: ${18 / 16}rem;\n }\n`;\n\nexport const CustomLinkIconButton = styled(CustomIconButton)`\n svg {\n width: ${8 / 16}rem;\n height: ${8 / 16}rem;\n }\n`;\n\nexport const MainButtons = styled(IconButtonGroup)`\n margin-left: ${({ theme }) => theme.spaces[4]};\n`;\n\nexport const MoreButton = styled(IconButton)`\n margin: ${({ theme }) => `0 ${theme.spaces[2]}`};\n padding: ${({ theme }) => theme.spaces[2]};\n\n svg {\n width: ${18 / 16}rem;\n height: ${18 / 16}rem;\n }\n`;\n\n// NAV\n\nexport const IconButtonGroupMargin = styled(IconButtonGroup)`\n margin-right: ${({ theme }) => `${theme.spaces[2]}`};\n`;\n\n// FOOTER\nexport const ExpandButton = styled(BaseButton)`\n background-color: transparent;\n border: none;\n align-items: center;\n\n svg {\n margin-left: ${({ theme }) => `${theme.spaces[2]}`};\n path {\n fill: ${({ theme }) => theme.colors.neutral700};\n width: ${12 / 16}rem;\n height: ${12 / 16}rem;\n }\n }\n`;\n","import { BaseButtonProps, Box, Flex, Typography } from '@strapi/design-system';\nimport { Expand } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { ExpandButton } from './WysiwygStyles';\n\ninterface WysiwygFooterProps {\n onToggleExpand: BaseButtonProps['onClick'];\n}\n\nconst WysiwygFooter = ({ onToggleExpand }: WysiwygFooterProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box padding={2} background=\"neutral100\" borderRadius={`0 0 ${4 / 16}rem ${4 / 16}rem`}>\n <Flex justifyContent=\"flex-end\" alignItems=\"flex-end\">\n <ExpandButton id=\"expand\" onClick={onToggleExpand}>\n <Typography>\n {formatMessage({\n id: 'components.WysiwygBottomControls.fullscreen',\n defaultMessage: 'Expand',\n })}\n </Typography>\n <Expand />\n </ExpandButton>\n </Flex>\n </Box>\n );\n};\n\nexport { WysiwygFooter };\nexport type { WysiwygFooterProps };\n","import * as React from 'react';\n\nimport {\n Button,\n Flex,\n IconButtonGroup,\n SingleSelectOption,\n Popover,\n SingleSelect,\n} from '@strapi/design-system';\nimport {\n Bold,\n BulletList,\n Code,\n Italic,\n Link,\n More,\n NumberList,\n Picture as Image,\n Quote,\n StrikeThrough,\n Underline,\n} from '@strapi/icons';\nimport { EditorFromTextArea } from 'codemirror5';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport {\n CustomIconButton,\n CustomLinkIconButton,\n IconButtonGroupMargin,\n MainButtons,\n MoreButton,\n} from './WysiwygStyles';\n\ninterface WysiwygNavProps {\n disabled?: boolean;\n editorRef: React.MutableRefObject<EditorFromTextArea>;\n isExpandMode?: boolean;\n isPreviewMode?: boolean;\n onActionClick: (\n action: string,\n editorRef: React.MutableRefObject<EditorFromTextArea>,\n callback?: () => void\n ) => void;\n onToggleMediaLib: () => void;\n onTogglePreviewMode?: () => void;\n}\n\n/**\n * TODO: refactor this mess.\n */\nconst WysiwygNav = ({\n disabled,\n editorRef,\n isExpandMode,\n isPreviewMode,\n onActionClick,\n onToggleMediaLib,\n onTogglePreviewMode,\n}: WysiwygNavProps) => {\n const [visiblePopover, setVisiblePopover] = React.useState(false);\n const { formatMessage } = useIntl();\n const selectPlaceholder = formatMessage({\n id: 'components.Wysiwyg.selectOptions.title',\n defaultMessage: 'Add a title',\n });\n const buttonMoreRef = React.useRef<HTMLButtonElement>(null!);\n\n const handleTogglePopover = () => {\n setVisiblePopover((prev) => !prev);\n };\n\n if (disabled || isPreviewMode) {\n return (\n <Flex\n padding={2}\n background=\"neutral100\"\n justifyContent=\"space-between\"\n borderRadius={`${4 / 16}rem ${4 / 16}rem 0 0`}\n >\n <StyledFlex>\n <SingleSelect disabled placeholder={selectPlaceholder} size=\"S\" label={selectPlaceholder}>\n <SingleSelectOption value=\"h1\">h1</SingleSelectOption>\n <SingleSelectOption value=\"h2\">h2</SingleSelectOption>\n <SingleSelectOption value=\"h3\">h3</SingleSelectOption>\n <SingleSelectOption value=\"h4\">h4</SingleSelectOption>\n <SingleSelectOption value=\"h5\">h5</SingleSelectOption>\n <SingleSelectOption value=\"h6\">h6</SingleSelectOption>\n </SingleSelect>\n\n <MainButtons>\n <CustomIconButton disabled label=\"Bold\" name=\"Bold\" icon={<Bold />} />\n <CustomIconButton disabled label=\"Italic\" name=\"Italic\" icon={<Italic />} />\n <CustomIconButton disabled label=\"Underline\" name=\"Underline\" icon={<Underline />} />\n </MainButtons>\n\n <MoreButton disabled label=\"More\" icon={<More />} />\n </StyledFlex>\n\n {!isExpandMode && (\n <Button onClick={onTogglePreviewMode} variant=\"tertiary\">\n {formatMessage({\n id: 'components.Wysiwyg.ToggleMode.markdown-mode',\n defaultMessage: 'Markdown mode',\n })}\n </Button>\n )}\n </Flex>\n );\n }\n\n return (\n <Flex\n padding={2}\n background=\"neutral100\"\n justifyContent=\"space-between\"\n borderRadius={`${4 / 16}rem ${4 / 16}rem 0 0`}\n >\n <StyledFlex>\n <SingleSelect\n placeholder={selectPlaceholder}\n label={selectPlaceholder}\n size=\"S\"\n // @ts-expect-error – DS v2 will only allow strings.\n onChange={(value) => onActionClick(value, editorRef)}\n >\n <SingleSelectOption value=\"h1\">h1</SingleSelectOption>\n <SingleSelectOption value=\"h2\">h2</SingleSelectOption>\n <SingleSelectOption value=\"h3\">h3</SingleSelectOption>\n <SingleSelectOption value=\"h4\">h4</SingleSelectOption>\n <SingleSelectOption value=\"h5\">h5</SingleSelectOption>\n <SingleSelectOption value=\"h6\">h6</SingleSelectOption>\n </SingleSelect>\n\n <MainButtons>\n <CustomIconButton\n onClick={() => onActionClick('Bold', editorRef)}\n label=\"Bold\"\n name=\"Bold\"\n icon={<Bold />}\n />\n <CustomIconButton\n onClick={() => onActionClick('Italic', editorRef)}\n label=\"Italic\"\n name=\"Italic\"\n icon={<Italic />}\n />\n <CustomIconButton\n onClick={() => onActionClick('Underline', editorRef)}\n label=\"Underline\"\n name=\"Underline\"\n icon={<Underline />}\n />\n </MainButtons>\n\n <MoreButton\n ref={buttonMoreRef}\n onClick={handleTogglePopover}\n label=\"More\"\n icon={<More />}\n />\n {visiblePopover && (\n <Popover onDismiss={handleTogglePopover} centered source={buttonMoreRef} spacing={4}>\n <Flex>\n <IconButtonGroupMargin>\n <CustomIconButton\n onClick={() => onActionClick('Strikethrough', editorRef, handleTogglePopover)}\n label=\"Strikethrough\"\n name=\"Strikethrough\"\n icon={<StrikeThrough />}\n />\n <CustomIconButton\n onClick={() => onActionClick('BulletList', editorRef, handleTogglePopover)}\n label=\"BulletList\"\n name=\"BulletList\"\n icon={<BulletList />}\n />\n <CustomIconButton\n onClick={() => onActionClick('NumberList', editorRef, handleTogglePopover)}\n label=\"NumberList\"\n name=\"NumberList\"\n icon={<NumberList />}\n />\n </IconButtonGroupMargin>\n <IconButtonGroup>\n <CustomIconButton\n onClick={() => onActionClick('Code', editorRef, handleTogglePopover)}\n label=\"Code\"\n name=\"Code\"\n icon={<Code />}\n />\n <CustomIconButton\n onClick={() => {\n handleTogglePopover();\n onToggleMediaLib();\n }}\n label=\"Image\"\n name=\"Image\"\n icon={<Image />}\n />\n <CustomLinkIconButton\n onClick={() => onActionClick('Link', editorRef, handleTogglePopover)}\n label=\"Link\"\n name=\"Link\"\n // eslint-disable-next-line jsx-a11y/anchor-is-valid\n icon={<Link />}\n />\n <CustomIconButton\n onClick={() => onActionClick('Quote', editorRef, handleTogglePopover)}\n label=\"Quote\"\n name=\"Quote\"\n icon={<Quote />}\n />\n </IconButtonGroup>\n </Flex>\n </Popover>\n )}\n </StyledFlex>\n\n {onTogglePreviewMode && (\n <Button onClick={onTogglePreviewMode} variant=\"tertiary\">\n {formatMessage({\n id: 'components.Wysiwyg.ToggleMode.preview-mode',\n defaultMessage: 'Preview mode',\n })}\n </Button>\n )}\n </Flex>\n );\n};\n\nexport { WysiwygNav };\nexport type { WysiwygNavProps };\n\nconst StyledFlex = styled(Flex)`\n /* Hide the label, every input needs a label. */\n label {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n }\n`;\n","import * as React from 'react';\n\nimport { Field, FieldError, FieldHint, FieldLabel, Flex } from '@strapi/design-system';\nimport { EditorFromTextArea } from 'codemirror5';\n\nimport { useField } from '../../../../../../components/Form';\nimport { useStrapiApp } from '../../../../../../features/StrapiApp';\nimport { prefixFileUrlWithBackendUrl } from '../../../../../../utils/urls';\n\nimport { Editor, EditorApi } from './Editor';\nimport { EditorLayout } from './EditorLayout';\nimport {\n insertFile,\n listHandler,\n markdownHandler,\n quoteAndCodeHandler,\n titleHandler,\n} from './utils/utils';\nimport { WysiwygFooter } from './WysiwygFooter';\nimport { WysiwygNav } from './WysiwygNav';\n\nimport type { InputProps } from '../../../../../../components/FormInputs/types';\nimport type { Schema } from '@strapi/types';\n\ninterface WysiwygProps extends Omit<InputProps, 'type'> {\n labelAction?: React.ReactNode;\n type: Schema.Attribute.RichText['type'];\n}\n\nconst Wysiwyg = React.forwardRef<EditorApi, WysiwygProps>(\n ({ hint, disabled, label, name, placeholder, required }, forwardedRef) => {\n const field = useField(name);\n const textareaRef = React.useRef<HTMLTextAreaElement>(null);\n const editorRef = React.useRef<EditorFromTextArea>(\n null\n ) as React.MutableRefObject<EditorFromTextArea>;\n const [isPreviewMode, setIsPreviewMode] = React.useState(false);\n const [mediaLibVisible, setMediaLibVisible] = React.useState(false);\n const [isExpandMode, setIsExpandMode] = React.useState(false);\n const components = useStrapiApp('ImageDialog', (state) => state.components);\n\n const MediaLibraryDialog = components['media-library'];\n\n const handleToggleMediaLib = () => setMediaLibVisible((prev) => !prev);\n const handleTogglePreviewMode = () => setIsPreviewMode((prev) => !prev);\n const handleToggleExpand = () => {\n setIsPreviewMode(false);\n setIsExpandMode((prev) => !prev);\n };\n\n const handleActionClick = (\n value: string,\n currentEditorRef: React.MutableRefObject<EditorFromTextArea>,\n togglePopover?: () => void\n ) => {\n switch (value) {\n case 'Link':\n case 'Strikethrough': {\n markdownHandler(currentEditorRef, value);\n togglePopover?.();\n break;\n }\n case 'Code':\n case 'Quote': {\n quoteAndCodeHandler(currentEditorRef, value);\n togglePopover?.();\n break;\n }\n case 'Bold':\n case 'Italic':\n case 'Underline': {\n markdownHandler(currentEditorRef, value);\n break;\n }\n case 'BulletList':\n case 'NumberList': {\n listHandler(currentEditorRef, value);\n togglePopover?.();\n break;\n }\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6': {\n titleHandler(currentEditorRef, value);\n break;\n }\n default: {\n // Nothing\n }\n }\n };\n\n const handleSelectAssets = (files: any[]) => {\n const formattedFiles = files.map((f) => ({\n alt: f.alternativeText || f.name,\n url: prefixFileUrlWithBackendUrl(f.url),\n mime: f.mime,\n }));\n\n insertFile(editorRef, formattedFiles);\n setMediaLibVisible(false);\n };\n\n return (\n <Field name={name} hint={hint} error={field.error} required={required}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <FieldLabel>{label}</FieldLabel>\n <EditorLayout\n isExpandMode={isExpandMode}\n error={field.error}\n previewContent={field.value}\n onCollapse={handleToggleExpand}\n >\n <WysiwygNav\n isExpandMode={isExpandMode}\n editorRef={editorRef}\n isPreviewMode={isPreviewMode}\n onActionClick={handleActionClick}\n onToggleMediaLib={handleToggleMediaLib}\n onTogglePreviewMode={isExpandMode ? undefined : handleTogglePreviewMode}\n disabled={disabled}\n />\n\n <Editor\n disabled={disabled}\n isExpandMode={isExpandMode}\n editorRef={editorRef}\n error={field.error}\n isPreviewMode={isPreviewMode}\n name={name}\n onChange={field.onChange}\n placeholder={placeholder}\n textareaRef={textareaRef}\n value={field.value}\n ref={forwardedRef}\n />\n\n {!isExpandMode && <WysiwygFooter onToggleExpand={handleToggleExpand} />}\n </EditorLayout>\n <FieldHint />\n <FieldError />\n </Flex>\n {mediaLibVisible && (\n // @ts-expect-error – TODO: fix this way of injecting because it's not really typeable without a registry.\n <MediaLibraryDialog onClose={handleToggleMediaLib} onSelectAssets={handleSelectAssets} />\n )}\n </Field>\n );\n }\n);\n\nexport { Wysiwyg };\nexport type { WysiwygProps };\n","import { ReactNode } from 'react';\n\nimport { useIntl } from 'react-intl';\n\nimport { useForm } from '../../../../components/Form';\nimport { InputRenderer as FormInputRenderer } from '../../../../components/FormInputs/Renderer';\nimport { useStrapiApp } from '../../../../features/StrapiApp';\nimport { useDocumentRBAC } from '../../../features/DocumentRBAC';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { useLazyComponents } from '../../../hooks/useLazyComponents';\n\nimport { BlocksInput } from './FormInputs/BlocksInput/BlocksInput';\nimport { ComponentInput } from './FormInputs/Component/Input';\nimport { DynamicZone, useDynamicZone } from './FormInputs/DynamicZone/Field';\nimport { NotAllowedInput } from './FormInputs/NotAllowed';\nimport { RelationsInput } from './FormInputs/Relations';\nimport { UIDInput } from './FormInputs/UID';\nimport { Wysiwyg } from './FormInputs/Wysiwyg/Field';\n\nimport type { DistributiveOmit } from '../../../../types/utils';\nimport type { EditFieldLayout } from '../../../hooks/useDocumentLayout';\nimport type { Schema } from '@strapi/types';\n\ntype InputRendererProps = DistributiveOmit<EditFieldLayout, 'size'>;\n\n/**\n * @internal\n *\n * @description An abstraction around the regular form input renderer designed\n * specifically to be used in the EditView of the content-manager this understands\n * the complete EditFieldLayout and will handle RBAC conditions and rendering CM specific\n * components such as Blocks / Relations.\n */\nconst InputRenderer = ({ visible, hint: providedHint, ...props }: InputRendererProps) => {\n const { id } = useDoc();\n const isFormDisabled = useForm('InputRenderer', (state) => state.disabled);\n\n const isInDynamicZone = useDynamicZone('isInDynamicZone', (state) => state.isInDynamicZone);\n\n const canCreateFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canCreateFields);\n const canReadFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canReadFields);\n const canUpdateFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canUpdateFields);\n const canUserAction = useDocumentRBAC('InputRenderer', (rbac) => rbac.canUserAction);\n\n const editableFields = id ? canUpdateFields : canCreateFields;\n const readableFields = id ? canReadFields : canCreateFields;\n /**\n * Component fields are always readable and editable,\n * however the fields within them may not be.\n */\n const canUserReadField = canUserAction(props.name, readableFields, props.type);\n const canUserEditField = canUserAction(props.name, editableFields, props.type);\n\n const fields = useStrapiApp('InputRenderer', (app) => app.fields);\n const { lazyComponentStore } = useLazyComponents(\n attributeHasCustomFieldProperty(props.attribute) ? [props.attribute.customField] : undefined\n );\n\n const hint = useFieldHint(providedHint, props.attribute);\n\n if (!visible) {\n return null;\n }\n\n /**\n * If the user can't read the field then we don't want to ever render it.\n */\n if (!canUserReadField && !isInDynamicZone) {\n return <NotAllowedInput hint={hint} {...props} />;\n }\n\n const fieldIsDisabled =\n (!canUserEditField && !isInDynamicZone) || props.disabled || isFormDisabled;\n\n /**\n * Because a custom field has a unique prop but the type could be confused with either\n * the useField hook or the type of the field we need to handle it separately and first.\n */\n if (attributeHasCustomFieldProperty(props.attribute)) {\n const CustomInput = lazyComponentStore[props.attribute.customField];\n\n if (CustomInput) {\n // @ts-expect-error – TODO: fix this type error in the useLazyComponents hook.\n return <CustomInput {...props} hint={hint} disabled={fieldIsDisabled} />;\n } else {\n <FormInputRenderer\n {...props}\n hint={hint}\n // @ts-expect-error – this workaround lets us display that the custom field is missing.\n type={props.attribute.customField}\n disabled={fieldIsDisabled}\n />;\n }\n }\n\n /**\n * This is where we handle ONLY the fields from the `useLibrary` hook.\n */\n const addedInputTypes = Object.keys(fields);\n if (!attributeHasCustomFieldProperty(props.attribute) && addedInputTypes.includes(props.type)) {\n const CustomInput = fields[props.type];\n // @ts-expect-error – TODO: fix this type error in the useLibrary hook.\n return <CustomInput {...props} hint={hint} disabled={fieldIsDisabled} />;\n }\n\n /**\n * These include the content-manager specific fields, failing that we fall back\n * to the more generic form input renderer.\n */\n switch (props.type) {\n case 'blocks':\n return <BlocksInput {...props} hint={hint} type={props.type} disabled={fieldIsDisabled} />;\n case 'component':\n return <ComponentInput {...props} hint={hint} disabled={fieldIsDisabled} />;\n case 'dynamiczone':\n return <DynamicZone {...props} hint={hint} disabled={fieldIsDisabled} />;\n case 'relation':\n return <RelationsInput {...props} hint={hint} disabled={fieldIsDisabled} />;\n case 'richtext':\n return <Wysiwyg {...props} hint={hint} type={props.type} disabled={fieldIsDisabled} />;\n case 'uid':\n return <UIDInput {...props} hint={hint} type={props.type} disabled={fieldIsDisabled} />;\n /**\n * Enumerations are a special case because they require options.\n */\n case 'enumeration':\n return (\n <FormInputRenderer\n {...props}\n hint={hint}\n options={props.attribute.enum.map((value) => ({ value }))}\n // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!\n type={props.customField ? 'custom-field' : props.type}\n disabled={fieldIsDisabled}\n />\n );\n default:\n // These props are not needed for the generic form input renderer.\n const { unique: _unique, mainField: _mainField, ...restProps } = props;\n return (\n <FormInputRenderer\n {...restProps}\n hint={hint}\n // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!\n type={props.customField ? 'custom-field' : props.type}\n disabled={fieldIsDisabled}\n />\n );\n }\n};\n\nconst attributeHasCustomFieldProperty = (\n attribute: Schema.Attribute.AnyAttribute\n): attribute is Schema.Attribute.AnyAttribute & Schema.Attribute.CustomField<string> =>\n 'customField' in attribute && typeof attribute.customField === 'string';\n\nconst useFieldHint = (hint: ReactNode = undefined, attribute: Schema.Attribute.AnyAttribute) => {\n const { formatMessage } = useIntl();\n\n const { maximum, minimum } = getMinMax(attribute);\n\n if (!maximum && !minimum) {\n return hint;\n }\n\n const units = !['biginteger', 'integer', 'number'].includes(attribute.type)\n ? formatMessage(\n {\n id: 'content-manager.form.Input.hint.character.unit',\n defaultMessage: '{maxValue, plural, one { character} other { characters}}',\n },\n {\n maxValue: Math.max(minimum || 0, maximum || 0),\n }\n )\n : null;\n\n const hasMinAndMax = typeof minimum === 'number' && typeof maximum === 'number';\n\n return formatMessage(\n {\n id: 'content-manager.form.Input.hint.text',\n defaultMessage:\n '{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}',\n },\n {\n min: minimum,\n max: maximum,\n description: hint,\n unit: units,\n divider: hasMinAndMax\n ? formatMessage({\n id: 'content-manager.form.Input.hint.minMaxDivider',\n defaultMessage: ' / ',\n })\n : null,\n br: <br />,\n }\n );\n};\n\nconst getMinMax = (attribute: Schema.Attribute.AnyAttribute) => {\n if ('min' in attribute || 'max' in attribute) {\n return {\n maximum: !Number.isNaN(Number(attribute.max)) ? Number(attribute.max) : undefined,\n minimum: !Number.isNaN(Number(attribute.min)) ? Number(attribute.min) : undefined,\n };\n } else if ('maxLength' in attribute || 'minLength' in attribute) {\n return { maximum: attribute.maxLength, minimum: attribute.minLength };\n } else {\n return { maximum: undefined, minimum: undefined };\n }\n};\n\nexport type { InputRendererProps };\nexport { InputRenderer };\n"],"names":["useState","useStrapiApp","useEffect","useCallback","Editor","Transforms","isText","Node","node","styled","jsx","Code","Typography","HeadingOne","HeadingTwo","HeadingThree","HeadingFour","HeadingFive","HeadingSix","Flex","css","useFocused","useSelected","jsxs","Box","React","prefixFileUrlWithBackendUrl","Picture","SlateElement","Range","isListNode","BaseLink","Button","useIntl","ReactEditor","Path","useComposedRefs","Fragment","Popover","Field","FieldLabel","FieldInput","NumberList","BulletList","Paragraph","Quote","Toolbar","Tooltip","Icon","SingleSelect","SingleSelectOption","format","Link","Editable","Wrapper","DIRECTIONS","IconButton","name","getTranslation","useDragAndDrop","ItemTypes","Drag","block","editor","ExpandWrapper","EditorLayout","Portal","FocusTrap","Collapse","InputWrapper","Bold","Italic","Underline","StrikeThrough","Point","Element","createContext","useSlate","Divider","withHistory","withReact","createEditor","VisuallyHidden","Slate","Expand","useField","FieldHint","FieldError","generateNKeysBetween","DOCUMENT_META_FIELDS","pipe","PlusCircle","useDocLayout","useComponent","layout","ComponentProvider","Grid","GridItem","useNotification","useLocation","useDoc","useForm","getIn","Plus","TextButton","KeyboardNavigable","CustomIconButton","ActionsFlex","getEmptyImage","Preview","Accordion","AccordionToggle","Trash","DSAccordionContent","index","BaseButton","AccordionContent","ComponentIcon","icon","displayName","Menu","More","components","MenuItem","addFieldRow","removeFieldRow","moveFieldRow","data","contentManagerApi","useDebounce","useAPIErrorHandler","useQueryParams","buildValidParams","useFocusInputField","TextInput","CheckCircle","ExclamationMarkCircle","Loader","Refresh","FieldAction","keyframes","Markdown","getLanguage","highlight","highlightAuto","abbr","container","deflist","emoji","footnote","ins","mark","sub","sup","sanitizeHtml","CodeMirror","ExpandButton","IconButtonGroup","Image","useDocumentRBAC","NotAllowedInput","FormInputRenderer","RelationsInput"],"mappings":"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"}
|