@k2b/ui 0.2.0 → 0.4.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 (378) hide show
  1. package/dist/browser/actions/Button.js +11 -2
  2. package/dist/browser/actions/Button.js.map +1 -1
  3. package/dist/browser/actions/Disclosure.js +11 -8
  4. package/dist/browser/actions/Disclosure.js.map +1 -1
  5. package/dist/browser/actions/Dropdown.js +4 -1
  6. package/dist/browser/actions/Dropdown.js.map +1 -1
  7. package/dist/browser/actions/FilterChip.js +16 -2
  8. package/dist/browser/actions/FilterChip.js.map +1 -1
  9. package/dist/browser/actions/SplitButton.js +69 -22
  10. package/dist/browser/actions/SplitButton.js.map +1 -1
  11. package/dist/browser/actions/SpotlightSearch.js +3 -7
  12. package/dist/browser/actions/SpotlightSearch.js.map +1 -1
  13. package/dist/browser/actions/Tabs.js +132 -47
  14. package/dist/browser/actions/Tabs.js.map +1 -1
  15. package/dist/browser/actions/index.js +2 -2
  16. package/dist/browser/actions/index.js.map +1 -1
  17. package/dist/browser/chat/ChatComposer.js +751 -423
  18. package/dist/browser/chat/ChatComposer.js.map +1 -1
  19. package/dist/browser/chat/ChatContextPopup.js +123 -0
  20. package/dist/browser/chat/ChatContextPopup.js.map +1 -0
  21. package/dist/browser/chat/ChatPrimitives.js +141 -78
  22. package/dist/browser/chat/ChatPrimitives.js.map +1 -1
  23. package/dist/browser/chat/ChatTasks.js +112 -0
  24. package/dist/browser/chat/ChatTasks.js.map +1 -0
  25. package/dist/browser/chat/ChatTimeline.js +31 -14
  26. package/dist/browser/chat/ChatTimeline.js.map +1 -1
  27. package/dist/browser/chat/chat-behavior.js +0 -5
  28. package/dist/browser/chat/chat-behavior.js.map +1 -1
  29. package/dist/browser/chat/composer-document.js +55 -0
  30. package/dist/browser/chat/composer-document.js.map +1 -0
  31. package/dist/browser/chat/index.js +6 -1
  32. package/dist/browser/chat/index.js.map +1 -1
  33. package/dist/browser/chat/types.js.map +1 -1
  34. package/dist/browser/content/Chart.js +148 -239
  35. package/dist/browser/content/Chart.js.map +1 -1
  36. package/dist/browser/content/ChartExplorer.js +324 -0
  37. package/dist/browser/content/ChartExplorer.js.map +1 -0
  38. package/dist/browser/content/ChartExplorerControls.js +153 -0
  39. package/dist/browser/content/ChartExplorerControls.js.map +1 -0
  40. package/dist/browser/content/ChartFilterControls.js +200 -0
  41. package/dist/browser/content/ChartFilterControls.js.map +1 -0
  42. package/dist/browser/content/ChartSnapshotView.js +114 -0
  43. package/dist/browser/content/ChartSnapshotView.js.map +1 -0
  44. package/dist/browser/content/DataTable.js +48 -32
  45. package/dist/browser/content/DataTable.js.map +1 -1
  46. package/dist/browser/content/FileBrowser.js +3 -0
  47. package/dist/browser/content/FileBrowser.js.map +1 -1
  48. package/dist/browser/content/FileGrid.js +93 -0
  49. package/dist/browser/content/FileGrid.js.map +1 -0
  50. package/dist/browser/content/FileTree.js +2 -2
  51. package/dist/browser/content/FileTree.js.map +1 -1
  52. package/dist/browser/content/FileView.js +511 -162
  53. package/dist/browser/content/FileView.js.map +1 -1
  54. package/dist/browser/content/MarkdownView.js +6 -0
  55. package/dist/browser/content/MarkdownView.js.map +1 -1
  56. package/dist/browser/content/Pagination.js.map +1 -1
  57. package/dist/browser/content/PdfPreview.js +107 -90
  58. package/dist/browser/content/PdfPreview.js.map +1 -1
  59. package/dist/browser/content/chart-cursor.js +33 -0
  60. package/dist/browser/content/chart-cursor.js.map +1 -0
  61. package/dist/browser/content/chart-explorer.js +147 -0
  62. package/dist/browser/content/chart-explorer.js.map +1 -0
  63. package/dist/browser/content/chart-inspection.js +447 -0
  64. package/dist/browser/content/chart-inspection.js.map +1 -0
  65. package/dist/browser/content/chart-line-gaps.js +53 -0
  66. package/dist/browser/content/chart-line-gaps.js.map +1 -0
  67. package/dist/browser/content/chart-map-viewport.js +5 -1
  68. package/dist/browser/content/chart-map-viewport.js.map +1 -1
  69. package/dist/browser/content/chart-snapshot.js +63 -0
  70. package/dist/browser/content/chart-snapshot.js.map +1 -0
  71. package/dist/browser/content/chart-state-timeline.js +32 -4
  72. package/dist/browser/content/chart-state-timeline.js.map +1 -1
  73. package/dist/browser/content/chart-svg.js +54 -0
  74. package/dist/browser/content/chart-svg.js.map +1 -0
  75. package/dist/browser/content/collection-selection.js +109 -0
  76. package/dist/browser/content/collection-selection.js.map +1 -0
  77. package/dist/browser/content/delimited-preferences.js +21 -0
  78. package/dist/browser/content/delimited-preferences.js.map +1 -0
  79. package/dist/browser/content/file-tree.js.map +1 -1
  80. package/dist/browser/content/file-view-preview.js +11 -7
  81. package/dist/browser/content/file-view-preview.js.map +1 -1
  82. package/dist/browser/content/index.js +9 -0
  83. package/dist/browser/content/index.js.map +1 -1
  84. package/dist/browser/feedback/InlineGuidance.js +17 -3
  85. package/dist/browser/feedback/InlineGuidance.js.map +1 -1
  86. package/dist/browser/feedback/dialog-core.js +81 -7
  87. package/dist/browser/feedback/dialog-core.js.map +1 -1
  88. package/dist/browser/feedback/prompts.js +6 -0
  89. package/dist/browser/feedback/prompts.js.map +1 -1
  90. package/dist/browser/feedback/toast.js +29 -6
  91. package/dist/browser/feedback/toast.js.map +1 -1
  92. package/dist/browser/inputs/ChoiceGroups.js.map +1 -1
  93. package/dist/browser/inputs/Select.js.map +1 -1
  94. package/dist/browser/inputs/SelectChip.js +3 -2
  95. package/dist/browser/inputs/SelectChip.js.map +1 -1
  96. package/dist/browser/inputs/TextInput.js +7 -1
  97. package/dist/browser/inputs/TextInput.js.map +1 -1
  98. package/dist/browser/inputs/markdown/MarkdownEditor.js +61 -37
  99. package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
  100. package/dist/browser/inputs/markdown/behaviors.js +1 -1
  101. package/dist/browser/inputs/markdown/behaviors.js.map +1 -1
  102. package/dist/browser/intl/Format.js +89 -16
  103. package/dist/browser/intl/Format.js.map +1 -1
  104. package/dist/browser/intl/index.js.map +1 -1
  105. package/dist/browser/intl/messages.js +130 -2
  106. package/dist/browser/intl/messages.js.map +1 -1
  107. package/dist/browser/layout/AppWorkspace.js +712 -624
  108. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  109. package/dist/browser/layout/BottomSheet.js +95 -0
  110. package/dist/browser/layout/BottomSheet.js.map +1 -0
  111. package/dist/browser/layout/DetailPanel.js +56 -44
  112. package/dist/browser/layout/DetailPanel.js.map +1 -1
  113. package/dist/browser/layout/Navigation.js +278 -0
  114. package/dist/browser/layout/Navigation.js.map +1 -0
  115. package/dist/browser/layout/PanelDialog.js +219 -71
  116. package/dist/browser/layout/PanelDialog.js.map +1 -1
  117. package/dist/browser/layout/ScrollArea.js +21 -1
  118. package/dist/browser/layout/ScrollArea.js.map +1 -1
  119. package/dist/browser/layout/Settings.js.map +1 -1
  120. package/dist/browser/layout/SidebarItemPreview.js +183 -0
  121. package/dist/browser/layout/SidebarItemPreview.js.map +1 -0
  122. package/dist/browser/layout/app-workspace-controller.js +3 -0
  123. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  124. package/dist/browser/layout/app-workspace-state.js.map +1 -1
  125. package/dist/browser/layout/index.js +3 -0
  126. package/dist/browser/layout/index.js.map +1 -1
  127. package/dist/browser/layout/navigation-model.js +23 -0
  128. package/dist/browser/layout/navigation-model.js.map +1 -0
  129. package/dist/browser/layout/scroll-fade.js +100 -0
  130. package/dist/browser/layout/scroll-fade.js.map +1 -0
  131. package/dist/browser/surfaces/DescriptionList.js.map +1 -1
  132. package/dist/browser/surfaces/StatusBadge.js +2 -1
  133. package/dist/browser/surfaces/StatusBadge.js.map +1 -1
  134. package/dist/fonts/ibm-plex-mono-cyrillic-400-italic-4aded3f2f2a7d27d.woff2 +0 -0
  135. package/dist/fonts/ibm-plex-mono-cyrillic-400-normal-7635422bd10ddbbc.woff2 +0 -0
  136. package/dist/fonts/ibm-plex-mono-cyrillic-500-normal-1d89462e86cb8e87.woff2 +0 -0
  137. package/dist/fonts/ibm-plex-mono-cyrillic-600-normal-2b05a8695c7f9f4a.woff2 +0 -0
  138. package/dist/fonts/ibm-plex-mono-cyrillic-ext-400-italic-a0b3b8cbe5a516e7.woff2 +0 -0
  139. package/dist/fonts/ibm-plex-mono-cyrillic-ext-400-normal-f8c22ec1804bd696.woff2 +0 -0
  140. package/dist/fonts/ibm-plex-mono-cyrillic-ext-500-normal-3febe5c7f22e4b07.woff2 +0 -0
  141. package/dist/fonts/ibm-plex-mono-cyrillic-ext-600-normal-83109cdd4f8665b4.woff2 +0 -0
  142. package/dist/fonts/ibm-plex-mono-latin-400-italic-0840095faae86403.woff2 +0 -0
  143. package/dist/fonts/ibm-plex-mono-latin-400-normal-08949f728dc52d52.woff2 +0 -0
  144. package/dist/fonts/ibm-plex-mono-latin-500-normal-01d285447409c8a5.woff2 +0 -0
  145. package/dist/fonts/ibm-plex-mono-latin-600-normal-0d1f0b8d0722224e.woff2 +0 -0
  146. package/dist/fonts/ibm-plex-mono-latin-ext-400-italic-1b07eee6df7d26b3.woff2 +0 -0
  147. package/dist/fonts/ibm-plex-mono-latin-ext-400-normal-6bc0f226a5b7884a.woff2 +0 -0
  148. package/dist/fonts/ibm-plex-mono-latin-ext-500-normal-6bb06407c97584b0.woff2 +0 -0
  149. package/dist/fonts/ibm-plex-mono-latin-ext-600-normal-32057cf50dd14bdb.woff2 +0 -0
  150. package/dist/fonts/ibm-plex-mono-vietnamese-400-italic-a6bab38af4f9c761.woff2 +0 -0
  151. package/dist/fonts/ibm-plex-mono-vietnamese-400-normal-62632b6375305e70.woff2 +0 -0
  152. package/dist/fonts/ibm-plex-mono-vietnamese-500-normal-781633d95de88040.woff2 +0 -0
  153. package/dist/fonts/ibm-plex-mono-vietnamese-600-normal-51b74d53e106ba8a.woff2 +0 -0
  154. package/dist/fonts/ibm-plex-sans-cyrillic-400-italic-e8731a7e2b00fc4f.woff2 +0 -0
  155. package/dist/fonts/ibm-plex-sans-cyrillic-400-normal-69afad88a0740b6e.woff2 +0 -0
  156. package/dist/fonts/ibm-plex-sans-cyrillic-500-normal-200be3a2a6b1789f.woff2 +0 -0
  157. package/dist/fonts/ibm-plex-sans-cyrillic-600-normal-730becc6f005c18c.woff2 +0 -0
  158. package/dist/fonts/ibm-plex-sans-cyrillic-700-normal-40540598b4c9eb2c.woff2 +0 -0
  159. package/dist/fonts/ibm-plex-sans-cyrillic-ext-400-italic-4ffb25726a7ce4cc.woff2 +0 -0
  160. package/dist/fonts/ibm-plex-sans-cyrillic-ext-400-normal-e2580ad78906551e.woff2 +0 -0
  161. package/dist/fonts/ibm-plex-sans-cyrillic-ext-500-normal-08578d906af6d986.woff2 +0 -0
  162. package/dist/fonts/ibm-plex-sans-cyrillic-ext-600-normal-d60d3d0b182753d5.woff2 +0 -0
  163. package/dist/fonts/ibm-plex-sans-cyrillic-ext-700-normal-d07dd53642480097.woff2 +0 -0
  164. package/dist/fonts/ibm-plex-sans-greek-400-italic-1bc10b01688ba9fa.woff2 +0 -0
  165. package/dist/fonts/ibm-plex-sans-greek-400-normal-02296067bc904d2a.woff2 +0 -0
  166. package/dist/fonts/ibm-plex-sans-greek-500-normal-8cb6e20b4dbbaa5f.woff2 +0 -0
  167. package/dist/fonts/ibm-plex-sans-greek-600-normal-0a9ebd9019415ee9.woff2 +0 -0
  168. package/dist/fonts/ibm-plex-sans-greek-700-normal-c949641d10a3bebc.woff2 +0 -0
  169. package/dist/fonts/ibm-plex-sans-latin-400-italic-6de912e531b6c980.woff2 +0 -0
  170. package/dist/fonts/ibm-plex-sans-latin-400-normal-3b646991d30055a9.woff2 +0 -0
  171. package/dist/fonts/ibm-plex-sans-latin-500-normal-0717336fb31fcdcd.woff2 +0 -0
  172. package/dist/fonts/ibm-plex-sans-latin-600-normal-8960851d691c054e.woff2 +0 -0
  173. package/dist/fonts/ibm-plex-sans-latin-700-normal-42e7b0c143c19df9.woff2 +0 -0
  174. package/dist/fonts/ibm-plex-sans-latin-ext-400-italic-c5c00e8a32022dfe.woff2 +0 -0
  175. package/dist/fonts/ibm-plex-sans-latin-ext-400-normal-c93d2a12aaa280f6.woff2 +0 -0
  176. package/dist/fonts/ibm-plex-sans-latin-ext-500-normal-2846035d85100f84.woff2 +0 -0
  177. package/dist/fonts/ibm-plex-sans-latin-ext-600-normal-b25dfd4f979e442a.woff2 +0 -0
  178. package/dist/fonts/ibm-plex-sans-latin-ext-700-normal-92f0392bd74fa395.woff2 +0 -0
  179. package/dist/fonts/ibm-plex-sans-vietnamese-400-italic-675d4bace127bffb.woff2 +0 -0
  180. package/dist/fonts/ibm-plex-sans-vietnamese-400-normal-771538f7f26551bd.woff2 +0 -0
  181. package/dist/fonts/ibm-plex-sans-vietnamese-500-normal-85ba3d9c2488a813.woff2 +0 -0
  182. package/dist/fonts/ibm-plex-sans-vietnamese-600-normal-5d34b803637befe3.woff2 +0 -0
  183. package/dist/fonts/ibm-plex-sans-vietnamese-700-normal-b79d0c4b68b85007.woff2 +0 -0
  184. package/dist/plex.css +1 -1
  185. package/dist/ssr/actions/Button.js +11 -2
  186. package/dist/ssr/actions/Button.js.map +1 -1
  187. package/dist/ssr/actions/Disclosure.js +2 -2
  188. package/dist/ssr/actions/Disclosure.js.map +1 -1
  189. package/dist/ssr/actions/Dropdown.js +4 -1
  190. package/dist/ssr/actions/Dropdown.js.map +1 -1
  191. package/dist/ssr/actions/FilterChip.js +16 -2
  192. package/dist/ssr/actions/FilterChip.js.map +1 -1
  193. package/dist/ssr/actions/SplitButton.js +69 -22
  194. package/dist/ssr/actions/SplitButton.js.map +1 -1
  195. package/dist/ssr/actions/SpotlightSearch.js +3 -7
  196. package/dist/ssr/actions/SpotlightSearch.js.map +1 -1
  197. package/dist/ssr/actions/Tabs.js +58 -11
  198. package/dist/ssr/actions/Tabs.js.map +1 -1
  199. package/dist/ssr/actions/index.js +2 -2
  200. package/dist/ssr/actions/index.js.map +1 -1
  201. package/dist/ssr/chat/ChatComposer.js +366 -134
  202. package/dist/ssr/chat/ChatComposer.js.map +1 -1
  203. package/dist/ssr/chat/ChatContextPopup.js +86 -0
  204. package/dist/ssr/chat/ChatContextPopup.js.map +1 -0
  205. package/dist/ssr/chat/ChatPrimitives.js +49 -11
  206. package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
  207. package/dist/ssr/chat/ChatTasks.js +48 -0
  208. package/dist/ssr/chat/ChatTasks.js.map +1 -0
  209. package/dist/ssr/chat/ChatTimeline.js +14 -4
  210. package/dist/ssr/chat/ChatTimeline.js.map +1 -1
  211. package/dist/ssr/chat/chat-behavior.js +0 -5
  212. package/dist/ssr/chat/chat-behavior.js.map +1 -1
  213. package/dist/ssr/chat/composer-document.js +55 -0
  214. package/dist/ssr/chat/composer-document.js.map +1 -0
  215. package/dist/ssr/chat/index.js +6 -1
  216. package/dist/ssr/chat/index.js.map +1 -1
  217. package/dist/ssr/chat/types.js.map +1 -1
  218. package/dist/ssr/content/Chart.js +121 -219
  219. package/dist/ssr/content/Chart.js.map +1 -1
  220. package/dist/ssr/content/ChartExplorer.js +257 -0
  221. package/dist/ssr/content/ChartExplorer.js.map +1 -0
  222. package/dist/ssr/content/ChartExplorerControls.js +105 -0
  223. package/dist/ssr/content/ChartExplorerControls.js.map +1 -0
  224. package/dist/ssr/content/ChartFilterControls.js +139 -0
  225. package/dist/ssr/content/ChartFilterControls.js.map +1 -0
  226. package/dist/ssr/content/ChartSnapshotView.js +58 -0
  227. package/dist/ssr/content/ChartSnapshotView.js.map +1 -0
  228. package/dist/ssr/content/DataTable.js +13 -9
  229. package/dist/ssr/content/DataTable.js.map +1 -1
  230. package/dist/ssr/content/FileBrowser.js +3 -0
  231. package/dist/ssr/content/FileBrowser.js.map +1 -1
  232. package/dist/ssr/content/FileGrid.js +38 -0
  233. package/dist/ssr/content/FileGrid.js.map +1 -0
  234. package/dist/ssr/content/FileTree.js +2 -2
  235. package/dist/ssr/content/FileTree.js.map +1 -1
  236. package/dist/ssr/content/FileView.js +356 -75
  237. package/dist/ssr/content/FileView.js.map +1 -1
  238. package/dist/ssr/content/MarkdownView.js +6 -0
  239. package/dist/ssr/content/MarkdownView.js.map +1 -1
  240. package/dist/ssr/content/Pagination.js.map +1 -1
  241. package/dist/ssr/content/PdfPreview.js +37 -24
  242. package/dist/ssr/content/PdfPreview.js.map +1 -1
  243. package/dist/ssr/content/chart-cursor.js +33 -0
  244. package/dist/ssr/content/chart-cursor.js.map +1 -0
  245. package/dist/ssr/content/chart-explorer.js +147 -0
  246. package/dist/ssr/content/chart-explorer.js.map +1 -0
  247. package/dist/ssr/content/chart-inspection.js +447 -0
  248. package/dist/ssr/content/chart-inspection.js.map +1 -0
  249. package/dist/ssr/content/chart-line-gaps.js +53 -0
  250. package/dist/ssr/content/chart-line-gaps.js.map +1 -0
  251. package/dist/ssr/content/chart-map-viewport.js +5 -1
  252. package/dist/ssr/content/chart-map-viewport.js.map +1 -1
  253. package/dist/ssr/content/chart-snapshot.js +63 -0
  254. package/dist/ssr/content/chart-snapshot.js.map +1 -0
  255. package/dist/ssr/content/chart-state-timeline.js +32 -4
  256. package/dist/ssr/content/chart-state-timeline.js.map +1 -1
  257. package/dist/ssr/content/chart-svg.js +54 -0
  258. package/dist/ssr/content/chart-svg.js.map +1 -0
  259. package/dist/ssr/content/collection-selection.js +109 -0
  260. package/dist/ssr/content/collection-selection.js.map +1 -0
  261. package/dist/ssr/content/delimited-preferences.js +21 -0
  262. package/dist/ssr/content/delimited-preferences.js.map +1 -0
  263. package/dist/ssr/content/file-tree.js.map +1 -1
  264. package/dist/ssr/content/file-view-preview.js +11 -7
  265. package/dist/ssr/content/file-view-preview.js.map +1 -1
  266. package/dist/ssr/content/index.js +9 -0
  267. package/dist/ssr/content/index.js.map +1 -1
  268. package/dist/ssr/feedback/InlineGuidance.js +17 -3
  269. package/dist/ssr/feedback/InlineGuidance.js.map +1 -1
  270. package/dist/ssr/feedback/dialog-core.js +81 -7
  271. package/dist/ssr/feedback/dialog-core.js.map +1 -1
  272. package/dist/ssr/feedback/prompts.js +6 -0
  273. package/dist/ssr/feedback/prompts.js.map +1 -1
  274. package/dist/ssr/feedback/toast.js +29 -6
  275. package/dist/ssr/feedback/toast.js.map +1 -1
  276. package/dist/ssr/inputs/ChoiceGroups.js.map +1 -1
  277. package/dist/ssr/inputs/Select.js.map +1 -1
  278. package/dist/ssr/inputs/SelectChip.js +3 -3
  279. package/dist/ssr/inputs/SelectChip.js.map +1 -1
  280. package/dist/ssr/inputs/TextInput.js.map +1 -1
  281. package/dist/ssr/inputs/markdown/MarkdownEditor.js +19 -11
  282. package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
  283. package/dist/ssr/inputs/markdown/behaviors.js +1 -1
  284. package/dist/ssr/inputs/markdown/behaviors.js.map +1 -1
  285. package/dist/ssr/intl/Format.js +61 -0
  286. package/dist/ssr/intl/Format.js.map +1 -1
  287. package/dist/ssr/intl/index.js.map +1 -1
  288. package/dist/ssr/intl/messages.js +130 -2
  289. package/dist/ssr/intl/messages.js.map +1 -1
  290. package/dist/ssr/layout/AppWorkspace.js +368 -275
  291. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  292. package/dist/ssr/layout/BottomSheet.js +43 -0
  293. package/dist/ssr/layout/BottomSheet.js.map +1 -0
  294. package/dist/ssr/layout/DetailPanel.js +11 -4
  295. package/dist/ssr/layout/DetailPanel.js.map +1 -1
  296. package/dist/ssr/layout/Navigation.js +181 -0
  297. package/dist/ssr/layout/Navigation.js.map +1 -0
  298. package/dist/ssr/layout/PanelDialog.js +111 -26
  299. package/dist/ssr/layout/PanelDialog.js.map +1 -1
  300. package/dist/ssr/layout/ScrollArea.js +16 -1
  301. package/dist/ssr/layout/ScrollArea.js.map +1 -1
  302. package/dist/ssr/layout/Settings.js.map +1 -1
  303. package/dist/ssr/layout/SidebarItemPreview.js +133 -0
  304. package/dist/ssr/layout/SidebarItemPreview.js.map +1 -0
  305. package/dist/ssr/layout/app-workspace-controller.js +3 -0
  306. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  307. package/dist/ssr/layout/app-workspace-state.js.map +1 -1
  308. package/dist/ssr/layout/index.js +3 -0
  309. package/dist/ssr/layout/index.js.map +1 -1
  310. package/dist/ssr/layout/navigation-model.js +23 -0
  311. package/dist/ssr/layout/navigation-model.js.map +1 -0
  312. package/dist/ssr/layout/scroll-fade.js +100 -0
  313. package/dist/ssr/layout/scroll-fade.js.map +1 -0
  314. package/dist/ssr/surfaces/DescriptionList.js.map +1 -1
  315. package/dist/ssr/surfaces/StatusBadge.js +2 -1
  316. package/dist/ssr/surfaces/StatusBadge.js.map +1 -1
  317. package/dist/styles.css +1 -1
  318. package/dist/tabler.css +1 -1
  319. package/dist/types/actions/Button.d.ts +4 -0
  320. package/dist/types/actions/Disclosure.d.ts +1 -0
  321. package/dist/types/actions/FilterChip.d.ts +4 -0
  322. package/dist/types/actions/SplitButton.d.ts +6 -0
  323. package/dist/types/actions/SpotlightSearch.d.ts +0 -4
  324. package/dist/types/actions/Tabs.d.ts +4 -0
  325. package/dist/types/actions/index.d.ts +4 -4
  326. package/dist/types/chat/ChatComposer.d.ts +20 -2
  327. package/dist/types/chat/ChatContextPopup.d.ts +6 -0
  328. package/dist/types/chat/ChatPrimitives.d.ts +4 -0
  329. package/dist/types/chat/ChatTasks.d.ts +15 -0
  330. package/dist/types/chat/ChatTimeline.d.ts +2 -0
  331. package/dist/types/chat/chat-behavior.d.ts +0 -3
  332. package/dist/types/chat/composer-document.d.ts +14 -0
  333. package/dist/types/chat/index.d.ts +8 -1
  334. package/dist/types/chat/types.d.ts +7 -0
  335. package/dist/types/content/Chart.d.ts +42 -23
  336. package/dist/types/content/ChartExplorer.d.ts +34 -0
  337. package/dist/types/content/ChartExplorerControls.d.ts +10 -0
  338. package/dist/types/content/ChartFilterControls.d.ts +21 -0
  339. package/dist/types/content/ChartSnapshotView.d.ts +11 -0
  340. package/dist/types/content/DataTable.d.ts +4 -0
  341. package/dist/types/content/FileBrowser.d.ts +1 -0
  342. package/dist/types/content/FileGrid.d.ts +21 -0
  343. package/dist/types/content/FileView.d.ts +20 -0
  344. package/dist/types/content/PdfPreview.d.ts +8 -1
  345. package/dist/types/content/chart-cursor.d.ts +15 -0
  346. package/dist/types/content/chart-explorer.d.ts +48 -0
  347. package/dist/types/content/chart-inspection.d.ts +40 -0
  348. package/dist/types/content/chart-line-gaps.d.ts +5 -0
  349. package/dist/types/content/chart-map-viewport.d.ts +1 -1
  350. package/dist/types/content/chart-snapshot.d.ts +26 -0
  351. package/dist/types/content/chart-svg.d.ts +21 -0
  352. package/dist/types/content/collection-selection.d.ts +24 -0
  353. package/dist/types/content/delimited-preferences.d.ts +11 -0
  354. package/dist/types/content/file-tree.d.ts +2 -0
  355. package/dist/types/content/file-view-preview.d.ts +4 -1
  356. package/dist/types/content/index.d.ts +16 -2
  357. package/dist/types/feedback/InlineGuidance.d.ts +1 -0
  358. package/dist/types/feedback/dialog-core.d.ts +11 -0
  359. package/dist/types/feedback/prompts.d.ts +2 -0
  360. package/dist/types/feedback/toast.d.ts +7 -1
  361. package/dist/types/inputs/markdown/MarkdownEditor.d.ts +5 -1
  362. package/dist/types/intl/Format.d.ts +9 -0
  363. package/dist/types/intl/index.d.ts +1 -1
  364. package/dist/types/intl/messages.d.ts +31 -1
  365. package/dist/types/layout/AppWorkspace.d.ts +35 -18
  366. package/dist/types/layout/BottomSheet.d.ts +23 -0
  367. package/dist/types/layout/DetailPanel.d.ts +1 -0
  368. package/dist/types/layout/Navigation.d.ts +8 -0
  369. package/dist/types/layout/PanelDialog.d.ts +14 -1
  370. package/dist/types/layout/ScrollArea.d.ts +4 -0
  371. package/dist/types/layout/Settings.d.ts +1 -1
  372. package/dist/types/layout/SidebarItemPreview.d.ts +11 -0
  373. package/dist/types/layout/index.d.ts +4 -1
  374. package/dist/types/layout/navigation-model.d.ts +48 -0
  375. package/dist/types/layout/scroll-fade.d.ts +3 -0
  376. package/dist/types/surfaces/DescriptionList.d.ts +1 -1
  377. package/dist/types/surfaces/StatusBadge.d.ts +1 -1
  378. package/package.json +5 -7
