@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
@@ -11,14 +11,18 @@
11
11
  import { DiagnosticBag } from '../diagnostics.js';
12
12
  import { RenderError } from '../errors.js';
13
13
  import { stableHash } from '../hash.js';
14
- import { isPlainObject } from '../json.js';
14
+ import { DEFAULT_REGISTRY } from '../registry/registry.js';
15
+ import { assetOrigins, assetReferences } from '../spec/asset-references.js';
16
+ import { evaluateCondition } from '../spec/conditions.js';
15
17
  import { normalizeSpec } from '../spec/normalize.js';
16
18
  import { loadTheme, resolveTheme } from '../theme/load-theme.js';
17
19
  import { builtinThemeCatalog } from '../theme/theme-catalog.js';
18
20
  import { renderNode } from './blocks.js';
19
21
  import { assembleDocument } from './document.js';
22
+ import { renderAttributes } from './escape.js';
20
23
  import { embeddedFontCss } from './font-faces.js';
21
24
  import { hasOutline, renderOutline } from './outline.js';
25
+ import { recipeCss } from './recipe-styles.js';
22
26
  import { buildRuntime, needsLiveRegion } from './runtime.js';
23
27
  import { BASE_CSS, FEATURE_CSS } from './styles.js';
24
28
  import { inverseSurfaceCss, usesInverseSurface } from './surface-styles.js';
@@ -47,6 +51,7 @@ const FEATURE_ORDER = [
47
51
  'checklist',
48
52
  'showcase',
49
53
  'cta',
54
+ 'state',
50
55
  ];
