@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
@@ -1,620 +1,25 @@
1
- import { template as _$template } from "solid-js/web";
2
- import { delegateEvents as _$delegateEvents } from "solid-js/web";
3
- import { memo as _$memo } from "solid-js/web";
4
- import { setProperty as _$setProperty } from "solid-js/web";
5
- import { setStyleProperty as _$setStyleProperty } from "solid-js/web";
6
- import { style as _$style } from "solid-js/web";
7
- import { runHydrationEvents as _$runHydrationEvents } from "solid-js/web";
8
- import { getNextMarker as _$getNextMarker } from "solid-js/web";
9
- import { setAttribute as _$setAttribute } from "solid-js/web";
10
- import { effect as _$effect } from "solid-js/web";
11
- import { insert as _$insert } from "solid-js/web";
12
- import { addEventListener as _$addEventListener } from "solid-js/web";
13
- import { use as _$use } from "solid-js/web";
14
- import { createComponent as _$createComponent } from "solid-js/web";
15
- import { getNextElement as _$getNextElement } from "solid-js/web";
16
- import { className as _$className } from "solid-js/web";
17
- var _tmpl$ = /*#__PURE__*/_$template(`<i aria-hidden=true>`),
18
- _tmpl$2 = /*#__PURE__*/_$template(`<div class=k2b-chart__legend role=group tabindex=0>`),
19
- _tmpl$3 = /*#__PURE__*/_$template(`<div class=k2b-chart__controls><!$><!/><!$><!/><!$><!/>`),
20
- _tmpl$4 = /*#__PURE__*/_$template(`<div data-interactive=true role=group tabindex=0><!$><!/><div class=k2b-chart__svg></div><span class=k2b-chart__anchor aria-hidden=true></span><span role=tooltip popover=manual data-instant=true class="k2b-tooltip k2b-chart__tooltip"></span><!$><!/>`),
21
- _tmpl$5 = /*#__PURE__*/_$template(`<div>`),
22
- _tmpl$6 = /*#__PURE__*/_$template(`<span class=k2b-chart__legend-item><svg viewBox="0 0 10 10"width=10 height=10 aria-hidden=true><rect x=1 y=1 width=8 height=8 rx=2></rect></svg><span>`);
23
- import { charts } from "@k2b/stdlib";
24
- import { createEffect, createMemo, createSignal, createUniqueId, For, onCleanup, onMount, Show, splitProps, untrack } from "solid-js";
25
- import { isServer } from "solid-js/web";
26
- import { IconButton } from "../actions/Button";
27
- import { suppressTextSelection } from "../internal/text-selection";
28
- import { useLocale } from "../intl/locale";
29
- import { useUiMessages } from "../intl/messages";
30
- import { barChartLayout, renderBarChartSvg } from "./chart-bar";
31
- import { createChartInspection } from "./chart-inspection";
32
- import { closeChartInspectionOnOutside } from "./chart-inspection-core";
33
- import { lineGapsSvg } from "./chart-line-gaps";
34
- import { DEFAULT_MAP_VIEWPORT, normalizeMapViewport, panMapViewport, zoomMapViewport } from "./chart-map-viewport";
35
- import { useChartMessages } from "./chart-messages";
36
- import { panStateTimelineViewport, renderStateTimelineSvg, stateTimelineDomain, stateTimelineHeight, zoomStateTimelineViewport } from "./chart-state-timeline";
37
- import { responsiveChartSvg, responsiveMapSvg, selectedChartSvg } from "./chart-svg";
38
- import { useViewportMessages } from "./viewport-messages";
39
-
40
- /**
41
- * Chart — minimal Solid wrapper around `stdlib.charts`.
42
- *
43
- * **Live-update story.** `charts.<kind>(opts)` returns an SVG string;
44
- * Solid's `innerHTML` is reactive, so any time a prop (signal, store
45
- * slice, derived value) changes, the SVG re-renders. No manual
46
- * subscription, no imperative DOM patching. Trade-off: every change
47
- * is a full SVG re-build, not a diff — fine for dashboard cadences
48
- * (poll, websocket, store updates). Don't use this for 60fps streaming.
49
- *
50
- * **Sizing.** The server and browser render the same logical viewBox. CSS
51
- * fits Cartesian plots to the container and preserves text/marker sizes;
52
- * maps fit the whole world and zoom uniformly across the full plot; pies, donuts and gauges retain
53
- * their aspect ratio. No measurement
54
- * or hydration redraw is needed. The caller sizes the wrapper, for example
55
- * `style={{ height: "14rem" }}`. State timelines derive their default height
56
- * from the row count and legend via `stateTimelineHeight()`.
57
- *
58
- * **Why so thin.** The props are a discriminated union over each
59
- * stdlib chart function — `kind: "line"` brings in exactly the params
60
- * `charts.line` expects, `kind: "bar"` brings in `charts.bar`'s, etc.
61
- * Options stay aligned with stdlib without renaming. Every chart provides
62
- * renderer-owned inspection, tooltips and optional selection by default.
63
- * `interactive` adds bounded pan / zoom and reset controls to maps and state timelines.
64
- * If stdlib gains a new option, it's automatically available at every
65
- * callsite.
66
- *
67
- * **Theming.** stdlib charts use `currentColor` for axes / ticks /
68
- * tick labels — set the wrapping element's `color` and everything
69
- * inherits. Series colors come from `--stdlib-chart-c1..c8` CSS
70
- * custom properties; override on the parent for per-chart palettes.
71
- *
72
- * ```tsx
73
- * <Chart kind="line" style={{ height: "12rem" }}
74
- * series={[{ data: points() }]}
75
- * yAxis={{ format: v => `€${v}k` }} />
76
- *
77
- * <Chart kind="donut" style={{ height: "12rem" }} data={slices()} />
78
- *
79
- * <Chart kind="sparkline" style={{ width: "6rem", height: "1.5rem" }} data={trend()} />
80
- *
81
- * <Chart kind="map" style={{ height: "16rem" }} series={locations()} interactive />
82
- * ```
83
- */
84
-
85
- /** All chart kinds shipped by `stdlib.charts`. */
86
-
87
- /**
88
- * Per-kind props: `kind` discriminator + the exact options that
89
- * `charts.<kind>` accepts, **minus** `width` / `height` (the wrapper
90
- * owns those — CSS fits a stable coordinate space to the box). Solid's
91
- * component model handles discriminated unions natively, so callsites
92
- * get full type safety.
93
- */
94
-
95
- /** Pure renderer options: component layout, events and inspection are configured elsewhere. */
96
-
97
- /** Keep the fixed 28-unit bar-gauge rows inside the shared SSR/browser coordinate space. */
98
- export const chartRenderHeight = props => {
99
- if (props.kind === "stateTimeline") return stateTimelineHeight(props.rows.length, props.legend !== false);
100
- if (props.kind === "bar") return barChartLayout(props).height;
101
- if (props.kind === "barGauge") return Math.max(280, (props.title || props.subtitle ? 42 : 16) + props.data.length * 28 + 14);
102
- return 280;
103
- };
104
-
105
- /**
106
- * Internal — strips wrapper-only keys from props and forwards the
107
- * rest (plus logical size) to `charts[kind]`. The `any` is the
108
- * price for dispatching one function call across 14 different option
109
- * types; an explicit per-kind switch would type it but balloon the
110
- * component for no runtime benefit.
111
- */
112
- export const renderChartSvg = (props, width, height, mapViewport, timelineViewport) => {
113
- const {
114
- kind,
115
- class: _class,
116
- style: _style,
117
- labels: _labels,
118
- interactive: _interactive,
119
- onSelect: _onSelect,
120
- selected: _selected,
121
- tooltip: _tooltip,
122
- cursor: _cursor,
123
- zoomFocus: _zoomFocus,
124
- legendPlacement: _legendPlacement,
125
- ...opts
126
- } = props;
127
- if (kind === "stateTimeline") {
128
- return responsiveChartSvg(renderStateTimelineSvg({
129
- ...opts,
130
- width,
131
- height,
132
- viewport: timelineViewport,
133
- interactive: true
134
- }));
135
- }
136
- if (kind === "bar") return responsiveChartSvg(renderBarChartSvg({
137
- ...opts,
138
- width,
139
- height,
140
- inspect: true
141
- }));
142
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
143
- let svg = charts[kind]({
144
- ...opts,
145
- ...(props.kind === "line" && props.legend && props.legendPlacement === "top-start" ? {
146
- legend: false
147
- } : {}),
148
- ...(kind === "map" ? {
149
- viewport: DEFAULT_MAP_VIEWPORT
150
- } : {}),
151
- width,
152
- height,
153
- inspect: true
154
- });
155
- if (props.kind === "line" && props.maxGap !== undefined) {
156
- if (props.area || props.errorBand) throw new Error("Chart maxGap does not support area or errorBand fills");
157
- svg = lineGapsSvg(svg, props.maxGap, props);
158
- }
159
- if (props.kind === "map") return responsiveMapSvg(svg, width, height, normalizeMapViewport(mapViewport ?? props.viewport));
160
- return preservesAspectRatio(kind) ? svg : responsiveChartSvg(svg);
161
- };
162
- const preservesAspectRatio = kind => kind === "map" || kind === "pie" || kind === "donut" || kind === "gauge";
163
-
164
- /** Empty-data short-circuit. Kept per-kind because stdlib's payload
165
- * key differs (series vs data vs groups). We're conservative: only
166
- * block on truly empty inputs; partially-filled series get rendered
167
- * as-is and stdlib handles the gaps. */
168
- const isEmpty = props => {
169
- if (props.kind === "line" || props.kind === "scatter") {
170
- return !props.series?.length || props.series.every(s => !s.data.length);
171
- }
172
- if (props.kind === "bar" || props.kind === "donut" || props.kind === "pie") {
173
- return !props.data?.length;
174
- }
175
- if (props.kind === "histogram" || props.kind === "sparkline") {
176
- return !props.data?.length;
177
- }
178
- if (props.kind === "boxplot") {
179
- return !props.groups?.length;
180
- }
181
- if (props.kind === "stateTimeline") {
182
- return !props.rows?.length || props.rows.every(row => !row.intervals.length);
183
- }
184
- return false;
185
- };
186
- const Chart = props => {
187
- const [, drawingProps] = splitProps(props, ["selected", "onSelect", "tooltip", "cursor"]);
188
- const messages = useUiMessages();
189
- const chartMessages = useChartMessages();
190
- const viewportMessages = useViewportMessages();
191
- const locale = useLocale();
192
- let containerRef;
193
- let chartTooltipRef;
194
- let lineAnchorRef;
195
- // One deterministic coordinate space on the server and client. CSS fits the
196
- // SVG to its box; hydration must never replace it with measured geometry.
197
- const size = () => ({
198
- width: 480,
199
- height: chartRenderHeight(props)
200
- });
201
- const topLegend = () => props.kind === "line" && props.legend === true && props.legendPlacement === "top-start";
202
- const legendSeries = () => props.kind === "line" ? props.series : [];
203
- const dimensions = () => containerRef?.getBoundingClientRect() ?? size();
204
- const initialMapViewport = props.kind === "map" ? normalizeMapViewport(props.viewport) : DEFAULT_MAP_VIEWPORT;
205
- const [mapViewport, setMapViewport] = createSignal(initialMapViewport);
206
- const initialTimelineViewport = props.kind === "stateTimeline" ? stateTimelineDomain(props.rows, props.domain) : [0, 1];
207
- const [timelineViewport, setTimelineViewport] = createSignal(initialTimelineViewport);
208
- const [dragging, setDragging] = createSignal(false);
209
- const chartTooltipId = `k2b-chart-tooltip-${createUniqueId()}`;
210
- let timelineViewportLocallyChanged = false;
211
- let drag;
212
- let timelineDrag;
213
- let pointerFrame;
214
- let pendingPointer;
215
- const interactiveMap = () => props.kind === "map" && props.interactive === true;
216
- const interactiveTimeline = () => props.kind === "stateTimeline" && props.interactive === true;
217
- const draggable = () => interactiveMap() || interactiveTimeline();
218
- const labels = () => props.labels ?? {};
219
- const accessibleName = () => {
220
- const override = props.kind === "map" ? labels().interactiveMap : props.kind === "stateTimeline" ? labels().interactiveTimeline : props.kind === "line" ? labels().interactiveLine : labels().interactiveChart;
221
- const title = "title" in props && typeof props.title === "string" && props.title.trim() ? props.title : undefined;
222
- const valueLabel = (props.kind === "stat" || props.kind === "gauge") && props.label?.trim() ? props.label : undefined;
223
- const fallback = props.kind === "map" ? chartMessages().interactiveMap : props.kind === "stateTimeline" ? chartMessages().interactiveTimeline : props.kind === "line" ? chartMessages().interactiveLineChart : chartMessages().interactiveChart;
224
- return override ?? title ?? valueLabel ?? fallback;
225
- };
226
- const timelineFullDomain = () => props.kind === "stateTimeline" ? stateTimelineDomain(props.rows, props.domain) : [0, 1];
227
- createEffect(() => {
228
- if (props.kind === "map") {
229
- setMapViewport(normalizeMapViewport(props.viewport));
230
- }
231
- });
232
- createEffect(() => {
233
- if (props.kind === "stateTimeline" && !timelineViewportLocallyChanged) {
234
- setTimelineViewport(timelineFullDomain());
235
- }
236
- });
237
- const updateTimelineViewport = update => {
238
- timelineViewportLocallyChanged = true;
239
- setTimelineViewport(update);
240
- };
241
- const mapDimensions = () => {
242
- const viewportElement = containerRef?.querySelector(".stdlib-chart-map-viewport");
243
- const matrix = viewportElement?.getScreenCTM?.();
244
- const box = viewportElement?.viewBox?.baseVal;
245
- if (matrix && box?.width && box.height) {
246
- return {
247
- width: box.width * Math.hypot(matrix.a, matrix.b),
248
- height: box.height * Math.hypot(matrix.c, matrix.d)
249
- };
250
- }
251
- const rect = viewportElement?.getBoundingClientRect();
252
- if (rect && rect.width > 0 && rect.height > 0) {
253
- return {
254
- width: rect.width,
255
- height: rect.height
256
- };
257
- }
258
- return dimensions();
259
- };
260
- const zoom = delta => {
261
- closeChartTooltip();
262
- if (interactiveMap()) {
263
- setMapViewport(current => zoomMapViewport(current, delta, props.kind === "map" ? props.zoomFocus : undefined));
264
- } else if (interactiveTimeline()) {
265
- updateTimelineViewport(current => zoomStateTimelineViewport(current, timelineFullDomain(), delta));
266
- }
267
- };
268
- const reset = () => {
269
- closeChartTooltip();
270
- if (interactiveMap() && props.kind === "map") {
271
- setMapViewport(normalizeMapViewport(props.viewport));
272
- }
273
- if (interactiveTimeline()) {
274
- timelineViewportLocallyChanged = false;
275
- setTimelineViewport(timelineFullDomain());
276
- }
277
- };
278
- const handlePointerDown = event => {
279
- inspection.down(event);
280
- if (!draggable() || event.button !== 0 || event.target.closest("button, a")) {
281
- return;
282
- }
283
- closeChartTooltip();
284
- // The pointer's own pointerup or pointercancel ends the hold.
285
- suppressTextSelection(event.pointerId);
286
- if (interactiveTimeline()) {
287
- timelineDrag = {
288
- pointerId: event.pointerId,
289
- x: event.clientX,
290
- width: Math.max(1, event.currentTarget.getBoundingClientRect().width),
291
- viewport: timelineViewport()
292
- };
293
- event.currentTarget.setPointerCapture(event.pointerId);
294
- setDragging(true);
295
- return;
296
- }
297
- const dimensions = mapDimensions();
298
- drag = {
299
- pointerId: event.pointerId,
300
- x: event.clientX,
301
- y: event.clientY,
302
- width: dimensions.width,
303
- height: dimensions.height,
304
- viewport: mapViewport()
305
- };
306
- event.currentTarget.setPointerCapture(event.pointerId);
307
- setDragging(true);
308
- };
309
- const flushPointerMove = () => {
310
- if (pointerFrame !== undefined) {
311
- cancelAnimationFrame(pointerFrame);
312
- pointerFrame = undefined;
313
- }
314
- const sample = pendingPointer;
315
- pendingPointer = undefined;
316
- if (!sample) return;
317
- const start = timelineDrag ?? drag;
318
- if (start && Math.hypot(sample.clientX - start.x, sample.clientY - ("y" in start ? start.y : sample.clientY)) <= 6) return;
319
- const activeTimelineDrag = timelineDrag;
320
- if (activeTimelineDrag?.pointerId === sample.pointerId) {
321
- updateTimelineViewport(() => panStateTimelineViewport(activeTimelineDrag.viewport, timelineFullDomain(), sample.clientX - activeTimelineDrag.x, activeTimelineDrag.width));
322
- return;
323
- }
324
- if (!drag || drag.pointerId !== sample.pointerId) return;
325
- setMapViewport(panMapViewport(drag.viewport, sample.clientX - drag.x, sample.clientY - drag.y, drag.width, drag.height));
326
- };
327
- const handlePointerMove = event => {
328
- inspection.move(event);
329
- if (timelineDrag?.pointerId !== event.pointerId && drag?.pointerId !== event.pointerId) return;
330
- pendingPointer = {
331
- pointerId: event.pointerId,
332
- clientX: event.clientX,
333
- clientY: event.clientY
334
- };
335
- if (pointerFrame !== undefined) return;
336
- pointerFrame = requestAnimationFrame(flushPointerMove);
337
- };
338
- const stopDragging = event => {
339
- if (pendingPointer?.pointerId === event.pointerId) flushPointerMove();
340
- if (timelineDrag?.pointerId === event.pointerId) {
341
- if (event.currentTarget.hasPointerCapture(event.pointerId)) {
342
- event.currentTarget.releasePointerCapture(event.pointerId);
343
- }
344
- timelineDrag = undefined;
345
- setDragging(false);
346
- return;
347
- }
348
- if (!drag || drag.pointerId !== event.pointerId) return;
349
- if (event.currentTarget.hasPointerCapture(event.pointerId)) {
350
- event.currentTarget.releasePointerCapture(event.pointerId);
351
- }
352
- drag = undefined;
353
- setDragging(false);
354
- };
355
- const handleWheel = event => {
356
- if (interactiveMap() && (event.ctrlKey || event.metaKey)) {
357
- event.preventDefault();
358
- zoom(event.deltaY < 0 ? 1 : -1);
359
- return;
360
- }
361
- if (!interactiveTimeline()) return;
362
- if (event.ctrlKey || event.metaKey) {
363
- event.preventDefault();
364
- const rect = event.currentTarget.getBoundingClientRect();
365
- const anchor = rect.width > 0 ? (event.clientX - rect.left) / rect.width : 0.5;
366
- updateTimelineViewport(current => zoomStateTimelineViewport(current, timelineFullDomain(), event.deltaY < 0 ? 1 : -1, anchor));
367
- } else if (event.shiftKey) {
368
- event.preventDefault();
369
- updateTimelineViewport(current => panStateTimelineViewport(current, timelineFullDomain(), -event.deltaY, event.currentTarget.getBoundingClientRect().width));
370
- }
371
- };
372
- const handleKeyDown = event => {
373
- if (inspection.key(event)) return;
374
- if (!draggable() || event.target !== containerRef) return;
375
- if (event.key === "+" || event.key === "=") {
376
- event.preventDefault();
377
- zoom(1);
378
- return;
379
- }
380
- if (event.key === "-" || event.key === "_") {
381
- event.preventDefault();
382
- zoom(-1);
383
- return;
384
- }
385
- if (event.key === "0" || event.key === "Home") {
386
- event.preventDefault();
387
- reset();
388
- return;
389
- }
390
- if (interactiveTimeline() && (event.key === "ArrowLeft" || event.key === "ArrowRight")) {
391
- event.preventDefault();
392
- updateTimelineViewport(current => panStateTimelineViewport(current, timelineFullDomain(), event.key === "ArrowLeft" ? 80 : -80, event.currentTarget.getBoundingClientRect().width));
393
- return;
394
- }
395
- const delta = {
396
- ArrowLeft: [40, 0],
397
- ArrowRight: [-40, 0],
398
- ArrowUp: [0, 40],
399
- ArrowDown: [0, -40]
400
- }[event.key];
401
- if (!delta) return;
402
- event.preventDefault();
403
- const dimensions = mapDimensions();
404
- setMapViewport(current => panMapViewport(current, delta[0], delta[1], dimensions.width, dimensions.height));
405
- };
406
- const inspection = createChartInspection({
407
- container: () => containerRef,
408
- cursor: () => props.cursor,
409
- tooltip: () => chartTooltipRef,
410
- anchor: () => lineAnchorRef,
411
- kind: () => props.kind,
412
- enabled: () => !isEmpty(props),
413
- select: selection => props.onSelect?.(selection),
414
- format: selection => {
415
- if (props.tooltip) return props.tooltip(selection);
416
- const fields = chartMessages().chartFields;
417
- const format = new Intl.NumberFormat(locale(), {
418
- maximumFractionDigits: 6
419
- });
420
- return {
421
- title: selection.datum.label ?? (selection.datum.seriesIndex !== undefined ? `${labels().series ?? chartMessages().series} ${selection.datum.seriesIndex + 1}` : undefined),
422
- rows: selection.datum.values.map(field => ({
423
- label: selection.kind === "line" && field.key === "y" ? selection.datum.label ?? labels().series ?? chartMessages().series : fields({
424
- key: field.key
425
- }),
426
- value: field.formatted ?? (field.key === "upperInclusive" ? field.value === "true" ? messages().yes : messages().no : typeof field.value === "number" ? `${format.format(field.value)}${field.key === "percent" ? "%" : ""}` : field.value)
427
- }))
428
- };
429
- }
430
- });
431
- const closeChartTooltip = () => inspection.close();
432
- const svgMarkup = createMemo(() => renderChartSvg(drawingProps, size().width, size().height, interactiveMap() ? mapViewport() : undefined, interactiveTimeline() ? timelineViewport() : undefined));
433
- createEffect(() => {
434
- svgMarkup();
435
- inspection.invalidate();
436
- untrack(() => inspection.selectDatum(props.selected));
437
- });
438
- createEffect(() => inspection.selectDatum(props.selected));
439
- onCleanup(() => {
440
- inspection.close();
441
- if (pointerFrame !== undefined) cancelAnimationFrame(pointerFrame);
442
- pointerFrame = undefined;
443
- pendingPointer = undefined;
444
- });
445
- onMount(() => {
446
- if (!containerRef) return;
447
- onCleanup(closeChartInspectionOnOutside({
448
- container: () => containerRef,
449
- tooltip: () => chartTooltipRef,
450
- close: closeChartTooltip
451
- }));
452
- });
453
- const chartStyle = () => props.style ?? (props.kind === "stateTimeline" ? {
454
- height: `${stateTimelineHeight(props.rows.length, props.legend !== false)}px`
455
- } : undefined);
456
- const control = (label, shortcut, icon, action) => _$createComponent(IconButton, {
457
- variant: "secondary",
458
- label: label,
459
- tooltip: `${label} (${shortcut})`,
460
- onClick: action,
461
- get children() {
462
- var _el$ = _$getNextElement(_tmpl$);
463
- _$className(_el$, `ti ${icon}`);
464
- return _el$;
465
- }
466
- });
467
- return _$createComponent(Show, {
468
- get when() {
469
- return !isEmpty(props);
470
- },
471
- get fallback() {
472
- return (() => {
473
- var _el$16 = _$getNextElement(_tmpl$5);
474
- var _ref$4 = containerRef;
475
- typeof _ref$4 === "function" ? _$use(_ref$4, _el$16) : containerRef = _el$16;
476
- _$insert(_el$16, () => labels().empty ?? messages().noData);
477
- _$effect(_p$ => {
478
- var _v$12 = `k2b-chart k2b-chart__empty ${props.class ?? ""}`,
479
- _v$13 = chartStyle();
480
- _v$12 !== _p$.e && _$className(_el$16, _p$.e = _v$12);
481
- _p$.t = _$style(_el$16, _v$13, _p$.t);
482
- return _p$;
483
- }, {
484
- e: undefined,
485
- t: undefined
486
- });
487
- return _el$16;
488
- })();
489
- },
490
- get children() {
491
- var _el$2 = _$getNextElement(_tmpl$4),
492
- _el$12 = _el$2.firstChild,
493
- [_el$13, _co$4] = _$getNextMarker(_el$12.nextSibling),
494
- _el$4 = _el$13.nextSibling,
495
- _el$5 = _el$4.nextSibling,
496
- _el$6 = _el$5.nextSibling,
497
- _el$14 = _el$6.nextSibling,
498
- [_el$15, _co$5] = _$getNextMarker(_el$14.nextSibling);
499
- _el$2.$$keydown = handleKeyDown;
500
- _el$2.addEventListener("wheel", handleWheel);
501
- _el$2.$$focusout = closeChartTooltip;
502
- _$addEventListener(_el$2, "focusin", inspection.focus, true);
503
- _$addEventListener(_el$2, "pointerleave", inspection.leave);
504
- _$addEventListener(_el$2, "click", inspection.click, true);
505
- _el$2.addEventListener("pointercancel", stopDragging);
506
- _el$2.$$pointerup = stopDragging;
507
- _el$2.$$pointermove = handlePointerMove;
508
- _el$2.$$pointerdown = handlePointerDown;
509
- var _ref$ = containerRef;
510
- typeof _ref$ === "function" ? _$use(_ref$, _el$2) : containerRef = _el$2;
511
- _$insert(_el$2, _$createComponent(Show, {
512
- get when() {
513
- return topLegend();
514
- },
515
- get children() {
516
- var _el$3 = _$getNextElement(_tmpl$2);
517
- _$insert(_el$3, _$createComponent(For, {
518
- get each() {
519
- return legendSeries();
520
- },
521
- children: (series, index) => (() => {
522
- var _el$17 = _$getNextElement(_tmpl$6),
523
- _el$18 = _el$17.firstChild,
524
- _el$19 = _el$18.firstChild,
525
- _el$20 = _el$18.nextSibling;
526
- _$insert(_el$20, (() => {
527
- var _c$ = _$memo(() => !!(series.label && series.label.length > 0));
528
- return () => _c$() ? series.label : `Series ${index() + 1}`;
529
- })());
530
- _$effect(_p$ => {
531
- var _v$14 = `stdlib-chart k2b-chart__legend-swatch ${props.kind === "line" ? props.className ?? "" : ""}`,
532
- _v$15 = `stdlib-chart-series-${index() % 8}`;
533
- _v$14 !== _p$.e && _$setAttribute(_el$18, "class", _p$.e = _v$14);
534
- _v$15 !== _p$.t && _$setAttribute(_el$19, "class", _p$.t = _v$15);
535
- return _p$;
536
- }, {
537
- e: undefined,
538
- t: undefined
539
- });
540
- return _el$17;
541
- })()
542
- }));
543
- _$effect(() => _$setAttribute(_el$3, "aria-label", chartMessages().chartLegend));
544
- return _el$3;
545
- }
546
- }), _el$13, _co$4);
547
- var _ref$2 = lineAnchorRef;
548
- typeof _ref$2 === "function" ? _$use(_ref$2, _el$5) : lineAnchorRef = _el$5;
549
- var _ref$3 = chartTooltipRef;
550
- typeof _ref$3 === "function" ? _$use(_ref$3, _el$6) : chartTooltipRef = _el$6;
551
- _$setAttribute(_el$6, "id", chartTooltipId);
552
- _$insert(_el$2, _$createComponent(Show, {
553
- get when() {
554
- return draggable();
555
- },
556
- get children() {
557
- var _el$7 = _$getNextElement(_tmpl$3),
558
- _el$8 = _el$7.firstChild,
559
- [_el$9, _co$] = _$getNextMarker(_el$8.nextSibling),
560
- _el$0 = _el$9.nextSibling,
561
- [_el$1, _co$2] = _$getNextMarker(_el$0.nextSibling),
562
- _el$10 = _el$1.nextSibling,
563
- [_el$11, _co$3] = _$getNextMarker(_el$10.nextSibling);
564
- _$insert(_el$7, () => control(labels().zoomIn ?? viewportMessages().zoomIn, "+", "ti-plus", () => zoom(1)), _el$9, _co$);
565
- _$insert(_el$7, () => control(labels().zoomOut ?? viewportMessages().zoomOut, "-", "ti-minus", () => zoom(-1)), _el$1, _co$2);
566
- _$insert(_el$7, () => control(interactiveMap() ? labels().resetMap ?? chartMessages().resetMapView : labels().resetTimeline ?? chartMessages().resetTimelineView, "0", "ti-focus-centered", reset), _el$11, _co$3);
567
- return _el$7;
568
- }
569
- }), _el$15, _co$5);
570
- _$effect(_p$ => {
571
- var _v$ = `k2b-chart ${props.class ?? ""}`,
572
- _v$2 = props.kind,
573
- _v$3 = topLegend() ? "top-start" : undefined,
574
- _v$4 = draggable() ? dragging() ? "active" : "idle" : undefined,
575
- _v$5 = !draggable() && props.kind === "line" ? "true" : undefined,
576
- _v$6 = chartStyle(),
577
- _v$7 = accessibleName(),
578
- _v$8 = accessibleName() !== chartMessages().interactiveChart ? chartMessages().interactiveChart : undefined,
579
- _v$9 = !preservesAspectRatio(props.kind) ? "true" : undefined,
580
- _v$0 = `${size().width}px`,
581
- _v$1 = `${size().height}px`,
582
- _v$10 = `${size().width} / ${size().height}`,
583
- _v$11 = isServer ? selectedChartSvg(svgMarkup(), props.selected) : svgMarkup();
584
- _v$ !== _p$.e && _$className(_el$2, _p$.e = _v$);
585
- _v$2 !== _p$.t && _$setAttribute(_el$2, "data-chart-kind", _p$.t = _v$2);
586
- _v$3 !== _p$.a && _$setAttribute(_el$2, "data-legend-placement", _p$.a = _v$3);
587
- _v$4 !== _p$.o && _$setAttribute(_el$2, "data-drag", _p$.o = _v$4);
588
- _v$5 !== _p$.i && _$setAttribute(_el$2, "data-crosshair", _p$.i = _v$5);
589
- _p$.n = _$style(_el$2, _v$6, _p$.n);
590
- _v$7 !== _p$.s && _$setAttribute(_el$2, "aria-label", _p$.s = _v$7);
591
- _v$8 !== _p$.h && _$setAttribute(_el$2, "aria-description", _p$.h = _v$8);
592
- _v$9 !== _p$.r && _$setAttribute(_el$4, "data-stretch", _p$.r = _v$9);
593
- _v$0 !== _p$.d && _$setStyleProperty(_el$4, "--k2b-chart-width", _p$.d = _v$0);
594
- _v$1 !== _p$.l && _$setStyleProperty(_el$4, "--k2b-chart-height", _p$.l = _v$1);
595
- _v$10 !== _p$.u && _$setStyleProperty(_el$4, "aspect-ratio", _p$.u = _v$10);
596
- _v$11 !== _p$.c && _$setProperty(_el$4, "innerHTML", _p$.c = _v$11);
597
- return _p$;
598
- }, {
599
- e: undefined,
600
- t: undefined,
601
- a: undefined,
602
- o: undefined,
603
- i: undefined,
604
- n: undefined,
605
- s: undefined,
606
- h: undefined,
607
- r: undefined,
608
- d: undefined,
609
- l: undefined,
610
- u: undefined,
611
- c: undefined
612
- });
613
- _$runHydrationEvents();
614
- return _el$2;
615
- }
1
+ import { mergeProps } from "solid-js";
2
+ import { chartKinds } from "../charts/core/registry";
3
+ import { renderChartSvg } from "../charts/core/render";
4
+ import { renderChartRoot } from "./ChartRoot";
5
+ export { chartRenderHeight, renderChartSvg } from "../charts/core/render";
6
+ const ChartRoot = props => renderChartRoot(props, renderChartSvg);
7
+ // Add a renderer to charts/core/registry.ts; its key defines the namespace member and discriminator.
8
+ // Both entry styles share ChartRoot, preserving the same owner, markup and reactive props.
9
+ const chartComponent = kind => props =>
10
+ // Public namespace types correlate each discriminator with its options.
11
+ ChartRoot(mergeProps(props, {
12
+ kind
13
+ }));
14
+ const createChart = () => {
15
+ const components = Object.fromEntries(Object.entries(chartKinds).map(([name, kind]) => [name, chartComponent(kind)]));
16
+ return Object.assign(ChartRoot, components, {
17
+ Calendar: props => ChartRoot(mergeProps(props, {
18
+ kind: "heatmap",
19
+ layout: "calendar"
20
+ }))
616
21
  });
617
22
  };
23
+ const Chart = /* @__PURE__ */createChart();
618
24
  export default Chart;
619
- _$delegateEvents(["pointerdown", "pointermove", "pointerup", "click", "focusin", "focusout", "keydown"]);
620
25
  //# sourceMappingURL=Chart.js.map