@flanksource/clicky-ui 0.3.38 → 0.3.40

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 (1289) hide show
  1. package/README.md +40 -4
  2. package/dist/ai.d.ts +1 -1
  3. package/dist/chat.d.ts +1 -1
  4. package/dist/clicky.d.ts +1 -1
  5. package/dist/comments/CommentAuthor.d.ts +2 -2
  6. package/dist/comments/CommentCard.d.ts +1 -1
  7. package/dist/comments/CommentCardParts.d.ts +1 -1
  8. package/dist/comments/CommentComposer.d.ts +1 -1
  9. package/dist/comments/CommentFilterBar.d.ts +1 -1
  10. package/dist/comments/CommentProgress.d.ts +1 -1
  11. package/dist/comments/CommentProvider.d.ts +2 -2
  12. package/dist/comments/CommentSidePanel.d.ts +1 -1
  13. package/dist/comments/CommentThread.d.ts +1 -1
  14. package/dist/comments/CommentThreadList.d.ts +1 -1
  15. package/dist/comments/GroupedComments.d.ts +1 -1
  16. package/dist/comments/MentionTextarea.d.ts +1 -1
  17. package/dist/comments/comment-context.d.ts +1 -1
  18. package/dist/comments/comment-fixtures.d.ts +1 -1
  19. package/dist/comments/comment-types.d.ts +1 -1
  20. package/dist/comments/comment-utils.d.ts +2 -2
  21. package/dist/comments.d.ts +16 -16
  22. package/dist/components/AccordionList.d.ts +1 -1
  23. package/dist/components/Combobox.d.ts +2 -2
  24. package/dist/components/ComboboxControl.d.ts +2 -2
  25. package/dist/components/ComboboxMenu.d.ts +2 -2
  26. package/dist/components/ComboboxTags.d.ts +1 -1
  27. package/dist/components/ConnectionLoggingPolicy.d.ts +1 -1
  28. package/dist/components/CountryPicker.d.ts +1 -1
  29. package/dist/components/EndpointSelector.d.ts +1 -1
  30. package/dist/components/EndpointSelector.model.d.ts +4 -4
  31. package/dist/components/FilterBar.d.ts +8 -8
  32. package/dist/components/FormLookupProvider.d.ts +1 -1
  33. package/dist/components/FormatOptionsDropdown.d.ts +2 -2
  34. package/dist/components/IconButton.d.ts +1 -1
  35. package/dist/components/ItemActions.d.ts +1 -1
  36. package/dist/components/JSONPathField.d.ts +4 -4
  37. package/dist/components/JsonSchemaForm.d.ts +1 -1
  38. package/dist/components/ListMenu.d.ts +2 -2
  39. package/dist/components/MdxEditorCallout.d.ts +1 -1
  40. package/dist/components/MdxEditorField.d.ts +2 -2
  41. package/dist/components/MdxEditorToolbar.d.ts +1 -1
  42. package/dist/components/MultiSelect.d.ts +1 -1
  43. package/dist/components/OnePasswordSelector.d.ts +1 -1
  44. package/dist/components/ScheduleEditor.d.ts +1 -1
  45. package/dist/components/SearchInput.d.ts +1 -1
  46. package/dist/components/SecretFormField.d.ts +2 -2
  47. package/dist/components/SecretKeySelector.d.ts +1 -1
  48. package/dist/components/SecretKeySelector.model.d.ts +1 -1
  49. package/dist/components/SegmentedControl.d.ts +1 -1
  50. package/dist/components/SplitButton.d.ts +3 -3
  51. package/dist/components/TreePickerField.d.ts +2 -2
  52. package/dist/components/TriStateToggle.d.ts +1 -1
  53. package/dist/components/WorkloadPicker.d.ts +2 -2
  54. package/dist/components/button.d.ts +1 -1
  55. package/dist/components/combobox-types.d.ts +2 -2
  56. package/dist/components/endpoint-port.d.ts +1 -1
  57. package/dist/components/filter-bar-field-utils.d.ts +3 -3
  58. package/dist/components/filter-bar-multi.d.ts +4 -4
  59. package/dist/components/filter-bar-utils.d.ts +1 -1
  60. package/dist/components/form-lookup-context.d.ts +1 -1
  61. package/dist/components/format-options.d.ts +1 -1
  62. package/dist/components/icon-menu-picker.d.ts +1 -1
  63. package/dist/components/jotai-bindings-core.d.ts +2 -2
  64. package/dist/components/jotai-bindings.d.ts +1 -1
  65. package/dist/components/json-schema-form-accordion-array.d.ts +1 -1
  66. package/dist/components/json-schema-form-array.d.ts +1 -1
  67. package/dist/components/json-schema-form-cards-array.d.ts +1 -1
  68. package/dist/components/json-schema-form-collection-layouts.fixtures.d.ts +1 -1
  69. package/dist/components/json-schema-form-discriminator.d.ts +1 -1
  70. package/dist/components/json-schema-form-error-display.d.ts +1 -1
  71. package/dist/components/json-schema-form-errors.d.ts +2 -2
  72. package/dist/components/json-schema-form-extensions.d.ts +1 -1
  73. package/dist/components/json-schema-form-fields.d.ts +2 -2
  74. package/dist/components/json-schema-form-filter.d.ts +1 -1
  75. package/dist/components/json-schema-form-grid.d.ts +2 -2
  76. package/dist/components/json-schema-form-item-row.d.ts +1 -1
  77. package/dist/components/json-schema-form-item-summary.d.ts +1 -1
  78. package/dist/components/json-schema-form-layout.d.ts +3 -3
  79. package/dist/components/json-schema-form-list-array.d.ts +1 -1
  80. package/dist/components/json-schema-form-lookup-tree.d.ts +2 -2
  81. package/dist/components/json-schema-form-object.d.ts +1 -1
  82. package/dist/components/json-schema-form-preferences.d.ts +1 -1
  83. package/dist/components/json-schema-form-properties-errors.fixtures.d.ts +2 -2
  84. package/dist/components/json-schema-form-properties-size.d.ts +1 -1
  85. package/dist/components/json-schema-form-properties.d.ts +2 -2
  86. package/dist/components/json-schema-form-properties.fixtures.d.ts +1 -1
  87. package/dist/components/json-schema-form-property-collection.d.ts +1 -1
  88. package/dist/components/json-schema-form-property-preview.d.ts +1 -1
  89. package/dist/components/json-schema-form-property-selection.d.ts +1 -1
  90. package/dist/components/json-schema-form-refs.d.ts +1 -1
  91. package/dist/components/json-schema-form-render.d.ts +1 -1
  92. package/dist/components/json-schema-form-resolve.d.ts +1 -1
  93. package/dist/components/json-schema-form-runtime-types.d.ts +4 -4
  94. package/dist/components/json-schema-form-size.d.ts +1 -1
  95. package/dist/components/json-schema-form-table-array.d.ts +1 -1
  96. package/dist/components/json-schema-form-tags-combobox.d.ts +2 -2
  97. package/dist/components/json-schema-form-template-menu.d.ts +1 -1
  98. package/dist/components/json-schema-form-template.d.ts +3 -3
  99. package/dist/components/json-schema-form-types.d.ts +5 -5
  100. package/dist/components/json-schema-form-utils.d.ts +2 -2
  101. package/dist/components/mdx-editor-callout-model.d.ts +1 -1
  102. package/dist/components/mdx-editor-callout.d.ts +1 -1
  103. package/dist/components/mdx-editor-field-plugins.d.ts +1 -1
  104. package/dist/components/mdx-editor-jsx-attributes.d.ts +1 -1
  105. package/dist/components/mdx-editor-options.d.ts +1 -1
  106. package/dist/components/secret-form-extension.d.ts +4 -4
  107. package/dist/components/unit-form-extension.d.ts +1 -1
  108. package/dist/components/useComboboxLayout.d.ts +1 -1
  109. package/dist/components/workload-picker-utils.d.ts +1 -1
  110. package/dist/components.d.ts +102 -102
  111. package/dist/data/Avatar.d.ts +1 -1
  112. package/dist/data/AvatarBadge.d.ts +3 -3
  113. package/dist/data/Badge.d.ts +2 -2
  114. package/dist/data/Callout.d.ts +1 -1
  115. package/dist/data/Clicky.d.ts +10 -10
  116. package/dist/data/Clicky.fixtures.d.ts +1 -1
  117. package/dist/data/DataTable.d.ts +11 -11
  118. package/dist/data/DataTableMenuSections.d.ts +3 -3
  119. package/dist/data/DataTablePreferencesSheet.d.ts +3 -3
  120. package/dist/data/FilterPill.d.ts +1 -1
  121. package/dist/data/FixtureEditor/FenceForm.d.ts +2 -2
  122. package/dist/data/FixtureEditor/FixtureEditor.d.ts +1 -1
  123. package/dist/data/FixtureEditor/FixtureFenceCodeBlockEditor.d.ts +2 -2
  124. package/dist/data/FixtureEditor/FixtureFrontmatterDialog.d.ts +1 -1
  125. package/dist/data/FixtureEditor/fixture-blocks.d.ts +2 -2
  126. package/dist/data/FixtureEditor/fixture-code-block-model.d.ts +1 -1
  127. package/dist/data/FixtureEditor/fixture-frontmatter.d.ts +1 -1
  128. package/dist/data/FixtureEditor/index.d.ts +4 -4
  129. package/dist/data/FixtureEditor/types.d.ts +3 -3
  130. package/dist/data/Gauge.d.ts +1 -1
  131. package/dist/data/GaugeHoverCard.d.ts +1 -1
  132. package/dist/data/GraphDiagram.d.ts +1 -1
  133. package/dist/data/HighlightedTokens.d.ts +1 -1
  134. package/dist/data/Icon.d.ts +1 -1
  135. package/dist/data/LogDetails.d.ts +3 -3
  136. package/dist/data/LogsTable.d.ts +3 -3
  137. package/dist/data/MarkdownEditor.d.ts +2 -2
  138. package/dist/data/MarkdownEditor.model.d.ts +1 -1
  139. package/dist/data/ObjectGraph.d.ts +2 -2
  140. package/dist/data/ProgressBars.d.ts +1 -1
  141. package/dist/data/PromptBanner.d.ts +1 -1
  142. package/dist/data/PromptBanner.model.d.ts +1 -1
  143. package/dist/data/PromptDialog.d.ts +1 -1
  144. package/dist/data/Properties.d.ts +1 -1
  145. package/dist/data/RadialGauge.d.ts +1 -1
  146. package/dist/data/SchemaViewer.d.ts +2 -2
  147. package/dist/data/SelectionActionBar.d.ts +1 -1
  148. package/dist/data/ServerTimingBadge.d.ts +2 -2
  149. package/dist/data/SortableHeader.d.ts +1 -1
  150. package/dist/data/StatStrip.d.ts +2 -2
  151. package/dist/data/TabButton.d.ts +1 -1
  152. package/dist/data/TaskExecDetails.d.ts +1 -1
  153. package/dist/data/TaskHeaderExtras.d.ts +1 -1
  154. package/dist/data/TaskManager.d.ts +2 -2
  155. package/dist/data/TaskProcessDetails.d.ts +1 -1
  156. package/dist/data/TaskProcessMetadata.d.ts +1 -1
  157. package/dist/data/TaskProgress.d.ts +3 -3
  158. package/dist/data/TaskResourceReadings.d.ts +1 -1
  159. package/dist/data/TaskStreamTabs.d.ts +1 -1
  160. package/dist/data/Timeline.d.ts +2 -2
  161. package/dist/data/TimeseriesCoreBars.cjs +10 -36
  162. package/dist/data/TimeseriesCoreBars.cjs.map +1 -1
  163. package/dist/data/TimeseriesCoreBars.d.ts +5 -5
  164. package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
  165. package/dist/data/TimeseriesCoreBars.js +8 -34
  166. package/dist/data/TimeseriesCoreBars.js.map +1 -1
  167. package/dist/data/TimeseriesGauge.cjs +12 -36
  168. package/dist/data/TimeseriesGauge.cjs.map +1 -1
  169. package/dist/data/TimeseriesGauge.d.ts +15 -5
  170. package/dist/data/TimeseriesGauge.d.ts.map +1 -1
  171. package/dist/data/TimeseriesGauge.js +10 -34
  172. package/dist/data/TimeseriesGauge.js.map +1 -1
  173. package/dist/data/TimeseriesPanel.axes.d.ts +1 -1
  174. package/dist/data/TimeseriesPanel.cjs +82 -39
  175. package/dist/data/TimeseriesPanel.cjs.map +1 -1
  176. package/dist/data/TimeseriesPanel.d.ts +3 -3
  177. package/dist/data/TimeseriesPanel.d.ts.map +1 -1
  178. package/dist/data/TimeseriesPanel.js +82 -39
  179. package/dist/data/TimeseriesPanel.js.map +1 -1
  180. package/dist/data/TimeseriesPanel.model.cjs +1 -0
  181. package/dist/data/TimeseriesPanel.model.cjs.map +1 -1
  182. package/dist/data/TimeseriesPanel.model.d.ts +39 -3
  183. package/dist/data/TimeseriesPanel.model.d.ts.map +1 -1
  184. package/dist/data/TimeseriesPanel.model.js +1 -0
  185. package/dist/data/TimeseriesPanel.model.js.map +1 -1
  186. package/dist/data/Tree.d.ts +1 -1
  187. package/dist/data/TreeGroupHeader.d.ts +1 -1
  188. package/dist/data/Version.d.ts +1 -1
  189. package/dist/data/WorkloadCard.cjs +65 -31
  190. package/dist/data/WorkloadCard.cjs.map +1 -1
  191. package/dist/data/WorkloadCard.d.ts +17 -7
  192. package/dist/data/WorkloadCard.d.ts.map +1 -1
  193. package/dist/data/WorkloadCard.js +67 -33
  194. package/dist/data/WorkloadCard.js.map +1 -1
  195. package/dist/data/WorkloadCard.model.cjs +16 -10
  196. package/dist/data/WorkloadCard.model.cjs.map +1 -1
  197. package/dist/data/WorkloadCard.model.d.ts +33 -5
  198. package/dist/data/WorkloadCard.model.d.ts.map +1 -1
  199. package/dist/data/WorkloadCard.model.js +17 -11
  200. package/dist/data/WorkloadCard.model.js.map +1 -1
  201. package/dist/data/ai/AdvancedChatConfig.d.ts +2 -2
  202. package/dist/data/ai/ChatButton.d.ts +1 -1
  203. package/dist/data/ai/ChatFab.d.ts +1 -1
  204. package/dist/data/ai/ChatWindow.catalogs.d.ts +2 -2
  205. package/dist/data/ai/ChatWindow.d.ts +2 -2
  206. package/dist/data/ai/ChatWindow.models.d.ts +1 -1
  207. package/dist/data/ai/ChatWindow.preferences.d.ts +2 -2
  208. package/dist/data/ai/ChatWindow.runtime.d.ts +2 -2
  209. package/dist/data/ai/ChatWindow.test-utils.d.ts +2 -2
  210. package/dist/data/ai/ChatWindow.thread-status.d.ts +1 -1
  211. package/dist/data/ai/ChatWindow.thread.d.ts +1 -1
  212. package/dist/data/ai/ChatWindow.tool-catalog.d.ts +1 -1
  213. package/dist/data/ai/ChatWindow.types.d.ts +6 -6
  214. package/dist/data/ai/ChatWindowRequestBody.d.ts +3 -3
  215. package/dist/data/ai/ContextBadges.d.ts +1 -1
  216. package/dist/data/ai/PolicyTree.d.ts +1 -1
  217. package/dist/data/ai/PromptCatalog/PromptCatalogTable.d.ts +1 -1
  218. package/dist/data/ai/PromptCatalog/PromptLayerStrip.d.ts +1 -1
  219. package/dist/data/ai/PromptCatalog/PromptPage.d.ts +4 -4
  220. package/dist/data/ai/PromptCatalog/PromptPageEditor.d.ts +4 -4
  221. package/dist/data/ai/PromptCatalog/PromptPageHeader.d.ts +1 -1
  222. package/dist/data/ai/PromptCatalog/PromptPagePreview.d.ts +1 -1
  223. package/dist/data/ai/PromptCatalog/PromptPageSaveBar.d.ts +1 -1
  224. package/dist/data/ai/PromptCatalog/PromptSourceBadge.d.ts +1 -1
  225. package/dist/data/ai/PromptCatalog/index.d.ts +8 -8
  226. package/dist/data/ai/PromptCatalog/prompt-catalog-model.d.ts +1 -1
  227. package/dist/data/ai/PromptCatalog/prompt-page-model.d.ts +4 -4
  228. package/dist/data/ai/PromptCatalog/types.d.ts +1 -1
  229. package/dist/data/ai/PromptPicker/PromptPicker.d.ts +4 -4
  230. package/dist/data/ai/PromptPicker/PromptSourceRepair.d.ts +1 -1
  231. package/dist/data/ai/PromptPicker/index.d.ts +4 -4
  232. package/dist/data/ai/PromptPicker/prompt-runtime.d.ts +2 -2
  233. package/dist/data/ai/PromptPicker/types.d.ts +1 -1
  234. package/dist/data/ai/PromptRunEditor/PromptBlocks.d.ts +4 -4
  235. package/dist/data/ai/PromptRunEditor/RecentRuntimes.d.ts +3 -3
  236. package/dist/data/ai/PromptRunEditor/RuntimeRows.d.ts +5 -5
  237. package/dist/data/ai/PromptRunEditor/VariablesField.d.ts +1 -1
  238. package/dist/data/ai/PromptRunEditor/index.d.ts +11 -11
  239. package/dist/data/ai/PromptRunEditor/model.d.ts +1 -1
  240. package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts +4 -4
  241. package/dist/data/ai/PromptRunEditor/yaml.d.ts +1 -1
  242. package/dist/data/ai/RuntimeModePicker.d.ts +3 -3
  243. package/dist/data/ai/SandboxConnectionsSection.d.ts +1 -1
  244. package/dist/data/ai/SandboxCreateWizard.d.ts +2 -2
  245. package/dist/data/ai/SandboxCreateWizard.model.d.ts +1 -1
  246. package/dist/data/ai/SessionChatComposer.d.ts +1 -1
  247. package/dist/data/ai/SessionInspector.approvals-model.d.ts +1 -1
  248. package/dist/data/ai/SessionInspector.approvals.d.ts +3 -3
  249. package/dist/data/ai/SessionInspector.collection-types.d.ts +2 -2
  250. package/dist/data/ai/SessionInspector.collection.d.ts +3 -3
  251. package/dist/data/ai/SessionInspector.compact.d.ts +2 -2
  252. package/dist/data/ai/SessionInspector.d.ts +6 -6
  253. package/dist/data/ai/SessionInspector.files.d.ts +1 -1
  254. package/dist/data/ai/SessionInspector.hierarchy-state.d.ts +2 -2
  255. package/dist/data/ai/SessionInspector.hierarchy.d.ts +2 -2
  256. package/dist/data/ai/SessionInspector.model.d.ts +1 -1
  257. package/dist/data/ai/SessionInspector.panel-values.d.ts +1 -1
  258. package/dist/data/ai/SessionInspector.panels.d.ts +4 -4
  259. package/dist/data/ai/SessionInspector.plan.d.ts +1 -1
  260. package/dist/data/ai/SessionInspector.summary.d.ts +1 -1
  261. package/dist/data/ai/SessionInspector.tabs.d.ts +2 -2
  262. package/dist/data/ai/SessionInspector.tabs.model.d.ts +2 -2
  263. package/dist/data/ai/SessionInspector.transcript.d.ts +2 -2
  264. package/dist/data/ai/SessionInspector.turns.d.ts +1 -1
  265. package/dist/data/ai/SessionViewer.d.ts +5 -5
  266. package/dist/data/ai/SessionViewer.fixtures.d.ts +2 -2
  267. package/dist/data/ai/SessionViewer.grouping.d.ts +1 -1
  268. package/dist/data/ai/SessionViewer.header.d.ts +2 -2
  269. package/dist/data/ai/SessionViewer.model.d.ts +2 -2
  270. package/dist/data/ai/SessionViewer.row-metadata.d.ts +1 -1
  271. package/dist/data/ai/SessionViewer.rows.d.ts +3 -3
  272. package/dist/data/ai/SessionViewer.tool-details.d.ts +1 -1
  273. package/dist/data/ai/SessionViewer.tool-row.d.ts +2 -2
  274. package/dist/data/ai/SessionViewerMenu.d.ts +2 -2
  275. package/dist/data/ai/SpecRuntimeEditor/CLIArgsSection.d.ts +2 -2
  276. package/dist/data/ai/SpecRuntimeEditor/CommitSection.d.ts +1 -1
  277. package/dist/data/ai/SpecRuntimeEditor/EnvironmentSection.d.ts +2 -2
  278. package/dist/data/ai/SpecRuntimeEditor/ModelContextAdvanced.d.ts +3 -3
  279. package/dist/data/ai/SpecRuntimeEditor/ModelSection.d.ts +5 -5
  280. package/dist/data/ai/SpecRuntimeEditor/PermissionModeField.d.ts +2 -2
  281. package/dist/data/ai/SpecRuntimeEditor/PermissionPolicyList.d.ts +1 -1
  282. package/dist/data/ai/SpecRuntimeEditor/PermissionsSection.d.ts +4 -4
  283. package/dist/data/ai/SpecRuntimeEditor/PromptSection.d.ts +2 -2
  284. package/dist/data/ai/SpecRuntimeEditor/SandboxSection.d.ts +4 -4
  285. package/dist/data/ai/SpecRuntimeEditor/SectionCard.d.ts +1 -1
  286. package/dist/data/ai/SpecRuntimeEditor/SectionTabs.d.ts +1 -1
  287. package/dist/data/ai/SpecRuntimeEditor/VerifySection.d.ts +5 -5
  288. package/dist/data/ai/SpecRuntimeEditor/WorkspaceSection.d.ts +3 -3
  289. package/dist/data/ai/SpecRuntimeEditor/env-model.d.ts +2 -2
  290. package/dist/data/ai/SpecRuntimeEditor/fields.d.ts +2 -2
  291. package/dist/data/ai/SpecRuntimeEditor/index.d.ts +11 -11
  292. package/dist/data/ai/SpecRuntimeEditor/permission-mode-visuals.d.ts +3 -3
  293. package/dist/data/ai/SpecRuntimeEditor/permissions-model.d.ts +3 -3
  294. package/dist/data/ai/SpecRuntimeEditor/summaries.d.ts +3 -3
  295. package/dist/data/ai/SpecRuntimeEditor/types.d.ts +4 -4
  296. package/dist/data/ai/SpecRuntimeEditor/update.d.ts +1 -1
  297. package/dist/data/ai/SpecRuntimeEditor.model.d.ts +5 -5
  298. package/dist/data/ai/ToolPreferences.d.ts +4 -4
  299. package/dist/data/ai/ToolPreferences.model.d.ts +2 -2
  300. package/dist/data/ai/ToolPreferencesList.d.ts +3 -3
  301. package/dist/data/ai/ToolSchemaBrowser.d.ts +2 -2
  302. package/dist/data/ai/ToolSchemaBrowser.detail.d.ts +2 -2
  303. package/dist/data/ai/ToolSchemaBrowser.model.d.ts +2 -2
  304. package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts +2 -2
  305. package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts +4 -4
  306. package/dist/data/ai/agent-action-icons.d.ts +5 -5
  307. package/dist/data/ai/chat-window-context.d.ts +3 -3
  308. package/dist/data/ai/context.d.ts +1 -1
  309. package/dist/data/ai/examples/sessions/claude-complete.d.ts +1 -1
  310. package/dist/data/ai/examples/sessions/claude.d.ts +1 -1
  311. package/dist/data/ai/examples/sessions/codex-complete.d.ts +1 -1
  312. package/dist/data/ai/examples/sessions/codex.d.ts +1 -1
  313. package/dist/data/ai/examples/sessions/index.d.ts +5 -5
  314. package/dist/data/ai/index.d.ts +53 -53
  315. package/dist/data/ai/runtime-profile.d.ts +4 -4
  316. package/dist/data/ai/runtime-profiles/OrderedPresetSelect.d.ts +1 -1
  317. package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.d.ts +2 -2
  318. package/dist/data/ai/runtime-profiles/PermissionStrategyConditionRow.d.ts +3 -3
  319. package/dist/data/ai/runtime-profiles/PresetSpecEditor.d.ts +3 -3
  320. package/dist/data/ai/runtime-profiles/PresetWorkspace.d.ts +5 -5
  321. package/dist/data/ai/runtime-profiles/ProfilePresetChips.d.ts +1 -1
  322. package/dist/data/ai/runtime-profiles/ProfileSpecEditor.d.ts +4 -4
  323. package/dist/data/ai/runtime-profiles/ProfileWorkspace.d.ts +5 -5
  324. package/dist/data/ai/runtime-profiles/ResolutionInspector.d.ts +2 -2
  325. package/dist/data/ai/runtime-profiles/ResolutionTrace.d.ts +1 -1
  326. package/dist/data/ai/runtime-profiles/RuntimeLibraryList.d.ts +1 -1
  327. package/dist/data/ai/runtime-profiles/RuntimePersistenceBar.d.ts +1 -1
  328. package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.d.ts +2 -2
  329. package/dist/data/ai/runtime-profiles/RuntimeProfilePicker.model.d.ts +3 -3
  330. package/dist/data/ai/runtime-profiles/RuntimeProfilesWorkspace.d.ts +4 -4
  331. package/dist/data/ai/runtime-profiles/index.d.ts +19 -19
  332. package/dist/data/ai/runtime-profiles/types.d.ts +3 -3
  333. package/dist/data/ai/runtime-profiles/use-permission-catalog.d.ts +3 -3
  334. package/dist/data/ai/runtime-profiles/use-resolution.d.ts +2 -2
  335. package/dist/data/ai/runtime-profiles/use-runtime-families.d.ts +1 -1
  336. package/dist/data/ai/runtime-profiles/use-runtime-profile-picker.d.ts +3 -3
  337. package/dist/data/ai/sandbox-kind-meta.d.ts +1 -1
  338. package/dist/data/ai/session-categories.d.ts +2 -2
  339. package/dist/data/ai/session-cost.d.ts +2 -2
  340. package/dist/data/ai/session-tones.d.ts +1 -1
  341. package/dist/data/ai/tool-name.d.ts +1 -1
  342. package/dist/data/cache-browser/CacheBrowser.d.ts +2 -2
  343. package/dist/data/cache-browser/CacheDetailPanel.d.ts +3 -3
  344. package/dist/data/cache-browser/CacheStatsOverview.d.ts +2 -2
  345. package/dist/data/cache-browser/CacheTree.d.ts +3 -3
  346. package/dist/data/cache-browser/CacheValue.d.ts +1 -1
  347. package/dist/data/cache-browser/adapter.d.ts +2 -2
  348. package/dist/data/cache-browser/api.d.ts +1 -1
  349. package/dist/data/cache-browser/cache-browser.fixtures.d.ts +2 -2
  350. package/dist/data/cache-browser/index.d.ts +8 -8
  351. package/dist/data/cells/EntityCell.d.ts +2 -2
  352. package/dist/data/cells/StatusDot.d.ts +1 -1
  353. package/dist/data/cells/TagList.d.ts +1 -1
  354. package/dist/data/cells/Timestamp.d.ts +1 -1
  355. package/dist/data/cells/status-mapping.d.ts +1 -1
  356. package/dist/data/cells/tag-utils.d.ts +1 -1
  357. package/dist/data/cells/timestamp-format.d.ts +1 -1
  358. package/dist/data/chat/Attachment.d.ts +2 -2
  359. package/dist/data/chat/Chat.d.ts +5 -5
  360. package/dist/data/chat/Chat.fixtures.d.ts +1 -1
  361. package/dist/data/chat/Chat.runtime.d.ts +2 -2
  362. package/dist/data/chat/ChatRuntimeToolbar.d.ts +2 -2
  363. package/dist/data/chat/ContextMeter.bar.d.ts +1 -1
  364. package/dist/data/chat/ContextMeter.d.ts +1 -1
  365. package/dist/data/chat/Conversation.d.ts +2 -2
  366. package/dist/data/chat/Message.d.ts +1 -1
  367. package/dist/data/chat/ModelSelector.d.ts +3 -3
  368. package/dist/data/chat/PromptInput.d.ts +2 -2
  369. package/dist/data/chat/Suggestion.d.ts +1 -1
  370. package/dist/data/chat/ToolCall.d.ts +2 -2
  371. package/dist/data/chat/approval.d.ts +1 -1
  372. package/dist/data/chat/attachment-upload.d.ts +1 -1
  373. package/dist/data/chat/clickyOperationsToTools.d.ts +2 -2
  374. package/dist/data/chat/effort-icons.d.ts +1 -1
  375. package/dist/data/chat/index.d.ts +20 -20
  376. package/dist/data/chat/models.d.ts +1 -1
  377. package/dist/data/chat/provider-icons.d.ts +1 -1
  378. package/dist/data/chat/tool-policy.d.ts +1 -1
  379. package/dist/data/chat/tool-render/ToolParams.d.ts +2 -2
  380. package/dist/data/chat/tool-render/ToolValue.d.ts +1 -1
  381. package/dist/data/chat/tool-render/adapter.d.ts +1 -1
  382. package/dist/data/chat/tool-render/context.d.ts +1 -1
  383. package/dist/data/chat/tool-render/defaults.d.ts +1 -1
  384. package/dist/data/chat/tool-render/index.d.ts +12 -12
  385. package/dist/data/chat/tool-render/known-tool-views.d.ts +1 -1
  386. package/dist/data/chat/tool-render/known-tools.d.ts +1 -1
  387. package/dist/data/chat/tool-render/registry.d.ts +1 -1
  388. package/dist/data/chat/tool-render/schema.d.ts +2 -2
  389. package/dist/data/chat/tool-render/shape.d.ts +2 -2
  390. package/dist/data/chat/tool-render/summary.d.ts +1 -1
  391. package/dist/data/chat/types.d.ts +1 -1
  392. package/dist/data/chat/usage-snapshot.d.ts +2 -2
  393. package/dist/data/clicky-export/ClickyExportDialog.d.ts +1 -1
  394. package/dist/data/clicky-export/index.d.ts +2 -2
  395. package/dist/data/clicky-export/useClickyExport.d.ts +2 -2
  396. package/dist/data/clicky-parse.d.ts +1 -1
  397. package/dist/data/code-block-actions.d.ts +1 -1
  398. package/dist/data/data-table-filter-values.d.ts +1 -1
  399. package/dist/data/data-table-server-filters.d.ts +4 -4
  400. package/dist/data/data-table-utils.d.ts +1 -1
  401. package/dist/data/diagnostics/DiagnosticsDetailPanel.d.ts +3 -3
  402. package/dist/data/diagnostics/DiagnosticsTree.d.ts +1 -1
  403. package/dist/data/diagnostics/ErrorDetails.d.ts +1 -1
  404. package/dist/data/diagnostics/FrameSourceWindow.d.ts +1 -1
  405. package/dist/data/diagnostics/GoroutineCard.d.ts +1 -1
  406. package/dist/data/diagnostics/JvmStackTrace.d.ts +3 -3
  407. package/dist/data/diagnostics/RenderedStackTrace.d.ts +3 -3
  408. package/dist/data/diagnostics/StackFrameRow.d.ts +1 -1
  409. package/dist/data/diagnostics/ThreadCard.d.ts +3 -3
  410. package/dist/data/diagnostics/fixtures.d.ts +1 -1
  411. package/dist/data/diagnostics/stacktrace-parse.d.ts +1 -1
  412. package/dist/data/diagnostics/stacktrace.d.ts +1 -1
  413. package/dist/data/diagnostics/utils.d.ts +3 -3
  414. package/dist/data/examples/markdown-preview-mock.d.ts +1 -1
  415. package/dist/data/gauge-stats.d.ts +1 -1
  416. package/dist/data/git/index.d.ts +2 -2
  417. package/dist/data/har/HarPanel.d.ts +1 -1
  418. package/dist/data/har/fixtures.d.ts +1 -1
  419. package/dist/data/properties-context.d.ts +1 -1
  420. package/dist/data/query-browser/QueryBrowser.d.ts +1 -1
  421. package/dist/data/query-browser/QueryBrowser.editor.d.ts +1 -1
  422. package/dist/data/query-browser/QueryBrowser.types.d.ts +6 -6
  423. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts +1 -1
  424. package/dist/data/query-browser/QueryBrowserResults.d.ts +3 -3
  425. package/dist/data/query-browser/index.d.ts +3 -3
  426. package/dist/data/runtime/ProviderStatusPanel.d.ts +2 -2
  427. package/dist/data/runtime/RuntimeBar.d.ts +3 -3
  428. package/dist/data/runtime/RuntimeBar.model.d.ts +3 -3
  429. package/dist/data/runtime/RuntimeBarActions.d.ts +2 -2
  430. package/dist/data/runtime/RuntimeBarCombo.d.ts +3 -3
  431. package/dist/data/runtime/RuntimeBarSegment.d.ts +1 -1
  432. package/dist/data/runtime/RuntimeBarSegments.d.ts +3 -3
  433. package/dist/data/runtime/availability.d.ts +1 -1
  434. package/dist/data/runtime/model-capabilities.d.ts +1 -1
  435. package/dist/data/runtime/provider-status.d.ts +2 -2
  436. package/dist/data/runtime/runtime-field-support.d.ts +4 -4
  437. package/dist/data/runtime/runtime-mode.d.ts +6 -6
  438. package/dist/data/schema-viewer-model.d.ts +1 -1
  439. package/dist/data/selectionActionSplit.d.ts +1 -1
  440. package/dist/data/status-breakdown-utils.d.ts +1 -1
  441. package/dist/data/task-copy.d.ts +1 -1
  442. package/dist/data/task-exec-details.d.ts +1 -1
  443. package/dist/data/task-process-details.d.ts +2 -2
  444. package/dist/data/task-resource-summary.d.ts +1 -1
  445. package/dist/data/task-status.d.ts +3 -3
  446. package/dist/data/task-streams.d.ts +1 -1
  447. package/dist/data/task-work-progress.d.ts +1 -1
  448. package/dist/data/test-runner/TestFailureDetail.d.ts +1 -1
  449. package/dist/data/test-runner/TestFilterBar.d.ts +2 -2
  450. package/dist/data/test-runner/TestRunSummary.d.ts +1 -1
  451. package/dist/data/test-runner/TestRunner.d.ts +3 -3
  452. package/dist/data/test-runner/TestRunner.fixtures.d.ts +2 -2
  453. package/dist/data/test-runner/TestTreeNode.d.ts +1 -1
  454. package/dist/data/test-runner/adapter.d.ts +2 -2
  455. package/dist/data/test-runner/context.d.ts +3 -3
  456. package/dist/data/test-runner/frameworkIcon.d.ts +1 -1
  457. package/dist/data/test-runner/index.d.ts +14 -14
  458. package/dist/data/test-runner/routePath.d.ts +1 -1
  459. package/dist/data/test-runner/status.d.ts +4 -4
  460. package/dist/data/timeseries-query.cjs +51 -0
  461. package/dist/data/timeseries-query.cjs.map +1 -0
  462. package/dist/data/timeseries-query.d.ts +31 -0
  463. package/dist/data/timeseries-query.d.ts.map +1 -0
  464. package/dist/data/timeseries-query.js +51 -0
  465. package/dist/data/timeseries-query.js.map +1 -0
  466. package/dist/data/use-infinite-rows.d.ts +1 -1
  467. package/dist/data/useDebugAction.d.ts +1 -1
  468. package/dist/data/verification/VerificationResults.d.ts +2 -2
  469. package/dist/data/verification/adapterViews.d.ts +1 -1
  470. package/dist/data/verification/adapters.d.ts +1 -1
  471. package/dist/data/verification/index.d.ts +4 -4
  472. package/dist/data/verification/verifyReportTests.d.ts +2 -2
  473. package/dist/data/version-info.cjs +3 -3
  474. package/dist/data/version-info.js +3 -3
  475. package/dist/data.cjs +1 -0
  476. package/dist/data.cjs.map +1 -1
  477. package/dist/data.d.ts +119 -119
  478. package/dist/data.d.ts.map +1 -1
  479. package/dist/data.js +3 -2
  480. package/dist/devtools/DebugConsole.d.ts +3 -3
  481. package/dist/devtools/DebugConsoleButton.d.ts +1 -1
  482. package/dist/devtools/DebugConsoleDock.d.ts +2 -2
  483. package/dist/devtools/ExecutionDetail.d.ts +2 -2
  484. package/dist/devtools/debugClient.d.ts +1 -1
  485. package/dist/devtools/debugStore.d.ts +1 -1
  486. package/dist/devtools/dockState.d.ts +1 -1
  487. package/dist/devtools/tabs/ConsoleTab.d.ts +1 -1
  488. package/dist/devtools/tabs/InspectionCaches.d.ts +2 -2
  489. package/dist/devtools/tabs/InspectionTab.d.ts +2 -2
  490. package/dist/devtools/tabs/NetworkTab.d.ts +2 -2
  491. package/dist/devtools/tabs/QueriesTab.d.ts +2 -2
  492. package/dist/devtools/types.d.ts +2 -2
  493. package/dist/devtools/useDebugStream.d.ts +2 -2
  494. package/dist/devtools.d.ts +28 -28
  495. package/dist/expressions/lang/attributes.d.ts +1 -1
  496. package/dist/expressions/lang/completion.d.ts +1 -1
  497. package/dist/expressions/lang/generated/index.d.ts +1 -1
  498. package/dist/expressions/lang/hover.d.ts +1 -1
  499. package/dist/expressions/lang/index.d.ts +13 -13
  500. package/dist/expressions/lang/merge.d.ts +1 -1
  501. package/dist/expressions/lang/prefix.d.ts +1 -1
  502. package/dist/expressions/lang/spec.d.ts +2 -2
  503. package/dist/expressions/lang/theme.d.ts +1 -1
  504. package/dist/expressions/playground/ExpressionPlayground.d.ts +3 -3
  505. package/dist/expressions/playground/RunControls.d.ts +1 -1
  506. package/dist/expressions/playground/api.d.ts +2 -2
  507. package/dist/expressions/playground/languages.d.ts +2 -2
  508. package/dist/expressions/playground/panels/ExpectationStrip.d.ts +1 -1
  509. package/dist/expressions/playground/panels/ResultPanel.d.ts +1 -1
  510. package/dist/expressions/playground/panels/ResultView.d.ts +3 -3
  511. package/dist/expressions/playground/panels/SamplesPanel.d.ts +2 -2
  512. package/dist/expressions/playground/panels/SpecPanel.d.ts +1 -1
  513. package/dist/expressions/playground/panels/graphNodes.d.ts +2 -2
  514. package/dist/expressions/playground/sampleOutcome.d.ts +1 -1
  515. package/dist/expressions/playground/useEvaluator.d.ts +1 -1
  516. package/dist/expressions/playground/useSampleRuns.d.ts +3 -3
  517. package/dist/expressions/playground.d.ts +14 -14
  518. package/dist/expressions.d.ts +1 -1
  519. package/dist/hooks/density-provider.d.ts +1 -1
  520. package/dist/hooks/theme-provider.d.ts +1 -1
  521. package/dist/hooks/use-log-tail.d.ts +2 -2
  522. package/dist/hooks/use-prompts.d.ts +1 -1
  523. package/dist/hooks/use-task-run.d.ts +2 -2
  524. package/dist/hooks.d.ts +13 -13
  525. package/dist/icons/changeIconAliases.d.ts +1 -1
  526. package/dist/icons/components/UiAccessProtected.d.ts +1 -1
  527. package/dist/icons/components/UiAccessPublic.d.ts +1 -1
  528. package/dist/icons/components/UiActivity.d.ts +1 -1
  529. package/dist/icons/components/UiAdd.d.ts +1 -1
  530. package/dist/icons/components/UiAddChangeset.d.ts +1 -1
  531. package/dist/icons/components/UiAggregate.d.ts +1 -1
  532. package/dist/icons/components/UiAlias.d.ts +1 -1
  533. package/dist/icons/components/UiAnnotation.d.ts +1 -1
  534. package/dist/icons/components/UiAopAroundAdvice.d.ts +1 -1
  535. package/dist/icons/components/UiAopBeforeAdvice.d.ts +1 -1
  536. package/dist/icons/components/UiAopPointcut.d.ts +1 -1
  537. package/dist/icons/components/UiArchive.d.ts +1 -1
  538. package/dist/icons/components/UiArray.d.ts +1 -1
  539. package/dist/icons/components/UiArrowDown.d.ts +1 -1
  540. package/dist/icons/components/UiArrowDownRight.d.ts +1 -1
  541. package/dist/icons/components/UiArrowFatUp.d.ts +1 -1
  542. package/dist/icons/components/UiArrowLeft.d.ts +1 -1
  543. package/dist/icons/components/UiArrowRight.d.ts +1 -1
  544. package/dist/icons/components/UiArrowUp.d.ts +1 -1
  545. package/dist/icons/components/UiArrowUpRight.d.ts +1 -1
  546. package/dist/icons/components/UiArrowsCounterClockwise.d.ts +1 -1
  547. package/dist/icons/components/UiArtifact.d.ts +1 -1
  548. package/dist/icons/components/UiAsterisk.d.ts +1 -1
  549. package/dist/icons/components/UiAsyncFn.d.ts +1 -1
  550. package/dist/icons/components/UiAt.d.ts +1 -1
  551. package/dist/icons/components/UiAtom.d.ts +1 -1
  552. package/dist/icons/components/UiAttachDebugger.d.ts +1 -1
  553. package/dist/icons/components/UiAttachToProcess.d.ts +1 -1
  554. package/dist/icons/components/UiAuditLog.d.ts +1 -1
  555. package/dist/icons/components/UiBank.d.ts +1 -1
  556. package/dist/icons/components/UiBatteryChargingVertical.d.ts +1 -1
  557. package/dist/icons/components/UiBatteryVerticalEmpty.d.ts +1 -1
  558. package/dist/icons/components/UiBatteryVerticalFull.d.ts +1 -1
  559. package/dist/icons/components/UiBatteryVerticalHigh.d.ts +1 -1
  560. package/dist/icons/components/UiBatteryVerticalLow.d.ts +1 -1
  561. package/dist/icons/components/UiBatteryVerticalMedium.d.ts +1 -1
  562. package/dist/icons/components/UiBeaker.d.ts +1 -1
  563. package/dist/icons/components/UiBell.d.ts +1 -1
  564. package/dist/icons/components/UiBellSlash.d.ts +1 -1
  565. package/dist/icons/components/UiBinary.d.ts +1 -1
  566. package/dist/icons/components/UiBlueKey.d.ts +1 -1
  567. package/dist/icons/components/UiBoolean.d.ts +1 -1
  568. package/dist/icons/components/UiBox.d.ts +1 -1
  569. package/dist/icons/components/UiBoxes.d.ts +1 -1
  570. package/dist/icons/components/UiBraces.d.ts +1 -1
  571. package/dist/icons/components/UiBrain.d.ts +1 -1
  572. package/dist/icons/components/UiBreakpoint.d.ts +1 -1
  573. package/dist/icons/components/UiBreakpoint1.d.ts +1 -1
  574. package/dist/icons/components/UiBreakpoint2.d.ts +1 -1
  575. package/dist/icons/components/UiBreakpoint3.d.ts +1 -1
  576. package/dist/icons/components/UiBreakpoint4.d.ts +1 -1
  577. package/dist/icons/components/UiBreakpointDisabled.d.ts +1 -1
  578. package/dist/icons/components/UiBreakpointField.d.ts +1 -1
  579. package/dist/icons/components/UiBreakpointMethod.d.ts +1 -1
  580. package/dist/icons/components/UiBroadcast.d.ts +1 -1
  581. package/dist/icons/components/UiBug.d.ts +1 -1
  582. package/dist/icons/components/UiCache.d.ts +1 -1
  583. package/dist/icons/components/UiCalculator.d.ts +1 -1
  584. package/dist/icons/components/UiCalendar.d.ts +1 -1
  585. package/dist/icons/components/UiCalendarBlank.d.ts +1 -1
  586. package/dist/icons/components/UiCalendarCheck.d.ts +1 -1
  587. package/dist/icons/components/UiCamera.d.ts +1 -1
  588. package/dist/icons/components/UiCancel.d.ts +1 -1
  589. package/dist/icons/components/UiChartBar.d.ts +1 -1
  590. package/dist/icons/components/UiChartLineUp.d.ts +1 -1
  591. package/dist/icons/components/UiChartOfAccounts.d.ts +1 -1
  592. package/dist/icons/components/UiChartPie.d.ts +1 -1
  593. package/dist/icons/components/UiChatDots.d.ts +1 -1
  594. package/dist/icons/components/UiCheck.d.ts +1 -1
  595. package/dist/icons/components/UiCheckConstraint.d.ts +1 -1
  596. package/dist/icons/components/UiChevronDown.d.ts +1 -1
  597. package/dist/icons/components/UiChevronRight.d.ts +1 -1
  598. package/dist/icons/components/UiChevronUp.d.ts +1 -1
  599. package/dist/icons/components/UiChevronsDown.d.ts +1 -1
  600. package/dist/icons/components/UiChevronsUp.d.ts +1 -1
  601. package/dist/icons/components/UiChip.d.ts +1 -1
  602. package/dist/icons/components/UiCircleFilled.d.ts +1 -1
  603. package/dist/icons/components/UiCircleOutline.d.ts +1 -1
  604. package/dist/icons/components/UiCircleX.d.ts +1 -1
  605. package/dist/icons/components/UiClass.d.ts +1 -1
  606. package/dist/icons/components/UiClass1.d.ts +1 -1
  607. package/dist/icons/components/UiClass2.d.ts +1 -1
  608. package/dist/icons/components/UiClass3.d.ts +1 -1
  609. package/dist/icons/components/UiClass4.d.ts +1 -1
  610. package/dist/icons/components/UiClass5.d.ts +1 -1
  611. package/dist/icons/components/UiClass6.d.ts +1 -1
  612. package/dist/icons/components/UiClass7.d.ts +1 -1
  613. package/dist/icons/components/UiClearCash.d.ts +1 -1
  614. package/dist/icons/components/UiClipboardText.d.ts +1 -1
  615. package/dist/icons/components/UiClock.d.ts +1 -1
  616. package/dist/icons/components/UiClockCountdown.d.ts +1 -1
  617. package/dist/icons/components/UiClose.d.ts +1 -1
  618. package/dist/icons/components/UiCloud.d.ts +1 -1
  619. package/dist/icons/components/UiCloudDownload.d.ts +1 -1
  620. package/dist/icons/components/UiCloudUpload.d.ts +1 -1
  621. package/dist/icons/components/UiCode2.d.ts +1 -1
  622. package/dist/icons/components/UiCog.d.ts +1 -1
  623. package/dist/icons/components/UiCoins.d.ts +1 -1
  624. package/dist/icons/components/UiCollapseAll.d.ts +1 -1
  625. package/dist/icons/components/UiCollection.d.ts +1 -1
  626. package/dist/icons/components/UiCollectionType.d.ts +1 -1
  627. package/dist/icons/components/UiColumn.d.ts +1 -1
  628. package/dist/icons/components/UiColumn1.d.ts +1 -1
  629. package/dist/icons/components/UiColumn2.d.ts +1 -1
  630. package/dist/icons/components/UiColumn3.d.ts +1 -1
  631. package/dist/icons/components/UiColumn4.d.ts +1 -1
  632. package/dist/icons/components/UiColumn5.d.ts +1 -1
  633. package/dist/icons/components/UiColumns.d.ts +1 -1
  634. package/dist/icons/components/UiCommand.d.ts +1 -1
  635. package/dist/icons/components/UiComment.d.ts +1 -1
  636. package/dist/icons/components/UiCompass.d.ts +1 -1
  637. package/dist/icons/components/UiConfig.d.ts +1 -1
  638. package/dist/icons/components/UiConfigMap.d.ts +1 -1
  639. package/dist/icons/components/UiConnector.d.ts +1 -1
  640. package/dist/icons/components/UiConstant.d.ts +1 -1
  641. package/dist/icons/components/UiConstant1.d.ts +1 -1
  642. package/dist/icons/components/UiConstructor.d.ts +1 -1
  643. package/dist/icons/components/UiConverter.d.ts +1 -1
  644. package/dist/icons/components/UiConverter1.d.ts +1 -1
  645. package/dist/icons/components/UiCopy.d.ts +1 -1
  646. package/dist/icons/components/UiCreateConstraint.d.ts +1 -1
  647. package/dist/icons/components/UiCurrencyDollar.d.ts +1 -1
  648. package/dist/icons/components/UiCursorClick.d.ts +1 -1
  649. package/dist/icons/components/UiCursorText.d.ts +1 -1
  650. package/dist/icons/components/UiCustomResource.d.ts +1 -1
  651. package/dist/icons/components/UiDataSchema.d.ts +1 -1
  652. package/dist/icons/components/UiDataShare.d.ts +1 -1
  653. package/dist/icons/components/UiDatabase.d.ts +1 -1
  654. package/dist/icons/components/UiDatabaseEventStream.d.ts +1 -1
  655. package/dist/icons/components/UiDatabaseLink.d.ts +1 -1
  656. package/dist/icons/components/UiDatabaseZap.d.ts +1 -1
  657. package/dist/icons/components/UiDebug.d.ts +1 -1
  658. package/dist/icons/components/UiDebugContinue.d.ts +1 -1
  659. package/dist/icons/components/UiDebugDisabled.d.ts +1 -1
  660. package/dist/icons/components/UiDebugSelection.d.ts +1 -1
  661. package/dist/icons/components/UiDebugSmall.d.ts +1 -1
  662. package/dist/icons/components/UiDebugStepInto.d.ts +1 -1
  663. package/dist/icons/components/UiDebugStepOut.d.ts +1 -1
  664. package/dist/icons/components/UiDebugStepOver.d.ts +1 -1
  665. package/dist/icons/components/UiDebugStop.d.ts +1 -1
  666. package/dist/icons/components/UiDecorator.d.ts +1 -1
  667. package/dist/icons/components/UiDeploy.d.ts +1 -1
  668. package/dist/icons/components/UiDesktop.d.ts +1 -1
  669. package/dist/icons/components/UiDetach.d.ts +1 -1
  670. package/dist/icons/components/UiDiagramDiff.d.ts +1 -1
  671. package/dist/icons/components/UiDiff.d.ts +1 -1
  672. package/dist/icons/components/UiDotsVertical.d.ts +1 -1
  673. package/dist/icons/components/UiDownload.d.ts +1 -1
  674. package/dist/icons/components/UiDumpThreads.d.ts +1 -1
  675. package/dist/icons/components/UiEdit.d.ts +1 -1
  676. package/dist/icons/components/UiEditMode.d.ts +1 -1
  677. package/dist/icons/components/UiEllipsis.d.ts +1 -1
  678. package/dist/icons/components/UiEllipsisBold.d.ts +1 -1
  679. package/dist/icons/components/UiEndpoint.d.ts +1 -1
  680. package/dist/icons/components/UiEnum.d.ts +1 -1
  681. package/dist/icons/components/UiEnumMember.d.ts +1 -1
  682. package/dist/icons/components/UiEnvelope.d.ts +1 -1
  683. package/dist/icons/components/UiError.d.ts +1 -1
  684. package/dist/icons/components/UiEvaluateExpression.d.ts +1 -1
  685. package/dist/icons/components/UiEvent.d.ts +1 -1
  686. package/dist/icons/components/UiException.d.ts +1 -1
  687. package/dist/icons/components/UiExceptionAnalyzerImportant.d.ts +1 -1
  688. package/dist/icons/components/UiExcludedGenerated.d.ts +1 -1
  689. package/dist/icons/components/UiExpandAll.d.ts +1 -1
  690. package/dist/icons/components/UiExport.d.ts +1 -1
  691. package/dist/icons/components/UiExtension.d.ts +1 -1
  692. package/dist/icons/components/UiExternalLink.d.ts +1 -1
  693. package/dist/icons/components/UiEye.d.ts +1 -1
  694. package/dist/icons/components/UiEyeClosed.d.ts +1 -1
  695. package/dist/icons/components/UiFactory.d.ts +1 -1
  696. package/dist/icons/components/UiFailedInProgress.d.ts +1 -1
  697. package/dist/icons/components/UiFastForwardCircle.d.ts +1 -1
  698. package/dist/icons/components/UiField.d.ts +1 -1
  699. package/dist/icons/components/UiField1.d.ts +1 -1
  700. package/dist/icons/components/UiField2.d.ts +1 -1
  701. package/dist/icons/components/UiField3.d.ts +1 -1
  702. package/dist/icons/components/UiField4.d.ts +1 -1
  703. package/dist/icons/components/UiField5.d.ts +1 -1
  704. package/dist/icons/components/UiField6.d.ts +1 -1
  705. package/dist/icons/components/UiFieldProtected.d.ts +1 -1
  706. package/dist/icons/components/UiFieldReadAccess.d.ts +1 -1
  707. package/dist/icons/components/UiFieldType.d.ts +1 -1
  708. package/dist/icons/components/UiFieldWriteAccess.d.ts +1 -1
  709. package/dist/icons/components/UiFile.d.ts +1 -1
  710. package/dist/icons/components/UiFileCode.d.ts +1 -1
  711. package/dist/icons/components/UiFileCog.d.ts +1 -1
  712. package/dist/icons/components/UiFileFormat.d.ts +1 -1
  713. package/dist/icons/components/UiFileJson.d.ts +1 -1
  714. package/dist/icons/components/UiFilePlus.d.ts +1 -1
  715. package/dist/icons/components/UiFileSearch.d.ts +1 -1
  716. package/dist/icons/components/UiFileSpreadsheet.d.ts +1 -1
  717. package/dist/icons/components/UiFileText.d.ts +1 -1
  718. package/dist/icons/components/UiFileType.d.ts +1 -1
  719. package/dist/icons/components/UiFilter.d.ts +1 -1
  720. package/dist/icons/components/UiFingerprint.d.ts +1 -1
  721. package/dist/icons/components/UiFolder.d.ts +1 -1
  722. package/dist/icons/components/UiFolderGit.d.ts +1 -1
  723. package/dist/icons/components/UiFolderGit2.d.ts +1 -1
  724. package/dist/icons/components/UiForeignServer.d.ts +1 -1
  725. package/dist/icons/components/UiForm.d.ts +1 -1
  726. package/dist/icons/components/UiFreemarker.d.ts +1 -1
  727. package/dist/icons/components/UiFullscreen.d.ts +1 -1
  728. package/dist/icons/components/UiFunction.d.ts +1 -1
  729. package/dist/icons/components/UiFunction1.d.ts +1 -1
  730. package/dist/icons/components/UiFunction2.d.ts +1 -1
  731. package/dist/icons/components/UiFunction3.d.ts +1 -1
  732. package/dist/icons/components/UiFunction4.d.ts +1 -1
  733. package/dist/icons/components/UiFunctionSquare.d.ts +1 -1
  734. package/dist/icons/components/UiFunnelData.d.ts +1 -1
  735. package/dist/icons/components/UiGavel.d.ts +1 -1
  736. package/dist/icons/components/UiGearSix.d.ts +1 -1
  737. package/dist/icons/components/UiGitBranch.d.ts +1 -1
  738. package/dist/icons/components/UiGitCommit.d.ts +1 -1
  739. package/dist/icons/components/UiGitGraph.d.ts +1 -1
  740. package/dist/icons/components/UiGitMerge.d.ts +1 -1
  741. package/dist/icons/components/UiGitPr.d.ts +1 -1
  742. package/dist/icons/components/UiGlobe.d.ts +1 -1
  743. package/dist/icons/components/UiGraph.d.ts +1 -1
  744. package/dist/icons/components/UiGreyKey.d.ts +1 -1
  745. package/dist/icons/components/UiGrid.d.ts +1 -1
  746. package/dist/icons/components/UiGroupByModuleGroup.d.ts +1 -1
  747. package/dist/icons/components/UiGroupByPackage.d.ts +1 -1
  748. package/dist/icons/components/UiGroupByTestProduction.d.ts +1 -1
  749. package/dist/icons/components/UiHandCoins.d.ts +1 -1
  750. package/dist/icons/components/UiHandPalm.d.ts +1 -1
  751. package/dist/icons/components/UiHardDrive.d.ts +1 -1
  752. package/dist/icons/components/UiHibernate.d.ts +1 -1
  753. package/dist/icons/components/UiHibernateEvent.d.ts +1 -1
  754. package/dist/icons/components/UiHistory.d.ts +1 -1
  755. package/dist/icons/components/UiHome.d.ts +1 -1
  756. package/dist/icons/components/UiHourglass.d.ts +1 -1
  757. package/dist/icons/components/UiHubot.d.ts +1 -1
  758. package/dist/icons/components/UiId.d.ts +1 -1
  759. package/dist/icons/components/UiIdentificationCard.d.ts +1 -1
  760. package/dist/icons/components/UiImage.d.ts +1 -1
  761. package/dist/icons/components/UiImport.d.ts +1 -1
  762. package/dist/icons/components/UiInbox.d.ts +1 -1
  763. package/dist/icons/components/UiIndex.d.ts +1 -1
  764. package/dist/icons/components/UiIndex1.d.ts +1 -1
  765. package/dist/icons/components/UiIndex2.d.ts +1 -1
  766. package/dist/icons/components/UiIndex3.d.ts +1 -1
  767. package/dist/icons/components/UiIndex4.d.ts +1 -1
  768. package/dist/icons/components/UiIndex5.d.ts +1 -1
  769. package/dist/icons/components/UiIndex6.d.ts +1 -1
  770. package/dist/icons/components/UiInfo.d.ts +1 -1
  771. package/dist/icons/components/UiInsightAvailability.d.ts +1 -1
  772. package/dist/icons/components/UiInsightCompliance.d.ts +1 -1
  773. package/dist/icons/components/UiInsightCost.d.ts +1 -1
  774. package/dist/icons/components/UiInsightIntegration.d.ts +1 -1
  775. package/dist/icons/components/UiInsightPerformance.d.ts +1 -1
  776. package/dist/icons/components/UiInsightRecommendation.d.ts +1 -1
  777. package/dist/icons/components/UiInsightReliability.d.ts +1 -1
  778. package/dist/icons/components/UiInsightSecurity.d.ts +1 -1
  779. package/dist/icons/components/UiInsightTechnicalDebt.d.ts +1 -1
  780. package/dist/icons/components/UiInspectionsGrammar.d.ts +1 -1
  781. package/dist/icons/components/UiInterface.d.ts +1 -1
  782. package/dist/icons/components/UiInvoice.d.ts +1 -1
  783. package/dist/icons/components/UiJpaAttribute.d.ts +1 -1
  784. package/dist/icons/components/UiJpaId.d.ts +1 -1
  785. package/dist/icons/components/UiJpaRelationship.d.ts +1 -1
  786. package/dist/icons/components/UiJson.d.ts +1 -1
  787. package/dist/icons/components/UiKanban.d.ts +1 -1
  788. package/dist/icons/components/UiKey.d.ts +1 -1
  789. package/dist/icons/components/UiKeyboard.d.ts +1 -1
  790. package/dist/icons/components/UiKeyword.d.ts +1 -1
  791. package/dist/icons/components/UiKillDataSourceProcess.d.ts +1 -1
  792. package/dist/icons/components/UiKubeConfigMap.d.ts +1 -1
  793. package/dist/icons/components/UiKubeDeployment.d.ts +1 -1
  794. package/dist/icons/components/UiKubeJob.d.ts +1 -1
  795. package/dist/icons/components/UiKubeNamespace.d.ts +1 -1
  796. package/dist/icons/components/UiKubePod.d.ts +1 -1
  797. package/dist/icons/components/UiLambda.d.ts +1 -1
  798. package/dist/icons/components/UiLangJava.d.ts +1 -1
  799. package/dist/icons/components/UiLangJavascript.d.ts +1 -1
  800. package/dist/icons/components/UiLangPython.d.ts +1 -1
  801. package/dist/icons/components/UiLayers.d.ts +1 -1
  802. package/dist/icons/components/UiLayoutDashboard.d.ts +1 -1
  803. package/dist/icons/components/UiLedger.d.ts +1 -1
  804. package/dist/icons/components/UiLightbulb.d.ts +1 -1
  805. package/dist/icons/components/UiLink.d.ts +1 -1
  806. package/dist/icons/components/UiLinkExternal.d.ts +1 -1
  807. package/dist/icons/components/UiListChecks.d.ts +1 -1
  808. package/dist/icons/components/UiListDashes.d.ts +1 -1
  809. package/dist/icons/components/UiListFlat.d.ts +1 -1
  810. package/dist/icons/components/UiListOrdered.d.ts +1 -1
  811. package/dist/icons/components/UiListTree.d.ts +1 -1
  812. package/dist/icons/components/UiLoader.d.ts +1 -1
  813. package/dist/icons/components/UiLocation.d.ts +1 -1
  814. package/dist/icons/components/UiLock.d.ts +1 -1
  815. package/dist/icons/components/UiLockKey.d.ts +1 -1
  816. package/dist/icons/components/UiLockOpen.d.ts +1 -1
  817. package/dist/icons/components/UiLogoAnthropic.d.ts +1 -1
  818. package/dist/icons/components/UiLogoClaude.d.ts +1 -1
  819. package/dist/icons/components/UiLogoDeepseek.d.ts +1 -1
  820. package/dist/icons/components/UiLogoGemini.d.ts +1 -1
  821. package/dist/icons/components/UiLogoGoogle.d.ts +1 -1
  822. package/dist/icons/components/UiLogoHuggingface.d.ts +1 -1
  823. package/dist/icons/components/UiLogoMeta.d.ts +1 -1
  824. package/dist/icons/components/UiLogoMistral.d.ts +1 -1
  825. package/dist/icons/components/UiLogoOllama.d.ts +1 -1
  826. package/dist/icons/components/UiLogoOpenai.d.ts +1 -1
  827. package/dist/icons/components/UiLogoPerplexity.d.ts +1 -1
  828. package/dist/icons/components/UiMagicWand.d.ts +1 -1
  829. package/dist/icons/components/UiMarkdown.d.ts +1 -1
  830. package/dist/icons/components/UiMaterializedLog.d.ts +1 -1
  831. package/dist/icons/components/UiMemoryProfile.d.ts +1 -1
  832. package/dist/icons/components/UiMemoryStick.d.ts +1 -1
  833. package/dist/icons/components/UiMenu.d.ts +1 -1
  834. package/dist/icons/components/UiMessageQueue.d.ts +1 -1
  835. package/dist/icons/components/UiMessageQueue1.d.ts +1 -1
  836. package/dist/icons/components/UiMethod.d.ts +1 -1
  837. package/dist/icons/components/UiMethod1.d.ts +1 -1
  838. package/dist/icons/components/UiMethod10.d.ts +1 -1
  839. package/dist/icons/components/UiMethod11.d.ts +1 -1
  840. package/dist/icons/components/UiMethod2.d.ts +1 -1
  841. package/dist/icons/components/UiMethod3.d.ts +1 -1
  842. package/dist/icons/components/UiMethod4.d.ts +1 -1
  843. package/dist/icons/components/UiMethod5.d.ts +1 -1
  844. package/dist/icons/components/UiMethod6.d.ts +1 -1
  845. package/dist/icons/components/UiMethod7.d.ts +1 -1
  846. package/dist/icons/components/UiMethod8.d.ts +1 -1
  847. package/dist/icons/components/UiMethod9.d.ts +1 -1
  848. package/dist/icons/components/UiModels.d.ts +1 -1
  849. package/dist/icons/components/UiModule.d.ts +1 -1
  850. package/dist/icons/components/UiModule1.d.ts +1 -1
  851. package/dist/icons/components/UiMoon.d.ts +1 -1
  852. package/dist/icons/components/UiName.d.ts +1 -1
  853. package/dist/icons/components/UiNamespace.d.ts +1 -1
  854. package/dist/icons/components/UiNetwork.d.ts +1 -1
  855. package/dist/icons/components/UiNull.d.ts +1 -1
  856. package/dist/icons/components/UiNumeric.d.ts +1 -1
  857. package/dist/icons/components/UiObject.d.ts +1 -1
  858. package/dist/icons/components/UiOpenBlock.d.ts +1 -1
  859. package/dist/icons/components/UiOpenScad.d.ts +1 -1
  860. package/dist/icons/components/UiOperator.d.ts +1 -1
  861. package/dist/icons/components/UiOperator1.d.ts +1 -1
  862. package/dist/icons/components/UiOrganization.d.ts +1 -1
  863. package/dist/icons/components/UiPackage.d.ts +1 -1
  864. package/dist/icons/components/UiPalette.d.ts +1 -1
  865. package/dist/icons/components/UiParameter.d.ts +1 -1
  866. package/dist/icons/components/UiPartition.d.ts +1 -1
  867. package/dist/icons/components/UiPass.d.ts +1 -1
  868. package/dist/icons/components/UiPause.d.ts +1 -1
  869. package/dist/icons/components/UiPauseCircle.d.ts +1 -1
  870. package/dist/icons/components/UiPencilSimpleLine.d.ts +1 -1
  871. package/dist/icons/components/UiPending.d.ts +1 -1
  872. package/dist/icons/components/UiPercent.d.ts +1 -1
  873. package/dist/icons/components/UiPhone.d.ts +1 -1
  874. package/dist/icons/components/UiPlay.d.ts +1 -1
  875. package/dist/icons/components/UiPlayCircle.d.ts +1 -1
  876. package/dist/icons/components/UiPlaybook.d.ts +1 -1
  877. package/dist/icons/components/UiPlug.d.ts +1 -1
  878. package/dist/icons/components/UiPluginModule.d.ts +1 -1
  879. package/dist/icons/components/UiPluginV2.d.ts +1 -1
  880. package/dist/icons/components/UiPlugsConnected.d.ts +1 -1
  881. package/dist/icons/components/UiPointcut.d.ts +1 -1
  882. package/dist/icons/components/UiProcedure.d.ts +1 -1
  883. package/dist/icons/components/UiProfile.d.ts +1 -1
  884. package/dist/icons/components/UiProfile1.d.ts +1 -1
  885. package/dist/icons/components/UiProfile2.d.ts +1 -1
  886. package/dist/icons/components/UiProfile3.d.ts +1 -1
  887. package/dist/icons/components/UiProfile4.d.ts +1 -1
  888. package/dist/icons/components/UiProfiler.d.ts +1 -1
  889. package/dist/icons/components/UiProfilerBackTrace.d.ts +1 -1
  890. package/dist/icons/components/UiProfilerMergeCallees.d.ts +1 -1
  891. package/dist/icons/components/UiProhibit.d.ts +1 -1
  892. package/dist/icons/components/UiProjectStructure.d.ts +1 -1
  893. package/dist/icons/components/UiProjection.d.ts +1 -1
  894. package/dist/icons/components/UiProperty.d.ts +1 -1
  895. package/dist/icons/components/UiPulse.d.ts +1 -1
  896. package/dist/icons/components/UiPuzzle.d.ts +1 -1
  897. package/dist/icons/components/UiQuestion.d.ts +1 -1
  898. package/dist/icons/components/UiQueue.d.ts +1 -1
  899. package/dist/icons/components/UiReadAccess.d.ts +1 -1
  900. package/dist/icons/components/UiReceipt.d.ts +1 -1
  901. package/dist/icons/components/UiRecord.d.ts +1 -1
  902. package/dist/icons/components/UiRecord1.d.ts +1 -1
  903. package/dist/icons/components/UiRefresh.d.ts +1 -1
  904. package/dist/icons/components/UiRegex.d.ts +1 -1
  905. package/dist/icons/components/UiRelationship.d.ts +1 -1
  906. package/dist/icons/components/UiRelay.d.ts +1 -1
  907. package/dist/icons/components/UiRemove.d.ts +1 -1
  908. package/dist/icons/components/UiRepeat.d.ts +1 -1
  909. package/dist/icons/components/UiResizeVertical.d.ts +1 -1
  910. package/dist/icons/components/UiRestart.d.ts +1 -1
  911. package/dist/icons/components/UiRobotAi.d.ts +1 -1
  912. package/dist/icons/components/UiRocket.d.ts +1 -1
  913. package/dist/icons/components/UiRole.d.ts +1 -1
  914. package/dist/icons/components/UiRollback.d.ts +1 -1
  915. package/dist/icons/components/UiRoute.d.ts +1 -1
  916. package/dist/icons/components/UiRoutine.d.ts +1 -1
  917. package/dist/icons/components/UiRows.d.ts +1 -1
  918. package/dist/icons/components/UiRun.d.ts +1 -1
  919. package/dist/icons/components/UiRun1.d.ts +1 -1
  920. package/dist/icons/components/UiRun10.d.ts +1 -1
  921. package/dist/icons/components/UiRun11.d.ts +1 -1
  922. package/dist/icons/components/UiRun12.d.ts +1 -1
  923. package/dist/icons/components/UiRun13.d.ts +1 -1
  924. package/dist/icons/components/UiRun14.d.ts +1 -1
  925. package/dist/icons/components/UiRun2.d.ts +1 -1
  926. package/dist/icons/components/UiRun3.d.ts +1 -1
  927. package/dist/icons/components/UiRun4.d.ts +1 -1
  928. package/dist/icons/components/UiRun5.d.ts +1 -1
  929. package/dist/icons/components/UiRun6.d.ts +1 -1
  930. package/dist/icons/components/UiRun7.d.ts +1 -1
  931. package/dist/icons/components/UiRun8.d.ts +1 -1
  932. package/dist/icons/components/UiRun9.d.ts +1 -1
  933. package/dist/icons/components/UiSave.d.ts +1 -1
  934. package/dist/icons/components/UiScale.d.ts +1 -1
  935. package/dist/icons/components/UiScan.d.ts +1 -1
  936. package/dist/icons/components/UiScroll.d.ts +1 -1
  937. package/dist/icons/components/UiSealCheck.d.ts +1 -1
  938. package/dist/icons/components/UiSearch.d.ts +1 -1
  939. package/dist/icons/components/UiSecurityRole.d.ts +1 -1
  940. package/dist/icons/components/UiSelect.d.ts +1 -1
  941. package/dist/icons/components/UiSequence.d.ts +1 -1
  942. package/dist/icons/components/UiSequence1.d.ts +1 -1
  943. package/dist/icons/components/UiSequence2.d.ts +1 -1
  944. package/dist/icons/components/UiSequence3.d.ts +1 -1
  945. package/dist/icons/components/UiSequence4.d.ts +1 -1
  946. package/dist/icons/components/UiServer.d.ts +1 -1
  947. package/dist/icons/components/UiServerProcess.d.ts +1 -1
  948. package/dist/icons/components/UiSetKey.d.ts +1 -1
  949. package/dist/icons/components/UiSeverityBlocker.d.ts +1 -1
  950. package/dist/icons/components/UiSeverityCritical.d.ts +1 -1
  951. package/dist/icons/components/UiSeverityHigh.d.ts +1 -1
  952. package/dist/icons/components/UiSeverityInfo.d.ts +1 -1
  953. package/dist/icons/components/UiSeverityLow.d.ts +1 -1
  954. package/dist/icons/components/UiSeverityMedium.d.ts +1 -1
  955. package/dist/icons/components/UiSeverityWarning.d.ts +1 -1
  956. package/dist/icons/components/UiShare.d.ts +1 -1
  957. package/dist/icons/components/UiShield.d.ts +1 -1
  958. package/dist/icons/components/UiShieldSlash.d.ts +1 -1
  959. package/dist/icons/components/UiShipWheel.d.ts +1 -1
  960. package/dist/icons/components/UiShortcutFilter.d.ts +1 -1
  961. package/dist/icons/components/UiShowCurrentFrame.d.ts +1 -1
  962. package/dist/icons/components/UiShowMembers.d.ts +1 -1
  963. package/dist/icons/components/UiShowToImplement.d.ts +1 -1
  964. package/dist/icons/components/UiSidebar.d.ts +1 -1
  965. package/dist/icons/components/UiSigma.d.ts +1 -1
  966. package/dist/icons/components/UiSignIn.d.ts +1 -1
  967. package/dist/icons/components/UiSignOut.d.ts +1 -1
  968. package/dist/icons/components/UiSiren.d.ts +1 -1
  969. package/dist/icons/components/UiSkipForward.d.ts +1 -1
  970. package/dist/icons/components/UiSkull.d.ts +1 -1
  971. package/dist/icons/components/UiSliders.d.ts +1 -1
  972. package/dist/icons/components/UiSortAlphabetically.d.ts +1 -1
  973. package/dist/icons/components/UiSortByType.d.ts +1 -1
  974. package/dist/icons/components/UiSortByUsage.d.ts +1 -1
  975. package/dist/icons/components/UiSortByVisibility.d.ts +1 -1
  976. package/dist/icons/components/UiSparkles.d.ts +1 -1
  977. package/dist/icons/components/UiSpeaker.d.ts +1 -1
  978. package/dist/icons/components/UiSpringBoot.d.ts +1 -1
  979. package/dist/icons/components/UiSqlArray.d.ts +1 -1
  980. package/dist/icons/components/UiSqlColumn.d.ts +1 -1
  981. package/dist/icons/components/UiSqlConstraint.d.ts +1 -1
  982. package/dist/icons/components/UiSqlDatabase.d.ts +1 -1
  983. package/dist/icons/components/UiSqlForeignKey.d.ts +1 -1
  984. package/dist/icons/components/UiSqlFunction.d.ts +1 -1
  985. package/dist/icons/components/UiSqlIndex.d.ts +1 -1
  986. package/dist/icons/components/UiSqlPrimaryKey.d.ts +1 -1
  987. package/dist/icons/components/UiSqlQuery.d.ts +1 -1
  988. package/dist/icons/components/UiSqlSchema.d.ts +1 -1
  989. package/dist/icons/components/UiSqlSequence.d.ts +1 -1
  990. package/dist/icons/components/UiSqlStoredProc.d.ts +1 -1
  991. package/dist/icons/components/UiSqlTable.d.ts +1 -1
  992. package/dist/icons/components/UiSqlTrigger.d.ts +1 -1
  993. package/dist/icons/components/UiSqlView.d.ts +1 -1
  994. package/dist/icons/components/UiSquare.d.ts +1 -1
  995. package/dist/icons/components/UiStack.d.ts +1 -1
  996. package/dist/icons/components/UiStackFrameDot.d.ts +1 -1
  997. package/dist/icons/components/UiStackTrace.d.ts +1 -1
  998. package/dist/icons/components/UiStar.d.ts +1 -1
  999. package/dist/icons/components/UiStartTimer.d.ts +1 -1
  1000. package/dist/icons/components/UiStatic.d.ts +1 -1
  1001. package/dist/icons/components/UiStep.d.ts +1 -1
  1002. package/dist/icons/components/UiStep1.d.ts +1 -1
  1003. package/dist/icons/components/UiStep2.d.ts +1 -1
  1004. package/dist/icons/components/UiStep3.d.ts +1 -1
  1005. package/dist/icons/components/UiStep4.d.ts +1 -1
  1006. package/dist/icons/components/UiStep5.d.ts +1 -1
  1007. package/dist/icons/components/UiStep6.d.ts +1 -1
  1008. package/dist/icons/components/UiStep7.d.ts +1 -1
  1009. package/dist/icons/components/UiStep8.d.ts +1 -1
  1010. package/dist/icons/components/UiStep9.d.ts +1 -1
  1011. package/dist/icons/components/UiSteps.d.ts +1 -1
  1012. package/dist/icons/components/UiStop.d.ts +1 -1
  1013. package/dist/icons/components/UiStrategy.d.ts +1 -1
  1014. package/dist/icons/components/UiStream.d.ts +1 -1
  1015. package/dist/icons/components/UiStreamKey.d.ts +1 -1
  1016. package/dist/icons/components/UiString.d.ts +1 -1
  1017. package/dist/icons/components/UiStruct.d.ts +1 -1
  1018. package/dist/icons/components/UiSubmitDB.d.ts +1 -1
  1019. package/dist/icons/components/UiSubscription.d.ts +1 -1
  1020. package/dist/icons/components/UiSun.d.ts +1 -1
  1021. package/dist/icons/components/UiSwap.d.ts +1 -1
  1022. package/dist/icons/components/UiSymbol.d.ts +1 -1
  1023. package/dist/icons/components/UiSync.d.ts +1 -1
  1024. package/dist/icons/components/UiTable.d.ts +1 -1
  1025. package/dist/icons/components/UiTable1.d.ts +1 -1
  1026. package/dist/icons/components/UiTable10.d.ts +1 -1
  1027. package/dist/icons/components/UiTable11.d.ts +1 -1
  1028. package/dist/icons/components/UiTable12.d.ts +1 -1
  1029. package/dist/icons/components/UiTable2.d.ts +1 -1
  1030. package/dist/icons/components/UiTable3.d.ts +1 -1
  1031. package/dist/icons/components/UiTable4.d.ts +1 -1
  1032. package/dist/icons/components/UiTable5.d.ts +1 -1
  1033. package/dist/icons/components/UiTable6.d.ts +1 -1
  1034. package/dist/icons/components/UiTable7.d.ts +1 -1
  1035. package/dist/icons/components/UiTable8.d.ts +1 -1
  1036. package/dist/icons/components/UiTable9.d.ts +1 -1
  1037. package/dist/icons/components/UiTableProperties.d.ts +1 -1
  1038. package/dist/icons/components/UiTag.d.ts +1 -1
  1039. package/dist/icons/components/UiTax.d.ts +1 -1
  1040. package/dist/icons/components/UiTemplate.d.ts +1 -1
  1041. package/dist/icons/components/UiTerminal.d.ts +1 -1
  1042. package/dist/icons/components/UiTest.d.ts +1 -1
  1043. package/dist/icons/components/UiTest1.d.ts +1 -1
  1044. package/dist/icons/components/UiTest2.d.ts +1 -1
  1045. package/dist/icons/components/UiTest3.d.ts +1 -1
  1046. package/dist/icons/components/UiTest4.d.ts +1 -1
  1047. package/dist/icons/components/UiTest5.d.ts +1 -1
  1048. package/dist/icons/components/UiTest6.d.ts +1 -1
  1049. package/dist/icons/components/UiTest7.d.ts +1 -1
  1050. package/dist/icons/components/UiText.d.ts +1 -1
  1051. package/dist/icons/components/UiThermometer.d.ts +1 -1
  1052. package/dist/icons/components/UiThumbsDown.d.ts +1 -1
  1053. package/dist/icons/components/UiThumbsUp.d.ts +1 -1
  1054. package/dist/icons/components/UiTimer.d.ts +1 -1
  1055. package/dist/icons/components/UiToggleOff.d.ts +1 -1
  1056. package/dist/icons/components/UiToggleOn.d.ts +1 -1
  1057. package/dist/icons/components/UiTrait.d.ts +1 -1
  1058. package/dist/icons/components/UiTransactionStart.d.ts +1 -1
  1059. package/dist/icons/components/UiTrash.d.ts +1 -1
  1060. package/dist/icons/components/UiTrendDown.d.ts +1 -1
  1061. package/dist/icons/components/UiTrendUp.d.ts +1 -1
  1062. package/dist/icons/components/UiTypeAlias.d.ts +1 -1
  1063. package/dist/icons/components/UiTypeParameter.d.ts +1 -1
  1064. package/dist/icons/components/UiTypeScriptIndexSignature.d.ts +1 -1
  1065. package/dist/icons/components/UiUndeploy.d.ts +1 -1
  1066. package/dist/icons/components/UiUnknown.d.ts +1 -1
  1067. package/dist/icons/components/UiUpload.d.ts +1 -1
  1068. package/dist/icons/components/UiUser.d.ts +1 -1
  1069. package/dist/icons/components/UiUserCircle.d.ts +1 -1
  1070. package/dist/icons/components/UiUserCog.d.ts +1 -1
  1071. package/dist/icons/components/UiUserGear.d.ts +1 -1
  1072. package/dist/icons/components/UiUsersFour.d.ts +1 -1
  1073. package/dist/icons/components/UiUsersThree.d.ts +1 -1
  1074. package/dist/icons/components/UiVariable.d.ts +1 -1
  1075. package/dist/icons/components/UiVariable1.d.ts +1 -1
  1076. package/dist/icons/components/UiVariable2.d.ts +1 -1
  1077. package/dist/icons/components/UiVariable3.d.ts +1 -1
  1078. package/dist/icons/components/UiVariable4.d.ts +1 -1
  1079. package/dist/icons/components/UiVariable5.d.ts +1 -1
  1080. package/dist/icons/components/UiVariable6.d.ts +1 -1
  1081. package/dist/icons/components/UiVideo.d.ts +1 -1
  1082. package/dist/icons/components/UiVirtualForeignKey.d.ts +1 -1
  1083. package/dist/icons/components/UiWarningCircle.d.ts +1 -1
  1084. package/dist/icons/components/UiWarningTriangle.d.ts +1 -1
  1085. package/dist/icons/components/UiWatch.d.ts +1 -1
  1086. package/dist/icons/components/UiWebArtifact.d.ts +1 -1
  1087. package/dist/icons/components/UiWebServiceClient.d.ts +1 -1
  1088. package/dist/icons/components/UiWorkflow.d.ts +1 -1
  1089. package/dist/icons/components/UiWrench.d.ts +1 -1
  1090. package/dist/icons/components/UiWriteAccess.d.ts +1 -1
  1091. package/dist/icons/components/UiXpath.d.ts +1 -1
  1092. package/dist/icons/components/UiXpath1.d.ts +1 -1
  1093. package/dist/icons/components/UiZap.d.ts +1 -1
  1094. package/dist/icons/components/UiZoomIn.d.ts +1 -1
  1095. package/dist/icons/components/UiZoomOut.d.ts +1 -1
  1096. package/dist/icons/index.d.ts +1067 -1067
  1097. package/dist/icons/programmingCatalog.d.ts +1 -1
  1098. package/dist/icons/registry.d.ts +1 -1
  1099. package/dist/icons.d.ts +1 -1
  1100. package/dist/index.cjs +1 -0
  1101. package/dist/index.cjs.map +1 -1
  1102. package/dist/index.d.ts +7 -7
  1103. package/dist/index.js +2 -1
  1104. package/dist/jotai.d.ts +3 -3
  1105. package/dist/layout/AppShell.d.ts +4 -4
  1106. package/dist/layout/AppShell.nav.d.ts +1 -1
  1107. package/dist/layout/AppSidebar.d.ts +2 -2
  1108. package/dist/layout/Panel.d.ts +3 -3
  1109. package/dist/layout/Section.d.ts +2 -2
  1110. package/dist/layout/Tabs.d.ts +2 -2
  1111. package/dist/layout/Workspace.d.ts +2 -2
  1112. package/dist/layout/Workspace.regions.d.ts +1 -1
  1113. package/dist/lib/combobox-values.d.ts +1 -1
  1114. package/dist/lib/comment-stage.d.ts +1 -1
  1115. package/dist/lib/permission-strategies.d.ts +2 -2
  1116. package/dist/lib/runtime-profile-model.d.ts +4 -4
  1117. package/dist/lib/size.d.ts +1 -1
  1118. package/dist/mdx-editor.d.ts +4 -4
  1119. package/dist/monaco/MonacoEditor.d.ts +1 -1
  1120. package/dist/monaco/MonacoProvider.d.ts +1 -1
  1121. package/dist/monaco/MonacoSchemaEditor.d.ts +1 -1
  1122. package/dist/monaco/schema-normalizer.d.ts +1 -1
  1123. package/dist/monaco/types.d.ts +1 -1
  1124. package/dist/monaco/use-monaco-worker.d.ts +1 -1
  1125. package/dist/monaco-schema.d.ts +2 -2
  1126. package/dist/monaco.d.ts +5 -5
  1127. package/dist/overlay/CellActions.d.ts +2 -2
  1128. package/dist/overlay/CommandPalette.d.ts +2 -2
  1129. package/dist/overlay/CommandPalette.model.d.ts +1 -1
  1130. package/dist/overlay/CommandPaletteList.d.ts +1 -1
  1131. package/dist/overlay/ContextMenu.d.ts +1 -1
  1132. package/dist/overlay/DropdownMenu.d.ts +2 -2
  1133. package/dist/overlay/DropdownMenuSubmenu.d.ts +1 -1
  1134. package/dist/overlay/Tour.d.ts +2 -2
  1135. package/dist/overlay/TourCard.d.ts +1 -1
  1136. package/dist/overlay/TourProvider.d.ts +3 -3
  1137. package/dist/overlay/TourSpotlight.d.ts +2 -2
  1138. package/dist/overlay/toast-context.d.ts +1 -1
  1139. package/dist/overlay/tour-anchor.d.ts +1 -1
  1140. package/dist/overlay/tour-context.d.ts +2 -2
  1141. package/dist/overlay/tour-model.d.ts +1 -1
  1142. package/dist/overlay/tour-progress.d.ts +1 -1
  1143. package/dist/overlay/use-tour-anchor.d.ts +1 -1
  1144. package/dist/overlay/use-tour-rect.d.ts +1 -1
  1145. package/dist/overlay/use-tour-step.d.ts +1 -1
  1146. package/dist/overlay/useConfirm.d.ts +1 -1
  1147. package/dist/profiles/cel/celEditor.d.ts +2 -2
  1148. package/dist/profiles/cel/celEditorExtension.d.ts +1 -1
  1149. package/dist/profiles/cel/celEditorResults.d.ts +1 -1
  1150. package/dist/profiles/cel/celPath.d.ts +1 -1
  1151. package/dist/profiles/cel/index.d.ts +5 -5
  1152. package/dist/profiles/connections/catalogTree.d.ts +1 -1
  1153. package/dist/profiles/connections/connectionBrowserModel.d.ts +4 -4
  1154. package/dist/profiles/connections/connectionQueryWorkspace.d.ts +7 -7
  1155. package/dist/profiles/connections/connectionQueryWorkspaceModel.d.ts +2 -2
  1156. package/dist/profiles/connections/index.d.ts +5 -5
  1157. package/dist/profiles/connections/inspectionStatus.d.ts +1 -1
  1158. package/dist/profiles/connections/useInspection.d.ts +2 -2
  1159. package/dist/profiles/editor/index.d.ts +11 -11
  1160. package/dist/profiles/editor/profileBuilder.d.ts +1 -1
  1161. package/dist/profiles/editor/profileBuilderExtension.d.ts +1 -1
  1162. package/dist/profiles/editor/profileBuilderModel.d.ts +2 -2
  1163. package/dist/profiles/editor/profileBuilderWorkspace.d.ts +3 -3
  1164. package/dist/profiles/editor/profileEditor.d.ts +2 -2
  1165. package/dist/profiles/editor/profileEditorModel.d.ts +2 -2
  1166. package/dist/profiles/editor/profileEditorPreview.d.ts +1 -1
  1167. package/dist/profiles/editor/profileEditorRail.d.ts +1 -1
  1168. package/dist/profiles/editor/profileEditorRaw.d.ts +1 -1
  1169. package/dist/profiles/editor/profileEditorSections.d.ts +3 -3
  1170. package/dist/profiles/editor/profileParameterEditor.d.ts +1 -1
  1171. package/dist/profiles/editor/profileYaml.d.ts +1 -1
  1172. package/dist/profiles/editor/testSchema.d.ts +1 -1
  1173. package/dist/profiles/elasticsearch/esFieldValues.d.ts +2 -2
  1174. package/dist/profiles/elasticsearch/esParamMappingModel.d.ts +2 -2
  1175. package/dist/profiles/elasticsearch/esParamOperandExtension.d.ts +2 -2
  1176. package/dist/profiles/elasticsearch/esQueryBuilder.d.ts +8 -8
  1177. package/dist/profiles/elasticsearch/esQueryBuilderExtension.d.ts +1 -1
  1178. package/dist/profiles/elasticsearch/esQueryBuilderForm.d.ts +3 -3
  1179. package/dist/profiles/elasticsearch/esQueryClauseGroup.d.ts +2 -2
  1180. package/dist/profiles/elasticsearch/esQueryCompile.d.ts +1 -1
  1181. package/dist/profiles/elasticsearch/esQueryConditionRow.d.ts +5 -5
  1182. package/dist/profiles/elasticsearch/esQueryGroupModel.d.ts +1 -1
  1183. package/dist/profiles/elasticsearch/esQueryOperandEditors.d.ts +5 -5
  1184. package/dist/profiles/elasticsearch/esQueryOperandModel.d.ts +2 -2
  1185. package/dist/profiles/elasticsearch/esQueryOperators.d.ts +1 -1
  1186. package/dist/profiles/elasticsearch/esQueryOutputEditor.d.ts +2 -2
  1187. package/dist/profiles/elasticsearch/esQueryPreview.d.ts +1 -1
  1188. package/dist/profiles/elasticsearch/esQuerySortEditor.d.ts +2 -2
  1189. package/dist/profiles/elasticsearch/esQuerySortModel.d.ts +1 -1
  1190. package/dist/profiles/elasticsearch/esValueCombobox.d.ts +1 -1
  1191. package/dist/profiles/elasticsearch/index.d.ts +22 -22
  1192. package/dist/profiles/fields/index.d.ts +8 -8
  1193. package/dist/profiles/fields/profileColumnModel.d.ts +1 -1
  1194. package/dist/profiles/fields/profileColumnPicker.d.ts +1 -1
  1195. package/dist/profiles/fields/profileFieldControls.d.ts +2 -2
  1196. package/dist/profiles/fields/profileFieldEditor.d.ts +1 -1
  1197. package/dist/profiles/fields/profileFieldFilterEditor.d.ts +1 -1
  1198. package/dist/profiles/fields/profileFieldIcons.d.ts +1 -1
  1199. package/dist/profiles/fields/profileFieldList.d.ts +1 -1
  1200. package/dist/profiles/fields/profileFieldManager.d.ts +1 -1
  1201. package/dist/profiles/fields/profileFieldState.d.ts +1 -1
  1202. package/dist/profiles/fields/profileParamModel.d.ts +1 -1
  1203. package/dist/profiles/processor/index.d.ts +5 -5
  1204. package/dist/profiles/processor/processorPipeline.d.ts +2 -2
  1205. package/dist/profiles/processor/processorPipelineEditor.d.ts +2 -2
  1206. package/dist/profiles/processor/processorPipelineExtension.d.ts +1 -1
  1207. package/dist/profiles/processor/processorPreviewTable.d.ts +1 -1
  1208. package/dist/profiles/processor/processorSampleParams.d.ts +1 -1
  1209. package/dist/profiles/profileApi.d.ts +2 -2
  1210. package/dist/profiles/query/index.d.ts +8 -8
  1211. package/dist/profiles/query/jsonPathSample.d.ts +1 -1
  1212. package/dist/profiles/query/kubernetesWorkloadTargetPicker.d.ts +1 -1
  1213. package/dist/profiles/query/profileSampleFilterLookup.d.ts +3 -3
  1214. package/dist/profiles/query/profileSamplePayload.d.ts +3 -3
  1215. package/dist/profiles/query/profileSampleResult.d.ts +3 -3
  1216. package/dist/profiles/query/prometheusResults.d.ts +1 -1
  1217. package/dist/profiles/query/queryRowLimits.d.ts +1 -1
  1218. package/dist/profiles/query/queryRowLimitsModel.d.ts +1 -1
  1219. package/dist/profiles/query/queryTargetPicker.d.ts +1 -1
  1220. package/dist/profiles/wizard/index.d.ts +5 -5
  1221. package/dist/profiles/wizard/profileWizard.d.ts +2 -2
  1222. package/dist/profiles/wizard/profileWizardModel.d.ts +1 -1
  1223. package/dist/profiles/wizard/profileWizardQueryStep.d.ts +1 -1
  1224. package/dist/profiles/wizard/profileWizardSteps.d.ts +1 -1
  1225. package/dist/profiles.d.ts +9 -9
  1226. package/dist/rpc/ChatLayer.d.ts +3 -3
  1227. package/dist/rpc/CommandForm.d.ts +2 -2
  1228. package/dist/rpc/CommandOutput.d.ts +7 -7
  1229. package/dist/rpc/EndpointList.d.ts +1 -1
  1230. package/dist/rpc/EntityExplorerApp.d.ts +5 -5
  1231. package/dist/rpc/ExecutionResult.d.ts +1 -1
  1232. package/dist/rpc/FilterForm.d.ts +3 -3
  1233. package/dist/rpc/FilterFormFields.d.ts +1 -1
  1234. package/dist/rpc/OperationActionBar.d.ts +6 -6
  1235. package/dist/rpc/OperationActionDialog.d.ts +2 -2
  1236. package/dist/rpc/OperationCatalog.d.ts +10 -10
  1237. package/dist/rpc/OperationCatalogActions.d.ts +3 -3
  1238. package/dist/rpc/OperationCatalogFollowStatus.d.ts +1 -1
  1239. package/dist/rpc/OperationCommandPage.d.ts +5 -5
  1240. package/dist/rpc/OperationEntityContextPicker.d.ts +4 -4
  1241. package/dist/rpc/OperationEntityContextPicker.model.d.ts +3 -3
  1242. package/dist/rpc/OperationEntityPage.d.ts +6 -6
  1243. package/dist/rpc/OperationPicker.d.ts +1 -1
  1244. package/dist/rpc/OperationResultView.d.ts +7 -7
  1245. package/dist/rpc/OperationScheduleDialog.d.ts +2 -2
  1246. package/dist/rpc/OperationSchedules.d.ts +1 -1
  1247. package/dist/rpc/RouterProvider.d.ts +1 -1
  1248. package/dist/rpc/SchemaActionForm.d.ts +3 -3
  1249. package/dist/rpc/SessionHeader.d.ts +5 -5
  1250. package/dist/rpc/SessionHeaderControls.d.ts +2 -2
  1251. package/dist/rpc/SessionsCatalog.d.ts +3 -3
  1252. package/dist/rpc/actionIconMap.d.ts +1 -1
  1253. package/dist/rpc/apiClient.d.ts +3 -3
  1254. package/dist/rpc/classify.d.ts +1 -1
  1255. package/dist/rpc/clickyMetadata.d.ts +1 -1
  1256. package/dist/rpc/command-form-utils.d.ts +1 -1
  1257. package/dist/rpc/commandHref.d.ts +1 -1
  1258. package/dist/rpc/cursorStale.d.ts +2 -2
  1259. package/dist/rpc/executionPages.d.ts +2 -2
  1260. package/dist/rpc/filterShapes.d.ts +1 -1
  1261. package/dist/rpc/formMetadata.d.ts +4 -4
  1262. package/dist/rpc/operation-cli-command.d.ts +2 -2
  1263. package/dist/rpc/operation-schedule-model.d.ts +3 -3
  1264. package/dist/rpc/operation-schedule-types.d.ts +1 -1
  1265. package/dist/rpc/operationCatalogFilterState.d.ts +2 -2
  1266. package/dist/rpc/operationCatalogFollow.d.ts +2 -2
  1267. package/dist/rpc/operationErrorDiagnostics.d.ts +1 -1
  1268. package/dist/rpc/operationFilterSearch.d.ts +3 -3
  1269. package/dist/rpc/operationLookupFetcher.d.ts +2 -2
  1270. package/dist/rpc/router.d.ts +1 -1
  1271. package/dist/rpc/rowNavigation.d.ts +2 -2
  1272. package/dist/rpc/rpc-story-fixtures/orders.fixture.d.ts +1 -1
  1273. package/dist/rpc/rpc-story-fixtures/services.fixture.d.ts +1 -1
  1274. package/dist/rpc/rpc-story-fixtures/surface-fixture.d.ts +2 -2
  1275. package/dist/rpc/rpc-story-fixtures/widgets.fixture.d.ts +1 -1
  1276. package/dist/rpc/rpc-story.fixtures.d.ts +3 -3
  1277. package/dist/rpc/session-story.fixtures.d.ts +1 -1
  1278. package/dist/rpc/sessionHeaderModel.d.ts +1 -1
  1279. package/dist/rpc/surfaceIconMap.d.ts +1 -1
  1280. package/dist/rpc/surfaceNav.d.ts +2 -2
  1281. package/dist/rpc/types.d.ts +3 -3
  1282. package/dist/rpc/useOperationCatalogFollow.d.ts +2 -2
  1283. package/dist/rpc/useOperationPages.d.ts +4 -4
  1284. package/dist/rpc/useOperations.d.ts +2 -2
  1285. package/dist/rpc/useSession.d.ts +2 -2
  1286. package/dist/rpc.d.ts +37 -37
  1287. package/dist/runtime-profile.d.ts +1 -1
  1288. package/dist/utils.d.ts +13 -13
  1289. package/package.json +4 -3
