@rakun-kit/manager-react 1.5.10 → 1.6.0

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.
Files changed (261) hide show
  1. package/README.md +348 -295
  2. package/dist/cjs/components/app-sidebar.js +10 -0
  3. package/dist/cjs/components/app-sidebar.js.map +1 -1
  4. package/dist/cjs/components/media/MediaLibrary.js +10 -1
  5. package/dist/cjs/components/media/MediaLibrary.js.map +1 -1
  6. package/dist/cjs/components/media/contexts/MediaLibraryContext.js +1 -1
  7. package/dist/cjs/components/media/contexts/MediaLibraryContext.js.map +1 -1
  8. package/dist/cjs/components/media/previews/MediaContextMenuContent.js +68 -15
  9. package/dist/cjs/components/media/previews/MediaContextMenuContent.js.map +1 -1
  10. package/dist/cjs/components/media/previews/Previews.js +89 -35
  11. package/dist/cjs/components/media/previews/Previews.js.map +1 -1
  12. package/dist/cjs/components/media/previews/context/MediaPreviewContext.js.map +1 -1
  13. package/dist/cjs/components/media/previews/dialogs/ExpandedPreviewDialog.js +7 -10
  14. package/dist/cjs/components/media/previews/dialogs/ExpandedPreviewDialog.js.map +1 -1
  15. package/dist/cjs/components/media/previews/hooks/useMediaPreviewRenderer.js +3 -1
  16. package/dist/cjs/components/media/previews/hooks/useMediaPreviewRenderer.js.map +1 -1
  17. package/dist/cjs/components/media/previews/toolbar/PreviewsToolbar.js +16 -9
  18. package/dist/cjs/components/media/previews/toolbar/PreviewsToolbar.js.map +1 -1
  19. package/dist/cjs/components/media/previews/utils/mediaDownload.js +54 -0
  20. package/dist/cjs/components/media/previews/utils/mediaDownload.js.map +1 -0
  21. package/dist/cjs/components/media/previews/views/PreviewsListView.js +1 -1
  22. package/dist/cjs/components/media/previews/views/PreviewsListView.js.map +1 -1
  23. package/dist/cjs/components/rakun-logo.js +4 -9
  24. package/dist/cjs/components/rakun-logo.js.map +1 -1
  25. package/dist/cjs/components/ui/context-menu.js +1 -1
  26. package/dist/cjs/components/ui/context-menu.js.map +1 -1
  27. package/dist/cjs/i18n/catalog.js +343 -9
  28. package/dist/cjs/i18n/catalog.js.map +1 -1
  29. package/dist/cjs/lib/media.js +1 -0
  30. package/dist/cjs/lib/media.js.map +1 -1
  31. package/dist/cjs/media.js +45 -0
  32. package/dist/cjs/media.js.map +1 -1
  33. package/dist/cjs/router/dashboard/[contentType]/[edit]/ContentTypeEdit.js +15 -4
  34. package/dist/cjs/router/dashboard/[contentType]/[edit]/ContentTypeEdit.js.map +1 -1
  35. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/ContentCommentsDrawer.js +11 -6
  36. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/ContentCommentsDrawer.js.map +1 -1
  37. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js +2 -1
  38. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js.map +1 -1
  39. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditToolbar.js +2 -1
  40. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/EditToolbar.js.map +1 -1
  41. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.js +1 -1
  42. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.js.map +1 -1
  43. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/SeoTabContent.js +290 -0
  44. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/SeoTabContent.js.map +1 -0
  45. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/seo-analysis.js +88 -0
  46. package/dist/cjs/router/dashboard/[contentType]/[edit]/_components/seo-analysis.js.map +1 -0
  47. package/dist/cjs/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js +1 -1
  48. package/dist/cjs/router/dashboard/[contentType]/[edit]/_context/EditPageContext.js.map +1 -1
  49. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ContentReferenceField/ContentReferenceMultiSelectUI.js +15 -2
  50. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ContentReferenceField/ContentReferenceMultiSelectUI.js.map +1 -1
  51. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js +222 -232
  52. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js.map +1 -1
  53. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js +20 -1
  54. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js.map +1 -1
  55. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/LinkField/LinkUI.js +27 -21
  56. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/LinkField/LinkUI.js.map +1 -1
  57. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/LinkField/index.js.map +1 -1
  58. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/LinkField/linkValue.js +25 -0
  59. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/LinkField/linkValue.js.map +1 -0
  60. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js +10 -1
  61. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js.map +1 -1
  62. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/SimpleListUI.js +38 -11
  63. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/ListField/SimpleListUI.js.map +1 -1
  64. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/MenuField/MenuUI.js +135 -0
  65. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/MenuField/MenuUI.js.map +1 -0
  66. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/MenuField/index.js +10 -0
  67. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/MenuField/index.js.map +1 -0
  68. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/MenuField/menuTree.js +113 -0
  69. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/MenuField/menuTree.js.map +1 -0
  70. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/Select/MultiSelectUI.js +15 -2
  71. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/Select/MultiSelectUI.js.map +1 -1
  72. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/shared/ItemLimitStatus.js +22 -0
  73. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/shared/ItemLimitStatus.js.map +1 -0
  74. package/dist/cjs/router/dashboard/[contentType]/[edit]/_fields/shared/index.js.map +1 -1
  75. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js +1 -0
  76. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentDocumentActions.js.map +1 -1
  77. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.js +198 -0
  78. package/dist/cjs/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.js.map +1 -1
  79. package/dist/cjs/router/dashboard/[contentType]/[edit]/edit.js +10 -1
  80. package/dist/cjs/router/dashboard/[contentType]/[edit]/edit.js.map +1 -1
  81. package/dist/cjs/router/dashboard/debugging/api-routes/ApiTest.js +2 -2
  82. package/dist/cjs/router/dashboard/debugging/api-routes/ApiTest.js.map +1 -1
  83. package/dist/cjs/router/dashboard/debugging/api-routes/JsonViewer.js +17 -0
  84. package/dist/cjs/router/dashboard/debugging/api-routes/JsonViewer.js.map +1 -0
  85. package/dist/cjs/router/dashboard/debugging/api-routes/SchemaViewer.js +40 -26
  86. package/dist/cjs/router/dashboard/debugging/api-routes/SchemaViewer.js.map +1 -1
  87. package/dist/cjs/router/dashboard/debugging/api-routes/test.js +6 -5
  88. package/dist/cjs/router/dashboard/debugging/api-routes/test.js.map +1 -1
  89. package/dist/cjs/router/dashboard/seo/index.js +6 -0
  90. package/dist/cjs/router/dashboard/seo/index.js.map +1 -0
  91. package/dist/cjs/router/dashboard/seo/screen.js +219 -0
  92. package/dist/cjs/router/dashboard/seo/screen.js.map +1 -0
  93. package/dist/cjs/router/dashboard/seo/site-analysis.js +153 -0
  94. package/dist/cjs/router/dashboard/seo/site-analysis.js.map +1 -0
  95. package/dist/cjs/router/shared/route-list.js +10 -2
  96. package/dist/cjs/router/shared/route-list.js.map +1 -1
  97. package/dist/docs/index.md +283 -194
  98. package/dist/esm/components/app-sidebar.d.ts.map +1 -1
  99. package/dist/esm/components/app-sidebar.js +11 -1
  100. package/dist/esm/components/app-sidebar.js.map +1 -1
  101. package/dist/esm/components/media/MediaLibrary.d.ts.map +1 -1
  102. package/dist/esm/components/media/MediaLibrary.js +11 -2
  103. package/dist/esm/components/media/MediaLibrary.js.map +1 -1
  104. package/dist/esm/components/media/contexts/MediaLibraryContext.d.ts +2 -0
  105. package/dist/esm/components/media/contexts/MediaLibraryContext.d.ts.map +1 -1
  106. package/dist/esm/components/media/contexts/MediaLibraryContext.js +1 -1
  107. package/dist/esm/components/media/contexts/MediaLibraryContext.js.map +1 -1
  108. package/dist/esm/components/media/previews/MediaContextMenuContent.d.ts.map +1 -1
  109. package/dist/esm/components/media/previews/MediaContextMenuContent.js +70 -17
  110. package/dist/esm/components/media/previews/MediaContextMenuContent.js.map +1 -1
  111. package/dist/esm/components/media/previews/Previews.d.ts.map +1 -1
  112. package/dist/esm/components/media/previews/Previews.js +90 -36
  113. package/dist/esm/components/media/previews/Previews.js.map +1 -1
  114. package/dist/esm/components/media/previews/context/MediaPreviewContext.d.ts +2 -0
  115. package/dist/esm/components/media/previews/context/MediaPreviewContext.d.ts.map +1 -1
  116. package/dist/esm/components/media/previews/context/MediaPreviewContext.js.map +1 -1
  117. package/dist/esm/components/media/previews/dialogs/ExpandedPreviewDialog.d.ts.map +1 -1
  118. package/dist/esm/components/media/previews/dialogs/ExpandedPreviewDialog.js +7 -10
  119. package/dist/esm/components/media/previews/dialogs/ExpandedPreviewDialog.js.map +1 -1
  120. package/dist/esm/components/media/previews/hooks/useMediaPreviewRenderer.d.ts.map +1 -1
  121. package/dist/esm/components/media/previews/hooks/useMediaPreviewRenderer.js +3 -1
  122. package/dist/esm/components/media/previews/hooks/useMediaPreviewRenderer.js.map +1 -1
  123. package/dist/esm/components/media/previews/toolbar/PreviewsToolbar.d.ts +4 -1
  124. package/dist/esm/components/media/previews/toolbar/PreviewsToolbar.d.ts.map +1 -1
  125. package/dist/esm/components/media/previews/toolbar/PreviewsToolbar.js +17 -10
  126. package/dist/esm/components/media/previews/toolbar/PreviewsToolbar.js.map +1 -1
  127. package/dist/esm/components/media/previews/utils/mediaDownload.d.ts +13 -0
  128. package/dist/esm/components/media/previews/utils/mediaDownload.d.ts.map +1 -0
  129. package/dist/esm/components/media/previews/utils/mediaDownload.js +49 -0
  130. package/dist/esm/components/media/previews/utils/mediaDownload.js.map +1 -0
  131. package/dist/esm/components/media/previews/views/PreviewsListView.js +1 -1
  132. package/dist/esm/components/media/previews/views/PreviewsListView.js.map +1 -1
  133. package/dist/esm/components/rakun-logo.d.ts +1 -5
  134. package/dist/esm/components/rakun-logo.d.ts.map +1 -1
  135. package/dist/esm/components/rakun-logo.js +1 -6
  136. package/dist/esm/components/rakun-logo.js.map +1 -1
  137. package/dist/esm/components/ui/context-menu.js +1 -1
  138. package/dist/esm/components/ui/context-menu.js.map +1 -1
  139. package/dist/esm/i18n/catalog.d.ts +564 -9
  140. package/dist/esm/i18n/catalog.d.ts.map +1 -1
  141. package/dist/esm/i18n/catalog.js +327 -7
  142. package/dist/esm/i18n/catalog.js.map +1 -1
  143. package/dist/esm/lib/media.d.ts +8 -0
  144. package/dist/esm/lib/media.d.ts.map +1 -1
  145. package/dist/esm/lib/media.js +1 -0
  146. package/dist/esm/lib/media.js.map +1 -1
  147. package/dist/esm/media.d.ts +19 -1
  148. package/dist/esm/media.d.ts.map +1 -1
  149. package/dist/esm/media.js +44 -0
  150. package/dist/esm/media.js.map +1 -1
  151. package/dist/esm/router/dashboard/[contentType]/[edit]/ContentTypeEdit.d.ts.map +1 -1
  152. package/dist/esm/router/dashboard/[contentType]/[edit]/ContentTypeEdit.js +18 -7
  153. package/dist/esm/router/dashboard/[contentType]/[edit]/ContentTypeEdit.js.map +1 -1
  154. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.d.ts.map +1 -1
  155. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js +2 -1
  156. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditTabPanels.js.map +1 -1
  157. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditToolbar.d.ts.map +1 -1
  158. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditToolbar.js +2 -1
  159. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/EditToolbar.js.map +1 -1
  160. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.d.ts.map +1 -1
  161. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.js +1 -1
  162. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/PreviewPanel.js.map +1 -1
  163. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/SeoTabContent.d.ts +2 -0
  164. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/SeoTabContent.d.ts.map +1 -0
  165. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/SeoTabContent.js +283 -0
  166. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/SeoTabContent.js.map +1 -0
  167. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/seo-analysis.d.ts +10 -0
  168. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/seo-analysis.d.ts.map +1 -0
  169. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/seo-analysis.js +83 -0
  170. package/dist/esm/router/dashboard/[contentType]/[edit]/_components/seo-analysis.js.map +1 -0
  171. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ContentReferenceField/ContentReferenceMultiSelectUI.d.ts.map +1 -1
  172. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ContentReferenceField/ContentReferenceMultiSelectUI.js +15 -2
  173. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ContentReferenceField/ContentReferenceMultiSelectUI.js.map +1 -1
  174. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.d.ts +6 -2
  175. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.d.ts.map +1 -1
  176. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js +221 -234
  177. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/DynamicDataControl.js.map +1 -1
  178. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/FileField/index.d.ts.map +1 -1
  179. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js +20 -1
  180. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/FileField/index.js.map +1 -1
  181. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/LinkUI.d.ts.map +1 -1
  182. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/LinkUI.js +16 -19
  183. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/LinkUI.js.map +1 -1
  184. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/index.d.ts +2 -0
  185. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/index.d.ts.map +1 -1
  186. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/index.js.map +1 -1
  187. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/linkValue.d.ts +4 -0
  188. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/linkValue.d.ts.map +1 -0
  189. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/linkValue.js +21 -0
  190. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/LinkField/linkValue.js.map +1 -0
  191. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.d.ts.map +1 -1
  192. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js +11 -2
  193. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/IteratorModulePicker.js.map +1 -1
  194. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/SimpleListUI.d.ts.map +1 -1
  195. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/SimpleListUI.js +38 -11
  196. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/ListField/SimpleListUI.js.map +1 -1
  197. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/MenuUI.d.ts +4 -0
  198. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/MenuUI.d.ts.map +1 -0
  199. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/MenuUI.js +130 -0
  200. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/MenuUI.js.map +1 -0
  201. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/index.d.ts +14 -0
  202. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/index.d.ts.map +1 -0
  203. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/index.js +5 -0
  204. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/index.js.map +1 -0
  205. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/menuTree.d.ts +23 -0
  206. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/menuTree.d.ts.map +1 -0
  207. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/menuTree.js +103 -0
  208. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/MenuField/menuTree.js.map +1 -0
  209. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/Select/MultiSelectUI.d.ts.map +1 -1
  210. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/Select/MultiSelectUI.js +15 -2
  211. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/Select/MultiSelectUI.js.map +1 -1
  212. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/ItemLimitStatus.d.ts +6 -0
  213. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/ItemLimitStatus.d.ts.map +1 -0
  214. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/ItemLimitStatus.js +18 -0
  215. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/ItemLimitStatus.js.map +1 -0
  216. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/index.d.ts +2 -1
  217. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/index.d.ts.map +1 -1
  218. package/dist/esm/router/dashboard/[contentType]/[edit]/_fields/shared/index.js.map +1 -1
  219. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.d.ts +43 -0
  220. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.d.ts.map +1 -1
  221. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.js +198 -0
  222. package/dist/esm/router/dashboard/[contentType]/[edit]/_hooks/useContentPreview.js.map +1 -1
  223. package/dist/esm/router/dashboard/[contentType]/[edit]/edit.d.ts.map +1 -1
  224. package/dist/esm/router/dashboard/[contentType]/[edit]/edit.js +10 -1
  225. package/dist/esm/router/dashboard/[contentType]/[edit]/edit.js.map +1 -1
  226. package/dist/esm/router/dashboard/debugging/api-routes/ApiTest.d.ts.map +1 -1
  227. package/dist/esm/router/dashboard/debugging/api-routes/ApiTest.js +2 -2
  228. package/dist/esm/router/dashboard/debugging/api-routes/ApiTest.js.map +1 -1
  229. package/dist/esm/router/dashboard/debugging/api-routes/JsonViewer.d.ts +5 -0
  230. package/dist/esm/router/dashboard/debugging/api-routes/JsonViewer.d.ts.map +1 -0
  231. package/dist/esm/router/dashboard/debugging/api-routes/JsonViewer.js +14 -0
  232. package/dist/esm/router/dashboard/debugging/api-routes/JsonViewer.js.map +1 -0
  233. package/dist/esm/router/dashboard/debugging/api-routes/SchemaViewer.d.ts.map +1 -1
  234. package/dist/esm/router/dashboard/debugging/api-routes/SchemaViewer.js +42 -28
  235. package/dist/esm/router/dashboard/debugging/api-routes/SchemaViewer.js.map +1 -1
  236. package/dist/esm/router/dashboard/debugging/api-routes/test.d.ts.map +1 -1
  237. package/dist/esm/router/dashboard/debugging/api-routes/test.js +6 -5
  238. package/dist/esm/router/dashboard/debugging/api-routes/test.js.map +1 -1
  239. package/dist/esm/router/dashboard/seo/index.d.ts +2 -0
  240. package/dist/esm/router/dashboard/seo/index.d.ts.map +1 -0
  241. package/dist/esm/router/dashboard/seo/index.js +2 -0
  242. package/dist/esm/router/dashboard/seo/index.js.map +1 -0
  243. package/dist/esm/router/dashboard/seo/screen.d.ts +6 -0
  244. package/dist/esm/router/dashboard/seo/screen.d.ts.map +1 -0
  245. package/dist/esm/router/dashboard/seo/screen.js +212 -0
  246. package/dist/esm/router/dashboard/seo/screen.js.map +1 -0
  247. package/dist/esm/router/dashboard/seo/site-analysis.d.ts +40 -0
  248. package/dist/esm/router/dashboard/seo/site-analysis.d.ts.map +1 -0
  249. package/dist/esm/router/dashboard/seo/site-analysis.js +148 -0
  250. package/dist/esm/router/dashboard/seo/site-analysis.js.map +1 -0
  251. package/dist/esm/router/shared/route-definitions.d.ts +4 -2
  252. package/dist/esm/router/shared/route-definitions.d.ts.map +1 -1
  253. package/dist/esm/router/shared/route-list.d.ts +1 -1
  254. package/dist/esm/router/shared/route-list.d.ts.map +1 -1
  255. package/dist/esm/router/shared/route-list.js +8 -0
  256. package/dist/esm/router/shared/route-list.js.map +1 -1
  257. package/dist/esm/router/shared/types.d.ts +2 -0
  258. package/dist/esm/router/shared/types.d.ts.map +1 -1
  259. package/dist/styles.css +237 -6
  260. package/dist/tsconfig.build.tsbuildinfo +1 -1
  261. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/i18n/catalog.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,MAAM,EAAE,CAAA;AAEzF,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;CACjD,CAAA;AAED,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAExC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+6DiC,CAAA;AAE7D,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,eAAe,CAAA"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/i18n/catalog.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,MAAM,EAAE,CAAA;AAEzF,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAA;CACjD,CAAA;AAED,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAExC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6vEiC,CAAA;AAE7D,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,eAAe,CAAA"}
