@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 @@
1
+ {"version":3,"names":["createUniqueId","Show","splitProps","Button","ButtonLink","Dropdown","classNames","base","extra","DetailPanelHeader","props","_$ssr","_tmpl$7","_$ssrAttribute","_$escape","class","_$createComponent","when","icon","children","_tmpl$8","leading","_tmpl$","title","subtitle","meta","_tmpl$4","_tmpl$2","_tmpl$3","actions","_tmpl$5","primaryActions","_tmpl$6","DetailPanelBody","_tmpl$9","scrollPreserveKey","DetailPanelSummary","headingId","_tmpl$1","_tmpl$0","DetailPanelGroup","_tmpl$10","label","DetailPanelSectionIcon","_tmpl$11","tone","DetailPanelActionContent","_tmpl$12","_tmpl$14","description","_tmpl$13","trailing","_tmpl$15","DetailPanelAction","local","rest","className","content","action","href","undefined","fallback","_$mergeProps","variant","size","menuItems","length","_tmpl$17","Root","items","align","menuLabel","Trigger","iconOnly","_tmpl$16","DetailPanelSection","collapsible","_tmpl$24","_tmpl$21","_tmpl$22","_tmpl$23","_tmpl$20","defaultOpen","_tmpl$18","_tmpl$19","DetailPanel","Header","Body","Summary","Group","Section","Action"],"sources":["layout/DetailPanel.tsx"],"sourcesContent":["import { createUniqueId, type JSX, Show, splitProps } from \"solid-js\";\nimport { Button, ButtonLink, type ButtonLinkProps, type ButtonProps } from \"../actions/Button\";\nimport { Dropdown, type DropdownItem } from \"../actions/Dropdown\";\n\nexport type DetailPanelProps = {\n children: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelHeaderBaseProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n meta?: JSX.Element;\n actions?: JSX.Element;\n primaryActions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelHeaderProps = DetailPanelHeaderBaseProps &\n (\n | {\n leading?: JSX.Element;\n icon?: never;\n }\n | {\n leading?: never;\n icon?: string;\n }\n );\n\nexport type DetailPanelBodyProps = {\n children: JSX.Element;\n scrollPreserveKey?: string;\n class?: string;\n};\n\nexport type DetailPanelSummaryProps = {\n title: JSX.Element;\n children: JSX.Element;\n actions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelGroupProps = {\n children: JSX.Element;\n label?: string;\n class?: string;\n};\n\nexport type DetailPanelTone = \"accent\" | \"neutral\" | \"success\" | \"warning\" | \"danger\";\n\ntype DetailPanelSectionBaseProps = {\n title: JSX.Element;\n icon?: string;\n tone?: DetailPanelTone;\n description?: JSX.Element;\n meta?: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelActionBaseProps = {\n title: JSX.Element;\n description?: JSX.Element;\n leading?: JSX.Element;\n trailing?: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelActionMenuProps =\n | {\n menuItems?: never;\n menuLabel?: never;\n }\n | {\n menuItems: readonly DropdownItem[];\n menuLabel: string;\n };\n\nexport type DetailPanelActionLinkProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonLinkProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href: string;\n };\n\nexport type DetailPanelActionButtonProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href?: never;\n };\n\nexport type DetailPanelActionProps = DetailPanelActionLinkProps | DetailPanelActionButtonProps;\n\nexport type DetailPanelSectionProps = DetailPanelSectionBaseProps &\n (\n | {\n children?: JSX.Element;\n actions?: JSX.Element;\n collapsible?: false;\n defaultOpen?: never;\n }\n | {\n children: JSX.Element;\n actions?: never;\n collapsible: true;\n defaultOpen?: boolean;\n }\n );\n\ntype DetailPanelComponent = ((props: DetailPanelProps) => JSX.Element) & {\n Header: (props: DetailPanelHeaderProps) => JSX.Element;\n Body: (props: DetailPanelBodyProps) => JSX.Element;\n Summary: (props: DetailPanelSummaryProps) => JSX.Element;\n Group: (props: DetailPanelGroupProps) => JSX.Element;\n Section: (props: DetailPanelSectionProps) => JSX.Element;\n Action: (props: DetailPanelActionProps) => JSX.Element;\n};\n\nconst classNames = (base: string, extra?: string): string => (extra ? `${base} ${extra}` : base);\n\nconst DetailPanelHeader = (props: DetailPanelHeaderProps): JSX.Element => (\n <header class={classNames(\"k2b-detail-panel__header\", props.class)}>\n <div class=\"k2b-detail-panel__header-main\">\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__header-icon\" aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n <Show when={props.leading}>\n <div class=\"k2b-detail-panel__header-leading\">{props.leading}</div>\n </Show>\n <div class=\"k2b-detail-panel__heading\">\n <h2>{props.title}</h2>\n <Show when={props.subtitle || props.meta}>\n <div class=\"k2b-detail-panel__supporting\">\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__meta\">{props.meta}</div>\n </Show>\n </div>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__actions\">{props.actions}</div>\n </Show>\n </div>\n <Show when={props.primaryActions}>\n <div class=\"k2b-detail-panel__primary-actions\">{props.primaryActions}</div>\n </Show>\n </header>\n);\n\nconst DetailPanelBody = (props: DetailPanelBodyProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel__body\", props.class)} data-scroll-preserve={props.scrollPreserveKey}>\n {props.children}\n </div>\n);\n\nconst DetailPanelSummary = (props: DetailPanelSummaryProps): JSX.Element => {\n const headingId = `k2b-detail-panel-summary-${createUniqueId()}`;\n\n return (\n <section class={classNames(\"k2b-detail-panel__summary\", props.class)} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__summary-header\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__summary-actions\">{props.actions}</div>\n </Show>\n </header>\n <div class=\"k2b-detail-panel__summary-body\">{props.children}</div>\n </section>\n );\n};\n\nconst DetailPanelGroup = (props: DetailPanelGroupProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel__group\", props.class)} role=\"group\" aria-label={props.label}>\n {props.children}\n </div>\n);\n\nconst DetailPanelSectionIcon = (props: Pick<DetailPanelSectionBaseProps, \"icon\" | \"tone\">): JSX.Element => (\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__section-icon\" data-tone={props.tone ?? \"neutral\"} aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n);\n\nconst DetailPanelActionContent = (props: DetailPanelActionBaseProps): JSX.Element => (\n <>\n <Show when={props.leading}>\n <span class=\"k2b-detail-panel__action-leading\">{props.leading}</span>\n </Show>\n <span class=\"k2b-detail-panel__action-copy\">\n <span class=\"k2b-detail-panel__action-title\">{props.title}</span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__action-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.trailing}>\n <span class=\"k2b-detail-panel__action-trailing\">{props.trailing}</span>\n </Show>\n </>\n);\n\nconst DetailPanelAction = (props: DetailPanelActionProps): JSX.Element => {\n const [local, rest] = splitProps(props, [\"class\", \"description\", \"href\", \"leading\", \"menuItems\", \"menuLabel\", \"title\", \"trailing\"]);\n const className = classNames(\"k2b-detail-panel__action\", local.class);\n const content = () => (\n <DetailPanelActionContent title={local.title} description={local.description} leading={local.leading} trailing={local.trailing} />\n );\n\n const action = () => (\n <Show\n when={local.href !== undefined}\n fallback={\n <Button\n {...(rest as Omit<DetailPanelActionButtonProps, keyof DetailPanelActionBaseProps>)}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </Button>\n }\n >\n <ButtonLink\n {...(rest as Omit<DetailPanelActionLinkProps, keyof DetailPanelActionBaseProps | \"href\">)}\n href={local.href as string}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </ButtonLink>\n </Show>\n );\n\n return (\n <Show when={local.menuItems?.length} fallback={action()}>\n <div class=\"k2b-detail-panel__action-row\">\n {action()}\n <Dropdown.Root items={local.menuItems ?? []} align=\"end\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu\">\n <Dropdown.Trigger iconOnly size=\"sm\" variant=\"ghost\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu-trigger\">\n <i class=\"ti ti-dots\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </div>\n </Show>\n );\n};\n\nconst DetailPanelSection = (props: DetailPanelSectionProps): JSX.Element => {\n const headingId = `k2b-detail-panel-section-${createUniqueId()}`;\n const className = () => classNames(\"k2b-detail-panel__section\", props.class);\n\n return (\n <Show\n when={props.collapsible}\n fallback={\n <section class={className()} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__section-header\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <div class=\"k2b-detail-panel__section-copy\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.description}>\n <p>{props.description}</p>\n </Show>\n </div>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__section-meta\">{props.meta}</div>\n </Show>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__section-actions\">{props.actions}</div>\n </Show>\n </header>\n <Show when={props.children !== undefined}>\n <div class=\"k2b-detail-panel__section-body\">{props.children}</div>\n </Show>\n </section>\n }\n >\n <details class={className()} open={props.defaultOpen}>\n <summary class=\"k2b-detail-panel__section-summary\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <span class=\"k2b-detail-panel__section-copy\">\n <span id={headingId} class=\"k2b-detail-panel__section-title\">\n {props.title}\n </span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__section-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.meta}>\n <span class=\"k2b-detail-panel__section-meta\">{props.meta}</span>\n </Show>\n <i class=\"ti ti-chevron-down\" aria-hidden=\"true\" />\n </summary>\n <div class=\"k2b-detail-panel__section-body\">{props.children}</div>\n </details>\n </Show>\n );\n};\n\nconst DetailPanel = ((props: DetailPanelProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel\", props.class)}>{props.children}</div>\n)) as DetailPanelComponent;\n\nDetailPanel.Header = DetailPanelHeader;\nDetailPanel.Body = DetailPanelBody;\nDetailPanel.Summary = DetailPanelSummary;\nDetailPanel.Group = DetailPanelGroup;\nDetailPanel.Section = DetailPanelSection;\nDetailPanel.Action = DetailPanelAction;\n\nexport default DetailPanel;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,319 @@
1
+ import { ssrElement as _$ssrElement } from "solid-js/web";
2
+ import { mergeProps as _$mergeProps } from "solid-js/web";
3
+ import { ssr as _$ssr } from "solid-js/web";
4
+ import { ssrAttribute as _$ssrAttribute } from "solid-js/web";
5
+ import { escape as _$escape } from "solid-js/web";
6
+ import { createComponent as _$createComponent } from "solid-js/web";
7
+ var _tmpl$ = ["<h2", ">", "</h2>"],
8
+ _tmpl$2 = ["<span class=\"k2b-discussion__count\">", "</span>"],
9
+ _tmpl$3 = ["<div class=\"k2b-discussion__actions\">", "</div>"],
10
+ _tmpl$4 = ["<header class=\"k2b-discussion__header\">", "", "", "", "</header>"],
11
+ _tmpl$5 = ["<div class=\"k2b-discussion__body\">", "</div>"],
12
+ _tmpl$6 = ["<span class=\"k2b-discussion__icon\" aria-hidden=\"true\"><i", "></i></span>"],
13
+ _tmpl$7 = ["<h3", ">", "</h3>"],
14
+ _tmpl$8 = "<i class=\"ti ti-send\" aria-hidden=\"true\"></i>",
15
+ _tmpl$9 = ["<div class=\"k2b-discussion__composer-field\" data-has-inset-action=\"true\">", "<div class=\"k2b-discussion__composer-inset-action\">", "</div></div>"],
16
+ _tmpl$0 = ["<p class=\"k2b-discussion__status\" role=\"alert\">", "</p>"],
17
+ _tmpl$1 = ["<footer>", "</footer>"],
18
+ _tmpl$10 = ["<p class=\"k2b-discussion__status\" role=\"status\"><i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\"></i> ", "</p>"],
19
+ _tmpl$11 = ["<button type=\"button\" class=\"k2b-discussion__load-more\"", "><i class=\"", "\" aria-hidden=\"true\"></i>", "</button>"],
20
+ _tmpl$12 = ["<div", "><div class=\"k2b-discussion__sentinel\" aria-hidden=\"true\"></div>", "", "", "", "<ol class=\"k2b-discussion__list\">", "</ol></div>"],
21
+ _tmpl$13 = ["<button type=\"button\">", "</button>"],
22
+ _tmpl$14 = ["<div class=\"k2b-discussion__status\" role=\"alert\"><span>", "</span>", "</div>"],
23
+ _tmpl$15 = ["<div class=\"k2b-discussion__status\" role=\"alert\"><span>", "</span><button type=\"button\">", "</button></div>"],
24
+ _tmpl$16 = ["<div class=\"k2b-discussion__avatar\">", "</div>"],
25
+ _tmpl$17 = ["<span class=\"k2b-discussion__timestamp\">", "</span>"],
26
+ _tmpl$18 = ["<span class=\"k2b-discussion__meta\">", "</span>"],
27
+ _tmpl$19 = ["<div class=\"k2b-discussion__item-actions\"", ">", "</div>"],
28
+ _tmpl$20 = ["<div class=\"k2b-discussion__reply-context\">", "</div>"],
29
+ _tmpl$21 = ["<div class=\"k2b-discussion__entry\"><header><strong>", "</strong>", "", "", "</header>", "<div class=\"k2b-discussion__content\">", "</div></div>"];
30
+ import { createEffect, createSignal, createUniqueId, onCleanup, onMount, Show, splitProps } from "solid-js";
31
+ import { Button, IconButton } from "../actions/Button";
32
+ import { MarkdownEditor } from "../inputs/markdown/MarkdownEditor";
33
+ import { useUiMessages } from "../intl/messages";
34
+ const classNames = (base, extra) => extra ? `${base} ${extra}` : base;
35
+ const DiscussionRoot = props => {
36
+ const headingId = `k2b-discussion-${createUniqueId()}`;
37
+ const [local, sectionProps] = splitProps(props, ["label", "children", "icon", "count", "actions", "as", "surface", "class"]);
38
+ return _$ssrElement("section", _$mergeProps(sectionProps, {
39
+ get ["class"]() {
40
+ return classNames("k2b-discussion", local.class);
41
+ },
42
+ get ["data-surface"]() {
43
+ return local.surface ?? "default";
44
+ },
45
+ "aria-labelledby": headingId
46
+ }), [_$ssr(_tmpl$4, _$escape(_$createComponent(Show, {
47
+ get when() {
48
+ return local.icon !== false && local.icon;
49
+ },
50
+ children: icon => _$ssr(_tmpl$6, _$ssrAttribute("class", _$escape(icon(), true), false))
51
+ })), _$escape(_$createComponent(Show, {
52
+ get when() {
53
+ return local.as === "h2";
54
+ },
55
+ get fallback() {
56
+ return _$ssr(_tmpl$7, _$ssrAttribute("id", _$escape(headingId, true), false), _$escape(local.label));
57
+ },
58
+ get children() {
59
+ return _$ssr(_tmpl$, _$ssrAttribute("id", _$escape(headingId, true), false), _$escape(local.label));
60
+ }
61
+ })), _$escape(_$createComponent(Show, {
62
+ get when() {
63
+ return local.count !== undefined;
64
+ },
65
+ get children() {
66
+ return _$ssr(_tmpl$2, _$escape(local.count));
67
+ }
68
+ })), _$escape(_$createComponent(Show, {
69
+ get when() {
70
+ return local.actions !== undefined;
71
+ },
72
+ get children() {
73
+ return _$ssr(_tmpl$3, _$escape(local.actions));
74
+ }
75
+ }))), _$ssr(_tmpl$5, _$escape(local.children))], false);
76
+ };
77
+ const DiscussionComposer = props => {
78
+ const messages = useUiMessages();
79
+ const [local, formProps] = splitProps(props, ["label", "onSubmit", "initialValue", "placeholder", "submitLabel", "cancelLabel", "onCancel", "lines", "class"]);
80
+ const [message, setMessage] = createSignal(local.initialValue ?? "");
81
+ const [submitting, setSubmitting] = createSignal(false);
82
+ const [submitError, setSubmitError] = createSignal(null);
83
+ const submit = async () => {
84
+ const normalized = message().trim();
85
+ if (!normalized || submitting()) return;
86
+ setSubmitting(true);
87
+ setSubmitError(null);
88
+ try {
89
+ const accepted = await local.onSubmit(normalized);
90
+ if (accepted !== false) setMessage("");
91
+ } catch (error) {
92
+ setSubmitError(error instanceof Error ? error.message : messages().couldNotPostMessage);
93
+ } finally {
94
+ setSubmitting(false);
95
+ }
96
+ };
97
+ return _$ssrElement("form", _$mergeProps(formProps, {
98
+ get ["class"]() {
99
+ return classNames("k2b-discussion__composer", local.class);
100
+ }
101
+ }), [_$ssr(_tmpl$9, _$escape(_$createComponent(MarkdownEditor, {
102
+ get ["aria-label"]() {
103
+ return local.label;
104
+ },
105
+ value: message,
106
+ onValueChange: value => {
107
+ setMessage(value);
108
+ if (value.trim()) setSubmitError(null);
109
+ },
110
+ get placeholder() {
111
+ return local.placeholder;
112
+ },
113
+ get lines() {
114
+ return local.lines ?? 4;
115
+ },
116
+ noToolbar: true,
117
+ showStats: false,
118
+ get disabled() {
119
+ return submitting();
120
+ },
121
+ get error() {
122
+ return submitError() !== null;
123
+ },
124
+ onSubmit: () => void submit()
125
+ })), _$escape(_$createComponent(IconButton, {
126
+ type: "submit",
127
+ get label() {
128
+ return local.submitLabel ?? messages().postMessage;
129
+ },
130
+ size: "sm",
131
+ variant: "primary",
132
+ get loading() {
133
+ return submitting();
134
+ },
135
+ get disabled() {
136
+ return submitting() || !message().trim();
137
+ },
138
+ get children() {
139
+ return _$ssr(_tmpl$8);
140
+ }
141
+ }))), _$escape(_$createComponent(Show, {
142
+ get when() {
143
+ return submitError();
144
+ },
145
+ children: error => _$ssr(_tmpl$0, _$escape(error()))
146
+ })), _$escape(_$createComponent(Show, {
147
+ get when() {
148
+ return local.onCancel;
149
+ },
150
+ children: onCancel => _$ssr(_tmpl$1, _$escape(_$createComponent(Button, {
151
+ type: "button",
152
+ variant: "ghost",
153
+ size: "xs",
154
+ get disabled() {
155
+ return submitting();
156
+ },
157
+ get onClick() {
158
+ return onCancel();
159
+ },
160
+ get children() {
161
+ return local.cancelLabel ?? messages().cancel;
162
+ }
163
+ })))
164
+ }))], false);
165
+ };
166
+ const scrollOwner = element => {
167
+ let parent = element.parentElement;
168
+ while (parent) {
169
+ const style = getComputedStyle(parent);
170
+ if (style.overflowY === "auto" || style.overflowY === "scroll" || style.overflow === "auto" || style.overflow === "scroll") return parent;
171
+ parent = parent.parentElement;
172
+ }
173
+ return document.scrollingElement instanceof HTMLElement ? document.scrollingElement : null;
174
+ };
175
+ const DiscussionList = props => {
176
+ const messages = useUiMessages();
177
+ const [loadingMoreInternally, setLoadingMoreInternally] = createSignal(false);
178
+ const [loadMoreError, setLoadMoreError] = createSignal(null);
179
+ const [sentinelVisible, setSentinelVisible] = createSignal(false);
180
+ const [automaticLoadAttempted, setAutomaticLoadAttempted] = createSignal(false);
181
+ let listRef;
182
+ let sentinelRef;
183
+ let observer;
184
+ let adjustmentFrame;
185
+ let active = true;
186
+ const loadingMore = () => Boolean(props.loadingMore || loadingMoreInternally());
187
+ const canLoadMore = () => Boolean(!props.loading && !props.error && !loadMoreError() && props.hasMore && props.onLoadMore && !loadingMore());
188
+ const loadMore = async (retry = false) => {
189
+ if (props.loading || props.error || !retry && loadMoreError() || !props.onLoadMore || !props.hasMore || loadingMore()) return false;
190
+ const owner = listRef ? scrollOwner(listRef) : null;
191
+ const previousScrollHeight = owner?.scrollHeight ?? 0;
192
+ setLoadMoreError(null);
193
+ setLoadingMoreInternally(true);
194
+ let loaded = false;
195
+ try {
196
+ loaded = (await props.onLoadMore()) !== false;
197
+ } catch (error) {
198
+ if (active) setLoadMoreError(error instanceof Error ? error.message : messages().couldNotLoadEarlierMessages);
199
+ } finally {
200
+ if (active) setLoadingMoreInternally(false);
201
+ }
202
+ if (!active || !loaded || !owner) return false;
203
+ queueMicrotask(() => {
204
+ if (!active) return;
205
+ adjustmentFrame = requestAnimationFrame(() => {
206
+ if (!active) return;
207
+ owner.scrollTop += owner.scrollHeight - previousScrollHeight;
208
+ });
209
+ });
210
+ return true;
211
+ };
212
+ createEffect(() => {
213
+ if (!sentinelVisible()) {
214
+ setAutomaticLoadAttempted(false);
215
+ return;
216
+ }
217
+ if (automaticLoadAttempted() || !canLoadMore()) return;
218
+ setAutomaticLoadAttempted(true);
219
+ void loadMore();
220
+ });
221
+ onMount(() => {
222
+ if (typeof IntersectionObserver === "undefined" || !sentinelRef) return;
223
+ observer = new IntersectionObserver(entries => {
224
+ setSentinelVisible(entries.some(entry => entry.isIntersecting));
225
+ }, {
226
+ rootMargin: "160px 0px 0px"
227
+ });
228
+ observer.observe(sentinelRef);
229
+ });
230
+ onCleanup(() => {
231
+ active = false;
232
+ observer?.disconnect();
233
+ if (adjustmentFrame !== undefined) cancelAnimationFrame(adjustmentFrame);
234
+ });
235
+ return _$ssr(_tmpl$12, _$ssrAttribute("class", _$escape(classNames("k2b-discussion__list-region", props.class), true), false) + _$ssrAttribute("aria-busy", props.loading || loadingMore() ? "true" : _$escape(undefined, true), false), _$escape(_$createComponent(Show, {
236
+ get when() {
237
+ return props.loading;
238
+ },
239
+ get children() {
240
+ return _$ssr(_tmpl$10, _$escape(props.loadingLabel ?? messages().loadingMessages));
241
+ }
242
+ })), _$escape(_$createComponent(Show, {
243
+ get when() {
244
+ return props.error;
245
+ },
246
+ children: error => _$ssr(_tmpl$14, _$escape(error()), _$escape(_$createComponent(Show, {
247
+ get when() {
248
+ return props.onRetry;
249
+ },
250
+ get children() {
251
+ return _$ssr(_tmpl$13, _$escape(messages().retry));
252
+ }
253
+ })))
254
+ })), _$escape(_$createComponent(Show, {
255
+ get when() {
256
+ return loadMoreError();
257
+ },
258
+ children: error => _$ssr(_tmpl$15, _$escape(error()), _$escape(messages().retry))
259
+ })), _$escape(_$createComponent(Show, {
260
+ get when() {
261
+ return !props.loading && !props.error && !loadMoreError() && (canLoadMore() || loadingMore());
262
+ },
263
+ get children() {
264
+ return _$ssr(_tmpl$11, _$ssrAttribute("disabled", loadingMore(), true), `ti ${loadingMore() ? "ti-loader-2 k2b-spin" : "ti-history"}`, loadingMore() ? _$escape(props.loadingLabel ?? messages().loadingMessages) : _$escape(props.loadMoreLabel ?? messages().loadEarlier));
265
+ }
266
+ })), _$escape(props.children));
267
+ };
268
+ const DiscussionItem = props => {
269
+ const [local, itemProps] = splitProps(props, ["author", "children", "avatar", "timestamp", "meta", "replyContext", "actions", "actionVisibility", "class"]);
270
+ return _$ssrElement("li", _$mergeProps(itemProps, {
271
+ get ["class"]() {
272
+ return classNames("k2b-discussion__item", local.class);
273
+ },
274
+ get ["data-has-avatar"]() {
275
+ return local.avatar !== undefined ? "true" : undefined;
276
+ }
277
+ }), [_$escape(_$createComponent(Show, {
278
+ get when() {
279
+ return local.avatar !== undefined;
280
+ },
281
+ get children() {
282
+ return _$ssr(_tmpl$16, _$escape(local.avatar));
283
+ }
284
+ })), _$ssr(_tmpl$21, _$escape(local.author), _$escape(_$createComponent(Show, {
285
+ get when() {
286
+ return local.timestamp !== undefined;
287
+ },
288
+ get children() {
289
+ return _$ssr(_tmpl$17, _$escape(local.timestamp));
290
+ }
291
+ })), _$escape(_$createComponent(Show, {
292
+ get when() {
293
+ return local.meta !== undefined;
294
+ },
295
+ get children() {
296
+ return _$ssr(_tmpl$18, _$escape(local.meta));
297
+ }
298
+ })), _$escape(_$createComponent(Show, {
299
+ get when() {
300
+ return local.actions !== undefined;
301
+ },
302
+ get children() {
303
+ return _$ssr(_tmpl$19, _$ssrAttribute("data-visibility", _$escape(local.actionVisibility ?? "progressive", true), false), _$escape(local.actions));
304
+ }
305
+ })), _$escape(_$createComponent(Show, {
306
+ get when() {
307
+ return local.replyContext !== undefined;
308
+ },
309
+ get children() {
310
+ return _$ssr(_tmpl$20, _$escape(local.replyContext));
311
+ }
312
+ })), _$escape(local.children))], false);
313
+ };
314
+ const Discussion = DiscussionRoot;
315
+ Discussion.Composer = DiscussionComposer;
316
+ Discussion.List = DiscussionList;
317
+ Discussion.Item = DiscussionItem;
318
+ export default Discussion;
319
+ //# sourceMappingURL=Discussion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createEffect","createSignal","createUniqueId","onCleanup","onMount","Show","splitProps","Button","IconButton","MarkdownEditor","useUiMessages","classNames","base","extra","DiscussionRoot","props","headingId","local","sectionProps","_$ssrElement","_$mergeProps","class","data-surface","surface","_$ssr","_tmpl$4","_$escape","_$createComponent","when","icon","children","_tmpl$6","_$ssrAttribute","as","fallback","_tmpl$7","label","_tmpl$","count","undefined","_tmpl$2","actions","_tmpl$3","_tmpl$5","DiscussionComposer","messages","formProps","message","setMessage","initialValue","submitting","setSubmitting","submitError","setSubmitError","submit","normalized","trim","accepted","onSubmit","error","Error","couldNotPostMessage","_tmpl$9","aria-label","value","onValueChange","placeholder","lines","noToolbar","showStats","disabled","type","submitLabel","postMessage","size","variant","loading","_tmpl$8","_tmpl$0","onCancel","_tmpl$1","onClick","cancelLabel","cancel","scrollOwner","element","parent","parentElement","style","getComputedStyle","overflowY","overflow","document","scrollingElement","HTMLElement","DiscussionList","loadingMoreInternally","setLoadingMoreInternally","loadMoreError","setLoadMoreError","sentinelVisible","setSentinelVisible","automaticLoadAttempted","setAutomaticLoadAttempted","listRef","sentinelRef","observer","adjustmentFrame","active","loadingMore","Boolean","canLoadMore","hasMore","onLoadMore","loadMore","retry","owner","previousScrollHeight","scrollHeight","loaded","couldNotLoadEarlierMessages","queueMicrotask","requestAnimationFrame","scrollTop","IntersectionObserver","entries","some","entry","isIntersecting","rootMargin","observe","disconnect","cancelAnimationFrame","_tmpl$12","_tmpl$10","loadingLabel","loadingMessages","_tmpl$14","onRetry","_tmpl$13","_tmpl$15","_tmpl$11","loadMoreLabel","loadEarlier","DiscussionItem","itemProps","data-has-avatar","avatar","_tmpl$16","_tmpl$21","author","timestamp","_tmpl$17","meta","_tmpl$18","_tmpl$19","actionVisibility","replyContext","_tmpl$20","Discussion","Composer","List","Item"],"sources":["layout/Discussion.tsx"],"sourcesContent":["import { createEffect, createSignal, createUniqueId, type JSX, onCleanup, onMount, Show, splitProps } from \"solid-js\";\nimport { Button, IconButton } from \"../actions/Button\";\nimport { MarkdownEditor } from \"../inputs/markdown/MarkdownEditor\";\nimport { useUiMessages } from \"../intl/messages\";\n\nexport type DiscussionProps = Omit<JSX.HTMLAttributes<HTMLElement>, \"children\" | \"class\"> & {\n label: JSX.Element;\n children: JSX.Element;\n icon?: string | false;\n count?: number;\n actions?: JSX.Element;\n as?: \"h2\" | \"h3\";\n surface?: \"default\" | \"bare\";\n class?: string;\n};\n\nexport type DiscussionComposerProps = Omit<JSX.FormHTMLAttributes<HTMLFormElement>, \"children\" | \"class\" | \"onSubmit\"> & {\n label: string;\n onSubmit: (message: string) => boolean | void | Promise<boolean | void>;\n initialValue?: string;\n placeholder?: string;\n submitLabel?: string;\n cancelLabel?: string;\n onCancel?: () => void;\n lines?: number;\n class?: string;\n};\n\nexport type DiscussionListProps = {\n children?: JSX.Element;\n loading?: boolean;\n loadingLabel?: string;\n error?: string | null;\n onRetry?: () => void | Promise<void>;\n hasMore?: boolean;\n loadingMore?: boolean;\n loadMoreLabel?: string;\n onLoadMore?: () => boolean | void | Promise<boolean | void>;\n class?: string;\n};\n\nexport type DiscussionItemProps = Omit<JSX.LiHTMLAttributes<HTMLLIElement>, \"children\" | \"class\"> & {\n author: JSX.Element;\n children: JSX.Element;\n avatar?: JSX.Element;\n timestamp?: JSX.Element;\n meta?: JSX.Element;\n replyContext?: JSX.Element;\n actions?: JSX.Element;\n actionVisibility?: \"always\" | \"progressive\";\n class?: string;\n};\n\ntype DiscussionComponent = ((props: DiscussionProps) => JSX.Element) & {\n Composer: (props: DiscussionComposerProps) => JSX.Element;\n List: (props: DiscussionListProps) => JSX.Element;\n Item: (props: DiscussionItemProps) => JSX.Element;\n};\n\nconst classNames = (base: string, extra?: string): string => (extra ? `${base} ${extra}` : base);\n\nconst DiscussionRoot = (props: DiscussionProps): JSX.Element => {\n const headingId = `k2b-discussion-${createUniqueId()}`;\n const [local, sectionProps] = splitProps(props, [\"label\", \"children\", \"icon\", \"count\", \"actions\", \"as\", \"surface\", \"class\"]);\n\n return (\n <section\n {...sectionProps}\n class={classNames(\"k2b-discussion\", local.class)}\n data-surface={local.surface ?? \"default\"}\n aria-labelledby={headingId}\n >\n <header class=\"k2b-discussion__header\">\n <Show when={local.icon !== false && local.icon}>\n {(icon) => (\n <span class=\"k2b-discussion__icon\" aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n <Show when={local.as === \"h2\"} fallback={<h3 id={headingId}>{local.label}</h3>}>\n <h2 id={headingId}>{local.label}</h2>\n </Show>\n <Show when={local.count !== undefined}>\n <span class=\"k2b-discussion__count\">{local.count}</span>\n </Show>\n <Show when={local.actions !== undefined}>\n <div class=\"k2b-discussion__actions\">{local.actions}</div>\n </Show>\n </header>\n <div class=\"k2b-discussion__body\">{local.children}</div>\n </section>\n );\n};\n\nconst DiscussionComposer = (props: DiscussionComposerProps): JSX.Element => {\n const messages = useUiMessages();\n const [local, formProps] = splitProps(props, [\n \"label\",\n \"onSubmit\",\n \"initialValue\",\n \"placeholder\",\n \"submitLabel\",\n \"cancelLabel\",\n \"onCancel\",\n \"lines\",\n \"class\",\n ]);\n const [message, setMessage] = createSignal(local.initialValue ?? \"\");\n const [submitting, setSubmitting] = createSignal(false);\n const [submitError, setSubmitError] = createSignal<string | null>(null);\n\n const submit = async () => {\n const normalized = message().trim();\n if (!normalized || submitting()) return;\n setSubmitting(true);\n setSubmitError(null);\n try {\n const accepted = await local.onSubmit(normalized);\n if (accepted !== false) setMessage(\"\");\n } catch (error) {\n setSubmitError(error instanceof Error ? error.message : messages().couldNotPostMessage);\n } finally {\n setSubmitting(false);\n }\n };\n\n return (\n <form\n {...formProps}\n class={classNames(\"k2b-discussion__composer\", local.class)}\n onSubmit={(event) => {\n event.preventDefault();\n void submit();\n }}\n >\n <div class=\"k2b-discussion__composer-field\" data-has-inset-action=\"true\">\n <MarkdownEditor\n aria-label={local.label}\n value={message}\n onValueChange={(value) => {\n setMessage(value);\n if (value.trim()) setSubmitError(null);\n }}\n placeholder={local.placeholder}\n lines={local.lines ?? 4}\n noToolbar\n showStats={false}\n disabled={submitting()}\n error={submitError() !== null}\n onSubmit={() => void submit()}\n />\n <div class=\"k2b-discussion__composer-inset-action\">\n <IconButton\n type=\"submit\"\n label={local.submitLabel ?? messages().postMessage}\n size=\"sm\"\n variant=\"primary\"\n loading={submitting()}\n disabled={submitting() || !message().trim()}\n >\n <i class=\"ti ti-send\" aria-hidden=\"true\" />\n </IconButton>\n </div>\n </div>\n <Show when={submitError()}>\n {(error) => (\n <p class=\"k2b-discussion__status\" role=\"alert\">\n {error()}\n </p>\n )}\n </Show>\n <Show when={local.onCancel}>\n {(onCancel) => (\n <footer>\n <Button type=\"button\" variant=\"ghost\" size=\"xs\" disabled={submitting()} onClick={onCancel()}>\n {local.cancelLabel ?? messages().cancel}\n </Button>\n </footer>\n )}\n </Show>\n </form>\n );\n};\n\nconst scrollOwner = (element: HTMLElement): HTMLElement | null => {\n let parent = element.parentElement;\n while (parent) {\n const style = getComputedStyle(parent);\n if (style.overflowY === \"auto\" || style.overflowY === \"scroll\" || style.overflow === \"auto\" || style.overflow === \"scroll\")\n return parent;\n parent = parent.parentElement;\n }\n return document.scrollingElement instanceof HTMLElement ? document.scrollingElement : null;\n};\n\nconst DiscussionList = (props: DiscussionListProps): JSX.Element => {\n const messages = useUiMessages();\n const [loadingMoreInternally, setLoadingMoreInternally] = createSignal(false);\n const [loadMoreError, setLoadMoreError] = createSignal<string | null>(null);\n const [sentinelVisible, setSentinelVisible] = createSignal(false);\n const [automaticLoadAttempted, setAutomaticLoadAttempted] = createSignal(false);\n let listRef: HTMLOListElement | undefined;\n let sentinelRef: HTMLDivElement | undefined;\n let observer: IntersectionObserver | undefined;\n let adjustmentFrame: number | undefined;\n let active = true;\n\n const loadingMore = () => Boolean(props.loadingMore || loadingMoreInternally());\n const canLoadMore = () =>\n Boolean(!props.loading && !props.error && !loadMoreError() && props.hasMore && props.onLoadMore && !loadingMore());\n\n const loadMore = async (retry = false): Promise<boolean> => {\n if (props.loading || props.error || (!retry && loadMoreError()) || !props.onLoadMore || !props.hasMore || loadingMore()) return false;\n const owner = listRef ? scrollOwner(listRef) : null;\n const previousScrollHeight = owner?.scrollHeight ?? 0;\n setLoadMoreError(null);\n setLoadingMoreInternally(true);\n let loaded = false;\n try {\n loaded = (await props.onLoadMore()) !== false;\n } catch (error) {\n if (active) setLoadMoreError(error instanceof Error ? error.message : messages().couldNotLoadEarlierMessages);\n } finally {\n if (active) setLoadingMoreInternally(false);\n }\n if (!active || !loaded || !owner) return false;\n queueMicrotask(() => {\n if (!active) return;\n adjustmentFrame = requestAnimationFrame(() => {\n if (!active) return;\n owner.scrollTop += owner.scrollHeight - previousScrollHeight;\n });\n });\n return true;\n };\n\n createEffect(() => {\n if (!sentinelVisible()) {\n setAutomaticLoadAttempted(false);\n return;\n }\n if (automaticLoadAttempted() || !canLoadMore()) return;\n setAutomaticLoadAttempted(true);\n void loadMore();\n });\n\n onMount(() => {\n if (typeof IntersectionObserver === \"undefined\" || !sentinelRef) return;\n observer = new IntersectionObserver(\n (entries) => {\n setSentinelVisible(entries.some((entry) => entry.isIntersecting));\n },\n { rootMargin: \"160px 0px 0px\" },\n );\n observer.observe(sentinelRef);\n });\n\n onCleanup(() => {\n active = false;\n observer?.disconnect();\n if (adjustmentFrame !== undefined) cancelAnimationFrame(adjustmentFrame);\n });\n\n return (\n <div class={classNames(\"k2b-discussion__list-region\", props.class)} aria-busy={props.loading || loadingMore() ? \"true\" : undefined}>\n <div ref={sentinelRef} class=\"k2b-discussion__sentinel\" aria-hidden=\"true\" />\n <Show when={props.loading}>\n <p class=\"k2b-discussion__status\" role=\"status\">\n <i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" /> {props.loadingLabel ?? messages().loadingMessages}\n </p>\n </Show>\n <Show when={props.error}>\n {(error) => (\n <div class=\"k2b-discussion__status\" role=\"alert\">\n <span>{error()}</span>\n <Show when={props.onRetry}>\n <button type=\"button\" onClick={props.onRetry}>\n {messages().retry}\n </button>\n </Show>\n </div>\n )}\n </Show>\n <Show when={loadMoreError()}>\n {(error) => (\n <div class=\"k2b-discussion__status\" role=\"alert\">\n <span>{error()}</span>\n <button type=\"button\" onClick={() => void loadMore(true)}>\n {messages().retry}\n </button>\n </div>\n )}\n </Show>\n <Show when={!props.loading && !props.error && !loadMoreError() && (canLoadMore() || loadingMore())}>\n <button type=\"button\" class=\"k2b-discussion__load-more\" disabled={loadingMore()} onClick={() => void loadMore()}>\n <i class={`ti ${loadingMore() ? \"ti-loader-2 k2b-spin\" : \"ti-history\"}`} aria-hidden=\"true\" />\n {loadingMore() ? (props.loadingLabel ?? messages().loadingMessages) : (props.loadMoreLabel ?? messages().loadEarlier)}\n </button>\n </Show>\n <ol ref={listRef} class=\"k2b-discussion__list\">\n {props.children}\n </ol>\n </div>\n );\n};\n\nconst DiscussionItem = (props: DiscussionItemProps): JSX.Element => {\n const [local, itemProps] = splitProps(props, [\n \"author\",\n \"children\",\n \"avatar\",\n \"timestamp\",\n \"meta\",\n \"replyContext\",\n \"actions\",\n \"actionVisibility\",\n \"class\",\n ]);\n return (\n <li\n {...itemProps}\n class={classNames(\"k2b-discussion__item\", local.class)}\n data-has-avatar={local.avatar !== undefined ? \"true\" : undefined}\n >\n <Show when={local.avatar !== undefined}>\n <div class=\"k2b-discussion__avatar\">{local.avatar}</div>\n </Show>\n <div class=\"k2b-discussion__entry\">\n <header>\n <strong>{local.author}</strong>\n <Show when={local.timestamp !== undefined}>\n <span class=\"k2b-discussion__timestamp\">{local.timestamp}</span>\n </Show>\n <Show when={local.meta !== undefined}>\n <span class=\"k2b-discussion__meta\">{local.meta}</span>\n </Show>\n <Show when={local.actions !== undefined}>\n <div class=\"k2b-discussion__item-actions\" data-visibility={local.actionVisibility ?? \"progressive\"}>\n {local.actions}\n </div>\n </Show>\n </header>\n <Show when={local.replyContext !== undefined}>\n <div class=\"k2b-discussion__reply-context\">{local.replyContext}</div>\n </Show>\n <div class=\"k2b-discussion__content\">{local.children}</div>\n </div>\n </li>\n );\n};\n\nconst Discussion = DiscussionRoot as DiscussionComponent;\nDiscussion.Composer = DiscussionComposer;\nDiscussion.List = DiscussionList;\nDiscussion.Item = DiscussionItem;\n\nexport default Discussion;\n"],"mappings":"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","ignoreList":[]}