@@ -1,19 +1,14 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
- import { useQueries } from "@tanstack/react-query";
3
2
  import { useState, useMemo } from "react";
4
3
  import { cn } from "../lib/utils.js";
5
4
  import { formatUnit } from "../lib/format.js";
6
5
  import { Modal } from "../overlay/Modal.js";
7
6
  import { Icon } from "./Icon.js";
8
7
  import { TimeseriesPanel } from "./TimeseriesPanel.js";
8
+ import { useTimeseriesQueries, latestValue, defaultTimeseriesFetcher } from "./timeseries-query.js";
9
9
  import { GaugeHoverCard } from "./GaugeHoverCard.js";
10
10
  import { seriesStats } from "./gauge-stats.js";
11
11
  import { UiFullscreen } from "../icons/components/UiFullscreen.js";
12
- const defaultFetcher = async (url) => {
13
- const res = await fetch(url);
14
- if (!res.ok) throw new Error(`metrics request failed: ${res.status}`);
15
- return res.json();
16
- };
17
12
  const GAUGE_RADIUS = 40;
18
13
  const GAUGE_ARC = Math.PI * GAUGE_RADIUS;
19
14
  const GAUGE_PATH = `M 10 50 A ${GAUGE_RADIUS} ${GAUGE_RADIUS} 0 0 1 90 50`;