@@ -0,0 +1,48 @@
1
+ import { type Accessor } from "solid-js";
2
+ import type { ChartSnapshot } from "./chart-snapshot";
3
+ /** Omitted visibleKeys means no series filter; [] explicitly hides every series. */
4
+ export type ChartExplorerRequest = {
5
+ step?: string;
6
+ visibleKeys?: readonly string[];
7
+ referenceStep?: string;
8
+ };
9
+ export type ChartExplorerRow = {
10
+ key: string;
11
+ };
12
+ export type ChartExplorerData<T extends ChartExplorerRow = ChartExplorerRow> = {
13
+ chart: ChartSnapshot;
14
+ rows: readonly T[];
15
+ };
16
+ export type ChartExplorerCharts = Readonly<Record<string, ChartExplorerData>>;
17
+ export type ChartExplorerSnapshot<C extends ChartExplorerCharts> = {
18
+ request: ChartExplorerRequest;
19
+ charts: C;
20
+ };
21
+ export type ChartExplorerOptions<C extends ChartExplorerCharts> = {
22
+ /** Authoritative initial/replacement data. Replacements cancel pending work. */
23
+ snapshot: Accessor<ChartExplorerSnapshot<C>>;
24
+ load: (request: ChartExplorerRequest, signal: AbortSignal) => ChartExplorerSnapshot<NoInfer<C>> | Promise<ChartExplorerSnapshot<NoInfer<C>>>;
25
+ /** Optional controlled filters. Changes trigger loading; setRequest emits onRequestChange. */
26
+ request?: Accessor<ChartExplorerRequest>;
27
+ onRequestChange?: (request: ChartExplorerRequest) => void;
28
+ selectedKey?: Accessor<string | null>;
29
+ onSelectedKeyChange?: (key: string | null) => void;
30
+ };
31
+ export type ChartExplorerController<C extends ChartExplorerCharts> = ReturnType<typeof createChartExplorer<C>>;
32
+ export declare const sameExplorerRequest: (a: ChartExplorerRequest, b: ChartExplorerRequest) => boolean;
33
+ export declare function validateChartExplorerData(data: ChartExplorerData): void;
34
+ /** One owner for one or many charts. Source/HTTP/aggregation remain caller-owned. */
35
+ export declare function createChartExplorer<C extends ChartExplorerCharts>(options: ChartExplorerOptions<C>): {
36
+ snapshot: Accessor<ChartExplorerSnapshot<C>>;
37
+ desired: Accessor<ChartExplorerRequest>;
38
+ loading: Accessor<boolean>;
39
+ error: Accessor<Error | null>;
40
+ selectedKey: () => string | null;
41
+ select: (key: string | null) => void;
42
+ setRequest: (next: ChartExplorerRequest) => void;
43
+ /** Force a fresh read of the desired filters, even when nothing changed. */
44
+ refresh: () => Promise<void>;
45
+ retry: () => Promise<void>;
46
+ pinReference(): void;
47
+ clearReference(): void;
48
+ };
@@ -0,0 +1,40 @@
1
+ import type { ChartDatum } from "@k2b/stdlib";
2
+ import type { ChartKind } from "./Chart";
3
+ import type { ChartCursor } from "./chart-cursor";
4
+ export type ChartDatumRef = Pick<ChartDatum, "role" | "index" | "seriesIndex">;
5
+ export declare const sameChartDatum: (a: ChartDatumRef, b: ChartDatumRef) => boolean;
6
+ export type ChartSelection = {
7
+ kind: ChartKind;
8
+ datum: ChartDatum;
9
+ };
10
+ export type ChartTooltip = {
11
+ title?: string;
12
+ rows: readonly {
13
+ label: string;
14
+ value: string;
15
+ }[];
16
+ };
17
+ export type ChartTooltipFormatter = (selection: ChartSelection) => ChartTooltip;
18
+ export declare function isChartDatum(value: unknown): value is ChartDatum;
19
+ /** Enhances existing SVG nodes. Pointer/focus changes never rebuild the chart. */
20
+ export declare function createChartInspection(options: {
21
+ container: () => HTMLDivElement | undefined;
22
+ cursor?: () => ChartCursor | undefined;
23
+ tooltip: () => HTMLSpanElement | undefined;
24
+ anchor: () => HTMLSpanElement | undefined;
25
+ kind: () => ChartKind;
26
+ enabled: () => boolean;
27
+ format: ChartTooltipFormatter;
28
+ select: (selection: ChartSelection) => void;
29
+ }): {
30
+ selectDatum: (selected: ChartDatumRef | null | undefined) => void;
31
+ selectData: (selected: readonly ChartDatumRef[]) => void;
32
+ move: (event: PointerEvent) => void;
33
+ down: (event: PointerEvent) => void;
34
+ click: (event: MouseEvent) => void;
35
+ focus: (event: FocusEvent) => void;
36
+ key: (event: KeyboardEvent) => boolean;
37
+ close: () => void;
38
+ invalidate: () => void;
39
+ leave: () => void;
40
+ };
@@ -0,0 +1,5 @@
1
+ /** Adapt trusted stdlib line geometry without changing series, indices or inspection. */
2
+ export declare function lineGapsSvg(svg: string, maxGap: number, options: {
3
+ smooth?: boolean;
4
+ step?: "before" | "after" | "middle";
5
+ }): string;
@@ -1,5 +1,5 @@
1
1
  import type { MapViewport } from "@k2b/stdlib";
