@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
@@ -170,6 +170,78 @@ const FormatRelativeTime = props => {
170
170
  })()
171
171
  });
172
172
  };
173
+
174
+ // Encode calendar dates as UTC day ordinals, not elapsed local-midnight time:
175
+ // a calendar day remains one day across 23-hour and 25-hour DST transitions.
176
+ const calendarDay = value => {
177
+ if (!value || !/^\d{4}-\d{2}-\d{2}$/.test(value) || value.startsWith("0000")) return null;
178
+ const instant = new Date(`${value}T00:00:00Z`);
179
+ if (!Number.isFinite(instant.getTime()) || instant.toISOString().slice(0, 10) !== value) return null;
180
+ return instant.getTime() / 86_400_000;
181
+ };
182
+ const FormatRelativeDate = props => {
183
+ const [own, rest] = splitProps(props, ["value", "locale", "base", "timeZone", "fallback"]);
184
+ const locale = useLocale();
185
+ const relative = () => {
186
+ const targetDay = calendarDay(own.value);
187
+ const zone = own.timeZone ?? "UTC";
188
+ if (targetDay === null || !dates.isValidTimeZone(zone)) return null;
189
+ const base = own.base ?? new Date();
190
+ let baseDay;
191
+ if (typeof base === "string" && /^\d{4}-\d{2}-\d{2}$/.test(base)) {
192
+ baseDay = calendarDay(base);
193
+ } else {
194
+ // Offsetless timestamps depend on the host timezone and cannot hydrate reliably.
195
+ if (typeof base === "string" && !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})$/.test(base)) return null;
196
+ if (typeof base === "string" && calendarDay(base.slice(0, 10)) === null) return null;
197
+ const instant = toDate(base);
198
+ if (!instant) return null;
199
+ const parts = new Intl.DateTimeFormat("en-US", {
200
+ calendar: "gregory",
201
+ numberingSystem: "latn",
202
+ timeZone: zone,
203
+ year: "numeric",
204
+ month: "2-digit",
205
+ day: "2-digit",
206
+ era: "short"
207
+ }).formatToParts(instant);
208
+ const part = type => parts.find(item => item.type === type)?.value;
209
+ if (part("era") !== "AD") return null;
210
+ baseDay = calendarDay(`${part("year")?.padStart(4, "0")}-${part("month")}-${part("day")}`);
211
+ }
212
+ if (baseDay === null) return null;
213
+ return {
214
+ label: new Intl.RelativeTimeFormat(own.locale ?? locale(), {
215
+ numeric: "auto"
216
+ }).format(targetDay - baseDay, "day")
217
+ };
218
+ };
219
+ return _$createComponent(Show, {
220
+ get when() {
221
+ return relative();
222
+ },
223
+ get fallback() {
224
+ return (() => {
225
+ var _el$9 = _$getNextElement(_tmpl$);
226
+ _$spread(_el$9, rest, false, true);
227
+ _$insert(_el$9, () => own.fallback ?? FALLBACK);
228
+ _$runHydrationEvents();
229
+ return _el$9;
230
+ })();
231
+ },
232
+ children: value => (() => {
233
+ var _el$0 = _$getNextElement(_tmpl$2);
234
+ _$spread(_el$0, _$mergeProps(rest, {
235
+ get datetime() {
236
+ return own.value ?? undefined;
237
+ }
238
+ }), false, true);
239
+ _$insert(_el$0, () => value().label);
240
+ _$runHydrationEvents();
241
+ return _el$0;
242
+ })()
243
+ });
244
+ };
173
245
  const FormatDuration = props => {
174
246
  const [own, rest] = splitProps(props, ["from", "to", "locale", "fallback"]);
175
247
  const locale = useLocale();
@@ -187,25 +259,25 @@ const FormatDuration = props => {
187
259
  },
188
260
  get fallback() {
189
261
  return (() => {
190
- var _el$9 = _$getNextElement(_tmpl$);
191
- _$spread(_el$9, rest, false, true);
192
- _$insert(_el$9, () => own.fallback ?? FALLBACK);
262
+ var _el$1 = _$getNextElement(_tmpl$);
263
+ _$spread(_el$1, rest, false, true);
264
+ _$insert(_el$1, () => own.fallback ?? FALLBACK);
193
265
  _$runHydrationEvents();
194
- return _el$9;
266
+ return _el$1;
195
267
  })();
196
268
  },
197
269
  children: value => (() => {
198
- var _el$0 = _$getNextElement(_tmpl$2);
199
- _$spread(_el$0, _$mergeProps(rest, {
270
+ var _el$10 = _$getNextElement(_tmpl$2);
271
+ _$spread(_el$10, _$mergeProps(rest, {
200
272
  get datetime() {
201
273
  return isoDuration(Math.abs(value().to.getTime() - value().from.getTime()));
202
274
  }
203
275
  }), false, true);
204
- _$insert(_el$0, () => dates.formatDuration(value().from, value().to, {
276
+ _$insert(_el$10, () => dates.formatDuration(value().from, value().to, {
205
277
  locale: own.locale ?? locale()
206
278
  }));
207
279
  _$runHydrationEvents();
208
- return _el$0;
280
+ return _el$10;
209
281
  })()
210
282
  });
211
283
  };
@@ -225,25 +297,25 @@ const FormatDurationMs = props => {
225
297
  },
226
298
  get fallback() {
227
299
  return (() => {
228
- var _el$1 = _$getNextElement(_tmpl$);
229
- _$spread(_el$1, rest, false, true);
230
- _$insert(_el$1, () => own.fallback ?? FALLBACK);
300
+ var _el$11 = _$getNextElement(_tmpl$);
301
+ _$spread(_el$11, rest, false, true);
302
+ _$insert(_el$11, () => own.fallback ?? FALLBACK);
231
303
  _$runHydrationEvents();
232
- return _el$1;
304
+ return _el$11;
233
305
  })();
234
306
  },
235
307
  children: duration => (() => {
236
- var _el$10 = _$getNextElement(_tmpl$2);
237
- _$spread(_el$10, _$mergeProps(rest, {
308
+ var _el$12 = _$getNextElement(_tmpl$2);
309
+ _$spread(_el$12, _$mergeProps(rest, {
238
310
  get datetime() {
239
311
  return isoDuration(duration().ms);
240
312
  }
241
313
  }), false, true);
242
- _$insert(_el$10, () => text.pprintDurationMs(duration().ms, {
314
+ _$insert(_el$12, () => text.pprintDurationMs(duration().ms, {
243
315
  locale: own.locale ?? locale()
244
316
  }));
245
317
  _$runHydrationEvents();
246
- return _el$10;
318
+ return _el$12;
247
319
  })()
248
320
  });
249
321
  };
@@ -267,6 +339,7 @@ export const Format = {
267
339
  Time: FormatTime,
268
340
  DateTime: FormatDateTime,
269
341
  RelativeTime: FormatRelativeTime,
342
+ RelativeDate: FormatRelativeDate,
270
343
  Duration: FormatDuration,
271
344
  DurationMs: FormatDurationMs
272
345
  };
@@ -1 +1 @@
1
- {"version":3,"names":["dates","text","Show","splitProps","useLocale","FALLBACK","toDate","value","date","Date","Number","isNaN","getTime","isoDuration","ms","totalMilliseconds","Math","round","totalSeconds","floor","milliseconds","days","hours","minutes","seconds","fractionalSeconds","String","padStart","replace","time","FormatNumber","props","own","rest","locale","_el$","_$getNextElement","_tmpl$","_$spread","_$insert","pprintNumber","compact","decimals","fallback","_$runHydrationEvents","FormatPercent","_el$2","pprintPercent","clamp","FormatCurrency","_el$3","pprintCurrency","currency","FormatBytes","_el$4","_c$","_$memo","isFinite","pprintBytes","mode","temporalComponent","format","_$createComponent","when","_el$5","children","_el$6","_tmpl$2","_$mergeProps","datetime","toISOString","timeZone","FormatDate","context","formatDate","FormatTime","formatTime","FormatDateTime","formatDateTime","FormatRelativeTime","_el$7","_el$8","formatTimeSpan","base","FormatDuration","range","from","to","_el$9","_el$0","abs","formatDuration","FormatDurationMs","valid","_el$1","duration","_el$10","pprintDurationMs","Format","Percent","Currency","Bytes","Time","DateTime","RelativeTime","Duration","DurationMs"],"sources":["intl/Format.tsx"],"sourcesContent":["import { type ByteMode, dates, text } from \"@k2b/stdlib\";\nimport { type JSX, Show, splitProps } from \"solid-js\";\nimport { useLocale } from \"./locale\";\n\nconst FALLBACK = \"—\";\n\ntype SpanProps = JSX.HTMLAttributes<HTMLSpanElement>;\n// Temporal components render `<time>` for valid values and a `<span>` fallback\n// otherwise, so their native attributes are typed against the shared element\n// base; `ref` is excluded because its value form is element-specific. The\n// `datetime` attribute is owned by the component itself.\ntype TimeElementProps = Omit<JSX.HTMLAttributes<HTMLElement>, \"ref\">;\n\ntype LocaleProp = {\n /** Explicit locale override; defaults to the inherited render locale. */\n locale?: string;\n};\n\ntype FallbackProp = {\n /** Text rendered for null or invalid input. Defaults to `\"—\"`. */\n fallback?: string;\n};\n\nexport type FormatNumberProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n value: number | null | undefined;\n /** Use deterministic compact suffixes (`k`, `M`, `B`, `T`). */\n compact?: boolean;\n /** Fixed fraction digits. */\n decimals?: number;\n };\n\nexport type FormatPercentProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n /** Ratio input: `0.12` renders as `12%`. */\n value: number | null | undefined;\n /** Fixed fraction digits. Defaults to 0. */\n decimals?: number;\n /** Clamp the ratio to 0..1 before formatting. */\n clamp?: boolean;\n };\n\nexport type FormatCurrencyProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n value: number | null | undefined;\n /** ISO 4217 currency code, e.g. `\"EUR\"` or `\"USD\"`. */\n currency: string;\n /** Fixed fraction digits. Defaults to the currency's standard digits. */\n decimals?: number;\n };\n\nexport type FormatBytesProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n value: number | null | undefined;\n /** `\"iec\"` (default, 1024-base) or `\"si\"` (1000-base). */\n mode?: ByteMode;\n };\n\nexport type FormatDateProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n value: Date | string | null | undefined;\n /** IANA timezone. Defaults to `\"UTC\"` so server and browser text agree. */\n timeZone?: string;\n };\n\nexport type FormatTimeProps = FormatDateProps;\nexport type FormatDateTimeProps = FormatDateProps;\n\nexport type FormatRelativeTimeProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n value: Date | string | null | undefined;\n /** Deterministic base timestamp; defaults to now. */\n base?: Date | string;\n /** IANA timezone used to select calendar-relative labels. Defaults to `\"UTC\"`. */\n timeZone?: string;\n };\n\nexport type FormatDurationProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n from: Date | string | null | undefined;\n to: Date | string | null | undefined;\n };\n\nexport type FormatDurationMsProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n /** Duration in milliseconds. */\n value: number | null | undefined;\n };\n\nconst toDate = (value: Date | string | null | undefined): Date | null => {\n if (value == null) return null;\n const date = typeof value === \"string\" ? new Date(value) : value;\n return Number.isNaN(date.getTime()) ? null : date;\n};\n\n/** ISO 8601 duration for the `<time datetime>` attribute, e.g. `\"PT2H30M\"`. */\nconst isoDuration = (ms: number): string => {\n const totalMilliseconds = Math.round(ms);\n if (totalMilliseconds <= 0) return \"PT0S\";\n const totalSeconds = Math.floor(totalMilliseconds / 1000);\n const milliseconds = totalMilliseconds % 1000;\n const days = Math.floor(totalSeconds / 86_400);\n const hours = Math.floor((totalSeconds % 86_400) / 3_600);\n const minutes = Math.floor((totalSeconds % 3_600) / 60);\n const seconds = totalSeconds % 60;\n const fractionalSeconds = milliseconds ? `${seconds}.${String(milliseconds).padStart(3, \"0\").replace(/0+$/, \"\")}S` : \"\";\n const time = `${hours ? `${hours}H` : \"\"}${minutes ? `${minutes}M` : \"\"}${fractionalSeconds || (seconds ? `${seconds}S` : \"\")}`;\n return `P${days ? `${days}D` : \"\"}${time ? `T${time}` : \"\"}`;\n};\n\nconst FormatNumber = (props: FormatNumberProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"compact\", \"decimals\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {text.pprintNumber(own.value, {\n locale: own.locale ?? locale(),\n compact: own.compact,\n decimals: own.decimals,\n fallback: own.fallback,\n })}\n </span>\n );\n};\n\nconst FormatPercent = (props: FormatPercentProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"decimals\", \"clamp\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {text.pprintPercent(own.value, {\n locale: own.locale ?? locale(),\n decimals: own.decimals,\n clamp: own.clamp,\n fallback: own.fallback,\n })}\n </span>\n );\n};\n\nconst FormatCurrency = (props: FormatCurrencyProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"currency\", \"locale\", \"decimals\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {text.pprintCurrency(own.value, own.currency, {\n locale: own.locale ?? locale(),\n decimals: own.decimals,\n fallback: own.fallback,\n })}\n </span>\n );\n};\n\nconst FormatBytes = (props: FormatBytesProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"mode\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {typeof own.value === \"number\" && Number.isFinite(own.value)\n ? text.pprintBytes(own.value, { locale: own.locale ?? locale(), mode: own.mode })\n : (own.fallback ?? FALLBACK)}\n </span>\n );\n};\n\ntype TemporalFormatter = (date: Date, context: { locale: string; timeZone: string }) => string;\n\nconst temporalComponent =\n (format: TemporalFormatter) =>\n (props: FormatDateProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"timeZone\", \"fallback\"]);\n const locale = useLocale();\n return (\n <Show when={toDate(own.value)} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(date) => (\n <time {...rest} datetime={date().toISOString()}>\n {format(date(), { locale: own.locale ?? locale(), timeZone: own.timeZone ?? \"UTC\" })}\n </time>\n )}\n </Show>\n );\n };\n\nconst FormatDate = temporalComponent((date, context) => dates.formatDate(date, context));\nconst FormatTime = temporalComponent((date, context) => dates.formatTime(date, context));\nconst FormatDateTime = temporalComponent((date, context) => dates.formatDateTime(date, context));\n\nconst FormatRelativeTime = (props: FormatRelativeTimeProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"base\", \"timeZone\", \"fallback\"]);\n const locale = useLocale();\n return (\n <Show when={toDate(own.value)} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(date) => (\n <time {...rest} datetime={date().toISOString()}>\n {dates.formatTimeSpan(date(), { locale: own.locale ?? locale(), base: own.base, timeZone: own.timeZone ?? \"UTC\" })}\n </time>\n )}\n </Show>\n );\n};\n\nconst FormatDuration = (props: FormatDurationProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"from\", \"to\", \"locale\", \"fallback\"]);\n const locale = useLocale();\n const range = () => {\n const from = toDate(own.from);\n const to = toDate(own.to);\n return from && to ? { from, to } : null;\n };\n return (\n <Show when={range()} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(value) => (\n <time {...rest} datetime={isoDuration(Math.abs(value().to.getTime() - value().from.getTime()))}>\n {dates.formatDuration(value().from, value().to, { locale: own.locale ?? locale() })}\n </time>\n )}\n </Show>\n );\n};\n\nconst FormatDurationMs = (props: FormatDurationMsProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"fallback\"]);\n const locale = useLocale();\n // Wrapped in an object because a valid duration of 0ms is falsy.\n const valid = (): { ms: number } | null => {\n const value = own.value;\n return typeof value === \"number\" && Number.isFinite(value) && value >= 0 ? { ms: value } : null;\n };\n return (\n <Show when={valid()} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(duration) => (\n <time {...rest} datetime={isoDuration(duration().ms)}>\n {text.pprintDurationMs(duration().ms, { locale: own.locale ?? locale() })}\n </time>\n )}\n </Show>\n );\n};\n\n/**\n * Unstyled semantic formatter components backed by `@k2b/stdlib`.\n *\n * Numeric components render a plain `<span>`; date/time components render\n * `<time>` with a canonical `datetime` attribute. All components inherit the\n * render locale (see `LocaleProvider` / `useLocale`) and accept an explicit\n * `locale` override. Date, Time, and DateTime format in UTC unless an\n * explicit `timeZone` is given, so server and browser output never diverge\n * with the runtime timezone.\n */\nexport const Format = {\n Number: FormatNumber,\n Percent: FormatPercent,\n Currency: FormatCurrency,\n Bytes: FormatBytes,\n Date: FormatDate,\n Time: FormatTime,\n DateTime: FormatDateTime,\n RelativeTime: FormatRelativeTime,\n Duration: FormatDuration,\n DurationMs: FormatDurationMs,\n} as const;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["dates","text","Show","splitProps","useLocale","FALLBACK","toDate","value","date","Date","Number","isNaN","getTime","isoDuration","ms","totalMilliseconds","Math","round","totalSeconds","floor","milliseconds","days","hours","minutes","seconds","fractionalSeconds","String","padStart","replace","time","FormatNumber","props","own","rest","locale","_el$","_$getNextElement","_tmpl$","_$spread","_$insert","pprintNumber","compact","decimals","fallback","_$runHydrationEvents","FormatPercent","_el$2","pprintPercent","clamp","FormatCurrency","_el$3","pprintCurrency","currency","FormatBytes","_el$4","_c$","_$memo","isFinite","pprintBytes","mode","temporalComponent","format","_$createComponent","when","_el$5","children","_el$6","_tmpl$2","_$mergeProps","datetime","toISOString","timeZone","FormatDate","context","formatDate","FormatTime","formatTime","FormatDateTime","formatDateTime","FormatRelativeTime","_el$7","_el$8","formatTimeSpan","base","calendarDay","test","startsWith","instant","slice","FormatRelativeDate","relative","targetDay","zone","isValidTimeZone","baseDay","parts","Intl","DateTimeFormat","calendar","numberingSystem","year","month","day","era","formatToParts","part","type","find","item","label","RelativeTimeFormat","numeric","_el$9","_el$0","undefined","FormatDuration","range","from","to","_el$1","_el$10","abs","formatDuration","FormatDurationMs","valid","_el$11","duration","_el$12","pprintDurationMs","Format","Percent","Currency","Bytes","Time","DateTime","RelativeTime","RelativeDate","Duration","DurationMs"],"sources":["intl/Format.tsx"],"sourcesContent":["import { type ByteMode, dates, text } from \"@k2b/stdlib\";\nimport { type JSX, Show, splitProps } from \"solid-js\";\nimport { useLocale } from \"./locale\";\n\nconst FALLBACK = \"—\";\n\ntype SpanProps = JSX.HTMLAttributes<HTMLSpanElement>;\n// Temporal components render `<time>` for valid values and a `<span>` fallback\n// otherwise, so their native attributes are typed against the shared element\n// base; `ref` is excluded because its value form is element-specific. The\n// `datetime` attribute is owned by the component itself.\ntype TimeElementProps = Omit<JSX.HTMLAttributes<HTMLElement>, \"ref\">;\n\ntype LocaleProp = {\n /** Explicit locale override; defaults to the inherited render locale. */\n locale?: string;\n};\n\ntype FallbackProp = {\n /** Text rendered for null or invalid input. Defaults to `\"—\"`. */\n fallback?: string;\n};\n\nexport type FormatNumberProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n value: number | null | undefined;\n /** Use deterministic compact suffixes (`k`, `M`, `B`, `T`). */\n compact?: boolean;\n /** Fixed fraction digits. */\n decimals?: number;\n };\n\nexport type FormatPercentProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n /** Ratio input: `0.12` renders as `12%`. */\n value: number | null | undefined;\n /** Fixed fraction digits. Defaults to 0. */\n decimals?: number;\n /** Clamp the ratio to 0..1 before formatting. */\n clamp?: boolean;\n };\n\nexport type FormatCurrencyProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n value: number | null | undefined;\n /** ISO 4217 currency code, e.g. `\"EUR\"` or `\"USD\"`. */\n currency: string;\n /** Fixed fraction digits. Defaults to the currency's standard digits. */\n decimals?: number;\n };\n\nexport type FormatBytesProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n value: number | null | undefined;\n /** `\"iec\"` (default, 1024-base) or `\"si\"` (1000-base). */\n mode?: ByteMode;\n };\n\nexport type FormatDateProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n value: Date | string | null | undefined;\n /** IANA timezone. Defaults to `\"UTC\"` so server and browser text agree. */\n timeZone?: string;\n };\n\nexport type FormatTimeProps = FormatDateProps;\nexport type FormatDateTimeProps = FormatDateProps;\n\nexport type FormatRelativeTimeProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n value: Date | string | null | undefined;\n /** Deterministic base timestamp; defaults to now. */\n base?: Date | string;\n /** IANA timezone used to select calendar-relative labels. Defaults to `\"UTC\"`. */\n timeZone?: string;\n };\n\nexport type FormatRelativeDateProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n /** A Gregorian calendar date in strict YYYY-MM-DD format, never timezone-shifted. */\n value: string | null | undefined;\n /** Calendar date, Date, or ISO timestamp with an explicit offset. Defaults to now. */\n base?: Date | string;\n /** Zone used to read the base instant as a calendar day. Defaults to UTC. */\n timeZone?: string;\n };\n\nexport type FormatDurationProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n from: Date | string | null | undefined;\n to: Date | string | null | undefined;\n };\n\nexport type FormatDurationMsProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n /** Duration in milliseconds. */\n value: number | null | undefined;\n };\n\nconst toDate = (value: Date | string | null | undefined): Date | null => {\n if (value == null) return null;\n const date = typeof value === \"string\" ? new Date(value) : value;\n return Number.isNaN(date.getTime()) ? null : date;\n};\n\n/** ISO 8601 duration for the `<time datetime>` attribute, e.g. `\"PT2H30M\"`. */\nconst isoDuration = (ms: number): string => {\n const totalMilliseconds = Math.round(ms);\n if (totalMilliseconds <= 0) return \"PT0S\";\n const totalSeconds = Math.floor(totalMilliseconds / 1000);\n const milliseconds = totalMilliseconds % 1000;\n const days = Math.floor(totalSeconds / 86_400);\n const hours = Math.floor((totalSeconds % 86_400) / 3_600);\n const minutes = Math.floor((totalSeconds % 3_600) / 60);\n const seconds = totalSeconds % 60;\n const fractionalSeconds = milliseconds ? `${seconds}.${String(milliseconds).padStart(3, \"0\").replace(/0+$/, \"\")}S` : \"\";\n const time = `${hours ? `${hours}H` : \"\"}${minutes ? `${minutes}M` : \"\"}${fractionalSeconds || (seconds ? `${seconds}S` : \"\")}`;\n return `P${days ? `${days}D` : \"\"}${time ? `T${time}` : \"\"}`;\n};\n\nconst FormatNumber = (props: FormatNumberProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"compact\", \"decimals\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {text.pprintNumber(own.value, {\n locale: own.locale ?? locale(),\n compact: own.compact,\n decimals: own.decimals,\n fallback: own.fallback,\n })}\n </span>\n );\n};\n\nconst FormatPercent = (props: FormatPercentProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"decimals\", \"clamp\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {text.pprintPercent(own.value, {\n locale: own.locale ?? locale(),\n decimals: own.decimals,\n clamp: own.clamp,\n fallback: own.fallback,\n })}\n </span>\n );\n};\n\nconst FormatCurrency = (props: FormatCurrencyProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"currency\", \"locale\", \"decimals\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {text.pprintCurrency(own.value, own.currency, {\n locale: own.locale ?? locale(),\n decimals: own.decimals,\n fallback: own.fallback,\n })}\n </span>\n );\n};\n\nconst FormatBytes = (props: FormatBytesProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"mode\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {typeof own.value === \"number\" && Number.isFinite(own.value)\n ? text.pprintBytes(own.value, { locale: own.locale ?? locale(), mode: own.mode })\n : (own.fallback ?? FALLBACK)}\n </span>\n );\n};\n\ntype TemporalFormatter = (date: Date, context: { locale: string; timeZone: string }) => string;\n\nconst temporalComponent =\n (format: TemporalFormatter) =>\n (props: FormatDateProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"timeZone\", \"fallback\"]);\n const locale = useLocale();\n return (\n <Show when={toDate(own.value)} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(date) => (\n <time {...rest} datetime={date().toISOString()}>\n {format(date(), { locale: own.locale ?? locale(), timeZone: own.timeZone ?? \"UTC\" })}\n </time>\n )}\n </Show>\n );\n };\n\nconst FormatDate = temporalComponent((date, context) => dates.formatDate(date, context));\nconst FormatTime = temporalComponent((date, context) => dates.formatTime(date, context));\nconst FormatDateTime = temporalComponent((date, context) => dates.formatDateTime(date, context));\n\nconst FormatRelativeTime = (props: FormatRelativeTimeProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"base\", \"timeZone\", \"fallback\"]);\n const locale = useLocale();\n return (\n <Show when={toDate(own.value)} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(date) => (\n <time {...rest} datetime={date().toISOString()}>\n {dates.formatTimeSpan(date(), { locale: own.locale ?? locale(), base: own.base, timeZone: own.timeZone ?? \"UTC\" })}\n </time>\n )}\n </Show>\n );\n};\n\n// Encode calendar dates as UTC day ordinals, not elapsed local-midnight time:\n// a calendar day remains one day across 23-hour and 25-hour DST transitions.\nconst calendarDay = (value: string | null | undefined): number | null => {\n if (!value || !/^\\d{4}-\\d{2}-\\d{2}$/.test(value) || value.startsWith(\"0000\")) return null;\n const instant = new Date(`${value}T00:00:00Z`);\n if (!Number.isFinite(instant.getTime()) || instant.toISOString().slice(0, 10) !== value) return null;\n return instant.getTime() / 86_400_000;\n};\n\nconst FormatRelativeDate = (props: FormatRelativeDateProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"base\", \"timeZone\", \"fallback\"]);\n const locale = useLocale();\n const relative = () => {\n const targetDay = calendarDay(own.value);\n const zone = own.timeZone ?? \"UTC\";\n if (targetDay === null || !dates.isValidTimeZone(zone)) return null;\n const base = own.base ?? new Date();\n let baseDay: number | null;\n if (typeof base === \"string\" && /^\\d{4}-\\d{2}-\\d{2}$/.test(base)) {\n baseDay = calendarDay(base);\n } else {\n // Offsetless timestamps depend on the host timezone and cannot hydrate reliably.\n if (typeof base === \"string\" && !/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?(?:Z|[+-]\\d{2}:\\d{2})$/.test(base)) return null;\n if (typeof base === \"string\" && calendarDay(base.slice(0, 10)) === null) return null;\n const instant = toDate(base);\n if (!instant) return null;\n const parts = new Intl.DateTimeFormat(\"en-US\", {\n calendar: \"gregory\",\n numberingSystem: \"latn\",\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n era: \"short\",\n }).formatToParts(instant);\n const part = (type: Intl.DateTimeFormatPartTypes) => parts.find((item) => item.type === type)?.value;\n if (part(\"era\") !== \"AD\") return null;\n baseDay = calendarDay(`${part(\"year\")?.padStart(4, \"0\")}-${part(\"month\")}-${part(\"day\")}`);\n }\n if (baseDay === null) return null;\n return { label: new Intl.RelativeTimeFormat(own.locale ?? locale(), { numeric: \"auto\" }).format(targetDay - baseDay, \"day\") };\n };\n return (\n <Show when={relative()} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(value) => (\n <time {...rest} datetime={own.value ?? undefined}>\n {value().label}\n </time>\n )}\n </Show>\n );\n};\n\nconst FormatDuration = (props: FormatDurationProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"from\", \"to\", \"locale\", \"fallback\"]);\n const locale = useLocale();\n const range = () => {\n const from = toDate(own.from);\n const to = toDate(own.to);\n return from && to ? { from, to } : null;\n };\n return (\n <Show when={range()} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(value) => (\n <time {...rest} datetime={isoDuration(Math.abs(value().to.getTime() - value().from.getTime()))}>\n {dates.formatDuration(value().from, value().to, { locale: own.locale ?? locale() })}\n </time>\n )}\n </Show>\n );\n};\n\nconst FormatDurationMs = (props: FormatDurationMsProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"fallback\"]);\n const locale = useLocale();\n // Wrapped in an object because a valid duration of 0ms is falsy.\n const valid = (): { ms: number } | null => {\n const value = own.value;\n return typeof value === \"number\" && Number.isFinite(value) && value >= 0 ? { ms: value } : null;\n };\n return (\n <Show when={valid()} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(duration) => (\n <time {...rest} datetime={isoDuration(duration().ms)}>\n {text.pprintDurationMs(duration().ms, { locale: own.locale ?? locale() })}\n </time>\n )}\n </Show>\n );\n};\n\n/**\n * Unstyled semantic formatter components backed by `@k2b/stdlib`.\n *\n * Numeric components render a plain `<span>`; date/time components render\n * `<time>` with a canonical `datetime` attribute. All components inherit the\n * render locale (see `LocaleProvider` / `useLocale`) and accept an explicit\n * `locale` override. Date, Time, and DateTime format in UTC unless an\n * explicit `timeZone` is given, so server and browser output never diverge\n * with the runtime timezone.\n */\nexport const Format = {\n Number: FormatNumber,\n Percent: FormatPercent,\n Currency: FormatCurrency,\n Bytes: FormatBytes,\n Date: FormatDate,\n Time: FormatTime,\n DateTime: FormatDateTime,\n RelativeTime: FormatRelativeTime,\n RelativeDate: FormatRelativeDate,\n Duration: FormatDuration,\n DurationMs: FormatDurationMs,\n} as const;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Format","LocaleProvider","useLocale"],"sources":["intl/index.ts"],"sourcesContent":["export type {\n FormatBytesProps,\n FormatCurrencyProps,\n FormatDateProps,\n FormatDateTimeProps,\n FormatDurationMsProps,\n FormatDurationProps,\n FormatNumberProps,\n FormatPercentProps,\n FormatRelativeTimeProps,\n FormatTimeProps,\n} from \"./Format\";\nexport { Format } from \"./Format\";\nexport type { LocaleProviderProps } from \"./locale\";\nexport { LocaleProvider, useLocale } from \"./locale\";\n"],"mappings":"AAYA,SAASA,MAAM,QAAQ,UAAU;AAEjC,SAASC,cAAc,EAAEC,SAAS,QAAQ,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["Format","LocaleProvider","useLocale"],"sources":["intl/index.ts"],"sourcesContent":["export type {\n FormatBytesProps,\n FormatCurrencyProps,\n FormatDateProps,\n FormatDateTimeProps,\n FormatDurationMsProps,\n FormatDurationProps,\n FormatNumberProps,\n FormatPercentProps,\n FormatRelativeDateProps,\n FormatRelativeTimeProps,\n FormatTimeProps,\n} from \"./Format\";\nexport { Format } from \"./Format\";\nexport type { LocaleProviderProps } from \"./locale\";\nexport { LocaleProvider, useLocale } from \"./locale\";\n"],"mappings":"AAaA,SAASA,MAAM,QAAQ,UAAU;AAEjC,SAASC,cAAc,EAAEC,SAAS,QAAQ,UAAU","ignoreList":[]}
@@ -4,6 +4,21 @@ const uiMessages = i18n.define({
4
4
  baseLocale: "en",
5
5
  messages: {
6
6
  en: {
7
+ chartView: "Chart view",
8
+ chartDiagram: "Diagram",
9
+ chartData: "Table",
10
+ chartSeries: "Series visibility",
11
+ chartOnly: "Only",
12
+ chartShowAll: "Show all",
13
+ chartShowing: "Showing",
14
+ chartSelectedDatum: "Selected data point",
15
+ chartReference: "Reference",
16
+ chartCurrent: "Current",
17
+ chartPinReference: "Pin as reference",
18
+ chartRemoveComparison: "Remove comparison",
19
+ chartPreviousData: "The chart and table still show the last loaded filters",
20
+ chartCopyData: "Copy data",
21
+ chartCopyFailed: "Could not copy data",
7
22
  actions: "Actions",
8
23
  add: "Add",
9
24
  addTag: "Add tag",
@@ -157,6 +172,7 @@ const uiMessages = i18n.define({
157
172
  commands: "Commands",
158
173
  dropFilesToAttach: "Drop files to attach",
159
174
  conversation: "Conversation",
175
+ jumpToLatest: "Jump to latest",
160
176
  conversationMessages: ({
161
177
  label
162
178
  }) => `${label} messages`,
@@ -218,6 +234,44 @@ const uiMessages = i18n.define({
218
234
  filterActions: "Filter actions",
219
235
  info: "Info",
220
236
  interactiveLineChart: "Interactive line chart",
237
+ interactiveChart: "Interactive chart. Use arrow keys to inspect, Enter to select, Escape to dismiss. On maps and timelines use Alt with arrow keys to inspect.",
238
+ chartFields: ({
239
+ key
240
+ }) => {
241
+ const labels = {
242
+ x: "X",
243
+ y: "Y",
244
+ value: "Value",
245
+ percent: "Share",
246
+ total: "Total",
247
+ from: "From",
248
+ to: "To",
249
+ upperInclusive: "Includes upper bound",
250
+ count: "Count",
251
+ q1: "Lower quartile",
252
+ q2: "Median",
253
+ q3: "Upper quartile",
254
+ whiskerLow: "Lower whisker",
255
+ whiskerHigh: "Upper whisker",
256
+ min: "Minimum",
257
+ max: "Maximum",
258
+ threshold: "Threshold",
259
+ delta: "Change",
260
+ latitude: "Latitude",
261
+ longitude: "Longitude",
262
+ size: "Size",
263
+ state: "State",
264
+ duration: "Duration",
265
+ detail: "Detail",
266
+ errY: "Y error",
267
+ errYHigh: "Upper Y error",
268
+ errYLow: "Lower Y error",
269
+ errX: "X error",
270
+ errXHigh: "Upper X error",
271
+ errXLow: "Lower X error"
272
+ };
273
+ return labels[key] ?? key;
274
+ },
221
275
  interactiveMap: "Interactive map",
222
276
  interactiveTimeline: "Interactive timeline",
223
277
  ok: "OK",
@@ -360,18 +414,43 @@ const uiMessages = i18n.define({
360
414
  markdownFormatting: "Markdown formatting",
361
415
  numberedListShortcut: "Numbered list (Ctrl/Cmd+Shift+7)",
362
416
  quote: "Quote",
417
+ csvSettings: "CSV preview settings",
418
+ csvEncoding: "Encoding",
419
+ csvSeparator: "Separator",
420
+ csvDefaultSeparator: "File type default",
421
+ csvComma: "Comma",
422
+ csvSemicolon: "Semicolon",
423
+ csvTab: "Tab",
424
+ csvView: "Display",
425
+ csvRaw: "Raw text",
363
426
  delimitedFileEmpty: "This delimited file contains no rows.",
364
427
  edit: "Edit",
365
428
  emptyFile: "Empty file",
366
429
  failedLoadFile: "Failed to load file",
367
430
  noInlinePreview: "No inline preview available for this source.",
368
- previewLimited: "Preview limited to 200 data rows and 50 columns.",
431
+ previewMoreLines: n => `… ${n} more lines`,
432
+ previewColumnsLimited: "Showing the first 50 columns. Download the file for all columns.",
369
433
  textEditor: "Text editor",
370
434
  audioUnsupported: "Your browser does not support audio playback.",
371
435
  videoUnsupported: "Your browser does not support video playback.",
372
436
  yes: "Yes"
373
437
  },
374
438
  de: {
439
+ chartView: "Diagrammansicht",
440
+ chartDiagram: "Diagramm",
441
+ chartData: "Tabelle",
442
+ chartSeries: "Sichtbare Datenreihen",
443
+ chartOnly: "Nur diese",
444
+ chartShowAll: "Alle anzeigen",
445
+ chartShowing: "Angezeigt",
446
+ chartSelectedDatum: "Ausgewählter Datenpunkt",
447
+ chartReference: "Vergleich",
448
+ chartCurrent: "Aktuell",
449
+ chartPinReference: "Als Vergleich merken",
450
+ chartRemoveComparison: "Vergleich entfernen",
451
+ chartPreviousData: "Diagramm und Tabelle zeigen weiterhin die zuletzt geladenen Filter",
452
+ chartCopyData: "Daten kopieren",
453
+ chartCopyFailed: "Daten konnten nicht kopiert werden",
375
454
  actions: "Aktionen",
376
455
  add: "Hinzufügen",
377
456
  addTag: "Tag hinzufügen",
@@ -525,6 +604,7 @@ const uiMessages = i18n.define({
525
604
  commands: "Befehle",
526
605
  dropFilesToAttach: "Dateien zum Anhängen ablegen",
527
606
  conversation: "Unterhaltung",
607
+ jumpToLatest: "Zur neuesten Nachricht",
528
608
  conversationMessages: ({
529
609
  label
530
610
  }) => `Nachrichten in ${label}`,
@@ -586,6 +666,44 @@ const uiMessages = i18n.define({
586
666
  filterActions: "Filteraktionen",
587
667
  info: "Information",
588
668
  interactiveLineChart: "Interaktives Liniendiagramm",
669
+ interactiveChart: "Interaktives Diagramm. Pfeiltasten zum Erkunden, Enter zum Auswählen, Escape zum Schließen. In Karten und Zeitleisten Alt mit Pfeiltasten zum Erkunden.",
670
+ chartFields: ({
671
+ key
672
+ }) => {
673
+ const labels = {
674
+ x: "X",
675
+ y: "Y",
676
+ value: "Wert",
677
+ percent: "Anteil",
678
+ total: "Gesamt",
679
+ from: "Von",
680
+ to: "Bis",
681
+ upperInclusive: "Obergrenze enthalten",
682
+ count: "Anzahl",
683
+ q1: "Unteres Quartil",
684
+ q2: "Median",
685
+ q3: "Oberes Quartil",
686
+ whiskerLow: "Unterer Whisker",
687
+ whiskerHigh: "Oberer Whisker",
688
+ min: "Minimum",
689
+ max: "Maximum",
690
+ threshold: "Schwellenwert",
691
+ delta: "Änderung",
692
+ latitude: "Breitengrad",
693
+ longitude: "Längengrad",
694
+ size: "Größe",
695
+ state: "Zustand",
696
+ duration: "Dauer",
697
+ detail: "Details",
698
+ errY: "Y-Fehler",
699
+ errYHigh: "Oberer Y-Fehler",
700
+ errYLow: "Unterer Y-Fehler",
701
+ errX: "X-Fehler",
702
+ errXHigh: "Oberer X-Fehler",
703
+ errXLow: "Unterer X-Fehler"
704
+ };
705
+ return labels[key] ?? key;
706
+ },
589
707
  interactiveMap: "Interaktive Karte",
590
708
  interactiveTimeline: "Interaktive Zeitachse",
591
709
  ok: "OK",
@@ -728,12 +846,22 @@ const uiMessages = i18n.define({
728
846
  markdownFormatting: "Markdown-Formatierung",
729
847
  numberedListShortcut: "Nummerierte Liste (Strg/Cmd+Umschalt+7)",
730
848
  quote: "Zitat",
849
+ csvSettings: "CSV-Vorschau einstellen",
850
+ csvEncoding: "Zeichenkodierung",
851
+ csvSeparator: "Trennzeichen",
852
+ csvDefaultSeparator: "Standard des Dateityps",
853
+ csvComma: "Komma",
854
+ csvSemicolon: "Semikolon",
855
+ csvTab: "Tabulator",
856
+ csvView: "Darstellung",
857
+ csvRaw: "Rohtext",
731
858
  delimitedFileEmpty: "Diese Trennzeichen-Datei enthält keine Zeilen.",
732
859
  edit: "Bearbeiten",
733
860
  emptyFile: "Leere Datei",
734
861
  failedLoadFile: "Datei konnte nicht geladen werden",
735
862
  noInlinePreview: "Für diese Quelle ist keine direkte Vorschau verfügbar.",
736
- previewLimited: "Vorschau auf 200 Datenzeilen und 50 Spalten begrenzt.",
863
+ previewMoreLines: n => `… ${n} weitere Zeilen`,
864
+ previewColumnsLimited: "Die ersten 50 Spalten werden angezeigt. Lade die Datei für alle Spalten herunter.",
737
865
  textEditor: "Texteditor",
738
866
  audioUnsupported: "Dein Browser unterstützt keine Audiowiedergabe.",
739
867
  videoUnsupported: "Dein Browser unterstützt keine Videowiedergabe.",