@k2b/ui 0.2.0 → 0.3.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 (366) hide show
  1. package/dist/browser/actions/Button.js +11 -2
  2. package/dist/browser/actions/Button.js.map +1 -1
  3. package/dist/browser/actions/Disclosure.js +11 -8
  4. package/dist/browser/actions/Disclosure.js.map +1 -1
  5. package/dist/browser/actions/Dropdown.js +4 -1
  6. package/dist/browser/actions/Dropdown.js.map +1 -1
  7. package/dist/browser/actions/FilterChip.js +16 -2
  8. package/dist/browser/actions/FilterChip.js.map +1 -1
  9. package/dist/browser/actions/SplitButton.js +69 -22
  10. package/dist/browser/actions/SplitButton.js.map +1 -1
  11. package/dist/browser/actions/SpotlightSearch.js +3 -7
  12. package/dist/browser/actions/SpotlightSearch.js.map +1 -1
  13. package/dist/browser/actions/Tabs.js +132 -47
  14. package/dist/browser/actions/Tabs.js.map +1 -1
  15. package/dist/browser/actions/index.js +1 -1
  16. package/dist/browser/actions/index.js.map +1 -1
  17. package/dist/browser/chat/ChatComposer.js +751 -423
  18. package/dist/browser/chat/ChatComposer.js.map +1 -1
  19. package/dist/browser/chat/ChatContextPopup.js +123 -0
  20. package/dist/browser/chat/ChatContextPopup.js.map +1 -0
  21. package/dist/browser/chat/ChatPrimitives.js +141 -78
  22. package/dist/browser/chat/ChatPrimitives.js.map +1 -1
  23. package/dist/browser/chat/ChatTasks.js +112 -0
  24. package/dist/browser/chat/ChatTasks.js.map +1 -0
  25. package/dist/browser/chat/ChatTimeline.js +31 -14
  26. package/dist/browser/chat/ChatTimeline.js.map +1 -1
  27. package/dist/browser/chat/chat-behavior.js +0 -5
  28. package/dist/browser/chat/chat-behavior.js.map +1 -1
  29. package/dist/browser/chat/composer-document.js +55 -0
  30. package/dist/browser/chat/composer-document.js.map +1 -0
  31. package/dist/browser/chat/index.js +6 -1
  32. package/dist/browser/chat/index.js.map +1 -1
  33. package/dist/browser/chat/types.js.map +1 -1
  34. package/dist/browser/content/Chart.js +148 -239
  35. package/dist/browser/content/Chart.js.map +1 -1
  36. package/dist/browser/content/ChartExplorer.js +324 -0
  37. package/dist/browser/content/ChartExplorer.js.map +1 -0
  38. package/dist/browser/content/ChartExplorerControls.js +153 -0
  39. package/dist/browser/content/ChartExplorerControls.js.map +1 -0
  40. package/dist/browser/content/ChartFilterControls.js +200 -0
  41. package/dist/browser/content/ChartFilterControls.js.map +1 -0
  42. package/dist/browser/content/ChartSnapshotView.js +113 -0
  43. package/dist/browser/content/ChartSnapshotView.js.map +1 -0
  44. package/dist/browser/content/DataTable.js +48 -32
  45. package/dist/browser/content/DataTable.js.map +1 -1
  46. package/dist/browser/content/FileBrowser.js +3 -0
  47. package/dist/browser/content/FileBrowser.js.map +1 -1
  48. package/dist/browser/content/FileGrid.js +93 -0
  49. package/dist/browser/content/FileGrid.js.map +1 -0
  50. package/dist/browser/content/FileTree.js +2 -2
  51. package/dist/browser/content/FileTree.js.map +1 -1
  52. package/dist/browser/content/FileView.js +507 -162
  53. package/dist/browser/content/FileView.js.map +1 -1
  54. package/dist/browser/content/MarkdownView.js +6 -0
  55. package/dist/browser/content/MarkdownView.js.map +1 -1
  56. package/dist/browser/content/PdfPreview.js +107 -90
  57. package/dist/browser/content/PdfPreview.js.map +1 -1
  58. package/dist/browser/content/chart-cursor.js +33 -0
  59. package/dist/browser/content/chart-cursor.js.map +1 -0
  60. package/dist/browser/content/chart-explorer.js +147 -0
  61. package/dist/browser/content/chart-explorer.js.map +1 -0
  62. package/dist/browser/content/chart-inspection.js +447 -0
  63. package/dist/browser/content/chart-inspection.js.map +1 -0
  64. package/dist/browser/content/chart-line-gaps.js +53 -0
  65. package/dist/browser/content/chart-line-gaps.js.map +1 -0
  66. package/dist/browser/content/chart-map-viewport.js +5 -1
  67. package/dist/browser/content/chart-map-viewport.js.map +1 -1
  68. package/dist/browser/content/chart-snapshot.js +63 -0
  69. package/dist/browser/content/chart-snapshot.js.map +1 -0
  70. package/dist/browser/content/chart-state-timeline.js +32 -4
  71. package/dist/browser/content/chart-state-timeline.js.map +1 -1
  72. package/dist/browser/content/chart-svg.js +54 -0
  73. package/dist/browser/content/chart-svg.js.map +1 -0
  74. package/dist/browser/content/collection-selection.js +109 -0
  75. package/dist/browser/content/collection-selection.js.map +1 -0
  76. package/dist/browser/content/delimited-preferences.js +21 -0
  77. package/dist/browser/content/delimited-preferences.js.map +1 -0
  78. package/dist/browser/content/file-tree.js.map +1 -1
  79. package/dist/browser/content/file-view-preview.js +11 -7
  80. package/dist/browser/content/file-view-preview.js.map +1 -1
  81. package/dist/browser/content/index.js +9 -0
  82. package/dist/browser/content/index.js.map +1 -1
  83. package/dist/browser/feedback/InlineGuidance.js +17 -3
  84. package/dist/browser/feedback/InlineGuidance.js.map +1 -1
  85. package/dist/browser/feedback/dialog-core.js +81 -7
  86. package/dist/browser/feedback/dialog-core.js.map +1 -1
  87. package/dist/browser/feedback/prompts.js +6 -0
  88. package/dist/browser/feedback/prompts.js.map +1 -1
  89. package/dist/browser/feedback/toast.js +29 -6
  90. package/dist/browser/feedback/toast.js.map +1 -1
  91. package/dist/browser/inputs/SelectChip.js +3 -2
  92. package/dist/browser/inputs/SelectChip.js.map +1 -1
  93. package/dist/browser/inputs/TextInput.js +7 -1
  94. package/dist/browser/inputs/TextInput.js.map +1 -1
  95. package/dist/browser/inputs/markdown/MarkdownEditor.js +61 -37
  96. package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
  97. package/dist/browser/intl/Format.js +89 -16
  98. package/dist/browser/intl/Format.js.map +1 -1
  99. package/dist/browser/intl/index.js.map +1 -1
  100. package/dist/browser/intl/messages.js +130 -2
  101. package/dist/browser/intl/messages.js.map +1 -1
  102. package/dist/browser/layout/AppWorkspace.js +712 -624
  103. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  104. package/dist/browser/layout/BottomSheet.js +95 -0
  105. package/dist/browser/layout/BottomSheet.js.map +1 -0
  106. package/dist/browser/layout/DetailPanel.js +56 -44
  107. package/dist/browser/layout/DetailPanel.js.map +1 -1
  108. package/dist/browser/layout/Navigation.js +278 -0
  109. package/dist/browser/layout/Navigation.js.map +1 -0
  110. package/dist/browser/layout/PanelDialog.js +219 -71
  111. package/dist/browser/layout/PanelDialog.js.map +1 -1
  112. package/dist/browser/layout/ScrollArea.js +21 -1
  113. package/dist/browser/layout/ScrollArea.js.map +1 -1
  114. package/dist/browser/layout/Settings.js.map +1 -1
  115. package/dist/browser/layout/SidebarItemPreview.js +183 -0
  116. package/dist/browser/layout/SidebarItemPreview.js.map +1 -0
  117. package/dist/browser/layout/app-workspace-controller.js +3 -0
  118. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  119. package/dist/browser/layout/index.js +3 -0
  120. package/dist/browser/layout/index.js.map +1 -1
  121. package/dist/browser/layout/navigation-model.js +23 -0
  122. package/dist/browser/layout/navigation-model.js.map +1 -0
  123. package/dist/browser/layout/scroll-fade.js +100 -0
  124. package/dist/browser/layout/scroll-fade.js.map +1 -0
  125. package/dist/browser/surfaces/DescriptionList.js.map +1 -1
  126. package/dist/browser/surfaces/StatusBadge.js +2 -1
  127. package/dist/browser/surfaces/StatusBadge.js.map +1 -1
  128. package/dist/fonts/ibm-plex-mono-cyrillic-400-italic-4aded3f2f2a7d27d.woff2 +0 -0
  129. package/dist/fonts/ibm-plex-mono-cyrillic-400-normal-7635422bd10ddbbc.woff2 +0 -0
  130. package/dist/fonts/ibm-plex-mono-cyrillic-500-normal-1d89462e86cb8e87.woff2 +0 -0
  131. package/dist/fonts/ibm-plex-mono-cyrillic-600-normal-2b05a8695c7f9f4a.woff2 +0 -0
  132. package/dist/fonts/ibm-plex-mono-cyrillic-ext-400-italic-a0b3b8cbe5a516e7.woff2 +0 -0
  133. package/dist/fonts/ibm-plex-mono-cyrillic-ext-400-normal-f8c22ec1804bd696.woff2 +0 -0
  134. package/dist/fonts/ibm-plex-mono-cyrillic-ext-500-normal-3febe5c7f22e4b07.woff2 +0 -0
  135. package/dist/fonts/ibm-plex-mono-cyrillic-ext-600-normal-83109cdd4f8665b4.woff2 +0 -0
  136. package/dist/fonts/ibm-plex-mono-latin-400-italic-0840095faae86403.woff2 +0 -0
  137. package/dist/fonts/ibm-plex-mono-latin-400-normal-08949f728dc52d52.woff2 +0 -0
  138. package/dist/fonts/ibm-plex-mono-latin-500-normal-01d285447409c8a5.woff2 +0 -0
  139. package/dist/fonts/ibm-plex-mono-latin-600-normal-0d1f0b8d0722224e.woff2 +0 -0
  140. package/dist/fonts/ibm-plex-mono-latin-ext-400-italic-1b07eee6df7d26b3.woff2 +0 -0
  141. package/dist/fonts/ibm-plex-mono-latin-ext-400-normal-6bc0f226a5b7884a.woff2 +0 -0
  142. package/dist/fonts/ibm-plex-mono-latin-ext-500-normal-6bb06407c97584b0.woff2 +0 -0
  143. package/dist/fonts/ibm-plex-mono-latin-ext-600-normal-32057cf50dd14bdb.woff2 +0 -0
  144. package/dist/fonts/ibm-plex-mono-vietnamese-400-italic-a6bab38af4f9c761.woff2 +0 -0
  145. package/dist/fonts/ibm-plex-mono-vietnamese-400-normal-62632b6375305e70.woff2 +0 -0
  146. package/dist/fonts/ibm-plex-mono-vietnamese-500-normal-781633d95de88040.woff2 +0 -0
  147. package/dist/fonts/ibm-plex-mono-vietnamese-600-normal-51b74d53e106ba8a.woff2 +0 -0
  148. package/dist/fonts/ibm-plex-sans-cyrillic-400-italic-e8731a7e2b00fc4f.woff2 +0 -0
  149. package/dist/fonts/ibm-plex-sans-cyrillic-400-normal-69afad88a0740b6e.woff2 +0 -0
  150. package/dist/fonts/ibm-plex-sans-cyrillic-500-normal-200be3a2a6b1789f.woff2 +0 -0
  151. package/dist/fonts/ibm-plex-sans-cyrillic-600-normal-730becc6f005c18c.woff2 +0 -0
  152. package/dist/fonts/ibm-plex-sans-cyrillic-700-normal-40540598b4c9eb2c.woff2 +0 -0
  153. package/dist/fonts/ibm-plex-sans-cyrillic-ext-400-italic-4ffb25726a7ce4cc.woff2 +0 -0
  154. package/dist/fonts/ibm-plex-sans-cyrillic-ext-400-normal-e2580ad78906551e.woff2 +0 -0
  155. package/dist/fonts/ibm-plex-sans-cyrillic-ext-500-normal-08578d906af6d986.woff2 +0 -0
  156. package/dist/fonts/ibm-plex-sans-cyrillic-ext-600-normal-d60d3d0b182753d5.woff2 +0 -0
  157. package/dist/fonts/ibm-plex-sans-cyrillic-ext-700-normal-d07dd53642480097.woff2 +0 -0
  158. package/dist/fonts/ibm-plex-sans-greek-400-italic-1bc10b01688ba9fa.woff2 +0 -0
  159. package/dist/fonts/ibm-plex-sans-greek-400-normal-02296067bc904d2a.woff2 +0 -0
  160. package/dist/fonts/ibm-plex-sans-greek-500-normal-8cb6e20b4dbbaa5f.woff2 +0 -0
  161. package/dist/fonts/ibm-plex-sans-greek-600-normal-0a9ebd9019415ee9.woff2 +0 -0
  162. package/dist/fonts/ibm-plex-sans-greek-700-normal-c949641d10a3bebc.woff2 +0 -0
  163. package/dist/fonts/ibm-plex-sans-latin-400-italic-6de912e531b6c980.woff2 +0 -0
  164. package/dist/fonts/ibm-plex-sans-latin-400-normal-3b646991d30055a9.woff2 +0 -0
  165. package/dist/fonts/ibm-plex-sans-latin-500-normal-0717336fb31fcdcd.woff2 +0 -0
  166. package/dist/fonts/ibm-plex-sans-latin-600-normal-8960851d691c054e.woff2 +0 -0
  167. package/dist/fonts/ibm-plex-sans-latin-700-normal-42e7b0c143c19df9.woff2 +0 -0
  168. package/dist/fonts/ibm-plex-sans-latin-ext-400-italic-c5c00e8a32022dfe.woff2 +0 -0
  169. package/dist/fonts/ibm-plex-sans-latin-ext-400-normal-c93d2a12aaa280f6.woff2 +0 -0
  170. package/dist/fonts/ibm-plex-sans-latin-ext-500-normal-2846035d85100f84.woff2 +0 -0
  171. package/dist/fonts/ibm-plex-sans-latin-ext-600-normal-b25dfd4f979e442a.woff2 +0 -0
  172. package/dist/fonts/ibm-plex-sans-latin-ext-700-normal-92f0392bd74fa395.woff2 +0 -0
  173. package/dist/fonts/ibm-plex-sans-vietnamese-400-italic-675d4bace127bffb.woff2 +0 -0
  174. package/dist/fonts/ibm-plex-sans-vietnamese-400-normal-771538f7f26551bd.woff2 +0 -0
  175. package/dist/fonts/ibm-plex-sans-vietnamese-500-normal-85ba3d9c2488a813.woff2 +0 -0
  176. package/dist/fonts/ibm-plex-sans-vietnamese-600-normal-5d34b803637befe3.woff2 +0 -0
  177. package/dist/fonts/ibm-plex-sans-vietnamese-700-normal-b79d0c4b68b85007.woff2 +0 -0
  178. package/dist/plex.css +1 -1
  179. package/dist/ssr/actions/Button.js +11 -2
  180. package/dist/ssr/actions/Button.js.map +1 -1
  181. package/dist/ssr/actions/Disclosure.js +2 -2
  182. package/dist/ssr/actions/Disclosure.js.map +1 -1
  183. package/dist/ssr/actions/Dropdown.js +4 -1
  184. package/dist/ssr/actions/Dropdown.js.map +1 -1
  185. package/dist/ssr/actions/FilterChip.js +16 -2
  186. package/dist/ssr/actions/FilterChip.js.map +1 -1
  187. package/dist/ssr/actions/SplitButton.js +69 -22
  188. package/dist/ssr/actions/SplitButton.js.map +1 -1
  189. package/dist/ssr/actions/SpotlightSearch.js +3 -7
  190. package/dist/ssr/actions/SpotlightSearch.js.map +1 -1
  191. package/dist/ssr/actions/Tabs.js +58 -11
  192. package/dist/ssr/actions/Tabs.js.map +1 -1
  193. package/dist/ssr/actions/index.js +1 -1
  194. package/dist/ssr/actions/index.js.map +1 -1
  195. package/dist/ssr/chat/ChatComposer.js +366 -134
  196. package/dist/ssr/chat/ChatComposer.js.map +1 -1
  197. package/dist/ssr/chat/ChatContextPopup.js +86 -0
  198. package/dist/ssr/chat/ChatContextPopup.js.map +1 -0
  199. package/dist/ssr/chat/ChatPrimitives.js +49 -11
  200. package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
  201. package/dist/ssr/chat/ChatTasks.js +48 -0
  202. package/dist/ssr/chat/ChatTasks.js.map +1 -0
  203. package/dist/ssr/chat/ChatTimeline.js +14 -4
  204. package/dist/ssr/chat/ChatTimeline.js.map +1 -1
  205. package/dist/ssr/chat/chat-behavior.js +0 -5
  206. package/dist/ssr/chat/chat-behavior.js.map +1 -1
  207. package/dist/ssr/chat/composer-document.js +55 -0
  208. package/dist/ssr/chat/composer-document.js.map +1 -0
  209. package/dist/ssr/chat/index.js +6 -1
  210. package/dist/ssr/chat/index.js.map +1 -1
  211. package/dist/ssr/chat/types.js.map +1 -1
  212. package/dist/ssr/content/Chart.js +121 -219
  213. package/dist/ssr/content/Chart.js.map +1 -1
  214. package/dist/ssr/content/ChartExplorer.js +257 -0
  215. package/dist/ssr/content/ChartExplorer.js.map +1 -0
  216. package/dist/ssr/content/ChartExplorerControls.js +105 -0
  217. package/dist/ssr/content/ChartExplorerControls.js.map +1 -0
  218. package/dist/ssr/content/ChartFilterControls.js +139 -0
  219. package/dist/ssr/content/ChartFilterControls.js.map +1 -0
  220. package/dist/ssr/content/ChartSnapshotView.js +57 -0
  221. package/dist/ssr/content/ChartSnapshotView.js.map +1 -0
  222. package/dist/ssr/content/DataTable.js +13 -9
  223. package/dist/ssr/content/DataTable.js.map +1 -1
  224. package/dist/ssr/content/FileBrowser.js +3 -0
  225. package/dist/ssr/content/FileBrowser.js.map +1 -1
  226. package/dist/ssr/content/FileGrid.js +38 -0
  227. package/dist/ssr/content/FileGrid.js.map +1 -0
  228. package/dist/ssr/content/FileTree.js +2 -2
  229. package/dist/ssr/content/FileTree.js.map +1 -1
  230. package/dist/ssr/content/FileView.js +352 -75
  231. package/dist/ssr/content/FileView.js.map +1 -1
  232. package/dist/ssr/content/MarkdownView.js +6 -0
  233. package/dist/ssr/content/MarkdownView.js.map +1 -1
  234. package/dist/ssr/content/PdfPreview.js +37 -24
  235. package/dist/ssr/content/PdfPreview.js.map +1 -1
  236. package/dist/ssr/content/chart-cursor.js +33 -0
  237. package/dist/ssr/content/chart-cursor.js.map +1 -0
  238. package/dist/ssr/content/chart-explorer.js +147 -0
  239. package/dist/ssr/content/chart-explorer.js.map +1 -0
  240. package/dist/ssr/content/chart-inspection.js +447 -0
  241. package/dist/ssr/content/chart-inspection.js.map +1 -0
  242. package/dist/ssr/content/chart-line-gaps.js +53 -0
  243. package/dist/ssr/content/chart-line-gaps.js.map +1 -0
  244. package/dist/ssr/content/chart-map-viewport.js +5 -1
  245. package/dist/ssr/content/chart-map-viewport.js.map +1 -1
  246. package/dist/ssr/content/chart-snapshot.js +63 -0
  247. package/dist/ssr/content/chart-snapshot.js.map +1 -0
  248. package/dist/ssr/content/chart-state-timeline.js +32 -4
  249. package/dist/ssr/content/chart-state-timeline.js.map +1 -1
  250. package/dist/ssr/content/chart-svg.js +54 -0
  251. package/dist/ssr/content/chart-svg.js.map +1 -0
  252. package/dist/ssr/content/collection-selection.js +109 -0
  253. package/dist/ssr/content/collection-selection.js.map +1 -0
  254. package/dist/ssr/content/delimited-preferences.js +21 -0
  255. package/dist/ssr/content/delimited-preferences.js.map +1 -0
  256. package/dist/ssr/content/file-tree.js.map +1 -1
  257. package/dist/ssr/content/file-view-preview.js +11 -7
  258. package/dist/ssr/content/file-view-preview.js.map +1 -1
  259. package/dist/ssr/content/index.js +9 -0
  260. package/dist/ssr/content/index.js.map +1 -1
  261. package/dist/ssr/feedback/InlineGuidance.js +17 -3
  262. package/dist/ssr/feedback/InlineGuidance.js.map +1 -1
  263. package/dist/ssr/feedback/dialog-core.js +81 -7
  264. package/dist/ssr/feedback/dialog-core.js.map +1 -1
  265. package/dist/ssr/feedback/prompts.js +6 -0
  266. package/dist/ssr/feedback/prompts.js.map +1 -1
  267. package/dist/ssr/feedback/toast.js +29 -6
  268. package/dist/ssr/feedback/toast.js.map +1 -1
  269. package/dist/ssr/inputs/SelectChip.js +3 -3
  270. package/dist/ssr/inputs/SelectChip.js.map +1 -1
  271. package/dist/ssr/inputs/TextInput.js.map +1 -1
  272. package/dist/ssr/inputs/markdown/MarkdownEditor.js +19 -11
  273. package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
  274. package/dist/ssr/intl/Format.js +61 -0
  275. package/dist/ssr/intl/Format.js.map +1 -1
  276. package/dist/ssr/intl/index.js.map +1 -1
  277. package/dist/ssr/intl/messages.js +130 -2
  278. package/dist/ssr/intl/messages.js.map +1 -1
  279. package/dist/ssr/layout/AppWorkspace.js +368 -275
  280. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  281. package/dist/ssr/layout/BottomSheet.js +43 -0
  282. package/dist/ssr/layout/BottomSheet.js.map +1 -0
  283. package/dist/ssr/layout/DetailPanel.js +11 -4
  284. package/dist/ssr/layout/DetailPanel.js.map +1 -1
  285. package/dist/ssr/layout/Navigation.js +181 -0
  286. package/dist/ssr/layout/Navigation.js.map +1 -0
  287. package/dist/ssr/layout/PanelDialog.js +111 -26
  288. package/dist/ssr/layout/PanelDialog.js.map +1 -1
  289. package/dist/ssr/layout/ScrollArea.js +16 -1
  290. package/dist/ssr/layout/ScrollArea.js.map +1 -1
  291. package/dist/ssr/layout/Settings.js.map +1 -1
  292. package/dist/ssr/layout/SidebarItemPreview.js +133 -0
  293. package/dist/ssr/layout/SidebarItemPreview.js.map +1 -0
  294. package/dist/ssr/layout/app-workspace-controller.js +3 -0
  295. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  296. package/dist/ssr/layout/index.js +3 -0
  297. package/dist/ssr/layout/index.js.map +1 -1
  298. package/dist/ssr/layout/navigation-model.js +23 -0
  299. package/dist/ssr/layout/navigation-model.js.map +1 -0
  300. package/dist/ssr/layout/scroll-fade.js +100 -0
  301. package/dist/ssr/layout/scroll-fade.js.map +1 -0
  302. package/dist/ssr/surfaces/DescriptionList.js.map +1 -1
  303. package/dist/ssr/surfaces/StatusBadge.js +2 -1
  304. package/dist/ssr/surfaces/StatusBadge.js.map +1 -1
  305. package/dist/styles.css +1 -1
  306. package/dist/tabler.css +1 -1
  307. package/dist/types/actions/Button.d.ts +4 -0
  308. package/dist/types/actions/Disclosure.d.ts +1 -0
  309. package/dist/types/actions/FilterChip.d.ts +4 -0
  310. package/dist/types/actions/SplitButton.d.ts +6 -0
  311. package/dist/types/actions/SpotlightSearch.d.ts +0 -4
  312. package/dist/types/actions/Tabs.d.ts +4 -0
  313. package/dist/types/actions/index.d.ts +1 -1
  314. package/dist/types/chat/ChatComposer.d.ts +20 -2
  315. package/dist/types/chat/ChatContextPopup.d.ts +6 -0
  316. package/dist/types/chat/ChatPrimitives.d.ts +4 -0
  317. package/dist/types/chat/ChatTasks.d.ts +15 -0
  318. package/dist/types/chat/ChatTimeline.d.ts +2 -0
  319. package/dist/types/chat/chat-behavior.d.ts +0 -3
  320. package/dist/types/chat/composer-document.d.ts +14 -0
  321. package/dist/types/chat/index.d.ts +8 -1
  322. package/dist/types/chat/types.d.ts +7 -0
  323. package/dist/types/content/Chart.d.ts +42 -23
  324. package/dist/types/content/ChartExplorer.d.ts +34 -0
  325. package/dist/types/content/ChartExplorerControls.d.ts +10 -0
  326. package/dist/types/content/ChartFilterControls.d.ts +21 -0
  327. package/dist/types/content/ChartSnapshotView.d.ts +11 -0
  328. package/dist/types/content/DataTable.d.ts +4 -0
  329. package/dist/types/content/FileBrowser.d.ts +1 -0
  330. package/dist/types/content/FileGrid.d.ts +21 -0
  331. package/dist/types/content/FileView.d.ts +20 -0
  332. package/dist/types/content/PdfPreview.d.ts +8 -1
  333. package/dist/types/content/chart-cursor.d.ts +15 -0
  334. package/dist/types/content/chart-explorer.d.ts +48 -0
  335. package/dist/types/content/chart-inspection.d.ts +40 -0
  336. package/dist/types/content/chart-line-gaps.d.ts +5 -0
  337. package/dist/types/content/chart-map-viewport.d.ts +1 -1
  338. package/dist/types/content/chart-snapshot.d.ts +26 -0
  339. package/dist/types/content/chart-svg.d.ts +21 -0
  340. package/dist/types/content/collection-selection.d.ts +24 -0
  341. package/dist/types/content/delimited-preferences.d.ts +11 -0
  342. package/dist/types/content/file-tree.d.ts +2 -0
  343. package/dist/types/content/file-view-preview.d.ts +4 -1
  344. package/dist/types/content/index.d.ts +15 -1
  345. package/dist/types/feedback/InlineGuidance.d.ts +1 -0
  346. package/dist/types/feedback/dialog-core.d.ts +11 -0
  347. package/dist/types/feedback/prompts.d.ts +2 -0
  348. package/dist/types/feedback/toast.d.ts +7 -1
  349. package/dist/types/inputs/markdown/MarkdownEditor.d.ts +5 -1
  350. package/dist/types/intl/Format.d.ts +9 -0
  351. package/dist/types/intl/index.d.ts +1 -1
  352. package/dist/types/intl/messages.d.ts +31 -1
  353. package/dist/types/layout/AppWorkspace.d.ts +35 -18
  354. package/dist/types/layout/BottomSheet.d.ts +23 -0
  355. package/dist/types/layout/DetailPanel.d.ts +1 -0
  356. package/dist/types/layout/Navigation.d.ts +8 -0
  357. package/dist/types/layout/PanelDialog.d.ts +14 -1
  358. package/dist/types/layout/ScrollArea.d.ts +4 -0
  359. package/dist/types/layout/Settings.d.ts +1 -1
  360. package/dist/types/layout/SidebarItemPreview.d.ts +11 -0
  361. package/dist/types/layout/index.d.ts +4 -1
  362. package/dist/types/layout/navigation-model.d.ts +48 -0
  363. package/dist/types/layout/scroll-fade.d.ts +3 -0
  364. package/dist/types/surfaces/DescriptionList.d.ts +1 -1
  365. package/dist/types/surfaces/StatusBadge.d.ts +1 -1
  366. package/package.json +5 -5
