@bestagentkits/render 0.2.0 → 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 (596) hide show
  1. package/CHANGELOG.md +100 -1
  2. package/README.md +157 -32
  3. package/dist/blocks/chart/chart-check-kind-rules.d.ts +10 -0
  4. package/dist/blocks/chart/chart-check-kind-rules.d.ts.map +1 -0
  5. package/dist/blocks/chart/chart-check-kind-rules.js +151 -0
  6. package/dist/blocks/chart/chart-check-kind-rules.js.map +1 -0
  7. package/dist/blocks/chart/chart-check.d.ts +15 -0
  8. package/dist/blocks/chart/chart-check.d.ts.map +1 -0
  9. package/dist/blocks/chart/chart-check.js +196 -0
  10. package/dist/blocks/chart/chart-check.js.map +1 -0
  11. package/dist/blocks/chart/chart-encoding-schema.d.ts +7 -0
  12. package/dist/blocks/chart/chart-encoding-schema.d.ts.map +1 -0
  13. package/dist/blocks/chart/chart-encoding-schema.js +39 -0
  14. package/dist/blocks/chart/chart-encoding-schema.js.map +1 -0
  15. package/dist/blocks/chart/chart-encodings.d.ts +29 -0
  16. package/dist/blocks/chart/chart-encodings.d.ts.map +1 -0
  17. package/dist/blocks/chart/chart-encodings.js +59 -0
  18. package/dist/blocks/chart/chart-encodings.js.map +1 -0
  19. package/dist/blocks/chart/chart-kinds.d.ts +18 -0
  20. package/dist/blocks/chart/chart-kinds.d.ts.map +1 -0
  21. package/dist/blocks/chart/chart-kinds.js +60 -0
  22. package/dist/blocks/chart/chart-kinds.js.map +1 -0
  23. package/dist/blocks/chart/chart-model-rows.d.ts +23 -0
  24. package/dist/blocks/chart/chart-model-rows.d.ts.map +1 -0
  25. package/dist/blocks/chart/chart-model-rows.js +153 -0
  26. package/dist/blocks/chart/chart-model-rows.js.map +1 -0
  27. package/dist/blocks/chart/chart-model.d.ts +17 -0
  28. package/dist/blocks/chart/chart-model.d.ts.map +1 -0
  29. package/dist/blocks/chart/chart-model.js +131 -0
  30. package/dist/blocks/chart/chart-model.js.map +1 -0
  31. package/dist/blocks/chart/chart-styles.d.ts +3 -0
  32. package/dist/blocks/chart/chart-styles.d.ts.map +1 -0
  33. package/dist/blocks/chart/chart-styles.js +76 -0
  34. package/dist/blocks/chart/chart-styles.js.map +1 -0
  35. package/dist/blocks/chart/chart.d.ts +12 -0
  36. package/dist/blocks/chart/chart.d.ts.map +1 -0
  37. package/dist/blocks/chart/chart.js +73 -0
  38. package/dist/blocks/chart/chart.js.map +1 -0
  39. package/dist/blocks/chart/index.d.ts +4 -0
  40. package/dist/blocks/chart/index.d.ts.map +1 -0
  41. package/dist/blocks/chart/index.js +8 -0
  42. package/dist/blocks/chart/index.js.map +1 -0
  43. package/dist/blocks/composition/accordion.d.ts +4 -0
  44. package/dist/blocks/composition/accordion.d.ts.map +1 -0
  45. package/dist/blocks/composition/accordion.js +45 -0
  46. package/dist/blocks/composition/accordion.js.map +1 -0
  47. package/dist/blocks/composition/bento.d.ts +4 -0
  48. package/dist/blocks/composition/bento.d.ts.map +1 -0
  49. package/dist/blocks/composition/bento.js +91 -0
  50. package/dist/blocks/composition/bento.js.map +1 -0
  51. package/dist/blocks/composition/carousel.d.ts +4 -0
  52. package/dist/blocks/composition/carousel.d.ts.map +1 -0
  53. package/dist/blocks/composition/carousel.js +51 -0
  54. package/dist/blocks/composition/carousel.js.map +1 -0
  55. package/dist/blocks/composition/composition-runtime.d.ts +14 -0
  56. package/dist/blocks/composition/composition-runtime.d.ts.map +1 -0
  57. package/dist/blocks/composition/composition-runtime.js +136 -0
  58. package/dist/blocks/composition/composition-runtime.js.map +1 -0
  59. package/dist/blocks/composition/composition-styles.d.ts +10 -0
  60. package/dist/blocks/composition/composition-styles.d.ts.map +1 -0
  61. package/dist/blocks/composition/composition-styles.js +80 -0
  62. package/dist/blocks/composition/composition-styles.js.map +1 -0
  63. package/dist/blocks/composition/index.d.ts +4 -0
  64. package/dist/blocks/composition/index.d.ts.map +1 -0
  65. package/dist/blocks/composition/index.js +11 -0
  66. package/dist/blocks/composition/index.js.map +1 -0
  67. package/dist/blocks/composition/nestable-blocks.d.ts +37 -0
  68. package/dist/blocks/composition/nestable-blocks.d.ts.map +1 -0
  69. package/dist/blocks/composition/nestable-blocks.js +92 -0
  70. package/dist/blocks/composition/nestable-blocks.js.map +1 -0
  71. package/dist/blocks/composition/tabs.d.ts +4 -0
  72. package/dist/blocks/composition/tabs.d.ts.map +1 -0
  73. package/dist/blocks/composition/tabs.js +48 -0
  74. package/dist/blocks/composition/tabs.js.map +1 -0
  75. package/dist/blocks/controls/checkbox.d.ts +12 -0
  76. package/dist/blocks/controls/checkbox.d.ts.map +1 -0
  77. package/dist/blocks/controls/checkbox.js +43 -0
  78. package/dist/blocks/controls/checkbox.js.map +1 -0
  79. package/dist/blocks/controls/choice-options.d.ts +24 -0
  80. package/dist/blocks/controls/choice-options.d.ts.map +1 -0
  81. package/dist/blocks/controls/choice-options.js +117 -0
  82. package/dist/blocks/controls/choice-options.js.map +1 -0
  83. package/dist/blocks/controls/control-shared.d.ts +66 -0
  84. package/dist/blocks/controls/control-shared.d.ts.map +1 -0
  85. package/dist/blocks/controls/control-shared.js +241 -0
  86. package/dist/blocks/controls/control-shared.js.map +1 -0
  87. package/dist/blocks/controls/controls-runtime.d.ts +17 -0
  88. package/dist/blocks/controls/controls-runtime.d.ts.map +1 -0
  89. package/dist/blocks/controls/controls-runtime.js +180 -0
  90. package/dist/blocks/controls/controls-runtime.js.map +1 -0
  91. package/dist/blocks/controls/controls-styles.d.ts +14 -0
  92. package/dist/blocks/controls/controls-styles.d.ts.map +1 -0
  93. package/dist/blocks/controls/controls-styles.js +54 -0
  94. package/dist/blocks/controls/controls-styles.js.map +1 -0
  95. package/dist/blocks/controls/date-input.d.ts +6 -0
  96. package/dist/blocks/controls/date-input.d.ts.map +1 -0
  97. package/dist/blocks/controls/date-input.js +58 -0
  98. package/dist/blocks/controls/date-input.js.map +1 -0
  99. package/dist/blocks/controls/field-input.d.ts +10 -0
  100. package/dist/blocks/controls/field-input.d.ts.map +1 -0
  101. package/dist/blocks/controls/field-input.js +20 -0
  102. package/dist/blocks/controls/field-input.js.map +1 -0
  103. package/dist/blocks/controls/filter-bar.d.ts +11 -0
  104. package/dist/blocks/controls/filter-bar.d.ts.map +1 -0
  105. package/dist/blocks/controls/filter-bar.js +115 -0
  106. package/dist/blocks/controls/filter-bar.js.map +1 -0
  107. package/dist/blocks/controls/index.d.ts +4 -0
  108. package/dist/blocks/controls/index.d.ts.map +1 -0
  109. package/dist/blocks/controls/index.js +41 -0
  110. package/dist/blocks/controls/index.js.map +1 -0
  111. package/dist/blocks/controls/number-input.d.ts +4 -0
  112. package/dist/blocks/controls/number-input.d.ts.map +1 -0
  113. package/dist/blocks/controls/number-input.js +62 -0
  114. package/dist/blocks/controls/number-input.js.map +1 -0
  115. package/dist/blocks/controls/radio-group.d.ts +4 -0
  116. package/dist/blocks/controls/radio-group.d.ts.map +1 -0
  117. package/dist/blocks/controls/radio-group.js +56 -0
  118. package/dist/blocks/controls/radio-group.js.map +1 -0
  119. package/dist/blocks/controls/select.d.ts +4 -0
  120. package/dist/blocks/controls/select.d.ts.map +1 -0
  121. package/dist/blocks/controls/select.js +49 -0
  122. package/dist/blocks/controls/select.js.map +1 -0
  123. package/dist/blocks/controls/switch.d.ts +4 -0
  124. package/dist/blocks/controls/switch.d.ts.map +1 -0
  125. package/dist/blocks/controls/switch.js +22 -0
  126. package/dist/blocks/controls/switch.js.map +1 -0
  127. package/dist/blocks/controls/text-input.d.ts +4 -0
  128. package/dist/blocks/controls/text-input.d.ts.map +1 -0
  129. package/dist/blocks/controls/text-input.js +42 -0
  130. package/dist/blocks/controls/text-input.js.map +1 -0
  131. package/dist/blocks/data-table/data-table-cells.d.ts +26 -0
  132. package/dist/blocks/data-table/data-table-cells.d.ts.map +1 -0
  133. package/dist/blocks/data-table/data-table-cells.js +154 -0
  134. package/dist/blocks/data-table/data-table-cells.js.map +1 -0
  135. package/dist/blocks/data-table/data-table-check.d.ts +10 -0
  136. package/dist/blocks/data-table/data-table-check.d.ts.map +1 -0
  137. package/dist/blocks/data-table/data-table-check.js +99 -0
  138. package/dist/blocks/data-table/data-table-check.js.map +1 -0
  139. package/dist/blocks/data-table/data-table-columns.d.ts +41 -0
  140. package/dist/blocks/data-table/data-table-columns.d.ts.map +1 -0
  141. package/dist/blocks/data-table/data-table-columns.js +155 -0
  142. package/dist/blocks/data-table/data-table-columns.js.map +1 -0
  143. package/dist/blocks/data-table/data-table-runtime.d.ts +15 -0
  144. package/dist/blocks/data-table/data-table-runtime.d.ts.map +1 -0
  145. package/dist/blocks/data-table/data-table-runtime.js +106 -0
  146. package/dist/blocks/data-table/data-table-runtime.js.map +1 -0
  147. package/dist/blocks/data-table/data-table-styles.d.ts +11 -0
  148. package/dist/blocks/data-table/data-table-styles.d.ts.map +1 -0
  149. package/dist/blocks/data-table/data-table-styles.js +74 -0
  150. package/dist/blocks/data-table/data-table-styles.js.map +1 -0
  151. package/dist/blocks/data-table/data-table.d.ts +17 -0
  152. package/dist/blocks/data-table/data-table.d.ts.map +1 -0
  153. package/dist/blocks/data-table/data-table.js +159 -0
  154. package/dist/blocks/data-table/data-table.js.map +1 -0
  155. package/dist/blocks/data-table/index.d.ts +4 -0
  156. package/dist/blocks/data-table/index.d.ts.map +1 -0
  157. package/dist/blocks/data-table/index.js +18 -0
  158. package/dist/blocks/data-table/index.js.map +1 -0
  159. package/dist/blocks/engineering/api-endpoint.d.ts +12 -0
  160. package/dist/blocks/engineering/api-endpoint.d.ts.map +1 -0
  161. package/dist/blocks/engineering/api-endpoint.js +174 -0
  162. package/dist/blocks/engineering/api-endpoint.js.map +1 -0
  163. package/dist/blocks/engineering/engineering-helpers.d.ts +49 -0
  164. package/dist/blocks/engineering/engineering-helpers.d.ts.map +1 -0
  165. package/dist/blocks/engineering/engineering-helpers.js +156 -0
  166. package/dist/blocks/engineering/engineering-helpers.js.map +1 -0
  167. package/dist/blocks/engineering/engineering-styles.d.ts +12 -0
  168. package/dist/blocks/engineering/engineering-styles.d.ts.map +1 -0
  169. package/dist/blocks/engineering/engineering-styles.js +174 -0
  170. package/dist/blocks/engineering/engineering-styles.js.map +1 -0
  171. package/dist/blocks/engineering/index.d.ts +4 -0
  172. package/dist/blocks/engineering/index.d.ts.map +1 -0
  173. package/dist/blocks/engineering/index.js +30 -0
  174. package/dist/blocks/engineering/index.js.map +1 -0
  175. package/dist/blocks/engineering/kanban.d.ts +11 -0
  176. package/dist/blocks/engineering/kanban.d.ts.map +1 -0
  177. package/dist/blocks/engineering/kanban.js +162 -0
  178. package/dist/blocks/engineering/kanban.js.map +1 -0
  179. package/dist/blocks/engineering/log-viewer.d.ts +14 -0
  180. package/dist/blocks/engineering/log-viewer.d.ts.map +1 -0
  181. package/dist/blocks/engineering/log-viewer.js +158 -0
  182. package/dist/blocks/engineering/log-viewer.js.map +1 -0
  183. package/dist/blocks/engineering/roadmap.d.ts +13 -0
  184. package/dist/blocks/engineering/roadmap.d.ts.map +1 -0
  185. package/dist/blocks/engineering/roadmap.js +197 -0
  186. package/dist/blocks/engineering/roadmap.js.map +1 -0
  187. package/dist/blocks/engineering/schema-viewer.d.ts +25 -0
  188. package/dist/blocks/engineering/schema-viewer.d.ts.map +1 -0
  189. package/dist/blocks/engineering/schema-viewer.js +124 -0
  190. package/dist/blocks/engineering/schema-viewer.js.map +1 -0
  191. package/dist/blocks/engineering/test-results.d.ts +12 -0
  192. package/dist/blocks/engineering/test-results.d.ts.map +1 -0
  193. package/dist/blocks/engineering/test-results.js +180 -0
  194. package/dist/blocks/engineering/test-results.js.map +1 -0
  195. package/dist/blocks/evidence/annotated-image.d.ts +15 -0
  196. package/dist/blocks/evidence/annotated-image.d.ts.map +1 -0
  197. package/dist/blocks/evidence/annotated-image.js +99 -0
  198. package/dist/blocks/evidence/annotated-image.js.map +1 -0
  199. package/dist/blocks/evidence/benchmark-comparison.d.ts +11 -0
  200. package/dist/blocks/evidence/benchmark-comparison.d.ts.map +1 -0
  201. package/dist/blocks/evidence/benchmark-comparison.js +262 -0
  202. package/dist/blocks/evidence/benchmark-comparison.js.map +1 -0
  203. package/dist/blocks/evidence/benchmark-verdict.d.ts +26 -0
  204. package/dist/blocks/evidence/benchmark-verdict.d.ts.map +1 -0
  205. package/dist/blocks/evidence/benchmark-verdict.js +31 -0
  206. package/dist/blocks/evidence/benchmark-verdict.js.map +1 -0
  207. package/dist/blocks/evidence/evidence-helpers.d.ts +39 -0
  208. package/dist/blocks/evidence/evidence-helpers.d.ts.map +1 -0
  209. package/dist/blocks/evidence/evidence-helpers.js +87 -0
  210. package/dist/blocks/evidence/evidence-helpers.js.map +1 -0
  211. package/dist/blocks/evidence/evidence-styles.d.ts +12 -0
  212. package/dist/blocks/evidence/evidence-styles.d.ts.map +1 -0
  213. package/dist/blocks/evidence/evidence-styles.js +88 -0
  214. package/dist/blocks/evidence/evidence-styles.js.map +1 -0
  215. package/dist/blocks/evidence/index.d.ts +4 -0
  216. package/dist/blocks/evidence/index.d.ts.map +1 -0
  217. package/dist/blocks/evidence/index.js +15 -0
  218. package/dist/blocks/evidence/index.js.map +1 -0
  219. package/dist/blocks/evidence/metric-breakdown.d.ts +22 -0
  220. package/dist/blocks/evidence/metric-breakdown.d.ts.map +1 -0
  221. package/dist/blocks/evidence/metric-breakdown.js +203 -0
  222. package/dist/blocks/evidence/metric-breakdown.js.map +1 -0
  223. package/dist/blocks/evidence/references.d.ts +13 -0
  224. package/dist/blocks/evidence/references.d.ts.map +1 -0
  225. package/dist/blocks/evidence/references.js +103 -0
  226. package/dist/blocks/evidence/references.js.map +1 -0
  227. package/dist/blocks/index.d.ts +8 -0
  228. package/dist/blocks/index.d.ts.map +1 -0
  229. package/dist/blocks/index.js +24 -0
  230. package/dist/blocks/index.js.map +1 -0
  231. package/dist/blocks/layout/grid-item.d.ts +4 -0
  232. package/dist/blocks/layout/grid-item.d.ts.map +1 -0
  233. package/dist/blocks/layout/grid-item.js +65 -0
  234. package/dist/blocks/layout/grid-item.js.map +1 -0
  235. package/dist/blocks/layout/grid.d.ts +9 -0
  236. package/dist/blocks/layout/grid.d.ts.map +1 -0
  237. package/dist/blocks/layout/grid.js +99 -0
  238. package/dist/blocks/layout/grid.js.map +1 -0
  239. package/dist/blocks/layout/index.d.ts +4 -0
  240. package/dist/blocks/layout/index.d.ts.map +1 -0
  241. package/dist/blocks/layout/index.js +23 -0
  242. package/dist/blocks/layout/index.js.map +1 -0
  243. package/dist/blocks/layout/layout-styles.d.ts +40 -0
  244. package/dist/blocks/layout/layout-styles.d.ts.map +1 -0
  245. package/dist/blocks/layout/layout-styles.js +110 -0
  246. package/dist/blocks/layout/layout-styles.js.map +1 -0
  247. package/dist/blocks/layout/main-aside.d.ts +4 -0
  248. package/dist/blocks/layout/main-aside.d.ts.map +1 -0
  249. package/dist/blocks/layout/main-aside.js +21 -0
  250. package/dist/blocks/layout/main-aside.js.map +1 -0
  251. package/dist/blocks/layout/rail-layout.d.ts +4 -0
  252. package/dist/blocks/layout/rail-layout.d.ts.map +1 -0
  253. package/dist/blocks/layout/rail-layout.js +33 -0
  254. package/dist/blocks/layout/rail-layout.js.map +1 -0
  255. package/dist/blocks/layout/semantic-layout-parts.d.ts +14 -0
  256. package/dist/blocks/layout/semantic-layout-parts.d.ts.map +1 -0
  257. package/dist/blocks/layout/semantic-layout-parts.js +9 -0
  258. package/dist/blocks/layout/semantic-layout-parts.js.map +1 -0
  259. package/dist/blocks/layout/sidebar-layout.d.ts +4 -0
  260. package/dist/blocks/layout/sidebar-layout.d.ts.map +1 -0
  261. package/dist/blocks/layout/sidebar-layout.js +30 -0
  262. package/dist/blocks/layout/sidebar-layout.js.map +1 -0
  263. package/dist/blocks/layout/split.d.ts +4 -0
  264. package/dist/blocks/layout/split.d.ts.map +1 -0
  265. package/dist/blocks/layout/split.js +23 -0
  266. package/dist/blocks/layout/split.js.map +1 -0
  267. package/dist/blocks/layout/stack.d.ts +4 -0
  268. package/dist/blocks/layout/stack.d.ts.map +1 -0
  269. package/dist/blocks/layout/stack.js +36 -0
  270. package/dist/blocks/layout/stack.js.map +1 -0
  271. package/dist/blocks/product/calendar-dates.d.ts +59 -0
  272. package/dist/blocks/product/calendar-dates.d.ts.map +1 -0
  273. package/dist/blocks/product/calendar-dates.js +100 -0
  274. package/dist/blocks/product/calendar-dates.js.map +1 -0
  275. package/dist/blocks/product/calendar.d.ts +12 -0
  276. package/dist/blocks/product/calendar.d.ts.map +1 -0
  277. package/dist/blocks/product/calendar.js +125 -0
  278. package/dist/blocks/product/calendar.js.map +1 -0
  279. package/dist/blocks/product/feature-matrix.d.ts +4 -0
  280. package/dist/blocks/product/feature-matrix.d.ts.map +1 -0
  281. package/dist/blocks/product/feature-matrix.js +72 -0
  282. package/dist/blocks/product/feature-matrix.js.map +1 -0
  283. package/dist/blocks/product/gallery.d.ts +14 -0
  284. package/dist/blocks/product/gallery.d.ts.map +1 -0
  285. package/dist/blocks/product/gallery.js +86 -0
  286. package/dist/blocks/product/gallery.js.map +1 -0
  287. package/dist/blocks/product/index.d.ts +4 -0
  288. package/dist/blocks/product/index.d.ts.map +1 -0
  289. package/dist/blocks/product/index.js +40 -0
  290. package/dist/blocks/product/index.js.map +1 -0
  291. package/dist/blocks/product/logo-cloud.d.ts +4 -0
  292. package/dist/blocks/product/logo-cloud.d.ts.map +1 -0
  293. package/dist/blocks/product/logo-cloud.js +42 -0
  294. package/dist/blocks/product/logo-cloud.js.map +1 -0
  295. package/dist/blocks/product/people.d.ts +4 -0
  296. package/dist/blocks/product/people.d.ts.map +1 -0
  297. package/dist/blocks/product/people.js +53 -0
  298. package/dist/blocks/product/people.js.map +1 -0
  299. package/dist/blocks/product/pricing.d.ts +4 -0
  300. package/dist/blocks/product/pricing.d.ts.map +1 -0
  301. package/dist/blocks/product/pricing.js +86 -0
  302. package/dist/blocks/product/pricing.js.map +1 -0
  303. package/dist/blocks/product/product-helpers.d.ts +22 -0
  304. package/dist/blocks/product/product-helpers.d.ts.map +1 -0
  305. package/dist/blocks/product/product-helpers.js +48 -0
  306. package/dist/blocks/product/product-helpers.js.map +1 -0
  307. package/dist/blocks/product/product-runtime.d.ts +15 -0
  308. package/dist/blocks/product/product-runtime.d.ts.map +1 -0
  309. package/dist/blocks/product/product-runtime.js +97 -0
  310. package/dist/blocks/product/product-runtime.js.map +1 -0
  311. package/dist/blocks/product/product-styles.d.ts +14 -0
  312. package/dist/blocks/product/product-styles.d.ts.map +1 -0
  313. package/dist/blocks/product/product-styles.js +120 -0
  314. package/dist/blocks/product/product-styles.js.map +1 -0
  315. package/dist/blocks/product/testimonial.d.ts +8 -0
  316. package/dist/blocks/product/testimonial.d.ts.map +1 -0
  317. package/dist/blocks/product/testimonial.js +67 -0
  318. package/dist/blocks/product/testimonial.js.map +1 -0
  319. package/dist/cli.d.ts.map +1 -1
  320. package/dist/cli.js +143 -30
  321. package/dist/cli.js.map +1 -1
  322. package/dist/data/data-json-schema.d.ts +9 -0
  323. package/dist/data/data-json-schema.d.ts.map +1 -0
  324. package/dist/data/data-json-schema.js +48 -0
  325. package/dist/data/data-json-schema.js.map +1 -0
  326. package/dist/data/dataset-types.d.ts +47 -0
  327. package/dist/data/dataset-types.d.ts.map +1 -0
  328. package/dist/data/dataset-types.js +49 -0
  329. package/dist/data/dataset-types.js.map +1 -0
  330. package/dist/data/format-value.d.ts +39 -0
  331. package/dist/data/format-value.d.ts.map +1 -0
  332. package/dist/data/format-value.js +214 -0
  333. package/dist/data/format-value.js.map +1 -0
  334. package/dist/data/resolve-block-data.d.ts +24 -0
  335. package/dist/data/resolve-block-data.d.ts.map +1 -0
  336. package/dist/data/resolve-block-data.js +190 -0
  337. package/dist/data/resolve-block-data.js.map +1 -0
  338. package/dist/data/transform-pipeline.d.ts +65 -0
  339. package/dist/data/transform-pipeline.d.ts.map +1 -0
  340. package/dist/data/transform-pipeline.js +234 -0
  341. package/dist/data/transform-pipeline.js.map +1 -0
  342. package/dist/data/validate-datasets.d.ts +22 -0
  343. package/dist/data/validate-datasets.d.ts.map +1 -0
  344. package/dist/data/validate-datasets.js +137 -0
  345. package/dist/data/validate-datasets.js.map +1 -0
  346. package/dist/diagram/adapter-markup-fit.d.ts +44 -0
  347. package/dist/diagram/adapter-markup-fit.d.ts.map +1 -0
  348. package/dist/diagram/adapter-markup-fit.js +292 -0
  349. package/dist/diagram/adapter-markup-fit.js.map +1 -0
  350. package/dist/diagram/adapter-stylesheet-filter.d.ts +56 -0
  351. package/dist/diagram/adapter-stylesheet-filter.d.ts.map +1 -0
  352. package/dist/diagram/adapter-stylesheet-filter.js +245 -0
  353. package/dist/diagram/adapter-stylesheet-filter.js.map +1 -0
  354. package/dist/diagram/adapter.d.ts +17 -0
  355. package/dist/diagram/adapter.d.ts.map +1 -1
  356. package/dist/diagram/adapter.js +43 -2
  357. package/dist/diagram/adapter.js.map +1 -1
  358. package/dist/index.d.ts +14 -1
  359. package/dist/index.d.ts.map +1 -1
  360. package/dist/index.js +6 -0
  361. package/dist/index.js.map +1 -1
  362. package/dist/ir.d.ts +18 -0
  363. package/dist/ir.d.ts.map +1 -1
  364. package/dist/ir.js.map +1 -1
  365. package/dist/mcp/mcp-http-transport.d.ts +68 -0
  366. package/dist/mcp/mcp-http-transport.d.ts.map +1 -0
  367. package/dist/mcp/mcp-http-transport.js +140 -0
  368. package/dist/mcp/mcp-http-transport.js.map +1 -0
  369. package/dist/mcp/mcp-json-rpc-dispatch.d.ts +38 -0
  370. package/dist/mcp/mcp-json-rpc-dispatch.d.ts.map +1 -0
  371. package/dist/mcp/mcp-json-rpc-dispatch.js +98 -0
  372. package/dist/mcp/mcp-json-rpc-dispatch.js.map +1 -0
  373. package/dist/mcp/mcp-local-tools.d.ts +20 -0
  374. package/dist/mcp/mcp-local-tools.d.ts.map +1 -0
  375. package/dist/mcp/mcp-local-tools.js +58 -0
  376. package/dist/mcp/mcp-local-tools.js.map +1 -0
  377. package/dist/mcp/mcp-protocol.d.ts +79 -0
  378. package/dist/mcp/mcp-protocol.d.ts.map +1 -0
  379. package/dist/mcp/mcp-protocol.js +83 -0
  380. package/dist/mcp/mcp-protocol.js.map +1 -0
  381. package/dist/mcp/mcp-stdio-transport.d.ts +28 -0
  382. package/dist/mcp/mcp-stdio-transport.d.ts.map +1 -0
  383. package/dist/mcp/mcp-stdio-transport.js +73 -0
  384. package/dist/mcp/mcp-stdio-transport.js.map +1 -0
  385. package/dist/mcp/mcp-tool-definitions.d.ts +66 -0
  386. package/dist/mcp/mcp-tool-definitions.d.ts.map +1 -0
  387. package/dist/mcp/mcp-tool-definitions.js +246 -0
  388. package/dist/mcp/mcp-tool-definitions.js.map +1 -0
  389. package/dist/mcp-server.d.ts +6 -33
  390. package/dist/mcp-server.d.ts.map +1 -1
  391. package/dist/mcp-server.js +5 -270
  392. package/dist/mcp-server.js.map +1 -1
  393. package/dist/recipes/index.d.ts +27 -0
  394. package/dist/recipes/index.d.ts.map +1 -0
  395. package/dist/recipes/index.js +30 -0
  396. package/dist/recipes/index.js.map +1 -0
  397. package/dist/recipes/recipes.generated.d.ts +8 -0
  398. package/dist/recipes/recipes.generated.d.ts.map +1 -0
  399. package/dist/recipes/recipes.generated.js +704 -0
  400. package/dist/recipes/recipes.generated.js.map +1 -0
  401. package/dist/registry/actions.d.ts +2 -0
  402. package/dist/registry/actions.d.ts.map +1 -1
  403. package/dist/registry/actions.js +3 -1
  404. package/dist/registry/actions.js.map +1 -1
  405. package/dist/registry/block-module.d.ts +65 -0
  406. package/dist/registry/block-module.d.ts.map +1 -0
  407. package/dist/registry/block-module.js +19 -0
  408. package/dist/registry/block-module.js.map +1 -0
  409. package/dist/registry/catalog-search.d.ts +32 -0
  410. package/dist/registry/catalog-search.d.ts.map +1 -0
  411. package/dist/registry/catalog-search.js +122 -0
  412. package/dist/registry/catalog-search.js.map +1 -0
  413. package/dist/registry/define-helpers.d.ts +89 -0
  414. package/dist/registry/define-helpers.d.ts.map +1 -0
  415. package/dist/registry/define-helpers.js +87 -0
  416. package/dist/registry/define-helpers.js.map +1 -0
  417. package/dist/registry/describe-many.d.ts +58 -0
  418. package/dist/registry/describe-many.d.ts.map +1 -0
  419. package/dist/registry/describe-many.js +156 -0
  420. package/dist/registry/describe-many.js.map +1 -0
  421. package/dist/registry/prop-schema.d.ts +32 -1
  422. package/dist/registry/prop-schema.d.ts.map +1 -1
  423. package/dist/registry/prop-schema.js +108 -2
  424. package/dist/registry/prop-schema.js.map +1 -1
  425. package/dist/registry/registry-builder.d.ts +17 -0
  426. package/dist/registry/registry-builder.d.ts.map +1 -0
  427. package/dist/registry/registry-builder.js +158 -0
  428. package/dist/registry/registry-builder.js.map +1 -0
  429. package/dist/registry/registry.d.ts +32 -5
  430. package/dist/registry/registry.d.ts.map +1 -1
  431. package/dist/registry/registry.js +67 -14
  432. package/dist/registry/registry.js.map +1 -1
  433. package/dist/registry/roster.d.ts +34 -5
  434. package/dist/registry/roster.d.ts.map +1 -1
  435. package/dist/registry/roster.js +184 -224
  436. package/dist/registry/roster.js.map +1 -1
  437. package/dist/render/block-helpers.d.ts +11 -18
  438. package/dist/render/block-helpers.d.ts.map +1 -1
  439. package/dist/render/block-helpers.js +14 -44
  440. package/dist/render/block-helpers.js.map +1 -1
  441. package/dist/render/blocks.d.ts +9 -33
  442. package/dist/render/blocks.d.ts.map +1 -1
  443. package/dist/render/blocks.js +56 -180
  444. package/dist/render/blocks.js.map +1 -1
  445. package/dist/render/chart-figure-encoded.d.ts +11 -0
  446. package/dist/render/chart-figure-encoded.d.ts.map +1 -0
  447. package/dist/render/chart-figure-encoded.js +81 -0
  448. package/dist/render/chart-figure-encoded.js.map +1 -0
  449. package/dist/render/chart-kinds-cartesian.d.ts +14 -0
  450. package/dist/render/chart-kinds-cartesian.d.ts.map +1 -0
  451. package/dist/render/chart-kinds-cartesian.js +122 -0
  452. package/dist/render/chart-kinds-cartesian.js.map +1 -0
  453. package/dist/render/chart-kinds-composite.d.ts +16 -0
  454. package/dist/render/chart-kinds-composite.d.ts.map +1 -0
  455. package/dist/render/chart-kinds-composite.js +144 -0
  456. package/dist/render/chart-kinds-composite.js.map +1 -0
  457. package/dist/render/chart-kinds-gauge-treemap.d.ts +8 -0
  458. package/dist/render/chart-kinds-gauge-treemap.d.ts.map +1 -0
  459. package/dist/render/chart-kinds-gauge-treemap.js +101 -0
  460. package/dist/render/chart-kinds-gauge-treemap.js.map +1 -0
  461. package/dist/render/chart-kinds-histogram-waterfall.d.ts +17 -0
  462. package/dist/render/chart-kinds-histogram-waterfall.d.ts.map +1 -0
  463. package/dist/render/chart-kinds-histogram-waterfall.js +172 -0
  464. package/dist/render/chart-kinds-histogram-waterfall.js.map +1 -0
  465. package/dist/render/chart-overlays.d.ts +18 -0
  466. package/dist/render/chart-overlays.d.ts.map +1 -0
  467. package/dist/render/chart-overlays.js +58 -0
  468. package/dist/render/chart-overlays.js.map +1 -0
  469. package/dist/render/chart-scales.d.ts +83 -0
  470. package/dist/render/chart-scales.d.ts.map +1 -0
  471. package/dist/render/chart-scales.js +166 -0
  472. package/dist/render/chart-scales.js.map +1 -0
  473. package/dist/render/chart-svg-parts.d.ts +50 -0
  474. package/dist/render/chart-svg-parts.d.ts.map +1 -0
  475. package/dist/render/chart-svg-parts.js +125 -0
  476. package/dist/render/chart-svg-parts.js.map +1 -0
  477. package/dist/render/chart-text.d.ts +18 -0
  478. package/dist/render/chart-text.d.ts.map +1 -0
  479. package/dist/render/chart-text.js +69 -0
  480. package/dist/render/chart-text.js.map +1 -0
  481. package/dist/render/chart-treemap-layout.d.ts +17 -0
  482. package/dist/render/chart-treemap-layout.d.ts.map +1 -0
  483. package/dist/render/chart-treemap-layout.js +74 -0
  484. package/dist/render/chart-treemap-layout.js.map +1 -0
  485. package/dist/render/chart-types.d.ts +107 -0
  486. package/dist/render/chart-types.d.ts.map +1 -0
  487. package/dist/render/chart-types.js +11 -0
  488. package/dist/render/chart-types.js.map +1 -0
  489. package/dist/render/charts.d.ts +28 -11
  490. package/dist/render/charts.d.ts.map +1 -1
  491. package/dist/render/charts.js +38 -117
  492. package/dist/render/charts.js.map +1 -1
  493. package/dist/render/derived-variables.d.ts +20 -0
  494. package/dist/render/derived-variables.d.ts.map +1 -1
  495. package/dist/render/derived-variables.js +23 -0
  496. package/dist/render/derived-variables.js.map +1 -1
  497. package/dist/render/document.d.ts +11 -0
  498. package/dist/render/document.d.ts.map +1 -1
  499. package/dist/render/document.js +20 -3
  500. package/dist/render/document.js.map +1 -1
  501. package/dist/render/escape.d.ts +10 -0
  502. package/dist/render/escape.d.ts.map +1 -1
  503. package/dist/render/escape.js +28 -0
  504. package/dist/render/escape.js.map +1 -1
  505. package/dist/render/feature-styles.d.ts.map +1 -1
  506. package/dist/render/feature-styles.js +42 -80
  507. package/dist/render/feature-styles.js.map +1 -1
  508. package/dist/render/outline.d.ts +1 -1
  509. package/dist/render/outline.d.ts.map +1 -1
  510. package/dist/render/outline.js +4 -1
  511. package/dist/render/outline.js.map +1 -1
  512. package/dist/render/recipe-styles.d.ts +26 -0
  513. package/dist/render/recipe-styles.d.ts.map +1 -0
  514. package/dist/render/recipe-styles.js +218 -0
  515. package/dist/render/recipe-styles.js.map +1 -0
  516. package/dist/render/render-context.d.ts +40 -0
  517. package/dist/render/render-context.d.ts.map +1 -0
  518. package/dist/render/render-context.js +16 -0
  519. package/dist/render/render-context.js.map +1 -0
  520. package/dist/render/render.d.ts +7 -0
  521. package/dist/render/render.d.ts.map +1 -1
  522. package/dist/render/render.js +68 -44
  523. package/dist/render/render.js.map +1 -1
  524. package/dist/render/runtime.d.ts +4 -1
  525. package/dist/render/runtime.d.ts.map +1 -1
  526. package/dist/render/runtime.js +91 -118
  527. package/dist/render/runtime.js.map +1 -1
  528. package/dist/render/showcase-blocks.d.ts +5 -0
  529. package/dist/render/showcase-blocks.d.ts.map +1 -1
  530. package/dist/render/showcase-blocks.js +8 -28
  531. package/dist/render/showcase-blocks.js.map +1 -1
  532. package/dist/render/showcase-styles.d.ts.map +1 -1
  533. package/dist/render/showcase-styles.js +15 -31
  534. package/dist/render/showcase-styles.js.map +1 -1
  535. package/dist/render/style-units.d.ts +17 -0
  536. package/dist/render/style-units.d.ts.map +1 -0
  537. package/dist/render/style-units.js +24 -0
  538. package/dist/render/style-units.js.map +1 -0
  539. package/dist/render/styles.d.ts.map +1 -1
  540. package/dist/render/styles.js +8 -5
  541. package/dist/render/styles.js.map +1 -1
  542. package/dist/render/tone.d.ts +14 -0
  543. package/dist/render/tone.d.ts.map +1 -0
  544. package/dist/render/tone.js +40 -0
  545. package/dist/render/tone.js.map +1 -0
  546. package/dist/render/verify.d.ts +3 -0
  547. package/dist/render/verify.d.ts.map +1 -1
  548. package/dist/render/verify.js +15 -2
  549. package/dist/render/verify.js.map +1 -1
  550. package/dist/spec/asset-references.d.ts +35 -0
  551. package/dist/spec/asset-references.d.ts.map +1 -0
  552. package/dist/spec/asset-references.js +93 -0
  553. package/dist/spec/asset-references.js.map +1 -0
  554. package/dist/spec/bounds.d.ts +6 -0
  555. package/dist/spec/bounds.d.ts.map +1 -1
  556. package/dist/spec/bounds.js +7 -0
  557. package/dist/spec/bounds.js.map +1 -1
  558. package/dist/spec/conditions.d.ts +43 -0
  559. package/dist/spec/conditions.d.ts.map +1 -0
  560. package/dist/spec/conditions.js +179 -0
  561. package/dist/spec/conditions.js.map +1 -0
  562. package/dist/spec/network-policy.d.ts +33 -0
  563. package/dist/spec/network-policy.d.ts.map +1 -0
  564. package/dist/spec/network-policy.js +57 -0
  565. package/dist/spec/network-policy.js.map +1 -0
  566. package/dist/spec/normalize.d.ts +7 -2
  567. package/dist/spec/normalize.d.ts.map +1 -1
  568. package/dist/spec/normalize.js +203 -57
  569. package/dist/spec/normalize.js.map +1 -1
  570. package/dist/theme/dialect-presets.d.ts +12 -0
  571. package/dist/theme/dialect-presets.d.ts.map +1 -0
  572. package/dist/theme/dialect-presets.js +214 -0
  573. package/dist/theme/dialect-presets.js.map +1 -0
  574. package/dist/theme/load-theme.d.ts +9 -1
  575. package/dist/theme/load-theme.d.ts.map +1 -1
  576. package/dist/theme/load-theme.js +25 -2
  577. package/dist/theme/load-theme.js.map +1 -1
  578. package/dist/theme/preset-builder.d.ts +36 -0
  579. package/dist/theme/preset-builder.d.ts.map +1 -0
  580. package/dist/theme/preset-builder.js +51 -0
  581. package/dist/theme/preset-builder.js.map +1 -0
  582. package/dist/theme/presets.d.ts +4 -7
  583. package/dist/theme/presets.d.ts.map +1 -1
  584. package/dist/theme/presets.js +7 -40
  585. package/dist/theme/presets.js.map +1 -1
  586. package/dist/theme/recipes.d.ts +38 -0
  587. package/dist/theme/recipes.d.ts.map +1 -0
  588. package/dist/theme/recipes.js +96 -0
  589. package/dist/theme/recipes.js.map +1 -0
  590. package/dist/theme/theme-catalog.d.ts.map +1 -1
  591. package/dist/theme/theme-catalog.js +16 -0
  592. package/dist/theme/theme-catalog.js.map +1 -1
  593. package/dist/version.d.ts +1 -1
  594. package/dist/version.js +1 -1
  595. package/llms.txt +9 -5
  596. package/package.json +6 -2
