@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClickyExportDialog.js","sources":["../../../src/data/clicky-export/ClickyExportDialog.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { Button } from \"../../components/button\";\nimport { Modal } from \"../../overlay/Modal\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport { cn } from \"../../lib/utils\";\n\n/** One format the endpoint advertises, already resolved for display. */\nexport type ClickyExportFormatOption = {\n /** Value handed back to `onDownload`. */\n format: string;\n label: string;\n /** What the format is for. */\n description?: string | undefined;\n icon?: StaticIconComponent | undefined;\n iconClassName?: string | undefined;\n};\n\n/** One result range the endpoint advertises. */\nexport type ClickyExportScopeOption = {\n /** Value handed back to `onDownload`; undefined for a legacy endpoint. */\n scope: string | undefined;\n label: string;\n /**\n * What this range costs or caps — \"Limited to 1,000 rows\", \"Streams rows as\n * they are read\". Per format, because a PDF's ceiling is not a CSV's.\n */\n note?: ((format: string) => string | undefined) | undefined;\n};\n\nexport type ClickyExportDialogProps = {\n open: boolean;\n onClose: () => void;\n title?: string;\n formats: ClickyExportFormatOption[];\n scopes: ClickyExportScopeOption[];\n /** Runs the export. Rejecting shows the reason without closing the dialog. */\n onDownload: (request: {\n format: string;\n scope: string | undefined;\n }) => Promise<void> | void;\n};\n\n/**\n * ClickyExportDialog picks a format and a range, then downloads.\n *\n * It exists because the same choice as a menu was 16 rows — every format times\n * every range — which pushed everything else in that menu out of reach and\n * still truncated the one thing worth reading: what each range costs.\n */\nexport function ClickyExportDialog({\n open,\n onClose,\n title = \"Export\",\n formats,\n scopes,\n onDownload,\n}: ClickyExportDialogProps) {\n const [format, setFormat] = useState(formats[0]?.format);\n const [scope, setScope] = useState(scopes[0]?.scope);\n const [pending, setPending] = useState(false);\n const [error, setError] = useState(\"\");\n\n // Reopening starts from a clean slate: the error belongs to the attempt that\n // produced it, not to the next one.\n useEffect(() => {\n if (open) setError(\"\");\n }, [open]);\n\n const activeScope = scopes.find((option) => option.scope === scope);\n\n const download = async () => {\n if (!format) return;\n setPending(true);\n setError(\"\");\n try {\n await onDownload({ format, scope });\n onClose();\n } catch (cause) {\n setError(cause instanceof Error ? cause.message : \"The export failed\");\n } finally {\n setPending(false);\n }\n };\n\n return (\n <Modal\n open={open}\n onClose={onClose}\n title={title}\n size=\"lg\"\n closeOnEsc\n footer={\n <div className=\"flex items-center justify-end gap-2\">\n <Button variant=\"outline\" onClick={onClose} disabled={pending}>\n Cancel\n </Button>\n <Button\n onClick={() => void download()}\n loading={pending}\n disabled={!format}\n >\n Download\n </Button>\n </div>\n }\n >\n <div className=\"space-y-4\">\n {error && (\n <div\n role=\"alert\"\n className=\"rounded-md border border-destructive/40 bg-destructive/5 p-3 text-sm text-destructive\"\n >\n {error}\n </div>\n )}\n\n {scopes.length > 1 ? (\n <fieldset>\n <legend className=\"mb-1.5 text-[11px] font-medium uppercase tracking-wide text-muted-foreground\">\n Rows\n </legend>\n <div className=\"flex flex-wrap gap-2\">\n {scopes.map((option) => (\n <label\n key={option.scope ?? \"default\"}\n className={cn(\n \"cursor-pointer rounded-md border px-3 py-1.5 text-sm transition-colors\",\n option.scope === scope\n ? \"border-foreground/20 bg-accent text-accent-foreground\"\n : \"border-input hover:bg-accent hover:text-accent-foreground\",\n )}\n >\n <input\n type=\"radio\"\n name=\"clicky-export-scope\"\n // Named explicitly: the input is visually hidden behind its\n // own styled label, so nothing else gives it a name.\n aria-label={option.label}\n className=\"sr-only\"\n checked={option.scope === scope}\n onChange={() => setScope(option.scope)}\n />\n {option.label}\n </label>\n ))}\n </div>\n </fieldset>\n ) : (\n scopes[0]?.label && (\n <p className=\"text-sm text-muted-foreground\">{scopes[0].label}</p>\n )\n )}\n\n <fieldset>\n <legend className=\"mb-1.5 text-[11px] font-medium uppercase tracking-wide text-muted-foreground\">\n Format\n </legend>\n <div className=\"grid gap-1 sm:grid-cols-2\">\n {formats.map((option) => {\n const note = activeScope?.note?.(option.format);\n return (\n <label\n key={option.format}\n className={cn(\n \"flex cursor-pointer items-start gap-2 rounded-md border px-3 py-2 text-left transition-colors\",\n option.format === format\n ? \"border-foreground/20 bg-accent text-accent-foreground\"\n : \"border-transparent hover:bg-accent hover:text-accent-foreground\",\n )}\n >\n <input\n type=\"radio\"\n name=\"clicky-export-format\"\n aria-label={option.label}\n className=\"sr-only\"\n checked={option.format === format}\n onChange={() => setFormat(option.format)}\n />\n {option.icon && (\n <Icon\n icon={option.icon}\n className={cn(\n \"mt-0.5 shrink-0 text-sm\",\n option.iconClassName ?? \"text-muted-foreground\",\n )}\n />\n )}\n <span className=\"min-w-0\">\n <span className=\"block text-sm font-medium\">\n {option.label}\n </span>\n {option.description && (\n <span className=\"mt-0.5 block text-xs text-muted-foreground\">\n {option.description}\n </span>\n )}\n {note && (\n <span className=\"mt-0.5 block text-xs text-amber-700 [[data-theme=dark]_&]:text-amber-400\">\n {note}\n </span>\n )}\n </span>\n </label>\n );\n })}\n </div>\n </fieldset>\n\n </div>\n </Modal>\n );\n}\n"],"names":["_a"],"mappings":";;;;;;AAiDO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AACF,GAA4B;;AAC1B,QAAM,CAAC,QAAQ,SAAS,IAAI,UAAS,aAAQ,CAAC,MAAT,mBAAY,MAAM;AACvD,QAAM,CAAC,OAAO,QAAQ,IAAI,UAAS,YAAO,CAAC,MAAR,mBAAW,KAAK;AACnD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,EAAE;AAIrC,YAAU,MAAM;AACd,QAAI,eAAe,EAAE;AAAA,EACvB,GAAG,CAAC,IAAI,CAAC;AAET,QAAM,cAAc,OAAO,KAAK,CAAC,WAAW,OAAO,UAAU,KAAK;AAElE,QAAM,WAAW,YAAY;AAC3B,QAAI,CAAC,OAAQ;AACb,eAAW,IAAI;AACf,aAAS,EAAE;AACX,QAAI;AACF,YAAM,WAAW,EAAE,QAAQ,OAAO;AAClC,cAAA;AAAA,IACF,SAAS,OAAO;AACd,eAAS,iBAAiB,QAAQ,MAAM,UAAU,mBAAmB;AAAA,IACvE,UAAA;AACE,iBAAW,KAAK;AAAA,IAClB;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAK;AAAA,MACL,YAAU;AAAA,MACV,QACE,qBAAC,OAAA,EAAI,WAAU,uCACb,UAAA;AAAA,QAAA,oBAAC,UAAO,SAAQ,WAAU,SAAS,SAAS,UAAU,SAAS,UAAA,SAAA,CAE/D;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAS,MAAM,KAAK,SAAA;AAAA,YACpB,SAAS;AAAA,YACT,UAAU,CAAC;AAAA,YACZ,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAED,GACF;AAAA,MAGF,UAAA,qBAAC,OAAA,EAAI,WAAU,aACZ,UAAA;AAAA,QAAA,SACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YAET,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAIJ,OAAO,SAAS,IACf,qBAAC,YAAA,EACC,UAAA;AAAA,UAAA,oBAAC,UAAA,EAAO,WAAU,gFAA+E,UAAA,QAEjG;AAAA,8BACC,OAAA,EAAI,WAAU,wBACZ,UAAA,OAAO,IAAI,CAAC,WACX;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,WAAW;AAAA,gBACT;AAAA,gBACA,OAAO,UAAU,QACb,0DACA;AAAA,cAAA;AAAA,cAGN,UAAA;AAAA,gBAAA;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,MAAK;AAAA,oBAGL,cAAY,OAAO;AAAA,oBACnB,WAAU;AAAA,oBACV,SAAS,OAAO,UAAU;AAAA,oBAC1B,UAAU,MAAM,SAAS,OAAO,KAAK;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAEtC,OAAO;AAAA,cAAA;AAAA,YAAA;AAAA,YAlBH,OAAO,SAAS;AAAA,UAAA,CAoBxB,EAAA,CACH;AAAA,QAAA,EAAA,CACF,MAEA,YAAO,CAAC,MAAR,mBAAW,UACT,oBAAC,KAAA,EAAE,WAAU,iCAAiC,UAAA,OAAO,CAAC,EAAE,MAAA,CAAM;AAAA,6BAIjE,YAAA,EACC,UAAA;AAAA,UAAA,oBAAC,UAAA,EAAO,WAAU,gFAA+E,UAAA,UAEjG;AAAA,8BACC,OAAA,EAAI,WAAU,6BACZ,UAAA,QAAQ,IAAI,CAAC,WAAW;;AACvB,kBAAM,QAAOA,MAAA,2CAAa,SAAb,gBAAAA,IAAA,kBAAoB,OAAO;AACxC,mBACE;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,WAAW;AAAA,kBACT;AAAA,kBACA,OAAO,WAAW,SACd,0DACA;AAAA,gBAAA;AAAA,gBAGN,UAAA;AAAA,kBAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,MAAK;AAAA,sBACL,MAAK;AAAA,sBACL,cAAY,OAAO;AAAA,sBACnB,WAAU;AAAA,sBACV,SAAS,OAAO,WAAW;AAAA,sBAC3B,UAAU,MAAM,UAAU,OAAO,MAAM;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAExC,OAAO,QACN;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,MAAM,OAAO;AAAA,sBACb,WAAW;AAAA,wBACT;AAAA,wBACA,OAAO,iBAAiB;AAAA,sBAAA;AAAA,oBAC1B;AAAA,kBAAA;AAAA,kBAGJ,qBAAC,QAAA,EAAK,WAAU,WACd,UAAA;AAAA,oBAAA,oBAAC,QAAA,EAAK,WAAU,6BACb,UAAA,OAAO,OACV;AAAA,oBACC,OAAO,eACN,oBAAC,UAAK,WAAU,8CACb,iBAAO,aACV;AAAA,oBAED,QACC,oBAAC,QAAA,EAAK,WAAU,4EACb,UAAA,KAAA,CACH;AAAA,kBAAA,EAAA,CAEJ;AAAA,gBAAA;AAAA,cAAA;AAAA,cAvCK,OAAO;AAAA,YAAA;AAAA,UA0ClB,CAAC,EAAA,CACH;AAAA,QAAA,EAAA,CACF;AAAA,MAAA,EAAA,CAEF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,3 @@
1
+ export { ClickyExportDialog, type ClickyExportDialogProps, type ClickyExportFormatOption, type ClickyExportScopeOption, } from './ClickyExportDialog';
2
+ export { useClickyExport, type UseClickyExportOptions, type UseClickyExportResult, } from './useClickyExport';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/clicky-export/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const react = require("react");
5
+ const ClickyExportDialog = require("./ClickyExportDialog.cjs");
6
+ const UiCloudDownload = require("../../icons/components/UiCloudDownload.cjs");
7
+ function useClickyExport({
8
+ formats,
9
+ scopes,
10
+ onDownload,
11
+ label = "Export…",
12
+ title
13
+ }) {
14
+ const [open, setOpen] = react.useState(false);
15
+ const close = react.useCallback(() => setOpen(false), []);
16
+ const available = formats.length > 0;
17
+ const action = react.useMemo(
18
+ () => available ? {
19
+ id: "export",
20
+ label,
21
+ icon: UiCloudDownload.UiCloudDownload,
22
+ section: "",
23
+ onSelect: () => setOpen(true)
24
+ } : void 0,
25
+ [available, label]
26
+ );
27
+ if (!available) return { action: void 0, dialog: null };
28
+ return {
29
+ action,
30
+ dialog: /* @__PURE__ */ jsxRuntime.jsx(
31
+ ClickyExportDialog.ClickyExportDialog,
32
+ {
33
+ open,
34
+ onClose: close,
35
+ formats,
36
+ scopes,
37
+ onDownload,
38
+ ...title ? { title } : {}
39
+ }
40
+ )
41
+ };
42
+ }
43
+ exports.useClickyExport = useClickyExport;
44
+ //# sourceMappingURL=useClickyExport.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useClickyExport.cjs","sources":["../../../src/data/clicky-export/useClickyExport.tsx"],"sourcesContent":["import { useCallback, useMemo, useState, type ReactNode } from \"react\";\nimport { UiCloudDownload } from \"../../icons\";\nimport type { DataTableMenuAction } from \"../DataTable\";\nimport {\n ClickyExportDialog,\n type ClickyExportFormatOption,\n type ClickyExportScopeOption,\n} from \"./ClickyExportDialog\";\n\nexport type UseClickyExportOptions = {\n formats: ClickyExportFormatOption[];\n scopes: ClickyExportScopeOption[];\n onDownload: (request: {\n format: string;\n scope: string | undefined;\n }) => Promise<void> | void;\n /** Menu row label. Defaults to \"Export…\". */\n label?: string | undefined;\n /** Dialog heading. Defaults to \"Export\". */\n title?: string | undefined;\n};\n\nexport type UseClickyExportResult = {\n /** \"Export…\" for the table's overflow menu; absent with nothing to export. */\n action: DataTableMenuAction | undefined;\n /** Render alongside the table — the dialog the action opens. */\n dialog: ReactNode;\n};\n\n/**\n * useClickyExport puts a single \"Export…\" row in a table's overflow menu.\n *\n * One row rather than one per format-and-range: the choice belongs in a dialog\n * that has room to say what each range costs, and a menu whose formats outnumber\n * everything else in it is a menu whose other entries never get found.\n */\nexport function useClickyExport({\n formats,\n scopes,\n onDownload,\n label = \"Export…\",\n title,\n}: UseClickyExportOptions): UseClickyExportResult {\n const [open, setOpen] = useState(false);\n const close = useCallback(() => setOpen(false), []);\n const available = formats.length > 0;\n const action = useMemo<DataTableMenuAction | undefined>(\n () =>\n available\n ? {\n id: \"export\",\n label,\n icon: UiCloudDownload,\n section: \"\",\n onSelect: () => setOpen(true),\n }\n : undefined,\n [available, label],\n );\n\n if (!available) return { action: undefined, dialog: null };\n\n return {\n action,\n dialog: (\n <ClickyExportDialog\n open={open}\n onClose={close}\n formats={formats}\n scopes={scopes}\n onDownload={onDownload}\n {...(title ? { title } : {})}\n />\n ),\n };\n}\n"],"names":["useState","useCallback","useMemo","UiCloudDownload","jsx","ClickyExportDialog"],"mappings":";;;;;;AAoCO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR;AACF,GAAkD;AAChD,QAAM,CAAC,MAAM,OAAO,IAAIA,MAAAA,SAAS,KAAK;AACtC,QAAM,QAAQC,MAAAA,YAAY,MAAM,QAAQ,KAAK,GAAG,CAAA,CAAE;AAClD,QAAM,YAAY,QAAQ,SAAS;AACnC,QAAM,SAASC,MAAAA;AAAAA,IACb,MACE,YACI;AAAA,MACE,IAAI;AAAA,MACJ;AAAA,MACA,MAAMC,gBAAAA;AAAAA,MACN,SAAS;AAAA,MACT,UAAU,MAAM,QAAQ,IAAI;AAAA,IAAA,IAE9B;AAAA,IACN,CAAC,WAAW,KAAK;AAAA,EAAA;AAGnB,MAAI,CAAC,UAAW,QAAO,EAAE,QAAQ,QAAW,QAAQ,KAAA;AAEpD,SAAO;AAAA,IACL;AAAA,IACA,QACEC,2BAAAA;AAAAA,MAACC,mBAAAA;AAAAA,MAAA;AAAA,QACC;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACC,GAAI,QAAQ,EAAE,UAAU,CAAA;AAAA,MAAC;AAAA,IAAA;AAAA,EAC5B;AAGN;;"}
@@ -0,0 +1,30 @@
1
+ import { ReactNode } from 'react';
2
+ import { DataTableMenuAction } from '../DataTable';
3
+ import { ClickyExportFormatOption, ClickyExportScopeOption } from './ClickyExportDialog';
4
+ export type UseClickyExportOptions = {
5
+ formats: ClickyExportFormatOption[];
6
+ scopes: ClickyExportScopeOption[];
7
+ onDownload: (request: {
8
+ format: string;
9
+ scope: string | undefined;
10
+ }) => Promise<void> | void;
11
+ /** Menu row label. Defaults to "Export…". */
12
+ label?: string | undefined;
13
+ /** Dialog heading. Defaults to "Export". */
14
+ title?: string | undefined;
15
+ };
16
+ export type UseClickyExportResult = {
17
+ /** "Export…" for the table's overflow menu; absent with nothing to export. */
18
+ action: DataTableMenuAction | undefined;
19
+ /** Render alongside the table — the dialog the action opens. */
20
+ dialog: ReactNode;
21
+ };
22
+ /**
23
+ * useClickyExport puts a single "Export…" row in a table's overflow menu.
24
+ *
25
+ * One row rather than one per format-and-range: the choice belongs in a dialog
26
+ * that has room to say what each range costs, and a menu whose formats outnumber
27
+ * everything else in it is a menu whose other entries never get found.
28
+ */
29
+ export declare function useClickyExport({ formats, scopes, onDownload, label, title, }: UseClickyExportOptions): UseClickyExportResult;
30
+ //# sourceMappingURL=useClickyExport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useClickyExport.d.ts","sourceRoot":"","sources":["../../../src/data/clicky-export/useClickyExport.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC,MAAM,EAAE,uBAAuB,EAAE,CAAC;IAClC,UAAU,EAAE,CAAC,OAAO,EAAE;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;KAC3B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3B,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,8EAA8E;IAC9E,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACxC,gEAAgE;IAChE,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,MAAM,EACN,UAAU,EACV,KAAiB,EACjB,KAAK,GACN,EAAE,sBAAsB,GAAG,qBAAqB,CAiChD"}
@@ -0,0 +1,44 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useState, useCallback, useMemo } from "react";
3
+ import { ClickyExportDialog } from "./ClickyExportDialog.js";
4
+ import { UiCloudDownload } from "../../icons/components/UiCloudDownload.js";
5
+ function useClickyExport({
6
+ formats,
7
+ scopes,
8
+ onDownload,
9
+ label = "Export…",
10
+ title
11
+ }) {
12
+ const [open, setOpen] = useState(false);
13
+ const close = useCallback(() => setOpen(false), []);
14
+ const available = formats.length > 0;
15
+ const action = useMemo(
16
+ () => available ? {
17
+ id: "export",
18
+ label,
19
+ icon: UiCloudDownload,
20
+ section: "",
21
+ onSelect: () => setOpen(true)
22
+ } : void 0,
23
+ [available, label]
24
+ );
25
+ if (!available) return { action: void 0, dialog: null };
26
+ return {
27
+ action,
28
+ dialog: /* @__PURE__ */ jsx(
29
+ ClickyExportDialog,
30
+ {
31
+ open,
32
+ onClose: close,
33
+ formats,
34
+ scopes,
35
+ onDownload,
36
+ ...title ? { title } : {}
37
+ }
38
+ )
39
+ };
40
+ }
41
+ export {
42
+ useClickyExport
43
+ };
44
+ //# sourceMappingURL=useClickyExport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useClickyExport.js","sources":["../../../src/data/clicky-export/useClickyExport.tsx"],"sourcesContent":["import { useCallback, useMemo, useState, type ReactNode } from \"react\";\nimport { UiCloudDownload } from \"../../icons\";\nimport type { DataTableMenuAction } from \"../DataTable\";\nimport {\n ClickyExportDialog,\n type ClickyExportFormatOption,\n type ClickyExportScopeOption,\n} from \"./ClickyExportDialog\";\n\nexport type UseClickyExportOptions = {\n formats: ClickyExportFormatOption[];\n scopes: ClickyExportScopeOption[];\n onDownload: (request: {\n format: string;\n scope: string | undefined;\n }) => Promise<void> | void;\n /** Menu row label. Defaults to \"Export…\". */\n label?: string | undefined;\n /** Dialog heading. Defaults to \"Export\". */\n title?: string | undefined;\n};\n\nexport type UseClickyExportResult = {\n /** \"Export…\" for the table's overflow menu; absent with nothing to export. */\n action: DataTableMenuAction | undefined;\n /** Render alongside the table — the dialog the action opens. */\n dialog: ReactNode;\n};\n\n/**\n * useClickyExport puts a single \"Export…\" row in a table's overflow menu.\n *\n * One row rather than one per format-and-range: the choice belongs in a dialog\n * that has room to say what each range costs, and a menu whose formats outnumber\n * everything else in it is a menu whose other entries never get found.\n */\nexport function useClickyExport({\n formats,\n scopes,\n onDownload,\n label = \"Export…\",\n title,\n}: UseClickyExportOptions): UseClickyExportResult {\n const [open, setOpen] = useState(false);\n const close = useCallback(() => setOpen(false), []);\n const available = formats.length > 0;\n const action = useMemo<DataTableMenuAction | undefined>(\n () =>\n available\n ? {\n id: \"export\",\n label,\n icon: UiCloudDownload,\n section: \"\",\n onSelect: () => setOpen(true),\n }\n : undefined,\n [available, label],\n );\n\n if (!available) return { action: undefined, dialog: null };\n\n return {\n action,\n dialog: (\n <ClickyExportDialog\n open={open}\n onClose={close}\n formats={formats}\n scopes={scopes}\n onDownload={onDownload}\n {...(title ? { title } : {})}\n />\n ),\n };\n}\n"],"names":[],"mappings":";;;;AAoCO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR;AACF,GAAkD;AAChD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AACtC,QAAM,QAAQ,YAAY,MAAM,QAAQ,KAAK,GAAG,CAAA,CAAE;AAClD,QAAM,YAAY,QAAQ,SAAS;AACnC,QAAM,SAAS;AAAA,IACb,MACE,YACI;AAAA,MACE,IAAI;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU,MAAM,QAAQ,IAAI;AAAA,IAAA,IAE9B;AAAA,IACN,CAAC,WAAW,KAAK;AAAA,EAAA;AAGnB,MAAI,CAAC,UAAW,QAAO,EAAE,QAAQ,QAAW,QAAQ,KAAA;AAEpD,SAAO;AAAA,IACL;AAAA,IACA,QACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACC,GAAI,QAAQ,EAAE,UAAU,CAAA;AAAA,MAAC;AAAA,IAAA;AAAA,EAC5B;AAGN;"}
@@ -42,7 +42,6 @@ const SUPPORTED_LANGS = [
42
42
  const SUPPORTED_THEMES = ["github-light", "github-dark"];
43
43
  const DEFAULT_THEME = "github-light";
44
44
  let highlighterLoad = null;
45
- let transformersLoad = null;
46
45
  function loadHighlighter() {
47
46
  highlighterLoad ?? (highlighterLoad = (async () => {
48
47
  const [{ createHighlighterCore }, { createOnigurumaEngine }] = await Promise.all([
@@ -75,10 +74,6 @@ function loadHighlighter() {
75
74
  })());
76
75
  return highlighterLoad;
77
76
  }
78
- function loadShikiTransformers() {
79
- transformersLoad ?? (transformersLoad = import("@shikijs/transformers"));
80
- return transformersLoad;
81
- }
82
77
  function languageFromPath(path) {
83
78
  if (!path) return void 0;
84
79
  const basename = path.slice(path.lastIndexOf("/") + 1);
@@ -141,5 +136,4 @@ async function highlightToLines(source, opts) {
141
136
  exports.highlightCode = highlightCode;
142
137
  exports.highlightToLines = highlightToLines;
143
138
  exports.languageFromPath = languageFromPath;
144
- exports.loadShikiTransformers = loadShikiTransformers;
145
139
  //# sourceMappingURL=code-highlight.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-highlight.cjs","sources":["../../src/data/code-highlight.ts"],"sourcesContent":["// Lazy-loaded wrapper around a Shiki *core* highlighter pre-registered with a\n// fixed language + theme set. The default `shiki` entry point bundles every\n// grammar/theme as separate dynamic imports — Vite then code-splits each into\n// its own chunk (~280 langs + 50 themes), even when only a handful are ever\n// used. Switching to `shiki/core` and registering a curated subset cuts the\n// app dist by ~6M and ~300 chunks.\n//\n// Languages are picked from what the renderer actually emits (Clicky code\n// blocks + Java stack traces). Anything outside the list silently falls back\n// to plain text — same behavior as before, just without paying for grammars\n// nobody asked for.\n\nimport type { HighlighterCore, ThemeRegistrationAny } from \"shiki/core\";\n\ntype ShikiTransformersModule = typeof import(\"@shikijs/transformers\");\ntype ShikiTransformer = NonNullable<\n Parameters<HighlighterCore[\"codeToHtml\"]>[1][\"transformers\"]\n>[number];\n\nconst SUPPORTED_LANGS = [\n \"java\",\n \"go\",\n \"python\",\n \"javascript\",\n \"typescript\",\n \"tsx\",\n \"jsx\",\n \"json\",\n \"yaml\",\n \"bash\",\n \"shell\",\n \"sql\",\n \"xml\",\n \"html\",\n \"css\",\n] as const;\n\ntype SupportedLang = (typeof SUPPORTED_LANGS)[number];\n\nconst SUPPORTED_THEMES = [\"github-light\", \"github-dark\"] as const;\ntype SupportedTheme = (typeof SUPPORTED_THEMES)[number];\nconst DEFAULT_THEME: SupportedTheme = \"github-light\";\n\nlet highlighterLoad: Promise<HighlighterCore> | null = null;\nlet transformersLoad: Promise<ShikiTransformersModule> | null = null;\n\nfunction loadHighlighter(): Promise<HighlighterCore> {\n highlighterLoad ??= (async () => {\n const [{ createHighlighterCore }, { createOnigurumaEngine }] = await Promise.all([\n import(\"shiki/core\"),\n import(\"shiki/engine/oniguruma\"),\n ]);\n return createHighlighterCore({\n themes: [\n import(\"@shikijs/themes/github-light\") as Promise<{ default: ThemeRegistrationAny }>,\n import(\"@shikijs/themes/github-dark\") as Promise<{ default: ThemeRegistrationAny }>,\n ],\n langs: [\n import(\"@shikijs/langs/java\"),\n import(\"@shikijs/langs/go\"),\n import(\"@shikijs/langs/python\"),\n import(\"@shikijs/langs/javascript\"),\n import(\"@shikijs/langs/typescript\"),\n import(\"@shikijs/langs/tsx\"),\n import(\"@shikijs/langs/jsx\"),\n import(\"@shikijs/langs/json\"),\n import(\"@shikijs/langs/yaml\"),\n import(\"@shikijs/langs/bash\"),\n import(\"@shikijs/langs/sql\"),\n import(\"@shikijs/langs/xml\"),\n import(\"@shikijs/langs/html\"),\n import(\"@shikijs/langs/css\"),\n ],\n engine: createOnigurumaEngine(import(\"shiki/wasm\")),\n });\n })();\n return highlighterLoad;\n}\n\nexport function loadShikiTransformers(): Promise<ShikiTransformersModule> {\n transformersLoad ??= import(\"@shikijs/transformers\");\n return transformersLoad;\n}\n\nexport type HighlightOptions = {\n lang: string;\n theme?: string;\n transformers?: ShikiTransformer[];\n};\n\n// Derive a highlighter language hint from a file path's extension (e.g.\n// \"src/app.tsx\" → \"tsx\"). Returns undefined for extensionless paths and dotfiles;\n// `resolveLang` then maps aliases and drops anything unsupported.\nexport function languageFromPath(path: string | undefined): string | undefined {\n if (!path) return undefined;\n const basename = path.slice(path.lastIndexOf(\"/\") + 1);\n const dot = basename.lastIndexOf(\".\");\n if (dot <= 0) return undefined;\n return basename.slice(dot + 1).toLowerCase();\n}\n\nfunction resolveLang(input: string): SupportedLang | null {\n const lang = input.toLowerCase();\n if ((SUPPORTED_LANGS as readonly string[]).includes(lang)) return lang as SupportedLang;\n if (lang === \"shell\" || lang === \"sh\" || lang === \"zsh\") return \"bash\";\n if (lang === \"ts\") return \"typescript\";\n if (lang === \"js\") return \"javascript\";\n if (lang === \"py\") return \"python\";\n if (lang === \"yml\") return \"yaml\";\n return null;\n}\n\nfunction resolveTheme(input: string | undefined): SupportedTheme {\n if (input && (SUPPORTED_THEMES as readonly string[]).includes(input)) {\n return input as SupportedTheme;\n }\n return DEFAULT_THEME;\n}\n\nexport async function highlightCode(\n source: string,\n opts: HighlightOptions,\n): Promise<string | null> {\n if (!source || !opts.lang) return null;\n const lang = resolveLang(opts.lang);\n if (!lang) return null;\n try {\n const highlighter = await loadHighlighter();\n return highlighter.codeToHtml(source, {\n lang,\n theme: resolveTheme(opts.theme),\n ...(opts.transformers ? { transformers: opts.transformers } : {}),\n });\n } catch {\n return null;\n }\n}\n\n// A single highlighted token: its text, an optional hex `color`, and Shiki's\n// `fontStyle` bitmask (1=italic, 2=bold, 4=underline).\nexport type HighlightedToken = { content: string; color?: string; fontStyle?: number };\nexport type HighlightedLine = HighlightedToken[];\n\n// Tokenize `source` into per-line themed tokens for `CodeDiff`, which paints its\n// own diff gutters/rows rather than embedding Shiki's `<pre>` HTML. Returns null\n// on empty source, an unsupported language, or a highlighter failure — the caller\n// then renders plain text (same graceful degradation as `highlightCode`).\nexport async function highlightToLines(\n source: string,\n opts: HighlightOptions,\n): Promise<HighlightedLine[] | null> {\n if (!source || !opts.lang) return null;\n const lang = resolveLang(opts.lang);\n if (!lang) return null;\n try {\n const highlighter = await loadHighlighter();\n const { tokens } = highlighter.codeToTokens(source, {\n lang,\n theme: resolveTheme(opts.theme),\n });\n return tokens.map((line) =>\n line.map((token) => ({\n content: token.content,\n ...(token.color ? { color: token.color } : {}),\n ...(token.fontStyle ? { fontStyle: token.fontStyle } : {}),\n })),\n );\n } catch {\n return null;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-highlight.cjs","sources":["../../src/data/code-highlight.ts"],"sourcesContent":["// Lazy-loaded wrapper around a Shiki *core* highlighter pre-registered with a\n// fixed language + theme set. The default `shiki` entry point bundles every\n// grammar/theme as separate dynamic imports — Vite then code-splits each into\n// its own chunk (~280 langs + 50 themes), even when only a handful are ever\n// used. Switching to `shiki/core` and registering a curated subset cuts the\n// app dist by ~6M and ~300 chunks.\n//\n// Languages are picked from what the renderer actually emits (Clicky code\n// blocks + Java stack traces). Anything outside the list silently falls back\n// to plain text — same behavior as before, just without paying for grammars\n// nobody asked for.\n\nimport type { HighlighterCore, ThemeRegistrationAny } from \"shiki/core\";\n\ntype ShikiTransformer = NonNullable<\n Parameters<HighlighterCore[\"codeToHtml\"]>[1][\"transformers\"]\n>[number];\n\nconst SUPPORTED_LANGS = [\n \"java\",\n \"go\",\n \"python\",\n \"javascript\",\n \"typescript\",\n \"tsx\",\n \"jsx\",\n \"json\",\n \"yaml\",\n \"bash\",\n \"shell\",\n \"sql\",\n \"xml\",\n \"html\",\n \"css\",\n] as const;\n\ntype SupportedLang = (typeof SUPPORTED_LANGS)[number];\n\nconst SUPPORTED_THEMES = [\"github-light\", \"github-dark\"] as const;\ntype SupportedTheme = (typeof SUPPORTED_THEMES)[number];\nconst DEFAULT_THEME: SupportedTheme = \"github-light\";\n\nlet highlighterLoad: Promise<HighlighterCore> | null = null;\n\nfunction loadHighlighter(): Promise<HighlighterCore> {\n highlighterLoad ??= (async () => {\n const [{ createHighlighterCore }, { createOnigurumaEngine }] = await Promise.all([\n import(\"shiki/core\"),\n import(\"shiki/engine/oniguruma\"),\n ]);\n return createHighlighterCore({\n themes: [\n import(\"@shikijs/themes/github-light\") as Promise<{ default: ThemeRegistrationAny }>,\n import(\"@shikijs/themes/github-dark\") as Promise<{ default: ThemeRegistrationAny }>,\n ],\n langs: [\n import(\"@shikijs/langs/java\"),\n import(\"@shikijs/langs/go\"),\n import(\"@shikijs/langs/python\"),\n import(\"@shikijs/langs/javascript\"),\n import(\"@shikijs/langs/typescript\"),\n import(\"@shikijs/langs/tsx\"),\n import(\"@shikijs/langs/jsx\"),\n import(\"@shikijs/langs/json\"),\n import(\"@shikijs/langs/yaml\"),\n import(\"@shikijs/langs/bash\"),\n import(\"@shikijs/langs/sql\"),\n import(\"@shikijs/langs/xml\"),\n import(\"@shikijs/langs/html\"),\n import(\"@shikijs/langs/css\"),\n ],\n engine: createOnigurumaEngine(import(\"shiki/wasm\")),\n });\n })();\n return highlighterLoad;\n}\n\nexport type HighlightOptions = {\n /** Highlighter language. Undefined when the caller has none, in which case\n * both entry points return null and the caller renders plain text — better\n * than guessing a grammar and mis-colouring the source. */\n lang: string | undefined;\n theme?: string;\n transformers?: ShikiTransformer[];\n};\n\n// Derive a highlighter language hint from a file path's extension (e.g.\n// \"src/app.tsx\" → \"tsx\"). Returns undefined for extensionless paths and dotfiles;\n// `resolveLang` then maps aliases and drops anything unsupported.\nexport function languageFromPath(path: string | undefined): string | undefined {\n if (!path) return undefined;\n const basename = path.slice(path.lastIndexOf(\"/\") + 1);\n const dot = basename.lastIndexOf(\".\");\n if (dot <= 0) return undefined;\n return basename.slice(dot + 1).toLowerCase();\n}\n\nfunction resolveLang(input: string): SupportedLang | null {\n const lang = input.toLowerCase();\n if ((SUPPORTED_LANGS as readonly string[]).includes(lang)) return lang as SupportedLang;\n if (lang === \"shell\" || lang === \"sh\" || lang === \"zsh\") return \"bash\";\n if (lang === \"ts\") return \"typescript\";\n if (lang === \"js\") return \"javascript\";\n if (lang === \"py\") return \"python\";\n if (lang === \"yml\") return \"yaml\";\n return null;\n}\n\nfunction resolveTheme(input: string | undefined): SupportedTheme {\n if (input && (SUPPORTED_THEMES as readonly string[]).includes(input)) {\n return input as SupportedTheme;\n }\n return DEFAULT_THEME;\n}\n\nexport async function highlightCode(\n source: string,\n opts: HighlightOptions,\n): Promise<string | null> {\n if (!source || !opts.lang) return null;\n const lang = resolveLang(opts.lang);\n if (!lang) return null;\n try {\n const highlighter = await loadHighlighter();\n return highlighter.codeToHtml(source, {\n lang,\n theme: resolveTheme(opts.theme),\n ...(opts.transformers ? { transformers: opts.transformers } : {}),\n });\n } catch {\n return null;\n }\n}\n\n// A single highlighted token: its text, an optional hex `color`, and Shiki's\n// `fontStyle` bitmask (1=italic, 2=bold, 4=underline).\nexport type HighlightedToken = { content: string; color?: string; fontStyle?: number };\nexport type HighlightedLine = HighlightedToken[];\n\n// Tokenize `source` into per-line themed tokens for the renderers that paint\n// their own gutters/rows rather than embedding Shiki's `<pre>` HTML `CodeDiff`\n// (add/remove markers) and `FrameSourceWindow` (absolute, possibly\n// non-contiguous, source line numbers). Returns null on empty source, an\n// unsupported language, or a highlighter failure — the caller then renders plain\n// text (same graceful degradation as `highlightCode`).\nexport async function highlightToLines(\n source: string,\n opts: HighlightOptions,\n): Promise<HighlightedLine[] | null> {\n if (!source || !opts.lang) return null;\n const lang = resolveLang(opts.lang);\n if (!lang) return null;\n try {\n const highlighter = await loadHighlighter();\n const { tokens } = highlighter.codeToTokens(source, {\n lang,\n theme: resolveTheme(opts.theme),\n });\n return tokens.map((line) =>\n line.map((token) => ({\n content: token.content,\n ...(token.color ? { color: token.color } : {}),\n ...(token.fontStyle ? { fontStyle: token.fontStyle } : {}),\n })),\n );\n } catch {\n return null;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,kBAAkB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIA,MAAM,mBAAmB,CAAC,gBAAgB,aAAa;AAEvD,MAAM,gBAAgC;AAEtC,IAAI,kBAAmD;AAEvD,SAAS,kBAA4C;AACnD,yCAAqB,YAAY;AAC/B,UAAM,CAAC,EAAE,yBAAyB,EAAE,uBAAuB,IAAI,MAAM,QAAQ,IAAI;AAAA,MAC/E,OAAO,YAAY;AAAA,MACnB,OAAO,wBAAwB;AAAA,IAAA,CAChC;AACD,WAAO,sBAAsB;AAAA,MAC3B,QAAQ;AAAA,QACN,OAAO,8BAA8B;AAAA,QACrC,OAAO,6BAA6B;AAAA,MAAA;AAAA,MAEtC,OAAO;AAAA,QACL,OAAO,qBAAqB;AAAA,QAC5B,OAAO,mBAAmB;AAAA,QAC1B,OAAO,uBAAuB;AAAA,QAC9B,OAAO,2BAA2B;AAAA,QAClC,OAAO,2BAA2B;AAAA,QAClC,OAAO,oBAAoB;AAAA,QAC3B,OAAO,oBAAoB;AAAA,QAC3B,OAAO,qBAAqB;AAAA,QAC5B,OAAO,qBAAqB;AAAA,QAC5B,OAAO,qBAAqB;AAAA,QAC5B,OAAO,oBAAoB;AAAA,QAC3B,OAAO,oBAAoB;AAAA,QAC3B,OAAO,qBAAqB;AAAA,QAC5B,OAAO,oBAAoB;AAAA,MAAA;AAAA,MAE7B,QAAQ,sBAAsB,OAAO,YAAY,CAAC;AAAA,IAAA,CACnD;AAAA,EACH,GAAA;AACA,SAAO;AACT;AAcO,SAAS,iBAAiB,MAA8C;AAC7E,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,WAAW,KAAK,MAAM,KAAK,YAAY,GAAG,IAAI,CAAC;AACrD,QAAM,MAAM,SAAS,YAAY,GAAG;AACpC,MAAI,OAAO,EAAG,QAAO;AACrB,SAAO,SAAS,MAAM,MAAM,CAAC,EAAE,YAAA;AACjC;AAEA,SAAS,YAAY,OAAqC;AACxD,QAAM,OAAO,MAAM,YAAA;AACnB,MAAK,gBAAsC,SAAS,IAAI,EAAG,QAAO;AAClE,MAAI,SAAS,WAAW,SAAS,QAAQ,SAAS,MAAO,QAAO;AAChE,MAAI,SAAS,KAAM,QAAO;AAC1B,MAAI,SAAS,KAAM,QAAO;AAC1B,MAAI,SAAS,KAAM,QAAO;AAC1B,MAAI,SAAS,MAAO,QAAO;AAC3B,SAAO;AACT;AAEA,SAAS,aAAa,OAA2C;AAC/D,MAAI,SAAU,iBAAuC,SAAS,KAAK,GAAG;AACpE,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,eAAsB,cACpB,QACA,MACwB;AACxB,MAAI,CAAC,UAAU,CAAC,KAAK,KAAM,QAAO;AAClC,QAAM,OAAO,YAAY,KAAK,IAAI;AAClC,MAAI,CAAC,KAAM,QAAO;AAClB,MAAI;AACF,UAAM,cAAc,MAAM,gBAAA;AAC1B,WAAO,YAAY,WAAW,QAAQ;AAAA,MACpC;AAAA,MACA,OAAO,aAAa,KAAK,KAAK;AAAA,MAC9B,GAAI,KAAK,eAAe,EAAE,cAAc,KAAK,aAAA,IAAiB,CAAA;AAAA,IAAC,CAChE;AAAA,EACH,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAaA,eAAsB,iBACpB,QACA,MACmC;AACnC,MAAI,CAAC,UAAU,CAAC,KAAK,KAAM,QAAO;AAClC,QAAM,OAAO,YAAY,KAAK,IAAI;AAClC,MAAI,CAAC,KAAM,QAAO;AAClB,MAAI;AACF,UAAM,cAAc,MAAM,gBAAA;AAC1B,UAAM,EAAE,OAAA,IAAW,YAAY,aAAa,QAAQ;AAAA,MAClD;AAAA,MACA,OAAO,aAAa,KAAK,KAAK;AAAA,IAAA,CAC/B;AACD,WAAO,OAAO;AAAA,MAAI,CAAC,SACjB,KAAK,IAAI,CAAC,WAAW;AAAA,QACnB,SAAS,MAAM;AAAA,QACf,GAAI,MAAM,QAAQ,EAAE,OAAO,MAAM,MAAA,IAAU,CAAA;AAAA,QAC3C,GAAI,MAAM,YAAY,EAAE,WAAW,MAAM,UAAA,IAAc,CAAA;AAAA,MAAC,EACxD;AAAA,IAAA;AAAA,EAEN,QAAQ;AACN,WAAO;AAAA,EACT;AACF;;;;"}
@@ -1,9 +1,10 @@
1
1
  import { HighlighterCore } from 'shiki/core';
2
- type ShikiTransformersModule = typeof import("@shikijs/transformers");
3
2
  type ShikiTransformer = NonNullable<Parameters<HighlighterCore["codeToHtml"]>[1]["transformers"]>[number];
4
- export declare function loadShikiTransformers(): Promise<ShikiTransformersModule>;
5
3
  export type HighlightOptions = {
6
- lang: string;
4
+ /** Highlighter language. Undefined when the caller has none, in which case
5
+ * both entry points return null and the caller renders plain text — better
6
+ * than guessing a grammar and mis-colouring the source. */
7
+ lang: string | undefined;
7
8
  theme?: string;
8
9
  transformers?: ShikiTransformer[];
9
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"code-highlight.d.ts","sourceRoot":"","sources":["../../src/data/code-highlight.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,YAAY,CAAC;AAExE,KAAK,uBAAuB,GAAG,cAAc,uBAAuB,CAAC,CAAC;AACtE,KAAK,gBAAgB,GAAG,WAAW,CACjC,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAC7D,CAAC,MAAM,CAAC,CAAC;AA8DV,wBAAgB,qBAAqB,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAGxE;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACnC,CAAC;AAKF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAM7E;AAoBD,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAcxB;AAID,MAAM,MAAM,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvF,MAAM,MAAM,eAAe,GAAG,gBAAgB,EAAE,CAAC;AAMjD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAoBnC"}
1
+ {"version":3,"file":"code-highlight.d.ts","sourceRoot":"","sources":["../../src/data/code-highlight.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,YAAY,CAAC;AAExE,KAAK,gBAAgB,GAAG,WAAW,CACjC,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAC7D,CAAC,MAAM,CAAC,CAAC;AA6DV,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;gEAE4D;IAC5D,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACnC,CAAC;AAKF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAM7E;AAoBD,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAcxB;AAID,MAAM,MAAM,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvF,MAAM,MAAM,eAAe,GAAG,gBAAgB,EAAE,CAAC;AAQjD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAoBnC"}
@@ -18,7 +18,6 @@ const SUPPORTED_LANGS = [
18
18
  const SUPPORTED_THEMES = ["github-light", "github-dark"];
19
19
  const DEFAULT_THEME = "github-light";
20
20
  let highlighterLoad = null;
21
- let transformersLoad = null;
22
21
  function loadHighlighter() {
23
22
  highlighterLoad ?? (highlighterLoad = (async () => {
24
23
  const [{ createHighlighterCore }, { createOnigurumaEngine }] = await Promise.all([
@@ -51,10 +50,6 @@ function loadHighlighter() {
51
50
  })());
52
51
  return highlighterLoad;
53
52
  }
54
- function loadShikiTransformers() {
55
- transformersLoad ?? (transformersLoad = import("@shikijs/transformers"));
56
- return transformersLoad;
57
- }
58
53
  function languageFromPath(path) {
59
54
  if (!path) return void 0;
60
55
  const basename = path.slice(path.lastIndexOf("/") + 1);
@@ -117,7 +112,6 @@ async function highlightToLines(source, opts) {
117
112
  export {
118
113
  highlightCode,
119
114
  highlightToLines,
120
- languageFromPath,
121
- loadShikiTransformers
115
+ languageFromPath
122
116
  };
123
117
  //# sourceMappingURL=code-highlight.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-highlight.js","sources":["../../src/data/code-highlight.ts"],"sourcesContent":["// Lazy-loaded wrapper around a Shiki *core* highlighter pre-registered with a\n// fixed language + theme set. The default `shiki` entry point bundles every\n// grammar/theme as separate dynamic imports — Vite then code-splits each into\n// its own chunk (~280 langs + 50 themes), even when only a handful are ever\n// used. Switching to `shiki/core` and registering a curated subset cuts the\n// app dist by ~6M and ~300 chunks.\n//\n// Languages are picked from what the renderer actually emits (Clicky code\n// blocks + Java stack traces). Anything outside the list silently falls back\n// to plain text — same behavior as before, just without paying for grammars\n// nobody asked for.\n\nimport type { HighlighterCore, ThemeRegistrationAny } from \"shiki/core\";\n\ntype ShikiTransformersModule = typeof import(\"@shikijs/transformers\");\ntype ShikiTransformer = NonNullable<\n Parameters<HighlighterCore[\"codeToHtml\"]>[1][\"transformers\"]\n>[number];\n\nconst SUPPORTED_LANGS = [\n \"java\",\n \"go\",\n \"python\",\n \"javascript\",\n \"typescript\",\n \"tsx\",\n \"jsx\",\n \"json\",\n \"yaml\",\n \"bash\",\n \"shell\",\n \"sql\",\n \"xml\",\n \"html\",\n \"css\",\n] as const;\n\ntype SupportedLang = (typeof SUPPORTED_LANGS)[number];\n\nconst SUPPORTED_THEMES = [\"github-light\", \"github-dark\"] as const;\ntype SupportedTheme = (typeof SUPPORTED_THEMES)[number];\nconst DEFAULT_THEME: SupportedTheme = \"github-light\";\n\nlet highlighterLoad: Promise<HighlighterCore> | null = null;\nlet transformersLoad: Promise<ShikiTransformersModule> | null = null;\n\nfunction loadHighlighter(): Promise<HighlighterCore> {\n highlighterLoad ??= (async () => {\n const [{ createHighlighterCore }, { createOnigurumaEngine }] = await Promise.all([\n import(\"shiki/core\"),\n import(\"shiki/engine/oniguruma\"),\n ]);\n return createHighlighterCore({\n themes: [\n import(\"@shikijs/themes/github-light\") as Promise<{ default: ThemeRegistrationAny }>,\n import(\"@shikijs/themes/github-dark\") as Promise<{ default: ThemeRegistrationAny }>,\n ],\n langs: [\n import(\"@shikijs/langs/java\"),\n import(\"@shikijs/langs/go\"),\n import(\"@shikijs/langs/python\"),\n import(\"@shikijs/langs/javascript\"),\n import(\"@shikijs/langs/typescript\"),\n import(\"@shikijs/langs/tsx\"),\n import(\"@shikijs/langs/jsx\"),\n import(\"@shikijs/langs/json\"),\n import(\"@shikijs/langs/yaml\"),\n import(\"@shikijs/langs/bash\"),\n import(\"@shikijs/langs/sql\"),\n import(\"@shikijs/langs/xml\"),\n import(\"@shikijs/langs/html\"),\n import(\"@shikijs/langs/css\"),\n ],\n engine: createOnigurumaEngine(import(\"shiki/wasm\")),\n });\n })();\n return highlighterLoad;\n}\n\nexport function loadShikiTransformers(): Promise<ShikiTransformersModule> {\n transformersLoad ??= import(\"@shikijs/transformers\");\n return transformersLoad;\n}\n\nexport type HighlightOptions = {\n lang: string;\n theme?: string;\n transformers?: ShikiTransformer[];\n};\n\n// Derive a highlighter language hint from a file path's extension (e.g.\n// \"src/app.tsx\" → \"tsx\"). Returns undefined for extensionless paths and dotfiles;\n// `resolveLang` then maps aliases and drops anything unsupported.\nexport function languageFromPath(path: string | undefined): string | undefined {\n if (!path) return undefined;\n const basename = path.slice(path.lastIndexOf(\"/\") + 1);\n const dot = basename.lastIndexOf(\".\");\n if (dot <= 0) return undefined;\n return basename.slice(dot + 1).toLowerCase();\n}\n\nfunction resolveLang(input: string): SupportedLang | null {\n const lang = input.toLowerCase();\n if ((SUPPORTED_LANGS as readonly string[]).includes(lang)) return lang as SupportedLang;\n if (lang === \"shell\" || lang === \"sh\" || lang === \"zsh\") return \"bash\";\n if (lang === \"ts\") return \"typescript\";\n if (lang === \"js\") return \"javascript\";\n if (lang === \"py\") return \"python\";\n if (lang === \"yml\") return \"yaml\";\n return null;\n}\n\nfunction resolveTheme(input: string | undefined): SupportedTheme {\n if (input && (SUPPORTED_THEMES as readonly string[]).includes(input)) {\n return input as SupportedTheme;\n }\n return DEFAULT_THEME;\n}\n\nexport async function highlightCode(\n source: string,\n opts: HighlightOptions,\n): Promise<string | null> {\n if (!source || !opts.lang) return null;\n const lang = resolveLang(opts.lang);\n if (!lang) return null;\n try {\n const highlighter = await loadHighlighter();\n return highlighter.codeToHtml(source, {\n lang,\n theme: resolveTheme(opts.theme),\n ...(opts.transformers ? { transformers: opts.transformers } : {}),\n });\n } catch {\n return null;\n }\n}\n\n// A single highlighted token: its text, an optional hex `color`, and Shiki's\n// `fontStyle` bitmask (1=italic, 2=bold, 4=underline).\nexport type HighlightedToken = { content: string; color?: string; fontStyle?: number };\nexport type HighlightedLine = HighlightedToken[];\n\n// Tokenize `source` into per-line themed tokens for `CodeDiff`, which paints its\n// own diff gutters/rows rather than embedding Shiki's `<pre>` HTML. Returns null\n// on empty source, an unsupported language, or a highlighter failure — the caller\n// then renders plain text (same graceful degradation as `highlightCode`).\nexport async function highlightToLines(\n source: string,\n opts: HighlightOptions,\n): Promise<HighlightedLine[] | null> {\n if (!source || !opts.lang) return null;\n const lang = resolveLang(opts.lang);\n if (!lang) return null;\n try {\n const highlighter = await loadHighlighter();\n const { tokens } = highlighter.codeToTokens(source, {\n lang,\n theme: resolveTheme(opts.theme),\n });\n return tokens.map((line) =>\n line.map((token) => ({\n content: token.content,\n ...(token.color ? { color: token.color } : {}),\n ...(token.fontStyle ? { fontStyle: token.fontStyle } : {}),\n })),\n );\n } catch {\n return null;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-highlight.js","sources":["../../src/data/code-highlight.ts"],"sourcesContent":["// Lazy-loaded wrapper around a Shiki *core* highlighter pre-registered with a\n// fixed language + theme set. The default `shiki` entry point bundles every\n// grammar/theme as separate dynamic imports — Vite then code-splits each into\n// its own chunk (~280 langs + 50 themes), even when only a handful are ever\n// used. Switching to `shiki/core` and registering a curated subset cuts the\n// app dist by ~6M and ~300 chunks.\n//\n// Languages are picked from what the renderer actually emits (Clicky code\n// blocks + Java stack traces). Anything outside the list silently falls back\n// to plain text — same behavior as before, just without paying for grammars\n// nobody asked for.\n\nimport type { HighlighterCore, ThemeRegistrationAny } from \"shiki/core\";\n\ntype ShikiTransformer = NonNullable<\n Parameters<HighlighterCore[\"codeToHtml\"]>[1][\"transformers\"]\n>[number];\n\nconst SUPPORTED_LANGS = [\n \"java\",\n \"go\",\n \"python\",\n \"javascript\",\n \"typescript\",\n \"tsx\",\n \"jsx\",\n \"json\",\n \"yaml\",\n \"bash\",\n \"shell\",\n \"sql\",\n \"xml\",\n \"html\",\n \"css\",\n] as const;\n\ntype SupportedLang = (typeof SUPPORTED_LANGS)[number];\n\nconst SUPPORTED_THEMES = [\"github-light\", \"github-dark\"] as const;\ntype SupportedTheme = (typeof SUPPORTED_THEMES)[number];\nconst DEFAULT_THEME: SupportedTheme = \"github-light\";\n\nlet highlighterLoad: Promise<HighlighterCore> | null = null;\n\nfunction loadHighlighter(): Promise<HighlighterCore> {\n highlighterLoad ??= (async () => {\n const [{ createHighlighterCore }, { createOnigurumaEngine }] = await Promise.all([\n import(\"shiki/core\"),\n import(\"shiki/engine/oniguruma\"),\n ]);\n return createHighlighterCore({\n themes: [\n import(\"@shikijs/themes/github-light\") as Promise<{ default: ThemeRegistrationAny }>,\n import(\"@shikijs/themes/github-dark\") as Promise<{ default: ThemeRegistrationAny }>,\n ],\n langs: [\n import(\"@shikijs/langs/java\"),\n import(\"@shikijs/langs/go\"),\n import(\"@shikijs/langs/python\"),\n import(\"@shikijs/langs/javascript\"),\n import(\"@shikijs/langs/typescript\"),\n import(\"@shikijs/langs/tsx\"),\n import(\"@shikijs/langs/jsx\"),\n import(\"@shikijs/langs/json\"),\n import(\"@shikijs/langs/yaml\"),\n import(\"@shikijs/langs/bash\"),\n import(\"@shikijs/langs/sql\"),\n import(\"@shikijs/langs/xml\"),\n import(\"@shikijs/langs/html\"),\n import(\"@shikijs/langs/css\"),\n ],\n engine: createOnigurumaEngine(import(\"shiki/wasm\")),\n });\n })();\n return highlighterLoad;\n}\n\nexport type HighlightOptions = {\n /** Highlighter language. Undefined when the caller has none, in which case\n * both entry points return null and the caller renders plain text — better\n * than guessing a grammar and mis-colouring the source. */\n lang: string | undefined;\n theme?: string;\n transformers?: ShikiTransformer[];\n};\n\n// Derive a highlighter language hint from a file path's extension (e.g.\n// \"src/app.tsx\" → \"tsx\"). Returns undefined for extensionless paths and dotfiles;\n// `resolveLang` then maps aliases and drops anything unsupported.\nexport function languageFromPath(path: string | undefined): string | undefined {\n if (!path) return undefined;\n const basename = path.slice(path.lastIndexOf(\"/\") + 1);\n const dot = basename.lastIndexOf(\".\");\n if (dot <= 0) return undefined;\n return basename.slice(dot + 1).toLowerCase();\n}\n\nfunction resolveLang(input: string): SupportedLang | null {\n const lang = input.toLowerCase();\n if ((SUPPORTED_LANGS as readonly string[]).includes(lang)) return lang as SupportedLang;\n if (lang === \"shell\" || lang === \"sh\" || lang === \"zsh\") return \"bash\";\n if (lang === \"ts\") return \"typescript\";\n if (lang === \"js\") return \"javascript\";\n if (lang === \"py\") return \"python\";\n if (lang === \"yml\") return \"yaml\";\n return null;\n}\n\nfunction resolveTheme(input: string | undefined): SupportedTheme {\n if (input && (SUPPORTED_THEMES as readonly string[]).includes(input)) {\n return input as SupportedTheme;\n }\n return DEFAULT_THEME;\n}\n\nexport async function highlightCode(\n source: string,\n opts: HighlightOptions,\n): Promise<string | null> {\n if (!source || !opts.lang) return null;\n const lang = resolveLang(opts.lang);\n if (!lang) return null;\n try {\n const highlighter = await loadHighlighter();\n return highlighter.codeToHtml(source, {\n lang,\n theme: resolveTheme(opts.theme),\n ...(opts.transformers ? { transformers: opts.transformers } : {}),\n });\n } catch {\n return null;\n }\n}\n\n// A single highlighted token: its text, an optional hex `color`, and Shiki's\n// `fontStyle` bitmask (1=italic, 2=bold, 4=underline).\nexport type HighlightedToken = { content: string; color?: string; fontStyle?: number };\nexport type HighlightedLine = HighlightedToken[];\n\n// Tokenize `source` into per-line themed tokens for the renderers that paint\n// their own gutters/rows rather than embedding Shiki's `<pre>` HTML `CodeDiff`\n// (add/remove markers) and `FrameSourceWindow` (absolute, possibly\n// non-contiguous, source line numbers). Returns null on empty source, an\n// unsupported language, or a highlighter failure — the caller then renders plain\n// text (same graceful degradation as `highlightCode`).\nexport async function highlightToLines(\n source: string,\n opts: HighlightOptions,\n): Promise<HighlightedLine[] | null> {\n if (!source || !opts.lang) return null;\n const lang = resolveLang(opts.lang);\n if (!lang) return null;\n try {\n const highlighter = await loadHighlighter();\n const { tokens } = highlighter.codeToTokens(source, {\n lang,\n theme: resolveTheme(opts.theme),\n });\n return tokens.map((line) =>\n line.map((token) => ({\n content: token.content,\n ...(token.color ? { color: token.color } : {}),\n ...(token.fontStyle ? { fontStyle: token.fontStyle } : {}),\n })),\n );\n } catch {\n return null;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const filterBarUtils = require("../components/filter-bar-utils.cjs");
4
+ const format = require("../lib/format.cjs");
4
5
  const dataTableFilterValues = require("./data-table-filter-values.cjs");
5
6
  const dataTableUtils = require("./data-table-utils.cjs");
6
7
  const DATA_TABLE_FILTER_LOOKUP_LIMIT = 20;
@@ -58,15 +59,21 @@ function buildFilter(args) {
58
59
  };
59
60
  switch (filter.kind) {
60
61
  case "time":
62
+ // A date range is the same two-edged control with the clock taken off it,
63
+ // so it shares every line below except timeEnabled.
64
+ case "date":
61
65
  return {
62
66
  ...shared,
63
67
  kind: "date-range",
64
68
  ...boundsToRange(dataTableFilterValues.parseBoundsValue(raw)),
65
69
  onApply: (from, to) => write(dataTableFilterValues.serializeBoundsValue({ min: from, max: to })),
66
70
  ...filter.presets !== void 0 ? { presets: filter.presets } : {},
67
- timeEnabled: true
71
+ timeEnabled: filter.kind === "time"
68
72
  };
69
73
  case "range":
74
+ // A duration is a range that knows what its numbers mean, so it differs
75
+ // only in how the slider labels them.
76
+ case "duration":
70
77
  return {
71
78
  ...shared,
72
79
  kind: "number",
@@ -74,8 +81,14 @@ function buildFilter(args) {
74
81
  onChange: (next) => write(dataTableFilterValues.serializeBoundsValue(next)),
75
82
  ...filter.min !== void 0 ? { domainMin: filter.min } : {},
76
83
  ...filter.max !== void 0 ? { domainMax: filter.max } : {},
77
- ...filter.step !== void 0 ? { step: filter.step } : {}
84
+ ...filter.step !== void 0 ? { step: filter.step } : {},
85
+ ...filter.kind === "duration" ? { formatValue: (value) => format.formatUnit(value, filter.unit || "ms") } : {}
78
86
  };
87
+ // An exact match has nothing to enumerate, which is what buildTermsFilter
88
+ // already falls back to for a selection that turned out to have no values.
89
+ // Declaring it says so up front rather than arriving there by exhaustion.
90
+ case "exact":
91
+ return { ...shared, kind: "text", value: raw, onChange: (next) => write(next) };
79
92
  case "boolean":
80
93
  return {
81
94
  ...shared,
@@ -1 +1 @@
1
- {"version":3,"file":"data-table-server-filters.cjs","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":["prettifyKey","applyFilterExtensions","updateFilterSelection","parseBoundsValue","serializeBoundsValue","parseMultiFilterValue","serializeMultiFilterValue"],"mappings":"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"}
1
+ {"version":3,"file":"data-table-server-filters.cjs","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":["prettifyKey","applyFilterExtensions","updateFilterSelection","parseBoundsValue","serializeBoundsValue","formatUnit","parseMultiFilterValue","serializeMultiFilterValue"],"mappings":"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"}
@@ -11,7 +11,14 @@ import { DataTableFilterSelection } from './data-table-filter-values';
11
11
  * source compiles the selection; nothing about how it does so crosses into the
12
12
  * browser.
13
13
  */
14
- export type DataTableFilterKind = "terms" | "range" | "time" | "boolean" | "text";
14
+ export type DataTableFilterKind = "terms"
15
+ /** Whole values like "terms", but typed rather than picked — an identifier
16
+ * has no list worth offering. */
17
+ | "exact" | "range"
18
+ /** A range over elapsed time, labelled in the column's own `unit`. */
19
+ | "duration" | "time"
20
+ /** A range over whole days: "time" with the clock taken off it. */
21
+ | "date" | "boolean" | "text";
15
22
  export type DataTableFilterOption = {
16
23
  /** Value written into the selection. */
17
24
  value: string;
@@ -34,6 +41,10 @@ export type DataTableColumnFilter = {
34
41
  min?: number;
35
42
  max?: number;
36
43
  step?: number;
44
+ /** The unit a kind:"duration" bound is written in ("ms" or "s"), so the
45
+ * control labels itself in the numbers the column is stored in. Absent
46
+ * means milliseconds. */
47
+ unit?: string;
37
48
  /** Range presets for kind:"time". */
38
49
  presets?: FilterBarRangePreset[];
39
50
  /** Helper text shown in the filter popover. */
@@ -1 +1 @@
1
- {"version":3,"file":"data-table-server-filters.d.ts","sourceRoot":"","sources":["../../src/data/data-table-server-filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-table-server-filters.d.ts","sourceRoot":"","sources":["../../src/data/data-table-server-filters.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { applyFilterExtensions } from "../components/filter-bar-utils.js";
2
+ import { formatUnit } from "../lib/format.js";
2
3
  import { updateFilterSelection, serializeBoundsValue, parseBoundsValue, serializeMultiFilterValue, parseMultiFilterValue } from "./data-table-filter-values.js";
3
4
  import { prettifyKey } from "./data-table-utils.js";
4
5
  const DATA_TABLE_FILTER_LOOKUP_LIMIT = 20;
@@ -56,15 +57,21 @@ function buildFilter(args) {
56
57
  };
57
58
  switch (filter.kind) {
58
59
  case "time":
60
+ // A date range is the same two-edged control with the clock taken off it,
61
+ // so it shares every line below except timeEnabled.
62
+ case "date":
59
63
  return {
60
64
  ...shared,
61
65
  kind: "date-range",
62
66
  ...boundsToRange(parseBoundsValue(raw)),
63
67
  onApply: (from, to) => write(serializeBoundsValue({ min: from, max: to })),
64
68
  ...filter.presets !== void 0 ? { presets: filter.presets } : {},
65
- timeEnabled: true
69
+ timeEnabled: filter.kind === "time"
66
70
  };
67
71
  case "range":
72
+ // A duration is a range that knows what its numbers mean, so it differs
73
+ // only in how the slider labels them.
74
+ case "duration":
68
75
  return {
69
76
  ...shared,
70
77
  kind: "number",
@@ -72,8 +79,14 @@ function buildFilter(args) {
72
79
  onChange: (next) => write(serializeBoundsValue(next)),
73
80
  ...filter.min !== void 0 ? { domainMin: filter.min } : {},
74
81
  ...filter.max !== void 0 ? { domainMax: filter.max } : {},
75
- ...filter.step !== void 0 ? { step: filter.step } : {}
82
+ ...filter.step !== void 0 ? { step: filter.step } : {},
83
+ ...filter.kind === "duration" ? { formatValue: (value) => formatUnit(value, filter.unit || "ms") } : {}
76
84
  };
85
+ // An exact match has nothing to enumerate, which is what buildTermsFilter
86
+ // already falls back to for a selection that turned out to have no values.
87
+ // Declaring it says so up front rather than arriving there by exhaustion.
88
+ case "exact":
89
+ return { ...shared, kind: "text", value: raw, onChange: (next) => write(next) };
77
90
  case "boolean":
78
91
  return {
79
92
  ...shared,