@@ -54,12 +49,6 @@ function GaugeBar({ pct, toneBg, className }) {
54
49
  }
55
50
  ) });
56
51
  }
57
- function latestValue(resp) {
58
- var _a;
59
- const points = resp == null ? void 0 : resp.points;
60
- if (!points || points.length === 0) return void 0;
61
- return (_a = points[points.length - 1]) == null ? void 0 : _a.value;
62
- }
63
52
  function GaugeIcon({ icon }) {
64
53
  if (typeof icon === "string") {
65
54
  return /* @__PURE__ */ jsx(Icon, { name: icon, width: 14, height: 14, className: "text-muted-foreground" });
@@ -82,31 +71,18 @@ function TimeseriesGauge({
82
71
  shape = "radial",
83
72
  showLabel = true,
84
73
  hoverCard = true,
85
- fetcher = defaultFetcher,
74
+ fetcher = defaultTimeseriesFetcher,
86
75
  className
87
76
  }) {
88
77
  var _a, _b, _c, _d;
89
78
  const [expanded, setExpanded] = useState(false);
90
79
  const maxIsSeries = typeof max === "object";
91
80
  const maxSeries = maxIsSeries ? max : void 0;
92
- const ids = useMemo(() => {
93
- const list = [value.id];
94
- if (maxSeries) list.push(maxSeries.id);
95
- return list;
96
- }, [value.id, maxSeries]);
97
- const results = useQueries({
98
- queries: ids.map((id) => {
99
- const u = new URL(baseUrl + id, window.location.origin);
100
- if (range) u.searchParams.set("since", range);
101
- const requestUrl = u.pathname + u.search;
102
- return {
103
- queryKey: ["timeseries", requestUrl],
104
- queryFn: () => fetcher(requestUrl),
105
- refetchInterval: refreshMs > 0 ? refreshMs : false,
106
- staleTime: 0,
107
- retry: 0
108
- };
109
- })
81
+ const results = useTimeseriesQueries(maxSeries ? [value, maxSeries] : [value], {
82
+ baseUrl,
83
+ range,
84
+ refreshMs,
85
+ fetcher
110
86
  });
111
87
  const rawValue = latestValue((_a = results[0]) == null ? void 0 : _a.data);
112
88
  const hasValue = rawValue !== void 0;
@@ -127,10 +103,10 @@ function TimeseriesGauge({
127
103
  const canExpand = expandable && variant === "default";
128
104
  const readoutTone = bounded ? tone : "text-foreground";
129
105
  const chartSeries = useMemo(() => {
130
- const s = [{ id: value.id, label: "value", ...value.transform ? { transform: value.transform } : {} }];
131
- if (maxSeries) s.push({ id: maxSeries.id, label: "max", ...maxSeries.transform ? { transform: maxSeries.transform } : {} });
106
+ const s = [{ ...value, label: "value" }];
107
+ if (maxSeries) s.push({ ...maxSeries, label: "max" });
132
108
  return s;
133
- }, [value.id, value.transform, maxSeries]);
109
+ }, [value, maxSeries]);
134
110
  const stats = seriesStats((_d = (_c = results[0]) == null ? void 0 : _c.data) == null ? void 0 : _d.points, value.transform);
135
111
  const fmt = (n) => formatUnit(n, unit);
136
112
  const hoverRows = hasValue ? [
@@ -1 +1 @@
1
- {"version":3,"file":"TimeseriesGauge.js","sources":["../../src/data/TimeseriesGauge.tsx"],"sourcesContent":["import { useQueries } from \"@tanstack/react-query\";\nimport { useMemo, useState } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { formatUnit } from \"../lib/format\";\nimport { Modal } from \"../overlay/Modal\";\nimport { UiFullscreen } from \"../icons\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\nimport {\n TimeseriesPanel,\n type TimeseriesResponse,\n type TimeseriesSeries,\n} from \"./TimeseriesPanel\";\nimport { GaugeHoverCard, type GaugeHoverRow } from \"./GaugeHoverCard\";\nimport { seriesStats } from \"./gauge-stats\";\n\n/** A metric series whose latest value drives the gauge fill or its maximum. */\nexport interface GaugeSeries {\n /** Metric id appended to the gauge's baseUrl, e.g. \"k8s.statefulset.cycle.cpu.usage\". */\n id: string;\n /** Maps the latest value before display (e.g. unit scaling). Identity when omitted. */\n transform?: (value: number) => number;\n}\n\nexport type TimeseriesGaugeVariant = \"default\" | \"cell\";\n/** Gauge fill geometry: a half-circle arc (default) or a horizontal progress bar. */\nexport type TimeseriesGaugeShape = \"radial\" | \"linear\";\n\nexport interface TimeseriesGaugeProps {\n /** Common prefix; the value/max requests are `baseUrl + id`. */\n baseUrl?: string;\n /** The metric whose latest value fills the gauge. */\n value: GaugeSeries;\n /**\n * The gauge maximum. Either a metric series (its latest value, e.g. a `.limit`\n * metric) or a fixed number. When omitted, or when the resolved max is 0, the\n * gauge shows the raw value with no fill (an unbounded reading).\n */\n max?: GaugeSeries | number;\n title: string;\n /** Iconify name or static icon component shown beside the label. */\n icon?: string | StaticIconComponent;\n /** Grafana-style unit key for the readout (e.g. \"bytes\", \"percent\", \"short\", \"ms\"). */\n unit?: string;\n /** Look-back window for the expand chart, passed as ?since=; defaults to \"1h\". */\n range?: string;\n /** Poll interval in ms; defaults to 5000. Pass 0 to disable polling. */\n refreshMs?: number;\n /** Show an expand button that opens the value/max time-series chart in a modal. Default true. */\n expandable?: boolean;\n /**\n * Utilisation thresholds (percent of max) at which the arc turns amber then\n * red. Defaults to [75, 90].\n */\n thresholds?: [warning: number, danger: number];\n /**\n * What to print in the centre: the formatted value (default) or the\n * utilisation percentage of max (e.g. CPU usage out of its millicore limit).\n */\n centerDisplay?: \"value\" | \"percent\";\n /** Visual density/layout. `cell` is a compact inline form for table/grid cells. */\n variant?: TimeseriesGaugeVariant;\n /** Fill geometry: a radial half-gauge (default) or a horizontal progress bar. */\n shape?: TimeseriesGaugeShape;\n /** Show the title text. Icons and values remain visible when false. */\n showLabel?: boolean;\n /**\n * Wrap the gauge in a hover card summarising the metric (label + current / min /\n * max / avg / capacity over the window). Defaults to true.\n */\n hoverCard?: boolean;\n /** Override the default fetch (e.g. to route through an app's API client). */\n fetcher?: (url: string) => Promise<TimeseriesResponse>;\n className?: string;\n}\n\nconst defaultFetcher = async (url: string): Promise<TimeseriesResponse> => {\n const res = await fetch(url);\n if (!res.ok) throw new Error(`metrics request failed: ${res.status}`);\n return res.json();\n};\n\n// Half-gauge SVG geometry: a 100×50 viewBox semicircle (radius 40, centre 50,50)\n// swept 180°. The arc length is π·r; stroke-dashoffset reveals value/max of it.\nconst GAUGE_RADIUS = 40;\nconst GAUGE_ARC = Math.PI * GAUGE_RADIUS;\nconst GAUGE_PATH = `M 10 50 A ${GAUGE_RADIUS} ${GAUGE_RADIUS} 0 0 1 90 50`;\n\nfunction toneClass(pct: number, [warn, danger]: [number, number]): string {\n if (pct >= danger) return \"text-red-500\";\n if (pct >= warn) return \"text-amber-500\";\n return \"text-emerald-500\";\n}\n\n// toneBgClass mirrors toneClass for the linear bar's fill, which needs a\n// background colour rather than the arc's stroke (currentColor) tone.\nfunction toneBgClass(pct: number, [warn, danger]: [number, number]): string {\n if (pct >= danger) return \"bg-red-500\";\n if (pct >= warn) return \"bg-amber-500\";\n return \"bg-emerald-500\";\n}\n\n// GaugeArc is the half-circle SVG shared by the cell and default radial gauges;\n// only the stroke width differs between the two densities.\nfunction GaugeArc({ pct, tone, strokeWidth }: { pct: number; tone: string; strokeWidth: number }) {\n return (\n <svg viewBox=\"0 0 100 50\" className=\"h-full w-full overflow-visible\">\n <path d={GAUGE_PATH} fill=\"none\" stroke=\"currentColor\" strokeWidth={strokeWidth} strokeLinecap=\"round\" className=\"text-muted\" />\n <path\n d={GAUGE_PATH}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n className={tone}\n strokeDasharray={GAUGE_ARC}\n strokeDashoffset={GAUGE_ARC * (1 - pct / 100)}\n />\n </svg>\n );\n}\n\n// GaugeBar is the horizontal progress track shared by the cell and default linear\n// gauges; the caller sizes it via className (e.g. \"h-1.5 w-12\" or \"h-2 w-full\").\nfunction GaugeBar({ pct, toneBg, className }: { pct: number; toneBg: string; className?: string }) {\n return (\n <span className={cn(\"relative block overflow-hidden rounded-full bg-muted\", className)} aria-hidden=\"true\">\n <span\n className={cn(\"absolute inset-y-0 left-0 rounded-full transition-all duration-300\", toneBg)}\n style={{ width: `${pct}%` }}\n />\n </span>\n );\n}\n\nfunction latestValue(resp: TimeseriesResponse | undefined): number | undefined {\n const points = resp?.points;\n if (!points || points.length === 0) return undefined;\n return points[points.length - 1]?.value;\n}\n\nfunction GaugeIcon({ icon }: { icon: string | StaticIconComponent }) {\n if (typeof icon === \"string\") {\n return <Icon name={icon} width={14} height={14} className=\"text-muted-foreground\" />;\n }\n return <Icon icon={icon} width={14} height={14} className=\"text-muted-foreground\" />;\n}\n\n/**\n * TimeseriesGauge renders a half (180°) radial gauge whose fill is the latest\n * value of a metric over its maximum (a `.limit`-style metric or a fixed number),\n * both read live from the timeseries store. The centre shows the utilisation\n * percentage, with the value/max caption below; the arc colour crosses warning\n * and danger thresholds. An expand button opens the full value/max time-series\n * chart in a modal (a `TimeseriesPanel`), so the gauge gives the at-a-glance\n * reading and the chart the trend.\n */\nexport function TimeseriesGauge({\n baseUrl = \"\",\n value,\n max,\n title,\n icon,\n unit,\n range = \"1h\",\n refreshMs = 5000,\n expandable = true,\n thresholds = [75, 90],\n centerDisplay = \"value\",\n variant = \"default\",\n shape = \"radial\",\n showLabel = true,\n hoverCard = true,\n fetcher = defaultFetcher,\n className,\n}: TimeseriesGaugeProps) {\n const [expanded, setExpanded] = useState(false);\n\n const maxIsSeries = typeof max === \"object\";\n const maxSeries = maxIsSeries ? max : undefined;\n const ids = useMemo(() => {\n const list = [value.id];\n if (maxSeries) list.push(maxSeries.id);\n return list;\n }, [value.id, maxSeries]);\n\n const results = useQueries({\n queries: ids.map((id) => {\n const u = new URL(baseUrl + id, window.location.origin);\n if (range) u.searchParams.set(\"since\", range);\n const requestUrl = u.pathname + u.search;\n return {\n queryKey: [\"timeseries\", requestUrl],\n queryFn: () => fetcher(requestUrl),\n refetchInterval: refreshMs > 0 ? refreshMs : false,\n staleTime: 0,\n retry: 0,\n };\n }),\n });\n\n const rawValue = latestValue(results[0]?.data);\n const hasValue = rawValue !== undefined;\n const usage = value.transform ? value.transform(rawValue ?? 0) : (rawValue ?? 0);\n\n let limit: number | undefined;\n if (typeof max === \"number\") {\n limit = max;\n } else if (maxSeries) {\n const rawMax = latestValue(results[1]?.data);\n limit = rawMax === undefined ? undefined : maxSeries.transform ? maxSeries.transform(rawMax) : rawMax;\n }\n\n const bounded = hasValue && limit !== undefined && limit > 0;\n const pct = bounded ? Math.min(100, Math.round((usage / (limit as number)) * 100)) : 0;\n const tone = toneClass(pct, thresholds);\n const toneBg = toneBgClass(pct, thresholds);\n const readout =\n centerDisplay === \"percent\"\n ? bounded\n ? `${pct}%`\n : hasValue\n ? \"n/a\"\n : \"—\"\n : hasValue\n ? formatUnit(usage, unit)\n : \"—\";\n const titleText = `${title}: ${readout}`;\n const canExpand = expandable && variant === \"default\";\n const readoutTone = bounded ? tone : \"text-foreground\";\n\n const chartSeries: TimeseriesSeries[] = useMemo(() => {\n const s: TimeseriesSeries[] = [{ id: value.id, label: \"value\", ...(value.transform ? { transform: value.transform } : {}) }];\n if (maxSeries) s.push({ id: maxSeries.id, label: \"max\", ...(maxSeries.transform ? { transform: maxSeries.transform } : {}) });\n return s;\n }, [value.id, value.transform, maxSeries]);\n\n // Hover card: reduce the value's points to current/min/max/avg (transformed to\n // the display unit), plus the resolved capacity. The current row is tinted by\n // its threshold tone when the reading is bounded.\n const stats = seriesStats(results[0]?.data?.points, value.transform);\n const fmt = (n: number) => formatUnit(n, unit);\n const hoverRows: GaugeHoverRow[] = hasValue\n ? [\n { label: \"Current\", value: fmt(usage), ...(bounded ? { tone } : {}) },\n ...(stats\n ? [\n { label: \"Min\", value: fmt(stats.min) },\n { label: \"Max\", value: fmt(stats.max) },\n { label: \"Avg\", value: fmt(stats.avg) },\n ]\n : []),\n ...(limit !== undefined\n ? [{ label: \"Capacity\", value: fmt(limit) }]\n : []),\n ]\n : [];\n const useHover = hoverCard && hoverRows.length > 0;\n const footer = `over last ${range}`;\n\n if (variant === \"cell\") {\n const cell = (\n <span\n className={cn(\n \"inline-flex min-w-0 items-center gap-1.5 whitespace-nowrap align-middle text-xs\",\n className,\n )}\n {...(useHover ? {} : { title: titleText })}\n aria-label={useHover || !showLabel ? titleText : undefined}\n data-shape={shape}\n >\n {icon ? <GaugeIcon icon={icon} /> : null}\n {showLabel ? <span className=\"min-w-0 truncate text-muted-foreground\">{title}</span> : null}\n {shape === \"linear\" ? (\n <GaugeBar pct={pct} toneBg={toneBg} className=\"h-1.5 w-12 shrink-0\" />\n ) : (\n <span className=\"relative h-4 w-8 shrink-0\" aria-hidden=\"true\">\n <GaugeArc pct={pct} tone={tone} strokeWidth={10} />\n </span>\n )}\n <span className={cn(\"shrink-0 font-semibold tabular-nums\", readoutTone)}>\n {readout}\n </span>\n </span>\n );\n return useHover ? (\n <GaugeHoverCard title={title} rows={hoverRows} footer={footer} trigger={cell} />\n ) : (\n cell\n );\n }\n\n const body = (\n <div\n className={cn(\"flex flex-col items-center gap-1\", className)}\n {...(useHover ? {} : { title: !showLabel ? titleText : undefined })}\n aria-label={useHover || !showLabel ? titleText : undefined}\n data-shape={shape}\n >\n {shape === \"linear\" ? (\n <div className=\"flex w-full items-center gap-2\">\n <GaugeBar pct={pct} toneBg={toneBg} className=\"h-2 w-full\" />\n <span className=\"shrink-0 text-sm font-semibold text-foreground\">{readout}</span>\n {canExpand && (\n <button\n type=\"button\"\n aria-label=\"Expand chart\"\n onClick={() => setExpanded(true)}\n className=\"shrink-0 text-muted-foreground hover:text-foreground\"\n >\n <Icon icon={UiFullscreen} width={12} height={12} />\n </button>\n )}\n </div>\n ) : (\n <div className=\"relative h-10 w-20\">\n <GaugeArc pct={pct} tone={tone} strokeWidth={9} />\n <span className=\"absolute inset-x-0 bottom-0 text-center text-sm font-semibold text-foreground\">\n {readout}\n </span>\n {canExpand && (\n <button\n type=\"button\"\n aria-label=\"Expand chart\"\n onClick={() => setExpanded(true)}\n className=\"absolute right-0 top-0 text-muted-foreground hover:text-foreground\"\n >\n <Icon icon={UiFullscreen} width={12} height={12} />\n </button>\n )}\n </div>\n )}\n {icon || showLabel ? (\n <div className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n {icon ? <GaugeIcon icon={icon} /> : null}\n {showLabel ? <span>{title}</span> : null}\n </div>\n ) : null}\n </div>\n );\n\n return (\n <>\n {useHover ? (\n <GaugeHoverCard\n title={title}\n rows={hoverRows}\n footer={footer}\n trigger={body}\n className=\"w-full justify-center\"\n />\n ) : (\n body\n )}\n {canExpand && (\n <Modal open={expanded} onClose={() => setExpanded(false)} title={title} size=\"xl\">\n <TimeseriesPanel\n title={title}\n {...(icon ? { icon } : {})}\n {...(unit ? { unit } : {})}\n baseUrl={baseUrl}\n series={chartSeries}\n range={range}\n refreshMs={refreshMs}\n expandable={false}\n fetcher={fetcher}\n />\n </Modal>\n )}\n </>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TimeseriesGauge.js","sources":["../../src/data/TimeseriesGauge.tsx"],"sourcesContent":["import { useMemo, useState } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { formatUnit } from \"../lib/format\";\nimport { Modal } from \"../overlay/Modal\";\nimport { UiFullscreen } from \"../icons\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\nimport {\n TimeseriesPanel,\n type SeriesLoader,\n type TimeseriesResponse,\n type TimeseriesSeries,\n} from \"./TimeseriesPanel\";\nimport { defaultTimeseriesFetcher, latestValue, useTimeseriesQueries } from \"./timeseries-query\";\nimport { GaugeHoverCard, type GaugeHoverRow } from \"./GaugeHoverCard\";\nimport { seriesStats } from \"./gauge-stats\";\n\n/**\n * A metric series whose latest value drives the gauge fill or its maximum. It\n * is requested as `baseUrl + id` through the widget's `fetcher`, or, when\n * `load` is set, loaded by calling `load` directly.\n */\nexport interface GaugeSeries {\n /**\n * Metric id appended to the gauge's baseUrl, e.g. \"k8s.statefulset.cycle.cpu.usage\".\n * With `load`, the id is the cache identity: loaded series are cached under\n * `[\"timeseries\", \"load\", id, range]`, so keep it unique per data source.\n */\n id: string;\n /** Maps the latest value before display (e.g. unit scaling). Identity when omitted. */\n transform?: (value: number) => number;\n /** Loads the series' points; when set, `baseUrl` and `fetcher` are not used. */\n load?: SeriesLoader;\n}\n\nexport type TimeseriesGaugeVariant = \"default\" | \"cell\";\n/** Gauge fill geometry: a half-circle arc (default) or a horizontal progress bar. */\nexport type TimeseriesGaugeShape = \"radial\" | \"linear\";\n\nexport interface TimeseriesGaugeProps {\n /** Common prefix; the value/max requests are `baseUrl + id` (unless a series has `load`). */\n baseUrl?: string;\n /** The metric whose latest value fills the gauge. */\n value: GaugeSeries;\n /**\n * The gauge maximum. Either a metric series (its latest value, e.g. a `.limit`\n * metric) or a fixed number. When omitted, or when the resolved max is 0, the\n * gauge shows the raw value with no fill (an unbounded reading).\n */\n max?: GaugeSeries | number;\n title: string;\n /** Iconify name or static icon component shown beside the label. */\n icon?: string | StaticIconComponent;\n /** Grafana-style unit key for the readout (e.g. \"bytes\", \"percent\", \"short\", \"ms\"). */\n unit?: string;\n /** Look-back window for the expand chart, passed as ?since=; defaults to \"1h\". */\n range?: string;\n /** Poll interval in ms; defaults to 5000. Pass 0 to disable polling. */\n refreshMs?: number;\n /** Show an expand button that opens the value/max time-series chart in a modal. Default true. */\n expandable?: boolean;\n /**\n * Utilisation thresholds (percent of max) at which the arc turns amber then\n * red. Defaults to [75, 90].\n */\n thresholds?: [warning: number, danger: number];\n /**\n * What to print in the centre: the formatted value (default) or the\n * utilisation percentage of max (e.g. CPU usage out of its millicore limit).\n */\n centerDisplay?: \"value\" | \"percent\";\n /** Visual density/layout. `cell` is a compact inline form for table/grid cells. */\n variant?: TimeseriesGaugeVariant;\n /** Fill geometry: a radial half-gauge (default) or a horizontal progress bar. */\n shape?: TimeseriesGaugeShape;\n /** Show the title text. Icons and values remain visible when false. */\n showLabel?: boolean;\n /**\n * Wrap the gauge in a hover card summarising the metric (label + current / min /\n * max / avg / capacity over the window). Defaults to true.\n */\n hoverCard?: boolean;\n /** Override the default fetch (e.g. to route through an app's API client). */\n fetcher?: (url: string) => Promise<TimeseriesResponse>;\n className?: string;\n}\n\n// Half-gauge SVG geometry: a 100×50 viewBox semicircle (radius 40, centre 50,50)\n// swept 180°. The arc length is π·r; stroke-dashoffset reveals value/max of it.\nconst GAUGE_RADIUS = 40;\nconst GAUGE_ARC = Math.PI * GAUGE_RADIUS;\nconst GAUGE_PATH = `M 10 50 A ${GAUGE_RADIUS} ${GAUGE_RADIUS} 0 0 1 90 50`;\n\nfunction toneClass(pct: number, [warn, danger]: [number, number]): string {\n if (pct >= danger) return \"text-red-500\";\n if (pct >= warn) return \"text-amber-500\";\n return \"text-emerald-500\";\n}\n\n// toneBgClass mirrors toneClass for the linear bar's fill, which needs a\n// background colour rather than the arc's stroke (currentColor) tone.\nfunction toneBgClass(pct: number, [warn, danger]: [number, number]): string {\n if (pct >= danger) return \"bg-red-500\";\n if (pct >= warn) return \"bg-amber-500\";\n return \"bg-emerald-500\";\n}\n\n// GaugeArc is the half-circle SVG shared by the cell and default radial gauges;\n// only the stroke width differs between the two densities.\nfunction GaugeArc({ pct, tone, strokeWidth }: { pct: number; tone: string; strokeWidth: number }) {\n return (\n <svg viewBox=\"0 0 100 50\" className=\"h-full w-full overflow-visible\">\n <path d={GAUGE_PATH} fill=\"none\" stroke=\"currentColor\" strokeWidth={strokeWidth} strokeLinecap=\"round\" className=\"text-muted\" />\n <path\n d={GAUGE_PATH}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n className={tone}\n strokeDasharray={GAUGE_ARC}\n strokeDashoffset={GAUGE_ARC * (1 - pct / 100)}\n />\n </svg>\n );\n}\n\n// GaugeBar is the horizontal progress track shared by the cell and default linear\n// gauges; the caller sizes it via className (e.g. \"h-1.5 w-12\" or \"h-2 w-full\").\nfunction GaugeBar({ pct, toneBg, className }: { pct: number; toneBg: string; className?: string }) {\n return (\n <span className={cn(\"relative block overflow-hidden rounded-full bg-muted\", className)} aria-hidden=\"true\">\n <span\n className={cn(\"absolute inset-y-0 left-0 rounded-full transition-all duration-300\", toneBg)}\n style={{ width: `${pct}%` }}\n />\n </span>\n );\n}\n\nfunction GaugeIcon({ icon }: { icon: string | StaticIconComponent }) {\n if (typeof icon === \"string\") {\n return <Icon name={icon} width={14} height={14} className=\"text-muted-foreground\" />;\n }\n return <Icon icon={icon} width={14} height={14} className=\"text-muted-foreground\" />;\n}\n\n/**\n * TimeseriesGauge renders a half (180°) radial gauge whose fill is the latest\n * value of a metric over its maximum (a `.limit`-style metric or a fixed number),\n * both read live from the timeseries store. The centre shows the utilisation\n * percentage, with the value/max caption below; the arc colour crosses warning\n * and danger thresholds. An expand button opens the full value/max time-series\n * chart in a modal (a `TimeseriesPanel`), so the gauge gives the at-a-glance\n * reading and the chart the trend.\n */\nexport function TimeseriesGauge({\n baseUrl = \"\",\n value,\n max,\n title,\n icon,\n unit,\n range = \"1h\",\n refreshMs = 5000,\n expandable = true,\n thresholds = [75, 90],\n centerDisplay = \"value\",\n variant = \"default\",\n shape = \"radial\",\n showLabel = true,\n hoverCard = true,\n fetcher = defaultTimeseriesFetcher,\n className,\n}: TimeseriesGaugeProps) {\n const [expanded, setExpanded] = useState(false);\n\n const maxIsSeries = typeof max === \"object\";\n const maxSeries = maxIsSeries ? max : undefined;\n const results = useTimeseriesQueries(maxSeries ? [value, maxSeries] : [value], {\n baseUrl,\n range,\n refreshMs,\n fetcher,\n });\n\n const rawValue = latestValue(results[0]?.data);\n const hasValue = rawValue !== undefined;\n const usage = value.transform ? value.transform(rawValue ?? 0) : (rawValue ?? 0);\n\n let limit: number | undefined;\n if (typeof max === \"number\") {\n limit = max;\n } else if (maxSeries) {\n const rawMax = latestValue(results[1]?.data);\n limit = rawMax === undefined ? undefined : maxSeries.transform ? maxSeries.transform(rawMax) : rawMax;\n }\n\n const bounded = hasValue && limit !== undefined && limit > 0;\n const pct = bounded ? Math.min(100, Math.round((usage / (limit as number)) * 100)) : 0;\n const tone = toneClass(pct, thresholds);\n const toneBg = toneBgClass(pct, thresholds);\n const readout =\n centerDisplay === \"percent\"\n ? bounded\n ? `${pct}%`\n : hasValue\n ? \"n/a\"\n : \"—\"\n : hasValue\n ? formatUnit(usage, unit)\n : \"—\";\n const titleText = `${title}: ${readout}`;\n const canExpand = expandable && variant === \"default\";\n const readoutTone = bounded ? tone : \"text-foreground\";\n\n const chartSeries: TimeseriesSeries[] = useMemo(() => {\n const s: TimeseriesSeries[] = [{ ...value, label: \"value\" }];\n if (maxSeries) s.push({ ...maxSeries, label: \"max\" });\n return s;\n }, [value, maxSeries]);\n\n // Hover card: reduce the value's points to current/min/max/avg (transformed to\n // the display unit), plus the resolved capacity. The current row is tinted by\n // its threshold tone when the reading is bounded.\n const stats = seriesStats(results[0]?.data?.points, value.transform);\n const fmt = (n: number) => formatUnit(n, unit);\n const hoverRows: GaugeHoverRow[] = hasValue\n ? [\n { label: \"Current\", value: fmt(usage), ...(bounded ? { tone } : {}) },\n ...(stats\n ? [\n { label: \"Min\", value: fmt(stats.min) },\n { label: \"Max\", value: fmt(stats.max) },\n { label: \"Avg\", value: fmt(stats.avg) },\n ]\n : []),\n ...(limit !== undefined\n ? [{ label: \"Capacity\", value: fmt(limit) }]\n : []),\n ]\n : [];\n const useHover = hoverCard && hoverRows.length > 0;\n const footer = `over last ${range}`;\n\n if (variant === \"cell\") {\n const cell = (\n <span\n className={cn(\n \"inline-flex min-w-0 items-center gap-1.5 whitespace-nowrap align-middle text-xs\",\n className,\n )}\n {...(useHover ? {} : { title: titleText })}\n aria-label={useHover || !showLabel ? titleText : undefined}\n data-shape={shape}\n >\n {icon ? <GaugeIcon icon={icon} /> : null}\n {showLabel ? <span className=\"min-w-0 truncate text-muted-foreground\">{title}</span> : null}\n {shape === \"linear\" ? (\n <GaugeBar pct={pct} toneBg={toneBg} className=\"h-1.5 w-12 shrink-0\" />\n ) : (\n <span className=\"relative h-4 w-8 shrink-0\" aria-hidden=\"true\">\n <GaugeArc pct={pct} tone={tone} strokeWidth={10} />\n </span>\n )}\n <span className={cn(\"shrink-0 font-semibold tabular-nums\", readoutTone)}>\n {readout}\n </span>\n </span>\n );\n return useHover ? (\n <GaugeHoverCard title={title} rows={hoverRows} footer={footer} trigger={cell} />\n ) : (\n cell\n );\n }\n\n const body = (\n <div\n className={cn(\"flex flex-col items-center gap-1\", className)}\n {...(useHover ? {} : { title: !showLabel ? titleText : undefined })}\n aria-label={useHover || !showLabel ? titleText : undefined}\n data-shape={shape}\n >\n {shape === \"linear\" ? (\n <div className=\"flex w-full items-center gap-2\">\n <GaugeBar pct={pct} toneBg={toneBg} className=\"h-2 w-full\" />\n <span className=\"shrink-0 text-sm font-semibold text-foreground\">{readout}</span>\n {canExpand && (\n <button\n type=\"button\"\n aria-label=\"Expand chart\"\n onClick={() => setExpanded(true)}\n className=\"shrink-0 text-muted-foreground hover:text-foreground\"\n >\n <Icon icon={UiFullscreen} width={12} height={12} />\n </button>\n )}\n </div>\n ) : (\n <div className=\"relative h-10 w-20\">\n <GaugeArc pct={pct} tone={tone} strokeWidth={9} />\n <span className=\"absolute inset-x-0 bottom-0 text-center text-sm font-semibold text-foreground\">\n {readout}\n </span>\n {canExpand && (\n <button\n type=\"button\"\n aria-label=\"Expand chart\"\n onClick={() => setExpanded(true)}\n className=\"absolute right-0 top-0 text-muted-foreground hover:text-foreground\"\n >\n <Icon icon={UiFullscreen} width={12} height={12} />\n </button>\n )}\n </div>\n )}\n {icon || showLabel ? (\n <div className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n {icon ? <GaugeIcon icon={icon} /> : null}\n {showLabel ? <span>{title}</span> : null}\n </div>\n ) : null}\n </div>\n );\n\n return (\n <>\n {useHover ? (\n <GaugeHoverCard\n title={title}\n rows={hoverRows}\n footer={footer}\n trigger={body}\n className=\"w-full justify-center\"\n />\n ) : (\n body\n )}\n {canExpand && (\n <Modal open={expanded} onClose={() => setExpanded(false)} title={title} size=\"xl\">\n <TimeseriesPanel\n title={title}\n {...(icon ? { icon } : {})}\n {...(unit ? { unit } : {})}\n baseUrl={baseUrl}\n series={chartSeries}\n range={range}\n refreshMs={refreshMs}\n expandable={false}\n fetcher={fetcher}\n />\n </Modal>\n )}\n </>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { MergedRow, ResolvedSeries } from './TimeseriesPanel.model';
1
+ import { MergedRow, ResolvedSeries } from './TimeseriesPanel.model.js';
2
2
  export type AxisOrientation = "left" | "right";
3
3
  /** A rendered Y-axis: its recharts id (== orientation) and the unit it formats with. */
4
4
  export interface AxisSpec {
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const reactQuery = require("@tanstack/react-query");
5
4
  const react = require("react");
6
5
  const recharts = require("recharts");
7
6
  const utils = require("../lib/utils.cjs");
@@ -12,12 +11,8 @@ const ProgressBar = require("./ProgressBar.cjs");
12
11
  const Icon = require("./Icon.cjs");
13
12
  const TimeseriesPanel_axes = require("./TimeseriesPanel.axes.cjs");
14
13
  const TimeseriesPanel_model = require("./TimeseriesPanel.model.cjs");
14
+ const timeseriesQuery = require("./timeseries-query.cjs");
15
15
  const UiFullscreen = require("../icons/components/UiFullscreen.cjs");
16
- const defaultFetcher = async (url) => {
17
- const res = await fetch(url);
18
- if (!res.ok) throw new Error(`metrics request failed: ${res.status}`);
19
- return res.json();
20
- };
21
16
  function formatClock(at) {
22
17
  const date = new Date(at);
23
18
  if (Number.isNaN(date.getTime())) return "";
@@ -35,7 +30,8 @@ function TimeseriesPanel(props) {
35
30
  variant = "area",
36
31
  expandable = true,
37
32
  total,
38
- fetcher = defaultFetcher,
33
+ referenceLines,
34
+ fetcher = timeseriesQuery.defaultTimeseriesFetcher,
39
35
  className
40
36
  } = props;
41
37
  const isBreakdown = variant === "breakdown";
@@ -43,23 +39,11 @@ function TimeseriesPanel(props) {
43
39
  const expandVariant = props.expandVariant ?? chartVariant;
44
40
  const [expanded, setExpanded] = react.useState(false);
45
41
  const series = react.useMemo(() => TimeseriesPanel_model.resolveSeries(props), [props]);
46
- const requestUrls = react.useMemo(
47
- () => series.map((s) => {
48
- const u = new URL(s.url, window.location.origin);
49
- if (range) u.searchParams.set("since", range);
50
- return u.pathname + u.search;
51
- }),
52
- [series, range]
42
+ const results = timeseriesQuery.useTimeseriesQueries(
43
+ series.map((s) => ({ id: s.key, load: s.load })),
44
+ { baseUrl: props.baseUrl ?? "", range, refreshMs, fetcher }
53
45
  );
54
- const results = reactQuery.useQueries({
55
- queries: requestUrls.map((requestUrl) => ({
56
- queryKey: ["timeseries", requestUrl],
57
- queryFn: () => fetcher(requestUrl),
58
- refetchInterval: refreshMs > 0 ? refreshMs : false,
59
- staleTime: 0,
60
- retry: 0
61
- }))
62
- });
46
+ const refs = referenceLines ?? [];
63
47
  const isError = results.some((r) => r.isError);
64
48
  const error = (_a = results.find((r) => r.isError)) == null ? void 0 : _a.error;
65
49
  const isLoading = results.some((r) => r.isLoading) && results.every((r) => !r.data);
@@ -94,11 +78,31 @@ function TimeseriesPanel(props) {
94
78
  ) : null
95
79
  ] })
96
80
  ] }),
97
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2", style: breakdown ? void 0 : { height }, children: breakdown ? /* @__PURE__ */ jsxRuntime.jsx(BreakdownView, { total: breakdown.total, unit, items: breakdown.items }) : isError ? /* @__PURE__ */ jsxRuntime.jsx(PanelMessage, { children: (error == null ? void 0 : error.message) ?? "Failed to load metric" }) : isLoading ? /* @__PURE__ */ jsxRuntime.jsx(PanelMessage, { children: "Loading…" }) : rows.length < 2 ? /* @__PURE__ */ jsxRuntime.jsx(PanelMessage, { children: "Collecting data…" }) : /* @__PURE__ */ jsxRuntime.jsx(Chart, { rows, series, variant: chartVariant, unit, showZeroLine: hasMirrored }) }),
98
- !breakdown && !isError && !isLoading && rows.length >= 2 && series.length > 1 ? /* @__PURE__ */ jsxRuntime.jsx(ChartLegend, { series, rows }) : null,
81
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2", style: breakdown ? void 0 : { height }, children: breakdown ? /* @__PURE__ */ jsxRuntime.jsx(BreakdownView, { total: breakdown.total, unit, items: breakdown.items }) : isError ? /* @__PURE__ */ jsxRuntime.jsx(PanelMessage, { children: (error == null ? void 0 : error.message) ?? "Failed to load metric" }) : isLoading ? /* @__PURE__ */ jsxRuntime.jsx(PanelMessage, { children: "Loading…" }) : rows.length < 2 ? /* @__PURE__ */ jsxRuntime.jsx(PanelMessage, { children: "Collecting data…" }) : /* @__PURE__ */ jsxRuntime.jsx(
82
+ Chart,
83
+ {
84
+ rows,
85
+ series,
86
+ variant: chartVariant,
87
+ unit,
88
+ showZeroLine: hasMirrored,
89
+ referenceLines: refs
90
+ }
91
+ ) }),
92
+ !breakdown && !isError && !isLoading && rows.length >= 2 && series.length + refs.length > 1 ? /* @__PURE__ */ jsxRuntime.jsx(ChartLegend, { series, rows, referenceLines: refs, unit }) : null,
99
93
  canExpand ? /* @__PURE__ */ jsxRuntime.jsxs(Modal.Modal, { open: expanded, onClose: () => setExpanded(false), title, size: "xl", children: [
100
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: { height: 360 }, children: /* @__PURE__ */ jsxRuntime.jsx(Chart, { rows, series, variant: expandVariant, unit, showZeroLine: hasMirrored }) }),
101
- series.length > 1 ? /* @__PURE__ */ jsxRuntime.jsx(ChartLegend, { series, rows }) : null
94
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { height: 360 }, children: /* @__PURE__ */ jsxRuntime.jsx(
95
+ Chart,
96
+ {
97
+ rows,
98
+ series,
99
+ variant: expandVariant,
100
+ unit,
101
+ showZeroLine: hasMirrored,
102
+ referenceLines: refs
103
+ }
104
+ ) }),
105
+ series.length + refs.length > 1 ? /* @__PURE__ */ jsxRuntime.jsx(ChartLegend, { series, rows, referenceLines: refs, unit }) : null
102
106
  ] }) : null
