@mastra/playground-ui 51.1.0 → 51.2.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.
Files changed (125) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/dist/Composer.css +1 -4
  3. package/dist/components/Comment.cjs.js +170 -0
  4. package/dist/components/Comment.cjs.js.map +1 -0
  5. package/dist/components/Comment.d.ts +2 -0
  6. package/dist/components/Comment.es.js +156 -0
  7. package/dist/components/Comment.es.js.map +1 -0
  8. package/dist/components/Composer.cjs.js +1 -1
  9. package/dist/components/Composer.cjs.js.map +1 -1
  10. package/dist/components/Composer.es.js +1 -1
  11. package/dist/components/Composer.es.js.map +1 -1
  12. package/dist/components/DataList.cjs.js +9 -9
  13. package/dist/components/DataList.cjs.js.map +1 -1
  14. package/dist/components/DataList.es.js +9 -9
  15. package/dist/components/DataList.es.js.map +1 -1
  16. package/dist/components/DateTimePicker.cjs.js +1 -1
  17. package/dist/components/DateTimePicker.es.js +1 -1
  18. package/dist/components/EnvironmentVariablesEditor.cjs.js +6 -6
  19. package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
  20. package/dist/components/EnvironmentVariablesEditor.es.js +6 -6
  21. package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
  22. package/dist/components/FormFieldBlocks.cjs.js +1 -1
  23. package/dist/components/FormFieldBlocks.es.js +1 -1
  24. package/dist/components/JSONSchemaForm.cjs.js +1 -1
  25. package/dist/components/JSONSchemaForm.es.js +1 -1
  26. package/dist/components/LogsDataList.cjs.js +2 -3
  27. package/dist/components/LogsDataList.cjs.js.map +1 -1
  28. package/dist/components/LogsDataList.es.js +2 -3
  29. package/dist/components/LogsDataList.es.js.map +1 -1
  30. package/dist/components/MainSidebar.cjs.js +1 -1
  31. package/dist/components/MainSidebar.cjs.js.map +1 -1
  32. package/dist/components/MainSidebar.es.js +1 -1
  33. package/dist/components/MainSidebar.es.js.map +1 -1
  34. package/dist/components/SettingsRow.cjs.js +35 -14
  35. package/dist/components/SettingsRow.cjs.js.map +1 -1
  36. package/dist/components/SettingsRow.es.js +35 -14
  37. package/dist/components/SettingsRow.es.js.map +1 -1
  38. package/dist/components/ai/tool-call.cjs.js +1 -1
  39. package/dist/components/ai/tool-call.cjs.js.map +1 -1
  40. package/dist/components/ai/tool-call.es.js +1 -1
  41. package/dist/components/ai/tool-call.es.js.map +1 -1
  42. package/dist/{data-list-CfsEAR2E.js → data-list-BOI8fRuk.js} +7 -9
  43. package/dist/data-list-BOI8fRuk.js.map +1 -0
  44. package/dist/{data-list-BK_lJxMN.cjs → data-list-CCacNODd.cjs} +7 -9
  45. package/dist/data-list-CCacNODd.cjs.map +1 -0
  46. package/dist/{data-list-skeleton-dVbplSiW.cjs → data-list-skeleton-BHBSIQHN.cjs} +8 -4
  47. package/dist/data-list-skeleton-BHBSIQHN.cjs.map +1 -0
  48. package/dist/{data-list-skeleton-DQp3KwVO.js → data-list-skeleton-DDO_OE14.js} +8 -4
  49. package/dist/data-list-skeleton-DDO_OE14.js.map +1 -0
  50. package/dist/{data-list-top-cell-DyBSefIr.cjs → data-list-top-cell-BOXO5s7I.cjs} +55 -104
  51. package/dist/data-list-top-cell-BOXO5s7I.cjs.map +1 -0
  52. package/dist/{data-list-top-cell-DZiX9cTb.js → data-list-top-cell-CC5jjv5s.js} +54 -104
  53. package/dist/data-list-top-cell-CC5jjv5s.js.map +1 -0
  54. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
  55. package/dist/domains/logs/components/logs-list-view.es.js +2 -2
  56. package/dist/domains/metrics/components/memory-card-view.cjs.js +3 -3
  57. package/dist/domains/metrics/components/memory-card-view.cjs.js.map +1 -1
  58. package/dist/domains/metrics/components/memory-card-view.es.js +3 -3
  59. package/dist/domains/metrics/components/memory-card-view.es.js.map +1 -1
  60. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
  61. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js.map +1 -1
  62. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
  63. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js.map +1 -1
  64. package/dist/domains/metrics/components/scores-card-view.cjs.js +2 -2
  65. package/dist/domains/metrics/components/scores-card-view.cjs.js.map +1 -1
  66. package/dist/domains/metrics/components/scores-card-view.es.js +2 -2
  67. package/dist/domains/metrics/components/scores-card-view.es.js.map +1 -1
  68. package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
  69. package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
  70. package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
  71. package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
  72. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +16 -5
  73. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  74. package/dist/domains/traces/components/trace-data-panel-view.es.js +16 -5
  75. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  76. package/dist/domains/traces/components/traces-list-view.cjs.js +4 -4
  77. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  78. package/dist/domains/traces/components/traces-list-view.es.js +4 -4
  79. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  80. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
  81. package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
  82. package/dist/{logs-data-list-COfm0LbS.js → logs-data-list-DRXJ89IZ.js} +7 -7
  83. package/dist/logs-data-list-DRXJ89IZ.js.map +1 -0
  84. package/dist/{logs-data-list-CEPdgKxp.cjs → logs-data-list-Xayqbjw4.cjs} +7 -7
  85. package/dist/logs-data-list-Xayqbjw4.cjs.map +1 -0
  86. package/dist/metrics-kpi-card-AhIw9eyu.js.map +1 -1
  87. package/dist/metrics-kpi-card-tAReOFYk.cjs.map +1 -1
  88. package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +11 -2
  89. package/dist/src/ds/components/Comment/comment-composer.d.ts +12 -0
  90. package/dist/src/ds/components/Comment/comment-context.d.ts +3 -0
  91. package/dist/src/ds/components/Comment/comment.d.ts +21 -0
  92. package/dist/src/ds/components/Comment/comment.stories.d.ts +10 -0
  93. package/dist/src/ds/components/Comment/index.d.ts +5 -0
  94. package/dist/src/ds/components/DataList/data-list-cells.d.ts +16 -18
  95. package/dist/src/ds/components/DataList/data-list-root.d.ts +6 -7
  96. package/dist/src/ds/components/DataList/data-list-row-link.d.ts +1 -1
  97. package/dist/src/ds/components/DataList/data-list-row-wrapper.d.ts +2 -2
  98. package/dist/src/ds/components/DataList/data-list.d.ts +2 -2
  99. package/dist/src/ds/components/DataList/data-list.stories.d.ts +1 -1
  100. package/dist/src/ds/components/DataList/shared.d.ts +18 -18
  101. package/dist/src/ds/components/MetricsKpiCard/metrics-kpi-card-value.d.ts +2 -1
  102. package/dist/src/ds/components/SettingsRow/settings-row.d.ts +8 -3
  103. package/dist/src/ds/components/SettingsRow/settings-row.stories.d.ts +1 -0
  104. package/dist/style.css +67 -232
  105. package/dist/{text-field-block-BGlwSFYC.cjs → text-field-block-B4CvIwKh.cjs} +2 -1
  106. package/dist/text-field-block-B4CvIwKh.cjs.map +1 -0
  107. package/dist/{text-field-block-DOiM0dpY.js → text-field-block-Ddl2tJ6D.js} +2 -1
  108. package/dist/{text-field-block-DOiM0dpY.js.map → text-field-block-Ddl2tJ6D.js.map} +1 -1
  109. package/dist/{traces-data-list-CyaLRi1n.cjs → traces-data-list-BLZgf-Es.cjs} +7 -7
  110. package/dist/traces-data-list-BLZgf-Es.cjs.map +1 -0
  111. package/dist/{traces-data-list-BURMAmFH.js → traces-data-list-DmXGwe4Q.js} +7 -7
  112. package/dist/traces-data-list-DmXGwe4Q.js.map +1 -0
  113. package/package.json +7 -7
  114. package/theme.css +7 -0
  115. package/dist/data-list-BK_lJxMN.cjs.map +0 -1
  116. package/dist/data-list-CfsEAR2E.js.map +0 -1
  117. package/dist/data-list-skeleton-DQp3KwVO.js.map +0 -1
  118. package/dist/data-list-skeleton-dVbplSiW.cjs.map +0 -1
  119. package/dist/data-list-top-cell-DZiX9cTb.js.map +0 -1
  120. package/dist/data-list-top-cell-DyBSefIr.cjs.map +0 -1
  121. package/dist/logs-data-list-CEPdgKxp.cjs.map +0 -1
  122. package/dist/logs-data-list-COfm0LbS.js.map +0 -1
  123. package/dist/text-field-block-BGlwSFYC.cjs.map +0 -1
  124. package/dist/traces-data-list-BURMAmFH.js.map +0 -1
  125. package/dist/traces-data-list-CyaLRi1n.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call.cjs.js","sources":["../../../src/ds/components/ai/tool-call/tool-call.tsx","../../../src/ds/components/ai/tool-call/tool-presentation.ts"],"sourcesContent":["import { ChevronRight, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport { createContext, useContext, useId, useState } from 'react';\nimport type { ComponentProps } from 'react';\nimport { useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype ToolCallStatus = 'idle' | 'running' | 'error';\n\ninterface ToolCallContextValue {\n open: boolean;\n status: ToolCallStatus;\n}\n\nconst ToolCallContext = createContext<ToolCallContextValue | undefined>(undefined);\n\n// Stryker disable next-line ArrowFunction: the default callback is intentionally behaviorless.\nconst noopOpenChange = () => {};\n\nfunction useToolCall() {\n const context = useContext(ToolCallContext);\n if (!context) throw new Error('ToolCall compounds must be rendered within ToolCall');\n return context;\n}\n\nexport interface ToolCallProps extends Omit<\n ComponentProps<typeof Collapsible>,\n 'defaultOpen' | 'onOpenChange' | 'open'\n> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n status?: ToolCallStatus;\n}\n\nexport function ToolCall({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange = noopOpenChange,\n status = 'idle',\n className,\n children,\n ...props\n}: ToolCallProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = controlledOpen ?? uncontrolledOpen;\n const statusId = useId();\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange(nextOpen);\n };\n\n return (\n <ToolCallContext.Provider value={{ open, status }}>\n <Collapsible\n open={open}\n onOpenChange={handleOpenChange}\n className={cn('max-w-full min-w-0', className)}\n role=\"group\"\n aria-busy={status === 'running'}\n aria-invalid={status === 'error' || undefined}\n aria-describedby={status === 'idle' ? undefined : statusId}\n data-status={status}\n {...props}\n >\n {children}\n {status !== 'idle' && (\n <span id={statusId} className=\"sr-only\">\n {status === 'running' ? 'Tool call running' : 'Tool call failed'}\n </span>\n )}\n </Collapsible>\n </ToolCallContext.Provider>\n );\n}\n\nexport const ToolCallTrigger = ({ className, ...props }: ComponentProps<typeof CollapsibleTrigger>) => (\n <CollapsibleTrigger\n className={cn(\n 'group/row w-full cursor-pointer rounded-md text-left transition-colors hover:bg-neutral6/5 focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:outline-hidden motion-reduce:transition-none',\n className,\n )}\n {...props}\n />\n);\n\nexport const ToolCallHeader = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { status } = useToolCall();\n\n return (\n <Shimmer\n active={status === 'running'}\n className={cn('flex w-full min-w-0 items-center gap-2 px-1.5 py-1', className)}\n {...props}\n >\n {children}\n </Shimmer>\n );\n};\n\nexport const ToolCallIcon = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props} />\n);\n\nexport const ToolCallLabel = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" variant=\"ui-sm\" className={cn('text-icon3 max-w-[55%] shrink-0 truncate', className)} {...props} />\n);\n\nexport const ToolCallDetail = ({ className, ...props }: ComponentProps<typeof Txt>) => {\n const arriving = useArriving();\n\n return (\n <Txt\n as=\"span\"\n variant=\"ui-xs\"\n font=\"mono\"\n className={cn('text-icon3 min-w-0 truncate', arriving, className)}\n {...props}\n />\n );\n};\n\nexport const ToolCallSummary = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex min-w-0 items-center gap-1', className)} {...props} />\n);\n\nexport interface ToolCallSpacerProps extends ComponentProps<'span'> {\n rule?: boolean;\n}\n\nexport const ToolCallSpacer = ({ rule, className, ...props }: ToolCallSpacerProps) => (\n <span\n aria-hidden\n className={cn('min-w-2 flex-1', rule && 'h-px bg-border1 mask-r-from-[calc(100%-min(100%,160px))]', className)}\n {...props}\n />\n);\n\nexport const ToolCallTrailing = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex shrink-0 items-center', className)} {...props} />\n);\n\nexport const ToolCallDisclosure = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { open } = useToolCall();\n\n return (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props}>\n <span\n aria-hidden\n className={cn(\n 'text-icon3 flex shrink-0 items-center opacity-0 transition duration-150 motion-reduce:transition-none',\n 'group-hover/row:opacity-100 group-focus-visible/row:opacity-100',\n open && 'rotate-90 opacity-100',\n )}\n >\n {children ?? <ChevronRight size={13} />}\n </span>\n </span>\n );\n};\n\nexport interface ToolCallPresentedHeaderProps extends Omit<ComponentProps<typeof ToolCallHeader>, 'children'> {\n icon: LucideIcon;\n label: string;\n detail?: string;\n disclosure?: boolean;\n}\n\n/** The canonical header of a presented tool call: icon, label, detail, failure mark, chevron. */\nexport const ToolCallPresentedHeader = ({\n icon: Icon,\n label,\n detail,\n disclosure = true,\n ...props\n}: ToolCallPresentedHeaderProps) => {\n const { status } = useToolCall();\n\n return (\n <ToolCallHeader {...props}>\n <ToolCallIcon>\n <Icon\n size={14}\n strokeWidth={1.75}\n aria-hidden\n className={status === 'error' ? 'text-error/80' : 'text-icon2'}\n />\n </ToolCallIcon>\n <ToolCallLabel>{label}</ToolCallLabel>\n {detail && <ToolCallDetail>{detail}</ToolCallDetail>}\n <ToolCallSpacer />\n {status === 'error' && (\n <ToolCallTrailing>\n <X size={13} role=\"img\" aria-label=\"Failed\" className=\"text-error shrink-0\" />\n </ToolCallTrailing>\n )}\n {disclosure && <ToolCallDisclosure />}\n </ToolCallHeader>\n );\n};\n\nexport const ToolCallContent = ({ className, children, ...props }: ComponentProps<typeof CollapsibleContent>) => (\n <CollapsibleContent className=\"max-w-full min-w-0\" {...props}>\n <div\n className={cn(\n \"relative ml-[14px] flex max-w-full min-w-0 flex-col gap-1.5 py-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border1 before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\",\n className,\n )}\n >\n {children}\n </div>\n </CollapsibleContent>\n);\n\nexport interface ToolCallMonoProps extends ComponentProps<'pre'> {\n copyText: string;\n}\n\n/** Monospace body block of an expanded call — arguments, command, output — with a hover copy. */\nexport const ToolCallMono = ({ copyText, className, children, ...props }: ToolCallMonoProps) => (\n <div className=\"group/block relative max-w-full min-w-0\">\n <pre\n className={cn(\n 'm-0 max-h-60 max-w-full overflow-auto rounded-md bg-surface1 px-3 py-2 font-mono text-xs leading-normal break-words whitespace-pre-wrap',\n className,\n )}\n {...props}\n >\n {children}\n </pre>\n <CopyButton\n content={copyText}\n size=\"sm\"\n variant=\"ghost\"\n className=\"absolute top-1 right-1 opacity-0 transition-opacity group-hover/block:opacity-100 focus-visible:opacity-100\"\n />\n </div>\n);\n\nexport type { ToolCallStatus };\n","import {\n BookOpen,\n Braces,\n CircleStop,\n Eye,\n FileSearch,\n FolderPlus,\n FolderSearch,\n Globe,\n ScrollText,\n Search,\n SquarePen,\n SquareTerminal,\n Trash2,\n Wrench,\n} from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\n\nexport interface ToolPresentation {\n icon: LucideIcon;\n label: string;\n /** Salient argument shown next to the label: command, path, pattern… */\n detail?: string;\n /** Shell command, when the tool is terminal-style. Drives the expanded body. */\n command?: string;\n}\n\n/** Tool arguments and results as the mono body shows them: strings verbatim, the rest pretty JSON. */\nexport function stringifyToolValue(value: unknown): string {\n if (typeof value === 'string') return value;\n try {\n return JSON.stringify(value, null, 2) ?? String(value);\n } catch {\n return String(value);\n }\n}\n\nfunction hasProperty<K extends string>(value: object, key: K): value is object & Record<K, unknown> {\n return key in value;\n}\n\nfunction stringArg(args: unknown, key: string): string | undefined {\n if (!args || typeof args !== 'object' || !hasProperty(args, key)) return undefined;\n const value = args[key];\n if (typeof value === 'number') return String(value);\n return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\n\nfunction firstStringArg(args: unknown, keys: string[]): string | undefined {\n for (const key of keys) {\n const value = stringArg(args, key);\n if (value) return value;\n }\n return undefined;\n}\n\ninterface ToolStyle {\n icon: LucideIcon;\n label: string;\n detailKeys?: string[];\n isCommand?: boolean;\n}\n\nconst TOOL_STYLES: Record<string, ToolStyle> = {\n view: { icon: Eye, label: 'Read', detailKeys: ['path'] },\n read_file: { icon: Eye, label: 'Read', detailKeys: ['path'] },\n write_file: { icon: SquarePen, label: 'Write', detailKeys: ['path'] },\n create_file: { icon: SquarePen, label: 'Write', detailKeys: ['path'] },\n edit_file: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n string_replace: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n str_replace: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n ast_edit: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n execute_command: { icon: SquareTerminal, label: 'Run', detailKeys: ['command'], isCommand: true },\n get_process_output: { icon: ScrollText, label: 'Process output', detailKeys: ['pid'] },\n kill_process: { icon: CircleStop, label: 'Stop process', detailKeys: ['pid'] },\n find_files: { icon: FolderSearch, label: 'Find files', detailKeys: ['pattern', 'path'] },\n list_files: { icon: FolderSearch, label: 'List files', detailKeys: ['pattern', 'path'] },\n grep: { icon: Search, label: 'Search', detailKeys: ['pattern', 'path'] },\n search_content: { icon: Search, label: 'Search', detailKeys: ['pattern', 'query'] },\n search: { icon: Search, label: 'Search', detailKeys: ['query'] },\n web_search: { icon: Globe, label: 'Search the web', detailKeys: ['query'] },\n lsp_inspect: { icon: Braces, label: 'Inspect code', detailKeys: ['path'] },\n file_stat: { icon: FileSearch, label: 'File info', detailKeys: ['path'] },\n delete: { icon: Trash2, label: 'Delete', detailKeys: ['path'] },\n delete_file: { icon: Trash2, label: 'Delete', detailKeys: ['path'] },\n mkdir: { icon: FolderPlus, label: 'New folder', detailKeys: ['path'] },\n skill: { icon: BookOpen, label: 'Skill', detailKeys: ['name'] },\n skill_search: { icon: BookOpen, label: 'Search skills', detailKeys: ['query'] },\n skill_read: { icon: BookOpen, label: 'Skill file', detailKeys: ['path'] },\n};\n\nfunction prettifyToolName(toolName: string): string {\n const words = toolName.replace(/[_-]+/g, ' ').trim();\n return words ? words.charAt(0).toUpperCase() + words.slice(1) : toolName;\n}\n\n/** Agents prefix commands with `cd <workspace> &&`, which crowds out the command itself on a one-line row. */\nfunction withoutCdPrefix(command: string): string {\n return command.replace(/^\\s*cd\\s+(?:'[^']*'|\"[^\"]*\"|[^\\s&|;]+)\\s*&&\\s*/, '') || command;\n}\n\nexport function presentTool(toolName: string, args: unknown): ToolPresentation {\n const style = TOOL_STYLES[toolName.replace(/^mastra_workspace_/, '')];\n if (!style) return { icon: Wrench, label: prettifyToolName(toolName) };\n\n const detail = style.detailKeys ? firstStringArg(args, style.detailKeys) : undefined;\n if (!detail) return { icon: style.icon, label: style.label };\n if (!style.isCommand) return { icon: style.icon, label: style.label, detail };\n return { icon: style.icon, label: style.label, detail: withoutCdPrefix(detail), command: detail };\n}\n"],"names":["createContext","useContext","useState","useId","jsx","jsxs","Collapsible","cn","CollapsibleTrigger","Shimmer","Txt","useArriving","ChevronRight","X","CollapsibleContent","CopyButton","Eye","SquarePen","SquareTerminal","ScrollText","CircleStop","FolderSearch","Search","Globe","Braces","FileSearch","Trash2","FolderPlus","BookOpen","Wrench"],"mappings":"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"}
1
+ {"version":3,"file":"tool-call.cjs.js","sources":["../../../src/ds/components/ai/tool-call/tool-call.tsx","../../../src/ds/components/ai/tool-call/tool-presentation.ts"],"sourcesContent":["import { ChevronRight, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport { createContext, useContext, useId, useState } from 'react';\nimport type { ComponentProps } from 'react';\nimport { useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype ToolCallStatus = 'idle' | 'running' | 'error';\n\ninterface ToolCallContextValue {\n open: boolean;\n status: ToolCallStatus;\n}\n\nconst ToolCallContext = createContext<ToolCallContextValue | undefined>(undefined);\n\n// Stryker disable next-line ArrowFunction: the default callback is intentionally behaviorless.\nconst noopOpenChange = () => {};\n\nfunction useToolCall() {\n const context = useContext(ToolCallContext);\n if (!context) throw new Error('ToolCall compounds must be rendered within ToolCall');\n return context;\n}\n\nexport interface ToolCallProps extends Omit<\n ComponentProps<typeof Collapsible>,\n 'defaultOpen' | 'onOpenChange' | 'open'\n> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n status?: ToolCallStatus;\n}\n\nexport function ToolCall({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange = noopOpenChange,\n status = 'idle',\n className,\n children,\n ...props\n}: ToolCallProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = controlledOpen ?? uncontrolledOpen;\n const statusId = useId();\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange(nextOpen);\n };\n\n return (\n <ToolCallContext.Provider value={{ open, status }}>\n <Collapsible\n open={open}\n onOpenChange={handleOpenChange}\n className={cn('max-w-full min-w-0', className)}\n role=\"group\"\n aria-busy={status === 'running'}\n aria-invalid={status === 'error' || undefined}\n aria-describedby={status === 'idle' ? undefined : statusId}\n data-status={status}\n {...props}\n >\n {children}\n {status !== 'idle' && (\n <span id={statusId} className=\"sr-only\">\n {status === 'running' ? 'Tool call running' : 'Tool call failed'}\n </span>\n )}\n </Collapsible>\n </ToolCallContext.Provider>\n );\n}\n\nexport const ToolCallTrigger = ({ className, ...props }: ComponentProps<typeof CollapsibleTrigger>) => (\n <CollapsibleTrigger\n className={cn(\n 'group/row w-full cursor-pointer rounded-md text-left transition-colors hover:bg-neutral6/5 focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:outline-hidden motion-reduce:transition-none',\n className,\n )}\n {...props}\n />\n);\n\nexport const ToolCallHeader = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { status } = useToolCall();\n\n return (\n <Shimmer\n active={status === 'running'}\n className={cn('flex w-full min-w-0 items-center gap-2 px-1.5 py-1', className)}\n {...props}\n >\n {children}\n </Shimmer>\n );\n};\n\nexport const ToolCallIcon = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props} />\n);\n\nexport const ToolCallLabel = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" variant=\"ui-sm\" className={cn('text-icon3 max-w-[55%] shrink-0 truncate', className)} {...props} />\n);\n\nexport const ToolCallDetail = ({ className, ...props }: ComponentProps<typeof Txt>) => {\n const arriving = useArriving();\n\n return (\n <Txt\n as=\"span\"\n variant=\"ui-xs\"\n font=\"mono\"\n className={cn('text-icon3 min-w-0 truncate', arriving, className)}\n {...props}\n />\n );\n};\n\nexport const ToolCallSummary = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex min-w-0 items-center gap-1', className)} {...props} />\n);\n\nexport interface ToolCallSpacerProps extends ComponentProps<'span'> {\n rule?: boolean;\n}\n\nexport const ToolCallSpacer = ({ rule, className, ...props }: ToolCallSpacerProps) => (\n <span\n aria-hidden\n className={cn('min-w-2 flex-1', rule && 'h-px bg-border1 mask-r-from-[calc(100%-min(100%,160px))]', className)}\n {...props}\n />\n);\n\nexport const ToolCallTrailing = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex shrink-0 items-center', className)} {...props} />\n);\n\nexport const ToolCallDisclosure = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { open } = useToolCall();\n\n return (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props}>\n <span\n aria-hidden\n className={cn(\n 'text-icon3 flex shrink-0 items-center opacity-0 transition duration-150 motion-reduce:transition-none',\n 'group-hover/row:opacity-100 group-focus-visible/row:opacity-100',\n open && 'rotate-90 opacity-100',\n )}\n >\n {children ?? <ChevronRight size={13} />}\n </span>\n </span>\n );\n};\n\nexport interface ToolCallPresentedHeaderProps extends Omit<ComponentProps<typeof ToolCallHeader>, 'children'> {\n icon: LucideIcon;\n label: string;\n detail?: string;\n disclosure?: boolean;\n}\n\n/** The canonical header of a presented tool call: icon, label, detail, failure mark, chevron. */\nexport const ToolCallPresentedHeader = ({\n icon: Icon,\n label,\n detail,\n disclosure = true,\n ...props\n}: ToolCallPresentedHeaderProps) => {\n const { status } = useToolCall();\n\n return (\n <ToolCallHeader {...props}>\n <ToolCallIcon>\n <Icon\n size={14}\n strokeWidth={1.75}\n aria-hidden\n className={status === 'error' ? 'text-error/80' : 'text-icon2'}\n />\n </ToolCallIcon>\n <ToolCallLabel>{label}</ToolCallLabel>\n {detail && <ToolCallDetail>{detail}</ToolCallDetail>}\n <ToolCallSpacer />\n {status === 'error' && (\n <ToolCallTrailing>\n <X size={13} role=\"img\" aria-label=\"Failed\" className=\"text-error shrink-0\" />\n </ToolCallTrailing>\n )}\n {disclosure && <ToolCallDisclosure />}\n </ToolCallHeader>\n );\n};\n\nexport const ToolCallContent = ({ className, children, ...props }: ComponentProps<typeof CollapsibleContent>) => (\n <CollapsibleContent className=\"max-w-full min-w-0\" {...props}>\n <div\n className={cn(\n \"relative ml-[14px] flex max-w-full min-w-0 flex-col gap-1.5 py-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border1 before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\",\n className,\n )}\n >\n {children}\n </div>\n </CollapsibleContent>\n);\n\nexport interface ToolCallMonoProps extends ComponentProps<'pre'> {\n copyText: string;\n}\n\n/** Monospace body block of an expanded call — arguments, command, output — with a hover copy. */\nexport const ToolCallMono = ({ copyText, className, children, ...props }: ToolCallMonoProps) => (\n <div className=\"group/block relative max-w-full min-w-0\">\n <pre\n className={cn(\n 'm-0 max-h-60 max-w-full overflow-auto rounded-md bg-neutral6/5 px-3 py-2 font-mono text-xs leading-normal break-words whitespace-pre-wrap',\n className,\n )}\n {...props}\n >\n {children}\n </pre>\n <CopyButton\n content={copyText}\n size=\"sm\"\n variant=\"ghost\"\n className=\"absolute top-1 right-1 opacity-0 transition-opacity group-hover/block:opacity-100 focus-visible:opacity-100\"\n />\n </div>\n);\n\nexport type { ToolCallStatus };\n","import {\n BookOpen,\n Braces,\n CircleStop,\n Eye,\n FileSearch,\n FolderPlus,\n FolderSearch,\n Globe,\n ScrollText,\n Search,\n SquarePen,\n SquareTerminal,\n Trash2,\n Wrench,\n} from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\n\nexport interface ToolPresentation {\n icon: LucideIcon;\n label: string;\n /** Salient argument shown next to the label: command, path, pattern… */\n detail?: string;\n /** Shell command, when the tool is terminal-style. Drives the expanded body. */\n command?: string;\n}\n\n/** Tool arguments and results as the mono body shows them: strings verbatim, the rest pretty JSON. */\nexport function stringifyToolValue(value: unknown): string {\n if (typeof value === 'string') return value;\n try {\n return JSON.stringify(value, null, 2) ?? String(value);\n } catch {\n return String(value);\n }\n}\n\nfunction hasProperty<K extends string>(value: object, key: K): value is object & Record<K, unknown> {\n return key in value;\n}\n\nfunction stringArg(args: unknown, key: string): string | undefined {\n if (!args || typeof args !== 'object' || !hasProperty(args, key)) return undefined;\n const value = args[key];\n if (typeof value === 'number') return String(value);\n return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\n\nfunction firstStringArg(args: unknown, keys: string[]): string | undefined {\n for (const key of keys) {\n const value = stringArg(args, key);\n if (value) return value;\n }\n return undefined;\n}\n\ninterface ToolStyle {\n icon: LucideIcon;\n label: string;\n detailKeys?: string[];\n isCommand?: boolean;\n}\n\nconst TOOL_STYLES: Record<string, ToolStyle> = {\n view: { icon: Eye, label: 'Read', detailKeys: ['path'] },\n read_file: { icon: Eye, label: 'Read', detailKeys: ['path'] },\n write_file: { icon: SquarePen, label: 'Write', detailKeys: ['path'] },\n create_file: { icon: SquarePen, label: 'Write', detailKeys: ['path'] },\n edit_file: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n string_replace: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n str_replace: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n ast_edit: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n execute_command: { icon: SquareTerminal, label: 'Run', detailKeys: ['command'], isCommand: true },\n get_process_output: { icon: ScrollText, label: 'Process output', detailKeys: ['pid'] },\n kill_process: { icon: CircleStop, label: 'Stop process', detailKeys: ['pid'] },\n find_files: { icon: FolderSearch, label: 'Find files', detailKeys: ['pattern', 'path'] },\n list_files: { icon: FolderSearch, label: 'List files', detailKeys: ['pattern', 'path'] },\n grep: { icon: Search, label: 'Search', detailKeys: ['pattern', 'path'] },\n search_content: { icon: Search, label: 'Search', detailKeys: ['pattern', 'query'] },\n search: { icon: Search, label: 'Search', detailKeys: ['query'] },\n web_search: { icon: Globe, label: 'Search the web', detailKeys: ['query'] },\n lsp_inspect: { icon: Braces, label: 'Inspect code', detailKeys: ['path'] },\n file_stat: { icon: FileSearch, label: 'File info', detailKeys: ['path'] },\n delete: { icon: Trash2, label: 'Delete', detailKeys: ['path'] },\n delete_file: { icon: Trash2, label: 'Delete', detailKeys: ['path'] },\n mkdir: { icon: FolderPlus, label: 'New folder', detailKeys: ['path'] },\n skill: { icon: BookOpen, label: 'Skill', detailKeys: ['name'] },\n skill_search: { icon: BookOpen, label: 'Search skills', detailKeys: ['query'] },\n skill_read: { icon: BookOpen, label: 'Skill file', detailKeys: ['path'] },\n};\n\nfunction prettifyToolName(toolName: string): string {\n const words = toolName.replace(/[_-]+/g, ' ').trim();\n return words ? words.charAt(0).toUpperCase() + words.slice(1) : toolName;\n}\n\n/** Agents prefix commands with `cd <workspace> &&`, which crowds out the command itself on a one-line row. */\nfunction withoutCdPrefix(command: string): string {\n return command.replace(/^\\s*cd\\s+(?:'[^']*'|\"[^\"]*\"|[^\\s&|;]+)\\s*&&\\s*/, '') || command;\n}\n\nexport function presentTool(toolName: string, args: unknown): ToolPresentation {\n const style = TOOL_STYLES[toolName.replace(/^mastra_workspace_/, '')];\n if (!style) return { icon: Wrench, label: prettifyToolName(toolName) };\n\n const detail = style.detailKeys ? firstStringArg(args, style.detailKeys) : undefined;\n if (!detail) return { icon: style.icon, label: style.label };\n if (!style.isCommand) return { icon: style.icon, label: style.label, detail };\n return { icon: style.icon, label: style.label, detail: withoutCdPrefix(detail), command: detail };\n}\n"],"names":["createContext","useContext","useState","useId","jsx","jsxs","Collapsible","cn","CollapsibleTrigger","Shimmer","Txt","useArriving","ChevronRight","X","CollapsibleContent","CopyButton","Eye","SquarePen","SquareTerminal","ScrollText","CircleStop","FolderSearch","Search","Globe","Braces","FileSearch","Trash2","FolderPlus","BookOpen","Wrench"],"mappings":";;;;;;;;;;;;;;AAkBA,MAAM,eAAA,GAAkBA,oBAAgD,MAAS,CAAA;AAGjF,MAAM,iBAAiB,MAAM;AAAC,CAAA;AAE9B,SAAS,WAAA,GAAc;AACrB,EAAA,MAAM,OAAA,GAAUC,iBAAW,eAAe,CAAA;AAC1C,EAAA,IAAI,CAAC,OAAA,EAAS,MAAM,IAAI,MAAM,qDAAqD,CAAA;AACnF,EAAA,OAAO,OAAA;AACT;AAYO,SAAS,QAAA,CAAS;AAAA,EACvB,IAAA,EAAM,cAAA;AAAA,EACN,WAAA,GAAc,KAAA;AAAA,EACd,YAAA,GAAe,cAAA;AAAA,EACf,MAAA,GAAS,MAAA;AAAA,EACT,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIC,eAAS,WAAW,CAAA;AACpE,EAAA,MAAM,OAAO,cAAA,IAAkB,gBAAA;AAC/B,EAAA,MAAM,WAAWC,WAAA,EAAM;AAEvB,EAAA,MAAM,gBAAA,GAAmB,CAAC,QAAA,KAAsB;AAC9C,IAAA,IAAI,cAAA,KAAmB,MAAA,EAAW,mBAAA,CAAoB,QAAQ,CAAA;AAC9D,IAAA,YAAA,CAAa,QAAQ,CAAA;AAAA,EACvB,CAAA;AAEA,EAAA,uBACEC,cAAA,CAAC,gBAAgB,QAAA,EAAhB,EAAyB,OAAO,EAAE,IAAA,EAAM,QAAO,EAC9C,QAAA,kBAAAC,eAAA;AAAA,IAACC,uBAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,YAAA,EAAc,gBAAA;AAAA,MACd,SAAA,EAAWC,WAAA,CAAG,oBAAA,EAAsB,SAAS,CAAA;AAAA,MAC7C,IAAA,EAAK,OAAA;AAAA,MACL,aAAW,MAAA,KAAW,SAAA;AAAA,MACtB,cAAA,EAAc,WAAW,OAAA,IAAW,MAAA;AAAA,MACpC,kBAAA,EAAkB,MAAA,KAAW,MAAA,GAAS,MAAA,GAAY,QAAA;AAAA,MAClD,aAAA,EAAa,MAAA;AAAA,MACZ,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QACA,MAAA,KAAW,MAAA,oBACVH,cAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAI,QAAA,EAAU,SAAA,EAAU,SAAA,EAC3B,QAAA,EAAA,MAAA,KAAW,SAAA,GAAY,mBAAA,GAAsB,kBAAA,EAChD;AAAA;AAAA;AAAA,GAEJ,EACF,CAAA;AAEJ;AAEO,MAAM,kBAAkB,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,qBACpDA,cAAA;AAAA,EAACI,8BAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAWD,WAAA;AAAA,MACT,uMAAA;AAAA,MACA;AAAA,KACF;AAAA,IACC,GAAG;AAAA;AACN;AAGK,MAAM,iBAAiB,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,OAAM,KAA8B;AAC3F,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,WAAA,EAAY;AAE/B,EAAA,uBACEH,cAAA;AAAA,IAACK,eAAA;AAAA,IAAA;AAAA,MACC,QAAQ,MAAA,KAAW,SAAA;AAAA,MACnB,SAAA,EAAWF,WAAA,CAAG,oDAAA,EAAsD,SAAS,CAAA;AAAA,MAC5E,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ;AAEO,MAAM,YAAA,GAAe,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,qBACjDH,cAAA,CAAC,MAAA,EAAA,EAAK,WAAWG,WAAA,CAAG,kDAAA,EAAoD,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAG1F,MAAM,gBAAgB,CAAC,EAAE,WAAW,GAAG,KAAA,uBAC5CH,cAAA,CAACM,OAAA,EAAA,EAAI,IAAG,MAAA,EAAO,OAAA,EAAQ,SAAQ,SAAA,EAAWH,WAAA,CAAG,4CAA4C,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAG3G,MAAM,iBAAiB,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,KAAkC;AACrF,EAAA,MAAM,WAAWI,sBAAA,EAAY;AAE7B,EAAA,uBACEP,cAAA;AAAA,IAACM,OAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAG,MAAA;AAAA,MACH,OAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,SAAA,EAAWH,WAAA,CAAG,6BAAA,EAA+B,QAAA,EAAU,SAAS,CAAA;AAAA,MAC/D,GAAG;AAAA;AAAA,GACN;AAEJ;AAEO,MAAM,eAAA,GAAkB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,qBACpDH,cAAA,CAAC,MAAA,EAAA,EAAK,WAAWG,WAAA,CAAG,iCAAA,EAAmC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAOzE,MAAM,iBAAiB,CAAC,EAAE,MAAM,SAAA,EAAW,GAAG,OAAM,qBACzDH,cAAA;AAAA,EAAC,MAAA;AAAA,EAAA;AAAA,IACC,aAAA,EAAW,IAAA;AAAA,IACX,SAAA,EAAWG,WAAA,CAAG,gBAAA,EAAkB,IAAA,IAAQ,4DAA4D,SAAS,CAAA;AAAA,IAC5G,GAAG;AAAA;AACN;AAGK,MAAM,gBAAA,GAAmB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,qBACrDH,cAAA,CAAC,MAAA,EAAA,EAAK,WAAWG,WAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAGpE,MAAM,qBAAqB,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,OAAM,KAA8B;AAC/F,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,WAAA,EAAY;AAE7B,EAAA,uBACEH,cAAA,CAAC,UAAK,SAAA,EAAWG,WAAA,CAAG,oDAAoD,SAAS,CAAA,EAAI,GAAG,KAAA,EACtF,QAAA,kBAAAH,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAWG,WAAA;AAAA,QACT,uGAAA;AAAA,QACA,iEAAA;AAAA,QACA,IAAA,IAAQ;AAAA,OACV;AAAA,MAEC,QAAA,EAAA,QAAA,oBAAYH,cAAA,CAACQ,wBAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI;AAAA;AAAA,GACvC,EACF,CAAA;AAEJ;AAUO,MAAM,0BAA0B,CAAC;AAAA,EACtC,IAAA,EAAM,IAAA;AAAA,EACN,KAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA,GAAa,IAAA;AAAA,EACb,GAAG;AACL,CAAA,KAAoC;AAClC,EAAA,MAAM,EAAE,MAAA,EAAO,GAAI,WAAA,EAAY;AAE/B,EAAA,uBACEP,eAAA,CAAC,cAAA,EAAA,EAAgB,GAAG,KAAA,EAClB,QAAA,EAAA;AAAA,oBAAAD,cAAA,CAAC,YAAA,EAAA,EACC,QAAA,kBAAAA,cAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAM,EAAA;AAAA,QACN,WAAA,EAAa,IAAA;AAAA,QACb,aAAA,EAAW,IAAA;AAAA,QACX,SAAA,EAAW,MAAA,KAAW,OAAA,GAAU,eAAA,GAAkB;AAAA;AAAA,KACpD,EACF,CAAA;AAAA,oBACAA,cAAA,CAAC,iBAAe,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,IACrB,MAAA,oBAAUA,cAAA,CAAC,cAAA,EAAA,EAAgB,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,mCAClC,cAAA,EAAA,EAAe,CAAA;AAAA,IACf,MAAA,KAAW,OAAA,oBACVA,cAAA,CAAC,gBAAA,EAAA,EACC,yCAACS,aAAA,EAAA,EAAE,IAAA,EAAM,EAAA,EAAI,IAAA,EAAK,KAAA,EAAM,YAAA,EAAW,QAAA,EAAS,SAAA,EAAU,uBAAsB,CAAA,EAC9E,CAAA;AAAA,IAED,UAAA,mCAAe,kBAAA,EAAA,EAAmB;AAAA,GAAA,EACrC,CAAA;AAEJ;AAEO,MAAM,eAAA,GAAkB,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,qBAC9DT,cAAA,CAACU,8BAAA,EAAA,EAAmB,SAAA,EAAU,oBAAA,EAAsB,GAAG,KAAA,EACrD,QAAA,kBAAAV,cAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAWG,WAAA;AAAA,MACT,6NAAA;AAAA,MACA;AAAA,KACF;AAAA,IAEC;AAAA;AACH,CAAA,EACF;AAQK,MAAM,YAAA,GAAe,CAAC,EAAE,QAAA,EAAU,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,qBACrEF,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yCAAA,EACb,QAAA,EAAA;AAAA,kBAAAD,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWG,WAAA;AAAA,QACT,2IAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAAA,kBACAH,cAAA;AAAA,IAACW,qBAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAS,QAAA;AAAA,MACT,IAAA,EAAK,IAAA;AAAA,MACL,OAAA,EAAQ,OAAA;AAAA,MACR,SAAA,EAAU;AAAA;AAAA;AACZ,CAAA,EACF;;ACrNK,SAAS,mBAAmB,KAAA,EAAwB;AACzD,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,KAAA;AACtC,EAAA,IAAI;AACF,IAAA,OAAO,KAAK,SAAA,CAAU,KAAA,EAAO,MAAM,CAAC,CAAA,IAAK,OAAO,KAAK,CAAA;AAAA,EACvD,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,OAAO,KAAK,CAAA;AAAA,EACrB;AACF;AAEA,SAAS,WAAA,CAA8B,OAAe,GAAA,EAA8C;AAClG,EAAA,OAAO,GAAA,IAAO,KAAA;AAChB;AAEA,SAAS,SAAA,CAAU,MAAe,GAAA,EAAiC;AACjE,EAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,IAAY,CAAC,WAAA,CAAY,IAAA,EAAM,GAAG,CAAA,EAAG,OAAO,MAAA;AACzE,EAAA,MAAM,KAAA,GAAQ,KAAK,GAAG,CAAA;AACtB,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,OAAO,KAAK,CAAA;AAClD,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,MAAA,GAAS,IAAI,KAAA,GAAQ,MAAA;AACjE;AAEA,SAAS,cAAA,CAAe,MAAe,IAAA,EAAoC;AACzE,EAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,IAAA,MAAM,KAAA,GAAQ,SAAA,CAAU,IAAA,EAAM,GAAG,CAAA;AACjC,IAAA,IAAI,OAAO,OAAO,KAAA;AAAA,EACpB;AACA,EAAA,OAAO,MAAA;AACT;AASA,MAAM,WAAA,GAAyC;AAAA,EAC7C,IAAA,EAAM,EAAE,IAAA,EAAMC,eAAA,EAAK,OAAO,MAAA,EAAQ,UAAA,EAAY,CAAC,MAAM,CAAA,EAAE;AAAA,EACvD,SAAA,EAAW,EAAE,IAAA,EAAMA,eAAA,EAAK,OAAO,MAAA,EAAQ,UAAA,EAAY,CAAC,MAAM,CAAA,EAAE;AAAA,EAC5D,UAAA,EAAY,EAAE,IAAA,EAAMC,qBAAA,EAAW,OAAO,OAAA,EAAS,UAAA,EAAY,CAAC,MAAM,CAAA,EAAE;AAAA,EACpE,WAAA,EAAa,EAAE,IAAA,EAAMA,qBAAA,EAAW,OAAO,OAAA,EAAS,UAAA,EAAY,CAAC,MAAM,CAAA,EAAE;AAAA,EACrE,SAAA,EAAW,EAAE,IAAA,EAAMA,qBAAA,EAAW,OAAO,MAAA,EAAQ,UAAA,EAAY,CAAC,MAAM,CAAA,EAAE;AAAA,EAClE,cAAA,EAAgB,EAAE,IAAA,EAAMA,qBAAA,EAAW,OAAO,MAAA,EAAQ,UAAA,EAAY,CAAC,MAAM,CAAA,EAAE;AAAA,EACvE,WAAA,EAAa,EAAE,IAAA,EAAMA,qBAAA,EAAW,OAAO,MAAA,EAAQ,UAAA,EAAY,CAAC,MAAM,CAAA,EAAE;AAAA,EACpE,QAAA,EAAU,EAAE,IAAA,EAAMA,qBAAA,EAAW,OAAO,MAAA,EAAQ,UAAA,EAAY,CAAC,MAAM,CAAA,EAAE;AAAA,EACjE,eAAA,EAAiB,EAAE,IAAA,EAAMC,0BAAA,EAAgB,KAAA,EAAO,KAAA,EAAO,UAAA,EAAY,CAAC,SAAS,CAAA,EAAG,SAAA,EAAW,IAAA,EAAK;AAAA,EAChG,kBAAA,EAAoB,EAAE,IAAA,EAAMC,sBAAA,EAAY,OAAO,gBAAA,EAAkB,UAAA,EAAY,CAAC,KAAK,CAAA,EAAE;AAAA,EACrF,YAAA,EAAc,EAAE,IAAA,EAAMC,sBAAA,EAAY,OAAO,cAAA,EAAgB,UAAA,EAAY,CAAC,KAAK,CAAA,EAAE;AAAA,EAC7E,UAAA,EAAY,EAAE,IAAA,EAAMC,wBAAA,EAAc,KAAA,EAAO,cAAc,UAAA,EAAY,CAAC,SAAA,EAAW,MAAM,CAAA,EAAE;AAAA,EACvF,UAAA,EAAY,EAAE,IAAA,EAAMA,wBAAA,EAAc,KAAA,EAAO,cAAc,UAAA,EAAY,CAAC,SAAA,EAAW,MAAM,CAAA,EAAE;AAAA,EACvF,IAAA,EAAM,EAAE,IAAA,EAAMC,kBAAA,EAAQ,KAAA,EAAO,UAAU,UAAA,EAAY,CAAC,SAAA,EAAW,MAAM,CAAA,EAAE;AAAA,EACvE,cAAA,EAAgB,EAAE,IAAA,EAAMA,kBAAA,EAAQ,KAAA,EAAO,UAAU,UAAA,EAAY,CAAC,SAAA,EAAW,OAAO,CAAA,EAAE;AAAA,EAClF,MAAA,EAAQ,EAAE,IAAA,EAAMA,kBAAA,EAAQ,OAAO,QAAA,EAAU,UAAA,EAAY,CAAC,OAAO,CAAA,EAAE;AAAA,EAC/D,UAAA,EAAY,EAAE,IAAA,EAAMC,iBAAA,EAAO,OAAO,gBAAA,EAAkB,UAAA,EAAY,CAAC,OAAO,CAAA,EAAE;AAAA,EAC1E,WAAA,EAAa,EAAE,IAAA,EAAMC,kBAAA,EAAQ,OAAO,cAAA,EAAgB,UAAA,EAAY,CAAC,MAAM,CAAA,EAAE;AAAA,EACzE,SAAA,EAAW,EAAE,IAAA,EAAMC,sBAAA,EAAY,OAAO,WAAA,EAAa,UAAA,EAAY,CAAC,MAAM,CAAA,EAAE;AAAA,EACxE,MAAA,EAAQ,EAAE,IAAA,EAAMC,kBAAA,EAAQ,OAAO,QAAA,EAAU,UAAA,EAAY,CAAC,MAAM,CAAA,EAAE;AAAA,EAC9D,WAAA,EAAa,EAAE,IAAA,EAAMA,kBAAA,EAAQ,OAAO,QAAA,EAAU,UAAA,EAAY,CAAC,MAAM,CAAA,EAAE;AAAA,EACnE,KAAA,EAAO,EAAE,IAAA,EAAMC,sBAAA,EAAY,OAAO,YAAA,EAAc,UAAA,EAAY,CAAC,MAAM,CAAA,EAAE;AAAA,EACrE,KAAA,EAAO,EAAE,IAAA,EAAMC,oBAAA,EAAU,OAAO,OAAA,EAAS,UAAA,EAAY,CAAC,MAAM,CAAA,EAAE;AAAA,EAC9D,YAAA,EAAc,EAAE,IAAA,EAAMA,oBAAA,EAAU,OAAO,eAAA,EAAiB,UAAA,EAAY,CAAC,OAAO,CAAA,EAAE;AAAA,EAC9E,UAAA,EAAY,EAAE,IAAA,EAAMA,oBAAA,EAAU,OAAO,YAAA,EAAc,UAAA,EAAY,CAAC,MAAM,CAAA;AACxE,CAAA;AAEA,SAAS,iBAAiB,QAAA,EAA0B;AAClD,EAAA,MAAM,QAAQ,QAAA,CAAS,OAAA,CAAQ,QAAA,EAAU,GAAG,EAAE,IAAA,EAAK;AACnD,EAAA,OAAO,KAAA,GAAQ,KAAA,CAAM,MAAA,CAAO,CAAC,CAAA,CAAE,aAAY,GAAI,KAAA,CAAM,KAAA,CAAM,CAAC,CAAA,GAAI,QAAA;AAClE;AAGA,SAAS,gBAAgB,OAAA,EAAyB;AAChD,EAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,gDAAA,EAAkD,EAAE,CAAA,IAAK,OAAA;AAClF;AAEO,SAAS,WAAA,CAAY,UAAkB,IAAA,EAAiC;AAC7E,EAAA,MAAM,QAAQ,WAAA,CAAY,QAAA,CAAS,OAAA,CAAQ,oBAAA,EAAsB,EAAE,CAAC,CAAA;AACpE,EAAA,IAAI,CAAC,OAAO,OAAO,EAAE,MAAMC,kBAAA,EAAQ,KAAA,EAAO,gBAAA,CAAiB,QAAQ,CAAA,EAAE;AAErE,EAAA,MAAM,SAAS,KAAA,CAAM,UAAA,GAAa,eAAe,IAAA,EAAM,KAAA,CAAM,UAAU,CAAA,GAAI,MAAA;AAC3E,EAAA,IAAI,CAAC,QAAQ,OAAO,EAAE,MAAM,KAAA,CAAM,IAAA,EAAM,KAAA,EAAO,KAAA,CAAM,KAAA,EAAM;AAC3D,EAAA,IAAI,CAAC,KAAA,CAAM,SAAA,EAAW,OAAO,EAAE,IAAA,EAAM,KAAA,CAAM,IAAA,EAAM,KAAA,EAAO,KAAA,CAAM,KAAA,EAAO,MAAA,EAAO;AAC5E,EAAA,OAAO,EAAE,IAAA,EAAM,KAAA,CAAM,IAAA,EAAM,KAAA,EAAO,KAAA,CAAM,KAAA,EAAO,MAAA,EAAQ,eAAA,CAAgB,MAAM,CAAA,EAAG,OAAA,EAAS,MAAA,EAAO;AAClG;;;;;;;;;;;;;;;;;;"}
@@ -153,7 +153,7 @@ const ToolCallMono = ({ copyText, className, children, ...props }) => /* @__PURE
153
153
  "pre",
154
154
  {
155
155
  className: cn(
156
- "m-0 max-h-60 max-w-full overflow-auto rounded-md bg-surface1 px-3 py-2 font-mono text-xs leading-normal break-words whitespace-pre-wrap",
156
+ "m-0 max-h-60 max-w-full overflow-auto rounded-md bg-neutral6/5 px-3 py-2 font-mono text-xs leading-normal break-words whitespace-pre-wrap",
157
157
  className
158
158
  ),
159
159
  ...props,
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call.es.js","sources":["../../../src/ds/components/ai/tool-call/tool-call.tsx","../../../src/ds/components/ai/tool-call/tool-presentation.ts"],"sourcesContent":["import { ChevronRight, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport { createContext, useContext, useId, useState } from 'react';\nimport type { ComponentProps } from 'react';\nimport { useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype ToolCallStatus = 'idle' | 'running' | 'error';\n\ninterface ToolCallContextValue {\n open: boolean;\n status: ToolCallStatus;\n}\n\nconst ToolCallContext = createContext<ToolCallContextValue | undefined>(undefined);\n\n// Stryker disable next-line ArrowFunction: the default callback is intentionally behaviorless.\nconst noopOpenChange = () => {};\n\nfunction useToolCall() {\n const context = useContext(ToolCallContext);\n if (!context) throw new Error('ToolCall compounds must be rendered within ToolCall');\n return context;\n}\n\nexport interface ToolCallProps extends Omit<\n ComponentProps<typeof Collapsible>,\n 'defaultOpen' | 'onOpenChange' | 'open'\n> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n status?: ToolCallStatus;\n}\n\nexport function ToolCall({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange = noopOpenChange,\n status = 'idle',\n className,\n children,\n ...props\n}: ToolCallProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = controlledOpen ?? uncontrolledOpen;\n const statusId = useId();\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange(nextOpen);\n };\n\n return (\n <ToolCallContext.Provider value={{ open, status }}>\n <Collapsible\n open={open}\n onOpenChange={handleOpenChange}\n className={cn('max-w-full min-w-0', className)}\n role=\"group\"\n aria-busy={status === 'running'}\n aria-invalid={status === 'error' || undefined}\n aria-describedby={status === 'idle' ? undefined : statusId}\n data-status={status}\n {...props}\n >\n {children}\n {status !== 'idle' && (\n <span id={statusId} className=\"sr-only\">\n {status === 'running' ? 'Tool call running' : 'Tool call failed'}\n </span>\n )}\n </Collapsible>\n </ToolCallContext.Provider>\n );\n}\n\nexport const ToolCallTrigger = ({ className, ...props }: ComponentProps<typeof CollapsibleTrigger>) => (\n <CollapsibleTrigger\n className={cn(\n 'group/row w-full cursor-pointer rounded-md text-left transition-colors hover:bg-neutral6/5 focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:outline-hidden motion-reduce:transition-none',\n className,\n )}\n {...props}\n />\n);\n\nexport const ToolCallHeader = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { status } = useToolCall();\n\n return (\n <Shimmer\n active={status === 'running'}\n className={cn('flex w-full min-w-0 items-center gap-2 px-1.5 py-1', className)}\n {...props}\n >\n {children}\n </Shimmer>\n );\n};\n\nexport const ToolCallIcon = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props} />\n);\n\nexport const ToolCallLabel = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" variant=\"ui-sm\" className={cn('text-icon3 max-w-[55%] shrink-0 truncate', className)} {...props} />\n);\n\nexport const ToolCallDetail = ({ className, ...props }: ComponentProps<typeof Txt>) => {\n const arriving = useArriving();\n\n return (\n <Txt\n as=\"span\"\n variant=\"ui-xs\"\n font=\"mono\"\n className={cn('text-icon3 min-w-0 truncate', arriving, className)}\n {...props}\n />\n );\n};\n\nexport const ToolCallSummary = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex min-w-0 items-center gap-1', className)} {...props} />\n);\n\nexport interface ToolCallSpacerProps extends ComponentProps<'span'> {\n rule?: boolean;\n}\n\nexport const ToolCallSpacer = ({ rule, className, ...props }: ToolCallSpacerProps) => (\n <span\n aria-hidden\n className={cn('min-w-2 flex-1', rule && 'h-px bg-border1 mask-r-from-[calc(100%-min(100%,160px))]', className)}\n {...props}\n />\n);\n\nexport const ToolCallTrailing = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex shrink-0 items-center', className)} {...props} />\n);\n\nexport const ToolCallDisclosure = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { open } = useToolCall();\n\n return (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props}>\n <span\n aria-hidden\n className={cn(\n 'text-icon3 flex shrink-0 items-center opacity-0 transition duration-150 motion-reduce:transition-none',\n 'group-hover/row:opacity-100 group-focus-visible/row:opacity-100',\n open && 'rotate-90 opacity-100',\n )}\n >\n {children ?? <ChevronRight size={13} />}\n </span>\n </span>\n );\n};\n\nexport interface ToolCallPresentedHeaderProps extends Omit<ComponentProps<typeof ToolCallHeader>, 'children'> {\n icon: LucideIcon;\n label: string;\n detail?: string;\n disclosure?: boolean;\n}\n\n/** The canonical header of a presented tool call: icon, label, detail, failure mark, chevron. */\nexport const ToolCallPresentedHeader = ({\n icon: Icon,\n label,\n detail,\n disclosure = true,\n ...props\n}: ToolCallPresentedHeaderProps) => {\n const { status } = useToolCall();\n\n return (\n <ToolCallHeader {...props}>\n <ToolCallIcon>\n <Icon\n size={14}\n strokeWidth={1.75}\n aria-hidden\n className={status === 'error' ? 'text-error/80' : 'text-icon2'}\n />\n </ToolCallIcon>\n <ToolCallLabel>{label}</ToolCallLabel>\n {detail && <ToolCallDetail>{detail}</ToolCallDetail>}\n <ToolCallSpacer />\n {status === 'error' && (\n <ToolCallTrailing>\n <X size={13} role=\"img\" aria-label=\"Failed\" className=\"text-error shrink-0\" />\n </ToolCallTrailing>\n )}\n {disclosure && <ToolCallDisclosure />}\n </ToolCallHeader>\n );\n};\n\nexport const ToolCallContent = ({ className, children, ...props }: ComponentProps<typeof CollapsibleContent>) => (\n <CollapsibleContent className=\"max-w-full min-w-0\" {...props}>\n <div\n className={cn(\n \"relative ml-[14px] flex max-w-full min-w-0 flex-col gap-1.5 py-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border1 before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\",\n className,\n )}\n >\n {children}\n </div>\n </CollapsibleContent>\n);\n\nexport interface ToolCallMonoProps extends ComponentProps<'pre'> {\n copyText: string;\n}\n\n/** Monospace body block of an expanded call — arguments, command, output — with a hover copy. */\nexport const ToolCallMono = ({ copyText, className, children, ...props }: ToolCallMonoProps) => (\n <div className=\"group/block relative max-w-full min-w-0\">\n <pre\n className={cn(\n 'm-0 max-h-60 max-w-full overflow-auto rounded-md bg-surface1 px-3 py-2 font-mono text-xs leading-normal break-words whitespace-pre-wrap',\n className,\n )}\n {...props}\n >\n {children}\n </pre>\n <CopyButton\n content={copyText}\n size=\"sm\"\n variant=\"ghost\"\n className=\"absolute top-1 right-1 opacity-0 transition-opacity group-hover/block:opacity-100 focus-visible:opacity-100\"\n />\n </div>\n);\n\nexport type { ToolCallStatus };\n","import {\n BookOpen,\n Braces,\n CircleStop,\n Eye,\n FileSearch,\n FolderPlus,\n FolderSearch,\n Globe,\n ScrollText,\n Search,\n SquarePen,\n SquareTerminal,\n Trash2,\n Wrench,\n} from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\n\nexport interface ToolPresentation {\n icon: LucideIcon;\n label: string;\n /** Salient argument shown next to the label: command, path, pattern… */\n detail?: string;\n /** Shell command, when the tool is terminal-style. Drives the expanded body. */\n command?: string;\n}\n\n/** Tool arguments and results as the mono body shows them: strings verbatim, the rest pretty JSON. */\nexport function stringifyToolValue(value: unknown): string {\n if (typeof value === 'string') return value;\n try {\n return JSON.stringify(value, null, 2) ?? String(value);\n } catch {\n return String(value);\n }\n}\n\nfunction hasProperty<K extends string>(value: object, key: K): value is object & Record<K, unknown> {\n return key in value;\n}\n\nfunction stringArg(args: unknown, key: string): string | undefined {\n if (!args || typeof args !== 'object' || !hasProperty(args, key)) return undefined;\n const value = args[key];\n if (typeof value === 'number') return String(value);\n return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\n\nfunction firstStringArg(args: unknown, keys: string[]): string | undefined {\n for (const key of keys) {\n const value = stringArg(args, key);\n if (value) return value;\n }\n return undefined;\n}\n\ninterface ToolStyle {\n icon: LucideIcon;\n label: string;\n detailKeys?: string[];\n isCommand?: boolean;\n}\n\nconst TOOL_STYLES: Record<string, ToolStyle> = {\n view: { icon: Eye, label: 'Read', detailKeys: ['path'] },\n read_file: { icon: Eye, label: 'Read', detailKeys: ['path'] },\n write_file: { icon: SquarePen, label: 'Write', detailKeys: ['path'] },\n create_file: { icon: SquarePen, label: 'Write', detailKeys: ['path'] },\n edit_file: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n string_replace: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n str_replace: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n ast_edit: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n execute_command: { icon: SquareTerminal, label: 'Run', detailKeys: ['command'], isCommand: true },\n get_process_output: { icon: ScrollText, label: 'Process output', detailKeys: ['pid'] },\n kill_process: { icon: CircleStop, label: 'Stop process', detailKeys: ['pid'] },\n find_files: { icon: FolderSearch, label: 'Find files', detailKeys: ['pattern', 'path'] },\n list_files: { icon: FolderSearch, label: 'List files', detailKeys: ['pattern', 'path'] },\n grep: { icon: Search, label: 'Search', detailKeys: ['pattern', 'path'] },\n search_content: { icon: Search, label: 'Search', detailKeys: ['pattern', 'query'] },\n search: { icon: Search, label: 'Search', detailKeys: ['query'] },\n web_search: { icon: Globe, label: 'Search the web', detailKeys: ['query'] },\n lsp_inspect: { icon: Braces, label: 'Inspect code', detailKeys: ['path'] },\n file_stat: { icon: FileSearch, label: 'File info', detailKeys: ['path'] },\n delete: { icon: Trash2, label: 'Delete', detailKeys: ['path'] },\n delete_file: { icon: Trash2, label: 'Delete', detailKeys: ['path'] },\n mkdir: { icon: FolderPlus, label: 'New folder', detailKeys: ['path'] },\n skill: { icon: BookOpen, label: 'Skill', detailKeys: ['name'] },\n skill_search: { icon: BookOpen, label: 'Search skills', detailKeys: ['query'] },\n skill_read: { icon: BookOpen, label: 'Skill file', detailKeys: ['path'] },\n};\n\nfunction prettifyToolName(toolName: string): string {\n const words = toolName.replace(/[_-]+/g, ' ').trim();\n return words ? words.charAt(0).toUpperCase() + words.slice(1) : toolName;\n}\n\n/** Agents prefix commands with `cd <workspace> &&`, which crowds out the command itself on a one-line row. */\nfunction withoutCdPrefix(command: string): string {\n return command.replace(/^\\s*cd\\s+(?:'[^']*'|\"[^\"]*\"|[^\\s&|;]+)\\s*&&\\s*/, '') || command;\n}\n\nexport function presentTool(toolName: string, args: unknown): ToolPresentation {\n const style = TOOL_STYLES[toolName.replace(/^mastra_workspace_/, '')];\n if (!style) return { icon: Wrench, label: prettifyToolName(toolName) };\n\n const detail = style.detailKeys ? firstStringArg(args, style.detailKeys) : undefined;\n if (!detail) return { icon: style.icon, label: style.label };\n if (!style.isCommand) return { icon: style.icon, label: style.label, detail };\n return { icon: style.icon, label: style.label, detail: withoutCdPrefix(detail), command: detail };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-call.es.js","sources":["../../../src/ds/components/ai/tool-call/tool-call.tsx","../../../src/ds/components/ai/tool-call/tool-presentation.ts"],"sourcesContent":["import { ChevronRight, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport { createContext, useContext, useId, useState } from 'react';\nimport type { ComponentProps } from 'react';\nimport { useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype ToolCallStatus = 'idle' | 'running' | 'error';\n\ninterface ToolCallContextValue {\n open: boolean;\n status: ToolCallStatus;\n}\n\nconst ToolCallContext = createContext<ToolCallContextValue | undefined>(undefined);\n\n// Stryker disable next-line ArrowFunction: the default callback is intentionally behaviorless.\nconst noopOpenChange = () => {};\n\nfunction useToolCall() {\n const context = useContext(ToolCallContext);\n if (!context) throw new Error('ToolCall compounds must be rendered within ToolCall');\n return context;\n}\n\nexport interface ToolCallProps extends Omit<\n ComponentProps<typeof Collapsible>,\n 'defaultOpen' | 'onOpenChange' | 'open'\n> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n status?: ToolCallStatus;\n}\n\nexport function ToolCall({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange = noopOpenChange,\n status = 'idle',\n className,\n children,\n ...props\n}: ToolCallProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = controlledOpen ?? uncontrolledOpen;\n const statusId = useId();\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange(nextOpen);\n };\n\n return (\n <ToolCallContext.Provider value={{ open, status }}>\n <Collapsible\n open={open}\n onOpenChange={handleOpenChange}\n className={cn('max-w-full min-w-0', className)}\n role=\"group\"\n aria-busy={status === 'running'}\n aria-invalid={status === 'error' || undefined}\n aria-describedby={status === 'idle' ? undefined : statusId}\n data-status={status}\n {...props}\n >\n {children}\n {status !== 'idle' && (\n <span id={statusId} className=\"sr-only\">\n {status === 'running' ? 'Tool call running' : 'Tool call failed'}\n </span>\n )}\n </Collapsible>\n </ToolCallContext.Provider>\n );\n}\n\nexport const ToolCallTrigger = ({ className, ...props }: ComponentProps<typeof CollapsibleTrigger>) => (\n <CollapsibleTrigger\n className={cn(\n 'group/row w-full cursor-pointer rounded-md text-left transition-colors hover:bg-neutral6/5 focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:outline-hidden motion-reduce:transition-none',\n className,\n )}\n {...props}\n />\n);\n\nexport const ToolCallHeader = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { status } = useToolCall();\n\n return (\n <Shimmer\n active={status === 'running'}\n className={cn('flex w-full min-w-0 items-center gap-2 px-1.5 py-1', className)}\n {...props}\n >\n {children}\n </Shimmer>\n );\n};\n\nexport const ToolCallIcon = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props} />\n);\n\nexport const ToolCallLabel = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" variant=\"ui-sm\" className={cn('text-icon3 max-w-[55%] shrink-0 truncate', className)} {...props} />\n);\n\nexport const ToolCallDetail = ({ className, ...props }: ComponentProps<typeof Txt>) => {\n const arriving = useArriving();\n\n return (\n <Txt\n as=\"span\"\n variant=\"ui-xs\"\n font=\"mono\"\n className={cn('text-icon3 min-w-0 truncate', arriving, className)}\n {...props}\n />\n );\n};\n\nexport const ToolCallSummary = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex min-w-0 items-center gap-1', className)} {...props} />\n);\n\nexport interface ToolCallSpacerProps extends ComponentProps<'span'> {\n rule?: boolean;\n}\n\nexport const ToolCallSpacer = ({ rule, className, ...props }: ToolCallSpacerProps) => (\n <span\n aria-hidden\n className={cn('min-w-2 flex-1', rule && 'h-px bg-border1 mask-r-from-[calc(100%-min(100%,160px))]', className)}\n {...props}\n />\n);\n\nexport const ToolCallTrailing = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex shrink-0 items-center', className)} {...props} />\n);\n\nexport const ToolCallDisclosure = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { open } = useToolCall();\n\n return (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props}>\n <span\n aria-hidden\n className={cn(\n 'text-icon3 flex shrink-0 items-center opacity-0 transition duration-150 motion-reduce:transition-none',\n 'group-hover/row:opacity-100 group-focus-visible/row:opacity-100',\n open && 'rotate-90 opacity-100',\n )}\n >\n {children ?? <ChevronRight size={13} />}\n </span>\n </span>\n );\n};\n\nexport interface ToolCallPresentedHeaderProps extends Omit<ComponentProps<typeof ToolCallHeader>, 'children'> {\n icon: LucideIcon;\n label: string;\n detail?: string;\n disclosure?: boolean;\n}\n\n/** The canonical header of a presented tool call: icon, label, detail, failure mark, chevron. */\nexport const ToolCallPresentedHeader = ({\n icon: Icon,\n label,\n detail,\n disclosure = true,\n ...props\n}: ToolCallPresentedHeaderProps) => {\n const { status } = useToolCall();\n\n return (\n <ToolCallHeader {...props}>\n <ToolCallIcon>\n <Icon\n size={14}\n strokeWidth={1.75}\n aria-hidden\n className={status === 'error' ? 'text-error/80' : 'text-icon2'}\n />\n </ToolCallIcon>\n <ToolCallLabel>{label}</ToolCallLabel>\n {detail && <ToolCallDetail>{detail}</ToolCallDetail>}\n <ToolCallSpacer />\n {status === 'error' && (\n <ToolCallTrailing>\n <X size={13} role=\"img\" aria-label=\"Failed\" className=\"text-error shrink-0\" />\n </ToolCallTrailing>\n )}\n {disclosure && <ToolCallDisclosure />}\n </ToolCallHeader>\n );\n};\n\nexport const ToolCallContent = ({ className, children, ...props }: ComponentProps<typeof CollapsibleContent>) => (\n <CollapsibleContent className=\"max-w-full min-w-0\" {...props}>\n <div\n className={cn(\n \"relative ml-[14px] flex max-w-full min-w-0 flex-col gap-1.5 py-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border1 before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\",\n className,\n )}\n >\n {children}\n </div>\n </CollapsibleContent>\n);\n\nexport interface ToolCallMonoProps extends ComponentProps<'pre'> {\n copyText: string;\n}\n\n/** Monospace body block of an expanded call — arguments, command, output — with a hover copy. */\nexport const ToolCallMono = ({ copyText, className, children, ...props }: ToolCallMonoProps) => (\n <div className=\"group/block relative max-w-full min-w-0\">\n <pre\n className={cn(\n 'm-0 max-h-60 max-w-full overflow-auto rounded-md bg-neutral6/5 px-3 py-2 font-mono text-xs leading-normal break-words whitespace-pre-wrap',\n className,\n )}\n {...props}\n >\n {children}\n </pre>\n <CopyButton\n content={copyText}\n size=\"sm\"\n variant=\"ghost\"\n className=\"absolute top-1 right-1 opacity-0 transition-opacity group-hover/block:opacity-100 focus-visible:opacity-100\"\n />\n </div>\n);\n\nexport type { ToolCallStatus };\n","import {\n BookOpen,\n Braces,\n CircleStop,\n Eye,\n FileSearch,\n FolderPlus,\n FolderSearch,\n Globe,\n ScrollText,\n Search,\n SquarePen,\n SquareTerminal,\n Trash2,\n Wrench,\n} from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\n\nexport interface ToolPresentation {\n icon: LucideIcon;\n label: string;\n /** Salient argument shown next to the label: command, path, pattern… */\n detail?: string;\n /** Shell command, when the tool is terminal-style. Drives the expanded body. */\n command?: string;\n}\n\n/** Tool arguments and results as the mono body shows them: strings verbatim, the rest pretty JSON. */\nexport function stringifyToolValue(value: unknown): string {\n if (typeof value === 'string') return value;\n try {\n return JSON.stringify(value, null, 2) ?? String(value);\n } catch {\n return String(value);\n }\n}\n\nfunction hasProperty<K extends string>(value: object, key: K): value is object & Record<K, unknown> {\n return key in value;\n}\n\nfunction stringArg(args: unknown, key: string): string | undefined {\n if (!args || typeof args !== 'object' || !hasProperty(args, key)) return undefined;\n const value = args[key];\n if (typeof value === 'number') return String(value);\n return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\n\nfunction firstStringArg(args: unknown, keys: string[]): string | undefined {\n for (const key of keys) {\n const value = stringArg(args, key);\n if (value) return value;\n }\n return undefined;\n}\n\ninterface ToolStyle {\n icon: LucideIcon;\n label: string;\n detailKeys?: string[];\n isCommand?: boolean;\n}\n\nconst TOOL_STYLES: Record<string, ToolStyle> = {\n view: { icon: Eye, label: 'Read', detailKeys: ['path'] },\n read_file: { icon: Eye, label: 'Read', detailKeys: ['path'] },\n write_file: { icon: SquarePen, label: 'Write', detailKeys: ['path'] },\n create_file: { icon: SquarePen, label: 'Write', detailKeys: ['path'] },\n edit_file: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n string_replace: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n str_replace: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n ast_edit: { icon: SquarePen, label: 'Edit', detailKeys: ['path'] },\n execute_command: { icon: SquareTerminal, label: 'Run', detailKeys: ['command'], isCommand: true },\n get_process_output: { icon: ScrollText, label: 'Process output', detailKeys: ['pid'] },\n kill_process: { icon: CircleStop, label: 'Stop process', detailKeys: ['pid'] },\n find_files: { icon: FolderSearch, label: 'Find files', detailKeys: ['pattern', 'path'] },\n list_files: { icon: FolderSearch, label: 'List files', detailKeys: ['pattern', 'path'] },\n grep: { icon: Search, label: 'Search', detailKeys: ['pattern', 'path'] },\n search_content: { icon: Search, label: 'Search', detailKeys: ['pattern', 'query'] },\n search: { icon: Search, label: 'Search', detailKeys: ['query'] },\n web_search: { icon: Globe, label: 'Search the web', detailKeys: ['query'] },\n lsp_inspect: { icon: Braces, label: 'Inspect code', detailKeys: ['path'] },\n file_stat: { icon: FileSearch, label: 'File info', detailKeys: ['path'] },\n delete: { icon: Trash2, label: 'Delete', detailKeys: ['path'] },\n delete_file: { icon: Trash2, label: 'Delete', detailKeys: ['path'] },\n mkdir: { icon: FolderPlus, label: 'New folder', detailKeys: ['path'] },\n skill: { icon: BookOpen, label: 'Skill', detailKeys: ['name'] },\n skill_search: { icon: BookOpen, label: 'Search skills', detailKeys: ['query'] },\n skill_read: { icon: BookOpen, label: 'Skill file', detailKeys: ['path'] },\n};\n\nfunction prettifyToolName(toolName: string): string {\n const words = toolName.replace(/[_-]+/g, ' ').trim();\n return words ? words.charAt(0).toUpperCase() + words.slice(1) : toolName;\n}\n\n/** Agents prefix commands with `cd <workspace> &&`, which crowds out the command itself on a one-line row. */\nfunction withoutCdPrefix(command: string): string {\n return command.replace(/^\\s*cd\\s+(?:'[^']*'|\"[^\"]*\"|[^\\s&|;]+)\\s*&&\\s*/, '') || command;\n}\n\nexport function presentTool(toolName: string, args: unknown): ToolPresentation {\n const style = TOOL_STYLES[toolName.replace(/^mastra_workspace_/, '')];\n if (!style) return { icon: Wrench, label: prettifyToolName(toolName) };\n\n const detail = style.detailKeys ? firstStringArg(args, style.detailKeys) : undefined;\n if (!detail) return { icon: style.icon, label: style.label };\n if (!style.isCommand) return { icon: style.icon, label: style.label, detail };\n return { icon: style.icon, label: style.label, detail: withoutCdPrefix(detail), command: detail };\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { u as useDataListRowWrapperContext, p as dataListRowVariants, q as dataListRowStaticStyles, D as DataListRoot, c as DataListNextPageLoading, g as DataListSpacer, f as DataListNoMatch, r as DataListTopSelectCell, s as DataListSelectCell, d as DataListTimeCell, e as DataListDateCell, b as DataListMonoCell, t as DataListNumberCell, v as DataListRowHeaderCell, o as DataListIdCell, w as DataListDescriptionCell, x as DataListNameCell, y as DataListTextCell, a as DataListCell, h as DataListRowLink, i as DataListRowButton, j as DataListRowWrapper, k as DataListTopCellSmart, l as DataListTopCellWithTooltip, m as DataListTopCell, n as DataListTop } from './data-list-top-cell-DZiX9cTb.js';
1
+ import { u as useDataListRowWrapperContext, q as dataListRowVariants, r as dataListRowStaticStyles, D as DataListRoot, c as DataListNextPageLoading, h as DataListSpacer, g as DataListNoMatch, s as DataListTopSelectCell, t as DataListSelectCell, e as DataListTimeCell, f as DataListDateCell, v as DataListNumberCell, w as DataListRowHeaderCell, p as DataListIdCell, x as DataListDescriptionCell, y as DataListNameCell, b as DataListTextCell, z as DataListActionsCell, a as DataListCell, i as DataListRowLink, j as DataListRowButton, k as DataListRowWrapper, l as DataListTopCellSmart, m as DataListTopCellWithTooltip, n as DataListTopCell, o as DataListTop } from './data-list-top-cell-CC5jjv5s.js';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import { ArrowLeftIcon, ArrowRightIcon } from 'lucide-react';
4
4
  import { B as Button } from './Button-vr_I4iME.js';
@@ -26,7 +26,7 @@ function DataListPagination({ currentPage, hasMore, onNextPage, onPrevPage }) {
26
26
  }
27
27
 
28
28
  const DataListRowStatic = forwardRef(
29
- ({ children, className, flushLeft, flushRight, colStart, colEnd, featured, variant, style, ...rest }, ref) => {
29
+ ({ children, className, colStart, colEnd, featured, variant, style, ...rest }, ref) => {
30
30
  const isWrapped = useDataListRowWrapperContext();
31
31
  const hasColumnOverride = colStart !== void 0 || colEnd !== void 0;
32
32
  const resolvedStyle = hasColumnOverride ? { ...style, gridColumn: `${colStart ?? 1} / ${colEnd ?? -1}` } : style;
@@ -36,11 +36,9 @@ const DataListRowStatic = forwardRef(
36
36
  ref,
37
37
  className: cn(
38
38
  isWrapped ? "grid grid-cols-subgrid gap-8 rounded-lg px-5 transition-colors duration-200" : dataListRowStaticStyles,
39
- !isWrapped && flushLeft && "ml-0!",
40
- !isWrapped && flushRight && "mr-0!",
41
39
  // `!` so the selection fill wins over borderless table root styling
42
40
  // (higher-specificity descendant rules); same color in `default`.
43
- featured && "bg-surface4!",
41
+ featured && "bg-surface-row-featured!",
44
42
  dataListRowVariants({ variant }),
45
43
  className
46
44
  ),
@@ -60,8 +58,8 @@ const DataListSubheader = forwardRef(
60
58
  {
61
59
  ref,
62
60
  className: cn(
63
- "data-list-subheader relative isolate col-span-full mx-1 border-none px-4 py-3 text-ui-md font-medium text-neutral4",
64
- "before:absolute before:inset-x-0 before:inset-y-1 before:-z-1 before:rounded-md before:bg-surface4",
61
+ "relative isolate col-span-full mt-2 border-none px-5 py-3 text-ui-md font-medium text-neutral4",
62
+ "before:absolute before:inset-0 before:-z-1 before:rounded-lg before:bg-[var(--data-list-sticky-header-background)]",
65
63
  className
66
64
  ),
67
65
  ...rest,
@@ -108,13 +106,13 @@ const DataList = Object.assign(DataListRoot, {
108
106
  RowLink: DataListRowLink,
109
107
  RowStatic: DataListRowStatic,
110
108
  Cell: DataListCell,
109
+ ActionsCell: DataListActionsCell,
111
110
  TextCell: DataListTextCell,
112
111
  NameCell: DataListNameCell,
113
112
  DescriptionCell: DataListDescriptionCell,
114
113
  IdCell: DataListIdCell,
115
114
  RowHeaderCell: DataListRowHeaderCell,
116
115
  NumberCell: DataListNumberCell,
117
- MonoCell: DataListMonoCell,
118
116
  DateCell: DataListDateCell,
119
117
  TimeCell: DataListTimeCell,
120
118
  SelectCell: DataListSelectCell,
@@ -128,4 +126,4 @@ const DataList = Object.assign(DataListRoot, {
128
126
  });
129
127
 
130
128
  export { DataList as D, DataListSubHeading as a, DataListSubheader as b };
131
- //# sourceMappingURL=data-list-CfsEAR2E.js.map
129
+ //# sourceMappingURL=data-list-BOI8fRuk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-list-BOI8fRuk.js","sources":["../src/ds/components/DataList/data-list-pagination.tsx","../src/ds/components/DataList/data-list-row-static.tsx","../src/ds/components/DataList/data-list-subheader.tsx","../src/ds/components/DataList/data-list-subheading.tsx","../src/ds/components/DataList/data-list-top-cells.tsx","../src/ds/components/DataList/data-list.tsx"],"sourcesContent":["import { ArrowLeftIcon, ArrowRightIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\n\nexport type DataListPaginationProps = {\n currentPage?: number;\n hasMore?: boolean;\n onNextPage?: () => void;\n onPrevPage?: () => void;\n};\n\nexport function DataListPagination({ currentPage, hasMore, onNextPage, onPrevPage }: DataListPaginationProps) {\n const showNavigation = (typeof currentPage === 'number' && currentPage > 0) || hasMore;\n\n return (\n <div className=\"text-ui-md text-neutral3 col-span-full flex items-center justify-center gap-8 py-4\">\n <span>\n Page <b>{currentPage ? currentPage + 1 : '1'}</b>\n </span>\n {showNavigation && (\n <div className=\"flex gap-4\">\n {typeof currentPage === 'number' && currentPage > 0 && (\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onPrevPage}>\n <ArrowLeftIcon />\n Previous\n </Button>\n )}\n {hasMore && (\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onNextPage}>\n Next\n <ArrowRightIcon />\n </Button>\n )}\n </div>\n )}\n </div>\n );\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { useDataListRowWrapperContext } from './data-list-row-wrapper-context';\nimport { dataListRowStaticStyles, dataListRowVariants } from './shared';\nimport type { DataListRowSharedProps } from './shared';\nimport { cn } from '@/lib/utils';\n\nexport type DataListRowStaticProps = ComponentPropsWithoutRef<'div'> & DataListRowSharedProps;\n\n/**\n * Non-interactive row. Use when a row should *display* like a regular row but\n * has no link target or click handler\n */\nexport const DataListRowStatic = forwardRef<HTMLDivElement, DataListRowStaticProps>(\n ({ children, className, colStart, colEnd, featured, variant, style, ...rest }, ref) => {\n const isWrapped = useDataListRowWrapperContext();\n const hasColumnOverride = colStart !== undefined || colEnd !== undefined;\n const resolvedStyle = hasColumnOverride ? { ...style, gridColumn: `${colStart ?? 1} / ${colEnd ?? -1}` } : style;\n return (\n <div\n ref={ref}\n className={cn(\n isWrapped\n ? 'grid grid-cols-subgrid gap-8 rounded-lg px-5 transition-colors duration-200'\n : dataListRowStaticStyles,\n // `!` so the selection fill wins over borderless table root styling\n // (higher-specificity descendant rules); same color in `default`.\n featured && 'bg-surface-row-featured!',\n dataListRowVariants({ variant }),\n className,\n )}\n style={resolvedStyle}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListRowStatic.displayName = 'DataListRowStatic';\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListSubheaderProps = ComponentPropsWithoutRef<'div'>;\n\nexport const DataListSubheader = forwardRef<HTMLDivElement, DataListSubheaderProps>(\n ({ children, className, ...rest }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'relative isolate col-span-full mt-2 border-none px-5 py-3 text-ui-md font-medium text-neutral4',\n 'before:absolute before:inset-0 before:-z-1 before:rounded-lg before:bg-[var(--data-list-sticky-header-background)]',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListSubheader.displayName = 'DataListSubheader';\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListSubHeadingProps = {\n children: ReactNode;\n className?: string;\n};\n\nexport function DataListSubHeading({ children, className }: DataListSubHeadingProps) {\n return <span className={cn('text-ui-sm font-normal text-neutral2', className)}>{children}</span>;\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListTopCellsProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Drop the group's default left margin. Use when this sits as the second\n * child of a gap-0 `DataList.Top`, beside a `DataList.TopSelectCell` that\n * owns the leading column.\n */\n flushLeft?: boolean;\n /**\n * Place the group starting at this column line, spanning through to the\n * last column. Defaults to the full grid (`col-span-full`). Use when this\n * sits beside a leading cell that owns column 1.\n */\n colStart?: number;\n};\n\n/**\n * Non-interactive header equivalent of `DataList.RowButton`. Groups a set of\n * `DataList.TopCell`s with the same horizontal layout (gap, mx, px) as\n * `RowButton`, so columns inside a wrapped `Top` line up cell-for-cell with the\n * columns inside a wrapped `Row`.\n */\nexport const DataListTopCells = forwardRef<HTMLDivElement, DataListTopCellsProps>(\n ({ children, className, flushLeft, colStart, style, ...rest }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'pointer-events-none grid grid-cols-subgrid gap-8 px-5 [&>*]:pointer-events-auto',\n !colStart && 'col-span-full',\n flushLeft && 'pl-0!',\n className,\n )}\n style={colStart ? { ...style, gridColumn: `${colStart} / -1` } : style}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListTopCells.displayName = 'DataListTopCells';\n","import {\n DataListActionsCell,\n DataListCell,\n DataListTextCell,\n DataListNameCell,\n DataListDescriptionCell,\n DataListIdCell,\n DataListRowHeaderCell,\n DataListNumberCell,\n DataListSelectCell,\n DataListDateCell,\n DataListTimeCell,\n} from './data-list-cells';\nimport { DataListNextPageLoading } from './data-list-next-page-loading';\nimport { DataListNoMatch } from './data-list-no-match';\nimport { DataListPagination } from './data-list-pagination';\nimport { DataListRoot } from './data-list-root';\nimport { DataListRowButton } from './data-list-row-button';\nimport { DataListRowLink } from './data-list-row-link';\nimport { DataListRowStatic } from './data-list-row-static';\nimport { DataListRowWrapper } from './data-list-row-wrapper';\nimport { DataListSpacer } from './data-list-spacer';\nimport { DataListSubheader } from './data-list-subheader';\nimport { DataListSubHeading } from './data-list-subheading';\nimport { DataListTop } from './data-list-top';\nimport {\n DataListTopCell,\n DataListTopCellWithTooltip,\n DataListTopCellSmart,\n DataListTopSelectCell,\n} from './data-list-top-cell';\nimport { DataListTopCells } from './data-list-top-cells';\n\nexport type { DataListRootProps, DataListStickyHeaderBackground, DataListVariant } from './data-list-root';\n\nexport const DataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCells: DataListTopCells,\n TopCell: DataListTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n RowStatic: DataListRowStatic,\n Cell: DataListCell,\n ActionsCell: DataListActionsCell,\n TextCell: DataListTextCell,\n NameCell: DataListNameCell,\n DescriptionCell: DataListDescriptionCell,\n IdCell: DataListIdCell,\n RowHeaderCell: DataListRowHeaderCell,\n NumberCell: DataListNumberCell,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n SelectCell: DataListSelectCell,\n TopSelectCell: DataListTopSelectCell,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n NextPageLoading: DataListNextPageLoading,\n Pagination: DataListPagination,\n});\n"],"names":[],"mappings":";;;;;;;AAUO,SAAS,mBAAmB,EAAE,WAAA,EAAa,OAAA,EAAS,UAAA,EAAY,YAAW,EAA4B;AAC5G,EAAA,MAAM,cAAA,GAAkB,OAAO,WAAA,KAAgB,QAAA,IAAY,cAAc,CAAA,IAAM,OAAA;AAE/E,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oFAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA;AAAA,MAAA,OAAA;AAAA,sBACC,GAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA,WAAA,GAAc,WAAA,GAAc,IAAI,GAAA,EAAI;AAAA,KAAA,EAC/C,CAAA;AAAA,IACC,cAAA,oBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,YAAA,EACZ,QAAA,EAAA;AAAA,MAAA,OAAO,WAAA,KAAgB,QAAA,IAAY,WAAA,GAAc,CAAA,oBAChD,IAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,OAAA,EAAQ,SAAA,EAAU,IAAA,EAAK,IAAA,EAAK,SAAS,UAAA,EACzD,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,CAAA;AAAA,QAAE;AAAA,OAAA,EAEnB,CAAA;AAAA,MAED,OAAA,oBACC,IAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,SAAQ,SAAA,EAAU,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,UAAA,EAAY,QAAA,EAAA;AAAA,QAAA,MAAA;AAAA,4BAEpE,cAAA,EAAA,EAAe;AAAA,OAAA,EAClB;AAAA,KAAA,EAEJ;AAAA,GAAA,EAEJ,CAAA;AAEJ;;ACvBO,MAAM,iBAAA,GAAoB,UAAA;AAAA,EAC/B,CAAC,EAAE,QAAA,EAAU,SAAA,EAAW,QAAA,EAAU,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS,KAAA,EAAO,GAAG,IAAA,EAAK,EAAG,GAAA,KAAQ;AACrF,IAAA,MAAM,YAAY,4BAAA,EAA6B;AAC/C,IAAA,MAAM,iBAAA,GAAoB,QAAA,KAAa,MAAA,IAAa,MAAA,KAAW,MAAA;AAC/D,IAAA,MAAM,aAAA,GAAgB,iBAAA,GAAoB,EAAE,GAAG,KAAA,EAAO,UAAA,EAAY,CAAA,EAAG,QAAA,IAAY,CAAC,CAAA,GAAA,EAAM,MAAA,IAAU,EAAE,IAAG,GAAI,KAAA;AAC3G,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,YACI,6EAAA,GACA,uBAAA;AAAA;AAAA;AAAA,UAGJ,QAAA,IAAY,0BAAA;AAAA,UACZ,mBAAA,CAAoB,EAAE,OAAA,EAAS,CAAA;AAAA,UAC/B;AAAA,SACF;AAAA,QACA,KAAA,EAAO,aAAA;AAAA,QACN,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AAEA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;;AClCzB,MAAM,iBAAA,GAAoB,UAAA;AAAA,EAC/B,CAAC,EAAE,QAAA,EAAU,WAAW,GAAG,IAAA,IAAQ,GAAA,KAAQ;AACzC,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,gGAAA;AAAA,UACA,oHAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;;AChBzB,SAAS,kBAAA,CAAmB,EAAE,QAAA,EAAU,SAAA,EAAU,EAA4B;AACnF,EAAA,2BAAQ,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,sCAAA,EAAwC,SAAS,GAAI,QAAA,EAAS,CAAA;AAC3F;;ACeO,MAAM,gBAAA,GAAmB,UAAA;AAAA,EAC9B,CAAC,EAAE,QAAA,EAAU,SAAA,EAAW,SAAA,EAAW,UAAU,KAAA,EAAO,GAAG,IAAA,EAAK,EAAG,GAAA,KAAQ;AACrE,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,iFAAA;AAAA,UACA,CAAC,QAAA,IAAY,eAAA;AAAA,UACb,SAAA,IAAa,OAAA;AAAA,UACb;AAAA,SACF;AAAA,QACA,KAAA,EAAO,WAAW,EAAE,GAAG,OAAO,UAAA,EAAY,CAAA,EAAG,QAAQ,CAAA,KAAA,CAAA,EAAQ,GAAI,KAAA;AAAA,QAChE,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AAEA,gBAAA,CAAiB,WAAA,GAAc,kBAAA;;ACVxB,MAAM,QAAA,GAAW,MAAA,CAAO,MAAA,CAAO,YAAA,EAAc;AAAA,EAClD,GAAA,EAAK,WAAA;AAAA,EACL,QAAA,EAAU,gBAAA;AAAA,EACV,OAAA,EAAS,eAAA;AAAA,EACT,kBAAA,EAAoB,0BAAA;AAAA,EACpB,YAAA,EAAc,oBAAA;AAAA,EACd,UAAA,EAAY,kBAAA;AAAA,EACZ,SAAA,EAAW,iBAAA;AAAA,EACX,OAAA,EAAS,eAAA;AAAA,EACT,SAAA,EAAW,iBAAA;AAAA,EACX,IAAA,EAAM,YAAA;AAAA,EACN,WAAA,EAAa,mBAAA;AAAA,EACb,QAAA,EAAU,gBAAA;AAAA,EACV,QAAA,EAAU,gBAAA;AAAA,EACV,eAAA,EAAiB,uBAAA;AAAA,EACjB,MAAA,EAAQ,cAAA;AAAA,EACR,aAAA,EAAe,qBAAA;AAAA,EACf,UAAA,EAAY,kBAAA;AAAA,EACZ,QAAA,EAAU,gBAAA;AAAA,EACV,QAAA,EAAU,gBAAA;AAAA,EACV,UAAA,EAAY,kBAAA;AAAA,EACZ,aAAA,EAAe,qBAAA;AAAA,EACf,OAAA,EAAS,eAAA;AAAA,EACT,SAAA,EAAW,iBAAA;AAAA,EACX,UAAA,EAAY,kBAAA;AAAA,EACZ,MAAA,EAAQ,cAAA;AAAA,EACR,eAAA,EAAiB,uBAAA;AAAA,EACjB,UAAA,EAAY;AACd,CAAC;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const dataListTopCell = require('./data-list-top-cell-DyBSefIr.cjs');
3
+ const dataListTopCell = require('./data-list-top-cell-BOXO5s7I.cjs');
4
4
  const jsxRuntime = require('react/jsx-runtime');
5
5
  const lucideReact = require('lucide-react');
6
6
  const Button = require('./Button-DA5XLUon.cjs');
@@ -28,7 +28,7 @@ function DataListPagination({ currentPage, hasMore, onNextPage, onPrevPage }) {
28
28
  }
29
29
 
30
30
  const DataListRowStatic = React.forwardRef(
31
- ({ children, className, flushLeft, flushRight, colStart, colEnd, featured, variant, style, ...rest }, ref) => {
31
+ ({ children, className, colStart, colEnd, featured, variant, style, ...rest }, ref) => {
32
32
  const isWrapped = dataListTopCell.useDataListRowWrapperContext();
33
33
  const hasColumnOverride = colStart !== void 0 || colEnd !== void 0;
34
34
  const resolvedStyle = hasColumnOverride ? { ...style, gridColumn: `${colStart ?? 1} / ${colEnd ?? -1}` } : style;
@@ -38,11 +38,9 @@ const DataListRowStatic = React.forwardRef(
38
38
  ref,
39
39
  className: utils_cn.cn(
40
40
  isWrapped ? "grid grid-cols-subgrid gap-8 rounded-lg px-5 transition-colors duration-200" : dataListTopCell.dataListRowStaticStyles,
41
- !isWrapped && flushLeft && "ml-0!",
42
- !isWrapped && flushRight && "mr-0!",
43
41
  // `!` so the selection fill wins over borderless table root styling
44
42
  // (higher-specificity descendant rules); same color in `default`.
45
- featured && "bg-surface4!",
43
+ featured && "bg-surface-row-featured!",
46
44
  dataListTopCell.dataListRowVariants({ variant }),
47
45
  className
48
46
  ),
@@ -62,8 +60,8 @@ const DataListSubheader = React.forwardRef(
62
60
  {
63
61
  ref,
64
62
  className: utils_cn.cn(
65
- "data-list-subheader relative isolate col-span-full mx-1 border-none px-4 py-3 text-ui-md font-medium text-neutral4",
66
- "before:absolute before:inset-x-0 before:inset-y-1 before:-z-1 before:rounded-md before:bg-surface4",
63
+ "relative isolate col-span-full mt-2 border-none px-5 py-3 text-ui-md font-medium text-neutral4",
64
+ "before:absolute before:inset-0 before:-z-1 before:rounded-lg before:bg-[var(--data-list-sticky-header-background)]",
67
65
  className
68
66
  ),
69
67
  ...rest,
@@ -110,13 +108,13 @@ const DataList = Object.assign(dataListTopCell.DataListRoot, {
110
108
  RowLink: dataListTopCell.DataListRowLink,
111
109
  RowStatic: DataListRowStatic,
112
110
  Cell: dataListTopCell.DataListCell,
111
+ ActionsCell: dataListTopCell.DataListActionsCell,
113
112
  TextCell: dataListTopCell.DataListTextCell,
114
113
  NameCell: dataListTopCell.DataListNameCell,
115
114
  DescriptionCell: dataListTopCell.DataListDescriptionCell,
116
115
  IdCell: dataListTopCell.DataListIdCell,
117
116
  RowHeaderCell: dataListTopCell.DataListRowHeaderCell,
118
117
  NumberCell: dataListTopCell.DataListNumberCell,
119
- MonoCell: dataListTopCell.DataListMonoCell,
120
118
  DateCell: dataListTopCell.DataListDateCell,
121
119
  TimeCell: dataListTopCell.DataListTimeCell,
122
120
  SelectCell: dataListTopCell.DataListSelectCell,
@@ -132,4 +130,4 @@ const DataList = Object.assign(dataListTopCell.DataListRoot, {
132
130
  exports.DataList = DataList;
133
131
  exports.DataListSubHeading = DataListSubHeading;
134
132
  exports.DataListSubheader = DataListSubheader;
135
- //# sourceMappingURL=data-list-BK_lJxMN.cjs.map
133
+ //# sourceMappingURL=data-list-CCacNODd.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-list-CCacNODd.cjs","sources":["../src/ds/components/DataList/data-list-pagination.tsx","../src/ds/components/DataList/data-list-row-static.tsx","../src/ds/components/DataList/data-list-subheader.tsx","../src/ds/components/DataList/data-list-subheading.tsx","../src/ds/components/DataList/data-list-top-cells.tsx","../src/ds/components/DataList/data-list.tsx"],"sourcesContent":["import { ArrowLeftIcon, ArrowRightIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\n\nexport type DataListPaginationProps = {\n currentPage?: number;\n hasMore?: boolean;\n onNextPage?: () => void;\n onPrevPage?: () => void;\n};\n\nexport function DataListPagination({ currentPage, hasMore, onNextPage, onPrevPage }: DataListPaginationProps) {\n const showNavigation = (typeof currentPage === 'number' && currentPage > 0) || hasMore;\n\n return (\n <div className=\"text-ui-md text-neutral3 col-span-full flex items-center justify-center gap-8 py-4\">\n <span>\n Page <b>{currentPage ? currentPage + 1 : '1'}</b>\n </span>\n {showNavigation && (\n <div className=\"flex gap-4\">\n {typeof currentPage === 'number' && currentPage > 0 && (\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onPrevPage}>\n <ArrowLeftIcon />\n Previous\n </Button>\n )}\n {hasMore && (\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={onNextPage}>\n Next\n <ArrowRightIcon />\n </Button>\n )}\n </div>\n )}\n </div>\n );\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { useDataListRowWrapperContext } from './data-list-row-wrapper-context';\nimport { dataListRowStaticStyles, dataListRowVariants } from './shared';\nimport type { DataListRowSharedProps } from './shared';\nimport { cn } from '@/lib/utils';\n\nexport type DataListRowStaticProps = ComponentPropsWithoutRef<'div'> & DataListRowSharedProps;\n\n/**\n * Non-interactive row. Use when a row should *display* like a regular row but\n * has no link target or click handler\n */\nexport const DataListRowStatic = forwardRef<HTMLDivElement, DataListRowStaticProps>(\n ({ children, className, colStart, colEnd, featured, variant, style, ...rest }, ref) => {\n const isWrapped = useDataListRowWrapperContext();\n const hasColumnOverride = colStart !== undefined || colEnd !== undefined;\n const resolvedStyle = hasColumnOverride ? { ...style, gridColumn: `${colStart ?? 1} / ${colEnd ?? -1}` } : style;\n return (\n <div\n ref={ref}\n className={cn(\n isWrapped\n ? 'grid grid-cols-subgrid gap-8 rounded-lg px-5 transition-colors duration-200'\n : dataListRowStaticStyles,\n // `!` so the selection fill wins over borderless table root styling\n // (higher-specificity descendant rules); same color in `default`.\n featured && 'bg-surface-row-featured!',\n dataListRowVariants({ variant }),\n className,\n )}\n style={resolvedStyle}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListRowStatic.displayName = 'DataListRowStatic';\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListSubheaderProps = ComponentPropsWithoutRef<'div'>;\n\nexport const DataListSubheader = forwardRef<HTMLDivElement, DataListSubheaderProps>(\n ({ children, className, ...rest }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'relative isolate col-span-full mt-2 border-none px-5 py-3 text-ui-md font-medium text-neutral4',\n 'before:absolute before:inset-0 before:-z-1 before:rounded-lg before:bg-[var(--data-list-sticky-header-background)]',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListSubheader.displayName = 'DataListSubheader';\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListSubHeadingProps = {\n children: ReactNode;\n className?: string;\n};\n\nexport function DataListSubHeading({ children, className }: DataListSubHeadingProps) {\n return <span className={cn('text-ui-sm font-normal text-neutral2', className)}>{children}</span>;\n}\n","import { forwardRef } from 'react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type DataListTopCellsProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Drop the group's default left margin. Use when this sits as the second\n * child of a gap-0 `DataList.Top`, beside a `DataList.TopSelectCell` that\n * owns the leading column.\n */\n flushLeft?: boolean;\n /**\n * Place the group starting at this column line, spanning through to the\n * last column. Defaults to the full grid (`col-span-full`). Use when this\n * sits beside a leading cell that owns column 1.\n */\n colStart?: number;\n};\n\n/**\n * Non-interactive header equivalent of `DataList.RowButton`. Groups a set of\n * `DataList.TopCell`s with the same horizontal layout (gap, mx, px) as\n * `RowButton`, so columns inside a wrapped `Top` line up cell-for-cell with the\n * columns inside a wrapped `Row`.\n */\nexport const DataListTopCells = forwardRef<HTMLDivElement, DataListTopCellsProps>(\n ({ children, className, flushLeft, colStart, style, ...rest }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'pointer-events-none grid grid-cols-subgrid gap-8 px-5 [&>*]:pointer-events-auto',\n !colStart && 'col-span-full',\n flushLeft && 'pl-0!',\n className,\n )}\n style={colStart ? { ...style, gridColumn: `${colStart} / -1` } : style}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDataListTopCells.displayName = 'DataListTopCells';\n","import {\n DataListActionsCell,\n DataListCell,\n DataListTextCell,\n DataListNameCell,\n DataListDescriptionCell,\n DataListIdCell,\n DataListRowHeaderCell,\n DataListNumberCell,\n DataListSelectCell,\n DataListDateCell,\n DataListTimeCell,\n} from './data-list-cells';\nimport { DataListNextPageLoading } from './data-list-next-page-loading';\nimport { DataListNoMatch } from './data-list-no-match';\nimport { DataListPagination } from './data-list-pagination';\nimport { DataListRoot } from './data-list-root';\nimport { DataListRowButton } from './data-list-row-button';\nimport { DataListRowLink } from './data-list-row-link';\nimport { DataListRowStatic } from './data-list-row-static';\nimport { DataListRowWrapper } from './data-list-row-wrapper';\nimport { DataListSpacer } from './data-list-spacer';\nimport { DataListSubheader } from './data-list-subheader';\nimport { DataListSubHeading } from './data-list-subheading';\nimport { DataListTop } from './data-list-top';\nimport {\n DataListTopCell,\n DataListTopCellWithTooltip,\n DataListTopCellSmart,\n DataListTopSelectCell,\n} from './data-list-top-cell';\nimport { DataListTopCells } from './data-list-top-cells';\n\nexport type { DataListRootProps, DataListStickyHeaderBackground, DataListVariant } from './data-list-root';\n\nexport const DataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCells: DataListTopCells,\n TopCell: DataListTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n RowStatic: DataListRowStatic,\n Cell: DataListCell,\n ActionsCell: DataListActionsCell,\n TextCell: DataListTextCell,\n NameCell: DataListNameCell,\n DescriptionCell: DataListDescriptionCell,\n IdCell: DataListIdCell,\n RowHeaderCell: DataListRowHeaderCell,\n NumberCell: DataListNumberCell,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n SelectCell: DataListSelectCell,\n TopSelectCell: DataListTopSelectCell,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n NextPageLoading: DataListNextPageLoading,\n Pagination: DataListPagination,\n});\n"],"names":["jsxs","jsx","Button","ArrowLeftIcon","ArrowRightIcon","forwardRef","useDataListRowWrapperContext","cn","dataListRowStaticStyles","dataListRowVariants","DataListRoot","DataListTop","DataListTopCell","DataListTopCellWithTooltip","DataListTopCellSmart","DataListRowWrapper","DataListRowButton","DataListRowLink","DataListCell","DataListActionsCell","DataListTextCell","DataListNameCell","DataListDescriptionCell","DataListIdCell","DataListRowHeaderCell","DataListNumberCell","DataListDateCell","DataListTimeCell","DataListSelectCell","DataListTopSelectCell","DataListNoMatch","DataListSpacer","DataListNextPageLoading"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
- const dataListTopCell = require('./data-list-top-cell-DyBSefIr.cjs');
4
+ const dataListTopCell = require('./data-list-top-cell-BOXO5s7I.cjs');
5
+ const utils_cn = require('./cn-vA5sWo9W.cjs');
5
6
 
6
7
  const widths = ["75%", "50%", "65%", "90%", "60%", "80%"];
7
8
  function DataListSkeleton({ columns = "auto 1fr auto auto", numberOfRows = 3, fit }) {
@@ -15,11 +16,14 @@ function DataListSkeleton({ columns = "auto 1fr auto auto", numberOfRows = 3, fi
15
16
  return /* @__PURE__ */ jsxRuntime.jsx(dataListTopCell.DataListRoot, { columns: skeletonColumns, fit, children: Array.from({ length: numberOfRows }).map((_, rowIdx) => /* @__PURE__ */ jsxRuntime.jsx(
16
17
  "div",
17
18
  {
18
- className: "data-list-row border-b-border1 3xl:gap-14 col-span-full grid grid-cols-subgrid gap-6 rounded-lg border-y border-t-transparent px-5 transition-colors duration-200 lg:gap-8 xl:gap-10 2xl:gap-12",
19
+ className: utils_cn.cn(
20
+ "grid grid-cols-subgrid gap-6 px-5 2xl:gap-12 3xl:gap-14 lg:gap-8 xl:gap-10",
21
+ ...dataListTopCell.dataListRowOuterStyles
22
+ ),
19
23
  children: Array.from({ length: columnCount }).map((_2, colIdx) => /* @__PURE__ */ jsxRuntime.jsx(dataListTopCell.DataListCell, { children: /* @__PURE__ */ jsxRuntime.jsx(
20
24
  "div",
21
25
  {
22
- className: "bg-surface4 h-4 animate-pulse rounded-md text-transparent select-none",
26
+ className: "bg-surface6 h-4 animate-pulse rounded-lg text-transparent select-none",
23
27
  style: { width: getPseudoRandomWidth(rowIdx, colIdx) }
24
28
  }
25
29
  ) }, colIdx))
@@ -29,4 +33,4 @@ function DataListSkeleton({ columns = "auto 1fr auto auto", numberOfRows = 3, fi
29
33
  }
30
34
 
31
35
  exports.DataListSkeleton = DataListSkeleton;
32
- //# sourceMappingURL=data-list-skeleton-dVbplSiW.cjs.map
36
+ //# sourceMappingURL=data-list-skeleton-BHBSIQHN.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-list-skeleton-BHBSIQHN.cjs","sources":["../src/ds/components/DataList/data-list-skeleton.tsx"],"sourcesContent":["import { DataListCell } from './data-list-cells';\nimport { DataListRoot } from './data-list-root';\nimport type { DataListFit } from './data-list-root';\nimport { dataListRowOuterStyles } from './shared';\nimport { cn } from '@/lib/utils';\n\nconst widths = ['75%', '50%', '65%', '90%', '60%', '80%'];\n\nexport type DataListSkeletonProps = {\n columns?: string;\n numberOfRows?: number;\n fit?: DataListFit;\n};\n\nexport function DataListSkeleton({ columns = 'auto 1fr auto auto', numberOfRows = 3, fit }: DataListSkeletonProps) {\n const columnParts = columns.trim().split(/\\s+/);\n const columnCount = columnParts.length;\n const skeletonColumns = columnParts.map(col => (col === 'auto' ? 'minmax(6rem, auto)' : col)).join(' ');\n\n const getPseudoRandomWidth = (rowIdx: number, colIdx: number) => {\n const index = (rowIdx + colIdx + columnCount + numberOfRows) % widths.length;\n return widths[index];\n };\n\n return (\n <DataListRoot columns={skeletonColumns} fit={fit}>\n {Array.from({ length: numberOfRows }).map((_, rowIdx) => (\n <div\n key={rowIdx}\n className={cn(\n 'grid grid-cols-subgrid gap-6 px-5 2xl:gap-12 3xl:gap-14 lg:gap-8 xl:gap-10',\n ...dataListRowOuterStyles,\n )}\n >\n {Array.from({ length: columnCount }).map((_, colIdx) => (\n <DataListCell key={colIdx}>\n <div\n className=\"bg-surface6 h-4 animate-pulse rounded-lg text-transparent select-none\"\n style={{ width: getPseudoRandomWidth(rowIdx, colIdx) }}\n />\n </DataListCell>\n ))}\n </div>\n ))}\n </DataListRoot>\n );\n}\n"],"names":["jsx","DataListRoot","cn","dataListRowOuterStyles","_","DataListCell"],"mappings":";;;;;;AAMA,MAAM,SAAS,CAAC,KAAA,EAAO,OAAO,KAAA,EAAO,KAAA,EAAO,OAAO,KAAK,CAAA;AAQjD,SAAS,iBAAiB,EAAE,OAAA,GAAU,sBAAsB,YAAA,GAAe,CAAA,EAAG,KAAI,EAA0B;AACjH,EAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA;AAC9C,EAAA,MAAM,cAAc,WAAA,CAAY,MAAA;AAChC,EAAA,MAAM,eAAA,GAAkB,WAAA,CAAY,GAAA,CAAI,CAAA,GAAA,KAAQ,GAAA,KAAQ,SAAS,oBAAA,GAAuB,GAAI,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAEtG,EAAA,MAAM,oBAAA,GAAuB,CAAC,MAAA,EAAgB,MAAA,KAAmB;AAC/D,IAAA,MAAM,KAAA,GAAA,CAAS,MAAA,GAAS,MAAA,GAAS,WAAA,GAAc,gBAAgB,MAAA,CAAO,MAAA;AACtE,IAAA,OAAO,OAAO,KAAK,CAAA;AAAA,EACrB,CAAA;AAEA,EAAA,uBACEA,cAAA,CAACC,4BAAA,EAAA,EAAa,OAAA,EAAS,eAAA,EAAiB,KACrC,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,cAAc,CAAA,CAAE,GAAA,CAAI,CAAC,GAAG,MAAA,qBAC5CD,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MAEC,SAAA,EAAWE,WAAA;AAAA,QACT,4EAAA;AAAA,QACA,GAAGC;AAAA,OACL;AAAA,MAEC,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,WAAA,EAAa,CAAA,CAAE,GAAA,CAAI,CAACC,EAAAA,EAAG,MAAA,qBAC3CJ,cAAA,CAACK,4BAAA,EAAA,EACC,QAAA,kBAAAL,cAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,uEAAA;AAAA,UACV,OAAO,EAAE,KAAA,EAAO,oBAAA,CAAqB,MAAA,EAAQ,MAAM,CAAA;AAAE;AAAA,OACvD,EAAA,EAJiB,MAKnB,CACD;AAAA,KAAA;AAAA,IAbI;AAAA,GAeR,CAAA,EACH,CAAA;AAEJ;;;;"}
@@ -1,5 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { D as DataListRoot, a as DataListCell } from './data-list-top-cell-DZiX9cTb.js';
2
+ import { D as DataListRoot, a as DataListCell, d as dataListRowOuterStyles } from './data-list-top-cell-CC5jjv5s.js';
3
+ import { c as cn } from './cn-BakJzhuv.js';
3
4
 
4
5
  const widths = ["75%", "50%", "65%", "90%", "60%", "80%"];
5
6
  function DataListSkeleton({ columns = "auto 1fr auto auto", numberOfRows = 3, fit }) {
@@ -13,11 +14,14 @@ function DataListSkeleton({ columns = "auto 1fr auto auto", numberOfRows = 3, fi
13
14
  return /* @__PURE__ */ jsx(DataListRoot, { columns: skeletonColumns, fit, children: Array.from({ length: numberOfRows }).map((_, rowIdx) => /* @__PURE__ */ jsx(
14
15
  "div",
15
16
  {
16
- className: "data-list-row border-b-border1 3xl:gap-14 col-span-full grid grid-cols-subgrid gap-6 rounded-lg border-y border-t-transparent px-5 transition-colors duration-200 lg:gap-8 xl:gap-10 2xl:gap-12",
17
+ className: cn(
18
+ "grid grid-cols-subgrid gap-6 px-5 2xl:gap-12 3xl:gap-14 lg:gap-8 xl:gap-10",
19
+ ...dataListRowOuterStyles
20
+ ),
17
21
  children: Array.from({ length: columnCount }).map((_2, colIdx) => /* @__PURE__ */ jsx(DataListCell, { children: /* @__PURE__ */ jsx(
18
22
  "div",
19
23
  {
20
- className: "bg-surface4 h-4 animate-pulse rounded-md text-transparent select-none",
24
+ className: "bg-surface6 h-4 animate-pulse rounded-lg text-transparent select-none",
21
25
  style: { width: getPseudoRandomWidth(rowIdx, colIdx) }
22
26
  }
23
27
  ) }, colIdx))
@@ -27,4 +31,4 @@ function DataListSkeleton({ columns = "auto 1fr auto auto", numberOfRows = 3, fi
27
31
  }
28
32
 
29
33
  export { DataListSkeleton as D };
30
- //# sourceMappingURL=data-list-skeleton-DQp3KwVO.js.map
34
+ //# sourceMappingURL=data-list-skeleton-DDO_OE14.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-list-skeleton-DDO_OE14.js","sources":["../src/ds/components/DataList/data-list-skeleton.tsx"],"sourcesContent":["import { DataListCell } from './data-list-cells';\nimport { DataListRoot } from './data-list-root';\nimport type { DataListFit } from './data-list-root';\nimport { dataListRowOuterStyles } from './shared';\nimport { cn } from '@/lib/utils';\n\nconst widths = ['75%', '50%', '65%', '90%', '60%', '80%'];\n\nexport type DataListSkeletonProps = {\n columns?: string;\n numberOfRows?: number;\n fit?: DataListFit;\n};\n\nexport function DataListSkeleton({ columns = 'auto 1fr auto auto', numberOfRows = 3, fit }: DataListSkeletonProps) {\n const columnParts = columns.trim().split(/\\s+/);\n const columnCount = columnParts.length;\n const skeletonColumns = columnParts.map(col => (col === 'auto' ? 'minmax(6rem, auto)' : col)).join(' ');\n\n const getPseudoRandomWidth = (rowIdx: number, colIdx: number) => {\n const index = (rowIdx + colIdx + columnCount + numberOfRows) % widths.length;\n return widths[index];\n };\n\n return (\n <DataListRoot columns={skeletonColumns} fit={fit}>\n {Array.from({ length: numberOfRows }).map((_, rowIdx) => (\n <div\n key={rowIdx}\n className={cn(\n 'grid grid-cols-subgrid gap-6 px-5 2xl:gap-12 3xl:gap-14 lg:gap-8 xl:gap-10',\n ...dataListRowOuterStyles,\n )}\n >\n {Array.from({ length: columnCount }).map((_, colIdx) => (\n <DataListCell key={colIdx}>\n <div\n className=\"bg-surface6 h-4 animate-pulse rounded-lg text-transparent select-none\"\n style={{ width: getPseudoRandomWidth(rowIdx, colIdx) }}\n />\n </DataListCell>\n ))}\n </div>\n ))}\n </DataListRoot>\n );\n}\n"],"names":["_"],"mappings":";;;;AAMA,MAAM,SAAS,CAAC,KAAA,EAAO,OAAO,KAAA,EAAO,KAAA,EAAO,OAAO,KAAK,CAAA;AAQjD,SAAS,iBAAiB,EAAE,OAAA,GAAU,sBAAsB,YAAA,GAAe,CAAA,EAAG,KAAI,EAA0B;AACjH,EAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA;AAC9C,EAAA,MAAM,cAAc,WAAA,CAAY,MAAA;AAChC,EAAA,MAAM,eAAA,GAAkB,WAAA,CAAY,GAAA,CAAI,CAAA,GAAA,KAAQ,GAAA,KAAQ,SAAS,oBAAA,GAAuB,GAAI,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAEtG,EAAA,MAAM,oBAAA,GAAuB,CAAC,MAAA,EAAgB,MAAA,KAAmB;AAC/D,IAAA,MAAM,KAAA,GAAA,CAAS,MAAA,GAAS,MAAA,GAAS,WAAA,GAAc,gBAAgB,MAAA,CAAO,MAAA;AACtE,IAAA,OAAO,OAAO,KAAK,CAAA;AAAA,EACrB,CAAA;AAEA,EAAA,uBACE,GAAA,CAAC,YAAA,EAAA,EAAa,OAAA,EAAS,eAAA,EAAiB,KACrC,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,cAAc,CAAA,CAAE,GAAA,CAAI,CAAC,GAAG,MAAA,qBAC5C,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MAEC,SAAA,EAAW,EAAA;AAAA,QACT,4EAAA;AAAA,QACA,GAAG;AAAA,OACL;AAAA,MAEC,QAAA,EAAA,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,WAAA,EAAa,CAAA,CAAE,GAAA,CAAI,CAACA,EAAAA,EAAG,MAAA,qBAC3C,GAAA,CAAC,YAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,uEAAA;AAAA,UACV,OAAO,EAAE,KAAA,EAAO,oBAAA,CAAqB,MAAA,EAAQ,MAAM,CAAA;AAAE;AAAA,OACvD,EAAA,EAJiB,MAKnB,CACD;AAAA,KAAA;AAAA,IAbI;AAAA,GAeR,CAAA,EACH,CAAA;AAEJ;;;;"}