@mastra/playground-ui 53.0.1-alpha.0 → 53.1.0-alpha.2

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 (83) hide show
  1. package/dist/{code-block-DeksY23p.js → code-block-CKowdtY1.js} +3 -3
  2. package/dist/{code-block-DeksY23p.js.map → code-block-CKowdtY1.js.map} +1 -1
  3. package/dist/{code-block-DgHrBuR8.cjs → code-block-qe7OUAjF.cjs} +3 -3
  4. package/dist/{code-block-DgHrBuR8.cjs.map → code-block-qe7OUAjF.cjs.map} +1 -1
  5. package/dist/components/CodeBlock.cjs.js +1 -1
  6. package/dist/components/CodeBlock.es.js +1 -1
  7. package/dist/components/LogsDataList.cjs.js +1 -0
  8. package/dist/components/LogsDataList.cjs.js.map +1 -1
  9. package/dist/components/LogsDataList.es.js +1 -0
  10. package/dist/components/LogsDataList.es.js.map +1 -1
  11. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  12. package/dist/components/MarkdownRenderer.es.js +1 -1
  13. package/dist/components/SettingsLayout.cjs.js +27 -13
  14. package/dist/components/SettingsLayout.cjs.js.map +1 -1
  15. package/dist/components/SettingsLayout.es.js +27 -13
  16. package/dist/components/SettingsLayout.es.js.map +1 -1
  17. package/dist/components/Tabs.cjs.js +3 -3
  18. package/dist/components/Tabs.es.js +3 -3
  19. package/dist/components/ThreadList.cjs.js +4 -4
  20. package/dist/components/ThreadList.cjs.js.map +1 -1
  21. package/dist/components/ThreadList.es.js +4 -4
  22. package/dist/components/ThreadList.es.js.map +1 -1
  23. package/dist/components/ai/plan.cjs.js +1 -1
  24. package/dist/components/ai/plan.es.js +1 -1
  25. package/dist/components/ai/tool-call.cjs.js +1 -1
  26. package/dist/components/ai/tool-call.es.js +1 -1
  27. package/dist/domains/metrics/components/latency-card-view.cjs.js +3 -3
  28. package/dist/domains/metrics/components/latency-card-view.es.js +3 -3
  29. package/dist/domains/metrics/components/memory-card-view.cjs.js +3 -3
  30. package/dist/domains/metrics/components/memory-card-view.es.js +3 -3
  31. package/dist/domains/metrics/components/scores-card-view.cjs.js +3 -3
  32. package/dist/domains/metrics/components/scores-card-view.es.js +3 -3
  33. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +3 -3
  34. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +3 -3
  35. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +3 -3
  36. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +3 -3
  37. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +3 -3
  38. package/dist/domains/metrics/components/traces-volume-card-view.es.js +3 -3
  39. package/dist/domains/traces/components/span-data-panel-view.cjs.js +3 -3
  40. package/dist/domains/traces/components/span-data-panel-view.es.js +3 -3
  41. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +3 -3
  42. package/dist/domains/traces/components/trace-data-panel-view.es.js +3 -3
  43. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -0
  44. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  45. package/dist/ee/signals/components/entity-index-list.es.js +1 -0
  46. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  47. package/dist/ee/signals/sankey-signals.cjs.js +1 -1
  48. package/dist/ee/signals/sankey-signals.es.js +1 -1
  49. package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
  50. package/dist/ee/signals/view-mode-tab.es.js +1 -1
  51. package/dist/{markdown-renderer-GVtZLunG.cjs → markdown-renderer-CI43GQqh.cjs} +2 -2
  52. package/dist/{markdown-renderer-GVtZLunG.cjs.map → markdown-renderer-CI43GQqh.cjs.map} +1 -1
  53. package/dist/{markdown-renderer-CaFpZTFS.js → markdown-renderer-E_2ewUDs.js} +2 -2
  54. package/dist/{markdown-renderer-CaFpZTFS.js.map → markdown-renderer-E_2ewUDs.js.map} +1 -1
  55. package/dist/src/ds/components/SettingsLayout/settings-layout.d.ts +4 -1
  56. package/dist/src/ds/components/SettingsLayout/settings-layout.stories.d.ts +19 -1
  57. package/dist/src/ds/components/Tabs/tabs-context.d.ts +20 -0
  58. package/dist/src/ds/components/Tabs/tabs-root.d.ts +5 -2
  59. package/dist/src/ds/components/Tabs/tabs-tab.d.ts +2 -1
  60. package/dist/src/ds/components/Tabs/tabs.stories.d.ts +9 -0
  61. package/dist/style.css +18 -61
  62. package/dist/{tabs-content-CLgmU6S_.js → tabs-content-CO1aqUws.js} +3 -2
  63. package/dist/tabs-content-CO1aqUws.js.map +1 -0
  64. package/dist/{tabs-content-BxToGCDw.cjs → tabs-content-DktkvjQq.cjs} +3 -2
  65. package/dist/tabs-content-DktkvjQq.cjs.map +1 -0
  66. package/dist/tabs-root-DP_5NGAv.js +183 -0
  67. package/dist/tabs-root-DP_5NGAv.js.map +1 -0
  68. package/dist/tabs-root-dbq4ph7H.cjs +186 -0
  69. package/dist/tabs-root-dbq4ph7H.cjs.map +1 -0
  70. package/dist/tabs-root.css +287 -0
  71. package/dist/{tabs-tab-Qlfs2X2g.js → tabs-tab-BIloVjDS.js} +49 -16
  72. package/dist/tabs-tab-BIloVjDS.js.map +1 -0
  73. package/dist/{tabs-tab-Ha0C9Dv3.cjs → tabs-tab-Box-WPFr.cjs} +49 -14
  74. package/dist/tabs-tab-Box-WPFr.cjs.map +1 -0
  75. package/package.json +8 -8
  76. package/dist/tabs-content-BxToGCDw.cjs.map +0 -1
  77. package/dist/tabs-content-CLgmU6S_.js.map +0 -1
  78. package/dist/tabs-root-BNcLC-s6.cjs +0 -72
  79. package/dist/tabs-root-BNcLC-s6.cjs.map +0 -1
  80. package/dist/tabs-root-BnwVjJbD.js +0 -69
  81. package/dist/tabs-root-BnwVjJbD.js.map +0 -1
  82. package/dist/tabs-tab-Ha0C9Dv3.cjs.map +0 -1
  83. package/dist/tabs-tab-Qlfs2X2g.js.map +0 -1
@@ -2,8 +2,8 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { C as Code } from './code-D4Vw_fYq.js';
3
3
  import { C as CopyButton } from './copy-button-BHmcGzIz.js';
4
4
  import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from './select-AvBDZffY.js';
5
- import { a as Tabs, T as TabList } from './tabs-root-BnwVjJbD.js';
6
- import { T as Tab } from './tabs-tab-Qlfs2X2g.js';
5
+ import { a as Tabs, T as TabList } from './tabs-root-DP_5NGAv.js';
6
+ import { T as Tab } from './tabs-tab-BIloVjDS.js';
7
7
  import { transitions } from './primitives/transitions.es.js';
8
8
  import { c as cn } from './cn-B4oPhFx9.js';
9
9
 