103
107
  ] });
104
108
  }
@@ -109,22 +113,45 @@ function LatestReadout({ series, rows }) {
109
113
  if (v === void 0) return null;
110
114
  return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tabular-nums", children: format.formatUnit(Math.abs(v), only.unit) });
111
115
  }
112
- function ChartLegend({ series, rows }) {
113
- return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "mt-1.5 flex flex-wrap gap-x-3 gap-y-1 text-xs text-muted-foreground", children: series.map((s) => {
114
- const v = TimeseriesPanel_axes.latestOf(rows, s.key);
115
- return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "inline-flex min-w-0 items-center gap-1.5", children: [
116
+ const REFERENCE_LINE_COLOR = "var(--muted-foreground, #64748b)";
117
+ function referenceColor(ref) {
118
+ return color.resolveCssColor(ref.color ?? REFERENCE_LINE_COLOR);
119
+ }
120
+ function ChartLegend({
121
+ series,
122
+ rows,
123
+ referenceLines,
124
+ unit
125
+ }) {
126
+ return /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "mt-1.5 flex flex-wrap gap-x-3 gap-y-1 text-xs text-muted-foreground", children: [
127
+ series.map((s) => {
128
+ const v = TimeseriesPanel_axes.latestOf(rows, s.key);
129
+ return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "inline-flex min-w-0 items-center gap-1.5", children: [
130
+ /* @__PURE__ */ jsxRuntime.jsx(
131
+ "span",
132
+ {
133
+ className: "h-2 w-2 shrink-0 rounded-full",
134
+ style: { backgroundColor: color.resolveCssColor(s.color) },
135
+ "aria-hidden": true
136
+ }
137
+ ),
138
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-foreground", children: s.label }),
139
+ v !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tabular-nums", children: format.formatUnit(Math.abs(v), s.unit) }) : null
140
+ ] }, s.key);
141
+ }),
142
+ referenceLines.map((ref, i) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "inline-flex min-w-0 items-center gap-1.5", children: [
116
143
  /* @__PURE__ */ jsxRuntime.jsx(
117
144
  "span",
118
145
  {
119
- className: "h-2 w-2 shrink-0 rounded-full",
120
- style: { backgroundColor: color.resolveCssColor(s.color) },
146
+ className: "h-0.5 w-2.5 shrink-0",
147
+ style: { backgroundColor: referenceColor(ref) },
121
148
  "aria-hidden": true
122
149
  }
123
150
  ),
124
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-foreground", children: s.label }),
125
- v !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tabular-nums", children: format.formatUnit(Math.abs(v), s.unit) }) : null
126
- ] }, s.key);
127
- }) });
151
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-foreground", children: ref.label }),
152
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tabular-nums", children: format.formatUnit(ref.value, ref.unit ?? unit) })
153
+ ] }, `ref-${i}`))
154
+ ] });
128
155
  }
