@k2b/ui 0.49.0 → 0.51.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 (461) hide show
  1. package/dist/base.css +70 -1
  2. package/dist/browser/actions/Button.js.map +1 -1
  3. package/dist/browser/actions/CommandList.js +861 -0
  4. package/dist/browser/actions/CommandList.js.map +1 -0
  5. package/dist/browser/actions/CommandMenu.js +237 -0
  6. package/dist/browser/actions/CommandMenu.js.map +1 -0
  7. package/dist/browser/actions/ContextMenu.js +3 -0
  8. package/dist/browser/actions/ContextMenu.js.map +1 -1
  9. package/dist/browser/actions/Dropdown.js +43 -10
  10. package/dist/browser/actions/Dropdown.js.map +1 -1
  11. package/dist/browser/actions/command-dock.js +47 -0
  12. package/dist/browser/actions/command-dock.js.map +1 -0
  13. package/dist/browser/actions/command-items.js +84 -0
  14. package/dist/browser/actions/command-items.js.map +1 -0
  15. package/dist/browser/actions/command-messages.js +42 -0
  16. package/dist/browser/actions/command-messages.js.map +1 -0
  17. package/dist/browser/actions/index.js +1 -0
  18. package/dist/browser/actions/index.js.map +1 -1
  19. package/dist/browser/charts/core/area.js +188 -0
  20. package/dist/browser/charts/core/area.js.map +1 -0
  21. package/dist/browser/charts/core/calendar.js +186 -0
  22. package/dist/browser/charts/core/calendar.js.map +1 -0
  23. package/dist/browser/charts/core/chart-map-data.js +9 -0
  24. package/dist/browser/charts/core/chart-map-data.js.map +1 -0
  25. package/dist/browser/charts/core/chart-messages.js +17 -0
  26. package/dist/browser/charts/core/chart-messages.js.map +1 -0
  27. package/dist/browser/charts/core/hbar-layout.js +118 -0
  28. package/dist/browser/charts/core/hbar-layout.js.map +1 -0
  29. package/dist/browser/charts/core/hbar.js +39 -0
  30. package/dist/browser/charts/core/hbar.js.map +1 -0
  31. package/dist/browser/charts/core/index.js +17 -0
  32. package/dist/browser/charts/core/index.js.map +1 -0
  33. package/dist/browser/charts/core/inspection.js +9 -0
  34. package/dist/browser/charts/core/inspection.js.map +1 -0
  35. package/dist/browser/charts/core/map.js +116 -0
  36. package/dist/browser/charts/core/map.js.map +1 -0
  37. package/dist/browser/charts/core/registry.js +35 -0
  38. package/dist/browser/charts/core/registry.js.map +1 -0
  39. package/dist/browser/charts/core/render-size.js +13 -0
  40. package/dist/browser/charts/core/render-size.js.map +1 -0
  41. package/dist/browser/charts/core/render.js +113 -0
  42. package/dist/browser/charts/core/render.js.map +1 -0
  43. package/dist/browser/charts/core/snapshot.js +65 -0
  44. package/dist/browser/charts/core/snapshot.js.map +1 -0
  45. package/dist/browser/charts/core/svg-renderers.js +2406 -0
  46. package/dist/browser/charts/core/svg-renderers.js.map +1 -0
  47. package/dist/browser/charts/core/svg.js +21 -0
  48. package/dist/browser/charts/core/svg.js.map +1 -0
  49. package/dist/browser/charts/core/termination.test-fixture.js +162 -0
  50. package/dist/browser/charts/core/termination.test-fixture.js.map +1 -0
  51. package/dist/browser/charts/core/text.js +13 -0
  52. package/dist/browser/charts/core/text.js.map +1 -0
  53. package/dist/browser/charts/core/types.js +6 -0
  54. package/dist/browser/charts/core/types.js.map +1 -0
  55. package/dist/browser/charts/core/waterfall.js +162 -0
  56. package/dist/browser/charts/core/waterfall.js.map +1 -0
  57. package/dist/browser/charts/description.js +2 -0
  58. package/dist/browser/charts/description.js.map +1 -0
  59. package/dist/browser/charts.js +4 -2
  60. package/dist/browser/charts.js.map +1 -1
  61. package/dist/browser/content/BalanceSummary.js +106 -0
  62. package/dist/browser/content/BalanceSummary.js.map +1 -0
  63. package/dist/browser/content/Chart.js +21 -616
  64. package/dist/browser/content/Chart.js.map +1 -1
  65. package/dist/browser/content/ChartExplorer.js +366 -122
  66. package/dist/browser/content/ChartExplorer.js.map +1 -1
  67. package/dist/browser/content/ChartRoot.js +632 -0
  68. package/dist/browser/content/ChartRoot.js.map +1 -0
  69. package/dist/browser/content/ChartSnapshotView.js +16 -9
  70. package/dist/browser/content/ChartSnapshotView.js.map +1 -1
  71. package/dist/browser/content/ChartSparkline.js +24 -0
  72. package/dist/browser/content/ChartSparkline.js.map +1 -0
  73. package/dist/browser/content/DataTable.js +676 -293
  74. package/dist/browser/content/DataTable.js.map +1 -1
  75. package/dist/browser/content/DataTableTools.js +119 -0
  76. package/dist/browser/content/DataTableTools.js.map +1 -0
  77. package/dist/browser/content/FileView.js +111 -61
  78. package/dist/browser/content/FileView.js.map +1 -1
  79. package/dist/browser/content/FlowAmount.js +82 -0
  80. package/dist/browser/content/FlowAmount.js.map +1 -0
  81. package/dist/browser/content/Lightbox.js +8 -8
  82. package/dist/browser/content/Lightbox.js.map +1 -1
  83. package/dist/browser/content/MapView.js +30 -28
  84. package/dist/browser/content/MapView.js.map +1 -1
  85. package/dist/browser/content/PdfPreview.js +84 -52
  86. package/dist/browser/content/PdfPreview.js.map +1 -1
  87. package/dist/browser/content/PdfViewer.js +588 -0
  88. package/dist/browser/content/PdfViewer.js.map +1 -0
  89. package/dist/browser/content/balance-summary-messages.js +26 -0
  90. package/dist/browser/content/balance-summary-messages.js.map +1 -0
  91. package/dist/browser/content/chart-bar.js +251 -21
  92. package/dist/browser/content/chart-bar.js.map +1 -1
  93. package/dist/browser/content/chart-calendar.js +43 -0
  94. package/dist/browser/content/chart-calendar.js.map +1 -0
  95. package/dist/browser/content/chart-inspection-core.js +178 -50
  96. package/dist/browser/content/chart-inspection-core.js.map +1 -1
  97. package/dist/browser/content/chart-inspection.js.map +1 -1
  98. package/dist/browser/content/chart-line-gaps.js +2 -2
  99. package/dist/browser/content/chart-line-gaps.js.map +1 -1
  100. package/dist/browser/content/chart-map-viewport.js.map +1 -1
  101. package/dist/browser/content/chart-message-catalog.js +174 -0
  102. package/dist/browser/content/chart-message-catalog.js.map +1 -0
  103. package/dist/browser/content/chart-messages.js +2 -138
  104. package/dist/browser/content/chart-messages.js.map +1 -1
  105. package/dist/browser/content/chart-snapshot.js +1 -62
  106. package/dist/browser/content/chart-snapshot.js.map +1 -1
  107. package/dist/browser/content/chart-state-timeline.js +1 -1
  108. package/dist/browser/content/chart-state-timeline.js.map +1 -1
  109. package/dist/browser/content/chart-svg.js +4 -2
  110. package/dist/browser/content/chart-svg.js.map +1 -1
  111. package/dist/browser/content/chart-time-axis.js +139 -0
  112. package/dist/browser/content/chart-time-axis.js.map +1 -0
  113. package/dist/browser/content/data-table-columns.js +160 -0
  114. package/dist/browser/content/data-table-columns.js.map +1 -0
  115. package/dist/browser/content/data-table-messages.js +38 -2
  116. package/dist/browser/content/data-table-messages.js.map +1 -1
  117. package/dist/browser/content/flow-amount-messages.js +26 -0
  118. package/dist/browser/content/flow-amount-messages.js.map +1 -0
  119. package/dist/browser/content/index.js +5 -0
  120. package/dist/browser/content/index.js.map +1 -1
  121. package/dist/browser/content/pdf-document.js +29 -0
  122. package/dist/browser/content/pdf-document.js.map +1 -0
  123. package/dist/browser/content/pdf-limits.js +31 -0
  124. package/dist/browser/content/pdf-limits.js.map +1 -0
  125. package/dist/browser/content/pdf-messages.js +34 -2
  126. package/dist/browser/content/pdf-messages.js.map +1 -1
  127. package/dist/browser/content/pdf-viewer-engine.js +57 -0
  128. package/dist/browser/content/pdf-viewer-worker.js +28 -0
  129. package/dist/browser/inputs/ChoiceInputs.js +94 -51
  130. package/dist/browser/inputs/ChoiceInputs.js.map +1 -1
  131. package/dist/browser/inputs/ChoiceSlider.js +75 -58
  132. package/dist/browser/inputs/ChoiceSlider.js.map +1 -1
  133. package/dist/browser/inputs/DatePicker.js +118 -102
  134. package/dist/browser/inputs/DatePicker.js.map +1 -1
  135. package/dist/browser/inputs/PeriodPicker.js +874 -0
  136. package/dist/browser/inputs/PeriodPicker.js.map +1 -0
  137. package/dist/browser/inputs/SelectChip.js +50 -17
  138. package/dist/browser/inputs/SelectChip.js.map +1 -1
  139. package/dist/browser/inputs/date-picker.js +13 -0
  140. package/dist/browser/inputs/date-picker.js.map +1 -1
  141. package/dist/browser/inputs/index.js +4 -1
  142. package/dist/browser/inputs/index.js.map +1 -1
  143. package/dist/browser/inputs/input-messages.js +8 -2
  144. package/dist/browser/inputs/input-messages.js.map +1 -1
  145. package/dist/browser/inputs/markdown/MarkdownEditor.js +14 -10
  146. package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
  147. package/dist/browser/inputs/markdown/SlashCommands.js +402 -0
  148. package/dist/browser/inputs/markdown/SlashCommands.js.map +1 -0
  149. package/dist/browser/inputs/period-picker-messages.js +71 -0
  150. package/dist/browser/inputs/period-picker-messages.js.map +1 -0
  151. package/dist/browser/inputs/period.js +263 -0
  152. package/dist/browser/inputs/period.js.map +1 -0
  153. package/dist/browser/intl/Format.js +31 -8
  154. package/dist/browser/intl/Format.js.map +1 -1
  155. package/dist/browser/layout/AppWorkspace.js +7 -1
  156. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  157. package/dist/browser/layout/DetailPanel.js +147 -120
  158. package/dist/browser/layout/DetailPanel.js.map +1 -1
  159. package/dist/browser/layout/Discussion.js +101 -108
  160. package/dist/browser/layout/Discussion.js.map +1 -1
  161. package/dist/browser/layout/index.js.map +1 -1
  162. package/dist/browser/surfaces/BudgetList.js +281 -0
  163. package/dist/browser/surfaces/BudgetList.js.map +1 -0
  164. package/dist/browser/surfaces/DescriptionList.js +5 -2
  165. package/dist/browser/surfaces/DescriptionList.js.map +1 -1
  166. package/dist/browser/surfaces/ProgressBar.js +134 -21
  167. package/dist/browser/surfaces/ProgressBar.js.map +1 -1
  168. package/dist/browser/surfaces/StatCell.js +327 -146
  169. package/dist/browser/surfaces/StatCell.js.map +1 -1
  170. package/dist/browser/surfaces/StatGrid.js +75 -57
  171. package/dist/browser/surfaces/StatGrid.js.map +1 -1
  172. package/dist/browser/surfaces/budget-messages.js +64 -0
  173. package/dist/browser/surfaces/budget-messages.js.map +1 -0
  174. package/dist/browser/surfaces/delta-badge.js +79 -0
  175. package/dist/browser/surfaces/delta-badge.js.map +1 -0
  176. package/dist/browser/surfaces/index.js +2 -1
  177. package/dist/browser/surfaces/index.js.map +1 -1
  178. package/dist/browser/surfaces/person-color.js +2 -2
  179. package/dist/browser/surfaces/person-color.js.map +1 -1
  180. package/dist/browser/surfaces/stat-cell-messages.js +41 -0
  181. package/dist/browser/surfaces/stat-cell-messages.js.map +1 -0
  182. package/dist/browser/widgets/Dashboard.js +137 -0
  183. package/dist/browser/widgets/Dashboard.js.map +1 -0
  184. package/dist/browser/widgets/DashboardFrame.js +310 -0
  185. package/dist/browser/widgets/DashboardFrame.js.map +1 -0
  186. package/dist/browser/widgets/index.js +2 -0
  187. package/dist/browser/widgets/index.js.map +1 -1
  188. package/dist/licenses/pdfjs-dist.txt +177 -0
  189. package/dist/ssr/actions/Button.js.map +1 -1
  190. package/dist/ssr/actions/CommandList.js +638 -0
  191. package/dist/ssr/actions/CommandList.js.map +1 -0
  192. package/dist/ssr/actions/CommandMenu.js +197 -0
  193. package/dist/ssr/actions/CommandMenu.js.map +1 -0
  194. package/dist/ssr/actions/ContextMenu.js +3 -0
  195. package/dist/ssr/actions/ContextMenu.js.map +1 -1
  196. package/dist/ssr/actions/Dropdown.js +43 -10
  197. package/dist/ssr/actions/Dropdown.js.map +1 -1
  198. package/dist/ssr/actions/command-dock.js +47 -0
  199. package/dist/ssr/actions/command-dock.js.map +1 -0
  200. package/dist/ssr/actions/command-items.js +84 -0
  201. package/dist/ssr/actions/command-items.js.map +1 -0
  202. package/dist/ssr/actions/command-messages.js +42 -0
  203. package/dist/ssr/actions/command-messages.js.map +1 -0
  204. package/dist/ssr/actions/index.js +1 -0
  205. package/dist/ssr/actions/index.js.map +1 -1
  206. package/dist/ssr/charts/core/area.js +188 -0
  207. package/dist/ssr/charts/core/area.js.map +1 -0
  208. package/dist/ssr/charts/core/calendar.js +186 -0
  209. package/dist/ssr/charts/core/calendar.js.map +1 -0
  210. package/dist/ssr/charts/core/chart-map-data.js +9 -0
  211. package/dist/ssr/charts/core/chart-map-data.js.map +1 -0
  212. package/dist/ssr/charts/core/chart-messages.js +17 -0
  213. package/dist/ssr/charts/core/chart-messages.js.map +1 -0
  214. package/dist/ssr/charts/core/hbar-layout.js +118 -0
  215. package/dist/ssr/charts/core/hbar-layout.js.map +1 -0
  216. package/dist/ssr/charts/core/hbar.js +39 -0
  217. package/dist/ssr/charts/core/hbar.js.map +1 -0
  218. package/dist/ssr/charts/core/index.js +17 -0
  219. package/dist/ssr/charts/core/index.js.map +1 -0
  220. package/dist/ssr/charts/core/inspection.js +9 -0
  221. package/dist/ssr/charts/core/inspection.js.map +1 -0
  222. package/dist/ssr/charts/core/map.js +116 -0
  223. package/dist/ssr/charts/core/map.js.map +1 -0
  224. package/dist/ssr/charts/core/registry.js +35 -0
  225. package/dist/ssr/charts/core/registry.js.map +1 -0
  226. package/dist/ssr/charts/core/render-size.js +13 -0
  227. package/dist/ssr/charts/core/render-size.js.map +1 -0
  228. package/dist/ssr/charts/core/render.js +113 -0
  229. package/dist/ssr/charts/core/render.js.map +1 -0
  230. package/dist/ssr/charts/core/snapshot.js +65 -0
  231. package/dist/ssr/charts/core/snapshot.js.map +1 -0
  232. package/dist/ssr/charts/core/svg-renderers.js +2406 -0
  233. package/dist/ssr/charts/core/svg-renderers.js.map +1 -0
  234. package/dist/ssr/charts/core/svg.js +21 -0
  235. package/dist/ssr/charts/core/svg.js.map +1 -0
  236. package/dist/ssr/charts/core/termination.test-fixture.js +162 -0
  237. package/dist/ssr/charts/core/termination.test-fixture.js.map +1 -0
  238. package/dist/ssr/charts/core/text.js +13 -0
  239. package/dist/ssr/charts/core/text.js.map +1 -0
  240. package/dist/ssr/charts/core/types.js +6 -0
  241. package/dist/ssr/charts/core/types.js.map +1 -0
  242. package/dist/ssr/charts/core/waterfall.js +162 -0
  243. package/dist/ssr/charts/core/waterfall.js.map +1 -0
  244. package/dist/ssr/charts/description.js +2 -0
  245. package/dist/ssr/charts/description.js.map +1 -0
  246. package/dist/ssr/charts.js +4 -2
  247. package/dist/ssr/charts.js.map +1 -1
  248. package/dist/ssr/content/BalanceSummary.js +75 -0
  249. package/dist/ssr/content/BalanceSummary.js.map +1 -0
  250. package/dist/ssr/content/Chart.js +21 -483
  251. package/dist/ssr/content/Chart.js.map +1 -1
  252. package/dist/ssr/content/ChartExplorer.js +190 -46
  253. package/dist/ssr/content/ChartExplorer.js.map +1 -1
  254. package/dist/ssr/content/ChartRoot.js +475 -0
  255. package/dist/ssr/content/ChartRoot.js.map +1 -0
  256. package/dist/ssr/content/ChartSnapshotView.js +5 -1
  257. package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
  258. package/dist/ssr/content/ChartSparkline.js +24 -0
  259. package/dist/ssr/content/ChartSparkline.js.map +1 -0
  260. package/dist/ssr/content/DataTable.js +287 -78
  261. package/dist/ssr/content/DataTable.js.map +1 -1
  262. package/dist/ssr/content/DataTableTools.js +106 -0
  263. package/dist/ssr/content/DataTableTools.js.map +1 -0
  264. package/dist/ssr/content/FileView.js +56 -7
  265. package/dist/ssr/content/FileView.js.map +1 -1
  266. package/dist/ssr/content/FlowAmount.js +58 -0
  267. package/dist/ssr/content/FlowAmount.js.map +1 -0
  268. package/dist/ssr/content/Lightbox.js +8 -8
  269. package/dist/ssr/content/Lightbox.js.map +1 -1
  270. package/dist/ssr/content/MapView.js +9 -9
  271. package/dist/ssr/content/MapView.js.map +1 -1
  272. package/dist/ssr/content/PdfPreview.js +49 -20
  273. package/dist/ssr/content/PdfPreview.js.map +1 -1
  274. package/dist/ssr/content/PdfViewer.js +484 -0
  275. package/dist/ssr/content/PdfViewer.js.map +1 -0
  276. package/dist/ssr/content/balance-summary-messages.js +26 -0
  277. package/dist/ssr/content/balance-summary-messages.js.map +1 -0
  278. package/dist/ssr/content/chart-bar.js +251 -21
  279. package/dist/ssr/content/chart-bar.js.map +1 -1
  280. package/dist/ssr/content/chart-calendar.js +43 -0
  281. package/dist/ssr/content/chart-calendar.js.map +1 -0
  282. package/dist/ssr/content/chart-inspection-core.js +178 -50
  283. package/dist/ssr/content/chart-inspection-core.js.map +1 -1
  284. package/dist/ssr/content/chart-inspection.js.map +1 -1
  285. package/dist/ssr/content/chart-line-gaps.js +2 -2
  286. package/dist/ssr/content/chart-line-gaps.js.map +1 -1
  287. package/dist/ssr/content/chart-map-viewport.js.map +1 -1
  288. package/dist/ssr/content/chart-message-catalog.js +174 -0
  289. package/dist/ssr/content/chart-message-catalog.js.map +1 -0
  290. package/dist/ssr/content/chart-messages.js +2 -138
  291. package/dist/ssr/content/chart-messages.js.map +1 -1
  292. package/dist/ssr/content/chart-snapshot.js +1 -62
  293. package/dist/ssr/content/chart-snapshot.js.map +1 -1
  294. package/dist/ssr/content/chart-state-timeline.js +1 -1
  295. package/dist/ssr/content/chart-state-timeline.js.map +1 -1
  296. package/dist/ssr/content/chart-svg.js +4 -2
  297. package/dist/ssr/content/chart-svg.js.map +1 -1
  298. package/dist/ssr/content/chart-time-axis.js +139 -0
  299. package/dist/ssr/content/chart-time-axis.js.map +1 -0
  300. package/dist/ssr/content/data-table-columns.js +160 -0
  301. package/dist/ssr/content/data-table-columns.js.map +1 -0
  302. package/dist/ssr/content/data-table-messages.js +38 -2
  303. package/dist/ssr/content/data-table-messages.js.map +1 -1
  304. package/dist/ssr/content/flow-amount-messages.js +26 -0
  305. package/dist/ssr/content/flow-amount-messages.js.map +1 -0
  306. package/dist/ssr/content/index.js +5 -0
  307. package/dist/ssr/content/index.js.map +1 -1
  308. package/dist/ssr/content/pdf-document.js +29 -0
  309. package/dist/ssr/content/pdf-document.js.map +1 -0
  310. package/dist/ssr/content/pdf-limits.js +31 -0
  311. package/dist/ssr/content/pdf-limits.js.map +1 -0
  312. package/dist/ssr/content/pdf-messages.js +34 -2
  313. package/dist/ssr/content/pdf-messages.js.map +1 -1
  314. package/dist/ssr/inputs/ChoiceInputs.js +49 -12
  315. package/dist/ssr/inputs/ChoiceInputs.js.map +1 -1
  316. package/dist/ssr/inputs/ChoiceSlider.js +17 -12
  317. package/dist/ssr/inputs/ChoiceSlider.js.map +1 -1
  318. package/dist/ssr/inputs/DatePicker.js +19 -13
  319. package/dist/ssr/inputs/DatePicker.js.map +1 -1
  320. package/dist/ssr/inputs/PeriodPicker.js +598 -0
  321. package/dist/ssr/inputs/PeriodPicker.js.map +1 -0
  322. package/dist/ssr/inputs/SelectChip.js +26 -9
  323. package/dist/ssr/inputs/SelectChip.js.map +1 -1
  324. package/dist/ssr/inputs/date-picker.js +13 -0
  325. package/dist/ssr/inputs/date-picker.js.map +1 -1
  326. package/dist/ssr/inputs/index.js +4 -1
  327. package/dist/ssr/inputs/index.js.map +1 -1
  328. package/dist/ssr/inputs/input-messages.js +8 -2
  329. package/dist/ssr/inputs/input-messages.js.map +1 -1
  330. package/dist/ssr/inputs/markdown/MarkdownEditor.js +3 -2
  331. package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
  332. package/dist/ssr/inputs/markdown/SlashCommands.js +339 -0
  333. package/dist/ssr/inputs/markdown/SlashCommands.js.map +1 -0
  334. package/dist/ssr/inputs/period-picker-messages.js +71 -0
  335. package/dist/ssr/inputs/period-picker-messages.js.map +1 -0
  336. package/dist/ssr/inputs/period.js +263 -0
  337. package/dist/ssr/inputs/period.js.map +1 -0
  338. package/dist/ssr/intl/Format.js +22 -2
  339. package/dist/ssr/intl/Format.js.map +1 -1
  340. package/dist/ssr/layout/AppWorkspace.js +7 -1
  341. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  342. package/dist/ssr/layout/DetailPanel.js +27 -4
  343. package/dist/ssr/layout/DetailPanel.js.map +1 -1
  344. package/dist/ssr/layout/Discussion.js +16 -2
  345. package/dist/ssr/layout/Discussion.js.map +1 -1
  346. package/dist/ssr/layout/index.js.map +1 -1
  347. package/dist/ssr/surfaces/BudgetList.js +170 -0
  348. package/dist/ssr/surfaces/BudgetList.js.map +1 -0
  349. package/dist/ssr/surfaces/DescriptionList.js +1 -1
  350. package/dist/ssr/surfaces/DescriptionList.js.map +1 -1
  351. package/dist/ssr/surfaces/ProgressBar.js +96 -5
  352. package/dist/ssr/surfaces/ProgressBar.js.map +1 -1
  353. package/dist/ssr/surfaces/StatCell.js +157 -52
  354. package/dist/ssr/surfaces/StatCell.js.map +1 -1
  355. package/dist/ssr/surfaces/StatGrid.js +24 -35
  356. package/dist/ssr/surfaces/StatGrid.js.map +1 -1
  357. package/dist/ssr/surfaces/budget-messages.js +64 -0
  358. package/dist/ssr/surfaces/budget-messages.js.map +1 -0
  359. package/dist/ssr/surfaces/delta-badge.js +55 -0
  360. package/dist/ssr/surfaces/delta-badge.js.map +1 -0
  361. package/dist/ssr/surfaces/index.js +2 -1
  362. package/dist/ssr/surfaces/index.js.map +1 -1
  363. package/dist/ssr/surfaces/person-color.js +2 -2
  364. package/dist/ssr/surfaces/person-color.js.map +1 -1
  365. package/dist/ssr/surfaces/stat-cell-messages.js +41 -0
  366. package/dist/ssr/surfaces/stat-cell-messages.js.map +1 -0
  367. package/dist/ssr/widgets/Dashboard.js +84 -0
  368. package/dist/ssr/widgets/Dashboard.js.map +1 -0
  369. package/dist/ssr/widgets/DashboardFrame.js +200 -0
  370. package/dist/ssr/widgets/DashboardFrame.js.map +1 -0
  371. package/dist/ssr/widgets/index.js +2 -0
  372. package/dist/ssr/widgets/index.js.map +1 -1
  373. package/dist/styles.css +1 -1
  374. package/dist/types/actions/Button.d.ts +1 -1
  375. package/dist/types/actions/CommandList.d.ts +120 -0
  376. package/dist/types/actions/CommandMenu.d.ts +39 -0
  377. package/dist/types/actions/Dropdown.d.ts +17 -0
  378. package/dist/types/actions/command-dock.d.ts +8 -0
  379. package/dist/types/actions/command-items.d.ts +134 -0
  380. package/dist/types/actions/command-messages.d.ts +19 -0
  381. package/dist/types/actions/index.d.ts +3 -0
  382. package/dist/types/charts/core/area.d.ts +62 -0
  383. package/dist/types/charts/core/calendar.d.ts +57 -0
  384. package/dist/types/charts/core/chart-map-data.d.ts +3 -0
  385. package/dist/types/charts/core/chart-messages.d.ts +5 -0
  386. package/dist/types/charts/core/hbar-layout.d.ts +74 -0
  387. package/dist/types/charts/core/hbar.d.ts +13 -0
  388. package/dist/types/charts/core/index.d.ts +16 -0
  389. package/dist/types/charts/core/inspection.d.ts +16 -0
  390. package/dist/types/charts/core/map.d.ts +3 -0
  391. package/dist/types/charts/core/registry.d.ts +33 -0
  392. package/dist/types/charts/core/render-size.d.ts +7 -0
  393. package/dist/types/charts/core/render.d.ts +37 -0
  394. package/dist/types/charts/core/snapshot.d.ts +27 -0
  395. package/dist/types/charts/core/svg-renderers.d.ts +722 -0
  396. package/dist/types/charts/core/svg.d.ts +20 -0
  397. package/dist/types/charts/core/termination.test-fixture.d.ts +1 -0
  398. package/dist/types/charts/core/text.d.ts +5 -0
  399. package/dist/types/charts/core/types.d.ts +20 -0
  400. package/dist/types/charts/core/waterfall.d.ts +68 -0
  401. package/dist/types/charts/description.d.ts +226 -0
  402. package/dist/types/charts.d.ts +5 -2
  403. package/dist/types/content/BalanceSummary.d.ts +29 -0
  404. package/dist/types/content/Chart.d.ts +19 -117
  405. package/dist/types/content/ChartExplorer.d.ts +43 -2
  406. package/dist/types/content/ChartRoot.d.ts +92 -0
  407. package/dist/types/content/ChartSnapshotView.d.ts +1 -0
  408. package/dist/types/content/ChartSparkline.d.ts +5 -0
  409. package/dist/types/content/DataTable.d.ts +28 -0
  410. package/dist/types/content/DataTableTools.d.ts +44 -0
  411. package/dist/types/content/FlowAmount.d.ts +28 -0
  412. package/dist/types/content/PdfViewer.d.ts +32 -0
  413. package/dist/types/content/balance-summary-messages.d.ts +11 -0
  414. package/dist/types/content/chart-bar.d.ts +95 -2
  415. package/dist/types/content/chart-calendar.d.ts +4 -0
  416. package/dist/types/content/chart-inspection-core.d.ts +21 -16
  417. package/dist/types/content/chart-inspection.d.ts +5 -1
  418. package/dist/types/content/chart-map-viewport.d.ts +1 -1
  419. package/dist/types/content/chart-message-catalog.d.ts +84 -0
  420. package/dist/types/content/chart-messages.d.ts +2 -33
  421. package/dist/types/content/chart-snapshot.d.ts +1 -26
  422. package/dist/types/content/chart-svg.d.ts +1 -1
  423. package/dist/types/content/chart-time-axis.d.ts +26 -0
  424. package/dist/types/content/data-table-columns.d.ts +72 -0
  425. package/dist/types/content/data-table-messages.d.ts +18 -0
  426. package/dist/types/content/flow-amount-messages.d.ts +11 -0
  427. package/dist/types/content/index.d.ts +12 -2
  428. package/dist/types/content/pdf-document.d.ts +5 -0
  429. package/dist/types/content/pdf-engine.d.ts +9 -0
  430. package/dist/types/content/pdf-limits.d.ts +43 -0
  431. package/dist/types/content/pdf-messages.d.ts +16 -0
  432. package/dist/types/inputs/ChoiceInputs.d.ts +4 -0
  433. package/dist/types/inputs/ChoiceSlider.d.ts +12 -0
  434. package/dist/types/inputs/DatePicker.d.ts +22 -0
  435. package/dist/types/inputs/PeriodPicker.d.ts +24 -0
  436. package/dist/types/inputs/SelectChip.d.ts +2 -0
  437. package/dist/types/inputs/date-picker.d.ts +6 -0
  438. package/dist/types/inputs/index.d.ts +8 -2
  439. package/dist/types/inputs/input-messages.d.ts +3 -0
  440. package/dist/types/inputs/markdown/MarkdownEditor.d.ts +5 -0
  441. package/dist/types/inputs/markdown/SlashCommands.d.ts +20 -0
  442. package/dist/types/inputs/period-picker-messages.d.ts +34 -0
  443. package/dist/types/inputs/period.d.ts +134 -0
  444. package/dist/types/intl/Format.d.ts +5 -0
  445. package/dist/types/layout/AppWorkspace.d.ts +5 -0
  446. package/dist/types/layout/DetailPanel.d.ts +12 -0
  447. package/dist/types/layout/index.d.ts +1 -1
  448. package/dist/types/surfaces/BudgetList.d.ts +42 -0
  449. package/dist/types/surfaces/DescriptionList.d.ts +5 -0
  450. package/dist/types/surfaces/ProgressBar.d.ts +38 -2
  451. package/dist/types/surfaces/StatCell.d.ts +40 -2
  452. package/dist/types/surfaces/StatGrid.d.ts +3 -1
  453. package/dist/types/surfaces/budget-messages.d.ts +30 -0
  454. package/dist/types/surfaces/delta-badge.d.ts +10 -0
  455. package/dist/types/surfaces/index.d.ts +4 -3
  456. package/dist/types/surfaces/person-color.d.ts +2 -2
  457. package/dist/types/surfaces/stat-cell-messages.d.ts +19 -0
  458. package/dist/types/widgets/Dashboard.d.ts +42 -0
  459. package/dist/types/widgets/DashboardFrame.d.ts +58 -0
  460. package/dist/types/widgets/index.d.ts +2 -0
  461. package/package.json +8 -1