@@ -13,123 +13,42 @@
13
13
  * `ak-chart-s5`) and the stylesheet maps each class onto the theme accent and
14
14
  * hue rotations of it, so a chart always follows the active preset and colour
15
15
  * scheme and no two series share a colour.
16
+ *
17
+ * This module owns the original kinds and the original figure. A chart with
18
+ * `encoded` set (a later kind, a dataset binding or an overlay) is rendered by
19
+ * `chart-figure-encoded.ts`, which reuses the bar and line drawing below.
16
20
  */
21
+ import { renderEncodedChart } from './chart-figure-encoded.js';
22
+ import { bandCentre, CARTESIAN, clampTo, formatNumber, niceBounds, plotWidth, pointX, RADIAL, round, SPARK, safeId, scaleY, seriesClass, WIDTH, } from './chart-scales.js';
23
+ import { categoryLabels, gridAndTicks, pointTitle, textValueLabel, } from './chart-svg-parts.js';
17
24
  import { escapeAttribute, escapeText, renderAttributes } from './escape.js';
18
- /**
19
- * Shared viewBox width. Text inside the SVG scales with the rendered width, so
20
- * this is sized for a full-width card: labels render near their nominal size
21
- * there, and the canvas scrolls rather than shrinks on narrow screens.
22
- */
23
- const WIDTH = 800;
24
- /** Number of distinct series colours the stylesheet defines. */
25
- const PALETTE_SIZE = 6;
26
25
  /** Bars wider than this read as slabs rather than marks. */