129
156
  function BreakdownReadout({
130
157
  total,
@@ -177,13 +204,18 @@ function Chart({
177
204
  series,
178
205
  variant,
179
206
  unit,
180
- showZeroLine
207
+ showZeroLine,
208
+ referenceLines
181
209
  }) {
182
210
  const stacked = variant === "stacked";
183
211
  const seriesByKey = new Map(series.map((s) => [s.key, s]));
184
212
  const strokeOf = (s) => color.resolveCssColor(s.color);
185
213
  const { axes: yAxes, axisOfKey } = react.useMemo(() => TimeseriesPanel_axes.assignAxes(series), [series]);
186
214
  const axisOf = (key) => axisOfKey.get(key) ?? "left";
215
+ const axisOfUnit = (u) => {
216
+ var _a;
217
+ return ((_a = yAxes.find((ax) => ax.unit === u)) == null ? void 0 : _a.id) ?? "left";
218
+ };
187
219
  const axes = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
188
220
  /* @__PURE__ */ jsxRuntime.jsx(recharts.CartesianGrid, { strokeOpacity: 0.12, vertical: false }),
189
221
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -221,7 +253,18 @@ function Chart({
221
253
  contentStyle: { fontSize: 12 }
222
254
  }
223
255
  ),
224
- showZeroLine ? /* @__PURE__ */ jsxRuntime.jsx(recharts.ReferenceLine, { yAxisId: "left", y: 0, stroke: "currentColor", strokeOpacity: 0.35 }) : null
256
+ showZeroLine ? /* @__PURE__ */ jsxRuntime.jsx(recharts.ReferenceLine, { yAxisId: "left", y: 0, stroke: "currentColor", strokeOpacity: 0.35 }) : null,
257
+ referenceLines.map((ref, i) => /* @__PURE__ */ jsxRuntime.jsx(
258
+ recharts.ReferenceLine,
259
+ {
260
+ yAxisId: axisOfUnit(ref.unit ?? unit),
261
+ y: ref.value,
262
+ stroke: referenceColor(ref),
263
+ strokeDasharray: "4 4",
264
+ ifOverflow: "extendDomain"
265
+ },
266
+ `ref-${i}`
267
+ ))
225
268
  ] });
