@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,26 @@
1
+ /**
2
+ * A line chart whose X values are instants (Unix milliseconds). Its axis ticks land on round times in `timeZone`:
3
+ * minutes, hours, days, weeks, months, or years, whichever step keeps the requested number of ticks.
4
+ */
5
+ export type ChartTimeAxis = {
6
+ /** IANA zone whose wall clock the ticks follow, such as the zone the data's buckets use. */
7
+ timeZone: string;
8
+ /** Locale of the default tick labels; `xAxis.format` replaces them. Defaults to `en`. */
9
+ locale?: string;
10
+ };
11
+ export type ChartTimeUnit = "minute" | "hour" | "day" | "week" | "month" | "year";
12
+ export type ChartTimeStep = {
13
+ unit: ChartTimeUnit;
14
+ size: number;
15
+ };
16
+ /** The round step for a time span: the finest one that keeps at most `maxTicks` ticks. */
17
+ export declare const chartTimeStep: (span: number, maxTicks: number) => ChartTimeStep;
18
+ /** Tick instants inside `domain` that fall on round wall times of `step` in `timeZone`. */
19
+ export declare const chartTimeTicks: (domain: readonly [number, number], timeZone: string, step: ChartTimeStep) => number[];
20
+ /** Default label of a tick: the clock time, the day at local midnight, the month or the year. */
21
+ export declare const chartTimeLabel: (tick: number, step: ChartTimeStep, axis: ChartTimeAxis) => string;
22
+ /**
23
+ * Replaces the renderer's X tick labels, which sit on decimal millisecond steps, with labels on round times. The
24
+ * renderer drew the X axis over the explicit `domain`, so its horizontal axis line gives the pixel scale.
25
+ */
26
+ export declare function timeAxisSvg(svg: string, domain: readonly [number, number], axis: ChartTimeAxis, maxTicks: number, format?: (value: number) => string): string;
@@ -0,0 +1,72 @@
1
+ import type { StatusTone } from "../surfaces/StatusBadge";
2
+ /**
3
+ * What a column holds. It decides alignment, wrapping, the shown text, search and sort:
4
+ * text wraps; number, amount, bar, flow and delta read right-aligned with equal-width digits; date reads in the
5
+ * reader's language; status shows a badge from `states`.
6
+ */
7
+ export type DataTableColumnType = "text" | "number" | "date" | "status" | "bar" | "amount" | "flow" | "delta";
8
+ /** A number format by name, as a portable description stores it. `decimals` fixes the fraction digits. */
9
+ export type DataTableNumberFormat = {
10
+ style?: "number" | "percent" | "currency";
11
+ /** ISO 4217 code; required for `style: "currency"`, `amount` and `flow`. */
12
+ currency?: string;
13
+ decimals?: number;
14
+ compact?: boolean;
15
+ };
16
+ /** The label and tone of one stored status value. */
17
+ export type DataTableStatusState = {
18
+ label: string;
19
+ tone: StatusTone;
20
+ };
21
+ /** The typed part of a column, independent of how the row stores its values. */
22
+ export type DataTableTypedColumn = {
23
+ type?: DataTableColumnType;
24
+ format?: DataTableNumberFormat;
25
+ /** Labels and tones of a status column, by stored value. */
26
+ states?: Readonly<Record<string, DataTableStatusState>>;
27
+ /** The value a bar column fills its track at; defaults to the largest value in the rows. */
28
+ max?: number;
29
+ /** The IANA zone a date column with a time reads in, such as the zone of the data's owner; defaults to the reader's. */
30
+ timeZone?: string;
31
+ /** How a delta column reads its change: `ratio` (default) `0.082` as `+8.2 %`, `points` `0.031` as `+3.1 pts`; `better` rates it. */
32
+ delta?: {
33
+ unit?: "ratio" | "points";
34
+ better?: "up" | "down";
35
+ };
36
+ };
37
+ export declare const isNumericColumnType: (type?: DataTableColumnType) => boolean;
38
+ /** Formats a number the way a typed column shows it: in the reader's language, by the column's format. */
39
+ export declare const formatTableNumber: (value: number, column: DataTableTypedColumn, locale: string) => string;
40
+ /** A date column reads ISO text, a timestamp or a Date; a day without a time stays that day in every zone. */
41
+ export declare const formatTableDate: (value: unknown, locale: string, timeZone?: string) => string | null;
42
+ /** True when the value is missing: such a cell shows a dash, sorts last and never counts as zero. */
43
+ export declare const isEmptyCell: (value: unknown) => boolean;
44
+ /**
45
+ * The text a typed cell shows, for search, grouping and copied rows. A flow is the amount without its sign, as the
46
+ * arrow says the direction; a delta is its signed change.
47
+ */
48
+ export declare const tableCellText: (value: unknown, column: DataTableTypedColumn, locale: string) => string;
49
+ /** The value a typed column sorts by: numbers by value, dates by time, a status by its label, the rest as text. */
50
+ export declare const tableSortValue: (value: unknown, column: DataTableTypedColumn, locale: string) => number | string | null;
51
+ type Readable<T> = DataTableTypedColumn & {
52
+ id: string;
53
+ value?: keyof T | ((row: T) => unknown);
54
+ };
55
+ export declare const readTableValue: <T>(row: T, column: Readable<T>) => unknown;
56
+ /**
57
+ * The rows any of whose shown values contains the query, ignoring case and accents. An empty query keeps every row.
58
+ * Matches the text a reader sees, so a status matches by its label and an amount as it is formatted.
59
+ */
60
+ export declare const filterRows: <T>(rows: readonly T[], columns: readonly Readable<T>[], query: string, locale: string) => T[];
61
+ /** Rows in the order of one column: values first, missing values last in both directions. */
62
+ export declare const sortRows: <T>(rows: readonly T[], columns: readonly Readable<T>[], sort: {
63
+ key: string;
64
+ direction: "asc" | "desc";
65
+ } | null | undefined, locale: string) => T[];
66
+ /** Rows split by one column, in the order each group first appears; the label is the group's shown value. */
67
+ export declare const groupRows: <T>(rows: readonly T[], column: Readable<T>, locale: string) => {
68
+ key: string;
69
+ label: string;
70
+ rows: T[];
71
+ }[];
72
+ export {};
@@ -3,6 +3,24 @@ declare const dataTableMessages: import("@k2b/stdlib").Catalog<{
3
3
  noColumns: string;
4
4
  noRecords: string;
5
5
  loadingRows: string;
6
+ noMatch: ({ query }: {
7
+ query: string;
8
+ }) => string;
9
+ clearSearch: string;
10
+ details: string;
11
+ showDetails: string;
12
+ rowCount: ({ count }: {
13
+ count: number;
14
+ }) => string;
15
+ search: string;
16
+ searchTable: ({ label }: {
17
+ label: string;
18
+ }) => string;
19
+ groupRows: string;
20
+ notGrouped: string;
21
+ groupedBy: ({ label }: {
22
+ label: string;
23
+ }) => string;
6
24
  }>;
