@flanksource/clicky-ui 0.2.13 → 0.2.15

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 (466) hide show
  1. package/dist/chat.cjs +20 -0
  2. package/dist/chat.cjs.map +1 -0
  3. package/dist/chat.d.ts +2 -0
  4. package/dist/chat.d.ts.map +1 -0
  5. package/dist/chat.js +20 -0
  6. package/dist/chat.js.map +1 -0
  7. package/dist/components/Combobox.cjs +5 -3
  8. package/dist/components/Combobox.cjs.map +1 -1
  9. package/dist/components/Combobox.d.ts +2 -0
  10. package/dist/components/Combobox.d.ts.map +1 -1
  11. package/dist/components/Combobox.js +5 -3
  12. package/dist/components/Combobox.js.map +1 -1
  13. package/dist/components/DateTimePicker.cjs +3 -1
  14. package/dist/components/DateTimePicker.cjs.map +1 -1
  15. package/dist/components/DateTimePicker.d.ts +5 -1
  16. package/dist/components/DateTimePicker.d.ts.map +1 -1
  17. package/dist/components/DateTimePicker.js +3 -1
  18. package/dist/components/DateTimePicker.js.map +1 -1
  19. package/dist/components/FilterBar.cjs +8 -41
  20. package/dist/components/FilterBar.cjs.map +1 -1
  21. package/dist/components/FilterBar.d.ts +0 -2
  22. package/dist/components/FilterBar.d.ts.map +1 -1
  23. package/dist/components/FilterBar.js +3 -36
  24. package/dist/components/FilterBar.js.map +1 -1
  25. package/dist/components/FormatOptionsDropdown.cjs +2 -18
  26. package/dist/components/FormatOptionsDropdown.cjs.map +1 -1
  27. package/dist/components/FormatOptionsDropdown.d.ts +1 -17
  28. package/dist/components/FormatOptionsDropdown.d.ts.map +1 -1
  29. package/dist/components/FormatOptionsDropdown.js +1 -17
  30. package/dist/components/FormatOptionsDropdown.js.map +1 -1
  31. package/dist/components/JsonSchemaForm.cjs +128 -12
  32. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  33. package/dist/components/JsonSchemaForm.d.ts +1 -1
  34. package/dist/components/JsonSchemaForm.d.ts.map +1 -1
  35. package/dist/components/JsonSchemaForm.js +131 -15
  36. package/dist/components/JsonSchemaForm.js.map +1 -1
  37. package/dist/components/SecretKeySelector.cjs +1 -2
  38. package/dist/components/SecretKeySelector.cjs.map +1 -1
  39. package/dist/components/SecretKeySelector.d.ts +5 -3
  40. package/dist/components/SecretKeySelector.d.ts.map +1 -1
  41. package/dist/components/SecretKeySelector.js +2 -3
  42. package/dist/components/SecretKeySelector.js.map +1 -1
  43. package/dist/components/TreePickerField.cjs +137 -0
  44. package/dist/components/TreePickerField.cjs.map +1 -0
  45. package/dist/components/TreePickerField.d.ts +30 -0
  46. package/dist/components/TreePickerField.d.ts.map +1 -0
  47. package/dist/components/TreePickerField.js +137 -0
  48. package/dist/components/TreePickerField.js.map +1 -0
  49. package/dist/components/WorkloadPicker.cjs +6 -81
  50. package/dist/components/WorkloadPicker.cjs.map +1 -1
  51. package/dist/components/WorkloadPicker.d.ts +1 -20
  52. package/dist/components/WorkloadPicker.d.ts.map +1 -1
  53. package/dist/components/WorkloadPicker.js +3 -78
  54. package/dist/components/WorkloadPicker.js.map +1 -1
  55. package/dist/components/button-variants.cjs +30 -0
  56. package/dist/components/button-variants.cjs.map +1 -0
  57. package/dist/components/button-variants.d.ts +5 -0
  58. package/dist/components/button-variants.d.ts.map +1 -0
  59. package/dist/components/button-variants.js +30 -0
  60. package/dist/components/button-variants.js.map +1 -0
  61. package/dist/components/button.cjs +11 -82
  62. package/dist/components/button.cjs.map +1 -1
  63. package/dist/components/button.d.ts +1 -5
  64. package/dist/components/button.d.ts.map +1 -1
  65. package/dist/components/button.js +5 -76
  66. package/dist/components/button.js.map +1 -1
  67. package/dist/components/filter-bar-utils.cjs +37 -0
  68. package/dist/components/filter-bar-utils.cjs.map +1 -0
  69. package/dist/components/filter-bar-utils.d.ts +4 -0
  70. package/dist/components/filter-bar-utils.d.ts.map +1 -0
  71. package/dist/components/filter-bar-utils.js +37 -0
  72. package/dist/components/filter-bar-utils.js.map +1 -0
  73. package/dist/components/format-options.cjs +20 -0
  74. package/dist/components/format-options.cjs.map +1 -0
  75. package/dist/components/format-options.d.ts +18 -0
  76. package/dist/components/format-options.d.ts.map +1 -0
  77. package/dist/components/format-options.js +20 -0
  78. package/dist/components/format-options.js.map +1 -0
  79. package/dist/components/json-schema-form-array.cjs +13 -17
  80. package/dist/components/json-schema-form-array.cjs.map +1 -1
  81. package/dist/components/json-schema-form-array.d.ts +1 -2
  82. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  83. package/dist/components/json-schema-form-array.js +3 -7
  84. package/dist/components/json-schema-form-array.js.map +1 -1
  85. package/dist/components/json-schema-form-fields.cjs +90 -232
  86. package/dist/components/json-schema-form-fields.cjs.map +1 -1
  87. package/dist/components/json-schema-form-fields.d.ts +51 -6
  88. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  89. package/dist/components/json-schema-form-fields.js +82 -224
  90. package/dist/components/json-schema-form-fields.js.map +1 -1
  91. package/dist/components/json-schema-form-object.cjs +149 -0
  92. package/dist/components/json-schema-form-object.cjs.map +1 -0
  93. package/dist/components/json-schema-form-object.d.ts +10 -0
  94. package/dist/components/json-schema-form-object.d.ts.map +1 -0
  95. package/dist/components/json-schema-form-object.js +149 -0
  96. package/dist/components/json-schema-form-object.js.map +1 -0
  97. package/dist/components/json-schema-form-preferences.cjs +41 -0
  98. package/dist/components/json-schema-form-preferences.cjs.map +1 -0
  99. package/dist/components/json-schema-form-preferences.d.ts +10 -0
  100. package/dist/components/json-schema-form-preferences.d.ts.map +1 -0
  101. package/dist/components/json-schema-form-preferences.js +41 -0
  102. package/dist/components/json-schema-form-preferences.js.map +1 -0
  103. package/dist/components/json-schema-form-render.cjs +43 -72
  104. package/dist/components/json-schema-form-render.cjs.map +1 -1
  105. package/dist/components/json-schema-form-render.d.ts +5 -33
  106. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  107. package/dist/components/json-schema-form-render.js +41 -70
  108. package/dist/components/json-schema-form-render.js.map +1 -1
  109. package/dist/components/json-schema-form-resolve.cjs +9 -1
  110. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  111. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  112. package/dist/components/json-schema-form-resolve.js +9 -1
  113. package/dist/components/json-schema-form-resolve.js.map +1 -1
  114. package/dist/components/json-schema-form-types.d.ts +58 -1
  115. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  116. package/dist/components/json-schema-form-utils.cjs +96 -0
  117. package/dist/components/json-schema-form-utils.cjs.map +1 -0
  118. package/dist/components/json-schema-form-utils.d.ts +17 -0
  119. package/dist/components/json-schema-form-utils.d.ts.map +1 -0
  120. package/dist/components/json-schema-form-utils.js +96 -0
  121. package/dist/components/json-schema-form-utils.js.map +1 -0
  122. package/dist/components/loading.cjs +109 -0
  123. package/dist/components/loading.cjs.map +1 -0
  124. package/dist/components/loading.d.ts +27 -0
  125. package/dist/components/loading.d.ts.map +1 -0
  126. package/dist/components/loading.js +109 -0
  127. package/dist/components/loading.js.map +1 -0
  128. package/dist/components/workload-picker-utils.cjs +88 -0
  129. package/dist/components/workload-picker-utils.cjs.map +1 -0
  130. package/dist/components/workload-picker-utils.d.ts +34 -0
  131. package/dist/components/workload-picker-utils.d.ts.map +1 -0
  132. package/dist/components/workload-picker-utils.js +88 -0
  133. package/dist/components/workload-picker-utils.js.map +1 -0
  134. package/dist/components.cjs +18 -6
  135. package/dist/components.cjs.map +1 -1
  136. package/dist/components.d.ts +10 -3
  137. package/dist/components.d.ts.map +1 -1
  138. package/dist/components.js +16 -4
  139. package/dist/components.js.map +1 -1
  140. package/dist/data/Badge.cjs +11 -91
  141. package/dist/data/Badge.cjs.map +1 -1
  142. package/dist/data/Badge.d.ts +1 -5
  143. package/dist/data/Badge.d.ts.map +1 -1
  144. package/dist/data/Badge.js +11 -91
  145. package/dist/data/Badge.js.map +1 -1
  146. package/dist/data/Clicky.cjs +4 -3
  147. package/dist/data/Clicky.cjs.map +1 -1
  148. package/dist/data/Clicky.d.ts.map +1 -1
  149. package/dist/data/Clicky.js +4 -3
  150. package/dist/data/Clicky.js.map +1 -1
  151. package/dist/data/DataTable.cjs +161 -156
  152. package/dist/data/DataTable.cjs.map +1 -1
  153. package/dist/data/DataTable.d.ts +25 -4
  154. package/dist/data/DataTable.d.ts.map +1 -1
  155. package/dist/data/DataTable.js +140 -135
  156. package/dist/data/DataTable.js.map +1 -1
  157. package/dist/data/FilterPill.cjs +3 -0
  158. package/dist/data/FilterPill.cjs.map +1 -1
  159. package/dist/data/FilterPill.d.ts.map +1 -1
  160. package/dist/data/FilterPill.js +3 -0
  161. package/dist/data/FilterPill.js.map +1 -1
  162. package/dist/data/Icon.cjs +7 -7
  163. package/dist/data/Icon.cjs.map +1 -1
  164. package/dist/data/Icon.js +7 -7
  165. package/dist/data/Icon.js.map +1 -1
  166. package/dist/data/LogDetails.cjs +5 -14
  167. package/dist/data/LogDetails.cjs.map +1 -1
  168. package/dist/data/LogDetails.d.ts +8 -4
  169. package/dist/data/LogDetails.d.ts.map +1 -1
  170. package/dist/data/LogDetails.js +4 -13
  171. package/dist/data/LogDetails.js.map +1 -1
  172. package/dist/data/LogsTable.cjs +6 -165
  173. package/dist/data/LogsTable.cjs.map +1 -1
  174. package/dist/data/LogsTable.d.ts +2 -15
  175. package/dist/data/LogsTable.d.ts.map +1 -1
  176. package/dist/data/LogsTable.js +6 -165
  177. package/dist/data/LogsTable.js.map +1 -1
  178. package/dist/data/TimeseriesCoreBars.cjs +8 -1
  179. package/dist/data/TimeseriesCoreBars.cjs.map +1 -1
  180. package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
  181. package/dist/data/TimeseriesCoreBars.js +8 -1
  182. package/dist/data/TimeseriesCoreBars.js.map +1 -1
  183. package/dist/data/TimeseriesPanel.axes.cjs.map +1 -1
  184. package/dist/data/TimeseriesPanel.axes.js.map +1 -1
  185. package/dist/data/TreeNode.cjs +13 -7
  186. package/dist/data/TreeNode.cjs.map +1 -1
  187. package/dist/data/TreeNode.d.ts.map +1 -1
  188. package/dist/data/TreeNode.js +13 -7
  189. package/dist/data/TreeNode.js.map +1 -1
  190. package/dist/data/badge-variants.cjs +85 -0
  191. package/dist/data/badge-variants.cjs.map +1 -0
  192. package/dist/data/badge-variants.d.ts +6 -0
  193. package/dist/data/badge-variants.d.ts.map +1 -0
  194. package/dist/data/badge-variants.js +85 -0
  195. package/dist/data/badge-variants.js.map +1 -0
  196. package/dist/data/cache-browser/CacheBrowser.cjs +59 -0
  197. package/dist/data/cache-browser/CacheBrowser.cjs.map +1 -0
  198. package/dist/data/cache-browser/CacheBrowser.d.ts +26 -0
  199. package/dist/data/cache-browser/CacheBrowser.d.ts.map +1 -0
  200. package/dist/data/cache-browser/CacheBrowser.js +59 -0
  201. package/dist/data/cache-browser/CacheBrowser.js.map +1 -0
  202. package/dist/data/cache-browser/CacheDetailPanel.cjs +193 -0
  203. package/dist/data/cache-browser/CacheDetailPanel.cjs.map +1 -0
  204. package/dist/data/cache-browser/CacheDetailPanel.d.ts +20 -0
  205. package/dist/data/cache-browser/CacheDetailPanel.d.ts.map +1 -0
  206. package/dist/data/cache-browser/CacheDetailPanel.js +193 -0
  207. package/dist/data/cache-browser/CacheDetailPanel.js.map +1 -0
  208. package/dist/data/cache-browser/CacheStatsOverview.cjs +126 -0
  209. package/dist/data/cache-browser/CacheStatsOverview.cjs.map +1 -0
  210. package/dist/data/cache-browser/CacheStatsOverview.d.ts +17 -0
  211. package/dist/data/cache-browser/CacheStatsOverview.d.ts.map +1 -0
  212. package/dist/data/cache-browser/CacheStatsOverview.js +126 -0
  213. package/dist/data/cache-browser/CacheStatsOverview.js.map +1 -0
  214. package/dist/data/cache-browser/CacheTree.cjs +189 -0
  215. package/dist/data/cache-browser/CacheTree.cjs.map +1 -0
  216. package/dist/data/cache-browser/CacheTree.d.ts +27 -0
  217. package/dist/data/cache-browser/CacheTree.d.ts.map +1 -0
  218. package/dist/data/cache-browser/CacheTree.js +189 -0
  219. package/dist/data/cache-browser/CacheTree.js.map +1 -0
  220. package/dist/data/cache-browser/CacheValue.cjs +86 -0
  221. package/dist/data/cache-browser/CacheValue.cjs.map +1 -0
  222. package/dist/data/cache-browser/CacheValue.d.ts +11 -0
  223. package/dist/data/cache-browser/CacheValue.d.ts.map +1 -0
  224. package/dist/data/cache-browser/CacheValue.js +86 -0
  225. package/dist/data/cache-browser/CacheValue.js.map +1 -0
  226. package/dist/data/cache-browser/adapter.cjs +52 -0
  227. package/dist/data/cache-browser/adapter.cjs.map +1 -0
  228. package/dist/data/cache-browser/adapter.d.ts +48 -0
  229. package/dist/data/cache-browser/adapter.d.ts.map +1 -0
  230. package/dist/data/cache-browser/adapter.js +52 -0
  231. package/dist/data/cache-browser/adapter.js.map +1 -0
  232. package/dist/data/cache-browser/api.cjs +42 -0
  233. package/dist/data/cache-browser/api.cjs.map +1 -0
  234. package/dist/data/cache-browser/api.d.ts +33 -0
  235. package/dist/data/cache-browser/api.d.ts.map +1 -0
  236. package/dist/data/cache-browser/api.js +42 -0
  237. package/dist/data/cache-browser/api.js.map +1 -0
  238. package/dist/data/cache-browser/index.d.ts +9 -0
  239. package/dist/data/cache-browser/index.d.ts.map +1 -0
  240. package/dist/data/cache-browser/types.cjs +7 -0
  241. package/dist/data/cache-browser/types.cjs.map +1 -0
  242. package/dist/data/cache-browser/types.d.ts +78 -0
  243. package/dist/data/cache-browser/types.d.ts.map +1 -0
  244. package/dist/data/cache-browser/types.js +7 -0
  245. package/dist/data/cache-browser/types.js.map +1 -0
  246. package/dist/data/cells/TagList.cjs +4 -101
  247. package/dist/data/cells/TagList.cjs.map +1 -1
  248. package/dist/data/cells/TagList.d.ts +1 -49
  249. package/dist/data/cells/TagList.d.ts.map +1 -1
  250. package/dist/data/cells/TagList.js +3 -100
  251. package/dist/data/cells/TagList.js.map +1 -1
  252. package/dist/data/cells/Timestamp.cjs +3 -192
  253. package/dist/data/cells/Timestamp.cjs.map +1 -1
  254. package/dist/data/cells/Timestamp.d.ts +1 -50
  255. package/dist/data/cells/Timestamp.d.ts.map +1 -1
  256. package/dist/data/cells/Timestamp.js +2 -191
  257. package/dist/data/cells/Timestamp.js.map +1 -1
  258. package/dist/data/cells/tag-utils.cjs +103 -0
  259. package/dist/data/cells/tag-utils.cjs.map +1 -0
  260. package/dist/data/cells/tag-utils.d.ts +51 -0
  261. package/dist/data/cells/tag-utils.d.ts.map +1 -0
  262. package/dist/data/cells/tag-utils.js +103 -0
  263. package/dist/data/cells/tag-utils.js.map +1 -0
  264. package/dist/data/cells/timestamp-format.cjs +193 -0
  265. package/dist/data/cells/timestamp-format.cjs.map +1 -0
  266. package/dist/data/cells/timestamp-format.d.ts +51 -0
  267. package/dist/data/cells/timestamp-format.d.ts.map +1 -0
  268. package/dist/data/cells/timestamp-format.js +193 -0
  269. package/dist/data/cells/timestamp-format.js.map +1 -0
  270. package/dist/data/chat/Chat.cjs +48 -0
  271. package/dist/data/chat/Chat.cjs.map +1 -0
  272. package/dist/data/chat/Chat.d.ts +26 -0
  273. package/dist/data/chat/Chat.d.ts.map +1 -0
  274. package/dist/data/chat/Chat.fixtures.d.ts +6 -0
  275. package/dist/data/chat/Chat.fixtures.d.ts.map +1 -0
  276. package/dist/data/chat/Chat.js +48 -0
  277. package/dist/data/chat/Chat.js.map +1 -0
  278. package/dist/data/chat/Conversation.cjs +34 -0
  279. package/dist/data/chat/Conversation.cjs.map +1 -0
  280. package/dist/data/chat/Conversation.d.ts +11 -0
  281. package/dist/data/chat/Conversation.d.ts.map +1 -0
  282. package/dist/data/chat/Conversation.js +34 -0
  283. package/dist/data/chat/Conversation.js.map +1 -0
  284. package/dist/data/chat/Message.cjs +44 -0
  285. package/dist/data/chat/Message.cjs.map +1 -0
  286. package/dist/data/chat/Message.d.ts +10 -0
  287. package/dist/data/chat/Message.d.ts.map +1 -0
  288. package/dist/data/chat/Message.js +44 -0
  289. package/dist/data/chat/Message.js.map +1 -0
  290. package/dist/data/chat/PromptInput.cjs +61 -0
  291. package/dist/data/chat/PromptInput.cjs.map +1 -0
  292. package/dist/data/chat/PromptInput.d.ts +16 -0
  293. package/dist/data/chat/PromptInput.d.ts.map +1 -0
  294. package/dist/data/chat/PromptInput.js +61 -0
  295. package/dist/data/chat/PromptInput.js.map +1 -0
  296. package/dist/data/chat/ToolCall.cjs +92 -0
  297. package/dist/data/chat/ToolCall.cjs.map +1 -0
  298. package/dist/data/chat/ToolCall.d.ts +14 -0
  299. package/dist/data/chat/ToolCall.d.ts.map +1 -0
  300. package/dist/data/chat/ToolCall.js +92 -0
  301. package/dist/data/chat/ToolCall.js.map +1 -0
  302. package/dist/data/chat/clickyOperationsToTools.cjs +73 -0
  303. package/dist/data/chat/clickyOperationsToTools.cjs.map +1 -0
  304. package/dist/data/chat/clickyOperationsToTools.d.ts +10 -0
  305. package/dist/data/chat/clickyOperationsToTools.d.ts.map +1 -0
  306. package/dist/data/chat/clickyOperationsToTools.js +73 -0
  307. package/dist/data/chat/clickyOperationsToTools.js.map +1 -0
  308. package/dist/data/chat/index.d.ts +8 -0
  309. package/dist/data/chat/index.d.ts.map +1 -0
  310. package/dist/data/chat/types.cjs +18 -0
  311. package/dist/data/chat/types.cjs.map +1 -0
  312. package/dist/data/chat/types.d.ts +41 -0
  313. package/dist/data/chat/types.d.ts.map +1 -0
  314. package/dist/data/chat/types.js +18 -0
  315. package/dist/data/chat/types.js.map +1 -0
  316. package/dist/data/data-table-utils.cjs +55 -0
  317. package/dist/data/data-table-utils.cjs.map +1 -0
  318. package/dist/data/data-table-utils.d.ts +24 -0
  319. package/dist/data/data-table-utils.d.ts.map +1 -0
  320. package/dist/data/data-table-utils.js +55 -0
  321. package/dist/data/data-table-utils.js.map +1 -0
  322. package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs +2 -1
  323. package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs.map +1 -1
  324. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -1
  325. package/dist/data/diagnostics/DiagnosticsDetailPanel.js +3 -2
  326. package/dist/data/diagnostics/DiagnosticsDetailPanel.js.map +1 -1
  327. package/dist/data/diagnostics/GoroutineCard.cjs +3 -22
  328. package/dist/data/diagnostics/GoroutineCard.cjs.map +1 -1
  329. package/dist/data/diagnostics/GoroutineCard.d.ts +0 -2
  330. package/dist/data/diagnostics/GoroutineCard.d.ts.map +1 -1
  331. package/dist/data/diagnostics/GoroutineCard.js +2 -21
  332. package/dist/data/diagnostics/GoroutineCard.js.map +1 -1
  333. package/dist/data/diagnostics/ThreadCard.cjs +3 -38
  334. package/dist/data/diagnostics/ThreadCard.cjs.map +1 -1
  335. package/dist/data/diagnostics/ThreadCard.d.ts +0 -2
  336. package/dist/data/diagnostics/ThreadCard.d.ts.map +1 -1
  337. package/dist/data/diagnostics/ThreadCard.js +2 -37
  338. package/dist/data/diagnostics/ThreadCard.js.map +1 -1
  339. package/dist/data/diagnostics/state-styles.cjs +59 -0
  340. package/dist/data/diagnostics/state-styles.cjs.map +1 -0
  341. package/dist/data/diagnostics/state-styles.d.ts +5 -0
  342. package/dist/data/diagnostics/state-styles.d.ts.map +1 -0
  343. package/dist/data/diagnostics/state-styles.js +59 -0
  344. package/dist/data/diagnostics/state-styles.js.map +1 -0
  345. package/dist/data/logs-normalize.cjs +166 -0
  346. package/dist/data/logs-normalize.cjs.map +1 -0
  347. package/dist/data/logs-normalize.d.ts +16 -0
  348. package/dist/data/logs-normalize.d.ts.map +1 -0
  349. package/dist/data/logs-normalize.js +166 -0
  350. package/dist/data/logs-normalize.js.map +1 -0
  351. package/dist/data/task-status.cjs +19 -19
  352. package/dist/data/task-status.cjs.map +1 -1
  353. package/dist/data/task-status.js +19 -19
  354. package/dist/data/task-status.js.map +1 -1
  355. package/dist/data/version-info.cjs +3 -3
  356. package/dist/data/version-info.js +3 -3
  357. package/dist/data.cjs +43 -18
  358. package/dist/data.cjs.map +1 -1
  359. package/dist/data.d.ts +11 -5
  360. package/dist/data.d.ts.map +1 -1
  361. package/dist/data.js +30 -5
  362. package/dist/data.js.map +1 -1
  363. package/dist/hooks/density-provider.cjs +38 -0
  364. package/dist/hooks/density-provider.cjs.map +1 -0
  365. package/dist/hooks/density-provider.d.ts +20 -0
  366. package/dist/hooks/density-provider.d.ts.map +1 -0
  367. package/dist/hooks/density-provider.js +38 -0
  368. package/dist/hooks/density-provider.js.map +1 -0
  369. package/dist/hooks/theme-provider.cjs +43 -0
  370. package/dist/hooks/theme-provider.cjs.map +1 -0
  371. package/dist/hooks/theme-provider.d.ts +9 -0
  372. package/dist/hooks/theme-provider.d.ts.map +1 -0
  373. package/dist/hooks/theme-provider.js +43 -0
  374. package/dist/hooks/theme-provider.js.map +1 -0
  375. package/dist/hooks/use-density.cjs +8 -37
  376. package/dist/hooks/use-density.cjs.map +1 -1
  377. package/dist/hooks/use-density.d.ts +5 -20
  378. package/dist/hooks/use-density.d.ts.map +1 -1
  379. package/dist/hooks/use-density.js +9 -38
  380. package/dist/hooks/use-density.js.map +1 -1
  381. package/dist/hooks/use-theme.cjs +10 -43
  382. package/dist/hooks/use-theme.cjs.map +1 -1
  383. package/dist/hooks/use-theme.d.ts +6 -9
  384. package/dist/hooks/use-theme.d.ts.map +1 -1
  385. package/dist/hooks/use-theme.js +11 -44
  386. package/dist/hooks/use-theme.js.map +1 -1
  387. package/dist/hooks.cjs +5 -2
  388. package/dist/hooks.cjs.map +1 -1
  389. package/dist/hooks.d.ts +4 -2
  390. package/dist/hooks.d.ts.map +1 -1
  391. package/dist/hooks.js +5 -2
  392. package/dist/hooks.js.map +1 -1
  393. package/dist/icons/changeIconAliases.cjs +13 -13
  394. package/dist/icons/changeIconAliases.cjs.map +1 -1
  395. package/dist/icons/changeIconAliases.d.ts.map +1 -1
  396. package/dist/icons/changeIconAliases.js +13 -13
  397. package/dist/icons/changeIconAliases.js.map +1 -1
  398. package/dist/index.cjs +71 -30
  399. package/dist/index.cjs.map +1 -1
  400. package/dist/index.js +53 -12
  401. package/dist/index.js.map +1 -1
  402. package/dist/overlay/DropdownMenu.cjs +2 -0
  403. package/dist/overlay/DropdownMenu.cjs.map +1 -1
  404. package/dist/overlay/DropdownMenu.d.ts +3 -1
  405. package/dist/overlay/DropdownMenu.d.ts.map +1 -1
  406. package/dist/overlay/DropdownMenu.js +2 -0
  407. package/dist/overlay/DropdownMenu.js.map +1 -1
  408. package/dist/overlay/Modal.cjs +11 -4
  409. package/dist/overlay/Modal.cjs.map +1 -1
  410. package/dist/overlay/Modal.d.ts +1 -1
  411. package/dist/overlay/Modal.d.ts.map +1 -1
  412. package/dist/overlay/Modal.js +11 -4
  413. package/dist/overlay/Modal.js.map +1 -1
  414. package/dist/overlay/modalStack.cjs +35 -0
  415. package/dist/overlay/modalStack.cjs.map +1 -0
  416. package/dist/overlay/modalStack.d.ts +13 -0
  417. package/dist/overlay/modalStack.d.ts.map +1 -0
  418. package/dist/overlay/modalStack.js +35 -0
  419. package/dist/overlay/modalStack.js.map +1 -0
  420. package/dist/rpc/AcceptPicker.cjs +2 -18
  421. package/dist/rpc/AcceptPicker.cjs.map +1 -1
  422. package/dist/rpc/AcceptPicker.d.ts +1 -41
  423. package/dist/rpc/AcceptPicker.d.ts.map +1 -1
  424. package/dist/rpc/AcceptPicker.js +2 -18
  425. package/dist/rpc/AcceptPicker.js.map +1 -1
  426. package/dist/rpc/CommandOutput.cjs +1 -1
  427. package/dist/rpc/CommandOutput.cjs.map +1 -1
  428. package/dist/rpc/CommandOutput.js +1 -1
  429. package/dist/rpc/CommandOutput.js.map +1 -1
  430. package/dist/rpc/EndpointList.cjs +1 -1
  431. package/dist/rpc/EndpointList.cjs.map +1 -1
  432. package/dist/rpc/EndpointList.js +1 -1
  433. package/dist/rpc/EndpointList.js.map +1 -1
  434. package/dist/rpc/OperationCatalog.cjs +23 -41
  435. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  436. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  437. package/dist/rpc/OperationCatalog.js +24 -42
  438. package/dist/rpc/OperationCatalog.js.map +1 -1
  439. package/dist/rpc/OperationCommandPage.cjs.map +1 -1
  440. package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
  441. package/dist/rpc/OperationCommandPage.js.map +1 -1
  442. package/dist/rpc/accept-options.cjs +20 -0
  443. package/dist/rpc/accept-options.cjs.map +1 -0
  444. package/dist/rpc/accept-options.d.ts +42 -0
  445. package/dist/rpc/accept-options.d.ts.map +1 -0
  446. package/dist/rpc/accept-options.js +20 -0
  447. package/dist/rpc/accept-options.js.map +1 -0
  448. package/dist/rpc/classify.cjs +15 -4
  449. package/dist/rpc/classify.cjs.map +1 -1
  450. package/dist/rpc/classify.d.ts.map +1 -1
  451. package/dist/rpc/classify.js +15 -4
  452. package/dist/rpc/classify.js.map +1 -1
  453. package/dist/rpc/clickyMetadata.cjs +13 -3
  454. package/dist/rpc/clickyMetadata.cjs.map +1 -1
  455. package/dist/rpc/clickyMetadata.d.ts +2 -0
  456. package/dist/rpc/clickyMetadata.d.ts.map +1 -1
  457. package/dist/rpc/clickyMetadata.js +14 -4
  458. package/dist/rpc/clickyMetadata.js.map +1 -1
  459. package/dist/rpc.cjs +3 -2
  460. package/dist/rpc.cjs.map +1 -1
  461. package/dist/rpc.d.ts +2 -1
  462. package/dist/rpc.d.ts.map +1 -1
  463. package/dist/rpc.js +2 -1
  464. package/dist/rpc.js.map +1 -1
  465. package/dist/styles.css +1 -1
  466. package/package.json +16 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolCall.js","sources":["../../../src/data/chat/ToolCall.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport { CodeBlock } from \"../CodeBlock\";\nimport {\n UiCheck,\n UiChevronDown,\n UiCircleOutline,\n UiCircleX,\n UiClock,\n UiWrench,\n} from \"../../icons\";\nimport type { AnyToolPart } from \"./types\";\nimport { toolPartName } from \"./types\";\n\nexport type ToolCallProps = {\n /** The tool part from an assistant message (typed or dynamic). */\n part: AnyToolPart;\n /** Whether the call body starts expanded. Defaults to false. */\n defaultOpen?: boolean;\n className?: string;\n};\n\ntype ToolState = AnyToolPart[\"state\"];\n\nconst STATUS_LABEL: Record<ToolState, string> = {\n \"approval-requested\": \"Awaiting approval\",\n \"approval-responded\": \"Responded\",\n \"input-streaming\": \"Pending\",\n \"input-available\": \"Running\",\n \"output-available\": \"Completed\",\n \"output-denied\": \"Denied\",\n \"output-error\": \"Error\",\n};\n\nconst STATUS_ICON: Record<ToolState, { icon: StaticIconComponent; className: string }> = {\n \"approval-requested\": { icon: UiClock, className: \"text-amber-600\" },\n \"approval-responded\": { icon: UiCheck, className: \"text-sky-600\" },\n \"input-streaming\": { icon: UiCircleOutline, className: \"text-muted-foreground\" },\n \"input-available\": { icon: UiClock, className: \"text-muted-foreground animate-pulse\" },\n \"output-available\": { icon: UiCheck, className: \"text-emerald-600\" },\n \"output-denied\": { icon: UiCircleX, className: \"text-orange-600\" },\n \"output-error\": { icon: UiCircleX, className: \"text-destructive\" },\n};\n\n/** Generic display of a single AI tool call: a collapsible header showing the\n * tool name + status, expanding to its JSON input and (once available) output\n * or error. Renders both clicky `dynamic-tool` parts and typed `tool-<name>`\n * parts, keyed off `part.state`. */\nexport function ToolCall({ part, defaultOpen = false, className }: ToolCallProps) {\n const [open, setOpen] = useState(defaultOpen);\n const status = STATUS_ICON[part.state];\n const name = toolPartName(part);\n\n return (\n <div className={cn(\"not-prose mb-1 w-full\", className)}>\n <button\n type=\"button\"\n aria-expanded={open}\n onClick={() => setOpen((v) => !v)}\n className=\"flex w-full items-center justify-between gap-2 py-0.5 text-muted-foreground hover:text-foreground\"\n >\n <span className=\"flex min-w-0 items-center gap-1.5\">\n <Icon icon={UiWrench} className=\"size-3 shrink-0\" />\n <span className=\"truncate font-mono text-xs\">{name}</span>\n <Icon\n icon={status.icon}\n title={STATUS_LABEL[part.state]}\n className={cn(\"size-3 shrink-0\", status.className)}\n />\n </span>\n <Icon\n icon={UiChevronDown}\n className={cn(\"size-3 shrink-0 transition-transform\", open && \"rotate-180\")}\n />\n </button>\n\n {open && (\n <div className=\"space-y-1 pl-4 pt-0.5\">\n <ToolInput input={part.input} />\n <ToolOutput part={part} />\n </div>\n )}\n </div>\n );\n}\n\nfunction ToolInput({ input }: { input: AnyToolPart[\"input\"] }) {\n if (input === undefined || input === null) {\n return null;\n }\n return (\n <div className=\"overflow-hidden text-xs\">\n <CodeBlock language=\"json\" source={JSON.stringify(input, null, 2)} />\n </div>\n );\n}\n\nfunction ToolOutput({ part }: { part: AnyToolPart }) {\n const errorText = part.state === \"output-error\" ? part.errorText : undefined;\n const output = part.state === \"output-available\" ? part.output : undefined;\n if (output === undefined && errorText === undefined) {\n return null;\n }\n return (\n <div className={cn(\"overflow-x-auto text-xs\", errorText ? \"text-destructive\" : \"text-muted-foreground\")}>\n {errorText !== undefined && <div>{errorText}</div>}\n {output !== undefined && (\n <CodeBlock language=\"json\" source={typeof output === \"string\" ? output : JSON.stringify(output, null, 2)} />\n )}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAyBA,MAAM,eAA0C;AAAA,EAC9C,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,gBAAgB;AAClB;AAEA,MAAM,cAAmF;AAAA,EACvF,sBAAsB,EAAE,MAAM,SAAS,WAAW,iBAAA;AAAA,EAClD,sBAAsB,EAAE,MAAM,SAAS,WAAW,eAAA;AAAA,EAClD,mBAAmB,EAAE,MAAM,iBAAiB,WAAW,wBAAA;AAAA,EACvD,mBAAmB,EAAE,MAAM,SAAS,WAAW,sCAAA;AAAA,EAC/C,oBAAoB,EAAE,MAAM,SAAS,WAAW,mBAAA;AAAA,EAChD,iBAAiB,EAAE,MAAM,WAAW,WAAW,kBAAA;AAAA,EAC/C,gBAAgB,EAAE,MAAM,WAAW,WAAW,mBAAA;AAChD;AAMO,SAAS,SAAS,EAAE,MAAM,cAAc,OAAO,aAA4B;AAChF,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,WAAW;AAC5C,QAAM,SAAS,YAAY,KAAK,KAAK;AACrC,QAAM,OAAO,aAAa,IAAI;AAE9B,8BACG,OAAA,EAAI,WAAW,GAAG,yBAAyB,SAAS,GACnD,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,iBAAe;AAAA,QACf,SAAS,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;AAAA,QAChC,WAAU;AAAA,QAEV,UAAA;AAAA,UAAA,qBAAC,QAAA,EAAK,WAAU,qCACd,UAAA;AAAA,YAAA,oBAAC,MAAA,EAAK,MAAM,UAAU,WAAU,mBAAkB;AAAA,YAClD,oBAAC,QAAA,EAAK,WAAU,8BAA8B,UAAA,MAAK;AAAA,YACnD;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAM,OAAO;AAAA,gBACb,OAAO,aAAa,KAAK,KAAK;AAAA,gBAC9B,WAAW,GAAG,mBAAmB,OAAO,SAAS;AAAA,cAAA;AAAA,YAAA;AAAA,UACnD,GACF;AAAA,UACA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAM;AAAA,cACN,WAAW,GAAG,wCAAwC,QAAQ,YAAY;AAAA,YAAA;AAAA,UAAA;AAAA,QAC5E;AAAA,MAAA;AAAA,IAAA;AAAA,IAGD,QACC,qBAAC,OAAA,EAAI,WAAU,yBACb,UAAA;AAAA,MAAA,oBAAC,WAAA,EAAU,OAAO,KAAK,MAAA,CAAO;AAAA,MAC9B,oBAAC,cAAW,KAAA,CAAY;AAAA,IAAA,EAAA,CAC1B;AAAA,EAAA,GAEJ;AAEJ;AAEA,SAAS,UAAU,EAAE,SAA0C;AAC7D,MAAI,UAAU,UAAa,UAAU,MAAM;AACzC,WAAO;AAAA,EACT;AACA,SACE,oBAAC,OAAA,EAAI,WAAU,2BACb,8BAAC,WAAA,EAAU,UAAS,QAAO,QAAQ,KAAK,UAAU,OAAO,MAAM,CAAC,GAAG,GACrE;AAEJ;AAEA,SAAS,WAAW,EAAE,QAA+B;AACnD,QAAM,YAAY,KAAK,UAAU,iBAAiB,KAAK,YAAY;AACnE,QAAM,SAAS,KAAK,UAAU,qBAAqB,KAAK,SAAS;AACjE,MAAI,WAAW,UAAa,cAAc,QAAW;AACnD,WAAO;AAAA,EACT;AACA,SACE,qBAAC,SAAI,WAAW,GAAG,2BAA2B,YAAY,qBAAqB,uBAAuB,GACnG,UAAA;AAAA,IAAA,cAAc,UAAa,oBAAC,OAAA,EAAK,UAAA,WAAU;AAAA,IAC3C,WAAW,UACV,oBAAC,WAAA,EAAU,UAAS,QAAO,QAAQ,OAAO,WAAW,WAAW,SAAS,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAA,CAAG;AAAA,EAAA,GAE9G;AAEJ;"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function clickyOperationsToTools(operations) {
4
+ const tools = [];
5
+ for (const resolved of operations) {
6
+ const tool = operationToTool(resolved.operation);
7
+ if (tool) {
8
+ tools.push(tool);
9
+ }
10
+ }
11
+ return tools;
12
+ }
13
+ function operationToTool(operation) {
14
+ if (!operation.operationId) {
15
+ return null;
16
+ }
17
+ return {
18
+ name: operation.operationId,
19
+ description: operation.description ?? operation.summary,
20
+ inputSchema: buildInputSchema(operation)
21
+ };
22
+ }
23
+ function buildInputSchema(operation) {
24
+ const properties = {};
25
+ const required = [];
26
+ for (const param of operation.parameters ?? []) {
27
+ properties[param.name] = parameterToProperty(param);
28
+ if (param.required) {
29
+ required.push(param.name);
30
+ }
31
+ }
32
+ const body = requestBodySchema(operation);
33
+ if (body == null ? void 0 : body.properties) {
34
+ for (const [name, schema] of Object.entries(body.properties)) {
35
+ properties[name] = schemaToProperty(schema);
36
+ }
37
+ }
38
+ return { type: "object", properties, required };
39
+ }
40
+ function parameterToProperty(param) {
41
+ const prop = schemaToProperty(param.schema);
42
+ if (param.description && !prop.description) {
43
+ prop.description = param.description;
44
+ }
45
+ return prop;
46
+ }
47
+ function schemaToProperty(schema) {
48
+ if (!schema) {
49
+ return { type: "string" };
50
+ }
51
+ const prop = { type: schema.type ?? "string" };
52
+ if (schema.description !== void 0) {
53
+ prop.description = schema.description;
54
+ }
55
+ if (schema.enum !== void 0) {
56
+ prop.enum = schema.enum;
57
+ }
58
+ if (schema.default !== void 0) {
59
+ prop.default = schema.default;
60
+ }
61
+ return prop;
62
+ }
63
+ function requestBodySchema(operation) {
64
+ var _a, _b, _c;
65
+ const content = (_a = operation.requestBody) == null ? void 0 : _a.content;
66
+ if (!content) {
67
+ return void 0;
68
+ }
69
+ return ((_b = content["application/json"]) == null ? void 0 : _b.schema) ?? ((_c = Object.values(content)[0]) == null ? void 0 : _c.schema);
70
+ }
71
+ exports.clickyOperationsToTools = clickyOperationsToTools;
72
+ exports.operationToTool = operationToTool;
73
+ //# sourceMappingURL=clickyOperationsToTools.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clickyOperationsToTools.cjs","sources":["../../../src/data/chat/clickyOperationsToTools.ts"],"sourcesContent":["import type {\n OpenAPIOperation,\n OpenAPIParameter,\n OpenAPISchema,\n ResolvedOperation,\n} from \"../../rpc/types\";\nimport type { ChatToolInputSchema, ChatToolMeta, JSONSchemaProperty } from \"./types\";\n\n/** Converts a clicky RPC operation catalog into AI-tool metadata for display\n * and request scoping. Execution stays in the Go backend; this maps an\n * operation's `operationId` → tool name, `summary`/`description` → description,\n * and `parameters` + `requestBody` → a JSON-Schema input. Operations without an\n * `operationId` are skipped (a tool needs a stable name). */\nexport function clickyOperationsToTools(operations: ResolvedOperation[]): ChatToolMeta[] {\n const tools: ChatToolMeta[] = [];\n for (const resolved of operations) {\n const tool = operationToTool(resolved.operation);\n if (tool) {\n tools.push(tool);\n }\n }\n return tools;\n}\n\nexport function operationToTool(operation: OpenAPIOperation): ChatToolMeta | null {\n if (!operation.operationId) {\n return null;\n }\n return {\n name: operation.operationId,\n description: operation.description ?? operation.summary,\n inputSchema: buildInputSchema(operation),\n };\n}\n\nfunction buildInputSchema(operation: OpenAPIOperation): ChatToolInputSchema {\n const properties: Record<string, JSONSchemaProperty> = {};\n const required: string[] = [];\n\n for (const param of operation.parameters ?? []) {\n properties[param.name] = parameterToProperty(param);\n if (param.required) {\n required.push(param.name);\n }\n }\n\n const body = requestBodySchema(operation);\n if (body?.properties) {\n for (const [name, schema] of Object.entries(body.properties)) {\n properties[name] = schemaToProperty(schema);\n }\n }\n\n return { type: \"object\", properties, required };\n}\n\nfunction parameterToProperty(param: OpenAPIParameter): JSONSchemaProperty {\n const prop = schemaToProperty(param.schema);\n if (param.description && !prop.description) {\n prop.description = param.description;\n }\n return prop;\n}\n\nfunction schemaToProperty(schema: OpenAPISchema | undefined): JSONSchemaProperty {\n if (!schema) {\n return { type: \"string\" };\n }\n const prop: JSONSchemaProperty = { type: schema.type ?? \"string\" };\n if (schema.description !== undefined) {\n prop.description = schema.description;\n }\n if (schema.enum !== undefined) {\n prop.enum = schema.enum;\n }\n if (schema.default !== undefined) {\n prop.default = schema.default;\n }\n return prop;\n}\n\nfunction requestBodySchema(operation: OpenAPIOperation): OpenAPISchema | undefined {\n const content = operation.requestBody?.content;\n if (!content) {\n return undefined;\n }\n return content[\"application/json\"]?.schema ?? Object.values(content)[0]?.schema;\n}\n"],"names":[],"mappings":";;AAaO,SAAS,wBAAwB,YAAiD;AACvF,QAAM,QAAwB,CAAA;AAC9B,aAAW,YAAY,YAAY;AACjC,UAAM,OAAO,gBAAgB,SAAS,SAAS;AAC/C,QAAI,MAAM;AACR,YAAM,KAAK,IAAI;AAAA,IACjB;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,gBAAgB,WAAkD;AAChF,MAAI,CAAC,UAAU,aAAa;AAC1B,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,MAAM,UAAU;AAAA,IAChB,aAAa,UAAU,eAAe,UAAU;AAAA,IAChD,aAAa,iBAAiB,SAAS;AAAA,EAAA;AAE3C;AAEA,SAAS,iBAAiB,WAAkD;AAC1E,QAAM,aAAiD,CAAA;AACvD,QAAM,WAAqB,CAAA;AAE3B,aAAW,SAAS,UAAU,cAAc,CAAA,GAAI;AAC9C,eAAW,MAAM,IAAI,IAAI,oBAAoB,KAAK;AAClD,QAAI,MAAM,UAAU;AAClB,eAAS,KAAK,MAAM,IAAI;AAAA,IAC1B;AAAA,EACF;AAEA,QAAM,OAAO,kBAAkB,SAAS;AACxC,MAAI,6BAAM,YAAY;AACpB,eAAW,CAAC,MAAM,MAAM,KAAK,OAAO,QAAQ,KAAK,UAAU,GAAG;AAC5D,iBAAW,IAAI,IAAI,iBAAiB,MAAM;AAAA,IAC5C;AAAA,EACF;AAEA,SAAO,EAAE,MAAM,UAAU,YAAY,SAAA;AACvC;AAEA,SAAS,oBAAoB,OAA6C;AACxE,QAAM,OAAO,iBAAiB,MAAM,MAAM;AAC1C,MAAI,MAAM,eAAe,CAAC,KAAK,aAAa;AAC1C,SAAK,cAAc,MAAM;AAAA,EAC3B;AACA,SAAO;AACT;AAEA,SAAS,iBAAiB,QAAuD;AAC/E,MAAI,CAAC,QAAQ;AACX,WAAO,EAAE,MAAM,SAAA;AAAA,EACjB;AACA,QAAM,OAA2B,EAAE,MAAM,OAAO,QAAQ,SAAA;AACxD,MAAI,OAAO,gBAAgB,QAAW;AACpC,SAAK,cAAc,OAAO;AAAA,EAC5B;AACA,MAAI,OAAO,SAAS,QAAW;AAC7B,SAAK,OAAO,OAAO;AAAA,EACrB;AACA,MAAI,OAAO,YAAY,QAAW;AAChC,SAAK,UAAU,OAAO;AAAA,EACxB;AACA,SAAO;AACT;AAEA,SAAS,kBAAkB,WAAwD;;AACjF,QAAM,WAAU,eAAU,gBAAV,mBAAuB;AACvC,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AACA,WAAO,aAAQ,kBAAkB,MAA1B,mBAA6B,aAAU,YAAO,OAAO,OAAO,EAAE,CAAC,MAAxB,mBAA2B;AAC3E;;;"}
@@ -0,0 +1,10 @@
1
+ import { OpenAPIOperation, ResolvedOperation } from '../../rpc/types';
2
+ import { ChatToolMeta } from './types';
3
+ /** Converts a clicky RPC operation catalog into AI-tool metadata for display
4
+ * and request scoping. Execution stays in the Go backend; this maps an
5
+ * operation's `operationId` → tool name, `summary`/`description` → description,
6
+ * and `parameters` + `requestBody` → a JSON-Schema input. Operations without an
7
+ * `operationId` are skipped (a tool needs a stable name). */
8
+ export declare function clickyOperationsToTools(operations: ResolvedOperation[]): ChatToolMeta[];
9
+ export declare function operationToTool(operation: OpenAPIOperation): ChatToolMeta | null;
10
+ //# sourceMappingURL=clickyOperationsToTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clickyOperationsToTools.d.ts","sourceRoot":"","sources":["../../../src/data/chat/clickyOperationsToTools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAGhB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAuB,YAAY,EAAsB,MAAM,SAAS,CAAC;AAErF;;;;8DAI8D;AAC9D,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,YAAY,EAAE,CASvF;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAShF"}
@@ -0,0 +1,73 @@
1
+ function clickyOperationsToTools(operations) {
2
+ const tools = [];
3
+ for (const resolved of operations) {
4
+ const tool = operationToTool(resolved.operation);
5
+ if (tool) {
6
+ tools.push(tool);
7
+ }
8
+ }
9
+ return tools;
10
+ }
11
+ function operationToTool(operation) {
12
+ if (!operation.operationId) {
13
+ return null;
14
+ }
15
+ return {
16
+ name: operation.operationId,
17
+ description: operation.description ?? operation.summary,
18
+ inputSchema: buildInputSchema(operation)
19
+ };
20
+ }
21
+ function buildInputSchema(operation) {
22
+ const properties = {};
23
+ const required = [];
24
+ for (const param of operation.parameters ?? []) {
25
+ properties[param.name] = parameterToProperty(param);
26
+ if (param.required) {
27
+ required.push(param.name);
28
+ }
29
+ }
30
+ const body = requestBodySchema(operation);
31
+ if (body == null ? void 0 : body.properties) {
32
+ for (const [name, schema] of Object.entries(body.properties)) {
33
+ properties[name] = schemaToProperty(schema);
34
+ }
35
+ }
36
+ return { type: "object", properties, required };
37
+ }
38
+ function parameterToProperty(param) {
39
+ const prop = schemaToProperty(param.schema);
40
+ if (param.description && !prop.description) {
41
+ prop.description = param.description;
42
+ }
43
+ return prop;
44
+ }
45
+ function schemaToProperty(schema) {
46
+ if (!schema) {
47
+ return { type: "string" };
48
+ }
49
+ const prop = { type: schema.type ?? "string" };
50
+ if (schema.description !== void 0) {
51
+ prop.description = schema.description;
52
+ }
53
+ if (schema.enum !== void 0) {
54
+ prop.enum = schema.enum;
55
+ }
56
+ if (schema.default !== void 0) {
57
+ prop.default = schema.default;
58
+ }
59
+ return prop;
60
+ }
61
+ function requestBodySchema(operation) {
62
+ var _a, _b, _c;
63
+ const content = (_a = operation.requestBody) == null ? void 0 : _a.content;
64
+ if (!content) {
65
+ return void 0;
66
+ }
67
+ return ((_b = content["application/json"]) == null ? void 0 : _b.schema) ?? ((_c = Object.values(content)[0]) == null ? void 0 : _c.schema);
68
+ }
69
+ export {
70
+ clickyOperationsToTools,
71
+ operationToTool
72
+ };
73
+ //# sourceMappingURL=clickyOperationsToTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clickyOperationsToTools.js","sources":["../../../src/data/chat/clickyOperationsToTools.ts"],"sourcesContent":["import type {\n OpenAPIOperation,\n OpenAPIParameter,\n OpenAPISchema,\n ResolvedOperation,\n} from \"../../rpc/types\";\nimport type { ChatToolInputSchema, ChatToolMeta, JSONSchemaProperty } from \"./types\";\n\n/** Converts a clicky RPC operation catalog into AI-tool metadata for display\n * and request scoping. Execution stays in the Go backend; this maps an\n * operation's `operationId` → tool name, `summary`/`description` → description,\n * and `parameters` + `requestBody` → a JSON-Schema input. Operations without an\n * `operationId` are skipped (a tool needs a stable name). */\nexport function clickyOperationsToTools(operations: ResolvedOperation[]): ChatToolMeta[] {\n const tools: ChatToolMeta[] = [];\n for (const resolved of operations) {\n const tool = operationToTool(resolved.operation);\n if (tool) {\n tools.push(tool);\n }\n }\n return tools;\n}\n\nexport function operationToTool(operation: OpenAPIOperation): ChatToolMeta | null {\n if (!operation.operationId) {\n return null;\n }\n return {\n name: operation.operationId,\n description: operation.description ?? operation.summary,\n inputSchema: buildInputSchema(operation),\n };\n}\n\nfunction buildInputSchema(operation: OpenAPIOperation): ChatToolInputSchema {\n const properties: Record<string, JSONSchemaProperty> = {};\n const required: string[] = [];\n\n for (const param of operation.parameters ?? []) {\n properties[param.name] = parameterToProperty(param);\n if (param.required) {\n required.push(param.name);\n }\n }\n\n const body = requestBodySchema(operation);\n if (body?.properties) {\n for (const [name, schema] of Object.entries(body.properties)) {\n properties[name] = schemaToProperty(schema);\n }\n }\n\n return { type: \"object\", properties, required };\n}\n\nfunction parameterToProperty(param: OpenAPIParameter): JSONSchemaProperty {\n const prop = schemaToProperty(param.schema);\n if (param.description && !prop.description) {\n prop.description = param.description;\n }\n return prop;\n}\n\nfunction schemaToProperty(schema: OpenAPISchema | undefined): JSONSchemaProperty {\n if (!schema) {\n return { type: \"string\" };\n }\n const prop: JSONSchemaProperty = { type: schema.type ?? \"string\" };\n if (schema.description !== undefined) {\n prop.description = schema.description;\n }\n if (schema.enum !== undefined) {\n prop.enum = schema.enum;\n }\n if (schema.default !== undefined) {\n prop.default = schema.default;\n }\n return prop;\n}\n\nfunction requestBodySchema(operation: OpenAPIOperation): OpenAPISchema | undefined {\n const content = operation.requestBody?.content;\n if (!content) {\n return undefined;\n }\n return content[\"application/json\"]?.schema ?? Object.values(content)[0]?.schema;\n}\n"],"names":[],"mappings":"AAaO,SAAS,wBAAwB,YAAiD;AACvF,QAAM,QAAwB,CAAA;AAC9B,aAAW,YAAY,YAAY;AACjC,UAAM,OAAO,gBAAgB,SAAS,SAAS;AAC/C,QAAI,MAAM;AACR,YAAM,KAAK,IAAI;AAAA,IACjB;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,gBAAgB,WAAkD;AAChF,MAAI,CAAC,UAAU,aAAa;AAC1B,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,MAAM,UAAU;AAAA,IAChB,aAAa,UAAU,eAAe,UAAU;AAAA,IAChD,aAAa,iBAAiB,SAAS;AAAA,EAAA;AAE3C;AAEA,SAAS,iBAAiB,WAAkD;AAC1E,QAAM,aAAiD,CAAA;AACvD,QAAM,WAAqB,CAAA;AAE3B,aAAW,SAAS,UAAU,cAAc,CAAA,GAAI;AAC9C,eAAW,MAAM,IAAI,IAAI,oBAAoB,KAAK;AAClD,QAAI,MAAM,UAAU;AAClB,eAAS,KAAK,MAAM,IAAI;AAAA,IAC1B;AAAA,EACF;AAEA,QAAM,OAAO,kBAAkB,SAAS;AACxC,MAAI,6BAAM,YAAY;AACpB,eAAW,CAAC,MAAM,MAAM,KAAK,OAAO,QAAQ,KAAK,UAAU,GAAG;AAC5D,iBAAW,IAAI,IAAI,iBAAiB,MAAM;AAAA,IAC5C;AAAA,EACF;AAEA,SAAO,EAAE,MAAM,UAAU,YAAY,SAAA;AACvC;AAEA,SAAS,oBAAoB,OAA6C;AACxE,QAAM,OAAO,iBAAiB,MAAM,MAAM;AAC1C,MAAI,MAAM,eAAe,CAAC,KAAK,aAAa;AAC1C,SAAK,cAAc,MAAM;AAAA,EAC3B;AACA,SAAO;AACT;AAEA,SAAS,iBAAiB,QAAuD;AAC/E,MAAI,CAAC,QAAQ;AACX,WAAO,EAAE,MAAM,SAAA;AAAA,EACjB;AACA,QAAM,OAA2B,EAAE,MAAM,OAAO,QAAQ,SAAA;AACxD,MAAI,OAAO,gBAAgB,QAAW;AACpC,SAAK,cAAc,OAAO;AAAA,EAC5B;AACA,MAAI,OAAO,SAAS,QAAW;AAC7B,SAAK,OAAO,OAAO;AAAA,EACrB;AACA,MAAI,OAAO,YAAY,QAAW;AAChC,SAAK,UAAU,OAAO;AAAA,EACxB;AACA,SAAO;AACT;AAEA,SAAS,kBAAkB,WAAwD;AApE5E;AAqEL,QAAM,WAAU,eAAU,gBAAV,mBAAuB;AACvC,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AACA,WAAO,aAAQ,kBAAkB,MAA1B,mBAA6B,aAAU,YAAO,OAAO,OAAO,EAAE,CAAC,MAAxB,mBAA2B;AAC3E;"}
@@ -0,0 +1,8 @@
1
+ export { Chat, type ChatProps } from './Chat';
2
+ export { Conversation, type ConversationProps } from './Conversation';
3
+ export { Message, type MessageProps } from './Message';
4
+ export { PromptInput, type PromptInputProps } from './PromptInput';
5
+ export { ToolCall, type ToolCallProps } from './ToolCall';
6
+ export { clickyOperationsToTools, operationToTool, } from './clickyOperationsToTools';
7
+ export { isDynamicToolPart, isTypedToolPart, toolPartName, type AnyToolPart, type ChatStatus, type ChatToolInputSchema, type ChatToolMeta, type DynamicToolUIPart, type JSONSchemaProperty, type ToolUIPart, type UIMessage, } from './types';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/chat/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAE1D,OAAO,EACL,uBAAuB,EACvB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,SAAS,GACf,MAAM,SAAS,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function isDynamicToolPart(part) {
4
+ return part.type === "dynamic-tool";
5
+ }
6
+ function isTypedToolPart(part) {
7
+ return part.type.startsWith("tool-");
8
+ }
9
+ function toolPartName(part) {
10
+ if (isDynamicToolPart(part)) {
11
+ return part.toolName;
12
+ }
13
+ return part.type.slice("tool-".length);
14
+ }
15
+ exports.isDynamicToolPart = isDynamicToolPart;
16
+ exports.isTypedToolPart = isTypedToolPart;
17
+ exports.toolPartName = toolPartName;
18
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","sources":["../../../src/data/chat/types.ts"],"sourcesContent":["import type { UIMessage, ToolUIPart, DynamicToolUIPart, ChatStatus } from \"ai\";\n\nexport type { UIMessage, ToolUIPart, DynamicToolUIPart, ChatStatus };\n\n/** A tool part as it appears in an assistant UIMessage — either a typed\n * `tool-<name>` part or the generic `dynamic-tool` part. clicky operations\n * surface as dynamic tools, so the chat UI renders both shapes. */\nexport type AnyToolPart = ToolUIPart | DynamicToolUIPart;\n\n/** AI-tool metadata derived from a clicky RPC operation. The Go backend owns\n * execution; the client uses this only for display and to scope which tools a\n * request may call (passed in the transport `body`). */\nexport interface ChatToolMeta {\n /** Stable tool name sent to the model (the operation id). */\n name: string;\n /** Human-readable description shown in tool pickers / tool-call headers. */\n description?: string | undefined;\n /** JSON-Schema for the tool's input, assembled from the operation's\n * parameters + request body. */\n inputSchema: ChatToolInputSchema;\n}\n\nexport interface ChatToolInputSchema {\n type: \"object\";\n properties: Record<string, JSONSchemaProperty>;\n required: string[];\n}\n\nexport interface JSONSchemaProperty {\n type?: string;\n description?: string;\n enum?: unknown[];\n default?: unknown;\n}\n\n/** Returns true for a `dynamic-tool` part (clicky operations surface this way). */\nexport function isDynamicToolPart(part: { type: string }): part is DynamicToolUIPart {\n return part.type === \"dynamic-tool\";\n}\n\n/** Returns true for a typed `tool-<name>` part. */\nexport function isTypedToolPart(part: { type: string }): part is ToolUIPart {\n return part.type.startsWith(\"tool-\");\n}\n\n/** The display name of a tool part: the explicit `toolName` for dynamic tools,\n * otherwise the suffix after `tool-`. */\nexport function toolPartName(part: AnyToolPart): string {\n if (isDynamicToolPart(part)) {\n return part.toolName;\n }\n return part.type.slice(\"tool-\".length);\n}\n"],"names":[],"mappings":";;AAoCO,SAAS,kBAAkB,MAAmD;AACnF,SAAO,KAAK,SAAS;AACvB;AAGO,SAAS,gBAAgB,MAA4C;AAC1E,SAAO,KAAK,KAAK,WAAW,OAAO;AACrC;AAIO,SAAS,aAAa,MAA2B;AACtD,MAAI,kBAAkB,IAAI,GAAG;AAC3B,WAAO,KAAK;AAAA,EACd;AACA,SAAO,KAAK,KAAK,MAAM,QAAQ,MAAM;AACvC;;;;"}
@@ -0,0 +1,41 @@
1
+ import { UIMessage, ToolUIPart, DynamicToolUIPart, ChatStatus } from 'ai';
2
+ export type { UIMessage, ToolUIPart, DynamicToolUIPart, ChatStatus };
3
+ /** A tool part as it appears in an assistant UIMessage — either a typed
4
+ * `tool-<name>` part or the generic `dynamic-tool` part. clicky operations
5
+ * surface as dynamic tools, so the chat UI renders both shapes. */
6
+ export type AnyToolPart = ToolUIPart | DynamicToolUIPart;
7
+ /** AI-tool metadata derived from a clicky RPC operation. The Go backend owns
8
+ * execution; the client uses this only for display and to scope which tools a
9
+ * request may call (passed in the transport `body`). */
10
+ export interface ChatToolMeta {
11
+ /** Stable tool name sent to the model (the operation id). */
12
+ name: string;
13
+ /** Human-readable description shown in tool pickers / tool-call headers. */
14
+ description?: string | undefined;
15
+ /** JSON-Schema for the tool's input, assembled from the operation's
16
+ * parameters + request body. */
17
+ inputSchema: ChatToolInputSchema;
18
+ }
19
+ export interface ChatToolInputSchema {
20
+ type: "object";
21
+ properties: Record<string, JSONSchemaProperty>;
22
+ required: string[];
23
+ }
24
+ export interface JSONSchemaProperty {
25
+ type?: string;
26
+ description?: string;
27
+ enum?: unknown[];
28
+ default?: unknown;
29
+ }
30
+ /** Returns true for a `dynamic-tool` part (clicky operations surface this way). */
31
+ export declare function isDynamicToolPart(part: {
32
+ type: string;
33
+ }): part is DynamicToolUIPart;
34
+ /** Returns true for a typed `tool-<name>` part. */
35
+ export declare function isTypedToolPart(part: {
36
+ type: string;
37
+ }): part is ToolUIPart;
38
+ /** The display name of a tool part: the explicit `toolName` for dynamic tools,
39
+ * otherwise the suffix after `tool-`. */
40
+ export declare function toolPartName(part: AnyToolPart): string;
41
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/data/chat/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAE/E,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAErE;;oEAEoE;AACpE,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,iBAAiB,CAAC;AAEzD;;yDAEyD;AACzD,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;qCACiC;IACjC,WAAW,EAAE,mBAAmB,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC/C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,IAAI,iBAAiB,CAEnF;AAED,mDAAmD;AACnD,wBAAgB,eAAe,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,IAAI,UAAU,CAE1E;AAED;0CAC0C;AAC1C,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAKtD"}
@@ -0,0 +1,18 @@
1
+ function isDynamicToolPart(part) {
2
+ return part.type === "dynamic-tool";
3
+ }
4
+ function isTypedToolPart(part) {
5
+ return part.type.startsWith("tool-");
6
+ }
7
+ function toolPartName(part) {
8
+ if (isDynamicToolPart(part)) {
9
+ return part.toolName;
10
+ }
11
+ return part.type.slice("tool-".length);
12
+ }
13
+ export {
14
+ isDynamicToolPart,
15
+ isTypedToolPart,
16
+ toolPartName
17
+ };
18
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../../src/data/chat/types.ts"],"sourcesContent":["import type { UIMessage, ToolUIPart, DynamicToolUIPart, ChatStatus } from \"ai\";\n\nexport type { UIMessage, ToolUIPart, DynamicToolUIPart, ChatStatus };\n\n/** A tool part as it appears in an assistant UIMessage — either a typed\n * `tool-<name>` part or the generic `dynamic-tool` part. clicky operations\n * surface as dynamic tools, so the chat UI renders both shapes. */\nexport type AnyToolPart = ToolUIPart | DynamicToolUIPart;\n\n/** AI-tool metadata derived from a clicky RPC operation. The Go backend owns\n * execution; the client uses this only for display and to scope which tools a\n * request may call (passed in the transport `body`). */\nexport interface ChatToolMeta {\n /** Stable tool name sent to the model (the operation id). */\n name: string;\n /** Human-readable description shown in tool pickers / tool-call headers. */\n description?: string | undefined;\n /** JSON-Schema for the tool's input, assembled from the operation's\n * parameters + request body. */\n inputSchema: ChatToolInputSchema;\n}\n\nexport interface ChatToolInputSchema {\n type: \"object\";\n properties: Record<string, JSONSchemaProperty>;\n required: string[];\n}\n\nexport interface JSONSchemaProperty {\n type?: string;\n description?: string;\n enum?: unknown[];\n default?: unknown;\n}\n\n/** Returns true for a `dynamic-tool` part (clicky operations surface this way). */\nexport function isDynamicToolPart(part: { type: string }): part is DynamicToolUIPart {\n return part.type === \"dynamic-tool\";\n}\n\n/** Returns true for a typed `tool-<name>` part. */\nexport function isTypedToolPart(part: { type: string }): part is ToolUIPart {\n return part.type.startsWith(\"tool-\");\n}\n\n/** The display name of a tool part: the explicit `toolName` for dynamic tools,\n * otherwise the suffix after `tool-`. */\nexport function toolPartName(part: AnyToolPart): string {\n if (isDynamicToolPart(part)) {\n return part.toolName;\n }\n return part.type.slice(\"tool-\".length);\n}\n"],"names":[],"mappings":"AAoCO,SAAS,kBAAkB,MAAmD;AACnF,SAAO,KAAK,SAAS;AACvB;AAGO,SAAS,gBAAgB,MAA4C;AAC1E,SAAO,KAAK,KAAK,WAAW,OAAO;AACrC;AAIO,SAAS,aAAa,MAA2B;AACtD,MAAI,kBAAkB,IAAI,GAAG;AAC3B,WAAO,KAAK;AAAA,EACd;AACA,SAAO,KAAK,KAAK,MAAM,QAAQ,MAAM;AACvC;"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function resolvePath(obj, path) {
4
+ return path.split(".").reduce((current, key) => {
5
+ if (current && typeof current === "object") {
6
+ return current[key];
7
+ }
8
+ return void 0;
9
+ }, obj);
10
+ }
11
+ function normalizeTokens(value) {
12
+ if (Array.isArray(value)) {
13
+ return value.flatMap((item) => normalizeTokens(item)).filter(Boolean);
14
+ }
15
+ if (value == null) return [];
16
+ if (typeof value === "object") return [JSON.stringify(value)];
17
+ const token = String(value).trim();
18
+ return token ? [token] : [];
19
+ }
20
+ function resolveColumnValue(row, column) {
21
+ return column.accessor ? column.accessor(row) : resolvePath(row, column.key);
22
+ }
23
+ function getFilterCandidate(row, column) {
24
+ const rawValue = resolveColumnValue(row, column);
25
+ return column.filterValue ? column.filterValue(rawValue, row) : rawValue;
26
+ }
27
+ function getFilterTokens(row, column) {
28
+ return normalizeTokens(getFilterCandidate(row, column));
29
+ }
30
+ function prettifyKey(key) {
31
+ return key.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/[_-]/g, " ").replace(/\b\w/g, (value) => value.toUpperCase()).trim();
32
+ }
33
+ function inferColumns(data, opts) {
34
+ if (data.length === 0) return [];
35
+ const literalKeys = (opts == null ? void 0 : opts.literalKeys) ?? false;
36
+ const keys = /* @__PURE__ */ new Set();
37
+ for (const row of data.slice(0, 20)) {
38
+ Object.keys(row).filter((key) => !key.startsWith("_")).forEach((key) => keys.add(key));
39
+ }
40
+ return Array.from(keys).map((key, index) => ({
41
+ key: key || `__col_${index}`,
42
+ label: key ? prettifyKey(key) : "(no column name)",
43
+ sortable: true,
44
+ filterable: true,
45
+ ...literalKeys ? { accessor: (row) => row[key] } : {}
46
+ }));
47
+ }
48
+ exports.getFilterCandidate = getFilterCandidate;
49
+ exports.getFilterTokens = getFilterTokens;
50
+ exports.inferColumns = inferColumns;
51
+ exports.normalizeTokens = normalizeTokens;
52
+ exports.prettifyKey = prettifyKey;
53
+ exports.resolveColumnValue = resolveColumnValue;
54
+ exports.resolvePath = resolvePath;
55
+ //# sourceMappingURL=data-table-utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table-utils.cjs","sources":["../../src/data/data-table-utils.ts"],"sourcesContent":["import type { DataTableColumn } from \"./DataTable\";\n\nexport function resolvePath(obj: unknown, path: string): unknown {\n return path.split(\".\").reduce<unknown>((current, key) => {\n if (current && typeof current === \"object\") {\n return (current as Record<string, unknown>)[key];\n }\n return undefined;\n }, obj);\n}\n\nexport function normalizeTokens(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value.flatMap((item) => normalizeTokens(item)).filter(Boolean);\n }\n\n if (value == null) return [];\n if (typeof value === \"object\") return [JSON.stringify(value)];\n\n const token = String(value).trim();\n return token ? [token] : [];\n}\n\n/**\n * Reads a column's raw value from a row, honoring a column `accessor` when\n * present (for literal/empty/dotted SQL keys) and otherwise resolving `key` as\n * a dotted path. This is the single value-access seam for rendering, sorting,\n * and filtering.\n */\nexport function resolveColumnValue<T extends Record<string, unknown>>(\n row: T,\n column: DataTableColumn<T>,\n): unknown {\n return column.accessor ? column.accessor(row) : resolvePath(row, column.key);\n}\n\nexport function getFilterCandidate<T extends Record<string, unknown>>(\n row: T,\n column: DataTableColumn<T>,\n) {\n const rawValue = resolveColumnValue(row, column);\n return column.filterValue ? column.filterValue(rawValue, row) : rawValue;\n}\n\nexport function getFilterTokens<T extends Record<string, unknown>>(\n row: T,\n column: DataTableColumn<T>,\n) {\n return normalizeTokens(getFilterCandidate(row, column));\n}\n\nexport function prettifyKey(key: string) {\n return key\n .replace(/([a-z])([A-Z])/g, \"$1 $2\")\n .replace(/[_-]/g, \" \")\n .replace(/\\b\\w/g, (value) => value.toUpperCase())\n .trim();\n}\n\nexport function inferColumns<T extends Record<string, unknown>>(\n data: T[],\n opts?: {\n /**\n * Treat every key as a literal property name rather than a dotted path,\n * and tolerate empty/dotted column names (e.g. raw SQL result sets). Each\n * column carries an `accessor` reading `row[key]` directly, and blank keys\n * get a stable placeholder id + label so the table renders instead of\n * crashing on an id-less column.\n */\n literalKeys?: boolean;\n },\n): DataTableColumn<T>[] {\n if (data.length === 0) return [];\n const literalKeys = opts?.literalKeys ?? false;\n\n const keys = new Set<string>();\n for (const row of data.slice(0, 20)) {\n Object.keys(row)\n .filter((key) => !key.startsWith(\"_\"))\n .forEach((key) => keys.add(key));\n }\n\n return Array.from(keys).map((key, index) => ({\n key: key || `__col_${index}`,\n label: key ? prettifyKey(key) : \"(no column name)\",\n sortable: true,\n filterable: true,\n ...(literalKeys\n ? { accessor: (row: T) => (row as Record<string, unknown>)[key] }\n : {}),\n }));\n}\n"],"names":[],"mappings":";;AAEO,SAAS,YAAY,KAAc,MAAuB;AAC/D,SAAO,KAAK,MAAM,GAAG,EAAE,OAAgB,CAAC,SAAS,QAAQ;AACvD,QAAI,WAAW,OAAO,YAAY,UAAU;AAC1C,aAAQ,QAAoC,GAAG;AAAA,IACjD;AACA,WAAO;AAAA,EACT,GAAG,GAAG;AACR;AAEO,SAAS,gBAAgB,OAA0B;AACxD,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,QAAQ,CAAC,SAAS,gBAAgB,IAAI,CAAC,EAAE,OAAO,OAAO;AAAA,EACtE;AAEA,MAAI,SAAS,KAAM,QAAO,CAAA;AAC1B,MAAI,OAAO,UAAU,SAAU,QAAO,CAAC,KAAK,UAAU,KAAK,CAAC;AAE5D,QAAM,QAAQ,OAAO,KAAK,EAAE,KAAA;AAC5B,SAAO,QAAQ,CAAC,KAAK,IAAI,CAAA;AAC3B;AAQO,SAAS,mBACd,KACA,QACS;AACT,SAAO,OAAO,WAAW,OAAO,SAAS,GAAG,IAAI,YAAY,KAAK,OAAO,GAAG;AAC7E;AAEO,SAAS,mBACd,KACA,QACA;AACA,QAAM,WAAW,mBAAmB,KAAK,MAAM;AAC/C,SAAO,OAAO,cAAc,OAAO,YAAY,UAAU,GAAG,IAAI;AAClE;AAEO,SAAS,gBACd,KACA,QACA;AACA,SAAO,gBAAgB,mBAAmB,KAAK,MAAM,CAAC;AACxD;AAEO,SAAS,YAAY,KAAa;AACvC,SAAO,IACJ,QAAQ,mBAAmB,OAAO,EAClC,QAAQ,SAAS,GAAG,EACpB,QAAQ,SAAS,CAAC,UAAU,MAAM,YAAA,CAAa,EAC/C,KAAA;AACL;AAEO,SAAS,aACd,MACA,MAUsB;AACtB,MAAI,KAAK,WAAW,EAAG,QAAO,CAAA;AAC9B,QAAM,eAAc,6BAAM,gBAAe;AAEzC,QAAM,2BAAW,IAAA;AACjB,aAAW,OAAO,KAAK,MAAM,GAAG,EAAE,GAAG;AACnC,WAAO,KAAK,GAAG,EACZ,OAAO,CAAC,QAAQ,CAAC,IAAI,WAAW,GAAG,CAAC,EACpC,QAAQ,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC;AAAA,EACnC;AAEA,SAAO,MAAM,KAAK,IAAI,EAAE,IAAI,CAAC,KAAK,WAAW;AAAA,IAC3C,KAAK,OAAO,SAAS,KAAK;AAAA,IAC1B,OAAO,MAAM,YAAY,GAAG,IAAI;AAAA,IAChC,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,GAAI,cACA,EAAE,UAAU,CAAC,QAAY,IAAgC,GAAG,MAC5D,CAAA;AAAA,EAAC,EACL;AACJ;;;;;;;;"}
@@ -0,0 +1,24 @@
1
+ import { DataTableColumn } from './DataTable';
2
+ export declare function resolvePath(obj: unknown, path: string): unknown;
3
+ export declare function normalizeTokens(value: unknown): string[];
4
+ /**
5
+ * Reads a column's raw value from a row, honoring a column `accessor` when
6
+ * present (for literal/empty/dotted SQL keys) and otherwise resolving `key` as
7
+ * a dotted path. This is the single value-access seam for rendering, sorting,
8
+ * and filtering.
9
+ */
10
+ export declare function resolveColumnValue<T extends Record<string, unknown>>(row: T, column: DataTableColumn<T>): unknown;
11
+ export declare function getFilterCandidate<T extends Record<string, unknown>>(row: T, column: DataTableColumn<T>): unknown;
12
+ export declare function getFilterTokens<T extends Record<string, unknown>>(row: T, column: DataTableColumn<T>): string[];
13
+ export declare function prettifyKey(key: string): string;
14
+ export declare function inferColumns<T extends Record<string, unknown>>(data: T[], opts?: {
15
+ /**
16
+ * Treat every key as a literal property name rather than a dotted path,
17
+ * and tolerate empty/dotted column names (e.g. raw SQL result sets). Each
18
+ * column carries an `accessor` reading `row[key]` directly, and blank keys
19
+ * get a stable placeholder id + label so the table renders instead of
20
+ * crashing on an id-less column.
21
+ */
22
+ literalKeys?: boolean;
23
+ }): DataTableColumn<T>[];
24
+ //# sourceMappingURL=data-table-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table-utils.d.ts","sourceRoot":"","sources":["../../src/data/data-table-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAO/D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAUxD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,GAAG,EAAE,CAAC,EACN,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GACzB,OAAO,CAET;AAED,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,GAAG,EAAE,CAAC,EACN,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,WAI3B;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,GAAG,EAAE,CAAC,EACN,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,YAG3B;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,UAMtC;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5D,IAAI,EAAE,CAAC,EAAE,EACT,IAAI,CAAC,EAAE;IACL;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GACA,eAAe,CAAC,CAAC,CAAC,EAAE,CAoBtB"}
@@ -0,0 +1,55 @@
1
+ function resolvePath(obj, path) {
2
+ return path.split(".").reduce((current, key) => {
3
+ if (current && typeof current === "object") {
4
+ return current[key];
5
+ }
6
+ return void 0;
7
+ }, obj);
8
+ }
9
+ function normalizeTokens(value) {
10
+ if (Array.isArray(value)) {
11
+ return value.flatMap((item) => normalizeTokens(item)).filter(Boolean);
12
+ }
13
+ if (value == null) return [];
14
+ if (typeof value === "object") return [JSON.stringify(value)];
15
+ const token = String(value).trim();
16
+ return token ? [token] : [];
17
+ }
18
+ function resolveColumnValue(row, column) {
19
+ return column.accessor ? column.accessor(row) : resolvePath(row, column.key);
20
+ }
21
+ function getFilterCandidate(row, column) {
22
+ const rawValue = resolveColumnValue(row, column);
23
+ return column.filterValue ? column.filterValue(rawValue, row) : rawValue;
24
+ }
25
+ function getFilterTokens(row, column) {
26
+ return normalizeTokens(getFilterCandidate(row, column));
27
+ }
28
+ function prettifyKey(key) {
29
+ return key.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/[_-]/g, " ").replace(/\b\w/g, (value) => value.toUpperCase()).trim();
30
+ }
31
+ function inferColumns(data, opts) {
32
+ if (data.length === 0) return [];
33
+ const literalKeys = (opts == null ? void 0 : opts.literalKeys) ?? false;
34
+ const keys = /* @__PURE__ */ new Set();
35
+ for (const row of data.slice(0, 20)) {
36
+ Object.keys(row).filter((key) => !key.startsWith("_")).forEach((key) => keys.add(key));
37
+ }
38
+ return Array.from(keys).map((key, index) => ({
39
+ key: key || `__col_${index}`,
40
+ label: key ? prettifyKey(key) : "(no column name)",
41
+ sortable: true,
42
+ filterable: true,
43
+ ...literalKeys ? { accessor: (row) => row[key] } : {}
44
+ }));
45
+ }
46
+ export {
47
+ getFilterCandidate,
48
+ getFilterTokens,
49
+ inferColumns,
50
+ normalizeTokens,
51
+ prettifyKey,
52
+ resolveColumnValue,
53
+ resolvePath
54
+ };
55
+ //# sourceMappingURL=data-table-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table-utils.js","sources":["../../src/data/data-table-utils.ts"],"sourcesContent":["import type { DataTableColumn } from \"./DataTable\";\n\nexport function resolvePath(obj: unknown, path: string): unknown {\n return path.split(\".\").reduce<unknown>((current, key) => {\n if (current && typeof current === \"object\") {\n return (current as Record<string, unknown>)[key];\n }\n return undefined;\n }, obj);\n}\n\nexport function normalizeTokens(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value.flatMap((item) => normalizeTokens(item)).filter(Boolean);\n }\n\n if (value == null) return [];\n if (typeof value === \"object\") return [JSON.stringify(value)];\n\n const token = String(value).trim();\n return token ? [token] : [];\n}\n\n/**\n * Reads a column's raw value from a row, honoring a column `accessor` when\n * present (for literal/empty/dotted SQL keys) and otherwise resolving `key` as\n * a dotted path. This is the single value-access seam for rendering, sorting,\n * and filtering.\n */\nexport function resolveColumnValue<T extends Record<string, unknown>>(\n row: T,\n column: DataTableColumn<T>,\n): unknown {\n return column.accessor ? column.accessor(row) : resolvePath(row, column.key);\n}\n\nexport function getFilterCandidate<T extends Record<string, unknown>>(\n row: T,\n column: DataTableColumn<T>,\n) {\n const rawValue = resolveColumnValue(row, column);\n return column.filterValue ? column.filterValue(rawValue, row) : rawValue;\n}\n\nexport function getFilterTokens<T extends Record<string, unknown>>(\n row: T,\n column: DataTableColumn<T>,\n) {\n return normalizeTokens(getFilterCandidate(row, column));\n}\n\nexport function prettifyKey(key: string) {\n return key\n .replace(/([a-z])([A-Z])/g, \"$1 $2\")\n .replace(/[_-]/g, \" \")\n .replace(/\\b\\w/g, (value) => value.toUpperCase())\n .trim();\n}\n\nexport function inferColumns<T extends Record<string, unknown>>(\n data: T[],\n opts?: {\n /**\n * Treat every key as a literal property name rather than a dotted path,\n * and tolerate empty/dotted column names (e.g. raw SQL result sets). Each\n * column carries an `accessor` reading `row[key]` directly, and blank keys\n * get a stable placeholder id + label so the table renders instead of\n * crashing on an id-less column.\n */\n literalKeys?: boolean;\n },\n): DataTableColumn<T>[] {\n if (data.length === 0) return [];\n const literalKeys = opts?.literalKeys ?? false;\n\n const keys = new Set<string>();\n for (const row of data.slice(0, 20)) {\n Object.keys(row)\n .filter((key) => !key.startsWith(\"_\"))\n .forEach((key) => keys.add(key));\n }\n\n return Array.from(keys).map((key, index) => ({\n key: key || `__col_${index}`,\n label: key ? prettifyKey(key) : \"(no column name)\",\n sortable: true,\n filterable: true,\n ...(literalKeys\n ? { accessor: (row: T) => (row as Record<string, unknown>)[key] }\n : {}),\n }));\n}\n"],"names":[],"mappings":"AAEO,SAAS,YAAY,KAAc,MAAuB;AAC/D,SAAO,KAAK,MAAM,GAAG,EAAE,OAAgB,CAAC,SAAS,QAAQ;AACvD,QAAI,WAAW,OAAO,YAAY,UAAU;AAC1C,aAAQ,QAAoC,GAAG;AAAA,IACjD;AACA,WAAO;AAAA,EACT,GAAG,GAAG;AACR;AAEO,SAAS,gBAAgB,OAA0B;AACxD,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,MAAM,QAAQ,CAAC,SAAS,gBAAgB,IAAI,CAAC,EAAE,OAAO,OAAO;AAAA,EACtE;AAEA,MAAI,SAAS,KAAM,QAAO,CAAA;AAC1B,MAAI,OAAO,UAAU,SAAU,QAAO,CAAC,KAAK,UAAU,KAAK,CAAC;AAE5D,QAAM,QAAQ,OAAO,KAAK,EAAE,KAAA;AAC5B,SAAO,QAAQ,CAAC,KAAK,IAAI,CAAA;AAC3B;AAQO,SAAS,mBACd,KACA,QACS;AACT,SAAO,OAAO,WAAW,OAAO,SAAS,GAAG,IAAI,YAAY,KAAK,OAAO,GAAG;AAC7E;AAEO,SAAS,mBACd,KACA,QACA;AACA,QAAM,WAAW,mBAAmB,KAAK,MAAM;AAC/C,SAAO,OAAO,cAAc,OAAO,YAAY,UAAU,GAAG,IAAI;AAClE;AAEO,SAAS,gBACd,KACA,QACA;AACA,SAAO,gBAAgB,mBAAmB,KAAK,MAAM,CAAC;AACxD;AAEO,SAAS,YAAY,KAAa;AACvC,SAAO,IACJ,QAAQ,mBAAmB,OAAO,EAClC,QAAQ,SAAS,GAAG,EACpB,QAAQ,SAAS,CAAC,UAAU,MAAM,YAAA,CAAa,EAC/C,KAAA;AACL;AAEO,SAAS,aACd,MACA,MAUsB;AACtB,MAAI,KAAK,WAAW,EAAG,QAAO,CAAA;AAC9B,QAAM,eAAc,6BAAM,gBAAe;AAEzC,QAAM,2BAAW,IAAA;AACjB,aAAW,OAAO,KAAK,MAAM,GAAG,EAAE,GAAG;AACnC,WAAO,KAAK,GAAG,EACZ,OAAO,CAAC,QAAQ,CAAC,IAAI,WAAW,GAAG,CAAC,EACpC,QAAQ,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC;AAAA,EACnC;AAEA,SAAO,MAAM,KAAK,IAAI,EAAE,IAAI,CAAC,KAAK,WAAW;AAAA,IAC3C,KAAK,OAAO,SAAS,KAAK;AAAA,IAC1B,OAAO,MAAM,YAAY,GAAG,IAAI;AAAA,IAChC,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,GAAI,cACA,EAAE,UAAU,CAAC,QAAY,IAAgC,GAAG,MAC5D,CAAA;AAAA,EAAC,EACL;AACJ;"}
@@ -7,6 +7,7 @@ const utils = require("./utils.cjs");
7
7
  const stacktrace = require("./stacktrace.cjs");
8
8
  const GoroutineCard = require("./GoroutineCard.cjs");
9
9
  const ThreadCard = require("./ThreadCard.cjs");
10
+ const stateStyles = require("./state-styles.cjs");
10
11
  const UiServerProcess = require("../../icons/components/UiServerProcess.cjs");
11
12
  const UiDebug = require("../../icons/components/UiDebug.cjs");
12
13
  const UiLoader = require("../../icons/components/UiLoader.cjs");
@@ -170,7 +171,7 @@ function stackItemLabel(parsed) {
170
171
  return "frames";
171
172
  }
172
173
  function stackStateDot(parsed, state) {
173
- return parsed.format === "jvm" ? ThreadCard.threadStateDot(state) : GoroutineCard.goroutineStateDot(state);
174
+ return parsed.format === "jvm" ? stateStyles.threadStateDot(state) : stateStyles.goroutineStateDot(state);
174
175
  }
175
176
  function StackBlock(props) {
176
177
  const {