@flanksource/clicky-ui 0.3.18 → 0.3.20

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 (609) hide show
  1. package/dist/components/ComboboxMenu.cjs +5 -1
  2. package/dist/components/ComboboxMenu.cjs.map +1 -1
  3. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  4. package/dist/components/ComboboxMenu.js +5 -1
  5. package/dist/components/ComboboxMenu.js.map +1 -1
  6. package/dist/components/EndpointSelector.model.cjs +96 -0
  7. package/dist/components/EndpointSelector.model.cjs.map +1 -0
  8. package/dist/components/EndpointSelector.model.d.ts +2 -0
  9. package/dist/components/EndpointSelector.model.d.ts.map +1 -1
  10. package/dist/components/EndpointSelector.model.js +96 -0
  11. package/dist/components/EndpointSelector.model.js.map +1 -0
  12. package/dist/components/ErrorWrapper.cjs +1 -1
  13. package/dist/components/ErrorWrapper.cjs.map +1 -1
  14. package/dist/components/ErrorWrapper.js +1 -1
  15. package/dist/components/ErrorWrapper.js.map +1 -1
  16. package/dist/components/FilterBar.cjs +52 -2
  17. package/dist/components/FilterBar.cjs.map +1 -1
  18. package/dist/components/FilterBar.d.ts +20 -2
  19. package/dist/components/FilterBar.d.ts.map +1 -1
  20. package/dist/components/FilterBar.js +52 -2
  21. package/dist/components/FilterBar.js.map +1 -1
  22. package/dist/components/JSONPathField.cjs +87 -66
  23. package/dist/components/JSONPathField.cjs.map +1 -1
  24. package/dist/components/JSONPathField.d.ts +26 -9
  25. package/dist/components/JSONPathField.d.ts.map +1 -1
  26. package/dist/components/JSONPathField.js +88 -67
  27. package/dist/components/JSONPathField.js.map +1 -1
  28. package/dist/components/JSONPathPlayground.cjs +225 -0
  29. package/dist/components/JSONPathPlayground.cjs.map +1 -0
  30. package/dist/components/JSONPathPlayground.d.ts +59 -0
  31. package/dist/components/JSONPathPlayground.d.ts.map +1 -0
  32. package/dist/components/JSONPathPlayground.js +225 -0
  33. package/dist/components/JSONPathPlayground.js.map +1 -0
  34. package/dist/components/OnePasswordSelector.cjs +178 -0
  35. package/dist/components/OnePasswordSelector.cjs.map +1 -0
  36. package/dist/components/OnePasswordSelector.d.ts +8 -0
  37. package/dist/components/OnePasswordSelector.d.ts.map +1 -0
  38. package/dist/components/OnePasswordSelector.js +178 -0
  39. package/dist/components/OnePasswordSelector.js.map +1 -0
  40. package/dist/components/OnePasswordSelector.model.cjs +31 -0
  41. package/dist/components/OnePasswordSelector.model.cjs.map +1 -0
  42. package/dist/components/OnePasswordSelector.model.d.ts +27 -0
  43. package/dist/components/OnePasswordSelector.model.d.ts.map +1 -0
  44. package/dist/components/OnePasswordSelector.model.js +31 -0
  45. package/dist/components/OnePasswordSelector.model.js.map +1 -0
  46. package/dist/components/SecretFormField.cjs +142 -0
  47. package/dist/components/SecretFormField.cjs.map +1 -0
  48. package/dist/components/SecretFormField.d.ts +9 -0
  49. package/dist/components/SecretFormField.d.ts.map +1 -0
  50. package/dist/components/SecretFormField.js +142 -0
  51. package/dist/components/SecretFormField.js.map +1 -0
  52. package/dist/components/SecretKeySelector.cjs +20 -14
  53. package/dist/components/SecretKeySelector.cjs.map +1 -1
  54. package/dist/components/SecretKeySelector.d.ts +4 -1
  55. package/dist/components/SecretKeySelector.d.ts.map +1 -1
  56. package/dist/components/SecretKeySelector.js +20 -14
  57. package/dist/components/SecretKeySelector.js.map +1 -1
  58. package/dist/components/TreePickerField.cjs +55 -29
  59. package/dist/components/TreePickerField.cjs.map +1 -1
  60. package/dist/components/TreePickerField.d.ts +10 -1
  61. package/dist/components/TreePickerField.d.ts.map +1 -1
  62. package/dist/components/TreePickerField.js +56 -30
  63. package/dist/components/TreePickerField.js.map +1 -1
  64. package/dist/components/UnitStepControls.cjs +55 -0
  65. package/dist/components/UnitStepControls.cjs.map +1 -0
  66. package/dist/components/UnitStepControls.d.ts +10 -0
  67. package/dist/components/UnitStepControls.d.ts.map +1 -0
  68. package/dist/components/UnitStepControls.js +55 -0
  69. package/dist/components/UnitStepControls.js.map +1 -0
  70. package/dist/components/combobox-types.d.ts +9 -0
  71. package/dist/components/combobox-types.d.ts.map +1 -1
  72. package/dist/components/filter-bar-utils.cjs +7 -0
  73. package/dist/components/filter-bar-utils.cjs.map +1 -1
  74. package/dist/components/filter-bar-utils.d.ts.map +1 -1
  75. package/dist/components/filter-bar-utils.js +7 -0
  76. package/dist/components/filter-bar-utils.js.map +1 -1
  77. package/dist/components/jotai-bindings-core.cjs.map +1 -1
  78. package/dist/components/jotai-bindings-core.d.ts +4 -1
  79. package/dist/components/jotai-bindings-core.d.ts.map +1 -1
  80. package/dist/components/jotai-bindings-core.js.map +1 -1
  81. package/dist/components/json-schema-form-accordion-array.cjs +5 -73
  82. package/dist/components/json-schema-form-accordion-array.cjs.map +1 -1
  83. package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
  84. package/dist/components/json-schema-form-accordion-array.js +3 -71
  85. package/dist/components/json-schema-form-accordion-array.js.map +1 -1
  86. package/dist/components/json-schema-form-array.cjs +6 -1
  87. package/dist/components/json-schema-form-array.cjs.map +1 -1
  88. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  89. package/dist/components/json-schema-form-array.js +6 -1
  90. package/dist/components/json-schema-form-array.js.map +1 -1
  91. package/dist/components/json-schema-form-cards-array.cjs +96 -0
  92. package/dist/components/json-schema-form-cards-array.cjs.map +1 -0
  93. package/dist/components/json-schema-form-cards-array.d.ts +7 -0
  94. package/dist/components/json-schema-form-cards-array.d.ts.map +1 -0
  95. package/dist/components/json-schema-form-cards-array.js +96 -0
  96. package/dist/components/json-schema-form-cards-array.js.map +1 -0
  97. package/dist/components/json-schema-form-item-row.cjs +81 -0
  98. package/dist/components/json-schema-form-item-row.cjs.map +1 -0
  99. package/dist/components/json-schema-form-item-row.d.ts +19 -0
  100. package/dist/components/json-schema-form-item-row.d.ts.map +1 -0
  101. package/dist/components/json-schema-form-item-row.js +81 -0
  102. package/dist/components/json-schema-form-item-row.js.map +1 -0
  103. package/dist/components/json-schema-form-render.cjs +4 -3
  104. package/dist/components/json-schema-form-render.cjs.map +1 -1
  105. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  106. package/dist/components/json-schema-form-render.js +4 -3
  107. package/dist/components/json-schema-form-render.js.map +1 -1
  108. package/dist/components/json-schema-form-resolve.cjs +1 -1
  109. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  110. package/dist/components/json-schema-form-resolve.js +1 -1
  111. package/dist/components/json-schema-form-resolve.js.map +1 -1
  112. package/dist/components/json-schema-form-tone.cjs +12 -0
  113. package/dist/components/json-schema-form-tone.cjs.map +1 -1
  114. package/dist/components/json-schema-form-tone.js +12 -0
  115. package/dist/components/json-schema-form-tone.js.map +1 -1
  116. package/dist/components/json-schema-form-types.d.ts +10 -1
  117. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  118. package/dist/components/jsonPathTree.cjs +189 -0
  119. package/dist/components/jsonPathTree.cjs.map +1 -0
  120. package/dist/components/jsonPathTree.d.ts +92 -0
  121. package/dist/components/jsonPathTree.d.ts.map +1 -0
  122. package/dist/components/jsonPathTree.js +189 -0
  123. package/dist/components/jsonPathTree.js.map +1 -0
  124. package/dist/components/secret-form-extension.cjs +30 -0
  125. package/dist/components/secret-form-extension.cjs.map +1 -0
  126. package/dist/components/secret-form-extension.d.ts +23 -0
  127. package/dist/components/secret-form-extension.d.ts.map +1 -0
  128. package/dist/components/secret-form-extension.js +30 -0
  129. package/dist/components/secret-form-extension.js.map +1 -0
  130. package/dist/components/unit-form-extension.cjs +126 -0
  131. package/dist/components/unit-form-extension.cjs.map +1 -0
  132. package/dist/components/unit-form-extension.d.ts +8 -0
  133. package/dist/components/unit-form-extension.d.ts.map +1 -0
  134. package/dist/components/unit-form-extension.js +126 -0
  135. package/dist/components/unit-form-extension.js.map +1 -0
  136. package/dist/components.cjs +20 -0
  137. package/dist/components.cjs.map +1 -1
  138. package/dist/components.d.ts +7 -0
  139. package/dist/components.d.ts.map +1 -1
  140. package/dist/components.js +20 -0
  141. package/dist/components.js.map +1 -1
  142. package/dist/data/TaskExecDetails.cjs +40 -0
  143. package/dist/data/TaskExecDetails.cjs.map +1 -0
  144. package/dist/data/TaskExecDetails.d.ts +5 -0
  145. package/dist/data/TaskExecDetails.d.ts.map +1 -0
  146. package/dist/data/TaskExecDetails.js +40 -0
  147. package/dist/data/TaskExecDetails.js.map +1 -0
  148. package/dist/data/TaskProgress.cjs +9 -3
  149. package/dist/data/TaskProgress.cjs.map +1 -1
  150. package/dist/data/TaskProgress.d.ts.map +1 -1
  151. package/dist/data/TaskProgress.js +9 -3
  152. package/dist/data/TaskProgress.js.map +1 -1
  153. package/dist/data/TaskSnapshot.cjs.map +1 -1
  154. package/dist/data/TaskSnapshot.d.ts +12 -1
  155. package/dist/data/TaskSnapshot.d.ts.map +1 -1
  156. package/dist/data/TaskSnapshot.js.map +1 -1
  157. package/dist/data/TreeNode.cjs +3 -0
  158. package/dist/data/TreeNode.cjs.map +1 -1
  159. package/dist/data/TreeNode.d.ts.map +1 -1
  160. package/dist/data/TreeNode.js +3 -0
  161. package/dist/data/TreeNode.js.map +1 -1
  162. package/dist/data/data-table-filter-values.cjs +20 -0
  163. package/dist/data/data-table-filter-values.cjs.map +1 -1
  164. package/dist/data/data-table-filter-values.d.ts +16 -0
  165. package/dist/data/data-table-filter-values.d.ts.map +1 -1
  166. package/dist/data/data-table-filter-values.js +20 -0
  167. package/dist/data/data-table-filter-values.js.map +1 -1
  168. package/dist/data/data-table-server-filters.cjs +23 -29
  169. package/dist/data/data-table-server-filters.cjs.map +1 -1
  170. package/dist/data/data-table-server-filters.d.ts.map +1 -1
  171. package/dist/data/data-table-server-filters.js +21 -27
  172. package/dist/data/data-table-server-filters.js.map +1 -1
  173. package/dist/data/diagnostics/ErrorDetails.cjs +61 -8
  174. package/dist/data/diagnostics/ErrorDetails.cjs.map +1 -1
  175. package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -1
  176. package/dist/data/diagnostics/ErrorDetails.js +61 -8
  177. package/dist/data/diagnostics/ErrorDetails.js.map +1 -1
  178. package/dist/data/diagnostics/error-diagnostics.cjs +10 -4
  179. package/dist/data/diagnostics/error-diagnostics.cjs.map +1 -1
  180. package/dist/data/diagnostics/error-diagnostics.d.ts.map +1 -1
  181. package/dist/data/diagnostics/error-diagnostics.js +10 -4
  182. package/dist/data/diagnostics/error-diagnostics.js.map +1 -1
  183. package/dist/data/query-browser/QueryBrowser.cjs +139 -161
  184. package/dist/data/query-browser/QueryBrowser.cjs.map +1 -1
  185. package/dist/data/query-browser/QueryBrowser.d.ts +1 -71
  186. package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
  187. package/dist/data/query-browser/QueryBrowser.editor.cjs +88 -0
  188. package/dist/data/query-browser/QueryBrowser.editor.cjs.map +1 -0
  189. package/dist/data/query-browser/QueryBrowser.editor.d.ts +12 -0
  190. package/dist/data/query-browser/QueryBrowser.editor.d.ts.map +1 -0
  191. package/dist/data/query-browser/QueryBrowser.editor.js +88 -0
  192. package/dist/data/query-browser/QueryBrowser.editor.js.map +1 -0
  193. package/dist/data/query-browser/QueryBrowser.js +140 -162
  194. package/dist/data/query-browser/QueryBrowser.js.map +1 -1
  195. package/dist/data/query-browser/QueryBrowser.types.cjs +12 -0
  196. package/dist/data/query-browser/QueryBrowser.types.cjs.map +1 -0
  197. package/dist/data/query-browser/QueryBrowser.types.d.ts +94 -0
  198. package/dist/data/query-browser/QueryBrowser.types.d.ts.map +1 -0
  199. package/dist/data/query-browser/QueryBrowser.types.js +12 -0
  200. package/dist/data/query-browser/QueryBrowser.types.js.map +1 -0
  201. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs +56 -0
  202. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs.map +1 -0
  203. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts +5 -0
  204. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts.map +1 -0
  205. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js +56 -0
  206. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js.map +1 -0
  207. package/dist/data/query-browser/QueryBrowserResults.cjs +80 -0
  208. package/dist/data/query-browser/QueryBrowserResults.cjs.map +1 -0
  209. package/dist/data/query-browser/QueryBrowserResults.d.ts +16 -0
  210. package/dist/data/query-browser/QueryBrowserResults.d.ts.map +1 -0
  211. package/dist/data/query-browser/QueryBrowserResults.js +80 -0
  212. package/dist/data/query-browser/QueryBrowserResults.js.map +1 -0
  213. package/dist/data/query-browser/index.d.ts +2 -1
  214. package/dist/data/query-browser/index.d.ts.map +1 -1
  215. package/dist/data/task-exec-details.cjs +9 -0
  216. package/dist/data/task-exec-details.cjs.map +1 -0
  217. package/dist/data/task-exec-details.d.ts +3 -0
  218. package/dist/data/task-exec-details.d.ts.map +1 -0
  219. package/dist/data/task-exec-details.js +9 -0
  220. package/dist/data/task-exec-details.js.map +1 -0
  221. package/dist/data/version-info.cjs +3 -3
  222. package/dist/data/version-info.js +3 -3
  223. package/dist/data.cjs +2 -0
  224. package/dist/data.cjs.map +1 -1
  225. package/dist/data.d.ts +1 -1
  226. package/dist/data.d.ts.map +1 -1
  227. package/dist/data.js +2 -0
  228. package/dist/data.js.map +1 -1
  229. package/dist/index.cjs +22 -0
  230. package/dist/index.cjs.map +1 -1
  231. package/dist/index.js +22 -0
  232. package/dist/index.js.map +1 -1
  233. package/dist/lib/string.cjs +8 -0
  234. package/dist/lib/string.cjs.map +1 -1
  235. package/dist/lib/string.d.ts +1 -0
  236. package/dist/lib/string.d.ts.map +1 -1
  237. package/dist/lib/string.js +8 -0
  238. package/dist/lib/string.js.map +1 -1
  239. package/dist/profiles/catalogTree.cjs +133 -0
  240. package/dist/profiles/catalogTree.cjs.map +1 -0
  241. package/dist/profiles/catalogTree.d.ts +11 -0
  242. package/dist/profiles/catalogTree.d.ts.map +1 -0
  243. package/dist/profiles/catalogTree.js +133 -0
  244. package/dist/profiles/catalogTree.js.map +1 -0
  245. package/dist/profiles/connectionBrowserModel.cjs +185 -0
  246. package/dist/profiles/connectionBrowserModel.cjs.map +1 -0
  247. package/dist/profiles/connectionBrowserModel.d.ts +169 -0
  248. package/dist/profiles/connectionBrowserModel.d.ts.map +1 -0
  249. package/dist/profiles/connectionBrowserModel.js +185 -0
  250. package/dist/profiles/connectionBrowserModel.js.map +1 -0
  251. package/dist/profiles/connectionQueryWorkspace.cjs +185 -0
  252. package/dist/profiles/connectionQueryWorkspace.cjs.map +1 -0
  253. package/dist/profiles/connectionQueryWorkspace.d.ts +63 -0
  254. package/dist/profiles/connectionQueryWorkspace.d.ts.map +1 -0
  255. package/dist/profiles/connectionQueryWorkspace.js +185 -0
  256. package/dist/profiles/connectionQueryWorkspace.js.map +1 -0
  257. package/dist/profiles/connectionQueryWorkspaceModel.cjs +28 -0
  258. package/dist/profiles/connectionQueryWorkspaceModel.cjs.map +1 -0
  259. package/dist/profiles/connectionQueryWorkspaceModel.d.ts +38 -0
  260. package/dist/profiles/connectionQueryWorkspaceModel.d.ts.map +1 -0
  261. package/dist/profiles/connectionQueryWorkspaceModel.js +28 -0
  262. package/dist/profiles/connectionQueryWorkspaceModel.js.map +1 -0
  263. package/dist/profiles/esFieldValues.cjs +64 -0
  264. package/dist/profiles/esFieldValues.cjs.map +1 -0
  265. package/dist/profiles/esFieldValues.d.ts +48 -0
  266. package/dist/profiles/esFieldValues.d.ts.map +1 -0
  267. package/dist/profiles/esFieldValues.js +64 -0
  268. package/dist/profiles/esFieldValues.js.map +1 -0
  269. package/dist/profiles/esParamMappingModel.cjs +301 -0
  270. package/dist/profiles/esParamMappingModel.cjs.map +1 -0
  271. package/dist/profiles/esParamMappingModel.d.ts +37 -0
  272. package/dist/profiles/esParamMappingModel.d.ts.map +1 -0
  273. package/dist/profiles/esParamMappingModel.js +301 -0
  274. package/dist/profiles/esParamMappingModel.js.map +1 -0
  275. package/dist/profiles/esParamMappingPill.cjs +24 -0
  276. package/dist/profiles/esParamMappingPill.cjs.map +1 -0
  277. package/dist/profiles/esParamMappingPill.d.ts +13 -0
  278. package/dist/profiles/esParamMappingPill.d.ts.map +1 -0
  279. package/dist/profiles/esParamMappingPill.js +24 -0
  280. package/dist/profiles/esParamMappingPill.js.map +1 -0
  281. package/dist/profiles/esParamOperandExtension.cjs +75 -0
  282. package/dist/profiles/esParamOperandExtension.cjs.map +1 -0
  283. package/dist/profiles/esParamOperandExtension.d.ts +11 -0
  284. package/dist/profiles/esParamOperandExtension.d.ts.map +1 -0
  285. package/dist/profiles/esParamOperandExtension.js +75 -0
  286. package/dist/profiles/esParamOperandExtension.js.map +1 -0
  287. package/dist/profiles/esQueryBuilder.cjs +205 -0
  288. package/dist/profiles/esQueryBuilder.cjs.map +1 -0
  289. package/dist/profiles/esQueryBuilder.d.ts +35 -0
  290. package/dist/profiles/esQueryBuilder.d.ts.map +1 -0
  291. package/dist/profiles/esQueryBuilder.js +205 -0
  292. package/dist/profiles/esQueryBuilder.js.map +1 -0
  293. package/dist/profiles/esQueryBuilderExtension.cjs +23 -0
  294. package/dist/profiles/esQueryBuilderExtension.cjs.map +1 -0
  295. package/dist/profiles/esQueryBuilderExtension.d.ts +5 -0
  296. package/dist/profiles/esQueryBuilderExtension.d.ts.map +1 -0
  297. package/dist/profiles/esQueryBuilderExtension.js +23 -0
  298. package/dist/profiles/esQueryBuilderExtension.js.map +1 -0
  299. package/dist/profiles/esQueryBuilderForm.cjs +26 -0
  300. package/dist/profiles/esQueryBuilderForm.cjs.map +1 -0
  301. package/dist/profiles/esQueryBuilderForm.d.ts +18 -0
  302. package/dist/profiles/esQueryBuilderForm.d.ts.map +1 -0
  303. package/dist/profiles/esQueryBuilderForm.js +26 -0
  304. package/dist/profiles/esQueryBuilderForm.js.map +1 -0
  305. package/dist/profiles/esQueryBuilderModel.cjs +131 -0
  306. package/dist/profiles/esQueryBuilderModel.cjs.map +1 -0
  307. package/dist/profiles/esQueryBuilderModel.d.ts +108 -0
  308. package/dist/profiles/esQueryBuilderModel.d.ts.map +1 -0
  309. package/dist/profiles/esQueryBuilderModel.js +131 -0
  310. package/dist/profiles/esQueryBuilderModel.js.map +1 -0
  311. package/dist/profiles/esQueryClauseGroup.cjs +144 -0
  312. package/dist/profiles/esQueryClauseGroup.cjs.map +1 -0
  313. package/dist/profiles/esQueryClauseGroup.d.ts +10 -0
  314. package/dist/profiles/esQueryClauseGroup.d.ts.map +1 -0
  315. package/dist/profiles/esQueryClauseGroup.js +144 -0
  316. package/dist/profiles/esQueryClauseGroup.js.map +1 -0
  317. package/dist/profiles/esQueryCompile.cjs +47 -0
  318. package/dist/profiles/esQueryCompile.cjs.map +1 -0
  319. package/dist/profiles/esQueryCompile.d.ts +39 -0
  320. package/dist/profiles/esQueryCompile.d.ts.map +1 -0
  321. package/dist/profiles/esQueryCompile.js +47 -0
  322. package/dist/profiles/esQueryCompile.js.map +1 -0
  323. package/dist/profiles/esQueryConditionRow.cjs +168 -0
  324. package/dist/profiles/esQueryConditionRow.cjs.map +1 -0
  325. package/dist/profiles/esQueryConditionRow.d.ts +37 -0
  326. package/dist/profiles/esQueryConditionRow.d.ts.map +1 -0
  327. package/dist/profiles/esQueryConditionRow.js +168 -0
  328. package/dist/profiles/esQueryConditionRow.js.map +1 -0
  329. package/dist/profiles/esQueryGroupModel.cjs +12 -0
  330. package/dist/profiles/esQueryGroupModel.cjs.map +1 -0
  331. package/dist/profiles/esQueryGroupModel.d.ts +9 -0
  332. package/dist/profiles/esQueryGroupModel.d.ts.map +1 -0
  333. package/dist/profiles/esQueryGroupModel.js +12 -0
  334. package/dist/profiles/esQueryGroupModel.js.map +1 -0
  335. package/dist/profiles/esQueryOccur.cjs +16 -0
  336. package/dist/profiles/esQueryOccur.cjs.map +1 -0
  337. package/dist/profiles/esQueryOccur.d.ts +11 -0
  338. package/dist/profiles/esQueryOccur.d.ts.map +1 -0
  339. package/dist/profiles/esQueryOccur.js +16 -0
  340. package/dist/profiles/esQueryOccur.js.map +1 -0
  341. package/dist/profiles/esQueryOperandEditors.cjs +279 -0
  342. package/dist/profiles/esQueryOperandEditors.cjs.map +1 -0
  343. package/dist/profiles/esQueryOperandEditors.d.ts +24 -0
  344. package/dist/profiles/esQueryOperandEditors.d.ts.map +1 -0
  345. package/dist/profiles/esQueryOperandEditors.js +279 -0
  346. package/dist/profiles/esQueryOperandEditors.js.map +1 -0
  347. package/dist/profiles/esQueryOperandModel.cjs +28 -0
  348. package/dist/profiles/esQueryOperandModel.cjs.map +1 -0
  349. package/dist/profiles/esQueryOperandModel.d.ts +17 -0
  350. package/dist/profiles/esQueryOperandModel.d.ts.map +1 -0
  351. package/dist/profiles/esQueryOperandModel.js +28 -0
  352. package/dist/profiles/esQueryOperandModel.js.map +1 -0
  353. package/dist/profiles/esQueryOperators.cjs +165 -0
  354. package/dist/profiles/esQueryOperators.cjs.map +1 -0
  355. package/dist/profiles/esQueryOperators.d.ts +83 -0
  356. package/dist/profiles/esQueryOperators.d.ts.map +1 -0
  357. package/dist/profiles/esQueryOperators.js +165 -0
  358. package/dist/profiles/esQueryOperators.js.map +1 -0
  359. package/dist/profiles/esQueryOutputEditor.cjs +138 -0
  360. package/dist/profiles/esQueryOutputEditor.cjs.map +1 -0
  361. package/dist/profiles/esQueryOutputEditor.d.ts +7 -0
  362. package/dist/profiles/esQueryOutputEditor.d.ts.map +1 -0
  363. package/dist/profiles/esQueryOutputEditor.js +138 -0
  364. package/dist/profiles/esQueryOutputEditor.js.map +1 -0
  365. package/dist/profiles/esQueryOutputModel.cjs +16 -0
  366. package/dist/profiles/esQueryOutputModel.cjs.map +1 -0
  367. package/dist/profiles/esQueryOutputModel.d.ts +14 -0
  368. package/dist/profiles/esQueryOutputModel.d.ts.map +1 -0
  369. package/dist/profiles/esQueryOutputModel.js +16 -0
  370. package/dist/profiles/esQueryOutputModel.js.map +1 -0
  371. package/dist/profiles/esQueryPreview.cjs +30 -0
  372. package/dist/profiles/esQueryPreview.cjs.map +1 -0
  373. package/dist/profiles/esQueryPreview.d.ts +6 -0
  374. package/dist/profiles/esQueryPreview.d.ts.map +1 -0
  375. package/dist/profiles/esQueryPreview.js +30 -0
  376. package/dist/profiles/esQueryPreview.js.map +1 -0
  377. package/dist/profiles/esQuerySortEditor.cjs +143 -0
  378. package/dist/profiles/esQuerySortEditor.cjs.map +1 -0
  379. package/dist/profiles/esQuerySortEditor.d.ts +9 -0
  380. package/dist/profiles/esQuerySortEditor.d.ts.map +1 -0
  381. package/dist/profiles/esQuerySortEditor.js +143 -0
  382. package/dist/profiles/esQuerySortEditor.js.map +1 -0
  383. package/dist/profiles/esQuerySortModel.cjs +13 -0
  384. package/dist/profiles/esQuerySortModel.cjs.map +1 -0
  385. package/dist/profiles/esQuerySortModel.d.ts +4 -0
  386. package/dist/profiles/esQuerySortModel.d.ts.map +1 -0
  387. package/dist/profiles/esQuerySortModel.js +13 -0
  388. package/dist/profiles/esQuerySortModel.js.map +1 -0
  389. package/dist/profiles/esValueCombobox.cjs +86 -0
  390. package/dist/profiles/esValueCombobox.cjs.map +1 -0
  391. package/dist/profiles/esValueCombobox.d.ts +15 -0
  392. package/dist/profiles/esValueCombobox.d.ts.map +1 -0
  393. package/dist/profiles/esValueCombobox.js +86 -0
  394. package/dist/profiles/esValueCombobox.js.map +1 -0
  395. package/dist/profiles/jsonPathSample.cjs +75 -0
  396. package/dist/profiles/jsonPathSample.cjs.map +1 -0
  397. package/dist/profiles/jsonPathSample.d.ts +27 -0
  398. package/dist/profiles/jsonPathSample.d.ts.map +1 -0
  399. package/dist/profiles/jsonPathSample.js +75 -0
  400. package/dist/profiles/jsonPathSample.js.map +1 -0
  401. package/dist/profiles/jsonPathSampleRow.cjs +14 -0
  402. package/dist/profiles/jsonPathSampleRow.cjs.map +1 -0
  403. package/dist/profiles/jsonPathSampleRow.d.ts +6 -0
  404. package/dist/profiles/jsonPathSampleRow.d.ts.map +1 -0
  405. package/dist/profiles/jsonPathSampleRow.js +14 -0
  406. package/dist/profiles/jsonPathSampleRow.js.map +1 -0
  407. package/dist/profiles/profileApi.cjs +37 -0
  408. package/dist/profiles/profileApi.cjs.map +1 -0
  409. package/dist/profiles/profileApi.d.ts +32 -0
  410. package/dist/profiles/profileApi.d.ts.map +1 -0
  411. package/dist/profiles/profileApi.js +37 -0
  412. package/dist/profiles/profileApi.js.map +1 -0
  413. package/dist/profiles/profileBuilder.cjs +65 -0
  414. package/dist/profiles/profileBuilder.cjs.map +1 -0
  415. package/dist/profiles/profileBuilder.d.ts +11 -0
  416. package/dist/profiles/profileBuilder.d.ts.map +1 -0
  417. package/dist/profiles/profileBuilder.js +65 -0
  418. package/dist/profiles/profileBuilder.js.map +1 -0
  419. package/dist/profiles/profileBuilderExtension.cjs +25 -0
  420. package/dist/profiles/profileBuilderExtension.cjs.map +1 -0
  421. package/dist/profiles/profileBuilderExtension.d.ts +5 -0
  422. package/dist/profiles/profileBuilderExtension.d.ts.map +1 -0
  423. package/dist/profiles/profileBuilderExtension.js +25 -0
  424. package/dist/profiles/profileBuilderExtension.js.map +1 -0
  425. package/dist/profiles/profileBuilderWorkspace.cjs +368 -0
  426. package/dist/profiles/profileBuilderWorkspace.cjs.map +1 -0
  427. package/dist/profiles/profileBuilderWorkspace.d.ts +21 -0
  428. package/dist/profiles/profileBuilderWorkspace.d.ts.map +1 -0
  429. package/dist/profiles/profileBuilderWorkspace.js +368 -0
  430. package/dist/profiles/profileBuilderWorkspace.js.map +1 -0
  431. package/dist/profiles/profileColumnModel.cjs +23 -0
  432. package/dist/profiles/profileColumnModel.cjs.map +1 -0
  433. package/dist/profiles/profileColumnModel.d.ts +8 -0
  434. package/dist/profiles/profileColumnModel.d.ts.map +1 -0
  435. package/dist/profiles/profileColumnModel.js +23 -0
  436. package/dist/profiles/profileColumnModel.js.map +1 -0
  437. package/dist/profiles/profileColumnPicker.cjs +68 -0
  438. package/dist/profiles/profileColumnPicker.cjs.map +1 -0
  439. package/dist/profiles/profileColumnPicker.d.ts +11 -0
  440. package/dist/profiles/profileColumnPicker.d.ts.map +1 -0
  441. package/dist/profiles/profileColumnPicker.js +68 -0
  442. package/dist/profiles/profileColumnPicker.js.map +1 -0
  443. package/dist/profiles/profileEditor.cjs +386 -0
  444. package/dist/profiles/profileEditor.cjs.map +1 -0
  445. package/dist/profiles/profileEditor.d.ts +19 -0
  446. package/dist/profiles/profileEditor.d.ts.map +1 -0
  447. package/dist/profiles/profileEditor.js +386 -0
  448. package/dist/profiles/profileEditor.js.map +1 -0
  449. package/dist/profiles/profileEditorModel.cjs +181 -0
  450. package/dist/profiles/profileEditorModel.cjs.map +1 -0
  451. package/dist/profiles/profileEditorModel.d.ts +74 -0
  452. package/dist/profiles/profileEditorModel.d.ts.map +1 -0
  453. package/dist/profiles/profileEditorModel.js +181 -0
  454. package/dist/profiles/profileEditorModel.js.map +1 -0
  455. package/dist/profiles/profileEditorPreview.cjs +38 -0
  456. package/dist/profiles/profileEditorPreview.cjs.map +1 -0
  457. package/dist/profiles/profileEditorPreview.d.ts +12 -0
  458. package/dist/profiles/profileEditorPreview.d.ts.map +1 -0
  459. package/dist/profiles/profileEditorPreview.js +38 -0
  460. package/dist/profiles/profileEditorPreview.js.map +1 -0
  461. package/dist/profiles/profileEditorRail.cjs +46 -0
  462. package/dist/profiles/profileEditorRail.cjs.map +1 -0
  463. package/dist/profiles/profileEditorRail.d.ts +8 -0
  464. package/dist/profiles/profileEditorRail.d.ts.map +1 -0
  465. package/dist/profiles/profileEditorRail.js +46 -0
  466. package/dist/profiles/profileEditorRail.js.map +1 -0
  467. package/dist/profiles/profileEditorRaw.cjs +118 -0
  468. package/dist/profiles/profileEditorRaw.cjs.map +1 -0
  469. package/dist/profiles/profileEditorRaw.d.ts +7 -0
  470. package/dist/profiles/profileEditorRaw.d.ts.map +1 -0
  471. package/dist/profiles/profileEditorRaw.js +118 -0
  472. package/dist/profiles/profileEditorRaw.js.map +1 -0
  473. package/dist/profiles/profileEditorRoutes.cjs +7 -0
  474. package/dist/profiles/profileEditorRoutes.cjs.map +1 -0
  475. package/dist/profiles/profileEditorRoutes.d.ts +2 -0
  476. package/dist/profiles/profileEditorRoutes.d.ts.map +1 -0
  477. package/dist/profiles/profileEditorRoutes.js +7 -0
  478. package/dist/profiles/profileEditorRoutes.js.map +1 -0
  479. package/dist/profiles/profileEditorSections.cjs +213 -0
  480. package/dist/profiles/profileEditorSections.cjs.map +1 -0
  481. package/dist/profiles/profileEditorSections.d.ts +23 -0
  482. package/dist/profiles/profileEditorSections.d.ts.map +1 -0
  483. package/dist/profiles/profileEditorSections.js +213 -0
  484. package/dist/profiles/profileEditorSections.js.map +1 -0
  485. package/dist/profiles/profileFieldEditor.cjs +200 -0
  486. package/dist/profiles/profileFieldEditor.cjs.map +1 -0
  487. package/dist/profiles/profileFieldEditor.d.ts +34 -0
  488. package/dist/profiles/profileFieldEditor.d.ts.map +1 -0
  489. package/dist/profiles/profileFieldEditor.js +200 -0
  490. package/dist/profiles/profileFieldEditor.js.map +1 -0
  491. package/dist/profiles/profileFieldGrid.cjs +250 -0
  492. package/dist/profiles/profileFieldGrid.cjs.map +1 -0
  493. package/dist/profiles/profileFieldGrid.d.ts +20 -0
  494. package/dist/profiles/profileFieldGrid.d.ts.map +1 -0
  495. package/dist/profiles/profileFieldGrid.js +250 -0
  496. package/dist/profiles/profileFieldGrid.js.map +1 -0
  497. package/dist/profiles/profileFieldManager.cjs +103 -0
  498. package/dist/profiles/profileFieldManager.cjs.map +1 -0
  499. package/dist/profiles/profileFieldManager.d.ts +9 -0
  500. package/dist/profiles/profileFieldManager.d.ts.map +1 -0
  501. package/dist/profiles/profileFieldManager.js +103 -0
  502. package/dist/profiles/profileFieldManager.js.map +1 -0
  503. package/dist/profiles/profileFieldState.cjs +136 -0
  504. package/dist/profiles/profileFieldState.cjs.map +1 -0
  505. package/dist/profiles/profileFieldState.d.ts +41 -0
  506. package/dist/profiles/profileFieldState.d.ts.map +1 -0
  507. package/dist/profiles/profileFieldState.js +136 -0
  508. package/dist/profiles/profileFieldState.js.map +1 -0
  509. package/dist/profiles/profileFieldTypes.cjs +17 -0
  510. package/dist/profiles/profileFieldTypes.cjs.map +1 -0
  511. package/dist/profiles/profileFieldTypes.d.ts +8 -0
  512. package/dist/profiles/profileFieldTypes.d.ts.map +1 -0
  513. package/dist/profiles/profileFieldTypes.js +17 -0
  514. package/dist/profiles/profileFieldTypes.js.map +1 -0
  515. package/dist/profiles/profileParamModel.cjs +78 -0
  516. package/dist/profiles/profileParamModel.cjs.map +1 -0
  517. package/dist/profiles/profileParamModel.d.ts +3 -0
  518. package/dist/profiles/profileParamModel.d.ts.map +1 -0
  519. package/dist/profiles/profileParamModel.js +78 -0
  520. package/dist/profiles/profileParamModel.js.map +1 -0
  521. package/dist/profiles/profileSamplePayload.cjs +15 -0
  522. package/dist/profiles/profileSamplePayload.cjs.map +1 -0
  523. package/dist/profiles/profileSamplePayload.d.ts +13 -0
  524. package/dist/profiles/profileSamplePayload.d.ts.map +1 -0
  525. package/dist/profiles/profileSamplePayload.js +15 -0
  526. package/dist/profiles/profileSamplePayload.js.map +1 -0
  527. package/dist/profiles/profileWizard.cjs +257 -0
  528. package/dist/profiles/profileWizard.cjs.map +1 -0
  529. package/dist/profiles/profileWizard.d.ts +12 -0
  530. package/dist/profiles/profileWizard.d.ts.map +1 -0
  531. package/dist/profiles/profileWizard.js +257 -0
  532. package/dist/profiles/profileWizard.js.map +1 -0
  533. package/dist/profiles/profileWizardHelp.cjs +10 -0
  534. package/dist/profiles/profileWizardHelp.cjs.map +1 -0
  535. package/dist/profiles/profileWizardHelp.d.ts +13 -0
  536. package/dist/profiles/profileWizardHelp.d.ts.map +1 -0
  537. package/dist/profiles/profileWizardHelp.js +10 -0
  538. package/dist/profiles/profileWizardHelp.js.map +1 -0
  539. package/dist/profiles/profileWizardModel.cjs +198 -0
  540. package/dist/profiles/profileWizardModel.cjs.map +1 -0
  541. package/dist/profiles/profileWizardModel.d.ts +255 -0
  542. package/dist/profiles/profileWizardModel.d.ts.map +1 -0
  543. package/dist/profiles/profileWizardModel.js +198 -0
  544. package/dist/profiles/profileWizardModel.js.map +1 -0
  545. package/dist/profiles/profileWizardQueryStep.cjs +215 -0
  546. package/dist/profiles/profileWizardQueryStep.cjs.map +1 -0
  547. package/dist/profiles/profileWizardQueryStep.d.ts +18 -0
  548. package/dist/profiles/profileWizardQueryStep.d.ts.map +1 -0
  549. package/dist/profiles/profileWizardQueryStep.js +215 -0
  550. package/dist/profiles/profileWizardQueryStep.js.map +1 -0
  551. package/dist/profiles/profileWizardSteps.cjs +214 -0
  552. package/dist/profiles/profileWizardSteps.cjs.map +1 -0
  553. package/dist/profiles/profileWizardSteps.d.ts +35 -0
  554. package/dist/profiles/profileWizardSteps.d.ts.map +1 -0
  555. package/dist/profiles/profileWizardSteps.js +214 -0
  556. package/dist/profiles/profileWizardSteps.js.map +1 -0
  557. package/dist/profiles/profileYaml.cjs +19 -0
  558. package/dist/profiles/profileYaml.cjs.map +1 -0
  559. package/dist/profiles/profileYaml.d.ts +4 -0
  560. package/dist/profiles/profileYaml.d.ts.map +1 -0
  561. package/dist/profiles/profileYaml.js +19 -0
  562. package/dist/profiles/profileYaml.js.map +1 -0
  563. package/dist/profiles/prometheusResults.cjs +60 -0
  564. package/dist/profiles/prometheusResults.cjs.map +1 -0
  565. package/dist/profiles/prometheusResults.d.ts +7 -0
  566. package/dist/profiles/prometheusResults.d.ts.map +1 -0
  567. package/dist/profiles/prometheusResults.js +60 -0
  568. package/dist/profiles/prometheusResults.js.map +1 -0
  569. package/dist/profiles/queryRowLimits.cjs +82 -0
  570. package/dist/profiles/queryRowLimits.cjs.map +1 -0
  571. package/dist/profiles/queryRowLimits.d.ts +9 -0
  572. package/dist/profiles/queryRowLimits.d.ts.map +1 -0
  573. package/dist/profiles/queryRowLimits.js +82 -0
  574. package/dist/profiles/queryRowLimits.js.map +1 -0
  575. package/dist/profiles/queryRowLimitsModel.cjs +10 -0
  576. package/dist/profiles/queryRowLimitsModel.cjs.map +1 -0
  577. package/dist/profiles/queryRowLimitsModel.d.ts +9 -0
  578. package/dist/profiles/queryRowLimitsModel.d.ts.map +1 -0
  579. package/dist/profiles/queryRowLimitsModel.js +10 -0
  580. package/dist/profiles/queryRowLimitsModel.js.map +1 -0
  581. package/dist/profiles/queryTargetPicker.cjs +42 -0
  582. package/dist/profiles/queryTargetPicker.cjs.map +1 -0
  583. package/dist/profiles/queryTargetPicker.d.ts +8 -0
  584. package/dist/profiles/queryTargetPicker.d.ts.map +1 -0
  585. package/dist/profiles/queryTargetPicker.js +42 -0
  586. package/dist/profiles/queryTargetPicker.js.map +1 -0
  587. package/dist/profiles/testSchema.d.ts +3 -0
  588. package/dist/profiles/testSchema.d.ts.map +1 -0
  589. package/dist/profiles.cjs +223 -0
  590. package/dist/profiles.cjs.map +1 -0
  591. package/dist/profiles.d.ts +68 -0
  592. package/dist/profiles.d.ts.map +1 -0
  593. package/dist/profiles.js +223 -0
  594. package/dist/profiles.js.map +1 -0
  595. package/dist/rpc/FilterForm.cjs +20 -0
  596. package/dist/rpc/FilterForm.cjs.map +1 -1
  597. package/dist/rpc/FilterForm.js +20 -0
  598. package/dist/rpc/FilterForm.js.map +1 -1
  599. package/dist/rpc/formMetadata.cjs +34 -0
  600. package/dist/rpc/formMetadata.cjs.map +1 -1
  601. package/dist/rpc/formMetadata.d.ts.map +1 -1
  602. package/dist/rpc/formMetadata.js +35 -1
  603. package/dist/rpc/formMetadata.js.map +1 -1
  604. package/dist/rpc/types.cjs.map +1 -1
  605. package/dist/rpc/types.d.ts +9 -1
  606. package/dist/rpc/types.d.ts.map +1 -1
  607. package/dist/rpc/types.js.map +1 -1
  608. package/dist/styles.css +1 -1
  609. package/package.json +6 -1