7
25
  export type DataTableMessages = ReturnType<(typeof dataTableMessages)["resolve"]>["t"];
8
26
  /** Resolved from the inherited render locale. */
@@ -0,0 +1,11 @@
1
+ declare const flowAmountMessages: import("@k2b/stdlib").Catalog<{
2
+ in: string;
3
+ out: string;
4
+ none: string;
5
+ invalid: string;
6
+ }>;
7
+ export type FlowAmountMessages = ReturnType<(typeof flowAmountMessages)["resolve"]>["t"];
8
+ /** Resolved from an explicit locale override, else the inherited render locale. */
9
+ export declare const useFlowAmountMessages: (override?: () => string | undefined) => (() => FlowAmountMessages);
10
+ export declare const checkFlowAmountMessages: () => import("@k2b/stdlib").CatalogIssue[];
11
+ export {};
@@ -1,8 +1,10 @@
1
+ export type { ChartDateFormat, ChartDatum, ChartDatumRole, ChartFormat, ChartNumberFormat } from "../charts/core";
2
+ export { BalanceSummary, type BalanceSummaryProps } from "./BalanceSummary";
1
3
  export type { CalendarAttendee, CalendarCommand, CalendarController, CalendarCustomView, CalendarDayBadge, CalendarEvent, CalendarEventColor, CalendarEventLink, CalendarEventRenderContext, CalendarEventTimeChange, CalendarExternalDrag, CalendarLabels, CalendarProps, CalendarQuickCreateControls, CalendarRange, CalendarRecurrence, CalendarResource, CalendarSelectionControls, CalendarView, } from "./Calendar";
2
4
  export { default as Calendar } from "./Calendar";
3
- export type { ChartKind, ChartLabels, ChartProps, ChartRenderOptions } from "./Chart";
5
+ export type { ChartKind, ChartKindProps, ChartLabels, ChartProps, ChartRenderOptions } from "./Chart";
4
6
  export { default as Chart } from "./Chart";
5
- export type { ChartExplorerColumn, ChartExplorerProps, ChartLegendEntry } from "./ChartExplorer";
7
+ export type { ChartExplorerColumn, ChartExplorerProps, ChartFrameRequest, ChartLegendEntry } from "./ChartExplorer";
6
8
  export { ChartExplorer } from "./ChartExplorer";
7
9
  export type { ChartExplorerControlsProps } from "./ChartExplorerControls";
8
10
  export { ChartExplorerControls } from "./ChartExplorerControls";
