@prenta/admin 0.92.0 → 0.94.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 (425) hide show
  1. package/CHANGELOG.md +663 -0
  2. package/design-system/tokens.css +173 -71
  3. package/design-system/tokens.json +244 -63
  4. package/design-system/tokens.scss +203 -98
  5. package/design-system/tokens.tailwind.cjs +93 -38
  6. package/dist/AdminRoot.d.ts +27 -6
  7. package/dist/AdminRoot.d.ts.map +1 -1
  8. package/dist/AdminRoot.js.map +1 -1
  9. package/dist/__tests__/components/breakpoint-controls.render.test.d.ts +2 -0
  10. package/dist/__tests__/components/breakpoint-controls.render.test.d.ts.map +1 -0
  11. package/dist/__tests__/components/breakpoint-controls.render.test.js +51 -0
  12. package/dist/__tests__/components/breakpoint-controls.render.test.js.map +1 -0
  13. package/dist/__tests__/components/canvas-edit-tip.render.test.d.ts +2 -0
  14. package/dist/__tests__/components/canvas-edit-tip.render.test.d.ts.map +1 -0
  15. package/dist/__tests__/components/canvas-edit-tip.render.test.js +37 -0
  16. package/dist/__tests__/components/canvas-edit-tip.render.test.js.map +1 -0
  17. package/dist/__tests__/components/editor-rail.render.test.d.ts +2 -0
  18. package/dist/__tests__/components/editor-rail.render.test.d.ts.map +1 -0
  19. package/dist/__tests__/components/editor-rail.render.test.js +138 -0
  20. package/dist/__tests__/components/editor-rail.render.test.js.map +1 -0
  21. package/dist/__tests__/components/media-block.render.test.d.ts +2 -0
  22. package/dist/__tests__/components/media-block.render.test.d.ts.map +1 -0
  23. package/dist/__tests__/components/media-block.render.test.js +108 -0
  24. package/dist/__tests__/components/media-block.render.test.js.map +1 -0
  25. package/dist/__tests__/components/page-audit-panel.render.test.d.ts +2 -0
  26. package/dist/__tests__/components/page-audit-panel.render.test.d.ts.map +1 -0
  27. package/dist/__tests__/components/page-audit-panel.render.test.js +59 -0
  28. package/dist/__tests__/components/page-audit-panel.render.test.js.map +1 -0
  29. package/dist/__tests__/components/reflow-meter.render.test.d.ts +2 -0
  30. package/dist/__tests__/components/reflow-meter.render.test.d.ts.map +1 -0
  31. package/dist/__tests__/components/reflow-meter.render.test.js +94 -0
  32. package/dist/__tests__/components/reflow-meter.render.test.js.map +1 -0
  33. package/dist/__tests__/components/seo-char-count.test.js +24 -6
  34. package/dist/__tests__/components/seo-char-count.test.js.map +1 -1
  35. package/dist/__tests__/components/serp-preview.render.test.d.ts +2 -0
  36. package/dist/__tests__/components/serp-preview.render.test.d.ts.map +1 -0
  37. package/dist/__tests__/components/serp-preview.render.test.js +25 -0
  38. package/dist/__tests__/components/serp-preview.render.test.js.map +1 -0
  39. package/dist/__tests__/lib/breakpoints.test.d.ts +2 -0
  40. package/dist/__tests__/lib/breakpoints.test.d.ts.map +1 -0
  41. package/dist/__tests__/lib/breakpoints.test.js +67 -0
  42. package/dist/__tests__/lib/breakpoints.test.js.map +1 -0
  43. package/dist/__tests__/lib/canvas-edit-chrome.test.d.ts +2 -0
  44. package/dist/__tests__/lib/canvas-edit-chrome.test.d.ts.map +1 -0
  45. package/dist/__tests__/lib/canvas-edit-chrome.test.js +44 -0
  46. package/dist/__tests__/lib/canvas-edit-chrome.test.js.map +1 -0
  47. package/dist/__tests__/lib/media-format.test.d.ts +2 -0
  48. package/dist/__tests__/lib/media-format.test.d.ts.map +1 -0
  49. package/dist/__tests__/lib/media-format.test.js +70 -0
  50. package/dist/__tests__/lib/media-format.test.js.map +1 -0
  51. package/dist/__tests__/lib/page-audit-input.test.d.ts +2 -0
  52. package/dist/__tests__/lib/page-audit-input.test.d.ts.map +1 -0
  53. package/dist/__tests__/lib/page-audit-input.test.js +122 -0
  54. package/dist/__tests__/lib/page-audit-input.test.js.map +1 -0
  55. package/dist/__tests__/lib/page-editor-service.test.js +2 -0
  56. package/dist/__tests__/lib/page-editor-service.test.js.map +1 -1
  57. package/dist/__tests__/lib/page-redirect.test.d.ts +2 -0
  58. package/dist/__tests__/lib/page-redirect.test.d.ts.map +1 -0
  59. package/dist/__tests__/lib/page-redirect.test.js +26 -0
  60. package/dist/__tests__/lib/page-redirect.test.js.map +1 -0
  61. package/dist/__tests__/lib/rail-width.test.d.ts +2 -0
  62. package/dist/__tests__/lib/rail-width.test.d.ts.map +1 -0
  63. package/dist/__tests__/lib/rail-width.test.js +69 -0
  64. package/dist/__tests__/lib/rail-width.test.js.map +1 -0
  65. package/dist/__tests__/lib/reflow-baseline.test.d.ts +2 -0
  66. package/dist/__tests__/lib/reflow-baseline.test.d.ts.map +1 -0
  67. package/dist/__tests__/lib/reflow-baseline.test.js +56 -0
  68. package/dist/__tests__/lib/reflow-baseline.test.js.map +1 -0
  69. package/dist/__tests__/lib/reflow-probe.test.d.ts +2 -0
  70. package/dist/__tests__/lib/reflow-probe.test.d.ts.map +1 -0
  71. package/dist/__tests__/lib/reflow-probe.test.js +73 -0
  72. package/dist/__tests__/lib/reflow-probe.test.js.map +1 -0
  73. package/dist/__tests__/lib/version-diff.test.d.ts +2 -0
  74. package/dist/__tests__/lib/version-diff.test.d.ts.map +1 -0
  75. package/dist/__tests__/lib/version-diff.test.js +230 -0
  76. package/dist/__tests__/lib/version-diff.test.js.map +1 -0
  77. package/dist/__tests__/lib/version-history.test.d.ts +2 -0
  78. package/dist/__tests__/lib/version-history.test.d.ts.map +1 -0
  79. package/dist/__tests__/lib/version-history.test.js +125 -0
  80. package/dist/__tests__/lib/version-history.test.js.map +1 -0
  81. package/dist/__tests__/styles/canvas-container-queries.test.d.ts +2 -0
  82. package/dist/__tests__/styles/canvas-container-queries.test.d.ts.map +1 -0
  83. package/dist/__tests__/styles/canvas-container-queries.test.js +87 -0
  84. package/dist/__tests__/styles/canvas-container-queries.test.js.map +1 -0
  85. package/dist/__tests__/styles/packaging.test.d.ts +2 -0
  86. package/dist/__tests__/styles/packaging.test.d.ts.map +1 -0
  87. package/dist/__tests__/styles/packaging.test.js +31 -0
  88. package/dist/__tests__/styles/packaging.test.js.map +1 -0
  89. package/dist/__tests__/styles/responsive-layer.test.d.ts +2 -0
  90. package/dist/__tests__/styles/responsive-layer.test.d.ts.map +1 -0
  91. package/dist/__tests__/styles/responsive-layer.test.js +127 -0
  92. package/dist/__tests__/styles/responsive-layer.test.js.map +1 -0
  93. package/dist/__tests__/styles/tokens-drift.test.d.ts +2 -0
  94. package/dist/__tests__/styles/tokens-drift.test.d.ts.map +1 -0
  95. package/dist/__tests__/styles/tokens-drift.test.js +92 -0
  96. package/dist/__tests__/styles/tokens-drift.test.js.map +1 -0
  97. package/dist/__tests__/views/admin-renderer-compat.test.d.ts +2 -0
  98. package/dist/__tests__/views/admin-renderer-compat.test.d.ts.map +1 -0
  99. package/dist/__tests__/views/admin-renderer-compat.test.js +43 -0
  100. package/dist/__tests__/views/admin-renderer-compat.test.js.map +1 -0
  101. package/dist/__tests__/views/admin-section-renderers.test.js +52 -4
  102. package/dist/__tests__/views/admin-section-renderers.test.js.map +1 -1
  103. package/dist/__tests__/views/canvas-review-mode.render.test.d.ts +2 -0
  104. package/dist/__tests__/views/canvas-review-mode.render.test.d.ts.map +1 -0
  105. package/dist/__tests__/views/canvas-review-mode.render.test.js +70 -0
  106. package/dist/__tests__/views/canvas-review-mode.render.test.js.map +1 -0
  107. package/dist/__tests__/views/editor-top-bar.render.test.js +30 -1
  108. package/dist/__tests__/views/editor-top-bar.render.test.js.map +1 -1
  109. package/dist/__tests__/views/page-tab.render.test.d.ts +2 -0
  110. package/dist/__tests__/views/page-tab.render.test.d.ts.map +1 -0
  111. package/dist/__tests__/views/page-tab.render.test.js +151 -0
  112. package/dist/__tests__/views/page-tab.render.test.js.map +1 -0
  113. package/dist/__tests__/views/section-class-parity.test.d.ts +2 -0
  114. package/dist/__tests__/views/section-class-parity.test.d.ts.map +1 -0
  115. package/dist/__tests__/views/section-class-parity.test.js +81 -0
  116. package/dist/__tests__/views/section-class-parity.test.js.map +1 -0
  117. package/dist/__tests__/views/sections-panel-design-owned.render.test.d.ts +2 -0
  118. package/dist/__tests__/views/sections-panel-design-owned.render.test.d.ts.map +1 -0
  119. package/dist/__tests__/views/sections-panel-design-owned.render.test.js +86 -0
  120. package/dist/__tests__/views/sections-panel-design-owned.render.test.js.map +1 -0
  121. package/dist/__tests__/views/version-history-panel.render.test.d.ts +2 -0
  122. package/dist/__tests__/views/version-history-panel.render.test.d.ts.map +1 -0
  123. package/dist/__tests__/views/version-history-panel.render.test.js +153 -0
  124. package/dist/__tests__/views/version-history-panel.render.test.js.map +1 -0
  125. package/dist/components/BreakpointPicker.d.ts +18 -0
  126. package/dist/components/BreakpointPicker.d.ts.map +1 -0
  127. package/dist/components/BreakpointPicker.js +31 -0
  128. package/dist/components/BreakpointPicker.js.map +1 -0
  129. package/dist/components/CanvasEditTip.d.ts +6 -0
  130. package/dist/components/CanvasEditTip.d.ts.map +1 -0
  131. package/dist/components/CanvasEditTip.js +22 -0
  132. package/dist/components/CanvasEditTip.js.map +1 -0
  133. package/dist/components/EditorRail.d.ts +36 -0
  134. package/dist/components/EditorRail.d.ts.map +1 -0
  135. package/dist/components/EditorRail.js +104 -0
  136. package/dist/components/EditorRail.js.map +1 -0
  137. package/dist/components/EditorRailTabs.d.ts +32 -0
  138. package/dist/components/EditorRailTabs.d.ts.map +1 -0
  139. package/dist/components/EditorRailTabs.js +45 -0
  140. package/dist/components/EditorRailTabs.js.map +1 -0
  141. package/dist/components/MediaBlock.d.ts +49 -0
  142. package/dist/components/MediaBlock.d.ts.map +1 -0
  143. package/dist/components/MediaBlock.js +50 -0
  144. package/dist/components/MediaBlock.js.map +1 -0
  145. package/dist/components/ReflowMeter.d.ts +28 -0
  146. package/dist/components/ReflowMeter.d.ts.map +1 -0
  147. package/dist/components/ReflowMeter.js +42 -0
  148. package/dist/components/ReflowMeter.js.map +1 -0
  149. package/dist/components/ZoomChip.d.ts +17 -0
  150. package/dist/components/ZoomChip.d.ts.map +1 -0
  151. package/dist/components/ZoomChip.js +17 -0
  152. package/dist/components/ZoomChip.js.map +1 -0
  153. package/dist/components/breakpoint-icons.d.ts +3 -0
  154. package/dist/components/breakpoint-icons.d.ts.map +1 -0
  155. package/dist/components/breakpoint-icons.js +16 -0
  156. package/dist/components/breakpoint-icons.js.map +1 -0
  157. package/dist/components/page-tab/AuthorPicker.d.ts +31 -0
  158. package/dist/components/page-tab/AuthorPicker.d.ts.map +1 -0
  159. package/dist/components/page-tab/AuthorPicker.js +95 -0
  160. package/dist/components/page-tab/AuthorPicker.js.map +1 -0
  161. package/dist/components/page-tab/DirectiveSwitch.d.ts +38 -0
  162. package/dist/components/page-tab/DirectiveSwitch.d.ts.map +1 -0
  163. package/dist/components/page-tab/DirectiveSwitch.js +33 -0
  164. package/dist/components/page-tab/DirectiveSwitch.js.map +1 -0
  165. package/dist/components/seo/EditorSeoScoreBadge.d.ts +8 -1
  166. package/dist/components/seo/EditorSeoScoreBadge.d.ts.map +1 -1
  167. package/dist/components/seo/EditorSeoScoreBadge.js +2 -2
  168. package/dist/components/seo/EditorSeoScoreBadge.js.map +1 -1
  169. package/dist/components/seo/PageAuditPanel.d.ts +14 -0
  170. package/dist/components/seo/PageAuditPanel.d.ts.map +1 -0
  171. package/dist/components/seo/PageAuditPanel.js +59 -0
  172. package/dist/components/seo/PageAuditPanel.js.map +1 -0
  173. package/dist/components/seo/SeoCharCount.d.ts +19 -7
  174. package/dist/components/seo/SeoCharCount.d.ts.map +1 -1
  175. package/dist/components/seo/SeoCharCount.js +30 -16
  176. package/dist/components/seo/SeoCharCount.js.map +1 -1
  177. package/dist/components/seo/SeoEditorPane.d.ts +15 -1
  178. package/dist/components/seo/SeoEditorPane.d.ts.map +1 -1
  179. package/dist/components/seo/SeoEditorPane.js +118 -21
  180. package/dist/components/seo/SeoEditorPane.js.map +1 -1
  181. package/dist/components/seo/SerpPreview.d.ts +20 -0
  182. package/dist/components/seo/SerpPreview.d.ts.map +1 -0
  183. package/dist/components/seo/SerpPreview.js +6 -0
  184. package/dist/components/seo/SerpPreview.js.map +1 -0
  185. package/dist/hooks/usePageAudit.d.ts +41 -0
  186. package/dist/hooks/usePageAudit.d.ts.map +1 -0
  187. package/dist/hooks/usePageAudit.js +68 -0
  188. package/dist/hooks/usePageAudit.js.map +1 -0
  189. package/dist/hooks/useReflowGuard.d.ts +47 -0
  190. package/dist/hooks/useReflowGuard.d.ts.map +1 -0
  191. package/dist/hooks/useReflowGuard.js +52 -0
  192. package/dist/hooks/useReflowGuard.js.map +1 -0
  193. package/dist/layout/primitives/AdminShell.d.ts.map +1 -1
  194. package/dist/layout/primitives/AdminShell.js +2 -2
  195. package/dist/layout/primitives/AdminShell.js.map +1 -1
  196. package/dist/lib/breakpoints.d.ts +51 -0
  197. package/dist/lib/breakpoints.d.ts.map +1 -0
  198. package/dist/lib/breakpoints.js +84 -0
  199. package/dist/lib/breakpoints.js.map +1 -0
  200. package/dist/lib/canvas-edit-chrome.d.ts +22 -0
  201. package/dist/lib/canvas-edit-chrome.d.ts.map +1 -0
  202. package/dist/lib/canvas-edit-chrome.js +81 -0
  203. package/dist/lib/canvas-edit-chrome.js.map +1 -0
  204. package/dist/lib/media-format.d.ts +55 -0
  205. package/dist/lib/media-format.d.ts.map +1 -0
  206. package/dist/lib/media-format.js +93 -0
  207. package/dist/lib/media-format.js.map +1 -0
  208. package/dist/lib/page-audit-input.d.ts +45 -0
  209. package/dist/lib/page-audit-input.d.ts.map +1 -0
  210. package/dist/lib/page-audit-input.js +53 -0
  211. package/dist/lib/page-audit-input.js.map +1 -0
  212. package/dist/lib/page-editor-service.d.ts +12 -0
  213. package/dist/lib/page-editor-service.d.ts.map +1 -1
  214. package/dist/lib/page-editor-service.js +6 -0
  215. package/dist/lib/page-editor-service.js.map +1 -1
  216. package/dist/lib/page-redirect.d.ts +39 -0
  217. package/dist/lib/page-redirect.d.ts.map +1 -0
  218. package/dist/lib/page-redirect.js +38 -0
  219. package/dist/lib/page-redirect.js.map +1 -0
  220. package/dist/lib/rail-width.d.ts +23 -0
  221. package/dist/lib/rail-width.d.ts.map +1 -0
  222. package/dist/lib/rail-width.js +59 -0
  223. package/dist/lib/rail-width.js.map +1 -0
  224. package/dist/lib/reflow-baseline.d.ts +45 -0
  225. package/dist/lib/reflow-baseline.d.ts.map +1 -0
  226. package/dist/lib/reflow-baseline.js +38 -0
  227. package/dist/lib/reflow-baseline.js.map +1 -0
  228. package/dist/lib/reflow-probe.d.ts +159 -0
  229. package/dist/lib/reflow-probe.d.ts.map +1 -0
  230. package/dist/lib/reflow-probe.js +228 -0
  231. package/dist/lib/reflow-probe.js.map +1 -0
  232. package/dist/lib/seo-service.d.ts +10 -0
  233. package/dist/lib/seo-service.d.ts.map +1 -1
  234. package/dist/lib/seo-service.js.map +1 -1
  235. package/dist/lib/version-diff.d.ts +50 -0
  236. package/dist/lib/version-diff.d.ts.map +1 -0
  237. package/dist/lib/version-diff.js +294 -0
  238. package/dist/lib/version-diff.js.map +1 -0
  239. package/dist/lib/version-history.d.ts +73 -0
  240. package/dist/lib/version-history.d.ts.map +1 -0
  241. package/dist/lib/version-history.js +126 -0
  242. package/dist/lib/version-history.js.map +1 -0
  243. package/dist/prenta-admin.css +1 -1
  244. package/dist/views/page-editor/CanvasMetaLine.d.ts +19 -0
  245. package/dist/views/page-editor/CanvasMetaLine.d.ts.map +1 -0
  246. package/dist/views/page-editor/CanvasMetaLine.js +23 -0
  247. package/dist/views/page-editor/CanvasMetaLine.js.map +1 -0
  248. package/dist/views/page-editor/EditorCanvas.d.ts +47 -8
  249. package/dist/views/page-editor/EditorCanvas.d.ts.map +1 -1
  250. package/dist/views/page-editor/EditorCanvas.js +68 -34
  251. package/dist/views/page-editor/EditorCanvas.js.map +1 -1
  252. package/dist/views/page-editor/EditorTopBar.d.ts +21 -2
  253. package/dist/views/page-editor/EditorTopBar.d.ts.map +1 -1
  254. package/dist/views/page-editor/EditorTopBar.js +13 -20
  255. package/dist/views/page-editor/EditorTopBar.js.map +1 -1
  256. package/dist/views/page-editor/PageSectionEditor.d.ts.map +1 -1
  257. package/dist/views/page-editor/PageSectionEditor.js +383 -78
  258. package/dist/views/page-editor/PageSectionEditor.js.map +1 -1
  259. package/dist/views/page-editor/PageTab.d.ts +36 -0
  260. package/dist/views/page-editor/PageTab.d.ts.map +1 -0
  261. package/dist/views/page-editor/PageTab.js +65 -0
  262. package/dist/views/page-editor/PageTab.js.map +1 -0
  263. package/dist/views/page-editor/ReviewBar.d.ts +21 -0
  264. package/dist/views/page-editor/ReviewBar.d.ts.map +1 -0
  265. package/dist/views/page-editor/ReviewBar.js +22 -0
  266. package/dist/views/page-editor/ReviewBar.js.map +1 -0
  267. package/dist/views/page-editor/SectionInspector.d.ts.map +1 -1
  268. package/dist/views/page-editor/SectionInspector.js +64 -20
  269. package/dist/views/page-editor/SectionInspector.js.map +1 -1
  270. package/dist/views/page-editor/SectionsPanel.d.ts +30 -5
  271. package/dist/views/page-editor/SectionsPanel.d.ts.map +1 -1
  272. package/dist/views/page-editor/SectionsPanel.js +38 -7
  273. package/dist/views/page-editor/SectionsPanel.js.map +1 -1
  274. package/dist/views/page-editor/SitePreviewFrame.d.ts.map +1 -1
  275. package/dist/views/page-editor/SitePreviewFrame.js +3 -0
  276. package/dist/views/page-editor/SitePreviewFrame.js.map +1 -1
  277. package/dist/views/page-editor/VersionHistoryPanel.d.ts +29 -0
  278. package/dist/views/page-editor/VersionHistoryPanel.d.ts.map +1 -0
  279. package/dist/views/page-editor/VersionHistoryPanel.js +81 -0
  280. package/dist/views/page-editor/VersionHistoryPanel.js.map +1 -0
  281. package/dist/views/page-editor/reflow-context.d.ts +28 -0
  282. package/dist/views/page-editor/reflow-context.d.ts.map +1 -0
  283. package/dist/views/page-editor/reflow-context.js +14 -0
  284. package/dist/views/page-editor/reflow-context.js.map +1 -0
  285. package/dist/views/page-editor/sections/ByTheNumbersSection.d.ts.map +1 -1
  286. package/dist/views/page-editor/sections/ByTheNumbersSection.js +1 -1
  287. package/dist/views/page-editor/sections/ByTheNumbersSection.js.map +1 -1
  288. package/dist/views/page-editor/sections/CtaBannerSection.d.ts.map +1 -1
  289. package/dist/views/page-editor/sections/CtaBannerSection.js +1 -1
  290. package/dist/views/page-editor/sections/CtaBannerSection.js.map +1 -1
  291. package/dist/views/page-editor/sections/FeatureHighlightSection.d.ts.map +1 -1
  292. package/dist/views/page-editor/sections/FeatureHighlightSection.js +2 -2
  293. package/dist/views/page-editor/sections/FeatureHighlightSection.js.map +1 -1
  294. package/dist/views/page-editor/sections/GallerySection.d.ts.map +1 -1
  295. package/dist/views/page-editor/sections/GallerySection.js +7 -3
  296. package/dist/views/page-editor/sections/GallerySection.js.map +1 -1
  297. package/dist/views/page-editor/sections/HeroBannerSection.js +1 -1
  298. package/dist/views/page-editor/sections/HeroBannerSection.js.map +1 -1
  299. package/dist/views/page-editor/sections/MissionSection.d.ts.map +1 -1
  300. package/dist/views/page-editor/sections/MissionSection.js +1 -1
  301. package/dist/views/page-editor/sections/MissionSection.js.map +1 -1
  302. package/dist/views/page-editor/sections/PullQuoteSection.d.ts.map +1 -1
  303. package/dist/views/page-editor/sections/PullQuoteSection.js +1 -1
  304. package/dist/views/page-editor/sections/PullQuoteSection.js.map +1 -1
  305. package/dist/views/page-editor/sections/RelatedPostsSection.d.ts.map +1 -1
  306. package/dist/views/page-editor/sections/RelatedPostsSection.js +1 -1
  307. package/dist/views/page-editor/sections/RelatedPostsSection.js.map +1 -1
  308. package/dist/views/page-editor/sections/SectionRenderer.d.ts +13 -1
  309. package/dist/views/page-editor/sections/SectionRenderer.d.ts.map +1 -1
  310. package/dist/views/page-editor/sections/SectionRenderer.js +66 -26
  311. package/dist/views/page-editor/sections/SectionRenderer.js.map +1 -1
  312. package/dist/views/page-editor/sections/admin-renderers.d.ts +47 -15
  313. package/dist/views/page-editor/sections/admin-renderers.d.ts.map +1 -1
  314. package/dist/views/page-editor/sections/admin-renderers.js +27 -15
  315. package/dist/views/page-editor/sections/admin-renderers.js.map +1 -1
  316. package/dist/views/page-editor/sections/parts.d.ts +0 -1
  317. package/dist/views/page-editor/sections/parts.d.ts.map +1 -1
  318. package/dist/views/page-editor/sections/parts.js +41 -16
  319. package/dist/views/page-editor/sections/parts.js.map +1 -1
  320. package/dist/views/page-editor/viewports.d.ts +7 -14
  321. package/dist/views/page-editor/viewports.d.ts.map +1 -1
  322. package/dist/views/page-editor/viewports.js +7 -12
  323. package/dist/views/page-editor/viewports.js.map +1 -1
  324. package/dist/views/post-editor/PostEditorCanvas.d.ts +2 -1
  325. package/dist/views/post-editor/PostEditorCanvas.d.ts.map +1 -1
  326. package/dist/views/post-editor/PostEditorCanvas.js +5 -2
  327. package/dist/views/post-editor/PostEditorCanvas.js.map +1 -1
  328. package/dist/views/post-editor/PostSectionEditor.d.ts.map +1 -1
  329. package/dist/views/post-editor/PostSectionEditor.js +2 -20
  330. package/dist/views/post-editor/PostSectionEditor.js.map +1 -1
  331. package/dist/views/post-editor/PostTemplateEditor.d.ts.map +1 -1
  332. package/dist/views/post-editor/PostTemplateEditor.js +4 -1
  333. package/dist/views/post-editor/PostTemplateEditor.js.map +1 -1
  334. package/package.json +5 -3
  335. package/src/AdminRoot.tsx +27 -6
  336. package/src/__tests__/components/breakpoint-controls.render.test.tsx +57 -0
  337. package/src/__tests__/components/canvas-edit-tip.render.test.tsx +41 -0
  338. package/src/__tests__/components/editor-rail.render.test.tsx +192 -0
  339. package/src/__tests__/components/media-block.render.test.tsx +126 -0
  340. package/src/__tests__/components/page-audit-panel.render.test.tsx +64 -0
  341. package/src/__tests__/components/reflow-meter.render.test.tsx +144 -0
  342. package/src/__tests__/components/seo-char-count.test.tsx +26 -6
  343. package/src/__tests__/components/serp-preview.render.test.tsx +32 -0
  344. package/src/__tests__/lib/breakpoints.test.ts +84 -0
  345. package/src/__tests__/lib/canvas-edit-chrome.test.ts +56 -0
  346. package/src/__tests__/lib/media-format.test.ts +89 -0
  347. package/src/__tests__/lib/page-audit-input.test.ts +144 -0
  348. package/src/__tests__/lib/page-editor-service.test.ts +2 -0
  349. package/src/__tests__/lib/page-redirect.test.ts +29 -0
  350. package/src/__tests__/lib/rail-width.test.ts +86 -0
  351. package/src/__tests__/lib/reflow-baseline.test.ts +64 -0
  352. package/src/__tests__/lib/reflow-probe.test.ts +95 -0
  353. package/src/__tests__/lib/version-diff.test.ts +278 -0
  354. package/src/__tests__/lib/version-history.test.ts +166 -0
  355. package/src/__tests__/styles/canvas-container-queries.test.ts +103 -0
  356. package/src/__tests__/styles/packaging.test.ts +38 -0
  357. package/src/__tests__/styles/responsive-layer.test.ts +152 -0
  358. package/src/__tests__/styles/tokens-drift.test.ts +110 -0
  359. package/src/__tests__/views/admin-renderer-compat.test.ts +48 -0
  360. package/src/__tests__/views/admin-section-renderers.test.tsx +70 -4
  361. package/src/__tests__/views/canvas-review-mode.render.test.tsx +94 -0
  362. package/src/__tests__/views/editor-top-bar.render.test.tsx +43 -1
  363. package/src/__tests__/views/page-tab.render.test.tsx +226 -0
  364. package/src/__tests__/views/section-class-parity.test.ts +98 -0
  365. package/src/__tests__/views/sections-panel-design-owned.render.test.tsx +104 -0
  366. package/src/__tests__/views/version-history-panel.render.test.tsx +195 -0
  367. package/src/components/BreakpointPicker.tsx +114 -0
  368. package/src/components/CanvasEditTip.tsx +46 -0
  369. package/src/components/EditorRail.tsx +219 -0
  370. package/src/components/EditorRailTabs.tsx +117 -0
  371. package/src/components/MediaBlock.tsx +223 -0
  372. package/src/components/ReflowMeter.tsx +125 -0
  373. package/src/components/ZoomChip.tsx +39 -0
  374. package/src/components/breakpoint-icons.ts +17 -0
  375. package/src/components/page-tab/AuthorPicker.tsx +240 -0
  376. package/src/components/page-tab/DirectiveSwitch.tsx +89 -0
  377. package/src/components/seo/EditorSeoScoreBadge.tsx +9 -1
  378. package/src/components/seo/PageAuditPanel.tsx +192 -0
  379. package/src/components/seo/SeoCharCount.tsx +55 -24
  380. package/src/components/seo/SeoEditorPane.tsx +213 -31
  381. package/src/components/seo/SerpPreview.tsx +41 -0
  382. package/src/hooks/usePageAudit.ts +98 -0
  383. package/src/hooks/useReflowGuard.ts +96 -0
  384. package/src/layout/primitives/AdminShell.tsx +13 -1
  385. package/src/lib/breakpoints.ts +107 -0
  386. package/src/lib/canvas-edit-chrome.ts +82 -0
  387. package/src/lib/media-format.ts +99 -0
  388. package/src/lib/page-audit-input.ts +104 -0
  389. package/src/lib/page-editor-service.ts +18 -0
  390. package/src/lib/page-redirect.ts +60 -0
  391. package/src/lib/rail-width.ts +58 -0
  392. package/src/lib/reflow-baseline.ts +70 -0
  393. package/src/lib/reflow-probe.ts +299 -0
  394. package/src/lib/seo-service.ts +10 -0
  395. package/src/lib/version-diff.ts +376 -0
  396. package/src/lib/version-history.ts +192 -0
  397. package/src/styles/prenta-tokens.css +120 -42
  398. package/src/styles/responsive.css +281 -0
  399. package/src/styles/theme.css +138 -0
  400. package/src/views/page-editor/CanvasMetaLine.tsx +50 -0
  401. package/src/views/page-editor/EditorCanvas.tsx +140 -54
  402. package/src/views/page-editor/EditorTopBar.tsx +55 -51
  403. package/src/views/page-editor/PageSectionEditor.tsx +575 -185
  404. package/src/views/page-editor/PageTab.tsx +433 -0
  405. package/src/views/page-editor/ReviewBar.tsx +76 -0
  406. package/src/views/page-editor/SectionInspector.tsx +84 -42
  407. package/src/views/page-editor/SectionsPanel.tsx +282 -141
  408. package/src/views/page-editor/SitePreviewFrame.tsx +3 -0
  409. package/src/views/page-editor/VersionHistoryPanel.tsx +302 -0
  410. package/src/views/page-editor/reflow-context.ts +43 -0
  411. package/src/views/page-editor/sections/ByTheNumbersSection.tsx +3 -2
  412. package/src/views/page-editor/sections/CtaBannerSection.tsx +3 -1
  413. package/src/views/page-editor/sections/FeatureHighlightSection.tsx +3 -2
  414. package/src/views/page-editor/sections/GallerySection.tsx +7 -3
  415. package/src/views/page-editor/sections/HeroBannerSection.tsx +2 -2
  416. package/src/views/page-editor/sections/MissionSection.tsx +4 -2
  417. package/src/views/page-editor/sections/PullQuoteSection.tsx +3 -1
  418. package/src/views/page-editor/sections/RelatedPostsSection.tsx +2 -1
  419. package/src/views/page-editor/sections/SectionRenderer.tsx +115 -34
  420. package/src/views/page-editor/sections/admin-renderers.tsx +54 -15
  421. package/src/views/page-editor/sections/parts.tsx +46 -18
  422. package/src/views/page-editor/viewports.ts +13 -26
  423. package/src/views/post-editor/PostEditorCanvas.tsx +18 -11
  424. package/src/views/post-editor/PostSectionEditor.tsx +1 -56
  425. package/src/views/post-editor/PostTemplateEditor.tsx +3 -0