@@ -0,0 +1,214 @@
1
+ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
+ import { ProfileFieldManager } from "./profileFieldManager.js";
3
+ import { profileConnectionID, profileWizardErrorMessage, profileWizardSteps } from "./profileWizardModel.js";
4
+ function WizardProgress({
5
+ stepIndex,
6
+ onStepChange
7
+ }) {
8
+ return /* @__PURE__ */ jsx("ol", { className: "grid grid-cols-4 gap-2", "aria-label": "Profile builder progress", children: profileWizardSteps.map((step, index) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
9
+ "button",
10
+ {
11
+ type: "button",
12
+ disabled: index > stepIndex,
13
+ "aria-current": index === stepIndex ? "step" : void 0,
14
+ className: `flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left ${index === stepIndex ? "bg-primary/10 text-foreground" : "text-muted-foreground"}`,
15
+ onClick: () => onStepChange(index),
16
+ children: [
17
+ /* @__PURE__ */ jsx(
18
+ "span",
19
+ {
20
+ className: `grid size-6 shrink-0 place-items-center rounded-full text-xs font-semibold ${index <= stepIndex ? "bg-primary text-primary-foreground" : "bg-muted"}`,
21
+ children: index + 1
22
+ }
23
+ ),
24
+ /* @__PURE__ */ jsxs("span", { className: "hidden min-w-0 md:block", children: [
25
+ /* @__PURE__ */ jsx("span", { className: "block truncate text-xs font-medium", children: step.label }),
26
+ /* @__PURE__ */ jsx("span", { className: "block truncate text-[10px]", children: step.description })
27
+ ] })
28
+ ]
29
+ }
30
+ ) }, step.id)) });
31
+ }
32
+ function SourceStep({
33
+ choices,
34
+ loading,
35
+ error,
36
+ truncated,
37
+ total,
38
+ search,
39
+ selected,
40
+ selectedType,
41
+ onSearchChange,
42
+ onSelect
43
+ }) {
44
+ return /* @__PURE__ */ jsxs("div", { className: "mx-auto grid max-w-4xl gap-5 lg:grid-cols-[1fr_18rem]", children: [
45
+ /* @__PURE__ */ jsxs("section", { className: "overflow-hidden rounded-xl border bg-card", children: [
46
+ /* @__PURE__ */ jsx("div", { className: "border-b p-4", children: /* @__PURE__ */ jsxs("label", { className: "grid gap-1.5 text-sm font-medium", children: [
47
+ "Find a saved connection",
48
+ /* @__PURE__ */ jsx(
49
+ "input",
50
+ {
51
+ type: "search",
52
+ value: search,
53
+ autoFocus: true,
54
+ placeholder: "Search connections",
55
+ className: "rounded-md border border-input bg-background px-3 py-2.5 outline-none focus:border-primary focus:ring-2 focus:ring-primary/15",
56
+ onChange: (event) => onSearchChange(event.target.value)
57
+ }
58
+ )
59
+ ] }) }),
60
+ /* @__PURE__ */ jsxs("div", { className: "max-h-[26rem] overflow-auto p-2", children: [
61
+ choices.map((choice) => /* @__PURE__ */ jsxs(
62
+ "button",
63
+ {
64
+ type: "button",
65
+ className: `flex w-full items-center justify-between rounded-lg border px-4 py-3 text-left transition-colors ${selected === choice.value ? "border-primary bg-primary/8" : "border-transparent hover:bg-muted/60"}`,
66
+ onClick: () => onSelect(choice),
67
+ children: [
68
+ /* @__PURE__ */ jsxs("span", { children: [
69
+ /* @__PURE__ */ jsx("span", { className: "block text-sm font-medium", children: choice.name }),
70
+ /* @__PURE__ */ jsx("span", { className: "block text-xs text-muted-foreground", children: "Saved connection" })
71
+ ] }),
72
+ /* @__PURE__ */ jsx("span", { className: "rounded-full bg-muted px-2.5 py-1 text-xs font-medium", children: choice.providerType })
73
+ ]
74
+ },
75
+ choice.value
76
+ )),
77
+ loading ? /* @__PURE__ */ jsx("p", { className: "p-8 text-center text-sm text-muted-foreground", children: "Loading connections…" }) : null,
78
+ error ? /* @__PURE__ */ jsx("p", { className: "p-8 text-center text-sm text-destructive", children: profileWizardErrorMessage(error, "Unable to load connections") }) : null,
79
+ !loading && !error && choices.length === 0 ? /* @__PURE__ */ jsx("p", { className: "p-8 text-center text-sm text-muted-foreground", children: "No saved connections match this search." }) : null
80
+ ] }),
81
+ truncated ? /* @__PURE__ */ jsxs("p", { className: "border-t px-4 py-2 text-xs text-muted-foreground", children: [
82
+ "Showing the first ",
83
+ choices.length,
84
+ " of ",
85
+ total ?? "many",
86
+ ". Search to narrow the list."
87
+ ] }) : null
88
+ ] }),
89
+ /* @__PURE__ */ jsxs("aside", { className: "rounded-xl border bg-muted/25 p-5", children: [
90
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: "Selected source" }),
91
+ selected ? /* @__PURE__ */ jsxs(Fragment, { children: [
92
+ /* @__PURE__ */ jsx("h3", { className: "mt-3 font-semibold", children: profileConnectionID(selected) }),
93
+ /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: selectedType }),
94
+ /* @__PURE__ */ jsx("p", { className: "mt-5 text-sm leading-6 text-muted-foreground", children: "The next step loads this connection's catalog, query language, and sampling controls." })
95
+ ] }) : /* @__PURE__ */ jsx("p", { className: "mt-3 text-sm leading-6 text-muted-foreground", children: "Choose a connection to begin. Connection credentials stay on the server and are never copied into the profile." })
96
+ ] })
97
+ ] });
98
+ }
99
+ function FieldsStep({
100
+ draft,
101
+ discovered,
102
+ activeField,
103
+ onDraftChange,
104
+ onActiveFieldChange
105
+ }) {
106
+ return /* @__PURE__ */ jsxs("div", { className: "grid gap-5", children: [
107
+ /* @__PURE__ */ jsxs("section", { className: "grid gap-4 rounded-xl border bg-muted/25 p-4 md:grid-cols-2", children: [
108
+ /* @__PURE__ */ jsxs("label", { className: "grid gap-1.5 text-sm font-medium", children: [
109
+ "Profile name ",
110
+ /* @__PURE__ */ jsx("span", { className: "text-destructive", children: "*" }),
111
+ /* @__PURE__ */ jsx(
112
+ "input",
113
+ {
114
+ value: draft.profile ?? "",
115
+ placeholder: "e.g. service-logs",
116
+ className: "rounded-md border border-input bg-background px-3 py-2 outline-none focus:border-primary focus:ring-2 focus:ring-primary/15",
117
+ onChange: (event) => onDraftChange({ ...draft, profile: event.target.value })
118
+ }
119
+ )
120
+ ] }),
121
+ /* @__PURE__ */ jsxs("label", { className: "grid gap-1.5 text-sm font-medium", children: [
122
+ "Namespace ",
123
+ /* @__PURE__ */ jsx("span", { className: "font-normal text-muted-foreground", children: "Optional" }),
124
+ /* @__PURE__ */ jsx(
125
+ "input",
126
+ {
127
+ value: draft.namespace ?? "",
128
+ placeholder: "e.g. observability",
129
+ className: "rounded-md border border-input bg-background px-3 py-2 outline-none focus:border-primary focus:ring-2 focus:ring-primary/15",
130
+ onChange: (event) => onDraftChange({ ...draft, namespace: event.target.value })
131
+ }
132
+ )
133
+ ] })
134
+ ] }),
135
+ /* @__PURE__ */ jsx(
136
+ ProfileFieldManager,
137
+ {
138
+ discovered,
139
+ configured: draft.columns ?? [],
140
+ activeName: activeField,
141
+ onConfiguredChange: (columns) => onDraftChange({ ...draft, columns }),
142
+ onActiveNameChange: onActiveFieldChange
143
+ }
144
+ )
145
+ ] });
146
+ }
147
+ function ReviewStep({
148
+ draft,
149
+ discovered
150
+ }) {
151
+ var _a, _b, _c, _d, _e, _f;
152
+ const connection = profileConnectionID(((_a = draft.provider) == null ? void 0 : _a.connection) ?? "");
153
+ return /* @__PURE__ */ jsxs("div", { className: "mx-auto grid max-w-5xl gap-4 lg:grid-cols-2", children: [
154
+ /* @__PURE__ */ jsx(ReviewCard, { label: "Profile", value: draft.profile || "Unnamed", children: draft.namespace ? `Namespace: ${draft.namespace}` : "Default namespace" }),
155
+ /* @__PURE__ */ jsx(ReviewCard, { label: "Source", value: connection || "Not selected", children: ((_b = draft.provider) == null ? void 0 : _b.type) || "Unknown provider" }),
156
+ /* @__PURE__ */ jsxs("section", { className: "rounded-xl border bg-card p-5 lg:col-span-2", children: [
157
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-4", children: [
158
+ /* @__PURE__ */ jsxs("div", { children: [
159
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: "Fields" }),
160
+ /* @__PURE__ */ jsxs("h3", { className: "mt-1 font-semibold", children: [
161
+ ((_c = draft.columns) == null ? void 0 : _c.length) ?? 0,
162
+ " of ",
163
+ discovered.length,
164
+ " included"
165
+ ] })
166
+ ] }),
167
+ /* @__PURE__ */ jsxs("span", { className: "rounded-full bg-primary/10 px-3 py-1 text-xs font-medium text-primary", children: [
168
+ ((_d = draft.columns) == null ? void 0 : _d.filter((field) => field.hidden).length) ?? 0,
169
+ " hidden"
170
+ ] })
171
+ ] }),
172
+ /* @__PURE__ */ jsxs("div", { className: "mt-4 flex flex-wrap gap-2", children: [
173
+ (draft.columns ?? []).slice(0, 16).map((field) => /* @__PURE__ */ jsxs(
174
+ "span",
175
+ {
176
+ className: "rounded-md border bg-muted/30 px-2.5 py-1.5 font-mono text-xs",
177
+ children: [
178
+ field.label || field.name,
179
+ /* @__PURE__ */ jsx("span", { className: "ml-2 text-muted-foreground", children: field.type || "auto" })
180
+ ]
181
+ },
182
+ field.name
183
+ )),
184
+ (((_e = draft.columns) == null ? void 0 : _e.length) ?? 0) > 16 ? /* @__PURE__ */ jsxs("span", { className: "px-2 py-1.5 text-xs text-muted-foreground", children: [
185
+ "+",
186
+ (((_f = draft.columns) == null ? void 0 : _f.length) ?? 0) - 16,
187
+ " more"
188
+ ] }) : null
189
+ ] })
190
+ ] }),
191
+ /* @__PURE__ */ jsxs("section", { className: "rounded-xl border bg-card p-5 lg:col-span-2", children: [
192
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: "Query" }),
193
+ /* @__PURE__ */ jsx("pre", { className: "mt-3 max-h-72 overflow-auto whitespace-pre-wrap rounded-lg bg-muted/50 p-4 font-mono text-xs leading-6", children: draft.query })
194
+ ] })
195
+ ] });
196
+ }
197
+ function ReviewCard({
198
+ label,
199
+ value,
200
+ children
201
+ }) {
202
+ return /* @__PURE__ */ jsxs("section", { className: "rounded-xl border bg-card p-5", children: [
203
+ /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: label }),
204
+ /* @__PURE__ */ jsx("h3", { className: "mt-2 text-lg font-semibold", children: value }),
205
+ /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-muted-foreground", children })
206
+ ] });
207
+ }
208
+ export {
209
+ FieldsStep,
210
+ ReviewStep,
211
+ SourceStep,
212
+ WizardProgress
213
+ };
214
+ //# sourceMappingURL=profileWizardSteps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileWizardSteps.js","sources":["../../src/profiles/profileWizardSteps.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { ProfileFieldManager } from \"./profileFieldManager\";\nimport {\n profileConnectionID,\n profileWizardErrorMessage,\n profileWizardSteps,\n type ProfileColumn,\n type ProfileWizardDraft,\n} from \"./profileWizardModel\";\n\nexport type ConnectionChoice = {\n value: string;\n label: string;\n name: string;\n providerType: string;\n};\n\nexport function WizardProgress({\n stepIndex,\n onStepChange,\n}: {\n stepIndex: number;\n onStepChange: (index: number) => void;\n}) {\n return (\n <ol className=\"grid grid-cols-4 gap-2\" aria-label=\"Profile builder progress\">\n {profileWizardSteps.map((step, index) => (\n <li key={step.id}>\n <button\n type=\"button\"\n disabled={index > stepIndex}\n aria-current={index === stepIndex ? \"step\" : undefined}\n className={`flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left ${index === stepIndex ? \"bg-primary/10 text-foreground\" : \"text-muted-foreground\"}`}\n onClick={() => onStepChange(index)}\n >\n <span\n className={`grid size-6 shrink-0 place-items-center rounded-full text-xs font-semibold ${index <= stepIndex ? \"bg-primary text-primary-foreground\" : \"bg-muted\"}`}\n >\n {index + 1}\n </span>\n <span className=\"hidden min-w-0 md:block\">\n <span className=\"block truncate text-xs font-medium\">{step.label}</span>\n <span className=\"block truncate text-[10px]\">{step.description}</span>\n </span>\n </button>\n </li>\n ))}\n </ol>\n );\n}\n\nexport function SourceStep({\n choices,\n loading,\n error,\n truncated,\n total,\n search,\n selected,\n selectedType,\n onSearchChange,\n onSelect,\n}: {\n choices: ConnectionChoice[];\n loading: boolean;\n error: unknown;\n truncated?: boolean;\n total?: number;\n search: string;\n selected: string;\n selectedType: string;\n onSearchChange: (search: string) => void;\n onSelect: (choice: ConnectionChoice) => void;\n}) {\n return (\n <div className=\"mx-auto grid max-w-4xl gap-5 lg:grid-cols-[1fr_18rem]\">\n <section className=\"overflow-hidden rounded-xl border bg-card\">\n <div className=\"border-b p-4\">\n <label className=\"grid gap-1.5 text-sm font-medium\">\n Find a saved connection\n <input\n type=\"search\"\n value={search}\n autoFocus\n placeholder=\"Search connections\"\n className=\"rounded-md border border-input bg-background px-3 py-2.5 outline-none focus:border-primary focus:ring-2 focus:ring-primary/15\"\n onChange={(event) => onSearchChange(event.target.value)}\n />\n </label>\n </div>\n <div className=\"max-h-[26rem] overflow-auto p-2\">\n {choices.map((choice) => (\n <button\n key={choice.value}\n type=\"button\"\n className={`flex w-full items-center justify-between rounded-lg border px-4 py-3 text-left transition-colors ${selected === choice.value ? \"border-primary bg-primary/8\" : \"border-transparent hover:bg-muted/60\"}`}\n onClick={() => onSelect(choice)}\n >\n <span>\n <span className=\"block text-sm font-medium\">{choice.name}</span>\n <span className=\"block text-xs text-muted-foreground\">\n Saved connection\n </span>\n </span>\n <span className=\"rounded-full bg-muted px-2.5 py-1 text-xs font-medium\">\n {choice.providerType}\n </span>\n </button>\n ))}\n {loading ? (\n <p className=\"p-8 text-center text-sm text-muted-foreground\">\n Loading connections…\n </p>\n ) : null}\n {error ? (\n <p className=\"p-8 text-center text-sm text-destructive\">\n {profileWizardErrorMessage(error, \"Unable to load connections\")}\n </p>\n ) : null}\n {!loading && !error && choices.length === 0 ? (\n <p className=\"p-8 text-center text-sm text-muted-foreground\">\n No saved connections match this search.\n </p>\n ) : null}\n </div>\n {truncated ? (\n <p className=\"border-t px-4 py-2 text-xs text-muted-foreground\">\n Showing the first {choices.length} of {total ?? \"many\"}. Search to narrow the list.\n </p>\n ) : null}\n </section>\n <aside className=\"rounded-xl border bg-muted/25 p-5\">\n <p className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Selected source\n </p>\n {selected ? (\n <>\n <h3 className=\"mt-3 font-semibold\">{profileConnectionID(selected)}</h3>\n <p className=\"mt-1 text-sm text-muted-foreground\">{selectedType}</p>\n <p className=\"mt-5 text-sm leading-6 text-muted-foreground\">\n The next step loads this connection&apos;s catalog, query language,\n and sampling controls.\n </p>\n </>\n ) : (\n <p className=\"mt-3 text-sm leading-6 text-muted-foreground\">\n Choose a connection to begin. Connection credentials stay on the\n server and are never copied into the profile.\n </p>\n )}\n </aside>\n </div>\n );\n}\n\nexport function FieldsStep({\n draft,\n discovered,\n activeField,\n onDraftChange,\n onActiveFieldChange,\n}: {\n draft: ProfileWizardDraft;\n discovered: ProfileColumn[];\n activeField: string;\n onDraftChange: (draft: ProfileWizardDraft) => void;\n onActiveFieldChange: (name: string) => void;\n}) {\n return (\n <div className=\"grid gap-5\">\n <section className=\"grid gap-4 rounded-xl border bg-muted/25 p-4 md:grid-cols-2\">\n <label className=\"grid gap-1.5 text-sm font-medium\">\n Profile name <span className=\"text-destructive\">*</span>\n <input\n value={draft.profile ?? \"\"}\n placeholder=\"e.g. service-logs\"\n className=\"rounded-md border border-input bg-background px-3 py-2 outline-none focus:border-primary focus:ring-2 focus:ring-primary/15\"\n onChange={(event) =>\n onDraftChange({ ...draft, profile: event.target.value })\n }\n />\n </label>\n <label className=\"grid gap-1.5 text-sm font-medium\">\n Namespace <span className=\"font-normal text-muted-foreground\">Optional</span>\n <input\n value={draft.namespace ?? \"\"}\n placeholder=\"e.g. observability\"\n className=\"rounded-md border border-input bg-background px-3 py-2 outline-none focus:border-primary focus:ring-2 focus:ring-primary/15\"\n onChange={(event) =>\n onDraftChange({ ...draft, namespace: event.target.value })\n }\n />\n </label>\n </section>\n <ProfileFieldManager\n discovered={discovered}\n configured={draft.columns ?? []}\n activeName={activeField}\n onConfiguredChange={(columns) => onDraftChange({ ...draft, columns })}\n onActiveNameChange={onActiveFieldChange}\n />\n </div>\n );\n}\n\nexport function ReviewStep({\n draft,\n discovered,\n}: {\n draft: ProfileWizardDraft;\n discovered: ProfileColumn[];\n}) {\n const connection = profileConnectionID(draft.provider?.connection ?? \"\");\n return (\n <div className=\"mx-auto grid max-w-5xl gap-4 lg:grid-cols-2\">\n <ReviewCard label=\"Profile\" value={draft.profile || \"Unnamed\"}>\n {draft.namespace ? `Namespace: ${draft.namespace}` : \"Default namespace\"}\n </ReviewCard>\n <ReviewCard label=\"Source\" value={connection || \"Not selected\"}>\n {draft.provider?.type || \"Unknown provider\"}\n </ReviewCard>\n <section className=\"rounded-xl border bg-card p-5 lg:col-span-2\">\n <div className=\"flex items-center justify-between gap-4\">\n <div>\n <p className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Fields\n </p>\n <h3 className=\"mt-1 font-semibold\">\n {draft.columns?.length ?? 0} of {discovered.length} included\n </h3>\n </div>\n <span className=\"rounded-full bg-primary/10 px-3 py-1 text-xs font-medium text-primary\">\n {draft.columns?.filter((field) => field.hidden).length ?? 0} hidden\n </span>\n </div>\n <div className=\"mt-4 flex flex-wrap gap-2\">\n {(draft.columns ?? []).slice(0, 16).map((field) => (\n <span\n key={field.name}\n className=\"rounded-md border bg-muted/30 px-2.5 py-1.5 font-mono text-xs\"\n >\n {field.label || field.name}\n <span className=\"ml-2 text-muted-foreground\">\n {field.type || \"auto\"}\n </span>\n </span>\n ))}\n {(draft.columns?.length ?? 0) > 16 ? (\n <span className=\"px-2 py-1.5 text-xs text-muted-foreground\">\n +{(draft.columns?.length ?? 0) - 16} more\n </span>\n ) : null}\n </div>\n </section>\n <section className=\"rounded-xl border bg-card p-5 lg:col-span-2\">\n <p className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Query\n </p>\n <pre className=\"mt-3 max-h-72 overflow-auto whitespace-pre-wrap rounded-lg bg-muted/50 p-4 font-mono text-xs leading-6\">\n {draft.query}\n </pre>\n </section>\n </div>\n );\n}\n\nfunction ReviewCard({\n label,\n value,\n children,\n}: {\n label: string;\n value: ReactNode;\n children: ReactNode;\n}) {\n return (\n <section className=\"rounded-xl border bg-card p-5\">\n <p className=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n {label}\n </p>\n <h3 className=\"mt-2 text-lg font-semibold\">{value}</h3>\n <p className=\"mt-1 text-sm text-muted-foreground\">{children}</p>\n </section>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const yaml = require("yaml");
4
+ const string = require("../lib/string.cjs");
5
+ function parseProfileYamlDocument(value) {
6
+ const parsed = yaml.parse(value);
7
+ if (!isRecord(parsed)) throw new Error("Profile YAML must contain an object");
8
+ return parsed;
9
+ }
10
+ function profileYamlFilename(name) {
11
+ const safeName = name === void 0 ? void 0 : string.stripSurroundingDashes(name.trim().replace(/[^a-zA-Z0-9._-]+/g, "-"));
12
+ return `${safeName || "profile"}.yaml`;
13
+ }
14
+ function isRecord(value) {
15
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
16
+ }
17
+ exports.parseProfileYamlDocument = parseProfileYamlDocument;
18
+ exports.profileYamlFilename = profileYamlFilename;
19
+ //# sourceMappingURL=profileYaml.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileYaml.cjs","sources":["../../src/profiles/profileYaml.ts"],"sourcesContent":["import { parse } from \"yaml\";\nimport { stripSurroundingDashes } from \"../lib/string\";\nimport type { ProfileWizardDraft } from \"./profileWizardModel\";\n\nexport function parseProfileYamlDocument(value: string): ProfileWizardDraft {\n const parsed = parse(value);\n if (!isRecord(parsed)) throw new Error(\"Profile YAML must contain an object\");\n return parsed as ProfileWizardDraft;\n}\n\nexport function profileYamlFilename(name?: string): string {\n const safeName =\n name === undefined\n ? undefined\n : stripSurroundingDashes(name.trim().replace(/[^a-zA-Z0-9._-]+/g, \"-\"));\n return `${safeName || \"profile\"}.yaml`;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n"],"names":["parse","stripSurroundingDashes"],"mappings":";;;;AAIO,SAAS,yBAAyB,OAAmC;AAC1E,QAAM,SAASA,KAAAA,MAAM,KAAK;AAC1B,MAAI,CAAC,SAAS,MAAM,EAAG,OAAM,IAAI,MAAM,qCAAqC;AAC5E,SAAO;AACT;AAEO,SAAS,oBAAoB,MAAuB;AACzD,QAAM,WACJ,SAAS,SACL,SACAC,OAAAA,uBAAuB,KAAK,OAAO,QAAQ,qBAAqB,GAAG,CAAC;AAC1E,SAAO,GAAG,YAAY,SAAS;AACjC;AAEA,SAAS,SAAS,OAAkD;AAClE,SAAO,QAAQ,KAAK,KAAK,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC5E;;;"}
@@ -0,0 +1,4 @@
1
+ import { ProfileWizardDraft } from './profileWizardModel';
2
+ export declare function parseProfileYamlDocument(value: string): ProfileWizardDraft;
3
+ export declare function profileYamlFilename(name?: string): string;
4
+ //# sourceMappingURL=profileYaml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileYaml.d.ts","sourceRoot":"","sources":["../../src/profiles/profileYaml.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAI1E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAMzD"}
@@ -0,0 +1,19 @@
1
+ import { parse } from "yaml";
2
+ import { stripSurroundingDashes } from "../lib/string.js";
3
+ function parseProfileYamlDocument(value) {
4
+ const parsed = parse(value);
5
+ if (!isRecord(parsed)) throw new Error("Profile YAML must contain an object");
6
+ return parsed;
7
+ }
8
+ function profileYamlFilename(name) {
9
+ const safeName = name === void 0 ? void 0 : stripSurroundingDashes(name.trim().replace(/[^a-zA-Z0-9._-]+/g, "-"));
10
+ return `${safeName || "profile"}.yaml`;
11
+ }
12
+ function isRecord(value) {
13
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
14
+ }
15
+ export {
16
+ parseProfileYamlDocument,
17
+ profileYamlFilename
18
+ };
19
+ //# sourceMappingURL=profileYaml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileYaml.js","sources":["../../src/profiles/profileYaml.ts"],"sourcesContent":["import { parse } from \"yaml\";\nimport { stripSurroundingDashes } from \"../lib/string\";\nimport type { ProfileWizardDraft } from \"./profileWizardModel\";\n\nexport function parseProfileYamlDocument(value: string): ProfileWizardDraft {\n const parsed = parse(value);\n if (!isRecord(parsed)) throw new Error(\"Profile YAML must contain an object\");\n return parsed as ProfileWizardDraft;\n}\n\nexport function profileYamlFilename(name?: string): string {\n const safeName =\n name === undefined\n ? undefined\n : stripSurroundingDashes(name.trim().replace(/[^a-zA-Z0-9._-]+/g, \"-\"));\n return `${safeName || \"profile\"}.yaml`;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n"],"names":[],"mappings":";;AAIO,SAAS,yBAAyB,OAAmC;AAC1E,QAAM,SAAS,MAAM,KAAK;AAC1B,MAAI,CAAC,SAAS,MAAM,EAAG,OAAM,IAAI,MAAM,qCAAqC;AAC5E,SAAO;AACT;AAEO,SAAS,oBAAoB,MAAuB;AACzD,QAAM,WACJ,SAAS,SACL,SACA,uBAAuB,KAAK,OAAO,QAAQ,qBAAqB,GAAG,CAAC;AAC1E,SAAO,GAAG,YAAY,SAAS;AACjC;AAEA,SAAS,SAAS,OAAkD;AAClE,SAAO,QAAQ,KAAK,KAAK,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC5E;"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const TimeseriesPanel = require("../data/TimeseriesPanel.cjs");
5
+ const react = require("react");
6
+ function PrometheusResults({
7
+ result,
8
+ fallback
9
+ }) {
10
+ const chart = react.useMemo(
11
+ () => prometheusSeries(result.rows ?? []),
12
+ [result.rows]
13
+ );
14
+ if (!chart) return fallback;
15
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
16
+ /* @__PURE__ */ jsxRuntime.jsx(
17
+ TimeseriesPanel.TimeseriesPanel,
18
+ {
19
+ title: "Prometheus query",
20
+ baseUrl: "/query-browser/",
21
+ series: chart.series,
22
+ refreshMs: 0,
23
+ height: 240,
24
+ fetcher: async (url) => {
25
+ var _a;
26
+ const id = ((_a = url.split("?")[0]) == null ? void 0 : _a.split("/").filter(Boolean).pop()) ?? "";
27
+ return chart.responses[id] ?? { id, points: [] };
28
+ }
29
+ }
30
+ ),
31
+ fallback
32
+ ] });
33
+ }
34
+ function prometheusSeries(rows) {
35
+ const withTime = rows.filter(
36
+ (row) => row.timestamp != null && typeof row.value === "number"
37
+ );
38
+ if (withTime.length < 2) return null;
39
+ const groups = /* @__PURE__ */ new Map();
40
+ for (const row of withTime) {
41
+ const labels = Object.entries(row).filter(([key]) => key !== "timestamp" && key !== "value").sort(([a], [b]) => a.localeCompare(b));
42
+ const label = labels.map(([key, value]) => `${key}=${String(value)}`).join(", ") || "value";
43
+ const group = groups.get(label) ?? { label, points: [] };
44
+ group.points.push({
45
+ at: new Date(String(row.timestamp)).toISOString(),
46
+ value: Number(row.value)
47
+ });
48
+ groups.set(label, group);
49
+ }
50
+ const series = [];
51
+ const responses = {};
52
+ [...groups.values()].forEach((group, index) => {
53
+ const id = `series-${index}`;
54
+ series.push({ id, label: group.label });
55
+ responses[id] = { id, points: group.points };
56
+ });
57
+ return { series, responses };
58
+ }
59
+ exports.PrometheusResults = PrometheusResults;
60
+ //# sourceMappingURL=prometheusResults.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prometheusResults.cjs","sources":["../../src/profiles/prometheusResults.tsx"],"sourcesContent":["import { TimeseriesPanel } from \"../data/TimeseriesPanel\";\nimport type { TimeseriesResponse, TimeseriesSeries } from \"../data/TimeseriesPanel.model\";\nimport type { QueryBrowserResult } from \"../data/query-browser/QueryBrowser.types\";\nimport { useMemo, type ReactNode } from \"react\";\n\nexport function PrometheusResults({\n result,\n fallback,\n}: {\n result: QueryBrowserResult;\n fallback: ReactNode;\n}) {\n const chart = useMemo(\n () => prometheusSeries(result.rows ?? []),\n [result.rows],\n );\n if (!chart) return fallback;\n return (\n <div className=\"space-y-3\">\n <TimeseriesPanel\n title=\"Prometheus query\"\n baseUrl=\"/query-browser/\"\n series={chart.series}\n refreshMs={0}\n height={240}\n fetcher={async (url) => {\n const id = url.split(\"?\")[0]?.split(\"/\").filter(Boolean).pop() ?? \"\";\n return chart.responses[id] ?? { id, points: [] };\n }}\n />\n {fallback}\n </div>\n );\n}\n\nfunction prometheusSeries(rows: Record<string, unknown>[]): {\n series: TimeseriesSeries[];\n responses: Record<string, TimeseriesResponse>;\n} | null {\n const withTime = rows.filter(\n (row) => row.timestamp != null && typeof row.value === \"number\",\n );\n if (withTime.length < 2) return null;\n const groups = new Map<\n string,\n { label: string; points: { at: string; value: number }[] }\n >();\n for (const row of withTime) {\n const labels = Object.entries(row)\n .filter(([key]) => key !== \"timestamp\" && key !== \"value\")\n .sort(([a], [b]) => a.localeCompare(b));\n const label =\n labels.map(([key, value]) => `${key}=${String(value)}`).join(\", \") ||\n \"value\";\n const group = groups.get(label) ?? { label, points: [] };\n group.points.push({\n at: new Date(String(row.timestamp)).toISOString(),\n value: Number(row.value),\n });\n groups.set(label, group);\n }\n const series: TimeseriesSeries[] = [];\n const responses: Record<string, TimeseriesResponse> = {};\n [...groups.values()].forEach((group, index) => {\n const id = `series-${index}`;\n series.push({ id, label: group.label });\n responses[id] = { id, points: group.points };\n });\n return { series, responses };\n}\n"],"names":["useMemo","jsxs","jsx","TimeseriesPanel"],"mappings":";;;;;AAKO,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AACF,GAGG;AACD,QAAM,QAAQA,MAAAA;AAAAA,IACZ,MAAM,iBAAiB,OAAO,QAAQ,EAAE;AAAA,IACxC,CAAC,OAAO,IAAI;AAAA,EAAA;AAEd,MAAI,CAAC,MAAO,QAAO;AACnB,SACEC,2BAAAA,KAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,IAAAC,2BAAAA;AAAAA,MAACC,gBAAAA;AAAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAQ;AAAA,QACR,QAAQ,MAAM;AAAA,QACd,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,SAAS,OAAO,QAAQ;;AACtB,gBAAM,OAAK,SAAI,MAAM,GAAG,EAAE,CAAC,MAAhB,mBAAmB,MAAM,KAAK,OAAO,SAAS,UAAS;AAClE,iBAAO,MAAM,UAAU,EAAE,KAAK,EAAE,IAAI,QAAQ,GAAC;AAAA,QAC/C;AAAA,MAAA;AAAA,IAAA;AAAA,IAED;AAAA,EAAA,GACH;AAEJ;AAEA,SAAS,iBAAiB,MAGjB;AACP,QAAM,WAAW,KAAK;AAAA,IACpB,CAAC,QAAQ,IAAI,aAAa,QAAQ,OAAO,IAAI,UAAU;AAAA,EAAA;AAEzD,MAAI,SAAS,SAAS,EAAG,QAAO;AAChC,QAAM,6BAAa,IAAA;AAInB,aAAW,OAAO,UAAU;AAC1B,UAAM,SAAS,OAAO,QAAQ,GAAG,EAC9B,OAAO,CAAC,CAAC,GAAG,MAAM,QAAQ,eAAe,QAAQ,OAAO,EACxD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACxC,UAAM,QACJ,OAAO,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,GAAG,GAAG,IAAI,OAAO,KAAK,CAAC,EAAE,EAAE,KAAK,IAAI,KACjE;AACF,UAAM,QAAQ,OAAO,IAAI,KAAK,KAAK,EAAE,OAAO,QAAQ,GAAC;AACrD,UAAM,OAAO,KAAK;AAAA,MAChB,IAAI,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,EAAE,YAAA;AAAA,MACpC,OAAO,OAAO,IAAI,KAAK;AAAA,IAAA,CACxB;AACD,WAAO,IAAI,OAAO,KAAK;AAAA,EACzB;AACA,QAAM,SAA6B,CAAA;AACnC,QAAM,YAAgD,CAAA;AACtD,GAAC,GAAG,OAAO,OAAA,CAAQ,EAAE,QAAQ,CAAC,OAAO,UAAU;AAC7C,UAAM,KAAK,UAAU,KAAK;AAC1B,WAAO,KAAK,EAAE,IAAI,OAAO,MAAM,OAAO;AACtC,cAAU,EAAE,IAAI,EAAE,IAAI,QAAQ,MAAM,OAAA;AAAA,EACtC,CAAC;AACD,SAAO,EAAE,QAAQ,UAAA;AACnB;;"}
@@ -0,0 +1,7 @@
1
+ import { QueryBrowserResult } from '../data/query-browser/QueryBrowser.types';
2
+ import { ReactNode } from 'react';
3
+ export declare function PrometheusResults({ result, fallback, }: {
4
+ result: QueryBrowserResult;
5
+ fallback: ReactNode;
6
+ }): string | number | boolean | Iterable<ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
7
+ //# sourceMappingURL=prometheusResults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prometheusResults.d.ts","sourceRoot":"","sources":["../../src/profiles/prometheusResults.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhD,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,SAAS,CAAC;CACrB,gHAsBA"}
@@ -0,0 +1,60 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { TimeseriesPanel } from "../data/TimeseriesPanel.js";
3
+ import { useMemo } from "react";
4
+ function PrometheusResults({
5
+ result,
6
+ fallback
7
+ }) {
8
+ const chart = useMemo(
9
+ () => prometheusSeries(result.rows ?? []),
10
+ [result.rows]
11
+ );
12
+ if (!chart) return fallback;
13
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
14
+ /* @__PURE__ */ jsx(
15
+ TimeseriesPanel,
16
+ {
17
+ title: "Prometheus query",
18
+ baseUrl: "/query-browser/",
19
+ series: chart.series,
20
+ refreshMs: 0,
21
+ height: 240,
22
+ fetcher: async (url) => {
23
+ var _a;
24
+ const id = ((_a = url.split("?")[0]) == null ? void 0 : _a.split("/").filter(Boolean).pop()) ?? "";
25
+ return chart.responses[id] ?? { id, points: [] };
26
+ }
27
+ }
28
+ ),
29
+ fallback
30
+ ] });
31
+ }
32
+ function prometheusSeries(rows) {
33
+ const withTime = rows.filter(
34
+ (row) => row.timestamp != null && typeof row.value === "number"
35
+ );
36
+ if (withTime.length < 2) return null;
37
+ const groups = /* @__PURE__ */ new Map();
38
+ for (const row of withTime) {
39
+ const labels = Object.entries(row).filter(([key]) => key !== "timestamp" && key !== "value").sort(([a], [b]) => a.localeCompare(b));
40
+ const label = labels.map(([key, value]) => `${key}=${String(value)}`).join(", ") || "value";
41
+ const group = groups.get(label) ?? { label, points: [] };
42
+ group.points.push({
43
+ at: new Date(String(row.timestamp)).toISOString(),
44
+ value: Number(row.value)
45
+ });
46
+ groups.set(label, group);
47
+ }
48
+ const series = [];
49
+ const responses = {};
50
+ [...groups.values()].forEach((group, index) => {
51
+ const id = `series-${index}`;
52
+ series.push({ id, label: group.label });
53
+ responses[id] = { id, points: group.points };
54
+ });
55
+ return { series, responses };
56
+ }
57
+ export {
58
+ PrometheusResults
59
+ };
60
+ //# sourceMappingURL=prometheusResults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prometheusResults.js","sources":["../../src/profiles/prometheusResults.tsx"],"sourcesContent":["import { TimeseriesPanel } from \"../data/TimeseriesPanel\";\nimport type { TimeseriesResponse, TimeseriesSeries } from \"../data/TimeseriesPanel.model\";\nimport type { QueryBrowserResult } from \"../data/query-browser/QueryBrowser.types\";\nimport { useMemo, type ReactNode } from \"react\";\n\nexport function PrometheusResults({\n result,\n fallback,\n}: {\n result: QueryBrowserResult;\n fallback: ReactNode;\n}) {\n const chart = useMemo(\n () => prometheusSeries(result.rows ?? []),\n [result.rows],\n );\n if (!chart) return fallback;\n return (\n <div className=\"space-y-3\">\n <TimeseriesPanel\n title=\"Prometheus query\"\n baseUrl=\"/query-browser/\"\n series={chart.series}\n refreshMs={0}\n height={240}\n fetcher={async (url) => {\n const id = url.split(\"?\")[0]?.split(\"/\").filter(Boolean).pop() ?? \"\";\n return chart.responses[id] ?? { id, points: [] };\n }}\n />\n {fallback}\n </div>\n );\n}\n\nfunction prometheusSeries(rows: Record<string, unknown>[]): {\n series: TimeseriesSeries[];\n responses: Record<string, TimeseriesResponse>;\n} | null {\n const withTime = rows.filter(\n (row) => row.timestamp != null && typeof row.value === \"number\",\n );\n if (withTime.length < 2) return null;\n const groups = new Map<\n string,\n { label: string; points: { at: string; value: number }[] }\n >();\n for (const row of withTime) {\n const labels = Object.entries(row)\n .filter(([key]) => key !== \"timestamp\" && key !== \"value\")\n .sort(([a], [b]) => a.localeCompare(b));\n const label =\n labels.map(([key, value]) => `${key}=${String(value)}`).join(\", \") ||\n \"value\";\n const group = groups.get(label) ?? { label, points: [] };\n group.points.push({\n at: new Date(String(row.timestamp)).toISOString(),\n value: Number(row.value),\n });\n groups.set(label, group);\n }\n const series: TimeseriesSeries[] = [];\n const responses: Record<string, TimeseriesResponse> = {};\n [...groups.values()].forEach((group, index) => {\n const id = `series-${index}`;\n series.push({ id, label: group.label });\n responses[id] = { id, points: group.points };\n });\n return { series, responses };\n}\n"],"names":[],"mappings":";;;AAKO,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AACF,GAGG;AACD,QAAM,QAAQ;AAAA,IACZ,MAAM,iBAAiB,OAAO,QAAQ,EAAE;AAAA,IACxC,CAAC,OAAO,IAAI;AAAA,EAAA;AAEd,MAAI,CAAC,MAAO,QAAO;AACnB,SACE,qBAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAQ;AAAA,QACR,QAAQ,MAAM;AAAA,QACd,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,SAAS,OAAO,QAAQ;;AACtB,gBAAM,OAAK,SAAI,MAAM,GAAG,EAAE,CAAC,MAAhB,mBAAmB,MAAM,KAAK,OAAO,SAAS,UAAS;AAClE,iBAAO,MAAM,UAAU,EAAE,KAAK,EAAE,IAAI,QAAQ,GAAC;AAAA,QAC/C;AAAA,MAAA;AAAA,IAAA;AAAA,IAED;AAAA,EAAA,GACH;AAEJ;AAEA,SAAS,iBAAiB,MAGjB;AACP,QAAM,WAAW,KAAK;AAAA,IACpB,CAAC,QAAQ,IAAI,aAAa,QAAQ,OAAO,IAAI,UAAU;AAAA,EAAA;AAEzD,MAAI,SAAS,SAAS,EAAG,QAAO;AAChC,QAAM,6BAAa,IAAA;AAInB,aAAW,OAAO,UAAU;AAC1B,UAAM,SAAS,OAAO,QAAQ,GAAG,EAC9B,OAAO,CAAC,CAAC,GAAG,MAAM,QAAQ,eAAe,QAAQ,OAAO,EACxD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACxC,UAAM,QACJ,OAAO,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,GAAG,GAAG,IAAI,OAAO,KAAK,CAAC,EAAE,EAAE,KAAK,IAAI,KACjE;AACF,UAAM,QAAQ,OAAO,IAAI,KAAK,KAAK,EAAE,OAAO,QAAQ,GAAC;AACrD,UAAM,OAAO,KAAK;AAAA,MAChB,IAAI,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,EAAE,YAAA;AAAA,MACpC,OAAO,OAAO,IAAI,KAAK;AAAA,IAAA,CACxB;AACD,WAAO,IAAI,OAAO,KAAK;AAAA,EACzB;AACA,QAAM,SAA6B,CAAA;AACnC,QAAM,YAAgD,CAAA;AACtD,GAAC,GAAG,OAAO,OAAA,CAAQ,EAAE,QAAQ,CAAC,OAAO,UAAU;AAC7C,UAAM,KAAK,UAAU,KAAK;AAC1B,WAAO,KAAK,EAAE,IAAI,OAAO,MAAM,OAAO;AACtC,cAAU,EAAE,IAAI,EAAE,IAAI,QAAQ,MAAM,OAAA;AAAA,EACtC,CAAC;AACD,SAAO,EAAE,QAAQ,UAAA;AACnB;"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const InputField = require("../components/InputField.cjs");
5
+ const queryRowLimitsModel = require("./queryRowLimitsModel.cjs");
6
+ const profileCaps = [
7
+ {
8
+ key: "pageSize",
9
+ label: "Page size",
10
+ title: "Rows one page returns when the caller asks for no size.",
11
+ fallback: "pageSize"
12
+ },
13
+ {
14
+ key: "maxPageSize",
15
+ label: "Max page",
16
+ title: "Largest single page a caller may ask this profile for.",
17
+ fallback: "maxPageSize"
18
+ },
19
+ {
20
+ key: "maxExportRows",
21
+ label: "Max export",
22
+ title: "Where an all-row export of this profile stops.",
23
+ fallback: "maxExportRows"
24
+ }
25
+ ];
26
+ function QueryRowLimits({
27
+ value,
28
+ onChange,
29
+ defaults,
30
+ limits,
31
+ onLimitsChange
32
+ }) {
33
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-end gap-3", children: [
34
+ /* @__PURE__ */ jsxRuntime.jsx(
35
+ RowLimitField,
36
+ {
37
+ label: "Limit",
38
+ title: "Rows this query asks the source for.",
39
+ value,
40
+ placeholder: "rows",
41
+ onChange
42
+ }
43
+ ),
44
+ onLimitsChange ? profileCaps.map((cap) => /* @__PURE__ */ jsxRuntime.jsx(
45
+ RowLimitField,
46
+ {
47
+ label: cap.label,
48
+ title: cap.title,
49
+ value: (limits == null ? void 0 : limits[cap.key]) === void 0 ? "" : String(limits[cap.key]),
50
+ placeholder: defaults ? defaults[cap.fallback].toLocaleString("en-US") : "",
51
+ onChange: (text) => onLimitsChange(queryRowLimitsModel.applyRowLimit(limits, cap.key, text))
52
+ },
53
+ cap.key
54
+ )) : null
55
+ ] });
56
+ }
57
+ function RowLimitField({
58
+ label,
59
+ title,
60
+ value,
61
+ placeholder,
62
+ onChange
63
+ }) {
64
+ return /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex flex-col gap-1", children: [
65
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-muted-foreground", children: label }),
66
+ /* @__PURE__ */ jsxRuntime.jsx(
67
+ InputField.InputField,
68
+ {
69
+ "aria-label": label,
70
+ className: "w-24",
71
+ type: "number",
72
+ min: "1",
73
+ placeholder,
74
+ title,
75
+ value,
76
+ onChange
77
+ }
78
+ )
79
+ ] });
80
+ }
81
+ exports.QueryRowLimits = QueryRowLimits;
82
+ //# sourceMappingURL=queryRowLimits.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryRowLimits.cjs","sources":["../../src/profiles/queryRowLimits.tsx"],"sourcesContent":["/**\n * The four row caps, edited beside the filters they bound rather than buried in\n * the generic options form. They answer different questions and so get a field\n * each: Limit is how many rows the query asks the source for (a provider\n * option), while the page a caller gets by default, the largest page it may ask\n * for and where an export stops belong to the profile. A cap the profile leaves\n * empty shows the inherited default as its placeholder.\n */\n\nimport { InputField } from \"../components/InputField\";\nimport type {\n BrowserRowLimits,\n ProfileRowLimits,\n} from \"./connectionBrowserModel\";\nimport { applyRowLimit } from \"./queryRowLimitsModel\";\n\nconst profileCaps: {\n key: keyof ProfileRowLimits;\n label: string;\n title: string;\n fallback: keyof BrowserRowLimits;\n}[] = [\n {\n key: \"pageSize\",\n label: \"Page size\",\n title: \"Rows one page returns when the caller asks for no size.\",\n fallback: \"pageSize\",\n },\n {\n key: \"maxPageSize\",\n label: \"Max page\",\n title: \"Largest single page a caller may ask this profile for.\",\n fallback: \"maxPageSize\",\n },\n {\n key: \"maxExportRows\",\n label: \"Max export\",\n title: \"Where an all-row export of this profile stops.\",\n fallback: \"maxExportRows\",\n },\n];\n\nexport function QueryRowLimits({\n value,\n onChange,\n defaults,\n limits,\n onLimitsChange,\n}: {\n value: string;\n onChange: (limit: string) => void;\n defaults?: BrowserRowLimits;\n limits?: ProfileRowLimits;\n onLimitsChange?: (limits: ProfileRowLimits | undefined) => void;\n}) {\n return (\n <div className=\"flex flex-wrap items-end gap-3\">\n <RowLimitField\n label=\"Limit\"\n title=\"Rows this query asks the source for.\"\n value={value}\n placeholder=\"rows\"\n onChange={onChange}\n />\n {onLimitsChange\n ? profileCaps.map((cap) => (\n <RowLimitField\n key={cap.key}\n label={cap.label}\n title={cap.title}\n value={limits?.[cap.key] === undefined ? \"\" : String(limits[cap.key])}\n placeholder={\n defaults ? defaults[cap.fallback].toLocaleString(\"en-US\") : \"\"\n }\n onChange={(text) =>\n onLimitsChange(applyRowLimit(limits, cap.key, text))\n }\n />\n ))\n : null}\n </div>\n );\n}\n\nfunction RowLimitField({\n label,\n title,\n value,\n placeholder,\n onChange,\n}: {\n label: string;\n title: string;\n value: string;\n placeholder: string;\n onChange: (text: string) => void;\n}) {\n return (\n <label className=\"flex flex-col gap-1\">\n <span className=\"text-xs font-medium text-muted-foreground\">{label}</span>\n <InputField\n aria-label={label}\n className=\"w-24\"\n type=\"number\"\n min=\"1\"\n placeholder={placeholder}\n title={title}\n value={value}\n onChange={onChange}\n />\n </label>\n );\n}\n"],"names":["jsxs","jsx","applyRowLimit","InputField"],"mappings":";;;;;AAgBA,MAAM,cAKA;AAAA,EACJ;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,EAAA;AAAA,EAEZ;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,EAAA;AAAA,EAEZ;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,EAAA;AAEd;AAEO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMG;AACD,SACEA,2BAAAA,KAAC,OAAA,EAAI,WAAU,kCACb,UAAA;AAAA,IAAAC,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,OAAM;AAAA,QACN;AAAA,QACA,aAAY;AAAA,QACZ;AAAA,MAAA;AAAA,IAAA;AAAA,IAED,iBACG,YAAY,IAAI,CAAC,QACfA,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QAEC,OAAO,IAAI;AAAA,QACX,OAAO,IAAI;AAAA,QACX,QAAO,iCAAS,IAAI,UAAS,SAAY,KAAK,OAAO,OAAO,IAAI,GAAG,CAAC;AAAA,QACpE,aACE,WAAW,SAAS,IAAI,QAAQ,EAAE,eAAe,OAAO,IAAI;AAAA,QAE9D,UAAU,CAAC,SACT,eAAeC,oBAAAA,cAAc,QAAQ,IAAI,KAAK,IAAI,CAAC;AAAA,MAAA;AAAA,MARhD,IAAI;AAAA,IAAA,CAWZ,IACD;AAAA,EAAA,GACN;AAEJ;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMG;AACD,SACEF,2BAAAA,KAAC,SAAA,EAAM,WAAU,uBACf,UAAA;AAAA,IAAAC,2BAAAA,IAAC,QAAA,EAAK,WAAU,6CAA6C,UAAA,OAAM;AAAA,IACnEA,2BAAAA;AAAAA,MAACE,WAAAA;AAAAA,MAAA;AAAA,QACC,cAAY;AAAA,QACZ,WAAU;AAAA,QACV,MAAK;AAAA,QACL,KAAI;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;;"}
@@ -0,0 +1,9 @@
1
+ import { BrowserRowLimits, ProfileRowLimits } from './connectionBrowserModel';
2
+ export declare function QueryRowLimits({ value, onChange, defaults, limits, onLimitsChange, }: {
3
+ value: string;
4
+ onChange: (limit: string) => void;
5
+ defaults?: BrowserRowLimits;
6
+ limits?: ProfileRowLimits;
7
+ onLimitsChange?: (limits: ProfileRowLimits | undefined) => void;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=queryRowLimits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryRowLimits.d.ts","sourceRoot":"","sources":["../../src/profiles/queryRowLimits.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AA6BlC,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,cAAc,GACf,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,KAAK,IAAI,CAAC;CACjE,2CA4BA"}