@jini-ai/admin 0.4.2 → 0.4.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.
Files changed (360) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +7 -0
  3. package/dist/agent-plugins/react/components/AgentPluginListPanel.d.ts +1 -1
  4. package/dist/agent-plugins/react/hooks/AgentPluginInspector.hooks.js +1 -1
  5. package/dist/agent-plugins/react/hooks/AgentPluginPanel.hooks.d.ts +1 -1
  6. package/dist/agent-plugins/react/hooks/AgentPluginsPage.hooks.d.ts +1 -1
  7. package/dist/agent-plugins/react/hooks/AgentPluginsPage.hooks.js +1 -1
  8. package/dist/agent-plugins/react/hooks/MarketplaceTab.hooks.d.ts +1 -1
  9. package/dist/agent-plugins/react/index.js +1 -1
  10. package/dist/agent-plugins/react/pages/AgentPluginsPage.d.ts +1 -1
  11. package/dist/agent-plugins/react/tabs/DownloadedTab.d.ts +1 -1
  12. package/dist/agent-plugins/react/tabs/InstalledTab.d.ts +1 -1
  13. package/dist/agent-plugins/react/tabs/MarketplaceTab.d.ts +1 -1
  14. package/dist/comments/adapters/http.d.ts +29 -0
  15. package/dist/comments/adapters/http.js +50 -0
  16. package/dist/comments/adapters/memory.d.ts +17 -0
  17. package/dist/comments/adapters/memory.js +61 -0
  18. package/dist/comments/comments.module.d.ts +73 -0
  19. package/dist/comments/comments.module.js +16 -0
  20. package/dist/comments/conformance/comments-api.conformance.d.ts +9 -0
  21. package/dist/comments/conformance/comments-api.conformance.js +63 -0
  22. package/dist/comments/controllers/comment-queue.controller.d.ts +48 -0
  23. package/dist/comments/controllers/comment-queue.controller.js +164 -0
  24. package/dist/comments/controllers/comment-settings.controller.d.ts +32 -0
  25. package/dist/comments/controllers/comment-settings.controller.js +77 -0
  26. package/dist/comments/controllers/comments.controller.d.ts +16 -0
  27. package/dist/comments/controllers/comments.controller.js +16 -0
  28. package/dist/comments/index.d.ts +13 -0
  29. package/dist/comments/index.js +8 -0
  30. package/dist/comments/messages.en.d.ts +54 -0
  31. package/dist/comments/messages.en.js +56 -0
  32. package/dist/comments/models.d.ts +22 -0
  33. package/dist/comments/models.js +2 -0
  34. package/dist/comments/ports.d.ts +14 -0
  35. package/dist/comments/ports.js +5 -0
  36. package/dist/comments/react/components/QueueSection.d.ts +30 -0
  37. package/dist/comments/react/components/QueueSection.js +57 -0
  38. package/dist/comments/react/components/SettingsSection.d.ts +14 -0
  39. package/dist/comments/react/components/SettingsSection.js +23 -0
  40. package/dist/comments/react/hooks/CommentsPage.hooks.d.ts +9 -0
  41. package/dist/comments/react/hooks/CommentsPage.hooks.js +10 -0
  42. package/dist/comments/react/hooks/CommentsPorts.hooks.d.ts +13 -0
  43. package/dist/comments/react/hooks/CommentsPorts.hooks.js +15 -0
  44. package/dist/comments/react/hooks/QueueSection.hooks.d.ts +62 -0
  45. package/dist/comments/react/hooks/QueueSection.hooks.js +57 -0
  46. package/dist/comments/react/hooks/SettingsSection.hooks.d.ts +12 -0
  47. package/dist/comments/react/hooks/SettingsSection.hooks.js +21 -0
  48. package/dist/comments/react/hooks/use-comment-queue.hooks.d.ts +34 -0
  49. package/dist/comments/react/hooks/use-comment-queue.hooks.js +47 -0
  50. package/dist/comments/react/hooks/use-comment-settings.hooks.d.ts +22 -0
  51. package/dist/comments/react/hooks/use-comment-settings.hooks.js +30 -0
  52. package/dist/comments/react/hooks/use-comments.hooks.d.ts +15 -0
  53. package/dist/comments/react/hooks/use-comments.hooks.js +20 -0
  54. package/dist/comments/react/index.d.ts +316 -0
  55. package/dist/comments/react/index.js +35 -0
  56. package/dist/comments/react/pages/CommentsPage.d.ts +12 -0
  57. package/dist/comments/react/pages/CommentsPage.js +15 -0
  58. package/dist/comments/rules.d.ts +140 -0
  59. package/dist/comments/rules.js +199 -0
  60. package/dist/core/index.d.ts +3 -1
  61. package/dist/core/index.js +1 -0
  62. package/dist/core/ledger-slice.d.ts +90 -0
  63. package/dist/core/ledger-slice.js +81 -0
  64. package/dist/core/ports/comments.d.ts +2 -0
  65. package/dist/core/ports/forms.d.ts +19 -7
  66. package/dist/core/ports/forms.js +4 -4
  67. package/dist/core/ports/index.d.ts +1 -1
  68. package/dist/core/ports/seo.d.ts +33 -6
  69. package/dist/core/react/bind-react.d.ts +46 -0
  70. package/dist/core/react/bind-react.js +28 -0
  71. package/dist/core/react/index.d.ts +3 -0
  72. package/dist/core/react/index.js +3 -0
  73. package/dist/core/react/use-controller.d.ts +16 -0
  74. package/dist/core/react/use-controller.js +18 -0
  75. package/dist/forms/adapters/http.d.ts +26 -0
  76. package/dist/forms/adapters/http.js +43 -0
  77. package/dist/forms/adapters/memory.d.ts +14 -0
  78. package/dist/forms/adapters/memory.js +77 -0
  79. package/dist/forms/conformance/forms-api.conformance.d.ts +17 -0
  80. package/dist/forms/conformance/forms-api.conformance.js +71 -0
  81. package/dist/forms/controllers/draft-store.d.ts +18 -0
  82. package/dist/forms/controllers/draft-store.js +17 -0
  83. package/dist/forms/controllers/field-attributes-dialog.controller.d.ts +37 -0
  84. package/dist/forms/controllers/field-attributes-dialog.controller.js +27 -0
  85. package/dist/forms/controllers/form-editor.controller.d.ts +36 -0
  86. package/dist/forms/controllers/form-editor.controller.js +22 -0
  87. package/dist/forms/controllers/form-fields-editor.controller.d.ts +20 -0
  88. package/dist/forms/controllers/form-fields-editor.controller.js +10 -0
  89. package/dist/forms/controllers/form-submission-detail.controller.d.ts +20 -0
  90. package/dist/forms/controllers/form-submission-detail.controller.js +10 -0
  91. package/dist/forms/controllers/form-submissions.controller.d.ts +25 -0
  92. package/dist/forms/controllers/form-submissions.controller.js +10 -0
  93. package/dist/forms/controllers/forms-list.controller.d.ts +22 -0
  94. package/dist/forms/controllers/forms-list.controller.js +10 -0
  95. package/dist/forms/forms.module.d.ts +137 -0
  96. package/dist/forms/forms.module.js +17 -0
  97. package/dist/forms/html-rules.d.ts +20 -0
  98. package/dist/forms/html-rules.js +24 -0
  99. package/dist/forms/index.d.ts +14 -0
  100. package/dist/forms/index.js +12 -0
  101. package/dist/forms/messages.en.d.ts +100 -0
  102. package/dist/forms/messages.en.js +104 -0
  103. package/dist/forms/models.d.ts +29 -0
  104. package/dist/forms/models.js +8 -0
  105. package/dist/forms/ports.d.ts +26 -0
  106. package/dist/forms/ports.js +6 -0
  107. package/dist/forms/react/components/FieldAttributesDialog.d.ts +14 -0
  108. package/dist/forms/react/components/FieldAttributesDialog.js +47 -0
  109. package/dist/forms/react/components/FormEditorFieldsBody.d.ts +28 -0
  110. package/dist/forms/react/components/FormEditorFieldsBody.js +24 -0
  111. package/dist/forms/react/components/FormEditorHeaderText.d.ts +7 -0
  112. package/dist/forms/react/components/FormEditorHeaderText.js +8 -0
  113. package/dist/forms/react/components/FormEditorMainPanel.d.ts +12 -0
  114. package/dist/forms/react/components/FormEditorMainPanel.js +13 -0
  115. package/dist/forms/react/components/FormEditorTabStrip.d.ts +13 -0
  116. package/dist/forms/react/components/FormEditorTabStrip.js +14 -0
  117. package/dist/forms/react/components/FormFieldsEditor.d.ts +13 -0
  118. package/dist/forms/react/components/FormFieldsEditor.js +39 -0
  119. package/dist/forms/react/components/FormSubmissionDate.d.ts +8 -0
  120. package/dist/forms/react/components/FormSubmissionDate.js +5 -0
  121. package/dist/forms/react/components/FormSubmissionDetail.d.ts +13 -0
  122. package/dist/forms/react/components/FormSubmissionDetail.js +29 -0
  123. package/dist/forms/react/components/FormSubmissions.d.ts +12 -0
  124. package/dist/forms/react/components/FormSubmissions.js +46 -0
  125. package/dist/forms/react/hooks/FormsPorts.hooks.d.ts +41 -0
  126. package/dist/forms/react/hooks/FormsPorts.hooks.js +16 -0
  127. package/dist/forms/react/hooks/forms-view.hooks.d.ts +122 -0
  128. package/dist/forms/react/hooks/forms-view.hooks.js +79 -0
  129. package/dist/forms/react/hooks/use-field-attributes-dialog.hooks.d.ts +31 -0
  130. package/dist/forms/react/hooks/use-field-attributes-dialog.hooks.js +22 -0
  131. package/dist/forms/react/hooks/use-form-editor.hooks.d.ts +118 -0
  132. package/dist/forms/react/hooks/use-form-editor.hooks.js +208 -0
  133. package/dist/forms/react/hooks/use-form-fields-editor.hooks.d.ts +34 -0
  134. package/dist/forms/react/hooks/use-form-fields-editor.hooks.js +36 -0
  135. package/dist/forms/react/hooks/use-form-submission-date.hooks.d.ts +12 -0
  136. package/dist/forms/react/hooks/use-form-submission-date.hooks.js +9 -0
  137. package/dist/forms/react/hooks/use-form-submission-detail.hooks.d.ts +68 -0
  138. package/dist/forms/react/hooks/use-form-submission-detail.hooks.js +81 -0
  139. package/dist/forms/react/hooks/use-form-submissions.hooks.d.ts +67 -0
  140. package/dist/forms/react/hooks/use-form-submissions.hooks.js +110 -0
  141. package/dist/forms/react/hooks/use-forms-list.hooks.d.ts +78 -0
  142. package/dist/forms/react/hooks/use-forms-list.hooks.js +103 -0
  143. package/dist/forms/react/index.d.ts +449 -0
  144. package/dist/forms/react/index.js +35 -0
  145. package/dist/forms/react/pages/FormEditor.d.ts +19 -0
  146. package/dist/forms/react/pages/FormEditor.js +40 -0
  147. package/dist/forms/react/pages/FormsList.d.ts +39 -0
  148. package/dist/forms/react/pages/FormsList.js +55 -0
  149. package/dist/forms/rules.d.ts +291 -0
  150. package/dist/forms/rules.js +338 -0
  151. package/dist/media/react/hooks/EditMediaPanel.hooks.js +1 -1
  152. package/dist/media/react/hooks/LibraryTab.hooks.d.ts +1 -1
  153. package/dist/media/react/hooks/LibraryTab.hooks.js +1 -1
  154. package/dist/media/react/hooks/MediaCard.hooks.js +6 -20
  155. package/dist/media/react/hooks/MediaGrid.hooks.d.ts +2 -2
  156. package/dist/media/react/hooks/MediaPage.hooks.d.ts +1 -1
  157. package/dist/media/react/hooks/MediaPage.hooks.js +1 -1
  158. package/dist/media/react/hooks/MediaPicker.hooks.js +1 -1
  159. package/dist/media/react/index.js +1 -1
  160. package/dist/media/react/tabs/LibraryTab.d.ts +1 -1
  161. package/dist/media/react/tabs/ProvidersTab.d.ts +1 -1
  162. package/dist/playground/react/components/Canvas.d.ts +1 -1
  163. package/dist/playground/react/hooks/Canvas.hooks.d.ts +1 -1
  164. package/dist/playground/react/hooks/Canvas.hooks.js +1 -1
  165. package/dist/playground/react/hooks/PlaygroundPage.hooks.d.ts +1 -1
  166. package/dist/playground/react/index.js +1 -1
  167. package/dist/playground/react/pages/PlaygroundPage.d.ts +1 -1
  168. package/dist/playground/react/tabs/CanvasTab.d.ts +1 -1
  169. package/dist/react/bind-react.d.ts +1 -45
  170. package/dist/react/bind-react.js +2 -27
  171. package/dist/react/components/ConfirmDialog/ConfirmDialog.d.ts +22 -5
  172. package/dist/react/components/ConfirmDialog/ConfirmDialog.hooks.d.ts +2 -2
  173. package/dist/react/components/ConfirmDialog/ConfirmDialog.hooks.js +17 -55
  174. package/dist/react/components/ConfirmDialog/ConfirmDialog.js +33 -70
  175. package/dist/react/use-controller.d.ts +1 -15
  176. package/dist/react/use-controller.js +2 -17
  177. package/dist/redirects/adapters/http.d.ts +20 -0
  178. package/dist/redirects/adapters/http.js +31 -0
  179. package/dist/redirects/adapters/memory.d.ts +13 -0
  180. package/dist/redirects/adapters/memory.js +83 -0
  181. package/dist/redirects/conformance/redirects-api.conformance.d.ts +12 -0
  182. package/dist/redirects/conformance/redirects-api.conformance.js +66 -0
  183. package/dist/redirects/controllers/hit-count.controller.d.ts +14 -0
  184. package/dist/redirects/controllers/hit-count.controller.js +10 -0
  185. package/dist/redirects/controllers/import-redirects.controller.d.ts +28 -0
  186. package/dist/redirects/controllers/import-redirects.controller.js +29 -0
  187. package/dist/redirects/controllers/redirects.controller.d.ts +37 -0
  188. package/dist/redirects/controllers/redirects.controller.js +38 -0
  189. package/dist/redirects/index.d.ts +11 -0
  190. package/dist/redirects/index.js +10 -0
  191. package/dist/redirects/messages.en.d.ts +56 -0
  192. package/dist/redirects/messages.en.js +55 -0
  193. package/dist/redirects/models.d.ts +14 -0
  194. package/dist/redirects/models.js +2 -0
  195. package/dist/redirects/ports.d.ts +9 -0
  196. package/dist/redirects/ports.js +4 -0
  197. package/dist/redirects/react/components/HitCountCell.d.ts +19 -0
  198. package/dist/redirects/react/components/HitCountCell.js +19 -0
  199. package/dist/redirects/react/components/ImportRedirectsForm.d.ts +17 -0
  200. package/dist/redirects/react/components/ImportRedirectsForm.js +12 -0
  201. package/dist/redirects/react/hooks/RedirectsOptions.hooks.d.ts +27 -0
  202. package/dist/redirects/react/hooks/RedirectsOptions.hooks.js +15 -0
  203. package/dist/redirects/react/hooks/RedirectsPage.hooks.d.ts +50 -0
  204. package/dist/redirects/react/hooks/RedirectsPage.hooks.js +30 -0
  205. package/dist/redirects/react/hooks/RedirectsPorts.hooks.d.ts +10 -0
  206. package/dist/redirects/react/hooks/RedirectsPorts.hooks.js +11 -0
  207. package/dist/redirects/react/hooks/use-hit-count-cell.hooks.d.ts +19 -0
  208. package/dist/redirects/react/hooks/use-hit-count-cell.hooks.js +15 -0
  209. package/dist/redirects/react/hooks/use-import-redirects-form.hooks.d.ts +21 -0
  210. package/dist/redirects/react/hooks/use-import-redirects-form.hooks.js +25 -0
  211. package/dist/redirects/react/hooks/use-redirects.hooks.d.ts +34 -0
  212. package/dist/redirects/react/hooks/use-redirects.hooks.js +63 -0
  213. package/dist/redirects/react/hooks/wired.hooks.d.ts +55 -0
  214. package/dist/redirects/react/hooks/wired.hooks.js +31 -0
  215. package/dist/redirects/react/index.d.ts +316 -0
  216. package/dist/redirects/react/index.js +28 -0
  217. package/dist/redirects/react/pages/RedirectsPage.d.ts +15 -0
  218. package/dist/redirects/react/pages/RedirectsPage.js +20 -0
  219. package/dist/redirects/redirects.module.d.ts +75 -0
  220. package/dist/redirects/redirects.module.js +13 -0
  221. package/dist/redirects/rules.d.ts +131 -0
  222. package/dist/redirects/rules.js +134 -0
  223. package/dist/security/react/hooks/AccessTokensTab.hooks.d.ts +1 -1
  224. package/dist/security/react/hooks/AccessTokensTab.hooks.js +1 -1
  225. package/dist/security/react/hooks/RootKeyTab.hooks.d.ts +1 -1
  226. package/dist/security/react/hooks/RootKeyTab.hooks.js +1 -1
  227. package/dist/security/react/hooks/SecurityPage.hooks.d.ts +1 -1
  228. package/dist/security/react/index.js +1 -1
  229. package/dist/security/react/pages/SecurityPage.d.ts +1 -1
  230. package/dist/security/react/tabs/AccessTokensTab.d.ts +1 -1
  231. package/dist/security/react/tabs/RootKeyTab.d.ts +1 -1
  232. package/dist/seo/adapters/http.d.ts +31 -0
  233. package/dist/seo/adapters/http.js +37 -0
  234. package/dist/seo/adapters/memory.d.ts +28 -0
  235. package/dist/seo/adapters/memory.js +129 -0
  236. package/dist/seo/conformance/seo-api.conformance.d.ts +8 -0
  237. package/dist/seo/conformance/seo-api.conformance.js +44 -0
  238. package/dist/seo/controllers/entry-picker.controller.d.ts +21 -0
  239. package/dist/seo/controllers/entry-picker.controller.js +17 -0
  240. package/dist/seo/controllers/entry-section.controller.d.ts +20 -0
  241. package/dist/seo/controllers/entry-section.controller.js +7 -0
  242. package/dist/seo/controllers/media-ref.controller.d.ts +26 -0
  243. package/dist/seo/controllers/media-ref.controller.js +14 -0
  244. package/dist/seo/controllers/seo-entry.controller.d.ts +31 -0
  245. package/dist/seo/controllers/seo-entry.controller.js +52 -0
  246. package/dist/seo/controllers/seo.controller.d.ts +29 -0
  247. package/dist/seo/controllers/seo.controller.js +50 -0
  248. package/dist/seo/controllers/sitemap.controller.d.ts +25 -0
  249. package/dist/seo/controllers/sitemap.controller.js +27 -0
  250. package/dist/seo/index.d.ts +14 -0
  251. package/dist/seo/index.js +12 -0
  252. package/dist/seo/messages.en.d.ts +78 -0
  253. package/dist/seo/messages.en.js +78 -0
  254. package/dist/seo/models.d.ts +179 -0
  255. package/dist/seo/models.js +8 -0
  256. package/dist/seo/ports.d.ts +11 -0
  257. package/dist/seo/ports.js +4 -0
  258. package/dist/seo/react/components/MediaPickerBridge.d.ts +4 -0
  259. package/dist/seo/react/components/MediaPickerBridge.js +8 -0
  260. package/dist/seo/react/components/MediaRefField.d.ts +36 -0
  261. package/dist/seo/react/components/MediaRefField.js +12 -0
  262. package/dist/seo/react/components/SeoIcons.d.ts +13 -0
  263. package/dist/seo/react/components/SeoIcons.js +32 -0
  264. package/dist/seo/react/components/SitemapModal.d.ts +48 -0
  265. package/dist/seo/react/components/SitemapModal.js +70 -0
  266. package/dist/seo/react/hooks/MediaPickerBridge.hooks.d.ts +6 -0
  267. package/dist/seo/react/hooks/MediaPickerBridge.hooks.js +27 -0
  268. package/dist/seo/react/hooks/MediaRefField.hooks.d.ts +22 -0
  269. package/dist/seo/react/hooks/MediaRefField.hooks.js +30 -0
  270. package/dist/seo/react/hooks/SeoModuleTabs.d.ts +14 -0
  271. package/dist/seo/react/hooks/SeoModuleTabs.js +18 -0
  272. package/dist/seo/react/hooks/SeoPage.hooks.d.ts +69 -0
  273. package/dist/seo/react/hooks/SeoPage.hooks.js +37 -0
  274. package/dist/seo/react/hooks/SeoPorts.hooks.d.ts +19 -0
  275. package/dist/seo/react/hooks/SeoPorts.hooks.js +22 -0
  276. package/dist/seo/react/hooks/SitemapModal.hooks.d.ts +26 -0
  277. package/dist/seo/react/hooks/SitemapModal.hooks.js +20 -0
  278. package/dist/seo/react/hooks/use-entry-picker.hooks.d.ts +11 -0
  279. package/dist/seo/react/hooks/use-entry-picker.hooks.js +20 -0
  280. package/dist/seo/react/hooks/use-seo-entry-panel.hooks.d.ts +14 -0
  281. package/dist/seo/react/hooks/use-seo-entry-panel.hooks.js +26 -0
  282. package/dist/seo/react/hooks/use-seo-entry-section.hooks.d.ts +4 -0
  283. package/dist/seo/react/hooks/use-seo-entry-section.hooks.js +7 -0
  284. package/dist/seo/react/hooks/use-seo.hooks.d.ts +11 -0
  285. package/dist/seo/react/hooks/use-seo.hooks.js +29 -0
  286. package/dist/seo/react/hooks/use-sitemap-modal.hooks.d.ts +10 -0
  287. package/dist/seo/react/hooks/use-sitemap-modal.hooks.js +18 -0
  288. package/dist/seo/react/index.d.ts +366 -0
  289. package/dist/seo/react/index.js +30 -0
  290. package/dist/seo/react/options.d.ts +19 -0
  291. package/dist/seo/react/options.js +2 -0
  292. package/dist/seo/react/pages/SeoPage.d.ts +161 -0
  293. package/dist/seo/react/pages/SeoPage.js +215 -0
  294. package/dist/seo/rules.d.ts +136 -0
  295. package/dist/seo/rules.js +212 -0
  296. package/dist/seo/seo.module.d.ts +114 -0
  297. package/dist/seo/seo.module.js +14 -0
  298. package/dist/source-control/react/hooks/ProvidersTab.hooks.d.ts +1 -1
  299. package/dist/source-control/react/hooks/ProvidersTab.hooks.js +1 -1
  300. package/dist/source-control/react/hooks/SourceControlPage.hooks.d.ts +1 -1
  301. package/dist/source-control/react/index.js +1 -1
  302. package/dist/source-control/react/pages/SourceControlPage.d.ts +1 -1
  303. package/dist/source-control/react/tabs/ProvidersTab.d.ts +1 -1
  304. package/dist/widgets/adapters/http.d.ts +19 -0
  305. package/dist/widgets/adapters/http.js +33 -0
  306. package/dist/widgets/adapters/memory.d.ts +22 -0
  307. package/dist/widgets/adapters/memory.js +93 -0
  308. package/dist/widgets/conformance/widgets-api.conformance.d.ts +6 -0
  309. package/dist/widgets/conformance/widgets-api.conformance.js +55 -0
  310. package/dist/widgets/controllers/instance-editor.controller.d.ts +49 -0
  311. package/dist/widgets/controllers/instance-editor.controller.js +87 -0
  312. package/dist/widgets/controllers/library.controller.d.ts +33 -0
  313. package/dist/widgets/controllers/library.controller.js +53 -0
  314. package/dist/widgets/controllers/region-editor.controller.d.ts +42 -0
  315. package/dist/widgets/controllers/region-editor.controller.js +69 -0
  316. package/dist/widgets/controllers/regions.controller.d.ts +27 -0
  317. package/dist/widgets/controllers/regions.controller.js +44 -0
  318. package/dist/widgets/index.d.ts +11 -0
  319. package/dist/widgets/index.js +9 -0
  320. package/dist/widgets/messages.en.d.ts +78 -0
  321. package/dist/widgets/messages.en.js +83 -0
  322. package/dist/widgets/models.d.ts +62 -0
  323. package/dist/widgets/models.js +2 -0
  324. package/dist/widgets/ports.d.ts +79 -0
  325. package/dist/widgets/ports.js +5 -0
  326. package/dist/widgets/react/components/WidgetInstanceNotices.d.ts +14 -0
  327. package/dist/widgets/react/components/WidgetInstanceNotices.js +25 -0
  328. package/dist/widgets/react/components/WidgetRegionEditorHeaderActions.d.ts +22 -0
  329. package/dist/widgets/react/components/WidgetRegionEditorHeaderActions.js +18 -0
  330. package/dist/widgets/react/components/WidgetsLibraryNotices.d.ts +13 -0
  331. package/dist/widgets/react/components/WidgetsLibraryNotices.js +10 -0
  332. package/dist/widgets/react/hooks/WidgetsPorts.hooks.d.ts +270 -0
  333. package/dist/widgets/react/hooks/WidgetsPorts.hooks.js +17 -0
  334. package/dist/widgets/react/hooks/navigation.hooks.d.ts +9 -0
  335. package/dist/widgets/react/hooks/navigation.hooks.js +6 -0
  336. package/dist/widgets/react/hooks/page-views.hooks.d.ts +87 -0
  337. package/dist/widgets/react/hooks/page-views.hooks.js +30 -0
  338. package/dist/widgets/react/hooks/use-widget-instance-editor.hooks.d.ts +56 -0
  339. package/dist/widgets/react/hooks/use-widget-instance-editor.hooks.js +38 -0
  340. package/dist/widgets/react/hooks/use-widget-region-editor.hooks.d.ts +32 -0
  341. package/dist/widgets/react/hooks/use-widget-region-editor.hooks.js +22 -0
  342. package/dist/widgets/react/hooks/use-widget-regions.hooks.d.ts +23 -0
  343. package/dist/widgets/react/hooks/use-widget-regions.hooks.js +22 -0
  344. package/dist/widgets/react/hooks/use-widgets-library.hooks.d.ts +37 -0
  345. package/dist/widgets/react/hooks/use-widgets-library.hooks.js +23 -0
  346. package/dist/widgets/react/index.d.ts +391 -0
  347. package/dist/widgets/react/index.js +31 -0
  348. package/dist/widgets/react/pages/WidgetInstanceEditor.d.ts +23 -0
  349. package/dist/widgets/react/pages/WidgetInstanceEditor.js +37 -0
  350. package/dist/widgets/react/pages/WidgetRegionEditor.d.ts +22 -0
  351. package/dist/widgets/react/pages/WidgetRegionEditor.js +25 -0
  352. package/dist/widgets/react/pages/WidgetRegions.d.ts +21 -0
  353. package/dist/widgets/react/pages/WidgetRegions.js +31 -0
  354. package/dist/widgets/react/pages/WidgetsLibrary.d.ts +24 -0
  355. package/dist/widgets/react/pages/WidgetsLibrary.js +61 -0
  356. package/dist/widgets/rules.d.ts +94 -0
  357. package/dist/widgets/rules.js +83 -0
  358. package/dist/widgets/widgets.module.d.ts +122 -0
  359. package/dist/widgets/widgets.module.js +21 -0
  360. package/package.json +206 -9