@@ -83,4 +83,4 @@ function CodeBlock({
83
83
  }
84
84
 
85
85
  export { CodeBlock as C };
86
- //# sourceMappingURL=code-block-DeksY23p.js.map
86
+ //# sourceMappingURL=code-block-CKowdtY1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-block-DeksY23p.js","sources":["../src/ds/components/CodeBlock/code-block.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Code } from '../Code/code';\nimport { CopyButton } from '../CopyButton/copy-button';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../Select/select';\nimport { TabList } from '../Tabs/tabs-list';\nimport { Tabs } from '../Tabs/tabs-root';\nimport { Tab } from '../Tabs/tabs-tab';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type CodeBlockSelector = 'select' | 'tabs';\n\nexport type CodeBlockOverflow = 'wrap' | 'scroll';\n\nexport interface CodeBlockOption {\n label: string;\n value: string;\n}\n\nexport interface CodeBlockProps {\n code: string;\n options?: CodeBlockOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n selector?: CodeBlockSelector;\n fileName?: string;\n lang?: string;\n /** `wrap` (default) breaks long lines — best for commands and snippets.\n * `scroll` preserves columns behind a horizontal scroll — best for source code. */\n overflow?: CodeBlockOverflow;\n copyMessage?: string;\n copyTooltip?: string;\n actions?: ReactNode;\n className?: string;\n}\n\nexport function CodeBlock({\n code,\n options,\n value,\n onValueChange,\n selector = 'select',\n fileName,\n lang,\n overflow = 'wrap',\n copyMessage,\n copyTooltip,\n actions,\n className,\n}: CodeBlockProps) {\n const hasOptions = options && options.length > 0;\n const useTabs = hasOptions && selector === 'tabs';\n const useSelect = hasOptions && selector === 'select';\n const firstOption = options?.[0];\n const activeValue = value ?? firstOption?.value;\n\n return (\n <figure\n // A scrolling `pre` still reports its longest line as an intrinsic width, which\n // grows every ancestor; containment keeps the block inside the width it is given.\n className={cn(\n 'group relative flex w-full flex-col overflow-hidden rounded-2xl border border-border2/40 bg-surface2 [contain:inline-size]',\n className,\n )}\n >\n {useTabs && firstOption && (\n <Tabs defaultTab={firstOption.value} value={activeValue} onValueChange={onValueChange ?? (() => {})}>\n <div className=\"flex items-stretch\">\n <div className=\"min-w-0 flex-1\">\n <TabList>\n {options.map(opt => (\n <Tab key={opt.value} value={opt.value}>\n {opt.label}\n </Tab>\n ))}\n </TabList>\n </div>\n {actions && <div className=\"border-border1 flex shrink-0 items-center border-b pr-2 pl-3\">{actions}</div>}\n </div>\n </Tabs>\n )}\n\n {useSelect && options && (\n <div className=\"border-border2/40 flex items-center border-b px-2 py-1.5\">\n <Select value={activeValue} onValueChange={onValueChange}>\n <SelectTrigger size=\"sm\" variant=\"ghost\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {options.map(opt => (\n <SelectItem key={opt.value} value={opt.value}>\n {opt.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && fileName && (\n <div className=\"border-border2/40 flex items-center border-b px-4 py-2\">\n <figcaption className=\"text-ui-sm text-neutral4 font-mono\">{fileName}</figcaption>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && !fileName && actions && (\n <div className=\"border-border2/40 flex items-center justify-end border-b px-2 py-1.5\">{actions}</div>\n )}\n\n <div className=\"relative\">\n <Code\n code={code}\n lang={lang}\n className={cn(\n 'px-4 py-3 font-mono text-ui-sm text-neutral5',\n overflow === 'scroll' ? 'overflow-x-auto whitespace-pre' : 'break-all whitespace-pre-wrap',\n )}\n />\n <CopyButton\n content={code}\n copyMessage={copyMessage}\n tooltip={copyTooltip}\n size=\"sm\"\n className={cn(\n 'absolute top-2 right-2 opacity-100 group-focus-within:opacity-100 group-hover:opacity-100 pointer-fine:opacity-0',\n transitions.opacity,\n )}\n />\n </div>\n </figure>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-block-CKowdtY1.js","sources":["../src/ds/components/CodeBlock/code-block.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Code } from '../Code/code';\nimport { CopyButton } from '../CopyButton/copy-button';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../Select/select';\nimport { TabList } from '../Tabs/tabs-list';\nimport { Tabs } from '../Tabs/tabs-root';\nimport { Tab } from '../Tabs/tabs-tab';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type CodeBlockSelector = 'select' | 'tabs';\n\nexport type CodeBlockOverflow = 'wrap' | 'scroll';\n\nexport interface CodeBlockOption {\n label: string;\n value: string;\n}\n\nexport interface CodeBlockProps {\n code: string;\n options?: CodeBlockOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n selector?: CodeBlockSelector;\n fileName?: string;\n lang?: string;\n /** `wrap` (default) breaks long lines — best for commands and snippets.\n * `scroll` preserves columns behind a horizontal scroll — best for source code. */\n overflow?: CodeBlockOverflow;\n copyMessage?: string;\n copyTooltip?: string;\n actions?: ReactNode;\n className?: string;\n}\n\nexport function CodeBlock({\n code,\n options,\n value,\n onValueChange,\n selector = 'select',\n fileName,\n lang,\n overflow = 'wrap',\n copyMessage,\n copyTooltip,\n actions,\n className,\n}: CodeBlockProps) {\n const hasOptions = options && options.length > 0;\n const useTabs = hasOptions && selector === 'tabs';\n const useSelect = hasOptions && selector === 'select';\n const firstOption = options?.[0];\n const activeValue = value ?? firstOption?.value;\n\n return (\n <figure\n // A scrolling `pre` still reports its longest line as an intrinsic width, which\n // grows every ancestor; containment keeps the block inside the width it is given.\n className={cn(\n 'group relative flex w-full flex-col overflow-hidden rounded-2xl border border-border2/40 bg-surface2 [contain:inline-size]',\n className,\n )}\n >\n {useTabs && firstOption && (\n <Tabs defaultTab={firstOption.value} value={activeValue} onValueChange={onValueChange ?? (() => {})}>\n <div className=\"flex items-stretch\">\n <div className=\"min-w-0 flex-1\">\n <TabList>\n {options.map(opt => (\n <Tab key={opt.value} value={opt.value}>\n {opt.label}\n </Tab>\n ))}\n </TabList>\n </div>\n {actions && <div className=\"border-border1 flex shrink-0 items-center border-b pr-2 pl-3\">{actions}</div>}\n </div>\n </Tabs>\n )}\n\n {useSelect && options && (\n <div className=\"border-border2/40 flex items-center border-b px-2 py-1.5\">\n <Select value={activeValue} onValueChange={onValueChange}>\n <SelectTrigger size=\"sm\" variant=\"ghost\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {options.map(opt => (\n <SelectItem key={opt.value} value={opt.value}>\n {opt.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && fileName && (\n <div className=\"border-border2/40 flex items-center border-b px-4 py-2\">\n <figcaption className=\"text-ui-sm text-neutral4 font-mono\">{fileName}</figcaption>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && !fileName && actions && (\n <div className=\"border-border2/40 flex items-center justify-end border-b px-2 py-1.5\">{actions}</div>\n )}\n\n <div className=\"relative\">\n <Code\n code={code}\n lang={lang}\n className={cn(\n 'px-4 py-3 font-mono text-ui-sm text-neutral5',\n overflow === 'scroll' ? 'overflow-x-auto whitespace-pre' : 'break-all whitespace-pre-wrap',\n )}\n />\n <CopyButton\n content={code}\n copyMessage={copyMessage}\n tooltip={copyTooltip}\n size=\"sm\"\n className={cn(\n 'absolute top-2 right-2 opacity-100 group-focus-within:opacity-100 group-hover:opacity-100 pointer-fine:opacity-0',\n transitions.opacity,\n )}\n />\n </div>\n </figure>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@ const jsxRuntime = require('react/jsx-runtime');
4
4
  const code = require('./code-DhrdtZce.cjs');
5
5
  const copyButton = require('./copy-button-BtnbaMvl.cjs');
6
6
  const select = require('./select-C_FsCxA5.cjs');
7
- const tabsRoot = require('./tabs-root-BNcLC-s6.cjs');
8
- const tabsTab = require('./tabs-tab-Ha0C9Dv3.cjs');
7
+ const tabsRoot = require('./tabs-root-dbq4ph7H.cjs');
8
+ const tabsTab = require('./tabs-tab-Box-WPFr.cjs');
9
9
  const primitives_transitions = require('./primitives/transitions.cjs.js');
10
10
  const utils_cn = require('./cn-DCPcv4xv.cjs');
11
11
 
@@ -85,4 +85,4 @@ function CodeBlock({
85
85
  }
86
86
 
87
87
  exports.CodeBlock = CodeBlock;
88
- //# sourceMappingURL=code-block-DgHrBuR8.cjs.map
88
+ //# sourceMappingURL=code-block-qe7OUAjF.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-block-DgHrBuR8.cjs","sources":["../src/ds/components/CodeBlock/code-block.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Code } from '../Code/code';\nimport { CopyButton } from '../CopyButton/copy-button';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../Select/select';\nimport { TabList } from '../Tabs/tabs-list';\nimport { Tabs } from '../Tabs/tabs-root';\nimport { Tab } from '../Tabs/tabs-tab';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type CodeBlockSelector = 'select' | 'tabs';\n\nexport type CodeBlockOverflow = 'wrap' | 'scroll';\n\nexport interface CodeBlockOption {\n label: string;\n value: string;\n}\n\nexport interface CodeBlockProps {\n code: string;\n options?: CodeBlockOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n selector?: CodeBlockSelector;\n fileName?: string;\n lang?: string;\n /** `wrap` (default) breaks long lines — best for commands and snippets.\n * `scroll` preserves columns behind a horizontal scroll — best for source code. */\n overflow?: CodeBlockOverflow;\n copyMessage?: string;\n copyTooltip?: string;\n actions?: ReactNode;\n className?: string;\n}\n\nexport function CodeBlock({\n code,\n options,\n value,\n onValueChange,\n selector = 'select',\n fileName,\n lang,\n overflow = 'wrap',\n copyMessage,\n copyTooltip,\n actions,\n className,\n}: CodeBlockProps) {\n const hasOptions = options && options.length > 0;\n const useTabs = hasOptions && selector === 'tabs';\n const useSelect = hasOptions && selector === 'select';\n const firstOption = options?.[0];\n const activeValue = value ?? firstOption?.value;\n\n return (\n <figure\n // A scrolling `pre` still reports its longest line as an intrinsic width, which\n // grows every ancestor; containment keeps the block inside the width it is given.\n className={cn(\n 'group relative flex w-full flex-col overflow-hidden rounded-2xl border border-border2/40 bg-surface2 [contain:inline-size]',\n className,\n )}\n >\n {useTabs && firstOption && (\n <Tabs defaultTab={firstOption.value} value={activeValue} onValueChange={onValueChange ?? (() => {})}>\n <div className=\"flex items-stretch\">\n <div className=\"min-w-0 flex-1\">\n <TabList>\n {options.map(opt => (\n <Tab key={opt.value} value={opt.value}>\n {opt.label}\n </Tab>\n ))}\n </TabList>\n </div>\n {actions && <div className=\"border-border1 flex shrink-0 items-center border-b pr-2 pl-3\">{actions}</div>}\n </div>\n </Tabs>\n )}\n\n {useSelect && options && (\n <div className=\"border-border2/40 flex items-center border-b px-2 py-1.5\">\n <Select value={activeValue} onValueChange={onValueChange}>\n <SelectTrigger size=\"sm\" variant=\"ghost\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {options.map(opt => (\n <SelectItem key={opt.value} value={opt.value}>\n {opt.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && fileName && (\n <div className=\"border-border2/40 flex items-center border-b px-4 py-2\">\n <figcaption className=\"text-ui-sm text-neutral4 font-mono\">{fileName}</figcaption>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && !fileName && actions && (\n <div className=\"border-border2/40 flex items-center justify-end border-b px-2 py-1.5\">{actions}</div>\n )}\n\n <div className=\"relative\">\n <Code\n code={code}\n lang={lang}\n className={cn(\n 'px-4 py-3 font-mono text-ui-sm text-neutral5',\n overflow === 'scroll' ? 'overflow-x-auto whitespace-pre' : 'break-all whitespace-pre-wrap',\n )}\n />\n <CopyButton\n content={code}\n copyMessage={copyMessage}\n tooltip={copyTooltip}\n size=\"sm\"\n className={cn(\n 'absolute top-2 right-2 opacity-100 group-focus-within:opacity-100 group-hover:opacity-100 pointer-fine:opacity-0',\n transitions.opacity,\n )}\n />\n </div>\n </figure>\n );\n}\n"],"names":["code","jsxs","cn","jsx","Tabs","TabList","Tab","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","Code","CopyButton","transitions"],"mappings":"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"}
1
+ {"version":3,"file":"code-block-qe7OUAjF.cjs","sources":["../src/ds/components/CodeBlock/code-block.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Code } from '../Code/code';\nimport { CopyButton } from '../CopyButton/copy-button';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../Select/select';\nimport { TabList } from '../Tabs/tabs-list';\nimport { Tabs } from '../Tabs/tabs-root';\nimport { Tab } from '../Tabs/tabs-tab';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type CodeBlockSelector = 'select' | 'tabs';\n\nexport type CodeBlockOverflow = 'wrap' | 'scroll';\n\nexport interface CodeBlockOption {\n label: string;\n value: string;\n}\n\nexport interface CodeBlockProps {\n code: string;\n options?: CodeBlockOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n selector?: CodeBlockSelector;\n fileName?: string;\n lang?: string;\n /** `wrap` (default) breaks long lines — best for commands and snippets.\n * `scroll` preserves columns behind a horizontal scroll — best for source code. */\n overflow?: CodeBlockOverflow;\n copyMessage?: string;\n copyTooltip?: string;\n actions?: ReactNode;\n className?: string;\n}\n\nexport function CodeBlock({\n code,\n options,\n value,\n onValueChange,\n selector = 'select',\n fileName,\n lang,\n overflow = 'wrap',\n copyMessage,\n copyTooltip,\n actions,\n className,\n}: CodeBlockProps) {\n const hasOptions = options && options.length > 0;\n const useTabs = hasOptions && selector === 'tabs';\n const useSelect = hasOptions && selector === 'select';\n const firstOption = options?.[0];\n const activeValue = value ?? firstOption?.value;\n\n return (\n <figure\n // A scrolling `pre` still reports its longest line as an intrinsic width, which\n // grows every ancestor; containment keeps the block inside the width it is given.\n className={cn(\n 'group relative flex w-full flex-col overflow-hidden rounded-2xl border border-border2/40 bg-surface2 [contain:inline-size]',\n className,\n )}\n >\n {useTabs && firstOption && (\n <Tabs defaultTab={firstOption.value} value={activeValue} onValueChange={onValueChange ?? (() => {})}>\n <div className=\"flex items-stretch\">\n <div className=\"min-w-0 flex-1\">\n <TabList>\n {options.map(opt => (\n <Tab key={opt.value} value={opt.value}>\n {opt.label}\n </Tab>\n ))}\n </TabList>\n </div>\n {actions && <div className=\"border-border1 flex shrink-0 items-center border-b pr-2 pl-3\">{actions}</div>}\n </div>\n </Tabs>\n )}\n\n {useSelect && options && (\n <div className=\"border-border2/40 flex items-center border-b px-2 py-1.5\">\n <Select value={activeValue} onValueChange={onValueChange}>\n <SelectTrigger size=\"sm\" variant=\"ghost\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {options.map(opt => (\n <SelectItem key={opt.value} value={opt.value}>\n {opt.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && fileName && (\n <div className=\"border-border2/40 flex items-center border-b px-4 py-2\">\n <figcaption className=\"text-ui-sm text-neutral4 font-mono\">{fileName}</figcaption>\n {actions && <div className=\"ml-auto flex items-center\">{actions}</div>}\n </div>\n )}\n\n {!hasOptions && !fileName && actions && (\n <div className=\"border-border2/40 flex items-center justify-end border-b px-2 py-1.5\">{actions}</div>\n )}\n\n <div className=\"relative\">\n <Code\n code={code}\n lang={lang}\n className={cn(\n 'px-4 py-3 font-mono text-ui-sm text-neutral5',\n overflow === 'scroll' ? 'overflow-x-auto whitespace-pre' : 'break-all whitespace-pre-wrap',\n )}\n />\n <CopyButton\n content={code}\n copyMessage={copyMessage}\n tooltip={copyTooltip}\n size=\"sm\"\n className={cn(\n 'absolute top-2 right-2 opacity-100 group-focus-within:opacity-100 group-hover:opacity-100 pointer-fine:opacity-0',\n transitions.opacity,\n )}\n />\n </div>\n </figure>\n );\n}\n"],"names":["code","jsxs","cn","jsx","Tabs","TabList","Tab","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","Code","CopyButton","transitions"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const codeBlock = require('../code-block-DgHrBuR8.cjs');
5
+ const codeBlock = require('../code-block-qe7OUAjF.cjs');
6
6
 
7
7
 
8
8
 
@@ -1,2 +1,2 @@
1
- export { C as CodeBlock } from '../code-block-DeksY23p.js';
1
+ export { C as CodeBlock } from '../code-block-CKowdtY1.js';
2
2
  //# sourceMappingURL=CodeBlock.es.js.map
@@ -4,6 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const logsDataList = require('../logs-data-list-BcPdFb2K.cjs');
6
6
  const dataListSkeleton = require('../data-list-skeleton-7eKxso9c.cjs');
7
+ require('react');
7
8
 
8
9
 
9
10
 
@@ -1 +1 @@
1
- {"version":3,"file":"LogsDataList.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"LogsDataList.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -1,3 +1,4 @@
1
1
  export { L as LogsDataList } from '../logs-data-list-D7NBF4iw.js';
2
2
  export { D as LogsDataListSkeleton } from '../data-list-skeleton-CbjuDDK_.js';
3
+ import 'react';
3
4
  //# sourceMappingURL=LogsDataList.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogsDataList.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"LogsDataList.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const markdownRenderer = require('../markdown-renderer-GVtZLunG.cjs');
5
+ const markdownRenderer = require('../markdown-renderer-CI43GQqh.cjs');
6
6
  const useReveal = require('../use-reveal-Sa456jZb.cjs');
7
7
 
8
8
 
@@ -1,3 +1,3 @@
1
- export { M as MarkdownRenderer } from '../markdown-renderer-CaFpZTFS.js';
1
+ export { M as MarkdownRenderer } from '../markdown-renderer-E_2ewUDs.js';
2
2
  export { u as useRevealedText } from '../use-reveal-d77hxHz9.js';
3
3
  //# sourceMappingURL=MarkdownRenderer.es.js.map
@@ -6,9 +6,17 @@ const jsxRuntime = require('react/jsx-runtime');
6
6
  const Txt = require('../Txt-D5Y_H2a0.cjs');
7
7
  const utils_cn = require('../cn-DCPcv4xv.cjs');
8
8
 
9
- function SettingsLayout({ title, action, inset = false, children }) {
9
+ function SettingsLayout({
10
+ title,
11
+ titleAccessory,
12
+ description,
13
+ action,
14
+ inset = false,
15
+ variant,
16
+ children
17
+ }) {
10
18
  if (title === void 0 || title === null) {
11
- return /* @__PURE__ */ jsxRuntime.jsx(
19
+ return variant === "header" ? children : /* @__PURE__ */ jsxRuntime.jsx(
12
20
  "div",
13
21
  {
14
22
  "data-slot": "settings-layout-content",
@@ -23,21 +31,27 @@ function SettingsLayout({ title, action, inset = false, children }) {
23
31
  {
24
32
  "data-slot": "settings-page-header",
25
33
  className: "mx-auto w-full max-w-5xl min-w-0 overflow-x-clip px-4 pt-6 pb-0 sm:px-6 sm:pt-12",
26
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils_cn.cn("flex min-w-0 flex-wrap items-center justify-between gap-4", inset && "pl-4"), children: [
27
- /* @__PURE__ */ jsxRuntime.jsx(
28
- Txt.Txt,
29
- {
30
- as: "h1",
31
- variant: "header-md",
32
- className: utils_cn.cn("min-w-0 truncate", "font-sans font-medium tracking-normal text-neutral4"),
33
- children: title
34
- }
35
- ),
34
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils_cn.cn("flex min-w-0 flex-wrap items-start justify-between gap-4", inset && "pl-4"), children: [
35
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid min-w-0 gap-2", children: [
36
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
37
+ /* @__PURE__ */ jsxRuntime.jsx(
38
+ Txt.Txt,
39
+ {
40
+ as: "h1",
41
+ variant: "header-md",
42
+ className: utils_cn.cn("min-w-0 truncate", "font-sans font-medium tracking-normal text-neutral4"),
43
+ children: title
44
+ }
45
+ ),
46
+ titleAccessory !== void 0 && titleAccessory !== null ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: titleAccessory }) : null
47
+ ] }),
48
+ description !== void 0 && description !== null ? /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { as: "p", variant: "ui-md", className: "text-neutral4 m-0 leading-tight wrap-break-word", children: description }) : null
49
+ ] }),
36
50
  action ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: action }) : null
37
51
  ] })
38
52
  }
