@k2b/ui 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) 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 +10 -4
  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 +1 -1
  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 +143 -77
  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 +34 -15
  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 +113 -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 +507 -162
  53. package/dist/browser/content/FileView.js.map +1 -1
  54. package/dist/browser/content/MarkdownView.js +20 -3
  55. package/dist/browser/content/MarkdownView.js.map +1 -1
  56. package/dist/browser/content/PdfPreview.js +107 -90
  57. package/dist/browser/content/PdfPreview.js.map +1 -1
  58. package/dist/browser/content/chart-cursor.js +33 -0
  59. package/dist/browser/content/chart-cursor.js.map +1 -0
  60. package/dist/browser/content/chart-explorer.js +147 -0
  61. package/dist/browser/content/chart-explorer.js.map +1 -0
  62. package/dist/browser/content/chart-inspection.js +447 -0
  63. package/dist/browser/content/chart-inspection.js.map +1 -0
  64. package/dist/browser/content/chart-line-gaps.js +53 -0
  65. package/dist/browser/content/chart-line-gaps.js.map +1 -0
  66. package/dist/browser/content/chart-map-viewport.js +5 -1
  67. package/dist/browser/content/chart-map-viewport.js.map +1 -1
  68. package/dist/browser/content/chart-snapshot.js +63 -0
  69. package/dist/browser/content/chart-snapshot.js.map +1 -0
  70. package/dist/browser/content/chart-state-timeline.js +32 -4
  71. package/dist/browser/content/chart-state-timeline.js.map +1 -1
  72. package/dist/browser/content/chart-svg.js +54 -0
  73. package/dist/browser/content/chart-svg.js.map +1 -0
  74. package/dist/browser/content/collection-selection.js +109 -0
  75. package/dist/browser/content/collection-selection.js.map +1 -0
  76. package/dist/browser/content/delimited-preferences.js +21 -0
  77. package/dist/browser/content/delimited-preferences.js.map +1 -0
  78. package/dist/browser/content/file-tree.js.map +1 -1
  79. package/dist/browser/content/file-view-preview.js +11 -7
  80. package/dist/browser/content/file-view-preview.js.map +1 -1
  81. package/dist/browser/content/index.js +9 -0
  82. package/dist/browser/content/index.js.map +1 -1
  83. package/dist/browser/feedback/InlineGuidance.js +17 -3
  84. package/dist/browser/feedback/InlineGuidance.js.map +1 -1
  85. package/dist/browser/feedback/Tooltip.js +6 -2
  86. package/dist/browser/feedback/Tooltip.js.map +1 -1
  87. package/dist/browser/feedback/dialog-core.js +102 -9
  88. package/dist/browser/feedback/dialog-core.js.map +1 -1
  89. package/dist/browser/feedback/prompts.js +6 -0
  90. package/dist/browser/feedback/prompts.js.map +1 -1
  91. package/dist/browser/feedback/toast.js +29 -6
  92. package/dist/browser/feedback/toast.js.map +1 -1
  93. package/dist/browser/feedback/tooltip-position.js +15 -0
  94. package/dist/browser/feedback/tooltip-position.js.map +1 -1
  95. package/dist/browser/inputs/ChoiceInputs.js +47 -38
  96. package/dist/browser/inputs/ChoiceInputs.js.map +1 -1
  97. package/dist/browser/inputs/SelectChip.js +3 -2
  98. package/dist/browser/inputs/SelectChip.js.map +1 -1
  99. package/dist/browser/inputs/TextInput.js +7 -1
  100. package/dist/browser/inputs/TextInput.js.map +1 -1
  101. package/dist/browser/inputs/markdown/MarkdownEditor.js +61 -37
  102. package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
  103. package/dist/browser/internal/portal.js +1 -1
  104. package/dist/browser/internal/portal.js.map +1 -1
  105. package/dist/browser/intl/Format.js +89 -16
  106. package/dist/browser/intl/Format.js.map +1 -1
  107. package/dist/browser/intl/index.js.map +1 -1
  108. package/dist/browser/intl/messages.js +130 -2
  109. package/dist/browser/intl/messages.js.map +1 -1
  110. package/dist/browser/layout/AppWorkspace.js +712 -624
  111. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  112. package/dist/browser/layout/BottomSheet.js +95 -0
  113. package/dist/browser/layout/BottomSheet.js.map +1 -0
  114. package/dist/browser/layout/DetailPanel.js +232 -107
  115. package/dist/browser/layout/DetailPanel.js.map +1 -1
  116. package/dist/browser/layout/Navigation.js +278 -0
  117. package/dist/browser/layout/Navigation.js.map +1 -0
  118. package/dist/browser/layout/PanelDialog.js +229 -72
  119. package/dist/browser/layout/PanelDialog.js.map +1 -1
  120. package/dist/browser/layout/ScrollArea.js +21 -1
  121. package/dist/browser/layout/ScrollArea.js.map +1 -1
  122. package/dist/browser/layout/Settings.js.map +1 -1
  123. package/dist/browser/layout/SidebarItemPreview.js +183 -0
  124. package/dist/browser/layout/SidebarItemPreview.js.map +1 -0
  125. package/dist/browser/layout/app-workspace-controller.js +3 -0
  126. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  127. package/dist/browser/layout/index.js +3 -0
  128. package/dist/browser/layout/index.js.map +1 -1
  129. package/dist/browser/layout/navigation-model.js +23 -0
  130. package/dist/browser/layout/navigation-model.js.map +1 -0
  131. package/dist/browser/layout/scroll-fade.js +100 -0
  132. package/dist/browser/layout/scroll-fade.js.map +1 -0
  133. package/dist/browser/surfaces/DescriptionList.js.map +1 -1
  134. package/dist/browser/surfaces/StatusBadge.js +2 -1
  135. package/dist/browser/surfaces/StatusBadge.js.map +1 -1
  136. package/dist/fonts/ibm-plex-mono-cyrillic-400-italic-4aded3f2f2a7d27d.woff2 +0 -0
  137. package/dist/fonts/ibm-plex-mono-cyrillic-400-normal-7635422bd10ddbbc.woff2 +0 -0
  138. package/dist/fonts/ibm-plex-mono-cyrillic-500-normal-1d89462e86cb8e87.woff2 +0 -0
  139. package/dist/fonts/ibm-plex-mono-cyrillic-600-normal-2b05a8695c7f9f4a.woff2 +0 -0
  140. package/dist/fonts/ibm-plex-mono-cyrillic-ext-400-italic-a0b3b8cbe5a516e7.woff2 +0 -0
  141. package/dist/fonts/ibm-plex-mono-cyrillic-ext-400-normal-f8c22ec1804bd696.woff2 +0 -0
  142. package/dist/fonts/ibm-plex-mono-cyrillic-ext-500-normal-3febe5c7f22e4b07.woff2 +0 -0
  143. package/dist/fonts/ibm-plex-mono-cyrillic-ext-600-normal-83109cdd4f8665b4.woff2 +0 -0
  144. package/dist/fonts/ibm-plex-mono-latin-400-italic-0840095faae86403.woff2 +0 -0
  145. package/dist/fonts/ibm-plex-mono-latin-400-normal-08949f728dc52d52.woff2 +0 -0
  146. package/dist/fonts/ibm-plex-mono-latin-500-normal-01d285447409c8a5.woff2 +0 -0
  147. package/dist/fonts/ibm-plex-mono-latin-600-normal-0d1f0b8d0722224e.woff2 +0 -0
  148. package/dist/fonts/ibm-plex-mono-latin-ext-400-italic-1b07eee6df7d26b3.woff2 +0 -0
  149. package/dist/fonts/ibm-plex-mono-latin-ext-400-normal-6bc0f226a5b7884a.woff2 +0 -0
  150. package/dist/fonts/ibm-plex-mono-latin-ext-500-normal-6bb06407c97584b0.woff2 +0 -0
  151. package/dist/fonts/ibm-plex-mono-latin-ext-600-normal-32057cf50dd14bdb.woff2 +0 -0
  152. package/dist/fonts/ibm-plex-mono-vietnamese-400-italic-a6bab38af4f9c761.woff2 +0 -0
  153. package/dist/fonts/ibm-plex-mono-vietnamese-400-normal-62632b6375305e70.woff2 +0 -0
  154. package/dist/fonts/ibm-plex-mono-vietnamese-500-normal-781633d95de88040.woff2 +0 -0
  155. package/dist/fonts/ibm-plex-mono-vietnamese-600-normal-51b74d53e106ba8a.woff2 +0 -0
  156. package/dist/fonts/ibm-plex-sans-cyrillic-400-italic-e8731a7e2b00fc4f.woff2 +0 -0
  157. package/dist/fonts/ibm-plex-sans-cyrillic-400-normal-69afad88a0740b6e.woff2 +0 -0
  158. package/dist/fonts/ibm-plex-sans-cyrillic-500-normal-200be3a2a6b1789f.woff2 +0 -0
  159. package/dist/fonts/ibm-plex-sans-cyrillic-600-normal-730becc6f005c18c.woff2 +0 -0
  160. package/dist/fonts/ibm-plex-sans-cyrillic-700-normal-40540598b4c9eb2c.woff2 +0 -0
  161. package/dist/fonts/ibm-plex-sans-cyrillic-ext-400-italic-4ffb25726a7ce4cc.woff2 +0 -0
  162. package/dist/fonts/ibm-plex-sans-cyrillic-ext-400-normal-e2580ad78906551e.woff2 +0 -0
  163. package/dist/fonts/ibm-plex-sans-cyrillic-ext-500-normal-08578d906af6d986.woff2 +0 -0
  164. package/dist/fonts/ibm-plex-sans-cyrillic-ext-600-normal-d60d3d0b182753d5.woff2 +0 -0
  165. package/dist/fonts/ibm-plex-sans-cyrillic-ext-700-normal-d07dd53642480097.woff2 +0 -0
  166. package/dist/fonts/ibm-plex-sans-greek-400-italic-1bc10b01688ba9fa.woff2 +0 -0
  167. package/dist/fonts/ibm-plex-sans-greek-400-normal-02296067bc904d2a.woff2 +0 -0
  168. package/dist/fonts/ibm-plex-sans-greek-500-normal-8cb6e20b4dbbaa5f.woff2 +0 -0
  169. package/dist/fonts/ibm-plex-sans-greek-600-normal-0a9ebd9019415ee9.woff2 +0 -0
  170. package/dist/fonts/ibm-plex-sans-greek-700-normal-c949641d10a3bebc.woff2 +0 -0
  171. package/dist/fonts/ibm-plex-sans-latin-400-italic-6de912e531b6c980.woff2 +0 -0
  172. package/dist/fonts/ibm-plex-sans-latin-400-normal-3b646991d30055a9.woff2 +0 -0
  173. package/dist/fonts/ibm-plex-sans-latin-500-normal-0717336fb31fcdcd.woff2 +0 -0
  174. package/dist/fonts/ibm-plex-sans-latin-600-normal-8960851d691c054e.woff2 +0 -0
  175. package/dist/fonts/ibm-plex-sans-latin-700-normal-42e7b0c143c19df9.woff2 +0 -0
  176. package/dist/fonts/ibm-plex-sans-latin-ext-400-italic-c5c00e8a32022dfe.woff2 +0 -0
  177. package/dist/fonts/ibm-plex-sans-latin-ext-400-normal-c93d2a12aaa280f6.woff2 +0 -0
  178. package/dist/fonts/ibm-plex-sans-latin-ext-500-normal-2846035d85100f84.woff2 +0 -0
  179. package/dist/fonts/ibm-plex-sans-latin-ext-600-normal-b25dfd4f979e442a.woff2 +0 -0
  180. package/dist/fonts/ibm-plex-sans-latin-ext-700-normal-92f0392bd74fa395.woff2 +0 -0
  181. package/dist/fonts/ibm-plex-sans-vietnamese-400-italic-675d4bace127bffb.woff2 +0 -0
  182. package/dist/fonts/ibm-plex-sans-vietnamese-400-normal-771538f7f26551bd.woff2 +0 -0
  183. package/dist/fonts/ibm-plex-sans-vietnamese-500-normal-85ba3d9c2488a813.woff2 +0 -0
  184. package/dist/fonts/ibm-plex-sans-vietnamese-600-normal-5d34b803637befe3.woff2 +0 -0
  185. package/dist/fonts/ibm-plex-sans-vietnamese-700-normal-b79d0c4b68b85007.woff2 +0 -0
  186. package/dist/plex.css +1 -1
  187. package/dist/ssr/actions/Button.js +11 -2
  188. package/dist/ssr/actions/Button.js.map +1 -1
  189. package/dist/ssr/actions/Disclosure.js +2 -2
  190. package/dist/ssr/actions/Disclosure.js.map +1 -1
  191. package/dist/ssr/actions/Dropdown.js +5 -2
  192. package/dist/ssr/actions/Dropdown.js.map +1 -1
  193. package/dist/ssr/actions/FilterChip.js +16 -2
  194. package/dist/ssr/actions/FilterChip.js.map +1 -1
  195. package/dist/ssr/actions/SplitButton.js +69 -22
  196. package/dist/ssr/actions/SplitButton.js.map +1 -1
  197. package/dist/ssr/actions/SpotlightSearch.js +3 -7
  198. package/dist/ssr/actions/SpotlightSearch.js.map +1 -1
  199. package/dist/ssr/actions/Tabs.js +58 -11
  200. package/dist/ssr/actions/Tabs.js.map +1 -1
  201. package/dist/ssr/actions/index.js +1 -1
  202. package/dist/ssr/actions/index.js.map +1 -1
  203. package/dist/ssr/chat/ChatComposer.js +366 -134
  204. package/dist/ssr/chat/ChatComposer.js.map +1 -1
  205. package/dist/ssr/chat/ChatContextPopup.js +86 -0
  206. package/dist/ssr/chat/ChatContextPopup.js.map +1 -0
  207. package/dist/ssr/chat/ChatPrimitives.js +50 -12
  208. package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
  209. package/dist/ssr/chat/ChatTasks.js +48 -0
  210. package/dist/ssr/chat/ChatTasks.js.map +1 -0
  211. package/dist/ssr/chat/ChatTimeline.js +16 -4
  212. package/dist/ssr/chat/ChatTimeline.js.map +1 -1
  213. package/dist/ssr/chat/chat-behavior.js +0 -5
  214. package/dist/ssr/chat/chat-behavior.js.map +1 -1
  215. package/dist/ssr/chat/composer-document.js +55 -0
  216. package/dist/ssr/chat/composer-document.js.map +1 -0
  217. package/dist/ssr/chat/index.js +6 -1
  218. package/dist/ssr/chat/index.js.map +1 -1
  219. package/dist/ssr/chat/types.js.map +1 -1
  220. package/dist/ssr/content/Chart.js +121 -219
  221. package/dist/ssr/content/Chart.js.map +1 -1
  222. package/dist/ssr/content/ChartExplorer.js +257 -0
  223. package/dist/ssr/content/ChartExplorer.js.map +1 -0
  224. package/dist/ssr/content/ChartExplorerControls.js +105 -0
  225. package/dist/ssr/content/ChartExplorerControls.js.map +1 -0
  226. package/dist/ssr/content/ChartFilterControls.js +139 -0
  227. package/dist/ssr/content/ChartFilterControls.js.map +1 -0
  228. package/dist/ssr/content/ChartSnapshotView.js +57 -0
  229. package/dist/ssr/content/ChartSnapshotView.js.map +1 -0
  230. package/dist/ssr/content/DataTable.js +13 -9
  231. package/dist/ssr/content/DataTable.js.map +1 -1
  232. package/dist/ssr/content/FileBrowser.js +3 -0
  233. package/dist/ssr/content/FileBrowser.js.map +1 -1
  234. package/dist/ssr/content/FileGrid.js +38 -0
  235. package/dist/ssr/content/FileGrid.js.map +1 -0
  236. package/dist/ssr/content/FileTree.js +2 -2
  237. package/dist/ssr/content/FileTree.js.map +1 -1
  238. package/dist/ssr/content/FileView.js +352 -75
  239. package/dist/ssr/content/FileView.js.map +1 -1
  240. package/dist/ssr/content/MarkdownView.js +20 -3
  241. package/dist/ssr/content/MarkdownView.js.map +1 -1
  242. package/dist/ssr/content/PdfPreview.js +37 -24
  243. package/dist/ssr/content/PdfPreview.js.map +1 -1
  244. package/dist/ssr/content/chart-cursor.js +33 -0
  245. package/dist/ssr/content/chart-cursor.js.map +1 -0
  246. package/dist/ssr/content/chart-explorer.js +147 -0
  247. package/dist/ssr/content/chart-explorer.js.map +1 -0
  248. package/dist/ssr/content/chart-inspection.js +447 -0
  249. package/dist/ssr/content/chart-inspection.js.map +1 -0
  250. package/dist/ssr/content/chart-line-gaps.js +53 -0
  251. package/dist/ssr/content/chart-line-gaps.js.map +1 -0
  252. package/dist/ssr/content/chart-map-viewport.js +5 -1
  253. package/dist/ssr/content/chart-map-viewport.js.map +1 -1
  254. package/dist/ssr/content/chart-snapshot.js +63 -0
  255. package/dist/ssr/content/chart-snapshot.js.map +1 -0
  256. package/dist/ssr/content/chart-state-timeline.js +32 -4
  257. package/dist/ssr/content/chart-state-timeline.js.map +1 -1
  258. package/dist/ssr/content/chart-svg.js +54 -0
  259. package/dist/ssr/content/chart-svg.js.map +1 -0
  260. package/dist/ssr/content/collection-selection.js +109 -0
  261. package/dist/ssr/content/collection-selection.js.map +1 -0
  262. package/dist/ssr/content/delimited-preferences.js +21 -0
  263. package/dist/ssr/content/delimited-preferences.js.map +1 -0
  264. package/dist/ssr/content/file-tree.js.map +1 -1
  265. package/dist/ssr/content/file-view-preview.js +11 -7
  266. package/dist/ssr/content/file-view-preview.js.map +1 -1
  267. package/dist/ssr/content/index.js +9 -0
  268. package/dist/ssr/content/index.js.map +1 -1
  269. package/dist/ssr/feedback/InlineGuidance.js +17 -3
  270. package/dist/ssr/feedback/InlineGuidance.js.map +1 -1
  271. package/dist/ssr/feedback/Tooltip.js +6 -4
  272. package/dist/ssr/feedback/Tooltip.js.map +1 -1
  273. package/dist/ssr/feedback/dialog-core.js +102 -9
  274. package/dist/ssr/feedback/dialog-core.js.map +1 -1
  275. package/dist/ssr/feedback/prompts.js +6 -0
  276. package/dist/ssr/feedback/prompts.js.map +1 -1
  277. package/dist/ssr/feedback/toast.js +29 -6
  278. package/dist/ssr/feedback/toast.js.map +1 -1
  279. package/dist/ssr/feedback/tooltip-position.js +15 -0
  280. package/dist/ssr/feedback/tooltip-position.js.map +1 -1
  281. package/dist/ssr/inputs/ChoiceInputs.js +9 -6
  282. package/dist/ssr/inputs/ChoiceInputs.js.map +1 -1
  283. package/dist/ssr/inputs/SelectChip.js +3 -3
  284. package/dist/ssr/inputs/SelectChip.js.map +1 -1
  285. package/dist/ssr/inputs/TextInput.js.map +1 -1
  286. package/dist/ssr/inputs/markdown/MarkdownEditor.js +19 -11
  287. package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
  288. package/dist/ssr/internal/portal.js +1 -1
  289. package/dist/ssr/internal/portal.js.map +1 -1
  290. package/dist/ssr/intl/Format.js +61 -0
  291. package/dist/ssr/intl/Format.js.map +1 -1
  292. package/dist/ssr/intl/index.js.map +1 -1
  293. package/dist/ssr/intl/messages.js +130 -2
  294. package/dist/ssr/intl/messages.js.map +1 -1
  295. package/dist/ssr/layout/AppWorkspace.js +368 -275
  296. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  297. package/dist/ssr/layout/BottomSheet.js +43 -0
  298. package/dist/ssr/layout/BottomSheet.js.map +1 -0
  299. package/dist/ssr/layout/DetailPanel.js +95 -17
  300. package/dist/ssr/layout/DetailPanel.js.map +1 -1
  301. package/dist/ssr/layout/Navigation.js +181 -0
  302. package/dist/ssr/layout/Navigation.js.map +1 -0
  303. package/dist/ssr/layout/PanelDialog.js +112 -27
  304. package/dist/ssr/layout/PanelDialog.js.map +1 -1
  305. package/dist/ssr/layout/ScrollArea.js +16 -1
  306. package/dist/ssr/layout/ScrollArea.js.map +1 -1
  307. package/dist/ssr/layout/Settings.js.map +1 -1
  308. package/dist/ssr/layout/SidebarItemPreview.js +133 -0
  309. package/dist/ssr/layout/SidebarItemPreview.js.map +1 -0
  310. package/dist/ssr/layout/app-workspace-controller.js +3 -0
  311. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  312. package/dist/ssr/layout/index.js +3 -0
  313. package/dist/ssr/layout/index.js.map +1 -1
  314. package/dist/ssr/layout/navigation-model.js +23 -0
  315. package/dist/ssr/layout/navigation-model.js.map +1 -0
  316. package/dist/ssr/layout/scroll-fade.js +100 -0
  317. package/dist/ssr/layout/scroll-fade.js.map +1 -0
  318. package/dist/ssr/surfaces/DescriptionList.js.map +1 -1
  319. package/dist/ssr/surfaces/StatusBadge.js +2 -1
  320. package/dist/ssr/surfaces/StatusBadge.js.map +1 -1
  321. package/dist/styles.css +1 -1
  322. package/dist/tabler.css +1 -1
  323. package/dist/types/actions/Button.d.ts +4 -0
  324. package/dist/types/actions/Disclosure.d.ts +1 -0
  325. package/dist/types/actions/Dropdown.d.ts +3 -1
  326. package/dist/types/actions/FilterChip.d.ts +4 -0
  327. package/dist/types/actions/SplitButton.d.ts +6 -0
  328. package/dist/types/actions/SpotlightSearch.d.ts +0 -4
  329. package/dist/types/actions/Tabs.d.ts +4 -0
  330. package/dist/types/actions/index.d.ts +1 -1
  331. package/dist/types/chat/ChatComposer.d.ts +20 -2
  332. package/dist/types/chat/ChatContextPopup.d.ts +6 -0
  333. package/dist/types/chat/ChatPrimitives.d.ts +4 -0
  334. package/dist/types/chat/ChatTasks.d.ts +15 -0
  335. package/dist/types/chat/ChatTimeline.d.ts +2 -0
  336. package/dist/types/chat/chat-behavior.d.ts +0 -3
  337. package/dist/types/chat/composer-document.d.ts +14 -0
  338. package/dist/types/chat/index.d.ts +8 -1
  339. package/dist/types/chat/types.d.ts +9 -0
  340. package/dist/types/content/Chart.d.ts +42 -23
  341. package/dist/types/content/ChartExplorer.d.ts +34 -0
  342. package/dist/types/content/ChartExplorerControls.d.ts +10 -0
  343. package/dist/types/content/ChartFilterControls.d.ts +21 -0
  344. package/dist/types/content/ChartSnapshotView.d.ts +11 -0
  345. package/dist/types/content/DataTable.d.ts +4 -0
  346. package/dist/types/content/FileBrowser.d.ts +1 -0
  347. package/dist/types/content/FileGrid.d.ts +21 -0
  348. package/dist/types/content/FileView.d.ts +20 -0
  349. package/dist/types/content/MarkdownView.d.ts +6 -1
  350. package/dist/types/content/PdfPreview.d.ts +8 -1
  351. package/dist/types/content/chart-cursor.d.ts +15 -0
  352. package/dist/types/content/chart-explorer.d.ts +48 -0
  353. package/dist/types/content/chart-inspection.d.ts +40 -0
  354. package/dist/types/content/chart-line-gaps.d.ts +5 -0
  355. package/dist/types/content/chart-map-viewport.d.ts +1 -1
  356. package/dist/types/content/chart-snapshot.d.ts +26 -0
  357. package/dist/types/content/chart-svg.d.ts +21 -0
  358. package/dist/types/content/collection-selection.d.ts +24 -0
  359. package/dist/types/content/delimited-preferences.d.ts +11 -0
  360. package/dist/types/content/file-tree.d.ts +2 -0
  361. package/dist/types/content/file-view-preview.d.ts +4 -1
  362. package/dist/types/content/index.d.ts +15 -1
  363. package/dist/types/feedback/InlineGuidance.d.ts +1 -0
  364. package/dist/types/feedback/dialog-core.d.ts +13 -0
  365. package/dist/types/feedback/prompts.d.ts +2 -0
  366. package/dist/types/feedback/toast.d.ts +7 -1
  367. package/dist/types/feedback/tooltip-position.d.ts +1 -1
  368. package/dist/types/inputs/ChoiceInputs.d.ts +3 -0
  369. package/dist/types/inputs/markdown/MarkdownEditor.d.ts +5 -1
  370. package/dist/types/intl/Format.d.ts +9 -0
  371. package/dist/types/intl/index.d.ts +1 -1
  372. package/dist/types/intl/messages.d.ts +31 -1
  373. package/dist/types/layout/AppWorkspace.d.ts +35 -18
  374. package/dist/types/layout/BottomSheet.d.ts +23 -0
  375. package/dist/types/layout/DetailPanel.d.ts +7 -0
  376. package/dist/types/layout/Navigation.d.ts +8 -0
  377. package/dist/types/layout/PanelDialog.d.ts +14 -1
  378. package/dist/types/layout/ScrollArea.d.ts +4 -0
  379. package/dist/types/layout/Settings.d.ts +1 -1
  380. package/dist/types/layout/SidebarItemPreview.d.ts +11 -0
  381. package/dist/types/layout/index.d.ts +4 -1
  382. package/dist/types/layout/navigation-model.d.ts +48 -0
  383. package/dist/types/layout/scroll-fade.d.ts +3 -0
  384. package/dist/types/surfaces/DescriptionList.d.ts +1 -1
  385. package/dist/types/surfaces/StatusBadge.d.ts +1 -1
  386. package/package.json +8 -8