@@ -1,72 +1,144 @@
1
1
  {
2
2
  "$schema": "https://design-tokens.github.io/community-group/format/",
3
3
  "name": "PrentaCMS",
4
- "version": "1.0.0",
5
- "description": "Design tokens for the PrentaCMS admin interface. Two themes: light (default) and dark.",
4
+ "version": "2.0.0",
5
+ "description": "Design tokens for the PrentaCMS admin interface. Two themes: light (default) and dark. THIS FILE IS THE SOURCE OF TRUTH — tokens.css, tokens.scss, tokens.tailwind.cjs, and src/styles/prenta-tokens.css are all generated from it by `pnpm --filter @prenta/admin generate`. Never hand-edit a generated file.",
6
+ "conventions": {
7
+ "var": "Every token carries the exact CSS custom property it emits. The generator never derives a name — a rename happens here or not at all.",
8
+ "aliases": "Deprecated custom property names kept alive so existing rules keep resolving. Emitted after the canonical name. Remove only in a major.",
9
+ "designValue": "Present when the shipped value deliberately differs from the design handoff. The reason belongs in `comment`. This is how a documented deviation stays documented instead of decaying into drift.",
10
+ "scope": "The handoff bundle (design-system/tokens.css) emits :root. The runtime copy (src/styles/prenta-tokens.css) emits .prenta-admin, because the admin mounts inside consumer applications and custom properties resolve by inheritance rather than specificity — a host :root would otherwise win."
11
+ },
6
12
  "color": {
7
13
  "light": {
8
14
  "surface": {
9
- "bg": { "value": "#F5F4FA", "comment": "App background" },
10
- "sb": { "value": "#FFFFFF", "comment": "Sidebar / topbar surface" },
11
- "card": { "value": "#FFFFFF", "comment": "Card / panel surface" },
12
- "bdr": { "value": "#E8E6F2", "comment": "Hairline border" }
15
+ "bg": { "value": "#F5F4FA", "var": "--bg", "comment": "App background" },
16
+ "sb": { "value": "#FFFFFF", "var": "--sb", "comment": "Sidebar / topbar surface" },
17
+ "card": { "value": "#FFFFFF", "var": "--card", "comment": "Card / panel surface" },
18
+ "bdr": { "value": "#E8E6F2", "var": "--bdr", "comment": "Hairline border" }
13
19
  },
14
20
  "text": {
15
- "txt": { "value": "#1A1827", "comment": "Primary text" },
16
- "sub": { "value": "#6B6878", "comment": "Secondary text" },
17
- "muted": { "value": "#B0ADBE", "comment": "Tertiary / placeholder" }
21
+ "txt": { "value": "#1A1827", "var": "--txt", "comment": "Primary text" },
22
+ "sub": { "value": "#6B6878", "var": "--sub", "comment": "Secondary text" },
23
+ "muted": {
24
+ "value": "#716E83",
25
+ "designValue": "#B0ADBE",
26
+ "var": "--muted",
27
+ "comment": "Tertiary text. The handoff value #B0ADBE is 2.2:1 on --card — below WCAG AA. The admin uses --muted as real text (section labels, check hints, canvas meta line, character counters), so it is darkened to 4.6:1 while staying one step lighter than --sub to preserve the hierarchy. Do not revert without also changing every --muted consumer to decorative use."
28
+ }
18
29
  },
19
30
  "accent": {
20
- "acc": { "value": "#7C3AED", "comment": "Accent / interactive" },
21
- "acc-l": { "value": "#EDE9FE", "comment": "Accent tint (hover/active bg)" },
22
- "acc-m": { "value": "#C4B5FD", "comment": "Accent mid (focus ring)" }
31
+ "acc": { "value": "#7C3AED", "var": "--acc", "comment": "Accent / interactive" },
32
+ "acc-l": {
33
+ "value": "#EDE9FE",
34
+ "var": "--acc-l",
35
+ "comment": "Accent tint (hover/active bg)"
36
+ },
37
+ "acc-m": { "value": "#C4B5FD", "var": "--acc-m", "comment": "Accent mid (focus ring)" }
23
38
  },
24
39
  "semantic": {
25
- "suc": { "value": "#059669" },
26
- "suc-l": { "value": "#ECFDF5" },
27
- "warn": { "value": "#D97706" },
28
- "warn-l": { "value": "#FFFBEB" },
29
- "err": { "value": "#DC2626" },
30
- "err-l": { "value": "#FEF2F2" },
31
- "info": { "value": "#0891B2" },
32
- "info-l": { "value": "#E0F7FA" }
40
+ "suc": { "value": "#059669", "var": "--suc" },
41
+ "suc-l": { "value": "#ECFDF5", "var": "--suc-l" },
42
+ "warn": { "value": "#D97706", "var": "--warn" },
43
+ "warn-l": { "value": "#FFFBEB", "var": "--warn-l" },
44
+ "err": { "value": "#DC2626", "var": "--err" },
45
+ "err-l": { "value": "#FEF2F2", "var": "--err-l" },
46
+ "info": { "value": "#0891B2", "var": "--info" },
47
+ "info-l": { "value": "#E0F7FA", "var": "--info-l" }
48
+ },
49
+ "tag": {
50
+ "comment": "Editorial hues for page / post-type pills. Deliberately separate from the semantic ramp so 'pink' is not warning orange and 'blue' is not info cyan.",
51
+ "tag-purple": { "value": "#7C3AED", "var": "--tag-purple" },
52
+ "tag-purple-soft": { "value": "#F3E8FF", "var": "--tag-purple-soft" },
53
+ "tag-green": { "value": "#0F766E", "var": "--tag-green" },
54
+ "tag-green-soft": { "value": "#CCFBF1", "var": "--tag-green-soft" },
55
+ "tag-orange": { "value": "#C2410C", "var": "--tag-orange" },
56
+ "tag-orange-soft": { "value": "#FFEDD5", "var": "--tag-orange-soft" },
57
+ "tag-red": { "value": "#BE123C", "var": "--tag-red" },
58
+ "tag-red-soft": { "value": "#FFE4E6", "var": "--tag-red-soft" },
59
+ "tag-blue": { "value": "#1D4ED8", "var": "--tag-blue" },
60
+ "tag-blue-soft": { "value": "#DBEAFE", "var": "--tag-blue-soft" },
61
+ "tag-pink": { "value": "#DB2777", "var": "--tag-pink" },
62
+ "tag-pink-soft": { "value": "#FCE7F3", "var": "--tag-pink-soft" },
63
+ "tag-gray": { "value": "#64748B", "var": "--tag-gray" },
64
+ "tag-gray-soft": { "value": "#F1F5F9", "var": "--tag-gray-soft" }
33
65
  },
34
66
  "ai": {
35
- "ai1": { "value": "#7C3AED" },
36
- "ai2": { "value": "#C026D3" }
67
+ "ai1": { "value": "#7C3AED", "var": "--ai1" },
68
+ "ai2": { "value": "#C026D3", "var": "--ai2" },
69
+ "ai-soft": {
70
+ "value": "linear-gradient(135deg, rgba(124, 58, 237, 0.09), rgba(192, 38, 211, 0.07))",
71
+ "var": "--ai-soft"
72
+ }
73
+ },
74
+ "control": {
75
+ "toggle-thumb": {
76
+ "value": "#FFFFFF",
77
+ "var": "--toggle-thumb",
78
+ "comment": "Switch knob stays white in both themes per the design system; tokenized so a consumer theme can move it."
79
+ }
37
80
  }
38
81
  },
39
82
  "dark": {
40
83
  "surface": {
41
- "bg": { "value": "#0D0C18" },
42
- "sb": { "value": "#141222" },
43
- "card": { "value": "#1C1A2E" },
44
- "bdr": { "value": "#2C2A42" }
84
+ "bg": { "value": "#0D0C18", "var": "--bg" },
85
+ "sb": { "value": "#141222", "var": "--sb" },
86
+ "card": { "value": "#1C1A2E", "var": "--card" },
87
+ "bdr": { "value": "#2C2A42", "var": "--bdr" }
45
88
  },
46
89
  "text": {
47
- "txt": { "value": "#EAE8F5" },
48
- "sub": { "value": "#8E8BA8" },
49
- "muted": { "value": "#504E68" }
90
+ "txt": { "value": "#EAE8F5", "var": "--txt" },
91
+ "sub": { "value": "#8E8BA8", "var": "--sub" },
92
+ "muted": {
93
+ "value": "#8784A2",
94
+ "designValue": "#504E68",
95
+ "var": "--muted",
96
+ "comment": "Same AA correction as light mode — the handoff value #504E68 is 2.1:1 on --card."
97
+ }
50
98
  },
51
99
  "accent": {
52
- "acc": { "value": "#9D71F0" },
53
- "acc-l": { "value": "#231950" },
54
- "acc-m": { "value": "#5E3EAA" }
100
+ "acc": { "value": "#9D71F0", "var": "--acc" },
101
+ "acc-l": { "value": "#231950", "var": "--acc-l" },
102
+ "acc-m": { "value": "#5E3EAA", "var": "--acc-m" }
55
103
  },
56
104
  "semantic": {
57
- "suc": { "value": "#10B981" },
58
- "suc-l": { "value": "#022C22" },
59
- "warn": { "value": "#FBBF24" },
60
- "warn-l": { "value": "#1A1000" },
61
- "err": { "value": "#F87171" },
62
- "err-l": { "value": "#200808" },
63
- "info": { "value": "#38BDF8" },
64
- "info-l": { "value": "#0A2838" }
105
+ "suc": { "value": "#10B981", "var": "--suc" },
106
+ "suc-l": { "value": "#022C22", "var": "--suc-l" },
107
+ "warn": { "value": "#FBBF24", "var": "--warn" },
108
+ "warn-l": { "value": "#1A1000", "var": "--warn-l" },
109
+ "err": { "value": "#F87171", "var": "--err" },
110
+ "err-l": { "value": "#200808", "var": "--err-l" },
111
+ "info": { "value": "#38BDF8", "var": "--info" },
112
+ "info-l": { "value": "#0A2838", "var": "--info-l" }
113
+ },
114
+ "tag": {
115
+ "tag-purple": { "value": "#A78BFA", "var": "--tag-purple" },
116
+ "tag-purple-soft": { "value": "#2E1065", "var": "--tag-purple-soft" },
117
+ "tag-green": { "value": "#2DD4BF", "var": "--tag-green" },
118
+ "tag-green-soft": { "value": "#042F2E", "var": "--tag-green-soft" },
119
+ "tag-orange": { "value": "#FB923C", "var": "--tag-orange" },
120
+ "tag-orange-soft": { "value": "#431407", "var": "--tag-orange-soft" },
121
+ "tag-red": { "value": "#FB7185", "var": "--tag-red" },
122
+ "tag-red-soft": { "value": "#4C0519", "var": "--tag-red-soft" },
123
+ "tag-blue": { "value": "#60A5FA", "var": "--tag-blue" },
124
+ "tag-blue-soft": { "value": "#1E3A8A", "var": "--tag-blue-soft" },
125
+ "tag-pink": { "value": "#F472B6", "var": "--tag-pink" },
126
+ "tag-pink-soft": { "value": "#500724", "var": "--tag-pink-soft" },
127
+ "tag-gray": { "value": "#94A3B8", "var": "--tag-gray" },
128
+ "tag-gray-soft": { "value": "#1E293B", "var": "--tag-gray-soft" }
129
+ },
130
+ "ai": {
131
+ "ai1": { "value": "#7C3AED", "var": "--ai1" },
132
+ "ai2": { "value": "#C026D3", "var": "--ai2" },
133
+ "ai-soft": {
134
+ "value": "linear-gradient(135deg, rgba(157, 113, 240, 0.16), rgba(192, 38, 211, 0.12))",
135
+ "var": "--ai-soft"
136
+ }
65
137
  }
66
138
  }
67
139
  },
68
140
  "accentOptions": {
69
- "comment": "Selectable admin accent colors (Appearance settings). All swap into --acc.",
141
+ "comment": "Selectable admin accent colors (Appearance settings). All swap into --acc at runtime.",
70
142
  "purple": { "value": "#7C3AED" },
71
143
  "blue": { "value": "#2563EB" },
72
144
  "teal": { "value": "#0D9488" },
@@ -76,35 +148,57 @@
76
148
  "font": {
77
149
  "family": {
78
150
  "sans": {
79
- "value": "'DM Sans', system-ui, -apple-system, sans-serif",
80
- "comment": "UI text"
151
+ "value": "'DM Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
152
+ "var": "--font-sans",
153
+ "comment": "UI text. Self-hosted woff2 under design-system/fonts — never a third-party request, because the admin renders inside consumer applications."
81
154
  },
82
155
  "mono": {
83
- "value": "'DM Mono', ui-monospace, monospace",
84
- "comment": "Code, tokens, keys"
156
+ "value": "'DM Mono', ui-monospace, 'SFMono-Regular', monospace",
157
+ "var": "--font-mono",
158
+ "comment": "Code, robots directives, token names"
85
159
  }
86
160
  },
161
+ "weight": {
162
+ "reg": { "value": "450", "var": "--fw-reg" },
163
+ "med": { "value": "500", "var": "--fw-med" },
164
+ "semi": { "value": "600", "var": "--fw-semi" },
165
+ "bold": { "value": "700", "var": "--fw-bold" }
166
+ },
87
167
  "size": {
88
168
  "page": {
89
169
  "value": "21px",
170
+ "var": "--fs-page",
90
171
  "weight": 700,
91
172
  "letterSpacing": "-0.5px",
92
173
  "comment": "Page title"
93
174
  },
94
175
  "card": {
95
176
  "value": "14px",
177
+ "var": "--fs-card",
96
178
  "weight": 600,
97
179
  "comment": "Card / section title"
98
180
  },
99
181
  "body": {
100
182
  "value": "13px",
183
+ "var": "--fs-body",
101
184
  "weight": 450,
102
185
  "comment": "Body, controls, table cells"
103
186
  },
104
- "sub": { "value": "12px", "weight": 500, "comment": "Secondary / captions" },
105
- "hint": { "value": "11.5px", "weight": 450, "comment": "Hints, metadata" },
187
+ "sub": {
188
+ "value": "12px",
189
+ "var": "--fs-sub",
190
+ "weight": 500,
191
+ "comment": "Secondary / captions"
192
+ },
193
+ "hint": {
194
+ "value": "11.5px",
195
+ "var": "--fs-hint",
196
+ "weight": 450,
197
+ "comment": "Hints, metadata"
198
+ },
106
199
  "label": {
107
200
  "value": "10px",
201
+ "var": "--fs-label",
108
202
  "weight": 600,
109
203
  "letterSpacing": "0.8px",
110
204
  "textTransform": "uppercase",
@@ -113,37 +207,124 @@
113
207
  }
114
208
  },
115
209
  "dimension": {
116
- "sidebarWidth": { "value": "224px" },
117
- "sidebarWidthCollapsed": { "value": "60px" },
118
- "topbarHeight": { "value": "56px" },
119
- "radius": { "value": "10px", "comment": "Base card radius" },
120
- "radiusControl": { "value": "8px", "comment": "Buttons, inputs" },
121
- "radiusSmall": { "value": "6px", "comment": "Badges, tags" },
122
- "radiusPill": { "value": "99px", "comment": "Toggles, progress bars" }
210
+ "layout": {
211
+ "sidebarWidth": { "value": "224px", "var": "--sbw" },
212
+ "sidebarWidthCollapsed": { "value": "60px", "var": "--sbw-col" },
213
+ "topbarHeight": { "value": "56px", "var": "--tbh" }
214
+ },
215
+ "radius": {
216
+ "comment": "Measured from the shipped UI, not aspirational.",
217
+ "sm": {
218
+ "value": "6px",
219
+ "var": "--r-sm",
220
+ "comment": "Small buttons, badges, tags, chips-in-rows"
221
+ },
222
+ "field": { "value": "7px", "var": "--r-field", "comment": "Text inputs, textareas, selects" },
223
+ "ctl": {
224
+ "value": "8px",
225
+ "var": "--r-ctl",
226
+ "aliases": ["--r-control"],
227
+ "comment": "Primary / secondary buttons, dropdowns. --r-control is the pre-2.0 name, kept resolving for existing rules."
228
+ },
229
+ "base": { "value": "10px", "var": "--r", "comment": "Cards and panels" },
230
+ "fig": { "value": "12px", "var": "--r-fig", "comment": "Canvas figures and media frames" },
231
+ "pill": { "value": "99px", "var": "--r-pill", "comment": "Toggles, meters, notice pills" }
232
+ },
233
+ "spacing": {
234
+ "comment": "Named by px so there is no index-to-value guesswork.",
235
+ "2": { "value": "2px", "var": "--sp-2" },
236
+ "4": { "value": "4px", "var": "--sp-4" },
237
+ "6": { "value": "6px", "var": "--sp-6" },
238
+ "8": { "value": "8px", "var": "--sp-8" },
239
+ "10": { "value": "10px", "var": "--sp-10" },
240
+ "12": { "value": "12px", "var": "--sp-12", "comment": "Row padding-y" },
241
+ "14": { "value": "14px", "var": "--sp-14", "comment": "Panel padding" },
242
+ "16": { "value": "16px", "var": "--sp-16", "comment": "Editor header padding-x" },
243
+ "18": { "value": "18px", "var": "--sp-18", "comment": "Canvas gutter top" },
244
+ "20": { "value": "20px", "var": "--sp-20" },
245
+ "24": { "value": "24px", "var": "--sp-24", "comment": "Canvas gutter sides" },
246
+ "28": { "value": "28px", "var": "--sp-28" },
247
+ "32": { "value": "32px", "var": "--sp-32" },
248
+ "40": { "value": "40px", "var": "--sp-40", "comment": "Canvas gutter bottom" }
249
+ },
250
+ "control": {
251
+ "comment": "Primary/secondary buttons (30-31px) and segmented buttons (29px) are padding-derived, not fixed — deliberately not tokenized.",
252
+ "chip": { "value": "26px", "var": "--h-chip", "comment": "Rail buttons, theme toggle" },
253
+ "field": { "value": "33px", "var": "--h-field", "comment": "Text inputs and small buttons" },
254
+ "ctl": {
255
+ "value": "34px",
256
+ "var": "--h-ctl",
257
+ "comment": "Header controls: icon buttons, breakpoint trigger, zoom chip, SEO chip"
258
+ }
259
+ },
260
+ "border": {
261
+ "hairline": { "value": "1px", "var": "--bw" },
262
+ "ctl": { "value": "1.5px", "var": "--bw-ctl", "comment": "Input and card border" },
263
+ "focus": { "value": "2px", "var": "--bw-focus", "comment": "Focus and active outline" },
264
+ "ring": { "value": "0 0 0 3px var(--acc-m)", "var": "--ring", "comment": "Focus ring shadow" }
265
+ }
123
266
  },
124
267
  "elevation": {
125
268
  "light": {
126
269
  "shd": {
127
- "value": "0 1px 2px rgba(0,0,0,.05), 0 1px 4px rgba(0,0,0,.04)",
270
+ "value": "0 1px 2px rgba(0, 0, 0, 0.05), 0 1px 4px rgba(0, 0, 0, 0.04)",
271
+ "var": "--shd",
128
272
  "comment": "Card resting"
129
273
  },
130
274
  "shd2": {
131
- "value": "0 4px 16px rgba(0,0,0,.1)",
275
+ "value": "0 4px 16px rgba(0, 0, 0, 0.1)",
276
+ "var": "--shd2",
132
277
  "comment": "Popovers, modals, hover"
133
278
  }
134
279
  },
135
280
  "dark": {
136
- "shd": { "value": "0 1px 2px rgba(0,0,0,.3), 0 1px 4px rgba(0,0,0,.2)" },
137
- "shd2": { "value": "0 4px 20px rgba(0,0,0,.45)" }
281
+ "shd": {
282
+ "value": "0 1px 2px rgba(0, 0, 0, 0.3), 0 1px 4px rgba(0, 0, 0, 0.2)",
283
+ "var": "--shd"
284
+ },
285
+ "shd2": { "value": "0 4px 20px rgba(0, 0, 0, 0.45)", "var": "--shd2" }
138
286
  }
139
287
  },
140
288
  "motion": {
141
- "fast": { "value": "0.12s", "comment": "Hover / color transitions" },
142
- "base": { "value": "0.18s", "comment": "Toggles, modal-in" },
143
- "layout": {
289
+ "fast": {
290
+ "value": "0.12s",
291
+ "var": "--mo-fast",
292
+ "aliases": ["--motion-fast"],
293
+ "comment": "Hover, color"
294
+ },
295
+ "base": {
296
+ "value": "0.18s",
297
+ "var": "--mo-base",
298
+ "aliases": ["--motion-base"],
299
+ "comment": "Toggles, reveals"
300
+ },
301
+ "slow": {
144
302
  "value": "0.22s",
145
- "easing": "cubic-bezier(.4,0,.2,1)",
146
- "comment": "Sidebar collapse"
303
+ "var": "--mo-slow",
304
+ "comment": "Panels, canvas scale"
305
+ },
306
+ "ease": { "value": "cubic-bezier(0.4, 0, 0.2, 1)", "var": "--ease" },
307
+ "layout": {
308
+ "value": "0.22s cubic-bezier(0.4, 0, 0.2, 1)",
309
+ "var": "--motion-layout",
310
+ "deprecated": true,
311
+ "comment": "Pre-2.0 composite. Use --mo-slow var(--ease) instead."
147
312
  }
313
+ },
314
+ "layer": {
315
+ "comment": "The five layers the UI actually uses. Anything outside this set is a bug.",
316
+ "raise": {
317
+ "value": "2",
318
+ "var": "--z-raise",
319
+ "comment": "Canvas section labels, sticky group headers"
320
+ },
321
+ "resizer": { "value": "30", "var": "--z-resizer", "comment": "Panel drag handle" },
322
+ "overlay": {
323
+ "value": "45",
324
+ "var": "--z-overlay",
325
+ "comment": "In-panel overlays (version history)"
326
+ },
327
+ "menu": { "value": "120", "var": "--z-menu", "comment": "Dropdowns, flyouts" },
328
+ "toast": { "value": "200", "var": "--z-toast" }
148
329
  }
149
330
  }