226
269
  return /* @__PURE__ */ jsxRuntime.jsx(recharts.ResponsiveContainer, { width: "100%", height: "100%", children: variant === "line" ? /* @__PURE__ */ jsxRuntime.jsxs(recharts.LineChart, { data: rows, margin: { top: 4, right: 8, bottom: 0, left: 0 }, children: [
227
270
  axes,
@@ -1 +1 @@
1
- {"version":3,"file":"TimeseriesPanel.cjs","sources":["../../src/data/TimeseriesPanel.tsx"],"sourcesContent":["import { useQueries } from \"@tanstack/react-query\";\nimport { useMemo, useState } from \"react\";\nimport {\n Area,\n AreaChart,\n CartesianGrid,\n Line,\n LineChart,\n ReferenceLine,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { cn } from \"../lib/utils\";\nimport { resolveCssColor } from \"../lib/color\";\nimport { formatUnit } from \"../lib/format\";\nimport { Modal } from \"../overlay/Modal\";\nimport { ProgressBar, type ProgressSegment } from \"./ProgressBar\";\nimport { UiFullscreen } from \"../icons\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\nimport { assignAxes, latestOf } from \"./TimeseriesPanel.axes\";\nimport {\n mergeSeries,\n resolveBreakdown,\n resolveSeries,\n type BreakdownItem,\n type MergedRow,\n type ResolvedSeries,\n type TimeseriesPanelProps,\n type TimeseriesResponse,\n} from \"./TimeseriesPanel.model\";\n\nexport type { AxisAssignment, AxisOrientation, AxisSpec } from \"./TimeseriesPanel.axes\";\nexport type {\n BreakdownItem,\n MergedRow,\n ResolvedSeries,\n TimeseriesPanelProps,\n TimeseriesPoint,\n TimeseriesResponse,\n TimeseriesSeries,\n} from \"./TimeseriesPanel.model\";\n\nconst defaultFetcher = async (url: string): Promise<TimeseriesResponse> => {\n const res = await fetch(url);\n if (!res.ok) throw new Error(`metrics request failed: ${res.status}`);\n return res.json();\n};\n\nfunction formatClock(at: string): string {\n const date = new Date(at);\n if (Number.isNaN(date.getTime())) return \"\";\n return date.toLocaleTimeString([], { hour: \"2-digit\", minute: \"2-digit\" });\n}\n\nexport function TimeseriesPanel(props: TimeseriesPanelProps) {\n const {\n title,\n icon,\n unit,\n range = \"1h\",\n refreshMs = 5000,\n height = 160,\n variant = \"area\",\n expandable = true,\n total,\n fetcher = defaultFetcher,\n className,\n } = props;\n const isBreakdown = variant === \"breakdown\";\n // The inline chart (non-breakdown only) and the expand modal both need a\n // time-series variant; breakdown has no inline chart and expands to \"area\".\n const chartVariant: ChartVariant = isBreakdown ? \"area\" : variant;\n const expandVariant = props.expandVariant ?? chartVariant;\n\n const [expanded, setExpanded] = useState(false);\n\n const series = useMemo(() => resolveSeries(props), [props]);\n const requestUrls = useMemo(\n () =>\n series.map((s) => {\n const u = new URL(s.url, window.location.origin);\n if (range) u.searchParams.set(\"since\", range);\n return u.pathname + u.search;\n }),\n [series, range],\n );\n\n const results = useQueries({\n queries: requestUrls.map((requestUrl) => ({\n queryKey: [\"timeseries\", requestUrl],\n queryFn: () => fetcher(requestUrl),\n refetchInterval: refreshMs > 0 ? refreshMs : false,\n staleTime: 0,\n retry: 0,\n })),\n });\n\n const isError = results.some((r) => r.isError);\n const error = results.find((r) => r.isError)?.error;\n const isLoading = results.some((r) => r.isLoading) && results.every((r) => !r.data);\n const pointsBySeries = results.map((r) => r.data?.points);\n const rows = useMemo(() => mergeSeries(series, pointsBySeries), [series, pointsBySeries]);\n const hasMirrored = series.some((s) => s.transform);\n const breakdown = useMemo(\n () => (isBreakdown ? resolveBreakdown(series, rows, total) : null),\n [isBreakdown, series, rows, total],\n );\n\n // Breakdown renders instantly from `current`; the modal still needs polled\n // history. Other variants gate on having ≥2 points to draw a line.\n const canExpand = expandable && rows.length >= 2;\n\n return (\n <div className={cn(\"flex flex-col rounded-lg border border-border bg-card p-3\", className)}>\n <div className=\"flex items-center justify-between gap-2 text-xs text-muted-foreground\">\n <span className=\"inline-flex min-w-0 items-center gap-1.5\">\n {icon ? <PanelIcon icon={icon} /> : null}\n <span className=\"truncate font-medium text-foreground\">{title}</span>\n </span>\n <span className=\"inline-flex shrink-0 items-center gap-1.5\">\n {breakdown ? (\n <BreakdownReadout total={breakdown.total} unit={unit} items={breakdown.items} />\n ) : (\n <LatestReadout series={series} rows={rows} />\n )}\n {canExpand ? (\n <button\n type=\"button\"\n aria-label=\"Expand chart\"\n onClick={() => setExpanded(true)}\n className=\"text-muted-foreground transition-colors hover:text-foreground\"\n >\n <Icon icon={UiFullscreen} width={14} height={14} />\n </button>\n ) : null}\n </span>\n </div>\n <div className=\"mt-2\" style={breakdown ? undefined : { height }}>\n {breakdown ? (\n <BreakdownView total={breakdown.total} unit={unit} items={breakdown.items} />\n ) : isError ? (\n <PanelMessage>{(error as Error)?.message ?? \"Failed to load metric\"}</PanelMessage>\n ) : isLoading ? (\n <PanelMessage>Loading…</PanelMessage>\n ) : rows.length < 2 ? (\n <PanelMessage>Collecting data…</PanelMessage>\n ) : (\n <Chart rows={rows} series={series} variant={chartVariant} unit={unit} showZeroLine={hasMirrored} />\n )}\n </div>\n {!breakdown && !isError && !isLoading && rows.length >= 2 && series.length > 1 ? (\n <ChartLegend series={series} rows={rows} />\n ) : null}\n {canExpand ? (\n <Modal open={expanded} onClose={() => setExpanded(false)} title={title} size=\"xl\">\n <div style={{ height: 360 }}>\n <Chart rows={rows} series={series} variant={expandVariant} unit={unit} showZeroLine={hasMirrored} />\n </div>\n {series.length > 1 ? <ChartLegend series={series} rows={rows} /> : null}\n </Modal>\n ) : null}\n </div>\n );\n}\n\n/**\n * Header readout for a single-series panel: the latest value, formatted with the\n * series' unit. Multi-series panels render the per-series values in {@link ChartLegend}\n * below the chart instead, so this returns null for them to avoid overlapping the title.\n */\nfunction LatestReadout({ series, rows }: { series: ResolvedSeries[]; rows: MergedRow[] }) {\n const only = series.length === 1 ? series[0] : undefined;\n if (!only) return null;\n const v = latestOf(rows, only.key);\n if (v === undefined) return null;\n return <span className=\"tabular-nums\">{formatUnit(Math.abs(v), only.unit)}</span>;\n}\n\n/** Wrapping color-keyed legend for the time-series variants: dot + label + latest value. */\nfunction ChartLegend({ series, rows }: { series: ResolvedSeries[]; rows: MergedRow[] }) {\n return (\n <ul className=\"mt-1.5 flex flex-wrap gap-x-3 gap-y-1 text-xs text-muted-foreground\">\n {series.map((s) => {\n const v = latestOf(rows, s.key);\n return (\n <li key={s.key} className=\"inline-flex min-w-0 items-center gap-1.5\">\n <span\n className=\"h-2 w-2 shrink-0 rounded-full\"\n style={{ backgroundColor: resolveCssColor(s.color) }}\n aria-hidden\n />\n <span className=\"truncate text-foreground\">{s.label}</span>\n {v !== undefined ? (\n <span className=\"tabular-nums\">{formatUnit(Math.abs(v), s.unit)}</span>\n ) : null}\n </li>\n );\n })}\n </ul>\n );\n}\n\n/** Breakdown header readout: `used / total · pct%`, where used is the sum of segments. */\nfunction BreakdownReadout({\n total,\n unit,\n items,\n}: {\n total: number;\n unit: string | undefined;\n items: BreakdownItem[];\n}) {\n const used = items.reduce((acc, it) => acc + it.value, 0);\n const pct = total > 0 ? Math.min(100, (used / total) * 100) : 0;\n return (\n <span className=\"font-mono tabular-nums\">\n {formatUnit(used, unit)} / {formatUnit(total, unit)} · {pct.toFixed(0)}%\n </span>\n );\n}\n\n/** Instantaneous stacked bar + legend list. The expand button (in the panel header) opens the graph. */\nfunction BreakdownView({\n total,\n unit,\n items,\n}: {\n total: number;\n unit: string | undefined;\n items: BreakdownItem[];\n}) {\n const segments: ProgressSegment[] = items.map((it) => ({\n count: it.value,\n color: it.color,\n label: it.label,\n }));\n return (\n <div className=\"flex flex-col gap-2\">\n <ProgressBar segments={segments} total={total > 0 ? total : 1} height=\"h-3\" />\n {items.length > 0 ? (\n <ul className=\"grid grid-cols-1 gap-y-1 text-xs\">\n {items.map((it) => (\n <li key={it.key} className=\"flex items-center gap-2\">\n <span\n className=\"h-2 w-2 shrink-0 rounded-full\"\n style={{ backgroundColor: resolveCssColor(it.color) }}\n aria-hidden\n />\n <span className=\"min-w-0 flex-1 truncate font-mono text-muted-foreground\">\n {it.label}\n </span>\n <span className=\"font-mono tabular-nums text-foreground\">\n {formatUnit(it.value, it.unit ?? unit)}\n </span>\n <span className=\"w-10 text-right font-mono tabular-nums text-muted-foreground\">\n {it.percent.toFixed(0)}%\n </span>\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n );\n}\n\ntype ChartVariant = \"area\" | \"line\" | \"stacked\";\n\nfunction Chart({\n rows,\n series,\n variant,\n unit,\n showZeroLine,\n}: {\n rows: MergedRow[];\n series: ResolvedSeries[];\n variant: ChartVariant;\n unit: string | undefined;\n showZeroLine: boolean;\n}) {\n const stacked = variant === \"stacked\";\n // Mirrored series carry negative values; show magnitudes on axis and tooltip.\n const seriesByKey = new Map(series.map((s) => [s.key, s]));\n // recharts needs a CSS color value; a series may carry a Tailwind class.\n const strokeOf = (s: ResolvedSeries) => resolveCssColor(s.color);\n // Distinct units map to a left and (when present) right axis; each series draws\n // against the axis for its unit so mixed-unit panels keep independent scales.\n const { axes: yAxes, axisOfKey } = useMemo(() => assignAxes(series), [series]);\n const axisOf = (key: string): \"left\" | \"right\" => axisOfKey.get(key) ?? \"left\";\n const axes = (\n <>\n <CartesianGrid strokeOpacity={0.12} vertical={false} />\n <XAxis\n dataKey=\"at\"\n tickFormatter={formatClock}\n tick={{ fontSize: 10 }}\n stroke=\"currentColor\"\n strokeOpacity={0.35}\n minTickGap={32}\n />\n {yAxes.map((ax) => (\n <YAxis\n key={ax.id}\n yAxisId={ax.id}\n orientation={ax.orientation}\n tick={{ fontSize: 10 }}\n stroke=\"currentColor\"\n strokeOpacity={0.35}\n width={40}\n tickFormatter={(v: number) => formatUnit(Math.abs(v), ax.unit)}\n />\n ))}\n <Tooltip\n labelFormatter={(label) => formatClock(String(label))}\n formatter={(value, name) => {\n const s = seriesByKey.get(String(name));\n return [formatUnit(Math.abs(Number(value) || 0), s?.unit ?? unit), s?.label ?? String(name)];\n }}\n contentStyle={{ fontSize: 12 }}\n />\n {showZeroLine ? (\n <ReferenceLine yAxisId=\"left\" y={0} stroke=\"currentColor\" strokeOpacity={0.35} />\n ) : null}\n </>\n );\n\n return (\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n {variant === \"line\" ? (\n <LineChart data={rows} margin={{ top: 4, right: 8, bottom: 0, left: 0 }}>\n {axes}\n {series.map((s) => (\n <Line\n key={s.key}\n yAxisId={axisOf(s.key)}\n type=\"monotone\"\n dataKey={s.key}\n name={s.key}\n stroke={strokeOf(s)}\n strokeWidth={2}\n dot={false}\n connectNulls\n isAnimationActive={false}\n />\n ))}\n </LineChart>\n ) : (\n <AreaChart data={rows} margin={{ top: 4, right: 8, bottom: 0, left: 0 }}>\n {axes}\n {series.map((s) => (\n <Area\n key={s.key}\n yAxisId={axisOf(s.key)}\n type=\"monotone\"\n dataKey={s.key}\n name={s.key}\n stroke={strokeOf(s)}\n fill={strokeOf(s)}\n {...(stacked ? { stackId: `stack-${axisOf(s.key)}` } : {})}\n fillOpacity={stacked ? 0.7 : 0.12}\n strokeWidth={stacked ? 0 : 2}\n connectNulls\n isAnimationActive={false}\n />\n ))}\n </AreaChart>\n )}\n </ResponsiveContainer>\n );\n}\n\nfunction PanelMessage({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"flex h-full items-center justify-center text-xs text-muted-foreground\">\n {children}\n </div>\n );\n}\n\nfunction PanelIcon({ icon }: { icon: string | StaticIconComponent }) {\n if (typeof icon === \"string\") {\n return <Icon name={icon} width={16} height={16} className=\"text-muted-foreground\" />;\n }\n return <Icon icon={icon} width={16} height={16} className=\"text-muted-foreground\" />;\n}\n"],"names":["useState","useMemo","resolveSeries","useQueries","_a","mergeSeries","resolveBreakdown","cn","jsxs","jsx","Icon","UiFullscreen","Modal","latestOf","formatUnit","resolveCssColor","ProgressBar","assignAxes","Fragment","CartesianGrid","XAxis","YAxis","Tooltip","ReferenceLine","ResponsiveContainer","LineChart","Line","AreaChart","Area"],"mappings":"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"}
1
+ {"version":3,"file":"TimeseriesPanel.cjs","sources":["../../src/data/TimeseriesPanel.tsx"],"sourcesContent":["import { useMemo, useState } from \"react\";\nimport {\n Area,\n AreaChart,\n CartesianGrid,\n Line,\n LineChart,\n ReferenceLine,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { cn } from \"../lib/utils\";\nimport { resolveCssColor } from \"../lib/color\";\nimport { formatUnit } from \"../lib/format\";\nimport { Modal } from \"../overlay/Modal\";\nimport { ProgressBar, type ProgressSegment } from \"./ProgressBar\";\nimport { UiFullscreen } from \"../icons\";\nimport { Icon, type StaticIconComponent } from \"./Icon\";\nimport { assignAxes, latestOf } from \"./TimeseriesPanel.axes\";\nimport {\n mergeSeries,\n resolveBreakdown,\n resolveSeries,\n type BreakdownItem,\n type MergedRow,\n type ResolvedSeries,\n type TimeseriesPanelProps,\n type TimeseriesReferenceLine,\n} from \"./TimeseriesPanel.model\";\nimport { defaultTimeseriesFetcher, useTimeseriesQueries } from \"./timeseries-query\";\n\nexport type { AxisAssignment, AxisOrientation, AxisSpec } from \"./TimeseriesPanel.axes\";\nexport type {\n BreakdownItem,\n MergedRow,\n ResolvedSeries,\n SeriesLoadContext,\n SeriesLoader,\n TimeseriesPanelProps,\n TimeseriesPoint,\n TimeseriesReferenceLine,\n TimeseriesResponse,\n TimeseriesSeries,\n} from \"./TimeseriesPanel.model\";\n\nfunction formatClock(at: string): string {\n const date = new Date(at);\n if (Number.isNaN(date.getTime())) return \"\";\n return date.toLocaleTimeString([], { hour: \"2-digit\", minute: \"2-digit\" });\n}\n\nexport function TimeseriesPanel(props: TimeseriesPanelProps) {\n const {\n title,\n icon,\n unit,\n range = \"1h\",\n refreshMs = 5000,\n height = 160,\n variant = \"area\",\n expandable = true,\n total,\n referenceLines,\n fetcher = defaultTimeseriesFetcher,\n className,\n } = props;\n const isBreakdown = variant === \"breakdown\";\n // The inline chart (non-breakdown only) and the expand modal both need a\n // time-series variant; breakdown has no inline chart and expands to \"area\".\n const chartVariant: ChartVariant = isBreakdown ? \"area\" : variant;\n const expandVariant = props.expandVariant ?? chartVariant;\n\n const [expanded, setExpanded] = useState(false);\n\n const series = useMemo(() => resolveSeries(props), [props]);\n const results = useTimeseriesQueries(\n series.map((s) => ({ id: s.key, load: s.load })),\n { baseUrl: props.baseUrl ?? \"\", range, refreshMs, fetcher },\n );\n const refs = referenceLines ?? [];\n\n const isError = results.some((r) => r.isError);\n const error = results.find((r) => r.isError)?.error;\n const isLoading = results.some((r) => r.isLoading) && results.every((r) => !r.data);\n const pointsBySeries = results.map((r) => r.data?.points);\n const rows = useMemo(() => mergeSeries(series, pointsBySeries), [series, pointsBySeries]);\n const hasMirrored = series.some((s) => s.transform);\n const breakdown = useMemo(\n () => (isBreakdown ? resolveBreakdown(series, rows, total) : null),\n [isBreakdown, series, rows, total],\n );\n\n // Breakdown renders instantly from `current`; the modal still needs polled\n // history. Other variants gate on having ≥2 points to draw a line.\n const canExpand = expandable && rows.length >= 2;\n\n return (\n <div className={cn(\"flex flex-col rounded-lg border border-border bg-card p-3\", className)}>\n <div className=\"flex items-center justify-between gap-2 text-xs text-muted-foreground\">\n <span className=\"inline-flex min-w-0 items-center gap-1.5\">\n {icon ? <PanelIcon icon={icon} /> : null}\n <span className=\"truncate font-medium text-foreground\">{title}</span>\n </span>\n <span className=\"inline-flex shrink-0 items-center gap-1.5\">\n {breakdown ? (\n <BreakdownReadout total={breakdown.total} unit={unit} items={breakdown.items} />\n ) : (\n <LatestReadout series={series} rows={rows} />\n )}\n {canExpand ? (\n <button\n type=\"button\"\n aria-label=\"Expand chart\"\n onClick={() => setExpanded(true)}\n className=\"text-muted-foreground transition-colors hover:text-foreground\"\n >\n <Icon icon={UiFullscreen} width={14} height={14} />\n </button>\n ) : null}\n </span>\n </div>\n <div className=\"mt-2\" style={breakdown ? undefined : { height }}>\n {breakdown ? (\n <BreakdownView total={breakdown.total} unit={unit} items={breakdown.items} />\n ) : isError ? (\n <PanelMessage>{(error as Error)?.message ?? \"Failed to load metric\"}</PanelMessage>\n ) : isLoading ? (\n <PanelMessage>Loading…</PanelMessage>\n ) : rows.length < 2 ? (\n <PanelMessage>Collecting data…</PanelMessage>\n ) : (\n <Chart\n rows={rows}\n series={series}\n variant={chartVariant}\n unit={unit}\n showZeroLine={hasMirrored}\n referenceLines={refs}\n />\n )}\n </div>\n {!breakdown && !isError && !isLoading && rows.length >= 2 && series.length + refs.length > 1 ? (\n <ChartLegend series={series} rows={rows} referenceLines={refs} unit={unit} />\n ) : null}\n {canExpand ? (\n <Modal open={expanded} onClose={() => setExpanded(false)} title={title} size=\"xl\">\n <div style={{ height: 360 }}>\n <Chart\n rows={rows}\n series={series}\n variant={expandVariant}\n unit={unit}\n showZeroLine={hasMirrored}\n referenceLines={refs}\n />\n </div>\n {series.length + refs.length > 1 ? (\n <ChartLegend series={series} rows={rows} referenceLines={refs} unit={unit} />\n ) : null}\n </Modal>\n ) : null}\n </div>\n );\n}\n\n/**\n * Header readout for a single-series panel: the latest value, formatted with the\n * series' unit. Multi-series panels render the per-series values in {@link ChartLegend}\n * below the chart instead, so this returns null for them to avoid overlapping the title.\n */\nfunction LatestReadout({ series, rows }: { series: ResolvedSeries[]; rows: MergedRow[] }) {\n const only = series.length === 1 ? series[0] : undefined;\n if (!only) return null;\n const v = latestOf(rows, only.key);\n if (v === undefined) return null;\n return <span className=\"tabular-nums\">{formatUnit(Math.abs(v), only.unit)}</span>;\n}\n\nconst REFERENCE_LINE_COLOR = \"var(--muted-foreground, #64748b)\";\n\nfunction referenceColor(ref: TimeseriesReferenceLine): string {\n return resolveCssColor(ref.color ?? REFERENCE_LINE_COLOR);\n}\n\n/**\n * Wrapping color-keyed legend for the time-series variants: dot + label + latest\n * value, then each reference line with its fixed value.\n */\nfunction ChartLegend({\n series,\n rows,\n referenceLines,\n unit,\n}: {\n series: ResolvedSeries[];\n rows: MergedRow[];\n referenceLines: TimeseriesReferenceLine[];\n unit: string | undefined;\n}) {\n return (\n <ul className=\"mt-1.5 flex flex-wrap gap-x-3 gap-y-1 text-xs text-muted-foreground\">\n {series.map((s) => {\n const v = latestOf(rows, s.key);\n return (\n <li key={s.key} className=\"inline-flex min-w-0 items-center gap-1.5\">\n <span\n className=\"h-2 w-2 shrink-0 rounded-full\"\n style={{ backgroundColor: resolveCssColor(s.color) }}\n aria-hidden\n />\n <span className=\"truncate text-foreground\">{s.label}</span>\n {v !== undefined ? (\n <span className=\"tabular-nums\">{formatUnit(Math.abs(v), s.unit)}</span>\n ) : null}\n </li>\n );\n })}\n {referenceLines.map((ref, i) => (\n <li key={`ref-${i}`} className=\"inline-flex min-w-0 items-center gap-1.5\">\n <span\n className=\"h-0.5 w-2.5 shrink-0\"\n style={{ backgroundColor: referenceColor(ref) }}\n aria-hidden\n />\n <span className=\"truncate text-foreground\">{ref.label}</span>\n <span className=\"tabular-nums\">{formatUnit(ref.value, ref.unit ?? unit)}</span>\n </li>\n ))}\n </ul>\n );\n}\n\n/** Breakdown header readout: `used / total · pct%`, where used is the sum of segments. */\nfunction BreakdownReadout({\n total,\n unit,\n items,\n}: {\n total: number;\n unit: string | undefined;\n items: BreakdownItem[];\n}) {\n const used = items.reduce((acc, it) => acc + it.value, 0);\n const pct = total > 0 ? Math.min(100, (used / total) * 100) : 0;\n return (\n <span className=\"font-mono tabular-nums\">\n {formatUnit(used, unit)} / {formatUnit(total, unit)} · {pct.toFixed(0)}%\n </span>\n );\n}\n\n/** Instantaneous stacked bar + legend list. The expand button (in the panel header) opens the graph. */\nfunction BreakdownView({\n total,\n unit,\n items,\n}: {\n total: number;\n unit: string | undefined;\n items: BreakdownItem[];\n}) {\n const segments: ProgressSegment[] = items.map((it) => ({\n count: it.value,\n color: it.color,\n label: it.label,\n }));\n return (\n <div className=\"flex flex-col gap-2\">\n <ProgressBar segments={segments} total={total > 0 ? total : 1} height=\"h-3\" />\n {items.length > 0 ? (\n <ul className=\"grid grid-cols-1 gap-y-1 text-xs\">\n {items.map((it) => (\n <li key={it.key} className=\"flex items-center gap-2\">\n <span\n className=\"h-2 w-2 shrink-0 rounded-full\"\n style={{ backgroundColor: resolveCssColor(it.color) }}\n aria-hidden\n />\n <span className=\"min-w-0 flex-1 truncate font-mono text-muted-foreground\">\n {it.label}\n </span>\n <span className=\"font-mono tabular-nums text-foreground\">\n {formatUnit(it.value, it.unit ?? unit)}\n </span>\n <span className=\"w-10 text-right font-mono tabular-nums text-muted-foreground\">\n {it.percent.toFixed(0)}%\n </span>\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n );\n}\n\ntype ChartVariant = \"area\" | \"line\" | \"stacked\";\n\nfunction Chart({\n rows,\n series,\n variant,\n unit,\n showZeroLine,\n referenceLines,\n}: {\n rows: MergedRow[];\n series: ResolvedSeries[];\n variant: ChartVariant;\n unit: string | undefined;\n showZeroLine: boolean;\n referenceLines: TimeseriesReferenceLine[];\n}) {\n const stacked = variant === \"stacked\";\n // Mirrored series carry negative values; show magnitudes on axis and tooltip.\n const seriesByKey = new Map(series.map((s) => [s.key, s]));\n // recharts needs a CSS color value; a series may carry a Tailwind class.\n const strokeOf = (s: ResolvedSeries) => resolveCssColor(s.color);\n // Distinct units map to a left and (when present) right axis; each series draws\n // against the axis for its unit so mixed-unit panels keep independent scales.\n const { axes: yAxes, axisOfKey } = useMemo(() => assignAxes(series), [series]);\n const axisOf = (key: string): \"left\" | \"right\" => axisOfKey.get(key) ?? \"left\";\n // A reference line draws against the axis formatting its unit, else the left.\n const axisOfUnit = (u: string | undefined): \"left\" | \"right\" =>\n yAxes.find((ax) => ax.unit === u)?.id ?? \"left\";\n const axes = (\n <>\n <CartesianGrid strokeOpacity={0.12} vertical={false} />\n <XAxis\n dataKey=\"at\"\n tickFormatter={formatClock}\n tick={{ fontSize: 10 }}\n stroke=\"currentColor\"\n strokeOpacity={0.35}\n minTickGap={32}\n />\n {yAxes.map((ax) => (\n <YAxis\n key={ax.id}\n yAxisId={ax.id}\n orientation={ax.orientation}\n tick={{ fontSize: 10 }}\n stroke=\"currentColor\"\n strokeOpacity={0.35}\n width={40}\n tickFormatter={(v: number) => formatUnit(Math.abs(v), ax.unit)}\n />\n ))}\n <Tooltip\n labelFormatter={(label) => formatClock(String(label))}\n formatter={(value, name) => {\n const s = seriesByKey.get(String(name));\n return [formatUnit(Math.abs(Number(value) || 0), s?.unit ?? unit), s?.label ?? String(name)];\n }}\n contentStyle={{ fontSize: 12 }}\n />\n {showZeroLine ? (\n <ReferenceLine yAxisId=\"left\" y={0} stroke=\"currentColor\" strokeOpacity={0.35} />\n ) : null}\n {referenceLines.map((ref, i) => (\n <ReferenceLine\n key={`ref-${i}`}\n yAxisId={axisOfUnit(ref.unit ?? unit)}\n y={ref.value}\n stroke={referenceColor(ref)}\n strokeDasharray=\"4 4\"\n ifOverflow=\"extendDomain\"\n />\n ))}\n </>\n );\n\n return (\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n {variant === \"line\" ? (\n <LineChart data={rows} margin={{ top: 4, right: 8, bottom: 0, left: 0 }}>\n {axes}\n {series.map((s) => (\n <Line\n key={s.key}\n yAxisId={axisOf(s.key)}\n type=\"monotone\"\n dataKey={s.key}\n name={s.key}\n stroke={strokeOf(s)}\n strokeWidth={2}\n dot={false}\n connectNulls\n isAnimationActive={false}\n />\n ))}\n </LineChart>\n ) : (\n <AreaChart data={rows} margin={{ top: 4, right: 8, bottom: 0, left: 0 }}>\n {axes}\n {series.map((s) => (\n <Area\n key={s.key}\n yAxisId={axisOf(s.key)}\n type=\"monotone\"\n dataKey={s.key}\n name={s.key}\n stroke={strokeOf(s)}\n fill={strokeOf(s)}\n {...(stacked ? { stackId: `stack-${axisOf(s.key)}` } : {})}\n fillOpacity={stacked ? 0.7 : 0.12}\n strokeWidth={stacked ? 0 : 2}\n connectNulls\n isAnimationActive={false}\n />\n ))}\n </AreaChart>\n )}\n </ResponsiveContainer>\n );\n}\n\nfunction PanelMessage({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"flex h-full items-center justify-center text-xs text-muted-foreground\">\n {children}\n </div>\n );\n}\n\nfunction PanelIcon({ icon }: { icon: string | StaticIconComponent }) {\n if (typeof icon === \"string\") {\n return <Icon name={icon} width={16} height={16} className=\"text-muted-foreground\" />;\n }\n return <Icon icon={icon} width={16} height={16} className=\"text-muted-foreground\" />;\n}\n"],"names":["defaultTimeseriesFetcher","useState","useMemo","resolveSeries","useTimeseriesQueries","_a","mergeSeries","resolveBreakdown","cn","jsxs","jsx","Icon","UiFullscreen","Modal","latestOf","formatUnit","resolveCssColor","ProgressBar","assignAxes","Fragment","CartesianGrid","XAxis","YAxis","Tooltip","ReferenceLine","ResponsiveContainer","LineChart","Line","AreaChart","Area"],"mappings":";;;;;;;;;;;;;;;AA+CA,SAAS,YAAY,IAAoB;AACvC,QAAM,OAAO,IAAI,KAAK,EAAE;AACxB,MAAI,OAAO,MAAM,KAAK,QAAA,CAAS,EAAG,QAAO;AACzC,SAAO,KAAK,mBAAmB,IAAI,EAAE,MAAM,WAAW,QAAQ,WAAW;AAC3E;AAEO,SAAS,gBAAgB,OAA6B;;AAC3D,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA,UAAUA,gBAAAA;AAAAA,IACV;AAAA,EAAA,IACE;AACJ,QAAM,cAAc,YAAY;AAGhC,QAAM,eAA6B,cAAc,SAAS;AAC1D,QAAM,gBAAgB,MAAM,iBAAiB;AAE7C,QAAM,CAAC,UAAU,WAAW,IAAIC,MAAAA,SAAS,KAAK;AAE9C,QAAM,SAASC,MAAAA,QAAQ,MAAMC,sBAAAA,cAAc,KAAK,GAAG,CAAC,KAAK,CAAC;AAC1D,QAAM,UAAUC,gBAAAA;AAAAA,IACd,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,KAAA,EAAO;AAAA,IAC/C,EAAE,SAAS,MAAM,WAAW,IAAI,OAAO,WAAW,QAAA;AAAA,EAAQ;AAE5D,QAAM,OAAO,kBAAkB,CAAA;AAE/B,QAAM,UAAU,QAAQ,KAAK,CAAC,MAAM,EAAE,OAAO;AAC7C,QAAM,SAAQ,aAAQ,KAAK,CAAC,MAAM,EAAE,OAAO,MAA7B,mBAAgC;AAC9C,QAAM,YAAY,QAAQ,KAAK,CAAC,MAAM,EAAE,SAAS,KAAK,QAAQ,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI;AAClF,QAAM,iBAAiB,QAAQ,IAAI,CAAC;;AAAM,YAAAC,MAAA,EAAE,SAAF,gBAAAA,IAAQ;AAAA,GAAM;AACxD,QAAM,OAAOH,cAAQ,MAAMI,kCAAY,QAAQ,cAAc,GAAG,CAAC,QAAQ,cAAc,CAAC;AACxF,QAAM,cAAc,OAAO,KAAK,CAAC,MAAM,EAAE,SAAS;AAClD,QAAM,YAAYJ,MAAAA;AAAAA,IAChB,MAAO,cAAcK,sBAAAA,iBAAiB,QAAQ,MAAM,KAAK,IAAI;AAAA,IAC7D,CAAC,aAAa,QAAQ,MAAM,KAAK;AAAA,EAAA;AAKnC,QAAM,YAAY,cAAc,KAAK,UAAU;AAE/C,yCACG,OAAA,EAAI,WAAWC,MAAAA,GAAG,6DAA6D,SAAS,GACvF,UAAA;AAAA,IAAAC,2BAAAA,KAAC,OAAA,EAAI,WAAU,yEACb,UAAA;AAAA,MAAAA,2BAAAA,KAAC,QAAA,EAAK,WAAU,4CACb,UAAA;AAAA,QAAA,OAAOC,2BAAAA,IAAC,WAAA,EAAU,KAAA,CAAY,IAAK;AAAA,QACpCA,2BAAAA,IAAC,QAAA,EAAK,WAAU,wCAAwC,UAAA,MAAA,CAAM;AAAA,MAAA,GAChE;AAAA,MACAD,2BAAAA,KAAC,QAAA,EAAK,WAAU,6CACb,UAAA;AAAA,QAAA,YACCC,2BAAAA,IAAC,kBAAA,EAAiB,OAAO,UAAU,OAAO,MAAY,OAAO,UAAU,MAAA,CAAO,IAE9EA,2BAAAA,IAAC,eAAA,EAAc,QAAgB,MAAY;AAAA,QAE5C,YACCA,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,cAAW;AAAA,YACX,SAAS,MAAM,YAAY,IAAI;AAAA,YAC/B,WAAU;AAAA,YAEV,yCAACC,KAAAA,MAAA,EAAK,MAAMC,aAAAA,cAAc,OAAO,IAAI,QAAQ,GAAA,CAAI;AAAA,UAAA;AAAA,QAAA,IAEjD;AAAA,MAAA,EAAA,CACN;AAAA,IAAA,GACF;AAAA,mCACC,OAAA,EAAI,WAAU,QAAO,OAAO,YAAY,SAAY,EAAE,OAAA,GACpD,sBACCF,2BAAAA,IAAC,eAAA,EAAc,OAAO,UAAU,OAAO,MAAY,OAAO,UAAU,MAAA,CAAO,IACzE,UACFA,2BAAAA,IAAC,cAAA,EAAe,0CAAiB,YAAW,wBAAA,CAAwB,IAClE,YACFA,+BAAC,cAAA,EAAa,UAAA,WAAA,CAAQ,IACpB,KAAK,SAAS,IAChBA,2BAAAA,IAAC,cAAA,EAAa,8BAAgB,IAE9BA,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA,cAAc;AAAA,QACd,gBAAgB;AAAA,MAAA;AAAA,IAAA,GAGtB;AAAA,IACC,CAAC,aAAa,CAAC,WAAW,CAAC,aAAa,KAAK,UAAU,KAAK,OAAO,SAAS,KAAK,SAAS,IACzFA,2BAAAA,IAAC,aAAA,EAAY,QAAgB,MAAY,gBAAgB,MAAM,KAAA,CAAY,IACzE;AAAA,IACH,YACCD,2BAAAA,KAACI,MAAAA,OAAA,EAAM,MAAM,UAAU,SAAS,MAAM,YAAY,KAAK,GAAG,OAAc,MAAK,MAC3E,UAAA;AAAA,MAAAH,2BAAAA,IAAC,OAAA,EAAI,OAAO,EAAE,QAAQ,OACpB,UAAAA,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,SAAS;AAAA,UACT;AAAA,UACA,cAAc;AAAA,UACd,gBAAgB;AAAA,QAAA;AAAA,MAAA,GAEpB;AAAA,MACC,OAAO,SAAS,KAAK,SAAS,IAC7BA,2BAAAA,IAAC,aAAA,EAAY,QAAgB,MAAY,gBAAgB,MAAM,KAAA,CAAY,IACzE;AAAA,IAAA,EAAA,CACN,IACE;AAAA,EAAA,GACN;AAEJ;AAOA,SAAS,cAAc,EAAE,QAAQ,QAAyD;AACxF,QAAM,OAAO,OAAO,WAAW,IAAI,OAAO,CAAC,IAAI;AAC/C,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,IAAII,qBAAAA,SAAS,MAAM,KAAK,GAAG;AACjC,MAAI,MAAM,OAAW,QAAO;AAC5B,SAAOJ,2BAAAA,IAAC,QAAA,EAAK,WAAU,gBAAgB,UAAAK,OAAAA,WAAW,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,EAAA,CAAE;AAC5E;AAEA,MAAM,uBAAuB;AAE7B,SAAS,eAAe,KAAsC;AAC5D,SAAOC,sBAAgB,IAAI,SAAS,oBAAoB;AAC1D;AAMA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,SACEP,2BAAAA,KAAC,MAAA,EAAG,WAAU,uEACX,UAAA;AAAA,IAAA,OAAO,IAAI,CAAC,MAAM;AACjB,YAAM,IAAIK,qBAAAA,SAAS,MAAM,EAAE,GAAG;AAC9B,aACEL,2BAAAA,KAAC,MAAA,EAAe,WAAU,4CACxB,UAAA;AAAA,QAAAC,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO,EAAE,iBAAiBM,MAAAA,gBAAgB,EAAE,KAAK,EAAA;AAAA,YACjD,eAAW;AAAA,UAAA;AAAA,QAAA;AAAA,QAEbN,2BAAAA,IAAC,QAAA,EAAK,WAAU,4BAA4B,YAAE,OAAM;AAAA,QACnD,MAAM,SACLA,2BAAAA,IAAC,QAAA,EAAK,WAAU,gBAAgB,UAAAK,OAAAA,WAAW,KAAK,IAAI,CAAC,GAAG,EAAE,IAAI,GAAE,IAC9D;AAAA,MAAA,EAAA,GATG,EAAE,GAUX;AAAA,IAEJ,CAAC;AAAA,IACA,eAAe,IAAI,CAAC,KAAK,MACxBN,gCAAC,MAAA,EAAoB,WAAU,4CAC7B,UAAA;AAAA,MAAAC,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAO,EAAE,iBAAiB,eAAe,GAAG,EAAA;AAAA,UAC5C,eAAW;AAAA,QAAA;AAAA,MAAA;AAAA,MAEbA,2BAAAA,IAAC,QAAA,EAAK,WAAU,4BAA4B,cAAI,OAAM;AAAA,MACtDA,2BAAAA,IAAC,QAAA,EAAK,WAAU,gBAAgB,UAAAK,kBAAW,IAAI,OAAO,IAAI,QAAQ,IAAI,EAAA,CAAE;AAAA,IAAA,EAAA,GAPjE,OAAO,CAAC,EAQjB,CACD;AAAA,EAAA,GACH;AAEJ;AAGA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,OAAO,MAAM,OAAO,CAAC,KAAK,OAAO,MAAM,GAAG,OAAO,CAAC;AACxD,QAAM,MAAM,QAAQ,IAAI,KAAK,IAAI,KAAM,OAAO,QAAS,GAAG,IAAI;AAC9D,SACEN,2BAAAA,KAAC,QAAA,EAAK,WAAU,0BACb,UAAA;AAAA,IAAAM,OAAAA,WAAW,MAAM,IAAI;AAAA,IAAE;AAAA,IAAIA,OAAAA,WAAW,OAAO,IAAI;AAAA,IAAE;AAAA,IAAI,IAAI,QAAQ,CAAC;AAAA,IAAE;AAAA,EAAA,GACzE;AAEJ;AAGA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,WAA8B,MAAM,IAAI,CAAC,QAAQ;AAAA,IACrD,OAAO,GAAG;AAAA,IACV,OAAO,GAAG;AAAA,IACV,OAAO,GAAG;AAAA,EAAA,EACV;AACF,SACEN,2BAAAA,KAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,IAAAC,2BAAAA,IAACO,YAAAA,aAAA,EAAY,UAAoB,OAAO,QAAQ,IAAI,QAAQ,GAAG,QAAO,MAAA,CAAM;AAAA,IAC3E,MAAM,SAAS,IACdP,2BAAAA,IAAC,QAAG,WAAU,oCACX,UAAA,MAAM,IAAI,CAAC,OACVD,2BAAAA,KAAC,MAAA,EAAgB,WAAU,2BACzB,UAAA;AAAA,MAAAC,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAO,EAAE,iBAAiBM,MAAAA,gBAAgB,GAAG,KAAK,EAAA;AAAA,UAClD,eAAW;AAAA,QAAA;AAAA,MAAA;AAAA,MAEbN,2BAAAA,IAAC,QAAA,EAAK,WAAU,2DACb,aAAG,OACN;AAAA,MACAA,2BAAAA,IAAC,QAAA,EAAK,WAAU,0CACb,UAAAK,OAAAA,WAAW,GAAG,OAAO,GAAG,QAAQ,IAAI,EAAA,CACvC;AAAA,MACAN,2BAAAA,KAAC,QAAA,EAAK,WAAU,gEACb,UAAA;AAAA,QAAA,GAAG,QAAQ,QAAQ,CAAC;AAAA,QAAE;AAAA,MAAA,EAAA,CACzB;AAAA,IAAA,EAAA,GAdO,GAAG,GAeZ,CACD,EAAA,CACH,IACE;AAAA,EAAA,GACN;AAEJ;AAIA,SAAS,MAAM;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAOG;AACD,QAAM,UAAU,YAAY;AAE5B,QAAM,cAAc,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAEzD,QAAM,WAAW,CAAC,MAAsBO,MAAAA,gBAAgB,EAAE,KAAK;AAG/D,QAAM,EAAE,MAAM,OAAO,cAAcd,MAAAA,QAAQ,MAAMgB,qBAAAA,WAAW,MAAM,GAAG,CAAC,MAAM,CAAC;AAC7E,QAAM,SAAS,CAAC,QAAkC,UAAU,IAAI,GAAG,KAAK;AAExE,QAAM,aAAa,CAAC,MAAA;;AAClB,wBAAM,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,MAAhC,mBAAmC,OAAM;AAAA;AAC3C,QAAM,OACJT,2BAAAA,KAAAU,WAAAA,UAAA,EACE,UAAA;AAAA,IAAAT,2BAAAA,IAACU,SAAAA,eAAA,EAAc,eAAe,MAAM,UAAU,OAAO;AAAA,IACrDV,2BAAAA;AAAAA,MAACW,SAAAA;AAAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,eAAe;AAAA,QACf,MAAM,EAAE,UAAU,GAAA;AAAA,QAClB,QAAO;AAAA,QACP,eAAe;AAAA,QACf,YAAY;AAAA,MAAA;AAAA,IAAA;AAAA,IAEb,MAAM,IAAI,CAAC,OACVX,2BAAAA;AAAAA,MAACY,SAAAA;AAAAA,MAAA;AAAA,QAEC,SAAS,GAAG;AAAA,QACZ,aAAa,GAAG;AAAA,QAChB,MAAM,EAAE,UAAU,GAAA;AAAA,QAClB,QAAO;AAAA,QACP,eAAe;AAAA,QACf,OAAO;AAAA,QACP,eAAe,CAAC,MAAcP,kBAAW,KAAK,IAAI,CAAC,GAAG,GAAG,IAAI;AAAA,MAAA;AAAA,MAPxD,GAAG;AAAA,IAAA,CASX;AAAA,IACDL,2BAAAA;AAAAA,MAACa,SAAAA;AAAAA,MAAA;AAAA,QACC,gBAAgB,CAAC,UAAU,YAAY,OAAO,KAAK,CAAC;AAAA,QACpD,WAAW,CAAC,OAAO,SAAS;AAC1B,gBAAM,IAAI,YAAY,IAAI,OAAO,IAAI,CAAC;AACtC,iBAAO,CAACR,OAAAA,WAAW,KAAK,IAAI,OAAO,KAAK,KAAK,CAAC,IAAG,uBAAG,SAAQ,IAAI,IAAG,uBAAG,UAAS,OAAO,IAAI,CAAC;AAAA,QAC7F;AAAA,QACA,cAAc,EAAE,UAAU,GAAA;AAAA,MAAG;AAAA,IAAA;AAAA,IAE9B,eACCL,2BAAAA,IAACc,SAAAA,eAAA,EAAc,SAAQ,QAAO,GAAG,GAAG,QAAO,gBAAe,eAAe,KAAA,CAAM,IAC7E;AAAA,IACH,eAAe,IAAI,CAAC,KAAK,MACxBd,2BAAAA;AAAAA,MAACc,SAAAA;AAAAA,MAAA;AAAA,QAEC,SAAS,WAAW,IAAI,QAAQ,IAAI;AAAA,QACpC,GAAG,IAAI;AAAA,QACP,QAAQ,eAAe,GAAG;AAAA,QAC1B,iBAAgB;AAAA,QAChB,YAAW;AAAA,MAAA;AAAA,MALN,OAAO,CAAC;AAAA,IAAA,CAOhB;AAAA,EAAA,GACH;AAGF,SACEd,+BAACe,SAAAA,uBAAoB,OAAM,QAAO,QAAO,QACtC,UAAA,YAAY,SACXhB,2BAAAA,KAACiB,SAAAA,WAAA,EAAU,MAAM,MAAM,QAAQ,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,EAAA,GACjE,UAAA;AAAA,IAAA;AAAA,IACA,OAAO,IAAI,CAAC,MACXhB,2BAAAA;AAAAA,MAACiB,SAAAA;AAAAA,MAAA;AAAA,QAEC,SAAS,OAAO,EAAE,GAAG;AAAA,QACrB,MAAK;AAAA,QACL,SAAS,EAAE;AAAA,QACX,MAAM,EAAE;AAAA,QACR,QAAQ,SAAS,CAAC;AAAA,QAClB,aAAa;AAAA,QACb,KAAK;AAAA,QACL,cAAY;AAAA,QACZ,mBAAmB;AAAA,MAAA;AAAA,MATd,EAAE;AAAA,IAAA,CAWV;AAAA,EAAA,EAAA,CACH,IAEAlB,2BAAAA,KAACmB,SAAAA,WAAA,EAAU,MAAM,MAAM,QAAQ,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,KACjE,UAAA;AAAA,IAAA;AAAA,IACA,OAAO,IAAI,CAAC,MACXlB,2BAAAA;AAAAA,MAACmB,SAAAA;AAAAA,MAAA;AAAA,QAEC,SAAS,OAAO,EAAE,GAAG;AAAA,QACrB,MAAK;AAAA,QACL,SAAS,EAAE;AAAA,QACX,MAAM,EAAE;AAAA,QACR,QAAQ,SAAS,CAAC;AAAA,QAClB,MAAM,SAAS,CAAC;AAAA,QACf,GAAI,UAAU,EAAE,SAAS,SAAS,OAAO,EAAE,GAAG,CAAC,GAAA,IAAO,CAAA;AAAA,QACvD,aAAa,UAAU,MAAM;AAAA,QAC7B,aAAa,UAAU,IAAI;AAAA,QAC3B,cAAY;AAAA,QACZ,mBAAmB;AAAA,MAAA;AAAA,MAXd,EAAE;AAAA,IAAA,CAaV;AAAA,EAAA,EAAA,CACH,EAAA,CAEJ;AAEJ;AAEA,SAAS,aAAa,EAAE,YAA2C;AACjE,SACEnB,2BAAAA,IAAC,OAAA,EAAI,WAAU,yEACZ,SAAA,CACH;AAEJ;AAEA,SAAS,UAAU,EAAE,QAAgD;AACnE,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAOA,+BAACC,KAAAA,QAAK,MAAM,MAAM,OAAO,IAAI,QAAQ,IAAI,WAAU,wBAAA,CAAwB;AAAA,EACpF;AACA,SAAOD,+BAACC,KAAAA,QAAK,MAAY,OAAO,IAAI,QAAQ,IAAI,WAAU,yBAAwB;AACpF;;"}
@@ -1,5 +1,5 @@
1
- import { TimeseriesPanelProps } from './TimeseriesPanel.model';
2
- export type { AxisAssignment, AxisOrientation, AxisSpec } from './TimeseriesPanel.axes';
3
- export type { BreakdownItem, MergedRow, ResolvedSeries, TimeseriesPanelProps, TimeseriesPoint, TimeseriesResponse, TimeseriesSeries, } from './TimeseriesPanel.model';
1
+ import { TimeseriesPanelProps } from './TimeseriesPanel.model.js';
2
+ export type { AxisAssignment, AxisOrientation, AxisSpec } from './TimeseriesPanel.axes.js';
3
+ export type { BreakdownItem, MergedRow, ResolvedSeries, SeriesLoadContext, SeriesLoader, TimeseriesPanelProps, TimeseriesPoint, TimeseriesReferenceLine, TimeseriesResponse, TimeseriesSeries, } from './TimeseriesPanel.model.js';
4
4
  export declare function TimeseriesPanel(props: TimeseriesPanelProps): import("react").JSX.Element;
5
5
  //# sourceMappingURL=TimeseriesPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimeseriesPanel.d.ts","sourceRoot":"","sources":["../../src/data/TimeseriesPanel.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAOL,KAAK,oBAAoB,EAE1B,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACxF,YAAY,EACV,aAAa,EACb,SAAS,EACT,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAcjC,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,+BA6G1D"}
1
+ {"version":3,"file":"TimeseriesPanel.d.ts","sourceRoot":"","sources":["../../src/data/TimeseriesPanel.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAOL,KAAK,oBAAoB,EAE1B,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACxF,YAAY,EACV,aAAa,EACb,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAQjC,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,+BAgH1D"}