@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":["createContext","createEffect","createSignal","createUniqueId","For","onCleanup","onMount","Show","splitProps","useContext","Tooltip","useUiMessages","Button","MenuContext","DropdownContext","actionableItems","menu","Array","from","querySelectorAll","join","focusMenuItem","index","items","length","focus","dropdownPosition","trigger","position","viewport","gap","left","top","bottom","right","width","height","Math","max","min","itemContent","props","_$createComponent","when","image","fallback","icon","children","_el$5","_$getNextElement","_tmpl$2","_$effect","_$className","_el$6","_tmpl$3","_$setAttribute","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_el$4","_co$","_$getNextMarker","_$insert","description","_el$7","_tmpl$4","DropdownItem","danger","variant","content","_$memo","disabled","href","undefined","_el$8","_tmpl$5","$$click","event","preventDefault","stopPropagation","close","onSelect","_p$","_v$","class","_v$2","_v$3","_v$4","e","t","a","_$setProperty","o","_$runHydrationEvents","_el$9","_tmpl$6","_v$5","_v$6","external","_v$7","_v$8","_v$9","i","DropdownChoiceItem","checked","_el$0","_tmpl$0","_el$16","_el$17","_co$3","_el$18","_el$19","_co$4","_el$20","_el$21","_co$5","_el$11","_el$12","_el$13","_el$14","_co$2","_el$22","_el$23","_co$6","closeOnSelect","action","choice","_el$1","_tmpl$8","_tmpl$7","_el$24","_el$25","color","_el$26","_tmpl$1","_$p","_$setStyleProperty","label","_el$27","_tmpl$9","_v$0","_v$1","_v$10","_v$11","_v$12","_v$13","n","DropdownItems","messages","renderItem","item","Provider","value","each","_el$28","_tmpl$10","_el$29","_el$30","_co$7","_el$31","_el$32","_co$8","sectionLabel","_el$33","_tmpl$11","_v$14","_v$15","actions","DropdownTrigger","context","Error","local","rest","target","Boolean","register","element","registerTrigger","ref","click","toggle","appearance","_$mergeProps","aria-controls","menuId","aria-expanded","open","aria-label","tabIndex","onClick","onKeyDown","triggerKeyDown","type","iconOnly","size","tooltip","tooltipDelay","tooltipPlacement","_el$34","_tmpl$12","_$use","_$spread","delay","placement","DropdownRoot","id","replace","internalOpen","setInternalOpen","triggerRef","menuRef","mounted","viewportListenersAttached","isOpen","align","place","rect","getBoundingClientRect","window","innerWidth","innerHeight","style","reposition","attachViewportListeners","addEventListener","detachViewportListeners","removeEventListener","restoreFocus","matches","hidePopover","queueMicrotask","showPopover","requestOpen","next","onOpenChange","handleMenuKeyDown","current","indexOf","document","activeElement","key","includes","controlled","_el$35","_tmpl$13","_el$37","_el$38","_co$9","_el$36","nextOpen","newState","wasOpen","onClose","$$keydown","_ref$","_v$16","_v$17","dropdownMenu","_v$18","menuClass","_v$19","_v$20","_$style","Dropdown","Root","Trigger","Item","_$delegateEvents"],"sources":["actions/Dropdown.tsx"],"sourcesContent":["import {\n createContext,\n createEffect,\n createSignal,\n createUniqueId,\n For,\n type JSX,\n onCleanup,\n onMount,\n Show,\n splitProps,\n useContext,\n} from \"solid-js\";\nimport { Tooltip, type TooltipPlacement } from \"../feedback/Tooltip\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { Button, type ButtonProps, type ButtonSize, type ButtonVariant } from \"./Button\";\n\nexport type DropdownPosition = \"bottom-right\" | \"bottom-left\" | \"top-right\" | \"top-left\" | \"right-start\";\n\nexport type DropdownActionBase = {\n class?: string;\n disabled?: boolean;\n icon?: string;\n image?: string;\n label: string;\n description?: string;\n variant?: \"danger\";\n};\n\nexport type DropdownAction =\n | (DropdownActionBase & {\n action: () => void;\n href?: never;\n external?: never;\n })\n | (DropdownActionBase & {\n href: string;\n external?: boolean;\n action?: never;\n })\n | (DropdownActionBase & {\n disabled: true;\n action?: never;\n href?: never;\n external?: never;\n });\n\n/** Declarative radio or checkbox row for compact action menus. */\nexport type DropdownChoice = DropdownActionBase & {\n action: () => void;\n checked: boolean | (() => boolean);\n choice: \"checkbox\" | \"radio\";\n closeOnSelect?: boolean;\n color?: string;\n};\n\nexport type DropdownSection = {\n sectionLabel?: string;\n items: readonly (DropdownAction | DropdownChoice)[];\n};\n\nexport type DropdownItem = DropdownAction | DropdownChoice | DropdownSection;\n\nexport type DropdownProps = {\n items: readonly DropdownItem[];\n children: JSX.Element;\n position?: DropdownPosition | (() => DropdownPosition);\n /** Menu width as a CSS length. Defaults to `12rem`. */\n width?: string;\n class?: string;\n menuClass?: string;\n onClose?: () => void;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n disabled?: boolean;\n label?: string;\n align?: \"start\" | \"end\";\n};\n\nexport type DropdownTriggerProps = Omit<\n ButtonProps,\n \"aria-controls\" | \"aria-expanded\" | \"aria-haspopup\" | \"children\" | \"disabled\" | \"onClick\" | \"onKeyDown\"\n> & {\n children: JSX.Element;\n /** Use `plain` when a specialized component class owns the complete visual treatment. */\n appearance?: \"button\" | \"plain\";\n disabled?: boolean;\n iconOnly?: boolean;\n label?: string;\n size?: ButtonSize;\n tooltip?: JSX.Element | false;\n tooltipDelay?: number;\n tooltipPlacement?: TooltipPlacement;\n variant?: ButtonVariant;\n};\n\nexport type DropdownItemProps = {\n children: JSX.Element;\n icon?: string;\n image?: string;\n description?: string;\n disabled?: boolean;\n danger?: boolean;\n variant?: \"danger\";\n href?: string;\n external?: boolean;\n onSelect?: () => void;\n class?: string;\n};\n\ntype MenuContextValue = {\n close: (restoreFocus?: boolean) => void;\n};\n\ntype DropdownContextValue = {\n disabled: () => boolean;\n menuId: string;\n open: () => boolean;\n registerTrigger: (element: HTMLButtonElement) => void;\n toggle: () => void;\n triggerKeyDown: JSX.EventHandlerUnion<HTMLButtonElement, KeyboardEvent>;\n};\n\nconst MenuContext = createContext<MenuContextValue>();\nconst DropdownContext = createContext<DropdownContextValue>();\n\nconst actionableItems = (menu: HTMLElement | undefined): HTMLElement[] =>\n menu\n ? Array.from(\n menu.querySelectorAll<HTMLElement>(\n [\n \"[role='menuitem']:not([aria-disabled='true'])\",\n \"[role='menuitemcheckbox']:not([aria-disabled='true'])\",\n \"[role='menuitemradio']:not([aria-disabled='true'])\",\n ].join(\", \"),\n ),\n )\n : [];\n\nconst focusMenuItem = (menu: HTMLElement | undefined, index: number): void => {\n const items = actionableItems(menu);\n if (items.length === 0) return;\n items[(index + items.length) % items.length]?.focus();\n};\n\nexport const dropdownPosition = (\n trigger: DOMRect,\n menu: Pick<DOMRect, \"width\" | \"height\">,\n position: DropdownPosition,\n viewport: { width: number; height: number },\n gap = 4,\n): { left: number; top: number } => {\n let left = trigger.left;\n let top = trigger.bottom + gap;\n\n if (position === \"bottom-left\" || position === \"top-left\") left = trigger.right - menu.width;\n if (position === \"top-right\" || position === \"top-left\") top = trigger.top - menu.height - gap;\n if (position === \"right-start\") {\n left = trigger.right + gap;\n top = trigger.top;\n }\n\n return {\n left: Math.max(8, Math.min(left, viewport.width - menu.width - 8)),\n top: Math.max(8, Math.min(top, viewport.height - menu.height - 8)),\n };\n};\n\nconst itemContent = (props: { description?: string; icon?: string; image?: string; children: JSX.Element }): JSX.Element => (\n <>\n <Show when={props.image} fallback={<Show when={props.icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>}>\n {(image) => <img class=\"k2b-dropdown__image\" src={image()} alt=\"\" />}\n </Show>\n <span class=\"k2b-dropdown__copy\">\n <span>{props.children}</span>\n <Show when={props.description}>{(description) => <small>{description()}</small>}</Show>\n </span>\n </>\n);\n\nexport function DropdownItem(props: DropdownItemProps): JSX.Element {\n const menu = useContext(MenuContext);\n const danger = () => props.danger || props.variant === \"danger\";\n const content = itemContent(props);\n\n return (\n <Show\n when={!props.disabled ? props.href : undefined}\n fallback={\n <button\n type=\"button\"\n role=\"menuitem\"\n tabIndex={-1}\n class={`k2b-dropdown__item ${props.class ?? \"\"}`}\n data-danger={danger() ? \"true\" : undefined}\n disabled={props.disabled}\n aria-disabled={props.disabled ? \"true\" : undefined}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n menu?.close();\n props.onSelect?.();\n }}\n >\n {content}\n </button>\n }\n >\n {(href) => (\n <a\n href={href()}\n target={props.external ? \"_blank\" : undefined}\n rel={props.external ? \"noopener noreferrer\" : undefined}\n role=\"menuitem\"\n tabIndex={-1}\n class={`k2b-dropdown__item ${props.class ?? \"\"}`}\n data-danger={danger() ? \"true\" : undefined}\n onClick={() => {\n menu?.close(false);\n props.onSelect?.();\n }}\n >\n {content}\n </a>\n )}\n </Show>\n );\n}\n\nfunction DropdownChoiceItem(props: DropdownChoice): JSX.Element {\n const menu = useContext(MenuContext);\n const checked = () => (typeof props.checked === \"function\" ? props.checked() : props.checked);\n return (\n // biome-ignore lint/a11y/useAriaPropsSupportedByRole: the runtime role is always menuitemcheckbox or menuitemradio, both of which support aria-checked.\n <button\n type=\"button\"\n role={props.choice === \"checkbox\" ? \"menuitemcheckbox\" : \"menuitemradio\"}\n aria-checked={checked()}\n aria-disabled={props.disabled ? \"true\" : undefined}\n tabIndex={-1}\n class={`k2b-dropdown__item ${props.class ?? \"\"}`}\n data-selected={checked() ? \"true\" : undefined}\n disabled={props.disabled}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n if (props.closeOnSelect !== false) menu?.close();\n props.action();\n }}\n >\n <Show when={props.choice === \"checkbox\"}>\n <span class=\"k2b-dropdown__checkbox\" aria-hidden=\"true\">\n <Show when={checked()}>\n <i class=\"ti ti-check\" />\n </Show>\n </span>\n </Show>\n <Show when={props.image} fallback={<Show when={props.icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>}>\n {(image) => <img class=\"k2b-dropdown__image\" src={image()} alt=\"\" />}\n </Show>\n <Show when={props.color}>\n {(color) => <span class=\"k2b-dropdown__color\" style={{ \"--k2b-dropdown-color\": color() }} aria-hidden=\"true\" />}\n </Show>\n <span class=\"k2b-dropdown__copy\">\n <span>{props.label}</span>\n <Show when={props.description}>{(description) => <small>{description()}</small>}</Show>\n </span>\n <Show when={props.choice === \"radio\" && checked()}>\n <i class=\"ti ti-check k2b-dropdown__check\" aria-hidden=\"true\" />\n </Show>\n </button>\n );\n}\n\nexport function DropdownItems(props: { items: readonly DropdownItem[]; close: (restoreFocus?: boolean) => void }): JSX.Element {\n const messages = useUiMessages();\n const renderItem = (item: DropdownAction | DropdownChoice): JSX.Element =>\n \"choice\" in item ? (\n <DropdownChoiceItem {...item} />\n ) : (\n <DropdownItem\n icon={item.icon}\n image={item.image}\n description={item.description}\n variant={item.variant}\n disabled={item.disabled}\n class={item.class}\n href={\"href\" in item ? item.href : undefined}\n external={\"external\" in item ? item.external : undefined}\n onSelect={\"action\" in item ? item.action : undefined}\n >\n {item.label}\n </DropdownItem>\n );\n\n return (\n <MenuContext.Provider value={{ close: props.close }}>\n <For each={props.items}>\n {(item, index) => (\n <Show when={\"items\" in item} fallback={renderItem(item as DropdownAction | DropdownChoice)}>\n <div\n class=\"k2b-dropdown__section\"\n data-divided={index() > 0 ? \"true\" : undefined}\n role=\"group\"\n aria-label={(item as DropdownSection).sectionLabel ?? messages().actions}\n >\n <Show when={(item as DropdownSection).sectionLabel}>{(label) => <div class=\"k2b-dropdown__label\">{label()}</div>}</Show>\n <For each={(item as DropdownSection).items}>{renderItem}</For>\n </div>\n </Show>\n )}\n </For>\n </MenuContext.Provider>\n );\n}\n\nfunction DropdownTrigger(props: DropdownTriggerProps): JSX.Element {\n const context = useContext(DropdownContext);\n if (!context) throw new Error(\"Dropdown.Trigger must be used inside Dropdown.Root\");\n const [local, rest] = splitProps(props, [\n \"appearance\",\n \"children\",\n \"class\",\n \"disabled\",\n \"iconOnly\",\n \"label\",\n \"ref\",\n \"size\",\n \"tabIndex\",\n \"tooltip\",\n \"tooltipDelay\",\n \"tooltipPlacement\",\n \"type\",\n \"variant\",\n ]);\n let target: HTMLButtonElement | undefined;\n const disabled = () => Boolean(context.disabled() || local.disabled);\n const register = (element: HTMLButtonElement) => {\n target = element;\n context.registerTrigger(element);\n if (typeof local.ref === \"function\") local.ref(element);\n };\n const click: JSX.EventHandlerUnion<HTMLButtonElement, MouseEvent> = (event) => {\n event.stopPropagation();\n context.toggle();\n };\n\n if (local.appearance !== \"plain\") {\n return (\n <Button\n {...rest}\n ref={register}\n aria-controls={context.menuId}\n aria-expanded={context.open()}\n aria-haspopup=\"menu\"\n aria-label={local.label}\n disabled={disabled()}\n tabIndex={disabled() ? -1 : local.tabIndex}\n onClick={click}\n onKeyDown={context.triggerKeyDown}\n type={local.type ?? \"button\"}\n class={`${local.iconOnly ? \"k2b-icon-button\" : \"\"} k2b-dropdown__trigger ${local.class ?? \"\"}`}\n size={local.size}\n variant={local.variant ?? (local.iconOnly ? \"ghost\" : undefined)}\n tooltip={local.tooltip}\n tooltipDelay={local.tooltipDelay}\n tooltipPlacement={local.tooltipPlacement}\n >\n {local.children}\n </Button>\n );\n }\n\n return (\n <>\n <button\n {...rest}\n ref={register}\n aria-controls={context.menuId}\n aria-expanded={context.open()}\n aria-haspopup=\"menu\"\n aria-label={local.label}\n disabled={disabled()}\n tabIndex={disabled() ? -1 : local.tabIndex}\n onClick={click}\n onKeyDown={context.triggerKeyDown}\n type={local.type ?? \"button\"}\n class={`k2b-dropdown__trigger ${local.class ?? \"\"}`}\n >\n {local.children}\n </button>\n <Show when={local.tooltip !== false && local.tooltip !== undefined}>\n <Tooltip\n content={local.tooltip as JSX.Element}\n target={() => target}\n delay={local.tooltipDelay}\n disabled={disabled()}\n placement={local.tooltipPlacement}\n />\n </Show>\n </>\n );\n}\n\n/** Accessible top-layer menu with explicit trigger ownership. */\nfunction DropdownRoot(props: DropdownProps): JSX.Element {\n const messages = useUiMessages();\n const id = createUniqueId().replace(/[^a-zA-Z0-9_-]/g, \"-\");\n const menuId = `k2b-dropdown-${id}`;\n const [internalOpen, setInternalOpen] = createSignal(false);\n let triggerRef: HTMLButtonElement | undefined;\n let menuRef: HTMLDivElement | undefined;\n let mounted = false;\n let viewportListenersAttached = false;\n\n const isOpen = () => props.open ?? internalOpen();\n const position = (): DropdownPosition =>\n typeof props.position === \"function\" ? props.position() : (props.position ?? (props.align === \"end\" ? \"bottom-left\" : \"bottom-right\"));\n\n const place = () => {\n if (!triggerRef || !menuRef) return;\n const rect = dropdownPosition(triggerRef.getBoundingClientRect(), menuRef.getBoundingClientRect(), position(), {\n width: window.innerWidth,\n height: window.innerHeight,\n });\n menuRef.style.left = `${rect.left}px`;\n menuRef.style.top = `${rect.top}px`;\n };\n const reposition = () => {\n if (isOpen()) place();\n };\n const attachViewportListeners = () => {\n if (viewportListenersAttached) return;\n viewportListenersAttached = true;\n window.addEventListener(\"resize\", reposition);\n window.addEventListener(\"scroll\", reposition, true);\n };\n const detachViewportListeners = () => {\n if (!viewportListenersAttached) return;\n viewportListenersAttached = false;\n window.removeEventListener(\"resize\", reposition);\n window.removeEventListener(\"scroll\", reposition, true);\n };\n const close = (restoreFocus = true) => {\n if (menuRef?.matches(\":popover-open\")) menuRef.hidePopover();\n detachViewportListeners();\n if (restoreFocus) queueMicrotask(() => triggerRef?.focus());\n };\n const open = (focus: \"first\" | \"last\" | false = \"first\") => {\n if (props.disabled || !menuRef || menuRef.matches(\":popover-open\")) return;\n menuRef.showPopover();\n attachViewportListeners();\n place();\n queueMicrotask(() => {\n if (focus) focusMenuItem(menuRef, focus === \"first\" ? 0 : -1);\n });\n };\n const requestOpen = (next: boolean, focus: \"first\" | \"last\" | false = \"first\") => {\n if (props.disabled && next) return;\n if (props.open !== undefined) {\n props.onOpenChange?.(next);\n return;\n }\n if (next) open(focus);\n else close(false);\n };\n const handleMenuKeyDown = (event: KeyboardEvent) => {\n const items = actionableItems(menuRef);\n const current = items.indexOf(document.activeElement as HTMLElement);\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n event.preventDefault();\n focusMenuItem(menuRef, current + (event.key === \"ArrowDown\" ? 1 : -1));\n } else if (event.key === \"Home\" || event.key === \"End\") {\n event.preventDefault();\n focusMenuItem(menuRef, event.key === \"Home\" ? 0 : -1);\n } else if (event.key === \"Escape\") {\n event.preventDefault();\n requestOpen(false);\n queueMicrotask(() => triggerRef?.focus());\n } else if (event.key === \"Tab\") {\n requestOpen(false);\n }\n };\n\n const context: DropdownContextValue = {\n disabled: () => Boolean(props.disabled),\n menuId,\n open: isOpen,\n registerTrigger: (element) => {\n triggerRef = element;\n },\n toggle: () => requestOpen(!isOpen()),\n triggerKeyDown: (event) => {\n if (![\"Enter\", \" \", \"ArrowDown\", \"ArrowUp\"].includes(event.key)) return;\n event.preventDefault();\n event.stopPropagation();\n if (isOpen()) {\n focusMenuItem(menuRef, event.key === \"ArrowUp\" ? -1 : 0);\n return;\n }\n requestOpen(true, event.key === \"ArrowUp\" ? \"last\" : \"first\");\n },\n };\n\n createEffect(() => {\n const controlled = props.open;\n if (!mounted || controlled === undefined || !menuRef) return;\n if (controlled && !menuRef.matches(\":popover-open\")) open(false);\n if (!controlled && menuRef.matches(\":popover-open\")) close(false);\n });\n createEffect(() => {\n if (mounted && props.disabled) close(false);\n });\n onMount(() => {\n mounted = true;\n if (props.open) open(false);\n onCleanup(detachViewportListeners);\n });\n\n return (\n <DropdownContext.Provider value={context}>\n <span class={`k2b-dropdown ${props.class ?? \"\"}`}>\n {props.children}\n <div\n ref={menuRef}\n id={menuId}\n popover=\"auto\"\n role=\"menu\"\n aria-label={props.label ?? messages().dropdownMenu}\n class={`k2b-dropdown__menu ${props.menuClass ?? \"\"}`}\n style={props.width ? { \"--k2b-dropdown-width\": props.width } : undefined}\n data-position={position()}\n onKeyDown={handleMenuKeyDown}\n onToggle={(event) => {\n const nextOpen = (event as ToggleEvent).newState === \"open\";\n const wasOpen = internalOpen();\n setInternalOpen(nextOpen);\n if (nextOpen) attachViewportListeners();\n else detachViewportListeners();\n if (props.open === undefined || props.open !== nextOpen) props.onOpenChange?.(nextOpen);\n if (wasOpen && !nextOpen) props.onClose?.();\n if (!nextOpen && props.open === true) queueMicrotask(() => props.open === true && open(false));\n }}\n >\n <DropdownItems items={props.items} close={close} />\n </div>\n </span>\n </DropdownContext.Provider>\n );\n}\n\ntype DropdownComponent = ((props: DropdownProps) => JSX.Element) & {\n Root: (props: DropdownProps) => JSX.Element;\n Trigger: (props: DropdownTriggerProps) => JSX.Element;\n Item: (props: DropdownItemProps) => JSX.Element;\n};\n\nexport const Dropdown = DropdownRoot as DropdownComponent;\nDropdown.Root = DropdownRoot;\nDropdown.Trigger = DropdownTrigger;\nDropdown.Item = DropdownItem;\n\nexport default Dropdown;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,149 @@
1
+ import { template as _$template } from "solid-js/web";
2
+ import { getNextMarker as _$getNextMarker } from "solid-js/web";
3
+ import { insert as _$insert } from "solid-js/web";
4
+ import { createComponent as _$createComponent } from "solid-js/web";
5
+ import { className as _$className } from "solid-js/web";
6
+ import { effect as _$effect } from "solid-js/web";
7
+ import { getNextElement as _$getNextElement } from "solid-js/web";
8
+ import { memo as _$memo } from "solid-js/web";
9
+ var _tmpl$ = /*#__PURE__*/_$template(`<i aria-hidden=true>`),
10
+ _tmpl$2 = /*#__PURE__*/_$template(`<span><!$><!/><!$><!/>`),
11
+ _tmpl$3 = /*#__PURE__*/_$template(`<i class="ti ti-chevron-down k2b-filter-chip__chevron"aria-hidden=true>`);
12
+ import { createMemo, Show } from "solid-js";
13
+ import { useUiMessages } from "../intl/messages";
14
+ import Dropdown from "./Dropdown";
15
+ /** Section-aware controlled filter with immediate single- and multi-select commits. */
16
+ export function FilterChip(props) {
17
+ const messages = useUiMessages();
18
+ const selectedValues = createMemo(() => new Set(props.value));
19
+ const defaultValues = createMemo(() => new Set(props.defaultValue ?? []));
20
+ const sectionByValue = createMemo(() => {
21
+ const sections = new Map();
22
+ for (const section of props.options) {
23
+ for (const option of section.options) sections.set(option.value, section);
24
+ }
25
+ return sections;
26
+ });
27
+ const hasDefault = () => (props.defaultValue?.length ?? 0) > 0;
28
+ const selected = value => selectedValues().has(value);
29
+ const active = () => props.isActive ?? props.value.length > 0;
30
+ const atDefault = () => {
31
+ if (!props.defaultValue) return false;
32
+ const current = props.value;
33
+ return current.length === props.defaultValue.length && current.every(value => defaultValues().has(value));
34
+ };
35
+ const emit = value => props.onValueChange(value);
36
+ const toggle = value => {
37
+ const section = sectionByValue().get(value);
38
+ if (!section) return;
39
+ const current = props.value;
40
+ if (section.multiple) {
41
+ emit(selected(value) ? current.filter(entry => entry !== value) : [...current, value]);
42
+ return;
43
+ }
44
+ const sectionValues = new Set(section.options.map(option => option.value));
45
+ const otherValues = current.filter(entry => !sectionValues.has(entry));
46
+ emit(selected(value) ? otherValues : [...otherValues, value]);
47
+ };
48
+ const reset = () => emit(props.defaultValue ? [...props.defaultValue] : []);
49
+ const showReset = () => hasDefault() && !atDefault() || !hasDefault() && props.value.length > 0;
50
+ const optionItems = createMemo(() => {
51
+ const result = [];
52
+ for (const section of props.options) {
53
+ const items = section.options.map(option => ({
54
+ action: () => toggle(option.value),
55
+ checked: () => props.value.includes(option.value),
56
+ choice: section.multiple ? "checkbox" : "radio",
57
+ class: "k2b-filter-chip__option",
58
+ closeOnSelect: false,
59
+ color: option.color,
60
+ icon: !section.multiple ? option.icon : undefined,
61
+ label: option.label
62
+ }));
63
+ if (section.label) result.push({
64
+ sectionLabel: section.label,
65
+ items
66
+ });else result.push(...items);
67
+ }
68
+ return result;
69
+ });
70
+ const items = createMemo(() => {
71
+ if (!showReset()) return optionItems();
72
+ return [...optionItems(), {
73
+ sectionLabel: messages().filterActions,
74
+ items: [{
75
+ action: reset,
76
+ icon: hasDefault() ? "ti ti-refresh" : "ti ti-x",
77
+ label: hasDefault() ? messages().reset : messages().clear,
78
+ variant: "danger"
79
+ }]
80
+ }];
81
+ });
82
+ return _$createComponent(Dropdown.Root, {
83
+ get items() {
84
+ return items();
85
+ },
86
+ get position() {
87
+ return props.position ?? "bottom-left";
88
+ },
89
+ width: "13rem",
90
+ get label() {
91
+ return props.label;
92
+ },
93
+ get children() {
94
+ return _$createComponent(Dropdown.Trigger, {
95
+ appearance: "plain",
96
+ get ["class"]() {
97
+ return `k2b-filter-chip ${props.class ?? ""}`;
98
+ },
99
+ get ["data-state"]() {
100
+ return active() ? "active" : "idle";
101
+ },
102
+ get ["data-active"]() {
103
+ return active() ? "true" : undefined;
104
+ },
105
+ get ["data-icon-only"]() {
106
+ return props.iconOnly ? "true" : undefined;
107
+ },
108
+ get label() {
109
+ return props.label;
110
+ },
111
+ get title() {
112
+ return _$memo(() => !!props.iconOnly)() ? props.label : undefined;
113
+ },
114
+ get children() {
115
+ return [(() => {
116
+ var _el$ = _$getNextElement(_tmpl$);
117
+ _$effect(() => _$className(_el$, props.icon));
118
+ return _el$;
119
+ })(), _$createComponent(Show, {
120
+ get when() {
121
+ return !props.iconOnly;
122
+ },
123
+ get children() {
124
+ return [(() => {
125
+ var _el$2 = _$getNextElement(_tmpl$2),
126
+ _el$3 = _el$2.firstChild,
127
+ [_el$4, _co$] = _$getNextMarker(_el$3.nextSibling),
128
+ _el$5 = _el$4.nextSibling,
129
+ [_el$6, _co$2] = _$getNextMarker(_el$5.nextSibling);
130
+ _$insert(_el$2, () => props.label, _el$4, _co$);
131
+ _$insert(_el$2, _$createComponent(Show, {
132
+ get when() {
133
+ return _$memo(() => !!!hasDefault())() && props.value.length > 0;
134
+ },
135
+ get children() {
136
+ return ` (${props.value.length})`;
137
+ }
138
+ }), _el$6, _co$2);
139
+ return _el$2;
140
+ })(), _$getNextElement(_tmpl$3)];
141
+ }
142
+ })];
143
+ }
144
+ });
145
+ }
146
+ });
147
+ }
148
+ export default FilterChip;
149
+ //# sourceMappingURL=FilterChip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createMemo","Show","useUiMessages","Dropdown","FilterChip","props","messages","selectedValues","Set","value","defaultValues","defaultValue","sectionByValue","sections","Map","section","options","option","set","hasDefault","length","selected","has","active","isActive","atDefault","current","every","emit","onValueChange","toggle","get","multiple","filter","entry","sectionValues","map","otherValues","reset","showReset","optionItems","result","items","action","checked","includes","choice","class","closeOnSelect","color","icon","undefined","label","push","sectionLabel","filterActions","clear","variant","_$createComponent","Root","position","width","children","Trigger","appearance","data-state","data-active","data-icon-only","iconOnly","title","_$memo","_el$","_$getNextElement","_tmpl$","_$effect","_$className","when","_el$2","_tmpl$2","_el$3","firstChild","_el$4","_co$","_$getNextMarker","nextSibling","_el$5","_el$6","_co$2","_$insert","_tmpl$3"],"sources":["actions/FilterChip.tsx"],"sourcesContent":["import { createMemo, type JSX, Show } from \"solid-js\";\nimport { useUiMessages } from \"../intl/messages\";\nimport Dropdown, { type DropdownItem } from \"./Dropdown\";\n\nexport type FilterChipOption = {\n value: string;\n label: string;\n icon?: string;\n color?: string;\n};\n\nexport type FilterChipSection = {\n label?: string;\n options: readonly FilterChipOption[];\n multiple?: boolean;\n};\n\nexport type FilterChipProps = {\n label: string;\n icon: string;\n options: readonly FilterChipSection[];\n value: readonly string[];\n onValueChange: (value: string[]) => void;\n isActive?: boolean;\n position?: \"bottom-left\" | \"bottom-right\";\n defaultValue?: readonly string[];\n iconOnly?: boolean;\n class?: string;\n};\n\n/** Section-aware controlled filter with immediate single- and multi-select commits. */\nexport function FilterChip(props: FilterChipProps): JSX.Element {\n const messages = useUiMessages();\n const selectedValues = createMemo(() => new Set(props.value));\n const defaultValues = createMemo(() => new Set(props.defaultValue ?? []));\n const sectionByValue = createMemo(() => {\n const sections = new Map<string, FilterChipSection>();\n for (const section of props.options) {\n for (const option of section.options) sections.set(option.value, section);\n }\n return sections;\n });\n const hasDefault = () => (props.defaultValue?.length ?? 0) > 0;\n const selected = (value: string) => selectedValues().has(value);\n const active = () => props.isActive ?? props.value.length > 0;\n const atDefault = () => {\n if (!props.defaultValue) return false;\n const current = props.value;\n return current.length === props.defaultValue.length && current.every((value) => defaultValues().has(value));\n };\n const emit = (value: string[]) => props.onValueChange(value);\n const toggle = (value: string) => {\n const section = sectionByValue().get(value);\n if (!section) return;\n const current = props.value;\n if (section.multiple) {\n emit(selected(value) ? current.filter((entry) => entry !== value) : [...current, value]);\n return;\n }\n const sectionValues = new Set(section.options.map((option) => option.value));\n const otherValues = current.filter((entry) => !sectionValues.has(entry));\n emit(selected(value) ? otherValues : [...otherValues, value]);\n };\n const reset = () => emit(props.defaultValue ? [...props.defaultValue] : []);\n const showReset = () => (hasDefault() && !atDefault()) || (!hasDefault() && props.value.length > 0);\n const optionItems = createMemo<DropdownItem[]>(() => {\n const result: DropdownItem[] = [];\n for (const section of props.options) {\n const items = section.options.map((option) => ({\n action: () => toggle(option.value),\n checked: () => props.value.includes(option.value),\n choice: section.multiple ? (\"checkbox\" as const) : (\"radio\" as const),\n class: \"k2b-filter-chip__option\",\n closeOnSelect: false,\n color: option.color,\n icon: !section.multiple ? option.icon : undefined,\n label: option.label,\n }));\n if (section.label) result.push({ sectionLabel: section.label, items });\n else result.push(...items);\n }\n return result;\n });\n const items = createMemo<DropdownItem[]>(() => {\n if (!showReset()) return optionItems();\n return [\n ...optionItems(),\n {\n sectionLabel: messages().filterActions,\n items: [\n {\n action: reset,\n icon: hasDefault() ? \"ti ti-refresh\" : \"ti ti-x\",\n label: hasDefault() ? messages().reset : messages().clear,\n variant: \"danger\",\n },\n ],\n },\n ];\n });\n\n return (\n <Dropdown.Root items={items()} position={props.position ?? \"bottom-left\"} width=\"13rem\" label={props.label}>\n <Dropdown.Trigger\n appearance=\"plain\"\n class={`k2b-filter-chip ${props.class ?? \"\"}`}\n data-state={active() ? \"active\" : \"idle\"}\n data-active={active() ? \"true\" : undefined}\n data-icon-only={props.iconOnly ? \"true\" : undefined}\n label={props.label}\n title={props.iconOnly ? props.label : undefined}\n >\n <i class={props.icon} aria-hidden=\"true\" />\n <Show when={!props.iconOnly}>\n <span>\n {props.label}\n <Show when={!hasDefault() && props.value.length > 0}>{` (${props.value.length})`}</Show>\n </span>\n <i class=\"ti ti-chevron-down k2b-filter-chip__chevron\" aria-hidden=\"true\" />\n </Show>\n </Dropdown.Trigger>\n </Dropdown.Root>\n );\n}\n\nexport default FilterChip;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ import { template as _$template } from "solid-js/web";
2
+ import { mergeProps as _$mergeProps } from "solid-js/web";
3
+ import { createComponent as _$createComponent } from "solid-js/web";
4
+ import { getNextElement as _$getNextElement } from "solid-js/web";
5
+ import { memo as _$memo } from "solid-js/web";
6
+ var _tmpl$ = /*#__PURE__*/_$template(`<i class="ti ti-loader-2 k2b-spin"aria-hidden=true>`),
7
+ _tmpl$2 = /*#__PURE__*/_$template(`<i class="ti ti-x k2b-remove-button__idle"aria-hidden=true>`),
8
+ _tmpl$3 = /*#__PURE__*/_$template(`<i class="ti ti-trash k2b-remove-button__hover"aria-hidden=true>`);
9
+ import { Show, splitProps } from "solid-js";
10
+ import { Tooltip } from "../feedback/Tooltip";
11
+ export function RemoveButton(props) {
12
+ const [local, rest] = splitProps(props, ["ariaLabel", "class", "disabled", "loading"]);
13
+ return _$createComponent(Tooltip.Trigger, _$mergeProps({
14
+ get content() {
15
+ return local.ariaLabel;
16
+ }
17
+ }, rest, {
18
+ type: "button",
19
+ get ["class"]() {
20
+ return `k2b-remove-button ${local.class ?? ""}`;
21
+ },
22
+ get ["aria-label"]() {
23
+ return local.ariaLabel;
24
+ },
25
+ get ["aria-busy"]() {
26
+ return local.loading ? "true" : undefined;
27
+ },
28
+ get disabled() {
29
+ return local.disabled || local.loading;
30
+ },
31
+ get children() {
32
+ return _$createComponent(Show, {
33
+ get when() {
34
+ return local.loading;
35
+ },
36
+ get fallback() {
37
+ return [_$getNextElement(_tmpl$2), _$getNextElement(_tmpl$3)];
38
+ },
39
+ get children() {
40
+ return _$getNextElement(_tmpl$);
41
+ }
42
+ });
43
+ }
44
+ }));
45
+ }
46
+ export default RemoveButton;
47
+ //# sourceMappingURL=RemoveButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Show","splitProps","Tooltip","RemoveButton","props","local","rest","_$createComponent","Trigger","_$mergeProps","content","ariaLabel","type","class","aria-label","aria-busy","loading","undefined","disabled","children","when","fallback","_$getNextElement","_tmpl$2","_tmpl$3","_tmpl$"],"sources":["actions/RemoveButton.tsx"],"sourcesContent":["import { type JSX, Show, splitProps } from \"solid-js\";\nimport { Tooltip } from \"../feedback/Tooltip\";\n\nexport type RemoveButtonProps = Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, \"aria-label\" | \"children\"> & {\n ariaLabel: string;\n loading?: boolean;\n};\n\nexport function RemoveButton(props: RemoveButtonProps): JSX.Element {\n const [local, rest] = splitProps(props, [\"ariaLabel\", \"class\", \"disabled\", \"loading\"]);\n return (\n <Tooltip.Trigger\n content={local.ariaLabel}\n {...rest}\n type=\"button\"\n class={`k2b-remove-button ${local.class ?? \"\"}`}\n aria-label={local.ariaLabel}\n aria-busy={local.loading ? \"true\" : undefined}\n disabled={local.disabled || local.loading}\n >\n <Show\n when={local.loading}\n fallback={\n <>\n <i class=\"ti ti-x k2b-remove-button__idle\" aria-hidden=\"true\" />\n <i class=\"ti ti-trash k2b-remove-button__hover\" aria-hidden=\"true\" />\n </>\n }\n >\n <i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" />\n </Show>\n </Tooltip.Trigger>\n );\n}\n\nexport default RemoveButton;\n"],"mappings":";;;;;;;;AAAA,SAAmBA,IAAI,EAAEC,UAAU,QAAQ,UAAU;AACrD,SAASC,OAAO,QAAQ,qBAAqB;AAO7C,OAAO,SAASC,YAAYA,CAACC,KAAwB,EAAe;EAClE,MAAM,CAACC,KAAK,EAAEC,IAAI,CAAC,GAAGL,UAAU,CAACG,KAAK,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;EACtF,OAAAG,iBAAA,CACGL,OAAO,CAACM,OAAO,EAAAC,YAAA;IAAA,IACdC,OAAOA,CAAA;MAAA,OAAEL,KAAK,CAACM,SAAS;IAAA;EAAA,GACpBL,IAAI;IACRM,IAAI;IAAA,aAAAC,CAAA;MAAA,OACG,qBAAqBR,KAAK,CAACQ,KAAK,IAAI,EAAE,EAAE;IAAA;IAAA,kBAAAC,CAAA;MAAA,OACnCT,KAAK,CAACM,SAAS;IAAA;IAAA,iBAAAI,CAAA;MAAA,OAChBV,KAAK,CAACW,OAAO,GAAG,MAAM,GAAGC,SAAS;IAAA;IAAA,IAC7CC,QAAQA,CAAA;MAAA,OAAEb,KAAK,CAACa,QAAQ,IAAIb,KAAK,CAACW,OAAO;IAAA;IAAA,IAAAG,SAAA;MAAA,OAAAZ,iBAAA,CAExCP,IAAI;QAAA,IACHoB,IAAIA,CAAA;UAAA,OAAEf,KAAK,CAACW,OAAO;QAAA;QAAA,IACnBK,QAAQA,CAAA;UAAA,QAAAC,gBAAA,CAAAC,OAAA,GAAAD,gBAAA,CAAAE,OAAA;QAAA;QAAA,IAAAL,SAAA;UAAA,OAAAG,gBAAA,CAAAG,MAAA;QAAA;MAAA;IAAA;EAAA;AAWhB;AAEA,eAAetB,YAAY","ignoreList":[]}
@@ -0,0 +1,138 @@
1
+ import { template as _$template } from "solid-js/web";
2
+ import { delegateEvents as _$delegateEvents } from "solid-js/web";
3
+ import { setProperty as _$setProperty } from "solid-js/web";
4
+ import { runHydrationEvents as _$runHydrationEvents } from "solid-js/web";
5
+ import { getNextMarker as _$getNextMarker } from "solid-js/web";
6
+ import { memo as _$memo } from "solid-js/web";
7
+ import { use as _$use } from "solid-js/web";
8
+ import { setAttribute as _$setAttribute } from "solid-js/web";
9
+ import { className as _$className } from "solid-js/web";
10
+ import { effect as _$effect } from "solid-js/web";
11
+ import { getNextElement as _$getNextElement } from "solid-js/web";
12
+ import { insert as _$insert } from "solid-js/web";
13
+ import { createComponent as _$createComponent } from "solid-js/web";
14
+ var _tmpl$ = /*#__PURE__*/_$template(`<div role=radiogroup aria-orientation=horizontal>`),
15
+ _tmpl$2 = /*#__PURE__*/_$template(`<button type=button role=radio class=k2b-segmented-control__option><!$><!/><span>`),
16
+ _tmpl$3 = /*#__PURE__*/_$template(`<i aria-hidden=true>`);
17
+ import { createMemo, For } from "solid-js";
18
+ import { useUiMessages } from "../intl/messages";
19
+ /** Controlled radio group with automatic selection during arrow-key navigation. */
20
+ export function SegmentedControl(props) {
21
+ const messages = useUiMessages();
22
+ const buttons = [];
23
+ const currentValue = createMemo(() => typeof props.value === "function" ? props.value() : props.value);
24
+ const enabled = createMemo(() => props.options.map((option, index) => ({
25
+ option,
26
+ index
27
+ })).filter(({
28
+ option
29
+ }) => !props.disabled && !option.disabled));
30
+ const selectedEnabled = createMemo(() => props.options.some(option => option.value === currentValue() && !props.disabled && !option.disabled));
31
+ const emit = value => props.onValueChange(value);
32
+ const select = index => {
33
+ const option = props.options[index];
34
+ if (!option || props.disabled || option.disabled) return;
35
+ emit(option.value);
36
+ queueMicrotask(() => buttons[index]?.focus());
37
+ };
38
+ const selectRelative = (currentIndex, direction) => {
39
+ const available = enabled();
40
+ if (available.length === 0) return;
41
+ const current = available.findIndex(({
42
+ index
43
+ }) => index === currentIndex);
44
+ const next = available[(current + direction + available.length) % available.length] ?? available[0];
45
+ if (next) select(next.index);
46
+ };
47
+ const edge = last => {
48
+ const available = enabled();
49
+ const next = last ? available.at(-1) : available[0];
50
+ if (next) select(next.index);
51
+ };
52
+ const tabIndex = (index, value) => {
53
+ if (props.disabled || props.options[index]?.disabled) return -1;
54
+ if (currentValue() === value) return 0;
55
+ return !selectedEnabled() && enabled()[0]?.index === index ? 0 : -1;
56
+ };
57
+ const divider = (index, value) => index < props.options.length - 1 && currentValue() !== value && currentValue() !== props.options[index + 1]?.value;
58
+ return (() => {
59
+ var _el$ = _$getNextElement(_tmpl$);
60
+ _$insert(_el$, _$createComponent(For, {
61
+ get each() {
62
+ return props.options;
63
+ },
64
+ children: (option, index) => (() => {
65
+ var _el$2 = _$getNextElement(_tmpl$2),
66
+ _el$4 = _el$2.firstChild,
67
+ [_el$5, _co$] = _$getNextMarker(_el$4.nextSibling),
68
+ _el$3 = _el$5.nextSibling;
69
+ _el$2.$$keydown = event => {
70
+ if (event.key === "ArrowRight" || event.key === "ArrowDown") {
71
+ event.preventDefault();
72
+ selectRelative(index(), 1);
73
+ } else if (event.key === "ArrowLeft" || event.key === "ArrowUp") {
74
+ event.preventDefault();
75
+ selectRelative(index(), -1);
76
+ } else if (event.key === "Home" || event.key === "End") {
77
+ event.preventDefault();
78
+ edge(event.key === "End");
79
+ }
80
+ };
81
+ _el$2.$$click = () => emit(option.value);
82
+ _$use(element => {
83
+ buttons[index()] = element;
84
+ }, _el$2);
85
+ _$insert(_el$2, (() => {
86
+ var _c$ = _$memo(() => !!option.icon);
87
+ return () => _c$() && (() => {
88
+ var _el$6 = _$getNextElement(_tmpl$3);
89
+ _$effect(() => _$className(_el$6, option.icon));
90
+ return _el$6;
91
+ })();
92
+ })(), _el$5, _co$);
93
+ _$insert(_el$3, () => option.label);
94
+ _$effect(_p$ => {
95
+ var _v$5 = currentValue() === option.value,
96
+ _v$6 = currentValue() === option.value ? "true" : undefined,
97
+ _v$7 = divider(index(), option.value) ? "true" : undefined,
98
+ _v$8 = props.disabled || option.disabled,
99
+ _v$9 = tabIndex(index(), option.value);
100
+ _v$5 !== _p$.e && _$setAttribute(_el$2, "aria-checked", _p$.e = _v$5);
101
+ _v$6 !== _p$.t && _$setAttribute(_el$2, "data-selected", _p$.t = _v$6);
102
+ _v$7 !== _p$.a && _$setAttribute(_el$2, "data-divider", _p$.a = _v$7);
103
+ _v$8 !== _p$.o && _$setProperty(_el$2, "disabled", _p$.o = _v$8);
104
+ _v$9 !== _p$.i && _$setAttribute(_el$2, "tabindex", _p$.i = _v$9);
105
+ return _p$;
106
+ }, {
107
+ e: undefined,
108
+ t: undefined,
109
+ a: undefined,
110
+ o: undefined,
111
+ i: undefined
112
+ });
113
+ _$runHydrationEvents();
114
+ return _el$2;
115
+ })()
116
+ }));
117
+ _$effect(_p$ => {
118
+ var _v$ = `k2b-segmented-control ${props.class ?? ""}`,
119
+ _v$2 = props.size ?? "md",
120
+ _v$3 = props.ariaLabel ?? props.label ?? messages().options,
121
+ _v$4 = props.disabled ? "true" : undefined;
122
+ _v$ !== _p$.e && _$className(_el$, _p$.e = _v$);
123
+ _v$2 !== _p$.t && _$setAttribute(_el$, "data-size", _p$.t = _v$2);
124
+ _v$3 !== _p$.a && _$setAttribute(_el$, "aria-label", _p$.a = _v$3);
125
+ _v$4 !== _p$.o && _$setAttribute(_el$, "aria-disabled", _p$.o = _v$4);
126
+ return _p$;
127
+ }, {
128
+ e: undefined,
129
+ t: undefined,
130
+ a: undefined,
131
+ o: undefined
132
+ });
133
+ return _el$;
134
+ })();
135
+ }
136
+ export default SegmentedControl;
137
+ _$delegateEvents(["click", "keydown"]);
138
+ //# sourceMappingURL=SegmentedControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createMemo","For","useUiMessages","SegmentedControl","props","messages","buttons","currentValue","value","enabled","options","map","option","index","filter","disabled","selectedEnabled","some","emit","onValueChange","select","queueMicrotask","focus","selectRelative","currentIndex","direction","available","length","current","findIndex","next","edge","last","at","tabIndex","divider","_el$","_$getNextElement","_tmpl$","_$insert","_$createComponent","each","children","_el$2","_tmpl$2","_el$4","firstChild","_el$5","_co$","_$getNextMarker","nextSibling","_el$3","$$keydown","event","key","preventDefault","$$click","_$use","element","_c$","_$memo","icon","_el$6","_tmpl$3","_$effect","_$className","label","_p$","_v$5","_v$6","undefined","_v$7","_v$8","_v$9","e","_$setAttribute","t","a","o","_$setProperty","i","_$runHydrationEvents","_v$","class","_v$2","size","_v$3","ariaLabel","_v$4","_$delegateEvents"],"sources":["actions/SegmentedControl.tsx"],"sourcesContent":["import { createMemo, For, type JSX } from \"solid-js\";\nimport { useUiMessages } from \"../intl/messages\";\n\nexport type SegmentOption<T extends string = string> = {\n value: T;\n label: JSX.Element;\n icon?: string;\n disabled?: boolean;\n};\n\nexport type SegmentedControlProps<T extends string = string> = {\n options: readonly SegmentOption<T>[];\n value: T | (() => T);\n onValueChange: (value: T) => void;\n disabled?: boolean;\n ariaLabel?: string;\n label?: string;\n size?: \"sm\" | \"md\";\n class?: string;\n};\n\n/** Controlled radio group with automatic selection during arrow-key navigation. */\nexport function SegmentedControl<T extends string = string>(props: SegmentedControlProps<T>): JSX.Element {\n const messages = useUiMessages();\n const buttons: HTMLButtonElement[] = [];\n const currentValue = createMemo<T>(() => (typeof props.value === \"function\" ? props.value() : props.value));\n const enabled = createMemo(() =>\n props.options.map((option, index) => ({ option, index })).filter(({ option }) => !props.disabled && !option.disabled),\n );\n const selectedEnabled = createMemo(() =>\n props.options.some((option) => option.value === currentValue() && !props.disabled && !option.disabled),\n );\n const emit = (value: T) => props.onValueChange(value);\n const select = (index: number) => {\n const option = props.options[index];\n if (!option || props.disabled || option.disabled) return;\n emit(option.value);\n queueMicrotask(() => buttons[index]?.focus());\n };\n const selectRelative = (currentIndex: number, direction: 1 | -1) => {\n const available = enabled();\n if (available.length === 0) return;\n const current = available.findIndex(({ index }) => index === currentIndex);\n const next = available[(current + direction + available.length) % available.length] ?? available[0];\n if (next) select(next.index);\n };\n const edge = (last: boolean) => {\n const available = enabled();\n const next = last ? available.at(-1) : available[0];\n if (next) select(next.index);\n };\n const tabIndex = (index: number, value: T) => {\n if (props.disabled || props.options[index]?.disabled) return -1;\n if (currentValue() === value) return 0;\n return !selectedEnabled() && enabled()[0]?.index === index ? 0 : -1;\n };\n const divider = (index: number, value: T) =>\n index < props.options.length - 1 && currentValue() !== value && currentValue() !== props.options[index + 1]?.value;\n\n return (\n <div\n class={`k2b-segmented-control ${props.class ?? \"\"}`}\n data-size={props.size ?? \"md\"}\n role=\"radiogroup\"\n aria-label={props.ariaLabel ?? props.label ?? messages().options}\n aria-orientation=\"horizontal\"\n aria-disabled={props.disabled ? \"true\" : undefined}\n >\n <For each={props.options}>\n {(option, index) => (\n <button\n ref={(element) => {\n buttons[index()] = element;\n }}\n type=\"button\"\n role=\"radio\"\n class=\"k2b-segmented-control__option\"\n aria-checked={currentValue() === option.value}\n data-selected={currentValue() === option.value ? \"true\" : undefined}\n data-divider={divider(index(), option.value) ? \"true\" : undefined}\n disabled={props.disabled || option.disabled}\n tabIndex={tabIndex(index(), option.value)}\n onClick={() => emit(option.value)}\n onKeyDown={(event) => {\n if (event.key === \"ArrowRight\" || event.key === \"ArrowDown\") {\n event.preventDefault();\n selectRelative(index(), 1);\n } else if (event.key === \"ArrowLeft\" || event.key === \"ArrowUp\") {\n event.preventDefault();\n selectRelative(index(), -1);\n } else if (event.key === \"Home\" || event.key === \"End\") {\n event.preventDefault();\n edge(event.key === \"End\");\n }\n }}\n >\n {option.icon && <i class={option.icon} aria-hidden=\"true\" />}\n <span>{option.label}</span>\n </button>\n )}\n </For>\n </div>\n );\n}\n\nexport default SegmentedControl;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,76 @@
1
+ import { template as _$template } from "solid-js/web";
2
+ import { getNextElement as _$getNextElement } from "solid-js/web";
3
+ import { createComponent as _$createComponent } from "solid-js/web";
4
+ import { mergeProps as _$mergeProps } from "solid-js/web";
5
+ import { memo as _$memo } from "solid-js/web";
6
+ var _tmpl$ = /*#__PURE__*/_$template(`<i class="ti ti-chevron-down"aria-hidden=true>`);
7
+ import { splitProps } from "solid-js";
8
+ import { Button } from "./Button";
9
+ import { Dropdown } from "./Dropdown";
10
+ /** One primary button action with a separate menu of related alternatives. */
11
+ export function SplitButton(props) {
12
+ const [local, buttonProps] = splitProps(props, ["children", "class", "disabled", "items", "loading", "menuLabel", "menuPosition", "menuWidth", "size", "variant"]);
13
+ const disabled = () => Boolean(local.disabled || local.loading);
14
+ return _$createComponent(Dropdown.Root, {
15
+ "class": "k2b-split-button",
16
+ get disabled() {
17
+ return disabled();
18
+ },
19
+ get items() {
20
+ return local.items;
21
+ },
22
+ get label() {
23
+ return local.menuLabel;
24
+ },
25
+ get position() {
26
+ return local.menuPosition ?? "bottom-left";
27
+ },
28
+ get width() {
29
+ return local.menuWidth;
30
+ },
31
+ get children() {
32
+ return [_$createComponent(Button, _$mergeProps(buttonProps, {
33
+ get ["class"]() {
34
+ return `k2b-split-button__primary ${local.class ?? ""}`;
35
+ },
36
+ get disabled() {
37
+ return local.disabled;
38
+ },
39
+ get loading() {
40
+ return local.loading;
41
+ },
42
+ get size() {
43
+ return local.size;
44
+ },
45
+ get variant() {
46
+ return local.variant ?? "primary";
47
+ },
48
+ get children() {
49
+ return local.children;
50
+ }
51
+ })), _$createComponent(Dropdown.Trigger, {
52
+ "class": "k2b-split-button__menu-trigger",
53
+ get disabled() {
54
+ return disabled();
55
+ },
56
+ iconOnly: true,
57
+ get label() {
58
+ return local.menuLabel;
59
+ },
60
+ get size() {
61
+ return local.size;
62
+ },
63
+ get title() {
64
+ return local.menuLabel;
65
+ },
66
+ get variant() {
67
+ return local.variant ?? "primary";
68
+ },
69
+ get children() {
70
+ return _$getNextElement(_tmpl$);
71
+ }
72
+ })];
73
+ }
74
+ });
75
+ }
76
+ //# sourceMappingURL=SplitButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["splitProps","Button","Dropdown","SplitButton","props","local","buttonProps","disabled","Boolean","loading","_$createComponent","Root","items","label","menuLabel","position","menuPosition","width","menuWidth","children","_$mergeProps","class","size","variant","Trigger","iconOnly","title","_$getNextElement","_tmpl$"],"sources":["actions/SplitButton.tsx"],"sourcesContent":["import { type JSX, splitProps } from \"solid-js\";\nimport { Button, type ButtonProps } from \"./Button\";\nimport { Dropdown, type DropdownItem, type DropdownPosition } from \"./Dropdown\";\n\nexport type SplitButtonProps = ButtonProps & {\n /** Actions shown from the secondary menu trigger. */\n items: readonly DropdownItem[];\n /** Accessible name and title for the icon-only menu trigger. */\n menuLabel: string;\n menuPosition?: DropdownPosition | (() => DropdownPosition);\n menuWidth?: string;\n};\n\n/** One primary button action with a separate menu of related alternatives. */\nexport function SplitButton(props: SplitButtonProps): JSX.Element {\n const [local, buttonProps] = splitProps(props, [\n \"children\",\n \"class\",\n \"disabled\",\n \"items\",\n \"loading\",\n \"menuLabel\",\n \"menuPosition\",\n \"menuWidth\",\n \"size\",\n \"variant\",\n ]);\n const disabled = () => Boolean(local.disabled || local.loading);\n\n return (\n <Dropdown.Root\n class=\"k2b-split-button\"\n disabled={disabled()}\n items={local.items}\n label={local.menuLabel}\n position={local.menuPosition ?? \"bottom-left\"}\n width={local.menuWidth}\n >\n <Button\n {...buttonProps}\n class={`k2b-split-button__primary ${local.class ?? \"\"}`}\n disabled={local.disabled}\n loading={local.loading}\n size={local.size}\n variant={local.variant ?? \"primary\"}\n >\n {local.children}\n </Button>\n <Dropdown.Trigger\n class=\"k2b-split-button__menu-trigger\"\n disabled={disabled()}\n iconOnly\n label={local.menuLabel}\n size={local.size}\n title={local.menuLabel}\n variant={local.variant ?? \"primary\"}\n >\n <i class=\"ti ti-chevron-down\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n );\n}\n"],"mappings":";;;;;;AAAA,SAAmBA,UAAU,QAAQ,UAAU;AAC/C,SAASC,MAAM,QAA0B,UAAU;AACnD,SAASC,QAAQ,QAAkD,YAAY;AAW/E;AACA,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAe;EAChE,MAAM,CAACC,KAAK,EAAEC,WAAW,CAAC,GAAGN,UAAU,CAACI,KAAK,EAAE,CAC7C,UAAU,EACV,OAAO,EACP,UAAU,EACV,OAAO,EACP,SAAS,EACT,WAAW,EACX,cAAc,EACd,WAAW,EACX,MAAM,EACN,SAAS,CACV,CAAC;EACF,MAAMG,QAAQ,GAAGA,CAAA,KAAMC,OAAO,CAACH,KAAK,CAACE,QAAQ,IAAIF,KAAK,CAACI,OAAO,CAAC;EAE/D,OAAAC,iBAAA,CACGR,QAAQ,CAACS,IAAI;IAAA;IAAA,IAEZJ,QAAQA,CAAA;MAAA,OAAEA,QAAQ,CAAC,CAAC;IAAA;IAAA,IACpBK,KAAKA,CAAA;MAAA,OAAEP,KAAK,CAACO,KAAK;IAAA;IAAA,IAClBC,KAAKA,CAAA;MAAA,OAAER,KAAK,CAACS,SAAS;IAAA;IAAA,IACtBC,QAAQA,CAAA;MAAA,OAAEV,KAAK,CAACW,YAAY,IAAI,aAAa;IAAA;IAAA,IAC7CC,KAAKA,CAAA;MAAA,OAAEZ,KAAK,CAACa,SAAS;IAAA;IAAA,IAAAC,SAAA;MAAA,QAAAT,iBAAA,CAErBT,MAAM,EAAAmB,YAAA,CACDd,WAAW;QAAA,aAAAe,CAAA;UAAA,OACR,6BAA6BhB,KAAK,CAACgB,KAAK,IAAI,EAAE,EAAE;QAAA;QAAA,IACvDd,QAAQA,CAAA;UAAA,OAAEF,KAAK,CAACE,QAAQ;QAAA;QAAA,IACxBE,OAAOA,CAAA;UAAA,OAAEJ,KAAK,CAACI,OAAO;QAAA;QAAA,IACtBa,IAAIA,CAAA;UAAA,OAAEjB,KAAK,CAACiB,IAAI;QAAA;QAAA,IAChBC,OAAOA,CAAA;UAAA,OAAElB,KAAK,CAACkB,OAAO,IAAI,SAAS;QAAA;QAAA,IAAAJ,SAAA;UAAA,OAElCd,KAAK,CAACc,QAAQ;QAAA;MAAA,KAAAT,iBAAA,CAEhBR,QAAQ,CAACsB,OAAO;QAAA;QAAA,IAEfjB,QAAQA,CAAA;UAAA,OAAEA,QAAQ,CAAC,CAAC;QAAA;QACpBkB,QAAQ;QAAA,IACRZ,KAAKA,CAAA;UAAA,OAAER,KAAK,CAACS,SAAS;QAAA;QAAA,IACtBQ,IAAIA,CAAA;UAAA,OAAEjB,KAAK,CAACiB,IAAI;QAAA;QAAA,IAChBI,KAAKA,CAAA;UAAA,OAAErB,KAAK,CAACS,SAAS;QAAA;QAAA,IACtBS,OAAOA,CAAA;UAAA,OAAElB,KAAK,CAACkB,OAAO,IAAI,SAAS;QAAA;QAAA,IAAAJ,SAAA;UAAA,OAAAQ,gBAAA,CAAAC,MAAA;QAAA;MAAA;IAAA;EAAA;AAM3C","ignoreList":[]}