27
26
  const MAX_BAR_WIDTH = 56;
28
27
  const PROGRESS_ROW = 32;
29
28
  const PROGRESS_LABEL_WIDTH = 132;
30
- const CARTESIAN = { width: WIDTH, height: 300, top: 20, right: 36, bottom: 36, left: 56 };
31
- const RADIAL = { width: WIDTH, height: 240, top: 0, right: 0, bottom: 0, left: 0 };
32
- const SPARK = { width: WIDTH, height: 72, top: 10, right: 10, bottom: 10, left: 10 };
33
- function round(value) {
34
- return Math.round(value * 100) / 100;
35
- }
36
- /** Group digits with a thin comma, deterministically and without locale data. */
37
- function formatNumber(value) {
38
- const rounded = round(value);
39
- const [whole = '0', fraction] = String(Math.abs(rounded)).split('.');
40
- const grouped = whole.replace(/\B(?=(\d{3})+(?!\d))/gu, ',');
41
- return `${rounded < 0 ? '-' : ''}${grouped}${fraction === undefined ? '' : `.${fraction}`}`;
42
- }
43
- function seriesClass(index) {
44
- return `ak-chart-s${index % PALETTE_SIZE}`;
45
- }
46
- /** Round a span up to 1, 2, 2.5 or 5 times a power of ten, so ticks read cleanly. */
47
- function niceStep(span, count) {
48
- const raw = span / Math.max(count, 1);
49
- const magnitude = 10 ** Math.floor(Math.log10(raw));
50
- const normalized = raw / magnitude;
51
- const factor = [1, 2, 2.5, 5].find((candidate) => normalized <= candidate) ?? 10;
52
- return factor * magnitude;
53
- }
54
- /** Axis bounds that include zero and end on a clean tick. */
55
- function niceBounds(series) {
56
- const values = series.flatMap((entry) => entry.values).filter((value) => Number.isFinite(value));
57
- const rawMin = Math.min(0, ...values);
58
- const rawMax = Math.max(0, ...values);
59
- if (rawMax === rawMin)
60
- return { min: rawMin, max: rawMin + 1, step: 0.25 };
61
- const step = niceStep(rawMax - rawMin, 4);
29
+ function defaultCartesian(input) {
30
+ const bounds = niceBounds(input.series);
62
31
  return {
63
- min: Math.floor(rawMin / step) * step,
64
- max: Math.ceil(rawMax / step) * step,
65
- step,
32
+ frame: CARTESIAN,
33
+ bounds,
34
+ grid: gridAndTicks(bounds, CARTESIAN),
35
+ format: formatNumber,
36
+ title: pointTitle,
66
37
  };
67
38
  }
68
- function plotWidth(frame) {
69
- return frame.width - frame.left - frame.right;
70
- }
71
- function plotHeight(frame) {
72
- return frame.height - frame.top - frame.bottom;
73
- }
74
- function scaleY(value, bounds, frame) {
75
- const ratio = (value - bounds.min) / (bounds.max - bounds.min);
76
- return round(frame.top + plotHeight(frame) * (1 - ratio));
77
- }
78
- /** Point charts span the plot edge to edge. */
79
- function pointX(index, count, frame) {
80
- if (count <= 1)
81
- return round(frame.left + plotWidth(frame) / 2);
82
- return round(frame.left + (plotWidth(frame) * index) / (count - 1));
83
- }
84
- /** Bar groups sit in equal bands, labelled at the band centre. */
85
- function bandCentre(index, count, frame) {
86
- const band = plotWidth(frame) / Math.max(count, 1);
87
- return round(frame.left + band * index + band / 2);
88
- }
89
- function gridAndTicks(bounds, frame) {
90
- const parts = [];
91
- const steps = Math.round((bounds.max - bounds.min) / bounds.step);
92
- for (let index = 0; index <= steps; index += 1) {
93
- const value = round(bounds.min + bounds.step * index);
94
- const y = scaleY(value, bounds, frame);
95
- parts.push(`<line class="${value === 0 ? 'ak-chart-axis' : 'ak-chart-grid'}" x1="${frame.left}" y1="${y}" x2="${frame.width - frame.right}" y2="${y}"/>`);
96
- parts.push(`<text class="ak-chart-label" x="${frame.left - 8}" y="${round(y + 4)}" text-anchor="end">${escapeText(formatNumber(value))}</text>`);
97
- }
98
- return parts.join('');
99
- }
100
- function categoryLabels(labels, position, frame) {
101
- const parts = [];
102
- const step = Math.max(1, Math.ceil(labels.length / 8));
103
- for (let index = 0; index < labels.length; index += step) {
104
- parts.push(`<text class="ak-chart-label" x="${position(index)}" y="${frame.height - frame.bottom + 20}" text-anchor="middle">${escapeText(labels[index] ?? '')}</text>`);
105
- }
106
- return parts.join('');
107
- }
108
- function pointTitle(label, series, index) {
109
- return `${label}: ${series.label} ${series.values[index] ?? 0}`;
110
- }
111
- /**
112
- * A value label drawn directly after its mark. The stylesheet reveals it while
113
- * the mark is hovered or focused (`mark:hover + .ak-chart-value`), so the exact
114
- * number is one pointer move away without a tooltip script.
115
- */
116
- function valueLabel(x, y, value) {
117
- return `<text class="ak-chart-value" x="${round(x)}" y="${round(y)}" text-anchor="middle" aria-hidden="true">${escapeText(formatNumber(value))}</text>`;
118
- }
119
39
  /** Fragment-safe id prefix for gradients, derived from the block id. */
120
- function gradientId(input, seriesIndex) {
121
- return `ak-grad-${input.id.replace(/[^A-Za-z0-9_-]/gu, '-')}-${seriesIndex}`;
40
+ export function gradientId(input, seriesIndex) {
41
+ return `ak-grad-${safeId(input.id)}-${seriesIndex}`;
122
42
  }
123
- function barChart(input) {
124
- const frame = CARTESIAN;
125
- const bounds = niceBounds(input.series);
43
+ export function barChart(input, options = defaultCartesian(input)) {
44
+ const { frame, bounds } = options;
126
45
  const groups = Math.max(input.labels.length, 1);
127
46
  const seriesCount = Math.max(input.series.length, 1);
128
47
  const band = plotWidth(frame) / groups;
129
48
  const gap = Math.min(4, band * 0.04);
130
49
  const barWidth = round(Math.max(2, Math.min(MAX_BAR_WIDTH, (band * 0.72 - gap * (seriesCount - 1)) / seriesCount)));
131
50
  const groupWidth = barWidth * seriesCount + gap * (seriesCount - 1);
132
- const zeroY = scaleY(Math.max(bounds.min, 0), bounds, frame);
51
+ const zeroY = scaleY(clampTo(0, bounds), bounds, frame);
133
52
  const parts = [];
134
53
  // One gradient per series: full strength at the cap, easing off toward the
135
54
  // baseline, so a bar reads as lit from above instead of a flat slab.
@@ -138,24 +57,23 @@ function barChart(input) {
138
57
  input.labels.forEach((label, index) => {
139
58
  const value = series.values[index] ?? 0;
140
59
  const x = round(bandCentre(index, groups, frame) - groupWidth / 2 + seriesIndex * (barWidth + gap));
141
- const y = scaleY(value, bounds, frame);
60
+ const y = scaleY(clampTo(value, bounds), bounds, frame);
142
61
  const height = round(Math.abs(zeroY - y));
143
62
  const top = Math.min(y, zeroY);
144
- parts.push(`<rect class="ak-chart-bar ${seriesClass(seriesIndex)}" tabindex="0" x="${x}" y="${top}" width="${barWidth}" height="${height}" rx="${round(Math.min(4, barWidth / 4))}" fill="url(#${gradientId(input, seriesIndex)})"><title>${escapeText(pointTitle(label, series, index))}</title></rect>`, valueLabel(x + barWidth / 2, value < 0 ? top + height + 14 : top - 7, value));
63
+ parts.push(`<rect class="ak-chart-bar ${seriesClass(seriesIndex)}" tabindex="0" x="${x}" y="${top}" width="${barWidth}" height="${height}" rx="${round(Math.min(4, barWidth / 4))}" fill="url(#${gradientId(input, seriesIndex)})"><title>${escapeText(options.title(label, series, index))}</title></rect>`, textValueLabel(x + barWidth / 2, value < 0 ? top + height + 14 : top - 7, options.format(value)));
145
64
  });
146
65
  });
147
- return `<defs>${defs.join('')}</defs>${gridAndTicks(bounds, frame)}${categoryLabels(input.labels, (index) => bandCentre(index, groups, frame), frame)}${parts.join('')}`;
66
+ return `<defs>${defs.join('')}</defs>${options.grid}${categoryLabels(input.labels, (index) => bandCentre(index, groups, frame), frame)}${parts.join('')}`;
148
67
  }
149
68
  function linePath(values, bounds, frame) {
150
69
  return values
151
- .map((value, index) => `${index === 0 ? 'M' : 'L'}${pointX(index, values.length, frame)},${scaleY(value, bounds, frame)}`)
70
+ .map((value, index) => `${index === 0 ? 'M' : 'L'}${pointX(index, values.length, frame)},${scaleY(clampTo(value, bounds), bounds, frame)}`)
152
71
  .join(' ');
153
72
  }
154
- function lineChart(input, area) {
155
- const frame = CARTESIAN;
156
- const bounds = niceBounds(input.series);
73
+ export function lineChart(input, area, options = defaultCartesian(input)) {
74
+ const { frame, bounds } = options;
157
75
  const parts = [];
158
- const baseY = scaleY(Math.max(bounds.min, 0), bounds, frame);
76
+ const baseY = scaleY(clampTo(0, bounds), bounds, frame);
159
77
  const defs = [];
160
78
  input.series.forEach((series, seriesIndex) => {
161
79
  const colour = seriesClass(seriesIndex);
@@ -171,25 +89,26 @@ function lineChart(input, area) {
171
89
  series.values.forEach((value, index) => {
172
90
  const label = input.labels[Math.min(index, input.labels.length - 1)] ?? '';
173
91
  const cx = pointX(index, series.values.length, frame);
174
- const cy = scaleY(value, bounds, frame);
175
- parts.push(`<circle class="ak-chart-point ${colour}" tabindex="0" cx="${cx}" cy="${cy}" r="4"><title>${escapeText(pointTitle(label, series, index))}</title></circle>`, valueLabel(cx, cy - 12, value));
92
+ const cy = scaleY(clampTo(value, bounds), bounds, frame);
93
+ parts.push(`<circle class="ak-chart-point ${colour}" tabindex="0" cx="${cx}" cy="${cy}" r="4"><title>${escapeText(options.title(label, series, index))}</title></circle>`, textValueLabel(cx, cy - 12, options.format(value)));
176
94
  });
177
95
  });
178
96
  const count = Math.max(...input.series.map((series) => series.values.length), input.labels.length, 1);
179
97
  const gradients = defs.length === 0 ? '' : `<defs>${defs.join('')}</defs>`;
180
- return `${gradients}${gridAndTicks(bounds, frame)}${categoryLabels(input.labels, (index) => pointX(index, count, frame), frame)}${parts.join('')}`;
98
+ return `${gradients}${options.grid}${categoryLabels(input.labels, (index) => pointX(index, count, frame), frame)}${parts.join('')}`;
181
99
  }
182
100
  /** A sparkline is a trend glyph, so it scales to its own data range, not to zero. */
183
- function sparkline(input) {
101
+ export function sparkline(input) {
184
102
  const frame = SPARK;
185
103
  const values = input.series.flatMap((series) => series.values);
186
104
  const low = values.length === 0 ? 0 : Math.min(...values);
187
105
  const high = values.length === 0 ? 1 : Math.max(...values);
188
106
  const bounds = high === low ? { min: low - 1, max: high + 1 } : { min: low, max: high };
107
+ const ticks = { ...bounds, step: 1 };
189
108
  const parts = [];
190
109
  input.series.forEach((series, seriesIndex) => {
191
110
  const colour = seriesClass(seriesIndex);
192
- parts.push(`<path class="ak-chart-line ${colour}" d="${linePath(series.values, bounds, frame)}"/>`);
111
+ parts.push(`<path class="ak-chart-line ${colour}" d="${linePath(series.values, ticks, frame)}"/>`);
193
112
  const last = series.values.length - 1;
194
113
  if (last >= 0) {
195
114
  parts.push(`<circle class="ak-chart-point ${colour}" cx="${pointX(last, series.values.length, frame)}" cy="${scaleY(series.values[last] ?? 0, bounds, frame)}" r="3.5"/>`);
@@ -197,7 +116,7 @@ function sparkline(input) {
197
116
  });
198
117
  return parts.join('');
199
118
  }
200
- function radialChart(input, donut) {
119
+ export function radialChart(input, donut) {
201
120
  const series = input.series[0];
202
121
  if (series === undefined)
203
122
  return '';
@@ -240,7 +159,7 @@ function radialChart(input, donut) {
240
159
  }
241
160
  return parts.join('');
242
161
  }
243
- function progressFrame(rows) {
162
+ export function progressFrame(rows) {
244
163
  return {
245
164
  width: WIDTH,
246
165
  height: Math.max(rows, 1) * PROGRESS_ROW,
@@ -250,7 +169,7 @@ function progressFrame(rows) {
250
169
  left: 0,
251
170
  };
252
171
  }
253
- function progressChart(input) {
172
+ export function progressChart(input, format = formatNumber) {
254
173
  const series = input.series[0];
255
174
  if (series === undefined)
256
175
  return '';
@@ -265,7 +184,7 @@ function progressChart(input) {
265
184
  parts.push(`<text class="ak-chart-label ak-chart-label--row" x="0" y="${centre + 4}" text-anchor="start">${escapeText(label)}</text>`);
266
185
  parts.push(`<rect class="ak-chart-track" x="${trackStart}" y="${centre - 5}" width="${trackWidth}" height="10" rx="5"/>`);
267
186
  parts.push(`<rect class="ak-chart-bar ${seriesClass(0)}" tabindex="0" x="${trackStart}" y="${centre - 5}" width="${filled}" height="10" rx="5"><title>${escapeText(`${label}: ${value}`)}</title></rect>`);
268
- parts.push(`<text class="ak-chart-label" x="${WIDTH}" y="${centre + 4}" text-anchor="end">${escapeText(formatNumber(value))}</text>`);
187
+ parts.push(`<text class="ak-chart-label" x="${WIDTH}" y="${centre + 4}" text-anchor="end">${escapeText(format(value))}</text>`);
269
188
  });
270
189
  return parts.join('');
271
190
  }
@@ -326,6 +245,8 @@ function chartBody(input) {
326
245
  }
327
246
  /** Render one chart block as a figure containing SVG, a summary, and a table. */
328
247
  export function renderChart(input) {
248
+ if (input.encoded !== undefined)
249
+ return renderEncodedChart(input, input.encoded);
329
250
  const { body, frame } = chartBody(input);
330
251
  const summary = textSummary(input);
331
252
  const ariaLabel = input.title === undefined ? summary : `${input.title}. ${summary}`;
@@ -1 +1 @@
1
- {"version":3,"file":"charts.js","sourceRoot":"","sources":["../../src/render/charts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"charts.js","sourceRoot":"","sources":["../../src/render/charts.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@
4
4
  * `:root` declares them once, and the night band redeclares them because an
5
5
  * inherited custom property carries the root's computed result, not its
6
6
  * formula. Both read these constants, so the band and dark mode cannot drift.
7
+ * The scroll-edge shades below are written per scroller instead, so their
8
+ * colours resolve where they are used.
7
9
  */
8
10
  /** Hover wash: a little accent mixed into the surface. */
9
11
  export declare const TINT = "--ak-tint:color-mix(in srgb,var(--ak-color-accent) 7%,var(--ak-color-surface))";
@@ -14,4 +16,22 @@ export declare const RING = "--ak-ring:0 0 0 3px color-mix(in srgb,var(--ak-colo
14
16
  * elevation shadows are invisible against a dark page.
15
17
  */
16
18
  export declare const DARK_FILL = "--ak-fill:linear-gradient(180deg,color-mix(in srgb,var(--ak-color-text) 4%,transparent),transparent 160px),var(--ak-color-surface)";
19
+ /**
20
+ * Edge shades that show a sideways scroller holds more than it shows.
21
+ *
22
+ * A soft shade sits on each edge of a box whose `background` is `var(--ak-fill)`
23
+ * (the night band and dark mode recolour it from tokens). A scroll timeline
24
+ * sizes each shade from the scroll position: the start edge stays clear until
25
+ * the content moves, and the end edge clears once the end is reached. A box
26
+ * that does not overflow has an inactive timeline and so no shades, and an
27
+ * engine without scroll timelines keeps the plain fill. The shades follow
28
+ * position, not time, so like the reading-progress rail they are not motion and
29
+ * are not gated on reduced motion. `SCROLL_EDGE_KEYFRAMES` must be on the page.
30
+ */
31
+ export declare function scrollEdges(selector: string): string;
32
+ /**
33
+ * Shade sizes along the scroll: start clear, both shaded in between, end clear.
34
+ * The third size covers the dark fill's sheen layer and is ignored in light.
35
+ */
36
+ export declare const SCROLL_EDGE_KEYFRAMES = "@keyframes ak-scroll-edges{0%{background-size:0 100%,14px 100%,auto}6%,94%{background-size:14px 100%,14px 100%,auto}100%{background-size:14px 100%,0 100%,auto}}";
17
37
  //# sourceMappingURL=derived-variables.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"derived-variables.d.ts","sourceRoot":"","sources":["../../src/render/derived-variables.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,0DAA0D;AAC1D,eAAO,MAAM,IAAI,mFACiE,CAAC;AAEnF,0CAA0C;AAC1C,eAAO,MAAM,IAAI,kFAAkF,CAAC;AAEpG;;;GAGG;AACH,eAAO,MAAM,SAAS,uIACgH,CAAC"}
1
+ {"version":3,"file":"derived-variables.d.ts","sourceRoot":"","sources":["../../src/render/derived-variables.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,0DAA0D;AAC1D,eAAO,MAAM,IAAI,mFACiE,CAAC;AAEnF,0CAA0C;AAC1C,eAAO,MAAM,IAAI,kFAAkF,CAAC;AAEpG;;;GAGG;AACH,eAAO,MAAM,SAAS,uIACgH,CAAC;AAIvI;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,qKACkI,CAAC"}
@@ -4,6 +4,8 @@
4
4
  * `:root` declares them once, and the night band redeclares them because an
5
5
  * inherited custom property carries the root's computed result, not its
6
6
  * formula. Both read these constants, so the band and dark mode cannot drift.
7
+ * The scroll-edge shades below are written per scroller instead, so their
8
+ * colours resolve where they are used.
7
9
  */
8
10
  /** Hover wash: a little accent mixed into the surface. */
9
11
  export const TINT = '--ak-tint:color-mix(in srgb,var(--ak-color-accent) 7%,var(--ak-color-surface))';
@@ -14,4 +16,25 @@ export const RING = '--ak-ring:0 0 0 3px color-mix(in srgb,var(--ak-color-accent
14
16
  * elevation shadows are invisible against a dark page.
15
17
  */
16
18
  export const DARK_FILL = '--ak-fill:linear-gradient(180deg,color-mix(in srgb,var(--ak-color-text) 4%,transparent),transparent 160px),var(--ak-color-surface)';
19
+ const EDGE_SHADE = 'color-mix(in srgb,var(--ak-color-text) 18%,transparent)';
20
+ /**
21
+ * Edge shades that show a sideways scroller holds more than it shows.
22
+ *
23
+ * A soft shade sits on each edge of a box whose `background` is `var(--ak-fill)`
24
+ * (the night band and dark mode recolour it from tokens). A scroll timeline
25
+ * sizes each shade from the scroll position: the start edge stays clear until
26
+ * the content moves, and the end edge clears once the end is reached. A box
27
+ * that does not overflow has an inactive timeline and so no shades, and an
28
+ * engine without scroll timelines keeps the plain fill. The shades follow
29
+ * position, not time, so like the reading-progress rail they are not motion and
30
+ * are not gated on reduced motion. `SCROLL_EDGE_KEYFRAMES` must be on the page.
31
+ */
32
+ export function scrollEdges(selector) {
33
+ return `@supports (animation-timeline:scroll()){${selector}{background:radial-gradient(farthest-side at 0 50%,${EDGE_SHADE},transparent) left center/0 100% no-repeat,radial-gradient(farthest-side at 100% 50%,${EDGE_SHADE},transparent) right center/0 100% no-repeat,var(--ak-fill);animation:ak-scroll-edges linear both;animation-timeline:scroll(self inline)}}`;
34
+ }
35
+ /**
36
+ * Shade sizes along the scroll: start clear, both shaded in between, end clear.
37
+ * The third size covers the dark fill's sheen layer and is ignored in light.
38
+ */
39
+ export const SCROLL_EDGE_KEYFRAMES = '@keyframes ak-scroll-edges{0%{background-size:0 100%,14px 100%,auto}6%,94%{background-size:14px 100%,14px 100%,auto}100%{background-size:14px 100%,0 100%,auto}}';
17
40
  //# sourceMappingURL=derived-variables.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"derived-variables.js","sourceRoot":"","sources":["../../src/render/derived-variables.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,IAAI,GACf,gFAAgF,CAAC;AAEnF,0CAA0C;AAC1C,MAAM,CAAC,MAAM,IAAI,GAAG,+EAA+E,CAAC;AAEpG;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GACpB,oIAAoI,CAAC"}
1
+ {"version":3,"file":"derived-variables.js","sourceRoot":"","sources":["../../src/render/derived-variables.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,IAAI,GACf,gFAAgF,CAAC;AAEnF,0CAA0C;AAC1C,MAAM,CAAC,MAAM,IAAI,GAAG,+EAA+E,CAAC;AAEpG;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GACpB,oIAAoI,CAAC;AAEvI,MAAM,UAAU,GAAG,yDAAyD,CAAC;AAE7E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,OAAO,2CAA2C,QAAQ,sDAAsD,UAAU,wFAAwF,UAAU,2IAA2I,CAAC;AAC1W,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAChC,kKAAkK,CAAC"}
@@ -26,8 +26,19 @@ export interface DocumentInput {
26
26
  density: string;
27
27
  /** The theme turned motion off; the runtime reads this from the root element. */
28
28
  motionDisabled?: boolean;
29
+ /**
30
+ * Resolved component recipes. Each non-default choice becomes a
31
+ * `data-r-<surface>` attribute that scopes its recipe sheet; defaults emit
32
+ * nothing, so a page without recipes keeps its bytes.
33
+ */
34
+ recipes?: Readonly<Record<string, string>>;
29
35
  /** Rendered page outline; omitted or empty when the page has none. */
30
36
  outline?: string;
37
+ /**
38
+ * Emit the live region. Omitted: derived from the core features the page's
39
+ * blocks declare; the compiler passes it so registry features count too.
40
+ */
41
+ liveRegion?: boolean;
31
42
  }
32
43
  export interface AssembledDocument {
33
44
  html: string;
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/render/document.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,UAAU,CAAC;AAI1D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,UAAU,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAkCD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,aAAa,GAAG;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAQA;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,iBAAiB,CAsExE"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/render/document.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,UAAU,CAAC;AAK1D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,UAAU,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAkCD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,aAAa,GAAG;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAQA;AAiBD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,iBAAiB,CAyExE"}
@@ -12,7 +12,9 @@
12
12
  * would break byte-determinism, and a nonce does not need to be unpredictable
13
13
  * to be useful here (it only has to distinguish the compiler's own elements).
14
14
  */
15
+ import { ADAPTER_STYLE_MARKER } from '../diagram/adapter.js';
15
16
  import { stableHash } from '../hash.js';
17
+ import { nonDefaultRecipes } from '../theme/recipes.js';
16
18
  import { escapeAttribute, escapeText } from './escape.js';
17
19
  import { needsLiveRegion } from './runtime.js';
18
20
  function directives(policy, input, styleNonce, scriptNonce) {
@@ -50,10 +52,22 @@ export function buildContentSecurityPolicy(input) {
50
52
  scriptNonce,
51
53
  };
52
54
  }
55
+ /**
56
+ * Give accepted diagram adapter `<style>` elements the page style nonce.
57
+ *
58
+ * Adapter markup passed the trust check before it reached the body, and the
59
+ * renderer marked each of its style elements. Spec text cannot forge the
60
+ * marker, because every `<` in spec text is escaped. The policy stays
61
+ * nonce-only: no `'unsafe-inline'`, and inline `style` attributes stay refused.
62
+ */
63
+ function nonceAdapterStyles(body, styleNonce) {
64
+ return body.replaceAll(`<style ${ADAPTER_STYLE_MARKER}`, `<style nonce="${escapeAttribute(styleNonce)}" ${ADAPTER_STYLE_MARKER}`);
65
+ }
53
66
  export function assembleDocument(input) {
54
67
  const { csp, styleNonce, scriptNonce } = buildContentSecurityPolicy(input);
55
68
  const { meta } = input.ir;
56
- const liveRegion = needsLiveRegion(new Set(input.ir.nodes.flatMap((node) => node.runtimeFeatures)))
69
+ const liveRegion = (input.liveRegion ??
70
+ needsLiveRegion(new Set(input.ir.nodes.flatMap((node) => node.runtimeFeatures))))
57
71
  ? `<div class="ak-sr" data-ak-live role="status" aria-live="polite"></div>`
58
72
  : '';
59
73
  const themeToggle = input.themeToggle
@@ -82,9 +96,12 @@ export function assembleDocument(input) {
82
96
  '</footer>',
83
97
  ].join('');
84
98
  const outline = input.outline ?? '';
99
+ const recipeAttributes = nonDefaultRecipes(input.recipes)
100
+ .map(([surface, choice]) => ` data-r-${surface}="${escapeAttribute(choice)}"`)
101
+ .join('');
85
102
  const html = [
86
103
  '<!DOCTYPE html>',
87
- `<html lang="${escapeAttribute(meta.locale)}" data-density="${escapeAttribute(input.density)}"${input.motionDisabled === true ? ' data-motion="none"' : ''}>`,
104
+ `<html lang="${escapeAttribute(meta.locale)}" data-density="${escapeAttribute(input.density)}"${input.motionDisabled === true ? ' data-motion="none"' : ''}${recipeAttributes}>`,
88
105
  '<head>',
89
106
  '<meta charset="utf-8" />',
90
107
  '<meta name="viewport" content="width=device-width, initial-scale=1" />',
@@ -101,7 +118,7 @@ export function assembleDocument(input) {
101
118
  '<div class="ak-progress-rail" aria-hidden="true"></div>',
102
119
  `<div class="ak-shell${outline === '' ? '' : ' ak-shell--outline'}">`,
103
120
  themeToggle,
104
- input.body,
121
+ nonceAdapterStyles(input.body, styleNonce),
105
122
  outline,
106
123
  colophon,
107
124
  '</div>',
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/render/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/render/document.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,16 @@
8
8
  */
9
9
  /** Escape text content for an element body. */
10
10
  export declare function escapeText(value: string): string;
11
+ /**
12
+ * Escape prose text and render each backtick pair as inline `<code>`.
13
+ *
14
+ * This is the only markup prose text can produce: no other Markdown is
15
+ * recognized. Every segment, inside or outside a code span, goes through
16
+ * `escapeText` before it is wrapped, so a span such as `` `<script>` `` stays
17
+ * inert text. Pairing runs left to right; an unpaired backtick, an empty pair,
18
+ * or a pair holding only whitespace stays literal.
19
+ */
20
+ export declare function escapeInlineText(value: string): string;
11
21
  /** Escape a value for a double-quoted attribute. */
12
22
  export declare function escapeAttribute(value: string): string;
13
23
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/render/escape.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsBH,+CAA+C;AAC/C,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrD;AAMD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAO7D;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhE;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;CAC9D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,CAkBnE"}
1
+ {"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/render/escape.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsBH,+CAA+C;AAC/C,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMhD;AASD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWtD;AAED,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrD;AAMD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAO7D;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhE;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;CAC9D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,CAkBnE"}
@@ -32,6 +32,34 @@ export function escapeText(value) {
32
32
  }
33
33
  return output;
34
34
  }
35
+ /**
36
+ * A backtick pair on one line, with at least one character between. The class
37
+ * excludes the backtick itself, so each match scans only to the next backtick
38
+ * and matching stays linear in the input length.
39
+ */
40
+ const INLINE_CODE = /`([^`\r\n]+)`/gu;
41
+ /**
42
+ * Escape prose text and render each backtick pair as inline `<code>`.
43
+ *
44
+ * This is the only markup prose text can produce: no other Markdown is
45
+ * recognized. Every segment, inside or outside a code span, goes through
46
+ * `escapeText` before it is wrapped, so a span such as `` `<script>` `` stays
47
+ * inert text. Pairing runs left to right; an unpaired backtick, an empty pair,
48
+ * or a pair holding only whitespace stays literal.
49
+ */
50
+ export function escapeInlineText(value) {
51
+ let output = '';
52
+ let last = 0;
53
+ for (const match of value.matchAll(INLINE_CODE)) {
54
+ const content = match[1] ?? '';
55
+ if (content.trim() === '')
56
+ continue;
57
+ output += escapeText(value.slice(last, match.index));
58
+ output += `<code>${escapeText(content)}</code>`;
59
+ last = match.index + match[0].length;
60
+ }
61
+ return output + escapeText(value.slice(last));
62
+ }
35
63
  /** Escape a value for a double-quoted attribute. */
36
64
  export function escapeAttribute(value) {
37
65
  let output = value;
@@ -1 +1 @@
1
- {"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/render/escape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/render/escape.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,iBAAiB,GAA6C;IAClE,CAAC,KAAK,EAAE,OAAO,CAAC;IAChB,CAAC,KAAK,EAAE,MAAM,CAAC;IACf,CAAC,KAAK,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,sBAAsB,GAA6C;IACvE,CAAC,KAAK,EAAE,OAAO,CAAC;IAChB,CAAC,KAAK,EAAE,MAAM,CAAC;IACf,CAAC,KAAK,EAAE,MAAM,CAAC;IACf,CAAC,KAAK,EAAE,QAAQ,CAAC;IACjB,CAAC,KAAK,EAAE,OAAO,CAAC;IAChB,CAAC,KAAK,EAAE,OAAO,CAAC;IAChB,CAAC,KAAK,EAAE,OAAO,CAAC;IAChB,CAAC,MAAM,EAAE,OAAO,CAAC;IACjB,CAAC,MAAM,EAAE,OAAO,CAAC;IACjB,4IAA4I;IAC5I,CAAC,4CAA4C,EAAE,EAAE,CAAC;CACnD,CAAC;AAEF,+CAA+C;AAC/C,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,iBAAiB,EAAE,CAAC;QACvD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,SAAS;QACpC,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,MAAM,IAAI,SAAS,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC;QAChD,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACvC,CAAC;IACD,OAAO,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,sBAAsB,EAAE,CAAC;QAC5D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6EAA6E;AAC7E,yIAAyI;AACzI,MAAM,UAAU,GAAG,0CAA0C,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE,CAC7C,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAC5C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;SACrE,IAAI,CAAC,EAAE,CAAC,CACZ,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC;SACjC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC;SACzB,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC;SACzB,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC;SACzB,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,OAAO,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC;AACxD,CAAC;AAMD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAA0B;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SAClC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC;IAClE,CAAC,CAAC;SACD,IAAI,EAAE,CAAC;IACV,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"feature-styles.d.ts","sourceRoot":"","sources":["../../src/render/feature-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CA2JzE,CAAC"}
1
+ {"version":3,"file":"feature-styles.d.ts","sourceRoot":"","sources":["../../src/render/feature-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAmB5D,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAuGzE,CAAC"}