39
53
  ),
40
- /* @__PURE__ */ jsxRuntime.jsx(
54
+ variant === "header" ? children : /* @__PURE__ */ jsxRuntime.jsx(
41
55
  "div",
42
56
  {
43
57
  "data-slot": "settings-layout-content",
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsLayout.cjs.js","sources":["../../src/ds/components/SettingsLayout/settings-layout.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Txt } from '../Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface SettingsLayoutProps {\n title?: ReactNode;\n action?: ReactNode;\n inset?: boolean;\n children: ReactNode;\n}\n\nexport function SettingsLayout({ title, action, inset = false, children }: SettingsLayoutProps) {\n if (title === undefined || title === null) {\n return (\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-14\">{children}</div>\n </div>\n );\n }\n\n return (\n <>\n <div\n data-slot=\"settings-page-header\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-clip px-4 pt-6 pb-0 sm:px-6 sm:pt-12\"\n >\n <div className={cn('flex min-w-0 flex-wrap items-center justify-between gap-4', inset && 'pl-4')}>\n <Txt\n as=\"h1\"\n variant=\"header-md\"\n className={cn('min-w-0 truncate', 'font-sans font-medium tracking-normal text-neutral4')}\n >\n {title}\n </Txt>\n {action ? <div className=\"shrink-0\">{action}</div> : null}\n </div>\n </div>\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-8\">{children}</div>\n </div>\n </>\n );\n}\n"],"names":["jsx","jsxs","Fragment","cn","Txt"],"mappings":";;;;;;;;AAWO,SAAS,eAAe,EAAE,KAAA,EAAO,QAAQ,KAAA,GAAQ,KAAA,EAAO,UAAS,EAAwB;AAC9F,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AACzC,IAAA,uBACEA,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAS;AAAA;AAAA,KAChD;AAAA,EAEJ;AAEA,EAAA,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAF,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,sBAAA;AAAA,QACV,SAAA,EAAU,kFAAA;AAAA,QAEV,0CAAC,KAAA,EAAA,EAAI,SAAA,EAAWG,YAAG,2DAAA,EAA6D,KAAA,IAAS,MAAM,CAAA,EAC7F,QAAA,EAAA;AAAA,0BAAAH,cAAA;AAAA,YAACI,OAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAG,IAAA;AAAA,cACH,OAAA,EAAQ,WAAA;AAAA,cACR,SAAA,EAAWD,WAAA,CAAG,kBAAA,EAAoB,qDAAqD,CAAA;AAAA,cAEtF,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UACC,yBAASH,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EAAY,kBAAO,CAAA,GAAS;AAAA,SAAA,EACvD;AAAA;AAAA,KACF;AAAA,oBACAA,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAqB,QAAA,EAAS;AAAA;AAAA;AAC/C,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"SettingsLayout.cjs.js","sources":["../../src/ds/components/SettingsLayout/settings-layout.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Txt } from '../Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface SettingsLayoutProps {\n title?: ReactNode;\n titleAccessory?: ReactNode;\n description?: ReactNode;\n action?: ReactNode;\n inset?: boolean;\n variant?: 'default' | 'header';\n children: ReactNode;\n}\n\nexport function SettingsLayout({\n title,\n titleAccessory,\n description,\n action,\n inset = false,\n variant,\n children,\n}: SettingsLayoutProps) {\n if (title === undefined || title === null) {\n return variant === 'header' ? (\n children\n ) : (\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-14\">{children}</div>\n </div>\n );\n }\n\n return (\n <>\n <div\n data-slot=\"settings-page-header\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-clip px-4 pt-6 pb-0 sm:px-6 sm:pt-12\"\n >\n <div className={cn('flex min-w-0 flex-wrap items-start justify-between gap-4', inset && 'pl-4')}>\n <div className=\"grid min-w-0 gap-2\">\n <div className=\"flex min-w-0 items-center gap-2\">\n <Txt\n as=\"h1\"\n variant=\"header-md\"\n className={cn('min-w-0 truncate', 'font-sans font-medium tracking-normal text-neutral4')}\n >\n {title}\n </Txt>\n {titleAccessory !== undefined && titleAccessory !== null ? (\n <div className=\"shrink-0\">{titleAccessory}</div>\n ) : null}\n </div>\n {description !== undefined && description !== null ? (\n <Txt as=\"p\" variant=\"ui-md\" className=\"text-neutral4 m-0 leading-tight wrap-break-word\">\n {description}\n </Txt>\n ) : null}\n </div>\n {action ? <div className=\"shrink-0\">{action}</div> : null}\n </div>\n </div>\n {variant === 'header' ? (\n children\n ) : (\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-8\">{children}</div>\n </div>\n )}\n </>\n );\n}\n"],"names":["jsx","jsxs","Fragment","cn","Txt"],"mappings":";;;;;;;;AAcO,SAAS,cAAA,CAAe;AAAA,EAC7B,KAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA,GAAQ,KAAA;AAAA,EACR,OAAA;AAAA,EACA;AACF,CAAA,EAAwB;AACtB,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AACzC,IAAA,OAAO,OAAA,KAAY,WACjB,QAAA,mBAEAA,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAS;AAAA;AAAA,KAChD;AAAA,EAEJ;AAEA,EAAA,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAF,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,sBAAA;AAAA,QACV,SAAA,EAAU,kFAAA;AAAA,QAEV,0CAAC,KAAA,EAAA,EAAI,SAAA,EAAWG,YAAG,0DAAA,EAA4D,KAAA,IAAS,MAAM,CAAA,EAC5F,QAAA,EAAA;AAAA,0BAAAF,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oBAAA,EACb,QAAA,EAAA;AAAA,4BAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iCAAA,EACb,QAAA,EAAA;AAAA,8BAAAD,cAAA;AAAA,gBAACI,OAAA;AAAA,gBAAA;AAAA,kBACC,EAAA,EAAG,IAAA;AAAA,kBACH,OAAA,EAAQ,WAAA;AAAA,kBACR,SAAA,EAAWD,WAAA,CAAG,kBAAA,EAAoB,qDAAqD,CAAA;AAAA,kBAEtF,QAAA,EAAA;AAAA;AAAA,eACH;AAAA,cACC,cAAA,KAAmB,UAAa,cAAA,KAAmB,IAAA,kCACjD,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EAAY,QAAA,EAAA,cAAA,EAAe,CAAA,GACxC;AAAA,aAAA,EACN,CAAA;AAAA,YACC,WAAA,KAAgB,MAAA,IAAa,WAAA,KAAgB,IAAA,mBAC5CH,cAAA,CAACI,OAAA,EAAA,EAAI,EAAA,EAAG,GAAA,EAAI,OAAA,EAAQ,OAAA,EAAQ,SAAA,EAAU,iDAAA,EACnC,uBACH,CAAA,GACE;AAAA,WAAA,EACN,CAAA;AAAA,UACC,yBAASJ,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EAAY,kBAAO,CAAA,GAAS;AAAA,SAAA,EACvD;AAAA;AAAA,KACF;AAAA,IACC,OAAA,KAAY,WACX,QAAA,mBAEAA,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAAA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAqB,QAAA,EAAS;AAAA;AAAA;AAC/C,GAAA,EAEJ,CAAA;AAEJ;;;;"}
@@ -2,9 +2,17 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { T as Txt } from '../Txt-ByUf-9Ic.js';
3
3
  import { c as cn } from '../cn-B4oPhFx9.js';
4
4
 
5
- function SettingsLayout({ title, action, inset = false, children }) {
5
+ function SettingsLayout({
6
+ title,
7
+ titleAccessory,
8
+ description,
9
+ action,
10
+ inset = false,
11
+ variant,
12
+ children
13
+ }) {
6
14
  if (title === void 0 || title === null) {
7
- return /* @__PURE__ */ jsx(
15
+ return variant === "header" ? children : /* @__PURE__ */ jsx(
8
16
  "div",
9
17
  {
10
18
  "data-slot": "settings-layout-content",
@@ -19,21 +27,27 @@ function SettingsLayout({ title, action, inset = false, children }) {
19
27
  {
20
28
  "data-slot": "settings-page-header",
21
29
  className: "mx-auto w-full max-w-5xl min-w-0 overflow-x-clip px-4 pt-6 pb-0 sm:px-6 sm:pt-12",
22
- children: /* @__PURE__ */ jsxs("div", { className: cn("flex min-w-0 flex-wrap items-center justify-between gap-4", inset && "pl-4"), children: [
23
- /* @__PURE__ */ jsx(
24
- Txt,
25
- {
26
- as: "h1",
27
- variant: "header-md",
28
- className: cn("min-w-0 truncate", "font-sans font-medium tracking-normal text-neutral4"),
29
- children: title
30
- }
31
- ),
30
+ children: /* @__PURE__ */ jsxs("div", { className: cn("flex min-w-0 flex-wrap items-start justify-between gap-4", inset && "pl-4"), children: [
31
+ /* @__PURE__ */ jsxs("div", { className: "grid min-w-0 gap-2", children: [
32
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
33
+ /* @__PURE__ */ jsx(
34
+ Txt,
35
+ {
36
+ as: "h1",
37
+ variant: "header-md",
38
+ className: cn("min-w-0 truncate", "font-sans font-medium tracking-normal text-neutral4"),
39
+ children: title
40
+ }
41
+ ),
42
+ titleAccessory !== void 0 && titleAccessory !== null ? /* @__PURE__ */ jsx("div", { className: "shrink-0", children: titleAccessory }) : null
43
+ ] }),
44
+ description !== void 0 && description !== null ? /* @__PURE__ */ jsx(Txt, { as: "p", variant: "ui-md", className: "text-neutral4 m-0 leading-tight wrap-break-word", children: description }) : null
45
+ ] }),
32
46
  action ? /* @__PURE__ */ jsx("div", { className: "shrink-0", children: action }) : null
33
47
  ] })
34
48
  }
35
49
  ),
36
- /* @__PURE__ */ jsx(
50
+ variant === "header" ? children : /* @__PURE__ */ jsx(
37
51
  "div",
38
52
  {
39
53
  "data-slot": "settings-layout-content",
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsLayout.es.js","sources":["../../src/ds/components/SettingsLayout/settings-layout.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Txt } from '../Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface SettingsLayoutProps {\n title?: ReactNode;\n action?: ReactNode;\n inset?: boolean;\n children: ReactNode;\n}\n\nexport function SettingsLayout({ title, action, inset = false, children }: SettingsLayoutProps) {\n if (title === undefined || title === null) {\n return (\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-14\">{children}</div>\n </div>\n );\n }\n\n return (\n <>\n <div\n data-slot=\"settings-page-header\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-clip px-4 pt-6 pb-0 sm:px-6 sm:pt-12\"\n >\n <div className={cn('flex min-w-0 flex-wrap items-center justify-between gap-4', inset && 'pl-4')}>\n <Txt\n as=\"h1\"\n variant=\"header-md\"\n className={cn('min-w-0 truncate', 'font-sans font-medium tracking-normal text-neutral4')}\n >\n {title}\n </Txt>\n {action ? <div className=\"shrink-0\">{action}</div> : null}\n </div>\n </div>\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-8\">{children}</div>\n </div>\n </>\n );\n}\n"],"names":[],"mappings":";;;;AAWO,SAAS,eAAe,EAAE,KAAA,EAAO,QAAQ,KAAA,GAAQ,KAAA,EAAO,UAAS,EAAwB;AAC9F,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AACzC,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAS;AAAA;AAAA,KAChD;AAAA,EAEJ;AAEA,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,sBAAA;AAAA,QACV,SAAA,EAAU,kFAAA;AAAA,QAEV,+BAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,2DAAA,EAA6D,KAAA,IAAS,MAAM,CAAA,EAC7F,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,GAAA;AAAA,YAAA;AAAA,cACC,EAAA,EAAG,IAAA;AAAA,cACH,OAAA,EAAQ,WAAA;AAAA,cACR,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,qDAAqD,CAAA;AAAA,cAEtF,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UACC,yBAAS,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EAAY,kBAAO,CAAA,GAAS;AAAA,SAAA,EACvD;AAAA;AAAA,KACF;AAAA,oBACA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAqB,QAAA,EAAS;AAAA;AAAA;AAC/C,GAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"SettingsLayout.es.js","sources":["../../src/ds/components/SettingsLayout/settings-layout.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Txt } from '../Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface SettingsLayoutProps {\n title?: ReactNode;\n titleAccessory?: ReactNode;\n description?: ReactNode;\n action?: ReactNode;\n inset?: boolean;\n variant?: 'default' | 'header';\n children: ReactNode;\n}\n\nexport function SettingsLayout({\n title,\n titleAccessory,\n description,\n action,\n inset = false,\n variant,\n children,\n}: SettingsLayoutProps) {\n if (title === undefined || title === null) {\n return variant === 'header' ? (\n children\n ) : (\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-14\">{children}</div>\n </div>\n );\n }\n\n return (\n <>\n <div\n data-slot=\"settings-page-header\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-clip px-4 pt-6 pb-0 sm:px-6 sm:pt-12\"\n >\n <div className={cn('flex min-w-0 flex-wrap items-start justify-between gap-4', inset && 'pl-4')}>\n <div className=\"grid min-w-0 gap-2\">\n <div className=\"flex min-w-0 items-center gap-2\">\n <Txt\n as=\"h1\"\n variant=\"header-md\"\n className={cn('min-w-0 truncate', 'font-sans font-medium tracking-normal text-neutral4')}\n >\n {title}\n </Txt>\n {titleAccessory !== undefined && titleAccessory !== null ? (\n <div className=\"shrink-0\">{titleAccessory}</div>\n ) : null}\n </div>\n {description !== undefined && description !== null ? (\n <Txt as=\"p\" variant=\"ui-md\" className=\"text-neutral4 m-0 leading-tight wrap-break-word\">\n {description}\n </Txt>\n ) : null}\n </div>\n {action ? <div className=\"shrink-0\">{action}</div> : null}\n </div>\n </div>\n {variant === 'header' ? (\n children\n ) : (\n <div\n data-slot=\"settings-layout-content\"\n className=\"mx-auto w-full max-w-5xl min-w-0 overflow-x-hidden px-4 py-6 sm:px-6 sm:py-8\"\n >\n <div className=\"min-w-0 space-y-8\">{children}</div>\n </div>\n )}\n </>\n );\n}\n"],"names":[],"mappings":";;;;AAcO,SAAS,cAAA,CAAe;AAAA,EAC7B,KAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA,GAAQ,KAAA;AAAA,EACR,OAAA;AAAA,EACA;AACF,CAAA,EAAwB;AACtB,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AACzC,IAAA,OAAO,OAAA,KAAY,WACjB,QAAA,mBAEA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAsB,QAAA,EAAS;AAAA;AAAA,KAChD;AAAA,EAEJ;AAEA,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,sBAAA;AAAA,QACV,SAAA,EAAU,kFAAA;AAAA,QAEV,+BAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,0DAAA,EAA4D,KAAA,IAAS,MAAM,CAAA,EAC5F,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oBAAA,EACb,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iCAAA,EACb,QAAA,EAAA;AAAA,8BAAA,GAAA;AAAA,gBAAC,GAAA;AAAA,gBAAA;AAAA,kBACC,EAAA,EAAG,IAAA;AAAA,kBACH,OAAA,EAAQ,WAAA;AAAA,kBACR,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,qDAAqD,CAAA;AAAA,kBAEtF,QAAA,EAAA;AAAA;AAAA,eACH;AAAA,cACC,cAAA,KAAmB,UAAa,cAAA,KAAmB,IAAA,uBACjD,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EAAY,QAAA,EAAA,cAAA,EAAe,CAAA,GACxC;AAAA,aAAA,EACN,CAAA;AAAA,YACC,WAAA,KAAgB,MAAA,IAAa,WAAA,KAAgB,IAAA,mBAC5C,GAAA,CAAC,GAAA,EAAA,EAAI,EAAA,EAAG,GAAA,EAAI,OAAA,EAAQ,OAAA,EAAQ,SAAA,EAAU,iDAAA,EACnC,uBACH,CAAA,GACE;AAAA,WAAA,EACN,CAAA;AAAA,UACC,yBAAS,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,UAAA,EAAY,kBAAO,CAAA,GAAS;AAAA,SAAA,EACvD;AAAA;AAAA,KACF;AAAA,IACC,OAAA,KAAY,WACX,QAAA,mBAEA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,yBAAA;AAAA,QACV,SAAA,EAAU,8EAAA;AAAA,QAEV,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mBAAA,EAAqB,QAAA,EAAS;AAAA;AAAA;AAC/C,GAAA,EAEJ,CAAA;AAEJ;;;;"}
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const tabsRoot = require('../tabs-root-BNcLC-s6.cjs');
6
- const tabsTab = require('../tabs-tab-Ha0C9Dv3.cjs');
7
- const tabsContent = require('../tabs-content-BxToGCDw.cjs');
5
+ const tabsRoot = require('../tabs-root-dbq4ph7H.cjs');
6
+ const tabsTab = require('../tabs-tab-Box-WPFr.cjs');
7
+ const tabsContent = require('../tabs-content-DktkvjQq.cjs');
8
8
 
9
9
 
10
10
 
@@ -1,4 +1,4 @@
1
- export { T as TabList, a as Tabs } from '../tabs-root-BnwVjJbD.js';
2
- export { T as Tab } from '../tabs-tab-Qlfs2X2g.js';
3
- export { T as TabContent } from '../tabs-content-CLgmU6S_.js';
1
+ export { T as TabList, a as Tabs } from '../tabs-root-DP_5NGAv.js';
2
+ export { T as Tab } from '../tabs-tab-BIloVjDS.js';
3
+ export { T as TabContent } from '../tabs-content-CO1aqUws.js';
4
4
  //# sourceMappingURL=Tabs.es.js.map
@@ -14,7 +14,7 @@ const ThreadList = ({ children, "aria-label": ariaLabel = "Threads", embedded =
14
14
  {
15
15
  "aria-label": ariaLabel,
16
16
  className: utils_cn.cn(
17
- "h-full overflow-y-auto p-1",
17
+ "flex h-full flex-col gap-1 overflow-y-auto p-1",
18
18
  !embedded && "rounded-studio-panel border border-border1/50 bg-surface3"
19
19
  ),
20
20
  children
@@ -22,10 +22,10 @@ const ThreadList = ({ children, "aria-label": ariaLabel = "Threads", embedded =
22
22
  ) });
23
23
  };
24
24
  const ThreadListNewItem = ({ as, href, to, children }) => {
25
- return /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { as, href, to, variant: "ghost", className: "w-full justify-start rounded-xl", children });
25
+ return /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { as, href, to, variant: "ghost", className: "w-full justify-start rounded-xl px-3", children });
26
26
  };
27
27
  const ThreadListSeparator = () => /* @__PURE__ */ jsxRuntime.jsx("div", { role: "separator", "aria-orientation": "horizontal", className: "bg-border1/40 -mx-1 my-1 h-px" });
28
- const ThreadListItems = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("ol", { className: "flex flex-col gap-px", "data-testid": "thread-list", children });
28
+ const ThreadListItems = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("ol", { className: "flex flex-col gap-1", "data-testid": "thread-list", children });
29
29
  const ThreadListItem = ({
30
30
  as,
31
31
  href,
@@ -47,7 +47,7 @@ const ThreadListItem = ({
47
47
  onClick,
48
48
  variant: "ghost",
49
49
  className: utils_cn.cn(
50
- "h-auto! min-h-form-md w-full min-w-0 justify-start rounded-xl px-3 py-2 text-left",
50
+ "w-full min-w-0 justify-start rounded-xl px-3 text-left",
51
51
  onDelete && "pr-9",
52
52
  isActive && "bg-surface4 text-neutral6",
53
53
  className
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadList.cjs.js","sources":["../../src/ds/components/ThreadList/thread-list.tsx"],"sourcesContent":["import { X } from 'lucide-react';\nimport type { ElementType, MouseEvent, ReactNode } from 'react';\n\nimport { cn } from '../../../lib/utils';\nimport { Button } from '../Button';\nimport { Txt } from '../Txt';\n\nexport interface ThreadListProps {\n children: ReactNode;\n 'aria-label'?: string;\n /**\n * When true, drops the standalone block chrome (background, border, rounded corners, inset)\n * so the list can render flush inside an outer container without nesting a second box.\n */\n embedded?: boolean;\n}\n\nexport const ThreadList = ({ children, 'aria-label': ariaLabel = 'Threads', embedded = false }: ThreadListProps) => {\n return (\n <div className={cn('size-full', !embedded && 'pb-2 pl-2')}>\n <nav\n aria-label={ariaLabel}\n className={cn(\n 'h-full overflow-y-auto p-1',\n !embedded && 'rounded-studio-panel border border-border1/50 bg-surface3',\n )}\n >\n {children}\n </nav>\n </div>\n );\n};\n\nexport interface ThreadListNewItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n children: ReactNode;\n}\n\nexport const ThreadListNewItem = ({ as, href, to, children }: ThreadListNewItemProps) => {\n return (\n <Button as={as} href={href} to={to} variant=\"ghost\" className=\"w-full justify-start rounded-xl\">\n {children}\n </Button>\n );\n};\n\nexport const ThreadListSeparator = () => (\n <div role=\"separator\" aria-orientation=\"horizontal\" className=\"bg-border1/40 -mx-1 my-1 h-px\" />\n);\n\nexport interface ThreadListItemsProps {\n children: ReactNode;\n}\n\nexport const ThreadListItems = ({ children }: ThreadListItemsProps) => (\n <ol className=\"flex flex-col gap-px\" data-testid=\"thread-list\">\n {children}\n </ol>\n);\n\nexport interface ThreadListItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n isActive?: boolean;\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n onDelete?: () => void;\n deleteLabel?: string;\n className?: string;\n children: ReactNode;\n}\n\nexport const ThreadListItem = ({\n as,\n href,\n to,\n isActive,\n onClick,\n onDelete,\n deleteLabel = 'delete',\n className,\n children,\n}: ThreadListItemProps) => {\n return (\n <li className=\"group relative\">\n <Button\n as={as}\n href={href}\n to={to}\n onClick={onClick}\n variant=\"ghost\"\n className={cn(\n 'h-auto! min-h-form-md w-full min-w-0 justify-start rounded-xl px-3 py-2 text-left',\n onDelete && 'pr-9',\n isActive && 'bg-surface4 text-neutral6',\n className,\n )}\n >\n <span className=\"min-w-0 flex-1\">{children}</span>\n </Button>\n\n {onDelete && (\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n className=\"absolute top-1/2 right-1 -translate-y-1/2 opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100\"\n onClick={onDelete}\n aria-label={deleteLabel}\n >\n <X />\n </Button>\n )}\n </li>\n );\n};\n\nexport interface ThreadListEmptyProps {\n children: ReactNode;\n}\n\nexport const ThreadListEmpty = ({ children }: ThreadListEmptyProps) => {\n return (\n <Txt as=\"p\" variant=\"ui-sm\" className=\"text-neutral3 px-5 py-3\">\n {children}\n </Txt>\n );\n};\n"],"names":["jsx","cn","Button","jsxs","X","Txt"],"mappings":";;;;;;;;;;AAiBO,MAAM,UAAA,GAAa,CAAC,EAAE,QAAA,EAAU,cAAc,SAAA,GAAY,SAAA,EAAW,QAAA,GAAW,KAAA,EAAM,KAAuB;AAClH,EAAA,uBACEA,cAAA,CAAC,SAAI,SAAA,EAAWC,WAAA,CAAG,aAAa,CAAC,QAAA,IAAY,WAAW,CAAA,EACtD,QAAA,kBAAAD,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,SAAA;AAAA,MACZ,SAAA,EAAWC,WAAA;AAAA,QACT,4BAAA;AAAA,QACA,CAAC,QAAA,IAAY;AAAA,OACf;AAAA,MAEC;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AASO,MAAM,oBAAoB,CAAC,EAAE,IAAI,IAAA,EAAM,EAAA,EAAI,UAAS,KAA8B;AACvF,EAAA,uBACED,cAAA,CAACE,iBAAO,EAAA,EAAQ,IAAA,EAAY,IAAQ,OAAA,EAAQ,OAAA,EAAQ,SAAA,EAAU,iCAAA,EAC3D,QAAA,EACH,CAAA;AAEJ;AAEO,MAAM,mBAAA,GAAsB,sBACjCF,cAAA,CAAC,KAAA,EAAA,EAAI,MAAK,WAAA,EAAY,kBAAA,EAAiB,YAAA,EAAa,SAAA,EAAU,+BAAA,EAAgC;AAOzF,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,qBACzCA,cAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,sBAAA,EAAuB,aAAA,EAAY,aAAA,EAC9C,QAAA,EACH;AAeK,MAAM,iBAAiB,CAAC;AAAA,EAC7B,EAAA;AAAA,EACA,IAAA;AAAA,EACA,EAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,QAAA;AAAA,EACd,SAAA;AAAA,EACA;AACF,CAAA,KAA2B;AACzB,EAAA,uBACEG,eAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gBAAA,EACZ,QAAA,EAAA;AAAA,oBAAAH,cAAA;AAAA,MAACE,aAAA;AAAA,MAAA;AAAA,QACC,EAAA;AAAA,QACA,IAAA;AAAA,QACA,EAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA,EAAQ,OAAA;AAAA,QACR,SAAA,EAAWD,WAAA;AAAA,UACT,mFAAA;AAAA,UACA,QAAA,IAAY,MAAA;AAAA,UACZ,QAAA,IAAY,2BAAA;AAAA,UACZ;AAAA,SACF;AAAA,QAEA,QAAA,kBAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAS;AAAA;AAAA,KAC7C;AAAA,IAEC,QAAA,oBACCA,cAAA;AAAA,MAACE,aAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAK,SAAA;AAAA,QACL,SAAA,EAAU,+HAAA;AAAA,QACV,OAAA,EAAS,QAAA;AAAA,QACT,YAAA,EAAY,WAAA;AAAA,QAEZ,yCAACE,aAAA,EAAA,EAAE;AAAA;AAAA;AACL,GAAA,EAEJ,CAAA;AAEJ;AAMO,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,KAA4B;AACrE,EAAA,uBACEJ,cAAA,CAACK,WAAI,EAAA,EAAG,GAAA,EAAI,SAAQ,OAAA,EAAQ,SAAA,EAAU,2BACnC,QAAA,EACH,CAAA;AAEJ;;;;;;;;;"}
1
+ {"version":3,"file":"ThreadList.cjs.js","sources":["../../src/ds/components/ThreadList/thread-list.tsx"],"sourcesContent":["import { X } from 'lucide-react';\nimport type { ElementType, MouseEvent, ReactNode } from 'react';\n\nimport { cn } from '../../../lib/utils';\nimport { Button } from '../Button';\nimport { Txt } from '../Txt';\n\nexport interface ThreadListProps {\n children: ReactNode;\n 'aria-label'?: string;\n /**\n * When true, drops the standalone block chrome (background, border, rounded corners, inset)\n * so the list can render flush inside an outer container without nesting a second box.\n */\n embedded?: boolean;\n}\n\nexport const ThreadList = ({ children, 'aria-label': ariaLabel = 'Threads', embedded = false }: ThreadListProps) => {\n return (\n <div className={cn('size-full', !embedded && 'pb-2 pl-2')}>\n <nav\n aria-label={ariaLabel}\n className={cn(\n 'flex h-full flex-col gap-1 overflow-y-auto p-1',\n !embedded && 'rounded-studio-panel border border-border1/50 bg-surface3',\n )}\n >\n {children}\n </nav>\n </div>\n );\n};\n\nexport interface ThreadListNewItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n children: ReactNode;\n}\n\nexport const ThreadListNewItem = ({ as, href, to, children }: ThreadListNewItemProps) => {\n return (\n <Button as={as} href={href} to={to} variant=\"ghost\" className=\"w-full justify-start rounded-xl px-3\">\n {children}\n </Button>\n );\n};\n\nexport const ThreadListSeparator = () => (\n <div role=\"separator\" aria-orientation=\"horizontal\" className=\"bg-border1/40 -mx-1 my-1 h-px\" />\n);\n\nexport interface ThreadListItemsProps {\n children: ReactNode;\n}\n\nexport const ThreadListItems = ({ children }: ThreadListItemsProps) => (\n <ol className=\"flex flex-col gap-1\" data-testid=\"thread-list\">\n {children}\n </ol>\n);\n\nexport interface ThreadListItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n isActive?: boolean;\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n onDelete?: () => void;\n deleteLabel?: string;\n className?: string;\n children: ReactNode;\n}\n\nexport const ThreadListItem = ({\n as,\n href,\n to,\n isActive,\n onClick,\n onDelete,\n deleteLabel = 'delete',\n className,\n children,\n}: ThreadListItemProps) => {\n return (\n <li className=\"group relative\">\n <Button\n as={as}\n href={href}\n to={to}\n onClick={onClick}\n variant=\"ghost\"\n className={cn(\n 'w-full min-w-0 justify-start rounded-xl px-3 text-left',\n onDelete && 'pr-9',\n isActive && 'bg-surface4 text-neutral6',\n className,\n )}\n >\n <span className=\"min-w-0 flex-1\">{children}</span>\n </Button>\n\n {onDelete && (\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n className=\"absolute top-1/2 right-1 -translate-y-1/2 opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100\"\n onClick={onDelete}\n aria-label={deleteLabel}\n >\n <X />\n </Button>\n )}\n </li>\n );\n};\n\nexport interface ThreadListEmptyProps {\n children: ReactNode;\n}\n\nexport const ThreadListEmpty = ({ children }: ThreadListEmptyProps) => {\n return (\n <Txt as=\"p\" variant=\"ui-sm\" className=\"text-neutral3 px-5 py-3\">\n {children}\n </Txt>\n );\n};\n"],"names":["jsx","cn","Button","jsxs","X","Txt"],"mappings":";;;;;;;;;;AAiBO,MAAM,UAAA,GAAa,CAAC,EAAE,QAAA,EAAU,cAAc,SAAA,GAAY,SAAA,EAAW,QAAA,GAAW,KAAA,EAAM,KAAuB;AAClH,EAAA,uBACEA,cAAA,CAAC,SAAI,SAAA,EAAWC,WAAA,CAAG,aAAa,CAAC,QAAA,IAAY,WAAW,CAAA,EACtD,QAAA,kBAAAD,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,SAAA;AAAA,MACZ,SAAA,EAAWC,WAAA;AAAA,QACT,gDAAA;AAAA,QACA,CAAC,QAAA,IAAY;AAAA,OACf;AAAA,MAEC;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AASO,MAAM,oBAAoB,CAAC,EAAE,IAAI,IAAA,EAAM,EAAA,EAAI,UAAS,KAA8B;AACvF,EAAA,uBACED,cAAA,CAACE,iBAAO,EAAA,EAAQ,IAAA,EAAY,IAAQ,OAAA,EAAQ,OAAA,EAAQ,SAAA,EAAU,sCAAA,EAC3D,QAAA,EACH,CAAA;AAEJ;AAEO,MAAM,mBAAA,GAAsB,sBACjCF,cAAA,CAAC,KAAA,EAAA,EAAI,MAAK,WAAA,EAAY,kBAAA,EAAiB,YAAA,EAAa,SAAA,EAAU,+BAAA,EAAgC;AAOzF,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,qBACzCA,cAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,qBAAA,EAAsB,aAAA,EAAY,aAAA,EAC7C,QAAA,EACH;AAeK,MAAM,iBAAiB,CAAC;AAAA,EAC7B,EAAA;AAAA,EACA,IAAA;AAAA,EACA,EAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,QAAA;AAAA,EACd,SAAA;AAAA,EACA;AACF,CAAA,KAA2B;AACzB,EAAA,uBACEG,eAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gBAAA,EACZ,QAAA,EAAA;AAAA,oBAAAH,cAAA;AAAA,MAACE,aAAA;AAAA,MAAA;AAAA,QACC,EAAA;AAAA,QACA,IAAA;AAAA,QACA,EAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA,EAAQ,OAAA;AAAA,QACR,SAAA,EAAWD,WAAA;AAAA,UACT,wDAAA;AAAA,UACA,QAAA,IAAY,MAAA;AAAA,UACZ,QAAA,IAAY,2BAAA;AAAA,UACZ;AAAA,SACF;AAAA,QAEA,QAAA,kBAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAS;AAAA;AAAA,KAC7C;AAAA,IAEC,QAAA,oBACCA,cAAA;AAAA,MAACE,aAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAK,SAAA;AAAA,QACL,SAAA,EAAU,+HAAA;AAAA,QACV,OAAA,EAAS,QAAA;AAAA,QACT,YAAA,EAAY,WAAA;AAAA,QAEZ,yCAACE,aAAA,EAAA,EAAE;AAAA;AAAA;AACL,GAAA,EAEJ,CAAA;AAEJ;AAMO,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,KAA4B;AACrE,EAAA,uBACEJ,cAAA,CAACK,WAAI,EAAA,EAAG,GAAA,EAAI,SAAQ,OAAA,EAAQ,SAAA,EAAU,2BACnC,QAAA,EACH,CAAA;AAEJ;;;;;;;;;"}
@@ -10,7 +10,7 @@ const ThreadList = ({ children, "aria-label": ariaLabel = "Threads", embedded =
10
10
  {
11
11
  "aria-label": ariaLabel,
12
12
  className: cn(
13
- "h-full overflow-y-auto p-1",
13
+ "flex h-full flex-col gap-1 overflow-y-auto p-1",
14
14
  !embedded && "rounded-studio-panel border border-border1/50 bg-surface3"
15
15
  ),
16
16
  children
@@ -18,10 +18,10 @@ const ThreadList = ({ children, "aria-label": ariaLabel = "Threads", embedded =
18
18
  ) });
19
19
  };
20
20
  const ThreadListNewItem = ({ as, href, to, children }) => {
21
- return /* @__PURE__ */ jsx(Button, { as, href, to, variant: "ghost", className: "w-full justify-start rounded-xl", children });
21
+ return /* @__PURE__ */ jsx(Button, { as, href, to, variant: "ghost", className: "w-full justify-start rounded-xl px-3", children });
22
22
  };
23
23
  const ThreadListSeparator = () => /* @__PURE__ */ jsx("div", { role: "separator", "aria-orientation": "horizontal", className: "bg-border1/40 -mx-1 my-1 h-px" });
24
- const ThreadListItems = ({ children }) => /* @__PURE__ */ jsx("ol", { className: "flex flex-col gap-px", "data-testid": "thread-list", children });
24
+ const ThreadListItems = ({ children }) => /* @__PURE__ */ jsx("ol", { className: "flex flex-col gap-1", "data-testid": "thread-list", children });
25
25
  const ThreadListItem = ({
26
26
  as,
27
27
  href,
@@ -43,7 +43,7 @@ const ThreadListItem = ({
43
43
  onClick,
44
44
  variant: "ghost",
45
45
  className: cn(
46
- "h-auto! min-h-form-md w-full min-w-0 justify-start rounded-xl px-3 py-2 text-left",
46
+ "w-full min-w-0 justify-start rounded-xl px-3 text-left",
47
47
  onDelete && "pr-9",
48
48
  isActive && "bg-surface4 text-neutral6",
49
49
  className
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadList.es.js","sources":["../../src/ds/components/ThreadList/thread-list.tsx"],"sourcesContent":["import { X } from 'lucide-react';\nimport type { ElementType, MouseEvent, ReactNode } from 'react';\n\nimport { cn } from '../../../lib/utils';\nimport { Button } from '../Button';\nimport { Txt } from '../Txt';\n\nexport interface ThreadListProps {\n children: ReactNode;\n 'aria-label'?: string;\n /**\n * When true, drops the standalone block chrome (background, border, rounded corners, inset)\n * so the list can render flush inside an outer container without nesting a second box.\n */\n embedded?: boolean;\n}\n\nexport const ThreadList = ({ children, 'aria-label': ariaLabel = 'Threads', embedded = false }: ThreadListProps) => {\n return (\n <div className={cn('size-full', !embedded && 'pb-2 pl-2')}>\n <nav\n aria-label={ariaLabel}\n className={cn(\n 'h-full overflow-y-auto p-1',\n !embedded && 'rounded-studio-panel border border-border1/50 bg-surface3',\n )}\n >\n {children}\n </nav>\n </div>\n );\n};\n\nexport interface ThreadListNewItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n children: ReactNode;\n}\n\nexport const ThreadListNewItem = ({ as, href, to, children }: ThreadListNewItemProps) => {\n return (\n <Button as={as} href={href} to={to} variant=\"ghost\" className=\"w-full justify-start rounded-xl\">\n {children}\n </Button>\n );\n};\n\nexport const ThreadListSeparator = () => (\n <div role=\"separator\" aria-orientation=\"horizontal\" className=\"bg-border1/40 -mx-1 my-1 h-px\" />\n);\n\nexport interface ThreadListItemsProps {\n children: ReactNode;\n}\n\nexport const ThreadListItems = ({ children }: ThreadListItemsProps) => (\n <ol className=\"flex flex-col gap-px\" data-testid=\"thread-list\">\n {children}\n </ol>\n);\n\nexport interface ThreadListItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n isActive?: boolean;\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n onDelete?: () => void;\n deleteLabel?: string;\n className?: string;\n children: ReactNode;\n}\n\nexport const ThreadListItem = ({\n as,\n href,\n to,\n isActive,\n onClick,\n onDelete,\n deleteLabel = 'delete',\n className,\n children,\n}: ThreadListItemProps) => {\n return (\n <li className=\"group relative\">\n <Button\n as={as}\n href={href}\n to={to}\n onClick={onClick}\n variant=\"ghost\"\n className={cn(\n 'h-auto! min-h-form-md w-full min-w-0 justify-start rounded-xl px-3 py-2 text-left',\n onDelete && 'pr-9',\n isActive && 'bg-surface4 text-neutral6',\n className,\n )}\n >\n <span className=\"min-w-0 flex-1\">{children}</span>\n </Button>\n\n {onDelete && (\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n className=\"absolute top-1/2 right-1 -translate-y-1/2 opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100\"\n onClick={onDelete}\n aria-label={deleteLabel}\n >\n <X />\n </Button>\n )}\n </li>\n );\n};\n\nexport interface ThreadListEmptyProps {\n children: ReactNode;\n}\n\nexport const ThreadListEmpty = ({ children }: ThreadListEmptyProps) => {\n return (\n <Txt as=\"p\" variant=\"ui-sm\" className=\"text-neutral3 px-5 py-3\">\n {children}\n </Txt>\n );\n};\n"],"names":[],"mappings":";;;;;;AAiBO,MAAM,UAAA,GAAa,CAAC,EAAE,QAAA,EAAU,cAAc,SAAA,GAAY,SAAA,EAAW,QAAA,GAAW,KAAA,EAAM,KAAuB;AAClH,EAAA,uBACE,GAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,aAAa,CAAC,QAAA,IAAY,WAAW,CAAA,EACtD,QAAA,kBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,SAAA;AAAA,MACZ,SAAA,EAAW,EAAA;AAAA,QACT,4BAAA;AAAA,QACA,CAAC,QAAA,IAAY;AAAA,OACf;AAAA,MAEC;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AASO,MAAM,oBAAoB,CAAC,EAAE,IAAI,IAAA,EAAM,EAAA,EAAI,UAAS,KAA8B;AACvF,EAAA,uBACE,GAAA,CAAC,UAAO,EAAA,EAAQ,IAAA,EAAY,IAAQ,OAAA,EAAQ,OAAA,EAAQ,SAAA,EAAU,iCAAA,EAC3D,QAAA,EACH,CAAA;AAEJ;AAEO,MAAM,mBAAA,GAAsB,sBACjC,GAAA,CAAC,KAAA,EAAA,EAAI,MAAK,WAAA,EAAY,kBAAA,EAAiB,YAAA,EAAa,SAAA,EAAU,+BAAA,EAAgC;AAOzF,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,qBACzC,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,sBAAA,EAAuB,aAAA,EAAY,aAAA,EAC9C,QAAA,EACH;AAeK,MAAM,iBAAiB,CAAC;AAAA,EAC7B,EAAA;AAAA,EACA,IAAA;AAAA,EACA,EAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,QAAA;AAAA,EACd,SAAA;AAAA,EACA;AACF,CAAA,KAA2B;AACzB,EAAA,uBACE,IAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gBAAA,EACZ,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,EAAA;AAAA,QACA,IAAA;AAAA,QACA,EAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA,EAAQ,OAAA;AAAA,QACR,SAAA,EAAW,EAAA;AAAA,UACT,mFAAA;AAAA,UACA,QAAA,IAAY,MAAA;AAAA,UACZ,QAAA,IAAY,2BAAA;AAAA,UACZ;AAAA,SACF;AAAA,QAEA,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAS;AAAA;AAAA,KAC7C;AAAA,IAEC,QAAA,oBACC,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAK,SAAA;AAAA,QACL,SAAA,EAAU,+HAAA;AAAA,QACV,OAAA,EAAS,QAAA;AAAA,QACT,YAAA,EAAY,WAAA;AAAA,QAEZ,8BAAC,CAAA,EAAA,EAAE;AAAA;AAAA;AACL,GAAA,EAEJ,CAAA;AAEJ;AAMO,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,KAA4B;AACrE,EAAA,uBACE,GAAA,CAAC,OAAI,EAAA,EAAG,GAAA,EAAI,SAAQ,OAAA,EAAQ,SAAA,EAAU,2BACnC,QAAA,EACH,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"ThreadList.es.js","sources":["../../src/ds/components/ThreadList/thread-list.tsx"],"sourcesContent":["import { X } from 'lucide-react';\nimport type { ElementType, MouseEvent, ReactNode } from 'react';\n\nimport { cn } from '../../../lib/utils';\nimport { Button } from '../Button';\nimport { Txt } from '../Txt';\n\nexport interface ThreadListProps {\n children: ReactNode;\n 'aria-label'?: string;\n /**\n * When true, drops the standalone block chrome (background, border, rounded corners, inset)\n * so the list can render flush inside an outer container without nesting a second box.\n */\n embedded?: boolean;\n}\n\nexport const ThreadList = ({ children, 'aria-label': ariaLabel = 'Threads', embedded = false }: ThreadListProps) => {\n return (\n <div className={cn('size-full', !embedded && 'pb-2 pl-2')}>\n <nav\n aria-label={ariaLabel}\n className={cn(\n 'flex h-full flex-col gap-1 overflow-y-auto p-1',\n !embedded && 'rounded-studio-panel border border-border1/50 bg-surface3',\n )}\n >\n {children}\n </nav>\n </div>\n );\n};\n\nexport interface ThreadListNewItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n children: ReactNode;\n}\n\nexport const ThreadListNewItem = ({ as, href, to, children }: ThreadListNewItemProps) => {\n return (\n <Button as={as} href={href} to={to} variant=\"ghost\" className=\"w-full justify-start rounded-xl px-3\">\n {children}\n </Button>\n );\n};\n\nexport const ThreadListSeparator = () => (\n <div role=\"separator\" aria-orientation=\"horizontal\" className=\"bg-border1/40 -mx-1 my-1 h-px\" />\n);\n\nexport interface ThreadListItemsProps {\n children: ReactNode;\n}\n\nexport const ThreadListItems = ({ children }: ThreadListItemsProps) => (\n <ol className=\"flex flex-col gap-1\" data-testid=\"thread-list\">\n {children}\n </ol>\n);\n\nexport interface ThreadListItemProps {\n as?: ElementType;\n href?: string;\n to?: string;\n isActive?: boolean;\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n onDelete?: () => void;\n deleteLabel?: string;\n className?: string;\n children: ReactNode;\n}\n\nexport const ThreadListItem = ({\n as,\n href,\n to,\n isActive,\n onClick,\n onDelete,\n deleteLabel = 'delete',\n className,\n children,\n}: ThreadListItemProps) => {\n return (\n <li className=\"group relative\">\n <Button\n as={as}\n href={href}\n to={to}\n onClick={onClick}\n variant=\"ghost\"\n className={cn(\n 'w-full min-w-0 justify-start rounded-xl px-3 text-left',\n onDelete && 'pr-9',\n isActive && 'bg-surface4 text-neutral6',\n className,\n )}\n >\n <span className=\"min-w-0 flex-1\">{children}</span>\n </Button>\n\n {onDelete && (\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n className=\"absolute top-1/2 right-1 -translate-y-1/2 opacity-0 transition-opacity group-focus-within:opacity-100 group-hover:opacity-100\"\n onClick={onDelete}\n aria-label={deleteLabel}\n >\n <X />\n </Button>\n )}\n </li>\n );\n};\n\nexport interface ThreadListEmptyProps {\n children: ReactNode;\n}\n\nexport const ThreadListEmpty = ({ children }: ThreadListEmptyProps) => {\n return (\n <Txt as=\"p\" variant=\"ui-sm\" className=\"text-neutral3 px-5 py-3\">\n {children}\n </Txt>\n );\n};\n"],"names":[],"mappings":";;;;;;AAiBO,MAAM,UAAA,GAAa,CAAC,EAAE,QAAA,EAAU,cAAc,SAAA,GAAY,SAAA,EAAW,QAAA,GAAW,KAAA,EAAM,KAAuB;AAClH,EAAA,uBACE,GAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,aAAa,CAAC,QAAA,IAAY,WAAW,CAAA,EACtD,QAAA,kBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,SAAA;AAAA,MACZ,SAAA,EAAW,EAAA;AAAA,QACT,gDAAA;AAAA,QACA,CAAC,QAAA,IAAY;AAAA,OACf;AAAA,MAEC;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AASO,MAAM,oBAAoB,CAAC,EAAE,IAAI,IAAA,EAAM,EAAA,EAAI,UAAS,KAA8B;AACvF,EAAA,uBACE,GAAA,CAAC,UAAO,EAAA,EAAQ,IAAA,EAAY,IAAQ,OAAA,EAAQ,OAAA,EAAQ,SAAA,EAAU,sCAAA,EAC3D,QAAA,EACH,CAAA;AAEJ;AAEO,MAAM,mBAAA,GAAsB,sBACjC,GAAA,CAAC,KAAA,EAAA,EAAI,MAAK,WAAA,EAAY,kBAAA,EAAiB,YAAA,EAAa,SAAA,EAAU,+BAAA,EAAgC;AAOzF,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,qBACzC,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,qBAAA,EAAsB,aAAA,EAAY,aAAA,EAC7C,QAAA,EACH;AAeK,MAAM,iBAAiB,CAAC;AAAA,EAC7B,EAAA;AAAA,EACA,IAAA;AAAA,EACA,EAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,QAAA;AAAA,EACd,SAAA;AAAA,EACA;AACF,CAAA,KAA2B;AACzB,EAAA,uBACE,IAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gBAAA,EACZ,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,EAAA;AAAA,QACA,IAAA;AAAA,QACA,EAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA,EAAQ,OAAA;AAAA,QACR,SAAA,EAAW,EAAA;AAAA,UACT,wDAAA;AAAA,UACA,QAAA,IAAY,MAAA;AAAA,UACZ,QAAA,IAAY,2BAAA;AAAA,UACZ;AAAA,SACF;AAAA,QAEA,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAS;AAAA;AAAA,KAC7C;AAAA,IAEC,QAAA,oBACC,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAK,SAAA;AAAA,QACL,SAAA,EAAU,+HAAA;AAAA,QACV,OAAA,EAAS,QAAA;AAAA,QACT,YAAA,EAAY,WAAA;AAAA,QAEZ,8BAAC,CAAA,EAAA,EAAE;AAAA;AAAA;AACL,GAAA,EAEJ,CAAA;AAEJ;AAMO,MAAM,eAAA,GAAkB,CAAC,EAAE,QAAA,EAAS,KAA4B;AACrE,EAAA,uBACE,GAAA,CAAC,OAAI,EAAA,EAAG,GAAA,EAAI,SAAQ,OAAA,EAAQ,SAAA,EAAU,2BACnC,QAAA,EACH,CAAA;AAEJ;;;;"}
@@ -7,7 +7,7 @@ const lucideReact = require('lucide-react');
7
7
  const React = require('react');
8
8
  const Badge = require('../../Badge-uc0ydYdy.cjs');
9
9
  const Button = require('../../Button-D10WB4vc.cjs');
10
- const markdownRenderer = require('../../markdown-renderer-GVtZLunG.cjs');
10
+ const markdownRenderer = require('../../markdown-renderer-CI43GQqh.cjs');
11
11
  const Txt = require('../../Txt-D5Y_H2a0.cjs');
12
12
  const icons_Icon = require('../../icons/Icon.cjs.js');
13
13
  const hooks_useCopyToClipboard = require('../../hooks/use-copy-to-clipboard.cjs.js');
@@ -3,7 +3,7 @@ import { CheckIcon, CopyIcon, Minimize2, Maximize2, ClipboardList } from 'lucide
3
3
  import { useState, useRef, useLayoutEffect, createContext, useContext } from 'react';
4
4
  import { B as Badge } from '../../Badge-CvgvWjuP.js';
5
5
  import { B as Button } from '../../Button-BsfLQEC6.js';
6
- import { M as MarkdownRenderer } from '../../markdown-renderer-CaFpZTFS.js';
6
+ import { M as MarkdownRenderer } from '../../markdown-renderer-E_2ewUDs.js';
7
7
  import { T as Txt } from '../../Txt-ByUf-9Ic.js';
8
8
  import { Icon } from '../../icons/Icon.es.js';
9
9
  import { useCopyToClipboard } from '../../hooks/use-copy-to-clipboard.es.js';
@@ -12,7 +12,7 @@ const shimmer = require('../../shimmer-BH6aBatG.cjs');
12
12
  const Txt = require('../../Txt-D5Y_H2a0.cjs');
13
13
  const utils_cn = require('../../cn-DCPcv4xv.cjs');
14
14
  const code = require('../../code-DhrdtZce.cjs');
15
- const codeBlock = require('../../code-block-DgHrBuR8.cjs');
15
+ const codeBlock = require('../../code-block-qe7OUAjF.cjs');
16
16
  const highlight = require('../../highlight-DK1dn-Fh.cjs');
17
17
  const utils_truncateString = require('../../utils/truncate-string.cjs.js');
18
18
  const scrollArea = require('../../scroll-area-B1vdOFuC.cjs');
@@ -8,7 +8,7 @@ import { S as Shimmer } from '../../shimmer-DV3ZgmuP.js';
8
8
  import { T as Txt } from '../../Txt-ByUf-9Ic.js';
9
9
  import { c as cn } from '../../cn-B4oPhFx9.js';
10
10
  import { u as useHighlight, t as tokenStyle } from '../../code-D4Vw_fYq.js';
11
- import { C as CodeBlock } from '../../code-block-DeksY23p.js';
11
+ import { C as CodeBlock } from '../../code-block-CKowdtY1.js';
12
12
  import { l as languageForPath } from '../../highlight-BmpoELR4.js';
13
13
  import { truncateString } from '../../utils/truncate-string.es.js';
14
14
  import { S as ScrollArea } from '../../scroll-area-BiHnOfzg.js';
@@ -6,9 +6,9 @@ const jsxRuntime = require('react/jsx-runtime');
6
6
  const React = require('react');
7
7
  const metricsCard = require('../../../metrics-card-B8zgHlgB.cjs');
8
8
  const metricsLineChart = require('../../../metrics-line-chart-j6C2H3K1.cjs');
9
- const tabsContent = require('../../../tabs-content-BxToGCDw.cjs');
10
- const tabsRoot = require('../../../tabs-root-BNcLC-s6.cjs');
11
- const tabsTab = require('../../../tabs-tab-Ha0C9Dv3.cjs');
9
+ const tabsContent = require('../../../tabs-content-DktkvjQq.cjs');
10
+ const tabsRoot = require('../../../tabs-root-dbq4ph7H.cjs');
11
+ const tabsTab = require('../../../tabs-tab-Box-WPFr.cjs');
12
12
  const domains_metrics_components_latencyCardView_utils = require('./latency-card-view.utils.cjs.js');
13
13
  const domains_metrics_components_metricsUtils = require('./metrics-utils.cjs.js');
14
14
 
@@ -2,9 +2,9 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useState } from 'react';
3
3
  import { M as MetricsCard } from '../../../metrics-card-BKE1UzWh.js';
4
4
  import { M as MetricsLineChart } from '../../../metrics-line-chart-DNCs_ZF3.js';
5
- import { T as TabContent } from '../../../tabs-content-CLgmU6S_.js';
6
- import { a as Tabs, T as TabList } from '../../../tabs-root-BnwVjJbD.js';
7
- import { T as Tab } from '../../../tabs-tab-Qlfs2X2g.js';
5
+ import { T as TabContent } from '../../../tabs-content-CO1aqUws.js';
6
+ import { a as Tabs, T as TabList } from '../../../tabs-root-DP_5NGAv.js';
7
+ import { T as Tab } from '../../../tabs-tab-BIloVjDS.js';
8
8
  import { isLatencyTab, isDrillablePoint, averageLatency } from './latency-card-view.utils.es.js';
9
9
  import { CHART_COLORS } from './metrics-utils.es.js';
10
10
 
@@ -6,9 +6,9 @@ const jsxRuntime = require('react/jsx-runtime');
6
6
  const React = require('react');
7
7
  const dataList = require('../../../data-list-DWOT5t0J.cjs');
8
8
  const metricsCard = require('../../../metrics-card-B8zgHlgB.cjs');
9
- const tabsContent = require('../../../tabs-content-BxToGCDw.cjs');
10
- const tabsRoot = require('../../../tabs-root-BNcLC-s6.cjs');
11
- const tabsTab = require('../../../tabs-tab-Ha0C9Dv3.cjs');
9
+ const tabsContent = require('../../../tabs-content-DktkvjQq.cjs');
10
+ const tabsRoot = require('../../../tabs-root-dbq4ph7H.cjs');
11
+ const tabsTab = require('../../../tabs-tab-Box-WPFr.cjs');
12
12
  const domains_metrics_components_metricsUtils = require('./metrics-utils.cjs.js');
13
13
 
14
14
  function isMemoryTab(value) {
@@ -2,9 +2,9 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { useState } from 'react';
3
3
  import { D as DataList } from '../../../data-list-BiEEjaEy.js';
4
4
  import { M as MetricsCard } from '../../../metrics-card-BKE1UzWh.js';
5
- import { T as TabContent } from '../../../tabs-content-CLgmU6S_.js';
6
- import { a as Tabs, T as TabList } from '../../../tabs-root-BnwVjJbD.js';
7
- import { T as Tab } from '../../../tabs-tab-Qlfs2X2g.js';
5
+ import { T as TabContent } from '../../../tabs-content-CO1aqUws.js';
6
+ import { a as Tabs, T as TabList } from '../../../tabs-root-DP_5NGAv.js';
7
+ import { T as Tab } from '../../../tabs-tab-BIloVjDS.js';
8
8
  import { METRICS_DATA_LIST_PROPS, formatCompact, formatCost } from './metrics-utils.es.js';
9
9
 
10
10
  function isMemoryTab(value) {