51
56
  function collectFeatures(ir, includeTheme) {
52
57
  const features = new Set();
@@ -65,41 +70,16 @@ function collectFeatures(ir, includeTheme) {
65
70
  features.add('frame');
66
71
  return features;
67
72
  }
68
- function collectOrigins(ir) {
69
- const policy = ir.policy.network;
70
- if (policy === 'deny')
71
- return [];
72
- const origins = [];
73
- const add = (reference, capability) => {
74
- if (policy.allow.includes(capability) && /^https?:/iu.test(reference)) {
75
- try {
76
- origins.push(new URL(reference).origin);
77
- }
78
- catch {
79
- // A reference that is not a URL is handled by the block renderer, not here.
80
- }
81
- }
82
- };
83
- for (const node of ir.nodes) {
84
- // Only players load through the media capability; every other block that
85
- // carries a source shows a still image.
86
- const capability = node.type === 'video' || node.type === 'audio' ? 'media' : 'images';
87
- const src = node.props.src;
88
- if (typeof src === 'string')
89
- add(src, capability);
90
- const nested = [
91
- ...(Array.isArray(node.props.items) ? node.props.items : []),
92
- node.props.before,
93
- node.props.after,
94
- ];
95
- for (const item of nested) {
96
- if (isPlainObject(item) && typeof item.src === 'string')
97
- add(item.src, capability);
98
- }
99
- }
100
- return origins;
73
+ /** Origins of the allowed remote assets, found through each block's `asset` props. */
74
+ function collectOrigins(ir, registry) {
75
+ return ir.nodes.flatMap((node) => {
76
+ const definition = registry.byType.get(node.type);
77
+ if (definition === undefined)
78
+ return [];
79
+ return assetOrigins(ir.policy.network, assetReferences(definition.props, node.props, node.path));
80
+ });
101
81
  }
102
- function buildCss(features, theme, ir) {
82
+ function buildCss(features, moduleFeatures, theme, ir) {
103
83
  const sheets = [BASE_CSS];
104
84
  for (const feature of FEATURE_ORDER) {
105
85
  if (!features.has(feature))
@@ -108,6 +88,12 @@ function buildCss(features, theme, ir) {
108
88
  if (sheet !== undefined)
109
89
  sheets.push(sheet);
110
90
  }
91
+ for (const feature of moduleFeatures)
92
+ sheets.push(feature.css);
93
+ // Recipes restyle feature surfaces, so they follow every feature sheet.
94
+ const recipes = recipeCss(theme.recipes, features);
95
+ if (recipes !== '')
96
+ sheets.push(recipes);
111
97
  sheets.push(theme.css);
112
98
  // The night band redeclares colour tokens, so it must follow the theme sheet.
113
99
  if (usesInverseSurface(ir.nodes))
@@ -131,21 +117,41 @@ function bodyNeedsRuntime(body) {
131
117
  function nodeIndex(ir) {
132
118
  return new Map(ir.nodes.map((node) => [node.id, node]));
133
119
  }
120
+ /**
121
+ * Render a node, wrapped when it carries `visibleWhen`. The wrapper starts
122
+ * hidden exactly when the condition is false for the initial state, so the page
123
+ * reads correctly without scripts; the runtime toggles it afterwards.
124
+ */
125
+ function renderVisible(node, context) {
126
+ const html = renderNode(node, context);
127
+ if (node.when === undefined)
128
+ return html;
129
+ const attributes = renderAttributes({
130
+ class: 'ak-when',
131
+ 'data-ak-when': JSON.stringify(node.when),
132
+ hidden: !evaluateCondition(node.when, context.ir.state),
133
+ });
134
+ return `<div${attributes}>${html}</div>`;
135
+ }
134
136
  function renderBody(ir, theme, features, renderOptions) {
135
137
  const byId = nodeIndex(ir);
138
+ const renderList = (ids) => ids
139
+ .map((childId) => byId.get(childId))
140
+ .filter((child) => child !== undefined)
141
+ .map((child) => `<!-- ak:${child.id} -->${renderVisible(child, context)}`)
142
+ .join('\n');
136
143
  const context = {
137
144
  ir,
138
145
  theme,
139
146
  features,
147
+ registry: renderOptions.registry,
140
148
  warnings: renderOptions.warnings,
141
149
  ...(renderOptions.diagramAdapter === undefined
142
150
  ? {}
143
151
  : { diagramAdapter: renderOptions.diagramAdapter }),
144
- renderChildren: (node) => node.children
145
- .map((childId) => byId.get(childId))
146
- .filter((child) => child !== undefined)
147
- .map((child) => `<!-- ak:${child.id} -->${renderNode(child, context)}`)
148
- .join('\n'),
152
+ renderChildren: (node) => renderList(node.children),
153
+ renderSlot: (node, key) => renderList(node.slots?.[key] ?? []),
154
+ byId: (id) => byId.get(id),
149
155
  };
150
156
  const root = byId.get(ir.rootId);
151
157
  if (root === undefined) {
@@ -157,7 +163,9 @@ function renderBody(ir, theme, features, renderOptions) {
157
163
  }
158
164
  /** Run the full pipeline and return everything it produced. */
159
165
  export function compile(spec, options = {}) {
166
+ const registry = options.registry ?? DEFAULT_REGISTRY;
160
167
  const normalized = normalizeSpec(spec, {
168
+ registry,
161
169
  ...(options.source === undefined ? {} : { source: options.source }),
162
170
  });
163
171
  const errors = normalized.diagnostics.filter((diagnostic) => diagnostic.severity === 'error');
@@ -185,6 +193,7 @@ export function compile(spec, options = {}) {
185
193
  }
186
194
  const includeThemeToggle = options.themeToggle !== false;
187
195
  const features = collectFeatures(ir, includeThemeToggle);
196
+ const moduleFeatures = registry.features.filter((feature) => features.has(feature.name));
188
197
  const irDiagnostics = verifyIr(ir, features);
189
198
  if (irDiagnostics.some((diagnostic) => diagnostic.severity === 'error')) {
190
199
  throw new RenderError('INTERNAL_ERROR', 'IR verification failed', {
@@ -194,15 +203,23 @@ export function compile(spec, options = {}) {
194
203
  }
195
204
  const renderWarnings = [];
196
205
  const body = renderBody(ir, resolved, features, {
206
+ registry,
197
207
  warnings: renderWarnings,
198
208
  ...(options.diagramAdapter === undefined ? {} : { diagramAdapter: options.diagramAdapter }),
199
209
  });
200
210
  // Faces come first and need the rendered text, which decides their subsets.
201
211
  const fonts = embeddedFontCss(resolved, `${ir.meta.title}\n${body}`);
202
- const css = [fonts, buildCss(features, resolved, ir)].filter((sheet) => sheet !== '').join('\n');
212
+ const css = [fonts, buildCss(features, moduleFeatures, resolved, ir)]
213
+ .filter((sheet) => sheet !== '')
214
+ .join('\n');
203
215
  const runtimeNeeded = features.size > 0 || bodyNeedsRuntime(body);
204
216
  const js = runtimeNeeded
205
- ? buildRuntime({ features, state: ir.state, hasBindings: bodyNeedsRuntime(body) })
217
+ ? buildRuntime({
218
+ features,
219
+ state: ir.state,
220
+ hasBindings: bodyNeedsRuntime(body),
221
+ moduleFeatures,
222
+ })
206
223
  : '';
207
224
  const assembled = assembleDocument({
208
225
  ir,
@@ -210,11 +227,14 @@ export function compile(spec, options = {}) {
210
227
  css,
211
228
  js,
212
229
  body,
213
- allowedOrigins: collectOrigins(ir),
230
+ allowedOrigins: collectOrigins(ir, registry),
214
231
  themeToggle: includeThemeToggle,
215
232
  density: resolved.density,
216
233
  motionDisabled: resolved.motionPolicy === 'none',
234
+ recipes: resolved.recipes,
217
235
  outline: renderOutline(ir),
236
+ // Declared by the blocks themselves: the theme toggle alone announces nothing.
237
+ liveRegion: needsLiveRegion(new Set(ir.nodes.flatMap((node) => node.runtimeFeatures)), moduleFeatures),
218
238
  });
219
239
  const verification = verifyDocument({
220
240
  html: assembled.html,
@@ -225,6 +245,7 @@ export function compile(spec, options = {}) {
225
245
  features,
226
246
  css,
227
247
  js,
248
+ moduleFeatures,
228
249
  });
229
250
  const verificationErrors = verification.filter((diagnostic) => diagnostic.severity === 'error');
230
251
  if (verificationErrors.length > 0) {
@@ -239,7 +260,10 @@ export function compile(spec, options = {}) {
239
260
  bytes: assembled.html.length,
240
261
  ir,
241
262
  theme: resolved,
242
- features: FEATURE_ORDER.filter((feature) => features.has(feature)),
263
+ features: [
264
+ ...FEATURE_ORDER.filter((feature) => features.has(feature)),
265
+ ...moduleFeatures.map((feature) => feature.name),
266
+ ],
243
267
  warnings: [
244
268
  ...normalized.diagnostics.filter((diagnostic) => diagnostic.severity === 'warning'),
245
269
  ...themeBag.warnings(),
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/render/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/render/render.ts"],"names":[],"mappings":"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"}
@@ -11,15 +11,18 @@
11
11
  * template literals) so the emitted artifact does not depend on a build step or
12
12
  * a modern-browser-only syntax tier.
13
13
  */
14
+ import type { FeatureModule } from '../registry/block-module.js';
14
15
  import type { RuntimeFeature } from '../registry/roster.js';
15
16
  export interface RuntimeOptions {
16
17
  features: ReadonlySet<RuntimeFeature>;
17
18
  state: Record<string, unknown>;
18
19
  /** True when at least one block declares an action binding. */
19
20
  hasBindings: boolean;
21
+ /** Registry features the page uses, in registry order. */
22
+ moduleFeatures?: readonly FeatureModule[];
20
23
  }
21
24
  /** Build the emitted runtime for the features a page actually uses. */
22
25
  export declare function buildRuntime(options: RuntimeOptions): string;
23
26
  /** Features whose presence requires the live region in the document. */
24
- export declare function needsLiveRegion(features: ReadonlySet<RuntimeFeature>): boolean;
27
+ export declare function needsLiveRegion(features: ReadonlySet<RuntimeFeature>, moduleFeatures?: readonly FeatureModule[]): boolean;
25
28
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/render/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;CACtB;AAqjBD,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CA2C5D;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,GAAG,OAAO,CAE9E"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/render/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAC3C;AAugBD,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAsD5D;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,EACrC,cAAc,GAAE,SAAS,aAAa,EAAO,GAC5C,OAAO,CAKT"}
@@ -11,9 +11,11 @@
11
11
  * template literals) so the emitted artifact does not depend on a build step or
12
12
  * a modern-browser-only syntax tier.
13
13
  */
14
+ import { CAROUSEL, TABS } from '../blocks/composition/composition-runtime.js';
15
+ import { serializeJsonForScript } from './escape.js';
14
16
  /** Features that produce user-facing feedback and therefore need a live region. */
15
17
  const ANNOUNCING_FEATURES = ['copy', 'filter', 'theme'];
16
- const HELPERS = `
18
+ const helpers = (conditions) => `
17
19
  function q(sel, ctx) { return (ctx || doc).querySelector(sel); }
18
20
  function qa(sel, ctx) { return Array.prototype.slice.call((ctx || doc).querySelectorAll(sel)); }
19
21
  function byId(id) { return qa('[data-ak-id="' + id + '"]'); }
@@ -62,6 +64,46 @@ function syncBindings() {
62
64
  } else {
63
65
  el.textContent = String(value);
64
66
  }
67
+ });${conditions ? '\n syncConditions();' : ''}
68
+ }`;
69
+ /**
70
+ * `visibleWhen`: re-evaluate every condition after a state change. The rules
71
+ * match `evaluateCondition` in the compiler exactly, which already emitted the
72
+ * initial view; own keys only, so \`state.constructor\` reads as unset.
73
+ */
74
+ const STATE = `
75
+ function readOwnPath(path) {
76
+ var parts = String(path).split('.');
77
+ var cursor = state;
78
+ for (var i = 1; i < parts.length; i += 1) {
79
+ if (cursor === null || typeof cursor !== 'object' || Array.isArray(cursor)) return undefined;
80
+ if (!Object.prototype.hasOwnProperty.call(cursor, parts[i])) return undefined;
81
+ cursor = cursor[parts[i]];
82
+ }
83
+ return cursor;
84
+ }
85
+ function evalCondition(condition) {
86
+ var value = readOwnPath(condition.path);
87
+ var op = condition.op;
88
+ if (op === 'equals') return value === condition.value;
89
+ if (op === 'notEquals') return value !== condition.value;
90
+ if (op === 'in' || op === 'notIn') {
91
+ var found = false;
92
+ for (var i = 0; i < condition.value.length; i += 1) {
93
+ if (condition.value[i] === value) found = true;
94
+ }
95
+ return op === 'in' ? found : !found;
96
+ }
97
+ if (op === 'truthy') return Boolean(value);
98
+ if (op === 'falsy') return !value;
99
+ return true;
100
+ }
101
+ function syncConditions() {
102
+ qa('[data-ak-when]').forEach(function (el) {
103
+ var condition = readJson(el, 'data-ak-when');
104
+ if (!condition || typeof condition.path !== 'string') return;
105
+ if (evalCondition(condition)) el.removeAttribute('hidden');
106
+ else el.setAttribute('hidden', '');
65
107
  });
66
108
  }`;
67
109
  const FIRE = `
@@ -73,6 +115,9 @@ function fire(source, eventName, detail) {
73
115
  for (var i = 0; i < bindings.length; i += 1) run(bindings[i], source, detail);
74
116
  return;
75
117
  }
118
+ // A block's event belongs to that block: it never reaches an enclosing
119
+ // block's bindings.
120
+ if (target.hasAttribute('data-ak-id')) return;
76
121
  target = target.parentElement;
77
122
  }
78
123
  }`;
@@ -120,7 +165,9 @@ function run(action, source, detail) {
120
165
  return;
121
166
  }
122
167
  if (type === 'set-value') {
123
- setPath(action.path, action.value);
168
+ // An action without its own value takes the event's, such as a slider's.
169
+ var next = Object.prototype.hasOwnProperty.call(action, 'value') ? action.value : (detail ? detail.value : undefined);
170
+ if (next !== undefined) setPath(action.path, next);
124
171
  return;
125
172
  }
126
173
  if (type === 'next' || type === 'previous') {
@@ -238,6 +285,25 @@ function downloadText(text, filename, source) {
238
285
  window.setTimeout(function () { URL.revokeObjectURL(url); }, 0);
239
286
  announce('Downloaded ' + safeName);
240
287
  }`;
288
+ /**
289
+ * Print a diagram's folded text description. The print stylesheet opens it
290
+ * through \`::details-content\`; where that selector is unsupported, the runtime
291
+ * opens each closed description for the print and closes it again afterwards.
292
+ */
293
+ const DIAGRAM = `
294
+ function wireDiagramPrint() {
295
+ var opened = [];
296
+ window.addEventListener('beforeprint', function () {
297
+ qa('details.ak-diagram-details:not([open])').forEach(function (details) {
298
+ details.open = true;
299
+ opened.push(details);
300
+ });
301
+ });
302
+ window.addEventListener('afterprint', function () {
303
+ opened.forEach(function (details) { details.open = false; });
304
+ opened = [];
305
+ });
306
+ }`;
241
307
  const OUTLINE = `
242
308
  function wireOutline() {
243
309
  var links = qa('[data-ak-outline-link]');
@@ -378,116 +444,6 @@ function closeDialog(dialog) {
378
444
  if (lastFocus && typeof lastFocus.focus === 'function') lastFocus.focus();
379
445
  fire(dialog, 'close');
380
446
  }`;
381
- const TABS = `
382
- function selectTab(container, action, fireFn) {
383
- var tabs = qa('[role="tab"]', container);
384
- if (!tabs.length) return;
385
- var index = tabs.length - 1;
386
- if (typeof action.index === 'number') index = Math.min(Math.max(action.index, 0), tabs.length - 1);
387
- else if (action.tabId) {
388
- for (var i = 0; i < tabs.length; i += 1) if (tabs[i].getAttribute('data-ak-tab-id') === action.tabId) index = i;
389
- } else {
390
- var active = tabs.findIndex(function (tab) { return tab.getAttribute('aria-selected') === 'true'; });
391
- if (active >= 0 && typeof action.index !== 'number' && !action.tabId) index = active;
392
- }
393
- activateTab(container, index, true, fireFn, true);
394
- }
395
- function activateTab(container, index, moveFocus, fireFn, announceChange) {
396
- var tabs = qa('[role="tab"]', container);
397
- qa('[role="tabpanel"]', container).forEach(function (panel, panelIndex) {
398
- var selected = panelIndex === index;
399
- panel.hidden = !selected;
400
- panel.setAttribute('tabindex', selected ? '0' : '-1');
401
- });
402
- tabs.forEach(function (tab, tabIndex) {
403
- var selected = tabIndex === index;
404
- tab.setAttribute('aria-selected', String(selected));
405
- tab.tabIndex = selected ? 0 : -1;
406
- });
407
- if (moveFocus && tabs[index]) tabs[index].focus();
408
- // Only a user-driven change is worth announcing. Announcing the initial
409
- // selection would make every page with tabs talk on load.
410
- if (announceChange) announce('Tab ' + (index + 1) + ' of ' + tabs.length);
411
- if (fireFn) fireFn(container, 'select', { index: index });
412
- }
413
- function wireTabs() {
414
- qa('[data-ak-tabs]').forEach(function (container) {
415
- activateTab(container, 0, false, fire, false);
416
- qa('[role="tab"]', container).forEach(function (tab, index) {
417
- tab.addEventListener('click', function () { selectTab(container, { index: index }, fire); }, false);
418
- tab.addEventListener('keydown', function (event) {
419
- var keys = ['ArrowRight', 'ArrowLeft', 'Home', 'End'];
420
- if (keys.indexOf(event.key) === -1) return;
421
- event.preventDefault();
422
- var total = qa('[role="tab"]', container).length;
423
- var current = index;
424
- if (event.key === 'ArrowRight') current = (index + 1) % total;
425
- else if (event.key === 'ArrowLeft') current = (index - 1 + total) % total;
426
- else if (event.key === 'Home') current = 0;
427
- else current = total - 1;
428
- activateTab(container, current, true, fire, true);
429
- }, false);
430
- });
431
- });
432
- }`;
433
- const CAROUSEL = `
434
- function shiftSlide(carousel, delta, fireFn) {
435
- var slides = qa('[data-ak-slide]', carousel);
436
- if (!slides.length) return;
437
- var current = slides.findIndex(function (slide) { return !slide.hidden; });
438
- if (current < 0) current = 0;
439
- var next = (current + delta + slides.length) % slides.length;
440
- showSlide(carousel, next, fireFn, false);
441
- }
442
- function showSlide(carousel, index, fireFn, focus) {
443
- var slides = qa('[data-ak-slide]', carousel);
444
- if (!slides.length) return;
445
- var bounded = Math.min(Math.max(index, 0), slides.length - 1);
446
- slides.forEach(function (slide, slideIndex) {
447
- var active = slideIndex === bounded;
448
- slide.hidden = !active;
449
- slide.setAttribute('aria-hidden', String(!active));
450
- });
451
- var buttons = qa('[data-ak-carousel]', carousel);
452
- buttons.forEach(function (button) {
453
- var isPrev = button.getAttribute('data-ak-carousel') === 'prev';
454
- button.disabled = !carousel.hasAttribute('data-ak-loop') && ((isPrev && bounded === 0) || (!isPrev && bounded === slides.length - 1));
455
- });
456
- var status = q('[data-ak-carousel-status]', carousel);
457
- if (status) status.textContent = (bounded + 1) + ' / ' + slides.length;
458
- if (focus && slides[bounded]) slides[bounded].focus();
459
- if (fireFn) fireFn(carousel, 'change', { index: bounded });
460
- }
461
- function wireCarousels() {
462
- qa('[data-ak-carousel-root]').forEach(function (carousel) {
463
- showSlide(carousel, 0, fire, false);
464
- qa('[data-ak-carousel]', carousel).forEach(function (button) {
465
- button.addEventListener('click', function () {
466
- shiftSlide(carousel, button.getAttribute('data-ak-carousel') === 'next' ? 1 : -1, fire);
467
- }, false);
468
- });
469
- carousel.addEventListener('keydown', function (event) {
470
- if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;
471
- event.preventDefault();
472
- var delta = event.key === 'ArrowRight' ? 1 : -1;
473
- var slides = qa('[data-ak-slide]', carousel);
474
- var current = slides.findIndex(function (slide) { return !slide.hidden; });
475
- showSlide(carousel, current + delta, fire, true);
476
- }, false);
477
- var startX = null;
478
- carousel.addEventListener('touchstart', function (event) {
479
- if (event.touches.length === 1) startX = event.touches[0].clientX;
480
- }, { passive: true });
481
- carousel.addEventListener('touchend', function (event) {
482
- if (startX === null) return;
483
- var endX = event.changedTouches.length ? event.changedTouches[0].clientX : startX;
484
- var delta = endX - startX;
485
- startX = null;
486
- if (Math.abs(delta) < 40) return;
487
- shiftSlide(carousel, delta < 0 ? 1 : -1, fire);
488
- }, false);
489
- });
490
- }`;
491
447
  const SLIDER = `
492
448
  function wireSliders() {
493
449
  qa('[data-ak-slider]').forEach(function (input) {
@@ -564,8 +520,11 @@ restoreTheme();`;
564
520
  /** Build the emitted runtime for the features a page actually uses. */
565
521
  export function buildRuntime(options) {
566
522
  const { features } = options;
567
- const needsLiveRegion = ANNOUNCING_FEATURES.some((feature) => features.has(feature));
523
+ const modules = options.moduleFeatures ?? [];
524
+ const conditions = features.has('state');
568
525
  const parts = [];
526
+ if (conditions)
527
+ parts.push(STATE);
569
528
  if (features.has('theme'))
570
529
  parts.push(THEME);
571
530
  if (features.has('copy'))
@@ -584,6 +543,12 @@ export function buildRuntime(options) {
584
543
  parts.push(OUTLINE);
585
544
  if (features.has('before-after'))
586
545
  parts.push(BEFORE_AFTER);
546
+ if (features.has('diagram'))
547
+ parts.push(DIAGRAM);
548
+ for (const feature of modules) {
549
+ if (feature.script !== undefined)
550
+ parts.push(feature.script.code);
551
+ }
587
552
  parts.push(EFFECTS);
588
553
  const wiring = [];
589
554
  if (features.has('tabs'))
@@ -598,28 +563,36 @@ export function buildRuntime(options) {
598
563
  wiring.push('wireOutline();');
599
564
  if (features.has('before-after'))
600
565
  wiring.push('wireBeforeAfter();');
566
+ if (features.has('diagram'))
567
+ wiring.push('wireDiagramPrint();');
568
+ for (const feature of modules) {
569
+ if (feature.script?.boot !== undefined)
570
+ wiring.push(feature.script.boot);
571
+ }
601
572
  wiring.push('wireEffects();');
602
573
  return [
603
574
  '(function () {',
604
575
  '"use strict";',
605
576
  'var doc = document;',
606
577
  'var root = doc.documentElement;',
607
- `var state = ${JSON.stringify(options.state)};`,
608
- HELPERS,
578
+ // The state is author data inside a script element: escaped so a value such
579
+ // as `</script>` cannot close it.
580
+ `var state = ${serializeJsonForScript(options.state)};`,
581
+ helpers(conditions),
609
582
  RUN,
610
583
  FIRE,
611
584
  ...parts,
612
585
  DELEGATION,
613
586
  BOOT,
614
587
  ...wiring,
615
- needsLiveRegion ? '' : '',
616
588
  '})();',
617
589
  ]
618
590
  .filter((part) => part !== '')
619
591
  .join('\n');
620
592
  }
621
593
  /** Features whose presence requires the live region in the document. */
622
- export function needsLiveRegion(features) {
623
- return ANNOUNCING_FEATURES.some((feature) => features.has(feature));
594
+ export function needsLiveRegion(features, moduleFeatures = []) {
595
+ return (ANNOUNCING_FEATURES.some((feature) => features.has(feature)) ||
596
+ moduleFeatures.some((feature) => feature.announces === true && features.has(feature.name)));
624
597
  }
625
598
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/render/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,mFAAmF;AACnF,MAAM,mBAAmB,GAA8B,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AASnF,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkDd,CAAC;AAEH,MAAM,IAAI,GAAG;;;;;;;;;;;EAWX,CAAC;AAEH,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+DV,CAAC;AAEH,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDZ,CAAC;AAEH,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCX,CAAC;AAEH,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;EAqBd,CAAC;AAEH,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BnB,CAAC;AAEH,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuEd,CAAC;AAEH,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;EAeb,CAAC;AAEH,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmDX,CAAC;AAEH,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDf,CAAC;AAEH,MAAM,MAAM,GAAG;;;;;;;;;;;EAWb,CAAC;AAEH,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;EA0Bb,CAAC;AAEH,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA8BR,CAAC;AAEZ,MAAM,IAAI,GAAG;;gBAEG,CAAC;AAEjB,uEAAuE;AACvE,MAAM,UAAU,YAAY,CAAC,OAAuB;IAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACrF,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEpB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACrD,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC9D,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC1D,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC1D,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3D,IAAI,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE9B,OAAO;QACL,gBAAgB;QAChB,eAAe;QACf,qBAAqB;QACrB,iCAAiC;QACjC,eAAe,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG;QAC/C,OAAO;QACP,GAAG;QACH,IAAI;QACJ,GAAG,KAAK;QACR,UAAU;QACV,IAAI;QACJ,GAAG,MAAM;QACT,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACzB,OAAO;KACR;SACE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;SAC7B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,eAAe,CAAC,QAAqC;IACnE,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/render/runtime.ts"],"names":[],"mappings":"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"}
@@ -22,8 +22,13 @@ export interface ShowcaseContext {
22
22
  };
23
23
  }
24
24
  type ShowcaseRenderer = (node: IrNode, context: ShowcaseContext) => string;
25
+ /** An image allowed by the policy, or an honest note when it is not. */
26
+ export declare function framedImage(source: string, alt: string, policy: NetworkPolicy, loading?: 'lazy' | 'eager'): string;
25
27
  /** Browser chrome (decorative) around an image: the bar, then the viewport. */
26
28
  export declare function browserShot(source: string, alt: string, address: string, policy: NetworkPolicy, loading?: 'lazy' | 'eager'): string;
29
+ export declare function paragraph(className: string, text: string): string;
30
+ /** A paragraph of prose: backtick spans become inline code. */
31
+ export declare function prose(className: string, text: string): string;
27
32
  interface TreeFile {
28
33
  name: string;
29
34
  status: string;
@@ -1 +1 @@
1
- {"version":3,"file":"showcase-blocks.d.ts","sourceRoot":"","sources":["../../src/render/showcase-blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAiB3D,0DAA0D;AAC1D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE;QAAE,MAAM,EAAE;YAAE,OAAO,EAAE,aAAa,CAAA;SAAE,CAAA;KAAE,CAAC;CAC5C;AAED,KAAK,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC;AAoB3E,+EAA+E;AAC/E,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,MAAM,GAAG,OAAgB,GACjC,MAAM,CAKR;AAwFD,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3B,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAMD,8FAA8F;AAC9F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,OAAO,CAyBzE;AAuHD,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvB,CAoBA;AAiJD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAU/D,CAAC"}
1
+ {"version":3,"file":"showcase-blocks.d.ts","sourceRoot":"","sources":["../../src/render/showcase-blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAuB3D,0DAA0D;AAC1D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE;QAAE,MAAM,EAAE;YAAE,OAAO,EAAE,aAAa,CAAA;SAAE,CAAA;KAAE,CAAC;CAC5C;AAED,KAAK,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC;AAE3E,wEAAwE;AACxE,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,MAAM,GAAG,OAAgB,GACjC,MAAM,CAUR;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,MAAM,GAAG,OAAgB,GACjC,MAAM,CAKR;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,+DAA+D;AAC/D,wBAAgB,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7D;AAqDD,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3B,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAMD,8FAA8F;AAC9F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,OAAO,CAyBzE;AAuHD,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvB,CAoBA;AAiJD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAS/D,CAAC"}