@@ -12,6 +12,7 @@ export const managerMessages = {
12
12
  'navUser.theme.light': { defaultMessage: 'Light' },
13
13
  'navUser.theme.dark': { defaultMessage: 'Dark' },
14
14
  'sidebar.mediaLibrary': { defaultMessage: 'Media Library' },
15
+ 'sidebar.seo': { defaultMessage: 'SEO' },
15
16
  'sidebar.users': { defaultMessage: 'Users' },
16
17
  'sidebar.apiRoutes': { defaultMessage: 'API Routes' },
17
18
  'sidebar.debugging': { defaultMessage: 'Debugging' },
@@ -22,6 +23,101 @@ export const managerMessages = {
22
23
  'sidebar.contentTypes': { defaultMessage: 'Content types' },
23
24
  'nav.dashboard': { defaultMessage: 'Dashboard' },
24
25
  'nav.toggleSidebar': { defaultMessage: 'Toggle Sidebar' },
26
+ 'seoAudit.title': { defaultMessage: 'SEO' },
27
+ 'seoAudit.description': {
28
+ defaultMessage: 'Audit the published pages of the site and keep dated reports to track their evolution.',
29
+ },
30
+ 'seoAudit.generate': { defaultMessage: 'Generate report' },
31
+ 'seoAudit.regenerate': { defaultMessage: 'Generate new report' },
32
+ 'seoAudit.generated': { defaultMessage: 'SEO report generated and saved.' },
33
+ 'seoAudit.generateError': { defaultMessage: 'The SEO report could not be generated.' },
34
+ 'contentEdit.seoAnalysisSaveError': {
35
+ defaultMessage: 'The SEO report was generated but could not be saved to the history.',
36
+ },
37
+ 'contentEdit.seoHistoryTitle': { defaultMessage: 'Previous reports' },
38
+ 'contentEdit.seoHistoryDescription': {
39
+ defaultMessage: 'Open a saved report to review how this page has evolved.',
40
+ },
41
+ 'contentEdit.seoHistoryCurrent': { defaultMessage: 'Back to current report' },
42
+ 'contentEdit.seoHistoryLoading': { defaultMessage: 'Loading previous reports…' },
43
+ 'contentEdit.seoHistoryLoadError': {
44
+ defaultMessage: 'Previous SEO reports could not be loaded.',
45
+ },
46
+ 'contentEdit.seoHistoryEmpty': {
47
+ defaultMessage: 'There are no saved reports for this page and language yet.',
48
+ },
49
+ 'contentEdit.seoHistoryScore': {
50
+ defaultMessage: '{score}/100',
51
+ params: { score: 'number' },
52
+ },
53
+ 'contentEdit.seoHistoryViewing': { defaultMessage: 'Viewing saved report' },
54
+ 'contentEdit.seoHistorySnapshotTitle': { defaultMessage: 'Saved findings' },
55
+ 'contentEdit.seoHistorySnapshotDescription': {
56
+ defaultMessage: 'This older snapshot contains the check results but predates full report storage.',
57
+ },
58
+ 'seoAudit.scope': {
59
+ defaultMessage: '{count} routable content types are included in this audit.',
60
+ params: { count: 'number' },
61
+ },
62
+ 'seoAudit.score': { defaultMessage: 'Score' },
63
+ 'seoAudit.scoreValue': {
64
+ defaultMessage: '{score}/100',
65
+ params: { score: 'number' },
66
+ },
67
+ 'seoAudit.documents': { defaultMessage: 'Published pages' },
68
+ 'seoAudit.errors': { defaultMessage: 'Errors' },
69
+ 'seoAudit.warnings': { defaultMessage: 'Warnings' },
70
+ 'seoAudit.pagesTitle': { defaultMessage: 'Page results' },
71
+ 'seoAudit.pagesDescription': {
72
+ defaultMessage: 'Open a page to see its findings and jump directly to the document.',
73
+ },
74
+ 'seoAudit.issueCount': {
75
+ defaultMessage: '{count} findings',
76
+ params: { count: 'number' },
77
+ },
78
+ 'seoAudit.noIssues': { defaultMessage: 'No metadata findings for this page.' },
79
+ 'seoAudit.openDocument': { defaultMessage: 'Open document' },
80
+ 'seoAudit.emptyTitle': { defaultMessage: 'No SEO reports yet' },
81
+ 'seoAudit.emptyDescription': {
82
+ defaultMessage: 'Generate the first report to establish the site baseline.',
83
+ },
84
+ 'seoAudit.historyTitle': { defaultMessage: 'Evolution' },
85
+ 'seoAudit.historyDescription': {
86
+ defaultMessage: 'Every site audit is stored with its date so changes can be tracked over time.',
87
+ },
88
+ 'seoAudit.historySummary': {
89
+ defaultMessage: '{documents} pages · {errors} errors · {warnings} warnings',
90
+ params: { documents: 'number', errors: 'number', warnings: 'number' },
91
+ },
92
+ 'seoAudit.noHistory': { defaultMessage: 'There are no saved site audits.' },
93
+ 'seoAudit.pageHistoryTitle': { defaultMessage: 'Recent page reports' },
94
+ 'seoAudit.pageHistoryDescription': {
95
+ defaultMessage: 'Reports generated from the SEO tab of individual documents.',
96
+ },
97
+ 'seoAudit.finding.missingTitle': { defaultMessage: 'The page has no SEO title.' },
98
+ 'seoAudit.finding.titleLength': {
99
+ defaultMessage: 'The title is outside the recommended length.',
100
+ },
101
+ 'seoAudit.finding.missingDescription': {
102
+ defaultMessage: 'The page has no meta description.',
103
+ },
104
+ 'seoAudit.finding.descriptionLength': {
105
+ defaultMessage: 'The description is outside the recommended length.',
106
+ },
107
+ 'seoAudit.finding.noIndex': { defaultMessage: 'The page declares noindex.' },
108
+ 'seoAudit.finding.missingCanonicalBase': {
109
+ defaultMessage: 'There is no canonical URL and the site URL is not configured.',
110
+ },
111
+ 'seoAudit.finding.incompleteOpenGraph': {
112
+ defaultMessage: 'Custom Open Graph is missing: {fields}.',
113
+ params: { fields: 'string' },
114
+ },
115
+ 'seoAudit.finding.duplicateTitle': {
116
+ defaultMessage: 'The SEO title is also used by another page.',
117
+ },
118
+ 'seoAudit.finding.duplicateDescription': {
119
+ defaultMessage: 'The meta description is also used by another page.',
120
+ },
25
121
  'login.brand': { defaultMessage: 'Rakun Manager' },
26
122
  'login.welcome': { defaultMessage: 'Welcome to Rakun Manager' },
27
123
  'login.email': { defaultMessage: 'Email' },
@@ -218,6 +314,7 @@ export const managerMessages = {
218
314
  'common.deselect': { defaultMessage: 'Deselect' },
219
315
  'common.move': { defaultMessage: 'Move' },
220
316
  'common.upload': { defaultMessage: 'Upload' },
317
+ 'common.download': { defaultMessage: 'Download' },
221
318
  'mediaPicker.title': { defaultMessage: 'Media library' },
222
319
  'mediaPicker.description': {
223
320
  defaultMessage: 'Select existing media or upload new files.',
@@ -229,6 +326,21 @@ export const managerMessages = {
229
326
  'media.currentFolder': { defaultMessage: 'Current folder:' },
230
327
  'media.baseFolder': { defaultMessage: 'Base folder' },
231
328
  'media.cropAndRotate': { defaultMessage: 'Crop and rotate' },
329
+ 'media.replaceImage': { defaultMessage: 'Replace image' },
330
+ 'media.replaceImageTitle': { defaultMessage: 'Replace this image?' },
331
+ 'media.replaceImageDescription': {
332
+ defaultMessage: 'Replace "{name}" with "{fileName}". Its title, alt text, folder and references across the site will be preserved.',
333
+ params: { name: 'string', fileName: 'string' },
334
+ },
335
+ 'media.replaceImageConfirm': { defaultMessage: 'Replace image' },
336
+ 'media.imageReplaced': { defaultMessage: 'Image replaced everywhere it is referenced' },
337
+ 'media.replaceImageError': {
338
+ defaultMessage: 'Could not replace the image: {reason}',
339
+ params: { reason: 'string' },
340
+ },
341
+ 'media.replaceImageInvalidFile': {
342
+ defaultMessage: 'Choose an image file to replace this image.',
343
+ },
232
344
  'media.moveToFolder': { defaultMessage: 'Move to folder' },
233
345
  'media.createFolder': { defaultMessage: 'Create folder' },
234
346
  'media.createFolderDescription': {
@@ -249,6 +361,7 @@ export const managerMessages = {
249
361
  defaultMessage: 'This file type does not have inline preview.',
250
362
  },
251
363
  'media.openFile': { defaultMessage: 'Open file' },
364
+ 'media.downloadError': { defaultMessage: 'Could not download the file.' },
252
365
  'media.alt': { defaultMessage: 'Alt' },
253
366
  'media.mime': { defaultMessage: 'MIME' },
254
367
  'media.size': { defaultMessage: 'Size' },
@@ -325,6 +438,12 @@ export const managerMessages = {
325
438
  },
326
439
  'media.format': { defaultMessage: 'Format' },
327
440
  'media.selectFormat': { defaultMessage: 'Select format' },
441
+ 'media.outputFormat': { defaultMessage: 'Output format' },
442
+ 'media.outputFormats': { defaultMessage: 'Output formats' },
443
+ 'media.videoOutputFormats': { defaultMessage: 'MP4 + WebM' },
444
+ 'media.videoFormatsDescription': {
445
+ defaultMessage: 'Videos are converted to both formats for broad browser compatibility.',
446
+ },
328
447
  'media.qualityRange': { defaultMessage: 'Quality (1-100)' },
329
448
  'media.generatePreview': { defaultMessage: 'Generate preview' },
330
449
  'media.generateResponsiveSizes': {
@@ -336,6 +455,9 @@ export const managerMessages = {
336
455
  'media.filterDocs': { defaultMessage: 'Docs' },
337
456
  'media.typeSize': { defaultMessage: 'Type / Size' },
338
457
  'media.date': { defaultMessage: 'Date' },
458
+ 'media.listView': { defaultMessage: 'List view' },
459
+ 'media.smallGridView': { defaultMessage: 'Small grid view' },
460
+ 'media.largeGridView': { defaultMessage: 'Large grid view' },
339
461
  'media.folderDeleted': { defaultMessage: 'Folder deleted successfully' },
340
462
  'media.fileDeleted': { defaultMessage: 'File deleted successfully' },
341
463
  'media.folderUpdated': { defaultMessage: 'Folder updated successfully' },
@@ -362,27 +484,30 @@ export const managerMessages = {
362
484
  'media.enableOptimizationToReimport': {
363
485
  defaultMessage: 'Enable optimization to reimport',
364
486
  },
365
- 'media.reimportTitle': { defaultMessage: 'Reimport image?' },
487
+ 'media.reimportTitle': { defaultMessage: 'Reimport media?' },
366
488
  'media.reimportDescription': {
367
489
  defaultMessage: 'Reprocess {name} with the optimization settings currently selected in the media toolbar. Existing references and details will be preserved.',
368
490
  },
369
491
  'media.reimportConfirm': { defaultMessage: 'Reimport' },
370
- 'media.reimported': { defaultMessage: 'Image reimported' },
492
+ 'media.reimported': { defaultMessage: 'Media reimported' },
371
493
  'media.reimportError': {
372
- defaultMessage: 'Could not reimport the image: {reason}',
494
+ defaultMessage: 'Could not reimport the media: {reason}',
373
495
  },
374
- 'media.bulkReimportTitle': { defaultMessage: 'Reimport selected images?' },
496
+ 'media.bulkReimportTitle': { defaultMessage: 'Reimport selected media?' },
375
497
  'media.bulkReimportDescription': {
376
- defaultMessage: 'Reprocess {count} selected {count, plural, one {image} other {images}} with the optimization settings currently selected in the media toolbar. Existing references and details will be preserved.',
498
+ defaultMessage: 'Reprocess {count} selected media items with the optimization settings currently selected in the media toolbar. Existing references and details will be preserved.',
377
499
  params: { count: 'number' },
378
500
  },
379
501
  'media.bulkReimported': {
380
- defaultMessage: 'Reimported {count} {count, plural, one {image} other {images}}',
502
+ defaultMessage: 'Reimported {count} media {count, plural, one {item} other {items}}',
381
503
  params: { count: 'number' },
382
504
  },
383
505
  'media.bulkReimportNoImages': {
384
506
  defaultMessage: 'Select at least one image to reimport',
385
507
  },
508
+ 'media.bulkReimportNoMedia': {
509
+ defaultMessage: 'Select at least one image or video to reimport',
510
+ },
386
511
  'media.reimportSelectedCount': {
387
512
  defaultMessage: 'Reimport',
388
513
  params: { count: 'number' },
@@ -554,6 +679,17 @@ export const managerMessages = {
554
679
  'contentEdit.templateContentDescription': {
555
680
  defaultMessage: 'Renders the modules from this document’s Content tab here.',
556
681
  },
682
+ 'structuredData.moduleTitle': { defaultMessage: 'Structured data (JSON-LD)' },
683
+ 'structuredData.moduleDescription': {
684
+ defaultMessage: 'Adds non-visual schema.org data. Use Dynamic Data and templates to reuse it across documents.',
685
+ },
686
+ 'structuredData.moduleCategory': { defaultMessage: 'SEO' },
687
+ 'structuredData.customJsonDescription': {
688
+ defaultMessage: 'Advanced JSON-LD object or array. Invalid JSON is omitted from search output and reported by SEO analysis.',
689
+ },
690
+ 'structuredData.schemaTypeHelp': {
691
+ defaultMessage: 'Choose the schema that describes the main entity on this page.\n\nProduct: a purchasable product, including offer and rating data.\nArticle: editorial content, news, guides, or blog posts.\nOrganization: the company or organization behind the site.\nWebSite: the website itself; this normally belongs in a global template.\nBreadcrumbList: the page hierarchy shown as breadcrumbs.\nCustom: an advanced schema.org object or graph not covered by the typed forms.',
692
+ },
557
693
  'contentEdit.couldNotSaveTemplate': {
558
694
  defaultMessage: 'Could not save the shared template',
559
695
  },
@@ -592,6 +728,7 @@ export const managerMessages = {
592
728
  defaultMessage: 'Translate supported fields and save the document.',
593
729
  },
594
730
  'contentEdit.requiredField': { defaultMessage: 'Required field' },
731
+ 'contentEdit.fieldHelp': { defaultMessage: 'Field help' },
595
732
  'contentEdit.translatableField': { defaultMessage: 'Translatable field' },
596
733
  'contentEdit.fallbackValue': { defaultMessage: 'Fallback value' },
597
734
  'contentEdit.fixFixErrors': {
@@ -653,6 +790,153 @@ export const managerMessages = {
653
790
  'contentEdit.previewCouldNotLoad': {
654
791
  defaultMessage: 'Preview could not be loaded',
655
792
  },
793
+ 'contentEdit.seoMetadataView': { defaultMessage: 'Metadata' },
794
+ 'contentEdit.seoAnalysisView': { defaultMessage: 'Analysis' },
795
+ 'contentEdit.seoAnalysisTitle': { defaultMessage: 'On-page SEO report' },
796
+ 'contentEdit.seoAnalysisDescription': {
797
+ defaultMessage: 'Analyze the rendered preview with the latest unsaved changes.',
798
+ },
799
+ 'contentEdit.seoGenerateReport': { defaultMessage: 'Generate report' },
800
+ 'contentEdit.seoRegenerateReport': { defaultMessage: 'Regenerate report' },
801
+ 'contentEdit.seoAnalysisUnavailable': {
802
+ defaultMessage: 'Configure preview for this route to enable SEO analysis.',
803
+ },
804
+ 'contentEdit.seoAnalysisError': {
805
+ defaultMessage: 'The SEO report could not be generated.',
806
+ },
807
+ 'contentEdit.seoAnalysisPreviewError': {
808
+ defaultMessage: 'The preview snapshot for the SEO report could not be created.',
809
+ },
810
+ 'contentEdit.seoAnalysisTimeout': {
811
+ defaultMessage: 'The rendered preview did not answer in time. Check that the web preview uses a compatible Rakun adapter and can load without browser errors.',
812
+ },
813
+ 'contentEdit.seoAnalysisInvalidResponse': {
814
+ defaultMessage: 'The rendered preview returned an invalid SEO report.',
815
+ },
816
+ 'contentEdit.seoAnalysisFrameTitle': { defaultMessage: 'SEO analysis preview' },
817
+ 'contentEdit.seoNoReportTitle': { defaultMessage: 'No report generated yet' },
818
+ 'contentEdit.seoNoReportDescription': {
819
+ defaultMessage: 'Generate a report to inspect metadata, headings, images and search and social previews.',
820
+ },
821
+ 'contentEdit.seoScoreTitle': { defaultMessage: 'SEO health score' },
822
+ 'contentEdit.seoScoreDescription': {
823
+ defaultMessage: 'A practical guide based on the rendered page, not a search ranking guarantee.',
824
+ },
825
+ 'contentEdit.seoStatusGood': { defaultMessage: 'Good' },
826
+ 'contentEdit.seoStatusWarning': { defaultMessage: 'Improve' },
827
+ 'contentEdit.seoStatusError': { defaultMessage: 'Problem' },
828
+ 'contentEdit.seoCheckTitle': { defaultMessage: 'Page title' },
829
+ 'contentEdit.seoTitleMissing': { defaultMessage: 'The rendered page has no title.' },
830
+ 'contentEdit.seoTitleGood': {
831
+ defaultMessage: 'The title length is suitable ({count} characters).',
832
+ params: { count: 'number' },
833
+ },
834
+ 'contentEdit.seoTitleImprove': {
835
+ defaultMessage: 'The title has {count} characters; aim for 30–60.',
836
+ params: { count: 'number' },
837
+ },
838
+ 'contentEdit.seoCheckDescription': { defaultMessage: 'Meta description' },
839
+ 'contentEdit.seoDescriptionMissing': {
840
+ defaultMessage: 'The rendered page has no meta description.',
841
+ },
842
+ 'contentEdit.seoDescriptionGood': {
843
+ defaultMessage: 'The description length is suitable ({count} characters).',
844
+ params: { count: 'number' },
845
+ },
846
+ 'contentEdit.seoDescriptionImprove': {
847
+ defaultMessage: 'The description has {count} characters; aim for 120–160.',
848
+ params: { count: 'number' },
849
+ },
850
+ 'contentEdit.seoCheckH1': { defaultMessage: 'Primary heading' },
851
+ 'contentEdit.seoH1Good': { defaultMessage: 'The page has exactly one H1.' },
852
+ 'contentEdit.seoH1Missing': { defaultMessage: 'The page has no H1.' },
853
+ 'contentEdit.seoH1Multiple': {
854
+ defaultMessage: 'The page has {count} H1 headings; use one clear primary heading.',
855
+ params: { count: 'number' },
856
+ },
857
+ 'contentEdit.seoCheckHeadings': { defaultMessage: 'Heading hierarchy' },
858
+ 'contentEdit.seoHeadingsGood': { defaultMessage: 'Heading levels follow a logical order.' },
859
+ 'contentEdit.seoHeadingsMissing': { defaultMessage: 'The page has no headings.' },
860
+ 'contentEdit.seoHeadingsSkipped': {
861
+ defaultMessage: '{count, plural, one {One heading skips a level} other {# headings skip a level}}.',
862
+ params: { count: 'number' },
863
+ },
864
+ 'contentEdit.seoCheckImages': { defaultMessage: 'Image alt text' },
865
+ 'contentEdit.seoImagesGood': {
866
+ defaultMessage: '{count, plural, =0 {The page has no images} one {The image has an alt attribute} other {All # images have alt attributes}}.',
867
+ params: { count: 'number' },
868
+ },
869
+ 'contentEdit.seoImagesMissingAlt': {
870
+ defaultMessage: '{count, plural, one {One image has no alt attribute} other {# images have no alt attribute}}.',
871
+ params: { count: 'number' },
872
+ },
873
+ 'contentEdit.seoCheckCanonical': { defaultMessage: 'Canonical URL' },
874
+ 'contentEdit.seoCanonicalGood': { defaultMessage: 'The page declares a canonical URL.' },
875
+ 'contentEdit.seoCanonicalMissing': { defaultMessage: 'The page has no canonical URL.' },
876
+ 'contentEdit.seoCanonicalSiteUrlMissing': {
877
+ defaultMessage: 'The canonical URL cannot be generated until Site URL is configured in Settings → SEO.',
878
+ },
879
+ 'contentEdit.seoCheckLanguage': { defaultMessage: 'Document language' },
880
+ 'contentEdit.seoLanguageGood': {
881
+ defaultMessage: 'The document language is set to {language}.',
882
+ params: { language: 'string' },
883
+ },
884
+ 'contentEdit.seoLanguageMissing': {
885
+ defaultMessage: 'The HTML document has no language attribute.',
886
+ },
887
+ 'contentEdit.seoCheckIndexing': { defaultMessage: 'Indexing' },
888
+ 'contentEdit.seoIndexingGood': { defaultMessage: 'The page does not declare noindex.' },
889
+ 'contentEdit.seoIndexingBlocked': { defaultMessage: 'The page declares noindex.' },
890
+ 'contentEdit.seoCheckSocial': { defaultMessage: 'Social metadata' },
891
+ 'contentEdit.seoSocialGood': {
892
+ defaultMessage: 'Open Graph title, description and image are present.',
893
+ },
894
+ 'contentEdit.seoSocialMissing': {
895
+ defaultMessage: 'Missing Open Graph fields: {fields}.',
896
+ params: { fields: 'string' },
897
+ },
898
+ 'contentEdit.seoSocialFieldTitle': { defaultMessage: 'title' },
899
+ 'contentEdit.seoSocialFieldDescription': { defaultMessage: 'description' },
900
+ 'contentEdit.seoSocialFieldImage': { defaultMessage: 'image' },
901
+ 'contentEdit.seoCheckStructuredData': { defaultMessage: 'Structured data' },
902
+ 'contentEdit.seoStructuredDataTitle': { defaultMessage: 'JSON-LD schemas' },
903
+ 'contentEdit.seoStructuredDataNone': {
904
+ defaultMessage: 'No JSON-LD structured data was found on this page.',
905
+ },
906
+ 'contentEdit.seoStructuredDataGood': {
907
+ defaultMessage: '{count, plural, one {One valid JSON-LD block was found} other {# valid JSON-LD blocks were found}}.',
908
+ params: { count: 'number' },
909
+ },
910
+ 'contentEdit.seoStructuredDataInvalid': {
911
+ defaultMessage: '{count, plural, one {One JSON-LD block needs attention} other {# JSON-LD blocks need attention}}.',
912
+ params: { count: 'number' },
913
+ },
914
+ 'contentEdit.seoStructuredDataCount': {
915
+ defaultMessage: '{count, plural, =0 {No blocks found} one {# block found} other {# blocks found}}.',
916
+ params: { count: 'number' },
917
+ },
918
+ 'contentEdit.seoStructuredDataValid': { defaultMessage: 'Valid' },
919
+ 'contentEdit.seoStructuredDataNeedsAttention': { defaultMessage: 'Needs attention' },
920
+ 'contentEdit.seoStructuredDataInvalidJson': { defaultMessage: 'The JSON is not valid.' },
921
+ 'contentEdit.seoStructuredDataMissingContext': {
922
+ defaultMessage: 'The @context property is missing.',
923
+ },
924
+ 'contentEdit.seoStructuredDataMissingType': {
925
+ defaultMessage: 'No @type property was found.',
926
+ },
927
+ 'contentEdit.seoStructuredDataViewJson': { defaultMessage: 'View resolved JSON-LD' },
928
+ 'contentEdit.seoGooglePreview': { defaultMessage: 'Google preview' },
929
+ 'contentEdit.seoSocialPreview': { defaultMessage: 'Sharing preview' },
930
+ 'contentEdit.seoHeadingOutline': { defaultMessage: 'Heading outline' },
931
+ 'contentEdit.seoHeadingLevel': {
932
+ defaultMessage: 'H{level}',
933
+ params: { level: 'number' },
934
+ },
935
+ 'contentEdit.seoHeadingCount': {
936
+ defaultMessage: '{count, plural, one {# heading found} other {# headings found}}.',
937
+ params: { count: 'number' },
938
+ },
939
+ 'contentEdit.seoEmptyHeading': { defaultMessage: 'Empty heading' },
656
940
  'contentEdit.versionRestored': {
657
941
  defaultMessage: 'Version restored successfully',
658
942
  },
@@ -743,6 +1027,19 @@ export const managerMessages = {
743
1027
  'linkPicker.publishedRequired': {
744
1028
  defaultMessage: 'Only published pages are included in AI content.',
745
1029
  },
1030
+ 'menuField.addItem': { defaultMessage: 'Add menu item' },
1031
+ 'menuField.empty': { defaultMessage: 'Add the first item to build this menu.' },
1032
+ 'menuField.instructions': {
1033
+ defaultMessage: 'Drag vertically to reorder and horizontally to change nesting.',
1034
+ },
1035
+ 'menuField.dragItem': { defaultMessage: 'Drag menu item' },
1036
+ 'menuField.indentItem': { defaultMessage: 'Nest under previous item' },
1037
+ 'menuField.outdentItem': { defaultMessage: 'Move up one level' },
1038
+ 'menuField.removeItem': { defaultMessage: 'Remove item and its children' },
1039
+ 'menuField.untitledItem': { defaultMessage: 'Untitled menu item' },
1040
+ 'menuField.destinationRequired': {
1041
+ defaultMessage: 'Every menu item must have a destination.',
1042
+ },
746
1043
  'contentEdit.addExisting': { defaultMessage: 'Add existing' },
747
1044
  'contentEdit.addNew': { defaultMessage: 'Add new' },
748
1045
  'contentEdit.createQuoted': {
@@ -750,6 +1047,26 @@ export const managerMessages = {
750
1047
  params: { query: 'string' },
751
1048
  },
752
1049
  'contentEdit.invalidNumber': { defaultMessage: 'Invalid number' },
1050
+ 'contentEdit.itemsCount': {
1051
+ defaultMessage: '{count} items',
1052
+ params: { count: 'number' },
1053
+ },
1054
+ 'contentEdit.minimumItems': {
1055
+ defaultMessage: 'Minimum {count}',
1056
+ params: { count: 'number' },
1057
+ },
1058
+ 'contentEdit.maximumItems': {
1059
+ defaultMessage: 'Maximum {count}',
1060
+ params: { count: 'number' },
1061
+ },
1062
+ 'contentEdit.minimumItemsError': {
1063
+ defaultMessage: 'Add at least {count} items',
1064
+ params: { count: 'number' },
1065
+ },
1066
+ 'contentEdit.maximumItemsError': {
1067
+ defaultMessage: 'Add no more than {count} items',
1068
+ params: { count: 'number' },
1069
+ },
753
1070
  'contentEdit.selectAnOption': { defaultMessage: 'Select an option' },
754
1071
  'contentEdit.reorderMedia': { defaultMessage: 'Reorder media' },
755
1072
  'contentEdit.reorderItem': { defaultMessage: 'Reorder item' },
@@ -1026,6 +1343,10 @@ export const managerMessages = {
1026
1343
  'modules.noSavedFound': { defaultMessage: 'No saved modules found.' },
1027
1344
  'modules.allModules': { defaultMessage: 'All modules' },
1028
1345
  'modules.noModulesFound': { defaultMessage: 'No modules found.' },
1346
+ 'modules.moreFields': {
1347
+ defaultMessage: '+{count, plural, one {# field} other {# fields}}',
1348
+ params: { count: 'number' },
1349
+ },
1029
1350
  'modules.deleteSavedModule': { defaultMessage: 'Delete saved module' },
1030
1351
  'modules.deleteSavedConfirm': {
1031
1352
  defaultMessage: 'Permanently delete “{title}”? This cannot be undone.',
@@ -1518,7 +1839,6 @@ export const managerMessages = {
1518
1839
  },
1519
1840
  'field.llmsEntries': { defaultMessage: 'Links' },
1520
1841
  'field.llmsLink': { defaultMessage: 'Page or URL' },
1521
- 'field.llmsLinkTitle': { defaultMessage: 'Title override' },
1522
1842
  'field.llmsLinkDescription': { defaultMessage: 'Description' },
1523
1843
  'settings.system.createBackup': { defaultMessage: 'Create backup' },
1524
1844
  'settings.system.backups': { defaultMessage: 'Backups' },