@bestagentkits/render 0.1.1-next.1 → 0.3.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 (635) hide show
  1. package/CHANGELOG.md +209 -1
  2. package/README.md +324 -44
  3. package/assets/fonts/bricolage-grotesque/OFL.txt +93 -0
  4. package/assets/fonts/fraunces/OFL.txt +93 -0
  5. package/assets/fonts/geist/OFL.txt +93 -0
  6. package/assets/fonts/inter-tight/OFL.txt +93 -0
  7. package/assets/fonts/jetbrains-mono/OFL.txt +93 -0
  8. package/assets/fonts/plus-jakarta-sans/OFL.txt +93 -0
  9. package/dist/blocks/chart/chart-check-kind-rules.d.ts +10 -0
  10. package/dist/blocks/chart/chart-check-kind-rules.d.ts.map +1 -0
  11. package/dist/blocks/chart/chart-check-kind-rules.js +151 -0
  12. package/dist/blocks/chart/chart-check-kind-rules.js.map +1 -0
  13. package/dist/blocks/chart/chart-check.d.ts +15 -0
  14. package/dist/blocks/chart/chart-check.d.ts.map +1 -0
  15. package/dist/blocks/chart/chart-check.js +196 -0
  16. package/dist/blocks/chart/chart-check.js.map +1 -0
  17. package/dist/blocks/chart/chart-encoding-schema.d.ts +7 -0
  18. package/dist/blocks/chart/chart-encoding-schema.d.ts.map +1 -0
  19. package/dist/blocks/chart/chart-encoding-schema.js +39 -0
  20. package/dist/blocks/chart/chart-encoding-schema.js.map +1 -0
  21. package/dist/blocks/chart/chart-encodings.d.ts +29 -0
  22. package/dist/blocks/chart/chart-encodings.d.ts.map +1 -0
  23. package/dist/blocks/chart/chart-encodings.js +59 -0
  24. package/dist/blocks/chart/chart-encodings.js.map +1 -0
  25. package/dist/blocks/chart/chart-kinds.d.ts +18 -0
  26. package/dist/blocks/chart/chart-kinds.d.ts.map +1 -0
  27. package/dist/blocks/chart/chart-kinds.js +60 -0
  28. package/dist/blocks/chart/chart-kinds.js.map +1 -0
  29. package/dist/blocks/chart/chart-model-rows.d.ts +23 -0
  30. package/dist/blocks/chart/chart-model-rows.d.ts.map +1 -0
  31. package/dist/blocks/chart/chart-model-rows.js +153 -0
  32. package/dist/blocks/chart/chart-model-rows.js.map +1 -0
  33. package/dist/blocks/chart/chart-model.d.ts +17 -0
  34. package/dist/blocks/chart/chart-model.d.ts.map +1 -0
  35. package/dist/blocks/chart/chart-model.js +131 -0
  36. package/dist/blocks/chart/chart-model.js.map +1 -0
  37. package/dist/blocks/chart/chart-styles.d.ts +3 -0
  38. package/dist/blocks/chart/chart-styles.d.ts.map +1 -0
  39. package/dist/blocks/chart/chart-styles.js +76 -0
  40. package/dist/blocks/chart/chart-styles.js.map +1 -0
  41. package/dist/blocks/chart/chart.d.ts +12 -0
  42. package/dist/blocks/chart/chart.d.ts.map +1 -0
  43. package/dist/blocks/chart/chart.js +73 -0
  44. package/dist/blocks/chart/chart.js.map +1 -0
  45. package/dist/blocks/chart/index.d.ts +4 -0
  46. package/dist/blocks/chart/index.d.ts.map +1 -0
  47. package/dist/blocks/chart/index.js +8 -0
  48. package/dist/blocks/chart/index.js.map +1 -0
  49. package/dist/blocks/composition/accordion.d.ts +4 -0
  50. package/dist/blocks/composition/accordion.d.ts.map +1 -0
  51. package/dist/blocks/composition/accordion.js +45 -0
  52. package/dist/blocks/composition/accordion.js.map +1 -0
  53. package/dist/blocks/composition/bento.d.ts +4 -0
  54. package/dist/blocks/composition/bento.d.ts.map +1 -0
  55. package/dist/blocks/composition/bento.js +91 -0
  56. package/dist/blocks/composition/bento.js.map +1 -0
  57. package/dist/blocks/composition/carousel.d.ts +4 -0
  58. package/dist/blocks/composition/carousel.d.ts.map +1 -0
  59. package/dist/blocks/composition/carousel.js +51 -0
  60. package/dist/blocks/composition/carousel.js.map +1 -0
  61. package/dist/blocks/composition/composition-runtime.d.ts +14 -0
  62. package/dist/blocks/composition/composition-runtime.d.ts.map +1 -0
  63. package/dist/blocks/composition/composition-runtime.js +136 -0
  64. package/dist/blocks/composition/composition-runtime.js.map +1 -0
  65. package/dist/blocks/composition/composition-styles.d.ts +10 -0
  66. package/dist/blocks/composition/composition-styles.d.ts.map +1 -0
  67. package/dist/blocks/composition/composition-styles.js +80 -0
  68. package/dist/blocks/composition/composition-styles.js.map +1 -0
  69. package/dist/blocks/composition/index.d.ts +4 -0
  70. package/dist/blocks/composition/index.d.ts.map +1 -0
  71. package/dist/blocks/composition/index.js +11 -0
  72. package/dist/blocks/composition/index.js.map +1 -0
  73. package/dist/blocks/composition/nestable-blocks.d.ts +37 -0
  74. package/dist/blocks/composition/nestable-blocks.d.ts.map +1 -0
  75. package/dist/blocks/composition/nestable-blocks.js +92 -0
  76. package/dist/blocks/composition/nestable-blocks.js.map +1 -0
  77. package/dist/blocks/composition/tabs.d.ts +4 -0
  78. package/dist/blocks/composition/tabs.d.ts.map +1 -0
  79. package/dist/blocks/composition/tabs.js +48 -0
  80. package/dist/blocks/composition/tabs.js.map +1 -0
  81. package/dist/blocks/controls/checkbox.d.ts +12 -0
  82. package/dist/blocks/controls/checkbox.d.ts.map +1 -0
  83. package/dist/blocks/controls/checkbox.js +43 -0
  84. package/dist/blocks/controls/checkbox.js.map +1 -0
  85. package/dist/blocks/controls/choice-options.d.ts +24 -0
  86. package/dist/blocks/controls/choice-options.d.ts.map +1 -0
  87. package/dist/blocks/controls/choice-options.js +117 -0
  88. package/dist/blocks/controls/choice-options.js.map +1 -0
  89. package/dist/blocks/controls/control-shared.d.ts +66 -0
  90. package/dist/blocks/controls/control-shared.d.ts.map +1 -0
  91. package/dist/blocks/controls/control-shared.js +241 -0
  92. package/dist/blocks/controls/control-shared.js.map +1 -0
  93. package/dist/blocks/controls/controls-runtime.d.ts +17 -0
  94. package/dist/blocks/controls/controls-runtime.d.ts.map +1 -0
  95. package/dist/blocks/controls/controls-runtime.js +180 -0
  96. package/dist/blocks/controls/controls-runtime.js.map +1 -0
  97. package/dist/blocks/controls/controls-styles.d.ts +14 -0
  98. package/dist/blocks/controls/controls-styles.d.ts.map +1 -0
  99. package/dist/blocks/controls/controls-styles.js +54 -0
  100. package/dist/blocks/controls/controls-styles.js.map +1 -0
  101. package/dist/blocks/controls/date-input.d.ts +6 -0
  102. package/dist/blocks/controls/date-input.d.ts.map +1 -0
  103. package/dist/blocks/controls/date-input.js +58 -0
  104. package/dist/blocks/controls/date-input.js.map +1 -0
  105. package/dist/blocks/controls/field-input.d.ts +10 -0
  106. package/dist/blocks/controls/field-input.d.ts.map +1 -0
  107. package/dist/blocks/controls/field-input.js +20 -0
  108. package/dist/blocks/controls/field-input.js.map +1 -0
  109. package/dist/blocks/controls/filter-bar.d.ts +11 -0
  110. package/dist/blocks/controls/filter-bar.d.ts.map +1 -0
  111. package/dist/blocks/controls/filter-bar.js +115 -0
  112. package/dist/blocks/controls/filter-bar.js.map +1 -0
  113. package/dist/blocks/controls/index.d.ts +4 -0
  114. package/dist/blocks/controls/index.d.ts.map +1 -0
  115. package/dist/blocks/controls/index.js +41 -0
  116. package/dist/blocks/controls/index.js.map +1 -0
  117. package/dist/blocks/controls/number-input.d.ts +4 -0
  118. package/dist/blocks/controls/number-input.d.ts.map +1 -0
  119. package/dist/blocks/controls/number-input.js +62 -0
  120. package/dist/blocks/controls/number-input.js.map +1 -0
  121. package/dist/blocks/controls/radio-group.d.ts +4 -0
  122. package/dist/blocks/controls/radio-group.d.ts.map +1 -0
  123. package/dist/blocks/controls/radio-group.js +56 -0
  124. package/dist/blocks/controls/radio-group.js.map +1 -0
  125. package/dist/blocks/controls/select.d.ts +4 -0
  126. package/dist/blocks/controls/select.d.ts.map +1 -0
  127. package/dist/blocks/controls/select.js +49 -0
  128. package/dist/blocks/controls/select.js.map +1 -0
  129. package/dist/blocks/controls/switch.d.ts +4 -0
  130. package/dist/blocks/controls/switch.d.ts.map +1 -0
  131. package/dist/blocks/controls/switch.js +22 -0
  132. package/dist/blocks/controls/switch.js.map +1 -0
  133. package/dist/blocks/controls/text-input.d.ts +4 -0
  134. package/dist/blocks/controls/text-input.d.ts.map +1 -0
  135. package/dist/blocks/controls/text-input.js +42 -0
  136. package/dist/blocks/controls/text-input.js.map +1 -0
  137. package/dist/blocks/data-table/data-table-cells.d.ts +26 -0
  138. package/dist/blocks/data-table/data-table-cells.d.ts.map +1 -0
  139. package/dist/blocks/data-table/data-table-cells.js +154 -0
  140. package/dist/blocks/data-table/data-table-cells.js.map +1 -0
  141. package/dist/blocks/data-table/data-table-check.d.ts +10 -0
  142. package/dist/blocks/data-table/data-table-check.d.ts.map +1 -0
  143. package/dist/blocks/data-table/data-table-check.js +99 -0
  144. package/dist/blocks/data-table/data-table-check.js.map +1 -0
  145. package/dist/blocks/data-table/data-table-columns.d.ts +41 -0
  146. package/dist/blocks/data-table/data-table-columns.d.ts.map +1 -0
  147. package/dist/blocks/data-table/data-table-columns.js +155 -0
  148. package/dist/blocks/data-table/data-table-columns.js.map +1 -0
  149. package/dist/blocks/data-table/data-table-runtime.d.ts +15 -0
  150. package/dist/blocks/data-table/data-table-runtime.d.ts.map +1 -0
  151. package/dist/blocks/data-table/data-table-runtime.js +106 -0
  152. package/dist/blocks/data-table/data-table-runtime.js.map +1 -0
  153. package/dist/blocks/data-table/data-table-styles.d.ts +11 -0
  154. package/dist/blocks/data-table/data-table-styles.d.ts.map +1 -0
  155. package/dist/blocks/data-table/data-table-styles.js +74 -0
  156. package/dist/blocks/data-table/data-table-styles.js.map +1 -0
  157. package/dist/blocks/data-table/data-table.d.ts +17 -0
  158. package/dist/blocks/data-table/data-table.d.ts.map +1 -0
  159. package/dist/blocks/data-table/data-table.js +159 -0
  160. package/dist/blocks/data-table/data-table.js.map +1 -0
  161. package/dist/blocks/data-table/index.d.ts +4 -0
  162. package/dist/blocks/data-table/index.d.ts.map +1 -0
  163. package/dist/blocks/data-table/index.js +18 -0
  164. package/dist/blocks/data-table/index.js.map +1 -0
  165. package/dist/blocks/engineering/api-endpoint.d.ts +12 -0
  166. package/dist/blocks/engineering/api-endpoint.d.ts.map +1 -0
  167. package/dist/blocks/engineering/api-endpoint.js +174 -0
  168. package/dist/blocks/engineering/api-endpoint.js.map +1 -0
  169. package/dist/blocks/engineering/engineering-helpers.d.ts +49 -0
  170. package/dist/blocks/engineering/engineering-helpers.d.ts.map +1 -0
  171. package/dist/blocks/engineering/engineering-helpers.js +156 -0
  172. package/dist/blocks/engineering/engineering-helpers.js.map +1 -0
  173. package/dist/blocks/engineering/engineering-styles.d.ts +12 -0
  174. package/dist/blocks/engineering/engineering-styles.d.ts.map +1 -0
  175. package/dist/blocks/engineering/engineering-styles.js +174 -0
  176. package/dist/blocks/engineering/engineering-styles.js.map +1 -0
  177. package/dist/blocks/engineering/index.d.ts +4 -0
  178. package/dist/blocks/engineering/index.d.ts.map +1 -0
  179. package/dist/blocks/engineering/index.js +30 -0
  180. package/dist/blocks/engineering/index.js.map +1 -0
  181. package/dist/blocks/engineering/kanban.d.ts +11 -0
  182. package/dist/blocks/engineering/kanban.d.ts.map +1 -0
  183. package/dist/blocks/engineering/kanban.js +162 -0
  184. package/dist/blocks/engineering/kanban.js.map +1 -0
  185. package/dist/blocks/engineering/log-viewer.d.ts +14 -0
  186. package/dist/blocks/engineering/log-viewer.d.ts.map +1 -0
  187. package/dist/blocks/engineering/log-viewer.js +158 -0
  188. package/dist/blocks/engineering/log-viewer.js.map +1 -0
  189. package/dist/blocks/engineering/roadmap.d.ts +13 -0
  190. package/dist/blocks/engineering/roadmap.d.ts.map +1 -0
  191. package/dist/blocks/engineering/roadmap.js +197 -0
  192. package/dist/blocks/engineering/roadmap.js.map +1 -0
  193. package/dist/blocks/engineering/schema-viewer.d.ts +25 -0
  194. package/dist/blocks/engineering/schema-viewer.d.ts.map +1 -0
  195. package/dist/blocks/engineering/schema-viewer.js +124 -0
  196. package/dist/blocks/engineering/schema-viewer.js.map +1 -0
  197. package/dist/blocks/engineering/test-results.d.ts +12 -0
  198. package/dist/blocks/engineering/test-results.d.ts.map +1 -0
  199. package/dist/blocks/engineering/test-results.js +180 -0
  200. package/dist/blocks/engineering/test-results.js.map +1 -0
  201. package/dist/blocks/evidence/annotated-image.d.ts +15 -0
  202. package/dist/blocks/evidence/annotated-image.d.ts.map +1 -0
  203. package/dist/blocks/evidence/annotated-image.js +99 -0
  204. package/dist/blocks/evidence/annotated-image.js.map +1 -0
  205. package/dist/blocks/evidence/benchmark-comparison.d.ts +11 -0
  206. package/dist/blocks/evidence/benchmark-comparison.d.ts.map +1 -0
  207. package/dist/blocks/evidence/benchmark-comparison.js +262 -0
  208. package/dist/blocks/evidence/benchmark-comparison.js.map +1 -0
  209. package/dist/blocks/evidence/benchmark-verdict.d.ts +26 -0
  210. package/dist/blocks/evidence/benchmark-verdict.d.ts.map +1 -0
  211. package/dist/blocks/evidence/benchmark-verdict.js +31 -0
  212. package/dist/blocks/evidence/benchmark-verdict.js.map +1 -0
  213. package/dist/blocks/evidence/evidence-helpers.d.ts +39 -0
  214. package/dist/blocks/evidence/evidence-helpers.d.ts.map +1 -0
  215. package/dist/blocks/evidence/evidence-helpers.js +87 -0
  216. package/dist/blocks/evidence/evidence-helpers.js.map +1 -0
  217. package/dist/blocks/evidence/evidence-styles.d.ts +12 -0
  218. package/dist/blocks/evidence/evidence-styles.d.ts.map +1 -0
  219. package/dist/blocks/evidence/evidence-styles.js +88 -0
  220. package/dist/blocks/evidence/evidence-styles.js.map +1 -0
  221. package/dist/blocks/evidence/index.d.ts +4 -0
  222. package/dist/blocks/evidence/index.d.ts.map +1 -0
  223. package/dist/blocks/evidence/index.js +15 -0
  224. package/dist/blocks/evidence/index.js.map +1 -0
  225. package/dist/blocks/evidence/metric-breakdown.d.ts +22 -0
  226. package/dist/blocks/evidence/metric-breakdown.d.ts.map +1 -0
  227. package/dist/blocks/evidence/metric-breakdown.js +203 -0
  228. package/dist/blocks/evidence/metric-breakdown.js.map +1 -0
  229. package/dist/blocks/evidence/references.d.ts +13 -0
  230. package/dist/blocks/evidence/references.d.ts.map +1 -0
  231. package/dist/blocks/evidence/references.js +103 -0
  232. package/dist/blocks/evidence/references.js.map +1 -0
  233. package/dist/blocks/index.d.ts +8 -0
  234. package/dist/blocks/index.d.ts.map +1 -0
  235. package/dist/blocks/index.js +24 -0
  236. package/dist/blocks/index.js.map +1 -0
  237. package/dist/blocks/layout/grid-item.d.ts +4 -0
  238. package/dist/blocks/layout/grid-item.d.ts.map +1 -0
  239. package/dist/blocks/layout/grid-item.js +65 -0
  240. package/dist/blocks/layout/grid-item.js.map +1 -0
  241. package/dist/blocks/layout/grid.d.ts +9 -0
  242. package/dist/blocks/layout/grid.d.ts.map +1 -0
  243. package/dist/blocks/layout/grid.js +99 -0
  244. package/dist/blocks/layout/grid.js.map +1 -0
  245. package/dist/blocks/layout/index.d.ts +4 -0
  246. package/dist/blocks/layout/index.d.ts.map +1 -0
  247. package/dist/blocks/layout/index.js +23 -0
  248. package/dist/blocks/layout/index.js.map +1 -0
  249. package/dist/blocks/layout/layout-styles.d.ts +40 -0
  250. package/dist/blocks/layout/layout-styles.d.ts.map +1 -0
  251. package/dist/blocks/layout/layout-styles.js +110 -0
  252. package/dist/blocks/layout/layout-styles.js.map +1 -0
  253. package/dist/blocks/layout/main-aside.d.ts +4 -0
  254. package/dist/blocks/layout/main-aside.d.ts.map +1 -0
  255. package/dist/blocks/layout/main-aside.js +21 -0
  256. package/dist/blocks/layout/main-aside.js.map +1 -0
  257. package/dist/blocks/layout/rail-layout.d.ts +4 -0
  258. package/dist/blocks/layout/rail-layout.d.ts.map +1 -0
  259. package/dist/blocks/layout/rail-layout.js +33 -0
  260. package/dist/blocks/layout/rail-layout.js.map +1 -0
  261. package/dist/blocks/layout/semantic-layout-parts.d.ts +14 -0
  262. package/dist/blocks/layout/semantic-layout-parts.d.ts.map +1 -0
  263. package/dist/blocks/layout/semantic-layout-parts.js +9 -0
  264. package/dist/blocks/layout/semantic-layout-parts.js.map +1 -0
  265. package/dist/blocks/layout/sidebar-layout.d.ts +4 -0
  266. package/dist/blocks/layout/sidebar-layout.d.ts.map +1 -0
  267. package/dist/blocks/layout/sidebar-layout.js +30 -0
  268. package/dist/blocks/layout/sidebar-layout.js.map +1 -0
  269. package/dist/blocks/layout/split.d.ts +4 -0
  270. package/dist/blocks/layout/split.d.ts.map +1 -0
  271. package/dist/blocks/layout/split.js +23 -0
  272. package/dist/blocks/layout/split.js.map +1 -0
  273. package/dist/blocks/layout/stack.d.ts +4 -0
  274. package/dist/blocks/layout/stack.d.ts.map +1 -0
  275. package/dist/blocks/layout/stack.js +36 -0
  276. package/dist/blocks/layout/stack.js.map +1 -0
  277. package/dist/blocks/product/calendar-dates.d.ts +59 -0
  278. package/dist/blocks/product/calendar-dates.d.ts.map +1 -0
  279. package/dist/blocks/product/calendar-dates.js +100 -0
  280. package/dist/blocks/product/calendar-dates.js.map +1 -0
  281. package/dist/blocks/product/calendar.d.ts +12 -0
  282. package/dist/blocks/product/calendar.d.ts.map +1 -0
  283. package/dist/blocks/product/calendar.js +125 -0
  284. package/dist/blocks/product/calendar.js.map +1 -0
  285. package/dist/blocks/product/feature-matrix.d.ts +4 -0
  286. package/dist/blocks/product/feature-matrix.d.ts.map +1 -0
  287. package/dist/blocks/product/feature-matrix.js +72 -0
  288. package/dist/blocks/product/feature-matrix.js.map +1 -0
  289. package/dist/blocks/product/gallery.d.ts +14 -0
  290. package/dist/blocks/product/gallery.d.ts.map +1 -0
  291. package/dist/blocks/product/gallery.js +86 -0
  292. package/dist/blocks/product/gallery.js.map +1 -0
  293. package/dist/blocks/product/index.d.ts +4 -0
  294. package/dist/blocks/product/index.d.ts.map +1 -0
  295. package/dist/blocks/product/index.js +40 -0
  296. package/dist/blocks/product/index.js.map +1 -0
  297. package/dist/blocks/product/logo-cloud.d.ts +4 -0
  298. package/dist/blocks/product/logo-cloud.d.ts.map +1 -0
  299. package/dist/blocks/product/logo-cloud.js +42 -0
  300. package/dist/blocks/product/logo-cloud.js.map +1 -0
  301. package/dist/blocks/product/people.d.ts +4 -0
  302. package/dist/blocks/product/people.d.ts.map +1 -0
  303. package/dist/blocks/product/people.js +53 -0
  304. package/dist/blocks/product/people.js.map +1 -0
  305. package/dist/blocks/product/pricing.d.ts +4 -0
  306. package/dist/blocks/product/pricing.d.ts.map +1 -0
  307. package/dist/blocks/product/pricing.js +86 -0
  308. package/dist/blocks/product/pricing.js.map +1 -0
  309. package/dist/blocks/product/product-helpers.d.ts +22 -0
  310. package/dist/blocks/product/product-helpers.d.ts.map +1 -0
  311. package/dist/blocks/product/product-helpers.js +48 -0
  312. package/dist/blocks/product/product-helpers.js.map +1 -0
  313. package/dist/blocks/product/product-runtime.d.ts +15 -0
  314. package/dist/blocks/product/product-runtime.d.ts.map +1 -0
  315. package/dist/blocks/product/product-runtime.js +97 -0
  316. package/dist/blocks/product/product-runtime.js.map +1 -0
  317. package/dist/blocks/product/product-styles.d.ts +14 -0
  318. package/dist/blocks/product/product-styles.d.ts.map +1 -0
  319. package/dist/blocks/product/product-styles.js +120 -0
  320. package/dist/blocks/product/product-styles.js.map +1 -0
  321. package/dist/blocks/product/testimonial.d.ts +8 -0
  322. package/dist/blocks/product/testimonial.d.ts.map +1 -0
  323. package/dist/blocks/product/testimonial.js +67 -0
  324. package/dist/blocks/product/testimonial.js.map +1 -0
  325. package/dist/cli.d.ts +2 -0
  326. package/dist/cli.d.ts.map +1 -1
  327. package/dist/cli.js +193 -39
  328. package/dist/cli.js.map +1 -1
  329. package/dist/data/data-json-schema.d.ts +9 -0
  330. package/dist/data/data-json-schema.d.ts.map +1 -0
  331. package/dist/data/data-json-schema.js +48 -0
  332. package/dist/data/data-json-schema.js.map +1 -0
  333. package/dist/data/dataset-types.d.ts +47 -0
  334. package/dist/data/dataset-types.d.ts.map +1 -0
  335. package/dist/data/dataset-types.js +49 -0
  336. package/dist/data/dataset-types.js.map +1 -0
  337. package/dist/data/format-value.d.ts +39 -0
  338. package/dist/data/format-value.d.ts.map +1 -0
  339. package/dist/data/format-value.js +214 -0
  340. package/dist/data/format-value.js.map +1 -0
  341. package/dist/data/resolve-block-data.d.ts +24 -0
  342. package/dist/data/resolve-block-data.d.ts.map +1 -0
  343. package/dist/data/resolve-block-data.js +190 -0
  344. package/dist/data/resolve-block-data.js.map +1 -0
  345. package/dist/data/transform-pipeline.d.ts +65 -0
  346. package/dist/data/transform-pipeline.d.ts.map +1 -0
  347. package/dist/data/transform-pipeline.js +234 -0
  348. package/dist/data/transform-pipeline.js.map +1 -0
  349. package/dist/data/validate-datasets.d.ts +22 -0
  350. package/dist/data/validate-datasets.d.ts.map +1 -0
  351. package/dist/data/validate-datasets.js +137 -0
  352. package/dist/data/validate-datasets.js.map +1 -0
  353. package/dist/diagram/adapter-markup-fit.d.ts +44 -0
  354. package/dist/diagram/adapter-markup-fit.d.ts.map +1 -0
  355. package/dist/diagram/adapter-markup-fit.js +292 -0
  356. package/dist/diagram/adapter-markup-fit.js.map +1 -0
  357. package/dist/diagram/adapter-stylesheet-filter.d.ts +56 -0
  358. package/dist/diagram/adapter-stylesheet-filter.d.ts.map +1 -0
  359. package/dist/diagram/adapter-stylesheet-filter.js +245 -0
  360. package/dist/diagram/adapter-stylesheet-filter.js.map +1 -0
  361. package/dist/diagram/adapter.d.ts +17 -0
  362. package/dist/diagram/adapter.d.ts.map +1 -1
  363. package/dist/diagram/adapter.js +43 -2
  364. package/dist/diagram/adapter.js.map +1 -1
  365. package/dist/index.d.ts +14 -1
  366. package/dist/index.d.ts.map +1 -1
  367. package/dist/index.js +6 -0
  368. package/dist/index.js.map +1 -1
  369. package/dist/ir.d.ts +18 -0
  370. package/dist/ir.d.ts.map +1 -1
  371. package/dist/ir.js.map +1 -1
  372. package/dist/mcp/mcp-http-transport.d.ts +68 -0
  373. package/dist/mcp/mcp-http-transport.d.ts.map +1 -0
  374. package/dist/mcp/mcp-http-transport.js +140 -0
  375. package/dist/mcp/mcp-http-transport.js.map +1 -0
  376. package/dist/mcp/mcp-json-rpc-dispatch.d.ts +38 -0
  377. package/dist/mcp/mcp-json-rpc-dispatch.d.ts.map +1 -0
  378. package/dist/mcp/mcp-json-rpc-dispatch.js +98 -0
  379. package/dist/mcp/mcp-json-rpc-dispatch.js.map +1 -0
  380. package/dist/mcp/mcp-local-tools.d.ts +20 -0
  381. package/dist/mcp/mcp-local-tools.d.ts.map +1 -0
  382. package/dist/mcp/mcp-local-tools.js +58 -0
  383. package/dist/mcp/mcp-local-tools.js.map +1 -0
  384. package/dist/mcp/mcp-protocol.d.ts +79 -0
  385. package/dist/mcp/mcp-protocol.d.ts.map +1 -0
  386. package/dist/mcp/mcp-protocol.js +83 -0
  387. package/dist/mcp/mcp-protocol.js.map +1 -0
  388. package/dist/mcp/mcp-stdio-transport.d.ts +28 -0
  389. package/dist/mcp/mcp-stdio-transport.d.ts.map +1 -0
  390. package/dist/mcp/mcp-stdio-transport.js +73 -0
  391. package/dist/mcp/mcp-stdio-transport.js.map +1 -0
  392. package/dist/mcp/mcp-tool-definitions.d.ts +66 -0
  393. package/dist/mcp/mcp-tool-definitions.d.ts.map +1 -0
  394. package/dist/mcp/mcp-tool-definitions.js +246 -0
  395. package/dist/mcp/mcp-tool-definitions.js.map +1 -0
  396. package/dist/mcp-server.d.ts +10 -0
  397. package/dist/mcp-server.d.ts.map +1 -0
  398. package/dist/mcp-server.js +9 -0
  399. package/dist/mcp-server.js.map +1 -0
  400. package/dist/recipes/index.d.ts +27 -0
  401. package/dist/recipes/index.d.ts.map +1 -0
  402. package/dist/recipes/index.js +30 -0
  403. package/dist/recipes/index.js.map +1 -0
  404. package/dist/recipes/recipes.generated.d.ts +8 -0
  405. package/dist/recipes/recipes.generated.d.ts.map +1 -0
  406. package/dist/recipes/recipes.generated.js +704 -0
  407. package/dist/recipes/recipes.generated.js.map +1 -0
  408. package/dist/registry/actions.d.ts +2 -0
  409. package/dist/registry/actions.d.ts.map +1 -1
  410. package/dist/registry/actions.js +3 -1
  411. package/dist/registry/actions.js.map +1 -1
  412. package/dist/registry/block-module.d.ts +65 -0
  413. package/dist/registry/block-module.d.ts.map +1 -0
  414. package/dist/registry/block-module.js +19 -0
  415. package/dist/registry/block-module.js.map +1 -0
  416. package/dist/registry/catalog-search.d.ts +32 -0
  417. package/dist/registry/catalog-search.d.ts.map +1 -0
  418. package/dist/registry/catalog-search.js +122 -0
  419. package/dist/registry/catalog-search.js.map +1 -0
  420. package/dist/registry/define-helpers.d.ts +89 -0
  421. package/dist/registry/define-helpers.d.ts.map +1 -0
  422. package/dist/registry/define-helpers.js +87 -0
  423. package/dist/registry/define-helpers.js.map +1 -0
  424. package/dist/registry/describe-many.d.ts +58 -0
  425. package/dist/registry/describe-many.d.ts.map +1 -0
  426. package/dist/registry/describe-many.js +156 -0
  427. package/dist/registry/describe-many.js.map +1 -0
  428. package/dist/registry/prop-schema.d.ts +32 -1
  429. package/dist/registry/prop-schema.d.ts.map +1 -1
  430. package/dist/registry/prop-schema.js +108 -2
  431. package/dist/registry/prop-schema.js.map +1 -1
  432. package/dist/registry/registry-builder.d.ts +17 -0
  433. package/dist/registry/registry-builder.d.ts.map +1 -0
  434. package/dist/registry/registry-builder.js +158 -0
  435. package/dist/registry/registry-builder.js.map +1 -0
  436. package/dist/registry/registry.d.ts +32 -5
  437. package/dist/registry/registry.d.ts.map +1 -1
  438. package/dist/registry/registry.js +67 -14
  439. package/dist/registry/registry.js.map +1 -1
  440. package/dist/registry/roster.d.ts +34 -5
  441. package/dist/registry/roster.d.ts.map +1 -1
  442. package/dist/registry/roster.js +360 -184
  443. package/dist/registry/roster.js.map +1 -1
  444. package/dist/render/block-helpers.d.ts +45 -0
  445. package/dist/render/block-helpers.d.ts.map +1 -0
  446. package/dist/render/block-helpers.js +83 -0
  447. package/dist/render/block-helpers.js.map +1 -0
  448. package/dist/render/blocks.d.ts +10 -35
  449. package/dist/render/blocks.d.ts.map +1 -1
  450. package/dist/render/blocks.js +144 -263
  451. package/dist/render/blocks.js.map +1 -1
  452. package/dist/render/chart-figure-encoded.d.ts +11 -0
  453. package/dist/render/chart-figure-encoded.d.ts.map +1 -0
  454. package/dist/render/chart-figure-encoded.js +81 -0
  455. package/dist/render/chart-figure-encoded.js.map +1 -0
  456. package/dist/render/chart-kinds-cartesian.d.ts +14 -0
  457. package/dist/render/chart-kinds-cartesian.d.ts.map +1 -0
  458. package/dist/render/chart-kinds-cartesian.js +122 -0
  459. package/dist/render/chart-kinds-cartesian.js.map +1 -0
  460. package/dist/render/chart-kinds-composite.d.ts +16 -0
  461. package/dist/render/chart-kinds-composite.d.ts.map +1 -0
  462. package/dist/render/chart-kinds-composite.js +144 -0
  463. package/dist/render/chart-kinds-composite.js.map +1 -0
  464. package/dist/render/chart-kinds-gauge-treemap.d.ts +8 -0
  465. package/dist/render/chart-kinds-gauge-treemap.d.ts.map +1 -0
  466. package/dist/render/chart-kinds-gauge-treemap.js +101 -0
  467. package/dist/render/chart-kinds-gauge-treemap.js.map +1 -0
  468. package/dist/render/chart-kinds-histogram-waterfall.d.ts +17 -0
  469. package/dist/render/chart-kinds-histogram-waterfall.d.ts.map +1 -0
  470. package/dist/render/chart-kinds-histogram-waterfall.js +172 -0
  471. package/dist/render/chart-kinds-histogram-waterfall.js.map +1 -0
  472. package/dist/render/chart-overlays.d.ts +18 -0
  473. package/dist/render/chart-overlays.d.ts.map +1 -0
  474. package/dist/render/chart-overlays.js +58 -0
  475. package/dist/render/chart-overlays.js.map +1 -0
  476. package/dist/render/chart-scales.d.ts +83 -0
  477. package/dist/render/chart-scales.d.ts.map +1 -0
  478. package/dist/render/chart-scales.js +166 -0
  479. package/dist/render/chart-scales.js.map +1 -0
  480. package/dist/render/chart-svg-parts.d.ts +50 -0
  481. package/dist/render/chart-svg-parts.d.ts.map +1 -0
  482. package/dist/render/chart-svg-parts.js +125 -0
  483. package/dist/render/chart-svg-parts.js.map +1 -0
  484. package/dist/render/chart-text.d.ts +18 -0
  485. package/dist/render/chart-text.d.ts.map +1 -0
  486. package/dist/render/chart-text.js +69 -0
  487. package/dist/render/chart-text.js.map +1 -0
  488. package/dist/render/chart-treemap-layout.d.ts +17 -0
  489. package/dist/render/chart-treemap-layout.d.ts.map +1 -0
  490. package/dist/render/chart-treemap-layout.js +74 -0
  491. package/dist/render/chart-treemap-layout.js.map +1 -0
  492. package/dist/render/chart-types.d.ts +107 -0
  493. package/dist/render/chart-types.d.ts.map +1 -0
  494. package/dist/render/chart-types.js +11 -0
  495. package/dist/render/chart-types.js.map +1 -0
  496. package/dist/render/charts.d.ts +33 -11
  497. package/dist/render/charts.d.ts.map +1 -1
  498. package/dist/render/charts.js +145 -109
  499. package/dist/render/charts.js.map +1 -1
  500. package/dist/render/derived-variables.d.ts +37 -0
  501. package/dist/render/derived-variables.d.ts.map +1 -0
  502. package/dist/render/derived-variables.js +40 -0
  503. package/dist/render/derived-variables.js.map +1 -0
  504. package/dist/render/diagram-fallback.d.ts +25 -0
  505. package/dist/render/diagram-fallback.d.ts.map +1 -0
  506. package/dist/render/diagram-fallback.js +86 -0
  507. package/dist/render/diagram-fallback.js.map +1 -0
  508. package/dist/render/document.d.ts +15 -0
  509. package/dist/render/document.d.ts.map +1 -1
  510. package/dist/render/document.js +53 -8
  511. package/dist/render/document.js.map +1 -1
  512. package/dist/render/effects-styles.d.ts +14 -0
  513. package/dist/render/effects-styles.d.ts.map +1 -0
  514. package/dist/render/effects-styles.js +39 -0
  515. package/dist/render/effects-styles.js.map +1 -0
  516. package/dist/render/embedded-fonts.generated.d.ts +22 -0
  517. package/dist/render/embedded-fonts.generated.d.ts.map +1 -0
  518. package/dist/render/embedded-fonts.generated.js +59 -0
  519. package/dist/render/embedded-fonts.generated.js.map +1 -0
  520. package/dist/render/escape.d.ts +10 -0
  521. package/dist/render/escape.d.ts.map +1 -1
  522. package/dist/render/escape.js +28 -0
  523. package/dist/render/escape.js.map +1 -1
  524. package/dist/render/feature-styles.d.ts +14 -0
  525. package/dist/render/feature-styles.d.ts.map +1 -0
  526. package/dist/render/feature-styles.js +123 -0
  527. package/dist/render/feature-styles.js.map +1 -0
  528. package/dist/render/font-faces.d.ts +22 -0
  529. package/dist/render/font-faces.d.ts.map +1 -0
  530. package/dist/render/font-faces.js +60 -0
  531. package/dist/render/font-faces.js.map +1 -0
  532. package/dist/render/outline.d.ts +21 -0
  533. package/dist/render/outline.d.ts.map +1 -0
  534. package/dist/render/outline.js +47 -0
  535. package/dist/render/outline.js.map +1 -0
  536. package/dist/render/recipe-styles.d.ts +26 -0
  537. package/dist/render/recipe-styles.d.ts.map +1 -0
  538. package/dist/render/recipe-styles.js +218 -0
  539. package/dist/render/recipe-styles.js.map +1 -0
  540. package/dist/render/render-context.d.ts +40 -0
  541. package/dist/render/render-context.d.ts.map +1 -0
  542. package/dist/render/render-context.js +16 -0
  543. package/dist/render/render-context.js.map +1 -0
  544. package/dist/render/render.d.ts +7 -0
  545. package/dist/render/render.d.ts.map +1 -1
  546. package/dist/render/render.js +108 -41
  547. package/dist/render/render.js.map +1 -1
  548. package/dist/render/runtime.d.ts +4 -1
  549. package/dist/render/runtime.d.ts.map +1 -1
  550. package/dist/render/runtime.js +275 -128
  551. package/dist/render/runtime.js.map +1 -1
  552. package/dist/render/showcase-blocks.d.ts +52 -0
  553. package/dist/render/showcase-blocks.d.ts.map +1 -0
  554. package/dist/render/showcase-blocks.js +329 -0
  555. package/dist/render/showcase-blocks.js.map +1 -0
  556. package/dist/render/showcase-styles.d.ts +15 -0
  557. package/dist/render/showcase-styles.d.ts.map +1 -0
  558. package/dist/render/showcase-styles.js +201 -0
  559. package/dist/render/showcase-styles.js.map +1 -0
  560. package/dist/render/signature-styles.d.ts +18 -0
  561. package/dist/render/signature-styles.d.ts.map +1 -0
  562. package/dist/render/signature-styles.js +41 -0
  563. package/dist/render/signature-styles.js.map +1 -0
  564. package/dist/render/style-units.d.ts +17 -0
  565. package/dist/render/style-units.d.ts.map +1 -0
  566. package/dist/render/style-units.js +24 -0
  567. package/dist/render/style-units.js.map +1 -0
  568. package/dist/render/styles.d.ts +18 -9
  569. package/dist/render/styles.d.ts.map +1 -1
  570. package/dist/render/styles.js +228 -129
  571. package/dist/render/styles.js.map +1 -1
  572. package/dist/render/surface-styles.d.ts +24 -0
  573. package/dist/render/surface-styles.d.ts.map +1 -0
  574. package/dist/render/surface-styles.js +41 -0
  575. package/dist/render/surface-styles.js.map +1 -0
  576. package/dist/render/tone.d.ts +14 -0
  577. package/dist/render/tone.d.ts.map +1 -0
  578. package/dist/render/tone.js +40 -0
  579. package/dist/render/tone.js.map +1 -0
  580. package/dist/render/verify.d.ts +3 -0
  581. package/dist/render/verify.d.ts.map +1 -1
  582. package/dist/render/verify.js +45 -2
  583. package/dist/render/verify.js.map +1 -1
  584. package/dist/spec/asset-references.d.ts +35 -0
  585. package/dist/spec/asset-references.d.ts.map +1 -0
  586. package/dist/spec/asset-references.js +93 -0
  587. package/dist/spec/asset-references.js.map +1 -0
  588. package/dist/spec/bounds.d.ts +6 -0
  589. package/dist/spec/bounds.d.ts.map +1 -1
  590. package/dist/spec/bounds.js +7 -0
  591. package/dist/spec/bounds.js.map +1 -1
  592. package/dist/spec/conditions.d.ts +43 -0
  593. package/dist/spec/conditions.d.ts.map +1 -0
  594. package/dist/spec/conditions.js +179 -0
  595. package/dist/spec/conditions.js.map +1 -0
  596. package/dist/spec/network-policy.d.ts +33 -0
  597. package/dist/spec/network-policy.d.ts.map +1 -0
  598. package/dist/spec/network-policy.js +57 -0
  599. package/dist/spec/network-policy.js.map +1 -0
  600. package/dist/spec/normalize.d.ts +7 -2
  601. package/dist/spec/normalize.d.ts.map +1 -1
  602. package/dist/spec/normalize.js +219 -41
  603. package/dist/spec/normalize.js.map +1 -1
  604. package/dist/theme/dialect-presets.d.ts +12 -0
  605. package/dist/theme/dialect-presets.d.ts.map +1 -0
  606. package/dist/theme/dialect-presets.js +214 -0
  607. package/dist/theme/dialect-presets.js.map +1 -0
  608. package/dist/theme/load-theme.d.ts +11 -3
  609. package/dist/theme/load-theme.d.ts.map +1 -1
  610. package/dist/theme/load-theme.js +71 -12
  611. package/dist/theme/load-theme.js.map +1 -1
  612. package/dist/theme/preset-builder.d.ts +36 -0
  613. package/dist/theme/preset-builder.d.ts.map +1 -0
  614. package/dist/theme/preset-builder.js +51 -0
  615. package/dist/theme/preset-builder.js.map +1 -0
  616. package/dist/theme/presets.d.ts +8 -10
  617. package/dist/theme/presets.d.ts.map +1 -1
  618. package/dist/theme/presets.js +40 -56
  619. package/dist/theme/presets.js.map +1 -1
  620. package/dist/theme/recipes.d.ts +38 -0
  621. package/dist/theme/recipes.d.ts.map +1 -0
  622. package/dist/theme/recipes.js +96 -0
  623. package/dist/theme/recipes.js.map +1 -0
  624. package/dist/theme/theme-catalog.d.ts.map +1 -1
  625. package/dist/theme/theme-catalog.js +16 -0
  626. package/dist/theme/theme-catalog.js.map +1 -1
  627. package/dist/theme/tokens.d.ts.map +1 -1
  628. package/dist/theme/tokens.js +4 -4
  629. package/dist/theme/tokens.js.map +1 -1
  630. package/dist/version.d.ts +1 -1
  631. package/dist/version.d.ts.map +1 -1
  632. package/dist/version.js +1 -1
  633. package/dist/version.js.map +1 -1
  634. package/llms.txt +29 -0
  635. package/package.json +13 -3