@@ -7,21 +7,25 @@ var _tmpl$ = ["<button type=\"button\" class=\"k2b-content-file-view__action\"",
7
7
  _tmpl$3 = ["<div class=\"k2b-content-file-view__overlay\">", "</div>"],
8
8
  _tmpl$4 = ["<div class=\"k2b-content-file-view__panel\"><div class=\"k2b-content-file-view__preview\">", "</div>", "</div>"],
9
9
  _tmpl$5 = ["<button type=\"button\" class=\"k2b-markdown-editor__tool\"", " tabindex=\"-1\"", "><i", "></i></button>"],
10
- _tmpl$6 = ["<div class=\"k2b-content-file-view__document\">", "</div>"],
11
- _tmpl$7 = ["<div class=\"k2b-content-file-view__editor\">", "</div>"],
12
- _tmpl$8 = ["<div class=\"k2b-content-file-view__editor\"><div class=\"k2b-markdown-editor\" data-fill=\"true\" role=\"group\"", "><div class=\"k2b-markdown-editor__toolbar k2b-content-file-view__code-toolbar\"><span class=\"k2b-content-file-view__code-language\">", "</span><span class=\"k2b-markdown-editor__trailing\">", "", "</span></div><div class=\"k2b-markdown-editor__surface\"><textarea class=\"k2b-content-file-view__code-input\"", " spellcheck=\"false\"></textarea></div></div></div>"],
13
- _tmpl$9 = ["<a class=\"k2b-markdown-editor__tool\"", "><i class=\"ti ti-download\"></i></a>"],
14
- _tmpl$0 = ["<p class=\"k2b-content-file-view__truncated\">", "</p>"],
15
- _tmpl$1 = ["<div class=\"k2b-content-file-view__sheet\"><table class=\"k2b-content-file-view__table\"><thead><tr>", "</tr></thead><tbody>", "</tbody></table>", "</div>"],
16
- _tmpl$10 = ["<th scope=\"col\"><span>", "</span></th>"],
17
- _tmpl$11 = ["<tr>", "</tr>"],
18
- _tmpl$12 = ["<td>", "</td>"],
19
- _tmpl$13 = ["<div class=\"k2b-content-file-view__media\"><img", "></div>"],
20
- _tmpl$14 = ["<object", " type=\"application/pdf\" class=\"k2b-content-file-view__pdf\"", "></object>"],
21
- _tmpl$15 = ["<div class=\"k2b-content-file-view__media\" data-kind=\"audio\"><audio controls preload=\"metadata\"", ">", "</audio></div>"],
22
- _tmpl$16 = ["<div class=\"k2b-content-file-view__media\" data-kind=\"video\"><video controls preload=\"metadata\" playsinline", ">", "</video></div>"],
23
- _tmpl$17 = ["<a class=\"k2b-button\" data-variant=\"secondary\" data-size=\"sm\"", " download><i class=\"ti ti-download\" aria-hidden=\"true\"></i>", "</a>"],
24
- _tmpl$18 = ["<div class=\"", "\">", "</div>"];
10
+ _tmpl$6 = ["<div class=\"k2b-content-file-view__truncated\">", "</div>"],
11
+ _tmpl$7 = ["<span>", "</span>"],
12
+ _tmpl$8 = ["<div class=\"", "\">", "</div>"],
13
+ _tmpl$9 = ["<div class=\"k2b-content-file-view__document\">", "</div>"],
14
+ _tmpl$0 = ["<div class=\"k2b-content-file-view__editor\">", "</div>"],
15
+ _tmpl$1 = ["<div class=\"k2b-content-file-view__editor\"><div class=\"k2b-markdown-editor\" data-fill=\"true\" role=\"group\"", "><div class=\"k2b-markdown-editor__toolbar k2b-content-file-view__code-toolbar\"><span class=\"k2b-content-file-view__code-language\">", "</span><span class=\"k2b-markdown-editor__trailing\">", "", "</span></div><div class=\"k2b-markdown-editor__surface\"><textarea class=\"k2b-content-file-view__code-input\"", " spellcheck=\"false\"></textarea></div></div></div>"],
16
+ _tmpl$10 = ["<a class=\"k2b-markdown-editor__tool\"", "><i class=\"ti ti-download\"></i></a>"],
17
+ _tmpl$11 = ["<div class=\"k2b-content-file-view__settings\">", "", "", "</div>"],
18
+ _tmpl$12 = ["<div class=\"k2b-content-file-view__sheet\"><table class=\"k2b-content-file-view__table\"><thead><tr>", "</tr></thead><tbody>", "</tbody></table>", "", "</div>"],
19
+ _tmpl$13 = ["<th scope=\"col\"><span>", "</span></th>"],
20
+ _tmpl$14 = ["<tr>", "</tr>"],
21
+ _tmpl$15 = ["<td>", "</td>"],
22
+ _tmpl$16 = ["<div class=\"k2b-content-file-view__pagination\">", "<span>", "\u2013", " / ", "</span>", "</div>"],
23
+ _tmpl$17 = ["<div class=\"k2b-content-file-view__media\"><img", "></div>"],
24
+ _tmpl$18 = ["<object", " type=\"application/pdf\" class=\"k2b-content-file-view__pdf\"", "></object>"],
25
+ _tmpl$19 = ["<div class=\"k2b-content-file-view__media\" data-kind=\"audio\"><audio", " controls preload=\"metadata\"", ">", "</audio></div>"],
26
+ _tmpl$20 = ["<div class=\"k2b-content-file-view__media\" data-kind=\"video\"><video", " controls preload=\"metadata\" playsinline", ">", "</video></div>"],
27
+ _tmpl$21 = ["<a class=\"k2b-button\" data-variant=\"secondary\" data-size=\"sm\"", " download><i class=\"ti ti-download\" aria-hidden=\"true\"></i>", "</a>"],
28
+ _tmpl$22 = ["<div class=\"", "\"", ">", "</div>"];
25
29
  /**
26
30
  * FileView — renders one file through a small renderer registry keyed by
27
31
  * media type / path. Editing is enabled purely by the presence of `save`;
@@ -33,12 +37,16 @@ var _tmpl$ = ["<button type=\"button\" class=\"k2b-content-file-view__action\"",
33
37
  */
34
38
 
35
39
  import { mutation } from "@k2b/stdlib/solid";
36
- import { createEffect, createMemo, createResource, createSignal, For, Match, onCleanup, Show, Switch, untrack } from "solid-js";
40
+ import { createEffect, createMemo, createResource, createSignal, For, Match, onCleanup, onMount, Show, Switch, untrack } from "solid-js";
41
+ import { prompts } from "../feedback/prompts";
37
42
  import { toast } from "../feedback/toast";
38
43
  import { MarkdownEditor } from "../inputs/markdown/MarkdownEditor";
44
+ import { Button } from "../actions/Button";
45
+ import { Select } from "../inputs/Select";
39
46
  import { useUiMessages } from "../intl/messages";
40
47
  import Placeholder from "../surfaces/Placeholder";
41
48
  import CodeDisplay from "./CodeDisplay";
49
+ import { decodeDelimitedContent, readDelimitedPreferences } from "./delimited-preferences";
42
50
  import { fileViewExtension, getFileViewPreviewKind, parseDelimitedText } from "./file-view-preview";
43
51
  import MarkdownView from "./MarkdownView";
44
52
  import StructuredDataPreview from "./StructuredDataPreview";
@@ -116,6 +124,73 @@ function EditorToolButton(props) {
116
124
 
117
125
  // ── Built-in renderers ──────────────────────────────────────────────────────
118
126
 
127
+ function MoreLines(props) {
128
+ const messages = useUiMessages();
129
+ return _$createComponent(Show, {
130
+ get when() {
131
+ return props.count > 0;
132
+ },
133
+ get children() {
134
+ return _$ssr(_tmpl$6, _$escape(_$createComponent(Show, {
135
+ get when() {
136
+ return props.onClick;
137
+ },
138
+ get fallback() {
139
+ return _$ssr(_tmpl$7, _$escape(messages().previewMoreLines(props.count)));
140
+ },
141
+ get children() {
142
+ return _$createComponent(Button, {
143
+ size: "sm",
144
+ variant: "ghost",
145
+ get onClick() {
146
+ return props.onClick;
147
+ },
148
+ get children() {
149
+ return messages().previewMoreLines(props.count);
150
+ }
151
+ });
152
+ }
153
+ })));
154
+ }
155
+ });
156
+ }
157
+ function TextExcerpt(props) {
158
+ const lines = createMemo(() => props.text.replace(/\r\n?/g, "\n").replace(/\n$/, "").split("\n"));
159
+ const limit = () => props.renderer.previewLines === undefined ? lines().length : Math.max(1, props.renderer.previewLines);
160
+ const text = () => lines().slice(0, limit()).join("\n");
161
+ return [_$ssr(_tmpl$8, props.renderer.previewLines !== undefined ? "k2b-content-file-view__excerpt" : "", _$escape(_$createComponent(Show, {
162
+ get when() {
163
+ return props.markdown;
164
+ },
165
+ get fallback() {
166
+ return _$createComponent(CodeDisplay, {
167
+ get code() {
168
+ return text();
169
+ },
170
+ get language() {
171
+ return codeLanguage(props.renderer.file.path);
172
+ }
173
+ });
174
+ },
175
+ get children() {
176
+ return _$createComponent(MarkdownView, {
177
+ get markdown() {
178
+ return text();
179
+ },
180
+ get headingScale() {
181
+ return props.renderer.headingScale ?? "compact";
182
+ }
183
+ });
184
+ }
185
+ }))), _$createComponent(MoreLines, {
186
+ get count() {
187
+ return lines().length - limit();
188
+ },
189
+ get onClick() {
190
+ return props.renderer.onExpandPreview;
191
+ }
192
+ })];
193
+ }
119
194
  function MarkdownRenderer(props) {
120
195
  const messages = useUiMessages();
121
196
  const [editing, setEditing] = createSignal(false);
@@ -142,18 +217,19 @@ function MarkdownRenderer(props) {
142
217
  }), _$createComponent(DownloadAction, props)];
143
218
  },
