@prenta/admin 2.6.1 → 2.8.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 (864) hide show
  1. package/CHANGELOG.md +132 -0
  2. package/design-system/tokens.css +196 -85
  3. package/design-system/tokens.json +310 -85
  4. package/design-system/tokens.scss +163 -44
  5. package/design-system/tokens.tailwind.cjs +64 -1
  6. package/dist/AdminRoot.d.ts.map +1 -1
  7. package/dist/AdminRoot.js +43 -21
  8. package/dist/AdminRoot.js.map +1 -1
  9. package/dist/LoginRoot.d.ts.map +1 -1
  10. package/dist/LoginRoot.js +2 -1
  11. package/dist/LoginRoot.js.map +1 -1
  12. package/dist/__tests__/components/author-avatar.test.js +3 -17
  13. package/dist/__tests__/components/author-avatar.test.js.map +1 -1
  14. package/dist/__tests__/components/notification-bell.test.js +86 -15
  15. package/dist/__tests__/components/notification-bell.test.js.map +1 -1
  16. package/dist/__tests__/components/responsive-tiers.render.test.d.ts +2 -0
  17. package/dist/__tests__/components/responsive-tiers.render.test.d.ts.map +1 -0
  18. package/dist/__tests__/components/responsive-tiers.render.test.js +313 -0
  19. package/dist/__tests__/components/responsive-tiers.render.test.js.map +1 -0
  20. package/dist/__tests__/components/serp-preview.render.test.js +6 -3
  21. package/dist/__tests__/components/serp-preview.render.test.js.map +1 -1
  22. package/dist/__tests__/components/shell-primitives.render.test.d.ts +2 -0
  23. package/dist/__tests__/components/shell-primitives.render.test.d.ts.map +1 -0
  24. package/dist/__tests__/components/shell-primitives.render.test.js +716 -0
  25. package/dist/__tests__/components/shell-primitives.render.test.js.map +1 -0
  26. package/dist/__tests__/components/theme-provider-accent.test.js +49 -7
  27. package/dist/__tests__/components/theme-provider-accent.test.js.map +1 -1
  28. package/dist/__tests__/components/toggle.test.js +10 -3
  29. package/dist/__tests__/components/toggle.test.js.map +1 -1
  30. package/dist/__tests__/components/ui-primitives.test.js +3 -7
  31. package/dist/__tests__/components/ui-primitives.test.js.map +1 -1
  32. package/dist/__tests__/layout/build-nav-items.test.js +1 -1
  33. package/dist/__tests__/layout/build-nav-items.test.js.map +1 -1
  34. package/dist/__tests__/layout/shell-nav.render.test.d.ts +2 -0
  35. package/dist/__tests__/layout/shell-nav.render.test.d.ts.map +1 -0
  36. package/dist/__tests__/layout/shell-nav.render.test.js +736 -0
  37. package/dist/__tests__/layout/shell-nav.render.test.js.map +1 -0
  38. package/dist/__tests__/layout/sidebar-forms-submenu.render.test.js +8 -4
  39. package/dist/__tests__/layout/sidebar-forms-submenu.render.test.js.map +1 -1
  40. package/dist/__tests__/layout/sidebar-groups.render.test.d.ts +2 -0
  41. package/dist/__tests__/layout/sidebar-groups.render.test.d.ts.map +1 -0
  42. package/dist/__tests__/layout/sidebar-groups.render.test.js +56 -0
  43. package/dist/__tests__/layout/sidebar-groups.render.test.js.map +1 -0
  44. package/dist/__tests__/layout/sidebar-menus.render.test.d.ts +2 -0
  45. package/dist/__tests__/layout/sidebar-menus.render.test.d.ts.map +1 -0
  46. package/dist/__tests__/layout/sidebar-menus.render.test.js +82 -0
  47. package/dist/__tests__/layout/sidebar-menus.render.test.js.map +1 -0
  48. package/dist/__tests__/layout/sidebar-plugin-nav.test.js +1 -1
  49. package/dist/__tests__/layout/sidebar-plugin-nav.test.js.map +1 -1
  50. package/dist/__tests__/layout/sidebar-posts.test.js +48 -38
  51. package/dist/__tests__/layout/sidebar-posts.test.js.map +1 -1
  52. package/dist/__tests__/layout/sidebar-submenu.render.test.js +26 -10
  53. package/dist/__tests__/layout/sidebar-submenu.render.test.js.map +1 -1
  54. package/dist/__tests__/layout/topbar.render.test.d.ts +2 -0
  55. package/dist/__tests__/layout/topbar.render.test.d.ts.map +1 -0
  56. package/dist/__tests__/layout/topbar.render.test.js +406 -0
  57. package/dist/__tests__/layout/topbar.render.test.js.map +1 -0
  58. package/dist/__tests__/lib/api.test.js +2 -0
  59. package/dist/__tests__/lib/api.test.js.map +1 -1
  60. package/dist/__tests__/lib/batch-wizard.test.d.ts +2 -0
  61. package/dist/__tests__/lib/batch-wizard.test.d.ts.map +1 -0
  62. package/dist/__tests__/lib/batch-wizard.test.js +144 -0
  63. package/dist/__tests__/lib/batch-wizard.test.js.map +1 -0
  64. package/dist/__tests__/lib/job-drawer.test.d.ts +2 -0
  65. package/dist/__tests__/lib/job-drawer.test.d.ts.map +1 -0
  66. package/dist/__tests__/lib/job-drawer.test.js +395 -0
  67. package/dist/__tests__/lib/job-drawer.test.js.map +1 -0
  68. package/dist/__tests__/lib/job-view.test.d.ts +2 -0
  69. package/dist/__tests__/lib/job-view.test.d.ts.map +1 -0
  70. package/dist/__tests__/lib/job-view.test.js +484 -0
  71. package/dist/__tests__/lib/job-view.test.js.map +1 -0
  72. package/dist/__tests__/lib/jobs-service.test.d.ts +2 -0
  73. package/dist/__tests__/lib/jobs-service.test.d.ts.map +1 -0
  74. package/dist/__tests__/lib/jobs-service.test.js +142 -0
  75. package/dist/__tests__/lib/jobs-service.test.js.map +1 -0
  76. package/dist/__tests__/router/admin-route-order.test.d.ts +2 -0
  77. package/dist/__tests__/router/admin-route-order.test.d.ts.map +1 -0
  78. package/dist/__tests__/router/admin-route-order.test.js +36 -0
  79. package/dist/__tests__/router/admin-route-order.test.js.map +1 -0
  80. package/dist/__tests__/styles/ai-gradient-contrast.test.d.ts +2 -0
  81. package/dist/__tests__/styles/ai-gradient-contrast.test.d.ts.map +1 -0
  82. package/dist/__tests__/styles/ai-gradient-contrast.test.js +110 -0
  83. package/dist/__tests__/styles/ai-gradient-contrast.test.js.map +1 -0
  84. package/dist/__tests__/styles/breakpoint-order.test.d.ts +2 -0
  85. package/dist/__tests__/styles/breakpoint-order.test.d.ts.map +1 -0
  86. package/dist/__tests__/styles/breakpoint-order.test.js +52 -0
  87. package/dist/__tests__/styles/breakpoint-order.test.js.map +1 -0
  88. package/dist/__tests__/styles/responsive-layer.test.js +303 -12
  89. package/dist/__tests__/styles/responsive-layer.test.js.map +1 -1
  90. package/dist/__tests__/styles/tailwind-preset.test.d.ts +2 -0
  91. package/dist/__tests__/styles/tailwind-preset.test.d.ts.map +1 -0
  92. package/dist/__tests__/styles/tailwind-preset.test.js +147 -0
  93. package/dist/__tests__/styles/tailwind-preset.test.js.map +1 -0
  94. package/dist/__tests__/styles/theme-token-scope.test.js +9 -3
  95. package/dist/__tests__/styles/theme-token-scope.test.js.map +1 -1
  96. package/dist/__tests__/styles/tiers.test.d.ts +2 -0
  97. package/dist/__tests__/styles/tiers.test.d.ts.map +1 -0
  98. package/dist/__tests__/styles/tiers.test.js +121 -0
  99. package/dist/__tests__/styles/tiers.test.js.map +1 -0
  100. package/dist/__tests__/styles/tokens-drift.test.js +57 -6
  101. package/dist/__tests__/styles/tokens-drift.test.js.map +1 -1
  102. package/dist/__tests__/views/admin-lazy-route.render.test.js +27 -1
  103. package/dist/__tests__/views/admin-lazy-route.render.test.js.map +1 -1
  104. package/dist/__tests__/views/ai-settings.render.test.js +4 -4
  105. package/dist/__tests__/views/appearance-chrome.render.test.d.ts +2 -0
  106. package/dist/__tests__/views/appearance-chrome.render.test.d.ts.map +1 -0
  107. package/dist/__tests__/views/appearance-chrome.render.test.js +688 -0
  108. package/dist/__tests__/views/appearance-chrome.render.test.js.map +1 -0
  109. package/dist/__tests__/views/appearance-menus-route.render.test.d.ts +2 -0
  110. package/dist/__tests__/views/appearance-menus-route.render.test.d.ts.map +1 -0
  111. package/dist/__tests__/views/appearance-menus-route.render.test.js +50 -0
  112. package/dist/__tests__/views/appearance-menus-route.render.test.js.map +1 -0
  113. package/dist/__tests__/views/appearance-settings.render.test.js +8 -6
  114. package/dist/__tests__/views/appearance-settings.render.test.js.map +1 -1
  115. package/dist/__tests__/views/appearance-theme-provider.render.test.d.ts +2 -0
  116. package/dist/__tests__/views/appearance-theme-provider.render.test.d.ts.map +1 -0
  117. package/dist/__tests__/views/appearance-theme-provider.render.test.js +286 -0
  118. package/dist/__tests__/views/appearance-theme-provider.render.test.js.map +1 -0
  119. package/dist/__tests__/views/dashboard.test.js +37 -0
  120. package/dist/__tests__/views/dashboard.test.js.map +1 -1
  121. package/dist/__tests__/views/document-edit-navigation.render.test.d.ts +2 -0
  122. package/dist/__tests__/views/document-edit-navigation.render.test.d.ts.map +1 -0
  123. package/dist/__tests__/views/document-edit-navigation.render.test.js +101 -0
  124. package/dist/__tests__/views/document-edit-navigation.render.test.js.map +1 -0
  125. package/dist/__tests__/views/document-edit-routes.render.test.d.ts +2 -0
  126. package/dist/__tests__/views/document-edit-routes.render.test.d.ts.map +1 -0
  127. package/dist/__tests__/views/document-edit-routes.render.test.js +113 -0
  128. package/dist/__tests__/views/document-edit-routes.render.test.js.map +1 -0
  129. package/dist/__tests__/views/email-settings.render.test.js +2 -2
  130. package/dist/__tests__/views/form-entries.render.test.js +15 -0
  131. package/dist/__tests__/views/form-entries.render.test.js.map +1 -1
  132. package/dist/__tests__/views/form-submissions.render.test.js +18 -0
  133. package/dist/__tests__/views/form-submissions.render.test.js.map +1 -1
  134. package/dist/__tests__/views/forms-list.render.test.js +12 -0
  135. package/dist/__tests__/views/forms-list.render.test.js.map +1 -1
  136. package/dist/__tests__/views/general-settings.render.test.js +26 -10
  137. package/dist/__tests__/views/general-settings.render.test.js.map +1 -1
  138. package/dist/__tests__/views/header-footer-form.test.d.ts +2 -0
  139. package/dist/__tests__/views/header-footer-form.test.d.ts.map +1 -0
  140. package/dist/__tests__/views/header-footer-form.test.js +266 -0
  141. package/dist/__tests__/views/header-footer-form.test.js.map +1 -0
  142. package/dist/__tests__/views/jobs-drawer.render.test.d.ts +2 -0
  143. package/dist/__tests__/views/jobs-drawer.render.test.d.ts.map +1 -0
  144. package/dist/__tests__/views/jobs-drawer.render.test.js +1348 -0
  145. package/dist/__tests__/views/jobs-drawer.render.test.js.map +1 -0
  146. package/dist/__tests__/views/jobs-list.render.test.d.ts +2 -0
  147. package/dist/__tests__/views/jobs-list.render.test.d.ts.map +1 -0
  148. package/dist/__tests__/views/jobs-list.render.test.js +697 -0
  149. package/dist/__tests__/views/jobs-list.render.test.js.map +1 -0
  150. package/dist/__tests__/views/jobs-wizard.render.test.d.ts +2 -0
  151. package/dist/__tests__/views/jobs-wizard.render.test.d.ts.map +1 -0
  152. package/dist/__tests__/views/jobs-wizard.render.test.js +588 -0
  153. package/dist/__tests__/views/jobs-wizard.render.test.js.map +1 -0
  154. package/dist/__tests__/views/kpi-grid.test.d.ts +2 -0
  155. package/dist/__tests__/views/kpi-grid.test.d.ts.map +1 -0
  156. package/dist/__tests__/views/kpi-grid.test.js +26 -0
  157. package/dist/__tests__/views/kpi-grid.test.js.map +1 -0
  158. package/dist/__tests__/views/post-section-editor.test.js +3 -1
  159. package/dist/__tests__/views/post-section-editor.test.js.map +1 -1
  160. package/dist/__tests__/views/script-tags.render.test.js +25 -0
  161. package/dist/__tests__/views/script-tags.render.test.js.map +1 -1
  162. package/dist/__tests__/views/security-settings.render.test.js +9 -8
  163. package/dist/__tests__/views/security-settings.render.test.js.map +1 -1
  164. package/dist/__tests__/views/seo-settings.render.test.js +7 -7
  165. package/dist/__tests__/views/seo-settings.render.test.js.map +1 -1
  166. package/dist/__tests__/views/settings-save-bar.render.test.d.ts +2 -0
  167. package/dist/__tests__/views/settings-save-bar.render.test.d.ts.map +1 -0
  168. package/dist/__tests__/views/settings-save-bar.render.test.js +68 -0
  169. package/dist/__tests__/views/settings-save-bar.render.test.js.map +1 -0
  170. package/dist/__tests__/views/settings-save-footer.render.test.js +23 -15
  171. package/dist/__tests__/views/settings-save-footer.render.test.js.map +1 -1
  172. package/dist/__tests__/views/settings-tabs.render.test.d.ts +2 -0
  173. package/dist/__tests__/views/settings-tabs.render.test.d.ts.map +1 -0
  174. package/dist/__tests__/views/settings-tabs.render.test.js +319 -0
  175. package/dist/__tests__/views/settings-tabs.render.test.js.map +1 -0
  176. package/dist/__tests__/views/updates-tab.render.test.js +4 -3
  177. package/dist/__tests__/views/updates-tab.render.test.js.map +1 -1
  178. package/dist/components/Breadcrumbs.d.ts +8 -1
  179. package/dist/components/Breadcrumbs.d.ts.map +1 -1
  180. package/dist/components/Breadcrumbs.js +6 -0
  181. package/dist/components/Breadcrumbs.js.map +1 -1
  182. package/dist/components/CommandPalette.d.ts.map +1 -1
  183. package/dist/components/CommandPalette.js +40 -4
  184. package/dist/components/CommandPalette.js.map +1 -1
  185. package/dist/components/LocaleSwitcher.d.ts.map +1 -1
  186. package/dist/components/LocaleSwitcher.js +1 -1
  187. package/dist/components/LocaleSwitcher.js.map +1 -1
  188. package/dist/components/NotificationBell.d.ts.map +1 -1
  189. package/dist/components/NotificationBell.js +44 -3
  190. package/dist/components/NotificationBell.js.map +1 -1
  191. package/dist/components/OfflineStatus.js +1 -1
  192. package/dist/components/OfflineStatus.js.map +1 -1
  193. package/dist/components/PresenceIndicator.d.ts.map +1 -1
  194. package/dist/components/PresenceIndicator.js +2 -1
  195. package/dist/components/PresenceIndicator.js.map +1 -1
  196. package/dist/components/ReflowMeter.js +2 -2
  197. package/dist/components/ReflowMeter.js.map +1 -1
  198. package/dist/components/SEOPanel.js +2 -2
  199. package/dist/components/SEOPanel.js.map +1 -1
  200. package/dist/components/ThemeProvider.d.ts +24 -4
  201. package/dist/components/ThemeProvider.d.ts.map +1 -1
  202. package/dist/components/ThemeProvider.js +80 -22
  203. package/dist/components/ThemeProvider.js.map +1 -1
  204. package/dist/components/TipTapEditor.d.ts.map +1 -1
  205. package/dist/components/TipTapEditor.js +3 -4
  206. package/dist/components/TipTapEditor.js.map +1 -1
  207. package/dist/components/forms/EmbedPanel.js +1 -1
  208. package/dist/components/forms/EmbedPanel.js.map +1 -1
  209. package/dist/components/forms/FormEntryDetailPane.js +6 -1
  210. package/dist/components/forms/FormEntryDetailPane.js.map +1 -1
  211. package/dist/components/forms/ShortcodeGlossary.d.ts.map +1 -1
  212. package/dist/components/forms/ShortcodeGlossary.js +6 -1
  213. package/dist/components/forms/ShortcodeGlossary.js.map +1 -1
  214. package/dist/components/forms/primitives.d.ts +15 -5
  215. package/dist/components/forms/primitives.d.ts.map +1 -1
  216. package/dist/components/forms/primitives.js +11 -11
  217. package/dist/components/forms/primitives.js.map +1 -1
  218. package/dist/components/pages/tag-badges.d.ts +2 -1
  219. package/dist/components/pages/tag-badges.d.ts.map +1 -1
  220. package/dist/components/pages/tag-badges.js +4 -3
  221. package/dist/components/pages/tag-badges.js.map +1 -1
  222. package/dist/components/seo/PageAuditPanel.js +2 -2
  223. package/dist/components/seo/PageAuditPanel.js.map +1 -1
  224. package/dist/components/seo/SerpPreview.d.ts +4 -4
  225. package/dist/components/seo/SerpPreview.js +1 -1
  226. package/dist/components/seo/SerpPreview.js.map +1 -1
  227. package/dist/components/seo/primitives.js +2 -2
  228. package/dist/components/seo/primitives.js.map +1 -1
  229. package/dist/components/ui/AuthorAvatar.d.ts +4 -4
  230. package/dist/components/ui/AuthorAvatar.d.ts.map +1 -1
  231. package/dist/components/ui/AuthorAvatar.js +11 -10
  232. package/dist/components/ui/AuthorAvatar.js.map +1 -1
  233. package/dist/components/ui/Badge.d.ts +1 -1
  234. package/dist/components/ui/Badge.js +1 -1
  235. package/dist/components/ui/Badge.js.map +1 -1
  236. package/dist/components/ui/Breadcrumb.d.ts +27 -0
  237. package/dist/components/ui/Breadcrumb.d.ts.map +1 -0
  238. package/dist/components/ui/Breadcrumb.js +41 -0
  239. package/dist/components/ui/Breadcrumb.js.map +1 -0
  240. package/dist/components/ui/Button.d.ts +2 -2
  241. package/dist/components/ui/Button.d.ts.map +1 -1
  242. package/dist/components/ui/Button.js +31 -16
  243. package/dist/components/ui/Button.js.map +1 -1
  244. package/dist/components/ui/Card.d.ts +8 -4
  245. package/dist/components/ui/Card.d.ts.map +1 -1
  246. package/dist/components/ui/Card.js +21 -13
  247. package/dist/components/ui/Card.js.map +1 -1
  248. package/dist/components/ui/CardListControls.d.ts +34 -0
  249. package/dist/components/ui/CardListControls.d.ts.map +1 -0
  250. package/dist/components/ui/CardListControls.js +25 -0
  251. package/dist/components/ui/CardListControls.js.map +1 -0
  252. package/dist/components/ui/CountChip.d.ts +20 -0
  253. package/dist/components/ui/CountChip.d.ts.map +1 -0
  254. package/dist/components/ui/CountChip.js +48 -0
  255. package/dist/components/ui/CountChip.js.map +1 -0
  256. package/dist/components/ui/FilterPill.d.ts +2 -1
  257. package/dist/components/ui/FilterPill.d.ts.map +1 -1
  258. package/dist/components/ui/FilterPill.js +3 -2
  259. package/dist/components/ui/FilterPill.js.map +1 -1
  260. package/dist/components/ui/Input.d.ts +1 -1
  261. package/dist/components/ui/InspectorPane.d.ts +1 -1
  262. package/dist/components/ui/InspectorPane.d.ts.map +1 -1
  263. package/dist/components/ui/InspectorPane.js +15 -4
  264. package/dist/components/ui/InspectorPane.js.map +1 -1
  265. package/dist/components/ui/Modal.d.ts.map +1 -1
  266. package/dist/components/ui/Modal.js +10 -2
  267. package/dist/components/ui/Modal.js.map +1 -1
  268. package/dist/components/ui/PageHeader.d.ts +28 -0
  269. package/dist/components/ui/PageHeader.d.ts.map +1 -0
  270. package/dist/components/ui/PageHeader.js +18 -0
  271. package/dist/components/ui/PageHeader.js.map +1 -0
  272. package/dist/components/ui/RowActions.d.ts +5 -0
  273. package/dist/components/ui/RowActions.d.ts.map +1 -1
  274. package/dist/components/ui/RowActions.js +7 -2
  275. package/dist/components/ui/RowActions.js.map +1 -1
  276. package/dist/components/ui/Segmented.d.ts +21 -0
  277. package/dist/components/ui/Segmented.d.ts.map +1 -0
  278. package/dist/components/ui/Segmented.js +41 -0
  279. package/dist/components/ui/Segmented.js.map +1 -0
  280. package/dist/components/ui/Toaster.d.ts +12 -0
  281. package/dist/components/ui/Toaster.d.ts.map +1 -0
  282. package/dist/components/ui/Toaster.js +103 -0
  283. package/dist/components/ui/Toaster.js.map +1 -0
  284. package/dist/components/ui/Toggle.d.ts +4 -3
  285. package/dist/components/ui/Toggle.d.ts.map +1 -1
  286. package/dist/components/ui/Toggle.js +16 -12
  287. package/dist/components/ui/Toggle.js.map +1 -1
  288. package/dist/components/ui/UnderlineTabs.d.ts +56 -0
  289. package/dist/components/ui/UnderlineTabs.d.ts.map +1 -0
  290. package/dist/components/ui/UnderlineTabs.js +205 -0
  291. package/dist/components/ui/UnderlineTabs.js.map +1 -0
  292. package/dist/components/ui/UnsavedBar.d.ts +25 -0
  293. package/dist/components/ui/UnsavedBar.d.ts.map +1 -0
  294. package/dist/components/ui/UnsavedBar.js +22 -0
  295. package/dist/components/ui/UnsavedBar.js.map +1 -0
  296. package/dist/components/ui/admin-links.d.ts +11 -0
  297. package/dist/components/ui/admin-links.d.ts.map +1 -0
  298. package/dist/components/ui/admin-links.js +10 -0
  299. package/dist/components/ui/admin-links.js.map +1 -0
  300. package/dist/components/ui/card-table.d.ts +43 -0
  301. package/dist/components/ui/card-table.d.ts.map +1 -0
  302. package/dist/components/ui/card-table.js +31 -0
  303. package/dist/components/ui/card-table.js.map +1 -0
  304. package/dist/components/virtual-window.d.ts +7 -0
  305. package/dist/components/virtual-window.d.ts.map +1 -1
  306. package/dist/components/virtual-window.js +5 -2
  307. package/dist/components/virtual-window.js.map +1 -1
  308. package/dist/fields/RelationshipField.js +1 -1
  309. package/dist/fields/RelationshipField.js.map +1 -1
  310. package/dist/files/dm-mono-latin-400-normal.woff +0 -0
  311. package/dist/files/dm-mono-latin-400-normal.woff2 +0 -0
  312. package/dist/files/dm-mono-latin-500-normal.woff +0 -0
  313. package/dist/files/dm-mono-latin-500-normal.woff2 +0 -0
  314. package/dist/files/dm-mono-latin-ext-400-normal.woff +0 -0
  315. package/dist/files/dm-mono-latin-ext-400-normal.woff2 +0 -0
  316. package/dist/files/dm-mono-latin-ext-500-normal.woff +0 -0
  317. package/dist/files/dm-mono-latin-ext-500-normal.woff2 +0 -0
  318. package/dist/files/dm-sans-latin-400-normal.woff +0 -0
  319. package/dist/files/dm-sans-latin-400-normal.woff2 +0 -0
  320. package/dist/files/dm-sans-latin-500-normal.woff +0 -0
  321. package/dist/files/dm-sans-latin-500-normal.woff2 +0 -0
  322. package/dist/files/dm-sans-latin-600-normal.woff +0 -0
  323. package/dist/files/dm-sans-latin-600-normal.woff2 +0 -0
  324. package/dist/files/dm-sans-latin-700-normal.woff +0 -0
  325. package/dist/files/dm-sans-latin-700-normal.woff2 +0 -0
  326. package/dist/files/dm-sans-latin-ext-400-normal.woff +0 -0
  327. package/dist/files/dm-sans-latin-ext-400-normal.woff2 +0 -0
  328. package/dist/files/dm-sans-latin-ext-500-normal.woff +0 -0
  329. package/dist/files/dm-sans-latin-ext-500-normal.woff2 +0 -0
  330. package/dist/files/dm-sans-latin-ext-600-normal.woff +0 -0
  331. package/dist/files/dm-sans-latin-ext-600-normal.woff2 +0 -0
  332. package/dist/files/dm-sans-latin-ext-700-normal.woff +0 -0
  333. package/dist/files/dm-sans-latin-ext-700-normal.woff2 +0 -0
  334. package/dist/hooks/useAppearanceBootstrap.d.ts.map +1 -1
  335. package/dist/hooks/useAppearanceBootstrap.js +9 -3
  336. package/dist/hooks/useAppearanceBootstrap.js.map +1 -1
  337. package/dist/index.d.ts +15 -0
  338. package/dist/index.d.ts.map +1 -1
  339. package/dist/index.js +8 -0
  340. package/dist/index.js.map +1 -1
  341. package/dist/layout/Header.d.ts +14 -5
  342. package/dist/layout/Header.d.ts.map +1 -1
  343. package/dist/layout/Header.js +78 -13
  344. package/dist/layout/Header.js.map +1 -1
  345. package/dist/layout/Layout.d.ts +5 -3
  346. package/dist/layout/Layout.d.ts.map +1 -1
  347. package/dist/layout/Layout.js +45 -54
  348. package/dist/layout/Layout.js.map +1 -1
  349. package/dist/layout/MobileTabBar.d.ts +20 -0
  350. package/dist/layout/MobileTabBar.d.ts.map +1 -0
  351. package/dist/layout/MobileTabBar.js +29 -0
  352. package/dist/layout/MobileTabBar.js.map +1 -0
  353. package/dist/layout/Sidebar.d.ts +8 -26
  354. package/dist/layout/Sidebar.d.ts.map +1 -1
  355. package/dist/layout/Sidebar.js +309 -345
  356. package/dist/layout/Sidebar.js.map +1 -1
  357. package/dist/layout/nav-config.d.ts +101 -0
  358. package/dist/layout/nav-config.d.ts.map +1 -0
  359. package/dist/layout/nav-config.js +297 -0
  360. package/dist/layout/nav-config.js.map +1 -0
  361. package/dist/layout/primitives/AdminShell.d.ts +10 -2
  362. package/dist/layout/primitives/AdminShell.d.ts.map +1 -1
  363. package/dist/layout/primitives/AdminShell.js +114 -6
  364. package/dist/layout/primitives/AdminShell.js.map +1 -1
  365. package/dist/layout/topbar-classes.d.ts +8 -0
  366. package/dist/layout/topbar-classes.d.ts.map +1 -0
  367. package/dist/layout/topbar-classes.js +8 -0
  368. package/dist/layout/topbar-classes.js.map +1 -0
  369. package/dist/layout/use-nav-items.d.ts +10 -0
  370. package/dist/layout/use-nav-items.d.ts.map +1 -0
  371. package/dist/layout/use-nav-items.js +39 -0
  372. package/dist/layout/use-nav-items.js.map +1 -0
  373. package/dist/lib/api.d.ts +8 -0
  374. package/dist/lib/api.d.ts.map +1 -1
  375. package/dist/lib/api.js +8 -1
  376. package/dist/lib/api.js.map +1 -1
  377. package/dist/lib/appearance-api.d.ts +3 -1
  378. package/dist/lib/appearance-api.d.ts.map +1 -1
  379. package/dist/lib/appearance-api.js +1 -0
  380. package/dist/lib/appearance-api.js.map +1 -1
  381. package/dist/lib/batch-wizard.d.ts +84 -0
  382. package/dist/lib/batch-wizard.d.ts.map +1 -0
  383. package/dist/lib/batch-wizard.js +122 -0
  384. package/dist/lib/batch-wizard.js.map +1 -0
  385. package/dist/lib/chrome-service.d.ts +69 -0
  386. package/dist/lib/chrome-service.d.ts.map +1 -0
  387. package/dist/lib/chrome-service.js +108 -0
  388. package/dist/lib/chrome-service.js.map +1 -0
  389. package/dist/lib/job-drawer.d.ts +128 -0
  390. package/dist/lib/job-drawer.d.ts.map +1 -0
  391. package/dist/lib/job-drawer.js +351 -0
  392. package/dist/lib/job-drawer.js.map +1 -0
  393. package/dist/lib/job-view.d.ts +230 -0
  394. package/dist/lib/job-view.d.ts.map +1 -0
  395. package/dist/lib/job-view.js +419 -0
  396. package/dist/lib/job-view.js.map +1 -0
  397. package/dist/lib/jobs-service.d.ts +152 -0
  398. package/dist/lib/jobs-service.d.ts.map +1 -0
  399. package/dist/lib/jobs-service.js +220 -0
  400. package/dist/lib/jobs-service.js.map +1 -0
  401. package/dist/lib/sheet-focus.d.ts +24 -0
  402. package/dist/lib/sheet-focus.d.ts.map +1 -0
  403. package/dist/lib/sheet-focus.js +61 -0
  404. package/dist/lib/sheet-focus.js.map +1 -0
  405. package/dist/lib/tiers.d.ts +30 -0
  406. package/dist/lib/tiers.d.ts.map +1 -0
  407. package/dist/lib/tiers.js +43 -0
  408. package/dist/lib/tiers.js.map +1 -0
  409. package/dist/prenta-admin.css +1 -1
  410. package/dist/router/admin-routes.d.ts.map +1 -1
  411. package/dist/router/admin-routes.js +8 -0
  412. package/dist/router/admin-routes.js.map +1 -1
  413. package/dist/router/index.d.ts +5 -1
  414. package/dist/router/index.d.ts.map +1 -1
  415. package/dist/router/index.js +7 -0
  416. package/dist/router/index.js.map +1 -1
  417. package/dist/views/ApiKeys.js +2 -2
  418. package/dist/views/ApiKeys.js.map +1 -1
  419. package/dist/views/AppearanceChrome.d.ts +24 -0
  420. package/dist/views/AppearanceChrome.d.ts.map +1 -0
  421. package/dist/views/AppearanceChrome.js +461 -0
  422. package/dist/views/AppearanceChrome.js.map +1 -0
  423. package/dist/views/CollectionList.d.ts.map +1 -1
  424. package/dist/views/CollectionList.js +73 -53
  425. package/dist/views/CollectionList.js.map +1 -1
  426. package/dist/views/Dashboard.d.ts.map +1 -1
  427. package/dist/views/Dashboard.js +14 -8
  428. package/dist/views/Dashboard.js.map +1 -1
  429. package/dist/views/DocumentEdit.d.ts +6 -1
  430. package/dist/views/DocumentEdit.d.ts.map +1 -1
  431. package/dist/views/DocumentEdit.js +44 -8
  432. package/dist/views/DocumentEdit.js.map +1 -1
  433. package/dist/views/FormDeliveries.d.ts.map +1 -1
  434. package/dist/views/FormDeliveries.js +7 -1
  435. package/dist/views/FormDeliveries.js.map +1 -1
  436. package/dist/views/FormEntries.d.ts.map +1 -1
  437. package/dist/views/FormEntries.js +11 -2
  438. package/dist/views/FormEntries.js.map +1 -1
  439. package/dist/views/FormSubmissions.d.ts +1 -1
  440. package/dist/views/FormSubmissions.d.ts.map +1 -1
  441. package/dist/views/FormSubmissions.js +15 -4
  442. package/dist/views/FormSubmissions.js.map +1 -1
  443. package/dist/views/Forms.d.ts.map +1 -1
  444. package/dist/views/Forms.js +6 -4
  445. package/dist/views/Forms.js.map +1 -1
  446. package/dist/views/FormsSettings.d.ts +2 -0
  447. package/dist/views/FormsSettings.d.ts.map +1 -0
  448. package/dist/views/FormsSettings.js +37 -0
  449. package/dist/views/FormsSettings.js.map +1 -0
  450. package/dist/views/Jobs/BusyButton.d.ts +15 -0
  451. package/dist/views/Jobs/BusyButton.d.ts.map +1 -0
  452. package/dist/views/Jobs/BusyButton.js +26 -0
  453. package/dist/views/Jobs/BusyButton.js.map +1 -0
  454. package/dist/views/Jobs/CancelJobDialog.d.ts +27 -0
  455. package/dist/views/Jobs/CancelJobDialog.d.ts.map +1 -0
  456. package/dist/views/Jobs/CancelJobDialog.js +76 -0
  457. package/dist/views/Jobs/CancelJobDialog.js.map +1 -0
  458. package/dist/views/Jobs/DrawerActivity.d.ts +16 -0
  459. package/dist/views/Jobs/DrawerActivity.d.ts.map +1 -0
  460. package/dist/views/Jobs/DrawerActivity.js +59 -0
  461. package/dist/views/Jobs/DrawerActivity.js.map +1 -0
  462. package/dist/views/Jobs/DrawerOverview.d.ts +28 -0
  463. package/dist/views/Jobs/DrawerOverview.d.ts.map +1 -0
  464. package/dist/views/Jobs/DrawerOverview.js +32 -0
  465. package/dist/views/Jobs/DrawerOverview.js.map +1 -0
  466. package/dist/views/Jobs/DrawerResults.d.ts +25 -0
  467. package/dist/views/Jobs/DrawerResults.d.ts.map +1 -0
  468. package/dist/views/Jobs/DrawerResults.js +50 -0
  469. package/dist/views/Jobs/DrawerResults.js.map +1 -0
  470. package/dist/views/Jobs/DrawerReview.d.ts +51 -0
  471. package/dist/views/Jobs/DrawerReview.d.ts.map +1 -0
  472. package/dist/views/Jobs/DrawerReview.js +110 -0
  473. package/dist/views/Jobs/DrawerReview.js.map +1 -0
  474. package/dist/views/Jobs/JobDrawer.d.ts +51 -0
  475. package/dist/views/Jobs/JobDrawer.d.ts.map +1 -0
  476. package/dist/views/Jobs/JobDrawer.js +378 -0
  477. package/dist/views/Jobs/JobDrawer.js.map +1 -0
  478. package/dist/views/Jobs/JobsTable.d.ts +21 -0
  479. package/dist/views/Jobs/JobsTable.d.ts.map +1 -0
  480. package/dist/views/Jobs/JobsTable.js +81 -0
  481. package/dist/views/Jobs/JobsTable.js.map +1 -0
  482. package/dist/views/Jobs/NewBatchJob.d.ts +34 -0
  483. package/dist/views/Jobs/NewBatchJob.d.ts.map +1 -0
  484. package/dist/views/Jobs/NewBatchJob.js +282 -0
  485. package/dist/views/Jobs/NewBatchJob.js.map +1 -0
  486. package/dist/views/Jobs/WorkerStrip.d.ts +24 -0
  487. package/dist/views/Jobs/WorkerStrip.d.ts.map +1 -0
  488. package/dist/views/Jobs/WorkerStrip.js +63 -0
  489. package/dist/views/Jobs/WorkerStrip.js.map +1 -0
  490. package/dist/views/Jobs/atoms.d.ts +19 -0
  491. package/dist/views/Jobs/atoms.d.ts.map +1 -0
  492. package/dist/views/Jobs/atoms.js +52 -0
  493. package/dist/views/Jobs/atoms.js.map +1 -0
  494. package/dist/views/Jobs/focus.d.ts +29 -0
  495. package/dist/views/Jobs/focus.d.ts.map +1 -0
  496. package/dist/views/Jobs/focus.js +64 -0
  497. package/dist/views/Jobs/focus.js.map +1 -0
  498. package/dist/views/Jobs/icons.d.ts +22 -0
  499. package/dist/views/Jobs/icons.d.ts.map +1 -0
  500. package/dist/views/Jobs/icons.js +23 -0
  501. package/dist/views/Jobs/icons.js.map +1 -0
  502. package/dist/views/Jobs/useJobDetail.d.ts +21 -0
  503. package/dist/views/Jobs/useJobDetail.d.ts.map +1 -0
  504. package/dist/views/Jobs/useJobDetail.js +39 -0
  505. package/dist/views/Jobs/useJobDetail.js.map +1 -0
  506. package/dist/views/Jobs/useJobsFeed.d.ts +35 -0
  507. package/dist/views/Jobs/useJobsFeed.d.ts.map +1 -0
  508. package/dist/views/Jobs/useJobsFeed.js +231 -0
  509. package/dist/views/Jobs/useJobsFeed.js.map +1 -0
  510. package/dist/views/Jobs/useReviewItems.d.ts +39 -0
  511. package/dist/views/Jobs/useReviewItems.d.ts.map +1 -0
  512. package/dist/views/Jobs/useReviewItems.js +140 -0
  513. package/dist/views/Jobs/useReviewItems.js.map +1 -0
  514. package/dist/views/Jobs.d.ts +19 -1
  515. package/dist/views/Jobs.d.ts.map +1 -1
  516. package/dist/views/Jobs.js +204 -35
  517. package/dist/views/Jobs.js.map +1 -1
  518. package/dist/views/MediaBrowser.d.ts.map +1 -1
  519. package/dist/views/MediaBrowser.js +37 -9
  520. package/dist/views/MediaBrowser.js.map +1 -1
  521. package/dist/views/Pages/PagesListView.d.ts +1 -1
  522. package/dist/views/Pages/PagesListView.d.ts.map +1 -1
  523. package/dist/views/Pages/PagesListView.js +34 -5
  524. package/dist/views/Pages/PagesListView.js.map +1 -1
  525. package/dist/views/Posts/NewPostTypeInstructions.d.ts.map +1 -1
  526. package/dist/views/Posts/NewPostTypeInstructions.js +12 -2
  527. package/dist/views/Posts/NewPostTypeInstructions.js.map +1 -1
  528. package/dist/views/Posts/PostTypesView.d.ts.map +1 -1
  529. package/dist/views/Posts/PostTypesView.js +10 -1
  530. package/dist/views/Posts/PostTypesView.js.map +1 -1
  531. package/dist/views/Posts/PostsListView.d.ts +1 -2
  532. package/dist/views/Posts/PostsListView.d.ts.map +1 -1
  533. package/dist/views/Posts/PostsListView.js +31 -3
  534. package/dist/views/Posts/PostsListView.js.map +1 -1
  535. package/dist/views/SEO.d.ts.map +1 -1
  536. package/dist/views/SEO.js +3 -3
  537. package/dist/views/SEO.js.map +1 -1
  538. package/dist/views/ScriptTags.d.ts.map +1 -1
  539. package/dist/views/ScriptTags.js +20 -15
  540. package/dist/views/ScriptTags.js.map +1 -1
  541. package/dist/views/Settings.d.ts.map +1 -1
  542. package/dist/views/Settings.js +115 -51
  543. package/dist/views/Settings.js.map +1 -1
  544. package/dist/views/SpamFolder.d.ts +2 -0
  545. package/dist/views/SpamFolder.d.ts.map +1 -0
  546. package/dist/views/SpamFolder.js +14 -0
  547. package/dist/views/SpamFolder.js.map +1 -0
  548. package/dist/views/Trash.d.ts +6 -1
  549. package/dist/views/Trash.d.ts.map +1 -1
  550. package/dist/views/Trash.js +7 -2
  551. package/dist/views/Trash.js.map +1 -1
  552. package/dist/views/Users.js +2 -2
  553. package/dist/views/Users.js.map +1 -1
  554. package/dist/views/WidgetsPlaceholder.d.ts +2 -0
  555. package/dist/views/WidgetsPlaceholder.d.ts.map +1 -0
  556. package/dist/views/WidgetsPlaceholder.js +15 -0
  557. package/dist/views/WidgetsPlaceholder.js.map +1 -0
  558. package/dist/views/dashboard/kpi-grid.d.ts +18 -0
  559. package/dist/views/dashboard/kpi-grid.d.ts.map +1 -0
  560. package/dist/views/dashboard/kpi-grid.js +36 -0
  561. package/dist/views/dashboard/kpi-grid.js.map +1 -0
  562. package/dist/views/header-footer/AnnouncementTab.d.ts +15 -0
  563. package/dist/views/header-footer/AnnouncementTab.d.ts.map +1 -0
  564. package/dist/views/header-footer/AnnouncementTab.js +43 -0
  565. package/dist/views/header-footer/AnnouncementTab.js.map +1 -0
  566. package/dist/views/header-footer/ChromeField.d.ts +25 -0
  567. package/dist/views/header-footer/ChromeField.d.ts.map +1 -0
  568. package/dist/views/header-footer/ChromeField.js +99 -0
  569. package/dist/views/header-footer/ChromeField.js.map +1 -0
  570. package/dist/views/header-footer/ChromePreview.d.ts +31 -0
  571. package/dist/views/header-footer/ChromePreview.d.ts.map +1 -0
  572. package/dist/views/header-footer/ChromePreview.js +195 -0
  573. package/dist/views/header-footer/ChromePreview.js.map +1 -0
  574. package/dist/views/header-footer/DeveloperTab.d.ts +17 -0
  575. package/dist/views/header-footer/DeveloperTab.d.ts.map +1 -0
  576. package/dist/views/header-footer/DeveloperTab.js +98 -0
  577. package/dist/views/header-footer/DeveloperTab.js.map +1 -0
  578. package/dist/views/header-footer/RegionTab.d.ts +27 -0
  579. package/dist/views/header-footer/RegionTab.d.ts.map +1 -0
  580. package/dist/views/header-footer/RegionTab.js +80 -0
  581. package/dist/views/header-footer/RegionTab.js.map +1 -0
  582. package/dist/views/header-footer/chrome-form.d.ts +137 -0
  583. package/dist/views/header-footer/chrome-form.d.ts.map +1 -0
  584. package/dist/views/header-footer/chrome-form.js +518 -0
  585. package/dist/views/header-footer/chrome-form.js.map +1 -0
  586. package/dist/views/header-footer/code-samples.d.ts +30 -0
  587. package/dist/views/header-footer/code-samples.d.ts.map +1 -0
  588. package/dist/views/header-footer/code-samples.js +127 -0
  589. package/dist/views/header-footer/code-samples.js.map +1 -0
  590. package/dist/views/header-footer/controls.d.ts +57 -0
  591. package/dist/views/header-footer/controls.d.ts.map +1 -0
  592. package/dist/views/header-footer/controls.js +43 -0
  593. package/dist/views/header-footer/controls.js.map +1 -0
  594. package/dist/views/lazy-views.d.ts +4 -0
  595. package/dist/views/lazy-views.d.ts.map +1 -1
  596. package/dist/views/lazy-views.js +4 -0
  597. package/dist/views/lazy-views.js.map +1 -1
  598. package/dist/views/page-editor/PageTab.js +1 -1
  599. package/dist/views/page-editor/PageTab.js.map +1 -1
  600. package/dist/views/page-editor/ReviewBar.js +1 -1
  601. package/dist/views/page-editor/ReviewBar.js.map +1 -1
  602. package/dist/views/page-editor/VersionHistoryPanel.js +1 -1
  603. package/dist/views/page-editor/VersionHistoryPanel.js.map +1 -1
  604. package/dist/views/seo/AuditTab.js +1 -1
  605. package/dist/views/seo/AuditTab.js.map +1 -1
  606. package/dist/views/seo/OverviewTab.d.ts.map +1 -1
  607. package/dist/views/seo/OverviewTab.js +2 -2
  608. package/dist/views/seo/OverviewTab.js.map +1 -1
  609. package/dist/views/seo/ProposalsTab.js +1 -1
  610. package/dist/views/seo/ProposalsTab.js.map +1 -1
  611. package/dist/views/settings/AISettingsTab.d.ts.map +1 -1
  612. package/dist/views/settings/AISettingsTab.js +4 -2
  613. package/dist/views/settings/AISettingsTab.js.map +1 -1
  614. package/dist/views/settings/AccessProtectionCard.js +1 -1
  615. package/dist/views/settings/AccessProtectionCard.js.map +1 -1
  616. package/dist/views/settings/AdminThemeCard.d.ts.map +1 -1
  617. package/dist/views/settings/AdminThemeCard.js +63 -15
  618. package/dist/views/settings/AdminThemeCard.js.map +1 -1
  619. package/dist/views/settings/AppearanceTab.d.ts.map +1 -1
  620. package/dist/views/settings/AppearanceTab.js +4 -2
  621. package/dist/views/settings/AppearanceTab.js.map +1 -1
  622. package/dist/views/settings/BrandPreviewCard.js +1 -1
  623. package/dist/views/settings/BrandPreviewCard.js.map +1 -1
  624. package/dist/views/settings/BrandVoiceCard.js +1 -1
  625. package/dist/views/settings/BrandVoiceCard.js.map +1 -1
  626. package/dist/views/settings/EmailSettingsTab.d.ts.map +1 -1
  627. package/dist/views/settings/EmailSettingsTab.js +5 -3
  628. package/dist/views/settings/EmailSettingsTab.js.map +1 -1
  629. package/dist/views/settings/GeneralSettingsTab.d.ts.map +1 -1
  630. package/dist/views/settings/GeneralSettingsTab.js +4 -2
  631. package/dist/views/settings/GeneralSettingsTab.js.map +1 -1
  632. package/dist/views/settings/ProviderConnectionCard.js +1 -1
  633. package/dist/views/settings/ProviderConnectionCard.js.map +1 -1
  634. package/dist/views/settings/SearchDataCard.js +1 -1
  635. package/dist/views/settings/SearchDataCard.js.map +1 -1
  636. package/dist/views/settings/SecurityStatusCard.js +2 -2
  637. package/dist/views/settings/SecurityStatusCard.js.map +1 -1
  638. package/dist/views/settings/SecurityTab.d.ts.map +1 -1
  639. package/dist/views/settings/SecurityTab.js +4 -2
  640. package/dist/views/settings/SecurityTab.js.map +1 -1
  641. package/dist/views/settings/SeoAutopilotCard.js +2 -2
  642. package/dist/views/settings/SeoAutopilotCard.js.map +1 -1
  643. package/dist/views/settings/SeoSettingsTab.d.ts.map +1 -1
  644. package/dist/views/settings/SeoSettingsTab.js +5 -3
  645. package/dist/views/settings/SeoSettingsTab.js.map +1 -1
  646. package/dist/views/settings/SiteIndexStatusCard.js +1 -1
  647. package/dist/views/settings/SiteIndexStatusCard.js.map +1 -1
  648. package/dist/views/settings/SiteThemeCard.js +1 -1
  649. package/dist/views/settings/UpdatesTab.d.ts.map +1 -1
  650. package/dist/views/settings/UpdatesTab.js +6 -5
  651. package/dist/views/settings/UpdatesTab.js.map +1 -1
  652. package/dist/views/settings/components.d.ts +7 -11
  653. package/dist/views/settings/components.d.ts.map +1 -1
  654. package/dist/views/settings/components.js +18 -12
  655. package/dist/views/settings/components.js.map +1 -1
  656. package/dist/views/settings/useAppearanceSettings.d.ts +7 -1
  657. package/dist/views/settings/useAppearanceSettings.d.ts.map +1 -1
  658. package/dist/views/settings/useAppearanceSettings.js +89 -22
  659. package/dist/views/settings/useAppearanceSettings.js.map +1 -1
  660. package/dist/views/users/UserDetailDrawer.js +1 -1
  661. package/dist/views/users/UserDetailDrawer.js.map +1 -1
  662. package/package.json +10 -8
  663. package/src/AdminRoot.tsx +103 -31
  664. package/src/LoginRoot.tsx +2 -1
  665. package/src/__tests__/components/author-avatar.test.tsx +3 -20
  666. package/src/__tests__/components/notification-bell.test.tsx +146 -14
  667. package/src/__tests__/components/responsive-tiers.render.test.tsx +461 -0
  668. package/src/__tests__/components/serp-preview.render.test.tsx +6 -3
  669. package/src/__tests__/components/shell-primitives.render.test.tsx +951 -0
  670. package/src/__tests__/components/theme-provider-accent.test.tsx +83 -8
  671. package/src/__tests__/components/toggle.test.tsx +11 -3
  672. package/src/__tests__/components/ui-primitives.test.tsx +5 -8
  673. package/src/__tests__/layout/build-nav-items.test.ts +1 -1
  674. package/src/__tests__/layout/shell-nav.render.test.tsx +983 -0
  675. package/src/__tests__/layout/sidebar-forms-submenu.render.test.tsx +8 -4
  676. package/src/__tests__/layout/sidebar-groups.render.test.tsx +116 -0
  677. package/src/__tests__/layout/sidebar-menus.render.test.tsx +116 -0
  678. package/src/__tests__/layout/sidebar-plugin-nav.test.ts +1 -1
  679. package/src/__tests__/layout/sidebar-posts.test.ts +48 -40
  680. package/src/__tests__/layout/sidebar-submenu.render.test.tsx +35 -10
  681. package/src/__tests__/layout/topbar.render.test.tsx +464 -0
  682. package/src/__tests__/lib/api.test.ts +2 -0
  683. package/src/__tests__/lib/batch-wizard.test.ts +199 -0
  684. package/src/__tests__/lib/job-drawer.test.ts +495 -0
  685. package/src/__tests__/lib/job-view.test.ts +558 -0
  686. package/src/__tests__/lib/jobs-service.test.ts +167 -0
  687. package/src/__tests__/router/admin-route-order.test.ts +39 -0
  688. package/src/__tests__/styles/ai-gradient-contrast.test.ts +135 -0
  689. package/src/__tests__/styles/breakpoint-order.test.ts +68 -0
  690. package/src/__tests__/styles/responsive-layer.test.ts +367 -12
  691. package/src/__tests__/styles/tailwind-preset.test.ts +154 -0
  692. package/src/__tests__/styles/theme-token-scope.test.ts +10 -3
  693. package/src/__tests__/styles/tiers.test.ts +136 -0
  694. package/src/__tests__/styles/tokens-drift.test.ts +67 -6
  695. package/src/__tests__/views/admin-lazy-route.render.test.tsx +41 -1
  696. package/src/__tests__/views/ai-settings.render.test.tsx +4 -4
  697. package/src/__tests__/views/appearance-chrome.render.test.tsx +818 -0
  698. package/src/__tests__/views/appearance-menus-route.render.test.tsx +58 -0
  699. package/src/__tests__/views/appearance-settings.render.test.tsx +10 -8
  700. package/src/__tests__/views/appearance-theme-provider.render.test.tsx +347 -0
  701. package/src/__tests__/views/dashboard.test.tsx +48 -0
  702. package/src/__tests__/views/document-edit-navigation.render.test.tsx +130 -0
  703. package/src/__tests__/views/document-edit-routes.render.test.tsx +130 -0
  704. package/src/__tests__/views/email-settings.render.test.tsx +2 -2
  705. package/src/__tests__/views/form-entries.render.test.tsx +22 -0
  706. package/src/__tests__/views/form-submissions.render.test.tsx +22 -0
  707. package/src/__tests__/views/forms-list.render.test.tsx +13 -0
  708. package/src/__tests__/views/general-settings.render.test.tsx +38 -11
  709. package/src/__tests__/views/header-footer-form.test.ts +333 -0
  710. package/src/__tests__/views/jobs-drawer.render.test.tsx +1553 -0
  711. package/src/__tests__/views/jobs-list.render.test.tsx +853 -0
  712. package/src/__tests__/views/jobs-wizard.render.test.tsx +707 -0
  713. package/src/__tests__/views/kpi-grid.test.ts +29 -0
  714. package/src/__tests__/views/post-section-editor.test.tsx +5 -1
  715. package/src/__tests__/views/script-tags.render.test.tsx +29 -0
  716. package/src/__tests__/views/security-settings.render.test.tsx +9 -10
  717. package/src/__tests__/views/seo-settings.render.test.tsx +7 -9
  718. package/src/__tests__/views/settings-save-bar.render.test.tsx +91 -0
  719. package/src/__tests__/views/settings-save-footer.render.test.tsx +25 -15
  720. package/src/__tests__/views/settings-tabs.render.test.tsx +371 -0
  721. package/src/__tests__/views/updates-tab.render.test.tsx +4 -3
  722. package/src/components/Breadcrumbs.tsx +7 -1
  723. package/src/components/CommandPalette.tsx +51 -3
  724. package/src/components/LocaleSwitcher.tsx +5 -6
  725. package/src/components/NotificationBell.tsx +74 -18
  726. package/src/components/OfflineStatus.tsx +1 -1
  727. package/src/components/PresenceIndicator.tsx +2 -1
  728. package/src/components/ReflowMeter.tsx +3 -3
  729. package/src/components/SEOPanel.tsx +2 -2
  730. package/src/components/ThemeProvider.tsx +122 -42
  731. package/src/components/TipTapEditor.tsx +3 -4
  732. package/src/components/forms/EmbedPanel.tsx +1 -1
  733. package/src/components/forms/FormEntryDetailPane.tsx +7 -1
  734. package/src/components/forms/ShortcodeGlossary.tsx +7 -1
  735. package/src/components/forms/primitives.tsx +37 -21
  736. package/src/components/pages/tag-badges.tsx +4 -3
  737. package/src/components/seo/PageAuditPanel.tsx +2 -2
  738. package/src/components/seo/SerpPreview.tsx +5 -5
  739. package/src/components/seo/primitives.tsx +2 -2
  740. package/src/components/ui/AuthorAvatar.tsx +11 -10
  741. package/src/components/ui/Badge.tsx +1 -1
  742. package/src/components/ui/Breadcrumb.tsx +109 -0
  743. package/src/components/ui/Button.tsx +40 -15
  744. package/src/components/ui/Card.tsx +35 -32
  745. package/src/components/ui/CardListControls.tsx +90 -0
  746. package/src/components/ui/CountChip.tsx +90 -0
  747. package/src/components/ui/FilterPill.tsx +5 -3
  748. package/src/components/ui/InspectorPane.tsx +21 -7
  749. package/src/components/ui/Modal.tsx +20 -6
  750. package/src/components/ui/PageHeader.tsx +63 -0
  751. package/src/components/ui/RowActions.tsx +7 -2
  752. package/src/components/ui/Segmented.tsx +97 -0
  753. package/src/components/ui/Toaster.tsx +139 -0
  754. package/src/components/ui/Toggle.tsx +18 -14
  755. package/src/components/ui/UnderlineTabs.tsx +373 -0
  756. package/src/components/ui/UnsavedBar.tsx +119 -0
  757. package/src/components/ui/admin-links.tsx +20 -0
  758. package/src/components/ui/card-table.ts +34 -0
  759. package/src/components/virtual-window.tsx +13 -2
  760. package/src/fields/RelationshipField.tsx +1 -1
  761. package/src/hooks/useAppearanceBootstrap.ts +9 -3
  762. package/src/index.ts +19 -0
  763. package/src/layout/Header.tsx +210 -135
  764. package/src/layout/Layout.tsx +61 -108
  765. package/src/layout/MobileTabBar.tsx +92 -0
  766. package/src/layout/Sidebar.tsx +555 -593
  767. package/src/layout/nav-config.tsx +425 -0
  768. package/src/layout/primitives/AdminShell.tsx +154 -6
  769. package/src/layout/topbar-classes.ts +8 -0
  770. package/src/layout/use-nav-items.ts +40 -0
  771. package/src/lib/api.ts +18 -1
  772. package/src/lib/appearance-api.ts +4 -0
  773. package/src/lib/batch-wizard.ts +188 -0
  774. package/src/lib/chrome-service.ts +200 -0
  775. package/src/lib/job-drawer.ts +424 -0
  776. package/src/lib/job-view.ts +550 -0
  777. package/src/lib/jobs-service.ts +345 -0
  778. package/src/lib/sheet-focus.ts +71 -0
  779. package/src/lib/tiers.ts +43 -0
  780. package/src/router/admin-routes.ts +8 -0
  781. package/src/router/index.ts +9 -1
  782. package/src/styles/prenta-tokens.css +280 -82
  783. package/src/styles/responsive.css +460 -22
  784. package/src/styles/theme.css +192 -28
  785. package/src/views/ApiKeys.tsx +2 -2
  786. package/src/views/AppearanceChrome.tsx +732 -0
  787. package/src/views/CollectionList.tsx +264 -205
  788. package/src/views/Dashboard.tsx +26 -13
  789. package/src/views/DocumentEdit.tsx +111 -56
  790. package/src/views/FormDeliveries.tsx +30 -17
  791. package/src/views/FormEntries.tsx +28 -20
  792. package/src/views/FormSubmissions.tsx +32 -34
  793. package/src/views/Forms.tsx +55 -34
  794. package/src/views/FormsSettings.tsx +94 -0
  795. package/src/views/Jobs/BusyButton.tsx +56 -0
  796. package/src/views/Jobs/CancelJobDialog.tsx +145 -0
  797. package/src/views/Jobs/DrawerActivity.tsx +142 -0
  798. package/src/views/Jobs/DrawerOverview.tsx +139 -0
  799. package/src/views/Jobs/DrawerResults.tsx +155 -0
  800. package/src/views/Jobs/DrawerReview.tsx +464 -0
  801. package/src/views/Jobs/JobDrawer.tsx +636 -0
  802. package/src/views/Jobs/JobsTable.tsx +267 -0
  803. package/src/views/Jobs/NewBatchJob.tsx +857 -0
  804. package/src/views/Jobs/WorkerStrip.tsx +149 -0
  805. package/src/views/Jobs/atoms.tsx +93 -0
  806. package/src/views/Jobs/focus.ts +67 -0
  807. package/src/views/Jobs/icons.tsx +111 -0
  808. package/src/views/Jobs/useJobDetail.ts +64 -0
  809. package/src/views/Jobs/useJobsFeed.ts +249 -0
  810. package/src/views/Jobs/useReviewItems.ts +187 -0
  811. package/src/views/Jobs.tsx +396 -105
  812. package/src/views/MediaBrowser.tsx +71 -21
  813. package/src/views/Pages/PagesListView.tsx +115 -39
  814. package/src/views/Posts/NewPostTypeInstructions.tsx +15 -10
  815. package/src/views/Posts/PostTypesView.tsx +28 -6
  816. package/src/views/Posts/PostsListView.tsx +130 -40
  817. package/src/views/SEO.tsx +23 -8
  818. package/src/views/ScriptTags.tsx +233 -153
  819. package/src/views/Settings.tsx +215 -256
  820. package/src/views/SpamFolder.tsx +32 -0
  821. package/src/views/Trash.tsx +12 -1
  822. package/src/views/Users.tsx +2 -2
  823. package/src/views/WidgetsPlaceholder.tsx +33 -0
  824. package/src/views/dashboard/kpi-grid.ts +38 -0
  825. package/src/views/header-footer/AnnouncementTab.tsx +231 -0
  826. package/src/views/header-footer/ChromeField.tsx +358 -0
  827. package/src/views/header-footer/ChromePreview.tsx +497 -0
  828. package/src/views/header-footer/DeveloperTab.tsx +331 -0
  829. package/src/views/header-footer/RegionTab.tsx +398 -0
  830. package/src/views/header-footer/chrome-form.ts +603 -0
  831. package/src/views/header-footer/code-samples.ts +146 -0
  832. package/src/views/header-footer/controls.tsx +166 -0
  833. package/src/views/lazy-views.tsx +12 -0
  834. package/src/views/page-editor/PageTab.tsx +2 -2
  835. package/src/views/page-editor/ReviewBar.tsx +1 -1
  836. package/src/views/page-editor/VersionHistoryPanel.tsx +1 -1
  837. package/src/views/seo/AuditTab.tsx +1 -1
  838. package/src/views/seo/OverviewTab.tsx +6 -5
  839. package/src/views/seo/ProposalsTab.tsx +1 -1
  840. package/src/views/settings/AISettingsTab.tsx +10 -6
  841. package/src/views/settings/AccessProtectionCard.tsx +1 -1
  842. package/src/views/settings/AdminThemeCard.tsx +228 -35
  843. package/src/views/settings/AppearanceTab.tsx +10 -6
  844. package/src/views/settings/BrandPreviewCard.tsx +1 -1
  845. package/src/views/settings/BrandVoiceCard.tsx +1 -1
  846. package/src/views/settings/EmailSettingsTab.tsx +11 -7
  847. package/src/views/settings/GeneralSettingsTab.tsx +10 -6
  848. package/src/views/settings/ProviderConnectionCard.tsx +1 -1
  849. package/src/views/settings/SearchDataCard.tsx +1 -1
  850. package/src/views/settings/SecurityStatusCard.tsx +2 -2
  851. package/src/views/settings/SecurityTab.tsx +10 -6
  852. package/src/views/settings/SeoAutopilotCard.tsx +2 -2
  853. package/src/views/settings/SeoSettingsTab.tsx +13 -9
  854. package/src/views/settings/SiteIndexStatusCard.tsx +1 -1
  855. package/src/views/settings/SiteThemeCard.tsx +1 -1
  856. package/src/views/settings/UpdatesTab.tsx +107 -101
  857. package/src/views/settings/components.tsx +26 -62
  858. package/src/views/settings/useAppearanceSettings.ts +116 -25
  859. package/src/views/users/UserDetailDrawer.tsx +1 -1
  860. package/dist/components/ui/StatPill.d.ts +0 -18
  861. package/dist/components/ui/StatPill.d.ts.map +0 -1
  862. package/dist/components/ui/StatPill.js +0 -5
  863. package/dist/components/ui/StatPill.js.map +0 -1
  864. package/src/components/ui/StatPill.tsx +0 -37