@@ -1,38 +1,75 @@
1
1
  /**
2
2
  * Emitted stylesheets.
3
3
  *
4
- * One base sheet plus per-feature sheets. The compiler emits only the feature
5
- * sheets a page actually uses, which is both a size win and a correctness
6
- * property: a page without a carousel cannot ship carousel CSS that a later
7
- * change could accidentally apply.
4
+ * One base sheet plus per-feature sheets (`feature-styles.ts`). The compiler
5
+ * emits only the feature sheets a page actually uses, which is both a size win
6
+ * and a correctness property: a page without a carousel cannot ship carousel CSS
7
+ * that a later change could accidentally apply.
8
8
  *
9
- * The sheets are static strings with no interpolation. Everything variable
10
- * comes from theme tokens, so a spec cannot influence a declaration.
9
+ * The sheets are static strings: the only interpolation is the shared
10
+ * transition constant below. Everything variable comes from theme tokens, so a
11
+ * spec cannot influence a declaration.
12
+ *
13
+ * Design rules the sheets follow (see DESIGN.md):
14
+ * - the type scale is derived from the `font-scale` token, with a fixed fallback
15
+ * for engines without CSS `pow()`;
16
+ * - vertical rhythm comes from one density-driven gap, enlarged at section breaks;
17
+ * - top-level sections open on a hairline carrying a short accent tab, the same
18
+ * motif as the hero eyebrow rule;
19
+ * - every transition uses the `motion-*` tokens, which reduced motion zeroes;
20
+ * - tints are `color-mix()` of theme tokens, so no preset needs extra colours.
21
+ */
22
+ export { FEATURE_CSS } from './feature-styles.js';
23
+ import { DARK_FILL, RING, SCROLL_EDGE_KEYFRAMES, scrollEdges, TINT } from './derived-variables.js';
24
+ import { EFFECTS_CSS } from './effects-styles.js';
25
+ import { SIGNATURE_CSS } from './signature-styles.js';
26
+ /**
27
+ * Shared transition, referenced as one custom property so the list is emitted
28
+ * once. It is declared on `:root`, the same element that carries the motion
29
+ * tokens and the reduced-motion override, so a zeroed duration still applies.
11
30
  */
