@k2b/ui 0.1.0-rc.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 (548) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +343 -0
  3. package/dist/.build-complete +0 -0
  4. package/dist/browser/actions/Button.js +236 -0
  5. package/dist/browser/actions/Button.js.map +1 -0
  6. package/dist/browser/actions/ContextMenu.js +199 -0
  7. package/dist/browser/actions/ContextMenu.js.map +1 -0
  8. package/dist/browser/actions/CopyButton.js +97 -0
  9. package/dist/browser/actions/CopyButton.js.map +1 -0
  10. package/dist/browser/actions/Disclosure.js +83 -0
  11. package/dist/browser/actions/Disclosure.js.map +1 -0
  12. package/dist/browser/actions/Dropdown.js +669 -0
  13. package/dist/browser/actions/Dropdown.js.map +1 -0
  14. package/dist/browser/actions/FilterChip.js +149 -0
  15. package/dist/browser/actions/FilterChip.js.map +1 -0
  16. package/dist/browser/actions/RemoveButton.js +47 -0
  17. package/dist/browser/actions/RemoveButton.js.map +1 -0
  18. package/dist/browser/actions/SegmentedControl.js +138 -0
  19. package/dist/browser/actions/SegmentedControl.js.map +1 -0
  20. package/dist/browser/actions/SplitButton.js +76 -0
  21. package/dist/browser/actions/SplitButton.js.map +1 -0
  22. package/dist/browser/actions/SpotlightSearch.js +87 -0
  23. package/dist/browser/actions/SpotlightSearch.js.map +1 -0
  24. package/dist/browser/actions/Tabs.js +185 -0
  25. package/dist/browser/actions/Tabs.js.map +1 -0
  26. package/dist/browser/actions/Toolbar.js +87 -0
  27. package/dist/browser/actions/Toolbar.js.map +1 -0
  28. package/dist/browser/actions/index.js +13 -0
  29. package/dist/browser/actions/index.js.map +1 -0
  30. package/dist/browser/chat/ChatComposer.js +760 -0
  31. package/dist/browser/chat/ChatComposer.js.map +1 -0
  32. package/dist/browser/chat/ChatPrimitives.js +688 -0
  33. package/dist/browser/chat/ChatPrimitives.js.map +1 -0
  34. package/dist/browser/chat/ChatRoot.js +27 -0
  35. package/dist/browser/chat/ChatRoot.js.map +1 -0
  36. package/dist/browser/chat/ChatTimeline.js +404 -0
  37. package/dist/browser/chat/ChatTimeline.js.map +1 -0
  38. package/dist/browser/chat/chat-behavior.js +53 -0
  39. package/dist/browser/chat/chat-behavior.js.map +1 -0
  40. package/dist/browser/chat/index.js +17 -0
  41. package/dist/browser/chat/index.js.map +1 -0
  42. package/dist/browser/chat/types.js +2 -0
  43. package/dist/browser/chat/types.js.map +1 -0
  44. package/dist/browser/content/Calendar.js +2168 -0
  45. package/dist/browser/content/Calendar.js.map +1 -0
  46. package/dist/browser/content/Chart.js +680 -0
  47. package/dist/browser/content/Chart.js.map +1 -0
  48. package/dist/browser/content/CodeDisplay.js +104 -0
  49. package/dist/browser/content/CodeDisplay.js.map +1 -0
  50. package/dist/browser/content/DataTable.js +724 -0
  51. package/dist/browser/content/DataTable.js.map +1 -0
  52. package/dist/browser/content/Docs.js +227 -0
  53. package/dist/browser/content/Docs.js.map +1 -0
  54. package/dist/browser/content/FileBrowser.js +462 -0
  55. package/dist/browser/content/FileBrowser.js.map +1 -0
  56. package/dist/browser/content/FileTree.js +453 -0
  57. package/dist/browser/content/FileTree.js.map +1 -0
  58. package/dist/browser/content/FileView.js +842 -0
  59. package/dist/browser/content/FileView.js.map +1 -0
  60. package/dist/browser/content/Lightbox.js +285 -0
  61. package/dist/browser/content/Lightbox.js.map +1 -0
  62. package/dist/browser/content/LogEntriesTable.js +139 -0
  63. package/dist/browser/content/LogEntriesTable.js.map +1 -0
  64. package/dist/browser/content/MarkdownView.js +138 -0
  65. package/dist/browser/content/MarkdownView.js.map +1 -0
  66. package/dist/browser/content/Pagination.js +182 -0
  67. package/dist/browser/content/Pagination.js.map +1 -0
  68. package/dist/browser/content/PdfPreview.js +204 -0
  69. package/dist/browser/content/PdfPreview.js.map +1 -0
  70. package/dist/browser/content/RangePicker.js +83 -0
  71. package/dist/browser/content/RangePicker.js.map +1 -0
  72. package/dist/browser/content/StructuredDataPreview.js +194 -0
  73. package/dist/browser/content/StructuredDataPreview.js.map +1 -0
  74. package/dist/browser/content/calendar-event-layout.js +92 -0
  75. package/dist/browser/content/calendar-event-layout.js.map +1 -0
  76. package/dist/browser/content/calendar-pointer.js +114 -0
  77. package/dist/browser/content/calendar-pointer.js.map +1 -0
  78. package/dist/browser/content/chart-map-viewport.js +33 -0
  79. package/dist/browser/content/chart-map-viewport.js.map +1 -0
  80. package/dist/browser/content/chart-state-timeline.js +124 -0
  81. package/dist/browser/content/chart-state-timeline.js.map +1 -0
  82. package/dist/browser/content/code-highlight.js +144 -0
  83. package/dist/browser/content/code-highlight.js.map +1 -0
  84. package/dist/browser/content/file-tree.js +93 -0
  85. package/dist/browser/content/file-tree.js.map +1 -0
  86. package/dist/browser/content/file-view-preview.js +112 -0
  87. package/dist/browser/content/file-view-preview.js.map +1 -0
  88. package/dist/browser/content/index.js +16 -0
  89. package/dist/browser/content/index.js.map +1 -0
  90. package/dist/browser/feedback/InlineGuidance.js +46 -0
  91. package/dist/browser/feedback/InlineGuidance.js.map +1 -0
  92. package/dist/browser/feedback/Tooltip.js +189 -0
  93. package/dist/browser/feedback/Tooltip.js.map +1 -0
  94. package/dist/browser/feedback/dialog-core.js +207 -0
  95. package/dist/browser/feedback/dialog-core.js.map +1 -0
  96. package/dist/browser/feedback/index.js +6 -0
  97. package/dist/browser/feedback/index.js.map +1 -0
  98. package/dist/browser/feedback/prompts.js +991 -0
  99. package/dist/browser/feedback/prompts.js.map +1 -0
  100. package/dist/browser/feedback/toast.js +271 -0
  101. package/dist/browser/feedback/toast.js.map +1 -0
  102. package/dist/browser/feedback/tooltip-position.js +25 -0
  103. package/dist/browser/feedback/tooltip-position.js.map +1 -0
  104. package/dist/browser/index.js +11 -0
  105. package/dist/browser/index.js.map +1 -0
  106. package/dist/browser/inputs/AutocompleteEditor.js +610 -0
  107. package/dist/browser/inputs/AutocompleteEditor.js.map +1 -0
  108. package/dist/browser/inputs/AutocompleteSelect.js +632 -0
  109. package/dist/browser/inputs/AutocompleteSelect.js.map +1 -0
  110. package/dist/browser/inputs/Checkbox.js +137 -0
  111. package/dist/browser/inputs/Checkbox.js.map +1 -0
  112. package/dist/browser/inputs/CheckboxCard.js +130 -0
  113. package/dist/browser/inputs/CheckboxCard.js.map +1 -0
  114. package/dist/browser/inputs/ChoiceGroups.js +174 -0
  115. package/dist/browser/inputs/ChoiceGroups.js.map +1 -0
  116. package/dist/browser/inputs/ChoiceInputs.js +400 -0
  117. package/dist/browser/inputs/ChoiceInputs.js.map +1 -0
  118. package/dist/browser/inputs/Combobox.js +274 -0
  119. package/dist/browser/inputs/Combobox.js.map +1 -0
  120. package/dist/browser/inputs/DatePicker.js +923 -0
  121. package/dist/browser/inputs/DatePicker.js.map +1 -0
  122. package/dist/browser/inputs/FileInputs.js +736 -0
  123. package/dist/browser/inputs/FileInputs.js.map +1 -0
  124. package/dist/browser/inputs/MultiSelectInput.js +565 -0
  125. package/dist/browser/inputs/MultiSelectInput.js.map +1 -0
  126. package/dist/browser/inputs/NumberInput.js +288 -0
  127. package/dist/browser/inputs/NumberInput.js.map +1 -0
  128. package/dist/browser/inputs/Select.js +507 -0
  129. package/dist/browser/inputs/Select.js.map +1 -0
  130. package/dist/browser/inputs/SelectChip.js +151 -0
  131. package/dist/browser/inputs/SelectChip.js.map +1 -0
  132. package/dist/browser/inputs/SpecialInputs.js +117 -0
  133. package/dist/browser/inputs/SpecialInputs.js.map +1 -0
  134. package/dist/browser/inputs/Switch.js +117 -0
  135. package/dist/browser/inputs/Switch.js.map +1 -0
  136. package/dist/browser/inputs/TagEditor.js +358 -0
  137. package/dist/browser/inputs/TagEditor.js.map +1 -0
  138. package/dist/browser/inputs/TagsInput.js +195 -0
  139. package/dist/browser/inputs/TagsInput.js.map +1 -0
  140. package/dist/browser/inputs/TemplateEditor.js +190 -0
  141. package/dist/browser/inputs/TemplateEditor.js.map +1 -0
  142. package/dist/browser/inputs/TextInput.js +318 -0
  143. package/dist/browser/inputs/TextInput.js.map +1 -0
  144. package/dist/browser/inputs/choice.js +188 -0
  145. package/dist/browser/inputs/choice.js.map +1 -0
  146. package/dist/browser/inputs/completion/behaviors.js +108 -0
  147. package/dist/browser/inputs/completion/behaviors.js.map +1 -0
  148. package/dist/browser/inputs/completion/engine.js +103 -0
  149. package/dist/browser/inputs/completion/engine.js.map +1 -0
  150. package/dist/browser/inputs/completion/index.js +4 -0
  151. package/dist/browser/inputs/completion/index.js.map +1 -0
  152. package/dist/browser/inputs/completion/overlay.js +25 -0
  153. package/dist/browser/inputs/completion/overlay.js.map +1 -0
  154. package/dist/browser/inputs/date-picker.js +123 -0
  155. package/dist/browser/inputs/date-picker.js.map +1 -0
  156. package/dist/browser/inputs/editor-dom.js +26 -0
  157. package/dist/browser/inputs/editor-dom.js.map +1 -0
  158. package/dist/browser/inputs/field-contract.js +9 -0
  159. package/dist/browser/inputs/field-contract.js.map +1 -0
  160. package/dist/browser/inputs/icon-options.js +46 -0
  161. package/dist/browser/inputs/icon-options.js.map +1 -0
  162. package/dist/browser/inputs/image-crop.js +145 -0
  163. package/dist/browser/inputs/image-crop.js.map +1 -0
  164. package/dist/browser/inputs/index.js +23 -0
  165. package/dist/browser/inputs/index.js.map +1 -0
  166. package/dist/browser/inputs/markdown/MarkdownEditor.js +725 -0
  167. package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -0
  168. package/dist/browser/inputs/markdown/Toolbar.js +172 -0
  169. package/dist/browser/inputs/markdown/Toolbar.js.map +1 -0
  170. package/dist/browser/inputs/markdown/actions.js +140 -0
  171. package/dist/browser/inputs/markdown/actions.js.map +1 -0
  172. package/dist/browser/inputs/markdown/active-formats.js +36 -0
  173. package/dist/browser/inputs/markdown/active-formats.js.map +1 -0
  174. package/dist/browser/inputs/markdown/behaviors.js +63 -0
  175. package/dist/browser/inputs/markdown/behaviors.js.map +1 -0
  176. package/dist/browser/inputs/markdown/code-zone.js +8 -0
  177. package/dist/browser/inputs/markdown/code-zone.js.map +1 -0
  178. package/dist/browser/internal/color.js +18 -0
  179. package/dist/browser/internal/color.js.map +1 -0
  180. package/dist/browser/internal/field.js +158 -0
  181. package/dist/browser/internal/field.js.map +1 -0
  182. package/dist/browser/internal/portal.js +17 -0
  183. package/dist/browser/internal/portal.js.map +1 -0
  184. package/dist/browser/intl/Format.js +273 -0
  185. package/dist/browser/intl/Format.js.map +1 -0
  186. package/dist/browser/intl/index.js +3 -0
  187. package/dist/browser/intl/index.js.map +1 -0
  188. package/dist/browser/intl/locale.js +63 -0
  189. package/dist/browser/intl/locale.js.map +1 -0
  190. package/dist/browser/intl/messages.js +753 -0
  191. package/dist/browser/intl/messages.js.map +1 -0
  192. package/dist/browser/layout/AppOverview.js +151 -0
  193. package/dist/browser/layout/AppOverview.js.map +1 -0
  194. package/dist/browser/layout/AppWorkspace.js +1502 -0
  195. package/dist/browser/layout/AppWorkspace.js.map +1 -0
  196. package/dist/browser/layout/DataPanel.js +122 -0
  197. package/dist/browser/layout/DataPanel.js.map +1 -0
  198. package/dist/browser/layout/DetailPanel.js +484 -0
  199. package/dist/browser/layout/DetailPanel.js.map +1 -0
  200. package/dist/browser/layout/Discussion.js +511 -0
  201. package/dist/browser/layout/Discussion.js.map +1 -0
  202. package/dist/browser/layout/FloatingWindow.js +332 -0
  203. package/dist/browser/layout/FloatingWindow.js.map +1 -0
  204. package/dist/browser/layout/PanelDialog.js +236 -0
  205. package/dist/browser/layout/PanelDialog.js.map +1 -0
  206. package/dist/browser/layout/PanelHeader.js +91 -0
  207. package/dist/browser/layout/PanelHeader.js.map +1 -0
  208. package/dist/browser/layout/Panes.js +978 -0
  209. package/dist/browser/layout/Panes.js.map +1 -0
  210. package/dist/browser/layout/ScrollArea.js +29 -0
  211. package/dist/browser/layout/ScrollArea.js.map +1 -0
  212. package/dist/browser/layout/Settings.js +381 -0
  213. package/dist/browser/layout/Settings.js.map +1 -0
  214. package/dist/browser/layout/SettingsCollection.js +212 -0
  215. package/dist/browser/layout/SettingsCollection.js.map +1 -0
  216. package/dist/browser/layout/SettingsModal.js +281 -0
  217. package/dist/browser/layout/SettingsModal.js.map +1 -0
  218. package/dist/browser/layout/app-workspace-controller.js +419 -0
  219. package/dist/browser/layout/app-workspace-controller.js.map +1 -0
  220. package/dist/browser/layout/app-workspace-state.js +125 -0
  221. package/dist/browser/layout/app-workspace-state.js.map +1 -0
  222. package/dist/browser/layout/floating-window-geometry.js +15 -0
  223. package/dist/browser/layout/floating-window-geometry.js.map +1 -0
  224. package/dist/browser/layout/index.js +17 -0
  225. package/dist/browser/layout/index.js.map +1 -0
  226. package/dist/browser/layout/panes-layout.js +436 -0
  227. package/dist/browser/layout/panes-layout.js.map +1 -0
  228. package/dist/browser/layout/stable-id.js +17 -0
  229. package/dist/browser/layout/stable-id.js.map +1 -0
  230. package/dist/browser/semantics.js +2 -0
  231. package/dist/browser/semantics.js.map +1 -0
  232. package/dist/browser/surfaces/Avatar.js +97 -0
  233. package/dist/browser/surfaces/Avatar.js.map +1 -0
  234. package/dist/browser/surfaces/DescriptionList.js +66 -0
  235. package/dist/browser/surfaces/DescriptionList.js.map +1 -0
  236. package/dist/browser/surfaces/LinkCard.js +40 -0
  237. package/dist/browser/surfaces/LinkCard.js.map +1 -0
  238. package/dist/browser/surfaces/NotFoundState.js +85 -0
  239. package/dist/browser/surfaces/NotFoundState.js.map +1 -0
  240. package/dist/browser/surfaces/NoticeCard.js +145 -0
  241. package/dist/browser/surfaces/NoticeCard.js.map +1 -0
  242. package/dist/browser/surfaces/Paper.js +33 -0
  243. package/dist/browser/surfaces/Paper.js.map +1 -0
  244. package/dist/browser/surfaces/Placeholder.js +90 -0
  245. package/dist/browser/surfaces/Placeholder.js.map +1 -0
  246. package/dist/browser/surfaces/ProgressBar.js +58 -0
  247. package/dist/browser/surfaces/ProgressBar.js.map +1 -0
  248. package/dist/browser/surfaces/StatCell.js +172 -0
  249. package/dist/browser/surfaces/StatCell.js.map +1 -0
  250. package/dist/browser/surfaces/StatGrid.js +80 -0
  251. package/dist/browser/surfaces/StatGrid.js.map +1 -0
  252. package/dist/browser/surfaces/StatusBadge.js +70 -0
  253. package/dist/browser/surfaces/StatusBadge.js.map +1 -0
  254. package/dist/browser/surfaces/Tag.js +94 -0
  255. package/dist/browser/surfaces/Tag.js.map +1 -0
  256. package/dist/browser/surfaces/index.js +13 -0
  257. package/dist/browser/surfaces/index.js.map +1 -0
  258. package/dist/browser/widgets/Widget.js +89 -0
  259. package/dist/browser/widgets/Widget.js.map +1 -0
  260. package/dist/browser/widgets/WidgetHero.js +47 -0
  261. package/dist/browser/widgets/WidgetHero.js.map +1 -0
  262. package/dist/browser/widgets/WidgetList.js +125 -0
  263. package/dist/browser/widgets/WidgetList.js.map +1 -0
  264. package/dist/browser/widgets/WidgetPills.js +78 -0
  265. package/dist/browser/widgets/WidgetPills.js.map +1 -0
  266. package/dist/browser/widgets/WidgetStat.js +114 -0
  267. package/dist/browser/widgets/WidgetStat.js.map +1 -0
  268. package/dist/browser/widgets/WidgetStatus.js +54 -0
  269. package/dist/browser/widgets/WidgetStatus.js.map +1 -0
  270. package/dist/browser/widgets/index.js +7 -0
  271. package/dist/browser/widgets/index.js.map +1 -0
  272. package/dist/global.css +3 -0
  273. package/dist/licenses/ibm-plex-mono.txt +93 -0
  274. package/dist/licenses/ibm-plex-sans.txt +93 -0
  275. package/dist/licenses/tabler-icons.txt +21 -0
  276. package/dist/plex.css +1 -0
  277. package/dist/ssr/actions/Button.js +203 -0
  278. package/dist/ssr/actions/Button.js.map +1 -0
  279. package/dist/ssr/actions/ContextMenu.js +128 -0
  280. package/dist/ssr/actions/ContextMenu.js.map +1 -0
  281. package/dist/ssr/actions/CopyButton.js +79 -0
  282. package/dist/ssr/actions/CopyButton.js.map +1 -0
  283. package/dist/ssr/actions/Disclosure.js +26 -0
  284. package/dist/ssr/actions/Disclosure.js.map +1 -0
  285. package/dist/ssr/actions/Dropdown.js +443 -0
  286. package/dist/ssr/actions/Dropdown.js.map +1 -0
  287. package/dist/ssr/actions/FilterChip.js +132 -0
  288. package/dist/ssr/actions/FilterChip.js.map +1 -0
  289. package/dist/ssr/actions/RemoveButton.js +45 -0
  290. package/dist/ssr/actions/RemoveButton.js.map +1 -0
  291. package/dist/ssr/actions/SegmentedControl.js +57 -0
  292. package/dist/ssr/actions/SegmentedControl.js.map +1 -0
  293. package/dist/ssr/actions/SplitButton.js +74 -0
  294. package/dist/ssr/actions/SplitButton.js.map +1 -0
  295. package/dist/ssr/actions/SpotlightSearch.js +38 -0
  296. package/dist/ssr/actions/SpotlightSearch.js.map +1 -0
  297. package/dist/ssr/actions/Tabs.js +91 -0
  298. package/dist/ssr/actions/Tabs.js.map +1 -0
  299. package/dist/ssr/actions/Toolbar.js +33 -0
  300. package/dist/ssr/actions/Toolbar.js.map +1 -0
  301. package/dist/ssr/actions/index.js +13 -0
  302. package/dist/ssr/actions/index.js.map +1 -0
  303. package/dist/ssr/chat/ChatComposer.js +392 -0
  304. package/dist/ssr/chat/ChatComposer.js.map +1 -0
  305. package/dist/ssr/chat/ChatPrimitives.js +377 -0
  306. package/dist/ssr/chat/ChatPrimitives.js.map +1 -0
  307. package/dist/ssr/chat/ChatRoot.js +10 -0
  308. package/dist/ssr/chat/ChatRoot.js.map +1 -0
  309. package/dist/ssr/chat/ChatTimeline.js +301 -0
  310. package/dist/ssr/chat/ChatTimeline.js.map +1 -0
  311. package/dist/ssr/chat/chat-behavior.js +53 -0
  312. package/dist/ssr/chat/chat-behavior.js.map +1 -0
  313. package/dist/ssr/chat/index.js +17 -0
  314. package/dist/ssr/chat/index.js.map +1 -0
  315. package/dist/ssr/chat/types.js +2 -0
  316. package/dist/ssr/chat/types.js.map +1 -0
  317. package/dist/ssr/content/Calendar.js +1542 -0
  318. package/dist/ssr/content/Calendar.js.map +1 -0
  319. package/dist/ssr/content/Chart.js +552 -0
  320. package/dist/ssr/content/Chart.js.map +1 -0
  321. package/dist/ssr/content/CodeDisplay.js +55 -0
  322. package/dist/ssr/content/CodeDisplay.js.map +1 -0
  323. package/dist/ssr/content/DataTable.js +470 -0
  324. package/dist/ssr/content/DataTable.js.map +1 -0
  325. package/dist/ssr/content/Docs.js +108 -0
  326. package/dist/ssr/content/Docs.js.map +1 -0
  327. package/dist/ssr/content/FileBrowser.js +422 -0
  328. package/dist/ssr/content/FileBrowser.js.map +1 -0
  329. package/dist/ssr/content/FileTree.js +299 -0
  330. package/dist/ssr/content/FileTree.js.map +1 -0
  331. package/dist/ssr/content/FileView.js +612 -0
  332. package/dist/ssr/content/FileView.js.map +1 -0
  333. package/dist/ssr/content/Lightbox.js +164 -0
  334. package/dist/ssr/content/Lightbox.js.map +1 -0
  335. package/dist/ssr/content/LogEntriesTable.js +106 -0
  336. package/dist/ssr/content/LogEntriesTable.js.map +1 -0
  337. package/dist/ssr/content/MarkdownView.js +119 -0
  338. package/dist/ssr/content/MarkdownView.js.map +1 -0
  339. package/dist/ssr/content/Pagination.js +141 -0
  340. package/dist/ssr/content/Pagination.js.map +1 -0
  341. package/dist/ssr/content/PdfPreview.js +126 -0
  342. package/dist/ssr/content/PdfPreview.js.map +1 -0
  343. package/dist/ssr/content/RangePicker.js +35 -0
  344. package/dist/ssr/content/RangePicker.js.map +1 -0
  345. package/dist/ssr/content/StructuredDataPreview.js +127 -0
  346. package/dist/ssr/content/StructuredDataPreview.js.map +1 -0
  347. package/dist/ssr/content/calendar-event-layout.js +92 -0
  348. package/dist/ssr/content/calendar-event-layout.js.map +1 -0
  349. package/dist/ssr/content/calendar-pointer.js +114 -0
  350. package/dist/ssr/content/calendar-pointer.js.map +1 -0
  351. package/dist/ssr/content/chart-map-viewport.js +33 -0
  352. package/dist/ssr/content/chart-map-viewport.js.map +1 -0
  353. package/dist/ssr/content/chart-state-timeline.js +124 -0
  354. package/dist/ssr/content/chart-state-timeline.js.map +1 -0
  355. package/dist/ssr/content/code-highlight.js +144 -0
  356. package/dist/ssr/content/code-highlight.js.map +1 -0
  357. package/dist/ssr/content/file-tree.js +93 -0
  358. package/dist/ssr/content/file-tree.js.map +1 -0
  359. package/dist/ssr/content/file-view-preview.js +112 -0
  360. package/dist/ssr/content/file-view-preview.js.map +1 -0
  361. package/dist/ssr/content/index.js +16 -0
  362. package/dist/ssr/content/index.js.map +1 -0
  363. package/dist/ssr/feedback/InlineGuidance.js +26 -0
  364. package/dist/ssr/feedback/InlineGuidance.js.map +1 -0
  365. package/dist/ssr/feedback/Tooltip.js +156 -0
  366. package/dist/ssr/feedback/Tooltip.js.map +1 -0
  367. package/dist/ssr/feedback/dialog-core.js +207 -0
  368. package/dist/ssr/feedback/dialog-core.js.map +1 -0
  369. package/dist/ssr/feedback/index.js +6 -0
  370. package/dist/ssr/feedback/index.js.map +1 -0
  371. package/dist/ssr/feedback/prompts.js +703 -0
  372. package/dist/ssr/feedback/prompts.js.map +1 -0
  373. package/dist/ssr/feedback/toast.js +271 -0
  374. package/dist/ssr/feedback/toast.js.map +1 -0
  375. package/dist/ssr/feedback/tooltip-position.js +25 -0
  376. package/dist/ssr/feedback/tooltip-position.js.map +1 -0
  377. package/dist/ssr/index.js +11 -0
  378. package/dist/ssr/index.js.map +1 -0
  379. package/dist/ssr/inputs/AutocompleteEditor.js +463 -0
  380. package/dist/ssr/inputs/AutocompleteEditor.js.map +1 -0
  381. package/dist/ssr/inputs/AutocompleteSelect.js +420 -0
  382. package/dist/ssr/inputs/AutocompleteSelect.js.map +1 -0
  383. package/dist/ssr/inputs/Checkbox.js +75 -0
  384. package/dist/ssr/inputs/Checkbox.js.map +1 -0
  385. package/dist/ssr/inputs/CheckboxCard.js +69 -0
  386. package/dist/ssr/inputs/CheckboxCard.js.map +1 -0
  387. package/dist/ssr/inputs/ChoiceGroups.js +101 -0
  388. package/dist/ssr/inputs/ChoiceGroups.js.map +1 -0
  389. package/dist/ssr/inputs/ChoiceInputs.js +250 -0
  390. package/dist/ssr/inputs/ChoiceInputs.js.map +1 -0
  391. package/dist/ssr/inputs/Combobox.js +177 -0
  392. package/dist/ssr/inputs/Combobox.js.map +1 -0
  393. package/dist/ssr/inputs/DatePicker.js +629 -0
  394. package/dist/ssr/inputs/DatePicker.js.map +1 -0
  395. package/dist/ssr/inputs/FileInputs.js +543 -0
  396. package/dist/ssr/inputs/FileInputs.js.map +1 -0
  397. package/dist/ssr/inputs/MultiSelectInput.js +347 -0
  398. package/dist/ssr/inputs/MultiSelectInput.js.map +1 -0
  399. package/dist/ssr/inputs/NumberInput.js +177 -0
  400. package/dist/ssr/inputs/NumberInput.js.map +1 -0
  401. package/dist/ssr/inputs/Select.js +308 -0
  402. package/dist/ssr/inputs/Select.js.map +1 -0
  403. package/dist/ssr/inputs/SelectChip.js +129 -0
  404. package/dist/ssr/inputs/SelectChip.js.map +1 -0
  405. package/dist/ssr/inputs/SpecialInputs.js +116 -0
  406. package/dist/ssr/inputs/SpecialInputs.js.map +1 -0
  407. package/dist/ssr/inputs/Switch.js +62 -0
  408. package/dist/ssr/inputs/Switch.js.map +1 -0
  409. package/dist/ssr/inputs/TagEditor.js +280 -0
  410. package/dist/ssr/inputs/TagEditor.js.map +1 -0
  411. package/dist/ssr/inputs/TagsInput.js +122 -0
  412. package/dist/ssr/inputs/TagsInput.js.map +1 -0
  413. package/dist/ssr/inputs/TemplateEditor.js +164 -0
  414. package/dist/ssr/inputs/TemplateEditor.js.map +1 -0
  415. package/dist/ssr/inputs/TextInput.js +211 -0
  416. package/dist/ssr/inputs/TextInput.js.map +1 -0
  417. package/dist/ssr/inputs/choice.js +188 -0
  418. package/dist/ssr/inputs/choice.js.map +1 -0
  419. package/dist/ssr/inputs/completion/behaviors.js +108 -0
  420. package/dist/ssr/inputs/completion/behaviors.js.map +1 -0
  421. package/dist/ssr/inputs/completion/engine.js +103 -0
  422. package/dist/ssr/inputs/completion/engine.js.map +1 -0
  423. package/dist/ssr/inputs/completion/index.js +4 -0
  424. package/dist/ssr/inputs/completion/index.js.map +1 -0
  425. package/dist/ssr/inputs/completion/overlay.js +25 -0
  426. package/dist/ssr/inputs/completion/overlay.js.map +1 -0
  427. package/dist/ssr/inputs/date-picker.js +123 -0
  428. package/dist/ssr/inputs/date-picker.js.map +1 -0
  429. package/dist/ssr/inputs/editor-dom.js +26 -0
  430. package/dist/ssr/inputs/editor-dom.js.map +1 -0
  431. package/dist/ssr/inputs/field-contract.js +9 -0
  432. package/dist/ssr/inputs/field-contract.js.map +1 -0
  433. package/dist/ssr/inputs/icon-options.js +46 -0
  434. package/dist/ssr/inputs/icon-options.js.map +1 -0
  435. package/dist/ssr/inputs/image-crop.js +145 -0
  436. package/dist/ssr/inputs/image-crop.js.map +1 -0
  437. package/dist/ssr/inputs/index.js +23 -0
  438. package/dist/ssr/inputs/index.js.map +1 -0
  439. package/dist/ssr/inputs/markdown/MarkdownEditor.js +516 -0
  440. package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -0
  441. package/dist/ssr/inputs/markdown/Toolbar.js +115 -0
  442. package/dist/ssr/inputs/markdown/Toolbar.js.map +1 -0
  443. package/dist/ssr/inputs/markdown/actions.js +140 -0
  444. package/dist/ssr/inputs/markdown/actions.js.map +1 -0
  445. package/dist/ssr/inputs/markdown/active-formats.js +36 -0
  446. package/dist/ssr/inputs/markdown/active-formats.js.map +1 -0
  447. package/dist/ssr/inputs/markdown/behaviors.js +63 -0
  448. package/dist/ssr/inputs/markdown/behaviors.js.map +1 -0
  449. package/dist/ssr/inputs/markdown/code-zone.js +8 -0
  450. package/dist/ssr/inputs/markdown/code-zone.js.map +1 -0
  451. package/dist/ssr/internal/color.js +18 -0
  452. package/dist/ssr/internal/color.js.map +1 -0
  453. package/dist/ssr/internal/field.js +90 -0
  454. package/dist/ssr/internal/field.js.map +1 -0
  455. package/dist/ssr/internal/portal.js +17 -0
  456. package/dist/ssr/internal/portal.js.map +1 -0
  457. package/dist/ssr/intl/Format.js +192 -0
  458. package/dist/ssr/intl/Format.js.map +1 -0
  459. package/dist/ssr/intl/index.js +3 -0
  460. package/dist/ssr/intl/index.js.map +1 -0
  461. package/dist/ssr/intl/locale.js +63 -0
  462. package/dist/ssr/intl/locale.js.map +1 -0
  463. package/dist/ssr/intl/messages.js +753 -0
  464. package/dist/ssr/intl/messages.js.map +1 -0
  465. package/dist/ssr/layout/AppOverview.js +85 -0
  466. package/dist/ssr/layout/AppOverview.js.map +1 -0
  467. package/dist/ssr/layout/AppWorkspace.js +976 -0
  468. package/dist/ssr/layout/AppWorkspace.js.map +1 -0
  469. package/dist/ssr/layout/DataPanel.js +101 -0
  470. package/dist/ssr/layout/DataPanel.js.map +1 -0
  471. package/dist/ssr/layout/DetailPanel.js +284 -0
  472. package/dist/ssr/layout/DetailPanel.js.map +1 -0
  473. package/dist/ssr/layout/Discussion.js +319 -0
  474. package/dist/ssr/layout/Discussion.js.map +1 -0
  475. package/dist/ssr/layout/FloatingWindow.js +259 -0
  476. package/dist/ssr/layout/FloatingWindow.js.map +1 -0
  477. package/dist/ssr/layout/PanelDialog.js +136 -0
  478. package/dist/ssr/layout/PanelDialog.js.map +1 -0
  479. package/dist/ssr/layout/PanelHeader.js +45 -0
  480. package/dist/ssr/layout/PanelHeader.js.map +1 -0
  481. package/dist/ssr/layout/Panes.js +678 -0
  482. package/dist/ssr/layout/Panes.js.map +1 -0
  483. package/dist/ssr/layout/ScrollArea.js +18 -0
  484. package/dist/ssr/layout/ScrollArea.js.map +1 -0
  485. package/dist/ssr/layout/Settings.js +219 -0
  486. package/dist/ssr/layout/Settings.js.map +1 -0
  487. package/dist/ssr/layout/SettingsCollection.js +150 -0
  488. package/dist/ssr/layout/SettingsCollection.js.map +1 -0
  489. package/dist/ssr/layout/SettingsModal.js +156 -0
  490. package/dist/ssr/layout/SettingsModal.js.map +1 -0
  491. package/dist/ssr/layout/app-workspace-controller.js +419 -0
  492. package/dist/ssr/layout/app-workspace-controller.js.map +1 -0
  493. package/dist/ssr/layout/app-workspace-state.js +125 -0
  494. package/dist/ssr/layout/app-workspace-state.js.map +1 -0
  495. package/dist/ssr/layout/floating-window-geometry.js +15 -0
  496. package/dist/ssr/layout/floating-window-geometry.js.map +1 -0
  497. package/dist/ssr/layout/index.js +17 -0
  498. package/dist/ssr/layout/index.js.map +1 -0
  499. package/dist/ssr/layout/panes-layout.js +436 -0
  500. package/dist/ssr/layout/panes-layout.js.map +1 -0
  501. package/dist/ssr/layout/stable-id.js +17 -0
  502. package/dist/ssr/layout/stable-id.js.map +1 -0
  503. package/dist/ssr/semantics.js +2 -0
  504. package/dist/ssr/semantics.js.map +1 -0
  505. package/dist/ssr/surfaces/Avatar.js +43 -0
  506. package/dist/ssr/surfaces/Avatar.js.map +1 -0
  507. package/dist/ssr/surfaces/DescriptionList.js +25 -0
  508. package/dist/ssr/surfaces/DescriptionList.js.map +1 -0
  509. package/dist/ssr/surfaces/LinkCard.js +25 -0
  510. package/dist/ssr/surfaces/LinkCard.js.map +1 -0
  511. package/dist/ssr/surfaces/NotFoundState.js +38 -0
  512. package/dist/ssr/surfaces/NotFoundState.js.map +1 -0
  513. package/dist/ssr/surfaces/NoticeCard.js +83 -0
  514. package/dist/ssr/surfaces/NoticeCard.js.map +1 -0
  515. package/dist/ssr/surfaces/Paper.js +32 -0
  516. package/dist/ssr/surfaces/Paper.js.map +1 -0
  517. package/dist/ssr/surfaces/Placeholder.js +76 -0
  518. package/dist/ssr/surfaces/Placeholder.js.map +1 -0
  519. package/dist/ssr/surfaces/ProgressBar.js +13 -0
  520. package/dist/ssr/surfaces/ProgressBar.js.map +1 -0
  521. package/dist/ssr/surfaces/StatCell.js +80 -0
  522. package/dist/ssr/surfaces/StatCell.js.map +1 -0
  523. package/dist/ssr/surfaces/StatGrid.js +62 -0
  524. package/dist/ssr/surfaces/StatGrid.js.map +1 -0
  525. package/dist/ssr/surfaces/StatusBadge.js +38 -0
  526. package/dist/ssr/surfaces/StatusBadge.js.map +1 -0
  527. package/dist/ssr/surfaces/Tag.js +32 -0
  528. package/dist/ssr/surfaces/Tag.js.map +1 -0
  529. package/dist/ssr/surfaces/index.js +13 -0
  530. package/dist/ssr/surfaces/index.js.map +1 -0
  531. package/dist/ssr/widgets/Widget.js +54 -0
  532. package/dist/ssr/widgets/Widget.js.map +1 -0
  533. package/dist/ssr/widgets/WidgetHero.js +23 -0
  534. package/dist/ssr/widgets/WidgetHero.js.map +1 -0
  535. package/dist/ssr/widgets/WidgetList.js +73 -0
  536. package/dist/ssr/widgets/WidgetList.js.map +1 -0
  537. package/dist/ssr/widgets/WidgetPills.js +40 -0
  538. package/dist/ssr/widgets/WidgetPills.js.map +1 -0
  539. package/dist/ssr/widgets/WidgetStat.js +45 -0
  540. package/dist/ssr/widgets/WidgetStat.js.map +1 -0
  541. package/dist/ssr/widgets/WidgetStatus.js +23 -0
  542. package/dist/ssr/widgets/WidgetStatus.js.map +1 -0
  543. package/dist/ssr/widgets/index.js +7 -0
  544. package/dist/ssr/widgets/index.js.map +1 -0
  545. package/dist/styles.css +1 -0
  546. package/dist/tabler-icons-q30jt7jk.woff2 +0 -0
  547. package/dist/tabler.css +4 -0
  548. package/package.json +77 -0