2
2
  export declare const DEFAULT_MAP_VIEWPORT: MapViewport;
3
3
  export declare const normalizeMapViewport: (viewport: MapViewport | undefined) => MapViewport;
4
- export declare const zoomMapViewport: (viewport: MapViewport, delta: number) => MapViewport;
4
+ export declare const zoomMapViewport: (viewport: MapViewport, delta: number, focus?: Pick<MapViewport, "latitude" | "longitude">) => MapViewport;
5
5
  export declare const panMapViewport: (viewport: MapViewport, deltaX: number, deltaY: number, width: number, height: number) => MapViewport;
@@ -0,0 +1,26 @@
1
+ import { type ChartDatum } from "@k2b/stdlib";
2
+ import { type ChartKind, type ChartRenderOptions } from "./Chart";
3
+ import { type ChartSelection, type ChartTooltip, type ChartTooltipFormatter } from "./chart-inspection";
4
+ /** Trusted output of prepareChartSnapshot; never accept arbitrary user SVG. */
5
+ export type ChartSnapshot = {
6
+ kind: ChartKind;
7
+ svg: string;
8
+ width: number;
9
+ height: number;
10
+ stretch: boolean;
11
+ marks: readonly {
12
+ key: string;
13
+ rowKey: string;
14
+ datum: ChartDatum;
15
+ tooltip: ChartTooltip;
16
+ reference?: boolean;
17
+ }[];
18
+ };
19
+ /** Pure SVG preparation for server or browser. Transfer only this output across SSR boundaries. */
20
+ export declare function prepareChartSnapshot(options: ChartRenderOptions, inspection: {
21
+ key: (selection: ChartSelection) => string;
22
+ /** Defaults to the mark key for one-to-one charts. */
23
+ rowKey?: (selection: ChartSelection) => string;
24
+ tooltip: ChartTooltipFormatter;
25
+ reference?: (selection: ChartSelection) => boolean;
26
+ }): ChartSnapshot;
@@ -0,0 +1,21 @@
1
+ import type { MapViewport } from "@k2b/stdlib";
2
+ /** Give maps a CSS-sized viewport while retaining the renderer's projection.
3
+ * The outer SVG uses pixels for headers/legend; the nested geographic viewport
4
+ * keeps one fitted scale across zoom levels and clips only at the plot edges.
5
+ */
6
+ export declare function responsiveMapSvg(svg: string, width: number, height: number, viewport: MapViewport): string;
7
+ /** Adapt our generated SVGs to a CSS-sized box without rebuilding their geometry.
8
+ * Only stdlib and the local timeline renderer supply this markup; this is not a
9
+ * parser for arbitrary SVG. The viewBox remains the interaction coordinate space.
10
+ */
11
+ export declare function responsiveChartSvg(svg: string): string;
12
+ /** Add initial controlled selection to our own renderer metadata during SSR. */
13
+ export declare function selectedChartSvg(svg: string, selected: {
14
+ role: string;
15
+ index: number;
16
+ seriesIndex?: number;
17
+ } | readonly {
18
+ role: string;
19
+ index: number;
20
+ seriesIndex?: number;
21
+ }[] | null | undefined): string;
@@ -0,0 +1,24 @@
1
+ export type SelectionModifiers = {
2
+ shiftKey?: boolean;
3
+ ctrlKey?: boolean;
4
+ metaKey?: boolean;
5
+ };
6
+ export type CollectionSelection = ReturnType<typeof createCollectionSelection>;
7
+ /** One selection and focus model shared by alternate presentations of a collection. */
8
+ export declare function createCollectionSelection(options: {
9
+ ids: () => readonly string[];
10
+ initial?: readonly string[];
11
+ onChange?: (ids: readonly string[]) => void;
12
+ }): {
13
+ selected: import("solid-js").Accessor<ReadonlySet<string>>;
14
+ focused: import("solid-js").Accessor<string | null>;
15
+ select: (id: string, modifiers?: SelectionModifiers) => void;
16
+ toggle: (id: string) => void;
17
+ replace: (ids: readonly string[]) => void;
18
+ focus: (id: string) => void;
19
+ keyDown: (event: KeyboardEvent, id: string, columns?: number) => boolean;
20
+ clear: () => void;
21
+ all: () => void;
22
+ markFocused: (id: string) => string;
23
+ register: (id: string, element: HTMLElement) => void;
24
+ };
@@ -0,0 +1,11 @@
1
+ export type DelimitedPreferences = {
2
+ encoding: string;
3
+ delimiter: string;
4
+ view: "table" | "raw";
5
+ };
6
+ /** Persist presentation choices only, never file contents. Ignore stale or corrupt storage. */
7
+ export declare const readDelimitedPreferences: (stored: string | null) => DelimitedPreferences;
8
+ export declare const decodeDelimitedContent: (content: {
9
+ encoding: "utf8" | "base64";
10
+ content: string;
11
+ }, encoding: string) => string;
@@ -10,6 +10,8 @@
10
10
  export type FileTreeEntry = {
11
11
  /** Canonical identity, e.g. "/input/report.csv". */
12
12
  path: string;
13
+ /** Optional presentation label; path remains the identity and rename target. */
14
+ displayName?: string;
13
15
  /** Folders are usually implicit from paths — explicit entries model empty dirs. */
14
16
  kind?: "file" | "folder";
15
17
  size?: number;
@@ -15,8 +15,11 @@ export declare const canPreviewFile: (file: FileViewFile) => boolean;
15
15
  export type DelimitedTextPreview = {
16
16
  rows: string[][];
17
17
  truncated: boolean;
18
+ totalRows: number;
19
+ columnsTruncated: boolean;
18
20
  };
19
- export declare const parseDelimitedText: (input: string, delimiter: "," | "\t", limits?: {
21
+ export declare const parseDelimitedText: (input: string, delimiter: string, limits?: {
20
22
  rows?: number;
21
23
  columns?: number;
24
+ offset?: number;
22
25
  }) => DelimitedTextPreview;
@@ -1,22 +1,36 @@
1
1
  export type { CalendarAttendee, CalendarDayBadge, CalendarEvent, CalendarEventColor, CalendarEventRenderContext, CalendarEventTimeChange, CalendarLabels, CalendarProps, CalendarRecurrence, CalendarResource, CalendarView, } from "./Calendar";
2
2
  export { default as Calendar } from "./Calendar";
3
- export type { ChartKind, ChartLabels, ChartProps } from "./Chart";
3
+ export type { ChartKind, ChartLabels, ChartProps, ChartRenderOptions } from "./Chart";
4
4
  export { default as Chart } from "./Chart";
5
+ export type { ChartExplorerColumn, ChartExplorerProps } from "./ChartExplorer";
6
+ export { ChartExplorer } from "./ChartExplorer";
7
+ export type { ChartExplorerControlsProps } from "./ChartExplorerControls";
8
+ export { ChartExplorerControls } from "./ChartExplorerControls";
9
+ export { ChartFilterControls, type ChartFilterControlsProps } from "./ChartFilterControls";
10
+ export { ChartSnapshotView } from "./ChartSnapshotView";
5
11
  export type { CodeDisplayLanguage, CodeDisplayProps } from "./CodeDisplay";
6
12
  export { default as CodeDisplay } from "./CodeDisplay";
13
+ export { type ChartCursor, createChartCursor } from "./chart-cursor";
14
+ export type { ChartExplorerCharts, ChartExplorerController, ChartExplorerData, ChartExplorerOptions, ChartExplorerRequest, ChartExplorerRow, ChartExplorerSnapshot, } from "./chart-explorer";
15
+ export { createChartExplorer } from "./chart-explorer";
16
+ export type { ChartDatumRef, ChartSelection, ChartTooltip, ChartTooltipFormatter } from "./chart-inspection";
17
+ export type { ChartSnapshot } from "./chart-snapshot";
18
+ export { prepareChartSnapshot } from "./chart-snapshot";
7
19
  export type { StateTimelineChartOptions, StateTimelineDomain, StateTimelineInterval, StateTimelineRow, StateTimelineState, } from "./chart-state-timeline";
20
+ export { type CollectionSelection, createCollectionSelection, type SelectionModifiers } from "./collection-selection";
8
21
  export type { DataTableColumn, DataTableControlsProps, DataTableFooter, DataTableHeaderProps, DataTablePanelFooterProps, DataTablePanelProps, DataTableProps, DataTableRenderCell, DataTableRenderHeader, DataTableSort, } from "./DataTable";
9
22
  export { default as DataTable } from "./DataTable";
10
23
  export type { DocCodeHighlighter, DocCodeProps, DocConcept, DocNoteVariant, DocRow } from "./Docs";
11
24
  export { DocCode, DocConceptGrid, DocInlineCode, DocLead, DocNote, DocPage, DocRows, DocSection } from "./Docs";
12
25
  export { FileBrowserPanel, type FileBrowserPanelProps, type FileSource, openFileBrowser } from "./FileBrowser";
26
+ export { FileGrid, type FileGridProps } from "./FileGrid";
13
27
  export { default as FileTree, type FileTreeActions, type FileTreeEntry, type FileTreeProps } from "./FileTree";
14
28
  export { canPreviewFile, default as FileView, type FileViewContent, type FileViewFile, type FileViewPreviewKind, type FileViewProps, type FileViewRenderer, type FileViewRendererProps, formatFileViewSize, getFileViewPreviewKind, } from "./FileView";
15
29
  export type { LightboxImage } from "./Lightbox";
16
30
  export { default as Lightbox } from "./Lightbox";
17
31
  export type { LogTableEntry } from "./LogEntriesTable";
18
32
  export { default as LogEntriesTable } from "./LogEntriesTable";
19
- export { default as MarkdownView, renderSafeMarkdown, type MarkdownRenderOptions, type MarkdownViewProps } from "./MarkdownView";
33
+ export { default as MarkdownView, type MarkdownRenderOptions, type MarkdownViewProps, renderSafeMarkdown } from "./MarkdownView";
20
34
  export { Pagination, type PaginationProps } from "./Pagination";
21
35
  export type { PdfPreviewProps, PdfPreviewRequest } from "./PdfPreview";
22
36
  export { default as PdfPreview } from "./PdfPreview";
@@ -3,6 +3,7 @@ import type { IntentTone } from "../semantics";
3
3
  export type InlineGuidanceProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, "children" | "class"> & {
4
4
  children: JSX.Element;
5
5
  tone?: IntentTone;
6
+ loading?: boolean;
6
7
  icon?: string | false;
7
8
  class?: string;
8
9
  };
@@ -1,6 +1,8 @@
1
1
  import type { JSX } from "solid-js";
2
2
  export type DialogClose<T> = (result?: T) => void;
3
3
  export type OpenDialogOptions = {
4
+ /** Close only this dialog when its owning operation is cancelled. */
5
+ signal?: AbortSignal;
4
6
  panelClassName?: string;
5
7
  contentClassName?: string;
6
8
  initialFocus?: "first-input" | "none" | ((dialog: HTMLDialogElement) => HTMLElement | null);
@@ -9,8 +11,17 @@ export type OpenDialogOptions = {
9
11
  };
10
12
  export type DialogRender<T> = (close: DialogClose<T>, context: {
11
13
  dialog: HTMLDialogElement;
14
+ /** Switch this entry between a modal and a modeless window without remounting. */
15
+ setModal: (modal: boolean) => void;
16
+ /** Set viewport coordinates, or restore the panel stylesheet position with null. */
17
+ setPosition: (position: {
18
+ x: number;
19
+ y: number;
20
+ } | null) => void;
12
21
  /** Route Escape/backdrop through the same guarded handler as Cancel and X. */
13
22
  setDismissHandler: (handler: () => void | Promise<void>) => void;
23
+ /** Request dismissal through this entry's cancellation policy and guard. */
24
+ requestDismiss: () => Promise<void>;
14
25
  }) => JSX.Element;
15
26
  export type DialogCore = {
16
27
  open: <T>(view: DialogRender<T>, options?: OpenDialogOptions) => Promise<T | undefined>;
@@ -1,6 +1,7 @@
1
1
  import { type JSX } from "solid-js";
2
2
  import { type OpenDialogOptions } from "./dialog-core";
3
3
  export interface DialogOptions {
4
+ signal?: AbortSignal;
4
5
  title?: string;
5
6
  ariaLabel?: string;
6
7
  icon?: string;
@@ -124,6 +125,7 @@ type InferFormValues<T extends Record<string, FieldSchema>> = {
124
125
  };
125
126
  type PromptFormValue = string | number | boolean | string[] | undefined;
126
127
  type PromptFormOptions<T extends Record<string, FieldSchema>> = {
128
+ signal?: AbortSignal;
127
129
  title?: string;
128
130
  ariaLabel?: string;
129
131
  icon?: string;
@@ -1,14 +1,20 @@
1
1
  export type ToastVariant = "default" | "success" | "error";
2
2
  export type ToastAction = {
3
3
  label: string;
4
+ } & ({
4
5
  href: string;
5
- };
6
+ } | {
7
+ onClick: () => void;
8
+ });
6
9
  export type ToastOptions = {
7
10
  variant?: ToastVariant;
8
11
  duration?: number;
9
12
  iconClass?: string;
10
13
  title?: string;
11
14
  action?: ToastAction | null;
15
+ /** Fraction from 0 to 1, or an indeterminate activity indicator. null removes it. */
16
+ progress?: number | "indeterminate" | null;
17
+ dismissLabel?: string;
12
18
  };
13
19
  export type ToastHandle = {
14
20
  dismiss: () => void;
@@ -13,11 +13,15 @@ export type MarkdownEditorProps = ValueFieldProps<string> & {
13
13
  abbreviations?: Record<string, string>;
14
14
  completions?: readonly Completion[];
15
15
  showStats?: boolean;
16
- variant?: "default" | "paper";
16
+ variant?: "default" | "paper" | "embedded";
17
17
  fill?: boolean;
18
+ /** Groups save and close at the end of the toolbar. The caller owns navigation and unsaved-change confirmation. */
19
+ onClose?: () => void;
18
20
  onSave?: () => void;
19
21
  saveDisabled?: boolean;
20
22
  saving?: boolean;
23
+ /** Shows a successful-save check. The caller clears it after a brief delay or the next edit. */
24
+ saved?: boolean;
21
25
  toolbarTrailing?: JSX.Element;
22
26
  };
23
27
  export declare function MarkdownEditor(props: MarkdownEditorProps): JSX.Element;
@@ -51,6 +51,14 @@ export type FormatRelativeTimeProps = TimeElementProps & LocaleProp & FallbackPr
51
51
  /** IANA timezone used to select calendar-relative labels. Defaults to `"UTC"`. */
52
52
  timeZone?: string;
53
53
  };
54
+ export type FormatRelativeDateProps = TimeElementProps & LocaleProp & FallbackProp & {
55
+ /** A Gregorian calendar date in strict YYYY-MM-DD format, never timezone-shifted. */
56
+ value: string | null | undefined;
57
+ /** Calendar date, Date, or ISO timestamp with an explicit offset. Defaults to now. */
58
+ base?: Date | string;
59
+ /** Zone used to read the base instant as a calendar day. Defaults to UTC. */
60
+ timeZone?: string;
61
+ };
54
62
  export type FormatDurationProps = TimeElementProps & LocaleProp & FallbackProp & {
55
63
  from: Date | string | null | undefined;
56
64
  to: Date | string | null | undefined;
@@ -78,6 +86,7 @@ export declare const Format: {
78
86
  readonly Time: (props: FormatDateProps) => JSX.Element;
79
87
  readonly DateTime: (props: FormatDateProps) => JSX.Element;
80
88
  readonly RelativeTime: (props: FormatRelativeTimeProps) => JSX.Element;
89
+ readonly RelativeDate: (props: FormatRelativeDateProps) => JSX.Element;
81
90
  readonly Duration: (props: FormatDurationProps) => JSX.Element;
82
91
  readonly DurationMs: (props: FormatDurationMsProps) => JSX.Element;
83
92
  };
@@ -1,4 +1,4 @@
1
- export type { FormatBytesProps, FormatCurrencyProps, FormatDateProps, FormatDateTimeProps, FormatDurationMsProps, FormatDurationProps, FormatNumberProps, FormatPercentProps, FormatRelativeTimeProps, FormatTimeProps, } from "./Format";
1
+ export type { FormatBytesProps, FormatCurrencyProps, FormatDateProps, FormatDateTimeProps, FormatDurationMsProps, FormatDurationProps, FormatNumberProps, FormatPercentProps, FormatRelativeDateProps, FormatRelativeTimeProps, FormatTimeProps, } from "./Format";
2
2
  export { Format } from "./Format";
3
3
  export type { LocaleProviderProps } from "./locale";
4
4
  export { LocaleProvider, useLocale } from "./locale";
@@ -1,4 +1,19 @@
1
1
  declare const uiMessages: import("@k2b/stdlib").Catalog<{
2
+ chartView: string;
3
+ chartDiagram: string;
4
+ chartData: string;
5
+ chartSeries: string;
6
+ chartOnly: string;
7
+ chartShowAll: string;
8
+ chartShowing: string;
9
+ chartSelectedDatum: string;
10
+ chartReference: string;
11
+ chartCurrent: string;
12
+ chartPinReference: string;
13
+ chartRemoveComparison: string;
14
+ chartPreviousData: string;
15
+ chartCopyData: string;
16
+ chartCopyFailed: string;
2
17
  actions: string;
3
18
  add: string;
4
19
  addTag: string;
@@ -152,6 +167,7 @@ declare const uiMessages: import("@k2b/stdlib").Catalog<{
152
167
  commands: string;
153
168
  dropFilesToAttach: string;
154
169
  conversation: string;
170
+ jumpToLatest: string;
155
171
  conversationMessages: ({ label }: {
156
172
  label: string;
157
173
  }) => string;
@@ -213,6 +229,10 @@ declare const uiMessages: import("@k2b/stdlib").Catalog<{
213
229
  filterActions: string;
214
230
  info: string;
215
231
  interactiveLineChart: string;
232
+ interactiveChart: string;
233
+ chartFields: ({ key }: {
234
+ key: string;
235
+ }) => string;
216
236
  interactiveMap: string;
217
237
  interactiveTimeline: string;
218
238
  ok: string;
@@ -355,12 +375,22 @@ declare const uiMessages: import("@k2b/stdlib").Catalog<{
355
375
  markdownFormatting: string;
356
376
  numberedListShortcut: string;
357
377
  quote: string;
378
+ csvSettings: string;
379
+ csvEncoding: string;
380
+ csvSeparator: string;
381
+ csvDefaultSeparator: string;
382
+ csvComma: string;
383
+ csvSemicolon: string;
384
+ csvTab: string;
385
+ csvView: string;
386
+ csvRaw: string;
358
387
  delimitedFileEmpty: string;
359
388
  edit: string;
360
389
  emptyFile: string;
361
390
  failedLoadFile: string;
362
391
  noInlinePreview: string;
363
- previewLimited: string;
392
+ previewMoreLines: (n: number) => string;
393
+ previewColumnsLimited: string;
364
394
  textEditor: string;
365
395
  audioUnsupported: string;
366
396
  videoUnsupported: string;
@@ -1,9 +1,12 @@
1
1
  import { type LinkNavigateEvent, type NavigationScrollMode } from "@k2b/ssr/nav";
2
2
  import { type JSX } from "solid-js";
3
3
  import { type AppWorkspaceLayoutState } from "./app-workspace-state";
4
+ import type { ScrollAreaProps } from "./ScrollArea";
4
5
  export type AppWorkspaceProps = {
5
6
  children: JSX.Element;
6
7
  class?: string;
8
+ /** A host with its own mobile chrome can use the full canvas below 1024px. */
9
+ mobileSurface?: "contained" | "flush";
7
10
  resizable?: boolean;
8
11
  /**
9
12
  * Restores a persisted layout when the workspace mounts. Persistence itself
@@ -33,6 +36,7 @@ export type AppWorkspaceMainProps = {
33
36
  class?: string;
34
37
  mobilePane?: string;
35
38
  scroll?: boolean;
39
+ scrollFade?: boolean;
36
40
  scrollPreserveKey?: string | false;
37
41
  "aria-busy"?: boolean | "true" | "false";
38
42
  };
@@ -48,6 +52,7 @@ export type AppWorkspaceMainPaneProps = {
48
52
  maxSize?: number;
49
53
  class?: string;
50
54
  scroll?: boolean;
55
+ scrollFade?: boolean;
51
56
  children: JSX.Element;
52
57
  };
53
58
  export type AppWorkspaceDetailWidth = "sm" | "md" | "lg" | "xl";
@@ -75,6 +80,7 @@ export type AppWorkspaceBottomDrawerProps = {
75
80
  resizable?: boolean;
76
81
  };
77
82
  export type AppWorkspaceSidebarProps = {
83
+ label?: string;
78
84
  children: JSX.Element;
79
85
  class?: string;
80
86
  resizable?: boolean;
@@ -84,32 +90,46 @@ export type AppWorkspaceSidebarProps = {
84
90
  minSize?: number;
85
91
  maxSize?: number;
86
92
  };
87
- export type AppWorkspaceSidebarMobileTriggerProps = {
88
- label: string;
89
- };
90
- export type AppWorkspaceSidebarMobileProps = {
91
- children: JSX.Element;
92
- };
93
- export type AppWorkspaceSidebarMobileItemsProps = {
94
- children: JSX.Element;
95
- scrollPreserveKey?: string | false;
96
- };
97
93
  export type AppWorkspaceSidebarVisibility = "always" | "expanded" | "collapsed";
98
94
  export type AppWorkspaceSidebarAccessoryVisibility = "always" | "hover";
99
- export type AppWorkspaceSidebarBodyProps = {
95
+ type AppWorkspaceSidebarContentProps = {
100
96
  children: JSX.Element;
101
97
  class?: string;
102
98
  scrollPreserveKey?: string | false;
103
99
  sidebarMode?: AppWorkspaceSidebarVisibility;
104
100
  };
105
- export type AppWorkspaceSidebarSectionProps = AppWorkspaceSidebarBodyProps & {
101
+ export type AppWorkspaceSidebarBodyProps = AppWorkspaceSidebarContentProps & {
102
+ scrollFade?: boolean;
103
+ };
104
+ export type AppWorkspaceSidebarSectionProps = AppWorkspaceSidebarContentProps & {
106
105
  title?: string;
106
+ icon?: string;
107
+ count?: number;
108
+ collapsible?: boolean;
109
+ open?: boolean;
110
+ defaultOpen?: boolean;
111
+ onOpenChange?: (open: boolean) => void;
107
112
  actions?: JSX.Element;
108
113
  };
109
114
  export type AppWorkspaceSidebarItemTone = "default" | "success" | "danger";
110
115
  export type AppWorkspaceSidebarIconActionTone = "default" | "success" | "danger";
111
116
  export type AppWorkspaceSidebarItemProps = {
112
117
  children: JSX.Element;
118
+ /** Card rows add a quiet context header above the main label. */
119
+ variant?: "row" | "card";
120
+ context?: JSX.Element;
121
+ contextMeta?: JSX.Element;
122
+ /** Passive second line; keep controls in actions or preview. */
123
+ description?: JSX.Element;
124
+ /** Interactive details, also reachable through a dedicated button. */
125
+ preview?: {
126
+ label: string;
127
+ content: JSX.Element | ((close: () => void) => JSX.Element);
128
+ trigger?: "action" | "row";
129
+ align?: "center" | "end";
130
+ viewportSize?: ScrollAreaProps["viewportSize"];
131
+ onOpenChange?: (open: boolean) => void;
132
+ };
113
133
  href?: string;
114
134
  /** Document navigation by default; opt into enhanced navigation only when the owning island applies the target state. */
115
135
  navigation?: "enhanced" | "document";
@@ -135,7 +155,7 @@ export type AppWorkspaceSidebarItemProps = {
135
155
  data?: Record<string, string | number | boolean | null | undefined>;
136
156
  sidebarMode?: AppWorkspaceSidebarVisibility;
137
157
  };
138
- export type AppWorkspaceSidebarIconGridProps = AppWorkspaceSidebarBodyProps & {
158
+ export type AppWorkspaceSidebarIconGridProps = AppWorkspaceSidebarContentProps & {
139
159
  title?: string;
140
160
  columns?: 2 | 3;
141
161
  };
@@ -170,6 +190,7 @@ export type AppWorkspaceSidebarItemMetaProps = {
170
190
  export type AppWorkspaceSidebarItemActionProps = {
171
191
  icon?: string;
172
192
  label: string;
193
+ disabled?: boolean;
173
194
  /** Hide the action on fine pointers until the row is hovered or keyboard-focused. */
174
195
  visibility?: AppWorkspaceSidebarAccessoryVisibility;
175
196
  href?: string;
@@ -230,16 +251,12 @@ type AppWorkspaceComponent = ((props: AppWorkspaceProps) => JSX.Element) & {
230
251
  Detail: (props: AppWorkspaceDetailProps) => JSX.Element;
231
252
  BottomDrawer: (props: AppWorkspaceBottomDrawerProps) => JSX.Element;
232
253
  Sidebar: (props: AppWorkspaceSidebarProps) => JSX.Element;
233
- SidebarMobileTrigger: (props: AppWorkspaceSidebarMobileTriggerProps) => JSX.Element;
234
- SidebarMobile: (props: AppWorkspaceSidebarMobileProps) => JSX.Element;
235
- SidebarMobileItems: (props: AppWorkspaceSidebarMobileItemsProps) => JSX.Element;
236
- SidebarMobileBody: (props: AppWorkspaceSidebarBodyProps) => JSX.Element;
237
254
  SidebarDesktop: (props: {
238
255
  children: JSX.Element;
239
256
  }) => JSX.Element;
240
257
  SidebarSection: (props: AppWorkspaceSidebarSectionProps) => JSX.Element;
241
258
  SidebarBody: (props: AppWorkspaceSidebarBodyProps) => JSX.Element;
242
- SidebarFooter: (props: AppWorkspaceSidebarBodyProps) => JSX.Element;
259
+ SidebarFooter: (props: AppWorkspaceSidebarContentProps) => JSX.Element;
243
260
  SidebarItem: (props: AppWorkspaceSidebarItemProps) => JSX.Element;
244
261
  SidebarItemIcon: (props: AppWorkspaceSidebarItemIconProps) => JSX.Element;
245
262
  SidebarItemLabel: (props: AppWorkspaceSidebarItemLabelProps) => JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { type JSX } from "solid-js";
2
+ export declare const bottomSheetOptions: {
3
+ panelClassName: string;
4
+ contentClassName: string;
5
+ };
6
+ export type BottomSheetProps = {
7
+ children: JSX.Element;
8
+ /** Pass dialogCore's render context requestDismiss, never the completion callback. */
9
+ onDismiss: () => void | Promise<void>;
10
+ dismissDisabled?: boolean;
11
+ dismissLabel?: string;
12
+ handle?: boolean;
13
+ };
14
+ declare function BottomSheetRoot(props: BottomSheetProps): JSX.Element;
15
+ /** Bottom-edge presentation; dialogCore continues to own all modal state. */
16
+ declare const BottomSheet: typeof BottomSheetRoot & {
17
+ Header: (props: import("./PanelDialog").PanelDialogHeaderProps) => JSX.Element;
18
+ Body: (props: import("./PanelDialog").PanelDialogBodyProps) => JSX.Element;
19
+ Footer: (props: import("./PanelDialog").PanelDialogFooterProps) => JSX.Element;
20
+ Section: (props: import("./PanelDialog").PanelDialogSectionProps) => JSX.Element;
21
+ Tabs: <T extends string>(props: import("./PanelDialog").PanelDialogTabsProps<T>) => JSX.Element;
22
+ };
23
+ export default BottomSheet;
@@ -21,6 +21,7 @@ export type DetailPanelHeaderProps = DetailPanelHeaderBaseProps & ({
21
21
  icon?: string;
22
22
  });
23
23
  export type DetailPanelBodyProps = {
24
+ scrollFade?: boolean;
24
25
  children: JSX.Element;
25
26
  scrollPreserveKey?: string;
26
27
  class?: string;
@@ -0,0 +1,8 @@
1
+ import type { NavigationController } from "./navigation-model";
2
+ export type NavigationProps = {
3
+ navigation: NavigationController;
4
+ label: string;
5
+ /** A host can finish dismissing its menu before the selected operation runs. */
6
+ beforeSelect?: () => boolean | void | Promise<boolean | void>;
7
+ };
8
+ export default function Navigation(props: NavigationProps): import("solid-js").JSX.Element;
@@ -16,6 +16,7 @@ export type PanelDialogHeaderProps = {
16
16
  export type PanelDialogBodyProps = {
17
17
  children: JSX.Element;
18
18
  scrollPreserveKey?: string;
19
+ scrollFade?: boolean;
19
20
  };
20
21
  export type PanelDialogFooterProps = {
21
22
  children: JSX.Element;
@@ -26,7 +27,19 @@ export type PanelDialogSectionProps = {
26
27
  icon?: string;
27
28
  actions?: JSX.Element;
28
29
  children: JSX.Element;
29
- };
30
+ } & ({
31
+ hideable?: false;
32
+ open?: never;
33
+ defaultOpen?: never;
34
+ onOpenChange?: never;
35
+ disabled?: never;
36
+ } | {
37
+ hideable: true;
38
+ open?: boolean;
39
+ defaultOpen?: boolean;
40
+ onOpenChange?: (open: boolean) => void;
41
+ disabled?: boolean;
42
+ });
30
43
  export type PanelDialogTabOption<T extends string = string> = {
31
44
  value: T;
32
45
  label: JSX.Element;