@mastra/playground-ui 55.0.0 → 56.0.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -0
- package/dist/Badge-BCwBpIc7.js +123 -0
- package/dist/Badge-BCwBpIc7.js.map +1 -0
- package/dist/Badge-RWi6V_JT.cjs +125 -0
- package/dist/Badge-RWi6V_JT.cjs.map +1 -0
- package/dist/Button-C2dx_QZN.cjs +207 -0
- package/dist/Button-C2dx_QZN.cjs.map +1 -0
- package/dist/Button-DS6O6fvU.js +203 -0
- package/dist/Button-DS6O6fvU.js.map +1 -0
- package/dist/Card-CnxuKKaz.js +96 -0
- package/dist/Card-CnxuKKaz.js.map +1 -0
- package/dist/Card-DC9rlxXj.cjs +123 -0
- package/dist/Card-DC9rlxXj.cjs.map +1 -0
- package/dist/EmptyState-CDM5htkF.js +31 -0
- package/dist/EmptyState-CDM5htkF.js.map +1 -0
- package/dist/EmptyState-_TZefNk_.cjs +33 -0
- package/dist/EmptyState-_TZefNk_.cjs.map +1 -0
- package/dist/Notice-Cq7m_mxe.cjs +91 -0
- package/dist/Notice-Cq7m_mxe.cjs.map +1 -0
- package/dist/Notice-DEqr19sI.js +89 -0
- package/dist/Notice-DEqr19sI.js.map +1 -0
- package/dist/PermissionDenied-BCHmzPYk.cjs +24 -0
- package/dist/PermissionDenied-BCHmzPYk.cjs.map +1 -0
- package/dist/PermissionDenied-lLDk9Zpw.js +22 -0
- package/dist/PermissionDenied-lLDk9Zpw.js.map +1 -0
- package/dist/PullRequestIcon.css +7 -0
- package/dist/SessionExpired-B4qMlVNC.cjs +47 -0
- package/dist/SessionExpired-B4qMlVNC.cjs.map +1 -0
- package/dist/SessionExpired-OS-dhsdb.js +45 -0
- package/dist/SessionExpired-OS-dhsdb.js.map +1 -0
- package/dist/Txt-C7rZCmrg.cjs +30 -0
- package/dist/Txt-C7rZCmrg.cjs.map +1 -0
- package/dist/Txt-hyo2FKuO.js +28 -0
- package/dist/Txt-hyo2FKuO.js.map +1 -0
- package/dist/activity-1GW2mu-d.cjs +52 -0
- package/dist/activity-1GW2mu-d.cjs.map +1 -0
- package/dist/activity-BiQKEDt0.js +49 -0
- package/dist/activity-BiQKEDt0.js.map +1 -0
- package/dist/activity.css +365 -0
- package/dist/arrival-CormfVRZ.cjs +22 -0
- package/dist/arrival-CormfVRZ.cjs.map +1 -0
- package/dist/arrival-DPVjCnNy.js +19 -0
- package/dist/arrival-DPVjCnNy.js.map +1 -0
- package/dist/ask-user-DCWLWOBI.js +137 -0
- package/dist/ask-user-DCWLWOBI.js.map +1 -0
- package/dist/ask-user-Dw64_A-5.cjs +146 -0
- package/dist/ask-user-Dw64_A-5.cjs.map +1 -0
- package/dist/buttons-group-t7AODlO9.js +162 -0
- package/dist/buttons-group-t7AODlO9.js.map +1 -0
- package/dist/buttons-group-yLVV4nzz.cjs +186 -0
- package/dist/buttons-group-yLVV4nzz.cjs.map +1 -0
- package/dist/chat-notification-DMwUG6M1.cjs +111 -0
- package/dist/chat-notification-DMwUG6M1.cjs.map +1 -0
- package/dist/chat-notification-DyBAfleZ.js +107 -0
- package/dist/chat-notification-DyBAfleZ.js.map +1 -0
- package/dist/chat-signal-D-8_rCn0.cjs +42 -0
- package/dist/chat-signal-D-8_rCn0.cjs.map +1 -0
- package/dist/chat-signal-JGIN9unj.js +40 -0
- package/dist/chat-signal-JGIN9unj.js.map +1 -0
- package/dist/checkbox-BHOqsV3k.js +89 -0
- package/dist/checkbox-BHOqsV3k.js.map +1 -0
- package/dist/checkbox-DXapLh4O.cjs +110 -0
- package/dist/checkbox-DXapLh4O.cjs.map +1 -0
- package/dist/cn-BuHW7Wrt.cjs +3294 -0
- package/dist/cn-BuHW7Wrt.cjs.map +1 -0
- package/dist/cn-C6s2yXwM.js +3291 -0
- package/dist/cn-C6s2yXwM.js.map +1 -0
- package/dist/code-block-BBG-Zv3I.js +86 -0
- package/dist/code-block-BBG-Zv3I.js.map +1 -0
- package/dist/code-block-DgK__blB.cjs +88 -0
- package/dist/code-block-DgK__blB.cjs.map +1 -0
- package/dist/code-editor-CQqV40K3.js +478 -0
- package/dist/code-editor-CQqV40K3.js.map +1 -0
- package/dist/code-editor-e1JSppW0.cjs +486 -0
- package/dist/code-editor-e1JSppW0.cjs.map +1 -0
- package/dist/collapsible-C2RuZzc7.js +57 -0
- package/dist/collapsible-C2RuZzc7.js.map +1 -0
- package/dist/collapsible-C3x1n6sF.cjs +61 -0
- package/dist/collapsible-C3x1n6sF.cjs.map +1 -0
- package/dist/combobox-CQ2Ri2LC.js +175 -0
- package/dist/combobox-CQ2Ri2LC.js.map +1 -0
- package/dist/combobox-F3WprWVx.cjs +196 -0
- package/dist/combobox-F3WprWVx.cjs.map +1 -0
- package/dist/combobox-styles-1C3D0JLL.cjs +98 -0
- package/dist/combobox-styles-1C3D0JLL.cjs.map +1 -0
- package/dist/combobox-styles-BMerfYPX.js +94 -0
- package/dist/combobox-styles-BMerfYPX.js.map +1 -0
- package/dist/command-CuuMEoIB.cjs +211 -0
- package/dist/command-CuuMEoIB.cjs.map +1 -0
- package/dist/command-rJ4b4Z2h.js +182 -0
- package/dist/command-rJ4b4Z2h.js.map +1 -0
- package/dist/components/Activity.cjs.js +11 -0
- package/dist/components/Activity.cjs.js.map +1 -0
- package/dist/components/Activity.d.ts +2 -0
- package/dist/components/Activity.es.js +2 -0
- package/dist/components/Activity.es.js.map +1 -0
- package/dist/components/AlertDialog.cjs.js +2 -2
- package/dist/components/AlertDialog.es.js +2 -2
- package/dist/components/Arrival.cjs.js +1 -1
- package/dist/components/Arrival.es.js +1 -1
- package/dist/components/Avatar.cjs.js +2 -2
- package/dist/components/Avatar.es.js +2 -2
- package/dist/components/Badge.cjs.js +1 -1
- package/dist/components/Badge.es.js +1 -1
- package/dist/components/BrandLoader.cjs.js +1 -1
- package/dist/components/BrandLoader.es.js +1 -1
- package/dist/components/Breadcrumb.cjs.js +2 -2
- package/dist/components/Breadcrumb.es.js +2 -2
- package/dist/components/Button.cjs.js +2 -2
- package/dist/components/Button.cjs.js.map +1 -1
- package/dist/components/Button.es.js +3 -3
- package/dist/components/Button.es.js.map +1 -1
- package/dist/components/ButtonsGroup.cjs.js +1 -1
- package/dist/components/ButtonsGroup.es.js +1 -1
- package/dist/components/Card.cjs.js +1 -1
- package/dist/components/Card.es.js +1 -1
- package/dist/components/ChatShell.cjs.js +2 -2
- package/dist/components/ChatShell.es.js +2 -2
- package/dist/components/Checkbox.cjs.js +1 -1
- package/dist/components/Checkbox.es.js +1 -1
- package/dist/components/ClampedText.cjs.js +3 -3
- package/dist/components/ClampedText.es.js +3 -3
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Collapsible.cjs.js +1 -1
- package/dist/components/Collapsible.es.js +1 -1
- package/dist/components/Columns.cjs.js +2 -2
- package/dist/components/Columns.es.js +2 -2
- package/dist/components/Combobox.cjs.js +3 -2
- package/dist/components/Combobox.cjs.js.map +1 -1
- package/dist/components/Combobox.es.js +2 -1
- package/dist/components/Combobox.es.js.map +1 -1
- package/dist/components/Command.cjs.js +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/CommandPalette.cjs.js +9 -8
- package/dist/components/CommandPalette.cjs.js.map +1 -1
- package/dist/components/CommandPalette.es.js +9 -8
- package/dist/components/CommandPalette.es.js.map +1 -1
- package/dist/components/Comment.cjs.js +8 -8
- package/dist/components/Comment.cjs.js.map +1 -1
- package/dist/components/Comment.es.js +8 -8
- package/dist/components/Comment.es.js.map +1 -1
- package/dist/components/Composer.cjs.js +12 -141
- package/dist/components/Composer.cjs.js.map +1 -1
- package/dist/components/Composer.es.js +5 -135
- package/dist/components/Composer.es.js.map +1 -1
- package/dist/components/ContextMenu.cjs.js +30 -14
- package/dist/components/ContextMenu.cjs.js.map +1 -1
- package/dist/components/ContextMenu.es.js +30 -14
- package/dist/components/ContextMenu.es.js.map +1 -1
- package/dist/components/CopyButton.cjs.js +1 -1
- package/dist/components/CopyButton.es.js +1 -1
- package/dist/components/DashboardCard.cjs.js +1 -1
- package/dist/components/DashboardCard.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +21 -17
- package/dist/components/DataDetailsPanel.cjs.js.map +1 -1
- package/dist/components/DataDetailsPanel.es.js +21 -17
- package/dist/components/DataDetailsPanel.es.js.map +1 -1
- package/dist/components/DataFilter.cjs.js +3 -3
- package/dist/components/DataFilter.es.js +3 -3
- package/dist/components/DataKeysAndValues.cjs.js +1 -1
- package/dist/components/DataKeysAndValues.es.js +1 -1
- package/dist/components/DataList.cjs.js +8 -7
- package/dist/components/DataList.cjs.js.map +1 -1
- package/dist/components/DataList.es.js +5 -4
- package/dist/components/DataList.es.js.map +1 -1
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +5 -5
- package/dist/components/DateRangeTimeline.es.js +5 -5
- package/dist/components/DateTimePicker.cjs.js +7 -7
- package/dist/components/DateTimePicker.cjs.js.map +1 -1
- package/dist/components/DateTimePicker.es.js +7 -7
- package/dist/components/DateTimePicker.es.js.map +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +3 -3
- package/dist/components/Dialog.es.js +4 -4
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/DropdownMenu.cjs.js +1 -1
- package/dist/components/DropdownMenu.es.js +1 -1
- package/dist/components/EmptyState.cjs.js +1 -1
- package/dist/components/EmptyState.es.js +1 -1
- package/dist/components/Entity.cjs.js +2 -2
- package/dist/components/Entity.es.js +2 -2
- package/dist/components/EntityHeader.cjs.js +2 -2
- package/dist/components/EntityHeader.es.js +2 -2
- package/dist/components/Entry.cjs.js +1 -1
- package/dist/components/Entry.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +7 -7
- package/dist/components/EnvironmentVariablesEditor.es.js +7 -7
- package/dist/components/ErrorBoundary.cjs.js +3 -6
- package/dist/components/ErrorBoundary.cjs.js.map +1 -1
- package/dist/components/ErrorBoundary.es.js +3 -6
- package/dist/components/ErrorBoundary.es.js.map +1 -1
- package/dist/components/FilterBar.cjs.js +441 -0
- package/dist/components/FilterBar.cjs.js.map +1 -0
- package/dist/components/FilterBar.d.ts +2 -0
- package/dist/components/FilterBar.es.js +430 -0
- package/dist/components/FilterBar.es.js.map +1 -0
- package/dist/components/FormFieldBlocks.cjs.js +7 -5
- package/dist/components/FormFieldBlocks.cjs.js.map +1 -1
- package/dist/components/FormFieldBlocks.es.js +6 -5
- package/dist/components/FormFieldBlocks.es.js.map +1 -1
- package/dist/components/Header.cjs.js +2 -2
- package/dist/components/Header.es.js +2 -2
- package/dist/components/HorizontalBars.cjs.js +1 -1
- package/dist/components/HorizontalBars.es.js +1 -1
- package/dist/components/HoverCard.cjs.js +1 -1
- package/dist/components/HoverCard.es.js +1 -1
- package/dist/components/Input.cjs.js +1 -1
- package/dist/components/Input.es.js +1 -1
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/IntegrationDialog.cjs.js +4 -4
- package/dist/components/IntegrationDialog.es.js +4 -4
- package/dist/components/ItemList.cjs.js +3 -3
- package/dist/components/ItemList.es.js +3 -3
- package/dist/components/JSONSchemaForm.cjs.js +5 -5
- package/dist/components/JSONSchemaForm.es.js +5 -5
- package/dist/components/Kbd.cjs.js +1 -1
- package/dist/components/Kbd.es.js +1 -1
- package/dist/components/KeyValueList.cjs.js +2 -2
- package/dist/components/KeyValueList.es.js +2 -2
- package/dist/components/Label.cjs.js +1 -1
- package/dist/components/Label.es.js +1 -1
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/Logo.cjs.js +1 -1
- package/dist/components/Logo.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +4 -2
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +4 -2
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/MainContent.cjs.js +1 -1
- package/dist/components/MainContent.es.js +1 -1
- package/dist/components/MainHeader.cjs.js +1 -1
- package/dist/components/MainHeader.es.js +1 -1
- package/dist/components/MainSidebar.cjs.js +11 -836
- package/dist/components/MainSidebar.cjs.js.map +1 -1
- package/dist/components/MainSidebar.es.js +1 -830
- package/dist/components/MainSidebar.es.js.map +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Message.cjs.js +26 -0
- package/dist/components/Message.cjs.js.map +1 -0
- package/dist/components/Message.d.ts +2 -0
- package/dist/components/Message.es.js +19 -0
- package/dist/components/Message.es.js.map +1 -0
- package/dist/components/MessageScroller.cjs.js +1 -1
- package/dist/components/MessageScroller.es.js +1 -1
- package/dist/components/MetricsCard.cjs.js +1 -1
- package/dist/components/MetricsCard.es.js +1 -1
- package/dist/components/MetricsFlexGrid.cjs.js +1 -1
- package/dist/components/MetricsFlexGrid.es.js +1 -1
- package/dist/components/MetricsKpiCard.cjs.js +1 -1
- package/dist/components/MetricsKpiCard.es.js +1 -1
- package/dist/components/Notice.cjs.js +1 -1
- package/dist/components/Notice.es.js +1 -1
- package/dist/components/PageHeader.cjs.js +1 -1
- package/dist/components/PageHeader.es.js +1 -1
- package/dist/components/PageLayout.cjs.js +3 -2
- package/dist/components/PageLayout.cjs.js.map +1 -1
- package/dist/components/PageLayout.es.js +2 -1
- package/dist/components/PageLayout.es.js.map +1 -1
- package/dist/components/PendingIndicator.cjs.js +1 -1
- package/dist/components/PendingIndicator.es.js +1 -1
- package/dist/components/PermissionDenied.cjs.js +1 -1
- package/dist/components/PermissionDenied.es.js +1 -1
- package/dist/components/Popover.cjs.js +1 -1
- package/dist/components/Popover.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +2 -3
- package/dist/components/PrevNextNav.cjs.js.map +1 -1
- package/dist/components/PrevNextNav.es.js +2 -3
- package/dist/components/PrevNextNav.es.js.map +1 -1
- package/dist/components/PropertyFilter.cjs.js +5 -5
- package/dist/components/PropertyFilter.es.js +6 -6
- package/dist/components/PullRequestIcon.cjs.js +21 -0
- package/dist/components/PullRequestIcon.cjs.js.map +1 -0
- package/dist/components/PullRequestIcon.d.ts +2 -0
- package/dist/components/PullRequestIcon.es.js +17 -0
- package/dist/components/PullRequestIcon.es.js.map +1 -0
- package/dist/components/RadioGroup.cjs.js +1 -1
- package/dist/components/RadioGroup.es.js +1 -1
- package/dist/components/RuleBuilder.cjs.js +4 -4
- package/dist/components/RuleBuilder.es.js +4 -4
- package/dist/components/SankeyChart.cjs.js +1 -1
- package/dist/components/SankeyChart.es.js +1 -1
- package/dist/components/ScatterPlotChart.cjs.js +2 -2
- package/dist/components/ScatterPlotChart.es.js +2 -2
- package/dist/components/ScrollArea.cjs.js +1 -1
- package/dist/components/ScrollArea.es.js +1 -1
- package/dist/components/Section.cjs.js +1 -1
- package/dist/components/Section.es.js +1 -1
- package/dist/components/SectionCard.cjs.js +1 -1
- package/dist/components/SectionCard.es.js +1 -1
- package/dist/components/Sections.cjs.js +1 -1
- package/dist/components/Sections.es.js +1 -1
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SessionExpired.cjs.js +1 -1
- package/dist/components/SessionExpired.es.js +1 -1
- package/dist/components/SettingsLayout.cjs.js +1 -1
- package/dist/components/SettingsLayout.es.js +1 -1
- package/dist/components/SettingsRow.cjs.js +1 -1
- package/dist/components/SettingsRow.es.js +1 -1
- package/dist/components/Shimmer.cjs.js +1 -1
- package/dist/components/Shimmer.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +6 -6
- package/dist/components/SideDialog.es.js +6 -6
- package/dist/components/Skeleton.cjs.js +1 -1
- package/dist/components/Skeleton.es.js +1 -1
- package/dist/components/Slider.cjs.js +1 -1
- package/dist/components/Slider.es.js +1 -1
- package/dist/components/Spinner.cjs.js +1 -1
- package/dist/components/Spinner.es.js +1 -1
- package/dist/components/StatusIndicators.cjs.js +144 -0
- package/dist/components/StatusIndicators.cjs.js.map +1 -0
- package/dist/components/StatusIndicators.d.ts +2 -0
- package/dist/components/StatusIndicators.es.js +137 -0
- package/dist/components/StatusIndicators.es.js.map +1 -0
- package/dist/components/Steps.cjs.js +2 -2
- package/dist/components/Steps.es.js +2 -2
- package/dist/components/Switch.cjs.js +1 -1
- package/dist/components/Switch.es.js +1 -1
- package/dist/components/Table.cjs.js +2 -2
- package/dist/components/Table.es.js +2 -2
- package/dist/components/Tabs.cjs.js +3 -3
- package/dist/components/Tabs.es.js +3 -3
- package/dist/components/Text.cjs.js +1 -1
- package/dist/components/Text.es.js +1 -1
- package/dist/components/Textarea.cjs.js +1 -1
- package/dist/components/Textarea.es.js +1 -1
- package/dist/components/ThemeToggle.cjs.js +1 -1
- package/dist/components/ThemeToggle.es.js +1 -1
- package/dist/components/ThreadList.cjs.js +7 -8
- package/dist/components/ThreadList.cjs.js.map +1 -1
- package/dist/components/ThreadList.es.js +7 -8
- package/dist/components/ThreadList.es.js.map +1 -1
- package/dist/components/ThreadRail.cjs.js +1 -1
- package/dist/components/ThreadRail.es.js +1 -1
- package/dist/components/Toaster.cjs.js +1 -1
- package/dist/components/Toaster.es.js +1 -1
- package/dist/components/TokenBudget.cjs.js +1 -1
- package/dist/components/TokenBudget.es.js +1 -1
- package/dist/components/Tooltip.cjs.js +1 -1
- package/dist/components/Tooltip.es.js +1 -1
- package/dist/components/Tree.cjs.js +2 -2
- package/dist/components/Tree.es.js +2 -2
- package/dist/components/Truncate.cjs.js +4 -4
- package/dist/components/Truncate.es.js +4 -4
- package/dist/components/Txt.cjs.js +1 -1
- package/dist/components/Txt.es.js +1 -1
- package/dist/components/Workflow.cjs.js +675 -364
- package/dist/components/Workflow.cjs.js.map +1 -1
- package/dist/components/Workflow.es.js +679 -366
- package/dist/components/Workflow.es.js.map +1 -1
- package/dist/components/ai/ask-user.cjs.js +1 -1
- package/dist/components/ai/ask-user.es.js +1 -1
- package/dist/components/ai/chat-event.cjs.js +42 -0
- package/dist/components/ai/chat-event.cjs.js.map +1 -0
- package/dist/components/ai/chat-event.d.ts +2 -0
- package/dist/components/ai/chat-event.es.js +36 -0
- package/dist/components/ai/chat-event.es.js.map +1 -0
- package/dist/components/ai/plan.cjs.js +5 -5
- package/dist/components/ai/plan.es.js +5 -5
- package/dist/components/ai/task-list.cjs.js +4 -4
- package/dist/components/ai/task-list.es.js +4 -4
- package/dist/components/ai/tool-approval.cjs.js +11 -0
- package/dist/components/ai/tool-approval.cjs.js.map +1 -0
- package/dist/components/ai/tool-approval.d.ts +2 -0
- package/dist/components/ai/tool-approval.es.js +2 -0
- package/dist/components/ai/tool-approval.es.js.map +1 -0
- package/dist/components/ai/tool-call.cjs.js +46 -6
- package/dist/components/ai/tool-call.cjs.js.map +1 -1
- package/dist/components/ai/tool-call.es.js +46 -9
- package/dist/components/ai/tool-call.es.js.map +1 -1
- package/dist/components/fluid-hover-highlight.cjs.js +49 -0
- package/dist/components/fluid-hover-highlight.cjs.js.map +1 -0
- package/dist/components/fluid-hover-highlight.d.ts +2 -0
- package/dist/components/fluid-hover-highlight.es.js +42 -0
- package/dist/components/fluid-hover-highlight.es.js.map +1 -0
- package/dist/composer-C6kIcVEJ.cjs +156 -0
- package/dist/composer-C6kIcVEJ.cjs.map +1 -0
- package/dist/composer-Dz769593.js +148 -0
- package/dist/composer-Dz769593.js.map +1 -0
- package/dist/composer.css +207 -0
- package/dist/copy-button-CmQxxSUq.cjs +38 -0
- package/dist/copy-button-CmQxxSUq.cjs.map +1 -0
- package/dist/copy-button-DIeDskPU.js +36 -0
- package/dist/copy-button-DIeDskPU.js.map +1 -0
- package/dist/dashboard-card-B4VOm5Js.cjs +11 -0
- package/dist/dashboard-card-B4VOm5Js.cjs.map +1 -0
- package/dist/dashboard-card-quQYRrRH.js +9 -0
- package/dist/dashboard-card-quQYRrRH.js.map +1 -0
- package/dist/data-code-section-BHQOAbuZ.js +348 -0
- package/dist/data-code-section-BHQOAbuZ.js.map +1 -0
- package/dist/data-code-section-Dsn6ZqE0.cjs +350 -0
- package/dist/data-code-section-Dsn6ZqE0.cjs.map +1 -0
- package/dist/data-keys-and-values-BxSKCdWQ.js +122 -0
- package/dist/data-keys-and-values-BxSKCdWQ.js.map +1 -0
- package/dist/data-keys-and-values-CPUfobZS.cjs +124 -0
- package/dist/data-keys-and-values-CPUfobZS.cjs.map +1 -0
- package/dist/data-list-B9td5YXY.cjs +184 -0
- package/dist/data-list-B9td5YXY.cjs.map +1 -0
- package/dist/data-list-IQ0BjiGx.js +180 -0
- package/dist/data-list-IQ0BjiGx.js.map +1 -0
- package/dist/data-list-skeleton-CFaGBKDb.cjs +38 -0
- package/dist/data-list-skeleton-CFaGBKDb.cjs.map +1 -0
- package/dist/data-list-skeleton-CQQydcpj.js +36 -0
- package/dist/data-list-skeleton-CQQydcpj.js.map +1 -0
- package/dist/data-list-spacer-DWoUNPpA.js +138 -0
- package/dist/data-list-spacer-DWoUNPpA.js.map +1 -0
- package/dist/data-list-spacer-psBnZOCX.cjs +146 -0
- package/dist/data-list-spacer-psBnZOCX.cjs.map +1 -0
- package/dist/data-list-top-CkwvYUWw.cjs +375 -0
- package/dist/data-list-top-CkwvYUWw.cjs.map +1 -0
- package/dist/data-list-top-DbUnE1J9.js +350 -0
- package/dist/data-list-top-DbUnE1J9.js.map +1 -0
- package/dist/data-panel-BhJ8Lp_j.cjs +269 -0
- package/dist/data-panel-BhJ8Lp_j.cjs.map +1 -0
- package/dist/data-panel-D2JtbyKg.js +249 -0
- package/dist/data-panel-D2JtbyKg.js.map +1 -0
- package/dist/data-panel-section-heading-BoMxMKSA.cjs +23 -0
- package/dist/data-panel-section-heading-BoMxMKSA.cjs.map +1 -0
- package/dist/data-panel-section-heading-UzIDRnta.js +21 -0
- package/dist/data-panel-section-heading-UzIDRnta.js.map +1 -0
- package/dist/date-picker-DiZ0FOvY.cjs +48 -0
- package/dist/date-picker-DiZ0FOvY.cjs.map +1 -0
- package/dist/date-picker-jDmdtRTR.js +46 -0
- package/dist/date-picker-jDmdtRTR.js.map +1 -0
- package/dist/date-time-range-picker-BotnQ9HS.js +164 -0
- package/dist/date-time-range-picker-BotnQ9HS.js.map +1 -0
- package/dist/date-time-range-picker-eyfOf4v-.cjs +166 -0
- package/dist/date-time-range-picker-eyfOf4v-.cjs.map +1 -0
- package/dist/dialog-B3DNnoZ3.cjs +276 -0
- package/dist/dialog-B3DNnoZ3.cjs.map +1 -0
- package/dist/dialog-C60a4DWO.js +242 -0
- package/dist/dialog-C60a4DWO.js.map +1 -0
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +30 -14
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js.map +1 -1
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +31 -15
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js.map +1 -1
- package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +21 -0
- package/dist/domains/chat/attachments/composer-attachment-list.cjs.js.map +1 -0
- package/dist/domains/chat/attachments/composer-attachment-list.d.ts +2 -0
- package/dist/domains/chat/attachments/composer-attachment-list.es.js +17 -0
- package/dist/domains/chat/attachments/composer-attachment-list.es.js.map +1 -0
- package/dist/domains/chat/attachments/composer-attachment.cjs.js +52 -0
- package/dist/domains/chat/attachments/composer-attachment.cjs.js.map +1 -0
- package/dist/domains/chat/attachments/composer-attachment.d.ts +2 -0
- package/dist/domains/chat/attachments/composer-attachment.es.js +48 -0
- package/dist/domains/chat/attachments/composer-attachment.es.js.map +1 -0
- package/dist/domains/chat/components/badge-wrapper.cjs.js +2 -2
- package/dist/domains/chat/components/badge-wrapper.es.js +2 -2
- package/dist/domains/chat/components/loading-badge.cjs.js +2 -2
- package/dist/domains/chat/components/loading-badge.es.js +2 -2
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +4 -4
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +4 -4
- package/dist/domains/chat/components/section-label.cjs.js +1 -1
- package/dist/domains/chat/components/section-label.es.js +1 -1
- package/dist/domains/chat/messages/notification-signal-notice-variant.cjs.js.map +1 -1
- package/dist/domains/chat/messages/notification-signal-notice-variant.es.js.map +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +8 -20
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js.map +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +9 -21
- package/dist/domains/chat/messages/notification-signal-notice.es.js.map +1 -1
- package/dist/domains/chat/messages/reasoning-content.cjs.js +14 -0
- package/dist/domains/chat/messages/reasoning-content.cjs.js.map +1 -0
- package/dist/domains/chat/messages/reasoning-content.d.ts +2 -0
- package/dist/domains/chat/messages/reasoning-content.es.js +10 -0
- package/dist/domains/chat/messages/reasoning-content.es.js.map +1 -0
- package/dist/domains/chat/messages/reasoning-streaming-line.cjs.js +3 -3
- package/dist/domains/chat/messages/reasoning-streaming-line.cjs.js.map +1 -1
- package/dist/domains/chat/messages/reasoning-streaming-line.es.js +3 -3
- package/dist/domains/chat/messages/reasoning-streaming-line.es.js.map +1 -1
- package/dist/domains/chat/messages/reasoning.cjs.js +30 -14
- package/dist/domains/chat/messages/reasoning.cjs.js.map +1 -1
- package/dist/domains/chat/messages/reasoning.es.js +32 -16
- package/dist/domains/chat/messages/reasoning.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/assistant-text-part-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/assistant-text-part-renderer.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/data-part-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/data-part-renderer.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/in-message-attachment.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/in-message-attachment.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/in-message-attachment.es.js +1 -1
- package/dist/domains/chat/messages/renderers/in-message-attachment.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +4 -4
- package/dist/domains/chat/messages/renderers/message-text.es.js +4 -4
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +3 -8
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +3 -8
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/tool-part.cjs.js +12 -2
- package/dist/domains/chat/messages/renderers/tool-part.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/tool-part.es.js +12 -2
- package/dist/domains/chat/messages/renderers/tool-part.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/user-file-part-renderer.cjs.js +2 -1
- package/dist/domains/chat/messages/renderers/user-file-part-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/user-file-part-renderer.es.js +2 -1
- package/dist/domains/chat/messages/renderers/user-file-part-renderer.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/user-text-part-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/user-text-part-renderer.es.js.map +1 -1
- package/dist/domains/chat/messages/signal-badge.cjs.js +3 -19
- package/dist/domains/chat/messages/signal-badge.cjs.js.map +1 -1
- package/dist/domains/chat/messages/signal-badge.es.js +4 -20
- package/dist/domains/chat/messages/signal-badge.es.js.map +1 -1
- package/dist/domains/chat/messages/tripwire-notice.cjs.js +2 -2
- package/dist/domains/chat/messages/tripwire-notice.es.js +2 -2
- package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +3 -3
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +3 -3
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +2 -2
- package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js +11 -24
- package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js +11 -24
- package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js.map +1 -1
- package/dist/domains/chat/tools/tool-card-kind.cjs.js +2 -1
- package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js +2 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js.map +1 -1
- package/dist/domains/chat/tools/tool-groups.cjs.js +1 -0
- package/dist/domains/chat/tools/tool-groups.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-groups.es.js +1 -0
- package/dist/domains/chat/tools/tool-groups.es.js.map +1 -1
- package/dist/domains/logs/components/log-details-view.cjs.js +4 -4
- package/dist/domains/logs/components/log-details-view.es.js +4 -4
- package/dist/domains/logs/components/logs-error-content.cjs.js +3 -3
- package/dist/domains/logs/components/logs-error-content.es.js +3 -3
- package/dist/domains/logs/components/logs-layout.cjs.js +1 -1
- package/dist/domains/logs/components/logs-layout.es.js +1 -1
- package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
- package/dist/domains/logs/components/logs-list-view.es.js +2 -2
- package/dist/domains/logs/components/logs-toolbar.cjs.js +2 -2
- package/dist/domains/logs/components/logs-toolbar.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js +2 -2
- package/dist/domains/logs/components/logs-toolbar.es.js.map +1 -1
- package/dist/domains/logs/components/no-logs-info.cjs.js +3 -6
- package/dist/domains/logs/components/no-logs-info.cjs.js.map +1 -1
- package/dist/domains/logs/components/no-logs-info.es.js +3 -6
- package/dist/domains/logs/components/no-logs-info.es.js.map +1 -1
- package/dist/domains/logs/hooks/use-logs-filter-persistence.cjs.js +1 -1
- package/dist/domains/logs/hooks/use-logs-filter-persistence.es.js +1 -1
- package/dist/domains/logs/hooks/use-logs.cjs.js.map +1 -1
- package/dist/domains/logs/hooks/use-logs.es.js.map +1 -1
- package/dist/domains/logs/log-filters.cjs.js.map +1 -1
- package/dist/domains/logs/log-filters.es.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +3 -3
- package/dist/domains/memory/components/memory-studio-panel.es.js +3 -3
- package/dist/domains/memory/components/observation-detail-view.cjs.js +4 -4
- package/dist/domains/memory/components/observation-detail-view.es.js +4 -4
- package/dist/domains/memory/components/thread-context-progress.cjs.js +1 -1
- package/dist/domains/memory/components/thread-context-progress.es.js +1 -1
- package/dist/domains/metrics/components/bar-list.cjs.js +1 -1
- package/dist/domains/metrics/components/bar-list.es.js +1 -1
- package/dist/domains/metrics/components/card-action-buttons.cjs.js +3 -5
- package/dist/domains/metrics/components/card-action-buttons.cjs.js.map +1 -1
- package/dist/domains/metrics/components/card-action-buttons.es.js +3 -5
- package/dist/domains/metrics/components/card-action-buttons.es.js.map +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
- package/dist/domains/metrics/components/latency-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/latency-card-view.es.js +4 -4
- package/dist/domains/metrics/components/memory-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/memory-card-view.es.js +5 -5
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
- package/dist/domains/metrics/components/scores-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/scores-card-view.es.js +5 -5
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +5 -5
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +4 -4
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +5 -5
- package/dist/domains/traces/components/no-traces-info.cjs.js +1 -1
- package/dist/domains/traces/components/no-traces-info.es.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +72 -78
- package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.es.js +72 -78
- package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/span-details-view.cjs.js +31 -8
- package/dist/domains/traces/components/span-details-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-details-view.es.js +31 -8
- package/dist/domains/traces/components/span-details-view.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +38 -0
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-error-renderer.d.ts +2 -0
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +34 -0
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +50 -0
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-input-renderers.d.ts +2 -0
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +46 -0
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +97 -0
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-output-renderers.d.ts +2 -0
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +93 -0
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-attachment.cjs.js +34 -0
- package/dist/domains/traces/components/span-payload/span-payload-attachment.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-attachment.d.ts +2 -0
- package/dist/domains/traces/components/span-payload/span-payload-attachment.es.js +30 -0
- package/dist/domains/traces/components/span-payload/span-payload-attachment.es.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +25 -0
- package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-json.d.ts +2 -0
- package/dist/domains/traces/components/span-payload/span-payload-json.es.js +21 -0
- package/dist/domains/traces/components/span-payload/span-payload-json.es.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +79 -0
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-messages.d.ts +2 -0
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +75 -0
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +18 -0
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-primitives.d.ts +2 -0
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +6 -0
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-registry.cjs.js +14 -0
- package/dist/domains/traces/components/span-payload/span-payload-registry.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-registry.d.ts +2 -0
- package/dist/domains/traces/components/span-payload/span-payload-registry.es.js +9 -0
- package/dist/domains/traces/components/span-payload/span-payload-registry.es.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +73 -0
- package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-section.d.ts +2 -0
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js +69 -0
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +15 -0
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-tool.d.ts +2 -0
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +7 -0
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js.map +1 -0
- package/dist/domains/traces/components/span-payload.cjs.js +20 -0
- package/dist/domains/traces/components/span-payload.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-payload.d.ts +2 -0
- package/dist/domains/traces/components/span-payload.es.js +7 -0
- package/dist/domains/traces/components/span-payload.es.js.map +1 -0
- package/dist/domains/traces/components/span-rows.cjs.js +1 -55
- package/dist/domains/traces/components/span-rows.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-rows.es.js +1 -55
- package/dist/domains/traces/components/span-rows.es.js.map +1 -1
- package/dist/domains/traces/components/span-summary-description.cjs.js +7 -46
- package/dist/domains/traces/components/span-summary-description.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +8 -47
- package/dist/domains/traces/components/span-summary-description.es.js.map +1 -1
- package/dist/domains/traces/components/span-timeline-row.cjs.js +139 -0
- package/dist/domains/traces/components/span-timeline-row.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-timeline-row.d.ts +2 -0
- package/dist/domains/traces/components/span-timeline-row.es.js +135 -0
- package/dist/domains/traces/components/span-timeline-row.es.js.map +1 -0
- package/dist/domains/traces/components/span-timing-hover-card.cjs.js +3 -3
- package/dist/domains/traces/components/span-timing-hover-card.es.js +3 -3
- package/dist/domains/traces/components/span-token-usage.cjs.js +2 -2
- package/dist/domains/traces/components/span-token-usage.es.js +2 -2
- package/dist/domains/traces/components/span-tree-row.cjs.js +3 -20
- package/dist/domains/traces/components/span-tree-row.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-tree-row.es.js +3 -20
- package/dist/domains/traces/components/span-tree-row.es.js.map +1 -1
- package/dist/domains/traces/components/span-type-legend.cjs.js +12 -6
- package/dist/domains/traces/components/span-type-legend.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-type-legend.es.js +14 -7
- package/dist/domains/traces/components/span-type-legend.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-context.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-context.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +16 -30
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +17 -28
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +41 -9
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +38 -10
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-rail.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-rail.es.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js +17 -6
- package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +17 -6
- package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row-context.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row-context.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +14 -14
- package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +14 -14
- package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js +29 -9
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js +29 -9
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +70 -0
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js.map +1 -0
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.d.ts +2 -0
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +66 -0
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js.map +1 -0
- package/dist/domains/traces/components/thread-trace.cjs.js +7 -6
- package/dist/domains/traces/components/thread-trace.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace.es.js +9 -8
- package/dist/domains/traces/components/thread-trace.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-name-col.cjs.js +51 -22
- package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-name-col.es.js +51 -22
- package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-structure-sign.cjs.js +2 -2
- package/dist/domains/traces/components/timeline-structure-sign.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-structure-sign.es.js +2 -2
- package/dist/domains/traces/components/timeline-structure-sign.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-timing-col.cjs.js +2 -2
- package/dist/domains/traces/components/timeline-timing-col.es.js +2 -2
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +6 -6
- package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +6 -6
- package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +199 -163
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +202 -166
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-details-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-details-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-id-button.cjs.js +2 -16
- package/dist/domains/traces/components/trace-id-button.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-id-button.es.js +3 -17
- package/dist/domains/traces/components/trace-id-button.es.js.map +1 -1
- package/dist/domains/traces/components/trace-keys-and-values.cjs.js +2 -2
- package/dist/domains/traces/components/trace-keys-and-values.es.js +2 -2
- package/dist/domains/traces/components/trace-span-timeline.cjs.js +10 -16
- package/dist/domains/traces/components/trace-span-timeline.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-timeline.es.js +10 -16
- package/dist/domains/traces/components/trace-span-timeline.es.js.map +1 -1
- package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js +40 -0
- package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-span-tree-skeleton.d.ts +2 -0
- package/dist/domains/traces/components/trace-span-tree-skeleton.es.js +36 -0
- package/dist/domains/traces/components/trace-span-tree-skeleton.es.js.map +1 -0
- package/dist/domains/traces/components/trace-span-tree.cjs.js +30 -31
- package/dist/domains/traces/components/trace-span-tree.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-tree.es.js +30 -31
- package/dist/domains/traces/components/trace-span-tree.es.js.map +1 -1
- package/dist/domains/traces/components/trace-status-value.cjs.js +1 -1
- package/dist/domains/traces/components/trace-status-value.es.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +21 -75
- package/dist/domains/traces/components/trace-summary-description.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +22 -76
- package/dist/domains/traces/components/trace-summary-description.es.js.map +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js +74 -0
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-time-range-chip.d.ts +2 -0
- package/dist/domains/traces/components/trace-time-range-chip.es.js +67 -0
- package/dist/domains/traces/components/trace-time-range-chip.es.js.map +1 -0
- package/dist/domains/traces/components/traces-error-content.cjs.js +2 -2
- package/dist/domains/traces/components/traces-error-content.es.js +2 -2
- package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +2 -2
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js +2 -2
- package/dist/domains/traces/components/traces-list-view-adapter.cjs.js +24 -0
- package/dist/domains/traces/components/traces-list-view-adapter.cjs.js.map +1 -0
- package/dist/domains/traces/components/traces-list-view-adapter.d.ts +2 -0
- package/dist/domains/traces/components/traces-list-view-adapter.es.js +20 -0
- package/dist/domains/traces/components/traces-list-view-adapter.es.js.map +1 -0
- package/dist/domains/traces/components/traces-list-view.cjs.js +4 -4
- package/dist/domains/traces/components/traces-list-view.es.js +4 -4
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +33 -0
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -0
- package/dist/domains/traces/components/traces-page-skeleton.d.ts +2 -0
- package/dist/domains/traces/components/traces-page-skeleton.es.js +29 -0
- package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -0
- package/dist/domains/traces/components.cjs.js +17 -11
- package/dist/domains/traces/components.cjs.js.map +1 -1
- package/dist/domains/traces/components.es.js +9 -6
- package/dist/domains/traces/components.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-download-trace-json.cjs.js +1 -1
- package/dist/domains/traces/hooks/use-download-trace-json.es.js +1 -1
- package/dist/domains/traces/hooks/use-span-detail.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-span-detail.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-metadata-filter-fields.cjs.js +70 -0
- package/dist/domains/traces/hooks/use-trace-metadata-filter-fields.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-metadata-filter-fields.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-metadata-filter-fields.es.js +65 -0
- package/dist/domains/traces/hooks/use-trace-metadata-filter-fields.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-query.cjs.js +90 -0
- package/dist/domains/traces/hooks/use-trace-query.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-query.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-query.es.js +83 -0
- package/dist/domains/traces/hooks/use-trace-query.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-span-navigation.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-span-navigation.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-spans.cjs.js +2 -1
- package/dist/domains/traces/hooks/use-trace-spans.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-spans.es.js +3 -2
- package/dist/domains/traces/hooks/use-trace-spans.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-url-state.cjs.js +42 -2
- package/dist/domains/traces/hooks/use-trace-url-state.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-url-state.es.js +42 -2
- package/dist/domains/traces/hooks/use-trace-url-state.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-traces.cjs.js +9 -7
- package/dist/domains/traces/hooks/use-traces.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-traces.es.js +9 -7
- package/dist/domains/traces/hooks/use-traces.es.js.map +1 -1
- package/dist/domains/traces/hooks.cjs.js +4 -0
- package/dist/domains/traces/hooks.cjs.js.map +1 -1
- package/dist/domains/traces/hooks.es.js +2 -0
- package/dist/domains/traces/hooks.es.js.map +1 -1
- package/dist/domains/traces/trace-filters.cjs.js +151 -88
- package/dist/domains/traces/trace-filters.cjs.js.map +1 -1
- package/dist/domains/traces/trace-filters.es.js +141 -87
- package/dist/domains/traces/trace-filters.es.js.map +1 -1
- package/dist/domains/traces/trace-query-filters.cjs.js +80 -0
- package/dist/domains/traces/trace-query-filters.cjs.js.map +1 -0
- package/dist/domains/traces/trace-query-filters.d.ts +2 -0
- package/dist/domains/traces/trace-query-filters.es.js +73 -0
- package/dist/domains/traces/trace-query-filters.es.js.map +1 -0
- package/dist/domains/traces/types.cjs.js.map +1 -1
- package/dist/domains/traces/types.es.js.map +1 -1
- package/dist/domains/traces/utils/filter-spans-keeping-ancestors.cjs.js.map +1 -1
- package/dist/domains/traces/utils/filter-spans-keeping-ancestors.es.js.map +1 -1
- package/dist/domains/traces/utils/span-utils.cjs.js.map +1 -1
- package/dist/domains/traces/utils/span-utils.es.js.map +1 -1
- package/dist/domains/traces/utils/to-searchable-spans.cjs.js.map +1 -1
- package/dist/domains/traces/utils/to-searchable-spans.es.js.map +1 -1
- package/dist/domains/traces.cjs.js +37 -13
- package/dist/domains/traces.cjs.js.map +1 -1
- package/dist/domains/traces.es.js +13 -7
- package/dist/domains/traces.es.js.map +1 -1
- package/dist/drawer-CEufBgtb.cjs +367 -0
- package/dist/drawer-CEufBgtb.cjs.map +1 -0
- package/dist/drawer-DgGxK4oq.js +327 -0
- package/dist/drawer-DgGxK4oq.js.map +1 -0
- package/dist/dropdown-menu-B3nTlFnz.js +222 -0
- package/dist/dropdown-menu-B3nTlFnz.js.map +1 -0
- package/dist/dropdown-menu-DfX8T0jb.cjs +243 -0
- package/dist/dropdown-menu-DfX8T0jb.cjs.map +1 -0
- package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +3 -3
- package/dist/ee/signals/components/entity-index-compact-grid.es.js +3 -3
- package/dist/ee/signals/components/entity-index-list.cjs.js +4 -2
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +4 -2
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.cjs.js +11 -7
- package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.es.js +11 -7
- package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +2 -2
- package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +2 -2
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +13 -11
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +11 -9
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/signals/examples-pager.cjs.js +1 -1
- package/dist/ee/signals/examples-pager.es.js +1 -1
- package/dist/ee/signals/flow-card.cjs.js +2 -2
- package/dist/ee/signals/flow-card.es.js +2 -2
- package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
- package/dist/ee/signals/noise-detail-panel.es.js +1 -1
- package/dist/ee/signals/sankey-signals.cjs.js +1 -1
- package/dist/ee/signals/sankey-signals.es.js +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +8 -8
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js.map +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +8 -8
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js.map +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +5 -5
- package/dist/ee/signals/settings/trace-signal-settings.es.js +5 -5
- package/dist/ee/signals/signal-delta-column.cjs.js +1 -1
- package/dist/ee/signals/signal-delta-column.es.js +1 -1
- package/dist/ee/signals/signal-lifelines.cjs.js +1 -1
- package/dist/ee/signals/signal-lifelines.es.js +1 -1
- package/dist/ee/signals/signals-error-state.cjs.js +1 -1
- package/dist/ee/signals/signals-error-state.es.js +1 -1
- package/dist/ee/signals/signals-loading-skeleton.cjs.js +1 -1
- package/dist/ee/signals/signals-loading-skeleton.es.js +1 -1
- package/dist/ee/signals/snapshot-timeline.cjs.js +1 -1
- package/dist/ee/signals/snapshot-timeline.es.js +1 -1
- package/dist/ee/signals/sortable-signal-headers.cjs.js +1 -1
- package/dist/ee/signals/sortable-signal-headers.es.js +1 -1
- package/dist/ee/signals/theme-detail-panel.cjs.js +2 -2
- package/dist/ee/signals/theme-detail-panel.es.js +2 -2
- package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
- package/dist/ee/signals/theme-filter-banner.es.js +1 -1
- package/dist/ee/signals/theme-trend-chart.cjs.js +1 -1
- package/dist/ee/signals/theme-trend-chart.es.js +1 -1
- package/dist/ee/signals/trace-insight-view.cjs.js +11 -2
- package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.es.js +11 -2
- package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.es.js +1 -1
- package/dist/ee/signals/view-mode-tab.cjs.js +2 -2
- package/dist/ee/signals/view-mode-tab.es.js +2 -2
- package/dist/ee/topics/components/topic-trace-details-panel.cjs.js +1 -2
- package/dist/ee/topics/components/topic-trace-details-panel.cjs.js.map +1 -1
- package/dist/ee/topics/components/topic-trace-details-panel.es.js +1 -2
- package/dist/ee/topics/components/topic-trace-details-panel.es.js.map +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +3 -3
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
- package/dist/field-block-An2PO2_X.cjs +93 -0
- package/dist/field-block-An2PO2_X.cjs.map +1 -0
- package/dist/field-block-CQkD13nw.js +91 -0
- package/dist/field-block-CQkD13nw.js.map +1 -0
- package/dist/field-error-id-B3Z2Zu5y.cjs +6 -0
- package/dist/field-error-id-B3Z2Zu5y.cjs.map +1 -0
- package/dist/field-error-id-D3yg1nBh.js +4 -0
- package/dist/field-error-id-D3yg1nBh.js.map +1 -0
- package/dist/filter-bar-chip-BR7Xnpeo.cjs +868 -0
- package/dist/filter-bar-chip-BR7Xnpeo.cjs.map +1 -0
- package/dist/filter-bar-chip-DyITaBNj.js +853 -0
- package/dist/filter-bar-chip-DyITaBNj.js.map +1 -0
- package/dist/hooks/use-copy-to-clipboard.cjs.js +1 -1
- package/dist/hooks/use-copy-to-clipboard.es.js +1 -1
- package/dist/hooks/use-fluid-hover.cjs.js +297 -0
- package/dist/hooks/use-fluid-hover.cjs.js.map +1 -0
- package/dist/hooks/use-fluid-hover.d.ts +2 -0
- package/dist/hooks/use-fluid-hover.es.js +289 -0
- package/dist/hooks/use-fluid-hover.es.js.map +1 -0
- package/dist/hooks/use-local-storage-state.cjs.js +49 -0
- package/dist/hooks/use-local-storage-state.cjs.js.map +1 -1
- package/dist/hooks/use-local-storage-state.es.js +50 -2
- package/dist/hooks/use-local-storage-state.es.js.map +1 -1
- package/dist/horizontal-bars-D1992rbt.cjs +141 -0
- package/dist/horizontal-bars-D1992rbt.cjs.map +1 -0
- package/dist/horizontal-bars-lhqUch51.js +139 -0
- package/dist/horizontal-bars-lhqUch51.js.map +1 -0
- package/dist/hover-card-BSj1EgQs.cjs +91 -0
- package/dist/hover-card-BSj1EgQs.cjs.map +1 -0
- package/dist/hover-card-Cmh0QRP8.js +68 -0
- package/dist/hover-card-Cmh0QRP8.js.map +1 -0
- package/dist/icons/Icon.cjs.js +5 -4
- package/dist/icons/Icon.cjs.js.map +1 -1
- package/dist/icons/Icon.es.js +5 -4
- package/dist/icons/Icon.es.js.map +1 -1
- package/dist/index-Cp3ZQQze.js +45 -0
- package/dist/index-Cp3ZQQze.js.map +1 -0
- package/dist/index-gbqoNdVM.cjs +47 -0
- package/dist/index-gbqoNdVM.cjs.map +1 -0
- package/dist/input-XEcMP_LL.cjs +99 -0
- package/dist/input-XEcMP_LL.cjs.map +1 -0
- package/dist/input-group-D_1g2L_v.cjs +243 -0
- package/dist/input-group-D_1g2L_v.cjs.map +1 -0
- package/dist/input-group-rn0r72y5.js +217 -0
- package/dist/input-group-rn0r72y5.js.map +1 -0
- package/dist/input-kU7nI6V5.js +78 -0
- package/dist/input-kU7nI6V5.js.map +1 -0
- package/dist/kbd-DjjBBIZN.cjs +34 -0
- package/dist/kbd-DjjBBIZN.cjs.map +1 -0
- package/dist/kbd-H5Qu573u.js +32 -0
- package/dist/kbd-H5Qu573u.js.map +1 -0
- package/dist/label-DxQoIwES.cjs +34 -0
- package/dist/label-DxQoIwES.cjs.map +1 -0
- package/dist/label-NULyP-1Q.js +13 -0
- package/dist/label-NULyP-1Q.js.map +1 -0
- package/dist/layout/tabbed-container.cjs.js +10 -11
- package/dist/layout/tabbed-container.cjs.js.map +1 -1
- package/dist/layout/tabbed-container.es.js +9 -10
- package/dist/layout/tabbed-container.es.js.map +1 -1
- package/dist/lib/springs.cjs.js +32 -0
- package/dist/lib/springs.cjs.js.map +1 -0
- package/dist/lib/springs.d.ts +2 -0
- package/dist/lib/springs.es.js +27 -0
- package/dist/lib/springs.es.js.map +1 -0
- package/dist/list-search-Cg5Y90E8.js +71 -0
- package/dist/list-search-Cg5Y90E8.js.map +1 -0
- package/dist/list-search-DISXdbOP.cjs +73 -0
- package/dist/list-search-DISXdbOP.cjs.map +1 -0
- package/dist/logs-data-list-B1FY1A2A.cjs +82 -0
- package/dist/logs-data-list-B1FY1A2A.cjs.map +1 -0
- package/dist/logs-data-list-DZz_YVd2.js +80 -0
- package/dist/logs-data-list-DZz_YVd2.js.map +1 -0
- package/dist/main-sidebar-BxC9yo3t.cjs +900 -0
- package/dist/main-sidebar-BxC9yo3t.cjs.map +1 -0
- package/dist/main-sidebar-D9QEbGX4.js +882 -0
- package/dist/main-sidebar-D9QEbGX4.js.map +1 -0
- package/dist/markdown-renderer-CUQHtRlL.cjs +410 -0
- package/dist/markdown-renderer-CUQHtRlL.cjs.map +1 -0
- package/dist/markdown-renderer-SVeQ5Uo_.js +408 -0
- package/dist/markdown-renderer-SVeQ5Uo_.js.map +1 -0
- package/dist/message-B-28p4Zs.cjs +66 -0
- package/dist/message-B-28p4Zs.cjs.map +1 -0
- package/dist/message-DGZPjxsh.js +62 -0
- package/dist/message-DGZPjxsh.js.map +1 -0
- package/dist/message-scroller-SYgTcpaD.cjs +857 -0
- package/dist/message-scroller-SYgTcpaD.cjs.map +1 -0
- package/dist/message-scroller-ViAipPK4.js +831 -0
- package/dist/message-scroller-ViAipPK4.js.map +1 -0
- package/dist/metrics-card-CM9jj-UN.cjs +95 -0
- package/dist/metrics-card-CM9jj-UN.cjs.map +1 -0
- package/dist/metrics-card-ClpFsCSt.js +93 -0
- package/dist/metrics-card-ClpFsCSt.js.map +1 -0
- package/dist/metrics-kpi-card-CoVZRI52.cjs +79 -0
- package/dist/metrics-kpi-card-CoVZRI52.cjs.map +1 -0
- package/dist/metrics-kpi-card-D-ct3JAY.js +77 -0
- package/dist/metrics-kpi-card-D-ct3JAY.js.map +1 -0
- package/dist/new/layout/app-shell.cjs.js +2 -12
- package/dist/new/layout/app-shell.cjs.js.map +1 -1
- package/dist/new/layout/app-shell.es.js +2 -12
- package/dist/new/layout/app-shell.es.js.map +1 -1
- package/dist/new/layout/page-header.cjs.js +1 -1
- package/dist/new/layout/page-header.es.js +1 -1
- package/dist/new/layout/page-shell.cjs.js +34 -0
- package/dist/new/layout/page-shell.cjs.js.map +1 -0
- package/dist/new/layout/page-shell.d.ts +2 -0
- package/dist/new/layout/page-shell.es.js +30 -0
- package/dist/new/layout/page-shell.es.js.map +1 -0
- package/dist/new/settings.cjs.js +20 -10
- package/dist/new/settings.cjs.js.map +1 -1
- package/dist/new/settings.es.js +20 -10
- package/dist/new/settings.es.js.map +1 -1
- package/dist/new/sidebar.cjs.js +675 -0
- package/dist/new/sidebar.cjs.js.map +1 -0
- package/dist/new/sidebar.d.ts +2 -0
- package/dist/new/sidebar.es.js +655 -0
- package/dist/new/sidebar.es.js.map +1 -0
- package/dist/new-theme.css +39 -0
- package/dist/no-data-page-layout-COzOm-mS.js +9 -0
- package/dist/no-data-page-layout-COzOm-mS.js.map +1 -0
- package/dist/no-data-page-layout-yCjhZq99.cjs +11 -0
- package/dist/no-data-page-layout-yCjhZq99.cjs.map +1 -0
- package/dist/page-header-DyAd0Uof.cjs +125 -0
- package/dist/page-header-DyAd0Uof.cjs.map +1 -0
- package/dist/page-header-DymTqQgq.js +123 -0
- package/dist/page-header-DymTqQgq.js.map +1 -0
- package/dist/page-layout-B_JUSRkD.js +97 -0
- package/dist/page-layout-B_JUSRkD.js.map +1 -0
- package/dist/page-layout-DXFMbJi3.cjs +99 -0
- package/dist/page-layout-DXFMbJi3.cjs.map +1 -0
- package/dist/popover-CGB4qBAn.cjs +121 -0
- package/dist/popover-CGB4qBAn.cjs.map +1 -0
- package/dist/popover-lj-OpKKH.js +97 -0
- package/dist/popover-lj-OpKKH.js.map +1 -0
- package/dist/primitives/control-size.cjs.js +11 -3
- package/dist/primitives/control-size.cjs.js.map +1 -1
- package/dist/primitives/control-size.es.js +11 -4
- package/dist/primitives/control-size.es.js.map +1 -1
- package/dist/primitives/fluid-menu.cjs.js +120 -0
- package/dist/primitives/fluid-menu.cjs.js.map +1 -0
- package/dist/primitives/fluid-menu.d.ts +2 -0
- package/dist/primitives/fluid-menu.es.js +95 -0
- package/dist/primitives/fluid-menu.es.js.map +1 -0
- package/dist/primitives/form-element.cjs.js +17 -7
- package/dist/primitives/form-element.cjs.js.map +1 -1
- package/dist/primitives/form-element.es.js +14 -8
- package/dist/primitives/form-element.es.js.map +1 -1
- package/dist/primitives/menu-item.cjs.js +16 -14
- package/dist/primitives/menu-item.cjs.js.map +1 -1
- package/dist/primitives/menu-item.es.js +16 -14
- package/dist/primitives/menu-item.es.js.map +1 -1
- package/dist/primitives/resize-handle-indicator.cjs.js +4 -4
- package/dist/primitives/resize-handle-indicator.cjs.js.map +1 -1
- package/dist/primitives/resize-handle-indicator.es.js +4 -4
- package/dist/primitives/resize-handle-indicator.es.js.map +1 -1
- package/dist/primitives/transitions.cjs.js +1 -1
- package/dist/primitives/transitions.cjs.js.map +1 -1
- package/dist/primitives/transitions.es.js +1 -1
- package/dist/primitives/transitions.es.js.map +1 -1
- package/dist/primitives/trigger-button.cjs.js +2 -2
- package/dist/primitives/trigger-button.es.js +2 -2
- package/dist/property-filter-applied-CZu-Jwsx.js +344 -0
- package/dist/property-filter-applied-CZu-Jwsx.js.map +1 -0
- package/dist/property-filter-applied-DZz8aSoU.cjs +348 -0
- package/dist/property-filter-applied-DZz8aSoU.cjs.map +1 -0
- package/dist/resize/collapsible-panel.cjs.js +3 -3
- package/dist/resize/collapsible-panel.es.js +3 -3
- package/dist/resize/panel-drawer.cjs.js +2 -2
- package/dist/resize/panel-drawer.es.js +2 -2
- package/dist/resize/panel-group.cjs.js +1 -1
- package/dist/resize/panel-group.es.js +1 -1
- package/dist/resize/panel-icon-button.cjs.js +1 -1
- package/dist/resize/panel-icon-button.es.js +1 -1
- package/dist/resize/separator.cjs.js +5 -3
- package/dist/resize/separator.cjs.js.map +1 -1
- package/dist/resize/separator.es.js +5 -3
- package/dist/resize/separator.es.js.map +1 -1
- package/dist/sankey-chart-GiDY0WBV.js +916 -0
- package/dist/sankey-chart-GiDY0WBV.js.map +1 -0
- package/dist/sankey-chart-QibH6Vg1.cjs +926 -0
- package/dist/sankey-chart-QibH6Vg1.cjs.map +1 -0
- package/dist/scroll-area-ByrWkkO_.js +223 -0
- package/dist/scroll-area-ByrWkkO_.js.map +1 -0
- package/dist/scroll-area-l6Yx-88I.cjs +245 -0
- package/dist/scroll-area-l6Yx-88I.cjs.map +1 -0
- package/dist/search-field-block-jfMFV7AD.cjs +125 -0
- package/dist/search-field-block-jfMFV7AD.cjs.map +1 -0
- package/dist/search-field-block-zF_99MJ5.js +123 -0
- package/dist/search-field-block-zF_99MJ5.js.map +1 -0
- package/dist/section-DOZSptHn.cjs +115 -0
- package/dist/section-DOZSptHn.cjs.map +1 -0
- package/dist/section-fFFmNxVc.js +111 -0
- package/dist/section-fFFmNxVc.js.map +1 -0
- package/dist/select-31jx2l9F.cjs +164 -0
- package/dist/select-31jx2l9F.cjs.map +1 -0
- package/dist/select-bphXR9c4.js +138 -0
- package/dist/select-bphXR9c4.js.map +1 -0
- package/dist/select-field-block-BAZKc6ck.cjs +59 -0
- package/dist/select-field-block-BAZKc6ck.cjs.map +1 -0
- package/dist/select-field-block-BEs3cCRJ.js +57 -0
- package/dist/select-field-block-BEs3cCRJ.js.map +1 -0
- package/dist/settings-container-B5YhEzjS.js +27 -0
- package/dist/settings-container-B5YhEzjS.js.map +1 -0
- package/dist/settings-container-Dxb59YvM.cjs +30 -0
- package/dist/settings-container-Dxb59YvM.cjs.map +1 -0
- package/dist/settings-layout-CTnDZ_fr.js +55 -0
- package/dist/settings-layout-CTnDZ_fr.js.map +1 -0
- package/dist/settings-layout-DRrl-EBq.cjs +57 -0
- package/dist/settings-layout-DRrl-EBq.cjs.map +1 -0
- package/dist/settings-row-Dsu9uRdl.cjs +88 -0
- package/dist/settings-row-Dsu9uRdl.cjs.map +1 -0
- package/dist/settings-row-PB5zne3m.js +85 -0
- package/dist/settings-row-PB5zne3m.js.map +1 -0
- package/dist/shimmer-CmCazK2A.cjs +25 -0
- package/dist/shimmer-CmCazK2A.cjs.map +1 -0
- package/dist/shimmer-rej-NkeN.js +23 -0
- package/dist/shimmer-rej-NkeN.js.map +1 -0
- package/dist/skeleton-BpMg6F4M.js +23 -0
- package/dist/skeleton-BpMg6F4M.js.map +1 -0
- package/dist/skeleton-gdUQjWPU.cjs +25 -0
- package/dist/skeleton-gdUQjWPU.cjs.map +1 -0
- package/dist/slider-DXQNsGXe.js +95 -0
- package/dist/slider-DXQNsGXe.js.map +1 -0
- package/dist/slider-Kco52AqT.cjs +97 -0
- package/dist/slider-Kco52AqT.cjs.map +1 -0
- package/dist/spacings-C8KU7k6E.cjs +182 -0
- package/dist/spacings-C8KU7k6E.cjs.map +1 -0
- package/dist/spacings-Doib6y6Q.js +174 -0
- package/dist/spacings-Doib6y6Q.js.map +1 -0
- package/dist/span-payload-primitives-DknOcv6v.cjs +75 -0
- package/dist/span-payload-primitives-DknOcv6v.cjs.map +1 -0
- package/dist/span-payload-primitives-_TUMqise.js +68 -0
- package/dist/span-payload-primitives-_TUMqise.js.map +1 -0
- package/dist/spinner-SvnJqdcS.js +51 -0
- package/dist/spinner-SvnJqdcS.js.map +1 -0
- package/dist/spinner-cX-ypfV2.cjs +53 -0
- package/dist/spinner-cX-ypfV2.cjs.map +1 -0
- package/dist/src/components/fluid-hover-highlight.d.ts +60 -0
- package/dist/src/domains/chat/attachments/attachment-preview-dialog.d.ts +2 -10
- package/dist/src/domains/chat/attachments/composer-attachment-list.d.ts +3 -0
- package/dist/src/domains/chat/attachments/composer-attachment.d.ts +8 -0
- package/dist/src/domains/chat/messages/notification-signal-notice-variant.d.ts +1 -2
- package/dist/src/domains/chat/messages/reasoning-content.d.ts +3 -0
- package/dist/src/domains/chat/messages/reasoning-streaming-line.d.ts +0 -5
- package/dist/src/domains/chat/messages/reasoning.d.ts +2 -1
- package/dist/src/domains/chat/messages/renderers/assistant-text-part-renderer.d.ts +1 -1
- package/dist/src/domains/chat/messages/renderers/data-part-renderer.d.ts +1 -1
- package/dist/src/domains/chat/messages/renderers/in-message-attachment.d.ts +0 -5
- package/dist/src/domains/chat/messages/renderers/reasoning-part-renderer.d.ts +2 -14
- package/dist/src/domains/chat/messages/renderers/status-renderers.d.ts +1 -1
- package/dist/src/domains/chat/messages/renderers/tool-part.d.ts +3 -1
- package/dist/src/domains/chat/messages/renderers/user-file-part-renderer.d.ts +1 -8
- package/dist/src/domains/chat/messages/renderers/user-text-part-renderer.d.ts +1 -1
- package/dist/src/domains/chat/stories/attachments.stories.d.ts +1 -0
- package/dist/src/domains/chat/stories/composer-attachments.stories.d.ts +18 -0
- package/dist/src/domains/chat/stories/reasoning.stories.d.ts +2 -1
- package/dist/src/domains/chat/tools/tool-groups.d.ts +1 -1
- package/dist/src/domains/logs/hooks/use-logs.d.ts +2 -1
- package/dist/src/domains/logs/log-filters.d.ts +2 -1
- package/dist/src/domains/metrics/hooks/use-active-resources-kpi-metrics.d.ts +6 -6
- package/dist/src/domains/metrics/hooks/use-active-threads-kpi-metrics.d.ts +6 -6
- package/dist/src/domains/metrics/hooks/use-agent-runs-kpi-metrics.d.ts +6 -6
- package/dist/src/domains/traces/components/index.d.ts +3 -5
- package/dist/src/domains/traces/components/span-data-panel-view.d.ts +2 -3
- package/dist/src/domains/traces/components/span-details-view.d.ts +1 -1
- package/dist/src/domains/traces/components/span-payload/index.d.ts +7 -0
- package/dist/src/domains/traces/components/span-payload/span-error-renderer.d.ts +7 -0
- package/dist/src/domains/traces/components/span-payload/span-input-renderers.d.ts +6 -0
- package/dist/src/domains/traces/components/span-payload/span-output-renderers.d.ts +6 -0
- package/dist/src/domains/traces/components/span-payload/span-payload-attachment.d.ts +3 -0
- package/dist/src/domains/traces/components/span-payload/span-payload-json.d.ts +6 -0
- package/dist/src/domains/traces/components/span-payload/span-payload-messages.d.ts +6 -0
- package/dist/src/domains/traces/components/span-payload/span-payload-primitives.d.ts +22 -0
- package/dist/src/domains/traces/components/span-payload/span-payload-registry.d.ts +31 -0
- package/dist/src/domains/traces/components/span-payload/span-payload-section.d.ts +24 -0
- package/dist/src/domains/traces/components/span-payload/span-payload-tool.d.ts +4 -0
- package/dist/src/domains/traces/components/span-payload/span-payload.stories.d.ts +23 -0
- package/dist/src/domains/traces/components/span-rows.d.ts +0 -8
- package/dist/src/domains/traces/components/span-summary-description.d.ts +1 -2
- package/dist/src/domains/traces/components/span-timeline-row.d.ts +10 -0
- package/dist/src/domains/traces/components/span-tree-row.d.ts +5 -3
- package/dist/src/domains/traces/components/span-type-legend.d.ts +4 -2
- package/dist/src/domains/traces/components/thread-trace/index.d.ts +23 -17
- package/dist/src/domains/traces/components/thread-trace/thread-trace-context.d.ts +1 -1
- package/dist/src/domains/traces/components/thread-trace/thread-trace-details.d.ts +7 -18
- package/dist/src/domains/traces/components/thread-trace/thread-trace-messages.d.ts +24 -2
- package/dist/src/domains/traces/components/thread-trace/thread-trace-root.d.ts +4 -1
- package/dist/src/domains/traces/components/thread-trace/thread-trace-row-context.d.ts +2 -3
- package/dist/src/domains/traces/components/thread-trace/thread-trace-row.d.ts +2 -4
- package/dist/src/domains/traces/components/thread-trace/thread-trace-span-panel.d.ts +5 -2
- package/dist/src/domains/traces/components/thread-trace/thread-trace-spans.d.ts +12 -0
- package/dist/src/domains/traces/components/timeline-name-col.d.ts +6 -1
- package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +24 -13
- package/dist/src/domains/traces/components/trace-details-view.d.ts +1 -1
- package/dist/src/domains/traces/components/trace-span-timeline.d.ts +6 -5
- package/dist/src/domains/traces/components/trace-span-tree-skeleton.d.ts +11 -0
- package/dist/src/domains/traces/components/trace-span-tree.d.ts +2 -2
- package/dist/src/domains/traces/components/trace-summary-description.d.ts +1 -2
- package/dist/src/domains/traces/components/trace-time-range-chip.d.ts +17 -0
- package/dist/src/domains/traces/components/traces-list-view-adapter.d.ts +3 -0
- package/dist/src/domains/traces/components/traces-page-skeleton.d.ts +9 -0
- package/dist/src/domains/traces/hooks/index.d.ts +2 -0
- package/dist/src/domains/traces/hooks/use-span-detail.d.ts +4 -7
- package/dist/src/domains/traces/hooks/use-trace-metadata-filter-fields.d.ts +25 -0
- package/dist/src/domains/traces/hooks/use-trace-query.d.ts +38 -0
- package/dist/src/domains/traces/hooks/use-trace-span-navigation.d.ts +1 -1
- package/dist/src/domains/traces/hooks/use-trace-spans.d.ts +188 -150
- package/dist/src/domains/traces/hooks/use-trace-url-state.d.ts +7 -0
- package/dist/src/domains/traces/hooks/use-traces.d.ts +7 -1
- package/dist/src/domains/traces/index.d.ts +1 -0
- package/dist/src/domains/traces/trace-filters.d.ts +32 -17
- package/dist/src/domains/traces/trace-query-filters.d.ts +17 -0
- package/dist/src/domains/traces/types.d.ts +6 -1
- package/dist/src/domains/traces/utils/filter-spans-keeping-ancestors.d.ts +1 -1
- package/dist/src/domains/traces/utils/span-utils.d.ts +1 -1
- package/dist/src/domains/traces/utils/to-searchable-spans.d.ts +4 -3
- package/dist/src/ds/components/Activity/activity.d.ts +10 -0
- package/dist/src/ds/components/Activity/activity.stories.d.ts +20 -0
- package/dist/src/ds/components/Activity/index.d.ts +1 -0
- package/dist/src/ds/components/Button/Button.d.ts +12 -7
- package/dist/src/ds/components/Button/CreateButton.d.ts +1 -1
- package/dist/src/ds/components/Collapsible/collapsible.d.ts +2 -0
- package/dist/src/ds/components/Collapsible/collapsible.stories.d.ts +1 -0
- package/dist/src/ds/components/Combobox/combobox-styles.d.ts +10 -8
- package/dist/src/ds/components/Composer/composer.d.ts +8 -7
- package/dist/src/ds/components/Composer/composer.stories.d.ts +7 -1
- package/dist/src/ds/components/Composer/index.d.ts +2 -2
- package/dist/src/ds/components/Composer/use-composer-pointer.d.ts +9 -0
- package/dist/src/ds/components/DataCodeSection/data-code-section.d.ts +3 -1
- package/dist/src/ds/components/DataDetailsPanel/data-details-panel-code-section.d.ts +3 -1
- package/dist/src/ds/components/DataPanel/data-panel-close-button.d.ts +10 -1
- package/dist/src/ds/components/DataPanel/data-panel-content.d.ts +3 -1
- package/dist/src/ds/components/DataPanel/data-panel-copy-id.d.ts +9 -0
- package/dist/src/ds/components/DataPanel/data-panel-header-actions.d.ts +8 -0
- package/dist/src/ds/components/DataPanel/data-panel-header-content.d.ts +8 -0
- package/dist/src/ds/components/DataPanel/data-panel-metadata.d.ts +18 -0
- package/dist/src/ds/components/DataPanel/data-panel-next-prev-nav.d.ts +4 -1
- package/dist/src/ds/components/DataPanel/data-panel-root.d.ts +24 -2
- package/dist/src/ds/components/DataPanel/data-panel.d.ts +9 -0
- package/dist/src/ds/components/DataPanel/data-panel.stories.d.ts +4 -1
- package/dist/src/ds/components/DataPanel/index.d.ts +4 -0
- package/dist/src/ds/components/DateTimeRangePicker/date-time-range-picker.d.ts +15 -1
- package/dist/src/ds/components/FilterBar/default-operators.d.ts +3 -0
- package/dist/src/ds/components/FilterBar/filter-bar-chip.d.ts +35 -0
- package/dist/src/ds/components/FilterBar/filter-bar-clear.d.ts +4 -0
- package/dist/src/ds/components/FilterBar/filter-bar-context.d.ts +46 -0
- package/dist/src/ds/components/FilterBar/filter-bar-draft-chip.d.ts +11 -0
- package/dist/src/ds/components/FilterBar/filter-bar-input.d.ts +10 -0
- package/dist/src/ds/components/FilterBar/filter-bar-option-list.d.ts +18 -0
- package/dist/src/ds/components/FilterBar/filter-bar.d.ts +34 -0
- package/dist/src/ds/components/FilterBar/filter-bar.stories.d.ts +10 -0
- package/dist/src/ds/components/FilterBar/index.d.ts +8 -0
- package/dist/src/ds/components/FilterBar/match-query.d.ts +4 -0
- package/dist/src/ds/components/FilterBar/types.d.ts +59 -0
- package/dist/src/ds/components/FilterBar/use-value-step.d.ts +33 -0
- package/dist/src/ds/components/FilterBar/use-value-suggestions.d.ts +23 -0
- package/dist/src/ds/components/FormFieldBlocks/block/field-block-error-msg.d.ts +8 -1
- package/dist/src/ds/components/FormFieldBlocks/block/field-error-id.d.ts +6 -0
- package/dist/src/ds/components/FormFieldBlocks/fields/search-field-block.d.ts +1 -1
- package/dist/src/ds/components/FormFieldBlocks/fields/text-field-block.d.ts +1 -1
- package/dist/src/ds/components/FormFieldBlocks/index.d.ts +1 -0
- package/dist/src/ds/components/Input/input.d.ts +10 -5
- package/dist/src/ds/components/Input/input.stories.d.ts +0 -1
- package/dist/src/ds/components/InputGroup/input-group.d.ts +10 -5
- package/dist/src/ds/components/MainSidebar/main-sidebar-context.d.ts +5 -1
- package/dist/src/ds/components/MainSidebar/main-sidebar-mobile-trigger.d.ts +0 -1
- package/dist/src/ds/components/MainSidebar/main-sidebar-nav-header.d.ts +0 -1
- package/dist/src/ds/components/MainSidebar/main-sidebar-nav-item-classes.d.ts +0 -11
- package/dist/src/ds/components/MainSidebar/main-sidebar-nav-link.d.ts +0 -6
- package/dist/src/ds/components/MainSidebar/main-sidebar-root.d.ts +2 -1
- package/dist/src/ds/components/Message/index.d.ts +4 -0
- package/dist/src/ds/components/Message/message-copy-button.d.ts +3 -0
- package/dist/src/ds/components/Message/message-timestamp.d.ts +3 -0
- package/dist/src/ds/components/Message/message.d.ts +13 -0
- package/dist/src/ds/components/Message/message.stories.d.ts +10 -0
- package/dist/src/ds/components/PullRequestIcon/index.d.ts +2 -0
- package/dist/src/ds/components/PullRequestIcon/pull-request-icon.d.ts +25 -0
- package/dist/src/ds/components/PullRequestIcon/pull-request-icon.stories.d.ts +24 -0
- package/dist/src/ds/components/Select/select.d.ts +6 -5
- package/dist/src/ds/components/Select/select.stories.d.ts +2 -2
- package/dist/src/ds/components/Slider/slider.d.ts +2 -2
- package/dist/src/ds/components/Slider/slider.stories.d.ts +1 -0
- package/dist/src/ds/components/StatusIndicators/index.d.ts +3 -0
- package/dist/src/ds/components/StatusIndicators/status-dot-styles.d.ts +11 -0
- package/dist/src/ds/components/StatusIndicators/status-dot.d.ts +8 -0
- package/dist/src/ds/components/StatusIndicators/status-dot.stories.d.ts +9 -0
- package/dist/src/ds/components/StatusIndicators/status.d.ts +7 -0
- package/dist/src/ds/components/StatusIndicators/status.stories.d.ts +7 -0
- package/dist/src/ds/components/Tabs/index.d.ts +1 -1
- package/dist/src/ds/components/Tabs/tabs-context.d.ts +1 -0
- package/dist/src/ds/components/Tabs/tabs-list.d.ts +4 -1
- package/dist/src/ds/components/Textarea/textarea.d.ts +10 -5
- package/dist/src/ds/components/ThreadList/thread-list.d.ts +3 -4
- package/dist/src/ds/components/Workflow/cards/condition/workflow-condition-card-view.d.ts +2 -0
- package/dist/src/ds/components/Workflow/cards/condition/workflow-condition-card.d.ts +3 -0
- package/dist/src/ds/components/Workflow/cards/condition/workflow-condition-expression.d.ts +2 -0
- package/dist/src/ds/components/Workflow/cards/condition/workflow-condition-source.d.ts +3 -0
- package/dist/src/ds/components/Workflow/cards/step/workflow-step-card-view.d.ts +2 -0
- package/dist/src/ds/components/Workflow/cards/timing/workflow-time-dial.d.ts +8 -0
- package/dist/src/ds/components/Workflow/cards/timing/workflow-timing.d.ts +2 -0
- package/dist/src/ds/components/Workflow/cards/workflow-card-badge-utils.d.ts +0 -1
- package/dist/src/ds/components/Workflow/cards/workflow-card-kind.d.ts +10 -0
- package/dist/src/ds/components/Workflow/cards/workflow-clock.d.ts +2 -1
- package/dist/src/ds/components/Workflow/cards/workflow-type-badge.d.ts +2 -0
- package/dist/src/ds/components/Workflow/controls/workflow-debug-controls.d.ts +5 -1
- package/dist/src/ds/components/Workflow/data/workflow-edge-data-button.d.ts +4 -1
- package/dist/src/ds/components/Workflow/graph/types.d.ts +1 -0
- package/dist/src/ds/components/Workflow/graph/workflow-camera-duration.d.ts +1 -0
- package/dist/src/ds/components/Workflow/graph/workflow-data-edge-view.d.ts +3 -1
- package/dist/src/ds/components/Workflow/graph/workflow-graph-canvas.d.ts +5 -2
- package/dist/src/ds/components/Workflow/graph/workflow-graph-groups.d.ts +11 -0
- package/dist/src/ds/components/Workflow/graph/zoom-slider.d.ts +4 -1
- package/dist/src/ds/components/Workflow/index.d.ts +5 -6
- package/dist/src/ds/components/Workflow/stories/graph/graph-example.d.ts +4 -2
- package/dist/src/ds/components/Workflow/stories/workflow-condition-card.stories.d.ts +4 -2
- package/dist/src/ds/components/Workflow/stories/workflow-controls.stories.d.ts +5 -0
- package/dist/src/ds/components/Workflow/stories/workflow-data.stories.d.ts +2 -1
- package/dist/src/ds/components/Workflow/stories/workflow-graph.stories.d.ts +4 -1
- package/dist/src/ds/components/Workflow/stories/workflow-step-card.stories.d.ts +7 -1
- package/dist/src/ds/components/Workflow/types.d.ts +5 -11
- package/dist/src/ds/components/Workflow/workflow-canvas-inset.d.ts +3 -0
- package/dist/src/ds/components/ai/chat-event/chat-event-preview.d.ts +1 -0
- package/dist/src/ds/components/ai/chat-event/chat-event.d.ts +14 -0
- package/dist/src/ds/components/ai/chat-event/chat-notification.d.ts +17 -0
- package/dist/src/ds/components/ai/chat-event/chat-signal.d.ts +9 -0
- package/dist/src/ds/components/ai/chat-event/chat-skill.d.ts +7 -0
- package/dist/src/ds/components/ai/chat-event/chat-time-gap.d.ts +3 -0
- package/dist/src/ds/components/ai/chat-event/index.d.ts +7 -0
- package/dist/src/ds/components/ai/chat-event/notification-variant.d.ts +2 -0
- package/dist/src/ds/components/ai/chat-event/stories/notification.stories.d.ts +59 -0
- package/dist/src/ds/components/ai/chat-event/stories/signal.stories.d.ts +46 -0
- package/dist/src/ds/components/ai/chat-event/stories/skill.stories.d.ts +29 -0
- package/dist/src/ds/components/ai/chat-event/stories/time-gap.stories.d.ts +16 -0
- package/dist/src/ds/components/ai/tool-approval/index.d.ts +2 -0
- package/dist/src/ds/components/ai/tool-approval/tool-approval-actions.stories.d.ts +44 -0
- package/dist/src/ds/components/ai/tool-approval/tool-approval.d.ts +15 -0
- package/dist/src/ds/components/ai/tool-approval/tool-approval.stories.d.ts +61 -0
- package/dist/src/ds/components/ai/tool-call/index.d.ts +3 -0
- package/dist/src/ds/components/ai/tool-call/tool-call-arguments.d.ts +8 -0
- package/dist/src/ds/components/ai/tool-call/tool-call-output.d.ts +7 -0
- package/dist/src/ds/components/ai/tool-call/tool-call-presentation.stories.d.ts +74 -0
- package/dist/src/ds/components/ai/tool-call/tool-call-time.d.ts +3 -0
- package/dist/src/ds/icons/Icon.d.ts +1 -1
- package/dist/src/ds/new/layout/page-header/page-header.stories.d.ts +1 -0
- package/dist/src/ds/new/layout/page-shell/index.d.ts +1 -0
- package/dist/src/ds/new/layout/page-shell/page-shell.d.ts +24 -0
- package/dist/src/ds/new/layout/page-shell/page-shell.stories.d.ts +63 -0
- package/dist/src/ds/new/sidebar/index.d.ts +15 -0
- package/dist/src/ds/new/sidebar/sidebar-new-brand.d.ts +6 -0
- package/dist/src/ds/new/sidebar/sidebar-new-command-header.d.ts +3 -0
- package/dist/src/ds/new/sidebar/sidebar-new-footer-meta.d.ts +7 -0
- package/dist/src/ds/new/sidebar/sidebar-new-footer.d.ts +3 -0
- package/dist/src/ds/new/sidebar/sidebar-new-header.d.ts +3 -0
- package/dist/src/ds/new/sidebar/sidebar-new-meter.d.ts +24 -0
- package/dist/src/ds/new/sidebar/sidebar-new-more-links.d.ts +10 -0
- package/dist/src/ds/new/sidebar/sidebar-new-nav-header.d.ts +11 -0
- package/dist/src/ds/new/sidebar/sidebar-new-nav-stack-context.d.ts +8 -0
- package/dist/src/ds/new/sidebar/sidebar-new-nav-stack-page-classes.d.ts +1 -0
- package/dist/src/ds/new/sidebar/sidebar-new-nav-stack-root-view.d.ts +3 -0
- package/dist/src/ds/new/sidebar/sidebar-new-nav-stack-root.d.ts +7 -0
- package/dist/src/ds/new/sidebar/sidebar-new-nav-stack-view.d.ts +9 -0
- package/dist/src/ds/new/sidebar/sidebar-new-nav-stack.d.ts +10 -0
- package/dist/src/ds/new/sidebar/sidebar-new-nav.d.ts +3 -0
- package/dist/src/ds/new/sidebar/sidebar-new-root.d.ts +5 -0
- package/dist/src/ds/new/sidebar/sidebar-new-search-trigger.d.ts +7 -0
- package/dist/src/ds/new/sidebar/sidebar-new-section-link.d.ts +9 -0
- package/dist/src/ds/new/sidebar/sidebar-new-sections.d.ts +12 -0
- package/dist/src/ds/new/sidebar/sidebar-new-trigger.d.ts +3 -0
- package/dist/src/ds/new/sidebar/sidebar-new.d.ts +43 -0
- package/dist/src/ds/new/sidebar/sidebar-new.stories.d.ts +8 -0
- package/dist/src/ds/primitives/control-size.d.ts +2 -1
- package/dist/src/ds/primitives/fluid-menu.d.ts +61 -0
- package/dist/src/ds/primitives/form-element.d.ts +11 -6
- package/dist/src/ds/primitives/menu-item.d.ts +4 -4
- package/dist/src/ds/primitives/transitions.d.ts +1 -1
- package/dist/src/ds/tokens/color-foundations.stories.d.ts +5 -0
- package/dist/src/ds/tokens/colors.d.ts +14 -0
- package/dist/src/ds/tokens/tokens.stories.d.ts +2 -0
- package/dist/src/ds/tokens/typography-foundations.stories.d.ts +5 -0
- package/dist/src/hooks/use-fluid-hover.d.ts +137 -0
- package/dist/src/hooks/use-local-storage-state.d.ts +16 -0
- package/dist/src/lib/colors.d.ts +4 -0
- package/dist/src/lib/resize/separator.d.ts +3 -3
- package/dist/src/lib/springs.d.ts +31 -0
- package/dist/style.css +2272 -525
- package/dist/switch-CkEdGkeB.cjs +125 -0
- package/dist/switch-CkEdGkeB.cjs.map +1 -0
- package/dist/switch-CkHq0TIf.js +104 -0
- package/dist/switch-CkHq0TIf.js.map +1 -0
- package/dist/tabs-content-CRKte85r.cjs +37 -0
- package/dist/tabs-content-CRKte85r.cjs.map +1 -0
- package/dist/tabs-content-Drm6Y6Ul.js +35 -0
- package/dist/tabs-content-Drm6Y6Ul.js.map +1 -0
- package/dist/tabs-root-DcnvZuD4.cjs +328 -0
- package/dist/tabs-root-DcnvZuD4.cjs.map +1 -0
- package/dist/tabs-root-yY2eNDS2.js +325 -0
- package/dist/tabs-root-yY2eNDS2.js.map +1 -0
- package/dist/tabs-root.css +5 -0
- package/dist/tabs-tab-CgMaandp.js +103 -0
- package/dist/tabs-tab-CgMaandp.js.map +1 -0
- package/dist/tabs-tab-tRgFBx85.cjs +107 -0
- package/dist/tabs-tab-tRgFBx85.cjs.map +1 -0
- package/dist/text-field-block-aRttm8yP.js +55 -0
- package/dist/text-field-block-aRttm8yP.js.map +1 -0
- package/dist/text-field-block-hN70Jj6a.cjs +57 -0
- package/dist/text-field-block-hN70Jj6a.cjs.map +1 -0
- package/dist/textarea-BmR73nqC.js +70 -0
- package/dist/textarea-BmR73nqC.js.map +1 -0
- package/dist/textarea-C7vLvn3E.cjs +91 -0
- package/dist/textarea-C7vLvn3E.cjs.map +1 -0
- package/dist/thread-rail-BvhuZLav.cjs +334 -0
- package/dist/thread-rail-BvhuZLav.cjs.map +1 -0
- package/dist/thread-rail-CPAHjoV1.js +313 -0
- package/dist/thread-rail-CPAHjoV1.js.map +1 -0
- package/dist/time-picker-BlY3xqrQ.cjs +78 -0
- package/dist/time-picker-BlY3xqrQ.cjs.map +1 -0
- package/dist/time-picker-Dce_kGwY.js +76 -0
- package/dist/time-picker-Dce_kGwY.js.map +1 -0
- package/dist/toast-CTMSqE4M.js +52 -0
- package/dist/toast-CTMSqE4M.js.map +1 -0
- package/dist/toast-CwH7p9gV.cjs +55 -0
- package/dist/toast-CwH7p9gV.cjs.map +1 -0
- package/dist/tokens.cjs.js +1 -1
- package/dist/tokens.es.js +1 -1
- package/dist/tool-approval-BMPAEwt_.js +66 -0
- package/dist/tool-approval-BMPAEwt_.js.map +1 -0
- package/dist/tool-approval-CYO2CYZz.cjs +69 -0
- package/dist/tool-approval-CYO2CYZz.cjs.map +1 -0
- package/dist/tool-call-98H2-r5p.js +181 -0
- package/dist/tool-call-98H2-r5p.js.map +1 -0
- package/dist/tool-call-CAzilpXy.cjs +196 -0
- package/dist/tool-call-CAzilpXy.cjs.map +1 -0
- package/dist/tooltip-QuS0KEbc.js +113 -0
- package/dist/tooltip-QuS0KEbc.js.map +1 -0
- package/dist/tooltip-_cda-a7s.cjs +137 -0
- package/dist/tooltip-_cda-a7s.cjs.map +1 -0
- package/dist/traces-data-list-Bl1BUIiq.js +85 -0
- package/dist/traces-data-list-Bl1BUIiq.js.map +1 -0
- package/dist/traces-data-list-CmBQDfnG.cjs +87 -0
- package/dist/traces-data-list-CmBQDfnG.cjs.map +1 -0
- package/dist/utils/cn.cjs.js +1 -1
- package/dist/utils/cn.es.js +1 -1
- package/dist/utils/colors.cjs.js +7 -0
- package/dist/utils/colors.cjs.js.map +1 -1
- package/dist/utils/colors.es.js +6 -1
- package/dist/utils/colors.es.js.map +1 -1
- package/dist/utils/toast.cjs.js +1 -1
- package/dist/utils/toast.es.js +1 -1
- package/new-theme.css +39 -0
- package/package.json +30 -11
- package/theme.css +78 -1
- package/dist/Badge-B-LKnrNk.cjs +0 -125
- package/dist/Badge-B-LKnrNk.cjs.map +0 -1
- package/dist/Badge-BqVBVHGc.js +0 -123
- package/dist/Badge-BqVBVHGc.js.map +0 -1
- package/dist/Button-BJOVwaxp.cjs +0 -137
- package/dist/Button-BJOVwaxp.cjs.map +0 -1
- package/dist/Button-BVGwYwHT.js +0 -133
- package/dist/Button-BVGwYwHT.js.map +0 -1
- package/dist/Card-DYmiv8Dx.js +0 -96
- package/dist/Card-DYmiv8Dx.js.map +0 -1
- package/dist/Card-DZjvLsN9.cjs +0 -123
- package/dist/Card-DZjvLsN9.cjs.map +0 -1
- package/dist/Composer.css +0 -102
- package/dist/EmptyState--bOUm8JU.cjs +0 -33
- package/dist/EmptyState--bOUm8JU.cjs.map +0 -1
- package/dist/EmptyState-CLoSRKxC.js +0 -31
- package/dist/EmptyState-CLoSRKxC.js.map +0 -1
- package/dist/Notice-CMZ86f1g.js +0 -89
- package/dist/Notice-CMZ86f1g.js.map +0 -1
- package/dist/Notice-D0Mvqvr0.cjs +0 -91
- package/dist/Notice-D0Mvqvr0.cjs.map +0 -1
- package/dist/PermissionDenied-BmAbJ1Xn.js +0 -22
- package/dist/PermissionDenied-BmAbJ1Xn.js.map +0 -1
- package/dist/PermissionDenied-Dge5a7OX.cjs +0 -24
- package/dist/PermissionDenied-Dge5a7OX.cjs.map +0 -1
- package/dist/SessionExpired-CAOgb-6E.cjs +0 -47
- package/dist/SessionExpired-CAOgb-6E.cjs.map +0 -1
- package/dist/SessionExpired-DSPFseGA.js +0 -45
- package/dist/SessionExpired-DSPFseGA.js.map +0 -1
- package/dist/Txt-CfPhlZOu.js +0 -28
- package/dist/Txt-CfPhlZOu.js.map +0 -1
- package/dist/Txt-i-sXSs2m.cjs +0 -30
- package/dist/Txt-i-sXSs2m.cjs.map +0 -1
- package/dist/arrival-Cf8ZO8cU.js +0 -19
- package/dist/arrival-Cf8ZO8cU.js.map +0 -1
- package/dist/arrival-Ck5yjMkc.cjs +0 -22
- package/dist/arrival-Ck5yjMkc.cjs.map +0 -1
- package/dist/ask-user-DQGe7ZTv.cjs +0 -146
- package/dist/ask-user-DQGe7ZTv.cjs.map +0 -1
- package/dist/ask-user-Dh9YowL4.js +0 -137
- package/dist/ask-user-Dh9YowL4.js.map +0 -1
- package/dist/buttons-group-CHyXDQBp.js +0 -162
- package/dist/buttons-group-CHyXDQBp.js.map +0 -1
- package/dist/buttons-group-jq7kUVlX.cjs +0 -186
- package/dist/buttons-group-jq7kUVlX.cjs.map +0 -1
- package/dist/checkbox-CC39oYEv.js +0 -88
- package/dist/checkbox-CC39oYEv.js.map +0 -1
- package/dist/checkbox-DWXCTy8y.cjs +0 -109
- package/dist/checkbox-DWXCTy8y.cjs.map +0 -1
- package/dist/cn-ByEbywDh.js +0 -3291
- package/dist/cn-ByEbywDh.js.map +0 -1
- package/dist/cn-DnbTIGXa.cjs +0 -3294
- package/dist/cn-DnbTIGXa.cjs.map +0 -1
- package/dist/code-block-BdzrmA-p.js +0 -86
- package/dist/code-block-BdzrmA-p.js.map +0 -1
- package/dist/code-block-D1RequlX.cjs +0 -88
- package/dist/code-block-D1RequlX.cjs.map +0 -1
- package/dist/code-editor-CopnXVKT.cjs +0 -486
- package/dist/code-editor-CopnXVKT.cjs.map +0 -1
- package/dist/code-editor-D7BftGSx.js +0 -478
- package/dist/code-editor-D7BftGSx.js.map +0 -1
- package/dist/collapsible-4eeo2ZU2.js +0 -57
- package/dist/collapsible-4eeo2ZU2.js.map +0 -1
- package/dist/collapsible-JOs0f0e1.cjs +0 -61
- package/dist/collapsible-JOs0f0e1.cjs.map +0 -1
- package/dist/combobox-DO__6QlF.cjs +0 -276
- package/dist/combobox-DO__6QlF.cjs.map +0 -1
- package/dist/combobox-Ua6bvpM8.js +0 -254
- package/dist/combobox-Ua6bvpM8.js.map +0 -1
- package/dist/command-CNKdcyyr.js +0 -168
- package/dist/command-CNKdcyyr.js.map +0 -1
- package/dist/command-Cva4qgS9.cjs +0 -197
- package/dist/command-Cva4qgS9.cjs.map +0 -1
- package/dist/copy-button-ChUCFd-x.js +0 -46
- package/dist/copy-button-ChUCFd-x.js.map +0 -1
- package/dist/copy-button-zLZfswrj.cjs +0 -48
- package/dist/copy-button-zLZfswrj.cjs.map +0 -1
- package/dist/dashboard-card-0kjXfhTF.cjs +0 -11
- package/dist/dashboard-card-0kjXfhTF.cjs.map +0 -1
- package/dist/dashboard-card-CDg79V_9.js +0 -9
- package/dist/dashboard-card-CDg79V_9.js.map +0 -1
- package/dist/data-code-section-BLvh46xK.cjs +0 -364
- package/dist/data-code-section-BLvh46xK.cjs.map +0 -1
- package/dist/data-code-section-DSelBhmP.js +0 -361
- package/dist/data-code-section-DSelBhmP.js.map +0 -1
- package/dist/data-keys-and-values-778xnwOK.js +0 -122
- package/dist/data-keys-and-values-778xnwOK.js.map +0 -1
- package/dist/data-keys-and-values-CUqVRfqS.cjs +0 -124
- package/dist/data-keys-and-values-CUqVRfqS.cjs.map +0 -1
- package/dist/data-list-4_cVlINT.cjs +0 -183
- package/dist/data-list-4_cVlINT.cjs.map +0 -1
- package/dist/data-list-Bm70XKg_.js +0 -179
- package/dist/data-list-Bm70XKg_.js.map +0 -1
- package/dist/data-list-skeleton-B7flrjdA.cjs +0 -38
- package/dist/data-list-skeleton-B7flrjdA.cjs.map +0 -1
- package/dist/data-list-skeleton-BJVs8rDE.js +0 -36
- package/dist/data-list-skeleton-BJVs8rDE.js.map +0 -1
- package/dist/data-list-top-BeUxfGy2.js +0 -481
- package/dist/data-list-top-BeUxfGy2.js.map +0 -1
- package/dist/data-list-top-D9zFnKEi.cjs +0 -510
- package/dist/data-list-top-D9zFnKEi.cjs.map +0 -1
- package/dist/data-panel-5iuux0r_.js +0 -89
- package/dist/data-panel-5iuux0r_.js.map +0 -1
- package/dist/data-panel-tSErqolu.cjs +0 -91
- package/dist/data-panel-tSErqolu.cjs.map +0 -1
- package/dist/date-picker-Cj8MwnUv.cjs +0 -50
- package/dist/date-picker-Cj8MwnUv.cjs.map +0 -1
- package/dist/date-picker-LbXedaEh.js +0 -48
- package/dist/date-picker-LbXedaEh.js.map +0 -1
- package/dist/date-time-range-picker-C0J7p78l.cjs +0 -167
- package/dist/date-time-range-picker-C0J7p78l.cjs.map +0 -1
- package/dist/date-time-range-picker-CcoU5-2_.js +0 -165
- package/dist/date-time-range-picker-CcoU5-2_.js.map +0 -1
- package/dist/dialog-B1DwyLJJ.cjs +0 -276
- package/dist/dialog-B1DwyLJJ.cjs.map +0 -1
- package/dist/dialog-Dfrt_JCJ.js +0 -242
- package/dist/dialog-Dfrt_JCJ.js.map +0 -1
- package/dist/domains/traces/components/span-duration-col.cjs.js +0 -25
- package/dist/domains/traces/components/span-duration-col.cjs.js.map +0 -1
- package/dist/domains/traces/components/span-duration-col.d.ts +0 -2
- package/dist/domains/traces/components/span-duration-col.es.js +0 -21
- package/dist/domains/traces/components/span-duration-col.es.js.map +0 -1
- package/dist/domains/traces/components/span-timeline-col.cjs.js +0 -48
- package/dist/domains/traces/components/span-timeline-col.cjs.js.map +0 -1
- package/dist/domains/traces/components/span-timeline-col.d.ts +0 -2
- package/dist/domains/traces/components/span-timeline-col.es.js +0 -44
- package/dist/domains/traces/components/span-timeline-col.es.js.map +0 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans-tab.cjs.js +0 -77
- package/dist/domains/traces/components/thread-trace/thread-trace-spans-tab.cjs.js.map +0 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans-tab.d.ts +0 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-spans-tab.es.js +0 -73
- package/dist/domains/traces/components/thread-trace/thread-trace-spans-tab.es.js.map +0 -1
- package/dist/domains/traces/components/timeline-expand-col.cjs.js +0 -89
- package/dist/domains/traces/components/timeline-expand-col.cjs.js.map +0 -1
- package/dist/domains/traces/components/timeline-expand-col.d.ts +0 -2
- package/dist/domains/traces/components/timeline-expand-col.es.js +0 -85
- package/dist/domains/traces/components/timeline-expand-col.es.js.map +0 -1
- package/dist/domains/traces/components/traces-layout.cjs.js +0 -63
- package/dist/domains/traces/components/traces-layout.cjs.js.map +0 -1
- package/dist/domains/traces/components/traces-layout.d.ts +0 -2
- package/dist/domains/traces/components/traces-layout.es.js +0 -59
- package/dist/domains/traces/components/traces-layout.es.js.map +0 -1
- package/dist/domains/traces/components/traces-toolbar.cjs.js +0 -70
- package/dist/domains/traces/components/traces-toolbar.cjs.js.map +0 -1
- package/dist/domains/traces/components/traces-toolbar.d.ts +0 -2
- package/dist/domains/traces/components/traces-toolbar.es.js +0 -66
- package/dist/domains/traces/components/traces-toolbar.es.js.map +0 -1
- package/dist/drawer-Bq7j_MiM.cjs +0 -366
- package/dist/drawer-Bq7j_MiM.cjs.map +0 -1
- package/dist/drawer-D1m2faHU.js +0 -326
- package/dist/drawer-D1m2faHU.js.map +0 -1
- package/dist/dropdown-menu-Bfh5ROWe.cjs +0 -227
- package/dist/dropdown-menu-Bfh5ROWe.cjs.map +0 -1
- package/dist/dropdown-menu-C853KwJJ.js +0 -206
- package/dist/dropdown-menu-C853KwJJ.js.map +0 -1
- package/dist/field-block-CVOfRWvX.js +0 -85
- package/dist/field-block-CVOfRWvX.js.map +0 -1
- package/dist/field-block-DosykAiQ.cjs +0 -87
- package/dist/field-block-DosykAiQ.cjs.map +0 -1
- package/dist/horizontal-bars--Czy2stS.cjs +0 -141
- package/dist/horizontal-bars--Czy2stS.cjs.map +0 -1
- package/dist/horizontal-bars-_vgi09Md.js +0 -139
- package/dist/horizontal-bars-_vgi09Md.js.map +0 -1
- package/dist/hover-card-B5zQKp9k.js +0 -68
- package/dist/hover-card-B5zQKp9k.js.map +0 -1
- package/dist/hover-card-B_Wz_e0F.cjs +0 -91
- package/dist/hover-card-B_Wz_e0F.cjs.map +0 -1
- package/dist/index-BxcigDwC.cjs +0 -47
- package/dist/index-BxcigDwC.cjs.map +0 -1
- package/dist/index-CZvpHqka.js +0 -45
- package/dist/index-CZvpHqka.js.map +0 -1
- package/dist/input-D3SUXvgI.cjs +0 -85
- package/dist/input-D3SUXvgI.cjs.map +0 -1
- package/dist/input-DinpgQXj.js +0 -64
- package/dist/input-DinpgQXj.js.map +0 -1
- package/dist/input-group-CBuqhxnJ.cjs +0 -242
- package/dist/input-group-CBuqhxnJ.cjs.map +0 -1
- package/dist/input-group-Dv1YsFDZ.js +0 -216
- package/dist/input-group-Dv1YsFDZ.js.map +0 -1
- package/dist/kbd-BaoBQUlL.cjs +0 -34
- package/dist/kbd-BaoBQUlL.cjs.map +0 -1
- package/dist/kbd-Bod0H0VQ.js +0 -32
- package/dist/kbd-Bod0H0VQ.js.map +0 -1
- package/dist/label-BICQQTjz.cjs +0 -34
- package/dist/label-BICQQTjz.cjs.map +0 -1
- package/dist/label-BKfZzqfr.js +0 -13
- package/dist/label-BKfZzqfr.js.map +0 -1
- package/dist/list-search-BwcO9d9M.cjs +0 -73
- package/dist/list-search-BwcO9d9M.cjs.map +0 -1
- package/dist/list-search-C8FBcDpo.js +0 -71
- package/dist/list-search-C8FBcDpo.js.map +0 -1
- package/dist/logs-data-list-B0hzHq0b.cjs +0 -81
- package/dist/logs-data-list-B0hzHq0b.cjs.map +0 -1
- package/dist/logs-data-list-CWu83qI7.js +0 -79
- package/dist/logs-data-list-CWu83qI7.js.map +0 -1
- package/dist/markdown-renderer-Dp1fJwUB.js +0 -408
- package/dist/markdown-renderer-Dp1fJwUB.js.map +0 -1
- package/dist/markdown-renderer-hBiN_N_-.cjs +0 -410
- package/dist/markdown-renderer-hBiN_N_-.cjs.map +0 -1
- package/dist/message-scroller-A5mO14YC.cjs +0 -857
- package/dist/message-scroller-A5mO14YC.cjs.map +0 -1
- package/dist/message-scroller-JeImISU5.js +0 -831
- package/dist/message-scroller-JeImISU5.js.map +0 -1
- package/dist/metrics-card-DJC-d549.cjs +0 -95
- package/dist/metrics-card-DJC-d549.cjs.map +0 -1
- package/dist/metrics-card-kreeaS1o.js +0 -93
- package/dist/metrics-card-kreeaS1o.js.map +0 -1
- package/dist/metrics-kpi-card-CgB7izeJ.cjs +0 -79
- package/dist/metrics-kpi-card-CgB7izeJ.cjs.map +0 -1
- package/dist/metrics-kpi-card-D5s2a9Xh.js +0 -77
- package/dist/metrics-kpi-card-D5s2a9Xh.js.map +0 -1
- package/dist/no-data-page-layout-BHmXbQix.js +0 -101
- package/dist/no-data-page-layout-BHmXbQix.js.map +0 -1
- package/dist/no-data-page-layout-BrqtWTU9.cjs +0 -104
- package/dist/no-data-page-layout-BrqtWTU9.cjs.map +0 -1
- package/dist/page-header-CGRV1f_f.js +0 -123
- package/dist/page-header-CGRV1f_f.js.map +0 -1
- package/dist/page-header-CTdBcOWK.cjs +0 -125
- package/dist/page-header-CTdBcOWK.cjs.map +0 -1
- package/dist/popover-DL_Vqxfp.cjs +0 -121
- package/dist/popover-DL_Vqxfp.cjs.map +0 -1
- package/dist/popover-L2o0kHi2.js +0 -97
- package/dist/popover-L2o0kHi2.js.map +0 -1
- package/dist/property-filter-applied-CF-InSu-.js +0 -344
- package/dist/property-filter-applied-CF-InSu-.js.map +0 -1
- package/dist/property-filter-applied-D35zWa7S.cjs +0 -348
- package/dist/property-filter-applied-D35zWa7S.cjs.map +0 -1
- package/dist/sankey-chart-D4lfGeI-.js +0 -916
- package/dist/sankey-chart-D4lfGeI-.js.map +0 -1
- package/dist/sankey-chart-ZfcUvZFu.cjs +0 -926
- package/dist/sankey-chart-ZfcUvZFu.cjs.map +0 -1
- package/dist/scroll-area-B0L1nYJS.js +0 -223
- package/dist/scroll-area-B0L1nYJS.js.map +0 -1
- package/dist/scroll-area-DK4w_mMg.cjs +0 -245
- package/dist/scroll-area-DK4w_mMg.cjs.map +0 -1
- package/dist/search-field-block-DhgD7NhZ.js +0 -119
- package/dist/search-field-block-DhgD7NhZ.js.map +0 -1
- package/dist/search-field-block-DnJYUEGi.cjs +0 -121
- package/dist/search-field-block-DnJYUEGi.cjs.map +0 -1
- package/dist/section-9jESC1la.js +0 -111
- package/dist/section-9jESC1la.js.map +0 -1
- package/dist/section-C_yrhQFt.cjs +0 -115
- package/dist/section-C_yrhQFt.cjs.map +0 -1
- package/dist/select-3GcRJGtd.js +0 -133
- package/dist/select-3GcRJGtd.js.map +0 -1
- package/dist/select-4dVGVp0V.cjs +0 -159
- package/dist/select-4dVGVp0V.cjs.map +0 -1
- package/dist/select-field-block-BEyjBDiB.js +0 -48
- package/dist/select-field-block-BEyjBDiB.js.map +0 -1
- package/dist/select-field-block-By8NfJoe.cjs +0 -50
- package/dist/select-field-block-By8NfJoe.cjs.map +0 -1
- package/dist/settings-container-C3d4Y528.js +0 -26
- package/dist/settings-container-C3d4Y528.js.map +0 -1
- package/dist/settings-container-aSJeNRdZ.cjs +0 -29
- package/dist/settings-container-aSJeNRdZ.cjs.map +0 -1
- package/dist/settings-layout-BjjVaZgN.cjs +0 -57
- package/dist/settings-layout-BjjVaZgN.cjs.map +0 -1
- package/dist/settings-layout-DlXTuCQ7.js +0 -55
- package/dist/settings-layout-DlXTuCQ7.js.map +0 -1
- package/dist/settings-row-BKz6r927.cjs +0 -92
- package/dist/settings-row-BKz6r927.cjs.map +0 -1
- package/dist/settings-row-T98nqxPD.js +0 -89
- package/dist/settings-row-T98nqxPD.js.map +0 -1
- package/dist/shimmer-Bt9INFuE.js +0 -23
- package/dist/shimmer-Bt9INFuE.js.map +0 -1
- package/dist/shimmer-GOCqjnzu.cjs +0 -25
- package/dist/shimmer-GOCqjnzu.cjs.map +0 -1
- package/dist/skeleton-DYq_5Fad.cjs +0 -25
- package/dist/skeleton-DYq_5Fad.cjs.map +0 -1
- package/dist/skeleton-KJCC29GI.js +0 -23
- package/dist/skeleton-KJCC29GI.js.map +0 -1
- package/dist/slider-AfRJ3a4W.js +0 -88
- package/dist/slider-AfRJ3a4W.js.map +0 -1
- package/dist/slider-BXYQmaQy.cjs +0 -90
- package/dist/slider-BXYQmaQy.cjs.map +0 -1
- package/dist/spacings-DQxytUI3.js +0 -162
- package/dist/spacings-DQxytUI3.js.map +0 -1
- package/dist/spacings-VmI3HJoY.cjs +0 -170
- package/dist/spacings-VmI3HJoY.cjs.map +0 -1
- package/dist/spinner-Bj7FQzLQ.cjs +0 -53
- package/dist/spinner-Bj7FQzLQ.cjs.map +0 -1
- package/dist/spinner-CUkNhTKC.js +0 -51
- package/dist/spinner-CUkNhTKC.js.map +0 -1
- package/dist/src/domains/traces/components/span-duration-col.d.ts +0 -9
- package/dist/src/domains/traces/components/span-timeline-col.d.ts +0 -6
- package/dist/src/domains/traces/components/thread-trace/thread-trace-spans-tab.d.ts +0 -14
- package/dist/src/domains/traces/components/timeline-expand-col.d.ts +0 -18
- package/dist/src/domains/traces/components/traces-layout.d.ts +0 -30
- package/dist/src/domains/traces/components/traces-toolbar.d.ts +0 -19
- package/dist/src/ds/components/Composer/use-composer-pointer-angle.d.ts +0 -2
- package/dist/src/ds/components/Workflow/cards/workflow-card-badges.d.ts +0 -6
- package/dist/src/ds/components/Workflow/cards/workflow-card-status-icon.d.ts +0 -6
- package/dist/src/ds/components/Workflow/cards/workflow-condition-card-view.d.ts +0 -2
- package/dist/src/ds/components/Workflow/cards/workflow-condition-card.d.ts +0 -5
- package/dist/src/ds/components/Workflow/cards/workflow-condition-code.d.ts +0 -12
- package/dist/src/ds/components/Workflow/cards/workflow-step-card-view.d.ts +0 -2
- package/dist/switch-A-j7GDcX.js +0 -103
- package/dist/switch-A-j7GDcX.js.map +0 -1
- package/dist/switch-BROLIeGF.cjs +0 -124
- package/dist/switch-BROLIeGF.cjs.map +0 -1
- package/dist/tabs-content-CV7YrtD1.cjs +0 -31
- package/dist/tabs-content-CV7YrtD1.cjs.map +0 -1
- package/dist/tabs-content-CW6RtAEV.js +0 -29
- package/dist/tabs-content-CW6RtAEV.js.map +0 -1
- package/dist/tabs-context-BknR9-GX.js +0 -7
- package/dist/tabs-context-BknR9-GX.js.map +0 -1
- package/dist/tabs-context-pnspPkI-.cjs +0 -10
- package/dist/tabs-context-pnspPkI-.cjs.map +0 -1
- package/dist/tabs-root-BAy8m6GO.js +0 -324
- package/dist/tabs-root-BAy8m6GO.js.map +0 -1
- package/dist/tabs-root-Dw7gHsnZ.cjs +0 -327
- package/dist/tabs-root-Dw7gHsnZ.cjs.map +0 -1
- package/dist/tabs-tab-CP-kzlvB.cjs +0 -99
- package/dist/tabs-tab-CP-kzlvB.cjs.map +0 -1
- package/dist/tabs-tab-K5mQhs7r.js +0 -97
- package/dist/tabs-tab-K5mQhs7r.js.map +0 -1
- package/dist/text-field-block-CUN9gL4j.js +0 -49
- package/dist/text-field-block-CUN9gL4j.js.map +0 -1
- package/dist/text-field-block-WuwrSNEX.cjs +0 -51
- package/dist/text-field-block-WuwrSNEX.cjs.map +0 -1
- package/dist/textarea-BCVPeJzr.js +0 -62
- package/dist/textarea-BCVPeJzr.js.map +0 -1
- package/dist/textarea-D9XsLoN5.cjs +0 -83
- package/dist/textarea-D9XsLoN5.cjs.map +0 -1
- package/dist/thread-rail-lebYetuv.cjs +0 -334
- package/dist/thread-rail-lebYetuv.cjs.map +0 -1
- package/dist/thread-rail-o19IAzcJ.js +0 -313
- package/dist/thread-rail-o19IAzcJ.js.map +0 -1
- package/dist/time-picker-BKpmCbXS.cjs +0 -78
- package/dist/time-picker-BKpmCbXS.cjs.map +0 -1
- package/dist/time-picker-SgrQvt0V.js +0 -76
- package/dist/time-picker-SgrQvt0V.js.map +0 -1
- package/dist/toast-FypW736q.cjs +0 -55
- package/dist/toast-FypW736q.cjs.map +0 -1
- package/dist/toast-Xv8jgrMR.js +0 -52
- package/dist/toast-Xv8jgrMR.js.map +0 -1
- package/dist/tool-call-BlKbOYRH.js +0 -181
- package/dist/tool-call-BlKbOYRH.js.map +0 -1
- package/dist/tool-call-DVh_yWov.cjs +0 -196
- package/dist/tool-call-DVh_yWov.cjs.map +0 -1
- package/dist/tooltip-BsSNtmxl.cjs +0 -136
- package/dist/tooltip-BsSNtmxl.cjs.map +0 -1
- package/dist/tooltip-Vj_jjcxE.js +0 -112
- package/dist/tooltip-Vj_jjcxE.js.map +0 -1
- package/dist/traces-data-list-0WfYCKdc.cjs +0 -86
- package/dist/traces-data-list-0WfYCKdc.cjs.map +0 -1
- package/dist/traces-data-list-BOiAOwYM.js +0 -84
- package/dist/traces-data-list-BOiAOwYM.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-renderer-CUQHtRlL.cjs","sources":["../src/ds/components/MarkdownRenderer/arriving.ts","../src/ds/components/MarkdownRenderer/blocks.ts","../src/ds/components/MarkdownRenderer/table-csv.ts","../src/ds/components/MarkdownRenderer/markdown-table.tsx","../src/ds/components/MarkdownRenderer/table-markdown.ts","../src/ds/components/MarkdownRenderer/use-settled.ts","../src/ds/components/MarkdownRenderer/markdown-renderer.tsx"],"sourcesContent":["import type { ExtraProps } from 'react-markdown';\n\nimport { ARRIVING_CLASS } from '@/ds/tokens';\n\nimport '@/ds/components/Arrival/arrival.css';\n\ntype MarkdownElement = NonNullable<ExtraProps['node']>;\ntype MarkdownChild = MarkdownElement['children'][number];\n\n/** Fades whole: a fence renders through `CodeBlock`, and inline code carries a background. */\nconst UNBROKEN = new Set(['pre', 'code']);\n\nconst wrap = (value: string, arriving: boolean): MarkdownChild => ({\n type: 'element',\n tagName: 'span',\n properties: arriving ? { className: [ARRIVING_CLASS] } : {},\n children: [{ type: 'text', value }],\n});\n\nfunction markArriving(node: MarkdownElement): void {\n const classes = node.properties.className;\n\n node.properties.className = Array.isArray(classes) ? [...classes, ARRIVING_CLASS] : [ARRIVING_CLASS];\n}\n\nfunction rebuild(nodes: MarkdownChild[], arriving: () => boolean): MarkdownChild[] {\n const out: MarkdownChild[] = [];\n\n for (const node of nodes) {\n if (node.type === 'text') {\n for (const piece of node.value.match(/\\S+|\\s+/g) ?? []) {\n if (/\\S/.test(piece)) out.push(wrap(piece, arriving()));\n else out.push({ type: 'text', value: piece });\n }\n\n continue;\n }\n\n out.push(node);\n\n if (node.type !== 'element') continue;\n\n if (!UNBROKEN.has(node.tagName)) node.children = rebuild(node.children, arriving);\n else if (arriving()) markArriving(node);\n }\n\n return out;\n}\n\n/**\n * Gives every word of a block an element of its own, and the entrance class to\n * those past the first `settled` — the words that were not on screen yet when\n * the reader joined this reply.\n *\n * Every word, not just the arriving ones: react-markdown parses afresh on each\n * landing and React matches the children it already mounted by position, so a\n * wrapper that came and went would land where a bare text node used to be and\n * remount half the paragraph, replaying entrances that had long finished.\n * Wrapping the lot keeps every position fixed — a new word only ever appends —\n * and a word never gains the class it did not mount with, so nothing replays.\n */\nexport function rehypeArriving(settled: number) {\n return function attach() {\n return (tree: { children: MarkdownChild[] }) => {\n let word = 0;\n\n tree.children = rebuild(tree.children, () => word++ >= settled);\n };\n };\n}\n","const FENCE_OPEN = /^ {0,3}(`{3,}|~{3,})/;\nconst FENCE_CLOSE = /^ {0,3}(`{3,}|~{3,})[ \\t]*$/;\nconst LIST_ITEM = /^ {0,3}(?:[-*+]|\\d{1,9}[.)])(?:[ \\t]|$)/;\nconst INDENTED = /^(?:\\t| {2,})/;\nconst DEFINITION = /^ {0,3}\\[[^\\]]+\\]:/;\n\nfunction fenceOpenedBy(line: string): string | undefined {\n return FENCE_OPEN.exec(line)?.[1];\n}\n\n// Both are runs of one character, so `startsWith` is \"same marker, at least as long\".\nfunction closesFence(line: string, marker: string): boolean {\n return FENCE_CLOSE.exec(line)?.[1]?.startsWith(marker) ?? false;\n}\n\nfunction startsBlock(line: string, inList: boolean): boolean {\n if (INDENTED.test(line)) return false;\n\n return !(inList && LIST_ITEM.test(line));\n}\n\n/**\n * Cuts markdown into top-level blocks so a growing reply re-parses its last\n * block instead of all of them. Rejoining the result returns the input, and\n * every block renders as it would have inside the whole.\n *\n * Each rule only ever merges: over-merging costs a re-parse, while cutting a\n * construct in two changes what it renders as. Link reference and footnote\n * definitions resolve across blank lines, which no line-level rule can see, so\n * reaching one outside a fence abandons the split for the whole text.\n */\nexport function splitBlocks(markdown: string): string[] {\n const lines = markdown.split('\\n');\n const starts = [0];\n let fence: string | undefined;\n let started = false;\n let broken = false;\n let inList = false;\n\n for (const [index, line] of lines.entries()) {\n if (fence) {\n if (closesFence(line, fence)) fence = undefined;\n continue;\n }\n\n if (line.trim() === '') {\n broken = started;\n continue;\n }\n\n if (DEFINITION.test(line)) return [markdown];\n\n if (broken && startsBlock(line, inList)) {\n starts.push(index);\n started = false;\n }\n\n if (!started) inList = LIST_ITEM.test(line);\n\n started = true;\n broken = false;\n fence = fenceOpenedBy(line);\n }\n\n return starts.map((start, position) => {\n const end = starts[position + 1];\n const block = lines.slice(start, end ?? lines.length).join('\\n');\n\n return end === undefined ? block : `${block}\\n`;\n });\n}\n","function spreadsheetCell(value: string): string {\n // Quoting alone does not stop spreadsheet apps from evaluating formulas.\n const numeric = /^[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i.test(value.trim());\n const formula = /^[\\s\\uFEFF]*[=+\\-@=+-@]/u.test(value);\n const controlPrefix = /^[\\t\\r\\n]/.test(value);\n const safe = controlPrefix || (formula && !numeric) ? `'${value}` : value;\n return `\"${safe.replaceAll('\"', '\"\"')}\"`;\n}\n\nexport function tableToCsv(rows: string[][]): string {\n return rows.map(row => row.map(spreadsheetCell).join(',')).join('\\r\\n');\n}\n\nexport function downloadTableCsv(csv: string): void {\n const blob = new Blob(['\\uFEFF', csv], { type: 'text/csv;charset=utf-8' });\n const url = URL.createObjectURL(blob);\n const anchor = document.createElement('a');\n anchor.href = url;\n anchor.download = 'table.csv';\n document.body.appendChild(anchor);\n anchor.click();\n anchor.remove();\n URL.revokeObjectURL(url);\n}\n","import { CheckIcon, ChevronDownIcon, CopyIcon, DownloadIcon } from 'lucide-react';\nimport type { ComponentProps } from 'react';\nimport type { ExtraProps } from 'react-markdown';\nimport { downloadTableCsv } from './table-csv';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\n\nexport function MarkdownTable({ node, children }: ComponentProps<'table'> & ExtraProps) {\n const markdown = node?.properties.tableMarkdown;\n const csv = node?.properties.tableCsv;\n const { isCopied, copyToClipboard } = useCopyToClipboard({ copyMessage: 'Copied table markdown' });\n\n return (\n <div className=\"my-3 w-fit max-w-full min-w-0\">\n <div className=\"flex justify-end\">\n <ButtonsGroup spacing=\"close\" aria-label=\"Table actions\">\n <Button\n type=\"button\"\n size=\"xs\"\n variant=\"ghost\"\n disabled={typeof markdown !== 'string'}\n onClick={() => {\n if (typeof markdown === 'string') copyToClipboard(markdown);\n }}\n aria-label=\"Copy table as markdown\"\n >\n {isCopied ? <CheckIcon /> : <CopyIcon />}\n {isCopied ? 'Copied!' : 'Copy table as markdown'}\n </Button>\n <DropdownMenu>\n <DropdownMenu.Trigger\n disabled={typeof csv !== 'string'}\n render={\n <Button type=\"button\" size=\"icon-xs\" variant=\"ghost\" aria-label=\"More table options\">\n <ChevronDownIcon />\n </Button>\n }\n />\n <DropdownMenu.Content align=\"end\" size=\"sm\" className=\"w-max min-w-0\">\n <DropdownMenu.Item\n size=\"sm\"\n onClick={() => {\n if (typeof csv === 'string') downloadTableCsv(csv);\n }}\n >\n <DownloadIcon />\n Download CSV\n </DropdownMenu.Item>\n </DropdownMenu.Content>\n </DropdownMenu>\n </ButtonsGroup>\n </div>\n <div className=\"max-w-full overflow-x-auto\">\n <table className=\"table min-w-full\">{children}</table>\n </div>\n </div>\n );\n}\n","import type { Definition, FootnoteDefinition, Nodes, Root, Table } from 'mdast';\nimport { gfmToMarkdown } from 'mdast-util-gfm';\nimport { toMarkdown } from 'mdast-util-to-markdown';\nimport { tableToCsv } from './table-csv';\n\nfunction cellText(node: Nodes): string {\n if (node.type === 'footnoteReference') return `[^${node.label ?? node.identifier}]`;\n if ('value' in node) return node.value;\n if (node.type === 'image' || node.type === 'imageReference') return node.alt ?? '';\n return 'children' in node ? node.children.map(cellText).join('') : '';\n}\n\nfunction walk(node: Nodes, visit: (node: Nodes) => void): void {\n visit(node);\n if ('children' in node) node.children.forEach(child => walk(child, visit));\n}\n\nconst SERIALIZE_OPTIONS = { extensions: [gfmToMarkdown()] };\n\n/** Capture table exports before rehype replaces text with animation spans. */\nexport function remarkTableMarkdown() {\n return (tree: Root, file: { value: unknown }) => {\n const source = String(file.value);\n const definitions = new Map<string, Definition | FootnoteDefinition>();\n const tables: Table[] = [];\n walk(tree, node => {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const key = `${node.type}:${node.identifier}`;\n if (!definitions.has(key)) definitions.set(key, node);\n }\n if (node.type === 'table') tables.push(node);\n });\n\n const lines = source.split(/\\r\\n|\\r|\\n/);\n for (const table of tables) {\n const header = table.children[0];\n if (!header?.position) continue;\n const rows = table.children.map(row => {\n const start = row.position?.start.offset;\n const end = row.position?.end.offset;\n return start === undefined || end === undefined ? undefined : source.slice(start, end);\n });\n // Only offer exports when the parser supplied the original row locations.\n if (!rows.every(row => row !== undefined)) continue;\n // Row positions exclude list/blockquote prefixes. The delimiter has no AST node.\n const delimiter = lines[header.position.start.line]?.replace(/^[\\t >]*/, '');\n if (delimiter === undefined) continue;\n const markdown = [rows[0], delimiter, ...rows.slice(1)];\n const used = new Set<string>();\n const collectReference = (node: Nodes) => {\n if (node.type === 'linkReference' || node.type === 'imageReference') {\n used.add(`definition:${node.identifier}`);\n } else if (node.type === 'footnoteReference') {\n used.add(`footnoteDefinition:${node.identifier}`);\n }\n };\n walk(table, collectReference);\n // Visiting appended definitions also collects links/footnotes they depend on.\n // The set prevents duplicates and cycles, including self-referencing footnotes.\n for (const key of used) {\n const definition = definitions.get(key);\n if (!definition) continue;\n markdown.push('', toMarkdown(definition, SERIALIZE_OPTIONS).trimEnd());\n walk(definition, collectReference);\n }\n const cells = table.children.map(row =>\n Array.from({ length: header.children.length }, (_, index) => {\n const cell = row.children[index];\n return cell ? cellText(cell) : '';\n }),\n );\n table.data = {\n ...table.data,\n hProperties: {\n ...table.data?.hProperties,\n tableMarkdown: markdown.join('\\n'),\n tableCsv: tableToCsv(cells),\n },\n };\n }\n };\n}\n","import { useEffect, useRef, useState } from 'react';\n\nimport { useWatched } from '@/ds/components/Arrival';\nimport { ARRIVING_MS } from '@/ds/tokens';\n\ninterface Landing {\n words: number;\n at: number;\n}\n\n/**\n * How many of a reply's words have been on screen long enough that their entrance is over.\n *\n * The entrance plays on whatever mounts carrying the class, so it replays every time a\n * word's element is rebuilt — and markdown rebuilds a growing tail constantly: a `-`\n * turns a paragraph into a list item, a closing `**` splits it around a `<strong>`, the\n * stream ends and the mend comes off. Each of those swaps the element a settled word\n * lives in, which is what makes a word already read fade in again.\n *\n * Ageing them out is the whole answer: a word carries the class only while it is new,\n * so however often the tail is rebuilt, only what is genuinely arriving animates.\n *\n * What counts as new at mount is not this hook's call. A reply the reader was handed\n * is already there, and a block that mounts complete — a card's output, an expanded\n * body — enters with its container. Only a passage born streaming under the reader's\n * eyes is new from its first word: the reveal often lands several words in its first\n * commit, and they enter like every word after them.\n */\nexport function useSettledWords(words: number, streaming: boolean): number {\n const watched = useWatched();\n const [settled, setSettled] = useState(() => (watched && streaming ? 0 : words));\n const landings = useRef<Landing[]>([]);\n const recorded = useRef(settled);\n\n useEffect(() => {\n if (recorded.current !== words) {\n landings.current.push({ words, at: performance.now() });\n recorded.current = words;\n }\n\n const waiting = landings.current[0];\n if (!waiting) return;\n\n const timer = setTimeout(\n () => {\n landings.current.shift();\n setSettled(waiting.words);\n },\n Math.max(0, waiting.at + ARRIVING_MS - performance.now()),\n );\n\n return () => clearTimeout(timer);\n }, [settled, words]);\n\n // A shorter reply replacing the one on screen settles at once: nothing of it is new.\n return Math.min(settled, words);\n}\n","import { memo, useMemo } from 'react';\nimport type { MouseEvent, MouseEventHandler, ReactNode } from 'react';\nimport Markdown from 'react-markdown';\nimport type { Components, ExtraProps, Options } from 'react-markdown';\nimport remarkGfm from 'remark-gfm';\nimport remend from 'remend';\n\nimport { rehypeArriving } from './arriving';\nimport { splitBlocks } from './blocks';\nimport { MarkdownTable } from './markdown-table';\nimport { remarkTableMarkdown } from './table-markdown';\nimport { useSettledWords } from './use-settled';\nimport { CodeBlock } from '@/ds/components/CodeBlock';\nimport { cn } from '@/lib/utils';\n\nimport './markdown-renderer.css';\n\nexport type MarkdownExternalLinkTarget = 'tab' | 'window';\n\nexport interface MarkdownRendererProps {\n children: string;\n className?: string;\n externalLinkTarget?: MarkdownExternalLinkTarget;\n /** The text is a prefix of one still being written: close the markers the stream has not reached. */\n streaming?: boolean;\n /** Opt in to table copy/download controls; disabled while this text is streaming. */\n tableActions?: boolean;\n}\n\n/**\n * Renders a markdown string. Agent output can carry attacker-influenced text\n * (file contents, tool output, web pages): react-markdown escapes raw HTML and\n * drops dangerous link schemes, so nothing here reaches the DOM as markup.\n *\n * react-markdown re-parses on every render, and a streaming reply re-renders\n * its whole transcript on every delta. Memoizing spares the settled messages;\n * rendering block by block — streaming or not — spares every block of the live\n * one but the last, and lets a reply settle without remounting what is already\n * on screen.\n *\n * The text is drawn as given: pacing a stream is `useRevealedText`, and belongs to\n * whoever owns the whole of what is being laid down — a reply is prose, tool rows\n * and cards, and they have to arrive in the order they were written. Only what\n * lands after the reader joined plays an entrance, and only while it is still new:\n * a reply opened part-written is already there, and fading in what someone is\n * halfway through reading would be both a lie and a screenful of animations at\n * once.\n */\nexport const MarkdownRenderer = memo(function MarkdownRenderer({\n children,\n className,\n externalLinkTarget = 'tab',\n streaming = false,\n tableActions = false,\n}: MarkdownRendererProps) {\n const shown = decodeEscapedNewlines(children);\n const blocks = useMemo(() => splitBlocks(shown), [shown]);\n const last = blocks.length - 1;\n const components = (tableActions ? TABLE_COMPONENTS : DEFAULT_COMPONENTS)[externalLinkTarget];\n\n const spans = wordSpans(blocks);\n const settled = useSettledWords(spans.at(-1)?.end ?? 0, streaming);\n\n // A block whose words have all finished their entrance has nothing left to play,\n // which is what `undefined` says: leave it as plain text, no spans at all.\n const settledWords = (span: WordSpan | undefined): number | undefined =>\n !span || settled >= span.end ? undefined : Math.max(0, settled - span.start);\n\n const tail = blocks[last] ?? '';\n const mended = useMemo(() => (streaming ? remend(tail, REMEND_OPTIONS) : tail), [streaming, tail]);\n\n return (\n <div className={cn('mastra-markdown', className)}>\n {blocks.map((block, index) => (\n <MarkdownBlock\n key={index}\n content={index === last ? mended : block}\n settledWords={settledWords(spans[index])}\n components={components}\n streaming={streaming}\n tableActions={tableActions}\n />\n ))}\n </div>\n );\n});\n\n/** Keyed by position at the call site: a content key remounts on every character. */\nconst MarkdownBlock = memo(function MarkdownBlock({\n components,\n content,\n settledWords,\n streaming,\n tableActions,\n}: {\n components: Components;\n content: string;\n settledWords?: number;\n streaming: boolean;\n tableActions: boolean;\n}) {\n const rehypePlugins = useMemo(\n () => (settledWords === undefined ? SETTLED : [rehypeArriving(settledWords)]),\n [settledWords],\n );\n\n return (\n <Markdown\n remarkPlugins={tableActions && !streaming ? COPYABLE_REMARK_PLUGINS : REMARK_PLUGINS}\n rehypePlugins={rehypePlugins}\n components={components}\n >\n {content}\n </Markdown>\n );\n});\n\nconst SETTLED: Options['rehypePlugins'] = [];\n\ninterface WordSpan {\n start: number;\n end: number;\n}\n\n/**\n * Where each block's words fall in the reply's own count, so one settled count covers\n * them all. Counting the source counts its markers too, so the boundary only ever errs\n * towards leaving a word unanimated.\n */\nfunction wordSpans(blocks: string[]): WordSpan[] {\n let read = 0;\n\n return blocks.map(block => {\n const span = { start: read, end: read + countWords(block) };\n read = span.end;\n\n return span;\n });\n}\n\nfunction countWords(text: string): number {\n return text.match(/\\S+/g)?.length ?? 0;\n}\n\n// Agent networks emit their text with literal `\\n`. Only unescape when the text\n// has no real newline, otherwise a `\"a\\nb\"` inside a code fence gets shredded.\nfunction decodeEscapedNewlines(text: string): string {\n return text.includes('\\n') ? text : text.replace(/\\\\n/g, '\\n');\n}\n\ntype MarkdownNode = NonNullable<ExtraProps['node']>;\n\nfunction languageOf(node: MarkdownNode): string | undefined {\n const classNames = node.properties.className;\n if (!Array.isArray(classNames)) return undefined;\n\n const language = classNames.find(entry => typeof entry === 'string' && entry.startsWith('language-'));\n return typeof language === 'string' ? language.slice('language-'.length) : undefined;\n}\n\nfunction fencedCode(node: MarkdownNode | undefined): { code: string; language?: string } | undefined {\n const child = node?.children.find(entry => entry.type === 'element' && entry.tagName === 'code');\n if (child?.type !== 'element') return undefined;\n\n const code = child.children.map(entry => (entry.type === 'text' ? entry.value : '')).join('');\n return { code: code.replace(/\\n$/, ''), language: languageOf(child) };\n}\n\nfunction MarkdownCodeBlock({\n node,\n children,\n className,\n}: {\n node?: MarkdownNode;\n children?: ReactNode;\n className?: string;\n}) {\n const fenced = fencedCode(node);\n if (!fenced) return <pre className={className}>{children}</pre>;\n\n return (\n <CodeBlock\n code={fenced.code}\n lang={fenced.language}\n overflow=\"scroll\"\n className={cn('my-3 bg-surface1', className)}\n copyMessage=\"Copied code to clipboard\"\n />\n );\n}\n\nconst POPUP_WINDOW_FEATURES = 'popup=yes,width=720,height=800,resizable=yes,scrollbars=yes';\n\nfunction isPlainLeftClick(event: MouseEvent): boolean {\n return event.button === 0 && !event.metaKey && !event.ctrlKey && !event.shiftKey && !event.altKey;\n}\n\nfunction markdownLink(externalLinkTarget: MarkdownExternalLinkTarget): NonNullable<Components['a']> {\n return function MarkdownLink({ href, title, children }) {\n const isExternal = /^https?:\\/\\//i.test(href ?? '');\n\n const openInPopup: MouseEventHandler<HTMLAnchorElement> = event => {\n if (!isExternal || externalLinkTarget !== 'window' || !isPlainLeftClick(event)) return;\n\n const popup = window.open(href, '_blank', POPUP_WINDOW_FEATURES);\n if (!popup) return;\n\n popup.opener = null;\n event.preventDefault();\n };\n\n return (\n <a\n href={href}\n title={title}\n onClick={openInPopup}\n target={isExternal ? '_blank' : undefined}\n rel={isExternal ? 'noopener noreferrer' : undefined}\n >\n {children}\n </a>\n );\n };\n}\n\nconst REMARK_PLUGINS = [remarkGfm];\nconst COPYABLE_REMARK_PLUGINS = [remarkGfm, remarkTableMarkdown];\n\n// Links stay text until their URL lands: remend's placeholder href would render\n// a live anchor to nowhere. No math is rendered here, so pairing `$$` would only\n// turn one literal into another.\nconst REMEND_OPTIONS = { katex: false, linkMode: 'text-only' } as const;\n\n// Elements are listed one by one: react-markdown also passes its `node`, which\n// React would forward to the DOM as a stray attribute. Everything else is\n// styled from markdown-renderer.css.\nconst COMPONENTS: Components = {\n pre: MarkdownCodeBlock,\n a: markdownLink('tab'),\n};\n\nconst WINDOW_COMPONENTS: Components = {\n ...COMPONENTS,\n a: markdownLink('window'),\n};\n\nconst DEFAULT_COMPONENTS = { tab: COMPONENTS, window: WINDOW_COMPONENTS };\nconst TABLE_COMPONENTS = {\n tab: { ...COMPONENTS, table: MarkdownTable },\n window: { ...WINDOW_COMPONENTS, table: MarkdownTable },\n};\n"],"names":["ARRIVING_CLASS","useCopyToClipboard","jsxs","jsx","ButtonsGroup","Button","CheckIcon","CopyIcon","DropdownMenu","ChevronDownIcon","DownloadIcon","gfmToMarkdown","toMarkdown","useWatched","useState","useRef","useEffect","ARRIVING_MS","memo","MarkdownRenderer","useMemo","cn","MarkdownBlock","CodeBlock"],"mappings":";;;;;;;;;;;;;;;;;;;AAUA,MAAM,2BAAW,IAAI,GAAA,CAAI,CAAC,KAAA,EAAO,MAAM,CAAC,CAAA;AAExC,MAAM,IAAA,GAAO,CAAC,KAAA,EAAe,QAAA,MAAsC;AAAA,EACjE,IAAA,EAAM,SAAA;AAAA,EACN,OAAA,EAAS,MAAA;AAAA,EACT,UAAA,EAAY,WAAW,EAAE,SAAA,EAAW,CAACA,qBAAc,CAAA,KAAM,EAAC;AAAA,EAC1D,UAAU,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,OAAO;AACpC,CAAA,CAAA;AAEA,SAAS,aAAa,IAAA,EAA6B;AACjD,EAAA,MAAM,OAAA,GAAU,KAAK,UAAA,CAAW,SAAA;AAEhC,EAAA,IAAA,CAAK,UAAA,CAAW,SAAA,GAAY,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,GAAI,CAAC,GAAG,OAAA,EAASA,qBAAc,CAAA,GAAI,CAACA,qBAAc,CAAA;AACrG;AAEA,SAAS,OAAA,CAAQ,OAAwB,QAAA,EAA0C;AACjF,EAAA,MAAM,MAAuB,EAAC;AAE9B,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,IAAI,IAAA,CAAK,SAAS,MAAA,EAAQ;AACxB,MAAA,KAAA,MAAW,SAAS,IAAA,CAAK,KAAA,CAAM,MAAM,UAAU,CAAA,IAAK,EAAC,EAAG;AACtD,QAAA,IAAI,IAAA,CAAK,IAAA,CAAK,KAAK,CAAA,EAAG,GAAA,CAAI,KAAK,IAAA,CAAK,KAAA,EAAO,QAAA,EAAU,CAAC,CAAA;AAAA,iBAC7C,IAAA,CAAK,EAAE,MAAM,MAAA,EAAQ,KAAA,EAAO,OAAO,CAAA;AAAA,MAC9C;AAEA,MAAA;AAAA,IACF;AAEA,IAAA,GAAA,CAAI,KAAK,IAAI,CAAA;AAEb,IAAA,IAAI,IAAA,CAAK,SAAS,SAAA,EAAW;AAE7B,IAAA,IAAI,CAAC,QAAA,CAAS,GAAA,CAAI,IAAA,CAAK,OAAO,CAAA,EAAG,IAAA,CAAK,QAAA,GAAW,OAAA,CAAQ,IAAA,CAAK,QAAA,EAAU,QAAQ,CAAA;AAAA,SAAA,IACvE,QAAA,EAAS,EAAG,YAAA,CAAa,IAAI,CAAA;AAAA,EACxC;AAEA,EAAA,OAAO,GAAA;AACT;AAcO,SAAS,eAAe,OAAA,EAAiB;AAC9C,EAAA,OAAO,SAAS,MAAA,GAAS;AACvB,IAAA,OAAO,CAAC,IAAA,KAAwC;AAC9C,MAAA,IAAI,IAAA,GAAO,CAAA;AAEX,MAAA,IAAA,CAAK,WAAW,OAAA,CAAQ,IAAA,CAAK,QAAA,EAAU,MAAM,UAAU,OAAO,CAAA;AAAA,IAChE,CAAA;AAAA,EACF,CAAA;AACF;;ACrEA,MAAM,UAAA,GAAa,sBAAA;AACnB,MAAM,WAAA,GAAc,6BAAA;AACpB,MAAM,SAAA,GAAY,yCAAA;AAClB,MAAM,QAAA,GAAW,eAAA;AACjB,MAAM,UAAA,GAAa,oBAAA;AAEnB,SAAS,cAAc,IAAA,EAAkC;AACvD,EAAA,OAAO,UAAA,CAAW,IAAA,CAAK,IAAI,CAAA,GAAI,CAAC,CAAA;AAClC;AAGA,SAAS,WAAA,CAAY,MAAc,MAAA,EAAyB;AAC1D,EAAA,OAAO,WAAA,CAAY,KAAK,IAAI,CAAA,GAAI,CAAC,CAAA,EAAG,UAAA,CAAW,MAAM,CAAA,IAAK,KAAA;AAC5D;AAEA,SAAS,WAAA,CAAY,MAAc,MAAA,EAA0B;AAC3D,EAAA,IAAI,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA,EAAG,OAAO,KAAA;AAEhC,EAAA,OAAO,EAAE,MAAA,IAAU,SAAA,CAAU,IAAA,CAAK,IAAI,CAAA,CAAA;AACxC;AAYO,SAAS,YAAY,QAAA,EAA4B;AACtD,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,KAAA,CAAM,IAAI,CAAA;AACjC,EAAA,MAAM,MAAA,GAAS,CAAC,CAAC,CAAA;AACjB,EAAA,IAAI,KAAA;AACJ,EAAA,IAAI,OAAA,GAAU,KAAA;AACd,EAAA,IAAI,MAAA,GAAS,KAAA;AACb,EAAA,IAAI,MAAA,GAAS,KAAA;AAEb,EAAA,KAAA,MAAW,CAAC,KAAA,EAAO,IAAI,CAAA,IAAK,KAAA,CAAM,SAAQ,EAAG;AAC3C,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,IAAI,WAAA,CAAY,IAAA,EAAM,KAAK,CAAA,EAAG,KAAA,GAAQ,MAAA;AACtC,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,IAAA,CAAK,IAAA,EAAK,KAAM,EAAA,EAAI;AACtB,MAAA,MAAA,GAAS,OAAA;AACT,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,WAAW,IAAA,CAAK,IAAI,CAAA,EAAG,OAAO,CAAC,QAAQ,CAAA;AAE3C,IAAA,IAAI,MAAA,IAAU,WAAA,CAAY,IAAA,EAAM,MAAM,CAAA,EAAG;AACvC,MAAA,MAAA,CAAO,KAAK,KAAK,CAAA;AACjB,MAAA,OAAA,GAAU,KAAA;AAAA,IACZ;AAEA,IAAA,IAAI,CAAC,OAAA,EAAS,MAAA,GAAS,SAAA,CAAU,KAAK,IAAI,CAAA;AAE1C,IAAA,OAAA,GAAU,IAAA;AACV,IAAA,MAAA,GAAS,KAAA;AACT,IAAA,KAAA,GAAQ,cAAc,IAAI,CAAA;AAAA,EAC5B;AAEA,EAAA,OAAO,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,EAAO,QAAA,KAAa;AACrC,IAAA,MAAM,GAAA,GAAM,MAAA,CAAO,QAAA,GAAW,CAAC,CAAA;AAC/B,IAAA,MAAM,KAAA,GAAQ,MAAM,KAAA,CAAM,KAAA,EAAO,OAAO,KAAA,CAAM,MAAM,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA;AAE/D,IAAA,OAAO,GAAA,KAAQ,MAAA,GAAY,KAAA,GAAQ,CAAA,EAAG,KAAK;AAAA,CAAA;AAAA,EAC7C,CAAC,CAAA;AACH;;ACtEA,SAAS,gBAAgB,KAAA,EAAuB;AAE9C,EAAA,MAAM,OAAA,GAAU,+CAAA,CAAgD,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA;AACjF,EAAA,MAAM,OAAA,GAAU,0BAAA,CAA2B,IAAA,CAAK,KAAK,CAAA;AACrD,EAAA,MAAM,aAAA,GAAgB,WAAA,CAAY,IAAA,CAAK,KAAK,CAAA;AAC5C,EAAA,MAAM,OAAO,aAAA,IAAkB,OAAA,IAAW,CAAC,OAAA,GAAW,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,GAAK,KAAA;AACpE,EAAA,OAAO,CAAA,CAAA,EAAI,IAAA,CAAK,UAAA,CAAW,GAAA,EAAK,IAAI,CAAC,CAAA,CAAA,CAAA;AACvC;AAEO,SAAS,WAAW,IAAA,EAA0B;AACnD,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,GAAA,KAAO,GAAA,CAAI,GAAA,CAAI,eAAe,CAAA,CAAE,IAAA,CAAK,GAAG,CAAC,CAAA,CAAE,IAAA,CAAK,MAAM,CAAA;AACxE;AAEO,SAAS,iBAAiB,GAAA,EAAmB;AAClD,EAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,CAAC,QAAA,EAAU,GAAG,CAAA,EAAG,EAAE,IAAA,EAAM,wBAAA,EAA0B,CAAA;AACzE,EAAA,MAAM,GAAA,GAAM,GAAA,CAAI,eAAA,CAAgB,IAAI,CAAA;AACpC,EAAA,MAAM,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,GAAG,CAAA;AACzC,EAAA,MAAA,CAAO,IAAA,GAAO,GAAA;AACd,EAAA,MAAA,CAAO,QAAA,GAAW,WAAA;AAClB,EAAA,QAAA,CAAS,IAAA,CAAK,YAAY,MAAM,CAAA;AAChC,EAAA,MAAA,CAAO,KAAA,EAAM;AACb,EAAA,MAAA,CAAO,MAAA,EAAO;AACd,EAAA,GAAA,CAAI,gBAAgB,GAAG,CAAA;AACzB;;ACdO,SAAS,aAAA,CAAc,EAAE,IAAA,EAAM,QAAA,EAAS,EAAyC;AACtF,EAAA,MAAM,QAAA,GAAW,MAAM,UAAA,CAAW,aAAA;AAClC,EAAA,MAAM,GAAA,GAAM,MAAM,UAAA,CAAW,QAAA;AAC7B,EAAA,MAAM,EAAE,UAAU,eAAA,EAAgB,GAAIC,4CAAmB,EAAE,WAAA,EAAa,yBAAyB,CAAA;AAEjG,EAAA,uBACEC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,+BAAA,EACb,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAAC,KAAA,EAAA,EAAI,WAAU,kBAAA,EACb,QAAA,kBAAAD,eAAA,CAACE,6BAAa,OAAA,EAAQ,OAAA,EAAQ,cAAW,eAAA,EACvC,QAAA,EAAA;AAAA,sBAAAF,eAAA;AAAA,QAACG,aAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,IAAA,EAAK,IAAA;AAAA,UACL,OAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAU,OAAO,QAAA,KAAa,QAAA;AAAA,UAC9B,SAAS,MAAM;AACb,YAAA,IAAI,OAAO,QAAA,KAAa,QAAA,EAAU,eAAA,CAAgB,QAAQ,CAAA;AAAA,UAC5D,CAAA;AAAA,UACA,YAAA,EAAW,wBAAA;AAAA,UAEV,QAAA,EAAA;AAAA,YAAA,QAAA,mBAAWF,cAAA,CAACG,qBAAA,EAAA,EAAU,CAAA,mBAAKH,cAAA,CAACI,oBAAA,EAAA,EAAS,CAAA;AAAA,YACrC,WAAW,SAAA,GAAY;AAAA;AAAA;AAAA,OAC1B;AAAA,sCACCC,yBAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAAL,cAAA;AAAA,UAACK,yBAAA,CAAa,OAAA;AAAA,UAAb;AAAA,YACC,QAAA,EAAU,OAAO,GAAA,KAAQ,QAAA;AAAA,YACzB,MAAA,kBACEL,cAAA,CAACE,aAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,IAAA,EAAK,SAAA,EAAU,OAAA,EAAQ,OAAA,EAAQ,YAAA,EAAW,oBAAA,EAC9D,QAAA,kBAAAF,cAAA,CAACM,+BAAgB,CAAA,EACnB;AAAA;AAAA,SAEJ;AAAA,wBACAN,cAAA,CAACK,0BAAa,OAAA,EAAb,EAAqB,OAAM,KAAA,EAAM,IAAA,EAAK,IAAA,EAAK,SAAA,EAAU,eAAA,EACpD,QAAA,kBAAAN,eAAA;AAAA,UAACM,yBAAA,CAAa,IAAA;AAAA,UAAb;AAAA,YACC,IAAA,EAAK,IAAA;AAAA,YACL,SAAS,MAAM;AACb,cAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,EAAU,gBAAA,CAAiB,GAAG,CAAA;AAAA,YACnD,CAAA;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAL,cAAA,CAACO,wBAAA,EAAA,EAAa,CAAA;AAAA,cAAE;AAAA;AAAA;AAAA,SAElB,EACF;AAAA,OAAA,EACF;AAAA,KAAA,EACF,CAAA,EACF,CAAA;AAAA,oBACAP,cAAA,CAAC,SAAI,SAAA,EAAU,4BAAA,EACb,yCAAC,OAAA,EAAA,EAAM,SAAA,EAAU,kBAAA,EAAoB,QAAA,EAAS,CAAA,EAChD;AAAA,GAAA,EACF,CAAA;AAEJ;;ACtDA,SAAS,SAAS,IAAA,EAAqB;AACrC,EAAA,IAAI,IAAA,CAAK,SAAS,mBAAA,EAAqB,OAAO,KAAK,IAAA,CAAK,KAAA,IAAS,KAAK,UAAU,CAAA,CAAA,CAAA;AAChF,EAAA,IAAI,OAAA,IAAW,IAAA,EAAM,OAAO,IAAA,CAAK,KAAA;AACjC,EAAA,IAAI,IAAA,CAAK,SAAS,OAAA,IAAW,IAAA,CAAK,SAAS,gBAAA,EAAkB,OAAO,KAAK,GAAA,IAAO,EAAA;AAChF,EAAA,OAAO,UAAA,IAAc,OAAO,IAAA,CAAK,QAAA,CAAS,IAAI,QAAQ,CAAA,CAAE,IAAA,CAAK,EAAE,CAAA,GAAI,EAAA;AACrE;AAEA,SAAS,IAAA,CAAK,MAAa,KAAA,EAAoC;AAC7D,EAAA,KAAA,CAAM,IAAI,CAAA;AACV,EAAA,IAAI,UAAA,IAAc,MAAM,IAAA,CAAK,QAAA,CAAS,QAAQ,CAAA,KAAA,KAAS,IAAA,CAAK,KAAA,EAAO,KAAK,CAAC,CAAA;AAC3E;AAEA,MAAM,oBAAoB,EAAE,UAAA,EAAY,CAACQ,0BAAA,EAAe,CAAA,EAAE;AAGnD,SAAS,mBAAA,GAAsB;AACpC,EAAA,OAAO,CAAC,MAAY,IAAA,KAA6B;AAC/C,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA;AAChC,IAAA,MAAM,WAAA,uBAAkB,GAAA,EAA6C;AACrE,IAAA,MAAM,SAAkB,EAAC;AACzB,IAAA,IAAA,CAAK,MAAM,CAAA,IAAA,KAAQ;AACjB,MAAA,IAAI,IAAA,CAAK,IAAA,KAAS,YAAA,IAAgB,IAAA,CAAK,SAAS,oBAAA,EAAsB;AACpE,QAAA,MAAM,MAAM,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,CAAA,EAAI,KAAK,UAAU,CAAA,CAAA;AAC3C,QAAA,IAAI,CAAC,YAAY,GAAA,CAAI,GAAG,GAAG,WAAA,CAAY,GAAA,CAAI,KAAK,IAAI,CAAA;AAAA,MACtD;AACA,MAAA,IAAI,IAAA,CAAK,IAAA,KAAS,OAAA,EAAS,MAAA,CAAO,KAAK,IAAI,CAAA;AAAA,IAC7C,CAAC,CAAA;AAED,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,KAAA,CAAM,YAAY,CAAA;AACvC,IAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,MAAA,MAAM,MAAA,GAAS,KAAA,CAAM,QAAA,CAAS,CAAC,CAAA;AAC/B,MAAA,IAAI,CAAC,QAAQ,QAAA,EAAU;AACvB,MAAA,MAAM,IAAA,GAAO,KAAA,CAAM,QAAA,CAAS,GAAA,CAAI,CAAA,GAAA,KAAO;AACrC,QAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,QAAA,EAAU,KAAA,CAAM,MAAA;AAClC,QAAA,MAAM,GAAA,GAAM,GAAA,CAAI,QAAA,EAAU,GAAA,CAAI,MAAA;AAC9B,QAAA,OAAO,KAAA,KAAU,UAAa,GAAA,KAAQ,MAAA,GAAY,SAAY,MAAA,CAAO,KAAA,CAAM,OAAO,GAAG,CAAA;AAAA,MACvF,CAAC,CAAA;AAED,MAAA,IAAI,CAAC,IAAA,CAAK,KAAA,CAAM,CAAA,GAAA,KAAO,GAAA,KAAQ,MAAS,CAAA,EAAG;AAE3C,MAAA,MAAM,SAAA,GAAY,MAAM,MAAA,CAAO,QAAA,CAAS,MAAM,IAAI,CAAA,EAAG,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAA;AAC3E,MAAA,IAAI,cAAc,MAAA,EAAW;AAC7B,MAAA,MAAM,QAAA,GAAW,CAAC,IAAA,CAAK,CAAC,CAAA,EAAG,WAAW,GAAG,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA;AACtD,MAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAC7B,MAAA,MAAM,gBAAA,GAAmB,CAAC,IAAA,KAAgB;AACxC,QAAA,IAAI,IAAA,CAAK,IAAA,KAAS,eAAA,IAAmB,IAAA,CAAK,SAAS,gBAAA,EAAkB;AACnE,UAAA,IAAA,CAAK,GAAA,CAAI,CAAA,WAAA,EAAc,IAAA,CAAK,UAAU,CAAA,CAAE,CAAA;AAAA,QAC1C,CAAA,MAAA,IAAW,IAAA,CAAK,IAAA,KAAS,mBAAA,EAAqB;AAC5C,UAAA,IAAA,CAAK,GAAA,CAAI,CAAA,mBAAA,EAAsB,IAAA,CAAK,UAAU,CAAA,CAAE,CAAA;AAAA,QAClD;AAAA,MACF,CAAA;AACA,MAAA,IAAA,CAAK,OAAO,gBAAgB,CAAA;AAG5B,MAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,QAAA,MAAM,UAAA,GAAa,WAAA,CAAY,GAAA,CAAI,GAAG,CAAA;AACtC,QAAA,IAAI,CAAC,UAAA,EAAY;AACjB,QAAA,QAAA,CAAS,KAAK,EAAA,EAAIC,8BAAA,CAAW,YAAY,iBAAiB,CAAA,CAAE,SAAS,CAAA;AACrE,QAAA,IAAA,CAAK,YAAY,gBAAgB,CAAA;AAAA,MACnC;AACA,MAAA,MAAM,KAAA,GAAQ,MAAM,QAAA,CAAS,GAAA;AAAA,QAAI,CAAA,GAAA,KAC/B,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,MAAA,CAAO,QAAA,CAAS,MAAA,EAAO,EAAG,CAAC,CAAA,EAAG,KAAA,KAAU;AAC3D,UAAA,MAAM,IAAA,GAAO,GAAA,CAAI,QAAA,CAAS,KAAK,CAAA;AAC/B,UAAA,OAAO,IAAA,GAAO,QAAA,CAAS,IAAI,CAAA,GAAI,EAAA;AAAA,QACjC,CAAC;AAAA,OACH;AACA,MAAA,KAAA,CAAM,IAAA,GAAO;AAAA,QACX,GAAG,KAAA,CAAM,IAAA;AAAA,QACT,WAAA,EAAa;AAAA,UACX,GAAG,MAAM,IAAA,EAAM,WAAA;AAAA,UACf,aAAA,EAAe,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA;AAAA,UACjC,QAAA,EAAU,WAAW,KAAK;AAAA;AAC5B,OACF;AAAA,IACF;AAAA,EACF,CAAA;AACF;;ACrDO,SAAS,eAAA,CAAgB,OAAe,SAAA,EAA4B;AACzE,EAAA,MAAM,UAAUC,qBAAA,EAAW;AAC3B,EAAA,MAAM,CAAC,SAAS,UAAU,CAAA,GAAIC,eAAS,MAAO,OAAA,IAAW,SAAA,GAAY,CAAA,GAAI,KAAM,CAAA;AAC/E,EAAA,MAAM,QAAA,GAAWC,YAAA,CAAkB,EAAE,CAAA;AACrC,EAAA,MAAM,QAAA,GAAWA,aAAO,OAAO,CAAA;AAE/B,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,QAAA,CAAS,YAAY,KAAA,EAAO;AAC9B,MAAA,QAAA,CAAS,OAAA,CAAQ,KAAK,EAAE,KAAA,EAAO,IAAI,WAAA,CAAY,GAAA,IAAO,CAAA;AACtD,MAAA,QAAA,CAAS,OAAA,GAAU,KAAA;AAAA,IACrB;AAEA,IAAA,MAAM,OAAA,GAAU,QAAA,CAAS,OAAA,CAAQ,CAAC,CAAA;AAClC,IAAA,IAAI,CAAC,OAAA,EAAS;AAEd,IAAA,MAAM,KAAA,GAAQ,UAAA;AAAA,MACZ,MAAM;AACJ,QAAA,QAAA,CAAS,QAAQ,KAAA,EAAM;AACvB,QAAA,UAAA,CAAW,QAAQ,KAAK,CAAA;AAAA,MAC1B,CAAA;AAAA,MACA,IAAA,CAAK,IAAI,CAAA,EAAG,OAAA,CAAQ,KAAKC,kBAAA,GAAc,WAAA,CAAY,KAAK;AAAA,KAC1D;AAEA,IAAA,OAAO,MAAM,aAAa,KAAK,CAAA;AAAA,EACjC,CAAA,EAAG,CAAC,OAAA,EAAS,KAAK,CAAC,CAAA;AAGnB,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,KAAK,CAAA;AAChC;;ACRO,MAAM,gBAAA,GAAmBC,UAAA,CAAK,SAASC,iBAAAA,CAAiB;AAAA,EAC7D,QAAA;AAAA,EACA,SAAA;AAAA,EACA,kBAAA,GAAqB,KAAA;AAAA,EACrB,SAAA,GAAY,KAAA;AAAA,EACZ,YAAA,GAAe;AACjB,CAAA,EAA0B;AACxB,EAAA,MAAM,KAAA,GAAQ,sBAAsB,QAAQ,CAAA;AAC5C,EAAA,MAAM,MAAA,GAASC,cAAQ,MAAM,WAAA,CAAY,KAAK,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AACxD,EAAA,MAAM,IAAA,GAAO,OAAO,MAAA,GAAS,CAAA;AAC7B,EAAA,MAAM,UAAA,GAAA,CAAc,YAAA,GAAe,gBAAA,GAAmB,kBAAA,EAAoB,kBAAkB,CAAA;AAE5F,EAAA,MAAM,KAAA,GAAQ,UAAU,MAAM,CAAA;AAC9B,EAAA,MAAM,OAAA,GAAU,gBAAgB,KAAA,CAAM,EAAA,CAAG,EAAE,CAAA,EAAG,GAAA,IAAO,GAAG,SAAS,CAAA;AAIjE,EAAA,MAAM,YAAA,GAAe,CAAC,IAAA,KACpB,CAAC,QAAQ,OAAA,IAAW,IAAA,CAAK,GAAA,GAAM,MAAA,GAAY,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,OAAA,GAAU,KAAK,KAAK,CAAA;AAE7E,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAI,CAAA,IAAK,EAAA;AAC7B,EAAA,MAAM,MAAA,GAASA,aAAA,CAAQ,MAAO,SAAA,GAAY,MAAA,CAAO,IAAA,EAAM,cAAc,CAAA,GAAI,IAAA,EAAO,CAAC,SAAA,EAAW,IAAI,CAAC,CAAA;AAEjG,EAAA,uBACEjB,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWkB,WAAA,CAAG,iBAAA,EAAmB,SAAS,CAAA,EAC5C,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,EAAO,KAAA,qBAClBlB,cAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MAEC,OAAA,EAAS,KAAA,KAAU,IAAA,GAAO,MAAA,GAAS,KAAA;AAAA,MACnC,YAAA,EAAc,YAAA,CAAa,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,MACvC,UAAA;AAAA,MACA,SAAA;AAAA,MACA;AAAA,KAAA;AAAA,IALK;AAAA,GAOR,CAAA,EACH,CAAA;AAEJ,CAAC;AAGD,MAAM,aAAA,GAAgBe,UAAA,CAAK,SAASI,cAAAA,CAAc;AAAA,EAChD,UAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAMG;AACD,EAAA,MAAM,aAAA,GAAgBF,aAAA;AAAA,IACpB,MAAO,YAAA,KAAiB,MAAA,GAAY,UAAU,CAAC,cAAA,CAAe,YAAY,CAAC,CAAA;AAAA,IAC3E,CAAC,YAAY;AAAA,GACf;AAEA,EAAA,uBACEjB,cAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAe,YAAA,IAAgB,CAAC,SAAA,GAAY,uBAAA,GAA0B,cAAA;AAAA,MACtE,aAAA;AAAA,MACA,UAAA;AAAA,MAEC,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ,CAAC,CAAA;AAED,MAAM,UAAoC,EAAC;AAY3C,SAAS,UAAU,MAAA,EAA8B;AAC/C,EAAA,IAAI,IAAA,GAAO,CAAA;AAEX,EAAA,OAAO,MAAA,CAAO,IAAI,CAAA,KAAA,KAAS;AACzB,IAAA,MAAM,IAAA,GAAO,EAAE,KAAA,EAAO,IAAA,EAAM,KAAK,IAAA,GAAO,UAAA,CAAW,KAAK,CAAA,EAAE;AAC1D,IAAA,IAAA,GAAO,IAAA,CAAK,GAAA;AAEZ,IAAA,OAAO,IAAA;AAAA,EACT,CAAC,CAAA;AACH;AAEA,SAAS,WAAW,IAAA,EAAsB;AACxC,EAAA,OAAO,IAAA,CAAK,KAAA,CAAM,MAAM,CAAA,EAAG,MAAA,IAAU,CAAA;AACvC;AAIA,SAAS,sBAAsB,IAAA,EAAsB;AACnD,EAAA,OAAO,IAAA,CAAK,SAAS,IAAI,CAAA,GAAI,OAAO,IAAA,CAAK,OAAA,CAAQ,QAAQ,IAAI,CAAA;AAC/D;AAIA,SAAS,WAAW,IAAA,EAAwC;AAC1D,EAAA,MAAM,UAAA,GAAa,KAAK,UAAA,CAAW,SAAA;AACnC,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,UAAU,GAAG,OAAO,MAAA;AAEvC,EAAA,MAAM,QAAA,GAAW,UAAA,CAAW,IAAA,CAAK,CAAA,KAAA,KAAS,OAAO,UAAU,QAAA,IAAY,KAAA,CAAM,UAAA,CAAW,WAAW,CAAC,CAAA;AACpG,EAAA,OAAO,OAAO,QAAA,KAAa,QAAA,GAAW,SAAS,KAAA,CAAM,WAAA,CAAY,MAAM,CAAA,GAAI,MAAA;AAC7E;AAEA,SAAS,WAAW,IAAA,EAAiF;AACnG,EAAA,MAAM,KAAA,GAAQ,IAAA,EAAM,QAAA,CAAS,IAAA,CAAK,CAAA,KAAA,KAAS,MAAM,IAAA,KAAS,SAAA,IAAa,KAAA,CAAM,OAAA,KAAY,MAAM,CAAA;AAC/F,EAAA,IAAI,KAAA,EAAO,IAAA,KAAS,SAAA,EAAW,OAAO,MAAA;AAEtC,EAAA,MAAM,IAAA,GAAO,KAAA,CAAM,QAAA,CAAS,GAAA,CAAI,CAAA,KAAA,KAAU,KAAA,CAAM,IAAA,KAAS,MAAA,GAAS,KAAA,CAAM,KAAA,GAAQ,EAAG,CAAA,CAAE,KAAK,EAAE,CAAA;AAC5F,EAAA,OAAO,EAAE,IAAA,EAAM,IAAA,CAAK,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA,EAAG,QAAA,EAAU,UAAA,CAAW,KAAK,CAAA,EAAE;AACtE;AAEA,SAAS,iBAAA,CAAkB;AAAA,EACzB,IAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAIG;AACD,EAAA,MAAM,MAAA,GAAS,WAAW,IAAI,CAAA;AAC9B,EAAA,IAAI,CAAC,MAAA,EAAQ,uBAAOA,cAAA,CAAC,KAAA,EAAA,EAAI,WAAuB,QAAA,EAAS,CAAA;AAEzD,EAAA,uBACEA,cAAA;AAAA,IAACoB,mBAAA;AAAA,IAAA;AAAA,MACC,MAAM,MAAA,CAAO,IAAA;AAAA,MACb,MAAM,MAAA,CAAO,QAAA;AAAA,MACb,QAAA,EAAS,QAAA;AAAA,MACT,SAAA,EAAWF,WAAA,CAAG,kBAAA,EAAoB,SAAS,CAAA;AAAA,MAC3C,WAAA,EAAY;AAAA;AAAA,GACd;AAEJ;AAEA,MAAM,qBAAA,GAAwB,6DAAA;AAE9B,SAAS,iBAAiB,KAAA,EAA4B;AACpD,EAAA,OAAO,KAAA,CAAM,MAAA,KAAW,CAAA,IAAK,CAAC,KAAA,CAAM,OAAA,IAAW,CAAC,KAAA,CAAM,OAAA,IAAW,CAAC,KAAA,CAAM,QAAA,IAAY,CAAC,KAAA,CAAM,MAAA;AAC7F;AAEA,SAAS,aAAa,kBAAA,EAA8E;AAClG,EAAA,OAAO,SAAS,YAAA,CAAa,EAAE,IAAA,EAAM,KAAA,EAAO,UAAS,EAAG;AACtD,IAAA,MAAM,UAAA,GAAa,eAAA,CAAgB,IAAA,CAAK,IAAA,IAAQ,EAAE,CAAA;AAElD,IAAA,MAAM,cAAoD,CAAA,KAAA,KAAS;AACjE,MAAA,IAAI,CAAC,UAAA,IAAc,kBAAA,KAAuB,YAAY,CAAC,gBAAA,CAAiB,KAAK,CAAA,EAAG;AAEhF,MAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,IAAA,EAAM,UAAU,qBAAqB,CAAA;AAC/D,MAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,MAAA,KAAA,CAAM,MAAA,GAAS,IAAA;AACf,MAAA,KAAA,CAAM,cAAA,EAAe;AAAA,IACvB,CAAA;AAEA,IAAA,uBACElB,cAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,IAAA;AAAA,QACA,KAAA;AAAA,QACA,OAAA,EAAS,WAAA;AAAA,QACT,MAAA,EAAQ,aAAa,QAAA,GAAW,MAAA;AAAA,QAChC,GAAA,EAAK,aAAa,qBAAA,GAAwB,MAAA;AAAA,QAEzC;AAAA;AAAA,KACH;AAAA,EAEJ,CAAA;AACF;AAEA,MAAM,cAAA,GAAiB,CAAC,SAAS,CAAA;AACjC,MAAM,uBAAA,GAA0B,CAAC,SAAA,EAAW,mBAAmB,CAAA;AAK/D,MAAM,cAAA,GAAiB,EAAE,KAAA,EAAO,KAAA,EAAO,UAAU,WAAA,EAAY;AAK7D,MAAM,UAAA,GAAyB;AAAA,EAC7B,GAAA,EAAK,iBAAA;AAAA,EACL,CAAA,EAAG,aAAa,KAAK;AACvB,CAAA;AAEA,MAAM,iBAAA,GAAgC;AAAA,EACpC,GAAG,UAAA;AAAA,EACH,CAAA,EAAG,aAAa,QAAQ;AAC1B,CAAA;AAEA,MAAM,kBAAA,GAAqB,EAAE,GAAA,EAAK,UAAA,EAAY,QAAQ,iBAAA,EAAkB;AACxE,MAAM,gBAAA,GAAmB;AAAA,EACvB,GAAA,EAAK,EAAE,GAAG,UAAA,EAAY,OAAO,aAAA,EAAc;AAAA,EAC3C,MAAA,EAAQ,EAAE,GAAG,iBAAA,EAAmB,OAAO,aAAA;AACzC,CAAA;;;;"}
|
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, useRef, useEffect, memo, useMemo } from 'react';
|
|
3
|
+
import Markdown from 'react-markdown';
|
|
4
|
+
import remarkGfm from 'remark-gfm';
|
|
5
|
+
import remend from 'remend';
|
|
6
|
+
import { ARRIVING_CLASS, ARRIVING_MS } from './tokens.es.js';
|
|
7
|
+
import { a as useWatched } from './use-watched-CG9KoWl3.js';
|
|
8
|
+
import { CheckIcon, CopyIcon, ChevronDownIcon, DownloadIcon } from 'lucide-react';
|
|
9
|
+
import { B as Button } from './Button-DS6O6fvU.js';
|
|
10
|
+
import { B as ButtonsGroup } from './buttons-group-t7AODlO9.js';
|
|
11
|
+
import { D as DropdownMenu } from './dropdown-menu-B3nTlFnz.js';
|
|
12
|
+
import { useCopyToClipboard } from './hooks/use-copy-to-clipboard.es.js';
|
|
13
|
+
import { gfmToMarkdown } from 'mdast-util-gfm';
|
|
14
|
+
import { toMarkdown } from 'mdast-util-to-markdown';
|
|
15
|
+
import { C as CodeBlock } from './code-block-BBG-Zv3I.js';
|
|
16
|
+
import { c as cn } from './cn-C6s2yXwM.js';
|
|
17
|
+
|
|
18
|
+
import './markdown-renderer.css';const UNBROKEN = /* @__PURE__ */ new Set(["pre", "code"]);
|
|
19
|
+
const wrap = (value, arriving) => ({
|
|
20
|
+
type: "element",
|
|
21
|
+
tagName: "span",
|
|
22
|
+
properties: arriving ? { className: [ARRIVING_CLASS] } : {},
|
|
23
|
+
children: [{ type: "text", value }]
|
|
24
|
+
});
|
|
25
|
+
function markArriving(node) {
|
|
26
|
+
const classes = node.properties.className;
|
|
27
|
+
node.properties.className = Array.isArray(classes) ? [...classes, ARRIVING_CLASS] : [ARRIVING_CLASS];
|
|
28
|
+
}
|
|
29
|
+
function rebuild(nodes, arriving) {
|
|
30
|
+
const out = [];
|
|
31
|
+
for (const node of nodes) {
|
|
32
|
+
if (node.type === "text") {
|
|
33
|
+
for (const piece of node.value.match(/\S+|\s+/g) ?? []) {
|
|
34
|
+
if (/\S/.test(piece)) out.push(wrap(piece, arriving()));
|
|
35
|
+
else out.push({ type: "text", value: piece });
|
|
36
|
+
}
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
out.push(node);
|
|
40
|
+
if (node.type !== "element") continue;
|
|
41
|
+
if (!UNBROKEN.has(node.tagName)) node.children = rebuild(node.children, arriving);
|
|
42
|
+
else if (arriving()) markArriving(node);
|
|
43
|
+
}
|
|
44
|
+
return out;
|
|
45
|
+
}
|
|
46
|
+
function rehypeArriving(settled) {
|
|
47
|
+
return function attach() {
|
|
48
|
+
return (tree) => {
|
|
49
|
+
let word = 0;
|
|
50
|
+
tree.children = rebuild(tree.children, () => word++ >= settled);
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const FENCE_OPEN = /^ {0,3}(`{3,}|~{3,})/;
|
|
56
|
+
const FENCE_CLOSE = /^ {0,3}(`{3,}|~{3,})[ \t]*$/;
|
|
57
|
+
const LIST_ITEM = /^ {0,3}(?:[-*+]|\d{1,9}[.)])(?:[ \t]|$)/;
|
|
58
|
+
const INDENTED = /^(?:\t| {2,})/;
|
|
59
|
+
const DEFINITION = /^ {0,3}\[[^\]]+\]:/;
|
|
60
|
+
function fenceOpenedBy(line) {
|
|
61
|
+
return FENCE_OPEN.exec(line)?.[1];
|
|
62
|
+
}
|
|
63
|
+
function closesFence(line, marker) {
|
|
64
|
+
return FENCE_CLOSE.exec(line)?.[1]?.startsWith(marker) ?? false;
|
|
65
|
+
}
|
|
66
|
+
function startsBlock(line, inList) {
|
|
67
|
+
if (INDENTED.test(line)) return false;
|
|
68
|
+
return !(inList && LIST_ITEM.test(line));
|
|
69
|
+
}
|
|
70
|
+
function splitBlocks(markdown) {
|
|
71
|
+
const lines = markdown.split("\n");
|
|
72
|
+
const starts = [0];
|
|
73
|
+
let fence;
|
|
74
|
+
let started = false;
|
|
75
|
+
let broken = false;
|
|
76
|
+
let inList = false;
|
|
77
|
+
for (const [index, line] of lines.entries()) {
|
|
78
|
+
if (fence) {
|
|
79
|
+
if (closesFence(line, fence)) fence = void 0;
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (line.trim() === "") {
|
|
83
|
+
broken = started;
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (DEFINITION.test(line)) return [markdown];
|
|
87
|
+
if (broken && startsBlock(line, inList)) {
|
|
88
|
+
starts.push(index);
|
|
89
|
+
started = false;
|
|
90
|
+
}
|
|
91
|
+
if (!started) inList = LIST_ITEM.test(line);
|
|
92
|
+
started = true;
|
|
93
|
+
broken = false;
|
|
94
|
+
fence = fenceOpenedBy(line);
|
|
95
|
+
}
|
|
96
|
+
return starts.map((start, position) => {
|
|
97
|
+
const end = starts[position + 1];
|
|
98
|
+
const block = lines.slice(start, end ?? lines.length).join("\n");
|
|
99
|
+
return end === void 0 ? block : `${block}
|
|
100
|
+
`;
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function spreadsheetCell(value) {
|
|
105
|
+
const numeric = /^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i.test(value.trim());
|
|
106
|
+
const formula = /^[\s\uFEFF]*[=+\-@=+-@]/u.test(value);
|
|
107
|
+
const controlPrefix = /^[\t\r\n]/.test(value);
|
|
108
|
+
const safe = controlPrefix || formula && !numeric ? `'${value}` : value;
|
|
109
|
+
return `"${safe.replaceAll('"', '""')}"`;
|
|
110
|
+
}
|
|
111
|
+
function tableToCsv(rows) {
|
|
112
|
+
return rows.map((row) => row.map(spreadsheetCell).join(",")).join("\r\n");
|
|
113
|
+
}
|
|
114
|
+
function downloadTableCsv(csv) {
|
|
115
|
+
const blob = new Blob(["\uFEFF", csv], { type: "text/csv;charset=utf-8" });
|
|
116
|
+
const url = URL.createObjectURL(blob);
|
|
117
|
+
const anchor = document.createElement("a");
|
|
118
|
+
anchor.href = url;
|
|
119
|
+
anchor.download = "table.csv";
|
|
120
|
+
document.body.appendChild(anchor);
|
|
121
|
+
anchor.click();
|
|
122
|
+
anchor.remove();
|
|
123
|
+
URL.revokeObjectURL(url);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function MarkdownTable({ node, children }) {
|
|
127
|
+
const markdown = node?.properties.tableMarkdown;
|
|
128
|
+
const csv = node?.properties.tableCsv;
|
|
129
|
+
const { isCopied, copyToClipboard } = useCopyToClipboard({ copyMessage: "Copied table markdown" });
|
|
130
|
+
return /* @__PURE__ */ jsxs("div", { className: "my-3 w-fit max-w-full min-w-0", children: [
|
|
131
|
+
/* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxs(ButtonsGroup, { spacing: "close", "aria-label": "Table actions", children: [
|
|
132
|
+
/* @__PURE__ */ jsxs(
|
|
133
|
+
Button,
|
|
134
|
+
{
|
|
135
|
+
type: "button",
|
|
136
|
+
size: "xs",
|
|
137
|
+
variant: "ghost",
|
|
138
|
+
disabled: typeof markdown !== "string",
|
|
139
|
+
onClick: () => {
|
|
140
|
+
if (typeof markdown === "string") copyToClipboard(markdown);
|
|
141
|
+
},
|
|
142
|
+
"aria-label": "Copy table as markdown",
|
|
143
|
+
children: [
|
|
144
|
+
isCopied ? /* @__PURE__ */ jsx(CheckIcon, {}) : /* @__PURE__ */ jsx(CopyIcon, {}),
|
|
145
|
+
isCopied ? "Copied!" : "Copy table as markdown"
|
|
146
|
+
]
|
|
147
|
+
}
|
|
148
|
+
),
|
|
149
|
+
/* @__PURE__ */ jsxs(DropdownMenu, { children: [
|
|
150
|
+
/* @__PURE__ */ jsx(
|
|
151
|
+
DropdownMenu.Trigger,
|
|
152
|
+
{
|
|
153
|
+
disabled: typeof csv !== "string",
|
|
154
|
+
render: /* @__PURE__ */ jsx(Button, { type: "button", size: "icon-xs", variant: "ghost", "aria-label": "More table options", children: /* @__PURE__ */ jsx(ChevronDownIcon, {}) })
|
|
155
|
+
}
|
|
156
|
+
),
|
|
157
|
+
/* @__PURE__ */ jsx(DropdownMenu.Content, { align: "end", size: "sm", className: "w-max min-w-0", children: /* @__PURE__ */ jsxs(
|
|
158
|
+
DropdownMenu.Item,
|
|
159
|
+
{
|
|
160
|
+
size: "sm",
|
|
161
|
+
onClick: () => {
|
|
162
|
+
if (typeof csv === "string") downloadTableCsv(csv);
|
|
163
|
+
},
|
|
164
|
+
children: [
|
|
165
|
+
/* @__PURE__ */ jsx(DownloadIcon, {}),
|
|
166
|
+
"Download CSV"
|
|
167
|
+
]
|
|
168
|
+
}
|
|
169
|
+
) })
|
|
170
|
+
] })
|
|
171
|
+
] }) }),
|
|
172
|
+
/* @__PURE__ */ jsx("div", { className: "max-w-full overflow-x-auto", children: /* @__PURE__ */ jsx("table", { className: "table min-w-full", children }) })
|
|
173
|
+
] });
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
function cellText(node) {
|
|
177
|
+
if (node.type === "footnoteReference") return `[^${node.label ?? node.identifier}]`;
|
|
178
|
+
if ("value" in node) return node.value;
|
|
179
|
+
if (node.type === "image" || node.type === "imageReference") return node.alt ?? "";
|
|
180
|
+
return "children" in node ? node.children.map(cellText).join("") : "";
|
|
181
|
+
}
|
|
182
|
+
function walk(node, visit) {
|
|
183
|
+
visit(node);
|
|
184
|
+
if ("children" in node) node.children.forEach((child) => walk(child, visit));
|
|
185
|
+
}
|
|
186
|
+
const SERIALIZE_OPTIONS = { extensions: [gfmToMarkdown()] };
|
|
187
|
+
function remarkTableMarkdown() {
|
|
188
|
+
return (tree, file) => {
|
|
189
|
+
const source = String(file.value);
|
|
190
|
+
const definitions = /* @__PURE__ */ new Map();
|
|
191
|
+
const tables = [];
|
|
192
|
+
walk(tree, (node) => {
|
|
193
|
+
if (node.type === "definition" || node.type === "footnoteDefinition") {
|
|
194
|
+
const key = `${node.type}:${node.identifier}`;
|
|
195
|
+
if (!definitions.has(key)) definitions.set(key, node);
|
|
196
|
+
}
|
|
197
|
+
if (node.type === "table") tables.push(node);
|
|
198
|
+
});
|
|
199
|
+
const lines = source.split(/\r\n|\r|\n/);
|
|
200
|
+
for (const table of tables) {
|
|
201
|
+
const header = table.children[0];
|
|
202
|
+
if (!header?.position) continue;
|
|
203
|
+
const rows = table.children.map((row) => {
|
|
204
|
+
const start = row.position?.start.offset;
|
|
205
|
+
const end = row.position?.end.offset;
|
|
206
|
+
return start === void 0 || end === void 0 ? void 0 : source.slice(start, end);
|
|
207
|
+
});
|
|
208
|
+
if (!rows.every((row) => row !== void 0)) continue;
|
|
209
|
+
const delimiter = lines[header.position.start.line]?.replace(/^[\t >]*/, "");
|
|
210
|
+
if (delimiter === void 0) continue;
|
|
211
|
+
const markdown = [rows[0], delimiter, ...rows.slice(1)];
|
|
212
|
+
const used = /* @__PURE__ */ new Set();
|
|
213
|
+
const collectReference = (node) => {
|
|
214
|
+
if (node.type === "linkReference" || node.type === "imageReference") {
|
|
215
|
+
used.add(`definition:${node.identifier}`);
|
|
216
|
+
} else if (node.type === "footnoteReference") {
|
|
217
|
+
used.add(`footnoteDefinition:${node.identifier}`);
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
walk(table, collectReference);
|
|
221
|
+
for (const key of used) {
|
|
222
|
+
const definition = definitions.get(key);
|
|
223
|
+
if (!definition) continue;
|
|
224
|
+
markdown.push("", toMarkdown(definition, SERIALIZE_OPTIONS).trimEnd());
|
|
225
|
+
walk(definition, collectReference);
|
|
226
|
+
}
|
|
227
|
+
const cells = table.children.map(
|
|
228
|
+
(row) => Array.from({ length: header.children.length }, (_, index) => {
|
|
229
|
+
const cell = row.children[index];
|
|
230
|
+
return cell ? cellText(cell) : "";
|
|
231
|
+
})
|
|
232
|
+
);
|
|
233
|
+
table.data = {
|
|
234
|
+
...table.data,
|
|
235
|
+
hProperties: {
|
|
236
|
+
...table.data?.hProperties,
|
|
237
|
+
tableMarkdown: markdown.join("\n"),
|
|
238
|
+
tableCsv: tableToCsv(cells)
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
function useSettledWords(words, streaming) {
|
|
246
|
+
const watched = useWatched();
|
|
247
|
+
const [settled, setSettled] = useState(() => watched && streaming ? 0 : words);
|
|
248
|
+
const landings = useRef([]);
|
|
249
|
+
const recorded = useRef(settled);
|
|
250
|
+
useEffect(() => {
|
|
251
|
+
if (recorded.current !== words) {
|
|
252
|
+
landings.current.push({ words, at: performance.now() });
|
|
253
|
+
recorded.current = words;
|
|
254
|
+
}
|
|
255
|
+
const waiting = landings.current[0];
|
|
256
|
+
if (!waiting) return;
|
|
257
|
+
const timer = setTimeout(
|
|
258
|
+
() => {
|
|
259
|
+
landings.current.shift();
|
|
260
|
+
setSettled(waiting.words);
|
|
261
|
+
},
|
|
262
|
+
Math.max(0, waiting.at + ARRIVING_MS - performance.now())
|
|
263
|
+
);
|
|
264
|
+
return () => clearTimeout(timer);
|
|
265
|
+
}, [settled, words]);
|
|
266
|
+
return Math.min(settled, words);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
const MarkdownRenderer = memo(function MarkdownRenderer2({
|
|
270
|
+
children,
|
|
271
|
+
className,
|
|
272
|
+
externalLinkTarget = "tab",
|
|
273
|
+
streaming = false,
|
|
274
|
+
tableActions = false
|
|
275
|
+
}) {
|
|
276
|
+
const shown = decodeEscapedNewlines(children);
|
|
277
|
+
const blocks = useMemo(() => splitBlocks(shown), [shown]);
|
|
278
|
+
const last = blocks.length - 1;
|
|
279
|
+
const components = (tableActions ? TABLE_COMPONENTS : DEFAULT_COMPONENTS)[externalLinkTarget];
|
|
280
|
+
const spans = wordSpans(blocks);
|
|
281
|
+
const settled = useSettledWords(spans.at(-1)?.end ?? 0, streaming);
|
|
282
|
+
const settledWords = (span) => !span || settled >= span.end ? void 0 : Math.max(0, settled - span.start);
|
|
283
|
+
const tail = blocks[last] ?? "";
|
|
284
|
+
const mended = useMemo(() => streaming ? remend(tail, REMEND_OPTIONS) : tail, [streaming, tail]);
|
|
285
|
+
return /* @__PURE__ */ jsx("div", { className: cn("mastra-markdown", className), children: blocks.map((block, index) => /* @__PURE__ */ jsx(
|
|
286
|
+
MarkdownBlock,
|
|
287
|
+
{
|
|
288
|
+
content: index === last ? mended : block,
|
|
289
|
+
settledWords: settledWords(spans[index]),
|
|
290
|
+
components,
|
|
291
|
+
streaming,
|
|
292
|
+
tableActions
|
|
293
|
+
},
|
|
294
|
+
index
|
|
295
|
+
)) });
|
|
296
|
+
});
|
|
297
|
+
const MarkdownBlock = memo(function MarkdownBlock2({
|
|
298
|
+
components,
|
|
299
|
+
content,
|
|
300
|
+
settledWords,
|
|
301
|
+
streaming,
|
|
302
|
+
tableActions
|
|
303
|
+
}) {
|
|
304
|
+
const rehypePlugins = useMemo(
|
|
305
|
+
() => settledWords === void 0 ? SETTLED : [rehypeArriving(settledWords)],
|
|
306
|
+
[settledWords]
|
|
307
|
+
);
|
|
308
|
+
return /* @__PURE__ */ jsx(
|
|
309
|
+
Markdown,
|
|
310
|
+
{
|
|
311
|
+
remarkPlugins: tableActions && !streaming ? COPYABLE_REMARK_PLUGINS : REMARK_PLUGINS,
|
|
312
|
+
rehypePlugins,
|
|
313
|
+
components,
|
|
314
|
+
children: content
|
|
315
|
+
}
|
|
316
|
+
);
|
|
317
|
+
});
|
|
318
|
+
const SETTLED = [];
|
|
319
|
+
function wordSpans(blocks) {
|
|
320
|
+
let read = 0;
|
|
321
|
+
return blocks.map((block) => {
|
|
322
|
+
const span = { start: read, end: read + countWords(block) };
|
|
323
|
+
read = span.end;
|
|
324
|
+
return span;
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
function countWords(text) {
|
|
328
|
+
return text.match(/\S+/g)?.length ?? 0;
|
|
329
|
+
}
|
|
330
|
+
function decodeEscapedNewlines(text) {
|
|
331
|
+
return text.includes("\n") ? text : text.replace(/\\n/g, "\n");
|
|
332
|
+
}
|
|
333
|
+
function languageOf(node) {
|
|
334
|
+
const classNames = node.properties.className;
|
|
335
|
+
if (!Array.isArray(classNames)) return void 0;
|
|
336
|
+
const language = classNames.find((entry) => typeof entry === "string" && entry.startsWith("language-"));
|
|
337
|
+
return typeof language === "string" ? language.slice("language-".length) : void 0;
|
|
338
|
+
}
|
|
339
|
+
function fencedCode(node) {
|
|
340
|
+
const child = node?.children.find((entry) => entry.type === "element" && entry.tagName === "code");
|
|
341
|
+
if (child?.type !== "element") return void 0;
|
|
342
|
+
const code = child.children.map((entry) => entry.type === "text" ? entry.value : "").join("");
|
|
343
|
+
return { code: code.replace(/\n$/, ""), language: languageOf(child) };
|
|
344
|
+
}
|
|
345
|
+
function MarkdownCodeBlock({
|
|
346
|
+
node,
|
|
347
|
+
children,
|
|
348
|
+
className
|
|
349
|
+
}) {
|
|
350
|
+
const fenced = fencedCode(node);
|
|
351
|
+
if (!fenced) return /* @__PURE__ */ jsx("pre", { className, children });
|
|
352
|
+
return /* @__PURE__ */ jsx(
|
|
353
|
+
CodeBlock,
|
|
354
|
+
{
|
|
355
|
+
code: fenced.code,
|
|
356
|
+
lang: fenced.language,
|
|
357
|
+
overflow: "scroll",
|
|
358
|
+
className: cn("my-3 bg-surface1", className),
|
|
359
|
+
copyMessage: "Copied code to clipboard"
|
|
360
|
+
}
|
|
361
|
+
);
|
|
362
|
+
}
|
|
363
|
+
const POPUP_WINDOW_FEATURES = "popup=yes,width=720,height=800,resizable=yes,scrollbars=yes";
|
|
364
|
+
function isPlainLeftClick(event) {
|
|
365
|
+
return event.button === 0 && !event.metaKey && !event.ctrlKey && !event.shiftKey && !event.altKey;
|
|
366
|
+
}
|
|
367
|
+
function markdownLink(externalLinkTarget) {
|
|
368
|
+
return function MarkdownLink({ href, title, children }) {
|
|
369
|
+
const isExternal = /^https?:\/\//i.test(href ?? "");
|
|
370
|
+
const openInPopup = (event) => {
|
|
371
|
+
if (!isExternal || externalLinkTarget !== "window" || !isPlainLeftClick(event)) return;
|
|
372
|
+
const popup = window.open(href, "_blank", POPUP_WINDOW_FEATURES);
|
|
373
|
+
if (!popup) return;
|
|
374
|
+
popup.opener = null;
|
|
375
|
+
event.preventDefault();
|
|
376
|
+
};
|
|
377
|
+
return /* @__PURE__ */ jsx(
|
|
378
|
+
"a",
|
|
379
|
+
{
|
|
380
|
+
href,
|
|
381
|
+
title,
|
|
382
|
+
onClick: openInPopup,
|
|
383
|
+
target: isExternal ? "_blank" : void 0,
|
|
384
|
+
rel: isExternal ? "noopener noreferrer" : void 0,
|
|
385
|
+
children
|
|
386
|
+
}
|
|
387
|
+
);
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
const REMARK_PLUGINS = [remarkGfm];
|
|
391
|
+
const COPYABLE_REMARK_PLUGINS = [remarkGfm, remarkTableMarkdown];
|
|
392
|
+
const REMEND_OPTIONS = { katex: false, linkMode: "text-only" };
|
|
393
|
+
const COMPONENTS = {
|
|
394
|
+
pre: MarkdownCodeBlock,
|
|
395
|
+
a: markdownLink("tab")
|
|
396
|
+
};
|
|
397
|
+
const WINDOW_COMPONENTS = {
|
|
398
|
+
...COMPONENTS,
|
|
399
|
+
a: markdownLink("window")
|
|
400
|
+
};
|
|
401
|
+
const DEFAULT_COMPONENTS = { tab: COMPONENTS, window: WINDOW_COMPONENTS };
|
|
402
|
+
const TABLE_COMPONENTS = {
|
|
403
|
+
tab: { ...COMPONENTS, table: MarkdownTable },
|
|
404
|
+
window: { ...WINDOW_COMPONENTS, table: MarkdownTable }
|
|
405
|
+
};
|
|
406
|
+
|
|
407
|
+
export { MarkdownRenderer as M };
|
|
408
|
+
//# sourceMappingURL=markdown-renderer-SVeQ5Uo_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-renderer-SVeQ5Uo_.js","sources":["../src/ds/components/MarkdownRenderer/arriving.ts","../src/ds/components/MarkdownRenderer/blocks.ts","../src/ds/components/MarkdownRenderer/table-csv.ts","../src/ds/components/MarkdownRenderer/markdown-table.tsx","../src/ds/components/MarkdownRenderer/table-markdown.ts","../src/ds/components/MarkdownRenderer/use-settled.ts","../src/ds/components/MarkdownRenderer/markdown-renderer.tsx"],"sourcesContent":["import type { ExtraProps } from 'react-markdown';\n\nimport { ARRIVING_CLASS } from '@/ds/tokens';\n\nimport '@/ds/components/Arrival/arrival.css';\n\ntype MarkdownElement = NonNullable<ExtraProps['node']>;\ntype MarkdownChild = MarkdownElement['children'][number];\n\n/** Fades whole: a fence renders through `CodeBlock`, and inline code carries a background. */\nconst UNBROKEN = new Set(['pre', 'code']);\n\nconst wrap = (value: string, arriving: boolean): MarkdownChild => ({\n type: 'element',\n tagName: 'span',\n properties: arriving ? { className: [ARRIVING_CLASS] } : {},\n children: [{ type: 'text', value }],\n});\n\nfunction markArriving(node: MarkdownElement): void {\n const classes = node.properties.className;\n\n node.properties.className = Array.isArray(classes) ? [...classes, ARRIVING_CLASS] : [ARRIVING_CLASS];\n}\n\nfunction rebuild(nodes: MarkdownChild[], arriving: () => boolean): MarkdownChild[] {\n const out: MarkdownChild[] = [];\n\n for (const node of nodes) {\n if (node.type === 'text') {\n for (const piece of node.value.match(/\\S+|\\s+/g) ?? []) {\n if (/\\S/.test(piece)) out.push(wrap(piece, arriving()));\n else out.push({ type: 'text', value: piece });\n }\n\n continue;\n }\n\n out.push(node);\n\n if (node.type !== 'element') continue;\n\n if (!UNBROKEN.has(node.tagName)) node.children = rebuild(node.children, arriving);\n else if (arriving()) markArriving(node);\n }\n\n return out;\n}\n\n/**\n * Gives every word of a block an element of its own, and the entrance class to\n * those past the first `settled` — the words that were not on screen yet when\n * the reader joined this reply.\n *\n * Every word, not just the arriving ones: react-markdown parses afresh on each\n * landing and React matches the children it already mounted by position, so a\n * wrapper that came and went would land where a bare text node used to be and\n * remount half the paragraph, replaying entrances that had long finished.\n * Wrapping the lot keeps every position fixed — a new word only ever appends —\n * and a word never gains the class it did not mount with, so nothing replays.\n */\nexport function rehypeArriving(settled: number) {\n return function attach() {\n return (tree: { children: MarkdownChild[] }) => {\n let word = 0;\n\n tree.children = rebuild(tree.children, () => word++ >= settled);\n };\n };\n}\n","const FENCE_OPEN = /^ {0,3}(`{3,}|~{3,})/;\nconst FENCE_CLOSE = /^ {0,3}(`{3,}|~{3,})[ \\t]*$/;\nconst LIST_ITEM = /^ {0,3}(?:[-*+]|\\d{1,9}[.)])(?:[ \\t]|$)/;\nconst INDENTED = /^(?:\\t| {2,})/;\nconst DEFINITION = /^ {0,3}\\[[^\\]]+\\]:/;\n\nfunction fenceOpenedBy(line: string): string | undefined {\n return FENCE_OPEN.exec(line)?.[1];\n}\n\n// Both are runs of one character, so `startsWith` is \"same marker, at least as long\".\nfunction closesFence(line: string, marker: string): boolean {\n return FENCE_CLOSE.exec(line)?.[1]?.startsWith(marker) ?? false;\n}\n\nfunction startsBlock(line: string, inList: boolean): boolean {\n if (INDENTED.test(line)) return false;\n\n return !(inList && LIST_ITEM.test(line));\n}\n\n/**\n * Cuts markdown into top-level blocks so a growing reply re-parses its last\n * block instead of all of them. Rejoining the result returns the input, and\n * every block renders as it would have inside the whole.\n *\n * Each rule only ever merges: over-merging costs a re-parse, while cutting a\n * construct in two changes what it renders as. Link reference and footnote\n * definitions resolve across blank lines, which no line-level rule can see, so\n * reaching one outside a fence abandons the split for the whole text.\n */\nexport function splitBlocks(markdown: string): string[] {\n const lines = markdown.split('\\n');\n const starts = [0];\n let fence: string | undefined;\n let started = false;\n let broken = false;\n let inList = false;\n\n for (const [index, line] of lines.entries()) {\n if (fence) {\n if (closesFence(line, fence)) fence = undefined;\n continue;\n }\n\n if (line.trim() === '') {\n broken = started;\n continue;\n }\n\n if (DEFINITION.test(line)) return [markdown];\n\n if (broken && startsBlock(line, inList)) {\n starts.push(index);\n started = false;\n }\n\n if (!started) inList = LIST_ITEM.test(line);\n\n started = true;\n broken = false;\n fence = fenceOpenedBy(line);\n }\n\n return starts.map((start, position) => {\n const end = starts[position + 1];\n const block = lines.slice(start, end ?? lines.length).join('\\n');\n\n return end === undefined ? block : `${block}\\n`;\n });\n}\n","function spreadsheetCell(value: string): string {\n // Quoting alone does not stop spreadsheet apps from evaluating formulas.\n const numeric = /^[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i.test(value.trim());\n const formula = /^[\\s\\uFEFF]*[=+\\-@=+-@]/u.test(value);\n const controlPrefix = /^[\\t\\r\\n]/.test(value);\n const safe = controlPrefix || (formula && !numeric) ? `'${value}` : value;\n return `\"${safe.replaceAll('\"', '\"\"')}\"`;\n}\n\nexport function tableToCsv(rows: string[][]): string {\n return rows.map(row => row.map(spreadsheetCell).join(',')).join('\\r\\n');\n}\n\nexport function downloadTableCsv(csv: string): void {\n const blob = new Blob(['\\uFEFF', csv], { type: 'text/csv;charset=utf-8' });\n const url = URL.createObjectURL(blob);\n const anchor = document.createElement('a');\n anchor.href = url;\n anchor.download = 'table.csv';\n document.body.appendChild(anchor);\n anchor.click();\n anchor.remove();\n URL.revokeObjectURL(url);\n}\n","import { CheckIcon, ChevronDownIcon, CopyIcon, DownloadIcon } from 'lucide-react';\nimport type { ComponentProps } from 'react';\nimport type { ExtraProps } from 'react-markdown';\nimport { downloadTableCsv } from './table-csv';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\n\nexport function MarkdownTable({ node, children }: ComponentProps<'table'> & ExtraProps) {\n const markdown = node?.properties.tableMarkdown;\n const csv = node?.properties.tableCsv;\n const { isCopied, copyToClipboard } = useCopyToClipboard({ copyMessage: 'Copied table markdown' });\n\n return (\n <div className=\"my-3 w-fit max-w-full min-w-0\">\n <div className=\"flex justify-end\">\n <ButtonsGroup spacing=\"close\" aria-label=\"Table actions\">\n <Button\n type=\"button\"\n size=\"xs\"\n variant=\"ghost\"\n disabled={typeof markdown !== 'string'}\n onClick={() => {\n if (typeof markdown === 'string') copyToClipboard(markdown);\n }}\n aria-label=\"Copy table as markdown\"\n >\n {isCopied ? <CheckIcon /> : <CopyIcon />}\n {isCopied ? 'Copied!' : 'Copy table as markdown'}\n </Button>\n <DropdownMenu>\n <DropdownMenu.Trigger\n disabled={typeof csv !== 'string'}\n render={\n <Button type=\"button\" size=\"icon-xs\" variant=\"ghost\" aria-label=\"More table options\">\n <ChevronDownIcon />\n </Button>\n }\n />\n <DropdownMenu.Content align=\"end\" size=\"sm\" className=\"w-max min-w-0\">\n <DropdownMenu.Item\n size=\"sm\"\n onClick={() => {\n if (typeof csv === 'string') downloadTableCsv(csv);\n }}\n >\n <DownloadIcon />\n Download CSV\n </DropdownMenu.Item>\n </DropdownMenu.Content>\n </DropdownMenu>\n </ButtonsGroup>\n </div>\n <div className=\"max-w-full overflow-x-auto\">\n <table className=\"table min-w-full\">{children}</table>\n </div>\n </div>\n );\n}\n","import type { Definition, FootnoteDefinition, Nodes, Root, Table } from 'mdast';\nimport { gfmToMarkdown } from 'mdast-util-gfm';\nimport { toMarkdown } from 'mdast-util-to-markdown';\nimport { tableToCsv } from './table-csv';\n\nfunction cellText(node: Nodes): string {\n if (node.type === 'footnoteReference') return `[^${node.label ?? node.identifier}]`;\n if ('value' in node) return node.value;\n if (node.type === 'image' || node.type === 'imageReference') return node.alt ?? '';\n return 'children' in node ? node.children.map(cellText).join('') : '';\n}\n\nfunction walk(node: Nodes, visit: (node: Nodes) => void): void {\n visit(node);\n if ('children' in node) node.children.forEach(child => walk(child, visit));\n}\n\nconst SERIALIZE_OPTIONS = { extensions: [gfmToMarkdown()] };\n\n/** Capture table exports before rehype replaces text with animation spans. */\nexport function remarkTableMarkdown() {\n return (tree: Root, file: { value: unknown }) => {\n const source = String(file.value);\n const definitions = new Map<string, Definition | FootnoteDefinition>();\n const tables: Table[] = [];\n walk(tree, node => {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const key = `${node.type}:${node.identifier}`;\n if (!definitions.has(key)) definitions.set(key, node);\n }\n if (node.type === 'table') tables.push(node);\n });\n\n const lines = source.split(/\\r\\n|\\r|\\n/);\n for (const table of tables) {\n const header = table.children[0];\n if (!header?.position) continue;\n const rows = table.children.map(row => {\n const start = row.position?.start.offset;\n const end = row.position?.end.offset;\n return start === undefined || end === undefined ? undefined : source.slice(start, end);\n });\n // Only offer exports when the parser supplied the original row locations.\n if (!rows.every(row => row !== undefined)) continue;\n // Row positions exclude list/blockquote prefixes. The delimiter has no AST node.\n const delimiter = lines[header.position.start.line]?.replace(/^[\\t >]*/, '');\n if (delimiter === undefined) continue;\n const markdown = [rows[0], delimiter, ...rows.slice(1)];\n const used = new Set<string>();\n const collectReference = (node: Nodes) => {\n if (node.type === 'linkReference' || node.type === 'imageReference') {\n used.add(`definition:${node.identifier}`);\n } else if (node.type === 'footnoteReference') {\n used.add(`footnoteDefinition:${node.identifier}`);\n }\n };\n walk(table, collectReference);\n // Visiting appended definitions also collects links/footnotes they depend on.\n // The set prevents duplicates and cycles, including self-referencing footnotes.\n for (const key of used) {\n const definition = definitions.get(key);\n if (!definition) continue;\n markdown.push('', toMarkdown(definition, SERIALIZE_OPTIONS).trimEnd());\n walk(definition, collectReference);\n }\n const cells = table.children.map(row =>\n Array.from({ length: header.children.length }, (_, index) => {\n const cell = row.children[index];\n return cell ? cellText(cell) : '';\n }),\n );\n table.data = {\n ...table.data,\n hProperties: {\n ...table.data?.hProperties,\n tableMarkdown: markdown.join('\\n'),\n tableCsv: tableToCsv(cells),\n },\n };\n }\n };\n}\n","import { useEffect, useRef, useState } from 'react';\n\nimport { useWatched } from '@/ds/components/Arrival';\nimport { ARRIVING_MS } from '@/ds/tokens';\n\ninterface Landing {\n words: number;\n at: number;\n}\n\n/**\n * How many of a reply's words have been on screen long enough that their entrance is over.\n *\n * The entrance plays on whatever mounts carrying the class, so it replays every time a\n * word's element is rebuilt — and markdown rebuilds a growing tail constantly: a `-`\n * turns a paragraph into a list item, a closing `**` splits it around a `<strong>`, the\n * stream ends and the mend comes off. Each of those swaps the element a settled word\n * lives in, which is what makes a word already read fade in again.\n *\n * Ageing them out is the whole answer: a word carries the class only while it is new,\n * so however often the tail is rebuilt, only what is genuinely arriving animates.\n *\n * What counts as new at mount is not this hook's call. A reply the reader was handed\n * is already there, and a block that mounts complete — a card's output, an expanded\n * body — enters with its container. Only a passage born streaming under the reader's\n * eyes is new from its first word: the reveal often lands several words in its first\n * commit, and they enter like every word after them.\n */\nexport function useSettledWords(words: number, streaming: boolean): number {\n const watched = useWatched();\n const [settled, setSettled] = useState(() => (watched && streaming ? 0 : words));\n const landings = useRef<Landing[]>([]);\n const recorded = useRef(settled);\n\n useEffect(() => {\n if (recorded.current !== words) {\n landings.current.push({ words, at: performance.now() });\n recorded.current = words;\n }\n\n const waiting = landings.current[0];\n if (!waiting) return;\n\n const timer = setTimeout(\n () => {\n landings.current.shift();\n setSettled(waiting.words);\n },\n Math.max(0, waiting.at + ARRIVING_MS - performance.now()),\n );\n\n return () => clearTimeout(timer);\n }, [settled, words]);\n\n // A shorter reply replacing the one on screen settles at once: nothing of it is new.\n return Math.min(settled, words);\n}\n","import { memo, useMemo } from 'react';\nimport type { MouseEvent, MouseEventHandler, ReactNode } from 'react';\nimport Markdown from 'react-markdown';\nimport type { Components, ExtraProps, Options } from 'react-markdown';\nimport remarkGfm from 'remark-gfm';\nimport remend from 'remend';\n\nimport { rehypeArriving } from './arriving';\nimport { splitBlocks } from './blocks';\nimport { MarkdownTable } from './markdown-table';\nimport { remarkTableMarkdown } from './table-markdown';\nimport { useSettledWords } from './use-settled';\nimport { CodeBlock } from '@/ds/components/CodeBlock';\nimport { cn } from '@/lib/utils';\n\nimport './markdown-renderer.css';\n\nexport type MarkdownExternalLinkTarget = 'tab' | 'window';\n\nexport interface MarkdownRendererProps {\n children: string;\n className?: string;\n externalLinkTarget?: MarkdownExternalLinkTarget;\n /** The text is a prefix of one still being written: close the markers the stream has not reached. */\n streaming?: boolean;\n /** Opt in to table copy/download controls; disabled while this text is streaming. */\n tableActions?: boolean;\n}\n\n/**\n * Renders a markdown string. Agent output can carry attacker-influenced text\n * (file contents, tool output, web pages): react-markdown escapes raw HTML and\n * drops dangerous link schemes, so nothing here reaches the DOM as markup.\n *\n * react-markdown re-parses on every render, and a streaming reply re-renders\n * its whole transcript on every delta. Memoizing spares the settled messages;\n * rendering block by block — streaming or not — spares every block of the live\n * one but the last, and lets a reply settle without remounting what is already\n * on screen.\n *\n * The text is drawn as given: pacing a stream is `useRevealedText`, and belongs to\n * whoever owns the whole of what is being laid down — a reply is prose, tool rows\n * and cards, and they have to arrive in the order they were written. Only what\n * lands after the reader joined plays an entrance, and only while it is still new:\n * a reply opened part-written is already there, and fading in what someone is\n * halfway through reading would be both a lie and a screenful of animations at\n * once.\n */\nexport const MarkdownRenderer = memo(function MarkdownRenderer({\n children,\n className,\n externalLinkTarget = 'tab',\n streaming = false,\n tableActions = false,\n}: MarkdownRendererProps) {\n const shown = decodeEscapedNewlines(children);\n const blocks = useMemo(() => splitBlocks(shown), [shown]);\n const last = blocks.length - 1;\n const components = (tableActions ? TABLE_COMPONENTS : DEFAULT_COMPONENTS)[externalLinkTarget];\n\n const spans = wordSpans(blocks);\n const settled = useSettledWords(spans.at(-1)?.end ?? 0, streaming);\n\n // A block whose words have all finished their entrance has nothing left to play,\n // which is what `undefined` says: leave it as plain text, no spans at all.\n const settledWords = (span: WordSpan | undefined): number | undefined =>\n !span || settled >= span.end ? undefined : Math.max(0, settled - span.start);\n\n const tail = blocks[last] ?? '';\n const mended = useMemo(() => (streaming ? remend(tail, REMEND_OPTIONS) : tail), [streaming, tail]);\n\n return (\n <div className={cn('mastra-markdown', className)}>\n {blocks.map((block, index) => (\n <MarkdownBlock\n key={index}\n content={index === last ? mended : block}\n settledWords={settledWords(spans[index])}\n components={components}\n streaming={streaming}\n tableActions={tableActions}\n />\n ))}\n </div>\n );\n});\n\n/** Keyed by position at the call site: a content key remounts on every character. */\nconst MarkdownBlock = memo(function MarkdownBlock({\n components,\n content,\n settledWords,\n streaming,\n tableActions,\n}: {\n components: Components;\n content: string;\n settledWords?: number;\n streaming: boolean;\n tableActions: boolean;\n}) {\n const rehypePlugins = useMemo(\n () => (settledWords === undefined ? SETTLED : [rehypeArriving(settledWords)]),\n [settledWords],\n );\n\n return (\n <Markdown\n remarkPlugins={tableActions && !streaming ? COPYABLE_REMARK_PLUGINS : REMARK_PLUGINS}\n rehypePlugins={rehypePlugins}\n components={components}\n >\n {content}\n </Markdown>\n );\n});\n\nconst SETTLED: Options['rehypePlugins'] = [];\n\ninterface WordSpan {\n start: number;\n end: number;\n}\n\n/**\n * Where each block's words fall in the reply's own count, so one settled count covers\n * them all. Counting the source counts its markers too, so the boundary only ever errs\n * towards leaving a word unanimated.\n */\nfunction wordSpans(blocks: string[]): WordSpan[] {\n let read = 0;\n\n return blocks.map(block => {\n const span = { start: read, end: read + countWords(block) };\n read = span.end;\n\n return span;\n });\n}\n\nfunction countWords(text: string): number {\n return text.match(/\\S+/g)?.length ?? 0;\n}\n\n// Agent networks emit their text with literal `\\n`. Only unescape when the text\n// has no real newline, otherwise a `\"a\\nb\"` inside a code fence gets shredded.\nfunction decodeEscapedNewlines(text: string): string {\n return text.includes('\\n') ? text : text.replace(/\\\\n/g, '\\n');\n}\n\ntype MarkdownNode = NonNullable<ExtraProps['node']>;\n\nfunction languageOf(node: MarkdownNode): string | undefined {\n const classNames = node.properties.className;\n if (!Array.isArray(classNames)) return undefined;\n\n const language = classNames.find(entry => typeof entry === 'string' && entry.startsWith('language-'));\n return typeof language === 'string' ? language.slice('language-'.length) : undefined;\n}\n\nfunction fencedCode(node: MarkdownNode | undefined): { code: string; language?: string } | undefined {\n const child = node?.children.find(entry => entry.type === 'element' && entry.tagName === 'code');\n if (child?.type !== 'element') return undefined;\n\n const code = child.children.map(entry => (entry.type === 'text' ? entry.value : '')).join('');\n return { code: code.replace(/\\n$/, ''), language: languageOf(child) };\n}\n\nfunction MarkdownCodeBlock({\n node,\n children,\n className,\n}: {\n node?: MarkdownNode;\n children?: ReactNode;\n className?: string;\n}) {\n const fenced = fencedCode(node);\n if (!fenced) return <pre className={className}>{children}</pre>;\n\n return (\n <CodeBlock\n code={fenced.code}\n lang={fenced.language}\n overflow=\"scroll\"\n className={cn('my-3 bg-surface1', className)}\n copyMessage=\"Copied code to clipboard\"\n />\n );\n}\n\nconst POPUP_WINDOW_FEATURES = 'popup=yes,width=720,height=800,resizable=yes,scrollbars=yes';\n\nfunction isPlainLeftClick(event: MouseEvent): boolean {\n return event.button === 0 && !event.metaKey && !event.ctrlKey && !event.shiftKey && !event.altKey;\n}\n\nfunction markdownLink(externalLinkTarget: MarkdownExternalLinkTarget): NonNullable<Components['a']> {\n return function MarkdownLink({ href, title, children }) {\n const isExternal = /^https?:\\/\\//i.test(href ?? '');\n\n const openInPopup: MouseEventHandler<HTMLAnchorElement> = event => {\n if (!isExternal || externalLinkTarget !== 'window' || !isPlainLeftClick(event)) return;\n\n const popup = window.open(href, '_blank', POPUP_WINDOW_FEATURES);\n if (!popup) return;\n\n popup.opener = null;\n event.preventDefault();\n };\n\n return (\n <a\n href={href}\n title={title}\n onClick={openInPopup}\n target={isExternal ? '_blank' : undefined}\n rel={isExternal ? 'noopener noreferrer' : undefined}\n >\n {children}\n </a>\n );\n };\n}\n\nconst REMARK_PLUGINS = [remarkGfm];\nconst COPYABLE_REMARK_PLUGINS = [remarkGfm, remarkTableMarkdown];\n\n// Links stay text until their URL lands: remend's placeholder href would render\n// a live anchor to nowhere. No math is rendered here, so pairing `$$` would only\n// turn one literal into another.\nconst REMEND_OPTIONS = { katex: false, linkMode: 'text-only' } as const;\n\n// Elements are listed one by one: react-markdown also passes its `node`, which\n// React would forward to the DOM as a stray attribute. Everything else is\n// styled from markdown-renderer.css.\nconst COMPONENTS: Components = {\n pre: MarkdownCodeBlock,\n a: markdownLink('tab'),\n};\n\nconst WINDOW_COMPONENTS: Components = {\n ...COMPONENTS,\n a: markdownLink('window'),\n};\n\nconst DEFAULT_COMPONENTS = { tab: COMPONENTS, window: WINDOW_COMPONENTS };\nconst TABLE_COMPONENTS = {\n tab: { ...COMPONENTS, table: MarkdownTable },\n window: { ...WINDOW_COMPONENTS, table: MarkdownTable },\n};\n"],"names":["MarkdownRenderer","MarkdownBlock"],"mappings":"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"}
|