@@ -1,4 +1,4 @@
1
- // PrentaCMS — SCSS Design Tokens v2.0.0
1
+ // PrentaCMS — SCSS Design Tokens v2.1.0
2
2
  // GENERATED FILE — DO NOT EDIT. Source: design-system/tokens.json.
3
3
  // Regenerate: pnpm --filter @prenta/admin generate
4
4
  //
@@ -9,26 +9,30 @@
9
9
  // runtime theming.
10
10
 
11
11
  $prenta-light: (
12
- 'bg': #f5f4fa,
12
+ 'bg': #f4f5f7,
13
13
  'sb': #ffffff,
14
14
  'card': #ffffff,
15
- 'bdr': #e8e6f2,
16
- 'txt': #1a1827,
17
- 'sub': #6b6878,
18
- 'muted': #716e83,
19
- 'acc': #7c3aed,
20
- 'acc-l': #ede9fe,
21
- 'acc-m': #c4b5fd,
15
+ 'bdr': #e3e5ea,
16
+ 'txt': #16181d,
17
+ 'sub': #50555f,
18
+ 'muted': #676c76,
19
+ 'acc-base': #2f5bea,
20
+ 'acc': var(--acc-lt, var(--acc-base)),
21
+ 'acc-l': color-mix(in oklch, var(--acc) 11%, var(--card)),
22
+ 'acc-m': color-mix(in oklch, var(--acc) 38%, var(--card)),
23
+ 'on-acc': #ffffff,
22
24
  'suc': #047857,
23
25
  'suc-l': #ecfdf5,
24
- 'warn': #92400e,
26
+ 'warn': #b45309,
25
27
  'warn-l': #fffbeb,
26
28
  'err': #b91c1c,
27
29
  'err-l': #fef2f2,
28
30
  'info': #0e7490,
29
31
  'info-l': #e0f7fa,
30
- 'tag-purple': #7c3aed,
31
- 'tag-purple-soft': #f3e8ff,
32
+ 'orange': #c2410c,
33
+ 'notify-dot': #e11d48,
34
+ 'tag-purple': #4f46e5,
35
+ 'tag-purple-soft': #eef2ff,
32
36
  'tag-green': #0f766e,
33
37
  'tag-green-soft': #ccfbf1,
34
38
  'tag-orange': #c2410c,
@@ -41,11 +45,49 @@ $prenta-light: (
41
45
  'tag-pink-soft': #fce7f3,
42
46
  'tag-gray': #475569,
43
47
  'tag-gray-soft': #f1f5f9,
44
- 'ai1': #7c3aed,
45
- 'ai2': #c026d3,
46
- 'ai-soft': linear-gradient(135deg, rgba(124, 58, 237, 0.09), rgba(192, 38, 211, 0.07)),
48
+ 'avatar-1': #2f5bea,
49
+ 'avatar-2': #0e7490,
50
+ 'avatar-3': #047857,
51
+ 'avatar-4': #b45309,
52
+ 'avatar-5': #e11d48,
53
+ 'avatar-6': #4f46e5,
54
+ 'avatar-7': #db2777,
55
+ 'avatar-8': #0f766e,
56
+ 'ai1': var(--acc),
57
+ 'ai2': oklch(from var(--acc) calc(l - 0.07) c calc(h - 50)),
58
+ 'ai-soft': linear-gradient(
59
+ 135deg,
60
+ color-mix(in oklch, var(--ai1) 9%, transparent),
61
+ color-mix(in oklch, var(--ai2) 7%, transparent)
62
+ ),
63
+ 'scrim': rgba(10, 12, 20, 0.38),
64
+ 'scrim-drawer': rgba(10, 12, 20, 0.28),
65
+ 'code-bg': #0f1115,
66
+ 'code-txt': #d6dae1,
67
+ 'code-cmt': #6b7280,
68
+ 'code-str': #9fd39b,
69
+ 'code-kw': #c4a7ff,
70
+ 'code-err': #f2b8b5,
71
+ 'code-btn-bg': #171a20,
72
+ 'code-btn-bdr': #2a2e36,
73
+ 'code-btn-txt': #c9cdd4,
74
+ 'code-file': #8a8f99,
75
+ 'site-bg': #ffffff,
76
+ 'site-txt': #16181d,
77
+ 'site-sub': #50555f,
78
+ 'site-muted': #8a8f99,
79
+ 'site-bdr': #e3e5ea,
80
+ 'site-alt': #f4f5f7,
81
+ 'site-alt2': #eef0f3,
82
+ 'site-chip': #d9dce1,
83
+ 'site-foot-txt': #c9cdd4,
84
+ 'site-alert': #b45309,
85
+ 'site-thumb': #2a2d33,
86
+ 'site-thumb-bar': #555555,
87
+ 'serp-link': #1a0dab,
47
88
  'toggle-thumb': #ffffff,
48
- 'font-sans': system-ui,
89
+ 'font-sans': 'DM Sans',
90
+ system-ui,
49
91
  -apple-system,
50
92
  'Segoe UI',
51
93
  Roboto,
@@ -59,18 +101,38 @@ $prenta-light: (
59
101
  'fw-semi': 600,
60
102
  'fw-bold': 700,
61
103
  'fs-page': 21px,
62
- 'fs-card': 14px,
104
+ 'fs-drawer': 16px,
105
+ 'fs-stat': 20px,
106
+ 'fs-figure': 14px,
107
+ 'fs-card': 13.5px,
63
108
  'fs-body': 13px,
109
+ 'fs-sm': 12.5px,
64
110
  'fs-sub': 12px,
65
111
  'fs-hint': 11.5px,
112
+ 'fs-badge': 9.5px,
113
+ 'fs-tab': 9px,
114
+ 'fs-count': 10.5px,
115
+ 'fs-micro': 11px,
66
116
  'fs-label': 10px,
67
117
  'sbw': 224px,
68
118
  'sbw-col': 60px,
69
119
  'tbh': 56px,
70
- 'r-sm': 6px,
120
+ 'gut': 28px,
121
+ 'drawer-w': 440px,
122
+ 'jobs-drawer-w': 620px,
123
+ 'tabbar-h': 56px,
124
+ 'r-xs': 4px,
125
+ 'r-sm': 5px,
126
+ 'r-6': 6px,
127
+ 'r-7': 7px,
128
+ 'r-8': 8px,
129
+ 'r-9': 9px,
130
+ 'r-10': 10px,
131
+ 'r-12': 12px,
132
+ 'r-14': 14px,
71
133
  'r-field': 7px,
72
134
  'r-ctl': 8px,
73
- 'r': 10px,
135
+ 'r': 12px,
74
136
  'r-fig': 12px,
75
137
  'r-pill': 99px,
76
138
  'sp-2': 2px,
@@ -94,32 +156,56 @@ $prenta-light: (
94
156
  'bw-ctl': 1.5px,
95
157
  'bw-focus': 2px,
96
158
  'ring': 0 0 0 3px var(--acc-m),
97
- 'shd': 0 1px 2px rgba(0, 0, 0, 0.05),
98
- 0 1px 4px rgba(0, 0, 0, 0.04),
99
- 'shd2': 0 4px 16px rgba(0, 0, 0, 0.1),
159
+ 'shd': 0 1px 2px rgba(16, 18, 24, 0.05),
160
+ 0 1px 4px rgba(16, 18, 24, 0.04),
161
+ 'shd2': 0 4px 16px rgba(16, 18, 24, 0.1),
162
+ 'shd-bar': 0 10px 30px rgba(0, 0, 0, 0.22),
163
+ 'shd-knob': 0 1px 2px rgba(0, 0, 0, 0.25),
164
+ 'shd-save': 0 -3px 16px rgba(0, 0, 0, 0.06),
165
+ 'shd-tabbar': 0 -2px 12px rgba(0, 0, 0, 0.08),
100
166
  'mo-fast': 0.12s,
101
- 'mo-base': 0.18s,
167
+ 'mo-base': 0.15s,
102
168
  'mo-slow': 0.22s,
103
169
  'ease': cubic-bezier(0.4, 0, 0.2, 1),
104
170
  'motion-layout': 0.22s cubic-bezier(0.4, 0, 0.2, 1),
105
171
  'z-raise': 2,
172
+ 'z-bar': 20,
106
173
  'z-resizer': 30,
107
174
  'z-overlay': 45,
175
+ 'z-tabbar': 30,
108
176
  'z-menu': 120,
109
- 'z-toast': 200,
177
+ 'z-drawer-scrim': 150,
178
+ 'z-drawer': 160,
179
+ 'z-modal': 200,
180
+ 'z-toast': 260,
181
+ 'z-toast-jobs': 300,
182
+ );
183
+
184
+ $prenta-linen: (
185
+ 'bg': #f5f2ec,
186
+ 'sb': #fbfaf7,
187
+ 'card': #ffffff,
188
+ 'bdr': #e6e0d6,
189
+ 'txt': #1e1a15,
190
+ 'sub': #5c554a,
191
+ 'muted': #6d665a,
192
+ 'shd': 0 1px 2px rgba(40, 30, 15, 0.06),
193
+ 0 1px 4px rgba(40, 30, 15, 0.04),
194
+ 'shd2': 0 4px 16px rgba(40, 30, 15, 0.1),
110
195
  );
111
196
 
112
197
  $prenta-dark: (
113
- 'bg': #0d0c18,
114
- 'sb': #141222,
115
- 'card': #1c1a2e,
116
- 'bdr': #2c2a42,
117
- 'txt': #eae8f5,
118
- 'sub': #8e8ba8,
119
- 'muted': #8784a2,
120
- 'acc': #9d71f0,
121
- 'acc-l': #231950,
122
- 'acc-m': #5e3eaa,
198
+ 'bg': #0e0f11,
199
+ 'sb': #15161a,
200
+ 'card': #1b1d21,
201
+ 'bdr': #2a2d33,
202
+ 'txt': #ecedef,
203
+ 'sub': #adb1ba,
204
+ 'muted': #9499a3,
205
+ 'acc': var(--acc-dk, color-mix(in oklch, var(--acc-base) 70%, #ffffff)),
206
+ 'acc-l': color-mix(in oklch, var(--acc-base) 20%, var(--card)),
207
+ 'acc-m': color-mix(in oklch, var(--acc-base) 50%, var(--card)),
208
+ 'on-acc': #0e0f11,
123
209
  'suc': #10b981,
124
210
  'suc-l': #022c22,
125
211
  'warn': #fbbf24,
@@ -128,8 +214,9 @@ $prenta-dark: (
128
214
  'err-l': #200808,
129
215
  'info': #38bdf8,
130
216
  'info-l': #0a2838,
131
- 'tag-purple': #a78bfa,
132
- 'tag-purple-soft': #2e1065,
217
+ 'orange': #fb923c,
218
+ 'tag-purple': #818cf8,
219
+ 'tag-purple-soft': #1e1b4b,
133
220
  'tag-green': #2dd4bf,
134
221
  'tag-green-soft': #042f2e,
135
222
  'tag-orange': #fb923c,
@@ -142,9 +229,13 @@ $prenta-dark: (
142
229
  'tag-pink-soft': #500724,
143
230
  'tag-gray': #94a3b8,
144
231
  'tag-gray-soft': #1e293b,
145
- 'ai1': #7c3aed,
146
- 'ai2': #c026d3,
147
- 'ai-soft': linear-gradient(135deg, rgba(157, 113, 240, 0.16), rgba(192, 38, 211, 0.12)),
232
+ 'ai2': oklch(from var(--acc) calc(l + 0.1) c calc(h - 50)),
233
+ 'ai-soft': linear-gradient(
234
+ 135deg,
235
+ color-mix(in oklch, var(--ai1) 16%, transparent),
236
+ color-mix(in oklch, var(--ai2) 12%, transparent)
237
+ ),
238
+ 'serp-link': #8ab4f8,
148
239
  'shd': 0 1px 2px rgba(0, 0, 0, 0.3),
149
240
  0 1px 4px rgba(0, 0, 0, 0.2),
150
241
  'shd2': 0 4px 20px rgba(0, 0, 0, 0.45),
@@ -153,10 +244,22 @@ $prenta-dark: (
153
244
  $prenta-sbw: 224px;
154
245
  $prenta-sbw-col: 60px;
155
246
  $prenta-tbh: 56px;
156
- $prenta-r-sm: 6px;
247
+ $prenta-gut: 28px;
248
+ $prenta-drawer-w: 440px;
249
+ $prenta-jobs-drawer-w: 620px;
250
+ $prenta-tabbar-h: 56px;
251
+ $prenta-r-xs: 4px;
252
+ $prenta-r-sm: 5px;
253
+ $prenta-r-6: 6px;
254
+ $prenta-r-7: 7px;
255
+ $prenta-r-8: 8px;
256
+ $prenta-r-9: 9px;
257
+ $prenta-r-10: 10px;
258
+ $prenta-r-12: 12px;
259
+ $prenta-r-14: 14px;
157
260
  $prenta-r-field: 7px;
158
261
  $prenta-r-ctl: 8px;
159
- $prenta-r: 10px;
262
+ $prenta-r: 12px;
160
263
  $prenta-r-fig: 12px;
161
264
  $prenta-r-pill: 99px;
162
265
  $prenta-sp-2: 2px;
@@ -181,6 +284,7 @@ $prenta-bw-ctl: 1.5px;
181
284
  $prenta-bw-focus: 2px;
182
285
  $prenta-ring: 0 0 0 3px var(--acc-m);
183
286
  $prenta-font-sans:
287
+ 'DM Sans',
184
288
  system-ui,
185
289
  -apple-system,
186
290
  'Segoe UI',
@@ -192,19 +296,34 @@ $prenta-fw-med: 500;
192
296
  $prenta-fw-semi: 600;
193
297
  $prenta-fw-bold: 700;
194
298
  $prenta-fs-page: 21px;
195
- $prenta-fs-card: 14px;
299
+ $prenta-fs-drawer: 16px;
300
+ $prenta-fs-stat: 20px;
301
+ $prenta-fs-figure: 14px;
302
+ $prenta-fs-card: 13.5px;
196
303
  $prenta-fs-body: 13px;
304
+ $prenta-fs-sm: 12.5px;
197
305
  $prenta-fs-sub: 12px;
198
306
  $prenta-fs-hint: 11.5px;
307
+ $prenta-fs-badge: 9.5px;
308
+ $prenta-fs-tab: 9px;
309
+ $prenta-fs-count: 10.5px;
310
+ $prenta-fs-micro: 11px;
199
311
  $prenta-fs-label: 10px;
200
312
  $prenta-z-raise: 2;
313
+ $prenta-z-bar: 20;
201
314
  $prenta-z-resizer: 30;
202
315
  $prenta-z-overlay: 45;
316
+ $prenta-z-tabbar: 30;
203
317
  $prenta-z-menu: 120;
204
- $prenta-z-toast: 200;
318
+ $prenta-z-drawer-scrim: 150;
319
+ $prenta-z-drawer: 160;
320
+ $prenta-z-modal: 200;
321
+ $prenta-z-toast: 260;
322
+ $prenta-z-toast-jobs: 300;
205
323
 
324
+ /// $theme: 'light' (Porcelain), 'linen' (overrides only) or 'dark'.
206
325
  @mixin prenta-css-vars($theme: 'light') {
207
- $map: if($theme == 'dark', $prenta-dark, $prenta-light);
326
+ $map: if($theme == 'dark', $prenta-dark, if($theme == 'linen', $prenta-linen, $prenta-light));
208
327
  @each $name, $value in $map {
209
328
  --#{$name}: #{$value};
210
329
  }
@@ -30,9 +30,11 @@ module.exports = {
30
30
  txt: v('--txt'),
31
31
  sub: v('--sub'),
32
32
  muted: v('--muted'),
33
+ 'acc-base': v('--acc-base'),
33
34
  acc: v('--acc'),
34
35
  'acc-l': v('--acc-l'),
35
36
  'acc-m': v('--acc-m'),
37
+ 'on-acc': v('--on-acc'),
36
38
  suc: v('--suc'),
37
39
  'suc-l': v('--suc-l'),
38
40
  warn: v('--warn'),
@@ -41,6 +43,7 @@ module.exports = {
41
43
  'err-l': v('--err-l'),
42
44
  info: v('--info'),
43
45
  'info-l': v('--info-l'),
46
+ 'notify-dot': v('--notify-dot'),
44
47
  'tag-purple': v('--tag-purple'),
45
48
  'tag-purple-soft': v('--tag-purple-soft'),
46
49
  'tag-green': v('--tag-green'),
@@ -55,16 +58,58 @@ module.exports = {
55
58
  'tag-pink-soft': v('--tag-pink-soft'),
56
59
  'tag-gray': v('--tag-gray'),
57
60
  'tag-gray-soft': v('--tag-gray-soft'),
61
+ 'avatar-1': v('--avatar-1'),
62
+ 'avatar-2': v('--avatar-2'),
63
+ 'avatar-3': v('--avatar-3'),
64
+ 'avatar-4': v('--avatar-4'),
65
+ 'avatar-5': v('--avatar-5'),
66
+ 'avatar-6': v('--avatar-6'),
67
+ 'avatar-7': v('--avatar-7'),
68
+ 'avatar-8': v('--avatar-8'),
58
69
  ai1: v('--ai1'),
59
70
  ai2: v('--ai2'),
71
+ scrim: v('--scrim'),
72
+ 'scrim-drawer': v('--scrim-drawer'),
73
+ 'code-bg': v('--code-bg'),
74
+ 'code-txt': v('--code-txt'),
75
+ 'code-cmt': v('--code-cmt'),
76
+ 'code-str': v('--code-str'),
77
+ 'code-kw': v('--code-kw'),
78
+ 'code-err': v('--code-err'),
79
+ 'code-btn-bg': v('--code-btn-bg'),
80
+ 'code-btn-bdr': v('--code-btn-bdr'),
81
+ 'code-btn-txt': v('--code-btn-txt'),
82
+ 'code-file': v('--code-file'),
83
+ 'site-bg': v('--site-bg'),
84
+ 'site-txt': v('--site-txt'),
85
+ 'site-sub': v('--site-sub'),
86
+ 'site-muted': v('--site-muted'),
87
+ 'site-bdr': v('--site-bdr'),
88
+ 'site-alt': v('--site-alt'),
89
+ 'site-alt2': v('--site-alt2'),
90
+ 'site-chip': v('--site-chip'),
91
+ 'site-foot-txt': v('--site-foot-txt'),
92
+ 'site-alert': v('--site-alert'),
93
+ 'site-thumb': v('--site-thumb'),
94
+ 'site-thumb-bar': v('--site-thumb-bar'),
60
95
  },
61
96
  borderRadius: {
62
- sm: 'var(--r-sm)',
97
+ 4: 'var(--r-xs)',
98
+ 5: 'var(--r-sm)',
99
+ 6: 'var(--r-6)',
100
+ 7: 'var(--r-7)',
101
+ 8: 'var(--r-8)',
102
+ 9: 'var(--r-9)',
103
+ 10: 'var(--r-10)',
104
+ 12: 'var(--r-12)',
105
+ 14: 'var(--r-14)',
63
106
  field: 'var(--r-field)',
64
107
  ctl: 'var(--r-ctl)',
65
108
  base: 'var(--r)',
66
109
  fig: 'var(--r-fig)',
67
110
  pill: 'var(--r-pill)',
111
+ // Kept from 2.0: rounded-sm is the 6px chip radius, as in theme.css.
112
+ sm: 'var(--r-6)',
68
113
  },
69
114
  spacing: {
70
115
  2: 'var(--sp-2)',
@@ -95,14 +140,24 @@ module.exports = {
95
140
  boxShadow: {
96
141
  shd: 'var(--shd)',
97
142
  shd2: 'var(--shd2)',
143
+ bar: 'var(--shd-bar)',
144
+ knob: 'var(--shd-knob)',
145
+ save: 'var(--shd-save)',
146
+ tabbar: 'var(--shd-tabbar)',
98
147
  ring: 'var(--ring)',
99
148
  },
100
149
  zIndex: {
101
150
  raise: 'var(--z-raise)',
151
+ bar: 'var(--z-bar)',
102
152
  resizer: 'var(--z-resizer)',
103
153
  overlay: 'var(--z-overlay)',
154
+ tabbar: 'var(--z-tabbar)',
104
155
  menu: 'var(--z-menu)',
156
+ 'drawer-scrim': 'var(--z-drawer-scrim)',
157
+ drawer: 'var(--z-drawer)',
158
+ modal: 'var(--z-modal)',
105
159
  toast: 'var(--z-toast)',
160
+ 'toast-jobs': 'var(--z-toast-jobs)',
106
161
  },
107
162
  fontFamily: {
108
163
  sans: 'var(--font-sans)',
@@ -110,10 +165,18 @@ module.exports = {
110
165
  },
111
166
  fontSize: {
112
167
  page: 'var(--fs-page)',
168
+ drawer: 'var(--fs-drawer)',
169
+ stat: 'var(--fs-stat)',
170
+ figure: 'var(--fs-figure)',
113
171
  card: 'var(--fs-card)',
114
172
  body: 'var(--fs-body)',
173
+ sm2: 'var(--fs-sm)',
115
174
  sub: 'var(--fs-sub)',
116
175
  hint: 'var(--fs-hint)',
176
+ badge: 'var(--fs-badge)',
177
+ tab: 'var(--fs-tab)',
178
+ count: 'var(--fs-count)',
179
+ micro: 'var(--fs-micro)',
117
180
  label: 'var(--fs-label)',
118
181
  },
119
182
  fontWeight: {
@@ -1 +1 @@
1
- {"version":3,"file":"AdminRoot.d.ts","sourceRoot":"","sources":["../src/AdminRoot.tsx"],"names":[],"mappings":"AAiEA,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,uCAAuC,CAAA;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,GAAG,CAAA;IACX,OAAO,EAAE,GAAG,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QACvB,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;KACjB,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACnD,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC;QACX,OAAO,EAAE,OAAO,CAAA;QAChB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,eAAe,CAAC,EAAE,MAAM,CAAA;KACzB,CAAC,CAAA;IACF,2EAA2E;IAC3E,YAAY,CAAC,EAAE,CACb,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,KACT,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,aAAa,CAAC,EAAE;QAAE,QAAQ,EAAE,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IACxF;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;IAC1C;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAA;IAC9B,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA6sBD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CAsB9C"}
1
+ {"version":3,"file":"AdminRoot.d.ts","sourceRoot":"","sources":["../src/AdminRoot.tsx"],"names":[],"mappings":"AAqEA,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,uCAAuC,CAAA;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAG7D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,GAAG,CAAA;IACX,OAAO,EAAE,GAAG,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE;QACvB,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;KACjB,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACnD,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,KAClB,OAAO,CAAC;QACX,OAAO,EAAE,OAAO,CAAA;QAChB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,YAAY,CAAC,EAAE,OAAO,CAAA;QACtB,eAAe,CAAC,EAAE,MAAM,CAAA;KACzB,CAAC,CAAA;IACF,2EAA2E;IAC3E,YAAY,CAAC,EAAE,CACb,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,KACT,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,aAAa,CAAC,EAAE;QAAE,QAAQ,EAAE,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IACxF;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,gBAAgB,CAAC,EAAE,uBAAuB,CAAA;IAC1C;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAA;IAC9B,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA+wBD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CAuB9C"}
package/dist/AdminRoot.js CHANGED
@@ -5,7 +5,7 @@ import * as Dialog from '@radix-ui/react-dialog';
5
5
  import { toast } from 'sonner';
6
6
  import { Layout } from './layout/Layout.js';
7
7
  import { adminPortalContainer } from './lib/portal-container.js';
8
- import { ADMIN_ROOT_ATTR, getAdminRootElement } from './lib/admin-root-element.js';
8
+ import { ADMIN_ROOT_ATTR } from './lib/admin-root-element.js';
9
9
  import { useAdminRouter, parseRouteQuery } from './router/index.js';
10
10
  import { ADMIN_KEYBOARD_SHORTCUTS } from './lib/admin-shortcuts.js';
11
11
  import { cmsApi, ensureCsrfToken } from './lib/api.js';
@@ -14,7 +14,7 @@ import { registerSectionTypes, resetCustomSectionTypes, resolveCustomSectionType
14
14
  import { Dashboard } from './views/Dashboard.js';
15
15
  import { McpConsent } from './views/McpConsent.js';
16
16
  import { SEO_DEEP_PATHS, seoTabForPath } from './views/seo/seo-routes.js';
17
- import { CollectionList, DocumentEdit, FormDeliveries, FormEditor, FormEntries, FormSubmissions, Forms, MediaBrowser, NewPostPicker, NewPostTypeInstructions, PageSectionEditor, PageTagManager, PagesListView, PostSectionEditor, PostTemplateEditor, PostTypeEditor, PostTypesView, PostsListView, Jobs, Profile, SEO, ScriptTags, Settings, Trash, ViewFallback, } from './views/lazy-views.js';
17
+ import { CollectionList, DocumentEdit, FormDeliveries, FormEditor, FormEntries, FormSubmissions, Forms, MediaBrowser, NewPostPicker, NewPostTypeInstructions, PageSectionEditor, PageTagManager, PagesListView, PostSectionEditor, PostTemplateEditor, PostTypeEditor, PostTypesView, PostsListView, Jobs, AppearanceChrome, WidgetsPlaceholder, FormsSettings, SpamFolder, Profile, SEO, ScriptTags, Settings, Trash, ViewFallback, } from './views/lazy-views.js';
18
18
  import { SetupWizard } from './views/SetupWizard.js';
19
19
  import { Login } from './views/Login.js';
20
20
  import { HiddenLoginNotFound } from './views/HiddenLoginNotFound.js';
@@ -31,6 +31,7 @@ import { useIdleLogout } from './hooks/useIdleLogout.js';
31
31
  import { resolveLogoutRedirect } from './lib/logout-redirect.js';
32
32
  import { AdminSectionRenderersProvider, } from './views/page-editor/sections/index.js';
33
33
  import { ThemeChromeProvider } from './views/page-editor/theme-chrome/index.js';
34
+ import { AdminLinksProvider } from './components/ui/admin-links.js';
34
35
  /** Client-side alias so retired canvas URLs land on the section editor. */
35
36
  function Redirect({ to, navigate }) {
36
37
  useEffect(() => {
@@ -40,6 +41,8 @@ function Redirect({ to, navigate }) {
40
41
  }
41
42
  function AdminShell({ config, session, basePath = '/admin', initialPath = '/', loginPath, setupRequired, onSetupComplete, onLogin, onVerifyTotp, onLogout, captchaConfig, }) {
42
43
  const { currentPath, navigate, matchRoute, buildHref } = useAdminRouter(basePath, initialPath);
44
+ // Real hrefs for admin links (breadcrumbs), with in-app navigation on click.
45
+ const adminLinks = useMemo(() => ({ href: buildHref, navigate }), [buildHref, navigate]);
43
46
  const [shortcutHelpOpen, setShortcutHelpOpen] = useState(false);
44
47
  // Sign out: revoke the server-side session (and clear the cookie) first, then
45
48
  // send the user to a "logged out successfully" login screen. Split-login
@@ -285,6 +288,10 @@ function AdminShell({ config, session, basePath = '/admin', initialPath = '/', l
285
288
  const newPageQuery = parseRouteQuery(currentPath);
286
289
  return (_jsx(PageSectionEditor, { initialParentId: newPageQuery.get('parent'), config: config, session: session, onNavigate: navigate }));
287
290
  }
291
+ // Before `/pages/:id`, or "trash" would be read as a page id.
292
+ if (matchRoute('/pages/trash')) {
293
+ return (_jsx(Trash, { onNavigate: navigate, config: config, parent: { label: 'Pages', path: '/pages' } }));
294
+ }
288
295
  const pageEdit = matchRoute('/pages/:id/edit');
289
296
  if (pageEdit?.id) {
290
297
  return (_jsx(PageSectionEditor, { documentId: pageEdit.id, config: config, session: session, onNavigate: navigate }));
@@ -334,9 +341,29 @@ function AdminShell({ config, session, basePath = '/admin', initialPath = '/', l
334
341
  if (matchRoute('/script-tags')) {
335
342
  return _jsx(ScriptTags, { onNavigate: navigate });
336
343
  }
337
- if (matchRoute('/saved-sections') || matchRoute('/page-templates') || matchRoute('/widgets')) {
344
+ if (matchRoute('/saved-sections') || matchRoute('/page-templates')) {
338
345
  return _jsx(Redirect, { to: "/pages", navigate: navigate });
339
346
  }
347
+ if (matchRoute('/widgets') || matchRoute('/appearance/widgets')) {
348
+ return _jsx(WidgetsPlaceholder, {});
349
+ }
350
+ // Menus are edited in the navigation plugin's collection (the sidebar's
351
+ // Appearance → Menus item). Without the plugin this falls through to 404.
352
+ if (matchRoute('/appearance/menus') && collectionMap.has('navigations')) {
353
+ return _jsx(Redirect, { to: "/navigations", navigate: navigate });
354
+ }
355
+ if (matchRoute('/appearance/header')) {
356
+ return (_jsx(AppearanceChrome, { onNavigate: navigate, session: session, collections: collectionMap, currentPath: currentPath }));
357
+ }
358
+ if (matchRoute('/forms/settings')) {
359
+ return _jsx(FormsSettings, {});
360
+ }
361
+ if (matchRoute('/forms/spam')) {
362
+ return _jsx(SpamFolder, {});
363
+ }
364
+ if (matchRoute('/posts/trash')) {
365
+ return (_jsx(Trash, { onNavigate: navigate, config: config, parent: { label: 'Posts', path: '/posts' } }));
366
+ }
340
367
  if (matchRoute('/trash')) {
341
368
  return _jsx(Trash, { onNavigate: navigate, config: config });
342
369
  }
@@ -344,7 +371,7 @@ function AdminShell({ config, session, basePath = '/admin', initialPath = '/', l
344
371
  return _jsx(McpConsent, { currentPath: currentPath });
345
372
  }
346
373
  if (matchRoute('/jobs')) {
347
- return _jsx(Jobs, { onNavigate: navigate });
374
+ return (_jsx(Jobs, { onNavigate: navigate, role: session?.user?.role, userId: session?.user?.id, config: config }));
348
375
  }
349
376
  // Users + API Keys moved into the Settings view as tabs. The legacy
350
377
  // top-level routes still resolve — they just land on the matching tab.
@@ -395,16 +422,19 @@ function AdminShell({ config, session, basePath = '/admin', initialPath = '/', l
395
422
  // `/collections/posts`.
396
423
  'posts',
397
424
  ]);
425
+ // DocumentEdit is keyed by collection and document ('new' for create) so
426
+ // each URL gets its own editor: opening a created or duplicated document,
427
+ // or going Back to /new, must not reuse the previous one's loaded state.
398
428
  for (const [slug] of collectionMap) {
399
429
  if (RESERVED_SLUGS.has(slug))
400
430
  continue;
401
431
  const newMatch = matchRoute(`/${slug}/new`);
402
432
  if (newMatch) {
403
- return _jsx(DocumentEdit, { collectionSlug: slug, config: config });
433
+ return (_jsx(DocumentEdit, { collectionSlug: slug, config: config, onNavigate: navigate }, `${slug}:new`));
404
434
  }
405
435
  const editMatch = matchRoute(`/${slug}/:id`);
406
436
  if (editMatch?.id) {
407
- return _jsx(DocumentEdit, { collectionSlug: slug, documentId: editMatch.id, config: config });
437
+ return (_jsx(DocumentEdit, { collectionSlug: slug, documentId: editMatch.id, config: config, onNavigate: navigate }, `${slug}:${editMatch.id}`));
408
438
  }
409
439
  if (matchRoute(`/${slug}`)) {
410
440
  return _jsx(CollectionList, { collectionSlug: slug, config: config, onNavigate: navigate });
@@ -412,11 +442,11 @@ function AdminShell({ config, session, basePath = '/admin', initialPath = '/', l
412
442
  }
413
443
  const newCollMatch = matchRoute('/collections/:slug/new');
414
444
  if (newCollMatch?.slug) {
415
- return _jsx(DocumentEdit, { collectionSlug: newCollMatch.slug, config: config });
445
+ return (_jsx(DocumentEdit, { collectionSlug: newCollMatch.slug, config: config, onNavigate: navigate, listPath: `/collections/${newCollMatch.slug}` }, `${newCollMatch.slug}:new`));
416
446
  }
417
447
  const editCollMatch = matchRoute('/collections/:slug/:id');
418
448
  if (editCollMatch?.slug && editCollMatch.id) {
419
- return (_jsx(DocumentEdit, { collectionSlug: editCollMatch.slug, documentId: editCollMatch.id, config: config }));
449
+ return (_jsx(DocumentEdit, { collectionSlug: editCollMatch.slug, documentId: editCollMatch.id, config: config, onNavigate: navigate, listPath: `/collections/${editCollMatch.slug}` }, `${editCollMatch.slug}:${editCollMatch.id}`));
420
450
  }
421
451
  const collectionMatch = matchRoute('/collections/:slug');
422
452
  if (collectionMatch?.slug) {
@@ -424,7 +454,7 @@ function AdminShell({ config, session, basePath = '/admin', initialPath = '/', l
424
454
  }
425
455
  return (_jsxs("div", { className: "flex min-h-[400px] flex-col items-center justify-center p-6 text-center", children: [_jsx("h1", { className: "text-foreground mb-2 text-4xl font-medium", children: "404" }), _jsx("p", { className: "text-muted-foreground mb-4", children: "The page you are looking for does not exist." }), _jsx("button", { onClick: () => navigate('/'), className: "text-primary-foreground bg-primary rounded-md px-4 py-2 text-sm font-medium hover:opacity-90", children: "Back to Dashboard" })] }));
426
456
  }
427
- return (_jsxs(Layout, { config: config, session: session, currentPath: currentPath, onNavigate: navigate, onLogout: handleLogout, children: [_jsx(ErrorBoundary, { children: _jsx(Suspense, { fallback: _jsx(ViewFallback, {}), children: renderView() }) }), _jsx(ShortcutHelp, { open: shortcutHelpOpen, onClose: () => setShortcutHelpOpen(false) })] }));
457
+ return (_jsx(AdminLinksProvider, { value: adminLinks, children: _jsxs(Layout, { config: config, session: session, currentPath: currentPath, onNavigate: navigate, onLogout: handleLogout, children: [_jsx(ErrorBoundary, { children: _jsx(Suspense, { fallback: _jsx(ViewFallback, {}), children: renderView() }) }), _jsx(ShortcutHelp, { open: shortcutHelpOpen, onClose: () => setShortcutHelpOpen(false) })] }) }));
428
458
  }
429
459
  function ShortcutHelp({ open, onClose }) {
430
460
  return (_jsx(Dialog.Root, { open: open, onOpenChange: (next) => !next && onClose(), children: _jsxs(Dialog.Portal, { container: adminPortalContainer(), children: [_jsx(Dialog.Overlay, { className: "fixed inset-0 z-100 bg-black/50" }), _jsxs(Dialog.Content, { "aria-describedby": undefined, className: "bg-card text-card-foreground border-border fixed top-1/2 left-1/2 z-100 mx-4 w-[calc(100%-2rem)] max-w-sm -translate-x-1/2 -translate-y-1/2 rounded-xl border p-6 shadow-2xl focus:outline-none", children: [_jsx(Dialog.Title, { className: "mb-4 text-lg font-medium", children: "Keyboard Shortcuts" }), _jsx("div", { className: "space-y-3 text-sm", children: ADMIN_KEYBOARD_SHORTCUTS.map((row) => (_jsxs("div", { className: "flex items-center justify-between gap-4", children: [_jsx("span", { className: "text-muted-foreground", children: row.label }), _jsx("kbd", { className: "bg-muted rounded px-2 py-1 font-mono text-xs", children: row.keys })] }, row.keys))) }), _jsx(Dialog.Close, { asChild: true, children: _jsx("button", { type: "button", className: "bg-primary text-primary-foreground focus-visible:ring-ring mt-4 w-full rounded-lg py-2 text-sm hover:opacity-90 focus-visible:ring-2 focus-visible:outline-none", children: "Close" }) })] })] }) }));
@@ -457,12 +487,8 @@ function useBranding(config) {
457
487
  else if (branding?.name) {
458
488
  document.title = `${branding.name} Admin`;
459
489
  }
460
- // --- Primary color ---
461
- const adminEl = getAdminRootElement();
462
- if (branding?.primaryColor && adminEl) {
463
- adminEl.style.setProperty('--primary', branding.primaryColor);
464
- adminEl.style.setProperty('--sidebar-primary', branding.primaryColor);
465
- }
490
+ // `branding.primaryColor` is not applied here: ThemeProvider takes it as
491
+ // `accentOverride` and tunes it like any accent (see AdminRoot below).
466
492
  // --- DB favicon (Settings → Appearance) ---
467
493
  // The uploaded favicon is the source of truth for the browser tab. Fetch it
468
494
  // on mount and re-apply whenever the brand is saved, so the tab icon tracks
@@ -499,11 +525,6 @@ function useBranding(config) {
499
525
  if (originalTitleRef.current !== null) {
500
526
  document.title = originalTitleRef.current;
501
527
  }
502
- // Remove primary color override
503
- if (branding?.primaryColor && adminEl) {
504
- adminEl.style.removeProperty('--primary');
505
- adminEl.style.removeProperty('--sidebar-primary');
506
- }
507
528
  };
508
529
  }, [config]);
509
530
  }
@@ -525,10 +546,11 @@ function useAdminPageTitle(config, currentPath) {
525
546
  const EMPTY_RENDERERS = {};
526
547
  export function AdminRoot(props) {
527
548
  const defaultDarkMode = props.config?.admin?.branding?.darkMode;
549
+ const primaryColor = props.config?.admin?.branding?.primaryColor;
528
550
  useRobotsNoIndex();
529
551
  useEffect(() => {
530
552
  initAdminSentry(props.sentryDsn);
531
553
  }, [props.sentryDsn]);
532
- return (_jsx("div", { style: ISOLATION_STYLE, className: "prenta-admin", [ADMIN_ROOT_ATTR]: '', children: _jsx(ThemeProvider, { defaultDarkMode: defaultDarkMode, children: _jsx(LocaleProvider, { config: props.config, children: _jsx(AdminSectionRenderersProvider, { value: props.sectionRenderers ?? EMPTY_RENDERERS, children: _jsx(ThemeChromeProvider, { value: props.themeChrome ?? null, children: _jsx(AdminShell, { ...props }) }) }) }) }) }));
554
+ return (_jsx("div", { style: ISOLATION_STYLE, className: "prenta-admin", [ADMIN_ROOT_ATTR]: '', children: _jsx(ThemeProvider, { defaultDarkMode: defaultDarkMode, accentOverride: primaryColor, children: _jsx(LocaleProvider, { config: props.config, children: _jsx(AdminSectionRenderersProvider, { value: props.sectionRenderers ?? EMPTY_RENDERERS, children: _jsx(ThemeChromeProvider, { value: props.themeChrome ?? null, children: _jsx(AdminShell, { ...props }) }) }) }) }) }));
533
555
  }
534
556
  //# sourceMappingURL=AdminRoot.js.map