@@ -0,0 +1,17 @@
1
+ import { createControllerStore } from '../../core/module/controller-store.js';
2
+ import { initialEntryPickerState, describeSeoError } from '../models.js';
3
+ /** Two existing reads, combined posts first then pages; no new content repository. */
4
+ export function createEntryPickerController({ api }, { t = key => key, describeError = describeSeoError } = {}) {
5
+ const store = createControllerStore({ initial: initialEntryPickerState });
6
+ async function load(_required = {}, _optional = {}) {
7
+ try {
8
+ const [posts, pages] = await Promise.all([api.listSeoPosts({}), api.listSeoPages({})]);
9
+ store.set({ patch: { entries: [...posts, ...pages] } });
10
+ }
11
+ catch (error) {
12
+ store.set({ patch: { error: describeError({ error, fallback: t('failed to load entries') }) } });
13
+ }
14
+ }
15
+ return { ...store, load };
16
+ }
17
+ //# sourceMappingURL=entry-picker.controller.js.map
@@ -0,0 +1,20 @@
1
+ /** Selection belongs to the section; changing tabs unmounts and resets it. */
2
+ export declare function createSeoEntrySectionController(_required?: Record<string, never>, _optional?: Record<string, never>): {
3
+ setEntryId({ entryId }: {
4
+ entryId: string;
5
+ }, _optional?: Record<string, never>): void;
6
+ getSnapshot: () => Readonly<{
7
+ entryId: string;
8
+ }>;
9
+ subscribe: ({ listener }: {
10
+ listener: () => void;
11
+ }) => () => void;
12
+ set: ({ patch }: {
13
+ patch: Partial<{
14
+ entryId: string;
15
+ }>;
16
+ }) => void;
17
+ signal: AbortSignal;
18
+ dispose: () => void;
19
+ };
20
+ //# sourceMappingURL=entry-section.controller.d.ts.map
@@ -0,0 +1,7 @@
1
+ import { createControllerStore } from '../../core/module/controller-store.js';
2
+ /** Selection belongs to the section; changing tabs unmounts and resets it. */
3
+ export function createSeoEntrySectionController(_required = {}, _optional = {}) {
4
+ const store = createControllerStore({ initial: { entryId: '' } });
5
+ return { ...store, setEntryId({ entryId }, _optional = {}) { store.set({ patch: { entryId } }); } };
6
+ }
7
+ //# sourceMappingURL=entry-section.controller.js.map
@@ -0,0 +1,26 @@
1
+ import type { SeoMediaSelection } from '../models.js';
2
+ /** The parent owns the controlled value; this controller owns only picker visibility. */
3
+ export declare function createMediaRefController({ onChange }: {
4
+ onChange: (value: string) => void;
5
+ }, _optional?: Record<string, never>): {
6
+ openPicker(_required?: Record<string, never>, _optional?: Record<string, never>): void;
7
+ closePicker(_required?: Record<string, never>, _optional?: Record<string, never>): void;
8
+ handleSelect({ item }: {
9
+ item: SeoMediaSelection;
10
+ }, _optional?: Record<string, never>): void;
11
+ clear(_required?: Record<string, never>, _optional?: Record<string, never>): void;
12
+ getSnapshot: () => Readonly<{
13
+ pickerOpen: boolean;
14
+ }>;
15
+ subscribe: ({ listener }: {
16
+ listener: () => void;
17
+ }) => () => void;
18
+ set: ({ patch }: {
19
+ patch: Partial<{
20
+ pickerOpen: boolean;
21
+ }>;
22
+ }) => void;
23
+ signal: AbortSignal;
24
+ dispose: () => void;
25
+ };
26
+ //# sourceMappingURL=media-ref.controller.d.ts.map
@@ -0,0 +1,14 @@
1
+ import { createControllerStore } from '../../core/module/controller-store.js';
2
+ import { buildMediaRef } from '../rules.js';
3
+ /** The parent owns the controlled value; this controller owns only picker visibility. */
4
+ export function createMediaRefController({ onChange }, _optional = {}) {
5
+ const store = createControllerStore({ initial: { pickerOpen: false } });
6
+ return {
7
+ ...store,
8
+ openPicker(_required = {}, _optional = {}) { store.set({ patch: { pickerOpen: true } }); },
9
+ closePicker(_required = {}, _optional = {}) { store.set({ patch: { pickerOpen: false } }); },
10
+ handleSelect({ item }, _optional = {}) { onChange(buildMediaRef({ item })); store.set({ patch: { pickerOpen: false } }); },
11
+ clear(_required = {}, _optional = {}) { onChange(''); },
12
+ };
13
+ }
14
+ //# sourceMappingURL=media-ref.controller.js.map
@@ -0,0 +1,31 @@
1
+ import type { AdminSeoPort } from '../ports.js';
2
+ import type { SeoEntryState, SeoEntryOverridesPatch, SeoTranslator, SeoErrorFormatter } from '../models.js';
3
+ /** Partial edits remain distinct from resolved values, including explicit null clears. */
4
+ export declare function createSeoEntryController({ api, entryId }: {
5
+ api: AdminSeoPort;
6
+ entryId: string;
7
+ }, { t, describeError }?: {
8
+ t?: SeoTranslator | undefined;
9
+ describeError?: SeoErrorFormatter | undefined;
10
+ }): {
11
+ load: (_required?: Record<string, never>, _optional?: Record<string, never>) => Promise<void>;
12
+ fieldValue: <K extends keyof SeoEntryOverridesPatch>({ key, resolvedValue }: {
13
+ key: K;
14
+ resolvedValue: SeoEntryOverridesPatch[K];
15
+ }, _optional?: Record<string, never>) => SeoEntryOverridesPatch[K];
16
+ setField: <K extends keyof SeoEntryOverridesPatch>({ key, value }: {
17
+ key: K;
18
+ value: SeoEntryOverridesPatch[K];
19
+ }, _optional?: Record<string, never>) => void;
20
+ save: (_required?: Record<string, never>, _optional?: Record<string, never>) => Promise<void>;
21
+ getSnapshot: () => Readonly<SeoEntryState>;
22
+ subscribe: ({ listener }: {
23
+ listener: () => void;
24
+ }) => () => void;
25
+ set: ({ patch }: {
26
+ patch: Partial<SeoEntryState>;
27
+ }) => void;
28
+ signal: AbortSignal;
29
+ dispose: () => void;
30
+ };
31
+ //# sourceMappingURL=seo-entry.controller.d.ts.map
@@ -0,0 +1,52 @@
1
+ import { createControllerStore } from '../../core/module/controller-store.js';
2
+ import { initialSeoEntryState, describeSeoError } from '../models.js';
3
+ import { overrideOrClear } from '../rules.js';
4
+ /** Partial edits remain distinct from resolved values, including explicit null clears. */
5
+ export function createSeoEntryController({ api, entryId }, { t = key => key, describeError = describeSeoError } = {}) {
6
+ const store = createControllerStore({ initial: initialSeoEntryState });
7
+ let analyzeGeneration = 0;
8
+ async function load(_required = {}, _optional = {}) {
9
+ store.set({ patch: initialSeoEntryState });
10
+ try {
11
+ const [resolved, analysis] = await Promise.all([api.getSeoEntry({ entryId }), api.analyzeSeoEntry({ entryId })]);
12
+ store.set({ patch: { resolved, analysis } });
13
+ }
14
+ catch (error) {
15
+ store.set({ patch: { loadError: describeError({ error, fallback: t('failed to load entry SEO data') }) } });
16
+ }
17
+ }
18
+ function fieldValue({ key, resolvedValue }, _optional = {}) {
19
+ const { touched } = store.getSnapshot();
20
+ return key in touched ? touched[key] : resolvedValue;
21
+ }
22
+ // Normalize at the single sink rather than the eleven input handlers: a future field cannot
23
+ // silently miss the clear-override behavior. An untouched field remains absent from the PUT.
24
+ function setField({ key, value }, _optional = {}) {
25
+ store.set({ patch: { touched: { ...store.getSnapshot().touched, [key]: overrideOrClear({ value }) } } });
26
+ }
27
+ async function save(_required = {}, _optional = {}) {
28
+ const { touched } = store.getSnapshot();
29
+ if (Object.keys(touched).length === 0)
30
+ return;
31
+ store.set({ patch: { saving: true, saveError: null, notice: null } });
32
+ try {
33
+ const resolved = await api.putSeoEntry({ entryId }, touched);
34
+ store.set({ patch: { resolved, touched: {}, notice: t('Saved.') } });
35
+ // Saving finishes with the PUT, before this best-effort analysis settles. A newer save's
36
+ // analysis must supersede an earlier slow response (the source's 2026-09-07 race fix).
37
+ const ticket = ++analyzeGeneration;
38
+ void api.analyzeSeoEntry({ entryId }).then(analysis => {
39
+ if (ticket === analyzeGeneration)
40
+ store.set({ patch: { analysis } });
41
+ }).catch(() => { });
42
+ }
43
+ catch (error) {
44
+ store.set({ patch: { saveError: describeError({ error, fallback: t('failed to save SEO overrides') }) } });
45
+ }
46
+ finally {
47
+ store.set({ patch: { saving: false } });
48
+ }
49
+ }
50
+ return { ...store, load, fieldValue, setField, save };
51
+ }
52
+ //# sourceMappingURL=seo-entry.controller.js.map
@@ -0,0 +1,29 @@
1
+ import type { AdminSeoPort } from '../ports.js';
2
+ import type { SeoState, SeoTranslator, SeoSettingsPatch } from '../models.js';
3
+ /** One settings write owner; image drafts rebaseline only on accepted server settings. */
4
+ export declare function createSeoController({ api }: {
5
+ api: AdminSeoPort;
6
+ }, { t }?: {
7
+ t?: SeoTranslator | undefined;
8
+ }): {
9
+ load: (_required?: Record<string, never>, _optional?: Record<string, never>) => Promise<void>;
10
+ save: ({ patch }: {
11
+ patch: SeoSettingsPatch;
12
+ }, _optional?: Record<string, never>) => Promise<void>;
13
+ regenerateSitemap: (_required?: Record<string, never>, _optional?: Record<string, never>) => Promise<boolean>;
14
+ setDefaultOgImage({ value }: {
15
+ value: string;
16
+ }, _optional?: Record<string, never>): void;
17
+ openSitemapModal(_required?: Record<string, never>, _optional?: Record<string, never>): void;
18
+ closeSitemapModal(_required?: Record<string, never>, _optional?: Record<string, never>): void;
19
+ getSnapshot: () => Readonly<SeoState>;
20
+ subscribe: ({ listener }: {
21
+ listener: () => void;
22
+ }) => () => void;
23
+ set: ({ patch }: {
24
+ patch: Partial<SeoState>;
25
+ }) => void;
26
+ signal: AbortSignal;
27
+ dispose: () => void;
28
+ };
29
+ //# sourceMappingURL=seo.controller.d.ts.map
@@ -0,0 +1,50 @@
1
+ import { createControllerStore } from '../../core/module/controller-store.js';
2
+ import { initialSeoState, describeSeoError } from '../models.js';
3
+ /** One settings write owner; image drafts rebaseline only on accepted server settings. */
4
+ export function createSeoController({ api }, { t = (key) => key } = {}) {
5
+ const store = createControllerStore({ initial: initialSeoState });
6
+ async function load(_required = {}, _optional = {}) {
7
+ try {
8
+ const settings = await api.getSeoSettings({});
9
+ store.set({ patch: { settings, defaultOgImage: settings.defaultOgImage ?? '' } });
10
+ }
11
+ catch (error) {
12
+ store.set({ patch: { error: describeSeoError({ error, fallback: t('failed to load SEO settings') }) } });
13
+ }
14
+ }
15
+ async function save({ patch }, _optional = {}) {
16
+ store.set({ patch: { saving: true, error: null, notice: null } });
17
+ try {
18
+ const settings = await api.putSeoSettings({}, patch);
19
+ store.set({ patch: { settings, defaultOgImage: settings.defaultOgImage ?? '', notice: t('Saved.') } });
20
+ }
21
+ catch (error) {
22
+ store.set({ patch: { error: describeSeoError({ error, fallback: t('failed to save SEO settings') }) } });
23
+ }
24
+ finally {
25
+ store.set({ patch: { saving: false } });
26
+ }
27
+ }
28
+ async function regenerateSitemap(_required = {}, _optional = {}) {
29
+ store.set({ patch: { saving: true, error: null, notice: null } });
30
+ try {
31
+ await api.regenerateSeoSitemap({});
32
+ store.set({ patch: { notice: t('Sitemap regeneration accepted.') } });
33
+ return true;
34
+ }
35
+ catch (error) {
36
+ store.set({ patch: { error: describeSeoError({ error, fallback: t('failed to regenerate sitemap') }) } });
37
+ return false;
38
+ }
39
+ finally {
40
+ store.set({ patch: { saving: false } });
41
+ }
42
+ }
43
+ return {
44
+ ...store, load, save, regenerateSitemap,
45
+ setDefaultOgImage({ value }, _optional = {}) { store.set({ patch: { defaultOgImage: value } }); },
46
+ openSitemapModal(_required = {}, _optional = {}) { store.set({ patch: { sitemapModalOpen: true } }); },
47
+ closeSitemapModal(_required = {}, _optional = {}) { store.set({ patch: { sitemapModalOpen: false } }); },
48
+ };
49
+ }
50
+ //# sourceMappingURL=seo.controller.js.map
@@ -0,0 +1,25 @@
1
+ import type { AdminSeoPort } from '../ports.js';
2
+ import type { SitemapState, SitemapModalView } from '../models.js';
3
+ /** Disabled is terminal, distinct from loading. Refetch generations ignore older responses. */
4
+ export declare function createSitemapController({ api, enabled }: {
5
+ api: AdminSeoPort;
6
+ enabled: boolean;
7
+ }, _optional?: Record<string, never>): {
8
+ load: (_required?: Record<string, never>, _optional?: Record<string, never>) => Promise<void>;
9
+ setFilter({ value }: {
10
+ value: string;
11
+ }, _optional?: Record<string, never>): void;
12
+ setView({ view }: {
13
+ view: SitemapModalView;
14
+ }, _optional?: Record<string, never>): void;
15
+ getSnapshot: () => Readonly<SitemapState>;
16
+ subscribe: ({ listener }: {
17
+ listener: () => void;
18
+ }) => () => void;
19
+ set: ({ patch }: {
20
+ patch: Partial<SitemapState>;
21
+ }) => void;
22
+ signal: AbortSignal;
23
+ dispose: () => void;
24
+ };
25
+ //# sourceMappingURL=sitemap.controller.d.ts.map
@@ -0,0 +1,27 @@
1
+ import { createControllerStore } from '../../core/module/controller-store.js';
2
+ /** Disabled is terminal, distinct from loading. Refetch generations ignore older responses. */
3
+ export function createSitemapController({ api, enabled }, _optional = {}) {
4
+ const store = createControllerStore({ initial: { status: enabled ? 'loading' : 'disabled', error: null, xmlText: '', filter: '', view: 'table' } });
5
+ let generation = 0;
6
+ async function load(_required = {}, _optional = {}) {
7
+ if (!enabled)
8
+ return;
9
+ const ticket = ++generation;
10
+ store.set({ patch: { status: 'loading', error: null } });
11
+ try {
12
+ const { text } = await api.fetchSitemapXml({}, { signal: store.signal });
13
+ if (ticket === generation)
14
+ store.set({ patch: { xmlText: text, status: 'ready' } });
15
+ }
16
+ catch (error) {
17
+ if (ticket === generation)
18
+ store.set({ patch: { error: error instanceof Error ? error.message : 'failed to load the sitemap', status: 'error' } });
19
+ }
20
+ }
21
+ return {
22
+ ...store, load,
23
+ setFilter({ value }, _optional = {}) { store.set({ patch: { filter: value } }); },
24
+ setView({ view }, _optional = {}) { store.set({ patch: { view } }); },
25
+ };
26
+ }
27
+ //# sourceMappingURL=sitemap.controller.js.map
@@ -0,0 +1,14 @@
1
+ export { seoModule } from './seo.module.js';
2
+ export { seoApiToken, seoEventsToken } from './ports.js';
3
+ export type { AdminSeoPort, SeoEventsPort } from './ports.js';
4
+ export type { AdminSeoOverridesPatch, AdminSeoSettingsPatch, AdminSeoEntryChoice } from '../core/ports/seo.js';
5
+ export * from './models.js';
6
+ export * from './rules.js';
7
+ export { seoMessagesEn } from './messages.en.js';
8
+ export { createSeoController } from './controllers/seo.controller.js';
9
+ export { createSeoEntryController } from './controllers/seo-entry.controller.js';
10
+ export { createEntryPickerController } from './controllers/entry-picker.controller.js';
11
+ export { createSeoEntrySectionController } from './controllers/entry-section.controller.js';
12
+ export { createSitemapController } from './controllers/sitemap.controller.js';
13
+ export { createMediaRefController } from './controllers/media-ref.controller.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,12 @@
1
+ export { seoModule } from './seo.module.js';
2
+ export { seoApiToken, seoEventsToken } from './ports.js';
3
+ export * from './models.js';
4
+ export * from './rules.js';
5
+ export { seoMessagesEn } from './messages.en.js';
6
+ export { createSeoController } from './controllers/seo.controller.js';
7
+ export { createSeoEntryController } from './controllers/seo-entry.controller.js';
8
+ export { createEntryPickerController } from './controllers/entry-picker.controller.js';
9
+ export { createSeoEntrySectionController } from './controllers/entry-section.controller.js';
10
+ export { createSitemapController } from './controllers/sitemap.controller.js';
11
+ export { createMediaRefController } from './controllers/media-ref.controller.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,78 @@
1
+ /** English strings are also the host dictionary keys. */
2
+ export declare const seoMessagesEn: {
3
+ readonly "Site defaults": "Site defaults";
4
+ readonly Sitemap: "Sitemap";
5
+ readonly "Pages & posts": "Pages & posts";
6
+ readonly "This site publishes a sitemap.": "This site publishes a sitemap.";
7
+ readonly "This site does not publish a sitemap. Turn it on under Site defaults.": "This site does not publish a sitemap. Turn it on under Site defaults.";
8
+ readonly "Loading entries\u2026": "Loading entries…";
9
+ readonly Entry: "Entry";
10
+ readonly "Choose an entry\u2026": "Choose an entry…";
11
+ readonly Analysis: "Analysis";
12
+ readonly "Score:": "Score:";
13
+ readonly "No issues.": "No issues.";
14
+ readonly "Loading entry SEO\u2026": "Loading entry SEO…";
15
+ readonly "Per-entry overrides": "Per-entry overrides";
16
+ readonly "Fields show the currently-effective value (author override, or site default, or derived from the entry). Only fields you change here are saved as overrides.": "Fields show the currently-effective value (author override, or site default, or derived from the entry). Only fields you change here are saved as overrides.";
17
+ readonly "Empty a field and save to remove its override \u2014 the entry falls back to the site default.": "Empty a field and save to remove its override — the entry falls back to the site default.";
18
+ readonly Title: "Title";
19
+ readonly Description: "Description";
20
+ readonly "Canonical URL": "Canonical URL";
21
+ readonly Noindex: "Noindex";
22
+ readonly Nofollow: "Nofollow";
23
+ readonly "OG title": "OG title";
24
+ readonly "OG description": "OG description";
25
+ readonly "OG image (media ref or URL)": "OG image (media ref or URL)";
26
+ readonly "Twitter title": "Twitter title";
27
+ readonly "Twitter description": "Twitter description";
28
+ readonly "Twitter image (media ref or URL)": "Twitter image (media ref or URL)";
29
+ readonly "Saving\u2026": "Saving…";
30
+ readonly "Save overrides": "Save overrides";
31
+ readonly "Per-entry SEO": "Per-entry SEO";
32
+ readonly "Search appearance": "Search appearance";
33
+ readonly "Title template (must contain %s)": "Title template (must contain %s)";
34
+ readonly "Default meta description": "Default meta description";
35
+ readonly "Social sharing": "Social sharing";
36
+ readonly "Default Open Graph / Twitter image (media ref)": "Default Open Graph / Twitter image (media ref)";
37
+ readonly "Twitter @site handle": "Twitter @site handle";
38
+ readonly Crawling: "Crawling";
39
+ readonly "Default noindex": "Default noindex";
40
+ readonly "Default nofollow": "Default nofollow";
41
+ readonly "Sitemap enabled": "Sitemap enabled";
42
+ readonly "Save settings": "Save settings";
43
+ readonly "Cached sitemap": "Cached sitemap";
44
+ readonly "Force-rebuild the cached sitemap now, bypassing the normal cache-hit path.": "Force-rebuild the cached sitemap now, bypassing the normal cache-hit path.";
45
+ readonly "Working\u2026": "Working…";
46
+ readonly "Regenerate sitemap": "Regenerate sitemap";
47
+ readonly "View sitemap": "View sitemap";
48
+ readonly "Loading SEO settings\u2026": "Loading SEO settings…";
49
+ readonly Marketing: "Marketing";
50
+ readonly "Site-wide defaults for meta titles, descriptions, Open Graph/Twitter cards, and robots directives.": "Site-wide defaults for meta titles, descriptions, Open Graph/Twitter cards, and robots directives.";
51
+ readonly "Choose image": "Choose image";
52
+ readonly Remove: "Remove";
53
+ readonly "Sitemap \u00B7 {count} URLs": "Sitemap · {count} URLs";
54
+ readonly "sitemap.xml \u2197": "sitemap.xml ↗";
55
+ readonly Table: "Table";
56
+ readonly "Raw XML": "Raw XML";
57
+ readonly "The sitemap has no URLs yet.": "The sitemap has no URLs yet.";
58
+ readonly "Filter sitemap URLs": "Filter sitemap URLs";
59
+ readonly "Filter by URL\u2026": "Filter by URL…";
60
+ readonly "No URLs match this filter.": "No URLs match this filter.";
61
+ readonly URL: "URL";
62
+ readonly "Last modified": "Last modified";
63
+ readonly "\u2014": "—";
64
+ readonly "Sitemap is off. Turn on \"Sitemap enabled\" above to publish one.": "Sitemap is off. Turn on \"Sitemap enabled\" above to publish one.";
65
+ readonly "Loading sitemap\u2026": "Loading sitemap…";
66
+ readonly Close: "Close";
67
+ readonly "failed to load entries": "failed to load entries";
68
+ readonly "failed to load entry SEO data": "failed to load entry SEO data";
69
+ readonly "Saved.": "Saved.";
70
+ readonly "failed to save SEO overrides": "failed to save SEO overrides";
71
+ readonly "failed to load SEO settings": "failed to load SEO settings";
72
+ readonly "failed to save SEO settings": "failed to save SEO settings";
73
+ readonly "Sitemap regeneration accepted.": "Sitemap regeneration accepted.";
74
+ readonly "failed to regenerate sitemap": "failed to regenerate sitemap";
75
+ readonly "failed to load the sitemap": "failed to load the sitemap";
76
+ readonly "Could not load the sitemap (HTTP {status}).": "Could not load the sitemap (HTTP {status}).";
77
+ };
78
+ //# sourceMappingURL=messages.en.d.ts.map
@@ -0,0 +1,78 @@
1
+ /** English strings are also the host dictionary keys. */
2
+ export const seoMessagesEn = {
3
+ "Site defaults": "Site defaults",
4
+ "Sitemap": "Sitemap",
5
+ "Pages & posts": "Pages & posts",
6
+ "This site publishes a sitemap.": "This site publishes a sitemap.",
7
+ "This site does not publish a sitemap. Turn it on under Site defaults.": "This site does not publish a sitemap. Turn it on under Site defaults.",
8
+ "Loading entries…": "Loading entries…",
9
+ "Entry": "Entry",
10
+ "Choose an entry…": "Choose an entry…",
11
+ "Analysis": "Analysis",
12
+ "Score:": "Score:",
13
+ "No issues.": "No issues.",
14
+ "Loading entry SEO…": "Loading entry SEO…",
15
+ "Per-entry overrides": "Per-entry overrides",
16
+ "Fields show the currently-effective value (author override, or site default, or derived from the entry). Only fields you change here are saved as overrides.": "Fields show the currently-effective value (author override, or site default, or derived from the entry). Only fields you change here are saved as overrides.",
17
+ "Empty a field and save to remove its override — the entry falls back to the site default.": "Empty a field and save to remove its override — the entry falls back to the site default.",
18
+ "Title": "Title",
19
+ "Description": "Description",
20
+ "Canonical URL": "Canonical URL",
21
+ "Noindex": "Noindex",
22
+ "Nofollow": "Nofollow",
23
+ "OG title": "OG title",
24
+ "OG description": "OG description",
25
+ "OG image (media ref or URL)": "OG image (media ref or URL)",
26
+ "Twitter title": "Twitter title",
27
+ "Twitter description": "Twitter description",
28
+ "Twitter image (media ref or URL)": "Twitter image (media ref or URL)",
29
+ "Saving…": "Saving…",
30
+ "Save overrides": "Save overrides",
31
+ "Per-entry SEO": "Per-entry SEO",
32
+ "Search appearance": "Search appearance",
33
+ "Title template (must contain %s)": "Title template (must contain %s)",
34
+ "Default meta description": "Default meta description",
35
+ "Social sharing": "Social sharing",
36
+ "Default Open Graph / Twitter image (media ref)": "Default Open Graph / Twitter image (media ref)",
37
+ "Twitter @site handle": "Twitter @site handle",
38
+ "Crawling": "Crawling",
39
+ "Default noindex": "Default noindex",
40
+ "Default nofollow": "Default nofollow",
41
+ "Sitemap enabled": "Sitemap enabled",
42
+ "Save settings": "Save settings",
43
+ "Cached sitemap": "Cached sitemap",
44
+ "Force-rebuild the cached sitemap now, bypassing the normal cache-hit path.": "Force-rebuild the cached sitemap now, bypassing the normal cache-hit path.",
45
+ "Working…": "Working…",
46
+ "Regenerate sitemap": "Regenerate sitemap",
47
+ "View sitemap": "View sitemap",
48
+ "Loading SEO settings…": "Loading SEO settings…",
49
+ "Marketing": "Marketing",
50
+ "Site-wide defaults for meta titles, descriptions, Open Graph/Twitter cards, and robots directives.": "Site-wide defaults for meta titles, descriptions, Open Graph/Twitter cards, and robots directives.",
51
+ "Choose image": "Choose image",
52
+ "Remove": "Remove",
53
+ "Sitemap · {count} URLs": "Sitemap · {count} URLs",
54
+ "sitemap.xml ↗": "sitemap.xml ↗",
55
+ "Table": "Table",
56
+ "Raw XML": "Raw XML",
57
+ "The sitemap has no URLs yet.": "The sitemap has no URLs yet.",
58
+ "Filter sitemap URLs": "Filter sitemap URLs",
59
+ "Filter by URL…": "Filter by URL…",
60
+ "No URLs match this filter.": "No URLs match this filter.",
61
+ "URL": "URL",
62
+ "Last modified": "Last modified",
63
+ "—": "—",
64
+ "Sitemap is off. Turn on \"Sitemap enabled\" above to publish one.": "Sitemap is off. Turn on \"Sitemap enabled\" above to publish one.",
65
+ "Loading sitemap…": "Loading sitemap…",
66
+ "Close": "Close",
67
+ "failed to load entries": "failed to load entries",
68
+ "failed to load entry SEO data": "failed to load entry SEO data",
69
+ "Saved.": "Saved.",
70
+ "failed to save SEO overrides": "failed to save SEO overrides",
71
+ "failed to load SEO settings": "failed to load SEO settings",
72
+ "failed to save SEO settings": "failed to save SEO settings",
73
+ "Sitemap regeneration accepted.": "Sitemap regeneration accepted.",
74
+ "failed to regenerate sitemap": "failed to regenerate sitemap",
75
+ "failed to load the sitemap": "failed to load the sitemap",
76
+ "Could not load the sitemap (HTTP {status}).": "Could not load the sitemap (HTTP {status})."
77
+ };
78
+ //# sourceMappingURL=messages.en.js.map