@@ -0,0 +1,20 @@
1
+ import { map } from "./map";
2
+ import { bar, barGauge, boxplot, donut, gauge, heatmap, histogram, line, pie, scatter, sparkline, stat, stateTimeline } from "./svg-renderers";
3
+ export { map } from "./map";
4
+ export * from "./svg-renderers";
5
+ export declare const charts: {
6
+ readonly scatter: typeof scatter;
7
+ readonly line: typeof line;
8
+ readonly bar: typeof bar;
9
+ readonly pie: typeof pie;
10
+ readonly donut: typeof donut;
11
+ readonly sparkline: typeof sparkline;
12
+ readonly histogram: typeof histogram;
13
+ readonly boxplot: typeof boxplot;
14
+ readonly gauge: typeof gauge;
15
+ readonly barGauge: typeof barGauge;
16
+ readonly stat: typeof stat;
17
+ readonly heatmap: typeof heatmap;
18
+ readonly map: typeof map;
19
+ readonly stateTimeline: typeof stateTimeline;
20
+ };
@@ -0,0 +1,5 @@
1
+ /** Conservative proportional-font advances in em, shared by DOM-free SVG label layout.
2
+ * Wide glyphs retain their natural shape; fitting removes whole code points instead of stretching text.
3
+ */
4
+ export declare function chartTextWidth(text: string, size: number): number;
5
+ export declare function fitChartText(text: string, width: number, size: number): string;
@@ -0,0 +1,20 @@
1
+ import type { chartRenderers } from "./registry";
2
+ /** UI-owned kind union, derived from the renderer registry. */
3
+ export type ChartKind = keyof typeof chartRenderers;
4
+ export declare const chartDatumRoles: readonly ["point", "item", "bin", "box", "outlier", "value", "cell", "interval"];
5
+ export type ChartDatumRole = (typeof chartDatumRoles)[number];
6
+ /** Renderer metadata. Anchors use the containing SVG's coordinate space. */
7
+ export type ChartDatum = {
8
+ index: number;
9
+ seriesIndex?: number;
10
+ role: ChartDatumRole;
11
+ label?: string;
12
+ anchor: [number, number];
13
+ grid?: [number, number];
14
+ values: {
15
+ key: string;
16
+ value: string | number;
17
+ formatted?: string;
18
+ }[];
19
+ };
20
+ export type { ChartDateFormat, ChartFormat, ChartNumberFormat } from "../description";
@@ -0,0 +1,68 @@
1
+ import type { ChartDatum } from "./types";
2
+ export type WaterfallOptions = {
3
+ start: {
4
+ label: string;
5
+ value: number;
6
+ };
7
+ steps: {
8
+ label: string;
9
+ value: number;
10
+ }[];
11
+ end: {
12
+ label: string;
13
+ };
14
+ title?: string;
15
+ subtitle?: string;
16
+ className?: string;
17
+ /** Formats balances and absolute changes. */
18
+ format?: (value: number) => string;
19
+ locale?: string;
20
+ /** Displayed width in CSS pixels; defaults to the SVG width. Stretching hosts pass their layout width. */
21
+ displayWidth?: number;
22
+ };
23
+ export type WaterfallBar = {
24
+ label: string;
25
+ value: number;
26
+ from: number;
27
+ to: number;
28
+ total: boolean;
29
+ };
30
+ /** Totals rest on zero; each change starts at the previous running balance. */
31
+ export declare function waterfallLayout(spec: WaterfallOptions, size: {
32
+ width: number;
33
+ height: number;
34
+ }): {
35
+ bars: WaterfallBar[];
36
+ balance: number;
37
+ scale: {
38
+ domain: [number, number];
39
+ ticks: number[];
40
+ };
41
+ left: number;
42
+ right: number;
43
+ top: number;
44
+ bottom: number;
45
+ slot: number;
46
+ ratio: number;
47
+ project: (value: number) => number;
48
+ format: {
49
+ (value: number): string;
50
+ (value: number | bigint): string;
51
+ (value: number | bigint | Intl.StringNumericLiteral): string;
52
+ };
53
+ amount: (bar: WaterfallBar) => string;
54
+ datum: (bar: WaterfallBar, index: number, center: number, formattedAmount: string) => ChartDatum;
55
+ };
56
+ export type WaterfallLayout = ReturnType<typeof waterfallLayout>;
57
+ /** Pure SVG, including presentation attributes for PDF and hosts outside .k2b-ui. */
58
+ export declare function renderWaterfallSvg(spec: WaterfallOptions & {
59
+ width: number;
60
+ height: number;
61
+ inspect?: boolean;
62
+ }, responsive?: boolean): string;
63
+ /** Draw the geometry already reserved by a host before its drawing module loads. */
64
+ export declare function renderWaterfallLayoutSvg(spec: WaterfallOptions & {
65
+ width: number;
66
+ height: number;
67
+ inspect?: boolean;
68
+ }, g: WaterfallLayout, responsive?: boolean): string;
@@ -0,0 +1,226 @@
1
+ /** JSON number formatting. Functions belong to the rendering host, never the saved description. */
2
+ export type ChartNumberFormat = {
3
+ style?: "number" | "percent" | "currency";
4
+ currency?: string;
5
+ unit?: string;
6
+ decimals?: number;
7
+ compact?: boolean;
8
+ };
9
+ export type ChartDateFormat = {
10
+ date: "day" | "minute" | "second";
11
+ };
12
+ export type ChartFormat = ChartNumberFormat | ChartDateFormat;
13
+ export type ChartLimits = {
14
+ maxSeries: number;
15
+ maxValues: number;
16
+ maxMarks: number;
17
+ };
18
+ export type ChartDescriptionAxis = {
19
+ label?: string;
20
+ domain?: number[];
21
+ ticks?: number;
22
+ scale?: "linear" | "log";
23
+ format?: ChartFormat;
24
+ };
25
+ type Reference = {
26
+ value: number | string;
27
+ axis?: "x" | "y";
28
+ label?: string;
29
+ style?: "solid" | "dashed" | "dotted";
30
+ tone?: "neutral" | "info" | "success" | "warning" | "danger";
31
+ };
32
+ type Threshold = {
33
+ value: number;
34
+ label?: string;
35
+ };
36
+ type Series<N> = {
37
+ label?: string;
38
+ data: {
39
+ x: N | string;
40
+ y: N;
41
+ }[];
42
+ role?: "reference";
43
+ };
44
+ type Common = {
45
+ title: string;
46
+ subtitle?: string;
47
+ tooltip?: {
48
+ label?: string;
49
+ format?: ChartNumberFormat;
50
+ };
51
+ };
52
+ type Variants<N> = {
53
+ kind: "waterfall";
54
+ start: {
55
+ label: string;
56
+ value: number;
57
+ };
58
+ steps: {
59
+ label: string;
60
+ value: number;
61
+ }[];
62
+ end: {
63
+ label: string;
64
+ };
65
+ format?: ChartNumberFormat;
66
+ } | {
67
+ kind: "area";
68
+ layout: "stacked";
69
+ normalize?: boolean;
70
+ x: (number | string)[];
71
+ series: {
72
+ label: string;
73
+ data: (number | null)[];
74
+ }[];
75
+ legend?: boolean;
76
+ format?: ChartNumberFormat;
77
+ } | {
78
+ kind: "bar";
79
+ data: {
80
+ label: string;
81
+ value: N;
82
+ }[];
83
+ x?: string[];
84
+ series?: {
85
+ label: string;
86
+ data: (number | null)[];
87
+ }[];
88
+ layout?: "columns" | "rows" | "grouped" | "stacked";
89
+ normalize?: boolean;
90
+ compare?: {
91
+ label: string;
92
+ data: (number | null)[];
93
+ };
94
+ xAxis?: Pick<ChartDescriptionAxis, "label"> & {
95
+ ordered?: boolean;
96
+ };
97
+ yAxis?: ChartDescriptionAxis;
98
+ colorByBar?: boolean;
99
+ showValues?: boolean;
100
+ legend?: boolean;
101
+ references?: Reference[];
102
+ } | {
103
+ kind: "hbar";
104
+ series: string[];
105
+ rows: {
106
+ group?: string;
107
+ label: string;
108
+ values: (number | null)[];
109
+ }[];
110
+ legend?: boolean;
111
+ format?: ChartNumberFormat;
112
+ } | {
113
+ kind: "line";
114
+ series: (Series<N> & {
115
+ style?: "solid" | "dashed" | "dotted";
116
+ })[];
117
+ xAxis?: ChartDescriptionAxis;
118
+ yAxis?: ChartDescriptionAxis;
119
+ legend?: boolean;
120
+ area?: boolean;
121
+ smooth?: boolean;
122
+ references?: Reference[];
123
+ } | {
124
+ kind: "scatter";
125
+ series: Series<N>[];
126
+ xAxis?: ChartDescriptionAxis;
127
+ yAxis?: ChartDescriptionAxis;
128
+ legend?: boolean;
129
+ references?: Reference[];
130
+ } | {
131
+ kind: "pie" | "donut";
132
+ data: {
133
+ label: string;
134
+ value: N;
135
+ }[];
136
+ legend?: boolean;
137
+ showLabels?: boolean;
138
+ format?: ChartNumberFormat;
139
+ } | {
140
+ kind: "histogram";
141
+ data: N[];
142
+ bins?: number | number[];
143
+ references?: Reference[];
144
+ } | {
145
+ kind: "gauge";
146
+ value: N;
147
+ min?: number;
148
+ max?: number;
149
+ label?: string;
150
+ unit?: string;
151
+ format?: ChartNumberFormat;
152
+ thresholds?: Threshold[];
153
+ } | {
154
+ kind: "sparkline";
155
+ data: N[];
156
+ area?: boolean;
157
+ } | {
158
+ kind: "boxplot";
159
+ data: {
160
+ label: string;
161
+ values: N[];
162
+ }[];
163
+ yAxis?: ChartDescriptionAxis;
164
+ references?: Reference[];
165
+ } | {
166
+ kind: "heatmap";
167
+ layout: "calendar";
168
+ data: [string, N | null][];
169
+ scale: "sequential" | "diverging";
170
+ label?: string;
171
+ format?: ChartNumberFormat;
172
+ locale?: string;
173
+ } | {
174
+ kind: "heatmap";
175
+ layout?: undefined;
176
+ data: {
177
+ x: string;
178
+ y: string;
179
+ value: N;
180
+ }[];
181
+ format?: ChartNumberFormat;
182
+ showValues?: boolean;
183
+ min?: number;
184
+ max?: number;
185
+ } | {
186
+ kind: "barGauge";
187
+ data: {
188
+ label: string;
189
+ value: N;
190
+ min?: number;
191
+ max?: number;
192
+ }[];
193
+ min?: number;
194
+ max?: number;
195
+ unit?: string;
196
+ format?: ChartNumberFormat;
197
+ thresholds?: Threshold[];
198
+ } | {
199
+ kind: "stat";
200
+ value: N;
201
+ format?: ChartNumberFormat;
202
+ unit?: string;
203
+ delta?: N;
204
+ better?: "up" | "down";
205
+ sparkline?: N[];
206
+ };
207
+ /** Portable chart node. Dates are ISO text and missing observations are null, never zero. */
208
+ export type ChartDescription = Common & (Exclude<Variants<number | null>, {
209
+ kind: "bar";
210
+ }> | (Omit<Extract<Variants<number | null>, {
211
+ kind: "bar";
212
+ }>, "data"> & {
213
+ data?: {
214
+ label: string;
215
+ value: number | null;
216
+ }[];
217
+ }));
218
+ /** Validated renderer input. The portable validator normalizes null gaps to non-finite numbers for drawing. */
219
+ export type ChartInput = Common & (Exclude<Variants<number>, {
220
+ kind: "stat";
221
+ }> | (Omit<Extract<Variants<number>, {
222
+ kind: "stat";
223
+ }>, "delta"> & {
224
+ delta: number | undefined;
225
+ }));
226
+ export {};
@@ -1,5 +1,8 @@
1
1
  /**
2
- * Pure chart renderers that share the `Chart` component's drawing without its Solid wrapper, for hosts that draw
3
- * SVG themselves, such as server previews and app frames.
2
+ * Drawing helpers and portable chart contracts. Import the Solid Chart component from `@k2b/ui`.
4
3
  */
