@mastra/playground-ui 35.0.0 → 35.1.0-alpha.1
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.
- package/CHANGELOG.md +86 -0
- package/dist/{code-block-C4Zp_ewI.cjs → code-block-BPI6hA9o.cjs} +2 -2
- package/dist/{code-block-C4Zp_ewI.cjs.map → code-block-BPI6hA9o.cjs.map} +1 -1
- package/dist/{code-block-CnRVTecy.js → code-block-BdjHwqE4.js} +2 -2
- package/dist/{code-block-CnRVTecy.js.map → code-block-BdjHwqE4.js.map} +1 -1
- package/dist/{code-editor-DuX_CPRv.js → code-editor-CxHGOvdY.js} +3 -3
- package/dist/{code-editor-DuX_CPRv.js.map → code-editor-CxHGOvdY.js.map} +1 -1
- package/dist/{code-editor-LhRB_wMh.cjs → code-editor-DVWPuq12.cjs} +3 -3
- package/dist/{code-editor-LhRB_wMh.cjs.map → code-editor-DVWPuq12.cjs.map} +1 -1
- package/dist/combobox-DQdRtI_v.cjs +245 -0
- package/dist/combobox-DQdRtI_v.cjs.map +1 -0
- package/dist/combobox-DvRTz5eL.js +223 -0
- package/dist/combobox-DvRTz5eL.js.map +1 -0
- package/dist/{command-DPEUOKZw.js → command-CkFCH229.js} +86 -43
- package/dist/command-CkFCH229.js.map +1 -0
- package/dist/{command-D0tQ1Lpz.cjs → command-EI7t_0WS.cjs} +86 -43
- package/dist/command-EI7t_0WS.cjs.map +1 -0
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Columns.cjs.js +1 -1
- package/dist/components/Columns.es.js +1 -1
- package/dist/components/Combobox.cjs.js +2 -4
- package/dist/components/Combobox.cjs.js.map +1 -1
- package/dist/components/Combobox.es.js +1 -2
- package/dist/components/Combobox.es.js.map +1 -1
- package/dist/components/Command.cjs.js +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/CopyButton.cjs.js +1 -1
- package/dist/components/CopyButton.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +1 -1
- package/dist/components/DataDetailsPanel.es.js +1 -1
- package/dist/components/DataKeysAndValues.cjs.js +1 -1
- package/dist/components/DataKeysAndValues.es.js +1 -1
- package/dist/components/DataList.cjs.js +2 -2
- package/dist/components/DataList.es.js +2 -2
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/Dialog.cjs.js +1 -1
- package/dist/components/Dialog.es.js +1 -1
- package/dist/components/HorizontalBars.cjs.js +1 -1
- package/dist/components/HorizontalBars.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -2
- package/dist/components/LogsDataList.es.js +2 -2
- package/dist/components/MainSidebar.cjs.js +1 -1
- package/dist/components/MainSidebar.es.js +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/MetricsDataTable.cjs.js +1 -1
- package/dist/components/MetricsDataTable.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +1 -1
- package/dist/components/PropertyFilter.es.js +1 -1
- package/dist/components/ScrollArea.cjs.js +1 -1
- package/dist/components/ScrollArea.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +1 -1
- package/dist/components/SideDialog.es.js +1 -1
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/{copy-button-BfiqaCtC.js → copy-button-RffVknBA.js} +2 -2
- package/dist/{copy-button-BfiqaCtC.js.map → copy-button-RffVknBA.js.map} +1 -1
- package/dist/{copy-button-BaAuAgdC.cjs → copy-button-ler9dH8g.cjs} +3 -3
- package/dist/{copy-button-BaAuAgdC.cjs.map → copy-button-ler9dH8g.cjs.map} +1 -1
- package/dist/{data-code-section-MygZlpwo.js → data-code-section-BBBffVVs.js} +3 -3
- package/dist/{data-code-section-MygZlpwo.js.map → data-code-section-BBBffVVs.js.map} +1 -1
- package/dist/{data-code-section-BtFzBCox.cjs → data-code-section-ChVXPz-i.cjs} +3 -3
- package/dist/{data-code-section-BtFzBCox.cjs.map → data-code-section-ChVXPz-i.cjs.map} +1 -1
- package/dist/{data-keys-and-values-BSeQG7jb.js → data-keys-and-values-C3pzr_d1.js} +2 -2
- package/dist/{data-keys-and-values-BSeQG7jb.js.map → data-keys-and-values-C3pzr_d1.js.map} +1 -1
- package/dist/{data-keys-and-values-Spy2O_IE.cjs → data-keys-and-values-KIwfkmc7.cjs} +3 -3
- package/dist/{data-keys-and-values-Spy2O_IE.cjs.map → data-keys-and-values-KIwfkmc7.cjs.map} +1 -1
- package/dist/{data-list-skeleton-COjCBzBF.cjs → data-list-skeleton-BlOwAki1.cjs} +5 -15
- package/dist/data-list-skeleton-BlOwAki1.cjs.map +1 -0
- package/dist/{data-list-skeleton-DmAqHgws.js → data-list-skeleton-DD7ljjgS.js} +5 -15
- package/dist/data-list-skeleton-DD7ljjgS.js.map +1 -0
- package/dist/{data-panel-DToYF7cH.cjs → data-panel-DBxE_3ux.cjs} +2 -2
- package/dist/{data-panel-DToYF7cH.cjs.map → data-panel-DBxE_3ux.cjs.map} +1 -1
- package/dist/{data-panel-DumaHQiP.js → data-panel-DPVF9Yok.js} +2 -2
- package/dist/{data-panel-DumaHQiP.js.map → data-panel-DPVF9Yok.js.map} +1 -1
- package/dist/{dialog-46zkb32X.cjs → dialog-C0gOGKEK.cjs} +31 -29
- package/dist/dialog-C0gOGKEK.cjs.map +1 -0
- package/dist/{dialog-CSSfcjSX.js → dialog-DTLHod4X.js} +31 -29
- package/dist/dialog-DTLHod4X.js.map +1 -0
- package/dist/dialog.css +2 -2
- package/dist/hooks/use-autoscroll.cjs.js +110 -0
- package/dist/hooks/use-autoscroll.cjs.js.map +1 -0
- package/dist/hooks/use-autoscroll.d.ts +2 -0
- package/dist/hooks/use-autoscroll.es.js +106 -0
- package/dist/hooks/use-autoscroll.es.js.map +1 -0
- package/dist/hooks/use-copy-to-clipboard.cjs.js +11 -0
- package/dist/hooks/use-copy-to-clipboard.cjs.js.map +1 -0
- package/dist/hooks/use-copy-to-clipboard.d.ts +2 -0
- package/dist/hooks/use-copy-to-clipboard.es.js +3 -0
- package/dist/hooks/use-copy-to-clipboard.es.js.map +1 -0
- package/dist/hooks/use-in-view.cjs.js +22 -0
- package/dist/hooks/use-in-view.cjs.js.map +1 -0
- package/dist/hooks/use-in-view.d.ts +2 -0
- package/dist/hooks/use-in-view.es.js +18 -0
- package/dist/hooks/use-in-view.es.js.map +1 -0
- package/dist/hooks/use-is-mobile.cjs.js +21 -0
- package/dist/hooks/use-is-mobile.cjs.js.map +1 -0
- package/dist/hooks/use-is-mobile.d.ts +2 -0
- package/dist/hooks/use-is-mobile.es.js +17 -0
- package/dist/hooks/use-is-mobile.es.js.map +1 -0
- package/dist/hooks/use-keyboard-shortcut-label.cjs.js +29 -0
- package/dist/hooks/use-keyboard-shortcut-label.cjs.js.map +1 -0
- package/dist/hooks/use-keyboard-shortcut-label.d.ts +2 -0
- package/dist/hooks/use-keyboard-shortcut-label.es.js +24 -0
- package/dist/hooks/use-keyboard-shortcut-label.es.js.map +1 -0
- package/dist/{horizontal-bars-DjLETHvH.js → horizontal-bars-r1aEIHUc.js} +2 -2
- package/dist/{horizontal-bars-DjLETHvH.js.map → horizontal-bars-r1aEIHUc.js.map} +1 -1
- package/dist/{horizontal-bars-C9qp4r47.cjs → horizontal-bars-uPFpgihX.cjs} +2 -2
- package/dist/{horizontal-bars-C9qp4r47.cjs.map → horizontal-bars-uPFpgihX.cjs.map} +1 -1
- package/dist/index.cjs.js +88 -79
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.css +55 -30
- package/dist/index.es.js +72 -69
- package/dist/index.es.js.map +1 -1
- package/dist/{logs-data-list-kzBMv1MW.cjs → logs-data-list-3qmFjBz8.cjs} +2 -2
- package/dist/{logs-data-list-kzBMv1MW.cjs.map → logs-data-list-3qmFjBz8.cjs.map} +1 -1
- package/dist/{logs-data-list-Bkf7oWlx.js → logs-data-list-Dh6c7URj.js} +2 -2
- package/dist/{logs-data-list-Bkf7oWlx.js.map → logs-data-list-Dh6c7URj.js.map} +1 -1
- package/dist/{main-sidebar-Djs_3tGw.cjs → main-sidebar-ByHmwU4R.cjs} +6 -5
- package/dist/main-sidebar-ByHmwU4R.cjs.map +1 -0
- package/dist/{main-sidebar-1GVDTtcD.js → main-sidebar-DJSorgYQ.js} +6 -5
- package/dist/main-sidebar-DJSorgYQ.js.map +1 -0
- package/dist/{markdown-renderer-DyUlVfRt.cjs → markdown-renderer-Dyg_1QXx.cjs} +2 -2
- package/dist/{markdown-renderer-DyUlVfRt.cjs.map → markdown-renderer-Dyg_1QXx.cjs.map} +1 -1
- package/dist/{markdown-renderer-BYSrmn0E.js → markdown-renderer-QftQuP4g.js} +2 -2
- package/dist/{markdown-renderer-BYSrmn0E.js.map → markdown-renderer-QftQuP4g.js.map} +1 -1
- package/dist/{metrics-data-table-D7vx2WEJ.cjs → metrics-data-table-AjAA-dqH.cjs} +2 -2
- package/dist/{metrics-data-table-D7vx2WEJ.cjs.map → metrics-data-table-AjAA-dqH.cjs.map} +1 -1
- package/dist/{metrics-data-table-DryqJWoI.js → metrics-data-table-hSmtDNck.js} +2 -2
- package/dist/{metrics-data-table-DryqJWoI.js.map → metrics-data-table-hSmtDNck.js.map} +1 -1
- package/dist/{multi-column-BzL86JPK.cjs → multi-column-BLRjYB5N.cjs} +3 -2
- package/dist/{multi-column-BzL86JPK.cjs.map → multi-column-BLRjYB5N.cjs.map} +1 -1
- package/dist/{multi-column-C1sXoVG3.js → multi-column-e_-j_rrO.js} +3 -2
- package/dist/{multi-column-C1sXoVG3.js.map → multi-column-e_-j_rrO.js.map} +1 -1
- package/dist/{property-filter-creator-DU8pl6-6.cjs → property-filter-creator-CaG_zPdy.cjs} +4 -3
- package/dist/property-filter-creator-CaG_zPdy.cjs.map +1 -0
- package/dist/{property-filter-creator-B9tK0VY3.js → property-filter-creator-Cl9E6wxf.js} +4 -3
- package/dist/property-filter-creator-Cl9E6wxf.js.map +1 -0
- package/dist/scroll-area-BtcyzOxO.cjs +243 -0
- package/dist/scroll-area-BtcyzOxO.cjs.map +1 -0
- package/dist/scroll-area-DjZ6nTm5.js +221 -0
- package/dist/scroll-area-DjZ6nTm5.js.map +1 -0
- package/dist/src/ds/components/Combobox/combobox-styles.d.ts +5 -12
- package/dist/src/ds/components/Combobox/combobox.d.ts +13 -4
- package/dist/src/ds/components/Combobox/combobox.stories.d.ts +1 -0
- package/dist/src/ds/components/Combobox/index.d.ts +0 -1
- package/dist/src/ds/components/Command/command.d.ts +5 -1
- package/dist/src/ds/components/Command/command.stories.d.ts +1 -0
- package/dist/src/ds/components/DataList/data-list-root.d.ts +3 -4
- package/dist/src/ds/components/Dialog/dialog.d.ts +2 -0
- package/dist/src/ds/components/MainSidebar/main-sidebar-nav-item-classes.d.ts +12 -0
- package/dist/src/ds/components/MainSidebar/main-sidebar-nav-link.d.ts +0 -13
- package/dist/src/ds/components/MainSidebar/main-sidebar.d.ts +2 -1
- package/dist/src/ds/components/ScrollArea/scroll-area.d.ts +12 -0
- package/dist/src/ds/components/ScrollArea/scroll-area.stories.d.ts +2 -0
- package/dist/src/hooks/use-copy-to-clipboard.d.ts +9 -1
- package/dist/src/hooks/use-keyboard-shortcut-label.d.ts +2 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/lib/file/index.d.ts +1 -0
- package/dist/src/lib/file/schemes.d.ts +26 -0
- package/dist/{traces-data-list-BPTKzaN6.cjs → traces-data-list-BNmnKyDD.cjs} +8 -3
- package/dist/traces-data-list-BNmnKyDD.cjs.map +1 -0
- package/dist/{traces-data-list-CB7frfpp.js → traces-data-list-DRyI45Ke.js} +8 -3
- package/dist/traces-data-list-DRyI45Ke.js.map +1 -0
- package/dist/{truncate-C9bKR_02.js → truncate-B8_8wx-G.js} +2 -2
- package/dist/{truncate-C9bKR_02.js.map → truncate-B8_8wx-G.js.map} +1 -1
- package/dist/{truncate-RL2aHd1a.cjs → truncate-Csk5KmAy.cjs} +2 -2
- package/dist/{truncate-RL2aHd1a.cjs.map → truncate-Csk5KmAy.cjs.map} +1 -1
- package/dist/use-copy-to-clipboard-D7L_l6_x.js +127 -0
- package/dist/use-copy-to-clipboard-D7L_l6_x.js.map +1 -0
- package/dist/use-copy-to-clipboard-DHaJCGet.cjs +131 -0
- package/dist/use-copy-to-clipboard-DHaJCGet.cjs.map +1 -0
- package/package.json +12 -6
- package/dist/combobox-B2TriE9Z.cjs +0 -77
- package/dist/combobox-B2TriE9Z.cjs.map +0 -1
- package/dist/combobox-q2xPfCZc.js +0 -75
- package/dist/combobox-q2xPfCZc.js.map +0 -1
- package/dist/command-D0tQ1Lpz.cjs.map +0 -1
- package/dist/command-DPEUOKZw.js.map +0 -1
- package/dist/components/ScrollableContainer.cjs.js +0 -10
- package/dist/components/ScrollableContainer.cjs.js.map +0 -1
- package/dist/components/ScrollableContainer.d.ts +0 -2
- package/dist/components/ScrollableContainer.es.js +0 -2
- package/dist/components/ScrollableContainer.es.js.map +0 -1
- package/dist/data-list-skeleton-COjCBzBF.cjs.map +0 -1
- package/dist/data-list-skeleton-DmAqHgws.js.map +0 -1
- package/dist/dialog-46zkb32X.cjs.map +0 -1
- package/dist/dialog-CSSfcjSX.js.map +0 -1
- package/dist/main-sidebar-1GVDTtcD.js.map +0 -1
- package/dist/main-sidebar-Djs_3tGw.cjs.map +0 -1
- package/dist/multi-combobox-DkFLK64B.cjs +0 -193
- package/dist/multi-combobox-DkFLK64B.cjs.map +0 -1
- package/dist/multi-combobox-Y3gT0MqV.js +0 -189
- package/dist/multi-combobox-Y3gT0MqV.js.map +0 -1
- package/dist/property-filter-creator-B9tK0VY3.js.map +0 -1
- package/dist/property-filter-creator-DU8pl6-6.cjs.map +0 -1
- package/dist/scroll-area-BqJfcT94.cjs +0 -230
- package/dist/scroll-area-BqJfcT94.cjs.map +0 -1
- package/dist/scroll-area-BtDqmqBK.js +0 -208
- package/dist/scroll-area-BtDqmqBK.js.map +0 -1
- package/dist/scrollable-container-BqOFHwdb.js +0 -151
- package/dist/scrollable-container-BqOFHwdb.js.map +0 -1
- package/dist/scrollable-container-Btq-TfCL.cjs +0 -153
- package/dist/scrollable-container-Btq-TfCL.cjs.map +0 -1
- package/dist/src/ds/components/Combobox/multi-combobox.d.ts +0 -22
- package/dist/src/ds/components/ScrollableContainer/index.d.ts +0 -1
- package/dist/src/ds/components/ScrollableContainer/scrollable-container.d.ts +0 -8
- package/dist/src/ds/components/ScrollableContainer/scrollable-container.stories.d.ts +0 -10
- package/dist/traces-data-list-BPTKzaN6.cjs.map +0 -1
- package/dist/traces-data-list-CB7frfpp.js.map +0 -1
- package/dist/use-copy-to-clipboard-CGqfkXnN.js +0 -73
- package/dist/use-copy-to-clipboard-CGqfkXnN.js.map +0 -1
- package/dist/use-copy-to-clipboard-CQgIuR1c.cjs +0 -77
- package/dist/use-copy-to-clipboard-CQgIuR1c.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"horizontal-bars-C9qp4r47.cjs","sources":["../src/ds/components/HorizontalBars/horizontal-bars.tsx"],"sourcesContent":["import type { ElementType, ReactNode } from 'react';\nimport { ScrollArea } from '@/ds/components/ScrollArea/scroll-area';\nimport { Tooltip, TooltipTrigger, TooltipContent } from '@/ds/components/Tooltip';\nimport { cn } from '@/lib/utils';\n\ntype Segment = { label: string; color: string };\n\ntype HorizontalBarRow = {\n name: string;\n values: number[];\n /** If present, the whole row is rendered as a link to this URL. */\n href?: string;\n /** If present, an individual segment becomes its own link. Indices align with `segments`. */\n hrefs?: Array<string | undefined>;\n};\n\nexport function HorizontalBars({\n data,\n segments,\n maxVal,\n fmt,\n className,\n LinkComponent = 'a',\n}: {\n data: Array<HorizontalBarRow>;\n segments: Segment[];\n maxVal: number;\n fmt: (v: number) => string;\n className?: string;\n /** Override how links produced by `href` / `hrefs` are rendered. Receives `href`,\n * `className`, `aria-label`, and `children`. Defaults to a plain `<a>` element;\n * consumers using a router should pass an adapter that maps `href` to their\n * navigation primitive (e.g. react-router `<Link to={href} />`). */\n LinkComponent?: ElementType;\n}) {\n const sorted = [...data].sort((a, b) => {\n const totalB = b.values.reduce((s, v) => s + v, 0);\n const totalA = a.values.reduce((s, v) => s + v, 0);\n return totalB - totalA;\n });\n\n const isStacked = segments.length > 1;\n\n return (\n <ScrollArea className={cn('w-full h-full', className)}>\n <div className=\"flex items-center gap-3 mb-4 mt-2\">\n <div className=\"flex-1 flex items-center gap-4\">\n {segments.map(seg => (\n <div key={seg.label} className=\"flex items-center gap-2\">\n <div className=\"size-2 rounded-full\" style={{ backgroundColor: seg.color }} />\n <span className=\"text-ui-sm text-neutral3\">{seg.label}</span>\n </div>\n ))}\n </div>\n <span className=\"shrink-0 text-ui-sm text-neutral2 pr-2\">Total</span>\n </div>\n <div className=\"grid gap-3.5\">\n {sorted.map(d => {\n const total = d.values.reduce((s, v) => s + v, 0);\n const rowBody = (\n <>\n <div className=\"relative h-full flex-1 min-w-0\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div\n className={cn('absolute inset-y-0 left-0', d.href ? 'cursor-pointer' : 'cursor-default')}\n style={{ width: `${maxVal > 0 ? (total / maxVal) * 100 : 0}%` }}\n >\n {segments.map((seg, si) => {\n const val = d.values[si] ?? 0;\n const pct = total > 0 ? (val / total) * 100 : 0;\n const left = d.values.slice(0, si).reduce((s, v) => s + (total > 0 ? (v / total) * 100 : 0), 0);\n const isLastWithValue = d.values.slice(si + 1).every(v => !v);\n // Only honor segment-level links when the row itself is not an anchor.\n // Otherwise we'd render <a> nested inside <a>, which is invalid HTML.\n const segHref = d.href ? undefined : d.hrefs?.[si];\n\n const segmentNode = (\n <div\n className={cn(\n 'absolute inset-y-0 opacity-40 dark:opacity-100',\n isStacked && si === 0 && 'rounded-l',\n isStacked && isLastWithValue && 'rounded-r',\n !isStacked && 'rounded',\n segHref && 'cursor-pointer hover:opacity-70 transition-opacity',\n )}\n style={{\n left: isStacked ? `${left}%` : 0,\n width: isStacked ? `${pct}%` : `${pct}%`,\n backgroundColor: seg.color,\n }}\n />\n );\n\n if (segHref) {\n return (\n <LinkComponent\n key={seg.label}\n href={segHref}\n aria-label={`${d.name} — ${seg.label}`}\n className=\"contents\"\n >\n {segmentNode}\n </LinkComponent>\n );\n }\n return <Wrapper key={seg.label}>{segmentNode}</Wrapper>;\n })}\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"top\" className=\"font-mono\">\n <div className=\"grid gap-1\">\n {segments.map((seg, si) => (\n <div key={seg.label} className=\"flex items-center gap-2\">\n <span>{seg.label}</span>\n <span className=\"ml-auto pl-3\">{fmt(d.values[si] ?? 0)}</span>\n </div>\n ))}\n </div>\n </TooltipContent>\n </Tooltip>\n <span className=\"absolute inset-y-0 left-2.5 flex items-center text-ui-sm text-neutral4 truncate z-10 pointer-events-none\">\n {d.name}\n </span>\n </div>\n <span className=\"text-ui-md text-neutral4 tabular-nums shrink-0 pr-3\">{fmt(total)}</span>\n </>\n );\n\n if (d.href) {\n return (\n <LinkComponent\n key={d.name}\n href={d.href}\n className=\"flex items-center gap-14 h-6 rounded outline-none cursor-pointer hover:bg-surface3 focus-visible:bg-surface3 transition-colors\"\n >\n {rowBody}\n </LinkComponent>\n );\n }\n return (\n <div key={d.name} className=\"flex items-center gap-14 h-6 \">\n {rowBody}\n </div>\n );\n })}\n </div>\n </ScrollArea>\n );\n}\n\nfunction Wrapper({ children }: { children: ReactNode }) {\n return <>{children}</>;\n}\n"],"names":["ScrollArea","cn","jsxs","jsx","Fragment","Tooltip","TooltipTrigger","TooltipContent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"horizontal-bars-uPFpgihX.cjs","sources":["../src/ds/components/HorizontalBars/horizontal-bars.tsx"],"sourcesContent":["import type { ElementType, ReactNode } from 'react';\nimport { ScrollArea } from '@/ds/components/ScrollArea/scroll-area';\nimport { Tooltip, TooltipTrigger, TooltipContent } from '@/ds/components/Tooltip';\nimport { cn } from '@/lib/utils';\n\ntype Segment = { label: string; color: string };\n\ntype HorizontalBarRow = {\n name: string;\n values: number[];\n /** If present, the whole row is rendered as a link to this URL. */\n href?: string;\n /** If present, an individual segment becomes its own link. Indices align with `segments`. */\n hrefs?: Array<string | undefined>;\n};\n\nexport function HorizontalBars({\n data,\n segments,\n maxVal,\n fmt,\n className,\n LinkComponent = 'a',\n}: {\n data: Array<HorizontalBarRow>;\n segments: Segment[];\n maxVal: number;\n fmt: (v: number) => string;\n className?: string;\n /** Override how links produced by `href` / `hrefs` are rendered. Receives `href`,\n * `className`, `aria-label`, and `children`. Defaults to a plain `<a>` element;\n * consumers using a router should pass an adapter that maps `href` to their\n * navigation primitive (e.g. react-router `<Link to={href} />`). */\n LinkComponent?: ElementType;\n}) {\n const sorted = [...data].sort((a, b) => {\n const totalB = b.values.reduce((s, v) => s + v, 0);\n const totalA = a.values.reduce((s, v) => s + v, 0);\n return totalB - totalA;\n });\n\n const isStacked = segments.length > 1;\n\n return (\n <ScrollArea className={cn('w-full h-full', className)}>\n <div className=\"flex items-center gap-3 mb-4 mt-2\">\n <div className=\"flex-1 flex items-center gap-4\">\n {segments.map(seg => (\n <div key={seg.label} className=\"flex items-center gap-2\">\n <div className=\"size-2 rounded-full\" style={{ backgroundColor: seg.color }} />\n <span className=\"text-ui-sm text-neutral3\">{seg.label}</span>\n </div>\n ))}\n </div>\n <span className=\"shrink-0 text-ui-sm text-neutral2 pr-2\">Total</span>\n </div>\n <div className=\"grid gap-3.5\">\n {sorted.map(d => {\n const total = d.values.reduce((s, v) => s + v, 0);\n const rowBody = (\n <>\n <div className=\"relative h-full flex-1 min-w-0\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div\n className={cn('absolute inset-y-0 left-0', d.href ? 'cursor-pointer' : 'cursor-default')}\n style={{ width: `${maxVal > 0 ? (total / maxVal) * 100 : 0}%` }}\n >\n {segments.map((seg, si) => {\n const val = d.values[si] ?? 0;\n const pct = total > 0 ? (val / total) * 100 : 0;\n const left = d.values.slice(0, si).reduce((s, v) => s + (total > 0 ? (v / total) * 100 : 0), 0);\n const isLastWithValue = d.values.slice(si + 1).every(v => !v);\n // Only honor segment-level links when the row itself is not an anchor.\n // Otherwise we'd render <a> nested inside <a>, which is invalid HTML.\n const segHref = d.href ? undefined : d.hrefs?.[si];\n\n const segmentNode = (\n <div\n className={cn(\n 'absolute inset-y-0 opacity-40 dark:opacity-100',\n isStacked && si === 0 && 'rounded-l',\n isStacked && isLastWithValue && 'rounded-r',\n !isStacked && 'rounded',\n segHref && 'cursor-pointer hover:opacity-70 transition-opacity',\n )}\n style={{\n left: isStacked ? `${left}%` : 0,\n width: isStacked ? `${pct}%` : `${pct}%`,\n backgroundColor: seg.color,\n }}\n />\n );\n\n if (segHref) {\n return (\n <LinkComponent\n key={seg.label}\n href={segHref}\n aria-label={`${d.name} — ${seg.label}`}\n className=\"contents\"\n >\n {segmentNode}\n </LinkComponent>\n );\n }\n return <Wrapper key={seg.label}>{segmentNode}</Wrapper>;\n })}\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"top\" className=\"font-mono\">\n <div className=\"grid gap-1\">\n {segments.map((seg, si) => (\n <div key={seg.label} className=\"flex items-center gap-2\">\n <span>{seg.label}</span>\n <span className=\"ml-auto pl-3\">{fmt(d.values[si] ?? 0)}</span>\n </div>\n ))}\n </div>\n </TooltipContent>\n </Tooltip>\n <span className=\"absolute inset-y-0 left-2.5 flex items-center text-ui-sm text-neutral4 truncate z-10 pointer-events-none\">\n {d.name}\n </span>\n </div>\n <span className=\"text-ui-md text-neutral4 tabular-nums shrink-0 pr-3\">{fmt(total)}</span>\n </>\n );\n\n if (d.href) {\n return (\n <LinkComponent\n key={d.name}\n href={d.href}\n className=\"flex items-center gap-14 h-6 rounded outline-none cursor-pointer hover:bg-surface3 focus-visible:bg-surface3 transition-colors\"\n >\n {rowBody}\n </LinkComponent>\n );\n }\n return (\n <div key={d.name} className=\"flex items-center gap-14 h-6 \">\n {rowBody}\n </div>\n );\n })}\n </div>\n </ScrollArea>\n );\n}\n\nfunction Wrapper({ children }: { children: ReactNode }) {\n return <>{children}</>;\n}\n"],"names":["ScrollArea","cn","jsxs","jsx","Fragment","Tooltip","TooltipTrigger","TooltipContent"],"mappings":"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"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -7,7 +7,7 @@ const Avatar = require('./Avatar-Y-1fas25.cjs');
|
|
|
7
7
|
const Badge = require('./Badge-CuKV4oHH.cjs');
|
|
8
8
|
const Breadcrumb = require('./Breadcrumb-BT_nzL3M.cjs');
|
|
9
9
|
const Button = require('./Button-DpIX8JMz.cjs');
|
|
10
|
-
const codeEditor = require('./code-editor-
|
|
10
|
+
const codeEditor = require('./code-editor-DVWPuq12.cjs');
|
|
11
11
|
const highlight = require('./highlight-C2uRVhiA.cjs');
|
|
12
12
|
const EmptyState = require('./EmptyState-vw7dhSKP.cjs');
|
|
13
13
|
const Entity = require('./Entity-DALpbsRa.cjs');
|
|
@@ -21,15 +21,14 @@ const Txt = require('./Txt-Cmn4ug68.cjs');
|
|
|
21
21
|
const alertDialog = require('./alert-dialog-DfQhrc2F.cjs');
|
|
22
22
|
const checkbox = require('./checkbox-Bda6srNY.cjs');
|
|
23
23
|
const collapsible = require('./collapsible-CDSgJ39O.cjs');
|
|
24
|
-
const combobox = require('./combobox-
|
|
25
|
-
const multiCombobox = require('./multi-combobox-DkFLK64B.cjs');
|
|
24
|
+
const combobox = require('./combobox-DQdRtI_v.cjs');
|
|
26
25
|
const combobox$1 = require('@base-ui/react/combobox');
|
|
27
|
-
const command = require('./command-
|
|
26
|
+
const command = require('./command-EI7t_0WS.cjs');
|
|
28
27
|
const code = require('./code-B3WONxnA.cjs');
|
|
29
|
-
const codeBlock = require('./code-block-
|
|
30
|
-
const copyButton = require('./copy-button-
|
|
28
|
+
const codeBlock = require('./code-block-BPI6hA9o.cjs');
|
|
29
|
+
const copyButton = require('./copy-button-ler9dH8g.cjs');
|
|
31
30
|
const dashboardCard = require('./dashboard-card-B9enj4NG.cjs');
|
|
32
|
-
const dialog = require('./dialog-
|
|
31
|
+
const dialog = require('./dialog-C0gOGKEK.cjs');
|
|
33
32
|
const drawer = require('./drawer-DQDa97Ep.cjs');
|
|
34
33
|
const dropdownMenu = require('./dropdown-menu-Vl_C0N5e.cjs');
|
|
35
34
|
const entry = require('./entry-BwpOISbt.cjs');
|
|
@@ -44,13 +43,13 @@ const input = require('./input-DGvJg7no.cjs');
|
|
|
44
43
|
const inputGroup = require('./input-group-Bi_4j-WW.cjs');
|
|
45
44
|
const kbd = require('./kbd-CnIg1L19.cjs');
|
|
46
45
|
const label = require('./label-U8omtW8w.cjs');
|
|
47
|
-
const markdownRenderer = require('./markdown-renderer-
|
|
46
|
+
const markdownRenderer = require('./markdown-renderer-Dyg_1QXx.cjs');
|
|
48
47
|
const metricsCard = require('./metrics-card-hs1pqY2Y.cjs');
|
|
49
48
|
const metricsFlexGrid = require('./metrics-flex-grid-DzlyAgr7.cjs');
|
|
50
49
|
const popover = require('./popover-B8RFw-D-.cjs');
|
|
51
|
-
const propertyFilterCreator = require('./property-filter-creator-
|
|
50
|
+
const propertyFilterCreator = require('./property-filter-creator-CaG_zPdy.cjs');
|
|
52
51
|
const radioGroup = require('./radio-group-CcZMn-TY.cjs');
|
|
53
|
-
const scrollArea = require('./scroll-area-
|
|
52
|
+
const scrollArea = require('./scroll-area-BtcyzOxO.cjs');
|
|
54
53
|
const pendingIndicator = require('./pending-indicator-BxD-kwEk.cjs');
|
|
55
54
|
const searchbar = require('./searchbar-8KtQRL0s.cjs');
|
|
56
55
|
const select = require('./select-DDgw1wG-.cjs');
|
|
@@ -63,7 +62,7 @@ const _switch = require('./switch-DJRX_Onf.cjs');
|
|
|
63
62
|
const themeProvider = require('./theme-provider-aO5-jZVp.cjs');
|
|
64
63
|
const themeToggle = require('./theme-toggle-DWtjTo-a.cjs');
|
|
65
64
|
const tooltip = require('./tooltip-j8gUR1Qk.cjs');
|
|
66
|
-
const truncate = require('./truncate-
|
|
65
|
+
const truncate = require('./truncate-Csk5KmAy.cjs');
|
|
67
66
|
const buttonsGroup = require('./buttons-group-BvLg2kpv.cjs');
|
|
68
67
|
const mainContent = require('./main-content-CnmMWNin.cjs');
|
|
69
68
|
const mainHeader = require('./main-header-DJLRceP9.cjs');
|
|
@@ -72,7 +71,7 @@ const dateTimePicker = require('./date-time-picker-Bjr6V3AR.cjs');
|
|
|
72
71
|
const timePicker = require('./time-picker-DWrxHBfR.cjs');
|
|
73
72
|
const components_JSONSchemaForm = require('./components/JSONSchemaForm.cjs.js');
|
|
74
73
|
const keyValueList = require('./key-value-list-D067I300.cjs');
|
|
75
|
-
const mainSidebar = require('./main-sidebar-
|
|
74
|
+
const mainSidebar = require('./main-sidebar-ByHmwU4R.cjs');
|
|
76
75
|
const pageHeader = require('./page-header-C1ZlL4Ua.cjs');
|
|
77
76
|
const section = require('./section-muObW4n-.cjs');
|
|
78
77
|
const sectionCard = require('./section-card-23Os1QRs.cjs');
|
|
@@ -81,7 +80,7 @@ const tabsTab = require('./tabs-tab-CulV7e_n.cjs');
|
|
|
81
80
|
const tabsContent = require('./tabs-content-m86TGI_b.cjs');
|
|
82
81
|
const getShortId = require('./get-short-id-DtN4BmrD.cjs');
|
|
83
82
|
const contentBlock = require('./content-block-Csb01oxE.cjs');
|
|
84
|
-
const multiColumn = require('./multi-column-
|
|
83
|
+
const multiColumn = require('./multi-column-BLRjYB5N.cjs');
|
|
85
84
|
const codeDiff = require('./code-diff-C2vuR6Ti.cjs');
|
|
86
85
|
const helpers = require('./helpers-BbJUaSrW.cjs');
|
|
87
86
|
const Notice = require('./Notice-Mjo3MJi2.cjs');
|
|
@@ -89,35 +88,38 @@ const chip = require('./chip-Cx5D5DkA.cjs');
|
|
|
89
88
|
const chipsGroup = require('./chips-group-CaxAKuxv.cjs');
|
|
90
89
|
const tree = require('./tree-BcSHc5Cw.cjs');
|
|
91
90
|
const selectDataFilter = require('./select-data-filter-DxoxTXk2.cjs');
|
|
92
|
-
const tracesDataList = require('./traces-data-list-
|
|
93
|
-
const dataListSkeleton = require('./data-list-skeleton-
|
|
94
|
-
const logsDataList = require('./logs-data-list-
|
|
91
|
+
const tracesDataList = require('./traces-data-list-BNmnKyDD.cjs');
|
|
92
|
+
const dataListSkeleton = require('./data-list-skeleton-BlOwAki1.cjs');
|
|
93
|
+
const logsDataList = require('./logs-data-list-3qmFjBz8.cjs');
|
|
95
94
|
const noDataPageLayout = require('./no-data-page-layout-CiNBx-vK.cjs');
|
|
96
95
|
const pageHeadingContext = require('./page-heading-context-Du-CpxAx.cjs');
|
|
97
96
|
const listSearch = require('./list-search-DY84ZCM-.cjs');
|
|
98
97
|
const ErrorBoundary = require('./ErrorBoundary-BqiUSXyJ.cjs');
|
|
99
98
|
const ErrorState = require('./ErrorState-Dq9BVWmR.cjs');
|
|
100
99
|
const Card = require('./Card-Xx0_PeuI.cjs');
|
|
101
|
-
const dataCodeSection = require('./data-code-section-
|
|
100
|
+
const dataCodeSection = require('./data-code-section-ChVXPz-i.cjs');
|
|
102
101
|
const components_DataDetailsPanel = require('./components/DataDetailsPanel.cjs.js');
|
|
103
|
-
const dataKeysAndValues = require('./data-keys-and-values-
|
|
104
|
-
const dataPanel = require('./data-panel-
|
|
102
|
+
const dataKeysAndValues = require('./data-keys-and-values-KIwfkmc7.cjs');
|
|
103
|
+
const dataPanel = require('./data-panel-DBxE_3ux.cjs');
|
|
105
104
|
const dateTimeRangePicker = require('./date-time-range-picker-DjcVeD-Z.cjs');
|
|
106
|
-
const horizontalBars = require('./horizontal-bars-
|
|
107
|
-
const metricsDataTable = require('./metrics-data-table-
|
|
105
|
+
const horizontalBars = require('./horizontal-bars-uPFpgihX.cjs');
|
|
106
|
+
const metricsDataTable = require('./metrics-data-table-AjAA-dqH.cjs');
|
|
108
107
|
const metricsLineChart = require('./metrics-line-chart-D1ZGVepo.cjs');
|
|
109
|
-
const scrollableContainer = require('./scrollable-container-Btq-TfCL.cjs');
|
|
110
108
|
const StatusBadge = require('./StatusBadge-DKtfODhH.cjs');
|
|
111
109
|
const tokens = require('./tokens.cjs.js');
|
|
112
110
|
const spacings = require('./spacings-BP8L49kn.cjs');
|
|
113
111
|
const controlSize = require('./control-size-D67C0kPZ.cjs');
|
|
114
112
|
const formElement = require('./form-element-Cy7aV1Ds.cjs');
|
|
115
113
|
const transitions = require('./transitions-DpczSjmD.cjs');
|
|
116
|
-
const
|
|
117
|
-
const
|
|
114
|
+
const hooks_useCopyToClipboard = require('./use-copy-to-clipboard-DHaJCGet.cjs');
|
|
115
|
+
const hooks_useInView = require('./hooks/use-in-view.cjs.js');
|
|
116
|
+
const hooks_useAutoscroll = require('./hooks/use-autoscroll.cjs.js');
|
|
117
|
+
const hooks_useIsMobile = require('./hooks/use-is-mobile.cjs.js');
|
|
118
|
+
const hooks_useKeyboardShortcutLabel = require('./hooks/use-keyboard-shortcut-label.cjs.js');
|
|
118
119
|
const utils = require('./utils-vA5sWo9W.cjs');
|
|
119
120
|
const jsxRuntime = require('react/jsx-runtime');
|
|
120
121
|
const lucideReact = require('lucide-react');
|
|
122
|
+
const React = require('react');
|
|
121
123
|
const reactResizablePanels = require('react-resizable-panels');
|
|
122
124
|
const Icon = require('./Icon-C_Ooy-cP.cjs');
|
|
123
125
|
const zustand = require('zustand');
|
|
@@ -1412,33 +1414,6 @@ const MetricsIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "
|
|
|
1412
1414
|
)
|
|
1413
1415
|
] });
|
|
1414
1416
|
|
|
1415
|
-
const useInView = () => {
|
|
1416
|
-
const [inView, setInView] = React.useState(false);
|
|
1417
|
-
const setRef = React.useCallback((node) => {
|
|
1418
|
-
if (node) {
|
|
1419
|
-
const observer = new IntersectionObserver(([entry]) => {
|
|
1420
|
-
setInView(entry.isIntersecting);
|
|
1421
|
-
});
|
|
1422
|
-
observer.observe(node);
|
|
1423
|
-
return () => observer.disconnect();
|
|
1424
|
-
}
|
|
1425
|
-
}, []);
|
|
1426
|
-
return { inView, setRef };
|
|
1427
|
-
};
|
|
1428
|
-
|
|
1429
|
-
const useIsMobile = (breakpoint = 1024) => {
|
|
1430
|
-
const query = React.useMemo(() => `(max-width: ${breakpoint - 1}px)`, [breakpoint]);
|
|
1431
|
-
const [isMobile, setIsMobile] = React.useState(false);
|
|
1432
|
-
React.useLayoutEffect(() => {
|
|
1433
|
-
const mq = window.matchMedia(query);
|
|
1434
|
-
const update = () => setIsMobile(mq.matches);
|
|
1435
|
-
update();
|
|
1436
|
-
mq.addEventListener("change", update);
|
|
1437
|
-
return () => mq.removeEventListener("change", update);
|
|
1438
|
-
}, [query]);
|
|
1439
|
-
return isMobile;
|
|
1440
|
-
};
|
|
1441
|
-
|
|
1442
1417
|
const lodashTitleCase = (str) => {
|
|
1443
1418
|
const camelCased = str.replace(/[-_\s]+(.)?/g, (_, char) => char ? char.toUpperCase() : "").replace(/^(.)/, (char) => char.toLowerCase());
|
|
1444
1419
|
return camelCased.replace(/([A-Z])/g, " $1").replace(/^./, (str2) => str2.toUpperCase()).trim();
|
|
@@ -2550,10 +2525,48 @@ const EXTENSION_TO_MIME = {
|
|
|
2550
2525
|
svg: "image/svg+xml",
|
|
2551
2526
|
bmp: "image/bmp",
|
|
2552
2527
|
ico: "image/x-icon",
|
|
2553
|
-
pdf: "application/pdf"
|
|
2528
|
+
pdf: "application/pdf",
|
|
2529
|
+
// Video
|
|
2530
|
+
mp4: "video/mp4",
|
|
2531
|
+
mov: "video/quicktime",
|
|
2532
|
+
webm: "video/webm",
|
|
2533
|
+
mkv: "video/x-matroska",
|
|
2534
|
+
avi: "video/x-msvideo",
|
|
2535
|
+
mpeg: "video/mpeg",
|
|
2536
|
+
mpg: "video/mpeg",
|
|
2537
|
+
// Audio
|
|
2538
|
+
mp3: "audio/mpeg",
|
|
2539
|
+
wav: "audio/wav",
|
|
2540
|
+
ogg: "audio/ogg",
|
|
2541
|
+
oga: "audio/ogg",
|
|
2542
|
+
m4a: "audio/mp4",
|
|
2543
|
+
aac: "audio/aac",
|
|
2544
|
+
flac: "audio/flac"
|
|
2554
2545
|
};
|
|
2555
2546
|
|
|
2547
|
+
const BROWSER_FETCHABLE_SCHEMES = ["https://", "http://"];
|
|
2548
|
+
const NON_FETCHABLE_REMOTE_SCHEMES = ["gs://", "s3://"];
|
|
2549
|
+
const REMOTE_URL_SCHEMES = [...BROWSER_FETCHABLE_SCHEMES, ...NON_FETCHABLE_REMOTE_SCHEMES];
|
|
2550
|
+
const isRemoteUrl = (value) => REMOTE_URL_SCHEMES.some((scheme) => value.startsWith(scheme));
|
|
2551
|
+
const isBrowserFetchableUrl = (value) => BROWSER_FETCHABLE_SCHEMES.some((scheme) => value.startsWith(scheme));
|
|
2552
|
+
const isNonFetchableRemoteUrl = (value) => NON_FETCHABLE_REMOTE_SCHEMES.some((scheme) => value.startsWith(scheme));
|
|
2553
|
+
|
|
2554
|
+
const contentTypeFromExtension = (url) => {
|
|
2555
|
+
try {
|
|
2556
|
+
const { pathname } = new URL(url);
|
|
2557
|
+
const extension = pathname.split(".").pop();
|
|
2558
|
+
if (!extension) return void 0;
|
|
2559
|
+
return EXTENSION_TO_MIME[extension.toLowerCase()];
|
|
2560
|
+
} catch {
|
|
2561
|
+
const extension = url.split(".").pop()?.split(/[?#]/)[0];
|
|
2562
|
+
if (!extension) return void 0;
|
|
2563
|
+
return EXTENSION_TO_MIME[extension.toLowerCase()];
|
|
2564
|
+
}
|
|
2565
|
+
};
|
|
2556
2566
|
const getFileContentType = async (url) => {
|
|
2567
|
+
if (NON_FETCHABLE_REMOTE_SCHEMES.some((scheme) => url.startsWith(scheme))) {
|
|
2568
|
+
return contentTypeFromExtension(url);
|
|
2569
|
+
}
|
|
2557
2570
|
try {
|
|
2558
2571
|
const response = await fetch(url, {
|
|
2559
2572
|
method: "HEAD"
|
|
@@ -2567,17 +2580,7 @@ const getFileContentType = async (url) => {
|
|
|
2567
2580
|
}
|
|
2568
2581
|
return contentType;
|
|
2569
2582
|
} catch {
|
|
2570
|
-
|
|
2571
|
-
const urlObject = new URL(url);
|
|
2572
|
-
const pathname = urlObject.pathname;
|
|
2573
|
-
const extension = pathname.split(".").pop();
|
|
2574
|
-
if (!extension) return void 0;
|
|
2575
|
-
return EXTENSION_TO_MIME[extension.toLowerCase()];
|
|
2576
|
-
} catch {
|
|
2577
|
-
const extension = url.split(".").pop()?.split(/[?#]/)[0];
|
|
2578
|
-
if (!extension) return void 0;
|
|
2579
|
-
return EXTENSION_TO_MIME[extension.toLowerCase()];
|
|
2580
|
-
}
|
|
2583
|
+
return contentTypeFromExtension(url);
|
|
2581
2584
|
}
|
|
2582
2585
|
};
|
|
2583
2586
|
|
|
@@ -6056,7 +6059,7 @@ function useDownloadTraceJson() {
|
|
|
6056
6059
|
if (isPending) return;
|
|
6057
6060
|
setIsPending(true);
|
|
6058
6061
|
const task = client.getTrace(traceId).then((trace) => downloadJson(`trace-${traceId}.json`, trace)).finally(() => setIsPending(false));
|
|
6059
|
-
|
|
6062
|
+
hooks_useCopyToClipboard.toast.promise({
|
|
6060
6063
|
myPromise: task,
|
|
6061
6064
|
loadingMessage: "Preparing trace download…",
|
|
6062
6065
|
successMessage: "Trace downloaded",
|
|
@@ -7108,7 +7111,7 @@ const useTraces = ({
|
|
|
7108
7111
|
} = polling;
|
|
7109
7112
|
const client = react.useMastraClient();
|
|
7110
7113
|
const queryClient = reactQuery.useQueryClient();
|
|
7111
|
-
const { inView: isEndOfListInView, setRef: setEndOfListElement } = useInView();
|
|
7114
|
+
const { inView: isEndOfListInView, setRef: setEndOfListElement } = hooks_useInView.useInView();
|
|
7112
7115
|
const [deltaSupport, setDeltaSupport] = React.useState(() => deltaSupportByClient.get(client) ?? "unknown");
|
|
7113
7116
|
const deltaUnsupported = deltaSupport === "unsupported";
|
|
7114
7117
|
const [autoRefetch, setAutoRefetch] = React.useState(true);
|
|
@@ -7686,13 +7689,13 @@ function useTraceFilterPersistence(searchParams, setSearchParams, options) {
|
|
|
7686
7689
|
saveTraceFiltersToStorage(searchParams, storageKey);
|
|
7687
7690
|
setHasSavedFilters(true);
|
|
7688
7691
|
const text = messages?.saved ?? DEFAULT_SAVED_MESSAGE$1;
|
|
7689
|
-
if (text !== false)
|
|
7692
|
+
if (text !== false) hooks_useCopyToClipboard.toast.success(text);
|
|
7690
7693
|
}, [searchParams, storageKey, messages?.saved]);
|
|
7691
7694
|
const handleRemoveSaved = React.useCallback(() => {
|
|
7692
7695
|
clearSavedTraceFilters(storageKey);
|
|
7693
7696
|
setHasSavedFilters(false);
|
|
7694
7697
|
const text = messages?.cleared ?? DEFAULT_CLEARED_MESSAGE$1;
|
|
7695
|
-
if (text !== false)
|
|
7698
|
+
if (text !== false) hooks_useCopyToClipboard.toast.success(text);
|
|
7696
7699
|
}, [storageKey, messages?.cleared]);
|
|
7697
7700
|
const hydratedRef = React.useRef(false);
|
|
7698
7701
|
React.useEffect(() => {
|
|
@@ -8105,7 +8108,7 @@ function selectLogs(data) {
|
|
|
8105
8108
|
}
|
|
8106
8109
|
const useLogs = ({ filters } = {}) => {
|
|
8107
8110
|
const client = react.useMastraClient();
|
|
8108
|
-
const { inView: isEndOfListInView, setRef: setEndOfListElement } = useInView();
|
|
8111
|
+
const { inView: isEndOfListInView, setRef: setEndOfListElement } = hooks_useInView.useInView();
|
|
8109
8112
|
const query = reactQuery.useInfiniteQuery({
|
|
8110
8113
|
queryKey: ["logs", filters],
|
|
8111
8114
|
queryFn: ({ pageParam }) => client.listLogsVNext({
|
|
@@ -8326,13 +8329,13 @@ function useLogsFilterPersistence(searchParams, setSearchParams, options) {
|
|
|
8326
8329
|
saveLogsFiltersToStorage(searchParams, storageKey);
|
|
8327
8330
|
setHasSavedFilters(true);
|
|
8328
8331
|
const text = messages?.saved ?? DEFAULT_SAVED_MESSAGE;
|
|
8329
|
-
if (text !== false)
|
|
8332
|
+
if (text !== false) hooks_useCopyToClipboard.toast.success(text);
|
|
8330
8333
|
}, [searchParams, storageKey, messages?.saved]);
|
|
8331
8334
|
const handleRemoveSaved = React.useCallback(() => {
|
|
8332
8335
|
clearSavedLogsFilters(storageKey);
|
|
8333
8336
|
setHasSavedFilters(false);
|
|
8334
8337
|
const text = messages?.cleared ?? DEFAULT_CLEARED_MESSAGE;
|
|
8335
|
-
if (text !== false)
|
|
8338
|
+
if (text !== false) hooks_useCopyToClipboard.toast.success(text);
|
|
8336
8339
|
}, [storageKey, messages?.cleared]);
|
|
8337
8340
|
const hydratedRef = React.useRef(false);
|
|
8338
8341
|
React.useEffect(() => {
|
|
@@ -8480,8 +8483,7 @@ exports.Collapsible = collapsible.Collapsible;
|
|
|
8480
8483
|
exports.CollapsibleContent = collapsible.CollapsibleContent;
|
|
8481
8484
|
exports.CollapsibleTrigger = collapsible.CollapsibleTrigger;
|
|
8482
8485
|
exports.Combobox = combobox.Combobox;
|
|
8483
|
-
exports.
|
|
8484
|
-
exports.comboboxStyles = multiCombobox.comboboxStyles;
|
|
8486
|
+
exports.comboboxStyles = combobox.comboboxStyles;
|
|
8485
8487
|
Object.defineProperty(exports, "ComboboxPrimitive", {
|
|
8486
8488
|
enumerable: true,
|
|
8487
8489
|
get: () => combobox$1.Combobox
|
|
@@ -8565,7 +8567,6 @@ exports.RadioGroup = radioGroup.RadioGroup;
|
|
|
8565
8567
|
exports.RadioGroupItem = radioGroup.RadioGroupItem;
|
|
8566
8568
|
exports.ScrollArea = scrollArea.ScrollArea;
|
|
8567
8569
|
exports.ScrollBar = scrollArea.ScrollBar;
|
|
8568
|
-
exports.useAutoscroll = scrollArea.useAutoscroll;
|
|
8569
8570
|
exports.PendingIndicator = pendingIndicator.PendingIndicator;
|
|
8570
8571
|
exports.Searchbar = searchbar.Searchbar;
|
|
8571
8572
|
exports.SearchbarWrapper = searchbar.SearchbarWrapper;
|
|
@@ -8693,7 +8694,6 @@ exports.HorizontalBars = horizontalBars.HorizontalBars;
|
|
|
8693
8694
|
exports.MetricsDataTable = metricsDataTable.MetricsDataTable;
|
|
8694
8695
|
exports.MetricsLineChart = metricsLineChart.MetricsLineChart;
|
|
8695
8696
|
exports.MetricsLineChartTooltip = metricsLineChart.MetricsLineChartTooltip;
|
|
8696
|
-
exports.ScrollableContainer = scrollableContainer.ScrollableContainer;
|
|
8697
8697
|
exports.StatusBadge = StatusBadge.StatusBadge;
|
|
8698
8698
|
exports.Animations = tokens.Animations;
|
|
8699
8699
|
exports.BorderColors = spacings.BorderColors;
|
|
@@ -8720,9 +8720,14 @@ exports.unstyledFormElementStyle = formElement.unstyledFormElementStyle;
|
|
|
8720
8720
|
exports.focusRing = transitions.focusRing;
|
|
8721
8721
|
exports.hoverEffects = transitions.hoverEffects;
|
|
8722
8722
|
exports.transitions = transitions.transitions;
|
|
8723
|
-
exports.Toaster =
|
|
8724
|
-
exports.toast =
|
|
8725
|
-
exports.useCopyToClipboard =
|
|
8723
|
+
exports.Toaster = hooks_useCopyToClipboard.Toaster;
|
|
8724
|
+
exports.toast = hooks_useCopyToClipboard.toast;
|
|
8725
|
+
exports.useCopyToClipboard = hooks_useCopyToClipboard.useCopyToClipboard;
|
|
8726
|
+
exports.useInView = hooks_useInView.useInView;
|
|
8727
|
+
exports.useAutoscroll = hooks_useAutoscroll.useAutoscroll;
|
|
8728
|
+
exports.useIsMobile = hooks_useIsMobile.useIsMobile;
|
|
8729
|
+
exports.useIsApplePlatform = hooks_useKeyboardShortcutLabel.useIsApplePlatform;
|
|
8730
|
+
exports.useKeyboardShortcutLabel = hooks_useKeyboardShortcutLabel.useKeyboardShortcutLabel;
|
|
8726
8731
|
exports.cn = utils.cn;
|
|
8727
8732
|
exports.Icon = Icon.Icon;
|
|
8728
8733
|
exports.AgentCoinIcon = AgentCoinIcon;
|
|
@@ -8733,6 +8738,7 @@ exports.AnthropicChatIcon = AnthropicChatIcon;
|
|
|
8733
8738
|
exports.AnthropicMessagesIcon = AnthropicMessagesIcon;
|
|
8734
8739
|
exports.ApiIcon = ApiIcon;
|
|
8735
8740
|
exports.AzureIcon = AzureIcon;
|
|
8741
|
+
exports.BROWSER_FETCHABLE_SCHEMES = BROWSER_FETCHABLE_SCHEMES;
|
|
8736
8742
|
exports.BarListContent = BarListContent;
|
|
8737
8743
|
exports.BranchIcon = BranchIcon;
|
|
8738
8744
|
exports.CHART_COLORS = CHART_COLORS;
|
|
@@ -8794,6 +8800,7 @@ exports.MetricsIcon = MetricsIcon;
|
|
|
8794
8800
|
exports.MetricsProvider = MetricsProvider;
|
|
8795
8801
|
exports.MistralIcon = MistralIcon;
|
|
8796
8802
|
exports.ModelUsageCostCardView = ModelUsageCostCardView;
|
|
8803
|
+
exports.NON_FETCHABLE_REMOTE_SCHEMES = NON_FETCHABLE_REMOTE_SCHEMES;
|
|
8797
8804
|
exports.NetlifyIcon = NetlifyIcon;
|
|
8798
8805
|
exports.NoLogsInfo = NoLogsInfo;
|
|
8799
8806
|
exports.NoTracesInfo = NoTracesInfo;
|
|
@@ -8807,6 +8814,7 @@ exports.PanelDrawer = PanelDrawer;
|
|
|
8807
8814
|
exports.PanelSeparator = PanelSeparator;
|
|
8808
8815
|
exports.ProcessorIcon = ProcessorIcon;
|
|
8809
8816
|
exports.PromptIcon = PromptIcon;
|
|
8817
|
+
exports.REMOTE_URL_SCHEMES = REMOTE_URL_SCHEMES;
|
|
8810
8818
|
exports.ROOT_ENTITY_TYPES = ROOT_ENTITY_TYPES;
|
|
8811
8819
|
exports.ROOT_ENTITY_TYPE_OPTIONS = ROOT_ENTITY_TYPE_OPTIONS;
|
|
8812
8820
|
exports.RepoIcon = RepoIcon;
|
|
@@ -8909,8 +8917,11 @@ exports.is401UnauthorizedError = is401UnauthorizedError;
|
|
|
8909
8917
|
exports.is403ForbiddenError = is403ForbiddenError;
|
|
8910
8918
|
exports.is404NotFoundError = is404NotFoundError;
|
|
8911
8919
|
exports.isBranchesNotSupportedError = isBranchesNotSupportedError;
|
|
8920
|
+
exports.isBrowserFetchableUrl = isBrowserFetchableUrl;
|
|
8921
|
+
exports.isNonFetchableRemoteUrl = isNonFetchableRemoteUrl;
|
|
8912
8922
|
exports.isNonRetryableError = isNonRetryableError;
|
|
8913
8923
|
exports.isObjectEmpty = isObjectEmpty;
|
|
8924
|
+
exports.isRemoteUrl = isRemoteUrl;
|
|
8914
8925
|
exports.isRule = isRule;
|
|
8915
8926
|
exports.isRuleGroup = isRuleGroup;
|
|
8916
8927
|
exports.isTokenLimitExceeded = isTokenLimitExceeded;
|
|
@@ -8941,8 +8952,6 @@ exports.useDownloadTraceJson = useDownloadTraceJson;
|
|
|
8941
8952
|
exports.useDrilldown = useDrilldown;
|
|
8942
8953
|
exports.useEntityNames = useEntityNames;
|
|
8943
8954
|
exports.useEnvironments = useEnvironments;
|
|
8944
|
-
exports.useInView = useInView;
|
|
8945
|
-
exports.useIsMobile = useIsMobile;
|
|
8946
8955
|
exports.useLatencyMetrics = useLatencyMetrics;
|
|
8947
8956
|
exports.useLogs = useLogs;
|
|
8948
8957
|
exports.useLogsFilterPersistence = useLogsFilterPersistence;
|