@@ -17,17 +19,23 @@ export type { ChartDatumRef, ChartSelection, ChartTooltip, ChartTooltipFormatter
17
19
  export type { ChartSnapshot } from "./chart-snapshot";
18
20
  export { prepareChartSnapshot } from "./chart-snapshot";
19
21
  export type { StateTimelineChartOptions, StateTimelineDomain, StateTimelineInterval, StateTimelineRow, StateTimelineState, } from "./chart-state-timeline";
22
+ export type { ChartTimeAxis } from "./chart-time-axis";
20
23
  export { highlightSql } from "./code-highlight";
21
24
  export { type CollectionSelection, createCollectionSelection, type SelectionModifiers } from "./collection-selection";
22
25
  export type { DataTableColumn, DataTableControlsProps, DataTableFooter, DataTableHeaderProps, DataTablePanelFooterProps, DataTablePanelProps, DataTableProps, DataTableRenderCell, DataTableRenderHeader, DataTableSort, } from "./DataTable";
23
26
  export { default as DataTable } from "./DataTable";
27
+ export type { DataTableToolsProps, DataTableView, DataTableViewOptions } from "./DataTableTools";
28
+ export { createDataTableView, DataTableTools } from "./DataTableTools";
24
29
  export type { DocCodeHighlighter, DocCodeProps, DocConcept, DocNoteVariant, DocRow } from "./Docs";
25
30
  export { DocCode, DocConceptGrid, DocInlineCode, DocLead, DocNote, DocPage, DocRows, DocSection } from "./Docs";
31
+ export type { DataTableColumnType, DataTableNumberFormat, DataTableStatusState, DataTableTypedColumn, } from "./data-table-columns";
32
+ export { filterRows, sortRows } from "./data-table-columns";
26
33
  export { FileBrowserPanel, type FileBrowserPanelProps, type FileSource, openFileBrowser } from "./FileBrowser";
27
34
  export { FileGrid, type FileGridGroup, type FileGridOpenProps, type FileGridProps, type FileGridSelectableProps } from "./FileGrid";
28
35
  export { default as FileTree, type FileTreeActions, type FileTreeEntry, type FileTreeProps } from "./FileTree";
29
36
  export { type FileType, FileTypeIcon, type FileTypeIconProps, fileKindLabel, fileTypeOf } from "./FileTypeIcon";
30
37
  export { canPreviewFile, default as FileView, type FileViewContent, type FileViewFile, type FileViewPreviewKind, type FileViewProps, type FileViewRenderer, type FileViewRendererProps, formatFileViewSize, getFileViewPreviewKind, } from "./FileView";
38
+ export { FlowAmount, type FlowAmountDirection, type FlowAmountProps, flowDirection } from "./FlowAmount";
31
39
  export type { KbdProps } from "./Kbd";
32
40
  export { Kbd } from "./Kbd";
33
41
  export type { LabelChipProps } from "./LabelChip";
@@ -52,6 +60,8 @@ export { type MarkdownLinkInput, type MarkdownReference, type MarkdownReferenceK
52
60
  export { Pagination, type PaginationProps } from "./Pagination";
53
61
  export type { PdfPreviewProps, PdfPreviewRequest } from "./PdfPreview";
54
62
  export { default as PdfPreview } from "./PdfPreview";
63
+ export type { PdfViewerProps } from "./PdfViewer";
64
+ export { default as PdfViewer } from "./PdfViewer";
55
65
  export type { RangeOption, RangePickerProps } from "./RangePicker";
56
66
  export { default as RangePicker } from "./RangePicker";
57
67
  export { ReactionBar, type ReactionBarItem, type ReactionBarProps } from "./ReactionBar";
@@ -0,0 +1,5 @@
1
+ import { type PdfDocumentHandle } from "./pdf-limits";
2
+ export type { PdfDocumentHandle, PdfPageImage, PdfPageSize } from "./pdf-limits";
3
+ export { PDF_LIMITS, PDF_TOO_LARGE, pageImageWidth } from "./pdf-limits";
4
+ /** Opens a PDF; `null` after an abort. Throws `PDF_TOO_LARGE` past `PDF_LIMITS`, or pdf.js's error for a broken file. */
5
+ export declare const openPdfDocument: (data: Blob | ArrayBuffer, signal: AbortSignal) => Promise<PdfDocumentHandle | null>;
@@ -0,0 +1,9 @@
1
+ import { type PdfDocumentHandle } from "./pdf-limits";
2
+ /**
3
+ * The PDF engine: pdf.js and the glue `PdfViewer` needs. The @k2b/ui build bundles this module on its own into
4
+ * `pdf-viewer-engine.js`; `openPdfDocument` loads it by address, so a host's bundle never contains pdf.js. The legacy
5
+ * build also runs on older Safari on iPad. Parsing never runs code from the document: there is no scripting, XFA stays
6
+ * off, and pdf.js loads nothing beyond the given bytes. `workerUrl` is resolved against this module, next to which the
7
+ * host's bundler put the worker file.
8
+ */
9
+ export declare function openPdf(data: ArrayBuffer, signal: AbortSignal, workerUrl: string): Promise<PdfDocumentHandle | null>;
@@ -0,0 +1,43 @@
1
+ /** Shapes and bounds shared by `PdfViewer`, its loader, and the pdf.js engine. */
2
+ /** A page's size in PDF points at scale 1. */
3
+ export type PdfPageSize = {
4
+ width: number;
5
+ height: number;
6
+ };
7
+ /** One drawn page: an object URL the caller revokes, and its size in pixels. */
8
+ export type PdfPageImage = {
9
+ url: string;
10
+ width: number;
11
+ height: number;
12
+ };
13
+ export type PdfDocumentHandle = {
14
+ pages: readonly PdfPageSize[];
15
+ /** Draws one page `widthPx` wide; `null` after an abort. The caller revokes the returned URL. */
16
+ draw: (index: number, widthPx: number, signal: AbortSignal) => Promise<PdfPageImage | null>;
17
+ /**
18
+ * Lays the selectable, searchable text of one page into `container`. Positions are relative to the page; the font
19
+ * follows `--total-scale-factor` (CSS pixels per point) on the container or above, so zoom changes only that value.
20
+ */
21
+ textLayer: (index: number, container: HTMLElement, signal: AbortSignal) => Promise<void>;
22
+ close: () => Promise<void>;
23
+ };
24
+ /**
25
+ * Bounds for one document. Bytes and pages bound parsing work and memory; a larger document falls back to the
26
+ * browser's own viewer. Canvas pixels stay below the size Safari still draws (larger canvases come out blank).
27
+ */
28
+ export declare const PDF_LIMITS: {
29
+ readonly maxBytes: number;
30
+ readonly maxPages: 2000;
31
+ readonly maxCanvasPixels: 16000000;
32
+ readonly maxImageWidth: 4096;
33
+ };
34
+ /** The name of the error a document past `PDF_LIMITS` raises; the host shows the browser's viewer instead. */
35
+ export declare const PDF_TOO_LARGE = "PdfTooLargeError";
36
+ export declare const pdfTooLarge: (message: string) => Error;
37
+ /**
38
+ * Pixel width for a page image shown `displayWidth` CSS pixels wide: display width times the device pixel ratio
39
+ * (at most 2), at least 400 px where the page allows it, at most `PDF_LIMITS.maxImageWidth`, and always small enough
40
+ * that the canvas stays under `PDF_LIMITS.maxCanvasPixels` for the page's height-to-width `ratio`, also for a very
41
+ * tall page. Very deep zoom turns slightly soft, never blank.
42
+ */
43
+ export declare const pageImageWidth: (displayWidth: number, pixelRatio: number, ratio: number) => number;
@@ -10,6 +10,22 @@ declare const pdfMessages: import("@k2b/stdlib").Catalog<{
10
10
  pdfPreviewRendering: string;
11
11
  previewPdf: string;
12
12
  renderPdfPreview: string;
13
+ pdfPage: ({ number, total }: {
14
+ number: number;
15
+ total: number;
16
+ }) => string;
17
+ pdfPageShort: ({ number, total }: {
18
+ number: number;
19
+ total: number;
20
+ }) => string;
21
+ pdfZoom: string;
22
+ pdfZoomOut: string;
23
+ pdfZoomIn: string;
24
+ pdfZoomPercent: ({ value }: {
25
+ value: number;
26
+ }) => string;
27
+ pdfFitWidth: string;
28
+ pdfFitWidthLabel: string;
13
29
  }>;
14
30
  export type PdfMessages = ReturnType<(typeof pdfMessages)["resolve"]>["t"];
15
31
  /** Resolved from the inherited render locale. */
@@ -14,6 +14,10 @@ export type SliderProps = FieldProps & Omit<JSX.InputHTMLAttributes<HTMLInputEle
14
14
  formatValue?: (value: number) => string;
15
15
  showValue?: boolean;
16
16
  center?: boolean;
17
+ /**
18
+ * The value the setting starts from. With it, a changed value shows in the accent color and a reset button
19
+ * appears in a slot the slider always keeps, so nothing moves. Double-click resets too.
20
+ */
17
21
  defaultValue?: number;
18
22
  };
19
23
  export declare function Slider(props: SliderProps): JSX.Element;
@@ -34,3 +34,15 @@ export type ChoiceSliderProps = {
34
34
  * never changes. Unavailable stops stay visible and are skipped.
35
35
  */
36
36
  export declare function ChoiceSlider(props: ChoiceSliderProps): JSX.Element;
37
+ export type ChoiceSliderIndicatorProps = {
38
+ /** How many stops the slider it stands for has. */
39
+ count: number;
40
+ /** The chosen stop's index, or `null` (or a negative index) for a choice that is none of the stops. */
41
+ index: number | null;
42
+ class?: string;
43
+ };
44
+ /**
45
+ * The slider in small and without interaction, 24 px wide: rail, fill and thumb in the same look, for a trigger that
46
+ * opens the real slider. It is decoration; the trigger's own label says the value.
47
+ */
48
+ export declare function ChoiceSliderIndicator(props: ChoiceSliderIndicatorProps): JSX.Element;
@@ -52,6 +52,28 @@ export type DateRangePickerProps = DatePickerBaseProps<DateRangeValue> & {
52
52
  };
53
53
  /** `below` is a line under the trigger that the panel must not cover, such as a typed field's status line. */
54
54
  export declare const placeDatePopover: (trigger: HTMLElement, popover: HTMLElement, wide: boolean, below?: HTMLElement) => void;
55
+ /** One month of days. Exported for composite pickers in this package (the period picker shows two side by side). */
56
+ export declare function DatePickerPanel(props: {
57
+ visibleMonth: () => Date;
58
+ setVisibleMonth: (date: Date) => void;
59
+ selected?: () => string | null | undefined;
60
+ range?: () => DateRangeValue;
61
+ focusDate?: () => string | null | undefined;
62
+ onSelect: (date: string) => void;
63
+ onDayPreview?: (date: string | null) => void;
64
+ dateConfig?: DateContext;
65
+ /** Earliest and latest selectable day as date keys. */
66
+ min?: string;
67
+ max?: string;
68
+ /** Which month steps this panel offers; a second month beside it offers the other one. */
69
+ nav?: "both" | "previous" | "next";
70
+ /** Leaves the days of neighbouring months empty (`visibility: hidden`), so two months side by side never show a day twice. */
71
+ hideOutside?: boolean;
72
+ /** Whether a day is already on screen, also in a neighbouring panel; arrow keys then move there without paging. */
73
+ isShown?: (date: Date) => boolean;
74
+ /** Where keyboard navigation looks for the day to focus; the panel itself by default. */
75
+ focusRoot?: () => HTMLElement | undefined;
76
+ }): JSX.Element;
55
77
  export declare function DatePicker(props: DatePickerProps): JSX.Element;
56
78
  export declare function DateTimePicker(props: DateTimePickerProps): JSX.Element;
57
79
  export declare function DateRangePicker(props: DateRangePickerProps): JSX.Element;
@@ -0,0 +1,24 @@
1
+ import { type JSX } from "solid-js";
2
+ import type { DateContext, MaybeAccessor, ValueFieldProps } from "./field-contract";
3
+ import { type PeriodPreset, type PeriodValue } from "./period";
4
+ export type PeriodPickerProps = Omit<ValueFieldProps<PeriodValue | null>, "value"> & {
5
+ /** A preset key or two explicit days; `null` or an unknown preset key shows the placeholder. */
6
+ value: MaybeAccessor<PeriodValue | null>;
7
+ /** The presets in list order, for example `periodPresets.thisMonth` or an app's own `{ key, label, resolve }`. */
8
+ presets: readonly PeriodPreset[];
9
+ /** Offers "Custom range" with a calendar in the same popover. On by default. */
10
+ custom?: boolean;
11
+ /** Time zone, week start and locale. Presets resolve "today" in `timeZone`; pass the zone the data uses. */
12
+ dateConfig?: DateContext;
13
+ /** The instant "today" is read from. Pass the server's instant so the first render and the browser agree. */
14
+ now?: Date;
15
+ /** Shows that a change is saving: the trigger keeps its size, cannot be opened, and shows a spinner. */
16
+ loading?: boolean;
17
+ };
18
+ /**
19
+ * PeriodPicker — one control for the period an evaluation or dashboard shows: presets such as "This month" plus a
20
+ * custom range, edited in the same popover (a bottom sheet on phones). The trigger shows the preset with its days or
21
+ * the custom days with their count, and keeps the width of its longest text so nothing beside it moves.
22
+ */
23
+ export declare function PeriodPicker(props: PeriodPickerProps): JSX.Element;
24
+ export default PeriodPicker;
@@ -27,6 +27,8 @@ export type SelectChipProps<T extends string | number = string> = ValueFieldProp
27
27
  loading?: boolean;
28
28
  open?: boolean;
29
29
  onOpenChange?: (open: boolean) => void;
30
+ /** Keeps the width of the longest option label, so a new choice never moves what sits beside the chip. */
31
+ stableWidth?: boolean;
30
32
  };
31
33
  export declare function SelectChip<T extends string | number = string>(props: SelectChipProps<T>): JSX.Element;
32
34
  export default SelectChip;
@@ -42,6 +42,12 @@ export declare const splitDateTime: (value: string | null | undefined, context?:
42
42
  };
43
43
  export declare const isCompleteTime: (value: string) => boolean;
44
44
  export declare const toDateTimeValue: (date: string, time: string, context?: DateContext) => string | null;
45
+ /**
46
+ * The value an applied draft commits. An untouched draft keeps the exact value: the panel shows minutes in the
47
+ * picker's zone, and a wall time that a daylight-saving change repeats names two instants, so rebuilding it could
48
+ * move the value by an hour or drop its seconds.
49
+ */
50
+ export declare const draftDateTimeValue: (value: string | null | undefined, date: string, time: string, context?: DateContext) => string | null;
45
51
  export declare const formatDateTimeValue: (value: string | null | undefined, context?: DateContext) => string;
46
52
  export declare const normalizeTimeInput: (value: string) => string;
47
53
  export declare const filterTimeInput: (value: string) => string;
@@ -12,8 +12,8 @@ export type { ColorInputProps, PinInputProps, SliderProps, } from "./ChoiceInput
12
12
  export { ColorInput, PinInput, Slider } from "./ChoiceInputs";
13
13
  export type { ChoiceListOption, ChoiceListProps } from "./ChoiceList";
14
14
  export { ChoiceList } from "./ChoiceList";
15
- export type { ChoiceSliderOption, ChoiceSliderProps } from "./ChoiceSlider";
16
- export { ChoiceSlider } from "./ChoiceSlider";
15
+ export type { ChoiceSliderIndicatorProps, ChoiceSliderOption, ChoiceSliderProps } from "./ChoiceSlider";
16
+ export { ChoiceSlider, ChoiceSliderIndicator } from "./ChoiceSlider";
17
17
  export type { ChoiceTileOption, ChoiceTilesProps } from "./ChoiceTiles";
18
18
  export { ChoiceTiles } from "./ChoiceTiles";
19
19
  export type { ColorChoiceOption, ColorChoicesProps } from "./ColorChoices";
@@ -48,8 +48,14 @@ export type { MultiSelectFetchDataFn, MultiSelectInputProps, MultiSelectOption,
48
48
  export { MultiSelectInput } from "./MultiSelectInput";
49
49
  export type { MarkdownEditorProps } from "./markdown/MarkdownEditor";
50
50
  export { MarkdownEditor } from "./markdown/MarkdownEditor";
51
+ export type { SlashCommandsProps } from "./markdown/SlashCommands";
52
+ export { SlashCommands } from "./markdown/SlashCommands";
51
53
  export type { NumberInputProps } from "./NumberInput";
52
54
  export { NumberInput } from "./NumberInput";
55
+ export type { PeriodPickerProps } from "./PeriodPicker";
56
+ export { PeriodPicker } from "./PeriodPicker";
57
+ export type { PeriodClock, PeriodContext, PeriodPreset, PeriodRange, PeriodValue } from "./period";
58
+ export { formatPeriodDays, formatPeriodRange, isPeriodDay, parsePeriodValue, periodContext, periodDayCount, periodInstants, periodPresets, resolvePeriod, } from "./period";
53
59
  export type { QrScannerError, QrScannerProps } from "./QrScanner";
54
60
  export { QrScanner } from "./QrScanner";
55
61
  export type { RichSelectFact, RichSelectFooter, RichSelectItem, RichSelectProps, RichSelectSection, RichSelectStatus, } from "./RichSelect";
@@ -9,6 +9,9 @@ declare const inputMessages: import("@k2b/stdlib").Catalog<{
9
9
  index: number;
10
10
  total: number;
11
11
  }) => string;
12
+ resetTo: ({ value }: {
13
+ value: string;
14
+ }) => string;
12
15
  }>;
