@flanksource/clicky-ui 0.3.21 → 0.3.23

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 (1627) hide show
  1. package/NOTICE.md +14 -0
  2. package/README.md +8 -1
  3. package/dist/ai.cjs +10 -0
  4. package/dist/ai.cjs.map +1 -1
  5. package/dist/ai.js +10 -0
  6. package/dist/ai.js.map +1 -1
  7. package/dist/comments/MentionTextarea.cjs +1 -1
  8. package/dist/comments/MentionTextarea.cjs.map +1 -1
  9. package/dist/comments/MentionTextarea.js +1 -1
  10. package/dist/comments/MentionTextarea.js.map +1 -1
  11. package/dist/components/AccordionList.cjs +320 -0
  12. package/dist/components/AccordionList.cjs.map +1 -0
  13. package/dist/components/AccordionList.d.ts +93 -0
  14. package/dist/components/AccordionList.d.ts.map +1 -0
  15. package/dist/components/AccordionList.js +320 -0
  16. package/dist/components/AccordionList.js.map +1 -0
  17. package/dist/components/Combobox.cjs +41 -3
  18. package/dist/components/Combobox.cjs.map +1 -1
  19. package/dist/components/Combobox.d.ts.map +1 -1
  20. package/dist/components/Combobox.js +42 -4
  21. package/dist/components/Combobox.js.map +1 -1
  22. package/dist/components/ComboboxControl.cjs +6 -0
  23. package/dist/components/ComboboxControl.cjs.map +1 -1
  24. package/dist/components/ComboboxControl.d.ts +7 -3
  25. package/dist/components/ComboboxControl.d.ts.map +1 -1
  26. package/dist/components/ComboboxControl.js +6 -0
  27. package/dist/components/ComboboxControl.js.map +1 -1
  28. package/dist/components/ComboboxMenu.cjs +2 -1
  29. package/dist/components/ComboboxMenu.cjs.map +1 -1
  30. package/dist/components/ComboboxMenu.d.ts +3 -1
  31. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  32. package/dist/components/ComboboxMenu.js +2 -1
  33. package/dist/components/ComboboxMenu.js.map +1 -1
  34. package/dist/components/ComboboxTags.cjs +42 -11
  35. package/dist/components/ComboboxTags.cjs.map +1 -1
  36. package/dist/components/ComboboxTags.d.ts +5 -2
  37. package/dist/components/ComboboxTags.d.ts.map +1 -1
  38. package/dist/components/ComboboxTags.js +42 -11
  39. package/dist/components/ComboboxTags.js.map +1 -1
  40. package/dist/components/ConnectionLoggingPolicy.cjs +268 -0
  41. package/dist/components/ConnectionLoggingPolicy.cjs.map +1 -0
  42. package/dist/components/ConnectionLoggingPolicy.d.ts +3 -0
  43. package/dist/components/ConnectionLoggingPolicy.d.ts.map +1 -0
  44. package/dist/components/ConnectionLoggingPolicy.js +268 -0
  45. package/dist/components/ConnectionLoggingPolicy.js.map +1 -0
  46. package/dist/components/ConnectionLoggingPolicy.model.cjs +52 -0
  47. package/dist/components/ConnectionLoggingPolicy.model.cjs.map +1 -0
  48. package/dist/components/ConnectionLoggingPolicy.model.d.ts +35 -0
  49. package/dist/components/ConnectionLoggingPolicy.model.d.ts.map +1 -0
  50. package/dist/components/ConnectionLoggingPolicy.model.js +52 -0
  51. package/dist/components/ConnectionLoggingPolicy.model.js.map +1 -0
  52. package/dist/components/CountryFlag.cjs +55 -0
  53. package/dist/components/CountryFlag.cjs.map +1 -0
  54. package/dist/components/CountryFlag.d.ts +8 -0
  55. package/dist/components/CountryFlag.d.ts.map +1 -0
  56. package/dist/components/CountryFlag.js +38 -0
  57. package/dist/components/CountryFlag.js.map +1 -0
  58. package/dist/components/CountryPicker.cjs +35 -0
  59. package/dist/components/CountryPicker.cjs.map +1 -0
  60. package/dist/components/CountryPicker.d.ts +4 -0
  61. package/dist/components/CountryPicker.d.ts.map +1 -0
  62. package/dist/components/CountryPicker.js +35 -0
  63. package/dist/components/CountryPicker.js.map +1 -0
  64. package/dist/components/DaemonSetIcon.cjs +20 -0
  65. package/dist/components/DaemonSetIcon.cjs.map +1 -0
  66. package/dist/components/DaemonSetIcon.d.ts +8 -0
  67. package/dist/components/DaemonSetIcon.d.ts.map +1 -0
  68. package/dist/components/DaemonSetIcon.js +20 -0
  69. package/dist/components/DaemonSetIcon.js.map +1 -0
  70. package/dist/components/DateField.cjs.map +1 -1
  71. package/dist/components/DateField.d.ts +11 -3
  72. package/dist/components/DateField.d.ts.map +1 -1
  73. package/dist/components/DateField.js.map +1 -1
  74. package/dist/components/DatePicker.cjs +6 -1
  75. package/dist/components/DatePicker.cjs.map +1 -1
  76. package/dist/components/DatePicker.d.ts +11 -3
  77. package/dist/components/DatePicker.d.ts.map +1 -1
  78. package/dist/components/DatePicker.js +6 -1
  79. package/dist/components/DatePicker.js.map +1 -1
  80. package/dist/components/EndpointSelector.cjs +29 -8
  81. package/dist/components/EndpointSelector.cjs.map +1 -1
  82. package/dist/components/EndpointSelector.d.ts +1 -1
  83. package/dist/components/EndpointSelector.d.ts.map +1 -1
  84. package/dist/components/EndpointSelector.js +29 -8
  85. package/dist/components/EndpointSelector.js.map +1 -1
  86. package/dist/components/EndpointSelector.model.cjs.map +1 -1
  87. package/dist/components/EndpointSelector.model.d.ts +5 -0
  88. package/dist/components/EndpointSelector.model.d.ts.map +1 -1
  89. package/dist/components/EndpointSelector.model.js.map +1 -1
  90. package/dist/components/FilterBar.cjs +43 -19
  91. package/dist/components/FilterBar.cjs.map +1 -1
  92. package/dist/components/FilterBar.d.ts +21 -1
  93. package/dist/components/FilterBar.d.ts.map +1 -1
  94. package/dist/components/FilterBar.js +41 -17
  95. package/dist/components/FilterBar.js.map +1 -1
  96. package/dist/components/InputField.cjs +14 -2
  97. package/dist/components/InputField.cjs.map +1 -1
  98. package/dist/components/InputField.d.ts +6 -0
  99. package/dist/components/InputField.d.ts.map +1 -1
  100. package/dist/components/InputField.js +14 -2
  101. package/dist/components/InputField.js.map +1 -1
  102. package/dist/components/ItemActions.cjs +87 -0
  103. package/dist/components/ItemActions.cjs.map +1 -0
  104. package/dist/components/ItemActions.d.ts +33 -0
  105. package/dist/components/ItemActions.d.ts.map +1 -0
  106. package/dist/components/ItemActions.js +87 -0
  107. package/dist/components/ItemActions.js.map +1 -0
  108. package/dist/components/JsonSchemaForm.cjs +1 -1
  109. package/dist/components/JsonSchemaForm.cjs.map +1 -1
  110. package/dist/components/JsonSchemaForm.js +1 -1
  111. package/dist/components/JsonSchemaForm.js.map +1 -1
  112. package/dist/components/MdxEditorCallout.cjs +108 -0
  113. package/dist/components/MdxEditorCallout.cjs.map +1 -0
  114. package/dist/components/MdxEditorCallout.d.ts +27 -0
  115. package/dist/components/MdxEditorCallout.d.ts.map +1 -0
  116. package/dist/components/MdxEditorCallout.js +108 -0
  117. package/dist/components/MdxEditorCallout.js.map +1 -0
  118. package/dist/components/MdxEditorField.cjs.map +1 -1
  119. package/dist/components/MdxEditorField.d.ts +1 -1
  120. package/dist/components/MdxEditorField.d.ts.map +1 -1
  121. package/dist/components/MdxEditorField.js.map +1 -1
  122. package/dist/components/MdxEditorToolbar.cjs +10 -2
  123. package/dist/components/MdxEditorToolbar.cjs.map +1 -1
  124. package/dist/components/MdxEditorToolbar.d.ts.map +1 -1
  125. package/dist/components/MdxEditorToolbar.js +10 -2
  126. package/dist/components/MdxEditorToolbar.js.map +1 -1
  127. package/dist/components/MultiSelect.cjs +3 -1
  128. package/dist/components/MultiSelect.cjs.map +1 -1
  129. package/dist/components/MultiSelect.d.ts.map +1 -1
  130. package/dist/components/MultiSelect.js +3 -1
  131. package/dist/components/MultiSelect.js.map +1 -1
  132. package/dist/components/NamespacePicker.cjs +1 -0
  133. package/dist/components/NamespacePicker.cjs.map +1 -1
  134. package/dist/components/NamespacePicker.d.ts.map +1 -1
  135. package/dist/components/NamespacePicker.js +1 -0
  136. package/dist/components/NamespacePicker.js.map +1 -1
  137. package/dist/components/SplitButton.cjs +3 -2
  138. package/dist/components/SplitButton.cjs.map +1 -1
  139. package/dist/components/SplitButton.d.ts +6 -1
  140. package/dist/components/SplitButton.d.ts.map +1 -1
  141. package/dist/components/SplitButton.js +3 -2
  142. package/dist/components/SplitButton.js.map +1 -1
  143. package/dist/components/WorkloadPicker.cjs +117 -31
  144. package/dist/components/WorkloadPicker.cjs.map +1 -1
  145. package/dist/components/WorkloadPicker.d.ts +29 -5
  146. package/dist/components/WorkloadPicker.d.ts.map +1 -1
  147. package/dist/components/WorkloadPicker.js +119 -33
  148. package/dist/components/WorkloadPicker.js.map +1 -1
  149. package/dist/components/button-variants.d.ts +1 -1
  150. package/dist/components/button.d.ts +1 -1
  151. package/dist/components/combobox-types.d.ts +13 -0
  152. package/dist/components/combobox-types.d.ts.map +1 -1
  153. package/dist/components/combobox-utils.cjs +16 -0
  154. package/dist/components/combobox-utils.cjs.map +1 -1
  155. package/dist/components/combobox-utils.d.ts +1 -0
  156. package/dist/components/combobox-utils.d.ts.map +1 -1
  157. package/dist/components/combobox-utils.js +16 -0
  158. package/dist/components/combobox-utils.js.map +1 -1
  159. package/dist/components/country-options.cjs +34 -0
  160. package/dist/components/country-options.cjs.map +1 -0
  161. package/dist/components/country-options.d.ts +8 -0
  162. package/dist/components/country-options.d.ts.map +1 -0
  163. package/dist/components/country-options.js +34 -0
  164. package/dist/components/country-options.js.map +1 -0
  165. package/dist/components/filter-bar-multi.cjs +1 -1
  166. package/dist/components/filter-bar-multi.cjs.map +1 -1
  167. package/dist/components/filter-bar-multi.js +1 -1
  168. package/dist/components/filter-bar-multi.js.map +1 -1
  169. package/dist/components/filter-bar-utils.cjs +14 -2
  170. package/dist/components/filter-bar-utils.cjs.map +1 -1
  171. package/dist/components/filter-bar-utils.d.ts +2 -1
  172. package/dist/components/filter-bar-utils.d.ts.map +1 -1
  173. package/dist/components/filter-bar-utils.js +14 -2
  174. package/dist/components/filter-bar-utils.js.map +1 -1
  175. package/dist/components/jotai-bindings-core.cjs +11 -0
  176. package/dist/components/jotai-bindings-core.cjs.map +1 -1
  177. package/dist/components/jotai-bindings-core.d.ts +3 -2
  178. package/dist/components/jotai-bindings-core.d.ts.map +1 -1
  179. package/dist/components/jotai-bindings-core.js +11 -0
  180. package/dist/components/jotai-bindings-core.js.map +1 -1
  181. package/dist/components/json-schema-form-accordion-array.cjs +54 -190
  182. package/dist/components/json-schema-form-accordion-array.cjs.map +1 -1
  183. package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
  184. package/dist/components/json-schema-form-accordion-array.js +59 -195
  185. package/dist/components/json-schema-form-accordion-array.js.map +1 -1
  186. package/dist/components/json-schema-form-array.cjs +46 -146
  187. package/dist/components/json-schema-form-array.cjs.map +1 -1
  188. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  189. package/dist/components/json-schema-form-array.js +47 -147
  190. package/dist/components/json-schema-form-array.js.map +1 -1
  191. package/dist/components/json-schema-form-cards-array.cjs +9 -7
  192. package/dist/components/json-schema-form-cards-array.cjs.map +1 -1
  193. package/dist/components/json-schema-form-cards-array.d.ts.map +1 -1
  194. package/dist/components/json-schema-form-cards-array.js +11 -9
  195. package/dist/components/json-schema-form-cards-array.js.map +1 -1
  196. package/dist/components/json-schema-form-error-display.js +1 -1
  197. package/dist/components/json-schema-form-errors.cjs +17 -4
  198. package/dist/components/json-schema-form-errors.cjs.map +1 -1
  199. package/dist/components/json-schema-form-errors.d.ts +1 -0
  200. package/dist/components/json-schema-form-errors.d.ts.map +1 -1
  201. package/dist/components/json-schema-form-errors.js +16 -3
  202. package/dist/components/json-schema-form-errors.js.map +1 -1
  203. package/dist/components/json-schema-form-fields.cjs +18 -2
  204. package/dist/components/json-schema-form-fields.cjs.map +1 -1
  205. package/dist/components/json-schema-form-fields.d.ts.map +1 -1
  206. package/dist/components/json-schema-form-fields.js +18 -2
  207. package/dist/components/json-schema-form-fields.js.map +1 -1
  208. package/dist/components/json-schema-form-item-row.cjs +17 -46
  209. package/dist/components/json-schema-form-item-row.cjs.map +1 -1
  210. package/dist/components/json-schema-form-item-row.d.ts +3 -10
  211. package/dist/components/json-schema-form-item-row.d.ts.map +1 -1
  212. package/dist/components/json-schema-form-item-row.js +18 -47
  213. package/dist/components/json-schema-form-item-row.js.map +1 -1
  214. package/dist/components/json-schema-form-item-summary.cjs +18 -4
  215. package/dist/components/json-schema-form-item-summary.cjs.map +1 -1
  216. package/dist/components/json-schema-form-item-summary.d.ts +2 -1
  217. package/dist/components/json-schema-form-item-summary.d.ts.map +1 -1
  218. package/dist/components/json-schema-form-item-summary.js +15 -1
  219. package/dist/components/json-schema-form-item-summary.js.map +1 -1
  220. package/dist/components/json-schema-form-lookup-tree.cjs +2 -5
  221. package/dist/components/json-schema-form-lookup-tree.cjs.map +1 -1
  222. package/dist/components/json-schema-form-lookup-tree.d.ts.map +1 -1
  223. package/dist/components/json-schema-form-lookup-tree.js +2 -5
  224. package/dist/components/json-schema-form-lookup-tree.js.map +1 -1
  225. package/dist/components/json-schema-form-object.cjs +3 -2
  226. package/dist/components/json-schema-form-object.cjs.map +1 -1
  227. package/dist/components/json-schema-form-object.d.ts.map +1 -1
  228. package/dist/components/json-schema-form-object.js +2 -1
  229. package/dist/components/json-schema-form-object.js.map +1 -1
  230. package/dist/components/json-schema-form-render.cjs +4 -1
  231. package/dist/components/json-schema-form-render.cjs.map +1 -1
  232. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  233. package/dist/components/json-schema-form-render.js +5 -2
  234. package/dist/components/json-schema-form-render.js.map +1 -1
  235. package/dist/components/json-schema-form-resolve.cjs +21 -13
  236. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  237. package/dist/components/json-schema-form-resolve.d.ts +2 -2
  238. package/dist/components/json-schema-form-resolve.d.ts.map +1 -1
  239. package/dist/components/json-schema-form-resolve.js +16 -8
  240. package/dist/components/json-schema-form-resolve.js.map +1 -1
  241. package/dist/components/json-schema-form-table-array.cjs +4 -3
  242. package/dist/components/json-schema-form-table-array.cjs.map +1 -1
  243. package/dist/components/json-schema-form-table-array.d.ts.map +1 -1
  244. package/dist/components/json-schema-form-table-array.js +2 -1
  245. package/dist/components/json-schema-form-table-array.js.map +1 -1
  246. package/dist/components/json-schema-form-tags-combobox.cjs +55 -0
  247. package/dist/components/json-schema-form-tags-combobox.cjs.map +1 -0
  248. package/dist/components/json-schema-form-tags-combobox.d.ts +17 -0
  249. package/dist/components/json-schema-form-tags-combobox.d.ts.map +1 -0
  250. package/dist/components/json-schema-form-tags-combobox.js +55 -0
  251. package/dist/components/json-schema-form-tags-combobox.js.map +1 -0
  252. package/dist/components/json-schema-form-types.d.ts +8 -1
  253. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  254. package/dist/components/json-schema-form-utils.cjs +5 -28
  255. package/dist/components/json-schema-form-utils.cjs.map +1 -1
  256. package/dist/components/json-schema-form-utils.d.ts +1 -5
  257. package/dist/components/json-schema-form-utils.d.ts.map +1 -1
  258. package/dist/components/json-schema-form-utils.js +5 -28
  259. package/dist/components/json-schema-form-utils.js.map +1 -1
  260. package/dist/components/jsonPathTree.cjs +10 -3
  261. package/dist/components/jsonPathTree.cjs.map +1 -1
  262. package/dist/components/jsonPathTree.d.ts +17 -0
  263. package/dist/components/jsonPathTree.d.ts.map +1 -1
  264. package/dist/components/jsonPathTree.js +10 -3
  265. package/dist/components/jsonPathTree.js.map +1 -1
  266. package/dist/components/mdx-editor-callout-model.cjs +26 -0
  267. package/dist/components/mdx-editor-callout-model.cjs.map +1 -0
  268. package/dist/components/mdx-editor-callout-model.d.ts +14 -0
  269. package/dist/components/mdx-editor-callout-model.d.ts.map +1 -0
  270. package/dist/components/mdx-editor-callout-model.js +26 -0
  271. package/dist/components/mdx-editor-callout-model.js.map +1 -0
  272. package/dist/components/mdx-editor-callout.cjs +39 -0
  273. package/dist/components/mdx-editor-callout.cjs.map +1 -0
  274. package/dist/components/mdx-editor-callout.d.ts +27 -0
  275. package/dist/components/mdx-editor-callout.d.ts.map +1 -0
  276. package/dist/components/mdx-editor-callout.js +39 -0
  277. package/dist/components/mdx-editor-callout.js.map +1 -0
  278. package/dist/components/mdx-editor-field-plugins.cjs +14 -0
  279. package/dist/components/mdx-editor-field-plugins.cjs.map +1 -1
  280. package/dist/components/mdx-editor-field-plugins.d.ts.map +1 -1
  281. package/dist/components/mdx-editor-field-plugins.js +14 -0
  282. package/dist/components/mdx-editor-field-plugins.js.map +1 -1
  283. package/dist/components/mdx-editor-jsx-attributes.cjs +23 -0
  284. package/dist/components/mdx-editor-jsx-attributes.cjs.map +1 -0
  285. package/dist/components/mdx-editor-jsx-attributes.d.ts +29 -0
  286. package/dist/components/mdx-editor-jsx-attributes.d.ts.map +1 -0
  287. package/dist/components/mdx-editor-jsx-attributes.js +23 -0
  288. package/dist/components/mdx-editor-jsx-attributes.js.map +1 -0
  289. package/dist/components/mdx-editor-options.d.ts +79 -0
  290. package/dist/components/mdx-editor-options.d.ts.map +1 -1
  291. package/dist/components/workload-picker-utils.cjs +17 -4
  292. package/dist/components/workload-picker-utils.cjs.map +1 -1
  293. package/dist/components/workload-picker-utils.d.ts +3 -1
  294. package/dist/components/workload-picker-utils.d.ts.map +1 -1
  295. package/dist/components/workload-picker-utils.js +18 -5
  296. package/dist/components/workload-picker-utils.js.map +1 -1
  297. package/dist/components.cjs +24 -0
  298. package/dist/components.cjs.map +1 -1
  299. package/dist/components.d.ts +12 -3
  300. package/dist/components.d.ts.map +1 -1
  301. package/dist/components.js +24 -0
  302. package/dist/components.js.map +1 -1
  303. package/dist/data/Callout.cjs +48 -0
  304. package/dist/data/Callout.cjs.map +1 -0
  305. package/dist/data/Callout.d.ts +58 -0
  306. package/dist/data/Callout.d.ts.map +1 -0
  307. package/dist/data/Callout.js +48 -0
  308. package/dist/data/Callout.js.map +1 -0
  309. package/dist/data/Clicky.cjs +311 -249
  310. package/dist/data/Clicky.cjs.map +1 -1
  311. package/dist/data/Clicky.d.ts +37 -2
  312. package/dist/data/Clicky.d.ts.map +1 -1
  313. package/dist/data/Clicky.js +314 -252
  314. package/dist/data/Clicky.js.map +1 -1
  315. package/dist/data/CodeDiff.cjs +3 -18
  316. package/dist/data/CodeDiff.cjs.map +1 -1
  317. package/dist/data/CodeDiff.d.ts.map +1 -1
  318. package/dist/data/CodeDiff.js +3 -18
  319. package/dist/data/CodeDiff.js.map +1 -1
  320. package/dist/data/DataTable.cjs +420 -172
  321. package/dist/data/DataTable.cjs.map +1 -1
  322. package/dist/data/DataTable.d.ts +57 -4
  323. package/dist/data/DataTable.d.ts.map +1 -1
  324. package/dist/data/DataTable.grouping.cjs +26 -0
  325. package/dist/data/DataTable.grouping.cjs.map +1 -1
  326. package/dist/data/DataTable.grouping.d.ts +49 -1
  327. package/dist/data/DataTable.grouping.d.ts.map +1 -1
  328. package/dist/data/DataTable.grouping.js +26 -0
  329. package/dist/data/DataTable.grouping.js.map +1 -1
  330. package/dist/data/DataTable.js +423 -175
  331. package/dist/data/DataTable.js.map +1 -1
  332. package/dist/data/DataTableGroupingControls.cjs +84 -0
  333. package/dist/data/DataTableGroupingControls.cjs.map +1 -0
  334. package/dist/data/DataTableGroupingControls.d.ts +17 -0
  335. package/dist/data/DataTableGroupingControls.d.ts.map +1 -0
  336. package/dist/data/DataTableGroupingControls.js +84 -0
  337. package/dist/data/DataTableGroupingControls.js.map +1 -0
  338. package/dist/data/HighlightedTokens.cjs +21 -0
  339. package/dist/data/HighlightedTokens.cjs.map +1 -0
  340. package/dist/data/HighlightedTokens.d.ts +6 -0
  341. package/dist/data/HighlightedTokens.d.ts.map +1 -0
  342. package/dist/data/HighlightedTokens.js +21 -0
  343. package/dist/data/HighlightedTokens.js.map +1 -0
  344. package/dist/data/Markdown.cjs +31 -2
  345. package/dist/data/Markdown.cjs.map +1 -1
  346. package/dist/data/Markdown.d.ts +10 -1
  347. package/dist/data/Markdown.d.ts.map +1 -1
  348. package/dist/data/Markdown.js +31 -2
  349. package/dist/data/Markdown.js.map +1 -1
  350. package/dist/data/MarkdownEditor.cjs +1 -1
  351. package/dist/data/MarkdownEditor.cjs.map +1 -1
  352. package/dist/data/MarkdownEditor.js +1 -1
  353. package/dist/data/MarkdownEditor.js.map +1 -1
  354. package/dist/data/ObjectGraph.cjs +108 -23
  355. package/dist/data/ObjectGraph.cjs.map +1 -1
  356. package/dist/data/ObjectGraph.d.ts +28 -22
  357. package/dist/data/ObjectGraph.d.ts.map +1 -1
  358. package/dist/data/ObjectGraph.js +109 -24
  359. package/dist/data/ObjectGraph.js.map +1 -1
  360. package/dist/data/PromptBanner.cjs +1 -1
  361. package/dist/data/PromptBanner.cjs.map +1 -1
  362. package/dist/data/PromptBanner.js +1 -1
  363. package/dist/data/PromptBanner.js.map +1 -1
  364. package/dist/data/Tree.cjs +39 -35
  365. package/dist/data/Tree.cjs.map +1 -1
  366. package/dist/data/Tree.d.ts +7 -1
  367. package/dist/data/Tree.d.ts.map +1 -1
  368. package/dist/data/Tree.js +39 -35
  369. package/dist/data/Tree.js.map +1 -1
  370. package/dist/data/ai/ChatButton.cjs +26 -0
  371. package/dist/data/ai/ChatButton.cjs.map +1 -0
  372. package/dist/data/ai/ChatButton.d.ts +5 -0
  373. package/dist/data/ai/ChatButton.d.ts.map +1 -0
  374. package/dist/data/ai/ChatButton.js +26 -0
  375. package/dist/data/ai/ChatButton.js.map +1 -0
  376. package/dist/data/ai/ChatFab.cjs +11 -6
  377. package/dist/data/ai/ChatFab.cjs.map +1 -1
  378. package/dist/data/ai/ChatFab.d.ts +5 -3
  379. package/dist/data/ai/ChatFab.d.ts.map +1 -1
  380. package/dist/data/ai/ChatFab.js +11 -6
  381. package/dist/data/ai/ChatFab.js.map +1 -1
  382. package/dist/data/ai/PromptRunEditor/index.cjs +16 -4
  383. package/dist/data/ai/PromptRunEditor/index.cjs.map +1 -1
  384. package/dist/data/ai/PromptRunEditor/index.d.ts +7 -2
  385. package/dist/data/ai/PromptRunEditor/index.d.ts.map +1 -1
  386. package/dist/data/ai/PromptRunEditor/index.js +16 -4
  387. package/dist/data/ai/PromptRunEditor/index.js.map +1 -1
  388. package/dist/data/ai/SandboxConnectionsSection.cjs +71 -0
  389. package/dist/data/ai/SandboxConnectionsSection.cjs.map +1 -0
  390. package/dist/data/ai/SandboxConnectionsSection.d.ts +8 -0
  391. package/dist/data/ai/SandboxConnectionsSection.d.ts.map +1 -0
  392. package/dist/data/ai/SandboxConnectionsSection.js +71 -0
  393. package/dist/data/ai/SandboxConnectionsSection.js.map +1 -0
  394. package/dist/data/ai/SandboxCreateWizard.cjs +288 -0
  395. package/dist/data/ai/SandboxCreateWizard.cjs.map +1 -0
  396. package/dist/data/ai/SandboxCreateWizard.d.ts +11 -0
  397. package/dist/data/ai/SandboxCreateWizard.d.ts.map +1 -0
  398. package/dist/data/ai/SandboxCreateWizard.js +288 -0
  399. package/dist/data/ai/SandboxCreateWizard.js.map +1 -0
  400. package/dist/data/ai/SandboxCreateWizard.model.cjs +77 -0
  401. package/dist/data/ai/SandboxCreateWizard.model.cjs.map +1 -0
  402. package/dist/data/ai/SandboxCreateWizard.model.d.ts +32 -0
  403. package/dist/data/ai/SandboxCreateWizard.model.d.ts.map +1 -0
  404. package/dist/data/ai/SandboxCreateWizard.model.js +77 -0
  405. package/dist/data/ai/SandboxCreateWizard.model.js.map +1 -0
  406. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs +6 -6
  407. package/dist/data/ai/SpecRuntimeEditor/CommitSection.cjs.map +1 -1
  408. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts.map +1 -1
  409. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js +6 -6
  410. package/dist/data/ai/SpecRuntimeEditor/CommitSection.js.map +1 -1
  411. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs +11 -8
  412. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.cjs.map +1 -1
  413. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js +11 -8
  414. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.js.map +1 -1
  415. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.cjs +247 -0
  416. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.cjs.map +1 -0
  417. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts +12 -0
  418. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts.map +1 -0
  419. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.js +247 -0
  420. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.js.map +1 -0
  421. package/dist/data/ai/SpecRuntimeEditor/fields.cjs +31 -22
  422. package/dist/data/ai/SpecRuntimeEditor/fields.cjs.map +1 -1
  423. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts +6 -4
  424. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts.map +1 -1
  425. package/dist/data/ai/SpecRuntimeEditor/fields.js +32 -23
  426. package/dist/data/ai/SpecRuntimeEditor/fields.js.map +1 -1
  427. package/dist/data/ai/SpecRuntimeEditor/index.cjs +15 -1
  428. package/dist/data/ai/SpecRuntimeEditor/index.cjs.map +1 -1
  429. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +8 -3
  430. package/dist/data/ai/SpecRuntimeEditor/index.d.ts.map +1 -1
  431. package/dist/data/ai/SpecRuntimeEditor/index.js +15 -1
  432. package/dist/data/ai/SpecRuntimeEditor/index.js.map +1 -1
  433. package/dist/data/ai/SpecRuntimeEditor/types.cjs +11 -0
  434. package/dist/data/ai/SpecRuntimeEditor/types.cjs.map +1 -1
  435. package/dist/data/ai/SpecRuntimeEditor/types.d.ts +53 -1
  436. package/dist/data/ai/SpecRuntimeEditor/types.d.ts.map +1 -1
  437. package/dist/data/ai/SpecRuntimeEditor/types.js +11 -0
  438. package/dist/data/ai/SpecRuntimeEditor/types.js.map +1 -1
  439. package/dist/data/ai/SpecRuntimeEditor/update.cjs +23 -0
  440. package/dist/data/ai/SpecRuntimeEditor/update.cjs.map +1 -1
  441. package/dist/data/ai/SpecRuntimeEditor/update.d.ts +23 -1
  442. package/dist/data/ai/SpecRuntimeEditor/update.d.ts.map +1 -1
  443. package/dist/data/ai/SpecRuntimeEditor/update.js +23 -0
  444. package/dist/data/ai/SpecRuntimeEditor/update.js.map +1 -1
  445. package/dist/data/ai/SpecRuntimeEditor.model.cjs +28 -0
  446. package/dist/data/ai/SpecRuntimeEditor.model.cjs.map +1 -1
  447. package/dist/data/ai/SpecRuntimeEditor.model.d.ts +35 -0
  448. package/dist/data/ai/SpecRuntimeEditor.model.d.ts.map +1 -1
  449. package/dist/data/ai/SpecRuntimeEditor.model.js +28 -0
  450. package/dist/data/ai/SpecRuntimeEditor.model.js.map +1 -1
  451. package/dist/data/ai/index.d.ts +6 -2
  452. package/dist/data/ai/index.d.ts.map +1 -1
  453. package/dist/data/ai/sandbox-kind-meta.cjs +16 -0
  454. package/dist/data/ai/sandbox-kind-meta.cjs.map +1 -0
  455. package/dist/data/ai/sandbox-kind-meta.d.ts +8 -0
  456. package/dist/data/ai/sandbox-kind-meta.d.ts.map +1 -0
  457. package/dist/data/ai/sandbox-kind-meta.js +16 -0
  458. package/dist/data/ai/sandbox-kind-meta.js.map +1 -0
  459. package/dist/data/badge-variants.d.ts +1 -1
  460. package/dist/data/cache-browser/CacheTree.cjs +1 -1
  461. package/dist/data/cache-browser/CacheTree.cjs.map +1 -1
  462. package/dist/data/cache-browser/CacheTree.js +1 -1
  463. package/dist/data/cache-browser/CacheTree.js.map +1 -1
  464. package/dist/data/callout-tones.cjs +95 -0
  465. package/dist/data/callout-tones.cjs.map +1 -0
  466. package/dist/data/callout-tones.d.ts +32 -0
  467. package/dist/data/callout-tones.d.ts.map +1 -0
  468. package/dist/data/callout-tones.js +95 -0
  469. package/dist/data/callout-tones.js.map +1 -0
  470. package/dist/data/chat/PromptInput.cjs +1 -1
  471. package/dist/data/chat/PromptInput.cjs.map +1 -1
  472. package/dist/data/chat/PromptInput.js +1 -1
  473. package/dist/data/chat/PromptInput.js.map +1 -1
  474. package/dist/data/clicky-export/ClickyExportDialog.cjs +145 -0
  475. package/dist/data/clicky-export/ClickyExportDialog.cjs.map +1 -0
  476. package/dist/data/clicky-export/ClickyExportDialog.d.ts +43 -0
  477. package/dist/data/clicky-export/ClickyExportDialog.d.ts.map +1 -0
  478. package/dist/data/clicky-export/ClickyExportDialog.js +145 -0
  479. package/dist/data/clicky-export/ClickyExportDialog.js.map +1 -0
  480. package/dist/data/clicky-export/index.d.ts +3 -0
  481. package/dist/data/clicky-export/index.d.ts.map +1 -0
  482. package/dist/data/clicky-export/useClickyExport.cjs +44 -0
  483. package/dist/data/clicky-export/useClickyExport.cjs.map +1 -0
  484. package/dist/data/clicky-export/useClickyExport.d.ts +30 -0
  485. package/dist/data/clicky-export/useClickyExport.d.ts.map +1 -0
  486. package/dist/data/clicky-export/useClickyExport.js +44 -0
  487. package/dist/data/clicky-export/useClickyExport.js.map +1 -0
  488. package/dist/data/code-highlight.cjs +0 -6
  489. package/dist/data/code-highlight.cjs.map +1 -1
  490. package/dist/data/code-highlight.d.ts +4 -3
  491. package/dist/data/code-highlight.d.ts.map +1 -1
  492. package/dist/data/code-highlight.js +1 -7
  493. package/dist/data/code-highlight.js.map +1 -1
  494. package/dist/data/data-table-server-filters.cjs +15 -2
  495. package/dist/data/data-table-server-filters.cjs.map +1 -1
  496. package/dist/data/data-table-server-filters.d.ts +12 -1
  497. package/dist/data/data-table-server-filters.d.ts.map +1 -1
  498. package/dist/data/data-table-server-filters.js +15 -2
  499. package/dist/data/data-table-server-filters.js.map +1 -1
  500. package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs +6 -2
  501. package/dist/data/diagnostics/DiagnosticsDetailPanel.cjs.map +1 -1
  502. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +8 -1
  503. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts.map +1 -1
  504. package/dist/data/diagnostics/DiagnosticsDetailPanel.js +6 -2
  505. package/dist/data/diagnostics/DiagnosticsDetailPanel.js.map +1 -1
  506. package/dist/data/diagnostics/ErrorDetails.cjs +58 -12
  507. package/dist/data/diagnostics/ErrorDetails.cjs.map +1 -1
  508. package/dist/data/diagnostics/ErrorDetails.d.ts +5 -2
  509. package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -1
  510. package/dist/data/diagnostics/ErrorDetails.js +58 -12
  511. package/dist/data/diagnostics/ErrorDetails.js.map +1 -1
  512. package/dist/data/diagnostics/FrameSourceWindow.cjs +54 -24
  513. package/dist/data/diagnostics/FrameSourceWindow.cjs.map +1 -1
  514. package/dist/data/diagnostics/FrameSourceWindow.d.ts +2 -1
  515. package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
  516. package/dist/data/diagnostics/FrameSourceWindow.js +54 -24
  517. package/dist/data/diagnostics/FrameSourceWindow.js.map +1 -1
  518. package/dist/data/diagnostics/FrameSourceWindow.utils.cjs.map +1 -1
  519. package/dist/data/diagnostics/FrameSourceWindow.utils.d.ts +3 -0
  520. package/dist/data/diagnostics/FrameSourceWindow.utils.d.ts.map +1 -1
  521. package/dist/data/diagnostics/FrameSourceWindow.utils.js.map +1 -1
  522. package/dist/data/diagnostics/JvmStackTrace.cjs +14 -30
  523. package/dist/data/diagnostics/JvmStackTrace.cjs.map +1 -1
  524. package/dist/data/diagnostics/JvmStackTrace.d.ts +6 -9
  525. package/dist/data/diagnostics/JvmStackTrace.d.ts.map +1 -1
  526. package/dist/data/diagnostics/JvmStackTrace.js +15 -31
  527. package/dist/data/diagnostics/JvmStackTrace.js.map +1 -1
  528. package/dist/data/diagnostics/RenderedStackTrace.cjs +14 -144
  529. package/dist/data/diagnostics/RenderedStackTrace.cjs.map +1 -1
  530. package/dist/data/diagnostics/RenderedStackTrace.d.ts +6 -6
  531. package/dist/data/diagnostics/RenderedStackTrace.d.ts.map +1 -1
  532. package/dist/data/diagnostics/RenderedStackTrace.js +15 -145
  533. package/dist/data/diagnostics/RenderedStackTrace.js.map +1 -1
  534. package/dist/data/diagnostics/StackFrameRow.cjs +65 -0
  535. package/dist/data/diagnostics/StackFrameRow.cjs.map +1 -0
  536. package/dist/data/diagnostics/StackFrameRow.d.ts +13 -0
  537. package/dist/data/diagnostics/StackFrameRow.d.ts.map +1 -0
  538. package/dist/data/diagnostics/StackFrameRow.js +65 -0
  539. package/dist/data/diagnostics/StackFrameRow.js.map +1 -0
  540. package/dist/data/diagnostics/ThreadCard.cjs +9 -2
  541. package/dist/data/diagnostics/ThreadCard.cjs.map +1 -1
  542. package/dist/data/diagnostics/ThreadCard.d.ts +3 -1
  543. package/dist/data/diagnostics/ThreadCard.d.ts.map +1 -1
  544. package/dist/data/diagnostics/ThreadCard.js +9 -2
  545. package/dist/data/diagnostics/ThreadCard.js.map +1 -1
  546. package/dist/data/diagnostics/error-diagnostics.cjs +17 -2
  547. package/dist/data/diagnostics/error-diagnostics.cjs.map +1 -1
  548. package/dist/data/diagnostics/error-diagnostics.d.ts +5 -0
  549. package/dist/data/diagnostics/error-diagnostics.d.ts.map +1 -1
  550. package/dist/data/diagnostics/error-diagnostics.js +17 -2
  551. package/dist/data/diagnostics/error-diagnostics.js.map +1 -1
  552. package/dist/data/diagnostics/frame-heuristics.cjs +26 -0
  553. package/dist/data/diagnostics/frame-heuristics.cjs.map +1 -0
  554. package/dist/data/diagnostics/frame-heuristics.d.ts +5 -0
  555. package/dist/data/diagnostics/frame-heuristics.d.ts.map +1 -0
  556. package/dist/data/diagnostics/frame-heuristics.js +26 -0
  557. package/dist/data/diagnostics/frame-heuristics.js.map +1 -0
  558. package/dist/data/diagnostics/jvm-stacktrace.cjs +5 -7
  559. package/dist/data/diagnostics/jvm-stacktrace.cjs.map +1 -1
  560. package/dist/data/diagnostics/jvm-stacktrace.d.ts.map +1 -1
  561. package/dist/data/diagnostics/jvm-stacktrace.js +5 -7
  562. package/dist/data/diagnostics/jvm-stacktrace.js.map +1 -1
  563. package/dist/data/diagnostics/stacktrace-parse.cjs +4 -9
  564. package/dist/data/diagnostics/stacktrace-parse.cjs.map +1 -1
  565. package/dist/data/diagnostics/stacktrace-parse.d.ts.map +1 -1
  566. package/dist/data/diagnostics/stacktrace-parse.js +4 -9
  567. package/dist/data/diagnostics/stacktrace-parse.js.map +1 -1
  568. package/dist/data/logs-normalize.cjs +18 -3
  569. package/dist/data/logs-normalize.cjs.map +1 -1
  570. package/dist/data/logs-normalize.d.ts +17 -0
  571. package/dist/data/logs-normalize.d.ts.map +1 -1
  572. package/dist/data/logs-normalize.js +18 -3
  573. package/dist/data/logs-normalize.js.map +1 -1
  574. package/dist/data/object-graph-nodes.cjs +24 -0
  575. package/dist/data/object-graph-nodes.cjs.map +1 -0
  576. package/dist/data/object-graph-nodes.d.ts +34 -0
  577. package/dist/data/object-graph-nodes.d.ts.map +1 -0
  578. package/dist/data/object-graph-nodes.js +24 -0
  579. package/dist/data/object-graph-nodes.js.map +1 -0
  580. package/dist/data/query-browser/QueryBrowser.cjs +52 -32
  581. package/dist/data/query-browser/QueryBrowser.cjs.map +1 -1
  582. package/dist/data/query-browser/QueryBrowser.d.ts +1 -1
  583. package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
  584. package/dist/data/query-browser/QueryBrowser.js +53 -33
  585. package/dist/data/query-browser/QueryBrowser.js.map +1 -1
  586. package/dist/data/query-browser/QueryBrowser.types.cjs.map +1 -1
  587. package/dist/data/query-browser/QueryBrowser.types.d.ts +12 -0
  588. package/dist/data/query-browser/QueryBrowser.types.d.ts.map +1 -1
  589. package/dist/data/query-browser/QueryBrowser.types.js.map +1 -1
  590. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs +58 -10
  591. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs.map +1 -1
  592. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts.map +1 -1
  593. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js +58 -10
  594. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js.map +1 -1
  595. package/dist/data/query-browser/QueryBrowserResults.cjs +4 -4
  596. package/dist/data/query-browser/QueryBrowserResults.cjs.map +1 -1
  597. package/dist/data/query-browser/QueryBrowserResults.d.ts +4 -2
  598. package/dist/data/query-browser/QueryBrowserResults.d.ts.map +1 -1
  599. package/dist/data/query-browser/QueryBrowserResults.js +4 -4
  600. package/dist/data/query-browser/QueryBrowserResults.js.map +1 -1
  601. package/dist/data/query-info/QueryInfoDialog.cjs +106 -0
  602. package/dist/data/query-info/QueryInfoDialog.cjs.map +1 -0
  603. package/dist/data/query-info/QueryInfoDialog.d.ts +16 -0
  604. package/dist/data/query-info/QueryInfoDialog.d.ts.map +1 -0
  605. package/dist/data/query-info/QueryInfoDialog.js +106 -0
  606. package/dist/data/query-info/QueryInfoDialog.js.map +1 -0
  607. package/dist/data/query-info/index.d.ts +4 -0
  608. package/dist/data/query-info/index.d.ts.map +1 -0
  609. package/dist/data/query-info/queryInfo.cjs +42 -0
  610. package/dist/data/query-info/queryInfo.cjs.map +1 -0
  611. package/dist/data/query-info/queryInfo.d.ts +45 -0
  612. package/dist/data/query-info/queryInfo.d.ts.map +1 -0
  613. package/dist/data/query-info/queryInfo.js +42 -0
  614. package/dist/data/query-info/queryInfo.js.map +1 -0
  615. package/dist/data/query-info/useQueryInfo.cjs +48 -0
  616. package/dist/data/query-info/useQueryInfo.cjs.map +1 -0
  617. package/dist/data/query-info/useQueryInfo.d.ts +26 -0
  618. package/dist/data/query-info/useQueryInfo.d.ts.map +1 -0
  619. package/dist/data/query-info/useQueryInfo.js +48 -0
  620. package/dist/data/query-info/useQueryInfo.js.map +1 -0
  621. package/dist/data/use-infinite-rows.cjs +20 -0
  622. package/dist/data/use-infinite-rows.cjs.map +1 -0
  623. package/dist/data/use-infinite-rows.d.ts +20 -0
  624. package/dist/data/use-infinite-rows.d.ts.map +1 -0
  625. package/dist/data/use-infinite-rows.js +20 -0
  626. package/dist/data/use-infinite-rows.js.map +1 -0
  627. package/dist/data/version-info.cjs +3 -3
  628. package/dist/data/version-info.js +3 -3
  629. package/dist/data.cjs +51 -1
  630. package/dist/data.cjs.map +1 -1
  631. package/dist/data.d.ts +11 -4
  632. package/dist/data.d.ts.map +1 -1
  633. package/dist/data.js +52 -2
  634. package/dist/data.js.map +1 -1
  635. package/dist/hooks/use-log-tail.cjs +213 -0
  636. package/dist/hooks/use-log-tail.cjs.map +1 -0
  637. package/dist/hooks/use-log-tail.d.ts +112 -0
  638. package/dist/hooks/use-log-tail.d.ts.map +1 -0
  639. package/dist/hooks/use-log-tail.js +213 -0
  640. package/dist/hooks/use-log-tail.js.map +1 -0
  641. package/dist/hooks.cjs +10 -0
  642. package/dist/hooks.cjs.map +1 -1
  643. package/dist/hooks.d.ts +2 -0
  644. package/dist/hooks.d.ts.map +1 -1
  645. package/dist/hooks.js +10 -0
  646. package/dist/hooks.js.map +1 -1
  647. package/dist/icons/components/UiArrowsCounterClockwise.cjs +15 -0
  648. package/dist/icons/components/UiArrowsCounterClockwise.cjs.map +1 -0
  649. package/dist/icons/components/UiArrowsCounterClockwise.d.ts +15 -0
  650. package/dist/icons/components/UiArrowsCounterClockwise.d.ts.map +1 -0
  651. package/dist/icons/components/UiArrowsCounterClockwise.js +15 -0
  652. package/dist/icons/components/UiArrowsCounterClockwise.js.map +1 -0
  653. package/dist/icons/components/UiClipboardText.cjs +15 -0
  654. package/dist/icons/components/UiClipboardText.cjs.map +1 -0
  655. package/dist/icons/components/UiClipboardText.d.ts +15 -0
  656. package/dist/icons/components/UiClipboardText.d.ts.map +1 -0
  657. package/dist/icons/components/UiClipboardText.js +15 -0
  658. package/dist/icons/components/UiClipboardText.js.map +1 -0
  659. package/dist/icons/components/UiIdentificationCard.cjs +15 -0
  660. package/dist/icons/components/UiIdentificationCard.cjs.map +1 -0
  661. package/dist/icons/components/UiIdentificationCard.d.ts +15 -0
  662. package/dist/icons/components/UiIdentificationCard.d.ts.map +1 -0
  663. package/dist/icons/components/UiIdentificationCard.js +15 -0
  664. package/dist/icons/components/UiIdentificationCard.js.map +1 -0
  665. package/dist/icons/components/UiLockKey.cjs +15 -0
  666. package/dist/icons/components/UiLockKey.cjs.map +1 -0
  667. package/dist/icons/components/UiLockKey.d.ts +15 -0
  668. package/dist/icons/components/UiLockKey.d.ts.map +1 -0
  669. package/dist/icons/components/UiLockKey.js +15 -0
  670. package/dist/icons/components/UiLockKey.js.map +1 -0
  671. package/dist/icons/components/UiSteps.cjs +15 -0
  672. package/dist/icons/components/UiSteps.cjs.map +1 -0
  673. package/dist/icons/components/UiSteps.d.ts +15 -0
  674. package/dist/icons/components/UiSteps.d.ts.map +1 -0
  675. package/dist/icons/components/UiSteps.js +15 -0
  676. package/dist/icons/components/UiSteps.js.map +1 -0
  677. package/dist/icons/components/UiUserGear.cjs +15 -0
  678. package/dist/icons/components/UiUserGear.cjs.map +1 -0
  679. package/dist/icons/components/UiUserGear.d.ts +15 -0
  680. package/dist/icons/components/UiUserGear.d.ts.map +1 -0
  681. package/dist/icons/components/UiUserGear.js +15 -0
  682. package/dist/icons/components/UiUserGear.js.map +1 -0
  683. package/dist/icons/components/UiUsersFour.cjs +15 -0
  684. package/dist/icons/components/UiUsersFour.cjs.map +1 -0
  685. package/dist/icons/components/UiUsersFour.d.ts +15 -0
  686. package/dist/icons/components/UiUsersFour.d.ts.map +1 -0
  687. package/dist/icons/components/UiUsersFour.js +15 -0
  688. package/dist/icons/components/UiUsersFour.js.map +1 -0
  689. package/dist/icons/index.d.ts +14 -0
  690. package/dist/icons/index.d.ts.map +1 -1
  691. package/dist/icons/registry.cjs +15 -1
  692. package/dist/icons/registry.cjs.map +1 -1
  693. package/dist/icons/registry.d.ts.map +1 -1
  694. package/dist/icons/registry.js +15 -1
  695. package/dist/icons/registry.js.map +1 -1
  696. package/dist/icons.cjs +21 -0
  697. package/dist/icons.cjs.map +1 -1
  698. package/dist/icons.js +21 -0
  699. package/dist/icons.js.map +1 -1
  700. package/dist/index.cjs +93 -1
  701. package/dist/index.cjs.map +1 -1
  702. package/dist/index.js +94 -2
  703. package/dist/index.js.map +1 -1
  704. package/dist/jotai.d.ts +1 -1
  705. package/dist/jotai.d.ts.map +1 -1
  706. package/dist/lib/collections.cjs +31 -0
  707. package/dist/lib/collections.cjs.map +1 -0
  708. package/dist/lib/collections.d.ts +6 -0
  709. package/dist/lib/collections.d.ts.map +1 -0
  710. package/dist/lib/collections.js +31 -0
  711. package/dist/lib/collections.js.map +1 -0
  712. package/dist/mdx-editor.cjs +12 -0
  713. package/dist/mdx-editor.cjs.map +1 -1
  714. package/dist/mdx-editor.css +1 -1
  715. package/dist/mdx-editor.d.ts +4 -1
  716. package/dist/mdx-editor.d.ts.map +1 -1
  717. package/dist/mdx-editor.js +13 -1
  718. package/dist/mdx-editor.js.map +1 -1
  719. package/dist/overlay/CommandPalette.cjs +1 -1
  720. package/dist/overlay/CommandPalette.cjs.map +1 -1
  721. package/dist/overlay/CommandPalette.js +1 -1
  722. package/dist/overlay/CommandPalette.js.map +1 -1
  723. package/dist/profiles/cel/celEditor.cjs +395 -0
  724. package/dist/profiles/cel/celEditor.cjs.map +1 -0
  725. package/dist/profiles/cel/celEditor.d.ts +51 -0
  726. package/dist/profiles/cel/celEditor.d.ts.map +1 -0
  727. package/dist/profiles/cel/celEditor.js +395 -0
  728. package/dist/profiles/cel/celEditor.js.map +1 -0
  729. package/dist/profiles/cel/celEditorExtension.cjs +15 -0
  730. package/dist/profiles/cel/celEditorExtension.cjs.map +1 -0
  731. package/dist/profiles/cel/celEditorExtension.d.ts +5 -0
  732. package/dist/profiles/cel/celEditorExtension.d.ts.map +1 -0
  733. package/dist/profiles/cel/celEditorExtension.js +15 -0
  734. package/dist/profiles/cel/celEditorExtension.js.map +1 -0
  735. package/dist/profiles/cel/celExpression.cjs +174 -0
  736. package/dist/profiles/cel/celExpression.cjs.map +1 -0
  737. package/dist/profiles/cel/celExpression.d.ts +138 -0
  738. package/dist/profiles/cel/celExpression.d.ts.map +1 -0
  739. package/dist/profiles/cel/celExpression.js +174 -0
  740. package/dist/profiles/cel/celExpression.js.map +1 -0
  741. package/dist/profiles/cel/celPath.cjs +47 -0
  742. package/dist/profiles/cel/celPath.cjs.map +1 -0
  743. package/dist/profiles/cel/celPath.d.ts +31 -0
  744. package/dist/profiles/cel/celPath.d.ts.map +1 -0
  745. package/dist/profiles/cel/celPath.js +47 -0
  746. package/dist/profiles/cel/celPath.js.map +1 -0
  747. package/dist/profiles/cel/index.d.ts +5 -0
  748. package/dist/profiles/cel/index.d.ts.map +1 -0
  749. package/dist/profiles/connections/catalogTree.cjs +133 -0
  750. package/dist/profiles/connections/catalogTree.cjs.map +1 -0
  751. package/dist/profiles/connections/catalogTree.d.ts.map +1 -0
  752. package/dist/profiles/connections/catalogTree.js +133 -0
  753. package/dist/profiles/connections/catalogTree.js.map +1 -0
  754. package/dist/profiles/connections/connectionBrowserModel.cjs +191 -0
  755. package/dist/profiles/connections/connectionBrowserModel.cjs.map +1 -0
  756. package/dist/profiles/connections/connectionBrowserModel.d.ts +177 -0
  757. package/dist/profiles/connections/connectionBrowserModel.d.ts.map +1 -0
  758. package/dist/profiles/connections/connectionBrowserModel.js +191 -0
  759. package/dist/profiles/connections/connectionBrowserModel.js.map +1 -0
  760. package/dist/profiles/connections/connectionQueryWorkspace.cjs +196 -0
  761. package/dist/profiles/connections/connectionQueryWorkspace.cjs.map +1 -0
  762. package/dist/profiles/connections/connectionQueryWorkspace.d.ts +63 -0
  763. package/dist/profiles/connections/connectionQueryWorkspace.d.ts.map +1 -0
  764. package/dist/profiles/connections/connectionQueryWorkspace.js +196 -0
  765. package/dist/profiles/connections/connectionQueryWorkspace.js.map +1 -0
  766. package/dist/profiles/connections/connectionQueryWorkspaceModel.cjs +28 -0
  767. package/dist/profiles/connections/connectionQueryWorkspaceModel.cjs.map +1 -0
  768. package/dist/profiles/connections/connectionQueryWorkspaceModel.d.ts +38 -0
  769. package/dist/profiles/connections/connectionQueryWorkspaceModel.d.ts.map +1 -0
  770. package/dist/profiles/connections/connectionQueryWorkspaceModel.js +28 -0
  771. package/dist/profiles/connections/connectionQueryWorkspaceModel.js.map +1 -0
  772. package/dist/profiles/connections/index.d.ts +5 -0
  773. package/dist/profiles/connections/index.d.ts.map +1 -0
  774. package/dist/profiles/editor/index.d.ts +12 -0
  775. package/dist/profiles/editor/index.d.ts.map +1 -0
  776. package/dist/profiles/editor/profileBuilder.cjs +65 -0
  777. package/dist/profiles/editor/profileBuilder.cjs.map +1 -0
  778. package/dist/profiles/editor/profileBuilder.d.ts.map +1 -0
  779. package/dist/profiles/editor/profileBuilder.js +65 -0
  780. package/dist/profiles/editor/profileBuilder.js.map +1 -0
  781. package/dist/profiles/editor/profileBuilderExtension.cjs.map +1 -0
  782. package/dist/profiles/editor/profileBuilderExtension.d.ts +5 -0
  783. package/dist/profiles/editor/profileBuilderExtension.d.ts.map +1 -0
  784. package/dist/profiles/editor/profileBuilderExtension.js.map +1 -0
  785. package/dist/profiles/editor/profileBuilderModel.cjs +44 -0
  786. package/dist/profiles/editor/profileBuilderModel.cjs.map +1 -0
  787. package/dist/profiles/editor/profileBuilderModel.d.ts +4 -0
  788. package/dist/profiles/editor/profileBuilderModel.d.ts.map +1 -0
  789. package/dist/profiles/editor/profileBuilderModel.js +44 -0
  790. package/dist/profiles/editor/profileBuilderModel.js.map +1 -0
  791. package/dist/profiles/editor/profileBuilderWorkspace.cjs +333 -0
  792. package/dist/profiles/editor/profileBuilderWorkspace.cjs.map +1 -0
  793. package/dist/profiles/editor/profileBuilderWorkspace.d.ts +21 -0
  794. package/dist/profiles/editor/profileBuilderWorkspace.d.ts.map +1 -0
  795. package/dist/profiles/editor/profileBuilderWorkspace.js +333 -0
  796. package/dist/profiles/editor/profileBuilderWorkspace.js.map +1 -0
  797. package/dist/profiles/editor/profileEditor.cjs +471 -0
  798. package/dist/profiles/editor/profileEditor.cjs.map +1 -0
  799. package/dist/profiles/editor/profileEditor.d.ts +20 -0
  800. package/dist/profiles/editor/profileEditor.d.ts.map +1 -0
  801. package/dist/profiles/editor/profileEditor.js +471 -0
  802. package/dist/profiles/editor/profileEditor.js.map +1 -0
  803. package/dist/profiles/editor/profileEditorModel.cjs +206 -0
  804. package/dist/profiles/editor/profileEditorModel.cjs.map +1 -0
  805. package/dist/profiles/editor/profileEditorModel.d.ts +76 -0
  806. package/dist/profiles/editor/profileEditorModel.d.ts.map +1 -0
  807. package/dist/profiles/editor/profileEditorModel.js +206 -0
  808. package/dist/profiles/editor/profileEditorModel.js.map +1 -0
  809. package/dist/profiles/editor/profileEditorPreview.cjs.map +1 -0
  810. package/dist/profiles/editor/profileEditorPreview.d.ts +12 -0
  811. package/dist/profiles/editor/profileEditorPreview.d.ts.map +1 -0
  812. package/dist/profiles/editor/profileEditorPreview.js.map +1 -0
  813. package/dist/profiles/editor/profileEditorRail.cjs.map +1 -0
  814. package/dist/profiles/editor/profileEditorRail.d.ts.map +1 -0
  815. package/dist/profiles/editor/profileEditorRail.js.map +1 -0
  816. package/dist/profiles/editor/profileEditorRaw.cjs +118 -0
  817. package/dist/profiles/editor/profileEditorRaw.cjs.map +1 -0
  818. package/dist/profiles/editor/profileEditorRaw.d.ts +7 -0
  819. package/dist/profiles/editor/profileEditorRaw.d.ts.map +1 -0
  820. package/dist/profiles/editor/profileEditorRaw.js +118 -0
  821. package/dist/profiles/editor/profileEditorRaw.js.map +1 -0
  822. package/dist/profiles/editor/profileEditorRoutes.cjs.map +1 -0
  823. package/dist/profiles/editor/profileEditorRoutes.d.ts.map +1 -0
  824. package/dist/profiles/editor/profileEditorRoutes.js.map +1 -0
  825. package/dist/profiles/editor/profileEditorSections.cjs +247 -0
  826. package/dist/profiles/editor/profileEditorSections.cjs.map +1 -0
  827. package/dist/profiles/editor/profileEditorSections.d.ts +26 -0
  828. package/dist/profiles/editor/profileEditorSections.d.ts.map +1 -0
  829. package/dist/profiles/editor/profileEditorSections.js +247 -0
  830. package/dist/profiles/editor/profileEditorSections.js.map +1 -0
  831. package/dist/profiles/editor/profileYaml.cjs +19 -0
  832. package/dist/profiles/editor/profileYaml.cjs.map +1 -0
  833. package/dist/profiles/editor/profileYaml.d.ts +4 -0
  834. package/dist/profiles/editor/profileYaml.d.ts.map +1 -0
  835. package/dist/profiles/editor/profileYaml.js +19 -0
  836. package/dist/profiles/editor/profileYaml.js.map +1 -0
  837. package/dist/profiles/editor/testSchema.d.ts +3 -0
  838. package/dist/profiles/editor/testSchema.d.ts.map +1 -0
  839. package/dist/profiles/elasticsearch/esFieldValues.cjs +57 -0
  840. package/dist/profiles/elasticsearch/esFieldValues.cjs.map +1 -0
  841. package/dist/profiles/elasticsearch/esFieldValues.d.ts +45 -0
  842. package/dist/profiles/elasticsearch/esFieldValues.d.ts.map +1 -0
  843. package/dist/profiles/elasticsearch/esFieldValues.js +57 -0
  844. package/dist/profiles/elasticsearch/esFieldValues.js.map +1 -0
  845. package/dist/profiles/elasticsearch/esParamMappingModel.cjs +301 -0
  846. package/dist/profiles/elasticsearch/esParamMappingModel.cjs.map +1 -0
  847. package/dist/profiles/elasticsearch/esParamMappingModel.d.ts +37 -0
  848. package/dist/profiles/elasticsearch/esParamMappingModel.d.ts.map +1 -0
  849. package/dist/profiles/elasticsearch/esParamMappingModel.js +301 -0
  850. package/dist/profiles/elasticsearch/esParamMappingModel.js.map +1 -0
  851. package/dist/profiles/elasticsearch/esParamMappingPill.cjs.map +1 -0
  852. package/dist/profiles/elasticsearch/esParamMappingPill.d.ts.map +1 -0
  853. package/dist/profiles/elasticsearch/esParamMappingPill.js.map +1 -0
  854. package/dist/profiles/elasticsearch/esParamOperandExtension.cjs +75 -0
  855. package/dist/profiles/elasticsearch/esParamOperandExtension.cjs.map +1 -0
  856. package/dist/profiles/elasticsearch/esParamOperandExtension.d.ts +11 -0
  857. package/dist/profiles/elasticsearch/esParamOperandExtension.d.ts.map +1 -0
  858. package/dist/profiles/elasticsearch/esParamOperandExtension.js +75 -0
  859. package/dist/profiles/elasticsearch/esParamOperandExtension.js.map +1 -0
  860. package/dist/profiles/elasticsearch/esQueryBuilder.cjs +249 -0
  861. package/dist/profiles/elasticsearch/esQueryBuilder.cjs.map +1 -0
  862. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts +35 -0
  863. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts.map +1 -0
  864. package/dist/profiles/elasticsearch/esQueryBuilder.js +249 -0
  865. package/dist/profiles/elasticsearch/esQueryBuilder.js.map +1 -0
  866. package/dist/profiles/elasticsearch/esQueryBuilderExtension.cjs.map +1 -0
  867. package/dist/profiles/elasticsearch/esQueryBuilderExtension.d.ts +5 -0
  868. package/dist/profiles/elasticsearch/esQueryBuilderExtension.d.ts.map +1 -0
  869. package/dist/profiles/elasticsearch/esQueryBuilderExtension.js.map +1 -0
  870. package/dist/profiles/elasticsearch/esQueryBuilderForm.cjs +59 -0
  871. package/dist/profiles/elasticsearch/esQueryBuilderForm.cjs.map +1 -0
  872. package/dist/profiles/elasticsearch/esQueryBuilderForm.d.ts +25 -0
  873. package/dist/profiles/elasticsearch/esQueryBuilderForm.d.ts.map +1 -0
  874. package/dist/profiles/elasticsearch/esQueryBuilderForm.js +59 -0
  875. package/dist/profiles/elasticsearch/esQueryBuilderForm.js.map +1 -0
  876. package/dist/profiles/elasticsearch/esQueryBuilderModel.cjs.map +1 -0
  877. package/dist/profiles/elasticsearch/esQueryBuilderModel.d.ts +110 -0
  878. package/dist/profiles/elasticsearch/esQueryBuilderModel.d.ts.map +1 -0
  879. package/dist/profiles/elasticsearch/esQueryBuilderModel.js.map +1 -0
  880. package/dist/profiles/elasticsearch/esQueryClauseGroup.cjs +144 -0
  881. package/dist/profiles/elasticsearch/esQueryClauseGroup.cjs.map +1 -0
  882. package/dist/profiles/elasticsearch/esQueryClauseGroup.d.ts.map +1 -0
  883. package/dist/profiles/elasticsearch/esQueryClauseGroup.js +144 -0
  884. package/dist/profiles/elasticsearch/esQueryClauseGroup.js.map +1 -0
  885. package/dist/profiles/elasticsearch/esQueryCompile.cjs +48 -0
  886. package/dist/profiles/elasticsearch/esQueryCompile.cjs.map +1 -0
  887. package/dist/profiles/elasticsearch/esQueryCompile.d.ts +40 -0
  888. package/dist/profiles/elasticsearch/esQueryCompile.d.ts.map +1 -0
  889. package/dist/profiles/elasticsearch/esQueryCompile.js +48 -0
  890. package/dist/profiles/elasticsearch/esQueryCompile.js.map +1 -0
  891. package/dist/profiles/elasticsearch/esQueryConditionRow.cjs +168 -0
  892. package/dist/profiles/elasticsearch/esQueryConditionRow.cjs.map +1 -0
  893. package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts +37 -0
  894. package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts.map +1 -0
  895. package/dist/profiles/elasticsearch/esQueryConditionRow.js +168 -0
  896. package/dist/profiles/elasticsearch/esQueryConditionRow.js.map +1 -0
  897. package/dist/profiles/elasticsearch/esQueryGroupModel.cjs.map +1 -0
  898. package/dist/profiles/elasticsearch/esQueryGroupModel.d.ts.map +1 -0
  899. package/dist/profiles/elasticsearch/esQueryGroupModel.js.map +1 -0
  900. package/dist/profiles/elasticsearch/esQueryOccur.cjs.map +1 -0
  901. package/dist/profiles/elasticsearch/esQueryOccur.d.ts.map +1 -0
  902. package/dist/profiles/elasticsearch/esQueryOccur.js.map +1 -0
  903. package/dist/profiles/elasticsearch/esQueryOperandEditors.cjs +279 -0
  904. package/dist/profiles/elasticsearch/esQueryOperandEditors.cjs.map +1 -0
  905. package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts +24 -0
  906. package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts.map +1 -0
  907. package/dist/profiles/elasticsearch/esQueryOperandEditors.js +279 -0
  908. package/dist/profiles/elasticsearch/esQueryOperandEditors.js.map +1 -0
  909. package/dist/profiles/elasticsearch/esQueryOperandModel.cjs.map +1 -0
  910. package/dist/profiles/elasticsearch/esQueryOperandModel.d.ts +17 -0
  911. package/dist/profiles/elasticsearch/esQueryOperandModel.d.ts.map +1 -0
  912. package/dist/profiles/elasticsearch/esQueryOperandModel.js.map +1 -0
  913. package/dist/profiles/elasticsearch/esQueryOperators.cjs +166 -0
  914. package/dist/profiles/elasticsearch/esQueryOperators.cjs.map +1 -0
  915. package/dist/profiles/elasticsearch/esQueryOperators.d.ts +84 -0
  916. package/dist/profiles/elasticsearch/esQueryOperators.d.ts.map +1 -0
  917. package/dist/profiles/elasticsearch/esQueryOperators.js +166 -0
  918. package/dist/profiles/elasticsearch/esQueryOperators.js.map +1 -0
  919. package/dist/profiles/elasticsearch/esQueryOutputEditor.cjs +138 -0
  920. package/dist/profiles/elasticsearch/esQueryOutputEditor.cjs.map +1 -0
  921. package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts +7 -0
  922. package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts.map +1 -0
  923. package/dist/profiles/elasticsearch/esQueryOutputEditor.js +138 -0
  924. package/dist/profiles/elasticsearch/esQueryOutputEditor.js.map +1 -0
  925. package/dist/profiles/elasticsearch/esQueryOutputModel.cjs.map +1 -0
  926. package/dist/profiles/elasticsearch/esQueryOutputModel.d.ts.map +1 -0
  927. package/dist/profiles/elasticsearch/esQueryOutputModel.js.map +1 -0
  928. package/dist/profiles/elasticsearch/esQueryPreview.cjs.map +1 -0
  929. package/dist/profiles/elasticsearch/esQueryPreview.d.ts.map +1 -0
  930. package/dist/profiles/elasticsearch/esQueryPreview.js.map +1 -0
  931. package/dist/profiles/elasticsearch/esQuerySortEditor.cjs +143 -0
  932. package/dist/profiles/elasticsearch/esQuerySortEditor.cjs.map +1 -0
  933. package/dist/profiles/elasticsearch/esQuerySortEditor.d.ts.map +1 -0
  934. package/dist/profiles/elasticsearch/esQuerySortEditor.js +143 -0
  935. package/dist/profiles/elasticsearch/esQuerySortEditor.js.map +1 -0
  936. package/dist/profiles/elasticsearch/esQuerySortModel.cjs.map +1 -0
  937. package/dist/profiles/elasticsearch/esQuerySortModel.d.ts.map +1 -0
  938. package/dist/profiles/elasticsearch/esQuerySortModel.js.map +1 -0
  939. package/dist/profiles/elasticsearch/esValueCombobox.cjs +86 -0
  940. package/dist/profiles/elasticsearch/esValueCombobox.cjs.map +1 -0
  941. package/dist/profiles/elasticsearch/esValueCombobox.d.ts.map +1 -0
  942. package/dist/profiles/elasticsearch/esValueCombobox.js +86 -0
  943. package/dist/profiles/elasticsearch/esValueCombobox.js.map +1 -0
  944. package/dist/profiles/elasticsearch/index.d.ts +23 -0
  945. package/dist/profiles/elasticsearch/index.d.ts.map +1 -0
  946. package/dist/profiles/fields/index.d.ts +9 -0
  947. package/dist/profiles/fields/index.d.ts.map +1 -0
  948. package/dist/profiles/fields/profileColumnModel.cjs.map +1 -0
  949. package/dist/profiles/fields/profileColumnModel.d.ts +8 -0
  950. package/dist/profiles/fields/profileColumnModel.d.ts.map +1 -0
  951. package/dist/profiles/fields/profileColumnModel.js.map +1 -0
  952. package/dist/profiles/fields/profileColumnPicker.cjs +68 -0
  953. package/dist/profiles/fields/profileColumnPicker.cjs.map +1 -0
  954. package/dist/profiles/fields/profileColumnPicker.d.ts +11 -0
  955. package/dist/profiles/fields/profileColumnPicker.d.ts.map +1 -0
  956. package/dist/profiles/fields/profileColumnPicker.js +68 -0
  957. package/dist/profiles/fields/profileColumnPicker.js.map +1 -0
  958. package/dist/profiles/fields/profileFieldControls.cjs +50 -0
  959. package/dist/profiles/fields/profileFieldControls.cjs.map +1 -0
  960. package/dist/profiles/fields/profileFieldControls.d.ts +37 -0
  961. package/dist/profiles/fields/profileFieldControls.d.ts.map +1 -0
  962. package/dist/profiles/fields/profileFieldControls.js +50 -0
  963. package/dist/profiles/fields/profileFieldControls.js.map +1 -0
  964. package/dist/profiles/fields/profileFieldEditor.cjs +198 -0
  965. package/dist/profiles/fields/profileFieldEditor.cjs.map +1 -0
  966. package/dist/profiles/fields/profileFieldEditor.d.ts +34 -0
  967. package/dist/profiles/fields/profileFieldEditor.d.ts.map +1 -0
  968. package/dist/profiles/fields/profileFieldEditor.js +198 -0
  969. package/dist/profiles/fields/profileFieldEditor.js.map +1 -0
  970. package/dist/profiles/fields/profileFieldFilterEditor.cjs +122 -0
  971. package/dist/profiles/fields/profileFieldFilterEditor.cjs.map +1 -0
  972. package/dist/profiles/fields/profileFieldFilterEditor.d.ts +16 -0
  973. package/dist/profiles/fields/profileFieldFilterEditor.d.ts.map +1 -0
  974. package/dist/profiles/fields/profileFieldFilterEditor.js +122 -0
  975. package/dist/profiles/fields/profileFieldFilterEditor.js.map +1 -0
  976. package/dist/profiles/fields/profileFieldIcons.cjs +102 -0
  977. package/dist/profiles/fields/profileFieldIcons.cjs.map +1 -0
  978. package/dist/profiles/fields/profileFieldIcons.d.ts +10 -0
  979. package/dist/profiles/fields/profileFieldIcons.d.ts.map +1 -0
  980. package/dist/profiles/fields/profileFieldIcons.js +102 -0
  981. package/dist/profiles/fields/profileFieldIcons.js.map +1 -0
  982. package/dist/profiles/fields/profileFieldList.cjs +215 -0
  983. package/dist/profiles/fields/profileFieldList.cjs.map +1 -0
  984. package/dist/profiles/fields/profileFieldList.d.ts +24 -0
  985. package/dist/profiles/fields/profileFieldList.d.ts.map +1 -0
  986. package/dist/profiles/fields/profileFieldList.js +215 -0
  987. package/dist/profiles/fields/profileFieldList.js.map +1 -0
  988. package/dist/profiles/fields/profileFieldManager.cjs +103 -0
  989. package/dist/profiles/fields/profileFieldManager.cjs.map +1 -0
  990. package/dist/profiles/fields/profileFieldManager.d.ts.map +1 -0
  991. package/dist/profiles/fields/profileFieldManager.js +103 -0
  992. package/dist/profiles/fields/profileFieldManager.js.map +1 -0
  993. package/dist/profiles/fields/profileFieldState.cjs +136 -0
  994. package/dist/profiles/fields/profileFieldState.cjs.map +1 -0
  995. package/dist/profiles/fields/profileFieldState.d.ts +41 -0
  996. package/dist/profiles/fields/profileFieldState.d.ts.map +1 -0
  997. package/dist/profiles/fields/profileFieldState.js +136 -0
  998. package/dist/profiles/fields/profileFieldState.js.map +1 -0
  999. package/dist/profiles/fields/profileFieldTypes.cjs.map +1 -0
  1000. package/dist/profiles/fields/profileFieldTypes.d.ts +8 -0
  1001. package/dist/profiles/fields/profileFieldTypes.d.ts.map +1 -0
  1002. package/dist/profiles/fields/profileFieldTypes.js.map +1 -0
  1003. package/dist/profiles/fields/profileParamModel.cjs.map +1 -0
  1004. package/dist/profiles/fields/profileParamModel.d.ts +3 -0
  1005. package/dist/profiles/fields/profileParamModel.d.ts.map +1 -0
  1006. package/dist/profiles/fields/profileParamModel.js.map +1 -0
  1007. package/dist/profiles/processor/index.d.ts +6 -0
  1008. package/dist/profiles/processor/index.d.ts.map +1 -0
  1009. package/dist/profiles/processor/processorConfig.cjs +185 -0
  1010. package/dist/profiles/processor/processorConfig.cjs.map +1 -0
  1011. package/dist/profiles/processor/processorConfig.d.ts +34 -0
  1012. package/dist/profiles/processor/processorConfig.d.ts.map +1 -0
  1013. package/dist/profiles/processor/processorConfig.js +185 -0
  1014. package/dist/profiles/processor/processorConfig.js.map +1 -0
  1015. package/dist/profiles/processor/processorPipeline.cjs +300 -0
  1016. package/dist/profiles/processor/processorPipeline.cjs.map +1 -0
  1017. package/dist/profiles/processor/processorPipeline.d.ts +11 -0
  1018. package/dist/profiles/processor/processorPipeline.d.ts.map +1 -0
  1019. package/dist/profiles/processor/processorPipeline.js +300 -0
  1020. package/dist/profiles/processor/processorPipeline.js.map +1 -0
  1021. package/dist/profiles/processor/processorPipelineEditor.cjs +330 -0
  1022. package/dist/profiles/processor/processorPipelineEditor.cjs.map +1 -0
  1023. package/dist/profiles/processor/processorPipelineEditor.d.ts +16 -0
  1024. package/dist/profiles/processor/processorPipelineEditor.d.ts.map +1 -0
  1025. package/dist/profiles/processor/processorPipelineEditor.js +330 -0
  1026. package/dist/profiles/processor/processorPipelineEditor.js.map +1 -0
  1027. package/dist/profiles/processor/processorPipelineExtension.cjs +28 -0
  1028. package/dist/profiles/processor/processorPipelineExtension.cjs.map +1 -0
  1029. package/dist/profiles/processor/processorPipelineExtension.d.ts +5 -0
  1030. package/dist/profiles/processor/processorPipelineExtension.d.ts.map +1 -0
  1031. package/dist/profiles/processor/processorPipelineExtension.js +28 -0
  1032. package/dist/profiles/processor/processorPipelineExtension.js.map +1 -0
  1033. package/dist/profiles/processor/processorPreview.cjs +55 -0
  1034. package/dist/profiles/processor/processorPreview.cjs.map +1 -0
  1035. package/dist/profiles/processor/processorPreview.d.ts +20 -0
  1036. package/dist/profiles/processor/processorPreview.d.ts.map +1 -0
  1037. package/dist/profiles/processor/processorPreview.js +55 -0
  1038. package/dist/profiles/processor/processorPreview.js.map +1 -0
  1039. package/dist/profiles/processor/processorPreviewTable.cjs +103 -0
  1040. package/dist/profiles/processor/processorPreviewTable.cjs.map +1 -0
  1041. package/dist/profiles/processor/processorPreviewTable.d.ts +6 -0
  1042. package/dist/profiles/processor/processorPreviewTable.d.ts.map +1 -0
  1043. package/dist/profiles/processor/processorPreviewTable.js +103 -0
  1044. package/dist/profiles/processor/processorPreviewTable.js.map +1 -0
  1045. package/dist/profiles/processor/processorSampleParams.cjs +38 -0
  1046. package/dist/profiles/processor/processorSampleParams.cjs.map +1 -0
  1047. package/dist/profiles/processor/processorSampleParams.d.ts +6 -0
  1048. package/dist/profiles/processor/processorSampleParams.d.ts.map +1 -0
  1049. package/dist/profiles/processor/processorSampleParams.js +38 -0
  1050. package/dist/profiles/processor/processorSampleParams.js.map +1 -0
  1051. package/dist/profiles/profileApi.cjs +16 -0
  1052. package/dist/profiles/profileApi.cjs.map +1 -1
  1053. package/dist/profiles/profileApi.d.ts +36 -3
  1054. package/dist/profiles/profileApi.d.ts.map +1 -1
  1055. package/dist/profiles/profileApi.js +16 -0
  1056. package/dist/profiles/profileApi.js.map +1 -1
  1057. package/dist/profiles/query/index.d.ts +9 -0
  1058. package/dist/profiles/query/index.d.ts.map +1 -0
  1059. package/dist/profiles/query/jsonPathSample.cjs +75 -0
  1060. package/dist/profiles/query/jsonPathSample.cjs.map +1 -0
  1061. package/dist/profiles/query/jsonPathSample.d.ts +27 -0
  1062. package/dist/profiles/query/jsonPathSample.d.ts.map +1 -0
  1063. package/dist/profiles/query/jsonPathSample.js +75 -0
  1064. package/dist/profiles/query/jsonPathSample.js.map +1 -0
  1065. package/dist/profiles/query/jsonPathSampleRow.cjs.map +1 -0
  1066. package/dist/profiles/query/jsonPathSampleRow.d.ts.map +1 -0
  1067. package/dist/profiles/query/jsonPathSampleRow.js.map +1 -0
  1068. package/dist/profiles/query/kubernetesWorkloadTarget.cjs +43 -0
  1069. package/dist/profiles/query/kubernetesWorkloadTarget.cjs.map +1 -0
  1070. package/dist/profiles/query/kubernetesWorkloadTarget.d.ts +3 -0
  1071. package/dist/profiles/query/kubernetesWorkloadTarget.d.ts.map +1 -0
  1072. package/dist/profiles/query/kubernetesWorkloadTarget.js +43 -0
  1073. package/dist/profiles/query/kubernetesWorkloadTarget.js.map +1 -0
  1074. package/dist/profiles/query/kubernetesWorkloadTargetPicker.cjs +53 -0
  1075. package/dist/profiles/query/kubernetesWorkloadTargetPicker.cjs.map +1 -0
  1076. package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts +12 -0
  1077. package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts.map +1 -0
  1078. package/dist/profiles/query/kubernetesWorkloadTargetPicker.js +53 -0
  1079. package/dist/profiles/query/kubernetesWorkloadTargetPicker.js.map +1 -0
  1080. package/dist/profiles/query/profileSamplePayload.cjs.map +1 -0
  1081. package/dist/profiles/query/profileSamplePayload.d.ts +13 -0
  1082. package/dist/profiles/query/profileSamplePayload.d.ts.map +1 -0
  1083. package/dist/profiles/query/profileSamplePayload.js.map +1 -0
  1084. package/dist/profiles/query/prometheusResults.cjs +60 -0
  1085. package/dist/profiles/query/prometheusResults.cjs.map +1 -0
  1086. package/dist/profiles/query/prometheusResults.d.ts +7 -0
  1087. package/dist/profiles/query/prometheusResults.d.ts.map +1 -0
  1088. package/dist/profiles/query/prometheusResults.js +60 -0
  1089. package/dist/profiles/query/prometheusResults.js.map +1 -0
  1090. package/dist/profiles/query/queryRowLimits.cjs +82 -0
  1091. package/dist/profiles/query/queryRowLimits.cjs.map +1 -0
  1092. package/dist/profiles/query/queryRowLimits.d.ts +9 -0
  1093. package/dist/profiles/query/queryRowLimits.d.ts.map +1 -0
  1094. package/dist/profiles/query/queryRowLimits.js +82 -0
  1095. package/dist/profiles/query/queryRowLimits.js.map +1 -0
  1096. package/dist/profiles/query/queryRowLimitsModel.cjs.map +1 -0
  1097. package/dist/profiles/query/queryRowLimitsModel.d.ts +9 -0
  1098. package/dist/profiles/query/queryRowLimitsModel.d.ts.map +1 -0
  1099. package/dist/profiles/query/queryRowLimitsModel.js.map +1 -0
  1100. package/dist/profiles/query/queryTargetPicker.cjs +42 -0
  1101. package/dist/profiles/query/queryTargetPicker.cjs.map +1 -0
  1102. package/dist/profiles/query/queryTargetPicker.d.ts +8 -0
  1103. package/dist/profiles/query/queryTargetPicker.d.ts.map +1 -0
  1104. package/dist/profiles/query/queryTargetPicker.js +42 -0
  1105. package/dist/profiles/query/queryTargetPicker.js.map +1 -0
  1106. package/dist/profiles/wizard/index.d.ts +6 -0
  1107. package/dist/profiles/wizard/index.d.ts.map +1 -0
  1108. package/dist/profiles/wizard/profileWizard.cjs +257 -0
  1109. package/dist/profiles/wizard/profileWizard.cjs.map +1 -0
  1110. package/dist/profiles/wizard/profileWizard.d.ts +12 -0
  1111. package/dist/profiles/wizard/profileWizard.d.ts.map +1 -0
  1112. package/dist/profiles/wizard/profileWizard.js +257 -0
  1113. package/dist/profiles/wizard/profileWizard.js.map +1 -0
  1114. package/dist/profiles/wizard/profileWizardHelp.cjs.map +1 -0
  1115. package/dist/profiles/wizard/profileWizardHelp.d.ts.map +1 -0
  1116. package/dist/profiles/wizard/profileWizardHelp.js.map +1 -0
  1117. package/dist/profiles/wizard/profileWizardModel.cjs +204 -0
  1118. package/dist/profiles/wizard/profileWizardModel.cjs.map +1 -0
  1119. package/dist/profiles/wizard/profileWizardModel.d.ts +266 -0
  1120. package/dist/profiles/wizard/profileWizardModel.d.ts.map +1 -0
  1121. package/dist/profiles/wizard/profileWizardModel.js +204 -0
  1122. package/dist/profiles/wizard/profileWizardModel.js.map +1 -0
  1123. package/dist/profiles/wizard/profileWizardQueryStep.cjs +215 -0
  1124. package/dist/profiles/wizard/profileWizardQueryStep.cjs.map +1 -0
  1125. package/dist/profiles/wizard/profileWizardQueryStep.d.ts.map +1 -0
  1126. package/dist/profiles/wizard/profileWizardQueryStep.js +215 -0
  1127. package/dist/profiles/wizard/profileWizardQueryStep.js.map +1 -0
  1128. package/dist/profiles/wizard/profileWizardSteps.cjs +214 -0
  1129. package/dist/profiles/wizard/profileWizardSteps.cjs.map +1 -0
  1130. package/dist/profiles/wizard/profileWizardSteps.d.ts.map +1 -0
  1131. package/dist/profiles/wizard/profileWizardSteps.js +214 -0
  1132. package/dist/profiles/wizard/profileWizardSteps.js.map +1 -0
  1133. package/dist/profiles.cjs +237 -178
  1134. package/dist/profiles.cjs.map +1 -1
  1135. package/dist/profiles.d.ts +8 -55
  1136. package/dist/profiles.d.ts.map +1 -1
  1137. package/dist/profiles.js +117 -58
  1138. package/dist/profiles.js.map +1 -1
  1139. package/dist/rpc/ChatLayer.cjs +27 -0
  1140. package/dist/rpc/ChatLayer.cjs.map +1 -0
  1141. package/dist/rpc/ChatLayer.d.ts +11 -0
  1142. package/dist/rpc/ChatLayer.d.ts.map +1 -0
  1143. package/dist/rpc/ChatLayer.js +27 -0
  1144. package/dist/rpc/ChatLayer.js.map +1 -0
  1145. package/dist/rpc/CommandForm.cjs +9 -19
  1146. package/dist/rpc/CommandForm.cjs.map +1 -1
  1147. package/dist/rpc/CommandForm.d.ts +8 -2
  1148. package/dist/rpc/CommandForm.d.ts.map +1 -1
  1149. package/dist/rpc/CommandForm.js +10 -20
  1150. package/dist/rpc/CommandForm.js.map +1 -1
  1151. package/dist/rpc/CommandOutput.cjs +29 -4
  1152. package/dist/rpc/CommandOutput.cjs.map +1 -1
  1153. package/dist/rpc/CommandOutput.d.ts +6 -2
  1154. package/dist/rpc/CommandOutput.d.ts.map +1 -1
  1155. package/dist/rpc/CommandOutput.js +29 -4
  1156. package/dist/rpc/CommandOutput.js.map +1 -1
  1157. package/dist/rpc/EndpointList.cjs +1 -1
  1158. package/dist/rpc/EndpointList.cjs.map +1 -1
  1159. package/dist/rpc/EndpointList.js +1 -1
  1160. package/dist/rpc/EndpointList.js.map +1 -1
  1161. package/dist/rpc/EntityExplorerApp.cjs +4 -1
  1162. package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
  1163. package/dist/rpc/EntityExplorerApp.d.ts +3 -1
  1164. package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
  1165. package/dist/rpc/EntityExplorerApp.js +4 -1
  1166. package/dist/rpc/EntityExplorerApp.js.map +1 -1
  1167. package/dist/rpc/FilterForm.cjs +66 -80
  1168. package/dist/rpc/FilterForm.cjs.map +1 -1
  1169. package/dist/rpc/FilterForm.d.ts.map +1 -1
  1170. package/dist/rpc/FilterForm.js +68 -82
  1171. package/dist/rpc/FilterForm.js.map +1 -1
  1172. package/dist/rpc/InlineError.cjs +19 -2
  1173. package/dist/rpc/InlineError.cjs.map +1 -1
  1174. package/dist/rpc/InlineError.d.ts +5 -1
  1175. package/dist/rpc/InlineError.d.ts.map +1 -1
  1176. package/dist/rpc/InlineError.js +19 -2
  1177. package/dist/rpc/InlineError.js.map +1 -1
  1178. package/dist/rpc/OperationActionDialog.cjs +3 -3
  1179. package/dist/rpc/OperationActionDialog.cjs.map +1 -1
  1180. package/dist/rpc/OperationActionDialog.js +3 -3
  1181. package/dist/rpc/OperationActionDialog.js.map +1 -1
  1182. package/dist/rpc/OperationCatalog.cjs +96 -100
  1183. package/dist/rpc/OperationCatalog.cjs.map +1 -1
  1184. package/dist/rpc/OperationCatalog.d.ts.map +1 -1
  1185. package/dist/rpc/OperationCatalog.js +98 -102
  1186. package/dist/rpc/OperationCatalog.js.map +1 -1
  1187. package/dist/rpc/OperationCommandPage.cjs +26 -14
  1188. package/dist/rpc/OperationCommandPage.cjs.map +1 -1
  1189. package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
  1190. package/dist/rpc/OperationCommandPage.js +28 -16
  1191. package/dist/rpc/OperationCommandPage.js.map +1 -1
  1192. package/dist/rpc/OperationEntityContextPicker.cjs +25 -13
  1193. package/dist/rpc/OperationEntityContextPicker.cjs.map +1 -1
  1194. package/dist/rpc/OperationEntityContextPicker.d.ts.map +1 -1
  1195. package/dist/rpc/OperationEntityContextPicker.js +26 -14
  1196. package/dist/rpc/OperationEntityContextPicker.js.map +1 -1
  1197. package/dist/rpc/OperationEntityPage.cjs +2 -8
  1198. package/dist/rpc/OperationEntityPage.cjs.map +1 -1
  1199. package/dist/rpc/OperationEntityPage.d.ts.map +1 -1
  1200. package/dist/rpc/OperationEntityPage.js +2 -8
  1201. package/dist/rpc/OperationEntityPage.js.map +1 -1
  1202. package/dist/rpc/OperationResultView.cjs +13 -2
  1203. package/dist/rpc/OperationResultView.cjs.map +1 -1
  1204. package/dist/rpc/OperationResultView.d.ts +34 -2
  1205. package/dist/rpc/OperationResultView.d.ts.map +1 -1
  1206. package/dist/rpc/OperationResultView.js +13 -2
  1207. package/dist/rpc/OperationResultView.js.map +1 -1
  1208. package/dist/rpc/apiClient.cjs +28 -4
  1209. package/dist/rpc/apiClient.cjs.map +1 -1
  1210. package/dist/rpc/apiClient.d.ts +19 -9
  1211. package/dist/rpc/apiClient.d.ts.map +1 -1
  1212. package/dist/rpc/apiClient.js +29 -5
  1213. package/dist/rpc/apiClient.js.map +1 -1
  1214. package/dist/rpc/cursorStale.cjs +35 -0
  1215. package/dist/rpc/cursorStale.cjs.map +1 -0
  1216. package/dist/rpc/cursorStale.d.ts +23 -0
  1217. package/dist/rpc/cursorStale.d.ts.map +1 -0
  1218. package/dist/rpc/cursorStale.js +35 -0
  1219. package/dist/rpc/cursorStale.js.map +1 -0
  1220. package/dist/rpc/executionPages.cjs +94 -0
  1221. package/dist/rpc/executionPages.cjs.map +1 -0
  1222. package/dist/rpc/executionPages.d.ts +18 -0
  1223. package/dist/rpc/executionPages.d.ts.map +1 -0
  1224. package/dist/rpc/executionPages.js +94 -0
  1225. package/dist/rpc/executionPages.js.map +1 -0
  1226. package/dist/rpc/filterShapes.cjs +17 -0
  1227. package/dist/rpc/filterShapes.cjs.map +1 -0
  1228. package/dist/rpc/filterShapes.d.ts +22 -0
  1229. package/dist/rpc/filterShapes.d.ts.map +1 -0
  1230. package/dist/rpc/filterShapes.js +17 -0
  1231. package/dist/rpc/filterShapes.js.map +1 -0
  1232. package/dist/rpc/formMetadata.cjs +228 -57
  1233. package/dist/rpc/formMetadata.cjs.map +1 -1
  1234. package/dist/rpc/formMetadata.d.ts +19 -2
  1235. package/dist/rpc/formMetadata.d.ts.map +1 -1
  1236. package/dist/rpc/formMetadata.js +230 -59
  1237. package/dist/rpc/formMetadata.js.map +1 -1
  1238. package/dist/rpc/operationErrorDiagnostics.cjs +100 -0
  1239. package/dist/rpc/operationErrorDiagnostics.cjs.map +1 -0
  1240. package/dist/rpc/operationErrorDiagnostics.d.ts +4 -0
  1241. package/dist/rpc/operationErrorDiagnostics.d.ts.map +1 -0
  1242. package/dist/rpc/operationErrorDiagnostics.js +100 -0
  1243. package/dist/rpc/operationErrorDiagnostics.js.map +1 -0
  1244. package/dist/rpc/operationFilterSearch.cjs +1 -1
  1245. package/dist/rpc/operationFilterSearch.cjs.map +1 -1
  1246. package/dist/rpc/operationFilterSearch.js +2 -2
  1247. package/dist/rpc/operationFilterSearch.js.map +1 -1
  1248. package/dist/rpc/rpc-story.fixtures.d.ts.map +1 -1
  1249. package/dist/rpc/types.cjs.map +1 -1
  1250. package/dist/rpc/types.d.ts +55 -3
  1251. package/dist/rpc/types.d.ts.map +1 -1
  1252. package/dist/rpc/types.js.map +1 -1
  1253. package/dist/rpc/useOperationPages.cjs +111 -0
  1254. package/dist/rpc/useOperationPages.cjs.map +1 -0
  1255. package/dist/rpc/useOperationPages.d.ts +46 -0
  1256. package/dist/rpc/useOperationPages.d.ts.map +1 -0
  1257. package/dist/rpc/useOperationPages.js +111 -0
  1258. package/dist/rpc/useOperationPages.js.map +1 -0
  1259. package/dist/rpc/useOperations.cjs +7 -4
  1260. package/dist/rpc/useOperations.cjs.map +1 -1
  1261. package/dist/rpc/useOperations.d.ts +4 -4
  1262. package/dist/rpc/useOperations.d.ts.map +1 -1
  1263. package/dist/rpc/useOperations.js +7 -4
  1264. package/dist/rpc/useOperations.js.map +1 -1
  1265. package/dist/rpc.cjs +2 -0
  1266. package/dist/rpc.cjs.map +1 -1
  1267. package/dist/rpc.d.ts +3 -2
  1268. package/dist/rpc.d.ts.map +1 -1
  1269. package/dist/rpc.js +2 -0
  1270. package/dist/rpc.js.map +1 -1
  1271. package/dist/styles.css +2 -2
  1272. package/dist/tailwind-preset.cjs +6 -3
  1273. package/dist/tailwind-preset.cjs.map +1 -1
  1274. package/dist/tailwind-preset.d.ts.map +1 -1
  1275. package/dist/tailwind-preset.js +6 -3
  1276. package/dist/tailwind-preset.js.map +1 -1
  1277. package/dist/utils.cjs +6 -0
  1278. package/dist/utils.cjs.map +1 -1
  1279. package/dist/utils.d.ts +1 -0
  1280. package/dist/utils.d.ts.map +1 -1
  1281. package/dist/utils.js +6 -0
  1282. package/dist/utils.js.map +1 -1
  1283. package/package.json +6 -5
  1284. package/dist/profiles/catalogTree.cjs +0 -133
  1285. package/dist/profiles/catalogTree.cjs.map +0 -1
  1286. package/dist/profiles/catalogTree.d.ts.map +0 -1
  1287. package/dist/profiles/catalogTree.js +0 -133
  1288. package/dist/profiles/catalogTree.js.map +0 -1
  1289. package/dist/profiles/connectionBrowserModel.cjs +0 -185
  1290. package/dist/profiles/connectionBrowserModel.cjs.map +0 -1
  1291. package/dist/profiles/connectionBrowserModel.d.ts +0 -169
  1292. package/dist/profiles/connectionBrowserModel.d.ts.map +0 -1
  1293. package/dist/profiles/connectionBrowserModel.js +0 -185
  1294. package/dist/profiles/connectionBrowserModel.js.map +0 -1
  1295. package/dist/profiles/connectionQueryWorkspace.cjs +0 -185
  1296. package/dist/profiles/connectionQueryWorkspace.cjs.map +0 -1
  1297. package/dist/profiles/connectionQueryWorkspace.d.ts +0 -63
  1298. package/dist/profiles/connectionQueryWorkspace.d.ts.map +0 -1
  1299. package/dist/profiles/connectionQueryWorkspace.js +0 -185
  1300. package/dist/profiles/connectionQueryWorkspace.js.map +0 -1
  1301. package/dist/profiles/connectionQueryWorkspaceModel.cjs +0 -28
  1302. package/dist/profiles/connectionQueryWorkspaceModel.cjs.map +0 -1
  1303. package/dist/profiles/connectionQueryWorkspaceModel.d.ts +0 -38
  1304. package/dist/profiles/connectionQueryWorkspaceModel.d.ts.map +0 -1
  1305. package/dist/profiles/connectionQueryWorkspaceModel.js +0 -28
  1306. package/dist/profiles/connectionQueryWorkspaceModel.js.map +0 -1
  1307. package/dist/profiles/esFieldValues.cjs +0 -64
  1308. package/dist/profiles/esFieldValues.cjs.map +0 -1
  1309. package/dist/profiles/esFieldValues.d.ts +0 -48
  1310. package/dist/profiles/esFieldValues.d.ts.map +0 -1
  1311. package/dist/profiles/esFieldValues.js +0 -64
  1312. package/dist/profiles/esFieldValues.js.map +0 -1
  1313. package/dist/profiles/esParamMappingModel.cjs +0 -301
  1314. package/dist/profiles/esParamMappingModel.cjs.map +0 -1
  1315. package/dist/profiles/esParamMappingModel.d.ts +0 -37
  1316. package/dist/profiles/esParamMappingModel.d.ts.map +0 -1
  1317. package/dist/profiles/esParamMappingModel.js +0 -301
  1318. package/dist/profiles/esParamMappingModel.js.map +0 -1
  1319. package/dist/profiles/esParamMappingPill.cjs.map +0 -1
  1320. package/dist/profiles/esParamMappingPill.d.ts.map +0 -1
  1321. package/dist/profiles/esParamMappingPill.js.map +0 -1
  1322. package/dist/profiles/esParamOperandExtension.cjs +0 -75
  1323. package/dist/profiles/esParamOperandExtension.cjs.map +0 -1
  1324. package/dist/profiles/esParamOperandExtension.d.ts +0 -11
  1325. package/dist/profiles/esParamOperandExtension.d.ts.map +0 -1
  1326. package/dist/profiles/esParamOperandExtension.js +0 -75
  1327. package/dist/profiles/esParamOperandExtension.js.map +0 -1
  1328. package/dist/profiles/esQueryBuilder.cjs +0 -205
  1329. package/dist/profiles/esQueryBuilder.cjs.map +0 -1
  1330. package/dist/profiles/esQueryBuilder.d.ts +0 -35
  1331. package/dist/profiles/esQueryBuilder.d.ts.map +0 -1
  1332. package/dist/profiles/esQueryBuilder.js +0 -205
  1333. package/dist/profiles/esQueryBuilder.js.map +0 -1
  1334. package/dist/profiles/esQueryBuilderExtension.cjs.map +0 -1
  1335. package/dist/profiles/esQueryBuilderExtension.d.ts +0 -5
  1336. package/dist/profiles/esQueryBuilderExtension.d.ts.map +0 -1
  1337. package/dist/profiles/esQueryBuilderExtension.js.map +0 -1
  1338. package/dist/profiles/esQueryBuilderForm.cjs +0 -26
  1339. package/dist/profiles/esQueryBuilderForm.cjs.map +0 -1
  1340. package/dist/profiles/esQueryBuilderForm.d.ts +0 -18
  1341. package/dist/profiles/esQueryBuilderForm.d.ts.map +0 -1
  1342. package/dist/profiles/esQueryBuilderForm.js +0 -26
  1343. package/dist/profiles/esQueryBuilderForm.js.map +0 -1
  1344. package/dist/profiles/esQueryBuilderModel.cjs.map +0 -1
  1345. package/dist/profiles/esQueryBuilderModel.d.ts +0 -108
  1346. package/dist/profiles/esQueryBuilderModel.d.ts.map +0 -1
  1347. package/dist/profiles/esQueryBuilderModel.js.map +0 -1
  1348. package/dist/profiles/esQueryClauseGroup.cjs +0 -144
  1349. package/dist/profiles/esQueryClauseGroup.cjs.map +0 -1
  1350. package/dist/profiles/esQueryClauseGroup.d.ts.map +0 -1
  1351. package/dist/profiles/esQueryClauseGroup.js +0 -144
  1352. package/dist/profiles/esQueryClauseGroup.js.map +0 -1
  1353. package/dist/profiles/esQueryCompile.cjs +0 -47
  1354. package/dist/profiles/esQueryCompile.cjs.map +0 -1
  1355. package/dist/profiles/esQueryCompile.d.ts +0 -39
  1356. package/dist/profiles/esQueryCompile.d.ts.map +0 -1
  1357. package/dist/profiles/esQueryCompile.js +0 -47
  1358. package/dist/profiles/esQueryCompile.js.map +0 -1
  1359. package/dist/profiles/esQueryConditionRow.cjs +0 -168
  1360. package/dist/profiles/esQueryConditionRow.cjs.map +0 -1
  1361. package/dist/profiles/esQueryConditionRow.d.ts +0 -37
  1362. package/dist/profiles/esQueryConditionRow.d.ts.map +0 -1
  1363. package/dist/profiles/esQueryConditionRow.js +0 -168
  1364. package/dist/profiles/esQueryConditionRow.js.map +0 -1
  1365. package/dist/profiles/esQueryGroupModel.cjs.map +0 -1
  1366. package/dist/profiles/esQueryGroupModel.d.ts.map +0 -1
  1367. package/dist/profiles/esQueryGroupModel.js.map +0 -1
  1368. package/dist/profiles/esQueryOccur.cjs.map +0 -1
  1369. package/dist/profiles/esQueryOccur.d.ts.map +0 -1
  1370. package/dist/profiles/esQueryOccur.js.map +0 -1
  1371. package/dist/profiles/esQueryOperandEditors.cjs +0 -279
  1372. package/dist/profiles/esQueryOperandEditors.cjs.map +0 -1
  1373. package/dist/profiles/esQueryOperandEditors.d.ts +0 -24
  1374. package/dist/profiles/esQueryOperandEditors.d.ts.map +0 -1
  1375. package/dist/profiles/esQueryOperandEditors.js +0 -279
  1376. package/dist/profiles/esQueryOperandEditors.js.map +0 -1
  1377. package/dist/profiles/esQueryOperandModel.cjs.map +0 -1
  1378. package/dist/profiles/esQueryOperandModel.d.ts +0 -17
  1379. package/dist/profiles/esQueryOperandModel.d.ts.map +0 -1
  1380. package/dist/profiles/esQueryOperandModel.js.map +0 -1
  1381. package/dist/profiles/esQueryOperators.cjs +0 -165
  1382. package/dist/profiles/esQueryOperators.cjs.map +0 -1
  1383. package/dist/profiles/esQueryOperators.d.ts +0 -83
  1384. package/dist/profiles/esQueryOperators.d.ts.map +0 -1
  1385. package/dist/profiles/esQueryOperators.js +0 -165
  1386. package/dist/profiles/esQueryOperators.js.map +0 -1
  1387. package/dist/profiles/esQueryOutputEditor.cjs +0 -138
  1388. package/dist/profiles/esQueryOutputEditor.cjs.map +0 -1
  1389. package/dist/profiles/esQueryOutputEditor.d.ts +0 -7
  1390. package/dist/profiles/esQueryOutputEditor.d.ts.map +0 -1
  1391. package/dist/profiles/esQueryOutputEditor.js +0 -138
  1392. package/dist/profiles/esQueryOutputEditor.js.map +0 -1
  1393. package/dist/profiles/esQueryOutputModel.cjs.map +0 -1
  1394. package/dist/profiles/esQueryOutputModel.d.ts.map +0 -1
  1395. package/dist/profiles/esQueryOutputModel.js.map +0 -1
  1396. package/dist/profiles/esQueryPreview.cjs.map +0 -1
  1397. package/dist/profiles/esQueryPreview.d.ts.map +0 -1
  1398. package/dist/profiles/esQueryPreview.js.map +0 -1
  1399. package/dist/profiles/esQuerySortEditor.cjs +0 -143
  1400. package/dist/profiles/esQuerySortEditor.cjs.map +0 -1
  1401. package/dist/profiles/esQuerySortEditor.d.ts.map +0 -1
  1402. package/dist/profiles/esQuerySortEditor.js +0 -143
  1403. package/dist/profiles/esQuerySortEditor.js.map +0 -1
  1404. package/dist/profiles/esQuerySortModel.cjs.map +0 -1
  1405. package/dist/profiles/esQuerySortModel.d.ts.map +0 -1
  1406. package/dist/profiles/esQuerySortModel.js.map +0 -1
  1407. package/dist/profiles/esValueCombobox.cjs +0 -86
  1408. package/dist/profiles/esValueCombobox.cjs.map +0 -1
  1409. package/dist/profiles/esValueCombobox.d.ts.map +0 -1
  1410. package/dist/profiles/esValueCombobox.js +0 -86
  1411. package/dist/profiles/esValueCombobox.js.map +0 -1
  1412. package/dist/profiles/jsonPathSample.cjs +0 -75
  1413. package/dist/profiles/jsonPathSample.cjs.map +0 -1
  1414. package/dist/profiles/jsonPathSample.d.ts +0 -27
  1415. package/dist/profiles/jsonPathSample.d.ts.map +0 -1
  1416. package/dist/profiles/jsonPathSample.js +0 -75
  1417. package/dist/profiles/jsonPathSample.js.map +0 -1
  1418. package/dist/profiles/jsonPathSampleRow.cjs.map +0 -1
  1419. package/dist/profiles/jsonPathSampleRow.d.ts.map +0 -1
  1420. package/dist/profiles/jsonPathSampleRow.js.map +0 -1
  1421. package/dist/profiles/profileBuilder.cjs +0 -65
  1422. package/dist/profiles/profileBuilder.cjs.map +0 -1
  1423. package/dist/profiles/profileBuilder.d.ts.map +0 -1
  1424. package/dist/profiles/profileBuilder.js +0 -65
  1425. package/dist/profiles/profileBuilder.js.map +0 -1
  1426. package/dist/profiles/profileBuilderExtension.cjs.map +0 -1
  1427. package/dist/profiles/profileBuilderExtension.d.ts +0 -5
  1428. package/dist/profiles/profileBuilderExtension.d.ts.map +0 -1
  1429. package/dist/profiles/profileBuilderExtension.js.map +0 -1
  1430. package/dist/profiles/profileBuilderWorkspace.cjs +0 -368
  1431. package/dist/profiles/profileBuilderWorkspace.cjs.map +0 -1
  1432. package/dist/profiles/profileBuilderWorkspace.d.ts +0 -21
  1433. package/dist/profiles/profileBuilderWorkspace.d.ts.map +0 -1
  1434. package/dist/profiles/profileBuilderWorkspace.js +0 -368
  1435. package/dist/profiles/profileBuilderWorkspace.js.map +0 -1
  1436. package/dist/profiles/profileColumnModel.cjs.map +0 -1
  1437. package/dist/profiles/profileColumnModel.d.ts +0 -8
  1438. package/dist/profiles/profileColumnModel.d.ts.map +0 -1
  1439. package/dist/profiles/profileColumnModel.js.map +0 -1
  1440. package/dist/profiles/profileColumnPicker.cjs +0 -68
  1441. package/dist/profiles/profileColumnPicker.cjs.map +0 -1
  1442. package/dist/profiles/profileColumnPicker.d.ts +0 -11
  1443. package/dist/profiles/profileColumnPicker.d.ts.map +0 -1
  1444. package/dist/profiles/profileColumnPicker.js +0 -68
  1445. package/dist/profiles/profileColumnPicker.js.map +0 -1
  1446. package/dist/profiles/profileEditor.cjs +0 -386
  1447. package/dist/profiles/profileEditor.cjs.map +0 -1
  1448. package/dist/profiles/profileEditor.d.ts +0 -19
  1449. package/dist/profiles/profileEditor.d.ts.map +0 -1
  1450. package/dist/profiles/profileEditor.js +0 -386
  1451. package/dist/profiles/profileEditor.js.map +0 -1
  1452. package/dist/profiles/profileEditorModel.cjs +0 -181
  1453. package/dist/profiles/profileEditorModel.cjs.map +0 -1
  1454. package/dist/profiles/profileEditorModel.d.ts +0 -74
  1455. package/dist/profiles/profileEditorModel.d.ts.map +0 -1
  1456. package/dist/profiles/profileEditorModel.js +0 -181
  1457. package/dist/profiles/profileEditorModel.js.map +0 -1
  1458. package/dist/profiles/profileEditorPreview.cjs.map +0 -1
  1459. package/dist/profiles/profileEditorPreview.d.ts +0 -12
  1460. package/dist/profiles/profileEditorPreview.d.ts.map +0 -1
  1461. package/dist/profiles/profileEditorPreview.js.map +0 -1
  1462. package/dist/profiles/profileEditorRail.cjs.map +0 -1
  1463. package/dist/profiles/profileEditorRail.d.ts.map +0 -1
  1464. package/dist/profiles/profileEditorRail.js.map +0 -1
  1465. package/dist/profiles/profileEditorRaw.cjs +0 -118
  1466. package/dist/profiles/profileEditorRaw.cjs.map +0 -1
  1467. package/dist/profiles/profileEditorRaw.d.ts +0 -7
  1468. package/dist/profiles/profileEditorRaw.d.ts.map +0 -1
  1469. package/dist/profiles/profileEditorRaw.js +0 -118
  1470. package/dist/profiles/profileEditorRaw.js.map +0 -1
  1471. package/dist/profiles/profileEditorRoutes.cjs.map +0 -1
  1472. package/dist/profiles/profileEditorRoutes.d.ts.map +0 -1
  1473. package/dist/profiles/profileEditorRoutes.js.map +0 -1
  1474. package/dist/profiles/profileEditorSections.cjs +0 -213
  1475. package/dist/profiles/profileEditorSections.cjs.map +0 -1
  1476. package/dist/profiles/profileEditorSections.d.ts +0 -23
  1477. package/dist/profiles/profileEditorSections.d.ts.map +0 -1
  1478. package/dist/profiles/profileEditorSections.js +0 -213
  1479. package/dist/profiles/profileEditorSections.js.map +0 -1
  1480. package/dist/profiles/profileFieldEditor.cjs +0 -200
  1481. package/dist/profiles/profileFieldEditor.cjs.map +0 -1
  1482. package/dist/profiles/profileFieldEditor.d.ts +0 -34
  1483. package/dist/profiles/profileFieldEditor.d.ts.map +0 -1
  1484. package/dist/profiles/profileFieldEditor.js +0 -200
  1485. package/dist/profiles/profileFieldEditor.js.map +0 -1
  1486. package/dist/profiles/profileFieldGrid.cjs +0 -250
  1487. package/dist/profiles/profileFieldGrid.cjs.map +0 -1
  1488. package/dist/profiles/profileFieldGrid.d.ts +0 -20
  1489. package/dist/profiles/profileFieldGrid.d.ts.map +0 -1
  1490. package/dist/profiles/profileFieldGrid.js +0 -250
  1491. package/dist/profiles/profileFieldGrid.js.map +0 -1
  1492. package/dist/profiles/profileFieldManager.cjs +0 -103
  1493. package/dist/profiles/profileFieldManager.cjs.map +0 -1
  1494. package/dist/profiles/profileFieldManager.d.ts.map +0 -1
  1495. package/dist/profiles/profileFieldManager.js +0 -103
  1496. package/dist/profiles/profileFieldManager.js.map +0 -1
  1497. package/dist/profiles/profileFieldState.cjs +0 -136
  1498. package/dist/profiles/profileFieldState.cjs.map +0 -1
  1499. package/dist/profiles/profileFieldState.d.ts +0 -41
  1500. package/dist/profiles/profileFieldState.d.ts.map +0 -1
  1501. package/dist/profiles/profileFieldState.js +0 -136
  1502. package/dist/profiles/profileFieldState.js.map +0 -1
  1503. package/dist/profiles/profileFieldTypes.cjs.map +0 -1
  1504. package/dist/profiles/profileFieldTypes.d.ts +0 -8
  1505. package/dist/profiles/profileFieldTypes.d.ts.map +0 -1
  1506. package/dist/profiles/profileFieldTypes.js.map +0 -1
  1507. package/dist/profiles/profileParamModel.cjs.map +0 -1
  1508. package/dist/profiles/profileParamModel.d.ts +0 -3
  1509. package/dist/profiles/profileParamModel.d.ts.map +0 -1
  1510. package/dist/profiles/profileParamModel.js.map +0 -1
  1511. package/dist/profiles/profileSamplePayload.cjs.map +0 -1
  1512. package/dist/profiles/profileSamplePayload.d.ts +0 -13
  1513. package/dist/profiles/profileSamplePayload.d.ts.map +0 -1
  1514. package/dist/profiles/profileSamplePayload.js.map +0 -1
  1515. package/dist/profiles/profileWizard.cjs +0 -257
  1516. package/dist/profiles/profileWizard.cjs.map +0 -1
  1517. package/dist/profiles/profileWizard.d.ts +0 -12
  1518. package/dist/profiles/profileWizard.d.ts.map +0 -1
  1519. package/dist/profiles/profileWizard.js +0 -257
  1520. package/dist/profiles/profileWizard.js.map +0 -1
  1521. package/dist/profiles/profileWizardHelp.cjs.map +0 -1
  1522. package/dist/profiles/profileWizardHelp.d.ts.map +0 -1
  1523. package/dist/profiles/profileWizardHelp.js.map +0 -1
  1524. package/dist/profiles/profileWizardModel.cjs +0 -198
  1525. package/dist/profiles/profileWizardModel.cjs.map +0 -1
  1526. package/dist/profiles/profileWizardModel.d.ts +0 -255
  1527. package/dist/profiles/profileWizardModel.d.ts.map +0 -1
  1528. package/dist/profiles/profileWizardModel.js +0 -198
  1529. package/dist/profiles/profileWizardModel.js.map +0 -1
  1530. package/dist/profiles/profileWizardQueryStep.cjs +0 -215
  1531. package/dist/profiles/profileWizardQueryStep.cjs.map +0 -1
  1532. package/dist/profiles/profileWizardQueryStep.d.ts.map +0 -1
  1533. package/dist/profiles/profileWizardQueryStep.js +0 -215
  1534. package/dist/profiles/profileWizardQueryStep.js.map +0 -1
  1535. package/dist/profiles/profileWizardSteps.cjs +0 -214
  1536. package/dist/profiles/profileWizardSteps.cjs.map +0 -1
  1537. package/dist/profiles/profileWizardSteps.d.ts.map +0 -1
  1538. package/dist/profiles/profileWizardSteps.js +0 -214
  1539. package/dist/profiles/profileWizardSteps.js.map +0 -1
  1540. package/dist/profiles/profileYaml.cjs +0 -19
  1541. package/dist/profiles/profileYaml.cjs.map +0 -1
  1542. package/dist/profiles/profileYaml.d.ts +0 -4
  1543. package/dist/profiles/profileYaml.d.ts.map +0 -1
  1544. package/dist/profiles/profileYaml.js +0 -19
  1545. package/dist/profiles/profileYaml.js.map +0 -1
  1546. package/dist/profiles/prometheusResults.cjs +0 -60
  1547. package/dist/profiles/prometheusResults.cjs.map +0 -1
  1548. package/dist/profiles/prometheusResults.d.ts +0 -7
  1549. package/dist/profiles/prometheusResults.d.ts.map +0 -1
  1550. package/dist/profiles/prometheusResults.js +0 -60
  1551. package/dist/profiles/prometheusResults.js.map +0 -1
  1552. package/dist/profiles/queryRowLimits.cjs +0 -82
  1553. package/dist/profiles/queryRowLimits.cjs.map +0 -1
  1554. package/dist/profiles/queryRowLimits.d.ts +0 -9
  1555. package/dist/profiles/queryRowLimits.d.ts.map +0 -1
  1556. package/dist/profiles/queryRowLimits.js +0 -82
  1557. package/dist/profiles/queryRowLimits.js.map +0 -1
  1558. package/dist/profiles/queryRowLimitsModel.cjs.map +0 -1
  1559. package/dist/profiles/queryRowLimitsModel.d.ts +0 -9
  1560. package/dist/profiles/queryRowLimitsModel.d.ts.map +0 -1
  1561. package/dist/profiles/queryRowLimitsModel.js.map +0 -1
  1562. package/dist/profiles/queryTargetPicker.cjs +0 -42
  1563. package/dist/profiles/queryTargetPicker.cjs.map +0 -1
  1564. package/dist/profiles/queryTargetPicker.d.ts +0 -8
  1565. package/dist/profiles/queryTargetPicker.d.ts.map +0 -1
  1566. package/dist/profiles/queryTargetPicker.js +0 -42
  1567. package/dist/profiles/queryTargetPicker.js.map +0 -1
  1568. package/dist/profiles/testSchema.d.ts +0 -3
  1569. package/dist/profiles/testSchema.d.ts.map +0 -1
  1570. /package/dist/profiles/{catalogTree.d.ts → connections/catalogTree.d.ts} +0 -0
  1571. /package/dist/profiles/{profileBuilder.d.ts → editor/profileBuilder.d.ts} +0 -0
  1572. /package/dist/profiles/{profileBuilderExtension.cjs → editor/profileBuilderExtension.cjs} +0 -0
  1573. /package/dist/profiles/{profileBuilderExtension.js → editor/profileBuilderExtension.js} +0 -0
  1574. /package/dist/profiles/{profileEditorPreview.cjs → editor/profileEditorPreview.cjs} +0 -0
  1575. /package/dist/profiles/{profileEditorPreview.js → editor/profileEditorPreview.js} +0 -0
  1576. /package/dist/profiles/{profileEditorRail.cjs → editor/profileEditorRail.cjs} +0 -0
  1577. /package/dist/profiles/{profileEditorRail.d.ts → editor/profileEditorRail.d.ts} +0 -0
  1578. /package/dist/profiles/{profileEditorRail.js → editor/profileEditorRail.js} +0 -0
  1579. /package/dist/profiles/{profileEditorRoutes.cjs → editor/profileEditorRoutes.cjs} +0 -0
  1580. /package/dist/profiles/{profileEditorRoutes.d.ts → editor/profileEditorRoutes.d.ts} +0 -0
  1581. /package/dist/profiles/{profileEditorRoutes.js → editor/profileEditorRoutes.js} +0 -0
  1582. /package/dist/profiles/{esParamMappingPill.cjs → elasticsearch/esParamMappingPill.cjs} +0 -0
  1583. /package/dist/profiles/{esParamMappingPill.d.ts → elasticsearch/esParamMappingPill.d.ts} +0 -0
  1584. /package/dist/profiles/{esParamMappingPill.js → elasticsearch/esParamMappingPill.js} +0 -0
  1585. /package/dist/profiles/{esQueryBuilderExtension.cjs → elasticsearch/esQueryBuilderExtension.cjs} +0 -0
  1586. /package/dist/profiles/{esQueryBuilderExtension.js → elasticsearch/esQueryBuilderExtension.js} +0 -0
  1587. /package/dist/profiles/{esQueryBuilderModel.cjs → elasticsearch/esQueryBuilderModel.cjs} +0 -0
  1588. /package/dist/profiles/{esQueryBuilderModel.js → elasticsearch/esQueryBuilderModel.js} +0 -0
  1589. /package/dist/profiles/{esQueryClauseGroup.d.ts → elasticsearch/esQueryClauseGroup.d.ts} +0 -0
  1590. /package/dist/profiles/{esQueryGroupModel.cjs → elasticsearch/esQueryGroupModel.cjs} +0 -0
  1591. /package/dist/profiles/{esQueryGroupModel.d.ts → elasticsearch/esQueryGroupModel.d.ts} +0 -0
  1592. /package/dist/profiles/{esQueryGroupModel.js → elasticsearch/esQueryGroupModel.js} +0 -0
  1593. /package/dist/profiles/{esQueryOccur.cjs → elasticsearch/esQueryOccur.cjs} +0 -0
  1594. /package/dist/profiles/{esQueryOccur.d.ts → elasticsearch/esQueryOccur.d.ts} +0 -0
  1595. /package/dist/profiles/{esQueryOccur.js → elasticsearch/esQueryOccur.js} +0 -0
  1596. /package/dist/profiles/{esQueryOperandModel.cjs → elasticsearch/esQueryOperandModel.cjs} +0 -0
  1597. /package/dist/profiles/{esQueryOperandModel.js → elasticsearch/esQueryOperandModel.js} +0 -0
  1598. /package/dist/profiles/{esQueryOutputModel.cjs → elasticsearch/esQueryOutputModel.cjs} +0 -0
  1599. /package/dist/profiles/{esQueryOutputModel.d.ts → elasticsearch/esQueryOutputModel.d.ts} +0 -0
  1600. /package/dist/profiles/{esQueryOutputModel.js → elasticsearch/esQueryOutputModel.js} +0 -0
  1601. /package/dist/profiles/{esQueryPreview.cjs → elasticsearch/esQueryPreview.cjs} +0 -0
  1602. /package/dist/profiles/{esQueryPreview.d.ts → elasticsearch/esQueryPreview.d.ts} +0 -0
  1603. /package/dist/profiles/{esQueryPreview.js → elasticsearch/esQueryPreview.js} +0 -0
  1604. /package/dist/profiles/{esQuerySortEditor.d.ts → elasticsearch/esQuerySortEditor.d.ts} +0 -0
  1605. /package/dist/profiles/{esQuerySortModel.cjs → elasticsearch/esQuerySortModel.cjs} +0 -0
  1606. /package/dist/profiles/{esQuerySortModel.d.ts → elasticsearch/esQuerySortModel.d.ts} +0 -0
  1607. /package/dist/profiles/{esQuerySortModel.js → elasticsearch/esQuerySortModel.js} +0 -0
  1608. /package/dist/profiles/{esValueCombobox.d.ts → elasticsearch/esValueCombobox.d.ts} +0 -0
  1609. /package/dist/profiles/{profileColumnModel.cjs → fields/profileColumnModel.cjs} +0 -0
  1610. /package/dist/profiles/{profileColumnModel.js → fields/profileColumnModel.js} +0 -0
  1611. /package/dist/profiles/{profileFieldManager.d.ts → fields/profileFieldManager.d.ts} +0 -0
  1612. /package/dist/profiles/{profileFieldTypes.cjs → fields/profileFieldTypes.cjs} +0 -0
  1613. /package/dist/profiles/{profileFieldTypes.js → fields/profileFieldTypes.js} +0 -0
  1614. /package/dist/profiles/{profileParamModel.cjs → fields/profileParamModel.cjs} +0 -0
  1615. /package/dist/profiles/{profileParamModel.js → fields/profileParamModel.js} +0 -0
  1616. /package/dist/profiles/{jsonPathSampleRow.cjs → query/jsonPathSampleRow.cjs} +0 -0
  1617. /package/dist/profiles/{jsonPathSampleRow.d.ts → query/jsonPathSampleRow.d.ts} +0 -0
  1618. /package/dist/profiles/{jsonPathSampleRow.js → query/jsonPathSampleRow.js} +0 -0
  1619. /package/dist/profiles/{profileSamplePayload.cjs → query/profileSamplePayload.cjs} +0 -0
  1620. /package/dist/profiles/{profileSamplePayload.js → query/profileSamplePayload.js} +0 -0
  1621. /package/dist/profiles/{queryRowLimitsModel.cjs → query/queryRowLimitsModel.cjs} +0 -0
  1622. /package/dist/profiles/{queryRowLimitsModel.js → query/queryRowLimitsModel.js} +0 -0
  1623. /package/dist/profiles/{profileWizardHelp.cjs → wizard/profileWizardHelp.cjs} +0 -0
  1624. /package/dist/profiles/{profileWizardHelp.d.ts → wizard/profileWizardHelp.d.ts} +0 -0
  1625. /package/dist/profiles/{profileWizardHelp.js → wizard/profileWizardHelp.js} +0 -0
  1626. /package/dist/profiles/{profileWizardQueryStep.d.ts → wizard/profileWizardQueryStep.d.ts} +0 -0
  1627. /package/dist/profiles/{profileWizardSteps.d.ts → wizard/profileWizardSteps.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"data-table-server-filters.js","sources":["../../src/data/data-table-server-filters.ts"],"sourcesContent":["import type { Dispatch, SetStateAction } from \"react\";\nimport type {\n FilterBarFilter,\n FilterBarNumberValue,\n FilterBarRangePreset,\n FilterBarRangeProps,\n} from \"../components/FilterBar\";\nimport type { FilterExtension } from \"../components/filter-bar-utils\";\nimport { applyFilterExtensions } from \"../components/filter-bar-utils\";\nimport type { MultiSelectOption } from \"../components/MultiSelect\";\nimport type { TriState } from \"../components/TriStateToggle\";\nimport type { DataTableColumn, DataTableColumnKind } from \"./DataTable\";\nimport {\n parseBoundsValue,\n parseMultiFilterValue,\n serializeBoundsValue,\n serializeMultiFilterValue,\n updateFilterSelection,\n type DataTableFilterSelection,\n type FilterBoundsValue,\n} from \"./data-table-filter-values\";\nimport { prettifyKey } from \"./data-table-utils\";\n\n/**\n * Which control a filter renders as.\n *\n * Deliberately opaque: \"terms\" is not \"a SQL IN() or an OpenSearch terms\n * query\", it is \"a set of discrete values the user includes or excludes\". The\n * source compiles the selection; nothing about how it does so crosses into the\n * browser.\n */\nexport type DataTableFilterKind = \"terms\" | \"range\" | \"time\" | \"boolean\" | \"text\";\n\nexport type DataTableFilterOption = {\n /** Value written into the selection. */\n value: string;\n /** Display label. Falls back to `value`. */\n label?: string;\n /** How many rows carry this value, shown as a tooltip. */\n count?: number;\n};\n\nexport type DataTableColumnFilter = {\n kind: DataTableFilterKind;\n /** Head of the option set for kind:\"terms\". Empty relies on `lookup`. */\n options?: DataTableFilterOption[];\n /** True when `options` is a capped head of a larger set. */\n truncated?: boolean;\n /** Distinct count behind a truncated head; drives the \"… and N more\" hint. */\n total?: number;\n /** The source can answer a type-ahead for this filter. */\n lookup?: boolean;\n /** Slider domain for kind:\"range\". */\n min?: number;\n max?: number;\n step?: number;\n /** Range presets for kind:\"time\". */\n presets?: FilterBarRangePreset[];\n /** Helper text shown in the filter popover. */\n description?: string;\n disabled?: boolean;\n};\n\n/**\n * A result column as the source describes it: how to render it, and — when the\n * source can narrow on it — which filter parameter it binds to and what control\n * that filter is.\n *\n * `filterKey` need not equal `name`: an analyzed text field filters through an\n * exact-value sibling, and a computed column filters by the alias it was given.\n */\nexport type DataTableServerColumn = {\n /** Field name as the source knows it; also the literal row key. */\n name: string;\n /** Header label. Defaults to a prettified `name`. */\n label?: string;\n /** Backend type string, verbatim (e.g. \"TIMESTAMPTZ\", \"keyword\"). Display only. */\n databaseType?: string;\n /** Cell rendering kind. */\n kind?: DataTableColumnKind;\n /** Filter parameter this column narrows on. Absent means not filterable. */\n filterKey?: string;\n /** The control the filter renders as. Absent means not filterable. */\n filter?: DataTableColumnFilter;\n};\n\n/** Head-set size for a filter value type-ahead. */\nexport const DATA_TABLE_FILTER_LOOKUP_LIMIT = 20;\n\nexport type DataTableFilterLookupRequest = {\n /** Which filter is being searched — the column's `filterKey`. */\n filterKey: string;\n /** What the user typed. Empty asks for the head of the set. */\n search: string;\n /** How many options to return. */\n limit: number;\n};\n\nexport type DataTableFilterLookupResult = {\n options: DataTableFilterOption[];\n};\n\n/**\n * Answers a filter's value type-ahead. Sync or async — a static option source\n * returns an array, a server-backed one a promise.\n */\nexport type DataTableFilterLookup = (\n request: DataTableFilterLookupRequest,\n) => Promise<DataTableFilterLookupResult> | DataTableFilterLookupResult;\n\nexport type ServerFilterBarOptions = {\n /** Answers a terms type-ahead for filters whose `lookup` is set. */\n lookupValues?: DataTableFilterLookup;\n /** Decorators applied to each built filter (icons, relabelling). */\n extensions?: FilterExtension[];\n};\n\nexport type ServerFilterConfig = {\n filters: FilterBarFilter[];\n /** Present when exactly one column declared kind:\"time\". */\n timeRange?: FilterBarRangeProps;\n};\n\n/**\n * Turns the source's column description into DataTable columns.\n *\n * Every column gets a literal `accessor` — a raw result set has empty, dotted\n * and colliding names, none of which survive being read as a path — and\n * `filterable: false`, because a described result is filtered by the source and\n * never by cardinality guessed from one page.\n */\nexport function serverColumnsToDataTableColumns<T extends Record<string, unknown>>(\n columns: DataTableServerColumn[],\n): DataTableColumn<T>[] {\n return columns.map((column, index) => ({\n key: column.name === \"\" ? `column-${index}` : column.name,\n label: column.label ?? prettifyKey(column.name),\n accessor: (row: T) => row[column.name],\n sortable: true,\n filterable: false,\n ...(column.kind !== undefined ? { kind: column.kind } : {}),\n ...(column.filterKey !== undefined ? { filterKey: column.filterKey } : {}),\n }));\n}\n\n/**\n * Builds the FilterBar controls for a described result, already wired to\n * `values`/`setValues`.\n *\n * Pure — it holds no state and fetches nothing; a `lookup` filter closes over\n * the caller's loader. Pass the result as DataTable's `externalFilters`\n * together with `manualFilter`, since the source has already applied it.\n *\n * Throws when a column declares a filter it cannot address: no `filterKey`, a\n * `filterKey` another column already claimed, or a second time range. Each\n * would bind a control to a filter that means something else.\n */\nexport function serverFiltersToFilterBar(\n columns: DataTableServerColumn[],\n values: DataTableFilterSelection,\n setValues: Dispatch<SetStateAction<DataTableFilterSelection>>,\n options: ServerFilterBarOptions = {},\n): ServerFilterConfig {\n const config: ServerFilterConfig = { filters: [] };\n const claimed = new Map<string, string>();\n\n for (const column of columns) {\n const filter = column.filter;\n if (!filter) continue;\n const filterKey = column.filterKey;\n if (!filterKey) {\n throw new Error(`Column ${column.name} declares a filter but no filterKey to send it under`);\n }\n const owner = claimed.get(filterKey);\n if (owner !== undefined) {\n throw new Error(\n `Columns ${owner} and ${column.name} both filter through ${filterKey}; a filter key addresses one column`,\n );\n }\n claimed.set(filterKey, column.name);\n\n const label = column.label ?? prettifyKey(column.name);\n // The bar's own range control is the primary way through a result, and a\n // result has one of those — so the first time column takes it and any\n // others are ranges among the filters. A raw SELECT commonly returns\n // created_at beside updated_at, and refusing the second one cost the whole\n // bar rather than just that column's control.\n if (filter.kind === \"time\" && !config.timeRange) {\n config.timeRange = buildTimeRange(filterKey, filter, values, setValues);\n continue;\n }\n config.filters.push(\n applyFilterExtensions(\n buildFilter({ column, filterKey, label, filter, values, setValues, options }),\n options.extensions,\n ),\n );\n }\n return config;\n}\n\ntype BuildArgs = {\n column: DataTableServerColumn;\n filterKey: string;\n label: string;\n filter: DataTableColumnFilter;\n values: DataTableFilterSelection;\n setValues: Dispatch<SetStateAction<DataTableFilterSelection>>;\n options: ServerFilterBarOptions;\n};\n\nfunction buildFilter(args: BuildArgs): FilterBarFilter {\n const { filterKey, label, filter, values, setValues } = args;\n const raw = values[filterKey] ?? \"\";\n const write = (serialized: string) =>\n setValues((current) => updateFilterSelection(current, filterKey, serialized));\n const shared = {\n key: filterKey,\n label,\n ...(filter.description !== undefined ? { description: filter.description } : {}),\n ...(filter.disabled !== undefined ? { disabled: filter.disabled } : {}),\n };\n\n switch (filter.kind) {\n case \"time\":\n return {\n ...shared,\n kind: \"date-range\",\n ...boundsToRange(parseBoundsValue(raw)),\n onApply: (from: string, to: string) =>\n write(serializeBoundsValue({ min: from, max: to })),\n ...(filter.presets !== undefined ? { presets: filter.presets } : {}),\n timeEnabled: true,\n };\n case \"range\":\n return {\n ...shared,\n kind: \"number\",\n value: parseBoundsValue(raw),\n onChange: (next: FilterBarNumberValue) => write(serializeBoundsValue(next)),\n ...(filter.min !== undefined ? { domainMin: filter.min } : {}),\n ...(filter.max !== undefined ? { domainMax: filter.max } : {}),\n ...(filter.step !== undefined ? { step: filter.step } : {}),\n };\n case \"boolean\":\n return {\n ...shared,\n kind: \"tristate\",\n value: raw === \"\" ? undefined : raw === \"true\",\n onChange: (next: TriState) => write(next === undefined ? \"\" : String(next)),\n };\n case \"text\":\n return {\n ...shared,\n kind: \"text\",\n value: raw,\n onChange: (next: string) => write(next),\n };\n default:\n return buildTermsFilter(args, shared, raw, write);\n }\n}\n\nfunction buildTermsFilter(\n { filter, options }: BuildArgs,\n shared: { key: string; label: string; description?: string; disabled?: boolean },\n raw: string,\n write: (serialized: string) => void,\n): FilterBarFilter {\n const lookupValues = options.lookupValues;\n // A selection with no options and no type-ahead has nothing to select from,\n // and a dropdown that opens empty is a control the user cannot use. The\n // grammar is the wire format either way, so typing \"a,b\" or \"!a\" into the\n // input still means what selecting them would have.\n if (!filter.lookup && (filter.options?.length ?? 0) === 0) {\n return { ...shared, kind: \"text\", value: raw, onChange: (next: string) => write(next) };\n }\n return {\n ...shared,\n kind: \"multi\",\n value: parseMultiFilterValue(raw),\n onChange: (next) => write(serializeMultiFilterValue(next)),\n options: (filter.options ?? []).map(toMultiSelectOption),\n ...(filter.truncated !== undefined ? { truncated: filter.truncated } : {}),\n ...(filter.total !== undefined ? { total: filter.total } : {}),\n // The field owns the in-flight flag from the promise this returns, so no\n // `loading` is passed: a second source of truth for it could disagree.\n ...(lookupValues && filter.lookup\n ? {\n onSearch: async (search: string) => {\n const result = await lookupValues({\n filterKey: shared.key,\n search,\n limit: DATA_TABLE_FILTER_LOOKUP_LIMIT,\n });\n return result.options.map(toMultiSelectOption);\n },\n }\n : {}),\n };\n}\n\nfunction buildTimeRange(\n filterKey: string,\n filter: DataTableColumnFilter,\n values: DataTableFilterSelection,\n setValues: Dispatch<SetStateAction<DataTableFilterSelection>>,\n): FilterBarRangeProps {\n return {\n ...boundsToRange(parseBoundsValue(values[filterKey] ?? \"\")),\n onApply: (from, to) =>\n setValues((current) =>\n updateFilterSelection(current, filterKey, serializeBoundsValue({ min: from, max: to })),\n ),\n ...(filter.presets !== undefined ? { presets: filter.presets } : {}),\n timeEnabled: true,\n };\n}\n\n/** Names a bounded selection's edges the way a range control reads them. */\nfunction boundsToRange(bounds: FilterBoundsValue): { from?: string; to?: string } {\n return {\n ...(bounds.min !== undefined ? { from: bounds.min } : {}),\n ...(bounds.max !== undefined ? { to: bounds.max } : {}),\n };\n}\n\nfunction toMultiSelectOption(option: DataTableFilterOption): MultiSelectOption {\n const label = option.label ?? option.value;\n return {\n value: option.value,\n label,\n ...(option.count !== undefined ? { title: `${label} · ${option.count.toLocaleString()}` } : {}),\n };\n}\n\n/**\n * Refuses a DataTable that would filter twice or offer a control wired to\n * nothing. Both are silent in a running table — rows narrow more than the user\n * asked, or a box swallows what they type — so they are refused at the seam.\n */\nexport function assertDataTableFilterProps(props: {\n autoFilter: boolean;\n manualFilter: boolean;\n showGlobalFilter: boolean;\n globalFilterControlled: boolean;\n hasExternalSearch: boolean;\n}): void {\n if (props.autoFilter && props.manualFilter) {\n throw new Error(\n \"DataTable: autoFilter generates filters that narrow rows locally, which manualFilter then suppresses — the controls would render and do nothing. Pass externalFilters instead.\",\n );\n }\n if (\n props.manualFilter &&\n props.showGlobalFilter &&\n !props.globalFilterControlled &&\n !props.hasExternalSearch\n ) {\n throw new Error(\n \"DataTable: manualFilter suppresses the built-in search's row narrowing, so showGlobalFilter needs globalFilter/onGlobalFilterChange or externalSearch to reach the source.\",\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-table-server-filters.js","sources":["../../src/data/data-table-server-filters.ts"],"sourcesContent":["import type { Dispatch, SetStateAction } from \"react\";\nimport type {\n FilterBarFilter,\n FilterBarNumberValue,\n FilterBarRangePreset,\n FilterBarRangeProps,\n} from \"../components/FilterBar\";\nimport type { FilterExtension } from \"../components/filter-bar-utils\";\nimport { applyFilterExtensions } from \"../components/filter-bar-utils\";\nimport type { MultiSelectOption } from \"../components/MultiSelect\";\nimport type { TriState } from \"../components/TriStateToggle\";\nimport { formatUnit } from \"../lib/format\";\nimport type { DataTableColumn, DataTableColumnKind } from \"./DataTable\";\nimport {\n parseBoundsValue,\n parseMultiFilterValue,\n serializeBoundsValue,\n serializeMultiFilterValue,\n updateFilterSelection,\n type DataTableFilterSelection,\n type FilterBoundsValue,\n} from \"./data-table-filter-values\";\nimport { prettifyKey } from \"./data-table-utils\";\n\n/**\n * Which control a filter renders as.\n *\n * Deliberately opaque: \"terms\" is not \"a SQL IN() or an OpenSearch terms\n * query\", it is \"a set of discrete values the user includes or excludes\". The\n * source compiles the selection; nothing about how it does so crosses into the\n * browser.\n */\nexport type DataTableFilterKind =\n | \"terms\"\n /** Whole values like \"terms\", but typed rather than picked — an identifier\n * has no list worth offering. */\n | \"exact\"\n | \"range\"\n /** A range over elapsed time, labelled in the column's own `unit`. */\n | \"duration\"\n | \"time\"\n /** A range over whole days: \"time\" with the clock taken off it. */\n | \"date\"\n | \"boolean\"\n | \"text\";\n\nexport type DataTableFilterOption = {\n /** Value written into the selection. */\n value: string;\n /** Display label. Falls back to `value`. */\n label?: string;\n /** How many rows carry this value, shown as a tooltip. */\n count?: number;\n};\n\nexport type DataTableColumnFilter = {\n kind: DataTableFilterKind;\n /** Head of the option set for kind:\"terms\". Empty relies on `lookup`. */\n options?: DataTableFilterOption[];\n /** True when `options` is a capped head of a larger set. */\n truncated?: boolean;\n /** Distinct count behind a truncated head; drives the \"… and N more\" hint. */\n total?: number;\n /** The source can answer a type-ahead for this filter. */\n lookup?: boolean;\n /** Slider domain for kind:\"range\". */\n min?: number;\n max?: number;\n step?: number;\n /** The unit a kind:\"duration\" bound is written in (\"ms\" or \"s\"), so the\n * control labels itself in the numbers the column is stored in. Absent\n * means milliseconds. */\n unit?: string;\n /** Range presets for kind:\"time\". */\n presets?: FilterBarRangePreset[];\n /** Helper text shown in the filter popover. */\n description?: string;\n disabled?: boolean;\n};\n\n/**\n * A result column as the source describes it: how to render it, and — when the\n * source can narrow on it — which filter parameter it binds to and what control\n * that filter is.\n *\n * `filterKey` need not equal `name`: an analyzed text field filters through an\n * exact-value sibling, and a computed column filters by the alias it was given.\n */\nexport type DataTableServerColumn = {\n /** Field name as the source knows it; also the literal row key. */\n name: string;\n /** Header label. Defaults to a prettified `name`. */\n label?: string;\n /** Backend type string, verbatim (e.g. \"TIMESTAMPTZ\", \"keyword\"). Display only. */\n databaseType?: string;\n /** Cell rendering kind. */\n kind?: DataTableColumnKind;\n /** Filter parameter this column narrows on. Absent means not filterable. */\n filterKey?: string;\n /** The control the filter renders as. Absent means not filterable. */\n filter?: DataTableColumnFilter;\n};\n\n/** Head-set size for a filter value type-ahead. */\nexport const DATA_TABLE_FILTER_LOOKUP_LIMIT = 20;\n\nexport type DataTableFilterLookupRequest = {\n /** Which filter is being searched — the column's `filterKey`. */\n filterKey: string;\n /** What the user typed. Empty asks for the head of the set. */\n search: string;\n /** How many options to return. */\n limit: number;\n};\n\nexport type DataTableFilterLookupResult = {\n options: DataTableFilterOption[];\n};\n\n/**\n * Answers a filter's value type-ahead. Sync or async — a static option source\n * returns an array, a server-backed one a promise.\n */\nexport type DataTableFilterLookup = (\n request: DataTableFilterLookupRequest,\n) => Promise<DataTableFilterLookupResult> | DataTableFilterLookupResult;\n\nexport type ServerFilterBarOptions = {\n /** Answers a terms type-ahead for filters whose `lookup` is set. */\n lookupValues?: DataTableFilterLookup;\n /** Decorators applied to each built filter (icons, relabelling). */\n extensions?: FilterExtension[];\n};\n\nexport type ServerFilterConfig = {\n filters: FilterBarFilter[];\n /** Present when exactly one column declared kind:\"time\". */\n timeRange?: FilterBarRangeProps;\n};\n\n/**\n * Turns the source's column description into DataTable columns.\n *\n * Every column gets a literal `accessor` — a raw result set has empty, dotted\n * and colliding names, none of which survive being read as a path — and\n * `filterable: false`, because a described result is filtered by the source and\n * never by cardinality guessed from one page.\n */\nexport function serverColumnsToDataTableColumns<T extends Record<string, unknown>>(\n columns: DataTableServerColumn[],\n): DataTableColumn<T>[] {\n return columns.map((column, index) => ({\n key: column.name === \"\" ? `column-${index}` : column.name,\n label: column.label ?? prettifyKey(column.name),\n accessor: (row: T) => row[column.name],\n sortable: true,\n filterable: false,\n ...(column.kind !== undefined ? { kind: column.kind } : {}),\n ...(column.filterKey !== undefined ? { filterKey: column.filterKey } : {}),\n }));\n}\n\n/**\n * Builds the FilterBar controls for a described result, already wired to\n * `values`/`setValues`.\n *\n * Pure — it holds no state and fetches nothing; a `lookup` filter closes over\n * the caller's loader. Pass the result as DataTable's `externalFilters`\n * together with `manualFilter`, since the source has already applied it.\n *\n * Throws when a column declares a filter it cannot address: no `filterKey`, a\n * `filterKey` another column already claimed, or a second time range. Each\n * would bind a control to a filter that means something else.\n */\nexport function serverFiltersToFilterBar(\n columns: DataTableServerColumn[],\n values: DataTableFilterSelection,\n setValues: Dispatch<SetStateAction<DataTableFilterSelection>>,\n options: ServerFilterBarOptions = {},\n): ServerFilterConfig {\n const config: ServerFilterConfig = { filters: [] };\n const claimed = new Map<string, string>();\n\n for (const column of columns) {\n const filter = column.filter;\n if (!filter) continue;\n const filterKey = column.filterKey;\n if (!filterKey) {\n throw new Error(`Column ${column.name} declares a filter but no filterKey to send it under`);\n }\n const owner = claimed.get(filterKey);\n if (owner !== undefined) {\n throw new Error(\n `Columns ${owner} and ${column.name} both filter through ${filterKey}; a filter key addresses one column`,\n );\n }\n claimed.set(filterKey, column.name);\n\n const label = column.label ?? prettifyKey(column.name);\n // The bar's own range control is the primary way through a result, and a\n // result has one of those — so the first time column takes it and any\n // others are ranges among the filters. A raw SELECT commonly returns\n // created_at beside updated_at, and refusing the second one cost the whole\n // bar rather than just that column's control.\n if (filter.kind === \"time\" && !config.timeRange) {\n config.timeRange = buildTimeRange(filterKey, filter, values, setValues);\n continue;\n }\n config.filters.push(\n applyFilterExtensions(\n buildFilter({ column, filterKey, label, filter, values, setValues, options }),\n options.extensions,\n ),\n );\n }\n return config;\n}\n\ntype BuildArgs = {\n column: DataTableServerColumn;\n filterKey: string;\n label: string;\n filter: DataTableColumnFilter;\n values: DataTableFilterSelection;\n setValues: Dispatch<SetStateAction<DataTableFilterSelection>>;\n options: ServerFilterBarOptions;\n};\n\nfunction buildFilter(args: BuildArgs): FilterBarFilter {\n const { filterKey, label, filter, values, setValues } = args;\n const raw = values[filterKey] ?? \"\";\n const write = (serialized: string) =>\n setValues((current) => updateFilterSelection(current, filterKey, serialized));\n const shared = {\n key: filterKey,\n label,\n ...(filter.description !== undefined ? { description: filter.description } : {}),\n ...(filter.disabled !== undefined ? { disabled: filter.disabled } : {}),\n };\n\n switch (filter.kind) {\n case \"time\":\n // A date range is the same two-edged control with the clock taken off it,\n // so it shares every line below except timeEnabled.\n case \"date\":\n return {\n ...shared,\n kind: \"date-range\",\n ...boundsToRange(parseBoundsValue(raw)),\n onApply: (from: string, to: string) =>\n write(serializeBoundsValue({ min: from, max: to })),\n ...(filter.presets !== undefined ? { presets: filter.presets } : {}),\n timeEnabled: filter.kind === \"time\",\n };\n case \"range\":\n // A duration is a range that knows what its numbers mean, so it differs\n // only in how the slider labels them.\n case \"duration\":\n return {\n ...shared,\n kind: \"number\",\n value: parseBoundsValue(raw),\n onChange: (next: FilterBarNumberValue) => write(serializeBoundsValue(next)),\n ...(filter.min !== undefined ? { domainMin: filter.min } : {}),\n ...(filter.max !== undefined ? { domainMax: filter.max } : {}),\n ...(filter.step !== undefined ? { step: filter.step } : {}),\n ...(filter.kind === \"duration\"\n ? { formatValue: (value: number) => formatUnit(value, filter.unit || \"ms\") }\n : {}),\n };\n // An exact match has nothing to enumerate, which is what buildTermsFilter\n // already falls back to for a selection that turned out to have no values.\n // Declaring it says so up front rather than arriving there by exhaustion.\n case \"exact\":\n return { ...shared, kind: \"text\", value: raw, onChange: (next: string) => write(next) };\n case \"boolean\":\n return {\n ...shared,\n kind: \"tristate\",\n value: raw === \"\" ? undefined : raw === \"true\",\n onChange: (next: TriState) => write(next === undefined ? \"\" : String(next)),\n };\n case \"text\":\n return {\n ...shared,\n kind: \"text\",\n value: raw,\n onChange: (next: string) => write(next),\n };\n default:\n return buildTermsFilter(args, shared, raw, write);\n }\n}\n\nfunction buildTermsFilter(\n { filter, options }: BuildArgs,\n shared: { key: string; label: string; description?: string; disabled?: boolean },\n raw: string,\n write: (serialized: string) => void,\n): FilterBarFilter {\n const lookupValues = options.lookupValues;\n // A selection with no options and no type-ahead has nothing to select from,\n // and a dropdown that opens empty is a control the user cannot use. The\n // grammar is the wire format either way, so typing \"a,b\" or \"!a\" into the\n // input still means what selecting them would have.\n if (!filter.lookup && (filter.options?.length ?? 0) === 0) {\n return { ...shared, kind: \"text\", value: raw, onChange: (next: string) => write(next) };\n }\n return {\n ...shared,\n kind: \"multi\",\n value: parseMultiFilterValue(raw),\n onChange: (next) => write(serializeMultiFilterValue(next)),\n options: (filter.options ?? []).map(toMultiSelectOption),\n ...(filter.truncated !== undefined ? { truncated: filter.truncated } : {}),\n ...(filter.total !== undefined ? { total: filter.total } : {}),\n // The field owns the in-flight flag from the promise this returns, so no\n // `loading` is passed: a second source of truth for it could disagree.\n ...(lookupValues && filter.lookup\n ? {\n onSearch: async (search: string) => {\n const result = await lookupValues({\n filterKey: shared.key,\n search,\n limit: DATA_TABLE_FILTER_LOOKUP_LIMIT,\n });\n return result.options.map(toMultiSelectOption);\n },\n }\n : {}),\n };\n}\n\nfunction buildTimeRange(\n filterKey: string,\n filter: DataTableColumnFilter,\n values: DataTableFilterSelection,\n setValues: Dispatch<SetStateAction<DataTableFilterSelection>>,\n): FilterBarRangeProps {\n return {\n ...boundsToRange(parseBoundsValue(values[filterKey] ?? \"\")),\n onApply: (from, to) =>\n setValues((current) =>\n updateFilterSelection(current, filterKey, serializeBoundsValue({ min: from, max: to })),\n ),\n ...(filter.presets !== undefined ? { presets: filter.presets } : {}),\n timeEnabled: true,\n };\n}\n\n/** Names a bounded selection's edges the way a range control reads them. */\nfunction boundsToRange(bounds: FilterBoundsValue): { from?: string; to?: string } {\n return {\n ...(bounds.min !== undefined ? { from: bounds.min } : {}),\n ...(bounds.max !== undefined ? { to: bounds.max } : {}),\n };\n}\n\nfunction toMultiSelectOption(option: DataTableFilterOption): MultiSelectOption {\n const label = option.label ?? option.value;\n return {\n value: option.value,\n label,\n ...(option.count !== undefined ? { title: `${label} · ${option.count.toLocaleString()}` } : {}),\n };\n}\n\n/**\n * Refuses a DataTable that would filter twice or offer a control wired to\n * nothing. Both are silent in a running table — rows narrow more than the user\n * asked, or a box swallows what they type — so they are refused at the seam.\n */\nexport function assertDataTableFilterProps(props: {\n autoFilter: boolean;\n manualFilter: boolean;\n showGlobalFilter: boolean;\n globalFilterControlled: boolean;\n hasExternalSearch: boolean;\n}): void {\n if (props.autoFilter && props.manualFilter) {\n throw new Error(\n \"DataTable: autoFilter generates filters that narrow rows locally, which manualFilter then suppresses — the controls would render and do nothing. Pass externalFilters instead.\",\n );\n }\n if (\n props.manualFilter &&\n props.showGlobalFilter &&\n !props.globalFilterControlled &&\n !props.hasExternalSearch\n ) {\n throw new Error(\n \"DataTable: manualFilter suppresses the built-in search's row narrowing, so showGlobalFilter needs globalFilter/onGlobalFilterChange or externalSearch to reach the source.\",\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -37,6 +37,7 @@ function DiagnosticsDetailPanel({
37
37
  onCollectStack,
38
38
  runMeta,
39
39
  resolveSource,
40
+ frameActions,
40
41
  headerActions,
41
42
  singleItem
42
43
  }) {
@@ -98,7 +99,8 @@ function DiagnosticsDetailPanel({
98
99
  collectBusy: collectBusy ?? false,
99
100
  singleItem: singleItem ?? false,
100
101
  ...onCollectStack ? { onCollectStack } : {},
101
- ...resolveSource ? { resolveSource } : {}
102
+ ...resolveSource ? { resolveSource } : {},
103
+ ...frameActions ? { frameActions } : {}
102
104
  }
103
105
  ) })