31
+ const TRANSITION = 'transition:var(--ak-transition)';
12
32
  export const BASE_CSS = `*,*::before,*::after{box-sizing:border-box}
13
- html{-webkit-text-size-adjust:100%}
14
- body{margin:0;background:var(--ak-color-background);color:var(--ak-color-text);font-family:var(--ak-font-body);font-size:var(--ak-font-size-base);line-height:var(--ak-line-height)}
15
- .ak-skip{position:absolute;left:-9999px;top:0;background:var(--ak-color-surface);color:var(--ak-color-text);padding:calc(var(--ak-space-unit) * 1.5);z-index:10}
16
- .ak-skip:focus{left:0}
17
- .ak-shell{max-width:1100px;margin:0 auto;padding:calc(var(--ak-space-unit) * 3) calc(var(--ak-space-unit) * 2) calc(var(--ak-space-unit) * 8)}
33
+ :root{--ak-gap:calc(var(--ak-space-unit) * 3);--ak-transition:color var(--ak-motion-duration) var(--ak-motion-easing),background-color var(--ak-motion-duration) var(--ak-motion-easing),border-color var(--ak-motion-duration) var(--ak-motion-easing),box-shadow var(--ak-motion-duration) var(--ak-motion-easing),transform var(--ak-motion-duration) var(--ak-motion-easing),opacity var(--ak-motion-duration) var(--ak-motion-easing),text-decoration-color var(--ak-motion-duration) var(--ak-motion-easing);${TINT};${RING};--ak-fill:var(--ak-color-surface);accent-color:var(--ak-color-accent)}
34
+ @media (prefers-color-scheme:dark){:root:not([data-theme="light"]){${DARK_FILL}}}
35
+ :root[data-theme="dark"]{${DARK_FILL}}
36
+ [data-density="compact"]{--ak-gap:calc(var(--ak-space-unit) * 2)}
37
+ [data-density="spacious"]{--ak-gap:calc(var(--ak-space-unit) * 4)}
38
+ html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--ak-space-unit) * 2)}
39
+ body{margin:0;background:linear-gradient(180deg,color-mix(in srgb,var(--ak-color-accent) 5%,var(--ak-color-background)),var(--ak-color-background) 520px) no-repeat,var(--ak-color-background);color:var(--ak-color-text);font-family:var(--ak-font-body);font-size:var(--ak-font-size-base);line-height:var(--ak-line-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-kerning:normal;overflow-wrap:break-word}
40
+ ::selection{background:color-mix(in srgb,var(--ak-color-accent) 24%,transparent)}
41
+ .ak-skip{position:fixed;left:var(--ak-space-unit);top:var(--ak-space-unit);transform:translateY(-200%);background:var(--ak-color-text);color:var(--ak-color-background);padding:.6em 1em;border-radius:var(--ak-radius-small);z-index:10;font-weight:600;${TRANSITION}}
42
+ .ak-skip:focus{transform:none}
43
+ .ak-shell{max-width:1120px;margin:0 auto;padding:calc(var(--ak-space-unit) * 3) calc(var(--ak-space-unit) * 4) calc(var(--ak-space-unit) * 12)}
44
+ .ak-page-bar{display:flex;justify-content:flex-end;margin-bottom:calc(var(--ak-space-unit) * 2)}
18
45
  .ak-main{display:block}
19
- :where(a){color:var(--ak-color-accent)}
20
- :where(h1,h2,h3,h4,h5,h6){font-family:var(--ak-font-heading);line-height:1.2;margin:0}
21
- h1{font-size:calc(var(--ak-font-size-base) * 2.1)}
22
- h2{font-size:calc(var(--ak-font-size-base) * 1.6)}
23
- h3{font-size:calc(var(--ak-font-size-base) * 1.3)}
24
- h4,h5,h6{font-size:calc(var(--ak-font-size-base) * 1.1)}
25
- p{margin:0}
46
+ :where(a){color:var(--ak-color-accent);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);${TRANSITION}}
47
+ :where(a):hover{text-decoration-color:currentColor}
48
+ :where(h1,h2,h3,h4,h5,h6){font-family:var(--ak-font-heading);line-height:1.2;margin:0;font-weight:700;text-wrap:balance;letter-spacing:-.012em}
49
+ h1{font-size:calc(var(--ak-font-size-base) * 2.44);font-size:calc(var(--ak-font-size-base) * pow(var(--ak-font-scale),4));line-height:1.06;letter-spacing:-.028em}
50
+ h2{font-size:calc(var(--ak-font-size-base) * 1.56);font-size:calc(var(--ak-font-size-base) * pow(var(--ak-font-scale),2));line-height:1.15;letter-spacing:-.02em}
51
+ h3{font-size:calc(var(--ak-font-size-base) * 1.25);font-size:calc(var(--ak-font-size-base) * var(--ak-font-scale));letter-spacing:-.012em}
52
+ h4,h5,h6{font-size:calc(var(--ak-font-size-base) * 1.05)}
53
+ p{margin:0;text-wrap:pretty}
54
+ p + p{margin-top:.6em}
26
55
  ul,ol{margin:0;padding-left:1.4em}
27
- code,kbd{font-family:var(--ak-font-mono)}
28
- :focus-visible{outline:2px solid var(--ak-color-accent);outline-offset:2px}
29
- .ak-block + .ak-block{margin-top:calc(var(--ak-space-unit) * 3)}
30
- [data-density="compact"] .ak-block + .ak-block{margin-top:calc(var(--ak-space-unit) * 2)}
31
- [data-density="spacious"] .ak-block + .ak-block{margin-top:calc(var(--ak-space-unit) * 4)}
32
- .ak-stack{display:flex;flex-direction:column;gap:calc(var(--ak-space-unit) * 2)}
56
+ li::marker{color:var(--ak-color-text-muted)}
57
+ figure{margin:0}
58
+ code,kbd,pre{font-family:var(--ak-font-mono)}
59
+ :not(pre) > code{font-size:.86em;padding:.12em .4em;border-radius:var(--ak-radius-small);background:color-mix(in srgb,var(--ak-color-text) 6%,transparent);border:var(--ak-border-width) solid color-mix(in srgb,var(--ak-color-text) 8%,transparent)}
60
+ strong{font-weight:650}
61
+ hr{border:0;border-top:var(--ak-border-width) solid var(--ak-color-border)}
62
+ :focus-visible{outline:2px solid var(--ak-color-accent);outline-offset:2px;border-radius:var(--ak-radius-small)}
63
+ .ak-block + .ak-block{margin-top:var(--ak-gap)}
64
+ .ak-main > .ak-block + .ak-block:is(.ak-section,:has(> .ak-section-head)){margin-top:calc(var(--ak-gap) * 2.5)}
65
+ .ak-section > .ak-block + .ak-block:has(> .ak-section-head){margin-top:calc(var(--ak-gap) * 1.75)}
66
+ :is(.ak-stack,.ak-grid,.ak-split) > .ak-block{margin-top:0}
67
+ .ak-stack{display:flex;flex-direction:column;align-items:flex-start;gap:calc(var(--ak-space-unit) * 2)}
68
+ .ak-stack > :not(.ak-badge,.ak-kbd,.ak-btn){align-self:stretch}
33
69
  .ak-stack[data-gap="tight"]{gap:var(--ak-space-unit)}
34
70
  .ak-stack[data-gap="loose"]{gap:calc(var(--ak-space-unit) * 3)}
35
71
  .ak-grid{display:grid;gap:calc(var(--ak-space-unit) * 2);grid-template-columns:repeat(3,minmax(0,1fr))}
72
+ ul.ak-grid{list-style:none;padding:0;margin:0}
36
73
  .ak-grid[data-ak-columns="1"],.ak-gallery[data-ak-columns="1"]{grid-template-columns:minmax(0,1fr)}
37
74
  .ak-grid[data-ak-columns="2"],.ak-gallery[data-ak-columns="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
38
75
  .ak-grid[data-ak-columns="3"],.ak-gallery[data-ak-columns="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}
@@ -42,122 +79,184 @@ code,kbd{font-family:var(--ak-font-mono)}
42
79
  .ak-split{display:grid;gap:calc(var(--ak-space-unit) * 2);grid-template-columns:1fr 1fr}
43
80
  .ak-split[data-ratio="wide-left"]{grid-template-columns:2fr 1fr}
44
81
  .ak-split[data-ratio="wide-right"]{grid-template-columns:1fr 2fr}
82
+ .ak-split > *,.ak-grid > *,.ak-compare > *{min-width:0}
45
83
  .ak-muted{color:var(--ak-color-text-muted)}
46
- .ak-eyebrow,.ak-label{font-family:var(--ak-font-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ak-color-text-muted)}
47
- .ak-hero{gap:var(--ak-space-unit);display:flex;flex-direction:column}
48
- .ak-hero h1{max-width:var(--ak-measure)}
49
- .ak-hero p{max-width:var(--ak-measure);font-size:calc(var(--ak-font-size-base) * 1.1);color:var(--ak-color-text-muted)}
50
- .ak-lead{font-size:calc(var(--ak-font-size-base) * 1.15)}
51
- .ak-caption{font-size:.85rem;color:var(--ak-color-text-muted)}
84
+ .ak-eyebrow,.ak-label{font-family:var(--ak-font-mono);font-size:.72rem;font-weight:500;line-height:1.5;letter-spacing:.1em;text-transform:uppercase;color:var(--ak-color-text-muted)}
85
+ .ak-hero{display:flex;flex-direction:column;gap:calc(var(--ak-space-unit) * 2);padding:calc(var(--ak-space-unit) * 5) 0 calc(var(--ak-space-unit) * 3)}
86
+ .ak-hero .ak-eyebrow{display:flex;align-items:center;gap:.85em;color:var(--ak-color-accent)}
87
+ .ak-hero .ak-eyebrow::before{content:"";width:2.5rem;height:2px;background:currentColor;flex:none}
88
+ .ak-hero h1{max-width:20ch;font-size:calc(var(--ak-font-size-base) * 3);font-size:calc(var(--ak-font-size-base) * pow(var(--ak-font-scale),5));line-height:1.02;letter-spacing:-.034em}
89
+ .ak-hero p:not(.ak-eyebrow){max-width:58ch;margin:0;font-size:calc(var(--ak-font-size-base) * 1.2);line-height:1.55;color:var(--ak-color-text-muted)}
90
+ .ak-page-title{margin-bottom:calc(var(--ak-space-unit) * 3)}
91
+ .ak-lead{font-size:calc(var(--ak-font-size-base) * 1.18);line-height:1.55;max-width:var(--ak-measure)}
92
+ .ak-caption{font-size:.84rem;color:var(--ak-color-text-muted)}
52
93
  .ak-prose{max-width:var(--ak-measure)}
53
- .ak-card,.ak-surface{background:var(--ak-color-surface);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);padding:calc(var(--ak-space-unit) * 2)}
54
- .ak-card{display:flex;flex-direction:column;gap:var(--ak-space-unit)}
94
+ .ak-section-head{display:flex;flex-direction:column;gap:.4em;margin-bottom:calc(var(--ak-space-unit) * 2)}
95
+ .ak-main > .ak-section > .ak-section-head{position:relative;padding-top:calc(var(--ak-space-unit) * 2.5);margin-bottom:calc(var(--ak-space-unit) * 3.5);border-top:var(--ak-border-width) solid var(--ak-color-border)}
96
+ .ak-main > .ak-section > .ak-section-head::before{content:"";position:absolute;left:0;top:calc(var(--ak-border-width) * -1);width:2.5rem;height:2px;background:var(--ak-color-accent)}
97
+ .ak-section .ak-block > .ak-section-head h2,.ak-section > h2.ak-block,.ak-stack > h2.ak-block{font-size:calc(var(--ak-font-size-base) * 1.25);font-size:calc(var(--ak-font-size-base) * pow(var(--ak-font-scale),1.2));letter-spacing:-.014em}
98
+ .ak-card,.ak-surface{background:var(--ak-fill);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);padding:calc(var(--ak-space-unit) * 3)}
99
+ .ak-card{display:flex;flex-direction:column;gap:calc(var(--ak-space-unit) * 1)}
100
+ .ak-card p + p{margin-top:0}
101
+ .ak-card > p:not(.ak-label){color:var(--ak-color-text-muted)}
102
+ .ak-card > p:first-child:has(strong),.ak-card > .ak-label + p:has(strong){color:var(--ak-color-text);font-family:var(--ak-font-heading);font-size:calc(var(--ak-font-size-base) * 1.08);letter-spacing:-.01em}
103
+ .ak-card > .ak-label:first-child{align-self:flex-start;padding:.1em .6em;border-radius:999px;background:color-mix(in srgb,var(--ak-color-text) 6%,transparent);margin-bottom:.35em}
55
104
  .ak-card--elevated,.ak-surface{box-shadow:var(--ak-elevation-card)}
56
- .ak-section-head{display:flex;flex-direction:column;gap:.35em;margin-bottom:calc(var(--ak-space-unit) * 1.5)}
57
- .ak-divider{border:0;border-top:var(--ak-border-width) solid var(--ak-color-border);margin:calc(var(--ak-space-unit) * 2) 0;display:flex;align-items:center;gap:var(--ak-space-unit)}
105
+ .ak-card-title h3{font-size:calc(var(--ak-font-size-base) * 1.12);letter-spacing:-.01em}
106
+ .ak-divider{border:0;border-top:var(--ak-border-width) solid var(--ak-color-border);margin:calc(var(--ak-space-unit) * 2) 0}
107
+ .ak-block:has(> .ak-divider + .ak-label){display:flex;align-items:center;gap:calc(var(--ak-space-unit) * 2)}
108
+ .ak-block:has(> .ak-divider + .ak-label) > .ak-divider{flex:1;margin:0}
109
+ .ak-block:has(> .ak-divider + .ak-label) > .ak-label{order:-1}
58
110
  .ak-spacer{display:block}
59
111
  .ak-spacer[data-size="small"]{height:var(--ak-space-unit)}
60
112
  .ak-spacer[data-size="medium"]{height:calc(var(--ak-space-unit) * 2)}
61
113
  .ak-spacer[data-size="large"]{height:calc(var(--ak-space-unit) * 4)}
62
- .ak-quote{border-left:3px solid var(--ak-color-accent);padding-left:calc(var(--ak-space-unit) * 2);font-size:calc(var(--ak-font-size-base) * 1.1)}
63
- .ak-quote cite{display:block;margin-top:.5em;color:var(--ak-color-text-muted);font-size:.9rem;font-style:normal}
64
- .ak-badge{display:inline-block;padding:.15em .6em;border-radius:999px;border:var(--ak-border-width) solid var(--ak-color-border);background:var(--ak-color-surface-raised);font-size:.78rem;font-family:var(--ak-font-mono)}
65
- .ak-badge[data-tone="info"]{border-color:var(--ak-color-info);color:var(--ak-color-info)}
66
- .ak-badge[data-tone="success"]{border-color:var(--ak-color-success);color:var(--ak-color-success)}
67
- .ak-badge[data-tone="warning"]{border-color:var(--ak-color-warning);color:var(--ak-color-warning)}
68
- .ak-badge[data-tone="danger"]{border-color:var(--ak-color-danger);color:var(--ak-color-danger)}
69
- .ak-kbd{display:inline-flex;gap:.2em}
70
- .ak-kbd kbd{border:var(--ak-border-width) solid var(--ak-color-border);border-bottom-width:2px;border-radius:var(--ak-radius-small);padding:.1em .4em;background:var(--ak-color-surface-raised);font-size:.85em}
71
- .ak-kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.4em calc(var(--ak-space-unit) * 2);margin:0}
72
- .ak-kv dt{color:var(--ak-color-text-muted)}
73
- .ak-kv dd{margin:0}
74
- .ak-stats{display:grid;gap:calc(var(--ak-space-unit) * 2);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0;padding:0;list-style:none}
75
- .ak-stat{background:var(--ak-color-surface);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);padding:calc(var(--ak-space-unit) * 1.5)}
76
- .ak-stat dt{font-size:.8rem;color:var(--ak-color-text-muted);font-family:var(--ak-font-mono)}
77
- .ak-stat dd{margin:.2em 0 0;font-size:calc(var(--ak-font-size-base) * 1.5);font-family:var(--ak-font-heading)}
78
- .ak-steps{counter-reset:ak-step;list-style:none;padding:0;display:flex;flex-direction:column;gap:calc(var(--ak-space-unit) * 1.5)}
79
- .ak-steps li{counter-increment:ak-step;position:relative;padding-left:calc(var(--ak-space-unit) * 4)}
80
- .ak-steps li::before{content:counter(ak-step);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:var(--ak-color-accent);color:var(--ak-color-accent-contrast);display:flex;align-items:center;justify-content:center;font-family:var(--ak-font-mono);font-size:.8rem}
81
- .ak-timeline{list-style:none;padding:0;margin:0;border-left:var(--ak-border-width) solid var(--ak-color-border);display:flex;flex-direction:column;gap:calc(var(--ak-space-unit) * 2)}
82
- .ak-timeline li{position:relative;padding-left:calc(var(--ak-space-unit) * 2)}
83
- .ak-timeline li::before{content:"";position:absolute;left:calc(var(--ak-space-unit) * -1 - 3px);top:.45em;width:7px;height:7px;border-radius:50%;background:var(--ak-color-accent)}
84
- .ak-timeline time{display:block;font-family:var(--ak-font-mono);font-size:.78rem;color:var(--ak-color-text-muted)}
85
- .ak-table-wrap{overflow-x:auto}
86
- table{border-collapse:collapse;width:100%;background:var(--ak-color-surface)}
114
+ .ak-quote{position:relative;margin:0;padding:calc(var(--ak-space-unit) * 1) 0 0 calc(var(--ak-space-unit) * 6);max-width:var(--ak-measure)}
115
+ .ak-quote::before{content:"\\201C";position:absolute;left:0;top:0;font-family:var(--ak-font-heading);font-size:calc(var(--ak-font-size-base) * 4.5);line-height:.9;font-weight:400;font-style:normal;color:var(--ak-color-accent)}
116
+ .ak-quote p{font-family:var(--ak-font-heading);font-size:calc(var(--ak-font-size-base) * 1.3);font-size:calc(var(--ak-font-size-base) * pow(var(--ak-font-scale),1.25));line-height:1.4;letter-spacing:-.012em;text-wrap:balance}
117
+ .ak-quote cite{display:flex;align-items:center;gap:.75em;margin-top:1em;color:var(--ak-color-text-muted);font-family:var(--ak-font-mono);font-size:.74rem;font-style:normal;letter-spacing:.08em;text-transform:uppercase}
118
+ .ak-quote cite::before{content:"";width:1.5rem;height:1px;background:currentColor}
119
+ .ak-badge{--ak-tone:var(--ak-color-text-muted);display:inline-flex;align-items:center;gap:.45em;padding:.2em .7em;border-radius:999px;border:var(--ak-border-width) solid color-mix(in srgb,var(--ak-tone) 28%,var(--ak-color-border));background:color-mix(in srgb,var(--ak-tone) 9%,var(--ak-color-surface));color:var(--ak-tone);font-size:.72rem;font-family:var(--ak-font-mono);font-weight:500;letter-spacing:.02em;line-height:1.5;white-space:nowrap;font-variant-numeric:tabular-nums}
120
+ .ak-badge:is([data-tone="info"],[data-tone="success"],[data-tone="warning"],[data-tone="danger"])::before{content:"";width:.45em;height:.45em;border-radius:50%;background:currentColor;box-shadow:0 0 0 2px color-mix(in srgb,currentColor 22%,transparent)}
121
+ .ak-badge[data-tone="info"]{--ak-tone:var(--ak-color-info)}
122
+ .ak-badge[data-tone="success"]{--ak-tone:var(--ak-color-success)}
123
+ .ak-badge[data-tone="warning"]{--ak-tone:var(--ak-color-warning)}
124
+ .ak-badge[data-tone="danger"]{--ak-tone:var(--ak-color-danger)}
125
+ .ak-kbd{display:inline-flex;align-items:center;gap:.3em}
126
+ .ak-kbd kbd{display:inline-flex;align-items:center;justify-content:center;min-width:1.9em;border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-small);padding:.12em .5em;background:var(--ak-color-surface);box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--ak-color-text) 10%,var(--ak-color-border)),0 1px 1px color-mix(in srgb,var(--ak-color-text) 6%,transparent);font-size:.78em;font-weight:500;line-height:1.5;color:var(--ak-color-text)}
127
+ .ak-kv{display:grid;grid-template-columns:minmax(120px,max-content) minmax(0,1fr);margin:0;border-top:var(--ak-border-width) solid var(--ak-color-border)}
128
+ .ak-kv dt,.ak-kv dd{padding:.75em 0;border-bottom:var(--ak-border-width) solid var(--ak-color-border)}
129
+ .ak-kv dt{font-family:var(--ak-font-mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;line-height:var(--ak-line-height);color:var(--ak-color-text-muted);padding-right:calc(var(--ak-space-unit) * 4);padding-top:calc(.75em + .2rem)}
130
+ .ak-kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
131
+ .ak-stats{display:grid;gap:0;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:0;padding:0;list-style:none;overflow:hidden;background:var(--ak-fill);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);box-shadow:var(--ak-elevation-card)}
132
+ .ak-stat{padding:calc(var(--ak-space-unit) * 2.5) calc(var(--ak-space-unit) * 3) calc(var(--ak-space-unit) * 3);box-shadow:calc(var(--ak-border-width) * -1) calc(var(--ak-border-width) * -1) 0 0 var(--ak-color-border)}
133
+ .ak-stat dt{display:flex;align-items:center;gap:.6em;font-family:var(--ak-font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ak-color-text-muted)}
134
+ .ak-stat dt::before{content:"";width:.4rem;height:.4rem;border-radius:50%;background:var(--ak-color-accent)}
135
+ .ak-stat dd{margin:.5em 0 0;font-family:var(--ak-font-heading);font-size:calc(var(--ak-font-size-base) * 2.4);font-size:calc(var(--ak-font-size-base) * pow(var(--ak-font-scale),3.6));font-weight:700;line-height:1;letter-spacing:-.035em;font-variant-numeric:tabular-nums}
136
+ .ak-steps{counter-reset:ak-step;list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
137
+ .ak-steps li{counter-increment:ak-step;position:relative;padding:0 0 calc(var(--ak-space-unit) * 3) calc(var(--ak-space-unit) * 6);min-height:40px}
138
+ .ak-steps li:last-child{padding-bottom:0}
139
+ .ak-steps li::before{content:counter(ak-step,decimal-leading-zero);position:absolute;left:0;top:-.1em;width:32px;height:32px;border-radius:50%;background:var(--ak-color-surface);border:var(--ak-border-width) solid color-mix(in srgb,var(--ak-color-accent) 45%,var(--ak-color-border));box-shadow:0 0 0 4px var(--ak-color-background);color:var(--ak-color-accent);display:flex;align-items:center;justify-content:center;font-family:var(--ak-font-mono);font-size:.72rem;font-weight:600;font-variant-numeric:tabular-nums;z-index:1}
140
+ .ak-steps li:not(:last-child)::after{content:"";position:absolute;left:15.5px;top:calc(32px - .1em);bottom:0;width:1px;background:linear-gradient(var(--ak-color-border),color-mix(in srgb,var(--ak-color-accent) 30%,var(--ak-color-border)))}
141
+ .ak-steps li > p:first-child{font-family:var(--ak-font-heading);font-size:calc(var(--ak-font-size-base) * 1.06)}
142
+ .ak-steps li > p:not(:first-child){color:var(--ak-color-text-muted);margin-top:.2em;max-width:var(--ak-measure)}
143
+ .ak-timeline{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
144
+ .ak-timeline li{position:relative;padding:0 0 calc(var(--ak-space-unit) * 3) calc(var(--ak-space-unit) * 4)}
145
+ .ak-timeline li:last-child{padding-bottom:0}
146
+ .ak-timeline li::before{content:"";position:absolute;left:5px;top:.42em;width:9px;height:9px;border-radius:50%;background:var(--ak-color-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--ak-color-accent) 16%,var(--ak-color-background));z-index:1}
147
+ .ak-timeline li:not(:last-child)::after{content:"";position:absolute;left:9px;top:calc(.42em + 9px);bottom:-.42em;width:1px;background:var(--ak-color-border)}
148
+ .ak-timeline time{display:block;font-family:var(--ak-font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ak-color-accent);margin-bottom:.3em}
149
+ .ak-timeline li > p:first-of-type{font-family:var(--ak-font-heading)}
150
+ .ak-timeline li > p:not(:first-of-type){color:var(--ak-color-text-muted);margin-top:.15em;max-width:var(--ak-measure)}
151
+ .ak-table-wrap{overflow-x:auto;overscroll-behavior-x:contain;border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);background:var(--ak-fill);box-shadow:var(--ak-elevation-card)}
152
+ ${scrollEdges('.ak-table-wrap')}
153
+ ${SCROLL_EDGE_KEYFRAMES}
154
+ table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
87
155
  caption{text-align:left;padding-bottom:.5em;color:var(--ak-color-text-muted)}
88
- th,td{text-align:left;padding:.55em .75em;border-bottom:var(--ak-border-width) solid var(--ak-color-border);vertical-align:top}
89
- thead th{background:var(--ak-color-surface-raised);font-family:var(--ak-font-mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
156
+ .ak-table-wrap caption:not(.ak-sr){padding:calc(var(--ak-space-unit) * 1.75) calc(var(--ak-space-unit) * 2);font-family:var(--ak-font-heading);font-weight:600;color:var(--ak-color-text);border-bottom:var(--ak-border-width) solid var(--ak-color-border)}
157
+ th,td{text-align:left;padding:.8em calc(var(--ak-space-unit) * 2);border-bottom:var(--ak-border-width) solid var(--ak-color-border);vertical-align:top}
158
+ tbody th{font-weight:600}
159
+ .ak-table-wrap tbody tr:last-child > *{border-bottom:0}
160
+ .ak-table-wrap tbody tr{${TRANSITION}}
161
+ .ak-table-wrap tbody tr:hover{background:var(--ak-tint)}
162
+ thead th{background:color-mix(in srgb,var(--ak-color-text) 3.5%,var(--ak-color-surface));font-family:var(--ak-font-mono);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--ak-color-text-muted);white-space:nowrap;padding-top:.9em;padding-bottom:.9em}
90
163
  .ak-compare{display:grid;gap:calc(var(--ak-space-unit) * 2);grid-template-columns:1fr 1fr}
91
- .ak-compare h3{font-size:calc(var(--ak-font-size-base) * 1.05);margin-bottom:.5em}
92
- .ak-compare ul{margin:0}
93
- .ak-callout,.ak-alert{border-left:4px solid var(--ak-color-info);background:var(--ak-color-surface);border-radius:var(--ak-radius-medium);padding:calc(var(--ak-space-unit) * 1.5);display:flex;flex-direction:column;gap:.4em}
94
- .ak-callout[data-tone="success"],.ak-alert[data-tone="success"]{border-left-color:var(--ak-color-success)}
95
- .ak-callout[data-tone="warning"],.ak-alert[data-tone="warning"]{border-left-color:var(--ak-color-warning)}
96
- .ak-callout[data-tone="danger"],.ak-alert[data-tone="danger"]{border-left-color:var(--ak-color-danger)}
97
- .ak-code{margin:0;background:var(--ak-color-surface-raised);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);padding:calc(var(--ak-space-unit) * 1.5);overflow-x:auto}
98
- .ak-code pre{margin:0;font-family:var(--ak-font-mono);font-size:.88rem;line-height:1.55}
99
- .ak-code-head{display:flex;justify-content:space-between;gap:var(--ak-space-unit);align-items:center;margin-bottom:.5em}
100
- .ak-btn{font:inherit;color:var(--ak-color-text);background:var(--ak-color-surface-raised);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-small);padding:.4em .8em;cursor:pointer;min-height:36px}
101
- .ak-btn:hover{border-color:var(--ak-color-accent)}
102
- .ak-btn[data-variant="primary"]{background:var(--ak-color-accent);color:var(--ak-color-accent-contrast);border-color:var(--ak-color-accent)}
103
- .ak-btn[data-variant="ghost"]{background:transparent;border-color:transparent}
104
- .ak-toolbar{display:flex;flex-wrap:wrap;gap:var(--ak-space-unit);align-items:center;padding:var(--ak-space-unit);background:var(--ak-color-surface);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium)}
105
- .ak-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5em}
106
- .ak-list li{display:flex;gap:.5em;align-items:baseline;justify-content:space-between;border-bottom:var(--ak-border-width) solid var(--ak-color-border);padding-bottom:.4em}
164
+ .ak-compare .ak-surface{display:flex;flex-direction:column;gap:calc(var(--ak-space-unit) * 1.5)}
165
+ .ak-compare h3{display:flex;align-items:center;gap:.6em;font-size:calc(var(--ak-font-size-base) * 1.1)}
166
+ .ak-compare h3::before{content:"";width:.55em;height:.55em;border-radius:50%;border:2px solid var(--ak-color-text-muted)}
167
+ .ak-compare ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
168
+ .ak-compare li{position:relative;padding:.55em 0 .55em 1.5em;border-top:var(--ak-border-width) solid var(--ak-color-border)}
169
+ .ak-compare li::before{content:"";position:absolute;left:.2em;top:1.15em;width:.4em;height:.4em;border-radius:50%;background:var(--ak-color-text-muted)}
170
+ .ak-compare .ak-surface:first-child{background:linear-gradient(180deg,var(--ak-tint),transparent 70%),var(--ak-fill);border-color:color-mix(in srgb,var(--ak-color-accent) 35%,var(--ak-color-border))}
171
+ .ak-compare .ak-surface:first-child h3::before{background:var(--ak-color-accent);border-color:var(--ak-color-accent)}
172
+ .ak-compare .ak-surface:first-child li::before{background:var(--ak-color-accent)}
173
+ .ak-callout,.ak-alert{--ak-tone:var(--ak-color-info);--ak-glyph:"i";position:relative;border:var(--ak-border-width) solid color-mix(in srgb,var(--ak-tone) 26%,var(--ak-color-border));background:color-mix(in srgb,var(--ak-tone) 6%,var(--ak-color-surface));border-radius:var(--ak-radius-medium);padding:calc(var(--ak-space-unit) * 2.25) calc(var(--ak-space-unit) * 3) calc(var(--ak-space-unit) * 2.25) calc(var(--ak-space-unit) * 7);display:flex;flex-direction:column;gap:.35em}
174
+ .ak-callout::before,.ak-alert::before{content:var(--ak-glyph);position:absolute;left:calc(var(--ak-space-unit) * 2.5);top:calc(var(--ak-space-unit) * 2.25);width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--ak-tone);color:var(--ak-color-surface);font-family:var(--ak-font-mono);font-size:.8rem;font-weight:700;line-height:1;box-shadow:0 0 0 4px color-mix(in srgb,var(--ak-tone) 16%,transparent)}
175
+ .ak-callout p,.ak-alert p{max-width:var(--ak-measure)}
176
+ .ak-callout p + p,.ak-alert p + p{margin-top:0}
177
+ .ak-callout p:not(.ak-label):not(:has(strong)),.ak-alert p:not(:has(strong)){color:color-mix(in srgb,var(--ak-color-text) 82%,var(--ak-tone))}
178
+ .ak-callout .ak-label,.ak-alert .ak-label{color:var(--ak-tone);font-weight:600}
179
+ .ak-callout[data-tone="success"],.ak-alert[data-tone="success"]{--ak-tone:var(--ak-color-success);--ak-glyph:"\\2713"}
180
+ .ak-callout[data-tone="warning"],.ak-alert[data-tone="warning"]{--ak-tone:var(--ak-color-warning);--ak-glyph:"!"}
181
+ .ak-callout[data-tone="danger"],.ak-alert[data-tone="danger"]{--ak-tone:var(--ak-color-danger);--ak-glyph:"\\00D7"}
182
+ .ak-alert{border-color:color-mix(in srgb,var(--ak-tone) 45%,var(--ak-color-border));background:color-mix(in srgb,var(--ak-tone) 10%,var(--ak-color-surface))}
183
+ .ak-code{margin:0;background:color-mix(in srgb,var(--ak-color-text) 4%,var(--ak-color-surface));border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);overflow:hidden}
184
+ .ak-code pre{margin:0;padding:calc(var(--ak-space-unit) * 2.5) calc(var(--ak-space-unit) * 3);overflow-x:auto;font-size:.85rem;line-height:1.7;tab-size:2}
185
+ .ak-code-head{display:flex;justify-content:space-between;gap:var(--ak-space-unit);align-items:center;padding:.65em calc(var(--ak-space-unit) * 3);border-bottom:var(--ak-border-width) solid var(--ak-color-border);background:var(--ak-color-surface)}
186
+ .ak-code-head .ak-label{display:flex;align-items:center;gap:.6em}
187
+ .ak-code-head .ak-label::before{content:"";width:.45rem;height:.45rem;border-radius:2px;background:var(--ak-color-accent)}
188
+ .ak-btn{font:inherit;font-size:.92em;font-weight:550;line-height:1.2;display:inline-flex;align-items:center;justify-content:center;gap:.5em;color:var(--ak-color-text);background:var(--ak-color-surface);border:var(--ak-border-width) solid color-mix(in srgb,var(--ak-color-text) 14%,var(--ak-color-border));border-radius:var(--ak-radius-medium);padding:.6em 1.1em;cursor:pointer;min-height:40px;box-shadow:0 1px 2px color-mix(in srgb,var(--ak-color-text) 7%,transparent);text-decoration:none;${TRANSITION}}
189
+ .ak-btn:hover{border-color:color-mix(in srgb,var(--ak-color-accent) 55%,var(--ak-color-border));background:var(--ak-tint);color:var(--ak-color-text)}
190
+ .ak-btn:active{transform:translateY(1px);box-shadow:none}
191
+ .ak-btn:disabled,.ak-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
192
+ .ak-btn:disabled:hover,.ak-btn[aria-disabled="true"]:hover{background:var(--ak-color-surface);border-color:color-mix(in srgb,var(--ak-color-text) 14%,var(--ak-color-border))}
193
+ .ak-btn[data-variant="primary"]{background:var(--ak-color-accent);color:var(--ak-color-accent-contrast);border-color:var(--ak-color-accent);box-shadow:0 1px 2px color-mix(in srgb,var(--ak-color-accent) 30%,transparent),0 4px 14px color-mix(in srgb,var(--ak-color-accent) 22%,transparent)}
194
+ .ak-btn[data-variant="primary"]:hover{background:color-mix(in srgb,var(--ak-color-accent) 86%,var(--ak-color-text));color:var(--ak-color-accent-contrast)}
195
+ .ak-btn[data-variant="ghost"]{background:transparent;border-color:transparent;box-shadow:none;color:var(--ak-color-accent)}
196
+ .ak-btn[data-variant="ghost"]:hover{background:var(--ak-tint);border-color:transparent}
197
+ .ak-toolbar{display:flex;flex-wrap:wrap;gap:var(--ak-space-unit);align-items:center;padding:calc(var(--ak-space-unit) * 1);background:var(--ak-fill);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);box-shadow:var(--ak-elevation-card)}
198
+ .ak-toolbar > .ak-section-head{margin:0 calc(var(--ak-space-unit) * 1) 0 calc(var(--ak-space-unit) * 1)}
199
+ .ak-toolbar > .ak-section-head h2{font-size:calc(var(--ak-font-size-base) * 1);letter-spacing:-.005em}
200
+ .ak-toolbar > a{display:inline-flex;align-items:center;min-height:40px;padding:0 .75em;margin-left:auto;font-weight:550}
201
+ .ak-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
202
+ .ak-list li{display:flex;gap:calc(var(--ak-space-unit) * 2);align-items:center;justify-content:space-between;border-bottom:var(--ak-border-width) solid var(--ak-color-border);padding:.8em 0}
203
+ .ak-list li:first-child{border-top:var(--ak-border-width) solid var(--ak-color-border)}
107
204
  .ak-list li[hidden]{display:none}
205
+ .ak-list li > span:first-child{min-width:0}
108
206
  li.ak-hidden{display:none}
109
- .ak-progress{display:flex;flex-direction:column;gap:.35em}
110
- .ak-progress progress{width:100%;height:10px}
111
- .ak-progress progress::-webkit-progress-bar{background:var(--ak-color-surface-raised)}
112
- .ak-media{margin:0;display:flex;flex-direction:column;gap:.5em}
113
- .ak-media img,.ak-gallery img{max-width:100%;height:auto;border-radius:var(--ak-radius-medium);border:var(--ak-border-width) solid var(--ak-color-border);background:var(--ak-color-surface-raised)}
114
- .ak-media video{max-width:100%;border-radius:var(--ak-radius-medium)}
207
+ .ak-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.6em var(--ak-space-unit)}
208
+ .ak-progress .ak-caption{grid-row:1;grid-column:2;font-family:var(--ak-font-mono);font-size:.78rem;font-variant-numeric:tabular-nums;color:var(--ak-color-text)}
209
+ .ak-progress progress{grid-column:1 / -1;-webkit-appearance:none;appearance:none;width:100%;height:10px;border:0;border-radius:999px;background:color-mix(in srgb,var(--ak-color-text) 8%,var(--ak-color-surface));overflow:hidden;color:var(--ak-color-accent)}
210
+ .ak-progress progress::-webkit-progress-bar{background:color-mix(in srgb,var(--ak-color-text) 8%,var(--ak-color-surface));border-radius:999px}
211
+ .ak-progress progress::-webkit-progress-value{background:linear-gradient(90deg,color-mix(in srgb,var(--ak-color-accent) 65%,var(--ak-color-surface)),var(--ak-color-accent));border-radius:999px}
212
+ .ak-progress progress::-moz-progress-bar{background:linear-gradient(90deg,color-mix(in srgb,var(--ak-color-accent) 65%,var(--ak-color-surface)),var(--ak-color-accent));border-radius:999px}
213
+ .ak-media{margin:0;display:flex;flex-direction:column;gap:.75em}
214
+ .ak-media figcaption,.ak-gallery figcaption{font-size:.84rem;color:var(--ak-color-text-muted)}
215
+ .ak-media img,.ak-gallery img{display:block;max-width:100%;height:auto;border-radius:var(--ak-radius-medium);border:var(--ak-border-width) solid var(--ak-color-border);background:var(--ak-color-surface-raised);box-shadow:var(--ak-elevation-card)}
216
+ .ak-media video{display:block;max-width:100%;border-radius:var(--ak-radius-medium)}
115
217
  .ak-gallery{display:grid;gap:calc(var(--ak-space-unit) * 2);grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;padding:0;margin:0}
218
+ .ak-gallery figure{display:flex;flex-direction:column;gap:.6em}
219
+ .ak-gallery img{width:100%;aspect-ratio:16 / 9;object-fit:cover}
116
220
  .ak-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
117
- @media (max-width:768px){body{--ak-font-size-base:16px}.ak-grid,.ak-compare,.ak-split,.ak-gallery{grid-template-columns:1fr!important}.ak-shell{padding:calc(var(--ak-space-unit) * 2) var(--ak-space-unit) calc(var(--ak-space-unit) * 6)}h1{font-size:calc(var(--ak-font-size-base) * 1.7)}}
118
- @media (max-width:480px){.ak-toolbar{flex-direction:column;align-items:stretch}.ak-stats{grid-template-columns:1fr 1fr}}
119
- @media print{.ak-skip,.ak-theme-toggle{display:none}}`;
120
- export const FEATURE_CSS = {
121
- tabs: `.ak-tabs [role="tablist"]{display:flex;flex-wrap:wrap;gap:.25em;border-bottom:var(--ak-border-width) solid var(--ak-color-border);margin-bottom:calc(var(--ak-space-unit) * 1.5)}
122
- .ak-tabs [role="tab"]{font:inherit;background:transparent;border:0;border-bottom:2px solid transparent;padding:.5em .8em;cursor:pointer;color:var(--ak-color-text-muted)}
123
- .ak-tabs [role="tab"][aria-selected="true"]{color:var(--ak-color-text);border-bottom-color:var(--ak-color-accent)}
124
- .ak-tabs [role="tabpanel"]{padding:0}
125
- .ak-tabs [role="tabpanel"][hidden]{display:none}`,
126
- accordion: `.ak-accordion{display:flex;flex-direction:column;gap:.4em}
127
- .ak-accordion details{background:var(--ak-color-surface);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);padding:calc(var(--ak-space-unit) * .75) var(--ak-space-unit)}
128
- .ak-accordion summary{cursor:pointer;font-family:var(--ak-font-heading);font-size:calc(var(--ak-font-size-base) * 1.02)}
129
- .ak-accordion details[open] summary{margin-bottom:.5em}`,
130
- carousel: `.ak-carousel{display:flex;flex-direction:column;gap:var(--ak-space-unit)}
131
- .ak-carousel-slides{position:relative;min-height:120px}
132
- .ak-carousel-slide{background:var(--ak-color-surface);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);padding:calc(var(--ak-space-unit) * 2)}
133
- .ak-carousel-slide[hidden]{display:none}
134
- .ak-carousel-controls{display:flex;gap:var(--ak-space-unit);align-items:center}
135
- .ak-carousel-status{font-family:var(--ak-font-mono);font-size:.8rem;color:var(--ak-color-text-muted)}`,
136
- slider: `.ak-slider{display:flex;flex-direction:column;gap:.35em;max-width:420px}
137
- .ak-slider input[type="range"]{width:100%}
138
- .ak-slider output{font-family:var(--ak-font-mono);font-size:.85rem;color:var(--ak-color-text-muted)}`,
139
- dialog: `dialog.ak-dialog{max-width:min(560px,92vw);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-large);background:var(--ak-color-surface);color:var(--ak-color-text);padding:calc(var(--ak-space-unit) * 2);box-shadow:var(--ak-elevation-popover)}
140
- dialog.ak-dialog::backdrop{background:rgba(0,0,0,.5)}
141
- .ak-dialog-actions{display:flex;gap:var(--ak-space-unit);justify-content:flex-end;margin-top:calc(var(--ak-space-unit) * 1.5)}`,
142
- chart: `.ak-chart{display:flex;flex-direction:column;gap:var(--ak-space-unit)}
143
- .ak-chart svg{width:100%;height:auto;overflow:visible}
144
- .ak-chart figcaption{font-size:.85rem;color:var(--ak-color-text-muted)}
145
- .ak-chart .ak-chart-bar{fill:var(--ak-color-accent)}
146
- .ak-chart .ak-chart-bar--alt{fill:var(--ak-color-info)}
147
- .ak-chart .ak-chart-line{fill:none;stroke:var(--ak-color-accent);stroke-width:2}
148
- .ak-chart .ak-chart-area{fill:var(--ak-color-accent);opacity:.18}
149
- .ak-chart .ak-chart-axis{stroke:var(--ak-color-border);stroke-width:1}
150
- .ak-chart .ak-chart-label{fill:var(--ak-color-text-muted);font-family:var(--ak-font-mono);font-size:10px}
151
- .ak-chart :focus-visible{outline:2px solid var(--ak-color-accent)}
152
- .ak-details{margin-top:var(--ak-space-unit)}
153
- .ak-details summary{cursor:pointer;color:var(--ak-color-text-muted);font-size:.85rem}`,
154
- filter: `.ak-search{display:flex;flex-direction:column;gap:.35em;max-width:380px}
155
- .ak-search input{font:inherit;padding:.45em .6em;border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-small);background:var(--ak-color-surface);color:var(--ak-color-text)}`,
156
- theme: `.ak-theme-toggle{margin-left:auto}`,
157
- media: `.ak-media-fallback{display:flex;flex-direction:column;gap:.35em;background:var(--ak-color-surface);border:var(--ak-border-width) dashed var(--ak-color-border);border-radius:var(--ak-radius-medium);padding:calc(var(--ak-space-unit) * 1.5)}
158
- .ak-media-fallback img{max-width:100%;border-radius:var(--ak-radius-small)}`,
159
- diagram: `.ak-diagram{overflow-x:auto}
160
- .ak-diagram svg{max-width:100%;height:auto}
161
- .ak-diagram-fallback{background:var(--ak-color-surface-raised);border:var(--ak-border-width) solid var(--ak-color-border);border-radius:var(--ak-radius-medium);padding:calc(var(--ak-space-unit) * 1.5)}`,
162
- };
221
+ .ak-section{scroll-margin-top:calc(var(--ak-space-unit) * 3)}
222
+ @media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
223
+ th.ak-num,td.ak-num{text-align:right;font-variant-numeric:tabular-nums}
224
+ td:is(.ak-add,.ak-del,.ak-zero){font-family:var(--ak-font-mono);font-size:.85em;font-weight:600}
225
+ td.ak-zero{color:var(--ak-color-text-muted);font-weight:400}
226
+ tr:has(.ak-badge) > *{vertical-align:middle}
227
+ td.ak-add{color:color-mix(in srgb,var(--ak-color-success) 82%,var(--ak-color-text))}
228
+ td.ak-del{color:color-mix(in srgb,var(--ak-color-danger) 82%,var(--ak-color-text))}
229
+ td > .ak-badge{vertical-align:middle}
230
+ .ak-card[data-tone="info"]{--ak-tone:var(--ak-color-info)}
231
+ .ak-card[data-tone="success"]{--ak-tone:var(--ak-color-success)}
232
+ .ak-card[data-tone="warning"]{--ak-tone:var(--ak-color-warning)}
233
+ .ak-card[data-tone="danger"]{--ak-tone:var(--ak-color-danger)}
234
+ .ak-card:not([data-tone="neutral"])[data-tone] > .ak-label:first-child{display:inline-flex;align-items:center;gap:.55em;align-self:flex-start;color:color-mix(in srgb,var(--ak-tone) 78%,var(--ak-color-text))}
235
+ .ak-card:not([data-tone="neutral"])[data-tone] > .ak-label:first-child::before{content:"";width:.5em;height:.5em;border-radius:50%;background:var(--ak-tone);box-shadow:0 0 0 3px color-mix(in srgb,var(--ak-tone) 20%,transparent)}
236
+ .ak-card:not([data-tone="neutral"])[data-tone]:hover{border-color:color-mix(in srgb,var(--ak-tone) 45%,var(--ak-color-border))}
237
+ .ak-code-head{justify-content:flex-start}
238
+ .ak-code-lang{margin-left:auto;padding:.15em .65em;border:var(--ak-border-width) solid var(--ak-color-border);border-radius:999px;font-family:var(--ak-font-mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ak-color-text-muted)}
239
+ .ak-code-copy{margin-left:auto;display:inline-flex;align-items:center;gap:.7em;min-height:30px;padding:.3em .75em;font:inherit;font-family:var(--ak-font-mono);font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ak-color-text-muted);background:transparent;border:var(--ak-border-width) solid transparent;border-radius:var(--ak-radius-small);cursor:pointer;${TRANSITION}}
240
+ .ak-code-lang + .ak-code-copy{margin-left:0}
241
+ .ak-code-copy::before{content:"";width:.7em;height:.8em;border:1.5px solid currentColor;border-radius:2px;box-shadow:2.5px -2.5px 0 -1px var(--ak-color-surface),2.5px -2.5px 0 .5px currentColor}
242
+ .ak-code-copy:hover{color:var(--ak-color-accent);background:var(--ak-tint);border-color:color-mix(in srgb,var(--ak-color-accent) 30%,transparent)}
243
+ .ak-code-copy[data-ak-copied]{color:color-mix(in srgb,var(--ak-color-success) 82%,var(--ak-color-text));border-color:color-mix(in srgb,var(--ak-color-success) 40%,transparent)}
244
+ .ak-code-copy[data-ak-copied]::before{content:"\\2713";width:auto;height:auto;border:0;box-shadow:none;font-size:1.2em;line-height:1}
245
+ .ak-code pre:has(.ak-line ~ .ak-line){counter-reset:ak-line;padding-left:calc(var(--ak-space-unit) * 1.5)}
246
+ .ak-code .ak-line{counter-increment:ak-line}
247
+ .ak-code pre:has(.ak-line ~ .ak-line) .ak-line::before{content:counter(ak-line);display:inline-block;width:2.2em;margin-right:1.4em;text-align:right;color:color-mix(in srgb,var(--ak-color-text-muted) 60%,transparent);-webkit-user-select:none;user-select:none}
248
+ .ak-main :is(p,li,td,dd,figcaption) > a[href^="http"]:not(.ak-btn)::after{content:"\\2197";display:inline-block;margin-left:.15em;font-size:.78em;text-decoration:none;opacity:.7}
249
+ .ak-progress-rail{display:none}
250
+ @supports (animation-timeline:scroll()){.ak-progress-rail{display:block;position:fixed;top:0;left:0;right:0;height:3px;z-index:30;pointer-events:none;background:linear-gradient(90deg,color-mix(in srgb,var(--ak-color-accent) 55%,var(--ak-color-surface)),var(--ak-color-accent));transform-origin:0 50%;transform:scaleX(0);animation:ak-reading linear both;animation-timeline:scroll(root)}@keyframes ak-reading{to{transform:scaleX(1)}}}
251
+ .ak-colophon{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--ak-space-unit) calc(var(--ak-space-unit) * 3);margin-top:calc(var(--ak-gap) * 3);padding-top:calc(var(--ak-space-unit) * 2);border-top:var(--ak-border-width) solid var(--ak-color-border);font-family:var(--ak-font-mono);font-size:.72rem;letter-spacing:.04em;color:var(--ak-color-text-muted)}
252
+ .ak-colophon p{margin:0;display:flex;flex-wrap:wrap;gap:.3em 1.4em}
253
+ .ak-colophon-title{color:var(--ak-color-text);font-weight:600}
254
+ .ak-colophon a{display:inline-flex;align-items:center;gap:.45em;min-height:44px;color:var(--ak-color-text-muted);text-decoration:none;${TRANSITION}}
255
+ .ak-colophon a::before{content:"\\2191"}
256
+ .ak-colophon a:hover{color:var(--ak-color-accent)}
257
+ @media (max-width:768px){body{--ak-font-size-base:16px}.ak-grid:not([data-ak-columns="1"]),.ak-gallery:not([data-ak-columns="1"]){grid-template-columns:repeat(2,minmax(0,1fr))}.ak-compare,.ak-split{grid-template-columns:1fr!important}.ak-shell{padding:calc(var(--ak-space-unit) * 2) calc(var(--ak-space-unit) * 2) calc(var(--ak-space-unit) * 8)}h1{font-size:calc(var(--ak-font-size-base) * 2);font-size:calc(var(--ak-font-size-base) * pow(var(--ak-font-scale),3))}.ak-hero h1{font-size:calc(var(--ak-font-size-base) * 2.2);font-size:calc(var(--ak-font-size-base) * pow(var(--ak-font-scale),3.5))}h2{font-size:calc(var(--ak-font-size-base) * 1.4);font-size:calc(var(--ak-font-size-base) * pow(var(--ak-font-scale),1.5))}.ak-btn{min-height:44px}.ak-toolbar > a{min-height:44px}.ak-code-copy{min-height:44px}.ak-table-wrap table{min-width:560px}.ak-hero{padding-top:calc(var(--ak-space-unit) * 3)}.ak-main > .ak-block + .ak-block:is(.ak-section,:has(> .ak-section-head)){margin-top:calc(var(--ak-gap) * 2)}}
258
+ @media (max-width:480px){.ak-grid,.ak-gallery{grid-template-columns:1fr!important}.ak-toolbar{flex-direction:column;align-items:stretch}.ak-toolbar > a{margin-left:0}.ak-stats{grid-template-columns:1fr 1fr}.ak-stat{padding:calc(var(--ak-space-unit) * 2)}.ak-stat dd{font-size:calc(var(--ak-font-size-base) * 1.85)}.ak-kv{grid-template-columns:minmax(0,1fr)}.ak-kv dt{border-bottom:0;padding-bottom:0}.ak-callout,.ak-alert{padding-left:calc(var(--ak-space-unit) * 6)}.ak-callout::before,.ak-alert::before{left:calc(var(--ak-space-unit) * 2)}.ak-quote{padding-left:calc(var(--ak-space-unit) * 4.5)}.ak-quote::before{font-size:calc(var(--ak-font-size-base) * 3.5)}.ak-card,.ak-surface{padding:calc(var(--ak-space-unit) * 2.5)}th,td{padding-left:calc(var(--ak-space-unit) * 1.5);padding-right:calc(var(--ak-space-unit) * 1.5)}}
259
+ @media print{body{background:none}.ak-skip,.ak-page-bar,.ak-progress-rail,.ak-code-copy,.ak-colophon a{display:none}.ak-shell{max-width:none;padding:0}.ak-card,.ak-surface,.ak-stat,.ak-stats,.ak-table-wrap,.ak-toolbar{box-shadow:none}}
260
+ ${SIGNATURE_CSS}
261
+ ${EFFECTS_CSS}`;
163
262
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/render/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDA2G8B,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAsD;IAC5E,IAAI,EAAE;;;;iDAIyC;IAE/C,SAAS,EAAE;;;wDAG2C;IAEtD,QAAQ,EAAE;;;;;sGAK0F;IAEpG,MAAM,EAAE;;qGAE2F;IAEnG,MAAM,EAAE;;+HAEqH;IAE7H,KAAK,EAAE;;;;;;;;;;;sFAW6E;IAEpF,MAAM,EAAE;gNACsM;IAE9M,KAAK,EAAE,oCAAoC;IAE3C,KAAK,EAAE;4EACmE;IAE1E,OAAO,EAAE;;0MAE+L;CACzM,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/render/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,UAAU,GAAG,iCAAiC,CAAC;AAErD,MAAM,CAAC,MAAM,QAAQ,GAAG;qfAC6d,IAAI,IAAI,IAAI;qEAC5b,SAAS;2BACnD,SAAS;;;;;;2PAMuN,UAAU;;;;;wMAK7D,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0GhN,WAAW,CAAC,gBAAgB,CAAC;EAC7B,qBAAqB;;;;;;;0BAOG,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;4eA4Bwc,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4YAmD1G,UAAU;;;;;;;;;;;;;;;wIAe9Q,UAAU;;;;;;EAMhJ,aAAa;EACb,WAAW,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * The night band: an inverse surface for sections and the closing CTA.
3
+ *
4
+ * Inside `[data-surface="inverse"]` the colour tokens are redeclared with the
5
+ * theme's own dark values, so every block nested in the band (cards, code,
6
+ * charts) recolours from tokens exactly as it does in dark mode. The values are
7
+ * the validated theme colours themselves, written as literals: aliasing the
8
+ * root variables would be cyclic, because the band redeclares those variables.
9
+ *
10
+ * The derived variables that `:root` computes once (`--ak-tint`, `--ak-ring`,
11
+ * `--ak-fill`) are recomputed here too, since an inherited custom property
12
+ * carries the root's light result, not its formula.
13
+ *
14
+ * This sheet is emitted only on pages that use the band, and it names no
15
+ * feature marker (see `verify.ts`).
16
+ */
17
+ import type { ResolvedTheme } from '../theme/load-theme.js';
18
+ /** True when any node on the page sits on the night band. */
19
+ export declare function usesInverseSurface(nodes: readonly {
20
+ type: string;
21
+ props: Record<string, unknown>;
22
+ }[]): boolean;
23
+ export declare function inverseSurfaceCss(theme: ResolvedTheme): string;
24
+ //# sourceMappingURL=surface-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-styles.d.ts","sourceRoot":"","sources":["../../src/render/surface-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAkB5D,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAAE,GACjE,OAAO,CAET;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAM9D"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The night band: an inverse surface for sections and the closing CTA.
3
+ *
4
+ * Inside `[data-surface="inverse"]` the colour tokens are redeclared with the
5
+ * theme's own dark values, so every block nested in the band (cards, code,
6
+ * charts) recolours from tokens exactly as it does in dark mode. The values are
7
+ * the validated theme colours themselves, written as literals: aliasing the
8
+ * root variables would be cyclic, because the band redeclares those variables.
9
+ *
10
+ * The derived variables that `:root` computes once (`--ak-tint`, `--ak-ring`,
11
+ * `--ak-fill`) are recomputed here too, since an inherited custom property
12
+ * carries the root's light result, not its formula.
13
+ *
14
+ * This sheet is emitted only on pages that use the band, and it names no
15
+ * feature marker (see `verify.ts`).
16
+ */
17
+ import { TOKEN_SPECS, tokenVariable } from '../theme/tokens.js';
18
+ import { DARK_FILL, RING, TINT } from './derived-variables.js';
19
+ const UNIT = (factor) => `calc(var(--ak-space-unit) * ${factor})`;
20
+ /** Colour tokens of the theme's dark scheme as declarations, in a stable order. */
21
+ function darkColorDeclarations(theme) {
22
+ return Object.keys(theme.dark)
23
+ .filter((token) => TOKEN_SPECS[token]?.kind === 'color')
24
+ .sort()
25
+ .map((token) => `${tokenVariable(token)}:${theme.dark[token]}`)
26
+ .join(';');
27
+ }
28
+ // The same formulas dark mode uses, so the band matches it exactly.
29
+ const DERIVED = [TINT, RING, DARK_FILL, 'color-scheme:dark'].join(';');
30
+ /** True when any node on the page sits on the night band. */
31
+ export function usesInverseSurface(nodes) {
32
+ return nodes.some((node) => node.type === 'cta' || node.props.surface === 'inverse');
33
+ }
34
+ export function inverseSurfaceCss(theme) {
35
+ return `[data-surface="inverse"]{${darkColorDeclarations(theme)};${DERIVED};position:relative;isolation:isolate;overflow:hidden;padding:${UNIT(7)} ${UNIT(5)};border-radius:calc(var(--ak-radius-large) * 1.6);border:var(--ak-border-width) solid color-mix(in srgb,var(--ak-color-text) 10%,transparent);background:radial-gradient(70% 90% at 100% 0%,color-mix(in srgb,var(--ak-color-accent) 26%,transparent),transparent 70%),radial-gradient(60% 80% at 0% 100%,color-mix(in srgb,var(--ak-color-info) 14%,transparent),transparent 70%),linear-gradient(180deg,color-mix(in srgb,var(--ak-color-surface) 70%,var(--ak-color-background)),var(--ak-color-background));color:var(--ak-color-text);box-shadow:0 1px 0 color-mix(in srgb,#fff 8%,transparent) inset,0 40px 80px -40px color-mix(in srgb,var(--ak-color-background) 80%,transparent)}
36
+ [data-surface="inverse"]::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(color-mix(in srgb,var(--ak-color-text) 5%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--ak-color-text) 5%,transparent) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(90% 70% at 50% 0%,#000,transparent);mask-image:radial-gradient(90% 70% at 50% 0%,#000,transparent)}
37
+ [data-surface="inverse"] ::selection{background:color-mix(in srgb,var(--ak-color-accent) 40%,transparent)}
38
+ @media (max-width:768px){[data-surface="inverse"]{padding:${UNIT(5)} ${UNIT(3)};margin-inline:${UNIT(-1.5)}}}
39
+ @media print{[data-surface="inverse"]{box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}[data-surface="inverse"]::before{display:none}}`;
40
+ }
41
+ //# sourceMappingURL=surface-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-styles.js","sourceRoot":"","sources":["../../src/render/surface-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,IAAI,GAAG,CAAC,MAAc,EAAU,EAAE,CAAC,+BAA+B,MAAM,GAAG,CAAC;AAElF,mFAAmF;AACnF,SAAS,qBAAqB,CAAC,KAAoB;IACjD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;SAC3B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC;SACvD,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;SAC9D,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,oEAAoE;AACpE,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEvE,6DAA6D;AAC7D,MAAM,UAAU,kBAAkB,CAChC,KAAkE;IAElE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAoB;IACpD,OAAO,4BAA4B,qBAAqB,CAAC,KAAK,CAAC,IAAI,OAAO,gEAAgE,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;;;4DAGlG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,GAAG,CAAC;gKACsD,CAAC;AACjK,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Value tones: the badge colour for a status word a reader scans for severity
3
+ * or outcome.
4
+ */
5
+ /**
6
+ * Tone for a value a reader scans for severity or outcome. Only exact, known
7
+ * words map to a tone; anything else stays neutral, so a label is never
8
+ * coloured by guesswork.
9
+ */
10
+ export declare const VALUE_TONES: Readonly<Record<string, string>>;
11
+ export declare function valueTone(value: string): string;
12
+ /** A status word rendered as a toned badge. */
13
+ export declare function toneBadge(value: string): string;
14
+ //# sourceMappingURL=tone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tone.d.ts","sourceRoot":"","sources":["../../src/render/tone.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqBxD,CAAC;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,+CAA+C;AAC/C,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Value tones: the badge colour for a status word a reader scans for severity
3
+ * or outcome.
4
+ */
5
+ import { escapeText } from './escape.js';
6
+ /**
7
+ * Tone for a value a reader scans for severity or outcome. Only exact, known
8
+ * words map to a tone; anything else stays neutral, so a label is never
9
+ * coloured by guesswork.
10
+ */
11
+ export const VALUE_TONES = {
12
+ high: 'danger',
13
+ critical: 'danger',
14
+ blocker: 'danger',
15
+ bug: 'danger',
16
+ issue: 'danger',
17
+ deleted: 'danger',
18
+ removed: 'danger',
19
+ medium: 'warning',
20
+ concern: 'warning',
21
+ warning: 'warning',
22
+ renamed: 'warning',
23
+ modified: 'info',
24
+ changed: 'info',
25
+ question: 'info',
26
+ note: 'info',
27
+ low: 'success',
28
+ good: 'success',
29
+ praise: 'success',
30
+ added: 'success',
31
+ new: 'success',
32
+ };
33
+ export function valueTone(value) {
34
+ return VALUE_TONES[value.trim().toLowerCase()] ?? 'neutral';
35
+ }
36
+ /** A status word rendered as a toned badge. */
37
+ export function toneBadge(value) {
38
+ return `<span class="ak-badge" data-tone="${valueTone(value)}">${escapeText(value)}</span>`;
39
+ }
40
+ //# sourceMappingURL=tone.js.map