13
16
  export type InputMessages = ReturnType<(typeof inputMessages)["resolve"]>["t"];
14
17
  /** Resolved from the inherited render locale. */
@@ -14,6 +14,11 @@ export type MarkdownEditorProps = ValueFieldProps<string> & {
14
14
  completions?: readonly Completion[];
15
15
  showStats?: boolean;
16
16
  variant?: "default" | "paper" | "embedded";
17
+ /**
18
+ * The font of the text, its highlighting, and the placeholder together: `mono` (default) for Markdown source,
19
+ * `sans` for a message composer whose text later shows in the interface font.
20
+ */
21
+ font?: "mono" | "sans";
17
22
  fill?: boolean;
18
23
  /** Groups save and close at the end of the toolbar. The caller owns navigation and unsaved-change confirmation. */
19
24
  onClose?: () => void;
@@ -0,0 +1,20 @@
1
+ import { type JSX } from "solid-js";
2
+ import { type CommandSource } from "../../actions/command-items";
3
+ export type SlashCommandsProps = {
4
+ /** The editor's textarea, from `MarkdownEditor`'s `textareaRef`. The commands attach once it is there. */
5
+ textarea: HTMLTextAreaElement | undefined;
6
+ /** The same entries as `CommandMenu`'s `items`. */
7
+ items: CommandSource;
8
+ /**
9
+ * The composer box the list docks to, such as the frame around the editor and its "+" row. Defaults to the editor
10
+ * itself.
11
+ */
12
+ composer?: HTMLElement;
13
+ };
14
+ /**
15
+ * Slash commands for a `MarkdownEditor`: `/` at the start of a line or after a space opens the entries docked above the
16
+ * composer, as wide as it is. Place it beside the editor and pass the editor's textarea. It listens to the textarea itself, so editors without
17
+ * commands carry none of it: native listeners run before the editor's own, and a key it uses is marked handled with
18
+ * `preventDefault`, which the editor respects.
19
+ */
20
+ export declare function SlashCommands(props: SlashCommandsProps): JSX.Element;
@@ -0,0 +1,34 @@
1
+ /** Labels of the built-in period presets and the picker's own words. */
2
+ declare const periodPickerMessages: import("@k2b/stdlib").Catalog<{
3
+ period: string;
4
+ choosePeriod: string;
5
+ custom: string;
6
+ from: string;
7
+ to: string;
8
+ backToPresets: string;
9
+ since: ({ date }: {
10
+ date: string;
11
+ }) => string;
12
+ days: ({ count }: {
13
+ count: number;
14
+ }) => string;
15
+ today: string;
16
+ yesterday: string;
17
+ "this-week": string;
18
+ "last-week": string;
19
+ "this-month": string;
20
+ "last-month": string;
21
+ "this-quarter": string;
22
+ "last-quarter": string;
23
+ "this-year": string;
24
+ "last-year": string;
25
+ all: string;
26
+ }>;
27
+ export type PeriodPickerMessages = ReturnType<(typeof periodPickerMessages)["resolve"]>["t"];
28
+ /** The translated label of a built-in preset key, if it is one. */
29
+ export declare const builtInPresetLabel: (t: PeriodPickerMessages, key: string) => string | undefined;
30
+ /** Resolved from the inherited render locale. */
31
+ export declare const usePeriodPickerMessages: () => (() => PeriodPickerMessages);
32
+ export declare const resolvePeriodPickerMessages: (locale?: string) => PeriodPickerMessages;
33
+ export declare const checkPeriodPickerMessages: () => import("@k2b/stdlib").CatalogIssue[];
34
+ export {};
@@ -0,0 +1,134 @@
1
+ /**
2
+ * A period as an app stores it: a preset key that stays relative ("this month" is next month's month too), or two
3
+ * explicit days. Days are date keys such as `2026-11-01`; `end` is inclusive.
4
+ */
5
+ export type PeriodValue = {
6
+ preset: string;
7
+ } | {
8
+ start: string;
9
+ end: string;
10
+ };
11
+ /** Inclusive days of a period. `null` is an open edge, for example "All time" without a known first day. */
12
+ export type PeriodRange = {
13
+ start: string | null;
14
+ end: string | null;
15
+ };
16
+ /** What a preset resolves against: today in the period's time zone and the first day of the week. */
17
+ export type PeriodContext = {
18
+ today: string;
19
+ weekStartsOn: 0 | 1;
20
+ };
21
+ export type PeriodPreset = {
22
+ key: string;
23
+ /** Shown in the list and the trigger. Built-in presets bring a translated label; app presets name their own. */
24
+ label?: string;
25
+ resolve: (context: PeriodContext) => PeriodRange;
26
+ };
27
+ /** The clock a period is resolved with. Server and browser pass the same values so the first render agrees. */
28
+ export type PeriodClock = {
29
+ /** The instant "today" is read from; defaults to now. */
30
+ now?: Date;
31
+ /** IANA time zone the days belong to, for example a base's zone; defaults to the runtime zone. */
32
+ timeZone?: string;
33
+ /** First day of the week, as in the calendar's date config; Monday by default. */
34
+ weekStartsOn?: 0 | 1;
35
+ /** Alias of `weekStartsOn`, accepted from a shared date config. */
36
+ firstDayOfWeek?: 0 | 1;
37
+ };
38
+ /** Adds whole days to a date key; calendar days, so a DST change never moves it. */
39
+ export declare const addPeriodDays: (key: string, count: number) => string;
40
+ /** Number of days in an inclusive range of date keys. */
41
+ export declare const periodDayCount: (range: {
42
+ start: string;
43
+ end: string;
44
+ }) => number;
45
+ /**
46
+ * Built-in presets. Each covers its whole calendar period ("This month" is the 1st to the last day, not up to
47
+ * today) in the period's time zone; weeks start on the context's first day of the week.
48
+ */
49
+ export declare const periodPresets: {
50
+ today: {
51
+ key: string;
52
+ resolve: ({ today }: PeriodContext) => {
53
+ start: string;
54
+ end: string;
55
+ };
56
+ };
57
+ yesterday: {
58
+ key: string;
59
+ resolve: ({ today }: PeriodContext) => {
60
+ start: string;
61
+ end: string;
62
+ };
63
+ };
64
+ thisWeek: {
65
+ key: string;
66
+ resolve: (context: PeriodContext) => PeriodRange;
67
+ };
68
+ lastWeek: {
69
+ key: string;
70
+ resolve: (context: PeriodContext) => PeriodRange;
71
+ };
72
+ thisMonth: {
73
+ key: string;
74
+ resolve: ({ today }: PeriodContext) => PeriodRange;
75
+ };
76
+ lastMonth: {
77
+ key: string;
78
+ resolve: ({ today }: PeriodContext) => PeriodRange;
79
+ };
80
+ thisQuarter: {
81
+ key: string;
82
+ resolve: ({ today }: PeriodContext) => PeriodRange;
83
+ };
84
+ lastQuarter: {
85
+ key: string;
86
+ resolve: ({ today }: PeriodContext) => PeriodRange;
87
+ };
88
+ thisYear: {
89
+ key: string;
90
+ resolve: ({ today }: PeriodContext) => PeriodRange;
91
+ };
92
+ lastYear: {
93
+ key: string;
94
+ resolve: ({ today }: PeriodContext) => PeriodRange;
95
+ };
96
+ /** Everything up to today; `since` is the first day with data when the app knows it, else the start stays open. */
97
+ all: (options?: {
98
+ since?: string | null;
99
+ }) => PeriodPreset;
100
+ };
101
+ /** A real calendar day key, not only the shape (`2026-02-30` is refused). */
102
+ export declare const isPeriodDay: (value: unknown) => value is string;
103
+ /** Accepts a stored or URL value only when it is a known preset key or two real days in order. */
104
+ export declare const parsePeriodValue: (value: unknown, presets: readonly PeriodPreset[]) => PeriodValue | undefined;
105
+ /** The context presets resolve against: today in the clock's time zone. */
106
+ export declare const periodContext: (clock?: PeriodClock) => PeriodContext;
107
+ /**
108
+ * Resolves a value to inclusive days. Returns `undefined` for a preset key the list does not contain, so a stored
109
+ * period that no longer exists is never silently replaced.
110
+ */
111
+ export declare const resolvePeriod: (value: PeriodValue, presets: readonly PeriodPreset[], clock?: PeriodClock) => PeriodRange | undefined;
112
+ /**
113
+ * The instants a query uses for a resolved period: `from` is the start of the first day and `to` the start of the
114
+ * day after the last one (exclusive), both in the time zone. Days are never assumed to last 24 hours.
115
+ */
116
+ export declare const periodInstants: (range: PeriodRange, timeZone: string) => {
117
+ from: string | null;
118
+ to: string | null;
119
+ };
120
+ /**
121
+ * Short days of a preset, for the list and the trigger: "Sat, Nov 7", "Nov 1 – 30", "2025", "since 3/14/2019".
122
+ * The year is added only when the period is not in today's year.
123
+ */
124
+ export declare const formatPeriodDays: (range: PeriodRange, today: string, locale: string, since: (date: string) => string) => string;
125
+ /** Explicit days as numbers with the year: "01.–07.11.2026" in German, "11/1/2026 – 11/7/2026" in English. */
126
+ export declare const formatPeriodRange: (range: {
127
+ start: string;
128
+ end: string;
129
+ }, locale: string) => string;
130
+ /** The widest explicit range within today's year, all of it (two-digit days, a three-digit count), so a trigger can reserve its width. */
131
+ export declare const widePeriodRangeSample: (today: string) => {
132
+ start: string;
133
+ end: string;
134
+ };
@@ -31,6 +31,11 @@ export type FormatCurrencyProps = SpanProps & LocaleProp & FallbackProp & {
31
31
  currency: string;
32
32
  /** Fixed fraction digits. Defaults to the currency's standard digits. */
33
33
  decimals?: number;
34
+ /**
35
+ * When the sign shows, as in `Intl.NumberFormat`: `"exceptZero"` writes `+1.234,50 €` and `-80,00 €` for a
36
+ * balance change or net amount, `"never"` drops it. Defaults to `"auto"` (only negative amounts carry a sign).
37
+ */
38
+ signDisplay?: Intl.NumberFormatOptions["signDisplay"];
34
39
  };
35
40
  export type FormatBytesProps = SpanProps & LocaleProp & FallbackProp & {
36
41
  value: number | null | undefined;