104
106
  ] });
@@ -188,6 +190,7 @@ function StackBlock(props) {
188
190
  collectBusy,
189
191
  onCollectStack,
190
192
  resolveSource,
193
+ frameActions,
191
194
  singleItem
192
195
  } = props;
193
196
  const stack = process.stack_capture;
@@ -337,7 +340,8 @@ function StackBlock(props) {
337
340
  thread: t,
338
341
  search,
339
342
  hideRuntimeOnly,
340
- ...resolveSource ? { resolveSource } : {}
343
+ ...resolveSource ? { resolveSource } : {},
344
+ ...frameActions ? { frameActions } : {}
341
345
  },
342
346
  t.id
343
347
  )),
@@ -1 +1 @@
1
- {"version":3,"file":"DiagnosticsDetailPanel.cjs","sources":["../../../src/data/diagnostics/DiagnosticsDetailPanel.tsx"],"sourcesContent":["import { useEffect, useMemo, useState, type ReactNode } from \"react\";\nimport { Icon } from \"../Icon\";\nimport type { GaugeTone } from \"../Gauge\";\nimport { UiDebug, UiDebugSmall, UiRefresh, UiSearch, UiServerProcess, UiLoader } from \"../../icons\";\nimport type { ProcessNode, RunMeta } from \"./types\";\nimport { formatBytes, processLabel, processStateColor, processStateIcon } from \"./utils\";\nimport { countStackByState, parseStackDump, type ParsedStack } from \"./stacktrace\";\nimport { GoroutineCard } from \"./GoroutineCard\";\nimport { ThreadCard } from \"./ThreadCard\";\nimport { goroutineStateDot, threadStateDot } from \"./state-styles\";\nimport type { JvmFrameSourceResolver } from \"./JvmStackTrace\";\n\nconst STACK_MIN_LINES = 10;\nconst STACK_LINE_HEIGHT_REM = 1;\nconst STACK_MIN_HEIGHT = `${STACK_MIN_LINES * STACK_LINE_HEIGHT_REM}rem`;\n\nfunction cpuTone(pct: number): GaugeTone {\n if (pct >= 90) return \"danger\";\n if (pct >= 60) return \"warning\";\n if (pct > 0) return \"success\";\n return \"neutral\";\n}\n\nfunction memoryTone(rss: number | undefined, vms: number | undefined): GaugeTone {\n if (!rss || !vms) return \"neutral\";\n const ratio = rss / vms;\n if (ratio >= 0.9) return \"danger\";\n if (ratio >= 0.6) return \"warning\";\n return \"info\";\n}\n\nexport type DiagnosticsDetailPanelProps = {\n /** Selected process; null renders the empty selection state. */\n process: ProcessNode | null;\n /** Shows loading state while stack capture is being collected. */\n collectBusy?: boolean;\n /** Called when the user requests a fresh stack capture. */\n onCollectStack?: (pid: number) => void | Promise<void>;\n /** Optional run metadata rendered above diagnostics. */\n runMeta?: RunMeta;\n /**\n * Optional resolver that supplies inline source under each JVM stack frame,\n * so the rendered thread dump can be augmented in place (e.g. with decompiled\n * source). A missing class must resolve to undefined, never throw.\n */\n resolveSource?: JvmFrameSourceResolver;\n /**\n * Caller-supplied action buttons rendered right-aligned in the header row,\n * next to the title and Refresh. Use for download/decompile-style actions.\n */\n headerActions?: ReactNode;\n /**\n * The capture holds a single, already-selected item (e.g. one thread the\n * caller picked from its own list). Suppresses the redundant per-item filter\n * UI (search box, state chips, hide-runtime, count) and lifts Refresh into\n * the header row so the detail view shows just that item's frames.\n */\n singleItem?: boolean;\n};\n\nexport function DiagnosticsDetailPanel({\n process,\n collectBusy,\n onCollectStack,\n runMeta,\n resolveSource,\n headerActions,\n singleItem,\n}: DiagnosticsDetailPanelProps) {\n const [search, setSearch] = useState(\"\");\n const [selectedStates, setSelectedStates] = useState<Set<string>>(new Set());\n const [hideRuntimeOnly, setHideRuntimeOnly] = useState(true);\n const stack = process?.stack_capture;\n const parsed = useMemo<ParsedStack>(() => parseStackDump(stack?.text || \"\"), [stack?.text]);\n const stateCounts = useMemo(() => countStackByState(parsed), [parsed]);\n const filtered = useMemo(() => {\n const needle = search.trim().toLowerCase();\n const items: Array<{\n state: string;\n userFrameCount: number;\n searchText: string;\n }> = parsed.format === \"jvm\" ? parsed.threads : parsed.format === \"go\" ? parsed.goroutines : [];\n if (singleItem) return items;\n return items.filter((item) => {\n if (selectedStates.size > 0 && !selectedStates.has(item.state)) return false;\n if (hideRuntimeOnly && item.userFrameCount === 0) return false;\n if (needle && !item.searchText.includes(needle)) return false;\n return true;\n });\n }, [parsed, search, selectedStates, hideRuntimeOnly, singleItem]);\n\n useEffect(() => {\n setSearch(\"\");\n setSelectedStates(new Set());\n setHideRuntimeOnly(true);\n }, [stack?.text, process?.pid]);\n\n if (!process) {\n return (\n <div className=\"flex items-center justify-center h-full text-muted-foreground text-sm\">\n <div className=\"text-center\">\n <Icon icon={UiServerProcess} className=\"text-4xl mb-density-2\" />\n <div>Select a process to view diagnostics</div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full min-h-0 flex flex-col gap-density-3 p-density-4\">\n <Header\n process={process}\n actions={\n <div className=\"flex items-center gap-density-2\">\n {singleItem && onCollectStack && (\n <CollectButton pid={process.pid} busy={collectBusy ?? false} onClick={onCollectStack} />\n )}\n {headerActions}\n </div>\n }\n />\n {runMeta && <RunSection runMeta={runMeta} />}\n {process.command && (\n <PanelSection title=\"Command\">\n <pre className=\"text-xs text-foreground whitespace-pre-wrap font-mono bg-blue-50 dark:bg-blue-500/10 rounded p-2 break-all\">\n {process.command}\n </pre>\n </PanelSection>\n )}\n\n <PanelSection title=\"Metrics\">\n <ProcessMetrics process={process} />\n </PanelSection>\n\n <PanelSection title=\"Stack\" grow>\n <StackBlock\n process={process}\n parsed={parsed}\n stateCounts={stateCounts}\n filtered={filtered}\n search={search}\n setSearch={setSearch}\n selectedStates={selectedStates}\n setSelectedStates={setSelectedStates}\n hideRuntimeOnly={hideRuntimeOnly}\n setHideRuntimeOnly={setHideRuntimeOnly}\n collectBusy={collectBusy ?? false}\n singleItem={singleItem ?? false}\n {...(onCollectStack ? { onCollectStack } : {})}\n {...(resolveSource ? { resolveSource } : {})}\n />\n </PanelSection>\n </div>\n );\n}\n\nfunction Header({ process, actions }: { process: ProcessNode; actions?: ReactNode }) {\n return (\n <div className=\"flex items-start justify-between gap-density-3\">\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-density-2 flex-wrap\">\n <Icon\n icon={process.is_root ? UiServerProcess : UiDebug}\n className=\"text-2xl text-blue-600\"\n />\n <h2 className=\"text-lg font-bold text-foreground break-words\">{processLabel(process)}</h2>\n {process.status ? (\n <span\n className={`inline-flex items-center gap-1 rounded-full bg-muted px-2 py-0.5 text-xs ${processStateColor(\n process.status,\n )}`}\n >\n <Icon icon={processStateIcon(process.status)} />\n {process.status}\n </span>\n ) : null}\n </div>\n <div className=\"mt-1 flex items-center gap-density-2 flex-wrap text-xs text-muted-foreground\">\n <span className=\"font-mono\">pid {process.pid}</span>\n {process.ppid ? <span className=\"font-mono\">ppid {process.ppid}</span> : null}\n </div>\n </div>\n {actions ? <div className=\"shrink-0\">{actions}</div> : null}\n </div>\n );\n}\n\nfunction RunSection({ runMeta }: { runMeta: RunMeta }) {\n return (\n <PanelSection title=\"Run\">\n <div className=\"grid grid-cols-2 gap-density-2 text-sm\">\n <InfoTile\n label={runMeta.kind === \"rerun\" ? `Rerun #${runMeta.sequence}` : \"Initial run\"}\n value={runMeta.started ? new Date(runMeta.started).toLocaleString() : \"Unavailable\"}\n />\n <InfoTile\n label=\"Finished\"\n value={runMeta.ended ? new Date(runMeta.ended).toLocaleString() : \"In progress\"}\n />\n </div>\n </PanelSection>\n );\n}\n\ntype StackFilterItem = {\n state: string;\n userFrameCount: number;\n searchText: string;\n};\n\ntype StackBlockProps = {\n process: ProcessNode;\n parsed: ParsedStack;\n stateCounts: Map<string, number>;\n filtered: StackFilterItem[];\n search: string;\n setSearch: (v: string) => void;\n selectedStates: Set<string>;\n setSelectedStates: (updater: (prev: Set<string>) => Set<string>) => void;\n hideRuntimeOnly: boolean;\n setHideRuntimeOnly: (v: boolean) => void;\n collectBusy?: boolean;\n onCollectStack?: (pid: number) => void | Promise<void>;\n resolveSource?: JvmFrameSourceResolver;\n singleItem?: boolean;\n};\n\nfunction stackItemCount(parsed: ParsedStack): number {\n if (parsed.format === \"jvm\") return parsed.threads.length;\n if (parsed.format === \"go\") return parsed.goroutines.length;\n return 0;\n}\n\nfunction stackItemLabel(parsed: ParsedStack): string {\n if (parsed.format === \"jvm\") return \"threads\";\n if (parsed.format === \"go\") return \"goroutines\";\n return \"frames\";\n}\n\nfunction stackStateDot(parsed: ParsedStack, state: string): string {\n return parsed.format === \"jvm\" ? threadStateDot(state) : goroutineStateDot(state);\n}\n\nfunction StackBlock(props: StackBlockProps) {\n const {\n process,\n parsed,\n stateCounts,\n filtered,\n search,\n setSearch,\n selectedStates,\n setSelectedStates,\n hideRuntimeOnly,\n setHideRuntimeOnly,\n collectBusy,\n onCollectStack,\n resolveSource,\n singleItem,\n } = props;\n const stack = process.stack_capture;\n\n if (!stack?.text) {\n return (\n <div className=\"h-full min-h-[14rem] flex flex-col justify-center gap-density-3 p-density-3\">\n <div className=\"space-y-1.5\">\n <div\n className={`h-3 w-40 rounded ${collectBusy ? \"animate-pulse bg-muted\" : \"bg-muted/70\"}`}\n />\n <div\n className={`h-3 w-full rounded ${collectBusy ? \"animate-pulse bg-muted\" : \"bg-muted/70\"}`}\n />\n <div\n className={`h-3 w-5/6 rounded ${collectBusy ? \"animate-pulse bg-muted\" : \"bg-muted/70\"}`}\n />\n </div>\n <div className=\"flex items-center justify-between gap-density-3\">\n <div className=\"text-sm text-muted-foreground\">\n {stack?.error\n ? stack.error\n : collectBusy\n ? \"Collecting stack trace...\"\n : \"No stack trace collected yet.\"}\n </div>\n {onCollectStack && (\n <CollectButton\n pid={process.pid}\n busy={collectBusy ?? false}\n onClick={onCollectStack}\n primary\n />\n )}\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full min-h-0 flex flex-col\">\n {!singleItem && (\n <div className=\"px-1 py-1.5 space-y-density-2\">\n <div className=\"flex items-center justify-between gap-density-2 text-[11px] text-muted-foreground flex-wrap\">\n <div className=\"flex items-center gap-density-2 flex-wrap\">\n <StackStatusBadge status={stack.status} />\n {stack.collected_at && <span>{new Date(stack.collected_at).toLocaleString()}</span>}\n {stackItemCount(parsed) > 0 && (\n <span>\n {filtered.length} / {stackItemCount(parsed)} {stackItemLabel(parsed)}\n </span>\n )}\n </div>\n {onCollectStack && (\n <CollectButton pid={process.pid} busy={collectBusy ?? false} onClick={onCollectStack} />\n )}\n </div>\n {stackItemCount(parsed) > 0 && (\n <>\n <div className=\"flex items-center gap-1.5 flex-wrap\">\n <div className=\"relative min-w-[14rem] flex-1\">\n <Icon\n icon={UiSearch}\n className=\"absolute left-2 top-1/2 -translate-y-1/2 text-muted-foreground text-xs\"\n />\n <input\n className=\"w-full rounded-md border border-border bg-muted/50 py-1 pl-7 pr-2 text-xs outline-none focus:border-primary focus:bg-background\"\n placeholder={\n parsed.format === \"jvm\"\n ? \"Filter by thread name, function, or file\"\n : \"Filter by goroutine id, function, or file\"\n }\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n />\n </div>\n <label className=\"inline-flex items-center gap-1.5 rounded-md border border-border bg-muted/50 px-2 py-1 text-[11px] text-muted-foreground\">\n <input\n type=\"checkbox\"\n checked={hideRuntimeOnly}\n onChange={(e) => setHideRuntimeOnly(e.target.checked)}\n />\n Hide runtime-only\n </label>\n {(search || selectedStates.size > 0 || !hideRuntimeOnly) && (\n <button\n className=\"text-[11px] text-muted-foreground hover:text-foreground\"\n onClick={() => {\n setSearch(\"\");\n setSelectedStates(() => new Set());\n setHideRuntimeOnly(true);\n }}\n >\n Clear\n </button>\n )}\n </div>\n <div className=\"flex items-center gap-1 flex-wrap\">\n {Array.from(stateCounts.entries())\n .sort((a, b) => b[1] - a[1])\n .map(([state, count]) => {\n const active = selectedStates.has(state);\n return (\n <button\n key={state}\n className={`inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-[11px] transition-colors ${\n active\n ? \"border-primary bg-primary/10 text-primary\"\n : \"border-border bg-muted/50 text-muted-foreground hover:bg-background\"\n }`}\n onClick={() => {\n setSelectedStates((prev) => {\n const next = new Set(prev);\n if (next.has(state)) next.delete(state);\n else next.add(state);\n return next;\n });\n }}\n >\n <span className={`h-2 w-2 rounded-full ${stackStateDot(parsed, state)}`} />\n {state}\n <span className=\"text-[10px] opacity-70\">{count}</span>\n </button>\n );\n })}\n </div>\n </>\n )}\n </div>\n )}\n {stack.error && (\n <div className=\"mt-density-2 text-xs text-red-600 whitespace-pre-wrap\">{stack.error}</div>\n )}\n {stackItemCount(parsed) === 0 ? (\n <pre\n className=\"flex-1 min-h-0 overflow-auto py-1 text-[11px] text-foreground whitespace-pre-wrap font-mono leading-4\"\n style={{ minHeight: STACK_MIN_HEIGHT }}\n >\n {stack.text}\n </pre>\n ) : (\n <div\n className=\"flex-1 min-h-0 overflow-auto py-1 space-y-1\"\n style={{ minHeight: STACK_MIN_HEIGHT }}\n >\n {filtered.length === 0 && (\n <div className=\"py-density-3 text-center text-xs text-muted-foreground\">\n No {stackItemLabel(parsed)} match the current filters.\n </div>\n )}\n {parsed.format === \"jvm\" &&\n parsed.threads\n .filter((t) => filtered.includes(t))\n .map((t) => (\n <ThreadCard\n key={t.id}\n thread={t}\n search={search}\n hideRuntimeOnly={hideRuntimeOnly}\n {...(resolveSource ? { resolveSource } : {})}\n />\n ))}\n {parsed.format === \"go\" &&\n parsed.goroutines\n .filter((g) => filtered.includes(g))\n .map((goroutine) => (\n <GoroutineCard\n key={goroutine.id}\n goroutine={goroutine}\n search={search}\n hideRuntimeOnly={hideRuntimeOnly}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\nfunction StackStatusBadge({ status }: { status: string }) {\n const cls =\n status === \"ready\"\n ? \"bg-green-100 text-green-700 dark:bg-green-500/20 dark:text-green-300\"\n : status === \"unsupported\"\n ? \"bg-yellow-100 text-yellow-700 dark:bg-yellow-500/20 dark:text-yellow-300\"\n : \"bg-red-100 text-red-700 dark:bg-red-500/20 dark:text-red-300\";\n return <span className={`px-2 py-0.5 rounded-full ${cls}`}>{status}</span>;\n}\n\nfunction CollectButton({\n pid,\n busy,\n onClick,\n primary,\n}: {\n pid: number;\n busy?: boolean;\n onClick: (pid: number) => void | Promise<void>;\n primary?: boolean;\n}) {\n const base =\n \"shrink-0 text-[11px] px-2 py-1 rounded disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-1\";\n const style = primary\n ? \"bg-primary text-primary-foreground hover:bg-primary/90\"\n : \"border border-border text-muted-foreground hover:bg-accent\";\n return (\n <button\n className={`${base} ${style}`}\n onClick={() => onClick(pid)}\n disabled={busy}\n title={primary ? \"Collect the latest stack trace\" : \"Refresh stack trace\"}\n >\n <Icon icon={busy ? UiLoader : primary ? UiDebugSmall : UiRefresh} />\n {busy ? \"Collecting...\" : primary ? \"Collect stack trace\" : \"Refresh\"}\n </button>\n );\n}\n\nfunction PanelSection({\n title,\n grow,\n children,\n}: {\n title: string;\n grow?: boolean;\n children: ReactNode;\n}) {\n return (\n <section className={grow ? \"flex min-h-0 flex-1 flex-col\" : \"\"}>\n <div className=\"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground mb-1.5\">\n {title}\n </div>\n {grow ? <div className=\"flex-1 min-h-0 overflow-hidden\">{children}</div> : children}\n </section>\n );\n}\n\nfunction InfoTile({ label, value }: { label: string; value: string }) {\n return (\n <div className=\"border border-border rounded-lg bg-muted/50 px-2.5 py-density-2\">\n <div className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">{label}</div>\n <div className=\"text-xs font-medium text-foreground mt-0.5\">{value}</div>\n </div>\n );\n}\n\nfunction ProcessMetrics({ process }: { process: ProcessNode }) {\n const cpu = process.cpu_percent || 0;\n const rss = process.rss;\n const vms = process.vms;\n const memRatioPct = rss && vms && vms > 0 ? Math.min(100, Math.round((rss / vms) * 100)) : 0;\n return (\n <div className=\"grid grid-cols-4 gap-density-1\">\n <MetricTile\n label=\"CPU\"\n value={`${cpu.toFixed(1)}%`}\n barPct={Math.min(100, cpu)}\n tone={cpuTone(cpu)}\n />\n <MetricTile\n label=\"RSS\"\n value={rss !== undefined ? formatBytes(rss) : \"n/a\"}\n barPct={memRatioPct}\n tone={memoryTone(rss, vms)}\n />\n <MetricTile label=\"VMS\" value={vms !== undefined ? formatBytes(vms) : \"n/a\"} tone=\"neutral\" />\n <MetricTile\n label=\"Files\"\n value={process.open_files !== undefined ? String(process.open_files) : \"n/a\"}\n barPct={process.open_files ? Math.min(100, (process.open_files / 1024) * 100) : 0}\n tone=\"info\"\n />\n </div>\n );\n}\n\nfunction MetricTile({\n label,\n value,\n barPct,\n tone = \"neutral\",\n}: {\n label: string;\n value: string;\n barPct?: number;\n tone?: GaugeTone;\n}) {\n const toneBar: Record<GaugeTone, string> = {\n neutral: \"bg-muted-foreground/40\",\n success: \"bg-green-500\",\n warning: \"bg-yellow-500\",\n danger: \"bg-red-500\",\n info: \"bg-blue-500\",\n };\n const toneText: Record<GaugeTone, string> = {\n neutral: \"text-foreground\",\n success: \"text-green-600 dark:text-green-400\",\n warning: \"text-yellow-600 dark:text-yellow-400\",\n danger: \"text-red-600 dark:text-red-400\",\n info: \"text-blue-600 dark:text-blue-400\",\n };\n return (\n <div className=\"flex flex-col gap-0.5 rounded-md border border-border bg-background px-density-2 py-1 min-w-0\">\n <span className=\"text-[9px] uppercase tracking-wide text-muted-foreground leading-none\">\n {label}\n </span>\n <span className={`text-xs font-semibold tabular-nums truncate ${toneText[tone]}`}>\n {value}\n </span>\n {barPct !== undefined && (\n <div className=\"h-0.5 w-full rounded-full bg-muted overflow-hidden\">\n <div\n className={`h-full ${toneBar[tone]} transition-all duration-300`}\n style={{ width: `${barPct}%` }}\n />\n </div>\n )}\n </div>\n );\n}\n"],"names":["useState","useMemo","parseStackDump","countStackByState","useEffect","jsxs","jsx","Icon","UiServerProcess","UiDebug","processLabel","processStateColor","processStateIcon","threadStateDot","goroutineStateDot","Fragment","UiSearch","ThreadCard","GoroutineCard","UiLoader","UiDebugSmall","UiRefresh","formatBytes"],"mappings":"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"}
1
+ {"version":3,"file":"DiagnosticsDetailPanel.cjs","sources":["../../../src/data/diagnostics/DiagnosticsDetailPanel.tsx"],"sourcesContent":["import { useEffect, useMemo, useState, type ReactNode } from \"react\";\nimport { Icon } from \"../Icon\";\nimport type { GaugeTone } from \"../Gauge\";\nimport { UiDebug, UiDebugSmall, UiRefresh, UiSearch, UiServerProcess, UiLoader } from \"../../icons\";\nimport type { ProcessNode, RunMeta } from \"./types\";\nimport { formatBytes, processLabel, processStateColor, processStateIcon } from \"./utils\";\nimport { countStackByState, parseStackDump, type ParsedStack } from \"./stacktrace\";\nimport { GoroutineCard } from \"./GoroutineCard\";\nimport { ThreadCard } from \"./ThreadCard\";\nimport type { StackFrameActions } from \"./StackFrameRow\";\nimport { goroutineStateDot, threadStateDot } from \"./state-styles\";\nimport type { JvmFrameSourceResolver } from \"./JvmStackTrace\";\n\nconst STACK_MIN_LINES = 10;\nconst STACK_LINE_HEIGHT_REM = 1;\nconst STACK_MIN_HEIGHT = `${STACK_MIN_LINES * STACK_LINE_HEIGHT_REM}rem`;\n\nfunction cpuTone(pct: number): GaugeTone {\n if (pct >= 90) return \"danger\";\n if (pct >= 60) return \"warning\";\n if (pct > 0) return \"success\";\n return \"neutral\";\n}\n\nfunction memoryTone(rss: number | undefined, vms: number | undefined): GaugeTone {\n if (!rss || !vms) return \"neutral\";\n const ratio = rss / vms;\n if (ratio >= 0.9) return \"danger\";\n if (ratio >= 0.6) return \"warning\";\n return \"info\";\n}\n\nexport type DiagnosticsDetailPanelProps = {\n /** Selected process; null renders the empty selection state. */\n process: ProcessNode | null;\n /** Shows loading state while stack capture is being collected. */\n collectBusy?: boolean;\n /** Called when the user requests a fresh stack capture. */\n onCollectStack?: (pid: number) => void | Promise<void>;\n /** Optional run metadata rendered above diagnostics. */\n runMeta?: RunMeta;\n /**\n * Optional resolver that supplies inline source under each JVM stack frame,\n * so the rendered thread dump can be augmented in place (e.g. with decompiled\n * source). A missing class must resolve to undefined, never throw.\n */\n resolveSource?: JvmFrameSourceResolver;\n /**\n * Optional trailing actions rendered on each stack frame, revealed on hover.\n * Lets a host app hang per-frame affordances (trace/watch/decompile) off the\n * rendered thread dump.\n */\n frameActions?: StackFrameActions;\n /**\n * Caller-supplied action buttons rendered right-aligned in the header row,\n * next to the title and Refresh. Use for download/decompile-style actions.\n */\n headerActions?: ReactNode;\n /**\n * The capture holds a single, already-selected item (e.g. one thread the\n * caller picked from its own list). Suppresses the redundant per-item filter\n * UI (search box, state chips, hide-runtime, count) and lifts Refresh into\n * the header row so the detail view shows just that item's frames.\n */\n singleItem?: boolean;\n};\n\nexport function DiagnosticsDetailPanel({\n process,\n collectBusy,\n onCollectStack,\n runMeta,\n resolveSource,\n frameActions,\n headerActions,\n singleItem,\n}: DiagnosticsDetailPanelProps) {\n const [search, setSearch] = useState(\"\");\n const [selectedStates, setSelectedStates] = useState<Set<string>>(new Set());\n const [hideRuntimeOnly, setHideRuntimeOnly] = useState(true);\n const stack = process?.stack_capture;\n const parsed = useMemo<ParsedStack>(() => parseStackDump(stack?.text || \"\"), [stack?.text]);\n const stateCounts = useMemo(() => countStackByState(parsed), [parsed]);\n const filtered = useMemo(() => {\n const needle = search.trim().toLowerCase();\n const items: Array<{\n state: string;\n userFrameCount: number;\n searchText: string;\n }> = parsed.format === \"jvm\" ? parsed.threads : parsed.format === \"go\" ? parsed.goroutines : [];\n if (singleItem) return items;\n return items.filter((item) => {\n if (selectedStates.size > 0 && !selectedStates.has(item.state)) return false;\n if (hideRuntimeOnly && item.userFrameCount === 0) return false;\n if (needle && !item.searchText.includes(needle)) return false;\n return true;\n });\n }, [parsed, search, selectedStates, hideRuntimeOnly, singleItem]);\n\n useEffect(() => {\n setSearch(\"\");\n setSelectedStates(new Set());\n setHideRuntimeOnly(true);\n }, [stack?.text, process?.pid]);\n\n if (!process) {\n return (\n <div className=\"flex items-center justify-center h-full text-muted-foreground text-sm\">\n <div className=\"text-center\">\n <Icon icon={UiServerProcess} className=\"text-4xl mb-density-2\" />\n <div>Select a process to view diagnostics</div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full min-h-0 flex flex-col gap-density-3 p-density-4\">\n <Header\n process={process}\n actions={\n <div className=\"flex items-center gap-density-2\">\n {singleItem && onCollectStack && (\n <CollectButton pid={process.pid} busy={collectBusy ?? false} onClick={onCollectStack} />\n )}\n {headerActions}\n </div>\n }\n />\n {runMeta && <RunSection runMeta={runMeta} />}\n {process.command && (\n <PanelSection title=\"Command\">\n <pre className=\"text-xs text-foreground whitespace-pre-wrap font-mono bg-blue-50 dark:bg-blue-500/10 rounded p-2 break-all\">\n {process.command}\n </pre>\n </PanelSection>\n )}\n\n <PanelSection title=\"Metrics\">\n <ProcessMetrics process={process} />\n </PanelSection>\n\n <PanelSection title=\"Stack\" grow>\n <StackBlock\n process={process}\n parsed={parsed}\n stateCounts={stateCounts}\n filtered={filtered}\n search={search}\n setSearch={setSearch}\n selectedStates={selectedStates}\n setSelectedStates={setSelectedStates}\n hideRuntimeOnly={hideRuntimeOnly}\n setHideRuntimeOnly={setHideRuntimeOnly}\n collectBusy={collectBusy ?? false}\n singleItem={singleItem ?? false}\n {...(onCollectStack ? { onCollectStack } : {})}\n {...(resolveSource ? { resolveSource } : {})}\n {...(frameActions ? { frameActions } : {})}\n />\n </PanelSection>\n </div>\n );\n}\n\nfunction Header({ process, actions }: { process: ProcessNode; actions?: ReactNode }) {\n return (\n <div className=\"flex items-start justify-between gap-density-3\">\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-density-2 flex-wrap\">\n <Icon\n icon={process.is_root ? UiServerProcess : UiDebug}\n className=\"text-2xl text-blue-600\"\n />\n <h2 className=\"text-lg font-bold text-foreground break-words\">{processLabel(process)}</h2>\n {process.status ? (\n <span\n className={`inline-flex items-center gap-1 rounded-full bg-muted px-2 py-0.5 text-xs ${processStateColor(\n process.status,\n )}`}\n >\n <Icon icon={processStateIcon(process.status)} />\n {process.status}\n </span>\n ) : null}\n </div>\n <div className=\"mt-1 flex items-center gap-density-2 flex-wrap text-xs text-muted-foreground\">\n <span className=\"font-mono\">pid {process.pid}</span>\n {process.ppid ? <span className=\"font-mono\">ppid {process.ppid}</span> : null}\n </div>\n </div>\n {actions ? <div className=\"shrink-0\">{actions}</div> : null}\n </div>\n );\n}\n\nfunction RunSection({ runMeta }: { runMeta: RunMeta }) {\n return (\n <PanelSection title=\"Run\">\n <div className=\"grid grid-cols-2 gap-density-2 text-sm\">\n <InfoTile\n label={runMeta.kind === \"rerun\" ? `Rerun #${runMeta.sequence}` : \"Initial run\"}\n value={runMeta.started ? new Date(runMeta.started).toLocaleString() : \"Unavailable\"}\n />\n <InfoTile\n label=\"Finished\"\n value={runMeta.ended ? new Date(runMeta.ended).toLocaleString() : \"In progress\"}\n />\n </div>\n </PanelSection>\n );\n}\n\ntype StackFilterItem = {\n state: string;\n userFrameCount: number;\n searchText: string;\n};\n\ntype StackBlockProps = {\n process: ProcessNode;\n parsed: ParsedStack;\n stateCounts: Map<string, number>;\n filtered: StackFilterItem[];\n search: string;\n setSearch: (v: string) => void;\n selectedStates: Set<string>;\n setSelectedStates: (updater: (prev: Set<string>) => Set<string>) => void;\n hideRuntimeOnly: boolean;\n setHideRuntimeOnly: (v: boolean) => void;\n collectBusy?: boolean;\n onCollectStack?: (pid: number) => void | Promise<void>;\n resolveSource?: JvmFrameSourceResolver;\n frameActions?: StackFrameActions;\n singleItem?: boolean;\n};\n\nfunction stackItemCount(parsed: ParsedStack): number {\n if (parsed.format === \"jvm\") return parsed.threads.length;\n if (parsed.format === \"go\") return parsed.goroutines.length;\n return 0;\n}\n\nfunction stackItemLabel(parsed: ParsedStack): string {\n if (parsed.format === \"jvm\") return \"threads\";\n if (parsed.format === \"go\") return \"goroutines\";\n return \"frames\";\n}\n\nfunction stackStateDot(parsed: ParsedStack, state: string): string {\n return parsed.format === \"jvm\" ? threadStateDot(state) : goroutineStateDot(state);\n}\n\nfunction StackBlock(props: StackBlockProps) {\n const {\n process,\n parsed,\n stateCounts,\n filtered,\n search,\n setSearch,\n selectedStates,\n setSelectedStates,\n hideRuntimeOnly,\n setHideRuntimeOnly,\n collectBusy,\n onCollectStack,\n resolveSource,\n frameActions,\n singleItem,\n } = props;\n const stack = process.stack_capture;\n\n if (!stack?.text) {\n return (\n <div className=\"h-full min-h-[14rem] flex flex-col justify-center gap-density-3 p-density-3\">\n <div className=\"space-y-1.5\">\n <div\n className={`h-3 w-40 rounded ${collectBusy ? \"animate-pulse bg-muted\" : \"bg-muted/70\"}`}\n />\n <div\n className={`h-3 w-full rounded ${collectBusy ? \"animate-pulse bg-muted\" : \"bg-muted/70\"}`}\n />\n <div\n className={`h-3 w-5/6 rounded ${collectBusy ? \"animate-pulse bg-muted\" : \"bg-muted/70\"}`}\n />\n </div>\n <div className=\"flex items-center justify-between gap-density-3\">\n <div className=\"text-sm text-muted-foreground\">\n {stack?.error\n ? stack.error\n : collectBusy\n ? \"Collecting stack trace...\"\n : \"No stack trace collected yet.\"}\n </div>\n {onCollectStack && (\n <CollectButton\n pid={process.pid}\n busy={collectBusy ?? false}\n onClick={onCollectStack}\n primary\n />\n )}\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full min-h-0 flex flex-col\">\n {!singleItem && (\n <div className=\"px-1 py-1.5 space-y-density-2\">\n <div className=\"flex items-center justify-between gap-density-2 text-[11px] text-muted-foreground flex-wrap\">\n <div className=\"flex items-center gap-density-2 flex-wrap\">\n <StackStatusBadge status={stack.status} />\n {stack.collected_at && <span>{new Date(stack.collected_at).toLocaleString()}</span>}\n {stackItemCount(parsed) > 0 && (\n <span>\n {filtered.length} / {stackItemCount(parsed)} {stackItemLabel(parsed)}\n </span>\n )}\n </div>\n {onCollectStack && (\n <CollectButton pid={process.pid} busy={collectBusy ?? false} onClick={onCollectStack} />\n )}\n </div>\n {stackItemCount(parsed) > 0 && (\n <>\n <div className=\"flex items-center gap-1.5 flex-wrap\">\n <div className=\"relative min-w-[14rem] flex-1\">\n <Icon\n icon={UiSearch}\n className=\"absolute left-2 top-1/2 -translate-y-1/2 text-muted-foreground text-xs\"\n />\n <input\n className=\"w-full rounded-md border border-border bg-muted/50 py-1 pl-7 pr-2 text-xs outline-none focus:border-primary focus:bg-background\"\n placeholder={\n parsed.format === \"jvm\"\n ? \"Filter by thread name, function, or file\"\n : \"Filter by goroutine id, function, or file\"\n }\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n />\n </div>\n <label className=\"inline-flex items-center gap-1.5 rounded-md border border-border bg-muted/50 px-2 py-1 text-[11px] text-muted-foreground\">\n <input\n type=\"checkbox\"\n checked={hideRuntimeOnly}\n onChange={(e) => setHideRuntimeOnly(e.target.checked)}\n />\n Hide runtime-only\n </label>\n {(search || selectedStates.size > 0 || !hideRuntimeOnly) && (\n <button\n className=\"text-[11px] text-muted-foreground hover:text-foreground\"\n onClick={() => {\n setSearch(\"\");\n setSelectedStates(() => new Set());\n setHideRuntimeOnly(true);\n }}\n >\n Clear\n </button>\n )}\n </div>\n <div className=\"flex items-center gap-1 flex-wrap\">\n {Array.from(stateCounts.entries())\n .sort((a, b) => b[1] - a[1])\n .map(([state, count]) => {\n const active = selectedStates.has(state);\n return (\n <button\n key={state}\n className={`inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-[11px] transition-colors ${\n active\n ? \"border-primary bg-primary/10 text-primary\"\n : \"border-border bg-muted/50 text-muted-foreground hover:bg-background\"\n }`}\n onClick={() => {\n setSelectedStates((prev) => {\n const next = new Set(prev);\n if (next.has(state)) next.delete(state);\n else next.add(state);\n return next;\n });\n }}\n >\n <span className={`h-2 w-2 rounded-full ${stackStateDot(parsed, state)}`} />\n {state}\n <span className=\"text-[10px] opacity-70\">{count}</span>\n </button>\n );\n })}\n </div>\n </>\n )}\n </div>\n )}\n {stack.error && (\n <div className=\"mt-density-2 text-xs text-red-600 whitespace-pre-wrap\">{stack.error}</div>\n )}\n {stackItemCount(parsed) === 0 ? (\n <pre\n className=\"flex-1 min-h-0 overflow-auto py-1 text-[11px] text-foreground whitespace-pre-wrap font-mono leading-4\"\n style={{ minHeight: STACK_MIN_HEIGHT }}\n >\n {stack.text}\n </pre>\n ) : (\n <div\n className=\"flex-1 min-h-0 overflow-auto py-1 space-y-1\"\n style={{ minHeight: STACK_MIN_HEIGHT }}\n >\n {filtered.length === 0 && (\n <div className=\"py-density-3 text-center text-xs text-muted-foreground\">\n No {stackItemLabel(parsed)} match the current filters.\n </div>\n )}\n {parsed.format === \"jvm\" &&\n parsed.threads\n .filter((t) => filtered.includes(t))\n .map((t) => (\n <ThreadCard\n key={t.id}\n thread={t}\n search={search}\n hideRuntimeOnly={hideRuntimeOnly}\n {...(resolveSource ? { resolveSource } : {})}\n {...(frameActions ? { frameActions } : {})}\n />\n ))}\n {parsed.format === \"go\" &&\n parsed.goroutines\n .filter((g) => filtered.includes(g))\n .map((goroutine) => (\n <GoroutineCard\n key={goroutine.id}\n goroutine={goroutine}\n search={search}\n hideRuntimeOnly={hideRuntimeOnly}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\nfunction StackStatusBadge({ status }: { status: string }) {\n const cls =\n status === \"ready\"\n ? \"bg-green-100 text-green-700 dark:bg-green-500/20 dark:text-green-300\"\n : status === \"unsupported\"\n ? \"bg-yellow-100 text-yellow-700 dark:bg-yellow-500/20 dark:text-yellow-300\"\n : \"bg-red-100 text-red-700 dark:bg-red-500/20 dark:text-red-300\";\n return <span className={`px-2 py-0.5 rounded-full ${cls}`}>{status}</span>;\n}\n\nfunction CollectButton({\n pid,\n busy,\n onClick,\n primary,\n}: {\n pid: number;\n busy?: boolean;\n onClick: (pid: number) => void | Promise<void>;\n primary?: boolean;\n}) {\n const base =\n \"shrink-0 text-[11px] px-2 py-1 rounded disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-1\";\n const style = primary\n ? \"bg-primary text-primary-foreground hover:bg-primary/90\"\n : \"border border-border text-muted-foreground hover:bg-accent\";\n return (\n <button\n className={`${base} ${style}`}\n onClick={() => onClick(pid)}\n disabled={busy}\n title={primary ? \"Collect the latest stack trace\" : \"Refresh stack trace\"}\n >\n <Icon icon={busy ? UiLoader : primary ? UiDebugSmall : UiRefresh} />\n {busy ? \"Collecting...\" : primary ? \"Collect stack trace\" : \"Refresh\"}\n </button>\n );\n}\n\nfunction PanelSection({\n title,\n grow,\n children,\n}: {\n title: string;\n grow?: boolean;\n children: ReactNode;\n}) {\n return (\n <section className={grow ? \"flex min-h-0 flex-1 flex-col\" : \"\"}>\n <div className=\"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground mb-1.5\">\n {title}\n </div>\n {grow ? <div className=\"flex-1 min-h-0 overflow-hidden\">{children}</div> : children}\n </section>\n );\n}\n\nfunction InfoTile({ label, value }: { label: string; value: string }) {\n return (\n <div className=\"border border-border rounded-lg bg-muted/50 px-2.5 py-density-2\">\n <div className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">{label}</div>\n <div className=\"text-xs font-medium text-foreground mt-0.5\">{value}</div>\n </div>\n );\n}\n\nfunction ProcessMetrics({ process }: { process: ProcessNode }) {\n const cpu = process.cpu_percent || 0;\n const rss = process.rss;\n const vms = process.vms;\n const memRatioPct = rss && vms && vms > 0 ? Math.min(100, Math.round((rss / vms) * 100)) : 0;\n return (\n <div className=\"grid grid-cols-4 gap-density-1\">\n <MetricTile\n label=\"CPU\"\n value={`${cpu.toFixed(1)}%`}\n barPct={Math.min(100, cpu)}\n tone={cpuTone(cpu)}\n />\n <MetricTile\n label=\"RSS\"\n value={rss !== undefined ? formatBytes(rss) : \"n/a\"}\n barPct={memRatioPct}\n tone={memoryTone(rss, vms)}\n />\n <MetricTile label=\"VMS\" value={vms !== undefined ? formatBytes(vms) : \"n/a\"} tone=\"neutral\" />\n <MetricTile\n label=\"Files\"\n value={process.open_files !== undefined ? String(process.open_files) : \"n/a\"}\n barPct={process.open_files ? Math.min(100, (process.open_files / 1024) * 100) : 0}\n tone=\"info\"\n />\n </div>\n );\n}\n\nfunction MetricTile({\n label,\n value,\n barPct,\n tone = \"neutral\",\n}: {\n label: string;\n value: string;\n barPct?: number;\n tone?: GaugeTone;\n}) {\n const toneBar: Record<GaugeTone, string> = {\n neutral: \"bg-muted-foreground/40\",\n success: \"bg-green-500\",\n warning: \"bg-yellow-500\",\n danger: \"bg-red-500\",\n info: \"bg-blue-500\",\n };\n const toneText: Record<GaugeTone, string> = {\n neutral: \"text-foreground\",\n success: \"text-green-600 dark:text-green-400\",\n warning: \"text-yellow-600 dark:text-yellow-400\",\n danger: \"text-red-600 dark:text-red-400\",\n info: \"text-blue-600 dark:text-blue-400\",\n };\n return (\n <div className=\"flex flex-col gap-0.5 rounded-md border border-border bg-background px-density-2 py-1 min-w-0\">\n <span className=\"text-[9px] uppercase tracking-wide text-muted-foreground leading-none\">\n {label}\n </span>\n <span className={`text-xs font-semibold tabular-nums truncate ${toneText[tone]}`}>\n {value}\n </span>\n {barPct !== undefined && (\n <div className=\"h-0.5 w-full rounded-full bg-muted overflow-hidden\">\n <div\n className={`h-full ${toneBar[tone]} transition-all duration-300`}\n style={{ width: `${barPct}%` }}\n />\n </div>\n )}\n </div>\n );\n}\n"],"names":["useState","useMemo","parseStackDump","countStackByState","useEffect","jsxs","jsx","Icon","UiServerProcess","UiDebug","processLabel","processStateColor","processStateIcon","threadStateDot","goroutineStateDot","Fragment","UiSearch","ThreadCard","GoroutineCard","UiLoader","UiDebugSmall","UiRefresh","formatBytes"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { ProcessNode, RunMeta } from './types';
3
+ import { StackFrameActions } from './StackFrameRow';
3
4
  import { JvmFrameSourceResolver } from './JvmStackTrace';
4
5
  export type DiagnosticsDetailPanelProps = {
5
6
  /** Selected process; null renders the empty selection state. */
@@ -16,6 +17,12 @@ export type DiagnosticsDetailPanelProps = {
16
17
  * source). A missing class must resolve to undefined, never throw.
17
18
  */
18
19
  resolveSource?: JvmFrameSourceResolver;
20
+ /**
21
+ * Optional trailing actions rendered on each stack frame, revealed on hover.
22
+ * Lets a host app hang per-frame affordances (trace/watch/decompile) off the
23
+ * rendered thread dump.
24
+ */
25
+ frameActions?: StackFrameActions;
19
26
  /**
20
27
  * Caller-supplied action buttons rendered right-aligned in the header row,
21
28
  * next to the title and Refresh. Use for download/decompile-style actions.
@@ -29,5 +36,5 @@ export type DiagnosticsDetailPanelProps = {
29
36
  */
30
37
  singleItem?: boolean;
31
38
  };
32
- export declare function DiagnosticsDetailPanel({ process, collectBusy, onCollectStack, runMeta, resolveSource, headerActions, singleItem, }: DiagnosticsDetailPanelProps): import("react/jsx-runtime").JSX.Element;
39
+ export declare function DiagnosticsDetailPanel({ process, collectBusy, onCollectStack, runMeta, resolveSource, frameActions, headerActions, singleItem, }: DiagnosticsDetailPanelProps): import("react/jsx-runtime").JSX.Element;
33
40
  //# sourceMappingURL=DiagnosticsDetailPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DiagnosticsDetailPanel.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/DiagnosticsDetailPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIrE,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAqB9D,MAAM,MAAM,2BAA2B,GAAG;IACxC,gEAAgE;IAChE,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,WAAW,EACX,cAAc,EACd,OAAO,EACP,aAAa,EACb,aAAa,EACb,UAAU,GACX,EAAE,2BAA2B,2CAsF7B"}
1
+ {"version":3,"file":"DiagnosticsDetailPanel.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/DiagnosticsDetailPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIrE,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAqB9D,MAAM,MAAM,2BAA2B,GAAG;IACxC,gEAAgE;IAChE,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC;;;;OAIG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,WAAW,EACX,cAAc,EACd,OAAO,EACP,aAAa,EACb,YAAY,EACZ,aAAa,EACb,UAAU,GACX,EAAE,2BAA2B,2CAuF7B"}
@@ -35,6 +35,7 @@ function DiagnosticsDetailPanel({
35
35
  onCollectStack,
36
36
  runMeta,
37
37
  resolveSource,
38
+ frameActions,
38
39
  headerActions,
39
40
  singleItem
40
41
  }) {
@@ -96,7 +97,8 @@ function DiagnosticsDetailPanel({
96
97
  collectBusy: collectBusy ?? false,
97
98
  singleItem: singleItem ?? false,
98
99
  ...onCollectStack ? { onCollectStack } : {},
99
- ...resolveSource ? { resolveSource } : {}
100
+ ...resolveSource ? { resolveSource } : {},
101
+ ...frameActions ? { frameActions } : {}
100
102
  }
101
103
  ) })
102
104
  ] });