4
+ export * from "./charts/core";
5
+ export type * from "./charts/description";
6
+ export type { ChartKindProps, ChartLabels, ChartProps, ChartRenderOptions } from "./content/Chart";
5
7
  export { type BarChartLayout, type BarChartOptions, barChartLayout, renderBarChartSvg } from "./content/chart-bar";
8
+ export { calendarInspectionNavigation, mountCalendarScroll } from "./content/chart-calendar";
@@ -0,0 +1,29 @@
1
+ import type { JSX } from "solid-js";
2
+ export type BalanceSummaryProps = {
3
+ /** The balance at the start of the period. */
4
+ start: number;
5
+ /** Money that came in during the period, as an amount (the sign is ignored). */
6
+ in: number;
7
+ /** Money that went out during the period, as an amount (the sign is ignored). */
8
+ out: number;
9
+ /** ISO 4217 currency code, e.g. `"EUR"`. */
10
+ currency: string;
11
+ /** Explicit locale override; defaults to the inherited render locale. */
12
+ locale?: string;
13
+ /** Fixed fraction digits. Defaults to whole amounts, or cents when whole amounts would not add up. */
14
+ decimals?: number;
15
+ /** Replaces the words "Start", "End", "in" and "out". */
16
+ labels?: {
17
+ start?: string;
18
+ end?: string;
19
+ in?: string;
20
+ out?: string;
21
+ };
22
+ class?: string;
23
+ };
24
+ /**
25
+ * One line from the start of a period to its end: "Start 18,800 € + ↙ 29,260 € − ↗ 29,520 € = End 18,540 €". In and
26
+ * out show their direction with `FlowAmount`; start and end are balances and keep their sign.
27
+ */
28
+ export declare function BalanceSummary(props: BalanceSummaryProps): JSX.Element;
29
+ export default BalanceSummary;
@@ -1,118 +1,20 @@
1
- import type { MapViewport } from "@k2b/stdlib";
2
- import { charts } from "@k2b/stdlib";
3
- import type { JSX } from "solid-js";
4
- import { type BarChartOptions } from "./chart-bar";
5
- import type { ChartCursor } from "./chart-cursor";
6
- import { type ChartDatumRef, type ChartKind, type ChartSelection, type ChartTooltipFormatter } from "./chart-inspection-core";
7
- import { type StateTimelineChartOptions, type StateTimelineDomain } from "./chart-state-timeline";
8
- /**
9
- * Chart — minimal Solid wrapper around `stdlib.charts`.
10
- *
11
- * **Live-update story.** `charts.<kind>(opts)` returns an SVG string;
12
- * Solid's `innerHTML` is reactive, so any time a prop (signal, store
13
- * slice, derived value) changes, the SVG re-renders. No manual
14
- * subscription, no imperative DOM patching. Trade-off: every change
15
- * is a full SVG re-build, not a diff — fine for dashboard cadences
16
- * (poll, websocket, store updates). Don't use this for 60fps streaming.
17
- *
18
- * **Sizing.** The server and browser render the same logical viewBox. CSS
19
- * fits Cartesian plots to the container and preserves text/marker sizes;
20
- * maps fit the whole world and zoom uniformly across the full plot; pies, donuts and gauges retain
21
- * their aspect ratio. No measurement
22
- * or hydration redraw is needed. The caller sizes the wrapper, for example
23
- * `style={{ height: "14rem" }}`. State timelines derive their default height
24
- * from the row count and legend via `stateTimelineHeight()`.
25
- *
26
- * **Why so thin.** The props are a discriminated union over each
27
- * stdlib chart function — `kind: "line"` brings in exactly the params
28
- * `charts.line` expects, `kind: "bar"` brings in `charts.bar`'s, etc.
29
- * Options stay aligned with stdlib without renaming. Every chart provides
30
- * renderer-owned inspection, tooltips and optional selection by default.
31
- * `interactive` adds bounded pan / zoom and reset controls to maps and state timelines.
32
- * If stdlib gains a new option, it's automatically available at every
33
- * callsite.
34
- *
35
- * **Theming.** stdlib charts use `currentColor` for axes / ticks /
36
- * tick labels — set the wrapping element's `color` and everything
37
- * inherits. Series colors come from `--stdlib-chart-c1..c8` CSS
38
- * custom properties; override on the parent for per-chart palettes.
39
- *
40
- * ```tsx
41
- * <Chart kind="line" style={{ height: "12rem" }}
42
- * series={[{ data: points() }]}
43
- * yAxis={{ format: v => `€${v}k` }} />
44
- *
45
- * <Chart kind="donut" style={{ height: "12rem" }} data={slices()} />
46
- *
47
- * <Chart kind="sparkline" style={{ width: "6rem", height: "1.5rem" }} data={trend()} />
48
- *
49
- * <Chart kind="map" style={{ height: "16rem" }} series={locations()} interactive />
50
- * ```
51
- */
52
- /** All chart kinds shipped by `stdlib.charts`. */
53
- export type { ChartKind } from "./chart-inspection-core";
54
- export type ChartLabels = Partial<{
55
- empty: string;
56
- series: string;
57
- interactiveMap: string;
58
- interactiveTimeline: string;
59
- interactiveLine: string;
60
- interactiveChart: string;
61
- zoomIn: string;
62
- zoomOut: string;
63
- resetMap: string;
64
- resetTimeline: string;
65
- }>;
66
- /**
67
- * Per-kind props: `kind` discriminator + the exact options that
68
- * `charts.<kind>` accepts, **minus** `width` / `height` (the wrapper
69
- * owns those — CSS fits a stable coordinate space to the box). Solid's
70
- * component model handles discriminated unions natively, so callsites
71
- * get full type safety.
72
- */
73
- export type ChartProps = {
74
- [K in ChartKind]: {
75
- kind: K;
76
- class?: string;
77
- style?: JSX.CSSProperties | string;
78
- labels?: ChartLabels;
79
- /**
80
- * Navigation for maps and state timelines: pan, zoom and reset controls.
81
- * Arrows pan; Alt+arrows inspect. Every chart shows tooltips and keyboard
82
- * inspection without this prop.
83
- */
84
- interactive?: boolean;
85
- onSelect?: (selection: ChartSelection) => void;
86
- /** Controlled highlight; indices belong to this exact input snapshot. */
87
- selected?: ChartDatumRef | null;
88
- /** Customize the always-on tooltip with a title and labeled text rows. */
89
- tooltip?: ChartTooltipFormatter;
90
- /** Optional shared X cursor for line charts. */
91
- cursor?: ChartCursor;
92
- } & (K extends "map" ? {
93
- /** Target when zooming in from the world view. Defaults to Europe (50, 10). */
94
- zoomFocus?: Pick<MapViewport, "latitude" | "longitude">;
95
- } : {}) & (K extends "line" ? {
96
- /** Largest connected X distance; positive, finite, without area/errorBand fills. */ maxGap?: number;
97
- /** Wrap the legend above the plot inside the caller's total chart height. Requires legend=true. */
98
- legendPlacement?: "top-start";
99
- } : {}) & (K extends "stateTimeline" ? StateTimelineChartOptions : K extends "bar" ? BarChartOptions : Omit<Parameters<(typeof charts)[K]>[0], "width" | "height" | "inspect">);
100
- }[ChartKind];
101
- /** Pure renderer options: component layout, events and inspection are configured elsewhere. */
102
- export type ChartRenderOptions = {
103
- [K in ChartKind]: Omit<Extract<ChartProps, {
104
- kind: K;
105
- }>, "class" | "style" | "labels" | "interactive" | "onSelect" | "selected" | "tooltip" | "cursor" | "legendPlacement">;
106
- }[ChartKind];
107
- /** Keep the fixed 28-unit bar-gauge rows inside the shared SSR/browser coordinate space. */
108
- export declare const chartRenderHeight: (props: ChartRenderOptions) => number;
109
- /**
110
- * Internal — strips wrapper-only keys from props and forwards the
111
- * rest (plus logical size) to `charts[kind]`. The `any` is the
112
- * price for dispatching one function call across 14 different option
113
- * types; an explicit per-kind switch would type it but balloon the
114
- * component for no runtime benefit.
115
- */
116
- export declare const renderChartSvg: (props: ChartProps, width: number, height: number, mapViewport?: MapViewport, timelineViewport?: StateTimelineDomain) => string;
117
- declare const Chart: (props: ChartProps) => JSX.Element;
1
+ import { type JSX } from "solid-js";
2
+ import { chartKinds } from "../charts/core/registry";
3
+ import { type ChartKind, type ChartProps } from "./ChartRoot";
4
+ export { type ChartRenderOptions, chartRenderHeight, renderChartSvg } from "../charts/core/render";
5
+ export type { ChartKind, ChartLabels, ChartProps } from "./ChartRoot";
6
+ declare const ChartRoot: (props: ChartProps) => JSX.Element;
7
+ type KindProps<T> = T extends unknown ? Omit<T, "kind"> : never;
8
+ export type ChartKindProps<K extends ChartKind> = KindProps<Extract<ChartProps, {
9
+ kind: K;
10
+ }>>;
11
+ type ChartComponents = {
12
+ [Name in keyof typeof chartKinds]: (props: ChartKindProps<(typeof chartKinds)[Name]>) => JSX.Element;
13
+ };
14
+ declare const Chart: typeof ChartRoot & ChartComponents & {
15
+ Calendar: (props: Omit<Extract<ChartProps, {
16
+ kind: "heatmap";
17
+ layout: "calendar";
18
+ }>, "kind" | "layout">) => JSX.Element;
19
+ };
118
20
  export default Chart;