@@ -1 +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","_$ssr","_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,KAAA,CAAAC,MAAA;QAAA;MAAA;IAAA;EAAA;AAM3C","ignoreList":[]}
1
+ {"version":3,"names":["Show","splitProps","Button","Dropdown","SplitButton","props","local","buttonProps","disabled","Boolean","loading","_$createComponent","Root","items","label","menuLabel","position","menuPosition","width","menuWidth","children","when","primaryItems","fallback","_$mergeProps","class","size","variant","Trigger","wrap","primaryMenuLabel","iconOnly","title","menuIcon","_$ssr","_tmpl$"],"sources":["actions/SplitButton.tsx"],"sourcesContent":["import { type JSX, Show, 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 /** Optional selection menu in place of the primary immediate action. */\n primaryItems?: readonly DropdownItem[];\n /** Accessible name for the primary selection menu. */\n primaryMenuLabel?: string;\n /** Secondary menu glyph; defaults to a chevron. */\n menuIcon?: JSX.Element;\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 \"primaryItems\",\n \"primaryMenuLabel\",\n \"menuIcon\",\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 <Show\n when={local.primaryItems}\n fallback={\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 }\n >\n {(items) => (\n <Dropdown.Root\n items={items()}\n disabled={disabled()}\n class=\"k2b-split-button__primary-menu\"\n position={local.menuPosition ?? \"bottom-left\"}\n width={local.menuWidth}\n >\n <Dropdown.Trigger\n wrap={buttonProps.wrap}\n disabled={disabled()}\n size={local.size}\n variant={local.variant ?? \"primary\"}\n label={local.primaryMenuLabel}\n class={`k2b-split-button__primary ${local.class ?? \"\"}`}\n >\n {local.children}\n </Dropdown.Trigger>\n </Dropdown.Root>\n )}\n </Show>\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 {local.menuIcon ?? <i class=\"ti ti-chevron-down\" aria-hidden=\"true\" />}\n </Dropdown.Trigger>\n </Dropdown.Root>\n );\n}\n"],"mappings":";;;;AAAA,SAAmBA,IAAI,EAAEC,UAAU,QAAQ,UAAU;AACrD,SAASC,MAAM,QAA0B,UAAU;AACnD,SAASC,QAAQ,QAAkD,YAAY;AAiB/E;AACA,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAe;EAChE,MAAM,CAACC,KAAK,EAAEC,WAAW,CAAC,GAAGN,UAAU,CAACI,KAAK,EAAE,CAC7C,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,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,CAErBX,IAAI;QAAA,IACHqB,IAAIA,CAAA;UAAA,OAAEf,KAAK,CAACgB,YAAY;QAAA;QAAA,IACxBC,QAAQA,CAAA;UAAA,OAAAZ,iBAAA,CACLT,MAAM,EAAAsB,YAAA,CACDjB,WAAW;YAAA,aAAAkB,CAAA;cAAA,OACR,6BAA6BnB,KAAK,CAACmB,KAAK,IAAI,EAAE,EAAE;YAAA;YAAA,IACvDjB,QAAQA,CAAA;cAAA,OAAEF,KAAK,CAACE,QAAQ;YAAA;YAAA,IACxBE,OAAOA,CAAA;cAAA,OAAEJ,KAAK,CAACI,OAAO;YAAA;YAAA,IACtBgB,IAAIA,CAAA;cAAA,OAAEpB,KAAK,CAACoB,IAAI;YAAA;YAAA,IAChBC,OAAOA,CAAA;cAAA,OAAErB,KAAK,CAACqB,OAAO,IAAI,SAAS;YAAA;YAAA,IAAAP,SAAA;cAAA,OAElCd,KAAK,CAACc,QAAQ;YAAA;UAAA;QAAA;QAAAA,QAAA,EAIjBP,KAAK,IAAAF,iBAAA,CACJR,QAAQ,CAACS,IAAI;UAAA,IACZC,KAAKA,CAAA;YAAA,OAAEA,KAAK,CAAC,CAAC;UAAA;UAAA,IACdL,QAAQA,CAAA;YAAA,OAAEA,QAAQ,CAAC,CAAC;UAAA;UAAA;UAAA,IAEpBQ,QAAQA,CAAA;YAAA,OAAEV,KAAK,CAACW,YAAY,IAAI,aAAa;UAAA;UAAA,IAC7CC,KAAKA,CAAA;YAAA,OAAEZ,KAAK,CAACa,SAAS;UAAA;UAAA,IAAAC,SAAA;YAAA,OAAAT,iBAAA,CAErBR,QAAQ,CAACyB,OAAO;cAAA,IACfC,IAAIA,CAAA;gBAAA,OAAEtB,WAAW,CAACsB,IAAI;cAAA;cAAA,IACtBrB,QAAQA,CAAA;gBAAA,OAAEA,QAAQ,CAAC,CAAC;cAAA;cAAA,IACpBkB,IAAIA,CAAA;gBAAA,OAAEpB,KAAK,CAACoB,IAAI;cAAA;cAAA,IAChBC,OAAOA,CAAA;gBAAA,OAAErB,KAAK,CAACqB,OAAO,IAAI,SAAS;cAAA;cAAA,IACnCb,KAAKA,CAAA;gBAAA,OAAER,KAAK,CAACwB,gBAAgB;cAAA;cAAA,aAAAL,CAAA;gBAAA,OACtB,6BAA6BnB,KAAK,CAACmB,KAAK,IAAI,EAAE,EAAE;cAAA;cAAA,IAAAL,SAAA;gBAAA,OAEtDd,KAAK,CAACc,QAAQ;cAAA;YAAA;UAAA;QAAA;MAGpB,IAAAT,iBAAA,CAEFR,QAAQ,CAACyB,OAAO;QAAA;QAAA,IAEfpB,QAAQA,CAAA;UAAA,OAAEA,QAAQ,CAAC,CAAC;QAAA;QACpBuB,QAAQ;QAAA,IACRjB,KAAKA,CAAA;UAAA,OAAER,KAAK,CAACS,SAAS;QAAA;QAAA,IACtBW,IAAIA,CAAA;UAAA,OAAEpB,KAAK,CAACoB,IAAI;QAAA;QAAA,IAChBM,KAAKA,CAAA;UAAA,OAAE1B,KAAK,CAACS,SAAS;QAAA;QAAA,IACtBY,OAAOA,CAAA;UAAA,OAAErB,KAAK,CAACqB,OAAO,IAAI,SAAS;QAAA;QAAA,IAAAP,SAAA;UAAA,OAElCd,KAAK,CAAC2B,QAAQ,IAAAC,KAAA,CAAAC,MAAA,CAAuD;QAAA;MAAA;IAAA;EAAA;AAI9E","ignoreList":[]}
@@ -5,10 +5,6 @@ var _tmpl$ = ["<button type=\"button\" class=\"", "\"", "", "><i", " aria-hidden
5
5
  _tmpl$2 = ["<kbd>", "</kbd>"];
6
6
  import { prompts } from "../feedback/prompts";
7
7
  import { resolveUiMessages, useUiMessages } from "../intl/messages";
8
- export const SPOTLIGHT_SHORTCUT = "mod+shift+k";
9
- export const SPOTLIGHT_SHORTCUT_LABEL = "⇧⌘K";
10
- export const SPOTLIGHT_SHORTCUT_TITLE = "Mod+Shift+K";
11
- export const isSpotlightShortcut = event => (event.metaKey || event.ctrlKey) && event.shiftKey && event.key.toLowerCase() === "k";
12
8
  export const openSpotlightSearch = options => {
13
9
  const {
14
10
  resolve,
@@ -29,9 +25,9 @@ export function SpotlightButton(props) {
29
25
  const variant = () => props.variant ?? "default";
30
26
  const label = () => props.label ?? messages().searchLabel;
31
27
  const icon = () => props.icon ?? "ti ti-search";
32
- const shortcut = () => props.shortcutLabel === undefined ? SPOTLIGHT_SHORTCUT_LABEL : props.shortcutLabel;
33
- const title = () => props.title ?? `${label()} (${SPOTLIGHT_SHORTCUT_TITLE})`;
34
- const showsShortcut = () => shortcut() !== false && ["chip", "sidebar"].includes(variant());
28
+ const shortcut = () => props.shortcutLabel;
29
+ const title = () => props.title ?? label();
30
+ const showsShortcut = () => Boolean(shortcut()) && ["chip", "sidebar"].includes(variant());
35
31
  return _$ssr(_tmpl$, `k2b-spotlight-button ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("data-variant", _$escape(variant(), true), false), _$ssrAttribute("disabled", props.disabled, true) + _$ssrAttribute("aria-label", _$escape(props.ariaLabel ?? (["compact", "icon"].includes(variant()) ? label() : undefined), true), false) + _$ssrAttribute("title", _$escape(title(), true), false), _$ssrAttribute("class", _$escape(icon(), true), false), _$escape(label()), showsShortcut() && _$ssr(_tmpl$2, _$escape(shortcut())));
36
32
  }
37
33
  export default SpotlightButton;
@@ -1 +1 @@
1
- {"version":3,"names":["prompts","resolveUiMessages","useUiMessages","SPOTLIGHT_SHORTCUT","SPOTLIGHT_SHORTCUT_LABEL","SPOTLIGHT_SHORTCUT_TITLE","isSpotlightShortcut","event","metaKey","ctrlKey","shiftKey","key","toLowerCase","openSpotlightSearch","options","resolve","promptOptions","messages","search","icon","placeholder","minQueryLength","noResultsText","spotlightNoResults","size","SpotlightButton","props","variant","label","searchLabel","shortcut","shortcutLabel","undefined","title","showsShortcut","includes","_$ssr","_tmpl$","_$escape","class","_$ssrAttribute","disabled","ariaLabel","_tmpl$2"],"sources":["actions/SpotlightSearch.tsx"],"sourcesContent":["import type { JSX } from \"solid-js\";\nimport type { PromptSearchInput, PromptSearchItem, PromptSearchOptions } from \"../feedback/prompts\";\nimport { prompts } from \"../feedback/prompts\";\nimport { resolveUiMessages, useUiMessages } from \"../intl/messages\";\n\nexport const SPOTLIGHT_SHORTCUT = \"mod+shift+k\";\nexport const SPOTLIGHT_SHORTCUT_LABEL = \"⇧⌘K\";\nexport const SPOTLIGHT_SHORTCUT_TITLE = \"Mod+Shift+K\";\n\nexport type SpotlightSearchResolver<T = unknown> = (input: PromptSearchInput) => Promise<PromptSearchItem<T>[]> | PromptSearchItem<T>[];\n\nexport type SpotlightSearchOptions<T = unknown> = PromptSearchOptions & {\n resolve: SpotlightSearchResolver<T>;\n};\n\nexport type SpotlightButtonVariant = \"default\" | \"compact\" | \"chip\" | \"sidebar\" | \"sidebar-mobile\" | \"icon\";\n\nexport type SpotlightButtonProps = {\n variant?: SpotlightButtonVariant;\n label?: string;\n title?: string;\n icon?: string;\n shortcutLabel?: string | false;\n ariaLabel?: string;\n disabled?: boolean;\n class?: string;\n onClick: () => void | Promise<void>;\n};\n\nexport const isSpotlightShortcut = (event: KeyboardEvent): boolean =>\n (event.metaKey || event.ctrlKey) && event.shiftKey && event.key.toLowerCase() === \"k\";\n\nexport const openSpotlightSearch = <T = unknown>(options: SpotlightSearchOptions<T>): Promise<PromptSearchItem<T> | undefined> => {\n const { resolve, ...promptOptions } = options;\n const messages = resolveUiMessages();\n return prompts.search(resolve, {\n icon: \"ti ti-search\",\n placeholder: messages.search,\n minQueryLength: 0,\n noResultsText: messages.spotlightNoResults,\n size: \"small\",\n ...promptOptions,\n });\n};\n\nexport function SpotlightButton(props: SpotlightButtonProps): JSX.Element {\n const messages = useUiMessages();\n const variant = () => props.variant ?? \"default\";\n const label = () => props.label ?? messages().searchLabel;\n const icon = () => props.icon ?? \"ti ti-search\";\n const shortcut = () => (props.shortcutLabel === undefined ? SPOTLIGHT_SHORTCUT_LABEL : props.shortcutLabel);\n const title = () => props.title ?? `${label()} (${SPOTLIGHT_SHORTCUT_TITLE})`;\n const showsShortcut = () => shortcut() !== false && [\"chip\", \"sidebar\"].includes(variant());\n\n return (\n <button\n type=\"button\"\n class={`k2b-spotlight-button ${props.class ?? \"\"}`}\n data-variant={variant()}\n disabled={props.disabled}\n aria-label={props.ariaLabel ?? ([\"compact\", \"icon\"].includes(variant()) ? label() : undefined)}\n title={title()}\n onClick={() => void props.onClick()}\n >\n <i class={icon()} aria-hidden=\"true\" />\n <span class=\"k2b-spotlight-button__label\">{label()}</span>\n {showsShortcut() && <kbd>{shortcut()}</kbd>}\n </button>\n );\n}\n\nexport default SpotlightButton;\n"],"mappings":";;;;;AAEA,SAASA,OAAO,QAAQ,qBAAqB;AAC7C,SAASC,iBAAiB,EAAEC,aAAa,QAAQ,kBAAkB;AAEnE,OAAO,MAAMC,kBAAkB,GAAG,aAAa;AAC/C,OAAO,MAAMC,wBAAwB,GAAG,KAAK;AAC7C,OAAO,MAAMC,wBAAwB,GAAG,aAAa;AAsBrD,OAAO,MAAMC,mBAAmB,GAAIC,KAAoB,IACtD,CAACA,KAAK,CAACC,OAAO,IAAID,KAAK,CAACE,OAAO,KAAKF,KAAK,CAACG,QAAQ,IAAIH,KAAK,CAACI,GAAG,CAACC,WAAW,CAAC,CAAC,KAAK,GAAG;AAEvF,OAAO,MAAMC,mBAAmB,GAAiBC,OAAkC,IAA+C;EAChI,MAAM;IAAEC,OAAO;IAAE,GAAGC;EAAc,CAAC,GAAGF,OAAO;EAC7C,MAAMG,QAAQ,GAAGhB,iBAAiB,CAAC,CAAC;EACpC,OAAOD,OAAO,CAACkB,MAAM,CAACH,OAAO,EAAE;IAC7BI,IAAI,EAAE,cAAc;IACpBC,WAAW,EAAEH,QAAQ,CAACC,MAAM;IAC5BG,cAAc,EAAE,CAAC;IACjBC,aAAa,EAAEL,QAAQ,CAACM,kBAAkB;IAC1CC,IAAI,EAAE,OAAO;IACb,GAAGR;EACL,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,SAASS,eAAeA,CAACC,KAA2B,EAAe;EACxE,MAAMT,QAAQ,GAAGf,aAAa,CAAC,CAAC;EAChC,MAAMyB,OAAO,GAAGA,CAAA,KAAMD,KAAK,CAACC,OAAO,IAAI,SAAS;EAChD,MAAMC,KAAK,GAAGA,CAAA,KAAMF,KAAK,CAACE,KAAK,IAAIX,QAAQ,CAAC,CAAC,CAACY,WAAW;EACzD,MAAMV,IAAI,GAAGA,CAAA,KAAMO,KAAK,CAACP,IAAI,IAAI,cAAc;EAC/C,MAAMW,QAAQ,GAAGA,CAAA,KAAOJ,KAAK,CAACK,aAAa,KAAKC,SAAS,GAAG5B,wBAAwB,GAAGsB,KAAK,CAACK,aAAc;EAC3G,MAAME,KAAK,GAAGA,CAAA,KAAMP,KAAK,CAACO,KAAK,IAAI,GAAGL,KAAK,CAAC,CAAC,KAAKvB,wBAAwB,GAAG;EAC7E,MAAM6B,aAAa,GAAGA,CAAA,KAAMJ,QAAQ,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAACK,QAAQ,CAACR,OAAO,CAAC,CAAC,CAAC;EAE3F,OAAAS,KAAA,CAAAC,MAAA,EAGW,wBAAAC,QAAA,CAAwBZ,KAAK,CAACa,KAAK,IAAI,EAAE,SAAE,EAAAC,cAAA,iBAAAF,QAAA,CACpCX,OAAO,CAAC,CAAC,iBAAAa,cAAA,aACbd,KAAK,CAACe,QAAQ,UAAAD,cAAA,eAAAF,QAAA,CACZZ,KAAK,CAACgB,SAAS,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAACP,QAAQ,CAACR,OAAO,CAAC,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,GAAGI,SAAS,CAAC,kBAAAQ,cAAA,UAAAF,QAAA,CACvFL,KAAK,CAAC,CAAC,iBAAAO,cAAA,UAAAF,QAAA,CAGJnB,IAAI,CAAC,CAAC,iBAAAmB,QAAA,CAC2BV,KAAK,CAAC,CAAC,GACjDM,aAAa,CAAC,CAAC,IAAAE,KAAA,CAAAO,OAAA,EAAAL,QAAA,CAAUR,QAAQ,CAAC,CAAC,EAAO;AAGjD;AAEA,eAAeL,eAAe","ignoreList":[]}
1
+ {"version":3,"names":["prompts","resolveUiMessages","useUiMessages","openSpotlightSearch","options","resolve","promptOptions","messages","search","icon","placeholder","minQueryLength","noResultsText","spotlightNoResults","size","SpotlightButton","props","variant","label","searchLabel","shortcut","shortcutLabel","title","showsShortcut","Boolean","includes","_$ssr","_tmpl$","_$escape","class","_$ssrAttribute","disabled","ariaLabel","undefined","_tmpl$2"],"sources":["actions/SpotlightSearch.tsx"],"sourcesContent":["import type { JSX } from \"solid-js\";\nimport type { PromptSearchInput, PromptSearchItem, PromptSearchOptions } from \"../feedback/prompts\";\nimport { prompts } from \"../feedback/prompts\";\nimport { resolveUiMessages, useUiMessages } from \"../intl/messages\";\n\nexport type SpotlightSearchResolver<T = unknown> = (input: PromptSearchInput) => Promise<PromptSearchItem<T>[]> | PromptSearchItem<T>[];\n\nexport type SpotlightSearchOptions<T = unknown> = PromptSearchOptions & {\n resolve: SpotlightSearchResolver<T>;\n};\n\nexport type SpotlightButtonVariant = \"default\" | \"compact\" | \"chip\" | \"sidebar\" | \"sidebar-mobile\" | \"icon\";\n\nexport type SpotlightButtonProps = {\n variant?: SpotlightButtonVariant;\n label?: string;\n title?: string;\n icon?: string;\n shortcutLabel?: string | false;\n ariaLabel?: string;\n disabled?: boolean;\n class?: string;\n onClick: () => void | Promise<void>;\n};\n\nexport const openSpotlightSearch = <T = unknown>(options: SpotlightSearchOptions<T>): Promise<PromptSearchItem<T> | undefined> => {\n const { resolve, ...promptOptions } = options;\n const messages = resolveUiMessages();\n return prompts.search(resolve, {\n icon: \"ti ti-search\",\n placeholder: messages.search,\n minQueryLength: 0,\n noResultsText: messages.spotlightNoResults,\n size: \"small\",\n ...promptOptions,\n });\n};\n\nexport function SpotlightButton(props: SpotlightButtonProps): JSX.Element {\n const messages = useUiMessages();\n const variant = () => props.variant ?? \"default\";\n const label = () => props.label ?? messages().searchLabel;\n const icon = () => props.icon ?? \"ti ti-search\";\n const shortcut = () => props.shortcutLabel;\n const title = () => props.title ?? label();\n const showsShortcut = () => Boolean(shortcut()) && [\"chip\", \"sidebar\"].includes(variant());\n\n return (\n <button\n type=\"button\"\n class={`k2b-spotlight-button ${props.class ?? \"\"}`}\n data-variant={variant()}\n disabled={props.disabled}\n aria-label={props.ariaLabel ?? ([\"compact\", \"icon\"].includes(variant()) ? label() : undefined)}\n title={title()}\n onClick={() => void props.onClick()}\n >\n <i class={icon()} aria-hidden=\"true\" />\n <span class=\"k2b-spotlight-button__label\">{label()}</span>\n {showsShortcut() && <kbd>{shortcut()}</kbd>}\n </button>\n );\n}\n\nexport default SpotlightButton;\n"],"mappings":";;;;;AAEA,SAASA,OAAO,QAAQ,qBAAqB;AAC7C,SAASC,iBAAiB,EAAEC,aAAa,QAAQ,kBAAkB;AAsBnE,OAAO,MAAMC,mBAAmB,GAAiBC,OAAkC,IAA+C;EAChI,MAAM;IAAEC,OAAO;IAAE,GAAGC;EAAc,CAAC,GAAGF,OAAO;EAC7C,MAAMG,QAAQ,GAAGN,iBAAiB,CAAC,CAAC;EACpC,OAAOD,OAAO,CAACQ,MAAM,CAACH,OAAO,EAAE;IAC7BI,IAAI,EAAE,cAAc;IACpBC,WAAW,EAAEH,QAAQ,CAACC,MAAM;IAC5BG,cAAc,EAAE,CAAC;IACjBC,aAAa,EAAEL,QAAQ,CAACM,kBAAkB;IAC1CC,IAAI,EAAE,OAAO;IACb,GAAGR;EACL,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,SAASS,eAAeA,CAACC,KAA2B,EAAe;EACxE,MAAMT,QAAQ,GAAGL,aAAa,CAAC,CAAC;EAChC,MAAMe,OAAO,GAAGA,CAAA,KAAMD,KAAK,CAACC,OAAO,IAAI,SAAS;EAChD,MAAMC,KAAK,GAAGA,CAAA,KAAMF,KAAK,CAACE,KAAK,IAAIX,QAAQ,CAAC,CAAC,CAACY,WAAW;EACzD,MAAMV,IAAI,GAAGA,CAAA,KAAMO,KAAK,CAACP,IAAI,IAAI,cAAc;EAC/C,MAAMW,QAAQ,GAAGA,CAAA,KAAMJ,KAAK,CAACK,aAAa;EAC1C,MAAMC,KAAK,GAAGA,CAAA,KAAMN,KAAK,CAACM,KAAK,IAAIJ,KAAK,CAAC,CAAC;EAC1C,MAAMK,aAAa,GAAGA,CAAA,KAAMC,OAAO,CAACJ,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAACK,QAAQ,CAACR,OAAO,CAAC,CAAC,CAAC;EAE1F,OAAAS,KAAA,CAAAC,MAAA,EAGW,wBAAAC,QAAA,CAAwBZ,KAAK,CAACa,KAAK,IAAI,EAAE,SAAE,EAAAC,cAAA,iBAAAF,QAAA,CACpCX,OAAO,CAAC,CAAC,iBAAAa,cAAA,aACbd,KAAK,CAACe,QAAQ,UAAAD,cAAA,eAAAF,QAAA,CACZZ,KAAK,CAACgB,SAAS,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAACP,QAAQ,CAACR,OAAO,CAAC,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,GAAGe,SAAS,CAAC,kBAAAH,cAAA,UAAAF,QAAA,CACvFN,KAAK,CAAC,CAAC,iBAAAQ,cAAA,UAAAF,QAAA,CAGJnB,IAAI,CAAC,CAAC,iBAAAmB,QAAA,CAC2BV,KAAK,CAAC,CAAC,GACjDK,aAAa,CAAC,CAAC,IAAAG,KAAA,CAAAQ,OAAA,EAAAN,QAAA,CAAUR,QAAQ,CAAC,CAAC,EAAO;AAGjD;AAEA,eAAeL,eAAe","ignoreList":[]}
@@ -2,12 +2,16 @@ import { ssr as _$ssr } from "solid-js/web";
2
2
  import { createComponent as _$createComponent } from "solid-js/web";
3
3
  import { ssrAttribute as _$ssrAttribute } from "solid-js/web";
4
4
  import { escape as _$escape } from "solid-js/web";
5
- var _tmpl$ = ["<div id=\"", "\" class=\"k2b-tabs__panel\" role=\"tabpanel\" aria-labelledby=\"", "\" tabindex=\"0\">", "</div>"],
6
- _tmpl$2 = ["<div class=\"", "\"", "><div class=\"k2b-tabs__list\" role=\"tablist\"", ">", "</div>", "</div>"],
7
- _tmpl$3 = ["<button", " type=\"button\" role=\"tab\"", "", ">", "<span>", "</span></button>"],
8
- _tmpl$4 = ["<i", " aria-hidden=\"true\"></i>"];
9
- import { children, createMemo, createUniqueId, For, Show } from "solid-js";
5
+ var _tmpl$ = ["<div class=\"k2b-tabs__trailing\">", "</div>"],
6
+ _tmpl$2 = ["<div id=\"", "\" class=\"k2b-tabs__panel\" role=\"tabpanel\" aria-labelledby=\"", "\" tabindex=\"0\">", "</div>"],
7
+ _tmpl$3 = ["<div class=\"", "\"", "><div class=\"k2b-tabs__bar\"><div", " data-scroll-fade-axis=\"horizontal\" class=\"k2b-tabs__list\" role=\"tablist\"", ">", "</div>", "</div>", "</div>"],
8
+ _tmpl$4 = ["<button type=\"button\" class=\"k2b-tabs__close\"", "", "><i class=\"ti ti-x\" aria-hidden=\"true\"></i></button>"],
9
+ _tmpl$5 = ["<div class=\"k2b-tabs__item\" role=\"presentation\"><button", " type=\"button\" role=\"tab\"", "", ">", "<span>", "</span></button>", "</div>"],
10
+ _tmpl$6 = ["<i", " aria-hidden=\"true\"></i>"];
11
+ import { children, createEffect, createMemo, createUniqueId, For, Show } from "solid-js";
10
12
  import { resolveMaybeAccessor } from "../inputs/field-contract";
13
+ import { useUiMessages } from "../intl/messages";
14
+ import { createScrollFade } from "../layout/scroll-fade";
11
15
  const TABS_ITEM = Symbol("Tabs.Item");
12
16
  const isTabsItem = value => !!value && typeof value === "object" && "kind" in value && value.kind === TABS_ITEM;
13
17
  const collectTabsItems = value => {
@@ -23,8 +27,13 @@ function TabsItem(props) {
23
27
 
24
28
  /** Controlled, keyboard-accessible tabs with compositional or data-driven items. */
25
29
  function TabsRoot(props) {
30
+ const messages = useUiMessages();
31
+ let root;
32
+ let list;
33
+ createScrollFade(() => list, () => props.orientation !== "vertical");
26
34
  const instanceId = `k2b-tabs-${createUniqueId()}`;
27
35
  const resolvedChildren = children(() => props.children);
36
+ const trailing = children(() => props.trailing);
28
37
  const items = createMemo(() => {
29
38
  if (props.options) return props.options;
30
39
  return collectTabsItems(resolvedChildren.toArray()).map(item => ({
@@ -32,10 +41,17 @@ function TabsRoot(props) {
32
41
  label: item.props.label,
33
42
  icon: item.props.icon,
34
43
  disabled: item.props.disabled,
35
- panel: item.props.children
44
+ panel: item.props.children,
45
+ onClose: item.props.onClose,
46
+ closeLabel: item.props.closeLabel
36
47
  }));
37
48
  });
38
49
  const buttons = [];
50
+ let closing;
51
+ const requestClose = option => {
52
+ closing = option.value;
53
+ option.onClose?.();
54
+ };
39
55
  const current = () => resolveMaybeAccessor(props.value);
40
56
  const active = createMemo(() => items().find(option => option.value === current()));
41
57
  const activeIndex = createMemo(() => Math.max(0, items().findIndex(option => option.value === current())));
@@ -49,6 +65,21 @@ function TabsRoot(props) {
49
65
  const selected = items().findIndex(option => option.value === current() && !option.disabled);
50
66
  return selected >= 0 ? selected : enabled()[0]?.index ?? -1;
51
67
  });
68
+ createEffect(() => {
69
+ const index = activeIndex();
70
+ const removed = closing !== undefined && !items().some(item => item.value === closing);
71
+ if (removed) closing = undefined;
72
+ queueMicrotask(() => {
73
+ buttons[index]?.scrollIntoView?.({
74
+ block: "nearest",
75
+ inline: "nearest"
76
+ });
77
+ if (removed) {
78
+ const target = items().length ? buttons[index] : root?.querySelector(".k2b-tabs__trailing button");
79
+ target?.focus();
80
+ }
81
+ });
82
+ });
52
83
  const select = index => {
53
84
  const option = items()[index];
54
85
  if (!option || option.disabled) return;
@@ -62,26 +93,42 @@ function TabsRoot(props) {
62
93
  const next = available[(currentIndex + delta + available.length) % available.length] ?? available[0];
63
94
  if (next) select(next.index);
64
95
  };
65
- return _$ssr(_tmpl$2, `k2b-tabs ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("data-orientation", _$escape(props.orientation ?? "horizontal", true), false), _$ssrAttribute("aria-label", _$escape(props.ariaLabel, true), false) + _$ssrAttribute("aria-orientation", _$escape(props.orientation ?? "horizontal", true), false), _$escape(_$createComponent(For, {
96
+ return _$ssr(_tmpl$3, `k2b-tabs ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("data-orientation", _$escape(props.orientation ?? "horizontal", true), false) + _$ssrAttribute("data-variant", _$escape(props.variant ?? "line", true), false), _$ssrAttribute("data-scroll-fade-mode", props.orientation !== "vertical" ? "both" : _$escape(undefined, true), false), _$ssrAttribute("aria-label", _$escape(props.ariaLabel, true), false) + _$ssrAttribute("aria-orientation", _$escape(props.orientation ?? "horizontal", true), false), _$escape(_$createComponent(For, {
66
97
  get each() {
67
98
  return items();
68
99
  },
69
100
  children: (option, index) => {
70
101
  const id = () => `${instanceId}-tab-${index()}`;
71
102
  const panelId = () => `${instanceId}-panel-${index()}`;
72
- return _$ssr(_tmpl$3, _$ssrAttribute("id", _$escape(id(), true), false), _$ssrAttribute("aria-selected", _$escape(current(), true) === _$escape(option.value, true), false) + _$ssrAttribute("aria-controls", option.panel !== undefined ? _$escape(panelId(), true) : _$escape(undefined, true), false) + _$ssrAttribute("tabindex", tabStopIndex() === index() ? 0 : -1, false), _$ssrAttribute("disabled", option.disabled, true), _$escape(_$createComponent(Show, {
103
+ return _$ssr(_tmpl$5, _$ssrAttribute("id", _$escape(id(), true), false), _$ssrAttribute("aria-selected", _$escape(current(), true) === _$escape(option.value, true), false) + _$ssrAttribute("aria-controls", option.panel !== undefined ? _$escape(panelId(), true) : _$escape(undefined, true), false) + _$ssrAttribute("tabindex", tabStopIndex() === index() ? 0 : -1, false), _$ssrAttribute("disabled", option.disabled, true), _$escape(_$createComponent(Show, {
73
104
  get when() {
74
105
  return option.icon;
75
106
  },
76
- children: icon => _$ssr(_tmpl$4, _$ssrAttribute("class", _$escape(icon(), true), false))
77
- })), _$escape(option.label));
107
+ children: icon => _$ssr(_tmpl$6, _$ssrAttribute("class", _$escape(icon(), true), false))
108
+ })), _$escape(option.label), _$escape(_$createComponent(Show, {
109
+ get when() {
110
+ return option.onClose;
111
+ },
112
+ get children() {
113
+ return _$ssr(_tmpl$4, _$ssrAttribute("aria-label", _$escape(option.closeLabel ?? messages().closeNamed({
114
+ name: typeof option.label === "string" ? option.label : props.ariaLabel
115
+ }), true), false), _$ssrAttribute("disabled", option.disabled, true));
116
+ }
117
+ })));
118
+ }
119
+ })), _$escape(_$createComponent(Show, {
120
+ get when() {
121
+ return trailing();
122
+ },
123
+ get children() {
124
+ return _$ssr(_tmpl$, _$escape(trailing()));
78
125
  }
79
126
  })), _$escape(_$createComponent(Show, {
80
127
  get when() {
81
128
  return active()?.panel !== undefined;
82
129
  },
83
130
  get children() {
84
- return _$ssr(_tmpl$, `${_$escape(instanceId, true)}-panel-${_$escape(activeIndex(), true)}`, `${_$escape(instanceId, true)}-tab-${_$escape(activeIndex(), true)}`, _$escape(active()?.panel));
131
+ return _$ssr(_tmpl$2, `${_$escape(instanceId, true)}-panel-${_$escape(activeIndex(), true)}`, `${_$escape(instanceId, true)}-tab-${_$escape(activeIndex(), true)}`, _$escape(active()?.panel));
85
132
  }
86
133
  })));
87
134
  }
@@ -1 +1 @@
1
- {"version":3,"names":["children","createMemo","createUniqueId","For","Show","resolveMaybeAccessor","TABS_ITEM","Symbol","isTabsItem","value","kind","collectTabsItems","Array","isArray","flatMap","TabsItem","props","TabsRoot","instanceId","resolvedChildren","items","options","toArray","map","item","label","icon","disabled","panel","buttons","current","active","find","option","activeIndex","Math","max","findIndex","enabled","index","filter","tabStopIndex","selected","select","onValueChange","queueMicrotask","focus","move","delta","available","length","currentIndex","next","_$ssr","_tmpl$2","_$escape","class","_$ssrAttribute","orientation","ariaLabel","_$createComponent","each","id","panelId","_tmpl$3","undefined","when","_tmpl$4","_tmpl$","Tabs","Item"],"sources":["actions/Tabs.tsx"],"sourcesContent":["import { children, createMemo, createUniqueId, For, type JSX, Show } from \"solid-js\";\nimport type { MaybeAccessor } from \"../inputs/field-contract\";\nimport { resolveMaybeAccessor } from \"../inputs/field-contract\";\n\nexport type TabOption<T extends string = string> = {\n value: T;\n label: JSX.Element;\n icon?: string;\n disabled?: boolean;\n panel?: JSX.Element;\n};\n\nexport type TabsItemProps<T extends string = string> = Omit<TabOption<T>, \"panel\"> & {\n children?: JSX.Element;\n};\n\ntype TabsItemSlot<T extends string = string> = {\n readonly kind: typeof TABS_ITEM;\n readonly props: TabsItemProps<T>;\n};\n\nexport type TabsProps<T extends string = string> = {\n value: MaybeAccessor<T>;\n onValueChange: (value: T) => void;\n ariaLabel: string;\n orientation?: \"horizontal\" | \"vertical\";\n class?: string;\n /** Data-driven alternative to colocated `Tabs.Item` children. */\n options?: readonly TabOption<T>[];\n children?: JSX.Element;\n};\n\ntype TabsComponent = (<T extends string = string>(props: TabsProps<T>) => JSX.Element) & {\n Item: <T extends string = string>(props: TabsItemProps<T>) => JSX.Element;\n};\n\nconst TABS_ITEM = Symbol(\"Tabs.Item\");\n\nconst isTabsItem = <T extends string>(value: unknown): value is TabsItemSlot<T> =>\n !!value && typeof value === \"object\" && \"kind\" in value && value.kind === TABS_ITEM;\n\nconst collectTabsItems = <T extends string>(value: unknown): TabsItemSlot<T>[] => {\n if (Array.isArray(value)) return value.flatMap(collectTabsItems<T>);\n return isTabsItem<T>(value) ? [value] : [];\n};\n\nfunction TabsItem<T extends string = string>(props: TabsItemProps<T>): JSX.Element {\n return { kind: TABS_ITEM, props } satisfies TabsItemSlot<T> as unknown as JSX.Element;\n}\n\n/** Controlled, keyboard-accessible tabs with compositional or data-driven items. */\nfunction TabsRoot<T extends string = string>(props: TabsProps<T>): JSX.Element {\n const instanceId = `k2b-tabs-${createUniqueId()}`;\n const resolvedChildren = children(() => props.children);\n const items = createMemo<readonly TabOption<T>[]>(() => {\n if (props.options) return props.options;\n return collectTabsItems<T>(resolvedChildren.toArray()).map((item) => ({\n value: item.props.value,\n label: item.props.label,\n icon: item.props.icon,\n disabled: item.props.disabled,\n panel: item.props.children,\n }));\n });\n const buttons: HTMLButtonElement[] = [];\n const current = () => resolveMaybeAccessor(props.value);\n const active = createMemo(() => items().find((option) => option.value === current()));\n const activeIndex = createMemo(() =>\n Math.max(\n 0,\n items().findIndex((option) => option.value === current()),\n ),\n );\n const enabled = () =>\n items()\n .map((option, index) => ({ option, index }))\n .filter(({ option }) => !option.disabled);\n const tabStopIndex = createMemo(() => {\n const selected = items().findIndex((option) => option.value === current() && !option.disabled);\n return selected >= 0 ? selected : (enabled()[0]?.index ?? -1);\n });\n const select = (index: number) => {\n const option = items()[index];\n if (!option || option.disabled) return;\n props.onValueChange(option.value);\n queueMicrotask(() => buttons[index]?.focus());\n };\n const move = (index: number, delta: 1 | -1) => {\n const available = enabled();\n if (available.length === 0) return;\n const currentIndex = available.findIndex((item) => item.index === index);\n const next = available[(currentIndex + delta + available.length) % available.length] ?? available[0];\n if (next) select(next.index);\n };\n\n return (\n <div class={`k2b-tabs ${props.class ?? \"\"}`} data-orientation={props.orientation ?? \"horizontal\"}>\n <div class=\"k2b-tabs__list\" role=\"tablist\" aria-label={props.ariaLabel} aria-orientation={props.orientation ?? \"horizontal\"}>\n <For each={items()}>\n {(option, index) => {\n const id = () => `${instanceId}-tab-${index()}`;\n const panelId = () => `${instanceId}-panel-${index()}`;\n return (\n <button\n ref={(element) => {\n buttons[index()] = element;\n }}\n id={id()}\n type=\"button\"\n role=\"tab\"\n aria-selected={current() === option.value}\n aria-controls={option.panel !== undefined ? panelId() : undefined}\n tabIndex={tabStopIndex() === index() ? 0 : -1}\n disabled={option.disabled}\n onClick={() => props.onValueChange(option.value)}\n onKeyDown={(event) => {\n const previous = props.orientation === \"vertical\" ? \"ArrowUp\" : \"ArrowLeft\";\n const next = props.orientation === \"vertical\" ? \"ArrowDown\" : \"ArrowRight\";\n if (event.key === previous || event.key === next) {\n event.preventDefault();\n move(index(), event.key === next ? 1 : -1);\n } else if (event.key === \"Home\" || event.key === \"End\") {\n event.preventDefault();\n const available = enabled();\n const target = event.key === \"End\" ? available.at(-1) : available[0];\n if (target) select(target.index);\n }\n }}\n >\n <Show when={option.icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n <span>{option.label}</span>\n </button>\n );\n }}\n </For>\n </div>\n <Show when={active()?.panel !== undefined}>\n <div\n id={`${instanceId}-panel-${activeIndex()}`}\n class=\"k2b-tabs__panel\"\n role=\"tabpanel\"\n aria-labelledby={`${instanceId}-tab-${activeIndex()}`}\n tabIndex={0}\n >\n {active()?.panel}\n </div>\n </Show>\n </div>\n );\n}\n\nexport const Tabs = TabsRoot as TabsComponent;\nTabs.Item = TabsItem;\n\nexport default Tabs;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["children","createEffect","createMemo","createUniqueId","For","Show","resolveMaybeAccessor","useUiMessages","createScrollFade","TABS_ITEM","Symbol","isTabsItem","value","kind","collectTabsItems","Array","isArray","flatMap","TabsItem","props","TabsRoot","messages","root","list","orientation","instanceId","resolvedChildren","trailing","items","options","toArray","map","item","label","icon","disabled","panel","onClose","closeLabel","buttons","closing","requestClose","option","current","active","find","activeIndex","Math","max","findIndex","enabled","index","filter","tabStopIndex","selected","removed","undefined","some","queueMicrotask","scrollIntoView","block","inline","target","length","querySelector","focus","select","onValueChange","move","delta","available","currentIndex","next","_$ssr","_tmpl$3","_$escape","class","_$ssrAttribute","variant","ariaLabel","_$createComponent","each","id","panelId","_tmpl$5","when","_tmpl$6","_tmpl$4","closeNamed","name","_tmpl$","_tmpl$2","Tabs","Item"],"sources":["actions/Tabs.tsx"],"sourcesContent":["import { children, createEffect, createMemo, createUniqueId, For, type JSX, Show } from \"solid-js\";\nimport type { MaybeAccessor } from \"../inputs/field-contract\";\nimport { resolveMaybeAccessor } from \"../inputs/field-contract\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { createScrollFade } from \"../layout/scroll-fade\";\n\nexport type TabOption<T extends string = string> = {\n value: T;\n label: JSX.Element;\n icon?: string;\n disabled?: boolean;\n panel?: JSX.Element;\n onClose?: () => void;\n closeLabel?: string;\n};\n\nexport type TabsItemProps<T extends string = string> = Omit<TabOption<T>, \"panel\"> & {\n children?: JSX.Element;\n};\n\ntype TabsItemSlot<T extends string = string> = {\n readonly kind: typeof TABS_ITEM;\n readonly props: TabsItemProps<T>;\n};\n\nexport type TabsProps<T extends string = string> = {\n value: MaybeAccessor<T>;\n onValueChange: (value: T) => void;\n ariaLabel: string;\n orientation?: \"horizontal\" | \"vertical\";\n class?: string;\n variant?: \"line\" | \"pill\";\n trailing?: JSX.Element;\n /** Data-driven alternative to colocated `Tabs.Item` children. */\n options?: readonly TabOption<T>[];\n children?: JSX.Element;\n};\n\ntype TabsComponent = (<T extends string = string>(props: TabsProps<T>) => JSX.Element) & {\n Item: <T extends string = string>(props: TabsItemProps<T>) => JSX.Element;\n};\n\nconst TABS_ITEM = Symbol(\"Tabs.Item\");\n\nconst isTabsItem = <T extends string>(value: unknown): value is TabsItemSlot<T> =>\n !!value && typeof value === \"object\" && \"kind\" in value && value.kind === TABS_ITEM;\n\nconst collectTabsItems = <T extends string>(value: unknown): TabsItemSlot<T>[] => {\n if (Array.isArray(value)) return value.flatMap(collectTabsItems<T>);\n return isTabsItem<T>(value) ? [value] : [];\n};\n\nfunction TabsItem<T extends string = string>(props: TabsItemProps<T>): JSX.Element {\n return { kind: TABS_ITEM, props } satisfies TabsItemSlot<T> as unknown as JSX.Element;\n}\n\n/** Controlled, keyboard-accessible tabs with compositional or data-driven items. */\nfunction TabsRoot<T extends string = string>(props: TabsProps<T>): JSX.Element {\n const messages = useUiMessages();\n let root: HTMLDivElement | undefined;\n let list: HTMLDivElement | undefined;\n createScrollFade(\n () => list,\n () => props.orientation !== \"vertical\",\n );\n const instanceId = `k2b-tabs-${createUniqueId()}`;\n const resolvedChildren = children(() => props.children);\n const trailing = children(() => props.trailing);\n const items = createMemo<readonly TabOption<T>[]>(() => {\n if (props.options) return props.options;\n return collectTabsItems<T>(resolvedChildren.toArray()).map((item) => ({\n value: item.props.value,\n label: item.props.label,\n icon: item.props.icon,\n disabled: item.props.disabled,\n panel: item.props.children,\n onClose: item.props.onClose,\n closeLabel: item.props.closeLabel,\n }));\n });\n const buttons: HTMLButtonElement[] = [];\n let closing: T | undefined;\n const requestClose = (option: TabOption<T>) => {\n closing = option.value;\n option.onClose?.();\n };\n const current = () => resolveMaybeAccessor(props.value);\n const active = createMemo(() => items().find((option) => option.value === current()));\n const activeIndex = createMemo(() =>\n Math.max(\n 0,\n items().findIndex((option) => option.value === current()),\n ),\n );\n const enabled = () =>\n items()\n .map((option, index) => ({ option, index }))\n .filter(({ option }) => !option.disabled);\n const tabStopIndex = createMemo(() => {\n const selected = items().findIndex((option) => option.value === current() && !option.disabled);\n return selected >= 0 ? selected : (enabled()[0]?.index ?? -1);\n });\n createEffect(() => {\n const index = activeIndex();\n const removed = closing !== undefined && !items().some((item) => item.value === closing);\n if (removed) closing = undefined;\n queueMicrotask(() => {\n buttons[index]?.scrollIntoView?.({ block: \"nearest\", inline: \"nearest\" });\n if (removed) {\n const target = items().length ? buttons[index] : root?.querySelector<HTMLElement>(\".k2b-tabs__trailing button\");\n target?.focus();\n }\n });\n });\n const select = (index: number) => {\n const option = items()[index];\n if (!option || option.disabled) return;\n props.onValueChange(option.value);\n queueMicrotask(() => buttons[index]?.focus());\n };\n const move = (index: number, delta: 1 | -1) => {\n const available = enabled();\n if (available.length === 0) return;\n const currentIndex = available.findIndex((item) => item.index === index);\n const next = available[(currentIndex + delta + available.length) % available.length] ?? available[0];\n if (next) select(next.index);\n };\n\n return (\n <div\n ref={root}\n class={`k2b-tabs ${props.class ?? \"\"}`}\n data-orientation={props.orientation ?? \"horizontal\"}\n data-variant={props.variant ?? \"line\"}\n >\n <div class=\"k2b-tabs__bar\">\n <div\n ref={list}\n data-scroll-fade-mode={props.orientation !== \"vertical\" ? \"both\" : undefined}\n data-scroll-fade-axis=\"horizontal\"\n class=\"k2b-tabs__list\"\n role=\"tablist\"\n aria-label={props.ariaLabel}\n aria-orientation={props.orientation ?? \"horizontal\"}\n >\n <For each={items()}>\n {(option, index) => {\n const id = () => `${instanceId}-tab-${index()}`;\n const panelId = () => `${instanceId}-panel-${index()}`;\n return (\n <div class=\"k2b-tabs__item\" role=\"presentation\">\n <button\n ref={(element) => {\n buttons[index()] = element;\n }}\n id={id()}\n type=\"button\"\n role=\"tab\"\n aria-selected={current() === option.value}\n aria-controls={option.panel !== undefined ? panelId() : undefined}\n tabIndex={tabStopIndex() === index() ? 0 : -1}\n disabled={option.disabled}\n onClick={() => props.onValueChange(option.value)}\n onKeyDown={(event) => {\n if ((event.key === \"Delete\" || event.key === \"Backspace\") && option.onClose) {\n event.preventDefault();\n requestClose(option);\n return;\n }\n const previous = props.orientation === \"vertical\" ? \"ArrowUp\" : \"ArrowLeft\";\n const next = props.orientation === \"vertical\" ? \"ArrowDown\" : \"ArrowRight\";\n if (event.key === previous || event.key === next) {\n event.preventDefault();\n move(index(), event.key === next ? 1 : -1);\n } else if (event.key === \"Home\" || event.key === \"End\") {\n event.preventDefault();\n const available = enabled();\n const target = event.key === \"End\" ? available.at(-1) : available[0];\n if (target) select(target.index);\n }\n }}\n >\n <Show when={option.icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n <span>{option.label}</span>\n </button>\n <Show when={option.onClose}>\n <button\n type=\"button\"\n class=\"k2b-tabs__close\"\n aria-label={\n option.closeLabel ??\n messages().closeNamed({ name: typeof option.label === \"string\" ? option.label : props.ariaLabel })\n }\n disabled={option.disabled}\n onClick={() => requestClose(option)}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </div>\n );\n }}\n </For>\n </div>\n <Show when={trailing()}>\n <div class=\"k2b-tabs__trailing\">{trailing()}</div>\n </Show>\n </div>\n <Show when={active()?.panel !== undefined}>\n <div\n id={`${instanceId}-panel-${activeIndex()}`}\n class=\"k2b-tabs__panel\"\n role=\"tabpanel\"\n aria-labelledby={`${instanceId}-tab-${activeIndex()}`}\n tabIndex={0}\n >\n {active()?.panel}\n </div>\n </Show>\n </div>\n );\n}\n\nexport const Tabs = TabsRoot as TabsComponent;\nTabs.Item = TabsItem;\n\nexport default Tabs;\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ export { Dropdown, DropdownItem, dropdownPosition } from "./Dropdown";
5
5
  export { FilterChip } from "./FilterChip";
6
6
  export { ContextMenu } from "./ContextMenu";
7
7
  export { RemoveButton } from "./RemoveButton";
8
- export { isSpotlightShortcut, openSpotlightSearch, SPOTLIGHT_SHORTCUT, SPOTLIGHT_SHORTCUT_LABEL, SPOTLIGHT_SHORTCUT_TITLE, SpotlightButton } from "./SpotlightSearch";
8
+ export { openSpotlightSearch, SpotlightButton } from "./SpotlightSearch";
9
9
  export { SegmentedControl } from "./SegmentedControl";
10
10
  export { SplitButton } from "./SplitButton";
11
11
  export { Tabs } from "./Tabs";
@@ -1 +1 @@
1
- {"version":3,"names":["Button","ButtonLink","IconButton","IconButtonLink","CopyButton","Disclosure","Dropdown","DropdownItem","dropdownPosition","FilterChip","ContextMenu","RemoveButton","isSpotlightShortcut","openSpotlightSearch","SPOTLIGHT_SHORTCUT","SPOTLIGHT_SHORTCUT_LABEL","SPOTLIGHT_SHORTCUT_TITLE","SpotlightButton","SegmentedControl","SplitButton","Tabs","Toolbar"],"sources":["actions/index.ts"],"sourcesContent":["export type { ButtonLinkProps, ButtonProps, ButtonSize, ButtonVariant, IconButtonLinkProps, IconButtonProps } from \"./Button\";\nexport { Button, ButtonLink, IconButton, IconButtonLink } from \"./Button\";\nexport type { CopyButtonProps, CopyButtonValue } from \"./CopyButton\";\nexport { CopyButton } from \"./CopyButton\";\nexport type { DisclosureProps } from \"./Disclosure\";\nexport { Disclosure } from \"./Disclosure\";\nexport type {\n DropdownAction,\n DropdownActionBase,\n DropdownChoice,\n DropdownItemProps,\n DropdownPosition,\n DropdownProps,\n DropdownSection,\n DropdownTriggerProps,\n} from \"./Dropdown\";\nexport { Dropdown, DropdownItem, dropdownPosition } from \"./Dropdown\";\nexport type { FilterChipOption, FilterChipProps, FilterChipSection } from \"./FilterChip\";\nexport { FilterChip } from \"./FilterChip\";\nexport type { ContextMenuProps } from \"./ContextMenu\";\nexport { ContextMenu } from \"./ContextMenu\";\nexport type { RemoveButtonProps } from \"./RemoveButton\";\nexport { RemoveButton } from \"./RemoveButton\";\nexport type {\n SpotlightButtonProps,\n SpotlightButtonVariant,\n SpotlightSearchOptions,\n SpotlightSearchResolver,\n} from \"./SpotlightSearch\";\nexport {\n isSpotlightShortcut,\n openSpotlightSearch,\n SPOTLIGHT_SHORTCUT,\n SPOTLIGHT_SHORTCUT_LABEL,\n SPOTLIGHT_SHORTCUT_TITLE,\n SpotlightButton,\n} from \"./SpotlightSearch\";\nexport type { SegmentedControlProps, SegmentOption } from \"./SegmentedControl\";\nexport { SegmentedControl } from \"./SegmentedControl\";\nexport type { SplitButtonProps } from \"./SplitButton\";\nexport { SplitButton } from \"./SplitButton\";\nexport type { TabOption, TabsItemProps, TabsProps } from \"./Tabs\";\nexport { Tabs } from \"./Tabs\";\nexport type { ToolbarGroupProps, ToolbarProps, ToolbarSeparatorProps } from \"./Toolbar\";\nexport { Toolbar } from \"./Toolbar\";\n"],"mappings":"AACA,SAASA,MAAM,EAAEC,UAAU,EAAEC,UAAU,EAAEC,cAAc,QAAQ,UAAU;AAEzE,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,UAAU,QAAQ,cAAc;AAWzC,SAASC,QAAQ,EAAEC,YAAY,EAAEC,gBAAgB,QAAQ,YAAY;AAErE,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,YAAY,QAAQ,gBAAgB;AAO7C,SACEC,mBAAmB,EACnBC,mBAAmB,EACnBC,kBAAkB,EAClBC,wBAAwB,EACxBC,wBAAwB,EACxBC,eAAe,QACV,mBAAmB;AAE1B,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,IAAI,QAAQ,QAAQ;AAE7B,SAASC,OAAO,QAAQ,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["Button","ButtonLink","IconButton","IconButtonLink","CopyButton","Disclosure","Dropdown","DropdownItem","dropdownPosition","FilterChip","ContextMenu","RemoveButton","openSpotlightSearch","SpotlightButton","SegmentedControl","SplitButton","Tabs","Toolbar"],"sources":["actions/index.ts"],"sourcesContent":["export type { ButtonLinkProps, ButtonProps, ButtonSize, ButtonVariant, IconButtonLinkProps, IconButtonProps } from \"./Button\";\nexport { Button, ButtonLink, IconButton, IconButtonLink } from \"./Button\";\nexport type { CopyButtonProps, CopyButtonValue } from \"./CopyButton\";\nexport { CopyButton } from \"./CopyButton\";\nexport type { DisclosureProps } from \"./Disclosure\";\nexport { Disclosure } from \"./Disclosure\";\nexport type {\n DropdownAction,\n DropdownActionBase,\n DropdownChoice,\n DropdownItemProps,\n DropdownPosition,\n DropdownProps,\n DropdownSection,\n DropdownTriggerProps,\n} from \"./Dropdown\";\nexport { Dropdown, DropdownItem, dropdownPosition } from \"./Dropdown\";\nexport type { FilterChipOption, FilterChipProps, FilterChipSection } from \"./FilterChip\";\nexport { FilterChip } from \"./FilterChip\";\nexport type { ContextMenuProps } from \"./ContextMenu\";\nexport { ContextMenu } from \"./ContextMenu\";\nexport type { RemoveButtonProps } from \"./RemoveButton\";\nexport { RemoveButton } from \"./RemoveButton\";\nexport type {\n SpotlightButtonProps,\n SpotlightButtonVariant,\n SpotlightSearchOptions,\n SpotlightSearchResolver,\n} from \"./SpotlightSearch\";\nexport {\n openSpotlightSearch,\n SpotlightButton,\n} from \"./SpotlightSearch\";\nexport type { SegmentedControlProps, SegmentOption } from \"./SegmentedControl\";\nexport { SegmentedControl } from \"./SegmentedControl\";\nexport type { SplitButtonProps } from \"./SplitButton\";\nexport { SplitButton } from \"./SplitButton\";\nexport type { TabOption, TabsItemProps, TabsProps } from \"./Tabs\";\nexport { Tabs } from \"./Tabs\";\nexport type { ToolbarGroupProps, ToolbarProps, ToolbarSeparatorProps } from \"./Toolbar\";\nexport { Toolbar } from \"./Toolbar\";\n"],"mappings":"AACA,SAASA,MAAM,EAAEC,UAAU,EAAEC,UAAU,EAAEC,cAAc,QAAQ,UAAU;AAEzE,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,UAAU,QAAQ,cAAc;AAWzC,SAASC,QAAQ,EAAEC,YAAY,EAAEC,gBAAgB,QAAQ,YAAY;AAErE,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,YAAY,QAAQ,gBAAgB;AAO7C,SACEC,mBAAmB,EACnBC,eAAe,QACV,mBAAmB;AAE1B,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,IAAI,QAAQ,QAAQ;AAE7B,SAASC,OAAO,QAAQ,WAAW","ignoreList":[]}