@@ -186,6 +188,7 @@ function StackBlock(props) {
186
188
  collectBusy,
187
189
  onCollectStack,
188
190
  resolveSource,
191
+ frameActions,
189
192
  singleItem
190
193
  } = props;
191
194
  const stack = process.stack_capture;
@@ -335,7 +338,8 @@ function StackBlock(props) {
335
338
  thread: t,
336
339
  search,
337
340
  hideRuntimeOnly,
338
- ...resolveSource ? { resolveSource } : {}
341
+ ...resolveSource ? { resolveSource } : {},
342
+ ...frameActions ? { frameActions } : {}
339
343
  },
340
344
  t.id
341
345
  )),
@@ -1 +1 @@
1
- {"version":3,"file":"DiagnosticsDetailPanel.js","sources":["../../../src/data/diagnostics/DiagnosticsDetailPanel.tsx"],"sourcesContent":["import { useEffect, useMemo, useState, type ReactNode } from \"react\";\nimport { Icon } from \"../Icon\";\nimport type { GaugeTone } from \"../Gauge\";\nimport { UiDebug, UiDebugSmall, UiRefresh, UiSearch, UiServerProcess, UiLoader } from \"../../icons\";\nimport type { ProcessNode, RunMeta } from \"./types\";\nimport { formatBytes, processLabel, processStateColor, processStateIcon } from \"./utils\";\nimport { countStackByState, parseStackDump, type ParsedStack } from \"./stacktrace\";\nimport { GoroutineCard } from \"./GoroutineCard\";\nimport { ThreadCard } from \"./ThreadCard\";\nimport { goroutineStateDot, threadStateDot } from \"./state-styles\";\nimport type { JvmFrameSourceResolver } from \"./JvmStackTrace\";\n\nconst STACK_MIN_LINES = 10;\nconst STACK_LINE_HEIGHT_REM = 1;\nconst STACK_MIN_HEIGHT = `${STACK_MIN_LINES * STACK_LINE_HEIGHT_REM}rem`;\n\nfunction cpuTone(pct: number): GaugeTone {\n if (pct >= 90) return \"danger\";\n if (pct >= 60) return \"warning\";\n if (pct > 0) return \"success\";\n return \"neutral\";\n}\n\nfunction memoryTone(rss: number | undefined, vms: number | undefined): GaugeTone {\n if (!rss || !vms) return \"neutral\";\n const ratio = rss / vms;\n if (ratio >= 0.9) return \"danger\";\n if (ratio >= 0.6) return \"warning\";\n return \"info\";\n}\n\nexport type DiagnosticsDetailPanelProps = {\n /** Selected process; null renders the empty selection state. */\n process: ProcessNode | null;\n /** Shows loading state while stack capture is being collected. */\n collectBusy?: boolean;\n /** Called when the user requests a fresh stack capture. */\n onCollectStack?: (pid: number) => void | Promise<void>;\n /** Optional run metadata rendered above diagnostics. */\n runMeta?: RunMeta;\n /**\n * Optional resolver that supplies inline source under each JVM stack frame,\n * so the rendered thread dump can be augmented in place (e.g. with decompiled\n * source). A missing class must resolve to undefined, never throw.\n */\n resolveSource?: JvmFrameSourceResolver;\n /**\n * Caller-supplied action buttons rendered right-aligned in the header row,\n * next to the title and Refresh. Use for download/decompile-style actions.\n */\n headerActions?: ReactNode;\n /**\n * The capture holds a single, already-selected item (e.g. one thread the\n * caller picked from its own list). Suppresses the redundant per-item filter\n * UI (search box, state chips, hide-runtime, count) and lifts Refresh into\n * the header row so the detail view shows just that item's frames.\n */\n singleItem?: boolean;\n};\n\nexport function DiagnosticsDetailPanel({\n process,\n collectBusy,\n onCollectStack,\n runMeta,\n resolveSource,\n headerActions,\n singleItem,\n}: DiagnosticsDetailPanelProps) {\n const [search, setSearch] = useState(\"\");\n const [selectedStates, setSelectedStates] = useState<Set<string>>(new Set());\n const [hideRuntimeOnly, setHideRuntimeOnly] = useState(true);\n const stack = process?.stack_capture;\n const parsed = useMemo<ParsedStack>(() => parseStackDump(stack?.text || \"\"), [stack?.text]);\n const stateCounts = useMemo(() => countStackByState(parsed), [parsed]);\n const filtered = useMemo(() => {\n const needle = search.trim().toLowerCase();\n const items: Array<{\n state: string;\n userFrameCount: number;\n searchText: string;\n }> = parsed.format === \"jvm\" ? parsed.threads : parsed.format === \"go\" ? parsed.goroutines : [];\n if (singleItem) return items;\n return items.filter((item) => {\n if (selectedStates.size > 0 && !selectedStates.has(item.state)) return false;\n if (hideRuntimeOnly && item.userFrameCount === 0) return false;\n if (needle && !item.searchText.includes(needle)) return false;\n return true;\n });\n }, [parsed, search, selectedStates, hideRuntimeOnly, singleItem]);\n\n useEffect(() => {\n setSearch(\"\");\n setSelectedStates(new Set());\n setHideRuntimeOnly(true);\n }, [stack?.text, process?.pid]);\n\n if (!process) {\n return (\n <div className=\"flex items-center justify-center h-full text-muted-foreground text-sm\">\n <div className=\"text-center\">\n <Icon icon={UiServerProcess} className=\"text-4xl mb-density-2\" />\n <div>Select a process to view diagnostics</div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full min-h-0 flex flex-col gap-density-3 p-density-4\">\n <Header\n process={process}\n actions={\n <div className=\"flex items-center gap-density-2\">\n {singleItem && onCollectStack && (\n <CollectButton pid={process.pid} busy={collectBusy ?? false} onClick={onCollectStack} />\n )}\n {headerActions}\n </div>\n }\n />\n {runMeta && <RunSection runMeta={runMeta} />}\n {process.command && (\n <PanelSection title=\"Command\">\n <pre className=\"text-xs text-foreground whitespace-pre-wrap font-mono bg-blue-50 dark:bg-blue-500/10 rounded p-2 break-all\">\n {process.command}\n </pre>\n </PanelSection>\n )}\n\n <PanelSection title=\"Metrics\">\n <ProcessMetrics process={process} />\n </PanelSection>\n\n <PanelSection title=\"Stack\" grow>\n <StackBlock\n process={process}\n parsed={parsed}\n stateCounts={stateCounts}\n filtered={filtered}\n search={search}\n setSearch={setSearch}\n selectedStates={selectedStates}\n setSelectedStates={setSelectedStates}\n hideRuntimeOnly={hideRuntimeOnly}\n setHideRuntimeOnly={setHideRuntimeOnly}\n collectBusy={collectBusy ?? false}\n singleItem={singleItem ?? false}\n {...(onCollectStack ? { onCollectStack } : {})}\n {...(resolveSource ? { resolveSource } : {})}\n />\n </PanelSection>\n </div>\n );\n}\n\nfunction Header({ process, actions }: { process: ProcessNode; actions?: ReactNode }) {\n return (\n <div className=\"flex items-start justify-between gap-density-3\">\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-density-2 flex-wrap\">\n <Icon\n icon={process.is_root ? UiServerProcess : UiDebug}\n className=\"text-2xl text-blue-600\"\n />\n <h2 className=\"text-lg font-bold text-foreground break-words\">{processLabel(process)}</h2>\n {process.status ? (\n <span\n className={`inline-flex items-center gap-1 rounded-full bg-muted px-2 py-0.5 text-xs ${processStateColor(\n process.status,\n )}`}\n >\n <Icon icon={processStateIcon(process.status)} />\n {process.status}\n </span>\n ) : null}\n </div>\n <div className=\"mt-1 flex items-center gap-density-2 flex-wrap text-xs text-muted-foreground\">\n <span className=\"font-mono\">pid {process.pid}</span>\n {process.ppid ? <span className=\"font-mono\">ppid {process.ppid}</span> : null}\n </div>\n </div>\n {actions ? <div className=\"shrink-0\">{actions}</div> : null}\n </div>\n );\n}\n\nfunction RunSection({ runMeta }: { runMeta: RunMeta }) {\n return (\n <PanelSection title=\"Run\">\n <div className=\"grid grid-cols-2 gap-density-2 text-sm\">\n <InfoTile\n label={runMeta.kind === \"rerun\" ? `Rerun #${runMeta.sequence}` : \"Initial run\"}\n value={runMeta.started ? new Date(runMeta.started).toLocaleString() : \"Unavailable\"}\n />\n <InfoTile\n label=\"Finished\"\n value={runMeta.ended ? new Date(runMeta.ended).toLocaleString() : \"In progress\"}\n />\n </div>\n </PanelSection>\n );\n}\n\ntype StackFilterItem = {\n state: string;\n userFrameCount: number;\n searchText: string;\n};\n\ntype StackBlockProps = {\n process: ProcessNode;\n parsed: ParsedStack;\n stateCounts: Map<string, number>;\n filtered: StackFilterItem[];\n search: string;\n setSearch: (v: string) => void;\n selectedStates: Set<string>;\n setSelectedStates: (updater: (prev: Set<string>) => Set<string>) => void;\n hideRuntimeOnly: boolean;\n setHideRuntimeOnly: (v: boolean) => void;\n collectBusy?: boolean;\n onCollectStack?: (pid: number) => void | Promise<void>;\n resolveSource?: JvmFrameSourceResolver;\n singleItem?: boolean;\n};\n\nfunction stackItemCount(parsed: ParsedStack): number {\n if (parsed.format === \"jvm\") return parsed.threads.length;\n if (parsed.format === \"go\") return parsed.goroutines.length;\n return 0;\n}\n\nfunction stackItemLabel(parsed: ParsedStack): string {\n if (parsed.format === \"jvm\") return \"threads\";\n if (parsed.format === \"go\") return \"goroutines\";\n return \"frames\";\n}\n\nfunction stackStateDot(parsed: ParsedStack, state: string): string {\n return parsed.format === \"jvm\" ? threadStateDot(state) : goroutineStateDot(state);\n}\n\nfunction StackBlock(props: StackBlockProps) {\n const {\n process,\n parsed,\n stateCounts,\n filtered,\n search,\n setSearch,\n selectedStates,\n setSelectedStates,\n hideRuntimeOnly,\n setHideRuntimeOnly,\n collectBusy,\n onCollectStack,\n resolveSource,\n singleItem,\n } = props;\n const stack = process.stack_capture;\n\n if (!stack?.text) {\n return (\n <div className=\"h-full min-h-[14rem] flex flex-col justify-center gap-density-3 p-density-3\">\n <div className=\"space-y-1.5\">\n <div\n className={`h-3 w-40 rounded ${collectBusy ? \"animate-pulse bg-muted\" : \"bg-muted/70\"}`}\n />\n <div\n className={`h-3 w-full rounded ${collectBusy ? \"animate-pulse bg-muted\" : \"bg-muted/70\"}`}\n />\n <div\n className={`h-3 w-5/6 rounded ${collectBusy ? \"animate-pulse bg-muted\" : \"bg-muted/70\"}`}\n />\n </div>\n <div className=\"flex items-center justify-between gap-density-3\">\n <div className=\"text-sm text-muted-foreground\">\n {stack?.error\n ? stack.error\n : collectBusy\n ? \"Collecting stack trace...\"\n : \"No stack trace collected yet.\"}\n </div>\n {onCollectStack && (\n <CollectButton\n pid={process.pid}\n busy={collectBusy ?? false}\n onClick={onCollectStack}\n primary\n />\n )}\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full min-h-0 flex flex-col\">\n {!singleItem && (\n <div className=\"px-1 py-1.5 space-y-density-2\">\n <div className=\"flex items-center justify-between gap-density-2 text-[11px] text-muted-foreground flex-wrap\">\n <div className=\"flex items-center gap-density-2 flex-wrap\">\n <StackStatusBadge status={stack.status} />\n {stack.collected_at && <span>{new Date(stack.collected_at).toLocaleString()}</span>}\n {stackItemCount(parsed) > 0 && (\n <span>\n {filtered.length} / {stackItemCount(parsed)} {stackItemLabel(parsed)}\n </span>\n )}\n </div>\n {onCollectStack && (\n <CollectButton pid={process.pid} busy={collectBusy ?? false} onClick={onCollectStack} />\n )}\n </div>\n {stackItemCount(parsed) > 0 && (\n <>\n <div className=\"flex items-center gap-1.5 flex-wrap\">\n <div className=\"relative min-w-[14rem] flex-1\">\n <Icon\n icon={UiSearch}\n className=\"absolute left-2 top-1/2 -translate-y-1/2 text-muted-foreground text-xs\"\n />\n <input\n className=\"w-full rounded-md border border-border bg-muted/50 py-1 pl-7 pr-2 text-xs outline-none focus:border-primary focus:bg-background\"\n placeholder={\n parsed.format === \"jvm\"\n ? \"Filter by thread name, function, or file\"\n : \"Filter by goroutine id, function, or file\"\n }\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n />\n </div>\n <label className=\"inline-flex items-center gap-1.5 rounded-md border border-border bg-muted/50 px-2 py-1 text-[11px] text-muted-foreground\">\n <input\n type=\"checkbox\"\n checked={hideRuntimeOnly}\n onChange={(e) => setHideRuntimeOnly(e.target.checked)}\n />\n Hide runtime-only\n </label>\n {(search || selectedStates.size > 0 || !hideRuntimeOnly) && (\n <button\n className=\"text-[11px] text-muted-foreground hover:text-foreground\"\n onClick={() => {\n setSearch(\"\");\n setSelectedStates(() => new Set());\n setHideRuntimeOnly(true);\n }}\n >\n Clear\n </button>\n )}\n </div>\n <div className=\"flex items-center gap-1 flex-wrap\">\n {Array.from(stateCounts.entries())\n .sort((a, b) => b[1] - a[1])\n .map(([state, count]) => {\n const active = selectedStates.has(state);\n return (\n <button\n key={state}\n className={`inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-[11px] transition-colors ${\n active\n ? \"border-primary bg-primary/10 text-primary\"\n : \"border-border bg-muted/50 text-muted-foreground hover:bg-background\"\n }`}\n onClick={() => {\n setSelectedStates((prev) => {\n const next = new Set(prev);\n if (next.has(state)) next.delete(state);\n else next.add(state);\n return next;\n });\n }}\n >\n <span className={`h-2 w-2 rounded-full ${stackStateDot(parsed, state)}`} />\n {state}\n <span className=\"text-[10px] opacity-70\">{count}</span>\n </button>\n );\n })}\n </div>\n </>\n )}\n </div>\n )}\n {stack.error && (\n <div className=\"mt-density-2 text-xs text-red-600 whitespace-pre-wrap\">{stack.error}</div>\n )}\n {stackItemCount(parsed) === 0 ? (\n <pre\n className=\"flex-1 min-h-0 overflow-auto py-1 text-[11px] text-foreground whitespace-pre-wrap font-mono leading-4\"\n style={{ minHeight: STACK_MIN_HEIGHT }}\n >\n {stack.text}\n </pre>\n ) : (\n <div\n className=\"flex-1 min-h-0 overflow-auto py-1 space-y-1\"\n style={{ minHeight: STACK_MIN_HEIGHT }}\n >\n {filtered.length === 0 && (\n <div className=\"py-density-3 text-center text-xs text-muted-foreground\">\n No {stackItemLabel(parsed)} match the current filters.\n </div>\n )}\n {parsed.format === \"jvm\" &&\n parsed.threads\n .filter((t) => filtered.includes(t))\n .map((t) => (\n <ThreadCard\n key={t.id}\n thread={t}\n search={search}\n hideRuntimeOnly={hideRuntimeOnly}\n {...(resolveSource ? { resolveSource } : {})}\n />\n ))}\n {parsed.format === \"go\" &&\n parsed.goroutines\n .filter((g) => filtered.includes(g))\n .map((goroutine) => (\n <GoroutineCard\n key={goroutine.id}\n goroutine={goroutine}\n search={search}\n hideRuntimeOnly={hideRuntimeOnly}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\nfunction StackStatusBadge({ status }: { status: string }) {\n const cls =\n status === \"ready\"\n ? \"bg-green-100 text-green-700 dark:bg-green-500/20 dark:text-green-300\"\n : status === \"unsupported\"\n ? \"bg-yellow-100 text-yellow-700 dark:bg-yellow-500/20 dark:text-yellow-300\"\n : \"bg-red-100 text-red-700 dark:bg-red-500/20 dark:text-red-300\";\n return <span className={`px-2 py-0.5 rounded-full ${cls}`}>{status}</span>;\n}\n\nfunction CollectButton({\n pid,\n busy,\n onClick,\n primary,\n}: {\n pid: number;\n busy?: boolean;\n onClick: (pid: number) => void | Promise<void>;\n primary?: boolean;\n}) {\n const base =\n \"shrink-0 text-[11px] px-2 py-1 rounded disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-1\";\n const style = primary\n ? \"bg-primary text-primary-foreground hover:bg-primary/90\"\n : \"border border-border text-muted-foreground hover:bg-accent\";\n return (\n <button\n className={`${base} ${style}`}\n onClick={() => onClick(pid)}\n disabled={busy}\n title={primary ? \"Collect the latest stack trace\" : \"Refresh stack trace\"}\n >\n <Icon icon={busy ? UiLoader : primary ? UiDebugSmall : UiRefresh} />\n {busy ? \"Collecting...\" : primary ? \"Collect stack trace\" : \"Refresh\"}\n </button>\n );\n}\n\nfunction PanelSection({\n title,\n grow,\n children,\n}: {\n title: string;\n grow?: boolean;\n children: ReactNode;\n}) {\n return (\n <section className={grow ? \"flex min-h-0 flex-1 flex-col\" : \"\"}>\n <div className=\"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground mb-1.5\">\n {title}\n </div>\n {grow ? <div className=\"flex-1 min-h-0 overflow-hidden\">{children}</div> : children}\n </section>\n );\n}\n\nfunction InfoTile({ label, value }: { label: string; value: string }) {\n return (\n <div className=\"border border-border rounded-lg bg-muted/50 px-2.5 py-density-2\">\n <div className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">{label}</div>\n <div className=\"text-xs font-medium text-foreground mt-0.5\">{value}</div>\n </div>\n );\n}\n\nfunction ProcessMetrics({ process }: { process: ProcessNode }) {\n const cpu = process.cpu_percent || 0;\n const rss = process.rss;\n const vms = process.vms;\n const memRatioPct = rss && vms && vms > 0 ? Math.min(100, Math.round((rss / vms) * 100)) : 0;\n return (\n <div className=\"grid grid-cols-4 gap-density-1\">\n <MetricTile\n label=\"CPU\"\n value={`${cpu.toFixed(1)}%`}\n barPct={Math.min(100, cpu)}\n tone={cpuTone(cpu)}\n />\n <MetricTile\n label=\"RSS\"\n value={rss !== undefined ? formatBytes(rss) : \"n/a\"}\n barPct={memRatioPct}\n tone={memoryTone(rss, vms)}\n />\n <MetricTile label=\"VMS\" value={vms !== undefined ? formatBytes(vms) : \"n/a\"} tone=\"neutral\" />\n <MetricTile\n label=\"Files\"\n value={process.open_files !== undefined ? String(process.open_files) : \"n/a\"}\n barPct={process.open_files ? Math.min(100, (process.open_files / 1024) * 100) : 0}\n tone=\"info\"\n />\n </div>\n );\n}\n\nfunction MetricTile({\n label,\n value,\n barPct,\n tone = \"neutral\",\n}: {\n label: string;\n value: string;\n barPct?: number;\n tone?: GaugeTone;\n}) {\n const toneBar: Record<GaugeTone, string> = {\n neutral: \"bg-muted-foreground/40\",\n success: \"bg-green-500\",\n warning: \"bg-yellow-500\",\n danger: \"bg-red-500\",\n info: \"bg-blue-500\",\n };\n const toneText: Record<GaugeTone, string> = {\n neutral: \"text-foreground\",\n success: \"text-green-600 dark:text-green-400\",\n warning: \"text-yellow-600 dark:text-yellow-400\",\n danger: \"text-red-600 dark:text-red-400\",\n info: \"text-blue-600 dark:text-blue-400\",\n };\n return (\n <div className=\"flex flex-col gap-0.5 rounded-md border border-border bg-background px-density-2 py-1 min-w-0\">\n <span className=\"text-[9px] uppercase tracking-wide text-muted-foreground leading-none\">\n {label}\n </span>\n <span className={`text-xs font-semibold tabular-nums truncate ${toneText[tone]}`}>\n {value}\n </span>\n {barPct !== undefined && (\n <div className=\"h-0.5 w-full rounded-full bg-muted overflow-hidden\">\n <div\n className={`h-full ${toneBar[tone]} transition-all duration-300`}\n style={{ width: `${barPct}%` }}\n />\n </div>\n )}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAYA,MAAM,kBAAkB;AACxB,MAAM,wBAAwB;AAC9B,MAAM,mBAAmB,GAAG,kBAAkB,qBAAqB;AAEnE,SAAS,QAAQ,KAAwB;AACvC,MAAI,OAAO,GAAI,QAAO;AACtB,MAAI,OAAO,GAAI,QAAO;AACtB,MAAI,MAAM,EAAG,QAAO;AACpB,SAAO;AACT;AAEA,SAAS,WAAW,KAAyB,KAAoC;AAC/E,MAAI,CAAC,OAAO,CAAC,IAAK,QAAO;AACzB,QAAM,QAAQ,MAAM;AACpB,MAAI,SAAS,IAAK,QAAO;AACzB,MAAI,SAAS,IAAK,QAAO;AACzB,SAAO;AACT;AA+BO,SAAS,uBAAuB;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAgC;AAC9B,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,EAAE;AACvC,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAsB,oBAAI,KAAK;AAC3E,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,IAAI;AAC3D,QAAM,QAAQ,mCAAS;AACvB,QAAM,SAAS,QAAqB,MAAM,gBAAe,+BAAO,SAAQ,EAAE,GAAG,CAAC,+BAAO,IAAI,CAAC;AAC1F,QAAM,cAAc,QAAQ,MAAM,kBAAkB,MAAM,GAAG,CAAC,MAAM,CAAC;AACrE,QAAM,WAAW,QAAQ,MAAM;AAC7B,UAAM,SAAS,OAAO,KAAA,EAAO,YAAA;AAC7B,UAAM,QAID,OAAO,WAAW,QAAQ,OAAO,UAAU,OAAO,WAAW,OAAO,OAAO,aAAa,CAAA;AAC7F,QAAI,WAAY,QAAO;AACvB,WAAO,MAAM,OAAO,CAAC,SAAS;AAC5B,UAAI,eAAe,OAAO,KAAK,CAAC,eAAe,IAAI,KAAK,KAAK,EAAG,QAAO;AACvE,UAAI,mBAAmB,KAAK,mBAAmB,EAAG,QAAO;AACzD,UAAI,UAAU,CAAC,KAAK,WAAW,SAAS,MAAM,EAAG,QAAO;AACxD,aAAO;AAAA,IACT,CAAC;AAAA,EACH,GAAG,CAAC,QAAQ,QAAQ,gBAAgB,iBAAiB,UAAU,CAAC;AAEhE,YAAU,MAAM;AACd,cAAU,EAAE;AACZ,sBAAkB,oBAAI,KAAK;AAC3B,uBAAmB,IAAI;AAAA,EACzB,GAAG,CAAC,+BAAO,MAAM,mCAAS,GAAG,CAAC;AAE9B,MAAI,CAAC,SAAS;AACZ,+BACG,OAAA,EAAI,WAAU,yEACb,UAAA,qBAAC,OAAA,EAAI,WAAU,eACb,UAAA;AAAA,MAAA,oBAAC,MAAA,EAAK,MAAM,iBAAiB,WAAU,yBAAwB;AAAA,MAC/D,oBAAC,SAAI,UAAA,uCAAA,CAAoC;AAAA,IAAA,EAAA,CAC3C,EAAA,CACF;AAAA,EAEJ;AAEA,SACE,qBAAC,OAAA,EAAI,WAAU,0DACb,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SACE,qBAAC,OAAA,EAAI,WAAU,mCACZ,UAAA;AAAA,UAAA,cAAc,kBACb,oBAAC,eAAA,EAAc,KAAK,QAAQ,KAAK,MAAM,eAAe,OAAO,SAAS,eAAA,CAAgB;AAAA,UAEvF;AAAA,QAAA,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,IAGH,WAAW,oBAAC,YAAA,EAAW,QAAA,CAAkB;AAAA,IACzC,QAAQ,WACP,oBAAC,cAAA,EAAa,OAAM,WAClB,UAAA,oBAAC,OAAA,EAAI,WAAU,8GACZ,UAAA,QAAQ,QAAA,CACX,GACF;AAAA,wBAGD,cAAA,EAAa,OAAM,WAClB,UAAA,oBAAC,gBAAA,EAAe,SAAkB,GACpC;AAAA,IAEA,oBAAC,cAAA,EAAa,OAAM,SAAQ,MAAI,MAC9B,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,aAAa,eAAe;AAAA,QAC5B,YAAY,cAAc;AAAA,QACzB,GAAI,iBAAiB,EAAE,eAAA,IAAmB,CAAA;AAAA,QAC1C,GAAI,gBAAgB,EAAE,kBAAkB,CAAA;AAAA,MAAC;AAAA,IAAA,EAC5C,CACF;AAAA,EAAA,GACF;AAEJ;AAEA,SAAS,OAAO,EAAE,SAAS,WAA0D;AACnF,SACE,qBAAC,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,MAAA,qBAAC,OAAA,EAAI,WAAU,6CACb,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAM,QAAQ,UAAU,kBAAkB;AAAA,YAC1C,WAAU;AAAA,UAAA;AAAA,QAAA;AAAA,4BAEX,MAAA,EAAG,WAAU,iDAAiD,UAAA,aAAa,OAAO,GAAE;AAAA,QACpF,QAAQ,SACP;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,4EAA4E;AAAA,cACrF,QAAQ;AAAA,YAAA,CACT;AAAA,YAED,UAAA;AAAA,cAAA,oBAAC,MAAA,EAAK,MAAM,iBAAiB,QAAQ,MAAM,GAAG;AAAA,cAC7C,QAAQ;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,IAET;AAAA,MAAA,GACN;AAAA,MACA,qBAAC,OAAA,EAAI,WAAU,gFACb,UAAA;AAAA,QAAA,qBAAC,QAAA,EAAK,WAAU,aAAY,UAAA;AAAA,UAAA;AAAA,UAAK,QAAQ;AAAA,QAAA,GAAI;AAAA,QAC5C,QAAQ,OAAO,qBAAC,QAAA,EAAK,WAAU,aAAY,UAAA;AAAA,UAAA;AAAA,UAAM,QAAQ;AAAA,QAAA,EAAA,CAAK,IAAU;AAAA,MAAA,EAAA,CAC3E;AAAA,IAAA,GACF;AAAA,IACC,UAAU,oBAAC,OAAA,EAAI,WAAU,YAAY,mBAAQ,IAAS;AAAA,EAAA,GACzD;AAEJ;AAEA,SAAS,WAAW,EAAE,WAAiC;AACrD,6BACG,cAAA,EAAa,OAAM,OAClB,UAAA,qBAAC,OAAA,EAAI,WAAU,0CACb,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO,QAAQ,SAAS,UAAU,UAAU,QAAQ,QAAQ,KAAK;AAAA,QACjE,OAAO,QAAQ,UAAU,IAAI,KAAK,QAAQ,OAAO,EAAE,mBAAmB;AAAA,MAAA;AAAA,IAAA;AAAA,IAExE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,OAAO,QAAQ,QAAQ,IAAI,KAAK,QAAQ,KAAK,EAAE,mBAAmB;AAAA,MAAA;AAAA,IAAA;AAAA,EACpE,EAAA,CACF,EAAA,CACF;AAEJ;AAyBA,SAAS,eAAe,QAA6B;AACnD,MAAI,OAAO,WAAW,MAAO,QAAO,OAAO,QAAQ;AACnD,MAAI,OAAO,WAAW,KAAM,QAAO,OAAO,WAAW;AACrD,SAAO;AACT;AAEA,SAAS,eAAe,QAA6B;AACnD,MAAI,OAAO,WAAW,MAAO,QAAO;AACpC,MAAI,OAAO,WAAW,KAAM,QAAO;AACnC,SAAO;AACT;AAEA,SAAS,cAAc,QAAqB,OAAuB;AACjE,SAAO,OAAO,WAAW,QAAQ,eAAe,KAAK,IAAI,kBAAkB,KAAK;AAClF;AAEA,SAAS,WAAW,OAAwB;AAC1C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE;AACJ,QAAM,QAAQ,QAAQ;AAEtB,MAAI,EAAC,+BAAO,OAAM;AAChB,WACE,qBAAC,OAAA,EAAI,WAAU,+EACb,UAAA;AAAA,MAAA,qBAAC,OAAA,EAAI,WAAU,eACb,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,oBAAoB,cAAc,2BAA2B,aAAa;AAAA,UAAA;AAAA,QAAA;AAAA,QAEvF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,sBAAsB,cAAc,2BAA2B,aAAa;AAAA,UAAA;AAAA,QAAA;AAAA,QAEzF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,qBAAqB,cAAc,2BAA2B,aAAa;AAAA,UAAA;AAAA,QAAA;AAAA,MACxF,GACF;AAAA,MACA,qBAAC,OAAA,EAAI,WAAU,mDACb,UAAA;AAAA,QAAA,oBAAC,OAAA,EAAI,WAAU,iCACZ,WAAA,+BAAO,SACJ,MAAM,QACN,cACE,8BACA,gCAAA,CACR;AAAA,QACC,kBACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK,QAAQ;AAAA,YACb,MAAM,eAAe;AAAA,YACrB,SAAS;AAAA,YACT,SAAO;AAAA,UAAA;AAAA,QAAA;AAAA,MACT,EAAA,CAEJ;AAAA,IAAA,GACF;AAAA,EAEJ;AAEA,SACE,qBAAC,OAAA,EAAI,WAAU,gCACZ,UAAA;AAAA,IAAA,CAAC,cACF,qBAAC,OAAA,EAAI,WAAU,iCACb,UAAA;AAAA,MAAA,qBAAC,OAAA,EAAI,WAAU,+FACb,UAAA;AAAA,QAAA,qBAAC,OAAA,EAAI,WAAU,6CACb,UAAA;AAAA,UAAA,oBAAC,kBAAA,EAAiB,QAAQ,MAAM,OAAA,CAAQ;AAAA,UACvC,MAAM,gBAAgB,oBAAC,QAAA,EAAM,UAAA,IAAI,KAAK,MAAM,YAAY,EAAE,eAAA,EAAe,CAAE;AAAA,UAC3E,eAAe,MAAM,IAAI,0BACvB,QAAA,EACE,UAAA;AAAA,YAAA,SAAS;AAAA,YAAO;AAAA,YAAI,eAAe,MAAM;AAAA,YAAE;AAAA,YAAE,eAAe,MAAM;AAAA,UAAA,EAAA,CACrE;AAAA,QAAA,GAEJ;AAAA,QACC,kBACC,oBAAC,eAAA,EAAc,KAAK,QAAQ,KAAK,MAAM,eAAe,OAAO,SAAS,eAAA,CAAgB;AAAA,MAAA,GAE1F;AAAA,MACC,eAAe,MAAM,IAAI,KACxB,qBAAA,UAAA,EACE,UAAA;AAAA,QAAA,qBAAC,OAAA,EAAI,WAAU,uCACb,UAAA;AAAA,UAAA,qBAAC,OAAA,EAAI,WAAU,iCACb,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAM;AAAA,gBACN,WAAU;AAAA,cAAA;AAAA,YAAA;AAAA,YAEZ;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,aACE,OAAO,WAAW,QACd,6CACA;AAAA,gBAEN,OAAO;AAAA,gBACP,UAAU,CAAC,MAAM,UAAU,EAAE,OAAO,KAAK;AAAA,cAAA;AAAA,YAAA;AAAA,UAC3C,GACF;AAAA,UACA,qBAAC,SAAA,EAAM,WAAU,4HACf,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAS;AAAA,gBACT,UAAU,CAAC,MAAM,mBAAmB,EAAE,OAAO,OAAO;AAAA,cAAA;AAAA,YAAA;AAAA,YACpD;AAAA,UAAA,GAEJ;AAAA,WACE,UAAU,eAAe,OAAO,KAAK,CAAC,oBACtC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,SAAS,MAAM;AACb,0BAAU,EAAE;AACZ,kCAAkB,MAAM,oBAAI,KAAK;AACjC,mCAAmB,IAAI;AAAA,cACzB;AAAA,cACD,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAED,GAEJ;AAAA,QACA,oBAAC,OAAA,EAAI,WAAU,qCACZ,UAAA,MAAM,KAAK,YAAY,QAAA,CAAS,EAC9B,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAC1B,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM;AACvB,gBAAM,SAAS,eAAe,IAAI,KAAK;AACvC,iBACE;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,WAAW,gGACT,SACI,8CACA,qEACN;AAAA,cACA,SAAS,MAAM;AACb,kCAAkB,CAAC,SAAS;AAC1B,wBAAM,OAAO,IAAI,IAAI,IAAI;AACzB,sBAAI,KAAK,IAAI,KAAK,EAAG,MAAK,OAAO,KAAK;AAAA,sBACjC,MAAK,IAAI,KAAK;AACnB,yBAAO;AAAA,gBACT,CAAC;AAAA,cACH;AAAA,cAEA,UAAA;AAAA,gBAAA,oBAAC,UAAK,WAAW,wBAAwB,cAAc,QAAQ,KAAK,CAAC,IAAI;AAAA,gBACxE;AAAA,gBACD,oBAAC,QAAA,EAAK,WAAU,0BAA0B,UAAA,MAAA,CAAM;AAAA,cAAA;AAAA,YAAA;AAAA,YAjB3C;AAAA,UAAA;AAAA,QAoBX,CAAC,EAAA,CACL;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,GAEJ;AAAA,IAEC,MAAM,SACL,oBAAC,SAAI,WAAU,yDAAyD,gBAAM,OAAM;AAAA,IAErF,eAAe,MAAM,MAAM,IAC1B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,WAAW,iBAAA;AAAA,QAEnB,UAAA,MAAM;AAAA,MAAA;AAAA,IAAA,IAGT;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,WAAW,iBAAA;AAAA,QAEnB,UAAA;AAAA,UAAA,SAAS,WAAW,KACnB,qBAAC,OAAA,EAAI,WAAU,0DAAyD,UAAA;AAAA,YAAA;AAAA,YAClE,eAAe,MAAM;AAAA,YAAE;AAAA,UAAA,GAC7B;AAAA,UAED,OAAO,WAAW,SACjB,OAAO,QACJ,OAAO,CAAC,MAAM,SAAS,SAAS,CAAC,CAAC,EAClC,IAAI,CAAC,MACJ;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,QAAQ;AAAA,cACR;AAAA,cACA;AAAA,cACC,GAAI,gBAAgB,EAAE,kBAAkB,CAAA;AAAA,YAAC;AAAA,YAJrC,EAAE;AAAA,UAAA,CAMV;AAAA,UACJ,OAAO,WAAW,QACjB,OAAO,WACJ,OAAO,CAAC,MAAM,SAAS,SAAS,CAAC,CAAC,EAClC,IAAI,CAAC,cACJ;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAAA,YAHK,UAAU;AAAA,UAAA,CAKlB;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACP,GAEJ;AAEJ;AAEA,SAAS,iBAAiB,EAAE,UAA8B;AACxD,QAAM,MACJ,WAAW,UACP,yEACA,WAAW,gBACT,6EACA;AACR,6BAAQ,QAAA,EAAK,WAAW,4BAA4B,GAAG,IAAK,UAAA,QAAO;AACrE;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,QAAM,OACJ;AACF,QAAM,QAAQ,UACV,2DACA;AACJ,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAG,IAAI,IAAI,KAAK;AAAA,MAC3B,SAAS,MAAM,QAAQ,GAAG;AAAA,MAC1B,UAAU;AAAA,MACV,OAAO,UAAU,mCAAmC;AAAA,MAEpD,UAAA;AAAA,QAAA,oBAAC,QAAK,MAAM,OAAO,WAAW,UAAU,eAAe,WAAW;AAAA,QACjE,OAAO,kBAAkB,UAAU,wBAAwB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGlE;AAEA,SAAS,aAAa;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,SACE,qBAAC,WAAA,EAAQ,WAAW,OAAO,iCAAiC,IAC1D,UAAA;AAAA,IAAA,oBAAC,OAAA,EAAI,WAAU,kFACZ,UAAA,OACH;AAAA,IACC,OAAO,oBAAC,OAAA,EAAI,WAAU,kCAAkC,UAAS,IAAS;AAAA,EAAA,GAC7E;AAEJ;AAEA,SAAS,SAAS,EAAE,OAAO,SAA2C;AACpE,SACE,qBAAC,OAAA,EAAI,WAAU,mEACb,UAAA;AAAA,IAAA,oBAAC,OAAA,EAAI,WAAU,6DAA6D,UAAA,OAAM;AAAA,IAClF,oBAAC,OAAA,EAAI,WAAU,8CAA8C,UAAA,MAAA,CAAM;AAAA,EAAA,GACrE;AAEJ;AAEA,SAAS,eAAe,EAAE,WAAqC;AAC7D,QAAM,MAAM,QAAQ,eAAe;AACnC,QAAM,MAAM,QAAQ;AACpB,QAAM,MAAM,QAAQ;AACpB,QAAM,cAAc,OAAO,OAAO,MAAM,IAAI,KAAK,IAAI,KAAK,KAAK,MAAO,MAAM,MAAO,GAAG,CAAC,IAAI;AAC3F,SACE,qBAAC,OAAA,EAAI,WAAU,kCACb,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAC;AAAA,QACxB,QAAQ,KAAK,IAAI,KAAK,GAAG;AAAA,QACzB,MAAM,QAAQ,GAAG;AAAA,MAAA;AAAA,IAAA;AAAA,IAEnB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,OAAO,QAAQ,SAAY,YAAY,GAAG,IAAI;AAAA,QAC9C,QAAQ;AAAA,QACR,MAAM,WAAW,KAAK,GAAG;AAAA,MAAA;AAAA,IAAA;AAAA,IAE3B,oBAAC,YAAA,EAAW,OAAM,OAAM,OAAO,QAAQ,SAAY,YAAY,GAAG,IAAI,OAAO,MAAK,UAAA,CAAU;AAAA,IAC5F;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,OAAO,QAAQ,eAAe,SAAY,OAAO,QAAQ,UAAU,IAAI;AAAA,QACvE,QAAQ,QAAQ,aAAa,KAAK,IAAI,KAAM,QAAQ,aAAa,OAAQ,GAAG,IAAI;AAAA,QAChF,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACP,GACF;AAEJ;AAEA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AACT,GAKG;AACD,QAAM,UAAqC;AAAA,IACzC,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA;AAER,QAAM,WAAsC;AAAA,IAC1C,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA;AAER,SACE,qBAAC,OAAA,EAAI,WAAU,iGACb,UAAA;AAAA,IAAA,oBAAC,QAAA,EAAK,WAAU,yEACb,UAAA,OACH;AAAA,IACA,oBAAC,UAAK,WAAW,+CAA+C,SAAS,IAAI,CAAC,IAC3E,UAAA,MAAA,CACH;AAAA,IACC,WAAW,UACV,oBAAC,OAAA,EAAI,WAAU,sDACb,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,UAAU,QAAQ,IAAI,CAAC;AAAA,QAClC,OAAO,EAAE,OAAO,GAAG,MAAM,IAAA;AAAA,MAAI;AAAA,IAAA,EAC/B,CACF;AAAA,EAAA,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"DiagnosticsDetailPanel.js","sources":["../../../src/data/diagnostics/DiagnosticsDetailPanel.tsx"],"sourcesContent":["import { useEffect, useMemo, useState, type ReactNode } from \"react\";\nimport { Icon } from \"../Icon\";\nimport type { GaugeTone } from \"../Gauge\";\nimport { UiDebug, UiDebugSmall, UiRefresh, UiSearch, UiServerProcess, UiLoader } from \"../../icons\";\nimport type { ProcessNode, RunMeta } from \"./types\";\nimport { formatBytes, processLabel, processStateColor, processStateIcon } from \"./utils\";\nimport { countStackByState, parseStackDump, type ParsedStack } from \"./stacktrace\";\nimport { GoroutineCard } from \"./GoroutineCard\";\nimport { ThreadCard } from \"./ThreadCard\";\nimport type { StackFrameActions } from \"./StackFrameRow\";\nimport { goroutineStateDot, threadStateDot } from \"./state-styles\";\nimport type { JvmFrameSourceResolver } from \"./JvmStackTrace\";\n\nconst STACK_MIN_LINES = 10;\nconst STACK_LINE_HEIGHT_REM = 1;\nconst STACK_MIN_HEIGHT = `${STACK_MIN_LINES * STACK_LINE_HEIGHT_REM}rem`;\n\nfunction cpuTone(pct: number): GaugeTone {\n if (pct >= 90) return \"danger\";\n if (pct >= 60) return \"warning\";\n if (pct > 0) return \"success\";\n return \"neutral\";\n}\n\nfunction memoryTone(rss: number | undefined, vms: number | undefined): GaugeTone {\n if (!rss || !vms) return \"neutral\";\n const ratio = rss / vms;\n if (ratio >= 0.9) return \"danger\";\n if (ratio >= 0.6) return \"warning\";\n return \"info\";\n}\n\nexport type DiagnosticsDetailPanelProps = {\n /** Selected process; null renders the empty selection state. */\n process: ProcessNode | null;\n /** Shows loading state while stack capture is being collected. */\n collectBusy?: boolean;\n /** Called when the user requests a fresh stack capture. */\n onCollectStack?: (pid: number) => void | Promise<void>;\n /** Optional run metadata rendered above diagnostics. */\n runMeta?: RunMeta;\n /**\n * Optional resolver that supplies inline source under each JVM stack frame,\n * so the rendered thread dump can be augmented in place (e.g. with decompiled\n * source). A missing class must resolve to undefined, never throw.\n */\n resolveSource?: JvmFrameSourceResolver;\n /**\n * Optional trailing actions rendered on each stack frame, revealed on hover.\n * Lets a host app hang per-frame affordances (trace/watch/decompile) off the\n * rendered thread dump.\n */\n frameActions?: StackFrameActions;\n /**\n * Caller-supplied action buttons rendered right-aligned in the header row,\n * next to the title and Refresh. Use for download/decompile-style actions.\n */\n headerActions?: ReactNode;\n /**\n * The capture holds a single, already-selected item (e.g. one thread the\n * caller picked from its own list). Suppresses the redundant per-item filter\n * UI (search box, state chips, hide-runtime, count) and lifts Refresh into\n * the header row so the detail view shows just that item's frames.\n */\n singleItem?: boolean;\n};\n\nexport function DiagnosticsDetailPanel({\n process,\n collectBusy,\n onCollectStack,\n runMeta,\n resolveSource,\n frameActions,\n headerActions,\n singleItem,\n}: DiagnosticsDetailPanelProps) {\n const [search, setSearch] = useState(\"\");\n const [selectedStates, setSelectedStates] = useState<Set<string>>(new Set());\n const [hideRuntimeOnly, setHideRuntimeOnly] = useState(true);\n const stack = process?.stack_capture;\n const parsed = useMemo<ParsedStack>(() => parseStackDump(stack?.text || \"\"), [stack?.text]);\n const stateCounts = useMemo(() => countStackByState(parsed), [parsed]);\n const filtered = useMemo(() => {\n const needle = search.trim().toLowerCase();\n const items: Array<{\n state: string;\n userFrameCount: number;\n searchText: string;\n }> = parsed.format === \"jvm\" ? parsed.threads : parsed.format === \"go\" ? parsed.goroutines : [];\n if (singleItem) return items;\n return items.filter((item) => {\n if (selectedStates.size > 0 && !selectedStates.has(item.state)) return false;\n if (hideRuntimeOnly && item.userFrameCount === 0) return false;\n if (needle && !item.searchText.includes(needle)) return false;\n return true;\n });\n }, [parsed, search, selectedStates, hideRuntimeOnly, singleItem]);\n\n useEffect(() => {\n setSearch(\"\");\n setSelectedStates(new Set());\n setHideRuntimeOnly(true);\n }, [stack?.text, process?.pid]);\n\n if (!process) {\n return (\n <div className=\"flex items-center justify-center h-full text-muted-foreground text-sm\">\n <div className=\"text-center\">\n <Icon icon={UiServerProcess} className=\"text-4xl mb-density-2\" />\n <div>Select a process to view diagnostics</div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full min-h-0 flex flex-col gap-density-3 p-density-4\">\n <Header\n process={process}\n actions={\n <div className=\"flex items-center gap-density-2\">\n {singleItem && onCollectStack && (\n <CollectButton pid={process.pid} busy={collectBusy ?? false} onClick={onCollectStack} />\n )}\n {headerActions}\n </div>\n }\n />\n {runMeta && <RunSection runMeta={runMeta} />}\n {process.command && (\n <PanelSection title=\"Command\">\n <pre className=\"text-xs text-foreground whitespace-pre-wrap font-mono bg-blue-50 dark:bg-blue-500/10 rounded p-2 break-all\">\n {process.command}\n </pre>\n </PanelSection>\n )}\n\n <PanelSection title=\"Metrics\">\n <ProcessMetrics process={process} />\n </PanelSection>\n\n <PanelSection title=\"Stack\" grow>\n <StackBlock\n process={process}\n parsed={parsed}\n stateCounts={stateCounts}\n filtered={filtered}\n search={search}\n setSearch={setSearch}\n selectedStates={selectedStates}\n setSelectedStates={setSelectedStates}\n hideRuntimeOnly={hideRuntimeOnly}\n setHideRuntimeOnly={setHideRuntimeOnly}\n collectBusy={collectBusy ?? false}\n singleItem={singleItem ?? false}\n {...(onCollectStack ? { onCollectStack } : {})}\n {...(resolveSource ? { resolveSource } : {})}\n {...(frameActions ? { frameActions } : {})}\n />\n </PanelSection>\n </div>\n );\n}\n\nfunction Header({ process, actions }: { process: ProcessNode; actions?: ReactNode }) {\n return (\n <div className=\"flex items-start justify-between gap-density-3\">\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-density-2 flex-wrap\">\n <Icon\n icon={process.is_root ? UiServerProcess : UiDebug}\n className=\"text-2xl text-blue-600\"\n />\n <h2 className=\"text-lg font-bold text-foreground break-words\">{processLabel(process)}</h2>\n {process.status ? (\n <span\n className={`inline-flex items-center gap-1 rounded-full bg-muted px-2 py-0.5 text-xs ${processStateColor(\n process.status,\n )}`}\n >\n <Icon icon={processStateIcon(process.status)} />\n {process.status}\n </span>\n ) : null}\n </div>\n <div className=\"mt-1 flex items-center gap-density-2 flex-wrap text-xs text-muted-foreground\">\n <span className=\"font-mono\">pid {process.pid}</span>\n {process.ppid ? <span className=\"font-mono\">ppid {process.ppid}</span> : null}\n </div>\n </div>\n {actions ? <div className=\"shrink-0\">{actions}</div> : null}\n </div>\n );\n}\n\nfunction RunSection({ runMeta }: { runMeta: RunMeta }) {\n return (\n <PanelSection title=\"Run\">\n <div className=\"grid grid-cols-2 gap-density-2 text-sm\">\n <InfoTile\n label={runMeta.kind === \"rerun\" ? `Rerun #${runMeta.sequence}` : \"Initial run\"}\n value={runMeta.started ? new Date(runMeta.started).toLocaleString() : \"Unavailable\"}\n />\n <InfoTile\n label=\"Finished\"\n value={runMeta.ended ? new Date(runMeta.ended).toLocaleString() : \"In progress\"}\n />\n </div>\n </PanelSection>\n );\n}\n\ntype StackFilterItem = {\n state: string;\n userFrameCount: number;\n searchText: string;\n};\n\ntype StackBlockProps = {\n process: ProcessNode;\n parsed: ParsedStack;\n stateCounts: Map<string, number>;\n filtered: StackFilterItem[];\n search: string;\n setSearch: (v: string) => void;\n selectedStates: Set<string>;\n setSelectedStates: (updater: (prev: Set<string>) => Set<string>) => void;\n hideRuntimeOnly: boolean;\n setHideRuntimeOnly: (v: boolean) => void;\n collectBusy?: boolean;\n onCollectStack?: (pid: number) => void | Promise<void>;\n resolveSource?: JvmFrameSourceResolver;\n frameActions?: StackFrameActions;\n singleItem?: boolean;\n};\n\nfunction stackItemCount(parsed: ParsedStack): number {\n if (parsed.format === \"jvm\") return parsed.threads.length;\n if (parsed.format === \"go\") return parsed.goroutines.length;\n return 0;\n}\n\nfunction stackItemLabel(parsed: ParsedStack): string {\n if (parsed.format === \"jvm\") return \"threads\";\n if (parsed.format === \"go\") return \"goroutines\";\n return \"frames\";\n}\n\nfunction stackStateDot(parsed: ParsedStack, state: string): string {\n return parsed.format === \"jvm\" ? threadStateDot(state) : goroutineStateDot(state);\n}\n\nfunction StackBlock(props: StackBlockProps) {\n const {\n process,\n parsed,\n stateCounts,\n filtered,\n search,\n setSearch,\n selectedStates,\n setSelectedStates,\n hideRuntimeOnly,\n setHideRuntimeOnly,\n collectBusy,\n onCollectStack,\n resolveSource,\n frameActions,\n singleItem,\n } = props;\n const stack = process.stack_capture;\n\n if (!stack?.text) {\n return (\n <div className=\"h-full min-h-[14rem] flex flex-col justify-center gap-density-3 p-density-3\">\n <div className=\"space-y-1.5\">\n <div\n className={`h-3 w-40 rounded ${collectBusy ? \"animate-pulse bg-muted\" : \"bg-muted/70\"}`}\n />\n <div\n className={`h-3 w-full rounded ${collectBusy ? \"animate-pulse bg-muted\" : \"bg-muted/70\"}`}\n />\n <div\n className={`h-3 w-5/6 rounded ${collectBusy ? \"animate-pulse bg-muted\" : \"bg-muted/70\"}`}\n />\n </div>\n <div className=\"flex items-center justify-between gap-density-3\">\n <div className=\"text-sm text-muted-foreground\">\n {stack?.error\n ? stack.error\n : collectBusy\n ? \"Collecting stack trace...\"\n : \"No stack trace collected yet.\"}\n </div>\n {onCollectStack && (\n <CollectButton\n pid={process.pid}\n busy={collectBusy ?? false}\n onClick={onCollectStack}\n primary\n />\n )}\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full min-h-0 flex flex-col\">\n {!singleItem && (\n <div className=\"px-1 py-1.5 space-y-density-2\">\n <div className=\"flex items-center justify-between gap-density-2 text-[11px] text-muted-foreground flex-wrap\">\n <div className=\"flex items-center gap-density-2 flex-wrap\">\n <StackStatusBadge status={stack.status} />\n {stack.collected_at && <span>{new Date(stack.collected_at).toLocaleString()}</span>}\n {stackItemCount(parsed) > 0 && (\n <span>\n {filtered.length} / {stackItemCount(parsed)} {stackItemLabel(parsed)}\n </span>\n )}\n </div>\n {onCollectStack && (\n <CollectButton pid={process.pid} busy={collectBusy ?? false} onClick={onCollectStack} />\n )}\n </div>\n {stackItemCount(parsed) > 0 && (\n <>\n <div className=\"flex items-center gap-1.5 flex-wrap\">\n <div className=\"relative min-w-[14rem] flex-1\">\n <Icon\n icon={UiSearch}\n className=\"absolute left-2 top-1/2 -translate-y-1/2 text-muted-foreground text-xs\"\n />\n <input\n className=\"w-full rounded-md border border-border bg-muted/50 py-1 pl-7 pr-2 text-xs outline-none focus:border-primary focus:bg-background\"\n placeholder={\n parsed.format === \"jvm\"\n ? \"Filter by thread name, function, or file\"\n : \"Filter by goroutine id, function, or file\"\n }\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n />\n </div>\n <label className=\"inline-flex items-center gap-1.5 rounded-md border border-border bg-muted/50 px-2 py-1 text-[11px] text-muted-foreground\">\n <input\n type=\"checkbox\"\n checked={hideRuntimeOnly}\n onChange={(e) => setHideRuntimeOnly(e.target.checked)}\n />\n Hide runtime-only\n </label>\n {(search || selectedStates.size > 0 || !hideRuntimeOnly) && (\n <button\n className=\"text-[11px] text-muted-foreground hover:text-foreground\"\n onClick={() => {\n setSearch(\"\");\n setSelectedStates(() => new Set());\n setHideRuntimeOnly(true);\n }}\n >\n Clear\n </button>\n )}\n </div>\n <div className=\"flex items-center gap-1 flex-wrap\">\n {Array.from(stateCounts.entries())\n .sort((a, b) => b[1] - a[1])\n .map(([state, count]) => {\n const active = selectedStates.has(state);\n return (\n <button\n key={state}\n className={`inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-[11px] transition-colors ${\n active\n ? \"border-primary bg-primary/10 text-primary\"\n : \"border-border bg-muted/50 text-muted-foreground hover:bg-background\"\n }`}\n onClick={() => {\n setSelectedStates((prev) => {\n const next = new Set(prev);\n if (next.has(state)) next.delete(state);\n else next.add(state);\n return next;\n });\n }}\n >\n <span className={`h-2 w-2 rounded-full ${stackStateDot(parsed, state)}`} />\n {state}\n <span className=\"text-[10px] opacity-70\">{count}</span>\n </button>\n );\n })}\n </div>\n </>\n )}\n </div>\n )}\n {stack.error && (\n <div className=\"mt-density-2 text-xs text-red-600 whitespace-pre-wrap\">{stack.error}</div>\n )}\n {stackItemCount(parsed) === 0 ? (\n <pre\n className=\"flex-1 min-h-0 overflow-auto py-1 text-[11px] text-foreground whitespace-pre-wrap font-mono leading-4\"\n style={{ minHeight: STACK_MIN_HEIGHT }}\n >\n {stack.text}\n </pre>\n ) : (\n <div\n className=\"flex-1 min-h-0 overflow-auto py-1 space-y-1\"\n style={{ minHeight: STACK_MIN_HEIGHT }}\n >\n {filtered.length === 0 && (\n <div className=\"py-density-3 text-center text-xs text-muted-foreground\">\n No {stackItemLabel(parsed)} match the current filters.\n </div>\n )}\n {parsed.format === \"jvm\" &&\n parsed.threads\n .filter((t) => filtered.includes(t))\n .map((t) => (\n <ThreadCard\n key={t.id}\n thread={t}\n search={search}\n hideRuntimeOnly={hideRuntimeOnly}\n {...(resolveSource ? { resolveSource } : {})}\n {...(frameActions ? { frameActions } : {})}\n />\n ))}\n {parsed.format === \"go\" &&\n parsed.goroutines\n .filter((g) => filtered.includes(g))\n .map((goroutine) => (\n <GoroutineCard\n key={goroutine.id}\n goroutine={goroutine}\n search={search}\n hideRuntimeOnly={hideRuntimeOnly}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\nfunction StackStatusBadge({ status }: { status: string }) {\n const cls =\n status === \"ready\"\n ? \"bg-green-100 text-green-700 dark:bg-green-500/20 dark:text-green-300\"\n : status === \"unsupported\"\n ? \"bg-yellow-100 text-yellow-700 dark:bg-yellow-500/20 dark:text-yellow-300\"\n : \"bg-red-100 text-red-700 dark:bg-red-500/20 dark:text-red-300\";\n return <span className={`px-2 py-0.5 rounded-full ${cls}`}>{status}</span>;\n}\n\nfunction CollectButton({\n pid,\n busy,\n onClick,\n primary,\n}: {\n pid: number;\n busy?: boolean;\n onClick: (pid: number) => void | Promise<void>;\n primary?: boolean;\n}) {\n const base =\n \"shrink-0 text-[11px] px-2 py-1 rounded disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-1\";\n const style = primary\n ? \"bg-primary text-primary-foreground hover:bg-primary/90\"\n : \"border border-border text-muted-foreground hover:bg-accent\";\n return (\n <button\n className={`${base} ${style}`}\n onClick={() => onClick(pid)}\n disabled={busy}\n title={primary ? \"Collect the latest stack trace\" : \"Refresh stack trace\"}\n >\n <Icon icon={busy ? UiLoader : primary ? UiDebugSmall : UiRefresh} />\n {busy ? \"Collecting...\" : primary ? \"Collect stack trace\" : \"Refresh\"}\n </button>\n );\n}\n\nfunction PanelSection({\n title,\n grow,\n children,\n}: {\n title: string;\n grow?: boolean;\n children: ReactNode;\n}) {\n return (\n <section className={grow ? \"flex min-h-0 flex-1 flex-col\" : \"\"}>\n <div className=\"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground mb-1.5\">\n {title}\n </div>\n {grow ? <div className=\"flex-1 min-h-0 overflow-hidden\">{children}</div> : children}\n </section>\n );\n}\n\nfunction InfoTile({ label, value }: { label: string; value: string }) {\n return (\n <div className=\"border border-border rounded-lg bg-muted/50 px-2.5 py-density-2\">\n <div className=\"text-[10px] uppercase tracking-wide text-muted-foreground\">{label}</div>\n <div className=\"text-xs font-medium text-foreground mt-0.5\">{value}</div>\n </div>\n );\n}\n\nfunction ProcessMetrics({ process }: { process: ProcessNode }) {\n const cpu = process.cpu_percent || 0;\n const rss = process.rss;\n const vms = process.vms;\n const memRatioPct = rss && vms && vms > 0 ? Math.min(100, Math.round((rss / vms) * 100)) : 0;\n return (\n <div className=\"grid grid-cols-4 gap-density-1\">\n <MetricTile\n label=\"CPU\"\n value={`${cpu.toFixed(1)}%`}\n barPct={Math.min(100, cpu)}\n tone={cpuTone(cpu)}\n />\n <MetricTile\n label=\"RSS\"\n value={rss !== undefined ? formatBytes(rss) : \"n/a\"}\n barPct={memRatioPct}\n tone={memoryTone(rss, vms)}\n />\n <MetricTile label=\"VMS\" value={vms !== undefined ? formatBytes(vms) : \"n/a\"} tone=\"neutral\" />\n <MetricTile\n label=\"Files\"\n value={process.open_files !== undefined ? String(process.open_files) : \"n/a\"}\n barPct={process.open_files ? Math.min(100, (process.open_files / 1024) * 100) : 0}\n tone=\"info\"\n />\n </div>\n );\n}\n\nfunction MetricTile({\n label,\n value,\n barPct,\n tone = \"neutral\",\n}: {\n label: string;\n value: string;\n barPct?: number;\n tone?: GaugeTone;\n}) {\n const toneBar: Record<GaugeTone, string> = {\n neutral: \"bg-muted-foreground/40\",\n success: \"bg-green-500\",\n warning: \"bg-yellow-500\",\n danger: \"bg-red-500\",\n info: \"bg-blue-500\",\n };\n const toneText: Record<GaugeTone, string> = {\n neutral: \"text-foreground\",\n success: \"text-green-600 dark:text-green-400\",\n warning: \"text-yellow-600 dark:text-yellow-400\",\n danger: \"text-red-600 dark:text-red-400\",\n info: \"text-blue-600 dark:text-blue-400\",\n };\n return (\n <div className=\"flex flex-col gap-0.5 rounded-md border border-border bg-background px-density-2 py-1 min-w-0\">\n <span className=\"text-[9px] uppercase tracking-wide text-muted-foreground leading-none\">\n {label}\n </span>\n <span className={`text-xs font-semibold tabular-nums truncate ${toneText[tone]}`}>\n {value}\n </span>\n {barPct !== undefined && (\n <div className=\"h-0.5 w-full rounded-full bg-muted overflow-hidden\">\n <div\n className={`h-full ${toneBar[tone]} transition-all duration-300`}\n style={{ width: `${barPct}%` }}\n />\n </div>\n )}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAaA,MAAM,kBAAkB;AACxB,MAAM,wBAAwB;AAC9B,MAAM,mBAAmB,GAAG,kBAAkB,qBAAqB;AAEnE,SAAS,QAAQ,KAAwB;AACvC,MAAI,OAAO,GAAI,QAAO;AACtB,MAAI,OAAO,GAAI,QAAO;AACtB,MAAI,MAAM,EAAG,QAAO;AACpB,SAAO;AACT;AAEA,SAAS,WAAW,KAAyB,KAAoC;AAC/E,MAAI,CAAC,OAAO,CAAC,IAAK,QAAO;AACzB,QAAM,QAAQ,MAAM;AACpB,MAAI,SAAS,IAAK,QAAO;AACzB,MAAI,SAAS,IAAK,QAAO;AACzB,SAAO;AACT;AAqCO,SAAS,uBAAuB;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAgC;AAC9B,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,EAAE;AACvC,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAsB,oBAAI,KAAK;AAC3E,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,IAAI;AAC3D,QAAM,QAAQ,mCAAS;AACvB,QAAM,SAAS,QAAqB,MAAM,gBAAe,+BAAO,SAAQ,EAAE,GAAG,CAAC,+BAAO,IAAI,CAAC;AAC1F,QAAM,cAAc,QAAQ,MAAM,kBAAkB,MAAM,GAAG,CAAC,MAAM,CAAC;AACrE,QAAM,WAAW,QAAQ,MAAM;AAC7B,UAAM,SAAS,OAAO,KAAA,EAAO,YAAA;AAC7B,UAAM,QAID,OAAO,WAAW,QAAQ,OAAO,UAAU,OAAO,WAAW,OAAO,OAAO,aAAa,CAAA;AAC7F,QAAI,WAAY,QAAO;AACvB,WAAO,MAAM,OAAO,CAAC,SAAS;AAC5B,UAAI,eAAe,OAAO,KAAK,CAAC,eAAe,IAAI,KAAK,KAAK,EAAG,QAAO;AACvE,UAAI,mBAAmB,KAAK,mBAAmB,EAAG,QAAO;AACzD,UAAI,UAAU,CAAC,KAAK,WAAW,SAAS,MAAM,EAAG,QAAO;AACxD,aAAO;AAAA,IACT,CAAC;AAAA,EACH,GAAG,CAAC,QAAQ,QAAQ,gBAAgB,iBAAiB,UAAU,CAAC;AAEhE,YAAU,MAAM;AACd,cAAU,EAAE;AACZ,sBAAkB,oBAAI,KAAK;AAC3B,uBAAmB,IAAI;AAAA,EACzB,GAAG,CAAC,+BAAO,MAAM,mCAAS,GAAG,CAAC;AAE9B,MAAI,CAAC,SAAS;AACZ,+BACG,OAAA,EAAI,WAAU,yEACb,UAAA,qBAAC,OAAA,EAAI,WAAU,eACb,UAAA;AAAA,MAAA,oBAAC,MAAA,EAAK,MAAM,iBAAiB,WAAU,yBAAwB;AAAA,MAC/D,oBAAC,SAAI,UAAA,uCAAA,CAAoC;AAAA,IAAA,EAAA,CAC3C,EAAA,CACF;AAAA,EAEJ;AAEA,SACE,qBAAC,OAAA,EAAI,WAAU,0DACb,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SACE,qBAAC,OAAA,EAAI,WAAU,mCACZ,UAAA;AAAA,UAAA,cAAc,kBACb,oBAAC,eAAA,EAAc,KAAK,QAAQ,KAAK,MAAM,eAAe,OAAO,SAAS,eAAA,CAAgB;AAAA,UAEvF;AAAA,QAAA,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,IAGH,WAAW,oBAAC,YAAA,EAAW,QAAA,CAAkB;AAAA,IACzC,QAAQ,WACP,oBAAC,cAAA,EAAa,OAAM,WAClB,UAAA,oBAAC,OAAA,EAAI,WAAU,8GACZ,UAAA,QAAQ,QAAA,CACX,GACF;AAAA,wBAGD,cAAA,EAAa,OAAM,WAClB,UAAA,oBAAC,gBAAA,EAAe,SAAkB,GACpC;AAAA,IAEA,oBAAC,cAAA,EAAa,OAAM,SAAQ,MAAI,MAC9B,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,aAAa,eAAe;AAAA,QAC5B,YAAY,cAAc;AAAA,QACzB,GAAI,iBAAiB,EAAE,eAAA,IAAmB,CAAA;AAAA,QAC1C,GAAI,gBAAgB,EAAE,cAAA,IAAkB,CAAA;AAAA,QACxC,GAAI,eAAe,EAAE,iBAAiB,CAAA;AAAA,MAAC;AAAA,IAAA,EAC1C,CACF;AAAA,EAAA,GACF;AAEJ;AAEA,SAAS,OAAO,EAAE,SAAS,WAA0D;AACnF,SACE,qBAAC,OAAA,EAAI,WAAU,kDACb,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,MAAA,qBAAC,OAAA,EAAI,WAAU,6CACb,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAM,QAAQ,UAAU,kBAAkB;AAAA,YAC1C,WAAU;AAAA,UAAA;AAAA,QAAA;AAAA,4BAEX,MAAA,EAAG,WAAU,iDAAiD,UAAA,aAAa,OAAO,GAAE;AAAA,QACpF,QAAQ,SACP;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,4EAA4E;AAAA,cACrF,QAAQ;AAAA,YAAA,CACT;AAAA,YAED,UAAA;AAAA,cAAA,oBAAC,MAAA,EAAK,MAAM,iBAAiB,QAAQ,MAAM,GAAG;AAAA,cAC7C,QAAQ;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,IAET;AAAA,MAAA,GACN;AAAA,MACA,qBAAC,OAAA,EAAI,WAAU,gFACb,UAAA;AAAA,QAAA,qBAAC,QAAA,EAAK,WAAU,aAAY,UAAA;AAAA,UAAA;AAAA,UAAK,QAAQ;AAAA,QAAA,GAAI;AAAA,QAC5C,QAAQ,OAAO,qBAAC,QAAA,EAAK,WAAU,aAAY,UAAA;AAAA,UAAA;AAAA,UAAM,QAAQ;AAAA,QAAA,EAAA,CAAK,IAAU;AAAA,MAAA,EAAA,CAC3E;AAAA,IAAA,GACF;AAAA,IACC,UAAU,oBAAC,OAAA,EAAI,WAAU,YAAY,mBAAQ,IAAS;AAAA,EAAA,GACzD;AAEJ;AAEA,SAAS,WAAW,EAAE,WAAiC;AACrD,6BACG,cAAA,EAAa,OAAM,OAClB,UAAA,qBAAC,OAAA,EAAI,WAAU,0CACb,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO,QAAQ,SAAS,UAAU,UAAU,QAAQ,QAAQ,KAAK;AAAA,QACjE,OAAO,QAAQ,UAAU,IAAI,KAAK,QAAQ,OAAO,EAAE,mBAAmB;AAAA,MAAA;AAAA,IAAA;AAAA,IAExE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,OAAO,QAAQ,QAAQ,IAAI,KAAK,QAAQ,KAAK,EAAE,mBAAmB;AAAA,MAAA;AAAA,IAAA;AAAA,EACpE,EAAA,CACF,EAAA,CACF;AAEJ;AA0BA,SAAS,eAAe,QAA6B;AACnD,MAAI,OAAO,WAAW,MAAO,QAAO,OAAO,QAAQ;AACnD,MAAI,OAAO,WAAW,KAAM,QAAO,OAAO,WAAW;AACrD,SAAO;AACT;AAEA,SAAS,eAAe,QAA6B;AACnD,MAAI,OAAO,WAAW,MAAO,QAAO;AACpC,MAAI,OAAO,WAAW,KAAM,QAAO;AACnC,SAAO;AACT;AAEA,SAAS,cAAc,QAAqB,OAAuB;AACjE,SAAO,OAAO,WAAW,QAAQ,eAAe,KAAK,IAAI,kBAAkB,KAAK;AAClF;AAEA,SAAS,WAAW,OAAwB;AAC1C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE;AACJ,QAAM,QAAQ,QAAQ;AAEtB,MAAI,EAAC,+BAAO,OAAM;AAChB,WACE,qBAAC,OAAA,EAAI,WAAU,+EACb,UAAA;AAAA,MAAA,qBAAC,OAAA,EAAI,WAAU,eACb,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,oBAAoB,cAAc,2BAA2B,aAAa;AAAA,UAAA;AAAA,QAAA;AAAA,QAEvF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,sBAAsB,cAAc,2BAA2B,aAAa;AAAA,UAAA;AAAA,QAAA;AAAA,QAEzF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,qBAAqB,cAAc,2BAA2B,aAAa;AAAA,UAAA;AAAA,QAAA;AAAA,MACxF,GACF;AAAA,MACA,qBAAC,OAAA,EAAI,WAAU,mDACb,UAAA;AAAA,QAAA,oBAAC,OAAA,EAAI,WAAU,iCACZ,WAAA,+BAAO,SACJ,MAAM,QACN,cACE,8BACA,gCAAA,CACR;AAAA,QACC,kBACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK,QAAQ;AAAA,YACb,MAAM,eAAe;AAAA,YACrB,SAAS;AAAA,YACT,SAAO;AAAA,UAAA;AAAA,QAAA;AAAA,MACT,EAAA,CAEJ;AAAA,IAAA,GACF;AAAA,EAEJ;AAEA,SACE,qBAAC,OAAA,EAAI,WAAU,gCACZ,UAAA;AAAA,IAAA,CAAC,cACF,qBAAC,OAAA,EAAI,WAAU,iCACb,UAAA;AAAA,MAAA,qBAAC,OAAA,EAAI,WAAU,+FACb,UAAA;AAAA,QAAA,qBAAC,OAAA,EAAI,WAAU,6CACb,UAAA;AAAA,UAAA,oBAAC,kBAAA,EAAiB,QAAQ,MAAM,OAAA,CAAQ;AAAA,UACvC,MAAM,gBAAgB,oBAAC,QAAA,EAAM,UAAA,IAAI,KAAK,MAAM,YAAY,EAAE,eAAA,EAAe,CAAE;AAAA,UAC3E,eAAe,MAAM,IAAI,0BACvB,QAAA,EACE,UAAA;AAAA,YAAA,SAAS;AAAA,YAAO;AAAA,YAAI,eAAe,MAAM;AAAA,YAAE;AAAA,YAAE,eAAe,MAAM;AAAA,UAAA,EAAA,CACrE;AAAA,QAAA,GAEJ;AAAA,QACC,kBACC,oBAAC,eAAA,EAAc,KAAK,QAAQ,KAAK,MAAM,eAAe,OAAO,SAAS,eAAA,CAAgB;AAAA,MAAA,GAE1F;AAAA,MACC,eAAe,MAAM,IAAI,KACxB,qBAAA,UAAA,EACE,UAAA;AAAA,QAAA,qBAAC,OAAA,EAAI,WAAU,uCACb,UAAA;AAAA,UAAA,qBAAC,OAAA,EAAI,WAAU,iCACb,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAM;AAAA,gBACN,WAAU;AAAA,cAAA;AAAA,YAAA;AAAA,YAEZ;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,aACE,OAAO,WAAW,QACd,6CACA;AAAA,gBAEN,OAAO;AAAA,gBACP,UAAU,CAAC,MAAM,UAAU,EAAE,OAAO,KAAK;AAAA,cAAA;AAAA,YAAA;AAAA,UAC3C,GACF;AAAA,UACA,qBAAC,SAAA,EAAM,WAAU,4HACf,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAS;AAAA,gBACT,UAAU,CAAC,MAAM,mBAAmB,EAAE,OAAO,OAAO;AAAA,cAAA;AAAA,YAAA;AAAA,YACpD;AAAA,UAAA,GAEJ;AAAA,WACE,UAAU,eAAe,OAAO,KAAK,CAAC,oBACtC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,SAAS,MAAM;AACb,0BAAU,EAAE;AACZ,kCAAkB,MAAM,oBAAI,KAAK;AACjC,mCAAmB,IAAI;AAAA,cACzB;AAAA,cACD,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAED,GAEJ;AAAA,QACA,oBAAC,OAAA,EAAI,WAAU,qCACZ,UAAA,MAAM,KAAK,YAAY,QAAA,CAAS,EAC9B,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAC1B,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM;AACvB,gBAAM,SAAS,eAAe,IAAI,KAAK;AACvC,iBACE;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,WAAW,gGACT,SACI,8CACA,qEACN;AAAA,cACA,SAAS,MAAM;AACb,kCAAkB,CAAC,SAAS;AAC1B,wBAAM,OAAO,IAAI,IAAI,IAAI;AACzB,sBAAI,KAAK,IAAI,KAAK,EAAG,MAAK,OAAO,KAAK;AAAA,sBACjC,MAAK,IAAI,KAAK;AACnB,yBAAO;AAAA,gBACT,CAAC;AAAA,cACH;AAAA,cAEA,UAAA;AAAA,gBAAA,oBAAC,UAAK,WAAW,wBAAwB,cAAc,QAAQ,KAAK,CAAC,IAAI;AAAA,gBACxE;AAAA,gBACD,oBAAC,QAAA,EAAK,WAAU,0BAA0B,UAAA,MAAA,CAAM;AAAA,cAAA;AAAA,YAAA;AAAA,YAjB3C;AAAA,UAAA;AAAA,QAoBX,CAAC,EAAA,CACL;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,GAEJ;AAAA,IAEC,MAAM,SACL,oBAAC,SAAI,WAAU,yDAAyD,gBAAM,OAAM;AAAA,IAErF,eAAe,MAAM,MAAM,IAC1B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,WAAW,iBAAA;AAAA,QAEnB,UAAA,MAAM;AAAA,MAAA;AAAA,IAAA,IAGT;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,WAAW,iBAAA;AAAA,QAEnB,UAAA;AAAA,UAAA,SAAS,WAAW,KACnB,qBAAC,OAAA,EAAI,WAAU,0DAAyD,UAAA;AAAA,YAAA;AAAA,YAClE,eAAe,MAAM;AAAA,YAAE;AAAA,UAAA,GAC7B;AAAA,UAED,OAAO,WAAW,SACjB,OAAO,QACJ,OAAO,CAAC,MAAM,SAAS,SAAS,CAAC,CAAC,EAClC,IAAI,CAAC,MACJ;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,QAAQ;AAAA,cACR;AAAA,cACA;AAAA,cACC,GAAI,gBAAgB,EAAE,cAAA,IAAkB,CAAA;AAAA,cACxC,GAAI,eAAe,EAAE,iBAAiB,CAAA;AAAA,YAAC;AAAA,YALnC,EAAE;AAAA,UAAA,CAOV;AAAA,UACJ,OAAO,WAAW,QACjB,OAAO,WACJ,OAAO,CAAC,MAAM,SAAS,SAAS,CAAC,CAAC,EAClC,IAAI,CAAC,cACJ;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAAA,YAHK,UAAU;AAAA,UAAA,CAKlB;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACP,GAEJ;AAEJ;AAEA,SAAS,iBAAiB,EAAE,UAA8B;AACxD,QAAM,MACJ,WAAW,UACP,yEACA,WAAW,gBACT,6EACA;AACR,6BAAQ,QAAA,EAAK,WAAW,4BAA4B,GAAG,IAAK,UAAA,QAAO;AACrE;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,QAAM,OACJ;AACF,QAAM,QAAQ,UACV,2DACA;AACJ,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAG,IAAI,IAAI,KAAK;AAAA,MAC3B,SAAS,MAAM,QAAQ,GAAG;AAAA,MAC1B,UAAU;AAAA,MACV,OAAO,UAAU,mCAAmC;AAAA,MAEpD,UAAA;AAAA,QAAA,oBAAC,QAAK,MAAM,OAAO,WAAW,UAAU,eAAe,WAAW;AAAA,QACjE,OAAO,kBAAkB,UAAU,wBAAwB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGlE;AAEA,SAAS,aAAa;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,SACE,qBAAC,WAAA,EAAQ,WAAW,OAAO,iCAAiC,IAC1D,UAAA;AAAA,IAAA,oBAAC,OAAA,EAAI,WAAU,kFACZ,UAAA,OACH;AAAA,IACC,OAAO,oBAAC,OAAA,EAAI,WAAU,kCAAkC,UAAS,IAAS;AAAA,EAAA,GAC7E;AAEJ;AAEA,SAAS,SAAS,EAAE,OAAO,SAA2C;AACpE,SACE,qBAAC,OAAA,EAAI,WAAU,mEACb,UAAA;AAAA,IAAA,oBAAC,OAAA,EAAI,WAAU,6DAA6D,UAAA,OAAM;AAAA,IAClF,oBAAC,OAAA,EAAI,WAAU,8CAA8C,UAAA,MAAA,CAAM;AAAA,EAAA,GACrE;AAEJ;AAEA,SAAS,eAAe,EAAE,WAAqC;AAC7D,QAAM,MAAM,QAAQ,eAAe;AACnC,QAAM,MAAM,QAAQ;AACpB,QAAM,MAAM,QAAQ;AACpB,QAAM,cAAc,OAAO,OAAO,MAAM,IAAI,KAAK,IAAI,KAAK,KAAK,MAAO,MAAM,MAAO,GAAG,CAAC,IAAI;AAC3F,SACE,qBAAC,OAAA,EAAI,WAAU,kCACb,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,OAAO,GAAG,IAAI,QAAQ,CAAC,CAAC;AAAA,QACxB,QAAQ,KAAK,IAAI,KAAK,GAAG;AAAA,QACzB,MAAM,QAAQ,GAAG;AAAA,MAAA;AAAA,IAAA;AAAA,IAEnB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,OAAO,QAAQ,SAAY,YAAY,GAAG,IAAI;AAAA,QAC9C,QAAQ;AAAA,QACR,MAAM,WAAW,KAAK,GAAG;AAAA,MAAA;AAAA,IAAA;AAAA,IAE3B,oBAAC,YAAA,EAAW,OAAM,OAAM,OAAO,QAAQ,SAAY,YAAY,GAAG,IAAI,OAAO,MAAK,UAAA,CAAU;AAAA,IAC5F;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,OAAO,QAAQ,eAAe,SAAY,OAAO,QAAQ,UAAU,IAAI;AAAA,QACvE,QAAQ,QAAQ,aAAa,KAAK,IAAI,KAAM,QAAQ,aAAa,OAAQ,GAAG,IAAI;AAAA,QAChF,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACP,GACF;AAEJ;AAEA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AACT,GAKG;AACD,QAAM,UAAqC;AAAA,IACzC,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA;AAER,QAAM,WAAsC;AAAA,IAC1C,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA;AAER,SACE,qBAAC,OAAA,EAAI,WAAU,iGACb,UAAA;AAAA,IAAA,oBAAC,QAAA,EAAK,WAAU,yEACb,UAAA,OACH;AAAA,IACA,oBAAC,UAAK,WAAW,+CAA+C,SAAS,IAAI,CAAC,IAC3E,UAAA,MAAA,CACH;AAAA,IACC,WAAW,UACV,oBAAC,OAAA,EAAI,WAAU,sDACb,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,UAAU,QAAQ,IAAI,CAAC;AAAA,QAClC,OAAO,EAAE,OAAO,GAAG,MAAM,IAAA;AAAA,MAAI;AAAA,IAAA,EAC/B,CACF;AAAA,EAAA,GAEJ;AAEJ;"}