@@ -23,14 +23,52 @@ export type ChartLegendEntry = {
23
23
  /** A comparison series, drawn hollow like its marks. */
24
24
  reference?: boolean;
25
25
  };
26
+ /**
27
+ * The latest read of an explorer's rows, kept apart from the rows on screen. Loading and a failure keep shown rows;
28
+ * without rows they take the viewport's place at its height.
29
+ */
30
+ export type ChartFrameRequest = {
31
+ status: "idle" | "loading" | "error";
32
+ /** A host sentence for a failure, such as "The query timed out." */
33
+ reason?: string;
34
+ /** The range being read, such as "Last 90 days"; while it differs from `range` the subtitle names it. */
35
+ requestedRange?: string;
36
+ };
26
37
  export type ChartExplorerProps<T extends ChartExplorerRow> = {
27
38
  cursor?: ChartCursor;
28
39
  title: string;
29
40
  /** Level of the title heading. Defaults to 3; a chart inside a titled group of charts sits one level below it. */
30
41
  headingLevel?: 2 | 3 | 4 | 5 | 6;
31
42
  description?: JSX.Element;
32
- data: ChartExplorerData<T>;
43
+ /** Owner actions in the header before Copy data, such as showing the query behind the chart. */
44
+ actions?: JSX.Element;
45
+ /**
46
+ * Rows and the prepared chart. Without `chart`, `children` draws the chart view, such as a live `<Chart>`; the
47
+ * table and Copy data still come from the typed rows.
48
+ */
49
+ data: ChartExplorerData<T> | {
50
+ rows: readonly T[];
51
+ };
52
+ /** The chart view when `data` has no prepared chart. */
53
+ children?: JSX.Element;
33
54
  columns: readonly ChartExplorerColumn<T>[];
55
+ /**
56
+ * The read in flight or the last one that failed. With it the explorer shows loading, empty, failure and stale
57
+ * data in place: the title and subtitle stay, the viewport keeps its height, and nothing moves between states.
58
+ */
59
+ request?: ChartFrameRequest;
60
+ /** When the shown rows were read, formatted by the host ("09:12"); named only when a newer read failed. */
61
+ asOf?: string;
62
+ /** The range the shown rows cover, such as "Last 30 days". */
63
+ range?: string;
64
+ /** Try again after a failure. Without it a failure has no button. */
65
+ onRetry?: () => void;
66
+ /**
67
+ * The padding of the frame around the explorer, one value or block and inline like CSS `padding` ("14px 16px").
68
+ * The table view then reaches the frame's left, right and bottom edges without a border of its own, and the frame
69
+ * keeps its height.
70
+ */
71
+ inset?: string;
34
72
  view?: "chart" | "table";
35
73
  defaultView?: "chart" | "table";
36
74
  onViewChange?: (view: "chart" | "table") => void;
@@ -61,7 +99,10 @@ export type ChartExplorerProps<T extends ChartExplorerRow> = {
61
99
  * which draws in one row and runs out of narrow columns.
62
100
  */
63
101
  legend?: readonly ChartLegendEntry[];
64
- /** What the viewport shows without rows, for example while they load; defaults to "No data". */
102
+ /**
103
+ * What the viewport shows without rows; defaults to "No data". With `request`, write one sentence that says why,
104
+ * such as "No newsletter was sent in this period."
105
+ */
65
106
  empty?: JSX.Element;
66
107
  class?: string;
67
108
  };