144
219
  get children() {
145
- return _$ssr(_tmpl$6, _$escape(_$createComponent(MarkdownView, {
146
- get markdown() {
220
+ return _$ssr(_tmpl$9, _$escape(_$createComponent(TextExcerpt, {
221
+ renderer: props,
222
+ get text() {
147
223
  return stripFrontmatter(props.editor?.draft() ?? props.content.content);
148
224
  },
149
- headingScale: "compact"
225
+ markdown: true
150
226
  })));
151
227
  }
152
228
  });
153
229
  },
154
230
  children: _ => {
155
231
  const editor = props.editor;
156
- return _$ssr(_tmpl$7, _$escape(_$createComponent(MarkdownEditor, {
232
+ return _$ssr(_tmpl$0, _$escape(_$createComponent(MarkdownEditor, {
157
233
  "class": "k2b-content-file-view__markdown-field",
158
234
  get ["aria-label"]() {
159
235
  return `Edit ${props.file.path.slice(props.file.path.lastIndexOf("/") + 1)}`;
@@ -198,12 +274,10 @@ function TextRenderer(props) {
198
274
  return _$createComponent(DownloadAction, props);
199
275
  },
200
276
  get children() {
201
- return _$createComponent(CodeDisplay, {
202
- get code() {
277
+ return _$createComponent(TextExcerpt, {
278
+ renderer: props,
279
+ get text() {
203
280
  return props.content.content;
204
- },
205
- get language() {
206
- return codeLanguage(props.file.path);
207
281
  }
208
282
  });
209
283
  }
@@ -211,11 +285,11 @@ function TextRenderer(props) {
211
285
  },
212
286
  children: editor => // Same chrome as the markdown editor — literally the same classes, so
213
287
  // border, radius, focus ring, toolbar height and text metrics cannot drift.
214
- _$ssr(_tmpl$8, _$ssrAttribute("aria-label", _$escape(messages().textEditor, true), false), _$escape(codeLanguage(props.file.path)), _$escape(_$createComponent(Show, {
288
+ _$ssr(_tmpl$1, _$ssrAttribute("aria-label", _$escape(messages().textEditor, true), false), _$escape(codeLanguage(props.file.path)), _$escape(_$createComponent(Show, {
215
289
  get when() {
216
290
  return props.downloadHref;
217
291
  },
218
- children: href => _$ssr(_tmpl$9, _$ssrAttribute("href", _$escape(href(), true), false) + _$ssrAttribute("download", _$escape(props.file.path.slice(props.file.path.lastIndexOf("/") + 1), true), false) + _$ssrAttribute("title", _$escape(messages().download, true), false) + _$ssrAttribute("aria-label", _$escape(messages().download, true), false))
292
+ children: href => _$ssr(_tmpl$10, _$ssrAttribute("href", _$escape(href(), true), false) + _$ssrAttribute("download", _$escape(props.file.path.slice(props.file.path.lastIndexOf("/") + 1), true), false) + _$ssrAttribute("title", _$escape(messages().download, true), false) + _$ssrAttribute("aria-label", _$escape(messages().download, true), false))
219
293
  })), _$escape(_$createComponent(EditorToolButton, {
220
294
  get icon() {
221
295
  return editor().saving() ? "ti ti-loader-2 k2b-spin" : "ti ti-device-floppy";
@@ -252,24 +326,39 @@ function JsonRenderer(props) {
252
326
  return _$createComponent(DownloadAction, props);
253
327
  },
254
328
  get children() {
255
- return _$ssr(_tmpl$6, _$escape(_$createComponent(Show, {
329
+ return _$ssr(_tmpl$9, _$escape(_$createComponent(Show, {
256
330
  get when() {
257
331
  return parsed().ok;
258
332
  },
259
333
  get fallback() {
260
- return _$createComponent(CodeDisplay, {
261
- get code() {
334
+ return _$createComponent(TextExcerpt, {
335
+ renderer: props,
336
+ get text() {
262
337
  return props.content.content;
263
- },
264
- language: "text"
338
+ }
265
339
  });
266
340
  },
267
341
  get children() {
268
- return _$createComponent(StructuredDataPreview, {
269
- get data() {
270
- return parsedValue();
342
+ return _$createComponent(Show, {
343
+ get when() {
344
+ return props.previewLines === undefined;
271
345
  },
272
- maxRows: 200
346
+ get fallback() {
347
+ return _$createComponent(TextExcerpt, {
348
+ renderer: props,
349
+ get text() {
350
+ return JSON.stringify(parsedValue(), null, 2);
351
+ }
352
+ });
353
+ },
354
+ get children() {
355
+ return _$createComponent(StructuredDataPreview, {
356
+ get data() {
357
+ return parsedValue();
358
+ },
359
+ maxRows: 200
360
+ });
361
+ }
273
362
  });
274
363
  }
275
364
  })));
@@ -278,56 +367,226 @@ function JsonRenderer(props) {
278
367
  }
279
368
  function DelimitedTextRenderer(props) {
280
369
  const messages = useUiMessages();
281
- const delimiter = () => fileViewExtension(props.file.path) === "tsv" || props.content.mediaType === "text/tab-separated-values" ? "\t" : ",";
282
- const preview = createMemo(() => parseDelimitedText(props.content.content, delimiter()));
370
+ const [preferences, setPreferences] = createSignal({
371
+ encoding: "utf-8",
372
+ delimiter: "auto",
373
+ view: "table"
374
+ });
375
+ onMount(() => {
376
+ if (!props.previewPreferencesKey) return;
377
+ try {
378
+ setPreferences(readDelimitedPreferences(localStorage.getItem(props.previewPreferencesKey)));
379
+ } catch {/* Storage may be disabled. */}
380
+ });
381
+ const update = patch => {
382
+ const next = {
383
+ ...preferences(),
384
+ ...patch
385
+ };
386
+ setPreferences(next);
387
+ if (props.previewPreferencesKey) {
388
+ try {
389
+ localStorage.setItem(props.previewPreferencesKey, JSON.stringify(next));
390
+ } catch {/* Keep the local selection. */}
391
+ }
392
+ };
393
+ const text = createMemo(() => decodeDelimitedContent(props.content, preferences().encoding));
394
+ const delimiter = () => preferences().delimiter === "auto" ? fileViewExtension(props.file.path) === "tsv" || props.content.mediaType === "text/tab-separated-values" ? "\t" : "," : preferences().delimiter;
395
+ const [page, setPage] = createSignal(0);
396
+ createEffect(() => {
397
+ text();
398
+ delimiter();
399
+ props.previewLines;
400
+ setPage(0);
401
+ });
402
+ const pageSize = () => props.previewLines === undefined ? 200 : Math.max(1, props.previewLines);
403
+ const preview = createMemo(() => parseDelimitedText(text(), delimiter(), {
404
+ rows: pageSize() + 1,
405
+ offset: page() * pageSize()
406
+ }));
407
+ const settings = () => prompts.dialog(() => _$ssr(_tmpl$11, _$escape(_$createComponent(Select, {
408
+ get label() {
409
+ return messages().csvEncoding;
410
+ },
411
+ get value() {
412
+ return preferences().encoding;
413
+ },
414
+ get disabled() {
415
+ return props.content.encoding !== "base64";
416
+ },
417
+ options: ["utf-8", "windows-1252", "utf-16le", "utf-16be"],
418
+ onValueChange: value => {
419
+ if (value) update({
420
+ encoding: value
421
+ });
422
+ }
423
+ })), _$escape(_$createComponent(Select, {
424
+ get label() {
425
+ return messages().csvSeparator;
426
+ },
427
+ get value() {
428
+ return preferences().delimiter;
429
+ },
430
+ get options() {
431
+ return [{
432
+ value: "auto",
433
+ label: messages().csvDefaultSeparator
434
+ }, {
435
+ value: ",",
436
+ label: messages().csvComma
437
+ }, {
438
+ value: ";",
439
+ label: messages().csvSemicolon
440
+ }, {
441
+ value: "\t",
442
+ label: messages().csvTab
443
+ }, {
444
+ value: "|",
445
+ label: "|"
446
+ }];
447
+ },
448
+ onValueChange: value => {
449
+ if (value) update({
450
+ delimiter: value
451
+ });
452
+ }
453
+ })), _$escape(_$createComponent(Select, {
454
+ get label() {
455
+ return messages().csvView;
456
+ },
457
+ get value() {
458
+ return preferences().view;
459
+ },
460
+ get options() {
461
+ return [{
462
+ value: "table",
463
+ label: messages().dataTable
464
+ }, {
465
+ value: "raw",
466
+ label: messages().csvRaw
467
+ }];
468
+ },
469
+ onValueChange: value => {
470
+ if (value === "table" || value === "raw") update({
471
+ view: value
472
+ });
473
+ }
474
+ }))), {
475
+ title: messages().csvSettings
476
+ });
283
477
  const headers = createMemo(() => preview().rows[0] ?? []);
284
478
  const rows = createMemo(() => preview().rows.slice(1));
285
479
  return _$createComponent(OverlayPanel, {
286
480
  get actions() {
287
- return _$createComponent(DownloadAction, props);
481
+ return [_$createComponent(OverlayAction, {
482
+ icon: "ti-adjustments-horizontal",
483
+ get title() {
484
+ return messages().csvSettings;
485
+ },
486
+ onClick: () => void settings()
487
+ }), _$createComponent(DownloadAction, props)];
288
488
  },
289
489
  get children() {
290
490
  return _$createComponent(Show, {
291
491
  get when() {
292
- return headers().length > 0;
492
+ return preferences().view === "table";
293
493
  },
294
494
  get fallback() {
295
- return _$createComponent(Placeholder, {
296
- icon: "ti ti-table",
297
- get title() {
298
- return messages().emptyFile;
299
- },
300
- get description() {
301
- return messages().delimitedFileEmpty;
495
+ return _$createComponent(TextExcerpt, {
496
+ renderer: props,
497
+ get text() {
498
+ return text();
302
499
  }
303
500
  });
304
501
  },
305
502
  get children() {
306
- return _$ssr(_tmpl$1, _$escape(_$createComponent(For, {
307
- get each() {
308
- return headers();
309
- },
310
- children: (header, index) => _$ssr(_tmpl$10, _$escape(header || messages().column({
311
- number: index() + 1
312
- })))
313
- })), _$escape(_$createComponent(For, {
314
- get each() {
315
- return rows();
316
- },
317
- children: row => _$ssr(_tmpl$11, _$escape(_$createComponent(For, {
318
- get each() {
319
- return headers();
320
- },
321
- children: (_, index) => _$ssr(_tmpl$12, _$escape(row[index()] ?? ""))
322
- })))
323
- })), _$escape(_$createComponent(Show, {
503
+ return _$createComponent(Show, {
324
504
  get when() {
325
- return preview().truncated;
505
+ return headers().length > 0;
506
+ },
507
+ get fallback() {
508
+ return _$createComponent(Placeholder, {
509
+ icon: "ti ti-table",
510
+ get title() {
511
+ return messages().emptyFile;
512
+ },
513
+ get description() {
514
+ return messages().delimitedFileEmpty;
515
+ }
516
+ });
326
517
  },
327
518
  get children() {
328
- return _$ssr(_tmpl$0, _$escape(messages().previewLimited));
519
+ return _$ssr(_tmpl$12, _$escape(_$createComponent(For, {
520
+ get each() {
521
+ return headers();
522
+ },
523
+ children: (header, index) => _$ssr(_tmpl$13, _$escape(header || messages().column({
524
+ number: index() + 1
525
+ })))
526
+ })), _$escape(_$createComponent(For, {
527
+ get each() {
528
+ return rows();
529
+ },
530
+ children: row => _$ssr(_tmpl$14, _$escape(_$createComponent(For, {
531
+ get each() {
532
+ return headers();
533
+ },
534
+ children: (_, index) => _$ssr(_tmpl$15, _$escape(row[index()] ?? ""))
535
+ })))
536
+ })), _$escape(_$createComponent(Show, {
537
+ get when() {
538
+ return preview().columnsTruncated;
539
+ },
540
+ get children() {
541
+ return _$ssr(_tmpl$6, _$escape(messages().previewColumnsLimited));
542
+ }
543
+ })), _$escape(_$createComponent(Show, {
544
+ get when() {
545
+ return props.previewLines !== undefined;
546
+ },
547
+ get fallback() {
548
+ return _$createComponent(Show, {
549
+ get when() {
550
+ return preview().totalRows > 201;
551
+ },
552
+ get children() {
553
+ return _$ssr(_tmpl$16, _$escape(_$createComponent(Button, {
554
+ size: "sm",
555
+ variant: "ghost",
556
+ get disabled() {
557
+ return page() === 0;
558
+ },
559
+ onClick: () => setPage(page() - 1),
560
+ get children() {
561
+ return messages().previous;
562
+ }
563
+ })), _$escape(page()) * _$escape(pageSize()) + 1, _$escape(Math.min((page() + 1) * pageSize(), preview().totalRows - 1)), _$escape(preview().totalRows) - 1, _$escape(_$createComponent(Button, {
564
+ size: "sm",
565
+ variant: "ghost",
566
+ get disabled() {
567
+ return (page() + 1) * pageSize() >= preview().totalRows - 1;
568
+ },
569
+ onClick: () => setPage(page() + 1),
570
+ get children() {
571
+ return messages().next;
572
+ }
573
+ })));
574
+ }
575
+ });
576
+ },
577
+ get children() {
578
+ return _$createComponent(MoreLines, {
579
+ get count() {
580
+ return preview().totalRows - rows().length - 1;
581
+ },
582
+ get onClick() {
583
+ return props.onExpandPreview;
584
+ }
585
+ });
586
+ }
587
+ })));
329
588
  }
330
- })));
589
+ });
331
590
  }
332
591
  });
333
592
  }
@@ -340,7 +599,7 @@ function ImageRenderer(props) {
340
599
  return _$createComponent(DownloadAction, props);
341
600
  },
342
601
  get children() {
343
- return _$ssr(_tmpl$13, _$ssrAttribute("src", _$escape(mediaSource(props), true), false) + _$ssrAttribute("alt", _$escape(props.file.path, true), false));
602
+ return _$ssr(_tmpl$17, _$ssrAttribute("crossorigin", _$escape(props.crossOrigin, true), false) + _$ssrAttribute("src", _$escape(mediaSource(props), true), false) + _$ssrAttribute("alt", _$escape(props.file.path, true), false));
344
603
  }
345
604
  });
346
605
  }
@@ -360,7 +619,7 @@ function PdfRenderer(props) {
360
619
  }
361
620
  });
362
621
  },
363
- children: href => _$ssr(_tmpl$14, _$ssrAttribute("data", _$escape(href(), true), false), _$ssrAttribute("aria-label", _$escape(props.file.path, true), false))
622
+ children: href => _$ssr(_tmpl$18, _$ssrAttribute("data", _$escape(href(), true), false), _$ssrAttribute("aria-label", _$escape(props.file.path, true), false))
364
623
  });
365
624
  }
366
625
  function AudioRenderer(props) {
@@ -370,7 +629,7 @@ function AudioRenderer(props) {
370
629
  return _$createComponent(DownloadAction, props);
371
630
  },
372
631
  get children() {
373
- return _$ssr(_tmpl$15, _$ssrAttribute("src", _$escape(mediaSource(props), true), false) + _$ssrAttribute("aria-label", _$escape(props.file.path, true), false), _$escape(messages().audioUnsupported));
632
+ return _$ssr(_tmpl$19, _$ssrAttribute("crossorigin", _$escape(props.crossOrigin, true), false), _$ssrAttribute("src", _$escape(mediaSource(props), true), false) + _$ssrAttribute("aria-label", _$escape(props.file.path, true), false), _$escape(messages().audioUnsupported));
374
633
  }
375
634
  });
376
635
  }
@@ -381,7 +640,7 @@ function VideoRenderer(props) {
381
640
  return _$createComponent(DownloadAction, props);
382
641
  },
383
642
  get children() {
384
- return _$ssr(_tmpl$16, _$ssrAttribute("src", _$escape(mediaSource(props), true), false) + _$ssrAttribute("aria-label", _$escape(props.file.path, true), false), _$escape(messages().videoUnsupported));
643
+ return _$ssr(_tmpl$20, _$ssrAttribute("crossorigin", _$escape(props.crossOrigin, true), false), _$ssrAttribute("src", _$escape(mediaSource(props), true), false) + _$ssrAttribute("aria-label", _$escape(props.file.path, true), false), _$escape(messages().videoUnsupported));
385
644
  }
386
645
  });
387
646
  }
@@ -400,7 +659,7 @@ function BinaryRenderer(props) {
400
659
  get when() {
401
660
  return props.downloadHref;
402
661
  },
403
- children: href => _$ssr(_tmpl$17, _$ssrAttribute("href", _$escape(href(), true), false), _$escape(messages().download))
662
+ children: href => _$ssr(_tmpl$21, _$ssrAttribute("href", _$escape(href(), true), false), _$escape(messages().download))
404
663
  });
405
664
  }
406
665
  });
@@ -433,7 +692,7 @@ const BUILTIN_RENDERERS = [{
433
692
  component: JsonRenderer
434
693
  }, {
435
694
  id: "delimited-text",
436
- match: (file, content) => content.encoding === "utf8" && getFileViewPreviewKind({
695
+ match: (file, content) => getFileViewPreviewKind({
437
696
  ...file,
438
697
  mediaType: content.mediaType || file.mediaType
439
698
  }) === "delimited-text",
@@ -552,7 +811,7 @@ export default function FileView(props) {
552
811
  saving: saveMutation.loading,
553
812
  save
554
813
  } : null;
555
- return _$ssr(_tmpl$18, `k2b-content-file-view ${_$escape(props.class ?? "", true)}`, _$escape(_$createComponent(Switch, {
814
+ return _$ssr(_tmpl$22, `k2b-content-file-view ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("data-variant", _$escape(props.variant, true), false) + _$ssrAttribute("data-excerpt", props.previewLines !== undefined ? "true" : _$escape(undefined, true), false), _$escape(_$createComponent(Switch, {
556
815
  get children() {
557
816
  return [_$createComponent(Match, {
558
817
  get when() {
@@ -588,6 +847,18 @@ export default function FileView(props) {
588
847
  children: active => {
589
848
  const Renderer = active().component;
590
849
  return _$createComponent(Renderer, {
850
+ get previewLines() {
851
+ return props.previewLines;
852
+ },
853
+ get onExpandPreview() {
854
+ return props.onExpandPreview;
855
+ },
856
+ get headingScale() {
857
+ return props.headingScale;
858
+ },
859
+ get previewPreferencesKey() {
860
+ return props.previewPreferencesKey;
861
+ },
591
862
  get file() {
592
863
  return props.file;
593
864
  },
@@ -597,6 +868,12 @@ export default function FileView(props) {
597
868
  get previewHref() {
598
869
  return nativePreviewHref();
599
870
  },
871
+ get crossOrigin() {
872
+ return props.crossOrigin;
873
+ },
874
+ get onPreviewError() {
875
+ return props.onPreviewError;
876
+ },
600
877
  get downloadHref() {
601
878
  return props.downloadHref ?? null;
602
879
  },