@@ -0,0 +1,688 @@
1
+ import { template as _$template } from "solid-js/web";
2
+ import { delegateEvents as _$delegateEvents } from "solid-js/web";
3
+ import { style as _$style } from "solid-js/web";
4
+ import { mergeProps as _$mergeProps } from "solid-js/web";
5
+ import { setProperty as _$setProperty } from "solid-js/web";
6
+ import { runHydrationEvents as _$runHydrationEvents } from "solid-js/web";
7
+ import { className as _$className } from "solid-js/web";
8
+ import { setAttribute as _$setAttribute } from "solid-js/web";
9
+ import { effect as _$effect } from "solid-js/web";
10
+ import { createComponent as _$createComponent } from "solid-js/web";
11
+ import { getNextMarker as _$getNextMarker } from "solid-js/web";
12
+ import { insert as _$insert } from "solid-js/web";
13
+ import { memo as _$memo } from "solid-js/web";
14
+ import { getNextElement as _$getNextElement } from "solid-js/web";
15
+ var _tmpl$ = /*#__PURE__*/_$template(`<span class=k2b-chat-progress-dots aria-hidden=true><span></span><span></span><span>`),
16
+ _tmpl$2 = /*#__PURE__*/_$template(`<div class=k2b-chat-message__attachments role=list>`),
17
+ _tmpl$3 = /*#__PURE__*/_$template(`<div class=k2b-chat-message__bubble><div class=k2b-chat-message__content>`),
18
+ _tmpl$4 = /*#__PURE__*/_$template(`<span class="k2b-chat-message__status k2b-chat-message__status--streaming"role=status>`),
19
+ _tmpl$5 = /*#__PURE__*/_$template(`<span class=k2b-chat-message__actions role=group>`),
20
+ _tmpl$6 = /*#__PURE__*/_$template(`<i class="ti ti-dots"aria-hidden=true>`),
21
+ _tmpl$7 = /*#__PURE__*/_$template(`<footer class=k2b-chat-message__meta><!$><!/><!$><!/><!$><!/><!$><!/>`),
22
+ _tmpl$8 = /*#__PURE__*/_$template(`<article><span class=k2b-sr-only><!$><!/>: </span><!$><!/><!$><!/><!$><!/>`),
23
+ _tmpl$9 = /*#__PURE__*/_$template(`<img>`),
24
+ _tmpl$0 = /*#__PURE__*/_$template(`<span>`),
25
+ _tmpl$1 = /*#__PURE__*/_$template(`<i aria-hidden=true>`),
26
+ _tmpl$10 = /*#__PURE__*/_$template(`<div class=k2b-chat-message__attachment role=listitem>`),
27
+ _tmpl$11 = /*#__PURE__*/_$template(`<a class=k2b-chat-message__attachment role=listitem target=_blank rel="noopener noreferrer">`),
28
+ _tmpl$12 = /*#__PURE__*/_$template(`<span class=k2b-chat-message__status><i aria-hidden=true></i><!$><!/>`),
29
+ _tmpl$13 = /*#__PURE__*/_$template(`<time>`),
30
+ _tmpl$14 = /*#__PURE__*/_$template(`<button type=button><i aria-hidden=true>`),
31
+ _tmpl$15 = /*#__PURE__*/_$template(`<span class=k2b-chat-activity__leading aria-hidden=true>`),
32
+ _tmpl$16 = /*#__PURE__*/_$template(`<span class=k2b-chat-activity__copy><strong></strong><!$><!/>`),
33
+ _tmpl$17 = /*#__PURE__*/_$template(`<span class=k2b-chat-activity__trailing>`),
34
+ _tmpl$18 = /*#__PURE__*/_$template(`<i class="ti ti-chevron-right k2b-chat-activity__chevron"aria-hidden=true>`),
35
+ _tmpl$19 = /*#__PURE__*/_$template(`<i>`),
36
+ _tmpl$20 = /*#__PURE__*/_$template(`<small>`),
37
+ _tmpl$21 = /*#__PURE__*/_$template(`<details><summary class=k2b-chat-activity__row></summary><div class=k2b-chat-activity__body>`),
38
+ _tmpl$22 = /*#__PURE__*/_$template(`<div><div class=k2b-chat-activity__row>`),
39
+ _tmpl$23 = /*#__PURE__*/_$template(`<i class="ti ti-brain"aria-hidden=true>`),
40
+ _tmpl$24 = /*#__PURE__*/_$template(`<div><dt></dt><dd>`),
41
+ _tmpl$25 = /*#__PURE__*/_$template(`<div class=k2b-chat-context__tooltip><strong></strong><!$><!/><dl><!$><!/><div><dt></dt><dd></dd></div><div><dt></dt><dd></dd></div><!$><!/><div><dt></dt><dd></dd></div><!$><!/>`);
42
+ import { createSignal, For, onCleanup, Show } from "solid-js";
43
+ import { Dropdown } from "../actions/Dropdown";
44
+ import { Tooltip } from "../feedback/Tooltip";
45
+ import { useUiMessages } from "../intl/messages";
46
+ import { ProgressBar } from "../surfaces/ProgressBar";
47
+ import { executeChatAction } from "./chat-behavior";
48
+ const roleLabel = (role, messages) => {
49
+ if (role === "assistant") return messages.assistant;
50
+ if (role === "user") return messages.user;
51
+ if (role === "tool") return messages.tool;
52
+ return messages.system;
53
+ };
54
+ const statusLabel = (status, messages) => {
55
+ if (status === "pending") return messages.waiting;
56
+ if (status === "streaming") return messages.generating;
57
+ if (status === "error") return messages.failed;
58
+ return null;
59
+ };
60
+ const statusIcon = status => {
61
+ if (status === "pending") return "ti ti-clock";
62
+ return "ti ti-alert-circle";
63
+ };
64
+ const ChatProgressDots = () => _$getNextElement(_tmpl$);
65
+ const attachmentIcon = attachment => attachment.icon ?? (attachment.kind === "image" ? "ti ti-photo" : attachment.kind === "resource" ? "ti ti-link" : "ti ti-file");
66
+ const finiteNonNegative = value => typeof value === "number" && Number.isFinite(value) ? Math.max(0, value) : 0;
67
+ const finiteUsageValue = value => typeof value === "number" && Number.isFinite(value) && value >= 0 ? value : null;
68
+ const normalizedUsage = usage => {
69
+ const input = finiteUsageValue(usage?.input);
70
+ const output = finiteUsageValue(usage?.output);
71
+ const explicitTotal = finiteUsageValue(usage?.total);
72
+ const total = explicitTotal ?? (input !== null || output !== null ? (input ?? 0) + (output ?? 0) : null);
73
+ return {
74
+ input,
75
+ output,
76
+ total,
77
+ reported: total !== null
78
+ };
79
+ };
80
+ const formatStableInteger = value => {
81
+ const digits = String(Math.round(finiteNonNegative(value)));
82
+ return digits.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
83
+ };
84
+ export const formatChatTokens = tokens => {
85
+ const value = finiteNonNegative(tokens);
86
+ if (value >= 1_000_000) return `${(value / 1_000_000).toFixed(1)}M`;
87
+ if (value >= 1_000) return `${(value / 1_000).toFixed(1)}k`;
88
+ return String(Math.round(value));
89
+ };
90
+ const dateTime = value => {
91
+ if (!value) return null;
92
+ const date = value instanceof Date ? value : new Date(value);
93
+ return Number.isFinite(date.getTime()) ? date.toISOString() : null;
94
+ };
95
+ export function ChatMessage(props) {
96
+ const messages = useUiMessages();
97
+ const [busyActionId, setBusyActionId] = createSignal(null);
98
+ const [completedActionId, setCompletedActionId] = createSignal(null);
99
+ let completedTimer;
100
+ const status = () => statusLabel(props.status, messages());
101
+ const timestamp = () => dateTime(props.createdAt);
102
+ // Locale and timezone are application policy. Requiring an explicit visible
103
+ // label keeps SSR and hydration byte-stable while `createdAt` still supplies
104
+ // the semantic machine-readable timestamp.
105
+ const time = () => props.timeLabel ?? null;
106
+ const actions = () => props.actions ?? [];
107
+ const actionDisplay = () => props.actionDisplay === "auto" || !props.actionDisplay ? props.role === "user" ? "menu" : "inline" : props.actionDisplay;
108
+ const hasMeta = () => props.status === "streaming" || status() !== null || Boolean(time()) || actions().length > 0;
109
+ const runAction = async action => {
110
+ if (action.disabled || busyActionId()) return;
111
+ setBusyActionId(action.id);
112
+ try {
113
+ await executeChatAction(action);
114
+ setCompletedActionId(action.id);
115
+ if (completedTimer) clearTimeout(completedTimer);
116
+ completedTimer = setTimeout(() => setCompletedActionId(null), 1400);
117
+ } catch (error) {
118
+ props.onActionError?.(error);
119
+ } finally {
120
+ setBusyActionId(null);
121
+ }
122
+ };
123
+ const actionIcon = action => busyActionId() === action.id ? "ti ti-loader-2 k2b-spin" : completedActionId() === action.id ? "ti ti-check" : action.icon ?? "ti ti-dots";
124
+ onCleanup(() => {
125
+ if (completedTimer) clearTimeout(completedTimer);
126
+ });
127
+ const menuItems = () => actions().map(action => ({
128
+ icon: actionIcon(action),
129
+ label: action.label,
130
+ variant: action.variant,
131
+ disabled: action.disabled || Boolean(busyActionId()),
132
+ action: () => void runAction(action)
133
+ }));
134
+ return (() => {
135
+ var _el$2 = _$getNextElement(_tmpl$8),
136
+ _el$3 = _el$2.firstChild,
137
+ _el$5 = _el$3.firstChild,
138
+ [_el$6, _co$] = _$getNextMarker(_el$5.nextSibling),
139
+ _el$4 = _el$6.nextSibling,
140
+ _el$20 = _el$3.nextSibling,
141
+ [_el$21, _co$6] = _$getNextMarker(_el$20.nextSibling),
142
+ _el$22 = _el$21.nextSibling,
143
+ [_el$23, _co$7] = _$getNextMarker(_el$22.nextSibling),
144
+ _el$24 = _el$23.nextSibling,
145
+ [_el$25, _co$8] = _$getNextMarker(_el$24.nextSibling);
146
+ _$insert(_el$3, () => props.label ?? roleLabel(props.role, messages()), _el$6, _co$);
147
+ _$insert(_el$2, _$createComponent(Show, {
148
+ get when() {
149
+ return (props.attachments?.length ?? 0) > 0;
150
+ },
151
+ get children() {
152
+ var _el$7 = _$getNextElement(_tmpl$2);
153
+ _$insert(_el$7, _$createComponent(For, {
154
+ get each() {
155
+ return props.attachments;
156
+ },
157
+ children: attachment => {
158
+ const content = () => [_$createComponent(Show, {
159
+ get when() {
160
+ return _$memo(() => attachment.kind === "image")() && attachment.previewUrl;
161
+ },
162
+ get fallback() {
163
+ return (() => {
164
+ var _el$28 = _$getNextElement(_tmpl$1);
165
+ _$effect(() => _$className(_el$28, attachmentIcon(attachment)));
166
+ return _el$28;
167
+ })();
168
+ },
169
+ get children() {
170
+ var _el$26 = _$getNextElement(_tmpl$9);
171
+ _$effect(_p$ => {
172
+ var _v$6 = attachment.previewUrl,
173
+ _v$7 = attachment.alt ?? attachment.name;
174
+ _v$6 !== _p$.e && _$setAttribute(_el$26, "src", _p$.e = _v$6);
175
+ _v$7 !== _p$.t && _$setAttribute(_el$26, "alt", _p$.t = _v$7);
176
+ return _p$;
177
+ }, {
178
+ e: undefined,
179
+ t: undefined
180
+ });
181
+ return _el$26;
182
+ }
183
+ }), _$createComponent(Show, {
184
+ get when() {
185
+ return attachment.kind !== "image";
186
+ },
187
+ get children() {
188
+ var _el$27 = _$getNextElement(_tmpl$0);
189
+ _$insert(_el$27, () => attachment.name);
190
+ return _el$27;
191
+ }
192
+ })];
193
+ return _$createComponent(Show, {
194
+ get when() {
195
+ return attachment.href;
196
+ },
197
+ get fallback() {
198
+ return (() => {
199
+ var _el$29 = _$getNextElement(_tmpl$10);
200
+ _$insert(_el$29, content);
201
+ _$effect(() => _$setAttribute(_el$29, "title", attachment.name));
202
+ return _el$29;
203
+ })();
204
+ },
205
+ children: href => (() => {
206
+ var _el$30 = _$getNextElement(_tmpl$11);
207
+ _$insert(_el$30, content);
208
+ _$effect(_p$ => {
209
+ var _v$8 = attachment.name,
210
+ _v$9 = href(),
211
+ _v$0 = messages().openInNewTab({
212
+ name: attachment.name
213
+ });
214
+ _v$8 !== _p$.e && _$setAttribute(_el$30, "title", _p$.e = _v$8);
215
+ _v$9 !== _p$.t && _$setAttribute(_el$30, "href", _p$.t = _v$9);
216
+ _v$0 !== _p$.a && _$setAttribute(_el$30, "aria-label", _p$.a = _v$0);
217
+ return _p$;
218
+ }, {
219
+ e: undefined,
220
+ t: undefined,
221
+ a: undefined
222
+ });
223
+ return _el$30;
224
+ })()
225
+ });
226
+ }
227
+ }));
228
+ _$effect(() => _$setAttribute(_el$7, "aria-label", messages().attachments));
229
+ return _el$7;
230
+ }
231
+ }), _el$21, _co$6);
232
+ _$insert(_el$2, _$createComponent(Show, {
233
+ get when() {
234
+ return _$memo(() => !!(props.children !== undefined && props.children !== null))() && props.children !== "";
235
+ },
236
+ get children() {
237
+ var _el$8 = _$getNextElement(_tmpl$3),
238
+ _el$9 = _el$8.firstChild;
239
+ _$insert(_el$9, () => props.children);
240
+ return _el$8;
241
+ }
242
+ }), _el$23, _co$7);
243
+ _$insert(_el$2, _$createComponent(Show, {
244
+ get when() {
245
+ return hasMeta();
246
+ },
247
+ get children() {
248
+ var _el$0 = _$getNextElement(_tmpl$7),
249
+ _el$12 = _el$0.firstChild,
250
+ [_el$13, _co$2] = _$getNextMarker(_el$12.nextSibling),
251
+ _el$14 = _el$13.nextSibling,
252
+ [_el$15, _co$3] = _$getNextMarker(_el$14.nextSibling),
253
+ _el$16 = _el$15.nextSibling,
254
+ [_el$17, _co$4] = _$getNextMarker(_el$16.nextSibling),
255
+ _el$18 = _el$17.nextSibling,
256
+ [_el$19, _co$5] = _$getNextMarker(_el$18.nextSibling);
257
+ _$insert(_el$0, _$createComponent(Show, {
258
+ get when() {
259
+ return props.status === "streaming";
260
+ },
261
+ get fallback() {
262
+ return _$createComponent(Show, {
263
+ get when() {
264
+ return status();
265
+ },
266
+ children: label => (() => {
267
+ var _el$31 = _$getNextElement(_tmpl$12),
268
+ _el$32 = _el$31.firstChild,
269
+ _el$33 = _el$32.nextSibling,
270
+ [_el$34, _co$9] = _$getNextMarker(_el$33.nextSibling);
271
+ _$insert(_el$31, label, _el$34, _co$9);
272
+ _$effect(_p$ => {
273
+ var _v$1 = props.status === "error" ? "alert" : "status",
274
+ _v$10 = statusIcon(props.status);
275
+ _v$1 !== _p$.e && _$setAttribute(_el$31, "role", _p$.e = _v$1);
276
+ _v$10 !== _p$.t && _$className(_el$32, _p$.t = _v$10);
277
+ return _p$;
278
+ }, {
279
+ e: undefined,
280
+ t: undefined
281
+ });
282
+ return _el$31;
283
+ })()
284
+ });
285
+ },
286
+ get children() {
287
+ var _el$1 = _$getNextElement(_tmpl$4);
288
+ _$insert(_el$1, _$createComponent(ChatProgressDots, {}));
289
+ _$effect(() => _$setAttribute(_el$1, "aria-label", messages().generating));
290
+ return _el$1;
291
+ }
292
+ }), _el$13, _co$2);
293
+ _$insert(_el$0, _$createComponent(Show, {
294
+ get when() {
295
+ return time();
296
+ },
297
+ children: label => (() => {
298
+ var _el$35 = _$getNextElement(_tmpl$13);
299
+ _$insert(_el$35, label);
300
+ _$effect(() => _$setAttribute(_el$35, "datetime", timestamp() ?? undefined));
301
+ return _el$35;
302
+ })()
303
+ }), _el$15, _co$3);
304
+ _$insert(_el$0, _$createComponent(Show, {
305
+ get when() {
306
+ return _$memo(() => actions().length > 0)() && actionDisplay() === "inline";
307
+ },
308
+ get children() {
309
+ var _el$10 = _$getNextElement(_tmpl$5);
310
+ _$insert(_el$10, _$createComponent(For, {
311
+ get each() {
312
+ return actions();
313
+ },
314
+ children: action => (() => {
315
+ var _el$36 = _$getNextElement(_tmpl$14),
316
+ _el$37 = _el$36.firstChild;
317
+ _el$36.$$click = () => void runAction(action);
318
+ _$effect(_p$ => {
319
+ var _v$11 = action.label,
320
+ _v$12 = action.pressed,
321
+ _v$13 = action.label,
322
+ _v$14 = action.variant === "danger" ? "true" : undefined,
323
+ _v$15 = action.disabled || Boolean(busyActionId()),
324
+ _v$16 = actionIcon(action);
325
+ _v$11 !== _p$.e && _$setAttribute(_el$36, "aria-label", _p$.e = _v$11);
326
+ _v$12 !== _p$.t && _$setAttribute(_el$36, "aria-pressed", _p$.t = _v$12);
327
+ _v$13 !== _p$.a && _$setAttribute(_el$36, "title", _p$.a = _v$13);
328
+ _v$14 !== _p$.o && _$setAttribute(_el$36, "data-danger", _p$.o = _v$14);
329
+ _v$15 !== _p$.i && _$setProperty(_el$36, "disabled", _p$.i = _v$15);
330
+ _v$16 !== _p$.n && _$className(_el$37, _p$.n = _v$16);
331
+ return _p$;
332
+ }, {
333
+ e: undefined,
334
+ t: undefined,
335
+ a: undefined,
336
+ o: undefined,
337
+ i: undefined,
338
+ n: undefined
339
+ });
340
+ _$runHydrationEvents();
341
+ return _el$36;
342
+ })()
343
+ }));
344
+ _$effect(() => _$setAttribute(_el$10, "aria-label", messages().messageActions));
345
+ return _el$10;
346
+ }
347
+ }), _el$17, _co$4);
348
+ _$insert(_el$0, _$createComponent(Show, {
349
+ get when() {
350
+ return _$memo(() => actions().length > 0)() && actionDisplay() === "menu";
351
+ },
352
+ get children() {
353
+ return _$createComponent(Dropdown.Root, {
354
+ position: "bottom-left",
355
+ width: "12rem",
356
+ get label() {
357
+ return messages().messageActions;
358
+ },
359
+ get items() {
360
+ return menuItems();
361
+ },
362
+ get children() {
363
+ return _$createComponent(Dropdown.Trigger, {
364
+ appearance: "plain",
365
+ "class": "k2b-chat-message__menu",
366
+ get label() {
367
+ return messages().messageActions;
368
+ },
369
+ get title() {
370
+ return messages().messageActions;
371
+ },
372
+ get children() {
373
+ return _$getNextElement(_tmpl$6);
374
+ }
375
+ });
376
+ }
377
+ });
378
+ }
379
+ }), _el$19, _co$5);
380
+ return _el$0;
381
+ }
382
+ }), _el$25, _co$8);
383
+ _$effect(_p$ => {
384
+ var _v$ = `k2b-chat-message ${props.class ?? ""}`,
385
+ _v$2 = props.role,
386
+ _v$3 = props.status ?? "complete",
387
+ _v$4 = props.anchorId !== undefined ? String(props.anchorId) : undefined,
388
+ _v$5 = props.status === "pending" || props.status === "streaming" ? "true" : undefined;
389
+ _v$ !== _p$.e && _$className(_el$2, _p$.e = _v$);
390
+ _v$2 !== _p$.t && _$setAttribute(_el$2, "data-role", _p$.t = _v$2);
391
+ _v$3 !== _p$.a && _$setAttribute(_el$2, "data-status", _p$.a = _v$3);
392
+ _v$4 !== _p$.o && _$setAttribute(_el$2, "data-chat-anchor", _p$.o = _v$4);
393
+ _v$5 !== _p$.i && _$setAttribute(_el$2, "aria-busy", _p$.i = _v$5);
394
+ return _p$;
395
+ }, {
396
+ e: undefined,
397
+ t: undefined,
398
+ a: undefined,
399
+ o: undefined,
400
+ i: undefined
401
+ });
402
+ return _el$2;
403
+ })();
404
+ }
405
+ const ActivityContent = props => [(() => {
406
+ var _el$38 = _$getNextElement(_tmpl$15);
407
+ _$insert(_el$38, _$createComponent(Show, {
408
+ get when() {
409
+ return props.leading;
410
+ },
411
+ get fallback() {
412
+ return (() => {
413
+ var _el$45 = _$getNextElement(_tmpl$19);
414
+ _$effect(() => _$className(_el$45, props.icon ?? "ti ti-sparkles"));
415
+ return _el$45;
416
+ })();
417
+ },
418
+ get children() {
419
+ return props.leading;
420
+ }
421
+ }));
422
+ return _el$38;
423
+ })(), (() => {
424
+ var _el$39 = _$getNextElement(_tmpl$16),
425
+ _el$40 = _el$39.firstChild,
426
+ _el$41 = _el$40.nextSibling,
427
+ [_el$42, _co$0] = _$getNextMarker(_el$41.nextSibling);
428
+ _$insert(_el$40, () => props.label);
429
+ _$insert(_el$39, _$createComponent(Show, {
430
+ get when() {
431
+ return props.description;
432
+ },
433
+ children: description => (() => {
434
+ var _el$46 = _$getNextElement(_tmpl$20);
435
+ _$insert(_el$46, description);
436
+ return _el$46;
437
+ })()
438
+ }), _el$42, _co$0);
439
+ return _el$39;
440
+ })(), _$createComponent(Show, {
441
+ get when() {
442
+ return props.trailing;
443
+ },
444
+ get children() {
445
+ var _el$43 = _$getNextElement(_tmpl$17);
446
+ _$insert(_el$43, () => props.trailing);
447
+ return _el$43;
448
+ }
449
+ }), _$createComponent(Show, {
450
+ get when() {
451
+ return props.disclosure;
452
+ },
453
+ get children() {
454
+ return _$getNextElement(_tmpl$18);
455
+ }
456
+ })];
457
+ export function ChatActivity(props) {
458
+ const tone = () => props.tone ?? "neutral";
459
+ const style = () => props.accent ? {
460
+ "--k2b-chat-activity-accent": props.accent
461
+ } : undefined;
462
+ return _$createComponent(Show, {
463
+ get when() {
464
+ return props.children;
465
+ },
466
+ get fallback() {
467
+ return (() => {
468
+ var _el$50 = _$getNextElement(_tmpl$22),
469
+ _el$51 = _el$50.firstChild;
470
+ _$insert(_el$51, _$createComponent(ActivityContent, props));
471
+ _$effect(_p$ => {
472
+ var _v$26 = `k2b-chat-activity ${props.class ?? ""}`,
473
+ _v$27 = tone(),
474
+ _v$28 = props.accent ? "true" : undefined,
475
+ _v$29 = props.busy ? "true" : undefined,
476
+ _v$30 = props.anchorId !== undefined ? String(props.anchorId) : undefined,
477
+ _v$31 = style(),
478
+ _v$32 = props.busy ? "true" : undefined;
479
+ _v$26 !== _p$.e && _$className(_el$50, _p$.e = _v$26);
480
+ _v$27 !== _p$.t && _$setAttribute(_el$50, "data-tone", _p$.t = _v$27);
481
+ _v$28 !== _p$.a && _$setAttribute(_el$50, "data-accent", _p$.a = _v$28);
482
+ _v$29 !== _p$.o && _$setAttribute(_el$50, "data-busy", _p$.o = _v$29);
483
+ _v$30 !== _p$.i && _$setAttribute(_el$50, "data-chat-anchor", _p$.i = _v$30);
484
+ _p$.n = _$style(_el$50, _v$31, _p$.n);
485
+ _v$32 !== _p$.s && _$setAttribute(_el$50, "aria-busy", _p$.s = _v$32);
486
+ return _p$;
487
+ }, {
488
+ e: undefined,
489
+ t: undefined,
490
+ a: undefined,
491
+ o: undefined,
492
+ i: undefined,
493
+ n: undefined,
494
+ s: undefined
495
+ });
496
+ return _el$50;
497
+ })();
498
+ },
499
+ get children() {
500
+ var _el$47 = _$getNextElement(_tmpl$21),
501
+ _el$48 = _el$47.firstChild,
502
+ _el$49 = _el$48.nextSibling;
503
+ _el$47.addEventListener("toggle", event => props.onOpenChange?.(event.currentTarget.open));
504
+ _$insert(_el$48, _$createComponent(ActivityContent, _$mergeProps(props, {
505
+ disclosure: true
506
+ })));
507
+ _$insert(_el$49, () => props.children);
508
+ _$effect(_p$ => {
509
+ var _v$17 = `k2b-chat-activity ${props.class ?? ""}`,
510
+ _v$18 = tone(),
511
+ _v$19 = props.accent ? "true" : undefined,
512
+ _v$20 = props.busy ? "true" : undefined,
513
+ _v$21 = props.bodyInset === false ? "false" : undefined,
514
+ _v$22 = props.anchorId !== undefined ? String(props.anchorId) : undefined,
515
+ _v$23 = style(),
516
+ _v$24 = props.open ?? props.defaultOpen,
517
+ _v$25 = props.busy ? "true" : undefined;
518
+ _v$17 !== _p$.e && _$className(_el$47, _p$.e = _v$17);
519
+ _v$18 !== _p$.t && _$setAttribute(_el$47, "data-tone", _p$.t = _v$18);
520
+ _v$19 !== _p$.a && _$setAttribute(_el$47, "data-accent", _p$.a = _v$19);
521
+ _v$20 !== _p$.o && _$setAttribute(_el$47, "data-busy", _p$.o = _v$20);
522
+ _v$21 !== _p$.i && _$setAttribute(_el$47, "data-body-inset", _p$.i = _v$21);
523
+ _v$22 !== _p$.n && _$setAttribute(_el$47, "data-chat-anchor", _p$.n = _v$22);
524
+ _p$.s = _$style(_el$47, _v$23, _p$.s);
525
+ _v$24 !== _p$.h && _$setProperty(_el$47, "open", _p$.h = _v$24);
526
+ _v$25 !== _p$.r && _$setAttribute(_el$47, "aria-busy", _p$.r = _v$25);
527
+ return _p$;
528
+ }, {
529
+ e: undefined,
530
+ t: undefined,
531
+ a: undefined,
532
+ o: undefined,
533
+ i: undefined,
534
+ n: undefined,
535
+ s: undefined,
536
+ h: undefined,
537
+ r: undefined
538
+ });
539
+ return _el$47;
540
+ }
541
+ });
542
+ }
543
+ export function ChatContextUsage(props) {
544
+ const messages = useUiMessages();
545
+ const formatNumber = value => (props.formatNumber ?? formatStableInteger)(value);
546
+ const formattedUsageValue = value => value === null ? messages().unknown : formatNumber(value);
547
+ const usage = () => normalizedUsage(props.usage);
548
+ const loopUsage = () => normalizedUsage(props.loopUsage);
549
+ const total = () => usage().total ?? 0;
550
+ const windowSize = () => finiteNonNegative(props.contextWindow);
551
+ const reported = () => usage().reported;
552
+ const percent = () => reported() && windowSize() > 0 ? Math.min(100, Math.round(total() / windowSize() * 100)) : null;
553
+ const remaining = () => reported() && windowSize() > 0 ? Math.max(0, windowSize() - total()) : null;
554
+ const accessibleLabel = () => {
555
+ if (!reported()) {
556
+ return windowSize() > 0 ? messages().contextUsageUnavailableWithWindow({
557
+ window: formatNumber(windowSize())
558
+ }) : messages().contextUsageUnavailable;
559
+ }
560
+ return percent() === null ? messages().tokensUsed({
561
+ total: formatNumber(total())
562
+ }) : messages().tokensUsedPercent({
563
+ total: formatNumber(total()),
564
+ percent: percent()
565
+ });
566
+ };
567
+ return _$createComponent(Tooltip.Trigger, {
568
+ placement: "top",
569
+ get content() {
570
+ return (() => {
571
+ var _el$54 = _$getNextElement(_tmpl$25),
572
+ _el$55 = _el$54.firstChild,
573
+ _el$78 = _el$55.nextSibling,
574
+ [_el$79, _co$12] = _$getNextMarker(_el$78.nextSibling),
575
+ _el$56 = _el$79.nextSibling,
576
+ _el$72 = _el$56.firstChild,
577
+ [_el$73, _co$1] = _$getNextMarker(_el$72.nextSibling),
578
+ _el$57 = _el$73.nextSibling,
579
+ _el$58 = _el$57.firstChild,
580
+ _el$59 = _el$58.nextSibling,
581
+ _el$60 = _el$57.nextSibling,
582
+ _el$61 = _el$60.firstChild,
583
+ _el$62 = _el$61.nextSibling,
584
+ _el$74 = _el$60.nextSibling,
585
+ [_el$75, _co$10] = _$getNextMarker(_el$74.nextSibling),
586
+ _el$66 = _el$75.nextSibling,
587
+ _el$67 = _el$66.firstChild,
588
+ _el$68 = _el$67.nextSibling,
589
+ _el$76 = _el$66.nextSibling,
590
+ [_el$77, _co$11] = _$getNextMarker(_el$76.nextSibling);
591
+ _$insert(_el$55, () => messages().lastRequestContext);
592
+ _$insert(_el$54, _$createComponent(Show, {
593
+ get when() {
594
+ return percent() !== null;
595
+ },
596
+ get children() {
597
+ return _$createComponent(ProgressBar, {
598
+ get value() {
599
+ return percent() ?? 0;
600
+ },
601
+ size: "xs",
602
+ get tone() {
603
+ return (percent() ?? 0) >= 85 ? "danger" : "info";
604
+ },
605
+ get label() {
606
+ return messages().contextWindowUsed;
607
+ }
608
+ });
609
+ }
610
+ }), _el$79, _co$12);
611
+ _$insert(_el$56, _$createComponent(Show, {
612
+ get when() {
613
+ return props.modelLabel;
614
+ },
615
+ children: model => (() => {
616
+ var _el$80 = _$getNextElement(_tmpl$24),
617
+ _el$81 = _el$80.firstChild,
618
+ _el$82 = _el$81.nextSibling;
619
+ _$insert(_el$81, () => messages().model);
620
+ _$insert(_el$82, model);
621
+ return _el$80;
622
+ })()
623
+ }), _el$73, _co$1);
624
+ _$insert(_el$58, () => messages().input);
625
+ _$insert(_el$59, () => formattedUsageValue(usage().input));
626
+ _$insert(_el$61, () => messages().output);
627
+ _$insert(_el$62, () => formattedUsageValue(usage().output));
628
+ _$insert(_el$56, _$createComponent(Show, {
629
+ get when() {
630
+ return loopUsage().reported;
631
+ },
632
+ get children() {
633
+ var _el$63 = _$getNextElement(_tmpl$24),
634
+ _el$64 = _el$63.firstChild,
635
+ _el$65 = _el$64.nextSibling;
636
+ _$insert(_el$64, () => messages().loopTotal);
637
+ _$insert(_el$65, () => formattedUsageValue(loopUsage().total));
638
+ return _el$63;
639
+ }
640
+ }), _el$75, _co$10);
641
+ _$insert(_el$67, () => messages().window);
642
+ _$insert(_el$68, (() => {
643
+ var _c$2 = _$memo(() => windowSize() > 0);
644
+ return () => _c$2() ? formatNumber(windowSize()) : messages().notConfigured;
645
+ })());
646
+ _$insert(_el$56, _$createComponent(Show, {
647
+ get when() {
648
+ return remaining() !== null;
649
+ },
650
+ get children() {
651
+ var _el$69 = _$getNextElement(_tmpl$24),
652
+ _el$70 = _el$69.firstChild,
653
+ _el$71 = _el$70.nextSibling;
654
+ _$insert(_el$70, () => messages().remaining);
655
+ _$insert(_el$71, (() => {
656
+ var _c$3 = _$memo(() => remaining() === null);
657
+ return () => _c$3() ? messages().unknown : formatNumber(remaining());
658
+ })());
659
+ return _el$69;
660
+ }
661
+ }), _el$77, _co$11);
662
+ return _el$54;
663
+ })();
664
+ },
665
+ type: "button",
666
+ get ["class"]() {
667
+ return `k2b-chat-context ${props.class ?? ""}`;
668
+ },
669
+ get ["data-warning"]() {
670
+ return reported() && (percent() ?? 0) >= 85 ? "true" : undefined;
671
+ },
672
+ get ["aria-label"]() {
673
+ return accessibleLabel();
674
+ },
675
+ get children() {
676
+ return [_$getNextElement(_tmpl$23), (() => {
677
+ var _el$53 = _$getNextElement(_tmpl$0);
678
+ _$insert(_el$53, (() => {
679
+ var _c$ = _$memo(() => percent() === null);
680
+ return () => _c$() ? "–" : `${percent()}%`;
681
+ })());
682
+ return _el$53;
683
+ })()];
684
+ }
685
+ });
686
+ }
687
+ _$delegateEvents(["click"]);
688
+ //# sourceMappingURL=ChatPrimitives.js.map