@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":["dnd","createEffect","createMemo","createSignal","createUniqueId","For","onCleanup","onMount","Show","useUiMessages","activatePanesItem","applyPanesIntent","getPanesDropTargets","PANES_MAX_ID_LENGTH","PANES_MIN_RATIO","parsePanesLayout","resizePanesSplit","samePanesIntent","assertUniqueStableUiIds","PANES_RESIZE_SNAP_DISTANCE","PANES_RESIZE_UNSNAP_DISTANCE","PANES_RESIZE_NEIGHBOR_GAP","intervalGap","left","right","crossEnd","crossStart","resolvePanesResizeSnap","coordinate","source","candidates","options","neighbors","filter","candidate","gap","activeCoordinate","active","undefined","find","Math","abs","snappedTo","previous","previousCoordinate","winner","winnerDistance","Number","POSITIVE_INFINITY","distanceToRange","min","max","distanceToCoordinate","indexPanesDropTargets","targets","mutable","Map","target","indexed","get","targetItemId","tabs","body","set","kind","beforeItemId","push","iconClass","icon","value","trim","startsWith","collectLayoutItemIds","node","ids","type","items","first","second","nearestDroppable","entries","reduce","entry","distance","pointerHitsPanesDropTarget","pointer","hitElement","element","contains","side","meta","containsPointer","x","rect","y","top","width","corner","height","panesCollisionDetector","context","mode","document","droppables","ownerDocument","elementFromPoint","id","createItemMap","map","item","requireItem","Error","Panes","props","messages","instanceId","layout","root","canMove","movable","canResize","resizable","split","draggedItemId","setDraggedItemId","dragMode","setDragMode","dropTargets","itemId","dropTargetIndex","paneDnd","create","collisionDetector","buildIntent","over","intent","isSameIntent","onDragStart","announcements","dragStart","label","dragOver","drop","cancel","onDrop","current","next","onLayoutChange","queueMicrotask","getElementById","focus","onCancel","activate","requestAdd","onAddItem","_el$","_$getNextElement","_tmpl$","_$insert","_$createComponent","when","fallback","_el$2","_tmpl$3","children","_el$3","_tmpl$2","_el$4","firstChild","_el$5","nextSibling","$$click","addPane","_$effect","_$setAttribute","_$runHydrationEvents","PanesNodeRenderer","path","itemById","addItem","canAdd","onActivate","_p$","_v$","class","_v$2","ariaLabel","paneWorkspace","e","_$className","t","group","PanesSplitRenderer","_$mergeProps","PanesGroupRenderer","container","separatorElement","stopResize","finishResize","stopActiveResize","finishActiveResize","commitRatio","ratio","resizeGeometry","separator","direction","containerRect","getBoundingClientRect","separatorRect","extent","separatorExtent","availableExtent","geometry","bottom","panes","closest","Array","from","querySelectorAll","origin","coordinateForRatio","ratioForCoordinate","startResize","event","preventDefault","pointerId","captureTarget","currentTarget","start","clientX","clientY","startRatio","startCoordinate","frame","pendingRatio","flush","cancelAnimationFrame","onMove","move","snapped","requestAnimationFrame","onEnd","end","window","removeEventListener","hasPointerCapture","releasePointerCapture","setPointerCapture","addEventListener","onResizeKeyDown","step","shiftKey","key","_el$6","_tmpl$4","_el$7","_el$8","_el$9","_ref$","_$use","$$keydown","$$pointerdown","_ref$2","_v$3","_v$4","_v$5","_v$6","round","_v$7","_v$8","_v$9","_v$0","_v$1","_v$10","resizePanes","_v$11","_$setStyleProperty","a","o","i","n","s","h","r","d","l","ActivePane","render","tabsElement","scrollbarDragOffset","stopTabPress","suppressedPointerClick","clearSuppressedPointerClick","dndInstanceId","draggableId","itemIds","groupTargets","index","targetBefore","targetAtEnd","bodyTargets","startTabPress","button","isPrimary","ownerWindow","stop","onPointerUp","onPointerCancel","up","releasedInside","shouldActivate","isDragging","clearTimeout","setTimeout","scrollbar","setScrollbar","overflow","syncScrollbar","clientWidth","scrollLeft","scrollWidth","scrollFromPointer","track","available","thumbLeft","startScrollbarDrag","observer","ResizeObserver","observe","disconnect","length","tabId","panelId","focusTab","onTabKeyDown","activeId","onClose","count","targetLabel","targetItem","addToNamed","name","title","before","insertBeforeNamed","insertAtEnd","addPaneSide","_el$0","_tmpl$8","_el$1","_el$11","_el$12","_co$","_$getNextMarker","_el$13","_el$14","_co$2","_el$15","_el$16","_co$3","_el$22","_el$23","_co$4","_el$19","_el$20","_el$24","_el$25","_co$5","_ref$3","each","_el$26","_tmpl$0","_el$32","_el$33","_co$6","_el$27","_el$28","_el$29","_el$30","_el$34","_el$35","_co$7","surface","draggable","disabled","focusable","keyboard","handleSelector","PanesDropTargetView","placement","detail","_el$31","_tmpl$9","stopPropagation","_v$19","closeNamed","_v$20","_v$21","_v$22","_v$23","_v$24","_v$25","_v$26","_v$27","_v$28","_v$29","_v$30","_v$31","_v$32","_v$33","_v$34","u","c","w","_el$10","_tmpl$5","_v$12","_v$13","_el$17","_tmpl$6","_el$18","$$pointerup","$$pointermove","_v$14","_v$15","keyed","_el$21","_tmpl$7","_v$16","paneTabs","_v$17","_v$18","_el$36","_tmpl$10","_el$38","_el$39","_co$8","_el$40","_el$41","_co$9","droppable","_el$42","_tmpl$11","_el$37","_tmpl$1","_v$35","_v$36","_v$37","_v$38","overId","_v$39","_$delegateEvents"],"sources":["layout/Panes.tsx"],"sourcesContent":["import { type DndCollisionContext, type DndController, type DndDroppableSnapshot, dnd } from \"@k2b/stdlib/solid\";\nimport { createEffect, createMemo, createSignal, createUniqueId, For, type JSX, onCleanup, onMount, Show } from \"solid-js\";\nimport { useUiMessages } from \"../intl/messages\";\nimport {\n activatePanesItem,\n applyPanesIntent,\n getPanesDropTargets,\n PANES_MAX_ID_LENGTH,\n PANES_MIN_RATIO,\n type PanesDropTarget,\n type PanesGroup,\n type PanesIntent,\n type PanesLayout,\n type PanesNode,\n type PanesPath,\n type PanesSplit,\n parsePanesLayout,\n resizePanesSplit,\n samePanesIntent,\n} from \"./panes-layout\";\nimport { assertUniqueStableUiIds } from \"./stable-id\";\n\nexport type PanesItem = {\n id: string;\n title: string;\n icon?: string;\n render: () => JSX.Element;\n onClose?: () => void;\n};\n\nexport type PanesProps = {\n layout: PanesLayout;\n onLayoutChange: (layout: PanesLayout) => void;\n items: readonly PanesItem[];\n movable?: boolean;\n resizable?: boolean;\n split?: false | \"horizontal\" | \"vertical\" | \"both\";\n onAddItem?: (targetItemId: string | null) => void;\n ariaLabel?: string;\n class?: string;\n};\n\ntype DragMeta = { itemId: string; label: string };\ntype DropMeta = { target: PanesDropTarget; label: string };\ntype PaneDnd = DndController<DragMeta, DropMeta, PanesIntent>;\n\ntype IndexedPanesDropTargets = {\n tabs: ReadonlyMap<string | null, PanesDropTarget>;\n body: readonly PanesDropTarget[];\n};\n\ntype PanesSeparatorGeometry = {\n coordinate: number;\n crossStart: number;\n crossEnd: number;\n};\n\nconst PANES_RESIZE_SNAP_DISTANCE = 8;\nconst PANES_RESIZE_UNSNAP_DISTANCE = 12;\nconst PANES_RESIZE_NEIGHBOR_GAP = 16;\n\nconst intervalGap = (left: PanesSeparatorGeometry, right: PanesSeparatorGeometry): number =>\n left.crossEnd < right.crossStart\n ? right.crossStart - left.crossEnd\n : right.crossEnd < left.crossStart\n ? left.crossStart - right.crossEnd\n : 0;\n\nexport const resolvePanesResizeSnap = (\n coordinate: number,\n source: PanesSeparatorGeometry,\n candidates: readonly PanesSeparatorGeometry[],\n options: { activeCoordinate?: number | null; previousCoordinate?: number } = {},\n): { coordinate: number; snappedTo: number | null } => {\n const neighbors = candidates.filter((candidate) => {\n const gap = intervalGap(source, candidate);\n return gap > 0 && gap <= PANES_RESIZE_NEIGHBOR_GAP;\n });\n const activeCoordinate = options.activeCoordinate;\n const active =\n activeCoordinate === null || activeCoordinate === undefined\n ? null\n : neighbors.find((candidate) => Math.abs(candidate.coordinate - activeCoordinate) < 0.5);\n if (active && Math.abs(coordinate - active.coordinate) <= PANES_RESIZE_UNSNAP_DISTANCE) {\n return { coordinate: active.coordinate, snappedTo: active.coordinate };\n }\n\n const previous = options.previousCoordinate;\n let winner: PanesSeparatorGeometry | null = null;\n let winnerDistance = Number.POSITIVE_INFINITY;\n for (const candidate of neighbors) {\n if (previous !== undefined && Math.abs(candidate.coordinate - previous) < 0.5) continue;\n const distanceToRange =\n previous === undefined ||\n candidate.coordinate < Math.min(previous, coordinate) ||\n candidate.coordinate > Math.max(previous, coordinate)\n ? Math.abs(candidate.coordinate - coordinate)\n : 0;\n const distanceToCoordinate = Math.abs(candidate.coordinate - coordinate);\n if (distanceToRange <= PANES_RESIZE_SNAP_DISTANCE && distanceToCoordinate < winnerDistance) {\n winner = candidate;\n winnerDistance = distanceToCoordinate;\n }\n }\n return winner ? { coordinate: winner.coordinate, snappedTo: winner.coordinate } : { coordinate, snappedTo: null };\n};\n\nexport const indexPanesDropTargets = (targets: readonly PanesDropTarget[]): ReadonlyMap<string, IndexedPanesDropTargets> => {\n const mutable = new Map<string, { tabs: Map<string | null, PanesDropTarget>; body: PanesDropTarget[] }>();\n for (const target of targets) {\n let indexed = mutable.get(target.targetItemId);\n if (!indexed) {\n indexed = { tabs: new Map(), body: [] };\n mutable.set(target.targetItemId, indexed);\n }\n if (target.kind === \"tab\") indexed.tabs.set(target.beforeItemId ?? null, target);\n else indexed.body.push(target);\n }\n return mutable;\n};\n\nconst iconClass = (icon: string | undefined): string => {\n const value = icon?.trim() || \"ti-layout-sidebar-right\";\n return value.startsWith(\"ti \") ? value : `ti ${value}`;\n};\n\nconst collectLayoutItemIds = (node: PanesNode | null, ids: string[] = []): string[] => {\n if (!node) return ids;\n if (node.type === \"group\") ids.push(...node.items);\n else {\n collectLayoutItemIds(node.first, ids);\n collectLayoutItemIds(node.second, ids);\n }\n return ids;\n};\n\nconst nearestDroppable = (entries: DndDroppableSnapshot<DropMeta>[]): DndDroppableSnapshot<DropMeta> | null =>\n entries.reduce<DndDroppableSnapshot<DropMeta> | null>(\n (winner, entry) => (!winner || entry.distance < winner.distance ? entry : winner),\n null,\n );\n\nexport const pointerHitsPanesDropTarget = (\n entry: Pick<DndDroppableSnapshot<DropMeta>, \"containsPointer\" | \"meta\" | \"rect\"> &\n Partial<Pick<DndDroppableSnapshot<DropMeta>, \"element\">>,\n pointer: { x: number; y: number },\n hitElement?: Element | null,\n): boolean => {\n if (hitElement !== undefined && !entry.element?.contains(hitElement)) return false;\n const side = entry.meta.target.side;\n if (entry.meta.target.kind !== \"split\" || !side) return entry.containsPointer;\n if (!entry.containsPointer) return false;\n const x = pointer.x - entry.rect.left;\n const y = pointer.y - entry.rect.top;\n if (side === \"top\") return x >= y && x <= entry.rect.width - y;\n if (side === \"bottom\") {\n const corner = entry.rect.height - y;\n return x >= corner && x <= entry.rect.width - corner;\n }\n if (side === \"left\") return y >= x && y <= entry.rect.height - x;\n const corner = entry.rect.width - x;\n return y >= corner && y <= entry.rect.height - corner;\n};\n\nconst panesCollisionDetector = (\n context: DndCollisionContext<DragMeta, DropMeta, PanesIntent>,\n mode: \"pointer\" | \"keyboard\" | null,\n): string | null => {\n const document = mode === \"pointer\" ? context.droppables[0]?.element.ownerDocument : undefined;\n const hitElement = document?.elementFromPoint(context.pointer.x, context.pointer.y) ?? undefined;\n return nearestDroppable(context.droppables.filter((entry) => pointerHitsPanesDropTarget(entry, context.pointer, hitElement)))?.id ?? null;\n};\n\nconst createItemMap = (items: readonly PanesItem[]): Map<string, PanesItem> => {\n assertUniqueStableUiIds(\n items.map((item) => item.id),\n \"Panes item id\",\n PANES_MAX_ID_LENGTH,\n );\n return new Map(items.map((item) => [item.id, item]));\n};\n\nconst requireItem = (items: Map<string, PanesItem>, id: string): PanesItem => {\n const item = items.get(id);\n if (!item) throw new Error(`Panes layout references missing item \"${id}\".`);\n return item;\n};\n\nexport default function Panes(props: PanesProps): JSX.Element {\n const messages = useUiMessages();\n const instanceId = `k2b-panes-${createUniqueId()}`;\n const items = createMemo(() => createItemMap(props.items));\n const layout = createMemo(() => {\n if (!parsePanesLayout(props.layout)) throw new Error(\"Panes layout must be a valid version 2 layout.\");\n for (const id of collectLayoutItemIds(props.layout.root)) requireItem(items(), id);\n return props.layout;\n });\n const canMove = () => props.movable ?? true;\n const canResize = () => props.resizable ?? true;\n const split = () => props.split ?? \"both\";\n const [draggedItemId, setDraggedItemId] = createSignal<string | null>(null);\n const [dragMode, setDragMode] = createSignal<\"pointer\" | \"keyboard\" | null>(null);\n const dropTargets = createMemo(() => {\n const itemId = draggedItemId();\n return itemId ? getPanesDropTargets(layout(), itemId, { movable: canMove(), split: split() }) : [];\n });\n const dropTargetIndex = createMemo(() => indexPanesDropTargets(dropTargets()));\n const paneDnd = dnd.create<DragMeta, DropMeta, PanesIntent>({\n collisionDetector: (context) => panesCollisionDetector(context, dragMode()),\n buildIntent: ({ over }) => over?.meta.target.intent ?? null,\n isSameIntent: samePanesIntent,\n onDragStart: ({ active, mode }) => {\n setDragMode(mode);\n setDraggedItemId(active.meta.itemId);\n },\n announcements: {\n dragStart: (active) => `Picked up ${active.meta.label}.`,\n dragOver: (active, over) => (over ? `Move ${active.meta.label} to ${over.meta.label}.` : `${active.meta.label} is not over a pane.`),\n drop: (active, over) => (over ? `Moved ${active.meta.label} to ${over.meta.label}.` : `Did not move ${active.meta.label}.`),\n cancel: (active) => `Cancelled moving ${active.meta.label}.`,\n },\n onDrop: ({ intent, mode }) => {\n setDragMode(null);\n setDraggedItemId(null);\n if (!intent) return;\n const current = layout();\n const next = applyPanesIntent(current, intent);\n if (next === current) return;\n props.onLayoutChange(next);\n if (mode === \"keyboard\") queueMicrotask(() => document.getElementById(`${instanceId}-${intent.itemId}-tab`)?.focus());\n },\n onCancel: () => {\n setDragMode(null);\n setDraggedItemId(null);\n },\n });\n const activate = (itemId: string) => {\n const current = layout();\n const next = activatePanesItem(current, itemId);\n if (next !== current) props.onLayoutChange(next);\n };\n const requestAdd = (targetItemId: string | null) => props.onAddItem?.(targetItemId);\n\n return (\n <div class={`k2b-panes ${props.class ?? \"\"}`} data-k2b-panes role=\"group\" aria-label={props.ariaLabel ?? messages().paneWorkspace}>\n <Show\n when={layout().root}\n fallback={\n <div class=\"k2b-panes__empty\">\n <Show when={props.onAddItem !== undefined}>\n <button type=\"button\" class=\"k2b-panes__add\" onClick={() => requestAdd(null)} aria-label={messages().addPane}>\n <i class=\"ti ti-plus\" aria-hidden=\"true\" />\n <span>{messages().addPane}</span>\n </button>\n </Show>\n </div>\n }\n >\n {(root) => (\n <PanesNodeRenderer\n node={root}\n path={[]}\n layout={layout}\n itemById={items}\n dnd={paneDnd}\n dropTargetIndex={dropTargetIndex}\n instanceId={instanceId}\n canMove={canMove}\n canResize={canResize}\n addItem={requestAdd}\n canAdd={() => props.onAddItem !== undefined}\n onActivate={activate}\n onLayoutChange={props.onLayoutChange}\n />\n )}\n </Show>\n </div>\n );\n}\n\ntype RendererProps = {\n node: () => PanesNode;\n path: PanesPath;\n layout: () => PanesLayout;\n itemById: () => Map<string, PanesItem>;\n dnd: PaneDnd;\n dropTargetIndex: () => ReadonlyMap<string, IndexedPanesDropTargets>;\n instanceId: string;\n canMove: () => boolean;\n canResize: () => boolean;\n addItem: (targetItemId: string | null) => void;\n canAdd: () => boolean;\n onActivate: (itemId: string) => void;\n onLayoutChange: (layout: PanesLayout) => void;\n};\n\nfunction PanesNodeRenderer(props: RendererProps): JSX.Element {\n const split = createMemo(() => {\n const node = props.node();\n return node.type === \"split\" ? node : null;\n });\n const group = createMemo(() => {\n const node = props.node();\n return node.type === \"group\" ? node : null;\n });\n return (\n <>\n <Show when={split()}>{(node) => <PanesSplitRenderer {...props} node={node} />}</Show>\n <Show when={group()}>{(node) => <PanesGroupRenderer {...props} node={node} />}</Show>\n </>\n );\n}\n\nfunction PanesSplitRenderer(props: Omit<RendererProps, \"node\"> & { node: () => PanesSplit }): JSX.Element {\n const messages = useUiMessages();\n let container: HTMLDivElement | undefined;\n let separatorElement: HTMLButtonElement | undefined;\n let stopResize: (() => void) | undefined;\n let finishResize: (() => void) | undefined;\n const stopActiveResize = () => {\n stopResize?.();\n stopResize = undefined;\n finishResize = undefined;\n };\n const finishActiveResize = () => {\n finishResize?.();\n stopResize = undefined;\n finishResize = undefined;\n };\n onCleanup(stopActiveResize);\n const commitRatio = (ratio: number) => {\n const current = props.layout();\n const next = resizePanesSplit(current, props.path, ratio);\n if (next !== current) props.onLayoutChange(next);\n };\n const resizeGeometry = (separator: HTMLElement | undefined) => {\n if (!separator) return null;\n const direction = props.node().direction;\n const containerRect = container?.getBoundingClientRect();\n const separatorRect = separator.getBoundingClientRect();\n const extent = direction === \"horizontal\" ? (containerRect?.width ?? 0) : (containerRect?.height ?? 0);\n const separatorExtent = direction === \"horizontal\" ? separatorRect.width : separatorRect.height;\n const availableExtent = extent - separatorExtent;\n if (!containerRect || availableExtent <= 0 || separatorRect.width <= 0 || separatorRect.height <= 0) return null;\n const geometry = (rect: DOMRect): PanesSeparatorGeometry =>\n direction === \"horizontal\"\n ? { coordinate: rect.left + rect.width / 2, crossStart: rect.top, crossEnd: rect.bottom }\n : { coordinate: rect.top + rect.height / 2, crossStart: rect.left, crossEnd: rect.right };\n const panes = separator.closest<HTMLElement>(\"[data-k2b-panes]\");\n const candidates = panes\n ? Array.from(panes.querySelectorAll<HTMLElement>(`.k2b-panes__separator[data-direction=\"${direction}\"]`))\n .filter((candidate) => candidate !== separator && candidate.closest(\"[data-k2b-panes]\") === panes)\n .map((candidate) => candidate.getBoundingClientRect())\n .filter((rect) => rect.width > 0 && rect.height > 0)\n .map(geometry)\n : [];\n const origin = direction === \"horizontal\" ? containerRect.left + separatorExtent / 2 : containerRect.top + separatorExtent / 2;\n return {\n source: geometry(separatorRect),\n candidates,\n coordinateForRatio: (ratio: number) => origin + availableExtent * ratio,\n ratioForCoordinate: (coordinate: number) => (coordinate - origin) / availableExtent,\n };\n };\n const startResize = (event: PointerEvent) => {\n if (!props.canResize()) return;\n event.preventDefault();\n stopActiveResize();\n const pointerId = event.pointerId;\n const captureTarget = (event.currentTarget as HTMLElement | null) ?? separatorElement;\n if (!captureTarget) return;\n const start = props.node().direction === \"horizontal\" ? event.clientX : event.clientY;\n const geometry = resizeGeometry(captureTarget);\n const startRatio = props.node().ratio;\n const startCoordinate = geometry?.source.coordinate;\n const rect = container?.getBoundingClientRect();\n const extent = Math.max(1, props.node().direction === \"horizontal\" ? (rect?.width ?? 1) : (rect?.height ?? 1));\n let snappedTo: number | null = null;\n let frame: number | undefined;\n let pendingRatio: number | undefined;\n const flush = () => {\n if (frame !== undefined) cancelAnimationFrame(frame);\n frame = undefined;\n if (pendingRatio === undefined) return;\n const ratio = pendingRatio;\n pendingRatio = undefined;\n commitRatio(ratio);\n };\n const onMove = (move: PointerEvent) => {\n if (move.pointerId !== pointerId) return;\n const current = props.node().direction === \"horizontal\" ? move.clientX : move.clientY;\n if (geometry && startCoordinate !== undefined) {\n const snapped = resolvePanesResizeSnap(startCoordinate + current - start, geometry.source, geometry.candidates, {\n activeCoordinate: snappedTo,\n });\n snappedTo = snapped.snappedTo;\n pendingRatio = geometry.ratioForCoordinate(snapped.coordinate);\n } else {\n pendingRatio = startRatio + (current - start) / extent;\n }\n if (frame === undefined) frame = requestAnimationFrame(flush);\n };\n const onEnd = (end: PointerEvent) => {\n if (end.pointerId === pointerId) finishActiveResize();\n };\n stopResize = () => {\n if (frame !== undefined) cancelAnimationFrame(frame);\n frame = undefined;\n pendingRatio = undefined;\n window.removeEventListener(\"pointermove\", onMove);\n window.removeEventListener(\"pointerup\", onEnd);\n window.removeEventListener(\"pointercancel\", onEnd);\n window.removeEventListener(\"blur\", finishActiveResize);\n if (captureTarget.hasPointerCapture?.(pointerId)) captureTarget.releasePointerCapture(pointerId);\n };\n finishResize = () => {\n flush();\n stopResize?.();\n };\n captureTarget.setPointerCapture?.(pointerId);\n window.addEventListener(\"pointermove\", onMove);\n window.addEventListener(\"pointerup\", onEnd);\n window.addEventListener(\"pointercancel\", onEnd);\n window.addEventListener(\"blur\", finishActiveResize);\n };\n const onResizeKeyDown = (event: KeyboardEvent) => {\n if (!props.canResize()) return;\n const step = event.shiftKey ? 0.08 : 0.02;\n let ratio: number | null = null;\n if (event.key === \"Home\") ratio = PANES_MIN_RATIO;\n if (event.key === \"End\") ratio = 1 - PANES_MIN_RATIO;\n if (props.node().direction === \"horizontal\" && event.key === \"ArrowLeft\") ratio = props.node().ratio - step;\n if (props.node().direction === \"horizontal\" && event.key === \"ArrowRight\") ratio = props.node().ratio + step;\n if (props.node().direction === \"vertical\" && event.key === \"ArrowUp\") ratio = props.node().ratio - step;\n if (props.node().direction === \"vertical\" && event.key === \"ArrowDown\") ratio = props.node().ratio + step;\n if (ratio === null) return;\n event.preventDefault();\n const geometry = resizeGeometry((event.currentTarget as HTMLElement | null) ?? separatorElement);\n if (geometry) {\n const snapped = resolvePanesResizeSnap(geometry.coordinateForRatio(ratio), geometry.source, geometry.candidates, {\n previousCoordinate: geometry.source.coordinate,\n });\n ratio = geometry.ratioForCoordinate(snapped.coordinate);\n }\n commitRatio(ratio);\n };\n return (\n <div ref={container} class=\"k2b-panes__split\" data-direction={props.node().direction}>\n <div class=\"k2b-panes__split-child\" style={{ flex: `${props.node().ratio} 1 0` }}>\n <PanesNodeRenderer {...props} node={() => props.node().first} path={[...props.path, \"first\"]} />\n </div>\n <button\n ref={separatorElement}\n type=\"button\"\n role=\"separator\"\n aria-orientation={props.node().direction === \"horizontal\" ? \"vertical\" : \"horizontal\"}\n aria-valuemin={Math.round(PANES_MIN_RATIO * 100)}\n aria-valuemax={Math.round((1 - PANES_MIN_RATIO) * 100)}\n aria-valuenow={Math.round(props.node().ratio * 100)}\n aria-disabled={!props.canResize()}\n tabIndex={props.canResize() ? 0 : -1}\n class=\"k2b-panes__separator\"\n data-direction={props.node().direction}\n aria-label={messages().resizePanes}\n onPointerDown={startResize}\n onKeyDown={onResizeKeyDown}\n >\n <span aria-hidden=\"true\" />\n </button>\n <div class=\"k2b-panes__split-child\" style={{ flex: `${1 - props.node().ratio} 1 0` }}>\n <PanesNodeRenderer {...props} node={() => props.node().second} path={[...props.path, \"second\"]} />\n </div>\n </div>\n );\n}\n\nfunction ActivePane(props: { itemId: string; itemById: () => Map<string, PanesItem> }): JSX.Element {\n return requireItem(props.itemById(), props.itemId).render();\n}\n\nfunction PanesGroupRenderer(props: Omit<RendererProps, \"node\"> & { node: () => PanesGroup }): JSX.Element {\n const messages = useUiMessages();\n let tabsElement: HTMLDivElement | undefined;\n let scrollbarDragOffset = 0;\n let stopTabPress: (() => void) | undefined;\n let suppressedPointerClick: string | null = null;\n let clearSuppressedPointerClick: number | undefined;\n const dndInstanceId = createUniqueId();\n const draggableId = (id: string) => `panes-item:${dndInstanceId}:${id}`;\n const itemIds = createMemo(() => props.node().items);\n const groupTargets = createMemo<IndexedPanesDropTargets | null>(() => {\n const index = props.dropTargetIndex();\n for (const itemId of itemIds()) {\n const indexed = index.get(itemId);\n if (indexed) return indexed;\n }\n return null;\n });\n const targetBefore = (itemId: string) => groupTargets()?.tabs.get(itemId);\n const targetAtEnd = () => groupTargets()?.tabs.get(null);\n const bodyTargets = () => groupTargets()?.body ?? [];\n const startTabPress = (event: PointerEvent & { currentTarget: HTMLButtonElement }, itemId: string) => {\n if (event.button !== 0 || event.isPrimary === false) return;\n stopTabPress?.();\n const pointerId = event.pointerId;\n const button = event.currentTarget;\n const ownerWindow = window;\n const stop = () => {\n ownerWindow.removeEventListener(\"pointerup\", onPointerUp, true);\n ownerWindow.removeEventListener(\"pointercancel\", onPointerCancel, true);\n if (stopTabPress === stop) stopTabPress = undefined;\n };\n const onPointerUp = (up: PointerEvent) => {\n if (up.pointerId !== pointerId) return;\n const rect = button.getBoundingClientRect();\n const releasedInside = up.clientX >= rect.left && up.clientX <= rect.right && up.clientY >= rect.top && up.clientY <= rect.bottom;\n const shouldActivate = releasedInside && !props.dnd.isDragging();\n stop();\n if (!shouldActivate) return;\n suppressedPointerClick = itemId;\n if (clearSuppressedPointerClick !== undefined) ownerWindow.clearTimeout(clearSuppressedPointerClick);\n clearSuppressedPointerClick = ownerWindow.setTimeout(() => {\n if (suppressedPointerClick === itemId) suppressedPointerClick = null;\n clearSuppressedPointerClick = undefined;\n }, 0);\n props.onActivate(itemId);\n };\n const onPointerCancel = (cancel: PointerEvent) => {\n if (cancel.pointerId === pointerId) stop();\n };\n stopTabPress = stop;\n ownerWindow.addEventListener(\"pointerup\", onPointerUp, true);\n ownerWindow.addEventListener(\"pointercancel\", onPointerCancel, true);\n };\n onCleanup(() => {\n stopTabPress?.();\n if (clearSuppressedPointerClick !== undefined) window.clearTimeout(clearSuppressedPointerClick);\n });\n const [scrollbar, setScrollbar] = createSignal({ overflow: false, left: 0, width: 0 });\n const syncScrollbar = () => {\n if (!tabsElement) return;\n const { clientWidth, scrollLeft, scrollWidth } = tabsElement;\n if (scrollWidth <= clientWidth || clientWidth <= 0) {\n setScrollbar({ overflow: false, left: 0, width: 0 });\n return;\n }\n const width = Math.min(clientWidth, Math.max(24, (clientWidth * clientWidth) / scrollWidth));\n const left = (scrollLeft / (scrollWidth - clientWidth)) * (clientWidth - width);\n setScrollbar({ overflow: true, left, width });\n };\n const scrollFromPointer = (event: PointerEvent & { currentTarget: HTMLDivElement }) => {\n if (!tabsElement) return;\n const track = event.currentTarget;\n const { left, width } = scrollbar();\n const rect = track.getBoundingClientRect();\n const available = Math.max(1, rect.width - width);\n const thumbLeft = Math.min(available, Math.max(0, event.clientX - rect.left - scrollbarDragOffset));\n tabsElement.scrollLeft = (thumbLeft / available) * (tabsElement.scrollWidth - tabsElement.clientWidth);\n syncScrollbar();\n };\n const startScrollbarDrag = (event: PointerEvent & { currentTarget: HTMLDivElement }) => {\n event.preventDefault();\n const track = event.currentTarget;\n const current = scrollbar();\n scrollbarDragOffset =\n event.target === track\n ? current.width / 2\n : Math.min(current.width, Math.max(0, event.clientX - track.getBoundingClientRect().left - current.left));\n track.setPointerCapture(event.pointerId);\n scrollFromPointer(event);\n };\n onMount(() => {\n syncScrollbar();\n const observer = typeof ResizeObserver === \"undefined\" ? null : new ResizeObserver(syncScrollbar);\n if (tabsElement) observer?.observe(tabsElement);\n onCleanup(() => observer?.disconnect());\n });\n createEffect(() => {\n itemIds().length;\n props.itemById();\n groupTargets();\n props.canAdd();\n queueMicrotask(syncScrollbar);\n });\n const tabId = (itemId: string) => `${props.instanceId}-${itemId}-tab`;\n const panelId = (itemId: string) => `${props.instanceId}-${itemId}-panel`;\n const focusTab = (index: number) => {\n const itemId = itemIds()[index];\n if (!itemId) return;\n props.onActivate(itemId);\n queueMicrotask(() => document.getElementById(tabId(itemId))?.focus());\n };\n const onTabKeyDown = (event: KeyboardEvent, index: number, itemId: string) => {\n if (props.dnd.activeId() === draggableId(itemId)) return;\n const item = requireItem(props.itemById(), itemId);\n if ((event.key === \"Delete\" || event.key === \"Backspace\") && item.onClose) {\n event.preventDefault();\n item.onClose();\n return;\n }\n const count = itemIds().length;\n let next: number | null = null;\n if (event.key === \"ArrowLeft\") next = (index - 1 + count) % count;\n if (event.key === \"ArrowRight\") next = (index + 1) % count;\n if (event.key === \"Home\") next = 0;\n if (event.key === \"End\") next = count - 1;\n if (next === null) return;\n event.preventDefault();\n focusTab(next);\n };\n const targetLabel = (target: PanesDropTarget): string => {\n const targetItem = requireItem(props.itemById(), target.targetItemId);\n if (target.kind === \"group\") return messages().addToNamed({ name: targetItem.title });\n if (target.kind === \"tab\") {\n const before = target.beforeItemId ? requireItem(props.itemById(), target.beforeItemId) : null;\n return before ? messages().insertBeforeNamed({ name: before.title }) : messages().insertAtEnd;\n }\n return target.side\n ? messages().addPaneSide({ side: target.side, name: targetItem.title })\n : messages().addToNamed({ name: targetItem.title });\n };\n return (\n <section class=\"k2b-panes__group\">\n <div\n ref={tabsElement}\n class=\"k2b-panes__tabs\"\n role=\"tablist\"\n aria-label={messages().paneTabs}\n aria-orientation=\"horizontal\"\n onScroll={syncScrollbar}\n >\n <For each={itemIds()}>\n {(itemId, index) => {\n const item = () => requireItem(props.itemById(), itemId);\n const active = () => props.node().active === itemId;\n return (\n <div\n ref={(surface) =>\n props.dnd.draggable(surface, () => ({\n id: draggableId(itemId),\n meta: { itemId, label: item().title },\n disabled: !props.canMove(),\n focusable: false,\n keyboard: true,\n handleSelector: \".k2b-panes__tab-button\",\n }))\n }\n class=\"k2b-panes__tab\"\n data-active={active() ? \"true\" : undefined}\n data-closable={item().onClose !== undefined ? \"true\" : undefined}\n data-movable={props.canMove() ? \"true\" : undefined}\n data-dnd-active={props.dnd.activeId() === draggableId(itemId) ? \"true\" : undefined}\n >\n <Show when={targetBefore(itemId)}>\n {(target) => <PanesDropTargetView target={target()} label={targetLabel(target())} dnd={props.dnd} placement=\"tab\" />}\n </Show>\n <button\n id={tabId(itemId)}\n type=\"button\"\n class=\"k2b-panes__tab-button\"\n role=\"tab\"\n aria-label={item().title}\n aria-selected={active()}\n aria-controls={active() ? panelId(itemId) : undefined}\n aria-posinset={index() + 1}\n aria-setsize={itemIds().length}\n aria-keyshortcuts={item().onClose ? \"Delete Backspace\" : undefined}\n tabIndex={active() ? 0 : -1}\n title={item().title}\n onPointerDown={(event) => startTabPress(event, itemId)}\n onClick={(event) => {\n if (event?.detail > 0 && suppressedPointerClick === itemId) {\n suppressedPointerClick = null;\n if (clearSuppressedPointerClick !== undefined) {\n window.clearTimeout(clearSuppressedPointerClick);\n clearSuppressedPointerClick = undefined;\n }\n return;\n }\n props.onActivate(itemId);\n }}\n onKeyDown={(event) => onTabKeyDown(event, index(), itemId)}\n >\n <span class=\"k2b-ui k2b-panes__drag-surface k2b-panes__drag-preview\" data-dnd-preview>\n <i class={`${iconClass(item().icon)} k2b-panes__icon`} aria-hidden=\"true\" />\n <span>{item().title}</span>\n </span>\n </button>\n <Show when={item().onClose !== undefined}>\n <button\n type=\"button\"\n class=\"k2b-panes__close\"\n title={messages().closeNamed({ name: item().title })}\n aria-label={messages().closeNamed({ name: item().title })}\n onPointerDown={(event) => event.stopPropagation()}\n onClick={(event) => {\n event.stopPropagation();\n item().onClose?.();\n }}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n );\n }}\n </For>\n <Show when={targetAtEnd()}>\n {(target) => <PanesDropTargetView target={target()} label={targetLabel(target())} dnd={props.dnd} placement=\"tab-end\" />}\n </Show>\n <Show when={props.canAdd()}>\n <button\n type=\"button\"\n class=\"k2b-panes__add k2b-panes__add--tab\"\n aria-label={messages().addPane}\n title={messages().addPane}\n onClick={() => props.addItem(props.node().active)}\n >\n <i class=\"ti ti-plus\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n <Show when={scrollbar().overflow}>\n <div\n class=\"k2b-panes__tabs-scrollbar\"\n aria-hidden=\"true\"\n onPointerDown={startScrollbarDrag}\n onPointerMove={(event) => {\n if (event.currentTarget.hasPointerCapture(event.pointerId)) scrollFromPointer(event);\n }}\n onPointerUp={(event) => event.currentTarget.releasePointerCapture(event.pointerId)}\n onPointerCancel={(event) => event.currentTarget.releasePointerCapture(event.pointerId)}\n >\n <span\n style={{\n \"--k2b-panes-scroll-left\": `${scrollbar().left}px`,\n \"--k2b-panes-scroll-width\": `${scrollbar().width}px`,\n }}\n />\n </div>\n </Show>\n <div class=\"k2b-panes__body\">\n <div id={panelId(props.node().active)} class=\"k2b-panes__panel\" role=\"tabpanel\" aria-labelledby={tabId(props.node().active)}>\n <Show when={props.node().active} keyed>\n {(itemId) => <ActivePane itemId={itemId} itemById={props.itemById} />}\n </Show>\n </div>\n </div>\n <Show when={bodyTargets().length > 0}>\n <div class=\"k2b-panes__drop-targets\" aria-hidden=\"true\">\n <For each={bodyTargets()}>\n {(target) => <PanesDropTargetView target={target} label={targetLabel(target)} dnd={props.dnd} placement=\"body\" />}\n </For>\n </div>\n </Show>\n </section>\n );\n}\n\nfunction PanesDropTargetView(props: {\n target: PanesDropTarget;\n label: string;\n dnd: PaneDnd;\n placement: \"tab\" | \"tab-end\" | \"body\";\n}): JSX.Element {\n const icon = () => {\n if (props.target.kind === \"group\") return \"ti ti-plus\";\n if (props.target.kind === \"tab\") return props.placement === \"tab\" ? \"ti ti-spacing-horizontal\" : null;\n if (props.target.side === \"top\") return \"ti ti-row-insert-top\";\n if (props.target.side === \"bottom\") return \"ti ti-row-insert-bottom\";\n if (props.target.side === \"left\") return \"ti ti-column-insert-left\";\n return \"ti ti-column-insert-right\";\n };\n return (\n <div\n ref={(element) =>\n props.dnd.droppable(element, () => ({\n id: `panes-target:${props.target.id}`,\n meta: { target: props.target, label: props.label },\n }))\n }\n class=\"k2b-panes__drop-target\"\n data-kind={props.target.kind}\n data-placement={props.placement}\n data-zone={props.target.side}\n data-active={props.dnd.overId() === `panes-target:${props.target.id}` ? \"true\" : undefined}\n title={props.label}\n aria-hidden=\"true\"\n >\n <Show when={icon()} keyed>\n {(iconClass) => <i class={iconClass} aria-hidden=\"true\" />}\n </Show>\n <Show when={props.target.kind === \"split\"}>\n <span>{props.label}</span>\n </Show>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ import { template as _$template } from "solid-js/web";
2
+ import { getNextElement as _$getNextElement } from "solid-js/web";
3
+ import { runHydrationEvents as _$runHydrationEvents } from "solid-js/web";
4
+ import { insert as _$insert } from "solid-js/web";
5
+ import { spread as _$spread } from "solid-js/web";
6
+ import { mergeProps as _$mergeProps } from "solid-js/web";
7
+ import { memo as _$memo } from "solid-js/web";
8
+ var _tmpl$ = /*#__PURE__*/_$template(`<div>`);
9
+ import { splitProps } from "solid-js";
10
+ export function ScrollArea(props) {
11
+ const [local, elementProps] = splitProps(props, ["children", "scrollPreserveKey", "class"]);
12
+ const className = () => local.class?.trim();
13
+ return (() => {
14
+ var _el$ = _$getNextElement(_tmpl$);
15
+ _$spread(_el$, _$mergeProps(elementProps, {
16
+ get ["class"]() {
17
+ return _$memo(() => !!className())() ? `k2b-scroll-area ${className()}` : "k2b-scroll-area";
18
+ },
19
+ get ["data-scroll-preserve"]() {
20
+ return local.scrollPreserveKey || undefined;
21
+ }
22
+ }), false, true);
23
+ _$insert(_el$, () => local.children);
24
+ _$runHydrationEvents();
25
+ return _el$;
26
+ })();
27
+ }
28
+ export default ScrollArea;
29
+ //# sourceMappingURL=ScrollArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["splitProps","ScrollArea","props","local","elementProps","className","class","trim","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$memo","data-scroll-preserve","scrollPreserveKey","undefined","_$insert","children","_$runHydrationEvents"],"sources":["layout/ScrollArea.tsx"],"sourcesContent":["import { type JSX, splitProps } from \"solid-js\";\n\nexport type ScrollAreaProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, \"children\" | \"class\"> & {\n children: JSX.Element;\n scrollPreserveKey?: string | false;\n class?: string;\n};\n\nexport function ScrollArea(props: ScrollAreaProps): JSX.Element {\n const [local, elementProps] = splitProps(props, [\"children\", \"scrollPreserveKey\", \"class\"]);\n const className = () => local.class?.trim();\n\n return (\n <div\n {...elementProps}\n class={className() ? `k2b-scroll-area ${className()}` : \"k2b-scroll-area\"}\n data-scroll-preserve={local.scrollPreserveKey || undefined}\n >\n {local.children}\n </div>\n );\n}\n\nexport default ScrollArea;\n"],"mappings":";;;;;;;;AAAA,SAAmBA,UAAU,QAAQ,UAAU;AAQ/C,OAAO,SAASC,UAAUA,CAACC,KAAsB,EAAe;EAC9D,MAAM,CAACC,KAAK,EAAEC,YAAY,CAAC,GAAGJ,UAAU,CAACE,KAAK,EAAE,CAAC,UAAU,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;EAC3F,MAAMG,SAAS,GAAGA,CAAA,KAAMF,KAAK,CAACG,KAAK,EAAEC,IAAI,CAAC,CAAC;EAE3C;IAAA,IAAAC,IAAA,GAAAC,gBAAA,CAAAC,MAAA;IAAAC,QAAA,CAAAH,IAAA,EAAAI,YAAA,CAEQR,YAAY;MAAA,aAAAE,CAAA;QAAA,OACTO,MAAA,SAAAR,SAAS,CAAC,CAAC,MAAG,mBAAmBA,SAAS,CAAC,CAAC,EAAE,GAAG,iBAAiB;MAAA;MAAA,4BAAAS,CAAA;QAAA,OACnDX,KAAK,CAACY,iBAAiB,IAAIC,SAAS;MAAA;IAAA;IAAAC,QAAA,CAAAT,IAAA,QAEzDL,KAAK,CAACe,QAAQ;IAAAC,oBAAA;IAAA,OAAAX,IAAA;EAAA;AAGrB;AAEA,eAAeP,UAAU","ignoreList":[]}
@@ -0,0 +1,381 @@
1
+ import { template as _$template } from "solid-js/web";
2
+ import { mergeProps as _$mergeProps } from "solid-js/web";
3
+ import { memo as _$memo } from "solid-js/web";
4
+ import { setAttribute as _$setAttribute } from "solid-js/web";
5
+ import { style as _$style } from "solid-js/web";
6
+ import { className as _$className } from "solid-js/web";
7
+ import { effect as _$effect } from "solid-js/web";
8
+ import { getNextMarker as _$getNextMarker } from "solid-js/web";
9
+ import { getNextElement as _$getNextElement } from "solid-js/web";
10
+ import { insert as _$insert } from "solid-js/web";
11
+ import { createComponent as _$createComponent } from "solid-js/web";
12
+ var _tmpl$ = /*#__PURE__*/_$template(`<p>`),
13
+ _tmpl$2 = /*#__PURE__*/_$template(`<div class=k2b-settings-page__actions>`),
14
+ _tmpl$3 = /*#__PURE__*/_$template(`<footer class=k2b-settings-page__footer>`),
15
+ _tmpl$4 = /*#__PURE__*/_$template(`<section><header class=k2b-settings-page__header><!$><!/><div class=k2b-settings-page__heading><h1></h1><!$><!/></div><!$><!/></header><div class=k2b-settings-page__body></div><!$><!/>`),
16
+ _tmpl$5 = /*#__PURE__*/_$template(`<i aria-hidden=true>`),
17
+ _tmpl$6 = /*#__PURE__*/_$template(`<div class=k2b-settings-section__actions>`),
18
+ _tmpl$7 = /*#__PURE__*/_$template(`<section><header class=k2b-settings-section__header><!$><!/><div class=k2b-settings-section__heading><h2></h2><!$><!/></div><!$><!/></header><div class=k2b-settings-section__body>`),
19
+ _tmpl$8 = /*#__PURE__*/_$template(`<section><header class=k2b-settings-group__header><div class=k2b-settings-group__heading><h3></h3><!$><!/></div><!$><!/></header><div class=k2b-settings-group__body>`),
20
+ _tmpl$9 = /*#__PURE__*/_$template(`<div class=k2b-settings-group__action>`),
21
+ _tmpl$0 = /*#__PURE__*/_$template(`<span>`),
22
+ _tmpl$1 = /*#__PURE__*/_$template(`<div><div class=k2b-settings-field__copy><div class=k2b-settings-field__heading><strong></strong><!$><!/></div><p></p></div><!$><!/><!$><!/>`),
23
+ _tmpl$10 = /*#__PURE__*/_$template(`<p class=k2b-settings-field__error role=alert><i class="ti ti-alert-circle"aria-hidden=true></i> <!$><!/>`),
24
+ _tmpl$11 = /*#__PURE__*/_$template(`<i class="ti ti-device-floppy"aria-hidden=true>`),
25
+ _tmpl$12 = /*#__PURE__*/_$template(`<div class=k2b-settings-actions><!$><!/><!$><!/>`),
26
+ _tmpl$13 = /*#__PURE__*/_$template(`<div><p role=status aria-live=polite><strong></strong> <!$><!/></p><!$><!/>`),
27
+ _tmpl$14 = /*#__PURE__*/_$template(`<strong>`),
28
+ _tmpl$15 = /*#__PURE__*/_$template(`<p class=k2b-settings-panel-footer__status role=status aria-live=polite>`);
29
+ import { children, createMemo, createUniqueId, Show } from "solid-js";
30
+ import { Button } from "../actions/Button";
31
+ import { useUiMessages } from "../intl/messages";
32
+ const read = value => typeof value === "function" ? value() : value;
33
+ export function SettingsPage(props) {
34
+ return (() => {
35
+ var _el$ = _$getNextElement(_tmpl$4),
36
+ _el$2 = _el$.firstChild,
37
+ _el$9 = _el$2.firstChild,
38
+ [_el$0, _co$2] = _$getNextMarker(_el$9.nextSibling),
39
+ _el$3 = _el$0.nextSibling,
40
+ _el$4 = _el$3.firstChild,
41
+ _el$6 = _el$4.nextSibling,
42
+ [_el$7, _co$] = _$getNextMarker(_el$6.nextSibling),
43
+ _el$1 = _el$3.nextSibling,
44
+ [_el$10, _co$3] = _$getNextMarker(_el$1.nextSibling),
45
+ _el$11 = _el$2.nextSibling,
46
+ _el$13 = _el$11.nextSibling,
47
+ [_el$14, _co$4] = _$getNextMarker(_el$13.nextSibling);
48
+ _$insert(_el$2, _$createComponent(Show, {
49
+ get when() {
50
+ return props.icon;
51
+ },
52
+ children: icon => (() => {
53
+ var _el$15 = _$getNextElement(_tmpl$5);
54
+ _$effect(() => _$className(_el$15, icon()));
55
+ return _el$15;
56
+ })()
57
+ }), _el$0, _co$2);
58
+ _$insert(_el$4, () => props.title);
59
+ _$insert(_el$3, _$createComponent(Show, {
60
+ get when() {
61
+ return props.subtitle;
62
+ },
63
+ get children() {
64
+ var _el$5 = _$getNextElement(_tmpl$);
65
+ _$insert(_el$5, () => props.subtitle);
66
+ return _el$5;
67
+ }
68
+ }), _el$7, _co$);
69
+ _$insert(_el$2, _$createComponent(Show, {
70
+ get when() {
71
+ return props.actions;
72
+ },
73
+ get children() {
74
+ var _el$8 = _$getNextElement(_tmpl$2);
75
+ _$insert(_el$8, () => props.actions);
76
+ return _el$8;
77
+ }
78
+ }), _el$10, _co$3);
79
+ _$insert(_el$11, () => props.children);
80
+ _$insert(_el$, _$createComponent(Show, {
81
+ get when() {
82
+ return props.footer;
83
+ },
84
+ get children() {
85
+ var _el$12 = _$getNextElement(_tmpl$3);
86
+ _$insert(_el$12, () => props.footer);
87
+ return _el$12;
88
+ }
89
+ }), _el$14, _co$4);
90
+ _$effect(_p$ => {
91
+ var _v$ = `k2b-settings-page${props.class ? ` ${props.class}` : ""}`,
92
+ _v$2 = props.style,
93
+ _v$3 = props.scrollPreserveKey;
94
+ _v$ !== _p$.e && _$className(_el$, _p$.e = _v$);
95
+ _p$.t = _$style(_el$, _v$2, _p$.t);
96
+ _v$3 !== _p$.a && _$setAttribute(_el$11, "data-scroll-preserve", _p$.a = _v$3);
97
+ return _p$;
98
+ }, {
99
+ e: undefined,
100
+ t: undefined,
101
+ a: undefined
102
+ });
103
+ return _el$;
104
+ })();
105
+ }
106
+ /**
107
+ * A full-page settings group. Dialogs keep using PanelDialog.Section; this
108
+ * component owns the quieter, observability-style paper used on admin pages.
109
+ */
110
+ export function SettingsSection(props) {
111
+ const headingId = `k2b-settings-section-${createUniqueId()}`;
112
+ return (() => {
113
+ var _el$16 = _$getNextElement(_tmpl$7),
114
+ _el$17 = _el$16.firstChild,
115
+ _el$24 = _el$17.firstChild,
116
+ [_el$25, _co$6] = _$getNextMarker(_el$24.nextSibling),
117
+ _el$18 = _el$25.nextSibling,
118
+ _el$19 = _el$18.firstChild,
119
+ _el$21 = _el$19.nextSibling,
120
+ [_el$22, _co$5] = _$getNextMarker(_el$21.nextSibling),
121
+ _el$26 = _el$18.nextSibling,
122
+ [_el$27, _co$7] = _$getNextMarker(_el$26.nextSibling),
123
+ _el$28 = _el$17.nextSibling;
124
+ _$setAttribute(_el$16, "aria-labelledby", headingId);
125
+ _$insert(_el$17, _$createComponent(Show, {
126
+ get when() {
127
+ return props.icon;
128
+ },
129
+ children: icon => (() => {
130
+ var _el$29 = _$getNextElement(_tmpl$5);
131
+ _$effect(() => _$className(_el$29, icon()));
132
+ return _el$29;
133
+ })()
134
+ }), _el$25, _co$6);
135
+ _$setAttribute(_el$19, "id", headingId);
136
+ _$insert(_el$19, () => props.title);
137
+ _$insert(_el$18, _$createComponent(Show, {
138
+ get when() {
139
+ return props.subtitle;
140
+ },
141
+ get children() {
142
+ var _el$20 = _$getNextElement(_tmpl$);
143
+ _$insert(_el$20, () => props.subtitle);
144
+ return _el$20;
145
+ }
146
+ }), _el$22, _co$5);
147
+ _$insert(_el$17, _$createComponent(Show, {
148
+ get when() {
149
+ return props.actions;
150
+ },
151
+ get children() {
152
+ var _el$23 = _$getNextElement(_tmpl$6);
153
+ _$insert(_el$23, () => props.actions);
154
+ return _el$23;
155
+ }
156
+ }), _el$27, _co$7);
157
+ _$insert(_el$28, () => props.children);
158
+ _$effect(() => _$className(_el$16, `k2b-settings-section${props.class ? ` ${props.class}` : ""}`));
159
+ return _el$16;
160
+ })();
161
+ }
162
+ const SETTINGS_GROUP_ACTION = Symbol("SettingsGroup.Action");
163
+ const SettingsGroupAction = props => ({
164
+ kind: SETTINGS_GROUP_ACTION,
165
+ props
166
+ });
167
+ const collectSettingsGroupActions = value => {
168
+ if (Array.isArray(value)) return value.flatMap(collectSettingsGroupActions);
169
+ return value && typeof value === "object" && value.kind === SETTINGS_GROUP_ACTION ? [value] : [];
170
+ };
171
+ const collectSettingsGroupContent = value => {
172
+ if (Array.isArray(value)) return value.flatMap(collectSettingsGroupContent);
173
+ return value && typeof value === "object" && value.kind === SETTINGS_GROUP_ACTION ? [] : [value];
174
+ };
175
+ export const SettingsGroup = props => {
176
+ const resolved = children(() => props.children);
177
+ const action = createMemo(() => collectSettingsGroupActions(resolved())[0]);
178
+ const content = createMemo(() => collectSettingsGroupContent(resolved()));
179
+ const headingId = `k2b-settings-group-${createUniqueId()}`;
180
+ return (() => {
181
+ var _el$30 = _$getNextElement(_tmpl$8),
182
+ _el$31 = _el$30.firstChild,
183
+ _el$32 = _el$31.firstChild,
184
+ _el$33 = _el$32.firstChild,
185
+ _el$35 = _el$33.nextSibling,
186
+ [_el$36, _co$8] = _$getNextMarker(_el$35.nextSibling),
187
+ _el$37 = _el$32.nextSibling,
188
+ [_el$38, _co$9] = _$getNextMarker(_el$37.nextSibling),
189
+ _el$39 = _el$31.nextSibling;
190
+ _$setAttribute(_el$30, "aria-labelledby", headingId);
191
+ _$setAttribute(_el$33, "id", headingId);
192
+ _$insert(_el$33, () => props.title);
193
+ _$insert(_el$32, _$createComponent(Show, {
194
+ get when() {
195
+ return props.description;
196
+ },
197
+ get children() {
198
+ var _el$34 = _$getNextElement(_tmpl$);
199
+ _$insert(_el$34, () => props.description);
200
+ return _el$34;
201
+ }
202
+ }), _el$36, _co$8);
203
+ _$insert(_el$31, _$createComponent(Show, {
204
+ get when() {
205
+ return action();
206
+ },
207
+ children: slot => (() => {
208
+ var _el$40 = _$getNextElement(_tmpl$9);
209
+ _$insert(_el$40, () => slot().props.children);
210
+ return _el$40;
211
+ })()
212
+ }), _el$38, _co$9);
213
+ _$insert(_el$39, content);
214
+ _$effect(() => _$className(_el$30, `k2b-settings-group${props.class ? ` ${props.class}` : ""}`));
215
+ return _el$30;
216
+ })();
217
+ };
218
+ SettingsGroup.Action = SettingsGroupAction;
219
+ export const sameSettingValue = (left, right) => JSON.stringify(left) === JSON.stringify(right);
220
+ export const readSettingsError = async (response, fallback) => {
221
+ const data = await response.json().catch(() => null);
222
+ return {
223
+ message: data?.message ?? fallback,
224
+ fields: data?.errors ?? {}
225
+ };
226
+ };
227
+ export function SettingsField(props) {
228
+ const messages = useUiMessages();
229
+ const id = createUniqueId();
230
+ const descriptionId = `k2b-settings-field-${id}-description`;
231
+ const errorId = `k2b-settings-field-${id}-error`;
232
+ const describedBy = () => read(props.error) ? `${descriptionId} ${errorId}` : descriptionId;
233
+ const control = () => typeof props.children === "function" ? props.children({
234
+ describedBy
235
+ }) : props.children;
236
+ return (() => {
237
+ var _el$41 = _$getNextElement(_tmpl$1),
238
+ _el$42 = _el$41.firstChild,
239
+ _el$43 = _el$42.firstChild,
240
+ _el$44 = _el$43.firstChild,
241
+ _el$46 = _el$44.nextSibling,
242
+ [_el$47, _co$0] = _$getNextMarker(_el$46.nextSibling),
243
+ _el$48 = _el$43.nextSibling,
244
+ _el$49 = _el$42.nextSibling,
245
+ [_el$50, _co$1] = _$getNextMarker(_el$49.nextSibling),
246
+ _el$51 = _el$50.nextSibling,
247
+ [_el$52, _co$10] = _$getNextMarker(_el$51.nextSibling);
248
+ _$insert(_el$44, () => props.label);
249
+ _$insert(_el$43, _$createComponent(Show, {
250
+ get when() {
251
+ return _$memo(() => props.changed !== undefined)() && read(props.changed);
252
+ },
253
+ get children() {
254
+ var _el$45 = _$getNextElement(_tmpl$0);
255
+ _$insert(_el$45, () => messages().unsaved);
256
+ return _el$45;
257
+ }
258
+ }), _el$47, _co$0);
259
+ _$setAttribute(_el$48, "id", descriptionId);
260
+ _$insert(_el$48, () => props.description);
261
+ _$insert(_el$41, control, _el$50, _co$1);
262
+ _$insert(_el$41, _$createComponent(Show, {
263
+ get when() {
264
+ return read(props.error);
265
+ },
266
+ children: error => (() => {
267
+ var _el$53 = _$getNextElement(_tmpl$10),
268
+ _el$54 = _el$53.firstChild,
269
+ _el$55 = _el$54.nextSibling,
270
+ _el$56 = _el$55.nextSibling,
271
+ [_el$57, _co$11] = _$getNextMarker(_el$56.nextSibling);
272
+ _$setAttribute(_el$53, "id", errorId);
273
+ _$insert(_el$53, error, _el$57, _co$11);
274
+ return _el$53;
275
+ })()
276
+ }), _el$52, _co$10);
277
+ _$effect(() => _$className(_el$41, `k2b-settings-field ${props.class ?? ""}`));
278
+ return _el$41;
279
+ })();
280
+ }
281
+ const SettingsActions = props => {
282
+ const messages = useUiMessages();
283
+ const changeCount = () => read(props.changeCount);
284
+ const loading = () => read(props.loading);
285
+ const disabled = () => loading() || Boolean(props.disableWithoutChanges && changeCount() === 0);
286
+ const saveDisabled = () => disabled() || Boolean(props.saveDisabled !== undefined && read(props.saveDisabled));
287
+ return (() => {
288
+ var _el$58 = _$getNextElement(_tmpl$12),
289
+ _el$60 = _el$58.firstChild,
290
+ [_el$61, _co$12] = _$getNextMarker(_el$60.nextSibling),
291
+ _el$62 = _el$61.nextSibling,
292
+ [_el$63, _co$13] = _$getNextMarker(_el$62.nextSibling);
293
+ _$insert(_el$58, _$createComponent(Button, {
294
+ variant: "secondary",
295
+ get disabled() {
296
+ return disabled();
297
+ },
298
+ get onClick() {
299
+ return props.onDiscard;
300
+ },
301
+ get children() {
302
+ return messages().discard;
303
+ }
304
+ }), _el$61, _co$12);
305
+ _$insert(_el$58, _$createComponent(Button, {
306
+ get variant() {
307
+ return props.saveVariant ?? "primary";
308
+ },
309
+ get loading() {
310
+ return loading();
311
+ },
312
+ get loadingLabel() {
313
+ return messages().saving;
314
+ },
315
+ get disabled() {
316
+ return saveDisabled();
317
+ },
318
+ get onClick() {
319
+ return props.onSave;
320
+ },
321
+ get children() {
322
+ return [_$getNextElement(_tmpl$11), _$memo(() => props.saveLabel ?? messages().saveChanges)];
323
+ }
324
+ }), _el$63, _co$13);
325
+ return _el$58;
326
+ })();
327
+ };
328
+ export function SettingsSaveBar(props) {
329
+ const messages = useUiMessages();
330
+ const changeCount = () => read(props.changeCount);
331
+ return _$createComponent(Show, {
332
+ get when() {
333
+ return changeCount() > 0;
334
+ },
335
+ get children() {
336
+ var _el$64 = _$getNextElement(_tmpl$13),
337
+ _el$65 = _el$64.firstChild,
338
+ _el$66 = _el$65.firstChild,
339
+ _el$67 = _el$66.nextSibling,
340
+ _el$68 = _el$67.nextSibling,
341
+ [_el$69, _co$14] = _$getNextMarker(_el$68.nextSibling),
342
+ _el$70 = _el$65.nextSibling,
343
+ [_el$71, _co$15] = _$getNextMarker(_el$70.nextSibling);
344
+ _$insert(_el$66, changeCount);
345
+ _$insert(_el$65, () => messages().unsavedChangeLabel({
346
+ count: changeCount()
347
+ }), _el$69, _co$14);
348
+ _$insert(_el$64, _$createComponent(SettingsActions, props), _el$71, _co$15);
349
+ _$effect(() => _$className(_el$64, `k2b-settings-save-bar ${props.class ?? ""}`));
350
+ return _el$64;
351
+ }
352
+ });
353
+ }
354
+ export function SettingsPanelFooter(props) {
355
+ const messages = useUiMessages();
356
+ const changeCount = () => read(props.changeCount);
357
+ return [(() => {
358
+ var _el$72 = _$getNextElement(_tmpl$15);
359
+ _$insert(_el$72, _$createComponent(Show, {
360
+ get when() {
361
+ return changeCount() > 0;
362
+ },
363
+ get fallback() {
364
+ return messages().noUnsavedChanges;
365
+ },
366
+ get children() {
367
+ return [(() => {
368
+ var _el$73 = _$getNextElement(_tmpl$14);
369
+ _$insert(_el$73, changeCount);
370
+ return _el$73;
371
+ })(), " ", _$memo(() => messages().unsavedChangeLabel({
372
+ count: changeCount()
373
+ }))];
374
+ }
375
+ }));
376
+ return _el$72;
377
+ })(), _$createComponent(SettingsActions, _$mergeProps(props, {
378
+ disableWithoutChanges: true
379
+ }))];
380
+ }
381
+ //# sourceMappingURL=Settings.js.map