@mastra/playground-ui 60.0.0 → 60.1.0-alpha.0
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 +7 -6
- package/dist/{Badge-H8K5WrXg.cjs → Badge-D3EctKQo.cjs} +16 -8
- package/dist/Badge-D3EctKQo.cjs.map +1 -0
- package/dist/{Badge-Q_pCeeGW.js → Badge-DmOqFpXW.js} +16 -8
- package/dist/Badge-DmOqFpXW.js.map +1 -0
- package/dist/{Button-BnmR2HRc.cjs → Button-CXhSUBxN.cjs} +3 -3
- package/dist/Button-CXhSUBxN.cjs.map +1 -0
- package/dist/{Button-C6eUqcPI.js → Button-D43ghVKt.js} +3 -3
- package/dist/Button-D43ghVKt.js.map +1 -0
- package/dist/{EmptyState-CJ5KC4Db.cjs → EmptyState-CuoMGNP0.cjs} +2 -2
- package/dist/EmptyState-CuoMGNP0.cjs.map +1 -0
- package/dist/{EmptyState-CynkaZd1.js → EmptyState-DyyUFpzY.js} +2 -2
- package/dist/EmptyState-DyyUFpzY.js.map +1 -0
- package/dist/{ErrorBoundary-Bb2R5IMR.js → ErrorBoundary-BvwJY6s9.js} +2 -2
- package/dist/{ErrorBoundary-Bb2R5IMR.js.map → ErrorBoundary-BvwJY6s9.js.map} +1 -1
- package/dist/{ErrorBoundary-CKrwONAU.cjs → ErrorBoundary-D7eIMbMr.cjs} +2 -2
- package/dist/{ErrorBoundary-CKrwONAU.cjs.map → ErrorBoundary-D7eIMbMr.cjs.map} +1 -1
- package/dist/{Notice-Ce3r5x-7.js → Notice-B8RIClJD.js} +2 -2
- package/dist/{Notice-Ce3r5x-7.js.map → Notice-B8RIClJD.js.map} +1 -1
- package/dist/{Notice-CEBwitdf.cjs → Notice-C4Tgmtgb.cjs} +2 -2
- package/dist/{Notice-CEBwitdf.cjs.map → Notice-C4Tgmtgb.cjs.map} +1 -1
- package/dist/{activity-Duth8KP_.js → activity-BoXbE4Kz.js} +3 -3
- package/dist/activity-BoXbE4Kz.js.map +1 -0
- package/dist/{activity-8egTNbaI.cjs → activity-CbQG59Oc.cjs} +3 -3
- package/dist/activity-CbQG59Oc.cjs.map +1 -0
- package/dist/{alert-dialog-D1UYVW__.js → alert-dialog-CzRo39mH.js} +3 -3
- package/dist/{alert-dialog-D1UYVW__.js.map → alert-dialog-CzRo39mH.js.map} +1 -1
- package/dist/{alert-dialog-BcOSIOSW.cjs → alert-dialog-DC-Fapxf.cjs} +3 -3
- package/dist/{alert-dialog-BcOSIOSW.cjs.map → alert-dialog-DC-Fapxf.cjs.map} +1 -1
- package/dist/{ask-user-DJXmLJzy.cjs → ask-user-CXu4b7Jw.cjs} +4 -4
- package/dist/ask-user-CXu4b7Jw.cjs.map +1 -0
- package/dist/{ask-user-Crg1O-o6.js → ask-user-Dlz2346n.js} +4 -4
- package/dist/ask-user-Dlz2346n.js.map +1 -0
- package/dist/buttons-group-CoZP3lJt.cjs.map +1 -1
- package/dist/buttons-group-DsZgrZBZ.js.map +1 -1
- package/dist/{code-block-C7A4Hv96.cjs → code-block-BzoMjjtf.cjs} +5 -5
- package/dist/{code-block-C7A4Hv96.cjs.map → code-block-BzoMjjtf.cjs.map} +1 -1
- package/dist/{code-block-C_pvalBv.js → code-block-DY5KsTGY.js} +5 -5
- package/dist/{code-block-C_pvalBv.js.map → code-block-DY5KsTGY.js.map} +1 -1
- package/dist/{code-editor-BXchPl_F.cjs → code-editor-DzQEzQJh.cjs} +5 -5
- package/dist/code-editor-DzQEzQJh.cjs.map +1 -0
- package/dist/{code-editor-Cltwid7c.js → code-editor-IR5UX112.js} +5 -5
- package/dist/code-editor-IR5UX112.js.map +1 -0
- package/dist/{combobox-B_C0cNid.js → combobox-B15qTrWO.js} +4 -4
- package/dist/{combobox-B_C0cNid.js.map → combobox-B15qTrWO.js.map} +1 -1
- package/dist/{combobox-rKV-Lksj.cjs → combobox-DJ0c4o4S.cjs} +4 -4
- package/dist/{combobox-rKV-Lksj.cjs.map → combobox-DJ0c4o4S.cjs.map} +1 -1
- package/dist/{combobox-styles-CLxC7VLA.js → combobox-styles-C2MEEpaG.js} +3 -3
- package/dist/{combobox-styles-CLxC7VLA.js.map → combobox-styles-C2MEEpaG.js.map} +1 -1
- package/dist/{combobox-styles-C4Kq1NFV.cjs → combobox-styles-DLflBH-G.cjs} +3 -3
- package/dist/{combobox-styles-C4Kq1NFV.cjs.map → combobox-styles-DLflBH-G.cjs.map} +1 -1
- package/dist/{command-CpXMoss8.cjs → command-Bm0VcX7X.cjs} +2 -2
- package/dist/{command-CpXMoss8.cjs.map → command-Bm0VcX7X.cjs.map} +1 -1
- package/dist/{command-C6JnofUJ.js → command-DFin7kHN.js} +2 -2
- package/dist/{command-C6JnofUJ.js.map → command-DFin7kHN.js.map} +1 -1
- package/dist/components/AlertDialog.cjs.js +1 -1
- package/dist/components/AlertDialog.es.js +1 -1
- package/dist/components/Badge.cjs.js +1 -1
- package/dist/components/Badge.es.js +1 -1
- package/dist/components/Button.cjs.js +1 -1
- package/dist/components/Button.es.js +2 -2
- package/dist/components/ClampedText.cjs.js +1 -1
- package/dist/components/ClampedText.es.js +1 -1
- 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/CollapsibleBox.cjs.js +12 -0
- package/dist/components/CollapsibleBox.cjs.js.map +1 -0
- package/dist/components/CollapsibleBox.d.ts +2 -0
- package/dist/components/CollapsibleBox.es.js +2 -0
- package/dist/components/CollapsibleBox.es.js.map +1 -0
- package/dist/components/Combobox.cjs.js +2 -2
- package/dist/components/Combobox.es.js +2 -2
- package/dist/components/Command.cjs.js +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/CommandPalette.cjs.js +1 -1
- package/dist/components/CommandPalette.es.js +1 -1
- package/dist/components/Comment.cjs.js +3 -3
- package/dist/components/Comment.es.js +3 -3
- package/dist/components/CopyButton.cjs.js +1 -1
- package/dist/components/CopyButton.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +2 -2
- package/dist/components/DataDetailsPanel.es.js +2 -2
- package/dist/components/DataList.cjs.js +3 -3
- package/dist/components/DataList.es.js +3 -3
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +1 -1
- package/dist/components/DateRangeTimeline.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +3 -3
- package/dist/components/DateTimePicker.es.js +3 -3
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +2 -2
- package/dist/components/Dialog.es.js +2 -2
- package/dist/components/DisabledFeatureButton.cjs.js +1 -1
- package/dist/components/DisabledFeatureButton.es.js +1 -1
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/EmptyState.cjs.js +1 -1
- package/dist/components/EmptyState.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +5 -5
- package/dist/components/EnvironmentVariablesEditor.es.js +5 -5
- package/dist/components/ErrorBoundary.cjs.js +1 -1
- package/dist/components/ErrorBoundary.es.js +1 -1
- package/dist/components/FileDropBackdrop.cjs.js +1 -1
- package/dist/components/FileDropBackdrop.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +3 -3
- package/dist/components/FilterBar.es.js +4 -4
- package/dist/components/FormFieldBlocks.cjs.js +5 -5
- package/dist/components/FormFieldBlocks.es.js +5 -5
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +3 -3
- package/dist/components/JSONSchemaForm.es.js +3 -3
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +1 -1
- package/dist/components/LogsDataList.es.js +1 -1
- package/dist/components/MainSidebar.cjs.js +1 -1
- package/dist/components/MainSidebar.es.js +2 -2
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Message.cjs.js +1 -1
- package/dist/components/Message.es.js +1 -1
- package/dist/components/MetricsCard.cjs.js +1 -1
- package/dist/components/MetricsCard.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/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/ProductBadge.cjs.js +1 -1
- package/dist/components/ProductBadge.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +3 -3
- package/dist/components/PropertyFilter.es.js +4 -4
- package/dist/components/PullRequestIcon.cjs.js +1 -1
- package/dist/components/PullRequestIcon.cjs.js.map +1 -1
- package/dist/components/PullRequestIcon.es.js +1 -1
- package/dist/components/PullRequestIcon.es.js.map +1 -1
- package/dist/components/RelativeTimestamp.cjs.js +1 -1
- package/dist/components/RelativeTimestamp.es.js +1 -1
- package/dist/components/RuleBuilder.cjs.js +3 -3
- package/dist/components/RuleBuilder.cjs.js.map +1 -1
- package/dist/components/RuleBuilder.es.js +3 -3
- package/dist/components/RuleBuilder.es.js.map +1 -1
- package/dist/components/SankeyChart.cjs.js +1 -1
- package/dist/components/SankeyChart.es.js +1 -1
- package/dist/components/Section.cjs.js +1 -1
- package/dist/components/Section.es.js +1 -1
- package/dist/components/SegmentedControl.cjs.js +11 -0
- package/dist/components/SegmentedControl.cjs.js.map +1 -0
- package/dist/components/SegmentedControl.d.ts +2 -0
- package/dist/components/SegmentedControl.es.js +2 -0
- package/dist/components/SegmentedControl.es.js.map +1 -0
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +1 -1
- package/dist/components/SideDialog.es.js +1 -1
- package/dist/components/Steps.cjs.js +2 -2
- package/dist/components/Steps.cjs.js.map +1 -1
- package/dist/components/Steps.es.js +2 -2
- package/dist/components/Steps.es.js.map +1 -1
- package/dist/components/Tabs.cjs.js +3 -3
- package/dist/components/Tabs.es.js +3 -3
- package/dist/components/ThemeToggle.cjs.js +17 -86
- package/dist/components/ThemeToggle.cjs.js.map +1 -1
- package/dist/components/ThemeToggle.es.js +18 -87
- package/dist/components/ThemeToggle.es.js.map +1 -1
- package/dist/components/ThreadList.cjs.js +1 -1
- package/dist/components/ThreadList.es.js +1 -1
- package/dist/components/TokenBudget.cjs.js +1 -1
- package/dist/components/TokenBudget.es.js +1 -1
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/components/Workflow.cjs.js +6 -6
- package/dist/components/Workflow.es.js +6 -6
- package/dist/components/ai/activity.cjs.js +4 -4
- package/dist/components/ai/activity.es.js +4 -4
- package/dist/components/ai/ask-user.cjs.js +1 -1
- package/dist/components/ai/ask-user.es.js +1 -1
- package/dist/components/ai/plan.cjs.js +1 -1
- package/dist/components/ai/plan.es.js +1 -1
- package/dist/components/ai/tool-approval.cjs.js +1 -1
- package/dist/components/ai/tool-approval.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +4 -4
- package/dist/components/ai/tool-call.es.js +4 -4
- package/dist/{copy-button-C6nXDjBz.cjs → copy-button-CGkFEDHF.cjs} +2 -2
- package/dist/{copy-button-C6nXDjBz.cjs.map → copy-button-CGkFEDHF.cjs.map} +1 -1
- package/dist/{copy-button-DbmsTUum.js → copy-button-DH8xtrWz.js} +2 -2
- package/dist/{copy-button-DbmsTUum.js.map → copy-button-DH8xtrWz.js.map} +1 -1
- package/dist/{data-code-section-D5b6_jcB.cjs → data-code-section-DWBfkrmO.cjs} +6 -6
- package/dist/data-code-section-DWBfkrmO.cjs.map +1 -0
- package/dist/{data-code-section-Bd2Xnckz.js → data-code-section-It6myyvZ.js} +6 -6
- package/dist/data-code-section-It6myyvZ.js.map +1 -0
- package/dist/{data-list-DL_oFE4j.js → data-list-CyeD_u-6.js} +3 -3
- package/dist/{data-list-DL_oFE4j.js.map → data-list-CyeD_u-6.js.map} +1 -1
- package/dist/{data-list-D8bACyyK.cjs → data-list-Y42KyuI1.cjs} +3 -3
- package/dist/{data-list-D8bACyyK.cjs.map → data-list-Y42KyuI1.cjs.map} +1 -1
- package/dist/{data-list-spacer-_bFe0e2u.cjs → data-list-spacer-BSg2hCx7.cjs} +2 -2
- package/dist/{data-list-spacer-_bFe0e2u.cjs.map → data-list-spacer-BSg2hCx7.cjs.map} +1 -1
- package/dist/{data-list-spacer-CE6-4ZQq.js → data-list-spacer-C8z32twc.js} +2 -2
- package/dist/{data-list-spacer-CE6-4ZQq.js.map → data-list-spacer-C8z32twc.js.map} +1 -1
- package/dist/{data-panel-CjvoI_lx.cjs → data-panel-D7Qk4iwZ.cjs} +3 -3
- package/dist/{data-panel-CjvoI_lx.cjs.map → data-panel-D7Qk4iwZ.cjs.map} +1 -1
- package/dist/{data-panel-42fdcagQ.js → data-panel-DuLf5j8S.js} +3 -3
- package/dist/{data-panel-42fdcagQ.js.map → data-panel-DuLf5j8S.js.map} +1 -1
- package/dist/{date-time-range-picker-C-pSI1u1.js → date-time-range-picker-BDylIIzt.js} +4 -4
- package/dist/{date-time-range-picker-C-pSI1u1.js.map → date-time-range-picker-BDylIIzt.js.map} +1 -1
- package/dist/{date-time-range-picker-BORAuIJM.cjs → date-time-range-picker-UheN070q.cjs} +4 -4
- package/dist/{date-time-range-picker-BORAuIJM.cjs.map → date-time-range-picker-UheN070q.cjs.map} +1 -1
- package/dist/{dialog-cKzR2TXI.js → dialog-Dt5kASkl.js} +2 -2
- package/dist/{dialog-cKzR2TXI.js.map → dialog-Dt5kASkl.js.map} +1 -1
- package/dist/{dialog-action-B3AHq7mU.cjs → dialog-action-C3Tc7ZKI.cjs} +3 -3
- package/dist/{dialog-action-B3AHq7mU.cjs.map → dialog-action-C3Tc7ZKI.cjs.map} +1 -1
- package/dist/{dialog-action-BGmDoI5T.js → dialog-action-CB3h9Z2J.js} +3 -3
- package/dist/{dialog-action-BGmDoI5T.js.map → dialog-action-CB3h9Z2J.js.map} +1 -1
- package/dist/{dialog-DYpOpj9s.cjs → dialog-d_AK1NQD.cjs} +2 -2
- package/dist/{dialog-DYpOpj9s.cjs.map → dialog-d_AK1NQD.cjs.map} +1 -1
- package/dist/domains/auth/components/permission-denied.cjs.js +1 -1
- package/dist/domains/auth/components/permission-denied.es.js +1 -1
- package/dist/domains/auth/components/session-expired.cjs.js +2 -2
- package/dist/domains/auth/components/session-expired.es.js +2 -2
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -2
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -2
- package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
- package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
- package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
- package/dist/domains/chat/messages/dataset-save-action.cjs.js +5 -5
- package/dist/domains/chat/messages/dataset-save-action.es.js +5 -5
- package/dist/domains/chat/messages/message-row.cjs.js +5 -5
- package/dist/domains/chat/messages/message-row.es.js +5 -5
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +3 -3
- package/dist/domains/chat/messages/renderers/message-text.es.js +3 -3
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
- package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/signal-badge.es.js +1 -1
- package/dist/domains/chat/messages/skill-message.cjs.js +3 -3
- package/dist/domains/chat/messages/skill-message.es.js +3 -3
- package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/system-reminder-badge.es.js +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/agent-badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.cjs.js +4 -4
- package/dist/domains/chat/tools/badges/agent-badge.es.js +4 -4
- 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/background-task-metadata-dialog.cjs.js +3 -3
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +3 -3
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +3 -3
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +3 -3
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +3 -3
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +3 -3
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +3 -3
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +3 -3
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +4 -4
- package/dist/domains/chat/tools/badges/tool-badge.es.js +4 -4
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +4 -3
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +4 -3
- package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
- package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
- package/dist/domains/chat/tools/tool-card-kind.cjs.js +5 -1
- package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js +5 -2
- package/dist/domains/chat/tools/tool-card-kind.es.js.map +1 -1
- package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card.es.js +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +4 -4
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +4 -4
- package/dist/domains/logs/components/log-data-panel.cjs.js +3 -3
- package/dist/domains/logs/components/log-data-panel.es.js +3 -3
- package/dist/domains/logs/components/logs-error-content.cjs.js +1 -1
- package/dist/domains/logs/components/logs-error-content.es.js +1 -1
- package/dist/domains/logs/components/logs-list-view.cjs.js +1 -1
- package/dist/domains/logs/components/logs-list-view.es.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
- package/dist/domains/logs/components/no-logs-info.cjs.js +2 -2
- package/dist/domains/logs/components/no-logs-info.es.js +2 -2
- package/dist/domains/memory/components/flame-graph.cjs.js +2 -2
- package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +2 -2
- package/dist/domains/memory/components/flame-graph.es.js.map +1 -1
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js +1 -1
- 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/card-action-buttons.cjs.js +1 -1
- package/dist/domains/metrics/components/card-action-buttons.es.js +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 +5 -5
- package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/latency-card-view.es.js +5 -5
- package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -1
- 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/metrics-utils.cjs.js +1 -1
- package/dist/domains/metrics/components/metrics-utils.cjs.js.map +1 -1
- package/dist/domains/metrics/components/metrics-utils.es.js +1 -1
- package/dist/domains/metrics/components/metrics-utils.es.js.map +1 -1
- 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 +6 -6
- package/dist/domains/metrics/components/scores-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/scores-card-view.es.js +6 -6
- package/dist/domains/metrics/components/scores-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +4 -4
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +5 -5
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +4 -4
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +4 -4
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +4 -4
- package/dist/domains/review/components/review-status-badge.cjs.js +1 -1
- package/dist/domains/review/components/review-status-badge.es.js +1 -1
- package/dist/domains/scores/components/score-data-panel.cjs.js +2 -2
- package/dist/domains/scores/components/score-data-panel.es.js +2 -2
- package/dist/domains/scores/components/span-scoring.cjs.js +4 -4
- package/dist/domains/scores/components/span-scoring.es.js +4 -4
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +4 -4
- package/dist/domains/scores/components/trace-scores-tab.es.js +4 -4
- package/dist/domains/traces/components/feedback-thread.cjs.js +3 -3
- package/dist/domains/traces/components/feedback-thread.es.js +3 -3
- package/dist/domains/traces/components/format-trace-thread-messages.cjs.js +31 -9
- package/dist/domains/traces/components/format-trace-thread-messages.cjs.js.map +1 -1
- package/dist/domains/traces/components/format-trace-thread-messages.es.js +31 -9
- package/dist/domains/traces/components/format-trace-thread-messages.es.js.map +1 -1
- 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 +6 -6
- package/dist/domains/traces/components/span-data-panel-view.es.js +6 -6
- package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-details-view.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-json.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-json.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +16 -11
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +16 -11
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +16 -3
- package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js +16 -3
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +2 -2
- package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +1 -1
- package/dist/domains/traces/components/span-type-legend.cjs.js +1 -1
- package/dist/domains/traces/components/span-type-legend.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +6 -6
- 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 +6 -6
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +8 -2
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js +9 -3
- package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +5 -5
- package/dist/domains/traces/components/trace-columns-menu.es.js +5 -5
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +6 -6
- package/dist/domains/traces/components/trace-data-panel-view.es.js +6 -6
- package/dist/domains/traces/components/trace-data-panel.cjs.js +2 -2
- package/dist/domains/traces/components/trace-data-panel.es.js +2 -2
- package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
- package/dist/domains/traces/components/trace-id-button.es.js +1 -1
- package/dist/domains/traces/components/trace-messages-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-messages-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-status-value.cjs.js +1 -1
- package/dist/domains/traces/components/trace-status-value.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-status-value.es.js +1 -1
- package/dist/domains/traces/components/trace-status-value.es.js.map +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.cjs.js +9 -2
- package/dist/domains/traces/components/trace-thread-item-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.es.js +10 -3
- package/dist/domains/traces/components/trace-thread-item-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
- package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
- package/dist/domains/traces/components/traces-error-content.cjs.js +1 -1
- package/dist/domains/traces/components/traces-error-content.es.js +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +2 -2
- package/dist/domains/traces/components/traces-list-view.es.js +2 -2
- package/dist/domains/traces/hooks/use-trace-query.cjs.js +2 -2
- package/dist/domains/traces/hooks/use-trace-query.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-query.es.js +2 -2
- package/dist/domains/traces/hooks/use-trace-query.es.js.map +1 -1
- package/dist/domains/traces/trace-filters.cjs.js +5 -5
- package/dist/domains/traces/trace-filters.cjs.js.map +1 -1
- package/dist/domains/traces/trace-filters.es.js +5 -5
- package/dist/domains/traces/trace-filters.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
- package/dist/domains/workflows/components/workflow-entity-header.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-entity-header.es.js +1 -1
- package/dist/domains/workflows/components/workflow-information.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-information.es.js +1 -1
- package/dist/domains/workflows/components/workflow-step-detail.cjs.js +3 -3
- package/dist/domains/workflows/components/workflow-step-detail.es.js +3 -3
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +2 -2
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +2 -2
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +3 -3
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +3 -3
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js.map +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +2 -2
- package/dist/domains/workflows/runs/workflow-run-list.es.js +2 -2
- package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +4 -4
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +4 -4
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js.map +1 -1
- package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +2 -2
- package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +2 -2
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +3 -3
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +3 -3
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +2 -1
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +2 -1
- package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +4 -4
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +4 -4
- package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +4 -4
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.es.js +4 -4
- package/dist/domains/workflows/workflow/workflow-run-header.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-status.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-status.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-status.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-status.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +2 -2
- package/dist/domains/workflows/workflow-status-tone.cjs.js +2 -2
- package/dist/domains/workflows/workflow-status-tone.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow-status-tone.es.js +2 -2
- package/dist/domains/workflows/workflow-status-tone.es.js.map +1 -1
- package/dist/{drawer-DXf50w71.js → drawer-BI3B_krl.js} +2 -2
- package/dist/{drawer-DXf50w71.js.map → drawer-BI3B_krl.js.map} +1 -1
- package/dist/{drawer-d81cZiSV.cjs → drawer-DnXudVbm.cjs} +2 -2
- package/dist/{drawer-d81cZiSV.cjs.map → drawer-DnXudVbm.cjs.map} +1 -1
- package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +1 -1
- package/dist/ee/signals/components/entity-index-compact-grid.es.js +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +2 -2
- package/dist/ee/signals/components/entity-index-list.es.js +2 -2
- package/dist/ee/signals/components/signals-empty-state.cjs.js +1 -1
- package/dist/ee/signals/components/signals-empty-state.es.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +4 -4
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +4 -4
- 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 +1 -1
- package/dist/ee/signals/flow-card.es.js +1 -1
- package/dist/ee/signals/noise-detail-panel.cjs.js +3 -3
- package/dist/ee/signals/noise-detail-panel.cjs.js.map +1 -1
- package/dist/ee/signals/noise-detail-panel.es.js +3 -3
- package/dist/ee/signals/noise-detail-panel.es.js.map +1 -1
- package/dist/ee/signals/sankey-signals.cjs.js +2 -2
- package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
- package/dist/ee/signals/sankey-signals.es.js +2 -2
- package/dist/ee/signals/sankey-signals.es.js.map +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +5 -5
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +5 -5
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +3 -3
- package/dist/ee/signals/settings/trace-signal-settings.es.js +3 -3
- package/dist/ee/signals/signal-colors.cjs.js +3 -3
- package/dist/ee/signals/signal-colors.cjs.js.map +1 -1
- package/dist/ee/signals/signal-colors.es.js +3 -3
- package/dist/ee/signals/signal-colors.es.js.map +1 -1
- package/dist/ee/signals/signals-error-state.cjs.js +2 -2
- package/dist/ee/signals/signals-error-state.cjs.js.map +1 -1
- package/dist/ee/signals/signals-error-state.es.js +2 -2
- package/dist/ee/signals/signals-error-state.es.js.map +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/theme-detail-panel.cjs.js +4 -4
- package/dist/ee/signals/theme-detail-panel.cjs.js.map +1 -1
- package/dist/ee/signals/theme-detail-panel.es.js +4 -4
- package/dist/ee/signals/theme-detail-panel.es.js.map +1 -1
- 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/trace-insight-view.cjs.js +4 -4
- package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.es.js +4 -4
- package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
- package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
- package/dist/ee/signals/view-mode-tab.es.js +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-DpejZ6U6.js → field-block--PeppIRb.js} +10 -3
- package/dist/field-block--PeppIRb.js.map +1 -0
- package/dist/{field-block-BIDi9Bvc.cjs → field-block-DtaPqBa3.cjs} +10 -3
- package/dist/field-block-DtaPqBa3.cjs.map +1 -0
- package/dist/{field-block-error-msg-B6-wnlAz.cjs → field-block-error-msg-CkhEN6nU.cjs} +2 -2
- package/dist/{field-block-error-msg-B6-wnlAz.cjs.map → field-block-error-msg-CkhEN6nU.cjs.map} +1 -1
- package/dist/{field-block-error-msg-edlaudVx.js → field-block-error-msg-LXwhKzIq.js} +2 -2
- package/dist/{field-block-error-msg-edlaudVx.js.map → field-block-error-msg-LXwhKzIq.js.map} +1 -1
- package/dist/{filter-bar-chip-D4CSm9KP.cjs → filter-bar-chip-CBlHsz4A.cjs} +3 -3
- package/dist/{filter-bar-chip-D4CSm9KP.cjs.map → filter-bar-chip-CBlHsz4A.cjs.map} +1 -1
- package/dist/{filter-bar-chip-BNPOrSrD.js → filter-bar-chip-DFOtEvpW.js} +3 -3
- package/dist/{filter-bar-chip-BNPOrSrD.js.map → filter-bar-chip-DFOtEvpW.js.map} +1 -1
- package/dist/{input-group-B8bnoDrA.js → input-group-0G9ZX_cM.js} +2 -2
- package/dist/{input-group-B8bnoDrA.js.map → input-group-0G9ZX_cM.js.map} +1 -1
- package/dist/{input-group-I8YVM_Ps.cjs → input-group-BRhBfeHC.cjs} +2 -2
- package/dist/{input-group-I8YVM_Ps.cjs.map → input-group-BRhBfeHC.cjs.map} +1 -1
- package/dist/layout/tabbed-container.cjs.js +6 -6
- package/dist/layout/tabbed-container.es.js +6 -6
- package/dist/lib/form/components/array-element-wrapper.cjs.js +2 -2
- package/dist/lib/form/components/array-element-wrapper.cjs.js.map +1 -1
- package/dist/lib/form/components/array-element-wrapper.es.js +2 -2
- package/dist/lib/form/components/array-element-wrapper.es.js.map +1 -1
- package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/array-wrapper.es.js +1 -1
- package/dist/lib/form/components/boolean-field.cjs.js +1 -1
- package/dist/lib/form/components/boolean-field.es.js +1 -1
- package/dist/lib/form/components/date-field.cjs.js +1 -1
- package/dist/lib/form/components/date-field.es.js +1 -1
- package/dist/lib/form/components/error-message.cjs.js +1 -1
- package/dist/lib/form/components/error-message.es.js +1 -1
- package/dist/lib/form/components/field-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/field-wrapper.es.js +1 -1
- package/dist/lib/form/components/form-submit-row.cjs.js +1 -1
- package/dist/lib/form/components/form-submit-row.es.js +1 -1
- package/dist/lib/form/components/object-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/object-wrapper.cjs.js.map +1 -1
- package/dist/lib/form/components/object-wrapper.es.js +1 -1
- package/dist/lib/form/components/object-wrapper.es.js.map +1 -1
- package/dist/lib/form/components/record-field.cjs.js +1 -1
- package/dist/lib/form/components/record-field.es.js +1 -1
- package/dist/lib/form/components/select-field.cjs.js +1 -1
- package/dist/lib/form/components/select-field.es.js +1 -1
- package/dist/lib/form/components/submit-button.cjs.js +1 -1
- package/dist/lib/form/components/submit-button.es.js +1 -1
- package/dist/{list-search-DXb7HFX8.cjs → list-search-BzAIj0DB.cjs} +2 -2
- package/dist/{list-search-DXb7HFX8.cjs.map → list-search-BzAIj0DB.cjs.map} +1 -1
- package/dist/{list-search-9l8IEdxZ.js → list-search-DI1DH7vU.js} +2 -2
- package/dist/{list-search-9l8IEdxZ.js.map → list-search-DI1DH7vU.js.map} +1 -1
- package/dist/{logs-data-list-C77r2FOj.js → logs-data-list-ButZV-2H.js} +3 -3
- package/dist/{logs-data-list-C77r2FOj.js.map → logs-data-list-ButZV-2H.js.map} +1 -1
- package/dist/{logs-data-list-CEFyG1Xb.cjs → logs-data-list-CtHern11.cjs} +3 -3
- package/dist/{logs-data-list-CEFyG1Xb.cjs.map → logs-data-list-CtHern11.cjs.map} +1 -1
- package/dist/{main-sidebar-link-active-BNko0jHZ.cjs → main-sidebar-link-active-D8VSuJKx.cjs} +2 -2
- package/dist/{main-sidebar-link-active-BNko0jHZ.cjs.map → main-sidebar-link-active-D8VSuJKx.cjs.map} +1 -1
- package/dist/{main-sidebar-link-active-1_ktyA8Q.js → main-sidebar-link-active-buZAhlHo.js} +2 -2
- package/dist/{main-sidebar-link-active-1_ktyA8Q.js.map → main-sidebar-link-active-buZAhlHo.js.map} +1 -1
- package/dist/{markdown-renderer-CSwjfPaf.cjs → markdown-renderer-CZV6neya.cjs} +3 -3
- package/dist/{markdown-renderer-CSwjfPaf.cjs.map → markdown-renderer-CZV6neya.cjs.map} +1 -1
- package/dist/{markdown-renderer-Bl0V7FCo.js → markdown-renderer-Cy7Iwy1c.js} +3 -3
- package/dist/{markdown-renderer-Bl0V7FCo.js.map → markdown-renderer-Cy7Iwy1c.js.map} +1 -1
- package/dist/{message-copy-button-DP3U-xA-.js → message-copy-button-C_mFZ3Vg.js} +2 -2
- package/dist/{message-copy-button-DP3U-xA-.js.map → message-copy-button-C_mFZ3Vg.js.map} +1 -1
- package/dist/{message-copy-button-ClJBX9qx.cjs → message-copy-button-CqMR2T2t.cjs} +2 -2
- package/dist/{message-copy-button-ClJBX9qx.cjs.map → message-copy-button-CqMR2T2t.cjs.map} +1 -1
- package/dist/{metrics-card-CloSmyRQ.js → metrics-card-C1rTkbcn.js} +3 -3
- package/dist/metrics-card-C1rTkbcn.js.map +1 -0
- package/dist/{metrics-card-HmQJHDNa.cjs → metrics-card-D7J9JDgn.cjs} +3 -3
- package/dist/metrics-card-D7J9JDgn.cjs.map +1 -0
- package/dist/{metrics-kpi-card-CW24YjZp.cjs → metrics-kpi-card-1hbihR2T.cjs} +3 -3
- package/dist/metrics-kpi-card-1hbihR2T.cjs.map +1 -0
- package/dist/{metrics-kpi-card-DLDT28IB.js → metrics-kpi-card-CiB88L41.js} +3 -3
- package/dist/metrics-kpi-card-CiB88L41.js.map +1 -0
- package/dist/new/settings.cjs.js +1 -1
- package/dist/new/settings.es.js +1 -1
- package/dist/new/sidebar.cjs.js +3 -3
- package/dist/new/sidebar.cjs.js.map +1 -1
- package/dist/new/sidebar.es.js +4 -4
- package/dist/new/sidebar.es.js.map +1 -1
- package/dist/{notification-activity-B1_2BPe_.js → notification-activity-CFR_b8eA.js} +4 -4
- package/dist/notification-activity-CFR_b8eA.js.map +1 -0
- package/dist/{notification-activity-BAn2fhYd.cjs → notification-activity-Dk50wcE4.cjs} +4 -4
- package/dist/notification-activity-Dk50wcE4.cjs.map +1 -0
- package/dist/{plan-DJfH1c_u.js → plan-CvTAGIWv.js} +10 -55
- package/dist/plan-CvTAGIWv.js.map +1 -0
- package/dist/{plan-ZKAT5frg.cjs → plan-DsfNN3a0.cjs} +10 -55
- package/dist/plan-DsfNN3a0.cjs.map +1 -0
- package/dist/primitives/menu-item.cjs.js +2 -2
- package/dist/primitives/menu-item.cjs.js.map +1 -1
- package/dist/primitives/menu-item.es.js +2 -2
- package/dist/primitives/menu-item.es.js.map +1 -1
- package/dist/primitives/trigger-button.cjs.js +1 -1
- package/dist/primitives/trigger-button.es.js +1 -1
- package/dist/{property-filter-applied-D0F0BYMY.cjs → property-filter-applied-Bp2z4KBv.cjs} +2 -2
- package/dist/{property-filter-applied-D0F0BYMY.cjs.map → property-filter-applied-Bp2z4KBv.cjs.map} +1 -1
- package/dist/{property-filter-applied-k0TOa9hf.js → property-filter-applied-C9verwDR.js} +2 -2
- package/dist/{property-filter-applied-k0TOa9hf.js.map → property-filter-applied-C9verwDR.js.map} +1 -1
- package/dist/{reasoning-activity-CO0Ab1Za.cjs → reasoning-activity-BVviIdMe.cjs} +3 -3
- package/dist/{reasoning-activity-CO0Ab1Za.cjs.map → reasoning-activity-BVviIdMe.cjs.map} +1 -1
- package/dist/{reasoning-activity-D3oCzL58.js → reasoning-activity-OM1-hbCV.js} +3 -3
- package/dist/{reasoning-activity-D3oCzL58.js.map → reasoning-activity-OM1-hbCV.js.map} +1 -1
- package/dist/{relative-timestamp-D-IvjsVb.cjs → relative-timestamp-BlmN8Vjn.cjs} +2 -2
- package/dist/{relative-timestamp-D-IvjsVb.cjs.map → relative-timestamp-BlmN8Vjn.cjs.map} +1 -1
- package/dist/{relative-timestamp-wERh5vUE.js → relative-timestamp-Cnp4VeLp.js} +2 -2
- package/dist/{relative-timestamp-wERh5vUE.js.map → relative-timestamp-Cnp4VeLp.js.map} +1 -1
- package/dist/resize/panel-drawer.cjs.js +1 -1
- package/dist/resize/panel-drawer.es.js +1 -1
- package/dist/{sankey-chart-D-xMiO2u.js → sankey-chart-D4Idjtth.js} +2 -2
- package/dist/sankey-chart-D4Idjtth.js.map +1 -0
- package/dist/{sankey-chart-S7iF7d0E.cjs → sankey-chart-DfVMZpz5.cjs} +2 -2
- package/dist/sankey-chart-DfVMZpz5.cjs.map +1 -0
- package/dist/{search-field-block-Cj9lJsYi.js → search-field-block-BPJh5yuW.js} +3 -3
- package/dist/{search-field-block-Cj9lJsYi.js.map → search-field-block-BPJh5yuW.js.map} +1 -1
- package/dist/{search-field-block-B1eqMV8x.cjs → search-field-block-DRa-ZNQj.cjs} +3 -3
- package/dist/{search-field-block-B1eqMV8x.cjs.map → search-field-block-DRa-ZNQj.cjs.map} +1 -1
- package/dist/{section-B5g_0tUo.js → section-BfEsNViI.js} +2 -2
- package/dist/{section-B5g_0tUo.js.map → section-BfEsNViI.js.map} +1 -1
- package/dist/{section-Bbp-NIR9.cjs → section-dBeXxS69.cjs} +2 -2
- package/dist/{section-Bbp-NIR9.cjs.map → section-dBeXxS69.cjs.map} +1 -1
- package/dist/segmented-control--I3IgW21.cjs +157 -0
- package/dist/segmented-control--I3IgW21.cjs.map +1 -0
- package/dist/segmented-control-BxeiypPR.js +135 -0
- package/dist/segmented-control-BxeiypPR.js.map +1 -0
- package/dist/{select-C0ZGSJYa.cjs → select-DBY9LQFQ.cjs} +2 -2
- package/dist/{select-C0ZGSJYa.cjs.map → select-DBY9LQFQ.cjs.map} +1 -1
- package/dist/{select-ch8imm15.js → select-DZeNf-kI.js} +2 -2
- package/dist/{select-ch8imm15.js.map → select-DZeNf-kI.js.map} +1 -1
- package/dist/{select-field-block-_ZUzUs7l.js → select-field-block-C_x9wNpU.js} +3 -3
- package/dist/{select-field-block-_ZUzUs7l.js.map → select-field-block-C_x9wNpU.js.map} +1 -1
- package/dist/{select-field-block-Dy_N3tWv.cjs → select-field-block-D8AMzoQT.cjs} +3 -3
- package/dist/{select-field-block-Dy_N3tWv.cjs.map → select-field-block-D8AMzoQT.cjs.map} +1 -1
- package/dist/{settings-row-2hq9Ww8Z.js → settings-row-C1JZDdz_.js} +4 -4
- package/dist/settings-row-C1JZDdz_.js.map +1 -0
- package/dist/{settings-row-BMRADph-.cjs → settings-row-C7YKfUgY.cjs} +4 -4
- package/dist/settings-row-C7YKfUgY.cjs.map +1 -0
- package/dist/{side-dialog-D2O3Y7GB.js → side-dialog-DCzCcZs6.js} +5 -5
- package/dist/{side-dialog-D2O3Y7GB.js.map → side-dialog-DCzCcZs6.js.map} +1 -1
- package/dist/{side-dialog-7P9aEC4v.cjs → side-dialog-DFnD1498.cjs} +5 -5
- package/dist/{side-dialog-7P9aEC4v.cjs.map → side-dialog-DFnD1498.cjs.map} +1 -1
- package/dist/{signal-activity-1REUU8T_.js → signal-activity-DW2ExjIp.js} +3 -3
- package/dist/{signal-activity-1REUU8T_.js.map → signal-activity-DW2ExjIp.js.map} +1 -1
- package/dist/{signal-activity-4OJb4kp6.cjs → signal-activity-byCTRP86.cjs} +3 -3
- package/dist/{signal-activity-4OJb4kp6.cjs.map → signal-activity-byCTRP86.cjs.map} +1 -1
- package/dist/{span-payload-primitives-CbXrqcs-.cjs → span-payload-primitives-D0mhsndj.cjs} +3 -3
- package/dist/{span-payload-primitives-CbXrqcs-.cjs.map → span-payload-primitives-D0mhsndj.cjs.map} +1 -1
- package/dist/{span-payload-primitives-CEflnpwW.js → span-payload-primitives-DL1Kr0cu.js} +3 -3
- package/dist/{span-payload-primitives-CEflnpwW.js.map → span-payload-primitives-DL1Kr0cu.js.map} +1 -1
- package/dist/src/domains/chat/tools/tool-card-kind.d.ts +2 -0
- package/dist/src/domains/metrics/components/metrics-utils.d.ts +1 -1
- package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +2 -0
- package/dist/src/domains/traces/hooks/use-trace-query.d.ts +1 -1
- package/dist/src/ds/components/Badge/Badge.d.ts +3 -3
- package/dist/src/ds/components/ButtonsGroup/buttons-group.d.ts +1 -0
- package/dist/src/ds/components/ButtonsGroup/buttons-group.stories.d.ts +0 -6
- package/dist/src/ds/components/CollapsibleBox/collapsible-box.d.ts +10 -0
- package/dist/src/ds/components/CollapsibleBox/collapsible-box.stories.d.ts +11 -0
- package/dist/src/ds/components/CollapsibleBox/index.d.ts +2 -0
- package/dist/src/ds/components/CollapsibleBox/use-collapsible-box.d.ts +14 -0
- package/dist/src/ds/components/Combobox/combobox-styles.d.ts +1 -1
- package/dist/src/ds/components/SegmentedControl/index.d.ts +1 -0
- package/dist/src/ds/components/SegmentedControl/segmented-control.d.ts +38 -0
- package/dist/src/ds/components/SegmentedControl/segmented-control.stories.d.ts +11 -0
- package/dist/src/ds/components/ThemeToggle/theme-toggle.d.ts +12 -30
- package/dist/src/ds/components/ThemeToggle/theme-toggle.stories.d.ts +0 -1
- package/dist/src/ds/components/TokenBudget/tones.d.ts +1 -1
- package/dist/src/ds/components/Workflow/cards/workflow-card-badge-utils.d.ts +2 -2
- package/dist/src/ds/components/ai/plan/plan.d.ts +1 -1
- package/dist/src/ds/tokens/colors.d.ts +31 -28
- package/dist/src/lib/colors.d.ts +1 -1
- package/dist/style.css +517 -184
- package/dist/{tabs-content-h2qqD8t-.js → tabs-content-CwbkTutf.js} +2 -2
- package/dist/{tabs-content-h2qqD8t-.js.map → tabs-content-CwbkTutf.js.map} +1 -1
- package/dist/{tabs-content-DQNRMjup.cjs → tabs-content-DnscxcLI.cjs} +2 -2
- package/dist/{tabs-content-DQNRMjup.cjs.map → tabs-content-DnscxcLI.cjs.map} +1 -1
- package/dist/{tabs-root-BqC8X_h6.cjs → tabs-root-C-ePF1y9.cjs} +4 -4
- package/dist/tabs-root-C-ePF1y9.cjs.map +1 -0
- package/dist/{tabs-root-4vL8SHCO.js → tabs-root-lrZZ3KwH.js} +4 -4
- package/dist/tabs-root-lrZZ3KwH.js.map +1 -0
- package/dist/{tabs-tab-lm4xyjtD.cjs → tabs-tab-BmIBFifi.cjs} +2 -2
- package/dist/{tabs-tab-lm4xyjtD.cjs.map → tabs-tab-BmIBFifi.cjs.map} +1 -1
- package/dist/{tabs-tab-7e2as-AV.js → tabs-tab-DoPSW-1s.js} +2 -2
- package/dist/{tabs-tab-7e2as-AV.js.map → tabs-tab-DoPSW-1s.js.map} +1 -1
- package/dist/{text-field-block-DYOWjPgO.cjs → text-field-block-DUntfMPu.cjs} +2 -2
- package/dist/{text-field-block-DYOWjPgO.cjs.map → text-field-block-DUntfMPu.cjs.map} +1 -1
- package/dist/{text-field-block-DJsOk8dJ.js → text-field-block-DZaGiu5D.js} +2 -2
- package/dist/{text-field-block-DJsOk8dJ.js.map → text-field-block-DZaGiu5D.js.map} +1 -1
- package/dist/{textarea-field-block-DqTd31gF.js → textarea-field-block-BscOSlvI.js} +2 -2
- package/dist/{textarea-field-block-DqTd31gF.js.map → textarea-field-block-BscOSlvI.js.map} +1 -1
- package/dist/{textarea-field-block-C5fPL2Hn.cjs → textarea-field-block-CKAhmLrz.cjs} +2 -2
- package/dist/{textarea-field-block-C5fPL2Hn.cjs.map → textarea-field-block-CKAhmLrz.cjs.map} +1 -1
- package/dist/{thread-list-DGI6M6if.js → thread-list-BTpezI4f.js} +2 -2
- package/dist/{thread-list-DGI6M6if.js.map → thread-list-BTpezI4f.js.map} +1 -1
- package/dist/{thread-list-DwASH1Vl.cjs → thread-list-Drcptd4x.cjs} +2 -2
- package/dist/{thread-list-DwASH1Vl.cjs.map → thread-list-Drcptd4x.cjs.map} +1 -1
- package/dist/{time-picker-CfZbLgMm.js → time-picker-BElZALzM.js} +2 -2
- package/dist/{time-picker-CfZbLgMm.js.map → time-picker-BElZALzM.js.map} +1 -1
- package/dist/{time-picker-C0DCPWpR.cjs → time-picker-_QJdolkZ.cjs} +2 -2
- package/dist/{time-picker-C0DCPWpR.cjs.map → time-picker-_QJdolkZ.cjs.map} +1 -1
- package/dist/tokens.cjs.js +31 -28
- package/dist/tokens.cjs.js.map +1 -1
- package/dist/tokens.es.js +31 -28
- package/dist/tokens.es.js.map +1 -1
- package/dist/{tones-DVtXIMPY.js → tones-RD3VjqiN.js} +2 -2
- package/dist/tones-RD3VjqiN.js.map +1 -0
- package/dist/{tones-BRAQR5Yb.cjs → tones-koH7QNLH.cjs} +2 -2
- package/dist/tones-koH7QNLH.cjs.map +1 -0
- package/dist/{tool-approval-xZvYiuBP.js → tool-approval-BNJ6MpnV.js} +3 -3
- package/dist/tool-approval-BNJ6MpnV.js.map +1 -0
- package/dist/{tool-approval-BAER9nxR.cjs → tool-approval-DOPxugSv.cjs} +3 -3
- package/dist/tool-approval-DOPxugSv.cjs.map +1 -0
- package/dist/{tool-call-arguments-D7PMJ6vj.js → tool-call-arguments-B1MghuMZ.js} +3 -3
- package/dist/{tool-call-arguments-D7PMJ6vj.js.map → tool-call-arguments-B1MghuMZ.js.map} +1 -1
- package/dist/{tool-call-arguments-ynBfg2dY.cjs → tool-call-arguments-CQYR65FB.cjs} +3 -3
- package/dist/{tool-call-arguments-ynBfg2dY.cjs.map → tool-call-arguments-CQYR65FB.cjs.map} +1 -1
- package/dist/{tool-call-group-9Dtupqev.cjs → tool-call-group-D_ioE9hT.cjs} +3 -3
- package/dist/tool-call-group-D_ioE9hT.cjs.map +1 -0
- package/dist/{tool-call-group-DJX7eUYY.js → tool-call-group-ZuYxpyDs.js} +3 -3
- package/dist/tool-call-group-ZuYxpyDs.js.map +1 -0
- package/dist/{tool-call-mono-gKG9Ek1m.js → tool-call-mono-CC6uzvhS.js} +2 -2
- package/dist/{tool-call-mono-gKG9Ek1m.js.map → tool-call-mono-CC6uzvhS.js.map} +1 -1
- package/dist/{tool-call-mono-DFSfVZ6E.cjs → tool-call-mono-DXtb4UMm.cjs} +2 -2
- package/dist/{tool-call-mono-DFSfVZ6E.cjs.map → tool-call-mono-DXtb4UMm.cjs.map} +1 -1
- package/dist/{tool-call-output-DEoCE_Xn.js → tool-call-output-COq3kB-f.js} +3 -3
- package/dist/tool-call-output-COq3kB-f.js.map +1 -0
- package/dist/{tool-call-output-Dl4sVfCy.cjs → tool-call-output-ht3k1qLQ.cjs} +3 -3
- package/dist/tool-call-output-ht3k1qLQ.cjs.map +1 -0
- package/dist/{tool-card-DRqhTx-u.cjs → tool-card-BfMA9tub.cjs} +5 -5
- package/dist/tool-card-BfMA9tub.cjs.map +1 -0
- package/dist/{tool-card-BA1YcDoS.js → tool-card-DPrShK-9.js} +5 -5
- package/dist/tool-card-DPrShK-9.js.map +1 -0
- package/dist/{traces-data-list-CU93pUfj.cjs → traces-data-list-BsAYYJ9t.cjs} +4 -4
- package/dist/{traces-data-list-CU93pUfj.cjs.map → traces-data-list-BsAYYJ9t.cjs.map} +1 -1
- package/dist/{traces-data-list-DaedGcID.js → traces-data-list-CnNpGVRN.js} +4 -4
- package/dist/{traces-data-list-DaedGcID.js.map → traces-data-list-CnNpGVRN.js.map} +1 -1
- package/dist/use-collapsible-box-CCvsF_a9.js +54 -0
- package/dist/use-collapsible-box-CCvsF_a9.js.map +1 -0
- package/dist/use-collapsible-box-CbQOkokQ.cjs +58 -0
- package/dist/use-collapsible-box-CbQOkokQ.cjs.map +1 -0
- package/dist/{use-workflow-graph-runtime-D0ODPlNB.cjs → use-workflow-graph-runtime-CIs2HzoP.cjs} +3 -3
- package/dist/{use-workflow-graph-runtime-D0ODPlNB.cjs.map → use-workflow-graph-runtime-CIs2HzoP.cjs.map} +1 -1
- package/dist/{use-workflow-graph-runtime-XL5zreeR.js → use-workflow-graph-runtime-CexS1ECI.js} +3 -3
- package/dist/{use-workflow-graph-runtime-XL5zreeR.js.map → use-workflow-graph-runtime-CexS1ECI.js.map} +1 -1
- package/dist/utils/colors.cjs.js +2 -2
- package/dist/utils/colors.cjs.js.map +1 -1
- package/dist/utils/colors.es.js +2 -2
- package/dist/utils/colors.es.js.map +1 -1
- package/dist/{workflow-code-dialog-content-Iz2Omi1P.js → workflow-code-dialog-content-BQBHzRfZ.js} +3 -3
- package/dist/{workflow-code-dialog-content-Iz2Omi1P.js.map → workflow-code-dialog-content-BQBHzRfZ.js.map} +1 -1
- package/dist/{workflow-code-dialog-content-vLneZlMd.cjs → workflow-code-dialog-content-COlaHWtW.cjs} +3 -3
- package/dist/{workflow-code-dialog-content-vLneZlMd.cjs.map → workflow-code-dialog-content-COlaHWtW.cjs.map} +1 -1
- package/dist/{workflow-condition-card-B0Va5Amx.js → workflow-condition-card-3J-As62x.js} +10 -10
- package/dist/{workflow-condition-card-B0Va5Amx.js.map → workflow-condition-card-3J-As62x.js.map} +1 -1
- package/dist/{workflow-condition-card-CfjhZb0m.cjs → workflow-condition-card-BjEAp0t6.cjs} +10 -10
- package/dist/{workflow-condition-card-CfjhZb0m.cjs.map → workflow-condition-card-BjEAp0t6.cjs.map} +1 -1
- package/dist/{workflow-data-edge-view-o7akvbpB.js → workflow-data-edge-view-BjfKYysc.js} +2 -2
- package/dist/{workflow-data-edge-view-o7akvbpB.js.map → workflow-data-edge-view-BjfKYysc.js.map} +1 -1
- package/dist/{workflow-data-edge-view-DXeWURnc.cjs → workflow-data-edge-view-BvhW_gux.cjs} +2 -2
- package/dist/{workflow-data-edge-view-DXeWURnc.cjs.map → workflow-data-edge-view-BvhW_gux.cjs.map} +1 -1
- package/dist/{workflow-debug-controls-Bcb4vcek.cjs → workflow-debug-controls-VbxiluNZ.cjs} +3 -3
- package/dist/{workflow-debug-controls-Bcb4vcek.cjs.map → workflow-debug-controls-VbxiluNZ.cjs.map} +1 -1
- package/dist/{workflow-debug-controls-DULCFa4s.js → workflow-debug-controls-tty6gLX2.js} +3 -3
- package/dist/{workflow-debug-controls-DULCFa4s.js.map → workflow-debug-controls-tty6gLX2.js.map} +1 -1
- package/dist/{workflow-edge-data-button-CX-eSbSB.cjs → workflow-edge-data-button-BTsPGDpk.cjs} +4 -4
- package/dist/{workflow-edge-data-button-CX-eSbSB.cjs.map → workflow-edge-data-button-BTsPGDpk.cjs.map} +1 -1
- package/dist/{workflow-edge-data-button-BuZzeN2n.js → workflow-edge-data-button-CIP46GJE.js} +4 -4
- package/dist/{workflow-edge-data-button-BuZzeN2n.js.map → workflow-edge-data-button-CIP46GJE.js.map} +1 -1
- package/dist/{workflow-step-action-Cf_XmOwj.js → workflow-step-action-B3coZwPr.js} +3 -3
- package/dist/{workflow-step-action-Cf_XmOwj.js.map → workflow-step-action-B3coZwPr.js.map} +1 -1
- package/dist/{workflow-step-action-JMkWtObA.cjs → workflow-step-action-COOlMQGX.cjs} +3 -3
- package/dist/{workflow-step-action-JMkWtObA.cjs.map → workflow-step-action-COOlMQGX.cjs.map} +1 -1
- package/package.json +9 -9
- package/theme/colors.css +66 -66
- package/theme/data-viz.css +3 -3
- package/theme/status.css +89 -71
- package/theme/surfaces.css +4 -1
- package/dist/Badge-H8K5WrXg.cjs.map +0 -1
- package/dist/Badge-Q_pCeeGW.js.map +0 -1
- package/dist/Button-BnmR2HRc.cjs.map +0 -1
- package/dist/Button-C6eUqcPI.js.map +0 -1
- package/dist/EmptyState-CJ5KC4Db.cjs.map +0 -1
- package/dist/EmptyState-CynkaZd1.js.map +0 -1
- package/dist/activity-8egTNbaI.cjs.map +0 -1
- package/dist/activity-Duth8KP_.js.map +0 -1
- package/dist/ask-user-Crg1O-o6.js.map +0 -1
- package/dist/ask-user-DJXmLJzy.cjs.map +0 -1
- package/dist/code-editor-BXchPl_F.cjs.map +0 -1
- package/dist/code-editor-Cltwid7c.js.map +0 -1
- package/dist/data-code-section-Bd2Xnckz.js.map +0 -1
- package/dist/data-code-section-D5b6_jcB.cjs.map +0 -1
- package/dist/field-block-BIDi9Bvc.cjs.map +0 -1
- package/dist/field-block-DpejZ6U6.js.map +0 -1
- package/dist/metrics-card-CloSmyRQ.js.map +0 -1
- package/dist/metrics-card-HmQJHDNa.cjs.map +0 -1
- package/dist/metrics-kpi-card-CW24YjZp.cjs.map +0 -1
- package/dist/metrics-kpi-card-DLDT28IB.js.map +0 -1
- package/dist/notification-activity-B1_2BPe_.js.map +0 -1
- package/dist/notification-activity-BAn2fhYd.cjs.map +0 -1
- package/dist/plan-DJfH1c_u.js.map +0 -1
- package/dist/plan-ZKAT5frg.cjs.map +0 -1
- package/dist/sankey-chart-D-xMiO2u.js.map +0 -1
- package/dist/sankey-chart-S7iF7d0E.cjs.map +0 -1
- package/dist/settings-row-2hq9Ww8Z.js.map +0 -1
- package/dist/settings-row-BMRADph-.cjs.map +0 -1
- package/dist/tabs-root-4vL8SHCO.js.map +0 -1
- package/dist/tabs-root-BqC8X_h6.cjs.map +0 -1
- package/dist/tones-BRAQR5Yb.cjs.map +0 -1
- package/dist/tones-DVtXIMPY.js.map +0 -1
- package/dist/tool-approval-BAER9nxR.cjs.map +0 -1
- package/dist/tool-approval-xZvYiuBP.js.map +0 -1
- package/dist/tool-call-group-9Dtupqev.cjs.map +0 -1
- package/dist/tool-call-group-DJX7eUYY.js.map +0 -1
- package/dist/tool-call-output-DEoCE_Xn.js.map +0 -1
- package/dist/tool-call-output-Dl4sVfCy.cjs.map +0 -1
- package/dist/tool-card-BA1YcDoS.js.map +0 -1
- package/dist/tool-card-DRqhTx-u.cjs.map +0 -1
package/README.md
CHANGED
|
@@ -60,7 +60,7 @@ The fixed Mastra palette is available as `--color-brand-green`, `--color-brand-o
|
|
|
60
60
|
|
|
61
61
|
### Chromatic roles
|
|
62
62
|
|
|
63
|
-
Eight shared ramps (`red`, `orange`, `
|
|
63
|
+
Eight shared ramps (`red`, `orange`, `amber`, `green`, `cyan`, `blue`, `purple`, and `pink`) run from `50` to `950`. Status roles select steps from those ramps for each theme:
|
|
64
64
|
|
|
65
65
|
```css
|
|
66
66
|
.status {
|
|
@@ -74,7 +74,7 @@ Eight shared ramps (`red`, `orange`, `yellow`, `green`, `cyan`, `blue`, `purple`
|
|
|
74
74
|
}
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
The same four suffixes apply to `destructive`, `warning`, and `info`. Backgrounds are opaque. Use `-subtle-foreground` only for text on a `-subtle` surface.
|
|
77
|
+
The same four suffixes apply to `destructive`, `warning`, and `info`. Backgrounds are opaque. Use `-subtle-foreground` only for text on a `-subtle` surface. Dots, bars, chart marks, and invalid-field borders use `-indicator`. Standalone destructive and warning text and icons use `--destructive-foreground` and `--warning-foreground`, because those indicator fills are too light to read as text in light mode. Success and info text use `-indicator`. The filled destructive button uses `--fill-destructive` and its hover, active, and disabled steps, with `--fill-destructive-foreground` for its text.
|
|
78
78
|
|
|
79
79
|
Product roles use `--product-{name}` and `--product-{name}-foreground`. Names are `studio`, `server`, `observability`, `factory`, `workers`, and `persistent-server`. Use `ProductAvatar` for the round icon and `ProductBadge` for the icon with its label. Both take a `product` prop and use the matching semantic colors.
|
|
80
80
|
|
|
@@ -86,20 +86,21 @@ import { ProductBadge } from '@mastra/playground-ui/components/ProductBadge';
|
|
|
86
86
|
<ProductBadge product="persistent-server" />
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
Charts use hue-named roles for categories (`--chart-blue`, `--chart-blue-deep`, `--chart-
|
|
89
|
+
Charts use hue-named roles for categories (`--chart-blue`, `--chart-blue-deep`, `--chart-amber`, `--chart-green`, `--chart-purple`, `--chart-orange`, `--chart-pink`, `--chart-red`) and `--chart-sequential-1` through `--chart-sequential-5` for ordered values. Span colors use `--span-agent`, `--span-workflow`, and the other span names. Pastel chart colors are fills, not text colors; keep labels on `--foreground` or `--muted-foreground`.
|
|
90
90
|
|
|
91
|
-
Numbered `accent*` tokens, `positive1`, `negative1`, `warning1`, `notice-success/destructive/warning/info`, and `--brand-green-*` are removed. Status consumers use the existing `success`, `destructive`, `warning`, or `info` roles. Focus styling uses `border-focus`; categorical charts and span icons use their own roles. CodeMirror uses five local `--syntax-*` properties scoped to `.cm-editor`, not a global palette.
|
|
91
|
+
Numbered `accent*` tokens, `positive1`, `negative1`, `warning1`, `notice-success/destructive/warning/info`, and `--brand-green-*` are removed. The `yellow` ramp is now `amber`: `--yellow-*`, `--yellow-soft-*`, `--badge-yellow-*`, `--chart-yellow`, and the Badge `yellow` tone are removed in favor of their `amber` names. `--color-brand-yellow` is unchanged. Status consumers use the existing `success`, `destructive`, `warning`, or `info` roles. Focus styling uses `border-focus`; categorical charts and span icons use their own roles. CodeMirror uses five local `--syntax-*` properties scoped to `.cm-editor`, not a global palette.
|
|
92
92
|
|
|
93
|
-
Every badge hue (`green`, `red`, `
|
|
93
|
+
Every badge hue (`green`, `red`, `amber`, `blue`, `purple`, `orange`, `cyan`, `pink`) is a categorical tone built from the ramps, with `--badge-{hue}-strong`, `-subtle`, `-edge`, `-foreground`, and `-indicator`. `-strong` and `-subtle` are the fills behind `emphasis="strong"` and `emphasis="subtle"`. Badge backgrounds are translucent tints, so a badge follows the surface under it when a card or row changes on hover: `--{hue}-600` at 32% (strong) and 13% (subtle) in dark mode, `--{hue}-400` at 20% and 10% in light mode. On a resting card they match the solid fills they replaced. Product avatars stay solid (`--{hue}-soft-900` / `--{hue}-soft-950` in dark mode, `--{hue}-100` / `--{hue}-50` in light mode) because they overlap each other. The soft steps keep the lightness and hue of `900`/`950` at 75% chroma, and are available as utilities such as `bg-green-soft-900`. `--badge-{hue}-indicator` colors dots, icons, and labels for a category: `--{hue}-soft-300` in dark mode and `--{hue}-soft-600` in light mode, which hold every hue at the same 0.1 chroma so no hue shouts. Use the status role with `-subtle`, `-edge`, `-subtle-foreground`, or `-indicator` for its intended job. Notice variants are unchanged. Badge status variants are `success`, `destructive`, `warning`, and `info`, for states. `green`, `red`, `amber`, and `blue` are categorical tones like `purple` and `orange`, for labels that are not states. `Badge` takes `emphasis="strong"` (the default) or `emphasis="subtle"` (a quieter tinted fill). Use `--green-*` for the shared chromatic ramp.
|
|
94
94
|
|
|
95
95
|
#### Opacity and literal colors
|
|
96
96
|
|
|
97
|
-
A resting color never depends on what sits behind it. Surfaces, text, borders,
|
|
97
|
+
A resting color never depends on what sits behind it. Surfaces, text, borders, notices, status, product, and chart colors are solid ramp steps in both themes, and span colors are solid values in `data-viz.css` at one lightness per theme, whatever layer they sit on.
|
|
98
98
|
|
|
99
99
|
Opacity is allowed only through design-system tokens, for layers whose job is to show what is underneath:
|
|
100
100
|
|
|
101
101
|
- State layers over an existing surface: `fill`, `fill-subtle`, `fill-hover`, `fill-active`, and `fill-strong`.
|
|
102
102
|
- Scrims and overlays: `scrim`.
|
|
103
|
+
- Badge fills: `badge-{hue}-strong` and `badge-{hue}-subtle`, so a badge tints with the card or row it sits on.
|
|
103
104
|
- Neutral hairlines: `border`, `border-strong`, `surface-rim`, and `gray-alpha-*`.
|
|
104
105
|
- Effects that fade, glow, or animate inside a design-system component, such as the Composer ring and the sidebar meter bloom.
|
|
105
106
|
|
|
@@ -16,10 +16,10 @@ const red = {
|
|
|
16
16
|
subtle: "bg-badge-red-subtle text-badge-red-foreground",
|
|
17
17
|
indicator: "bg-badge-red-indicator"
|
|
18
18
|
};
|
|
19
|
-
const
|
|
20
|
-
strong: "bg-badge-
|
|
21
|
-
subtle: "bg-badge-
|
|
22
|
-
indicator: "bg-badge-
|
|
19
|
+
const amber = {
|
|
20
|
+
strong: "bg-badge-amber-strong text-badge-amber-foreground",
|
|
21
|
+
subtle: "bg-badge-amber-subtle text-badge-amber-foreground",
|
|
22
|
+
indicator: "bg-badge-amber-indicator"
|
|
23
23
|
};
|
|
24
24
|
const blue = {
|
|
25
25
|
strong: "bg-badge-blue-strong text-badge-blue-foreground",
|
|
@@ -63,12 +63,20 @@ const badgeToneStyles = {
|
|
|
63
63
|
indicator: "bg-muted-foreground"
|
|
64
64
|
},
|
|
65
65
|
success: { ...green, indicator: "bg-success-indicator" },
|
|
66
|
-
destructive: {
|
|
66
|
+
destructive: {
|
|
67
|
+
strong: "bg-badge-red-strong text-destructive-foreground",
|
|
68
|
+
subtle: "bg-badge-red-subtle text-destructive-foreground",
|
|
69
|
+
indicator: "bg-destructive-indicator"
|
|
70
|
+
},
|
|
67
71
|
info: { ...blue, indicator: "bg-info-indicator" },
|
|
68
|
-
warning: {
|
|
72
|
+
warning: {
|
|
73
|
+
strong: "bg-badge-amber-strong text-warning-foreground",
|
|
74
|
+
subtle: "bg-badge-amber-subtle text-warning-foreground",
|
|
75
|
+
indicator: "bg-warning-indicator"
|
|
76
|
+
},
|
|
69
77
|
green,
|
|
70
78
|
red,
|
|
71
|
-
|
|
79
|
+
amber,
|
|
72
80
|
blue,
|
|
73
81
|
purple: {
|
|
74
82
|
strong: "bg-badge-purple-strong text-badge-purple-foreground",
|
|
@@ -159,4 +167,4 @@ const Badge = ({
|
|
|
159
167
|
};
|
|
160
168
|
|
|
161
169
|
exports.Badge = Badge;
|
|
162
|
-
//# sourceMappingURL=Badge-
|
|
170
|
+
//# sourceMappingURL=Badge-D3EctKQo.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge-D3EctKQo.cjs","sources":["../src/ds/components/Badge/Badge.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport { Icon } from '../../icons/Icon';\nimport { productColors, productSubtleColors } from '../ProductAvatar/product-identity';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type BadgeEmphasis = 'strong' | 'subtle';\nexport type BadgeIndicator = 'dot' | 'pulse';\n\ntype BadgeToneStyles = Record<BadgeEmphasis, string> & { indicator: string };\n\nconst green = {\n strong: 'bg-badge-green-strong text-badge-green-foreground',\n subtle: 'bg-badge-green-subtle text-badge-green-foreground',\n indicator: 'bg-badge-green-indicator',\n};\nconst red = {\n strong: 'bg-badge-red-strong text-badge-red-foreground',\n subtle: 'bg-badge-red-subtle text-badge-red-foreground',\n indicator: 'bg-badge-red-indicator',\n};\nconst amber = {\n strong: 'bg-badge-amber-strong text-badge-amber-foreground',\n subtle: 'bg-badge-amber-subtle text-badge-amber-foreground',\n indicator: 'bg-badge-amber-indicator',\n};\nconst blue = {\n strong: 'bg-badge-blue-strong text-badge-blue-foreground',\n subtle: 'bg-badge-blue-subtle text-badge-blue-foreground',\n indicator: 'bg-badge-blue-indicator',\n};\n\nconst badgeToneStyles = {\n studio: {\n strong: productColors.studio,\n subtle: productSubtleColors.studio,\n indicator: 'bg-product-studio-foreground',\n },\n server: {\n strong: productColors.server,\n subtle: productSubtleColors.server,\n indicator: 'bg-product-server-foreground',\n },\n observability: {\n strong: productColors.observability,\n subtle: productSubtleColors.observability,\n indicator: 'bg-product-observability-foreground',\n },\n factory: {\n strong: productColors.factory,\n subtle: productSubtleColors.factory,\n indicator: 'bg-product-factory-foreground',\n },\n workers: {\n strong: productColors.workers,\n subtle: productSubtleColors.workers,\n indicator: 'bg-product-workers-foreground',\n },\n 'persistent-server': {\n strong: productColors['persistent-server'],\n subtle: productSubtleColors['persistent-server'],\n indicator: 'bg-product-persistent-server-foreground',\n },\n neutral: {\n strong: 'bg-fill text-badge-neutral-foreground',\n subtle: 'bg-fill-subtle text-badge-neutral-foreground',\n indicator: 'bg-muted-foreground',\n },\n success: { ...green, indicator: 'bg-success-indicator' },\n destructive: {\n strong: 'bg-badge-red-strong text-destructive-foreground',\n subtle: 'bg-badge-red-subtle text-destructive-foreground',\n indicator: 'bg-destructive-indicator',\n },\n info: { ...blue, indicator: 'bg-info-indicator' },\n warning: {\n strong: 'bg-badge-amber-strong text-warning-foreground',\n subtle: 'bg-badge-amber-subtle text-warning-foreground',\n indicator: 'bg-warning-indicator',\n },\n green,\n red,\n amber,\n blue,\n purple: {\n strong: 'bg-badge-purple-strong text-badge-purple-foreground',\n subtle: 'bg-badge-purple-subtle text-badge-purple-foreground',\n indicator: 'bg-badge-purple-indicator',\n },\n orange: {\n strong: 'bg-badge-orange-strong text-badge-orange-foreground',\n subtle: 'bg-badge-orange-subtle text-badge-orange-foreground',\n indicator: 'bg-badge-orange-indicator',\n },\n cyan: {\n strong: 'bg-badge-cyan-strong text-badge-cyan-foreground',\n subtle: 'bg-badge-cyan-subtle text-badge-cyan-foreground',\n indicator: 'bg-badge-cyan-indicator',\n },\n pink: {\n strong: 'bg-badge-pink-strong text-badge-pink-foreground',\n subtle: 'bg-badge-pink-subtle text-badge-pink-foreground',\n indicator: 'bg-badge-pink-indicator',\n },\n} satisfies Record<string, BadgeToneStyles>;\n\nexport type BadgeVariant = keyof typeof badgeToneStyles;\n\nconst badgeSizeStyles = {\n xs: {\n badge: 'h-[18px] gap-0.5 text-meta',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'pl-1 pr-1.5',\n indicator: 'size-1',\n },\n sm: {\n badge: 'h-5 gap-1 text-meta',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'px-1.5',\n indicator: 'size-1',\n },\n md: {\n badge: 'h-5 gap-1 text-column tracking-normal',\n withoutLeadingVisual: 'px-2',\n withLeadingVisual: 'pl-1.5 pr-2',\n indicator: 'size-1.5',\n },\n};\n\nexport type BadgeSize = keyof typeof badgeSizeStyles;\n\ntype BadgeLeadingVisual = { icon?: ReactNode; indicator?: never } | { icon?: never; indicator?: BadgeIndicator };\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> &\n BadgeLeadingVisual & {\n variant?: BadgeVariant;\n emphasis?: BadgeEmphasis;\n size?: BadgeSize;\n children?: ReactNode;\n };\n\nexport const Badge = ({\n icon,\n indicator,\n variant = 'neutral',\n emphasis = 'strong',\n size = 'md',\n className,\n children,\n ...props\n}: BadgeProps) => {\n const hasIcon = Boolean(icon);\n const withLeadingVisual = hasIcon || indicator !== undefined;\n const sizeStyles = badgeSizeStyles[size];\n const paddingClass = withLeadingVisual ? sizeStyles.withLeadingVisual : sizeStyles.withoutLeadingVisual;\n\n return (\n <span\n className={cn(\n 'inline-flex w-fit max-w-full shrink-0 items-center rounded-[7px]',\n 'shadow-inset',\n badgeToneStyles[variant][emphasis],\n sizeStyles.badge,\n paddingClass,\n transitions.colors,\n className,\n )}\n {...props}\n >\n {indicator !== undefined ? (\n <span\n aria-hidden=\"true\"\n className={cn(\n 'shrink-0 rounded-full',\n badgeToneStyles[variant].indicator,\n sizeStyles.indicator,\n indicator === 'pulse' && 'motion-safe:animate-pulse motion-reduce:animate-none',\n )}\n />\n ) : null}\n {hasIcon ? <Icon size=\"xs\">{icon}</Icon> : null}\n {children}\n </span>\n );\n};\n"],"names":["productColors","productSubtleColors","jsxs","cn","transitions","jsx","Icon"],"mappings":"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"}
|
|
@@ -14,10 +14,10 @@ const red = {
|
|
|
14
14
|
subtle: "bg-badge-red-subtle text-badge-red-foreground",
|
|
15
15
|
indicator: "bg-badge-red-indicator"
|
|
16
16
|
};
|
|
17
|
-
const
|
|
18
|
-
strong: "bg-badge-
|
|
19
|
-
subtle: "bg-badge-
|
|
20
|
-
indicator: "bg-badge-
|
|
17
|
+
const amber = {
|
|
18
|
+
strong: "bg-badge-amber-strong text-badge-amber-foreground",
|
|
19
|
+
subtle: "bg-badge-amber-subtle text-badge-amber-foreground",
|
|
20
|
+
indicator: "bg-badge-amber-indicator"
|
|
21
21
|
};
|
|
22
22
|
const blue = {
|
|
23
23
|
strong: "bg-badge-blue-strong text-badge-blue-foreground",
|
|
@@ -61,12 +61,20 @@ const badgeToneStyles = {
|
|
|
61
61
|
indicator: "bg-muted-foreground"
|
|
62
62
|
},
|
|
63
63
|
success: { ...green, indicator: "bg-success-indicator" },
|
|
64
|
-
destructive: {
|
|
64
|
+
destructive: {
|
|
65
|
+
strong: "bg-badge-red-strong text-destructive-foreground",
|
|
66
|
+
subtle: "bg-badge-red-subtle text-destructive-foreground",
|
|
67
|
+
indicator: "bg-destructive-indicator"
|
|
68
|
+
},
|
|
65
69
|
info: { ...blue, indicator: "bg-info-indicator" },
|
|
66
|
-
warning: {
|
|
70
|
+
warning: {
|
|
71
|
+
strong: "bg-badge-amber-strong text-warning-foreground",
|
|
72
|
+
subtle: "bg-badge-amber-subtle text-warning-foreground",
|
|
73
|
+
indicator: "bg-warning-indicator"
|
|
74
|
+
},
|
|
67
75
|
green,
|
|
68
76
|
red,
|
|
69
|
-
|
|
77
|
+
amber,
|
|
70
78
|
blue,
|
|
71
79
|
purple: {
|
|
72
80
|
strong: "bg-badge-purple-strong text-badge-purple-foreground",
|
|
@@ -157,4 +165,4 @@ const Badge = ({
|
|
|
157
165
|
};
|
|
158
166
|
|
|
159
167
|
export { Badge as B };
|
|
160
|
-
//# sourceMappingURL=Badge-
|
|
168
|
+
//# sourceMappingURL=Badge-DmOqFpXW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge-DmOqFpXW.js","sources":["../src/ds/components/Badge/Badge.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport { Icon } from '../../icons/Icon';\nimport { productColors, productSubtleColors } from '../ProductAvatar/product-identity';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type BadgeEmphasis = 'strong' | 'subtle';\nexport type BadgeIndicator = 'dot' | 'pulse';\n\ntype BadgeToneStyles = Record<BadgeEmphasis, string> & { indicator: string };\n\nconst green = {\n strong: 'bg-badge-green-strong text-badge-green-foreground',\n subtle: 'bg-badge-green-subtle text-badge-green-foreground',\n indicator: 'bg-badge-green-indicator',\n};\nconst red = {\n strong: 'bg-badge-red-strong text-badge-red-foreground',\n subtle: 'bg-badge-red-subtle text-badge-red-foreground',\n indicator: 'bg-badge-red-indicator',\n};\nconst amber = {\n strong: 'bg-badge-amber-strong text-badge-amber-foreground',\n subtle: 'bg-badge-amber-subtle text-badge-amber-foreground',\n indicator: 'bg-badge-amber-indicator',\n};\nconst blue = {\n strong: 'bg-badge-blue-strong text-badge-blue-foreground',\n subtle: 'bg-badge-blue-subtle text-badge-blue-foreground',\n indicator: 'bg-badge-blue-indicator',\n};\n\nconst badgeToneStyles = {\n studio: {\n strong: productColors.studio,\n subtle: productSubtleColors.studio,\n indicator: 'bg-product-studio-foreground',\n },\n server: {\n strong: productColors.server,\n subtle: productSubtleColors.server,\n indicator: 'bg-product-server-foreground',\n },\n observability: {\n strong: productColors.observability,\n subtle: productSubtleColors.observability,\n indicator: 'bg-product-observability-foreground',\n },\n factory: {\n strong: productColors.factory,\n subtle: productSubtleColors.factory,\n indicator: 'bg-product-factory-foreground',\n },\n workers: {\n strong: productColors.workers,\n subtle: productSubtleColors.workers,\n indicator: 'bg-product-workers-foreground',\n },\n 'persistent-server': {\n strong: productColors['persistent-server'],\n subtle: productSubtleColors['persistent-server'],\n indicator: 'bg-product-persistent-server-foreground',\n },\n neutral: {\n strong: 'bg-fill text-badge-neutral-foreground',\n subtle: 'bg-fill-subtle text-badge-neutral-foreground',\n indicator: 'bg-muted-foreground',\n },\n success: { ...green, indicator: 'bg-success-indicator' },\n destructive: {\n strong: 'bg-badge-red-strong text-destructive-foreground',\n subtle: 'bg-badge-red-subtle text-destructive-foreground',\n indicator: 'bg-destructive-indicator',\n },\n info: { ...blue, indicator: 'bg-info-indicator' },\n warning: {\n strong: 'bg-badge-amber-strong text-warning-foreground',\n subtle: 'bg-badge-amber-subtle text-warning-foreground',\n indicator: 'bg-warning-indicator',\n },\n green,\n red,\n amber,\n blue,\n purple: {\n strong: 'bg-badge-purple-strong text-badge-purple-foreground',\n subtle: 'bg-badge-purple-subtle text-badge-purple-foreground',\n indicator: 'bg-badge-purple-indicator',\n },\n orange: {\n strong: 'bg-badge-orange-strong text-badge-orange-foreground',\n subtle: 'bg-badge-orange-subtle text-badge-orange-foreground',\n indicator: 'bg-badge-orange-indicator',\n },\n cyan: {\n strong: 'bg-badge-cyan-strong text-badge-cyan-foreground',\n subtle: 'bg-badge-cyan-subtle text-badge-cyan-foreground',\n indicator: 'bg-badge-cyan-indicator',\n },\n pink: {\n strong: 'bg-badge-pink-strong text-badge-pink-foreground',\n subtle: 'bg-badge-pink-subtle text-badge-pink-foreground',\n indicator: 'bg-badge-pink-indicator',\n },\n} satisfies Record<string, BadgeToneStyles>;\n\nexport type BadgeVariant = keyof typeof badgeToneStyles;\n\nconst badgeSizeStyles = {\n xs: {\n badge: 'h-[18px] gap-0.5 text-meta',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'pl-1 pr-1.5',\n indicator: 'size-1',\n },\n sm: {\n badge: 'h-5 gap-1 text-meta',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'px-1.5',\n indicator: 'size-1',\n },\n md: {\n badge: 'h-5 gap-1 text-column tracking-normal',\n withoutLeadingVisual: 'px-2',\n withLeadingVisual: 'pl-1.5 pr-2',\n indicator: 'size-1.5',\n },\n};\n\nexport type BadgeSize = keyof typeof badgeSizeStyles;\n\ntype BadgeLeadingVisual = { icon?: ReactNode; indicator?: never } | { icon?: never; indicator?: BadgeIndicator };\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> &\n BadgeLeadingVisual & {\n variant?: BadgeVariant;\n emphasis?: BadgeEmphasis;\n size?: BadgeSize;\n children?: ReactNode;\n };\n\nexport const Badge = ({\n icon,\n indicator,\n variant = 'neutral',\n emphasis = 'strong',\n size = 'md',\n className,\n children,\n ...props\n}: BadgeProps) => {\n const hasIcon = Boolean(icon);\n const withLeadingVisual = hasIcon || indicator !== undefined;\n const sizeStyles = badgeSizeStyles[size];\n const paddingClass = withLeadingVisual ? sizeStyles.withLeadingVisual : sizeStyles.withoutLeadingVisual;\n\n return (\n <span\n className={cn(\n 'inline-flex w-fit max-w-full shrink-0 items-center rounded-[7px]',\n 'shadow-inset',\n badgeToneStyles[variant][emphasis],\n sizeStyles.badge,\n paddingClass,\n transitions.colors,\n className,\n )}\n {...props}\n >\n {indicator !== undefined ? (\n <span\n aria-hidden=\"true\"\n className={cn(\n 'shrink-0 rounded-full',\n badgeToneStyles[variant].indicator,\n sizeStyles.indicator,\n indicator === 'pulse' && 'motion-safe:animate-pulse motion-reduce:animate-none',\n )}\n />\n ) : null}\n {hasIcon ? <Icon size=\"xs\">{icon}</Icon> : null}\n {children}\n </span>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -54,10 +54,10 @@ const buttonVariants = index.cva(
|
|
|
54
54
|
"border border-transparent bg-fill-destructive text-fill-destructive-foreground not-disabled:hover:bg-fill-destructive-hover not-disabled:active:bg-fill-destructive-active",
|
|
55
55
|
primitives_transitions.focusRingOffset,
|
|
56
56
|
"focus-visible:border-transparent",
|
|
57
|
-
"disabled:bg-fill-destructive-disabled disabled:text-fill-destructive-foreground aria-disabled:bg-fill-destructive-disabled aria-disabled:text-fill-destructive-foreground"
|
|
57
|
+
"disabled:bg-fill-destructive-disabled disabled:text-fill-destructive-disabled-foreground aria-disabled:bg-fill-destructive-disabled aria-disabled:text-fill-destructive-disabled-foreground"
|
|
58
58
|
),
|
|
59
59
|
"destructive-ghost": utils_cn.cn(
|
|
60
|
-
"border border-transparent bg-transparent text-destructive-
|
|
60
|
+
"border border-transparent bg-transparent text-destructive-foreground not-disabled:hover:bg-destructive-subtle not-disabled:hover:text-destructive-foreground not-disabled:active:bg-destructive-subtle-active",
|
|
61
61
|
"disabled:bg-transparent disabled:text-placeholder aria-disabled:bg-transparent aria-disabled:text-placeholder"
|
|
62
62
|
),
|
|
63
63
|
ghost: utils_cn.cn(
|
|
@@ -205,4 +205,4 @@ Button.displayName = "Button";
|
|
|
205
205
|
exports.Button = Button;
|
|
206
206
|
exports.buttonVariants = buttonVariants;
|
|
207
207
|
exports.isIconButtonSize = isIconButtonSize;
|
|
208
|
-
//# sourceMappingURL=Button-
|
|
208
|
+
//# sourceMappingURL=Button-CXhSUBxN.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button-CXhSUBxN.cjs","sources":["../src/ds/components/Button/Button.tsx"],"sourcesContent":["import { Button as BaseButton } from '@base-ui/react/button';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport React from 'react';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Icon } from '@/ds/icons/Icon';\nimport { iconSizeClasses, type IconSize } from '@/ds/icons/icon-size-classes';\nimport { controlHeight, controlSizeClasses } from '@/ds/primitives/control-size';\nimport {\n controlFocusBorderVisible,\n raisedControlSurfaceStyle,\n sharedFormElementDisabledStyle,\n} from '@/ds/primitives/form-element';\nimport { controlStateColorTransition, focusRingOffset } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\n// Adornments for text-mode buttons: gap between icon+label and larger radius.\n// - `[data-slot=button-icon]` styles the `<Icon>` wrapper rendered by the `icon` prop — the only\n// supported way to pair an icon with a label (always on the left, fixed gap).\n// - `[&>svg]` only remains for label-less text-mode buttons (e.g. CopyButton) that pass a bare\n// SVG as children.\n// Excluded from icon-mode because icon-mode wraps children in `<Icon>` and uses its own\n// `rounded-full` (circle).\nconst TEXT_MODE_ADORNMENTS = cn(\n 'gap-[.75em] rounded-full',\n '[&>[data-slot=button-icon]]:-ml-[.3em]',\n '[&>svg]:mx-[-.3em]',\n);\n\n// An icon is secondary to the label beside it, and on a neutral surface it says so with\n// a colour token rather than opacity. Opacity dims against whatever sits behind the\n// control, so the same glyph clears contrast on one surface and fails on another, and it\n// left icon-only buttons with no hover response at all: only their background moved.\n// Filled variants opt out because there the glyph colour carries the meaning.\nconst NEUTRAL_ICON_STATE = cn(\n '[&_svg]:text-muted-foreground not-disabled:hover:[&_svg]:text-foreground aria-disabled:[&_svg]:text-muted-foreground',\n);\n\n// eslint-disable-next-line react-refresh/only-export-components -- exported variant helper is part of Button's public API\nexport const buttonVariants = cva(\n cn(\n 'inline-flex cursor-pointer items-center justify-center',\n controlStateColorTransition,\n sharedFormElementDisabledStyle,\n 'aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:text-muted-foreground',\n controlFocusBorderVisible,\n ),\n {\n variants: {\n variant: {\n // The raised card material, the same one a field wears: a neutral filled control is\n // one material system-wide. No border of its own — the material's rim is its edge,\n // and focus repaints that rim. Inside a ButtonsGroup the group flattens the rim and\n // hands every segment the same 1px border instead (see `buttons-group.css`).\n default: cn(\n 'border-0',\n raisedControlSurfaceStyle,\n NEUTRAL_ICON_STATE,\n 'disabled:bg-fill-subtle aria-disabled:bg-fill-subtle',\n ),\n // Filled variants take the opaque ladder: their rest fill is a colour, not a rung\n // layered on the surface, so a state that thinned it would let whatever the button\n // covers read through the hover it is meant to answer.\n primary: cn(\n 'border border-transparent bg-fill-inverse text-background not-disabled:hover:bg-fill-inverse-hover not-disabled:active:bg-fill-inverse-active',\n focusRingOffset,\n 'focus-visible:border-transparent',\n 'disabled:bg-fill-inverse-disabled disabled:text-background/75 aria-disabled:bg-fill-inverse-disabled aria-disabled:text-background/75',\n ),\n destructive: cn(\n 'border border-transparent bg-fill-destructive text-fill-destructive-foreground not-disabled:hover:bg-fill-destructive-hover not-disabled:active:bg-fill-destructive-active',\n focusRingOffset,\n 'focus-visible:border-transparent',\n 'disabled:bg-fill-destructive-disabled disabled:text-fill-destructive-disabled-foreground aria-disabled:bg-fill-destructive-disabled aria-disabled:text-fill-destructive-disabled-foreground',\n ),\n 'destructive-ghost': cn(\n 'border border-transparent bg-transparent text-destructive-foreground not-disabled:hover:bg-destructive-subtle not-disabled:hover:text-destructive-foreground not-disabled:active:bg-destructive-subtle-active',\n 'disabled:bg-transparent disabled:text-placeholder aria-disabled:bg-transparent aria-disabled:text-placeholder',\n ),\n ghost: cn(\n 'border border-transparent bg-transparent text-muted-foreground not-disabled:hover:bg-fill-subtle not-disabled:hover:text-foreground not-disabled:active:bg-fill',\n 'disabled:bg-transparent aria-disabled:bg-transparent',\n ),\n },\n size: {\n sm: cn(controlSizeClasses.sm, iconSizeClasses.sm, 'px-[.9em]', TEXT_MODE_ADORNMENTS),\n md: cn(controlSizeClasses.md, iconSizeClasses.md, 'px-[.9em]', TEXT_MODE_ADORNMENTS),\n lg: cn(controlSizeClasses.lg, iconSizeClasses.lg, 'px-[1em]', TEXT_MODE_ADORNMENTS),\n // Icon sizes: square dimensions, fully rounded → circle. Active state inherits from variant\n // so icon-mode and text-mode use the same press feedback. The glyph is sized by the `Icon`\n // wrapper the component puts around an icon-mode child, keyed off the same scale.\n 'icon-sm': cn(controlHeight.sm, 'w-control-sm rounded-full'),\n 'icon-md': cn(controlHeight.md, 'w-control-md rounded-full'),\n 'icon-lg': cn(controlHeight.lg, 'w-control-lg rounded-full'),\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n },\n);\n\n// Public types derived from cva — single source of truth. Adding a variant or size to\n// `buttonVariants` automatically updates these unions.\ntype ButtonVariantsProps = VariantProps<typeof buttonVariants>;\nexport type ButtonVariant = NonNullable<ButtonVariantsProps['variant']>;\nexport type ButtonSize = NonNullable<ButtonVariantsProps['size']>;\nexport type IconButtonSize = Extract<ButtonSize, `icon-${string}`>;\nexport type TextButtonSize = Exclude<ButtonSize, IconButtonSize>;\n\nexport interface ButtonProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>, ButtonVariantsProps {\n render?: BaseButton.Props['render'];\n className?: string;\n children: React.ReactNode;\n /** Leading icon, always rendered on the left of the label inside `<Icon>`. Ignored in icon-mode sizes. */\n icon?: React.ReactNode;\n tooltip?: React.ReactNode;\n /** @deprecated Pass the element through `render` instead: `render={<Link href=\"/x\" />}`. */\n as?: React.ElementType;\n /** @deprecated Set it on the element passed to `render`. */\n href?: string;\n /** @deprecated Set it on the element passed to `render`. */\n to?: string;\n /** @deprecated Set it on the element passed to `render`. */\n target?: string;\n /** @deprecated Set it on the element passed to `render`. */\n prefetch?: boolean | null;\n}\n\n// A link is not a button. `render` always entered `BaseButton`, which warns in\n// development when the resolved element is not a native button. `nativeButton={false}`\n// is the worse fix: Base UI then adds `role=\"button\"` and Enter/Space handling, so a\n// screen reader announces a link as a button. Render links directly instead and keep\n// `BaseButton` for real buttons.\nfunction isLinkElement(\n element: React.ReactElement,\n): element is React.ReactElement<{ href?: unknown; to?: unknown; className?: string }> {\n if (element.type === 'a') return true;\n const { href, to } = element.props as { href?: unknown; to?: unknown };\n return href !== undefined || to !== undefined;\n}\n\nfunction preventLinkActivation(event: React.SyntheticEvent): void {\n event.preventDefault();\n event.stopPropagation();\n}\n\n// One icon step per control step: a glyph is sized by the rung it sits in, so the\n// same nominal size renders the same icon whether it arrives as an icon-mode child,\n// the `icon` prop, or a bare SVG.\nconst iconSizeMap: Record<ButtonSize, IconSize> = {\n sm: 'sm',\n md: 'md',\n lg: 'lg',\n 'icon-sm': 'sm',\n 'icon-md': 'md',\n 'icon-lg': 'lg',\n};\n\n// Walks React children, expanding `<></>` fragments so `isIconOnly` can inspect the real\n// elements inside. `<Button><><Icon/></></Button>` should still count as icon-only.\nfunction flattenChildren(children: React.ReactNode): React.ReactNode[] {\n const result: React.ReactNode[] = [];\n React.Children.forEach(children, child => {\n if (React.isValidElement<{ children?: React.ReactNode }>(child) && child.type === React.Fragment) {\n result.push(...flattenChildren(child.props.children));\n } else {\n result.push(child);\n }\n });\n return result;\n}\n\n// True when every child is a React element (no text/label). Used in text-mode to brighten the\n// SVG of label-less buttons so the glyph reads stronger.\nfunction isIconOnly(children: React.ReactNode): boolean {\n const flat = flattenChildren(children);\n return flat.length > 0 && flat.every(child => React.isValidElement(child));\n}\n\n// Type guard: narrows `ButtonSize` to `IconButtonSize`, so an icon-mode button can be\n// told from a text-mode one without a cast.\n// eslint-disable-next-line react-refresh/only-export-components -- shared with Combobox's icon-only trigger\nexport function isIconButtonSize(size: ButtonSize | null | undefined): size is IconButtonSize {\n return size?.startsWith('icon-') ?? false;\n}\n\nexport const Button = React.forwardRef<HTMLElement, ButtonProps>(\n (\n {\n className,\n render,\n as: asProp,\n href,\n to,\n target,\n prefetch,\n size,\n variant = 'default',\n disabled,\n children,\n icon,\n tooltip,\n 'aria-label': ariaLabelProp,\n type,\n ...props\n },\n ref,\n ) => {\n const iconMode = isIconButtonSize(size);\n const resolvedSize: ButtonSize = size ?? 'md';\n const isLabelless = !iconMode && isIconOnly(children);\n\n // Icon-only buttons need an a11y label. If a string tooltip is provided, reuse it.\n const ariaLabel = ariaLabelProp ?? ((iconMode || isLabelless) && typeof tooltip === 'string' ? tooltip : undefined);\n\n const content = iconMode ? (\n <Icon size={iconSizeMap[resolvedSize]}>{children}</Icon>\n ) : (\n <>\n {icon ? (\n <Icon data-slot=\"button-icon\" size={iconSizeMap[resolvedSize]}>\n {icon}\n </Icon>\n ) : null}\n {children}\n </>\n );\n\n const sharedProps = {\n disabled,\n // Base UI renders `type=\"button\"` when the prop is absent, which would quietly stop\n // a form button that relied on the native `submit` default from submitting. Passing\n // it through, `undefined` included, keeps native semantics: absent stays absent.\n type,\n 'aria-label': ariaLabel,\n // Expose the variant so a parent ButtonsGroup can detect FILLED segments in CSS\n // (filled buttons have an opaque background that hides a border seam, so the group\n // paints their divider as an inset box-shadow instead — see buttons-group.css).\n 'data-variant': variant,\n // Icon-mode is a square: a group that overrides the rung has to move the width with\n // the height or the circle turns into a pill (see buttons-group.css).\n 'data-shape': iconMode ? 'icon' : undefined,\n className: cn(buttonVariants({ variant, size: resolvedSize }), className),\n ...props,\n };\n\n // The deprecated `as` API keeps its original element path rather than going through\n // Base UI. Routing it through `render` drops props Base UI does not know about — a\n // router link loses its `to` and stops navigating — and Base UI warns that a\n // non-<button> contradicts `nativeButton`.\n const LegacyComponent = render ? undefined : asProp;\n\n // Only forward what the caller actually set. Passing `href={undefined}` through to a\n // router link overwrites the href that link derives from `to`, leaving an anchor that\n // renders correctly and navigates nowhere.\n const legacyLinkProps = {\n ...(href === undefined ? null : { href }),\n ...(to === undefined ? null : { to }),\n ...(target === undefined ? null : { target }),\n ...(prefetch === undefined ? null : { prefetch }),\n };\n\n const renderedLink = React.isValidElement(render) && isLinkElement(render) ? render : undefined;\n const renderedLinkProps = renderedLink?.props;\n const disabledHref = renderedLink?.type !== 'a' && renderedLinkProps?.href !== undefined ? '' : undefined;\n const disabledTo = renderedLinkProps?.to !== undefined ? '' : undefined;\n const disabledLinkProps = disabled\n ? {\n href: disabledHref,\n to: disabledTo,\n 'aria-disabled': true,\n onClick: preventLinkActivation,\n onAuxClick: preventLinkActivation,\n onKeyDown: (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') preventLinkActivation(event);\n },\n }\n : undefined;\n\n const button = LegacyComponent ? (\n <LegacyComponent ref={ref} {...legacyLinkProps} {...sharedProps}>\n {content}\n </LegacyComponent>\n ) : renderedLink ? (\n React.cloneElement(renderedLink as React.ReactElement<Record<string, unknown>>, {\n ref,\n ...sharedProps,\n disabled: undefined,\n ...disabledLinkProps,\n className: cn(sharedProps.className, renderedLink.props.className),\n children: content,\n })\n ) : (\n <BaseButton ref={ref} render={render} {...sharedProps}>\n {content}\n </BaseButton>\n );\n\n if (tooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n );\n }\n\n return button;\n },\n);\n\nButton.displayName = 'Button';\n"],"names":["cn","cva","controlStateColorTransition","sharedFormElementDisabledStyle","controlFocusBorderVisible","raisedControlSurfaceStyle","focusRingOffset","controlSizeClasses","iconSizeClasses","controlHeight","tooltip","jsx","Icon","jsxs","Fragment","button","BaseButton","Tooltip","TooltipTrigger","TooltipContent"],"mappings":"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"}
|
|
@@ -52,10 +52,10 @@ const buttonVariants = cva(
|
|
|
52
52
|
"border border-transparent bg-fill-destructive text-fill-destructive-foreground not-disabled:hover:bg-fill-destructive-hover not-disabled:active:bg-fill-destructive-active",
|
|
53
53
|
focusRingOffset,
|
|
54
54
|
"focus-visible:border-transparent",
|
|
55
|
-
"disabled:bg-fill-destructive-disabled disabled:text-fill-destructive-foreground aria-disabled:bg-fill-destructive-disabled aria-disabled:text-fill-destructive-foreground"
|
|
55
|
+
"disabled:bg-fill-destructive-disabled disabled:text-fill-destructive-disabled-foreground aria-disabled:bg-fill-destructive-disabled aria-disabled:text-fill-destructive-disabled-foreground"
|
|
56
56
|
),
|
|
57
57
|
"destructive-ghost": cn(
|
|
58
|
-
"border border-transparent bg-transparent text-destructive-
|
|
58
|
+
"border border-transparent bg-transparent text-destructive-foreground not-disabled:hover:bg-destructive-subtle not-disabled:hover:text-destructive-foreground not-disabled:active:bg-destructive-subtle-active",
|
|
59
59
|
"disabled:bg-transparent disabled:text-placeholder aria-disabled:bg-transparent aria-disabled:text-placeholder"
|
|
60
60
|
),
|
|
61
61
|
ghost: cn(
|
|
@@ -201,4 +201,4 @@ const Button = React__default.forwardRef(
|
|
|
201
201
|
Button.displayName = "Button";
|
|
202
202
|
|
|
203
203
|
export { Button as B, buttonVariants as b, isIconButtonSize as i };
|
|
204
|
-
//# sourceMappingURL=Button-
|
|
204
|
+
//# sourceMappingURL=Button-D43ghVKt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button-D43ghVKt.js","sources":["../src/ds/components/Button/Button.tsx"],"sourcesContent":["import { Button as BaseButton } from '@base-ui/react/button';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport React from 'react';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Icon } from '@/ds/icons/Icon';\nimport { iconSizeClasses, type IconSize } from '@/ds/icons/icon-size-classes';\nimport { controlHeight, controlSizeClasses } from '@/ds/primitives/control-size';\nimport {\n controlFocusBorderVisible,\n raisedControlSurfaceStyle,\n sharedFormElementDisabledStyle,\n} from '@/ds/primitives/form-element';\nimport { controlStateColorTransition, focusRingOffset } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\n// Adornments for text-mode buttons: gap between icon+label and larger radius.\n// - `[data-slot=button-icon]` styles the `<Icon>` wrapper rendered by the `icon` prop — the only\n// supported way to pair an icon with a label (always on the left, fixed gap).\n// - `[&>svg]` only remains for label-less text-mode buttons (e.g. CopyButton) that pass a bare\n// SVG as children.\n// Excluded from icon-mode because icon-mode wraps children in `<Icon>` and uses its own\n// `rounded-full` (circle).\nconst TEXT_MODE_ADORNMENTS = cn(\n 'gap-[.75em] rounded-full',\n '[&>[data-slot=button-icon]]:-ml-[.3em]',\n '[&>svg]:mx-[-.3em]',\n);\n\n// An icon is secondary to the label beside it, and on a neutral surface it says so with\n// a colour token rather than opacity. Opacity dims against whatever sits behind the\n// control, so the same glyph clears contrast on one surface and fails on another, and it\n// left icon-only buttons with no hover response at all: only their background moved.\n// Filled variants opt out because there the glyph colour carries the meaning.\nconst NEUTRAL_ICON_STATE = cn(\n '[&_svg]:text-muted-foreground not-disabled:hover:[&_svg]:text-foreground aria-disabled:[&_svg]:text-muted-foreground',\n);\n\n// eslint-disable-next-line react-refresh/only-export-components -- exported variant helper is part of Button's public API\nexport const buttonVariants = cva(\n cn(\n 'inline-flex cursor-pointer items-center justify-center',\n controlStateColorTransition,\n sharedFormElementDisabledStyle,\n 'aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:text-muted-foreground',\n controlFocusBorderVisible,\n ),\n {\n variants: {\n variant: {\n // The raised card material, the same one a field wears: a neutral filled control is\n // one material system-wide. No border of its own — the material's rim is its edge,\n // and focus repaints that rim. Inside a ButtonsGroup the group flattens the rim and\n // hands every segment the same 1px border instead (see `buttons-group.css`).\n default: cn(\n 'border-0',\n raisedControlSurfaceStyle,\n NEUTRAL_ICON_STATE,\n 'disabled:bg-fill-subtle aria-disabled:bg-fill-subtle',\n ),\n // Filled variants take the opaque ladder: their rest fill is a colour, not a rung\n // layered on the surface, so a state that thinned it would let whatever the button\n // covers read through the hover it is meant to answer.\n primary: cn(\n 'border border-transparent bg-fill-inverse text-background not-disabled:hover:bg-fill-inverse-hover not-disabled:active:bg-fill-inverse-active',\n focusRingOffset,\n 'focus-visible:border-transparent',\n 'disabled:bg-fill-inverse-disabled disabled:text-background/75 aria-disabled:bg-fill-inverse-disabled aria-disabled:text-background/75',\n ),\n destructive: cn(\n 'border border-transparent bg-fill-destructive text-fill-destructive-foreground not-disabled:hover:bg-fill-destructive-hover not-disabled:active:bg-fill-destructive-active',\n focusRingOffset,\n 'focus-visible:border-transparent',\n 'disabled:bg-fill-destructive-disabled disabled:text-fill-destructive-disabled-foreground aria-disabled:bg-fill-destructive-disabled aria-disabled:text-fill-destructive-disabled-foreground',\n ),\n 'destructive-ghost': cn(\n 'border border-transparent bg-transparent text-destructive-foreground not-disabled:hover:bg-destructive-subtle not-disabled:hover:text-destructive-foreground not-disabled:active:bg-destructive-subtle-active',\n 'disabled:bg-transparent disabled:text-placeholder aria-disabled:bg-transparent aria-disabled:text-placeholder',\n ),\n ghost: cn(\n 'border border-transparent bg-transparent text-muted-foreground not-disabled:hover:bg-fill-subtle not-disabled:hover:text-foreground not-disabled:active:bg-fill',\n 'disabled:bg-transparent aria-disabled:bg-transparent',\n ),\n },\n size: {\n sm: cn(controlSizeClasses.sm, iconSizeClasses.sm, 'px-[.9em]', TEXT_MODE_ADORNMENTS),\n md: cn(controlSizeClasses.md, iconSizeClasses.md, 'px-[.9em]', TEXT_MODE_ADORNMENTS),\n lg: cn(controlSizeClasses.lg, iconSizeClasses.lg, 'px-[1em]', TEXT_MODE_ADORNMENTS),\n // Icon sizes: square dimensions, fully rounded → circle. Active state inherits from variant\n // so icon-mode and text-mode use the same press feedback. The glyph is sized by the `Icon`\n // wrapper the component puts around an icon-mode child, keyed off the same scale.\n 'icon-sm': cn(controlHeight.sm, 'w-control-sm rounded-full'),\n 'icon-md': cn(controlHeight.md, 'w-control-md rounded-full'),\n 'icon-lg': cn(controlHeight.lg, 'w-control-lg rounded-full'),\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n },\n);\n\n// Public types derived from cva — single source of truth. Adding a variant or size to\n// `buttonVariants` automatically updates these unions.\ntype ButtonVariantsProps = VariantProps<typeof buttonVariants>;\nexport type ButtonVariant = NonNullable<ButtonVariantsProps['variant']>;\nexport type ButtonSize = NonNullable<ButtonVariantsProps['size']>;\nexport type IconButtonSize = Extract<ButtonSize, `icon-${string}`>;\nexport type TextButtonSize = Exclude<ButtonSize, IconButtonSize>;\n\nexport interface ButtonProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>, ButtonVariantsProps {\n render?: BaseButton.Props['render'];\n className?: string;\n children: React.ReactNode;\n /** Leading icon, always rendered on the left of the label inside `<Icon>`. Ignored in icon-mode sizes. */\n icon?: React.ReactNode;\n tooltip?: React.ReactNode;\n /** @deprecated Pass the element through `render` instead: `render={<Link href=\"/x\" />}`. */\n as?: React.ElementType;\n /** @deprecated Set it on the element passed to `render`. */\n href?: string;\n /** @deprecated Set it on the element passed to `render`. */\n to?: string;\n /** @deprecated Set it on the element passed to `render`. */\n target?: string;\n /** @deprecated Set it on the element passed to `render`. */\n prefetch?: boolean | null;\n}\n\n// A link is not a button. `render` always entered `BaseButton`, which warns in\n// development when the resolved element is not a native button. `nativeButton={false}`\n// is the worse fix: Base UI then adds `role=\"button\"` and Enter/Space handling, so a\n// screen reader announces a link as a button. Render links directly instead and keep\n// `BaseButton` for real buttons.\nfunction isLinkElement(\n element: React.ReactElement,\n): element is React.ReactElement<{ href?: unknown; to?: unknown; className?: string }> {\n if (element.type === 'a') return true;\n const { href, to } = element.props as { href?: unknown; to?: unknown };\n return href !== undefined || to !== undefined;\n}\n\nfunction preventLinkActivation(event: React.SyntheticEvent): void {\n event.preventDefault();\n event.stopPropagation();\n}\n\n// One icon step per control step: a glyph is sized by the rung it sits in, so the\n// same nominal size renders the same icon whether it arrives as an icon-mode child,\n// the `icon` prop, or a bare SVG.\nconst iconSizeMap: Record<ButtonSize, IconSize> = {\n sm: 'sm',\n md: 'md',\n lg: 'lg',\n 'icon-sm': 'sm',\n 'icon-md': 'md',\n 'icon-lg': 'lg',\n};\n\n// Walks React children, expanding `<></>` fragments so `isIconOnly` can inspect the real\n// elements inside. `<Button><><Icon/></></Button>` should still count as icon-only.\nfunction flattenChildren(children: React.ReactNode): React.ReactNode[] {\n const result: React.ReactNode[] = [];\n React.Children.forEach(children, child => {\n if (React.isValidElement<{ children?: React.ReactNode }>(child) && child.type === React.Fragment) {\n result.push(...flattenChildren(child.props.children));\n } else {\n result.push(child);\n }\n });\n return result;\n}\n\n// True when every child is a React element (no text/label). Used in text-mode to brighten the\n// SVG of label-less buttons so the glyph reads stronger.\nfunction isIconOnly(children: React.ReactNode): boolean {\n const flat = flattenChildren(children);\n return flat.length > 0 && flat.every(child => React.isValidElement(child));\n}\n\n// Type guard: narrows `ButtonSize` to `IconButtonSize`, so an icon-mode button can be\n// told from a text-mode one without a cast.\n// eslint-disable-next-line react-refresh/only-export-components -- shared with Combobox's icon-only trigger\nexport function isIconButtonSize(size: ButtonSize | null | undefined): size is IconButtonSize {\n return size?.startsWith('icon-') ?? false;\n}\n\nexport const Button = React.forwardRef<HTMLElement, ButtonProps>(\n (\n {\n className,\n render,\n as: asProp,\n href,\n to,\n target,\n prefetch,\n size,\n variant = 'default',\n disabled,\n children,\n icon,\n tooltip,\n 'aria-label': ariaLabelProp,\n type,\n ...props\n },\n ref,\n ) => {\n const iconMode = isIconButtonSize(size);\n const resolvedSize: ButtonSize = size ?? 'md';\n const isLabelless = !iconMode && isIconOnly(children);\n\n // Icon-only buttons need an a11y label. If a string tooltip is provided, reuse it.\n const ariaLabel = ariaLabelProp ?? ((iconMode || isLabelless) && typeof tooltip === 'string' ? tooltip : undefined);\n\n const content = iconMode ? (\n <Icon size={iconSizeMap[resolvedSize]}>{children}</Icon>\n ) : (\n <>\n {icon ? (\n <Icon data-slot=\"button-icon\" size={iconSizeMap[resolvedSize]}>\n {icon}\n </Icon>\n ) : null}\n {children}\n </>\n );\n\n const sharedProps = {\n disabled,\n // Base UI renders `type=\"button\"` when the prop is absent, which would quietly stop\n // a form button that relied on the native `submit` default from submitting. Passing\n // it through, `undefined` included, keeps native semantics: absent stays absent.\n type,\n 'aria-label': ariaLabel,\n // Expose the variant so a parent ButtonsGroup can detect FILLED segments in CSS\n // (filled buttons have an opaque background that hides a border seam, so the group\n // paints their divider as an inset box-shadow instead — see buttons-group.css).\n 'data-variant': variant,\n // Icon-mode is a square: a group that overrides the rung has to move the width with\n // the height or the circle turns into a pill (see buttons-group.css).\n 'data-shape': iconMode ? 'icon' : undefined,\n className: cn(buttonVariants({ variant, size: resolvedSize }), className),\n ...props,\n };\n\n // The deprecated `as` API keeps its original element path rather than going through\n // Base UI. Routing it through `render` drops props Base UI does not know about — a\n // router link loses its `to` and stops navigating — and Base UI warns that a\n // non-<button> contradicts `nativeButton`.\n const LegacyComponent = render ? undefined : asProp;\n\n // Only forward what the caller actually set. Passing `href={undefined}` through to a\n // router link overwrites the href that link derives from `to`, leaving an anchor that\n // renders correctly and navigates nowhere.\n const legacyLinkProps = {\n ...(href === undefined ? null : { href }),\n ...(to === undefined ? null : { to }),\n ...(target === undefined ? null : { target }),\n ...(prefetch === undefined ? null : { prefetch }),\n };\n\n const renderedLink = React.isValidElement(render) && isLinkElement(render) ? render : undefined;\n const renderedLinkProps = renderedLink?.props;\n const disabledHref = renderedLink?.type !== 'a' && renderedLinkProps?.href !== undefined ? '' : undefined;\n const disabledTo = renderedLinkProps?.to !== undefined ? '' : undefined;\n const disabledLinkProps = disabled\n ? {\n href: disabledHref,\n to: disabledTo,\n 'aria-disabled': true,\n onClick: preventLinkActivation,\n onAuxClick: preventLinkActivation,\n onKeyDown: (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') preventLinkActivation(event);\n },\n }\n : undefined;\n\n const button = LegacyComponent ? (\n <LegacyComponent ref={ref} {...legacyLinkProps} {...sharedProps}>\n {content}\n </LegacyComponent>\n ) : renderedLink ? (\n React.cloneElement(renderedLink as React.ReactElement<Record<string, unknown>>, {\n ref,\n ...sharedProps,\n disabled: undefined,\n ...disabledLinkProps,\n className: cn(sharedProps.className, renderedLink.props.className),\n children: content,\n })\n ) : (\n <BaseButton ref={ref} render={render} {...sharedProps}>\n {content}\n </BaseButton>\n );\n\n if (tooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n );\n }\n\n return button;\n },\n);\n\nButton.displayName = 'Button';\n"],"names":["React","BaseButton"],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ const defaultIconByTone = {
|
|
|
11
11
|
};
|
|
12
12
|
const iconColorByTone = {
|
|
13
13
|
default: "text-muted-foreground",
|
|
14
|
-
error: "text-destructive-
|
|
14
|
+
error: "text-destructive-foreground"
|
|
15
15
|
};
|
|
16
16
|
function EmptyState({
|
|
17
17
|
tone = "default",
|
|
@@ -46,4 +46,4 @@ function EmptyState({
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
exports.EmptyState = EmptyState;
|
|
49
|
-
//# sourceMappingURL=EmptyState-
|
|
49
|
+
//# sourceMappingURL=EmptyState-CuoMGNP0.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState-CuoMGNP0.cjs","sources":["../src/ds/components/EmptyState/EmptyState.tsx"],"sourcesContent":["import { CircleSlashIcon, CircleXIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype EmptyStateTone = 'default' | 'error';\n\nconst defaultIconByTone: Record<EmptyStateTone, React.ReactNode> = {\n default: <CircleSlashIcon />,\n error: <CircleXIcon />,\n};\n\nconst iconColorByTone: Record<EmptyStateTone, string> = {\n default: 'text-muted-foreground',\n error: 'text-destructive-foreground',\n};\n\nexport type EmptyStateProps = {\n /** Defaults to the tone's icon, always rendered at 20px. Pass `null` to render no icon. */\n iconSlot?: React.ReactNode;\n titleSlot: React.ReactNode;\n descriptionSlot?: React.ReactNode;\n actionSlot?: React.ReactNode;\n className?: string;\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n /** Colors the icon; an icon with its own text color keeps it. */\n tone?: EmptyStateTone;\n /**\n * `inline` (default) renders the block in place.\n * `fill` centers it in the full height of its parent — the parent must have a definite height.\n */\n variant?: 'inline' | 'fill';\n};\n\nexport function EmptyState({\n tone = 'default',\n iconSlot = defaultIconByTone[tone],\n titleSlot,\n descriptionSlot,\n actionSlot,\n className,\n as: HeadingTag = 'h3',\n variant = 'inline',\n}: EmptyStateProps) {\n const content = (\n <div\n className={cn(\n 'flex flex-col items-center justify-center px-4 py-6 text-center',\n 'transition-opacity duration-normal ease-out-custom',\n className,\n )}\n >\n {iconSlot && <div className={cn('mb-3 [&_svg]:size-5', iconColorByTone[tone])}>{iconSlot}</div>}\n <HeadingTag className=\"text-subheading text-foreground\">{titleSlot}</HeadingTag>\n {descriptionSlot && (\n <Txt variant=\"caption\" tone=\"muted\" className=\"mt-1.5 max-w-md\">\n {descriptionSlot}\n </Txt>\n )}\n {actionSlot && <div className=\"mt-4\">{actionSlot}</div>}\n </div>\n );\n\n if (variant === 'fill') {\n return (\n <div data-slot=\"empty-state-fill\" className=\"flex h-full items-center-safe justify-center-safe\">\n {content}\n </div>\n );\n }\n\n return content;\n}\n"],"names":["CircleSlashIcon","CircleXIcon","jsxs","cn","jsx","Txt"],"mappings":";;;;;;;AAOA,MAAM,iBAAA,GAA6D;AAAA,EACjE,OAAA,iCAAUA,2BAAA,EAAA,EAAgB,CAAA;AAAA,EAC1B,KAAA,iCAAQC,uBAAA,EAAA,EAAY;AACtB,CAAA;AAEA,MAAM,eAAA,GAAkD;AAAA,EACtD,OAAA,EAAS,uBAAA;AAAA,EACT,KAAA,EAAO;AACT,CAAA;AAmBO,SAAS,UAAA,CAAW;AAAA,EACzB,IAAA,GAAO,SAAA;AAAA,EACP,QAAA,GAAW,kBAAkB,IAAI,CAAA;AAAA,EACjC,SAAA;AAAA,EACA,eAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAI,UAAA,GAAa,IAAA;AAAA,EACjB,OAAA,GAAU;AACZ,CAAA,EAAoB;AAClB,EAAA,MAAM,OAAA,mBACJC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,WAAA;AAAA,QACT,iEAAA;AAAA,QACA,oDAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,QAAA,oBAAYC,cAAA,CAAC,SAAI,SAAA,EAAWD,WAAA,CAAG,uBAAuB,eAAA,CAAgB,IAAI,CAAC,CAAA,EAAI,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,wBACzFC,cAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,iCAAA,EAAmC,QAAA,EAAA,SAAA,EAAU,CAAA;AAAA,QAClE,eAAA,mCACEC,OAAA,EAAA,EAAI,OAAA,EAAQ,WAAU,IAAA,EAAK,OAAA,EAAQ,SAAA,EAAU,iBAAA,EAC3C,QAAA,EAAA,eAAA,EACH,CAAA;AAAA,QAED,UAAA,oBAAcD,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,QAAQ,QAAA,EAAA,UAAA,EAAW;AAAA;AAAA;AAAA,GACnD;AAGF,EAAA,IAAI,YAAY,MAAA,EAAQ;AACtB,IAAA,sCACG,KAAA,EAAA,EAAI,WAAA,EAAU,kBAAA,EAAmB,SAAA,EAAU,qDACzC,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,OAAO,OAAA;AACT;;;;"}
|
|
@@ -9,7 +9,7 @@ const defaultIconByTone = {
|
|
|
9
9
|
};
|
|
10
10
|
const iconColorByTone = {
|
|
11
11
|
default: "text-muted-foreground",
|
|
12
|
-
error: "text-destructive-
|
|
12
|
+
error: "text-destructive-foreground"
|
|
13
13
|
};
|
|
14
14
|
function EmptyState({
|
|
15
15
|
tone = "default",
|
|
@@ -44,4 +44,4 @@ function EmptyState({
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
export { EmptyState as E };
|
|
47
|
-
//# sourceMappingURL=EmptyState-
|
|
47
|
+
//# sourceMappingURL=EmptyState-DyyUFpzY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState-DyyUFpzY.js","sources":["../src/ds/components/EmptyState/EmptyState.tsx"],"sourcesContent":["import { CircleSlashIcon, CircleXIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype EmptyStateTone = 'default' | 'error';\n\nconst defaultIconByTone: Record<EmptyStateTone, React.ReactNode> = {\n default: <CircleSlashIcon />,\n error: <CircleXIcon />,\n};\n\nconst iconColorByTone: Record<EmptyStateTone, string> = {\n default: 'text-muted-foreground',\n error: 'text-destructive-foreground',\n};\n\nexport type EmptyStateProps = {\n /** Defaults to the tone's icon, always rendered at 20px. Pass `null` to render no icon. */\n iconSlot?: React.ReactNode;\n titleSlot: React.ReactNode;\n descriptionSlot?: React.ReactNode;\n actionSlot?: React.ReactNode;\n className?: string;\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n /** Colors the icon; an icon with its own text color keeps it. */\n tone?: EmptyStateTone;\n /**\n * `inline` (default) renders the block in place.\n * `fill` centers it in the full height of its parent — the parent must have a definite height.\n */\n variant?: 'inline' | 'fill';\n};\n\nexport function EmptyState({\n tone = 'default',\n iconSlot = defaultIconByTone[tone],\n titleSlot,\n descriptionSlot,\n actionSlot,\n className,\n as: HeadingTag = 'h3',\n variant = 'inline',\n}: EmptyStateProps) {\n const content = (\n <div\n className={cn(\n 'flex flex-col items-center justify-center px-4 py-6 text-center',\n 'transition-opacity duration-normal ease-out-custom',\n className,\n )}\n >\n {iconSlot && <div className={cn('mb-3 [&_svg]:size-5', iconColorByTone[tone])}>{iconSlot}</div>}\n <HeadingTag className=\"text-subheading text-foreground\">{titleSlot}</HeadingTag>\n {descriptionSlot && (\n <Txt variant=\"caption\" tone=\"muted\" className=\"mt-1.5 max-w-md\">\n {descriptionSlot}\n </Txt>\n )}\n {actionSlot && <div className=\"mt-4\">{actionSlot}</div>}\n </div>\n );\n\n if (variant === 'fill') {\n return (\n <div data-slot=\"empty-state-fill\" className=\"flex h-full items-center-safe justify-center-safe\">\n {content}\n </div>\n );\n }\n\n return content;\n}\n"],"names":[],"mappings":";;;;;AAOA,MAAM,iBAAA,GAA6D;AAAA,EACjE,OAAA,sBAAU,eAAA,EAAA,EAAgB,CAAA;AAAA,EAC1B,KAAA,sBAAQ,WAAA,EAAA,EAAY;AACtB,CAAA;AAEA,MAAM,eAAA,GAAkD;AAAA,EACtD,OAAA,EAAS,uBAAA;AAAA,EACT,KAAA,EAAO;AACT,CAAA;AAmBO,SAAS,UAAA,CAAW;AAAA,EACzB,IAAA,GAAO,SAAA;AAAA,EACP,QAAA,GAAW,kBAAkB,IAAI,CAAA;AAAA,EACjC,SAAA;AAAA,EACA,eAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAI,UAAA,GAAa,IAAA;AAAA,EACjB,OAAA,GAAU;AACZ,CAAA,EAAoB;AAClB,EAAA,MAAM,OAAA,mBACJ,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,iEAAA;AAAA,QACA,oDAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,QAAA,oBAAY,GAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,uBAAuB,eAAA,CAAgB,IAAI,CAAC,CAAA,EAAI,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,wBACzF,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,iCAAA,EAAmC,QAAA,EAAA,SAAA,EAAU,CAAA;AAAA,QAClE,eAAA,wBACE,GAAA,EAAA,EAAI,OAAA,EAAQ,WAAU,IAAA,EAAK,OAAA,EAAQ,SAAA,EAAU,iBAAA,EAC3C,QAAA,EAAA,eAAA,EACH,CAAA;AAAA,QAED,UAAA,oBAAc,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,QAAQ,QAAA,EAAA,UAAA,EAAW;AAAA;AAAA;AAAA,GACnD;AAGF,EAAA,IAAI,YAAY,MAAA,EAAQ;AACtB,IAAA,2BACG,KAAA,EAAA,EAAI,WAAA,EAAU,kBAAA,EAAmB,SAAA,EAAU,qDACzC,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,OAAO,OAAA;AACT;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { AlertTriangle, RotateCcw, RefreshCw, Bug } from 'lucide-react';
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import { B as Button } from './Button-
|
|
4
|
+
import { B as Button } from './Button-D43ghVKt.js';
|
|
5
5
|
import { quietTextHover } from './primitives/typography.es.js';
|
|
6
6
|
import { c as cn } from './cn-65Adrsfj.js';
|
|
7
7
|
|
|
@@ -159,4 +159,4 @@ function DefaultErrorFallback({
|
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
export { ErrorBoundary as E };
|
|
162
|
-
//# sourceMappingURL=ErrorBoundary-
|
|
162
|
+
//# sourceMappingURL=ErrorBoundary-BvwJY6s9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorBoundary-Bb2R5IMR.js","sources":["../src/ds/components/ErrorBoundary/ErrorBoundary.tsx"],"sourcesContent":["import { AlertTriangle, Bug, RefreshCw, RotateCcw } from 'lucide-react';\nimport * as React from 'react';\nimport { Button } from '../Button';\nimport { quietTextHover } from '@/ds/primitives/typography';\nimport { cn } from '@/lib/utils';\n\nexport type ErrorBoundaryVariant = 'section' | 'inline';\n\nexport type ErrorBoundaryFallbackProps = {\n error: Error;\n errorInfo: React.ErrorInfo | null;\n reset: () => void;\n};\n\nexport interface ErrorBoundaryProps {\n children: React.ReactNode;\n /** Custom fallback rendered when an error is caught. Receives the error and a reset callback. */\n fallback?: React.ReactNode | ((props: ErrorBoundaryFallbackProps) => React.ReactNode);\n /** Called when an error is caught. Useful for reporting to an error tracker. */\n onError?: (error: Error, errorInfo: React.ErrorInfo) => void;\n /**\n * When any value in this array changes between renders, the boundary resets.\n * Useful for clearing an error on route change: `resetKeys={[pathname]}`.\n */\n resetKeys?: ReadonlyArray<unknown>;\n /** Heading shown in the default fallback. */\n title?: string;\n /** Description shown in the default fallback. */\n description?: string;\n /**\n * Controls the default fallback's footprint:\n * - `'section'` (default): fills available height and centers content — use when the boundary wraps a page or region.\n * - `'inline'`: stays compact — use when scoping to a single widget so the rest of the UI is untouched.\n */\n variant?: ErrorBoundaryVariant;\n /** Additional classes applied to the default fallback's outer wrapper. */\n className?: string;\n}\n\ntype ErrorBoundaryState = {\n error: Error | null;\n errorInfo: React.ErrorInfo | null;\n};\n\nconst INITIAL_STATE: ErrorBoundaryState = { error: null, errorInfo: null };\n\nfunction keysChanged(prev: ReadonlyArray<unknown> | undefined, next: ReadonlyArray<unknown> | undefined): boolean {\n if (prev === next) return false;\n if (!prev || !next) return true;\n if (prev.length !== next.length) return true;\n for (let i = 0; i < prev.length; i++) {\n if (!Object.is(prev[i], next[i])) return true;\n }\n return false;\n}\n\nexport class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = INITIAL_STATE;\n\n static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState> {\n return { error };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n this.setState({ errorInfo });\n if (this.props.onError) {\n try {\n this.props.onError(error, errorInfo);\n } catch (handlerError) {\n if (typeof console !== 'undefined') {\n console.error('[ErrorBoundary] onError handler threw:', handlerError);\n }\n }\n }\n if (typeof console !== 'undefined') {\n console.error('[ErrorBoundary] Uncaught error:', error, errorInfo);\n }\n }\n\n componentDidUpdate(prevProps: ErrorBoundaryProps) {\n if (this.state.error && keysChanged(prevProps.resetKeys, this.props.resetKeys)) {\n this.reset();\n }\n }\n\n reset = () => {\n this.setState(INITIAL_STATE);\n };\n\n render() {\n const { error, errorInfo } = this.state;\n const { children, fallback, title, description, variant, className } = this.props;\n\n if (!error) return children;\n\n if (typeof fallback === 'function') {\n return fallback({ error, errorInfo, reset: this.reset });\n }\n\n if (fallback !== undefined) return fallback;\n\n return (\n <DefaultErrorFallback\n error={error}\n errorInfo={errorInfo}\n reset={this.reset}\n title={title}\n description={description}\n variant={variant ?? 'section'}\n className={className}\n />\n );\n }\n}\n\ntype DefaultErrorFallbackProps = ErrorBoundaryFallbackProps & {\n title?: string;\n description?: string;\n variant: ErrorBoundaryVariant;\n className?: string;\n};\n\nfunction DefaultErrorFallback({\n error,\n errorInfo,\n reset,\n title,\n description,\n variant,\n className,\n}: DefaultErrorFallbackProps) {\n const stack = errorInfo?.componentStack ?? error.stack ?? '';\n const isInline = variant === 'inline';\n\n return (\n <div\n role=\"alert\"\n className={cn(\n '@container flex w-full items-center justify-center',\n isInline ? 'px-4 py-6' : 'h-full min-h-60 flex-1 px-6 py-10',\n className,\n )}\n >\n <div\n className={cn(\n 'flex flex-col items-center text-center',\n isInline ? 'max-w-md gap-3' : 'max-w-2xl gap-4 @md:gap-5 @lg:gap-6',\n )}\n >\n <div\n className={cn(\n 'flex items-center justify-center rounded-full bg-destructive-subtle text-destructive-subtle-foreground',\n isInline\n ? 'size-10 [&>svg]:size-5'\n : 'size-14 @md:size-16 @lg:size-20 [&>svg]:size-7 @md:[&>svg]:size-8 @lg:[&>svg]:size-10',\n )}\n >\n <AlertTriangle />\n </div>\n <h3\n className={cn(\n 'text-foreground',\n isInline ? 'text-subheading' : 'text-subheading @md:text-heading @lg:text-title',\n )}\n >\n {title ?? 'Something went wrong'}\n </h3>\n <p className={cn('text-muted-foreground', isInline ? 'text-caption' : 'text-body')}>\n {description ?? 'An unexpected error occurred while rendering this part of the page.'}\n </p>\n <p\n className={cn(\n 'rounded-md bg-card px-3 py-2 font-mono break-words text-muted-foreground',\n isInline ? 'text-meta' : 'text-caption',\n )}\n >\n {error.message}\n </p>\n <div className={cn('flex flex-wrap items-center justify-center gap-2', isInline ? 'mt-1' : 'mt-2')}>\n <Button icon={<RotateCcw />} variant=\"primary\" size={isInline ? 'sm' : 'lg'} onClick={reset}>\n Try again\n </Button>\n <Button\n icon={<RefreshCw />}\n variant=\"default\"\n size={isInline ? 'sm' : 'lg'}\n onClick={() => window.location.reload()}\n >\n Reload page\n </Button>\n <Button\n icon={<Bug />}\n render={<a href=\"https://github.com/mastra-ai/mastra/issues\" target=\"_blank\" rel=\"noopener noreferrer\" />}\n variant=\"default\"\n size={isInline ? 'sm' : 'lg'}\n >\n Report issue\n </Button>\n </div>\n {stack ? (\n <details className={cn('w-full text-left', isInline ? 'mt-1' : 'mt-2')}>\n <summary className={cn('cursor-pointer text-caption', quietTextHover)}>Show error details</summary>\n <pre className=\"mt-2 max-h-64 overflow-auto rounded-md bg-card p-3 text-meta break-words whitespace-pre-wrap text-muted-foreground\">\n {stack}\n </pre>\n </details>\n ) : null}\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ErrorBoundary-BvwJY6s9.js","sources":["../src/ds/components/ErrorBoundary/ErrorBoundary.tsx"],"sourcesContent":["import { AlertTriangle, Bug, RefreshCw, RotateCcw } from 'lucide-react';\nimport * as React from 'react';\nimport { Button } from '../Button';\nimport { quietTextHover } from '@/ds/primitives/typography';\nimport { cn } from '@/lib/utils';\n\nexport type ErrorBoundaryVariant = 'section' | 'inline';\n\nexport type ErrorBoundaryFallbackProps = {\n error: Error;\n errorInfo: React.ErrorInfo | null;\n reset: () => void;\n};\n\nexport interface ErrorBoundaryProps {\n children: React.ReactNode;\n /** Custom fallback rendered when an error is caught. Receives the error and a reset callback. */\n fallback?: React.ReactNode | ((props: ErrorBoundaryFallbackProps) => React.ReactNode);\n /** Called when an error is caught. Useful for reporting to an error tracker. */\n onError?: (error: Error, errorInfo: React.ErrorInfo) => void;\n /**\n * When any value in this array changes between renders, the boundary resets.\n * Useful for clearing an error on route change: `resetKeys={[pathname]}`.\n */\n resetKeys?: ReadonlyArray<unknown>;\n /** Heading shown in the default fallback. */\n title?: string;\n /** Description shown in the default fallback. */\n description?: string;\n /**\n * Controls the default fallback's footprint:\n * - `'section'` (default): fills available height and centers content — use when the boundary wraps a page or region.\n * - `'inline'`: stays compact — use when scoping to a single widget so the rest of the UI is untouched.\n */\n variant?: ErrorBoundaryVariant;\n /** Additional classes applied to the default fallback's outer wrapper. */\n className?: string;\n}\n\ntype ErrorBoundaryState = {\n error: Error | null;\n errorInfo: React.ErrorInfo | null;\n};\n\nconst INITIAL_STATE: ErrorBoundaryState = { error: null, errorInfo: null };\n\nfunction keysChanged(prev: ReadonlyArray<unknown> | undefined, next: ReadonlyArray<unknown> | undefined): boolean {\n if (prev === next) return false;\n if (!prev || !next) return true;\n if (prev.length !== next.length) return true;\n for (let i = 0; i < prev.length; i++) {\n if (!Object.is(prev[i], next[i])) return true;\n }\n return false;\n}\n\nexport class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = INITIAL_STATE;\n\n static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState> {\n return { error };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n this.setState({ errorInfo });\n if (this.props.onError) {\n try {\n this.props.onError(error, errorInfo);\n } catch (handlerError) {\n if (typeof console !== 'undefined') {\n console.error('[ErrorBoundary] onError handler threw:', handlerError);\n }\n }\n }\n if (typeof console !== 'undefined') {\n console.error('[ErrorBoundary] Uncaught error:', error, errorInfo);\n }\n }\n\n componentDidUpdate(prevProps: ErrorBoundaryProps) {\n if (this.state.error && keysChanged(prevProps.resetKeys, this.props.resetKeys)) {\n this.reset();\n }\n }\n\n reset = () => {\n this.setState(INITIAL_STATE);\n };\n\n render() {\n const { error, errorInfo } = this.state;\n const { children, fallback, title, description, variant, className } = this.props;\n\n if (!error) return children;\n\n if (typeof fallback === 'function') {\n return fallback({ error, errorInfo, reset: this.reset });\n }\n\n if (fallback !== undefined) return fallback;\n\n return (\n <DefaultErrorFallback\n error={error}\n errorInfo={errorInfo}\n reset={this.reset}\n title={title}\n description={description}\n variant={variant ?? 'section'}\n className={className}\n />\n );\n }\n}\n\ntype DefaultErrorFallbackProps = ErrorBoundaryFallbackProps & {\n title?: string;\n description?: string;\n variant: ErrorBoundaryVariant;\n className?: string;\n};\n\nfunction DefaultErrorFallback({\n error,\n errorInfo,\n reset,\n title,\n description,\n variant,\n className,\n}: DefaultErrorFallbackProps) {\n const stack = errorInfo?.componentStack ?? error.stack ?? '';\n const isInline = variant === 'inline';\n\n return (\n <div\n role=\"alert\"\n className={cn(\n '@container flex w-full items-center justify-center',\n isInline ? 'px-4 py-6' : 'h-full min-h-60 flex-1 px-6 py-10',\n className,\n )}\n >\n <div\n className={cn(\n 'flex flex-col items-center text-center',\n isInline ? 'max-w-md gap-3' : 'max-w-2xl gap-4 @md:gap-5 @lg:gap-6',\n )}\n >\n <div\n className={cn(\n 'flex items-center justify-center rounded-full bg-destructive-subtle text-destructive-subtle-foreground',\n isInline\n ? 'size-10 [&>svg]:size-5'\n : 'size-14 @md:size-16 @lg:size-20 [&>svg]:size-7 @md:[&>svg]:size-8 @lg:[&>svg]:size-10',\n )}\n >\n <AlertTriangle />\n </div>\n <h3\n className={cn(\n 'text-foreground',\n isInline ? 'text-subheading' : 'text-subheading @md:text-heading @lg:text-title',\n )}\n >\n {title ?? 'Something went wrong'}\n </h3>\n <p className={cn('text-muted-foreground', isInline ? 'text-caption' : 'text-body')}>\n {description ?? 'An unexpected error occurred while rendering this part of the page.'}\n </p>\n <p\n className={cn(\n 'rounded-md bg-card px-3 py-2 font-mono break-words text-muted-foreground',\n isInline ? 'text-meta' : 'text-caption',\n )}\n >\n {error.message}\n </p>\n <div className={cn('flex flex-wrap items-center justify-center gap-2', isInline ? 'mt-1' : 'mt-2')}>\n <Button icon={<RotateCcw />} variant=\"primary\" size={isInline ? 'sm' : 'lg'} onClick={reset}>\n Try again\n </Button>\n <Button\n icon={<RefreshCw />}\n variant=\"default\"\n size={isInline ? 'sm' : 'lg'}\n onClick={() => window.location.reload()}\n >\n Reload page\n </Button>\n <Button\n icon={<Bug />}\n render={<a href=\"https://github.com/mastra-ai/mastra/issues\" target=\"_blank\" rel=\"noopener noreferrer\" />}\n variant=\"default\"\n size={isInline ? 'sm' : 'lg'}\n >\n Report issue\n </Button>\n </div>\n {stack ? (\n <details className={cn('w-full text-left', isInline ? 'mt-1' : 'mt-2')}>\n <summary className={cn('cursor-pointer text-caption', quietTextHover)}>Show error details</summary>\n <pre className=\"mt-2 max-h-64 overflow-auto rounded-md bg-card p-3 text-meta break-words whitespace-pre-wrap text-muted-foreground\">\n {stack}\n </pre>\n </details>\n ) : null}\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
const jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
const lucideReact = require('lucide-react');
|
|
5
5
|
const React = require('react');
|
|
6
|
-
const Button = require('./Button-
|
|
6
|
+
const Button = require('./Button-CXhSUBxN.cjs');
|
|
7
7
|
const primitives_typography = require('./primitives/typography.cjs.js');
|
|
8
8
|
const utils_cn = require('./cn-DG0X1KEP.cjs');
|
|
9
9
|
|
|
@@ -180,4 +180,4 @@ function DefaultErrorFallback({
|
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
exports.ErrorBoundary = ErrorBoundary;
|
|
183
|
-
//# sourceMappingURL=ErrorBoundary-
|
|
183
|
+
//# sourceMappingURL=ErrorBoundary-D7eIMbMr.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorBoundary-CKrwONAU.cjs","sources":["../src/ds/components/ErrorBoundary/ErrorBoundary.tsx"],"sourcesContent":["import { AlertTriangle, Bug, RefreshCw, RotateCcw } from 'lucide-react';\nimport * as React from 'react';\nimport { Button } from '../Button';\nimport { quietTextHover } from '@/ds/primitives/typography';\nimport { cn } from '@/lib/utils';\n\nexport type ErrorBoundaryVariant = 'section' | 'inline';\n\nexport type ErrorBoundaryFallbackProps = {\n error: Error;\n errorInfo: React.ErrorInfo | null;\n reset: () => void;\n};\n\nexport interface ErrorBoundaryProps {\n children: React.ReactNode;\n /** Custom fallback rendered when an error is caught. Receives the error and a reset callback. */\n fallback?: React.ReactNode | ((props: ErrorBoundaryFallbackProps) => React.ReactNode);\n /** Called when an error is caught. Useful for reporting to an error tracker. */\n onError?: (error: Error, errorInfo: React.ErrorInfo) => void;\n /**\n * When any value in this array changes between renders, the boundary resets.\n * Useful for clearing an error on route change: `resetKeys={[pathname]}`.\n */\n resetKeys?: ReadonlyArray<unknown>;\n /** Heading shown in the default fallback. */\n title?: string;\n /** Description shown in the default fallback. */\n description?: string;\n /**\n * Controls the default fallback's footprint:\n * - `'section'` (default): fills available height and centers content — use when the boundary wraps a page or region.\n * - `'inline'`: stays compact — use when scoping to a single widget so the rest of the UI is untouched.\n */\n variant?: ErrorBoundaryVariant;\n /** Additional classes applied to the default fallback's outer wrapper. */\n className?: string;\n}\n\ntype ErrorBoundaryState = {\n error: Error | null;\n errorInfo: React.ErrorInfo | null;\n};\n\nconst INITIAL_STATE: ErrorBoundaryState = { error: null, errorInfo: null };\n\nfunction keysChanged(prev: ReadonlyArray<unknown> | undefined, next: ReadonlyArray<unknown> | undefined): boolean {\n if (prev === next) return false;\n if (!prev || !next) return true;\n if (prev.length !== next.length) return true;\n for (let i = 0; i < prev.length; i++) {\n if (!Object.is(prev[i], next[i])) return true;\n }\n return false;\n}\n\nexport class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = INITIAL_STATE;\n\n static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState> {\n return { error };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n this.setState({ errorInfo });\n if (this.props.onError) {\n try {\n this.props.onError(error, errorInfo);\n } catch (handlerError) {\n if (typeof console !== 'undefined') {\n console.error('[ErrorBoundary] onError handler threw:', handlerError);\n }\n }\n }\n if (typeof console !== 'undefined') {\n console.error('[ErrorBoundary] Uncaught error:', error, errorInfo);\n }\n }\n\n componentDidUpdate(prevProps: ErrorBoundaryProps) {\n if (this.state.error && keysChanged(prevProps.resetKeys, this.props.resetKeys)) {\n this.reset();\n }\n }\n\n reset = () => {\n this.setState(INITIAL_STATE);\n };\n\n render() {\n const { error, errorInfo } = this.state;\n const { children, fallback, title, description, variant, className } = this.props;\n\n if (!error) return children;\n\n if (typeof fallback === 'function') {\n return fallback({ error, errorInfo, reset: this.reset });\n }\n\n if (fallback !== undefined) return fallback;\n\n return (\n <DefaultErrorFallback\n error={error}\n errorInfo={errorInfo}\n reset={this.reset}\n title={title}\n description={description}\n variant={variant ?? 'section'}\n className={className}\n />\n );\n }\n}\n\ntype DefaultErrorFallbackProps = ErrorBoundaryFallbackProps & {\n title?: string;\n description?: string;\n variant: ErrorBoundaryVariant;\n className?: string;\n};\n\nfunction DefaultErrorFallback({\n error,\n errorInfo,\n reset,\n title,\n description,\n variant,\n className,\n}: DefaultErrorFallbackProps) {\n const stack = errorInfo?.componentStack ?? error.stack ?? '';\n const isInline = variant === 'inline';\n\n return (\n <div\n role=\"alert\"\n className={cn(\n '@container flex w-full items-center justify-center',\n isInline ? 'px-4 py-6' : 'h-full min-h-60 flex-1 px-6 py-10',\n className,\n )}\n >\n <div\n className={cn(\n 'flex flex-col items-center text-center',\n isInline ? 'max-w-md gap-3' : 'max-w-2xl gap-4 @md:gap-5 @lg:gap-6',\n )}\n >\n <div\n className={cn(\n 'flex items-center justify-center rounded-full bg-destructive-subtle text-destructive-subtle-foreground',\n isInline\n ? 'size-10 [&>svg]:size-5'\n : 'size-14 @md:size-16 @lg:size-20 [&>svg]:size-7 @md:[&>svg]:size-8 @lg:[&>svg]:size-10',\n )}\n >\n <AlertTriangle />\n </div>\n <h3\n className={cn(\n 'text-foreground',\n isInline ? 'text-subheading' : 'text-subheading @md:text-heading @lg:text-title',\n )}\n >\n {title ?? 'Something went wrong'}\n </h3>\n <p className={cn('text-muted-foreground', isInline ? 'text-caption' : 'text-body')}>\n {description ?? 'An unexpected error occurred while rendering this part of the page.'}\n </p>\n <p\n className={cn(\n 'rounded-md bg-card px-3 py-2 font-mono break-words text-muted-foreground',\n isInline ? 'text-meta' : 'text-caption',\n )}\n >\n {error.message}\n </p>\n <div className={cn('flex flex-wrap items-center justify-center gap-2', isInline ? 'mt-1' : 'mt-2')}>\n <Button icon={<RotateCcw />} variant=\"primary\" size={isInline ? 'sm' : 'lg'} onClick={reset}>\n Try again\n </Button>\n <Button\n icon={<RefreshCw />}\n variant=\"default\"\n size={isInline ? 'sm' : 'lg'}\n onClick={() => window.location.reload()}\n >\n Reload page\n </Button>\n <Button\n icon={<Bug />}\n render={<a href=\"https://github.com/mastra-ai/mastra/issues\" target=\"_blank\" rel=\"noopener noreferrer\" />}\n variant=\"default\"\n size={isInline ? 'sm' : 'lg'}\n >\n Report issue\n </Button>\n </div>\n {stack ? (\n <details className={cn('w-full text-left', isInline ? 'mt-1' : 'mt-2')}>\n <summary className={cn('cursor-pointer text-caption', quietTextHover)}>Show error details</summary>\n <pre className=\"mt-2 max-h-64 overflow-auto rounded-md bg-card p-3 text-meta break-words whitespace-pre-wrap text-muted-foreground\">\n {stack}\n </pre>\n </details>\n ) : null}\n </div>\n </div>\n );\n}\n"],"names":["React","jsx","cn","jsxs","AlertTriangle","Button","RotateCcw","RefreshCw","Bug","quietTextHover"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,MAAM,aAAA,GAAoC,EAAE,KAAA,EAAO,IAAA,EAAM,WAAW,IAAA,EAAK;AAEzE,SAAS,WAAA,CAAY,MAA0C,IAAA,EAAmD;AAChH,EAAA,IAAI,IAAA,KAAS,MAAM,OAAO,KAAA;AAC1B,EAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,IAAA,EAAM,OAAO,IAAA;AAC3B,EAAA,IAAI,IAAA,CAAK,MAAA,KAAW,IAAA,CAAK,MAAA,EAAQ,OAAO,IAAA;AACxC,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,IAAA,IAAI,CAAC,MAAA,CAAO,EAAA,CAAG,IAAA,CAAK,CAAC,GAAG,IAAA,CAAK,CAAC,CAAC,CAAA,EAAG,OAAO,IAAA;AAAA,EAC3C;AACA,EAAA,OAAO,KAAA;AACT;AAEO,MAAM,aAAA,SAAsBA,iBAAM,SAAA,CAAkD;AAAA,EACzF,KAAA,GAA4B,aAAA;AAAA,EAE5B,OAAO,yBAAyB,KAAA,EAA2C;AACzE,IAAA,OAAO,EAAE,KAAA,EAAM;AAAA,EACjB;AAAA,EAEA,iBAAA,CAAkB,OAAc,SAAA,EAA4B;AAC1D,IAAA,IAAA,CAAK,QAAA,CAAS,EAAE,SAAA,EAAW,CAAA;AAC3B,IAAA,IAAI,IAAA,CAAK,MAAM,OAAA,EAAS;AACtB,MAAA,IAAI;AACF,QAAA,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,SAAS,CAAA;AAAA,MACrC,SAAS,YAAA,EAAc;AACrB,QAAA,IAAI,OAAO,YAAY,WAAA,EAAa;AAClC,UAAA,OAAA,CAAQ,KAAA,CAAM,0CAA0C,YAAY,CAAA;AAAA,QACtE;AAAA,MACF;AAAA,IACF;AACA,IAAA,IAAI,OAAO,YAAY,WAAA,EAAa;AAClC,MAAA,OAAA,CAAQ,KAAA,CAAM,iCAAA,EAAmC,KAAA,EAAO,SAAS,CAAA;AAAA,IACnE;AAAA,EACF;AAAA,EAEA,mBAAmB,SAAA,EAA+B;AAChD,IAAA,IAAI,IAAA,CAAK,MAAM,KAAA,IAAS,WAAA,CAAY,UAAU,SAAA,EAAW,IAAA,CAAK,KAAA,CAAM,SAAS,CAAA,EAAG;AAC9E,MAAA,IAAA,CAAK,KAAA,EAAM;AAAA,IACb;AAAA,EACF;AAAA,EAEA,QAAQ,MAAM;AACZ,IAAA,IAAA,CAAK,SAAS,aAAa,CAAA;AAAA,EAC7B,CAAA;AAAA,EAEA,MAAA,GAAS;AACP,IAAA,MAAM,EAAE,KAAA,EAAO,SAAA,EAAU,GAAI,IAAA,CAAK,KAAA;AAClC,IAAA,MAAM,EAAE,UAAU,QAAA,EAAU,KAAA,EAAO,aAAa,OAAA,EAAS,SAAA,KAAc,IAAA,CAAK,KAAA;AAE5E,IAAA,IAAI,CAAC,OAAO,OAAO,QAAA;AAEnB,IAAA,IAAI,OAAO,aAAa,UAAA,EAAY;AAClC,MAAA,OAAO,SAAS,EAAE,KAAA,EAAO,WAAW,KAAA,EAAO,IAAA,CAAK,OAAO,CAAA;AAAA,IACzD;AAEA,IAAA,IAAI,QAAA,KAAa,QAAW,OAAO,QAAA;AAEnC,IAAA,uBACEC,cAAA;AAAA,MAAC,oBAAA;AAAA,MAAA;AAAA,QACC,KAAA;AAAA,QACA,SAAA;AAAA,QACA,OAAO,IAAA,CAAK,KAAA;AAAA,QACZ,KAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAS,OAAA,IAAW,SAAA;AAAA,QACpB;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AASA,SAAS,oBAAA,CAAqB;AAAA,EAC5B,KAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,MAAM,KAAA,GAAQ,SAAA,EAAW,cAAA,IAAkB,KAAA,CAAM,KAAA,IAAS,EAAA;AAC1D,EAAA,MAAM,WAAW,OAAA,KAAY,QAAA;AAE7B,EAAA,uBACEA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACL,SAAA,EAAWC,WAAA;AAAA,QACT,oDAAA;AAAA,QACA,WAAW,WAAA,GAAc,mCAAA;AAAA,QACzB;AAAA,OACF;AAAA,MAEA,QAAA,kBAAAC,eAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAWD,WAAA;AAAA,YACT,wCAAA;AAAA,YACA,WAAW,gBAAA,GAAmB;AAAA,WAChC;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAAD,cAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAWC,WAAA;AAAA,kBACT,wGAAA;AAAA,kBACA,WACI,wBAAA,GACA;AAAA,iBACN;AAAA,gBAEA,yCAACE,yBAAA,EAAA,EAAc;AAAA;AAAA,aACjB;AAAA,4BACAH,cAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAWC,WAAA;AAAA,kBACT,iBAAA;AAAA,kBACA,WAAW,iBAAA,GAAoB;AAAA,iBACjC;AAAA,gBAEC,QAAA,EAAA,KAAA,IAAS;AAAA;AAAA,aACZ;AAAA,4BACAD,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAWC,WAAA,CAAG,uBAAA,EAAyB,WAAW,cAAA,GAAiB,WAAW,CAAA,EAC9E,QAAA,EAAA,WAAA,IAAe,qEAAA,EAClB,CAAA;AAAA,4BACAD,cAAA;AAAA,cAAC,GAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAWC,WAAA;AAAA,kBACT,0EAAA;AAAA,kBACA,WAAW,WAAA,GAAc;AAAA,iBAC3B;AAAA,gBAEC,QAAA,EAAA,KAAA,CAAM;AAAA;AAAA,aACT;AAAA,4BACAC,eAAA,CAAC,SAAI,SAAA,EAAWD,WAAA,CAAG,oDAAoD,QAAA,GAAW,MAAA,GAAS,MAAM,CAAA,EAC/F,QAAA,EAAA;AAAA,8BAAAD,cAAA,CAACI,aAAA,EAAA,EAAO,IAAA,kBAAMJ,cAAA,CAACK,qBAAA,EAAA,EAAU,CAAA,EAAI,OAAA,EAAQ,SAAA,EAAU,IAAA,EAAM,QAAA,GAAW,IAAA,GAAO,IAAA,EAAM,OAAA,EAAS,OAAO,QAAA,EAAA,WAAA,EAE7F,CAAA;AAAA,8BACAL,cAAA;AAAA,gBAACI,aAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,iCAAOE,qBAAA,EAAA,EAAU,CAAA;AAAA,kBACjB,OAAA,EAAQ,SAAA;AAAA,kBACR,IAAA,EAAM,WAAW,IAAA,GAAO,IAAA;AAAA,kBACxB,OAAA,EAAS,MAAM,MAAA,CAAO,QAAA,CAAS,MAAA,EAAO;AAAA,kBACvC,QAAA,EAAA;AAAA;AAAA,eAED;AAAA,8BACAN,cAAA;AAAA,gBAACI,aAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,iCAAOG,eAAA,EAAA,EAAI,CAAA;AAAA,kBACX,MAAA,iCAAS,GAAA,EAAA,EAAE,IAAA,EAAK,8CAA6C,MAAA,EAAO,QAAA,EAAS,KAAI,qBAAA,EAAsB,CAAA;AAAA,kBACvG,OAAA,EAAQ,SAAA;AAAA,kBACR,IAAA,EAAM,WAAW,IAAA,GAAO,IAAA;AAAA,kBACzB,QAAA,EAAA;AAAA;AAAA;AAED,aAAA,EACF,CAAA;AAAA,YACC,KAAA,mCACE,SAAA,EAAA,EAAQ,SAAA,EAAWN,YAAG,kBAAA,EAAoB,QAAA,GAAW,MAAA,GAAS,MAAM,CAAA,EACnE,QAAA,EAAA;AAAA,8BAAAD,cAAA,CAAC,aAAQ,SAAA,EAAWC,WAAA,CAAG,6BAAA,EAA+BO,oCAAc,GAAG,QAAA,EAAA,oBAAA,EAAkB,CAAA;AAAA,8BACzFR,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oHAAA,EACZ,QAAA,EAAA,KAAA,EACH;AAAA,aAAA,EACF,CAAA,GACE;AAAA;AAAA;AAAA;AACN;AAAA,GACF;AAEJ;;;;"}
|
|
1
|
+
{"version":3,"file":"ErrorBoundary-D7eIMbMr.cjs","sources":["../src/ds/components/ErrorBoundary/ErrorBoundary.tsx"],"sourcesContent":["import { AlertTriangle, Bug, RefreshCw, RotateCcw } from 'lucide-react';\nimport * as React from 'react';\nimport { Button } from '../Button';\nimport { quietTextHover } from '@/ds/primitives/typography';\nimport { cn } from '@/lib/utils';\n\nexport type ErrorBoundaryVariant = 'section' | 'inline';\n\nexport type ErrorBoundaryFallbackProps = {\n error: Error;\n errorInfo: React.ErrorInfo | null;\n reset: () => void;\n};\n\nexport interface ErrorBoundaryProps {\n children: React.ReactNode;\n /** Custom fallback rendered when an error is caught. Receives the error and a reset callback. */\n fallback?: React.ReactNode | ((props: ErrorBoundaryFallbackProps) => React.ReactNode);\n /** Called when an error is caught. Useful for reporting to an error tracker. */\n onError?: (error: Error, errorInfo: React.ErrorInfo) => void;\n /**\n * When any value in this array changes between renders, the boundary resets.\n * Useful for clearing an error on route change: `resetKeys={[pathname]}`.\n */\n resetKeys?: ReadonlyArray<unknown>;\n /** Heading shown in the default fallback. */\n title?: string;\n /** Description shown in the default fallback. */\n description?: string;\n /**\n * Controls the default fallback's footprint:\n * - `'section'` (default): fills available height and centers content — use when the boundary wraps a page or region.\n * - `'inline'`: stays compact — use when scoping to a single widget so the rest of the UI is untouched.\n */\n variant?: ErrorBoundaryVariant;\n /** Additional classes applied to the default fallback's outer wrapper. */\n className?: string;\n}\n\ntype ErrorBoundaryState = {\n error: Error | null;\n errorInfo: React.ErrorInfo | null;\n};\n\nconst INITIAL_STATE: ErrorBoundaryState = { error: null, errorInfo: null };\n\nfunction keysChanged(prev: ReadonlyArray<unknown> | undefined, next: ReadonlyArray<unknown> | undefined): boolean {\n if (prev === next) return false;\n if (!prev || !next) return true;\n if (prev.length !== next.length) return true;\n for (let i = 0; i < prev.length; i++) {\n if (!Object.is(prev[i], next[i])) return true;\n }\n return false;\n}\n\nexport class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = INITIAL_STATE;\n\n static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState> {\n return { error };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n this.setState({ errorInfo });\n if (this.props.onError) {\n try {\n this.props.onError(error, errorInfo);\n } catch (handlerError) {\n if (typeof console !== 'undefined') {\n console.error('[ErrorBoundary] onError handler threw:', handlerError);\n }\n }\n }\n if (typeof console !== 'undefined') {\n console.error('[ErrorBoundary] Uncaught error:', error, errorInfo);\n }\n }\n\n componentDidUpdate(prevProps: ErrorBoundaryProps) {\n if (this.state.error && keysChanged(prevProps.resetKeys, this.props.resetKeys)) {\n this.reset();\n }\n }\n\n reset = () => {\n this.setState(INITIAL_STATE);\n };\n\n render() {\n const { error, errorInfo } = this.state;\n const { children, fallback, title, description, variant, className } = this.props;\n\n if (!error) return children;\n\n if (typeof fallback === 'function') {\n return fallback({ error, errorInfo, reset: this.reset });\n }\n\n if (fallback !== undefined) return fallback;\n\n return (\n <DefaultErrorFallback\n error={error}\n errorInfo={errorInfo}\n reset={this.reset}\n title={title}\n description={description}\n variant={variant ?? 'section'}\n className={className}\n />\n );\n }\n}\n\ntype DefaultErrorFallbackProps = ErrorBoundaryFallbackProps & {\n title?: string;\n description?: string;\n variant: ErrorBoundaryVariant;\n className?: string;\n};\n\nfunction DefaultErrorFallback({\n error,\n errorInfo,\n reset,\n title,\n description,\n variant,\n className,\n}: DefaultErrorFallbackProps) {\n const stack = errorInfo?.componentStack ?? error.stack ?? '';\n const isInline = variant === 'inline';\n\n return (\n <div\n role=\"alert\"\n className={cn(\n '@container flex w-full items-center justify-center',\n isInline ? 'px-4 py-6' : 'h-full min-h-60 flex-1 px-6 py-10',\n className,\n )}\n >\n <div\n className={cn(\n 'flex flex-col items-center text-center',\n isInline ? 'max-w-md gap-3' : 'max-w-2xl gap-4 @md:gap-5 @lg:gap-6',\n )}\n >\n <div\n className={cn(\n 'flex items-center justify-center rounded-full bg-destructive-subtle text-destructive-subtle-foreground',\n isInline\n ? 'size-10 [&>svg]:size-5'\n : 'size-14 @md:size-16 @lg:size-20 [&>svg]:size-7 @md:[&>svg]:size-8 @lg:[&>svg]:size-10',\n )}\n >\n <AlertTriangle />\n </div>\n <h3\n className={cn(\n 'text-foreground',\n isInline ? 'text-subheading' : 'text-subheading @md:text-heading @lg:text-title',\n )}\n >\n {title ?? 'Something went wrong'}\n </h3>\n <p className={cn('text-muted-foreground', isInline ? 'text-caption' : 'text-body')}>\n {description ?? 'An unexpected error occurred while rendering this part of the page.'}\n </p>\n <p\n className={cn(\n 'rounded-md bg-card px-3 py-2 font-mono break-words text-muted-foreground',\n isInline ? 'text-meta' : 'text-caption',\n )}\n >\n {error.message}\n </p>\n <div className={cn('flex flex-wrap items-center justify-center gap-2', isInline ? 'mt-1' : 'mt-2')}>\n <Button icon={<RotateCcw />} variant=\"primary\" size={isInline ? 'sm' : 'lg'} onClick={reset}>\n Try again\n </Button>\n <Button\n icon={<RefreshCw />}\n variant=\"default\"\n size={isInline ? 'sm' : 'lg'}\n onClick={() => window.location.reload()}\n >\n Reload page\n </Button>\n <Button\n icon={<Bug />}\n render={<a href=\"https://github.com/mastra-ai/mastra/issues\" target=\"_blank\" rel=\"noopener noreferrer\" />}\n variant=\"default\"\n size={isInline ? 'sm' : 'lg'}\n >\n Report issue\n </Button>\n </div>\n {stack ? (\n <details className={cn('w-full text-left', isInline ? 'mt-1' : 'mt-2')}>\n <summary className={cn('cursor-pointer text-caption', quietTextHover)}>Show error details</summary>\n <pre className=\"mt-2 max-h-64 overflow-auto rounded-md bg-card p-3 text-meta break-words whitespace-pre-wrap text-muted-foreground\">\n {stack}\n </pre>\n </details>\n ) : null}\n </div>\n </div>\n );\n}\n"],"names":["React","jsx","cn","jsxs","AlertTriangle","Button","RotateCcw","RefreshCw","Bug","quietTextHover"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import { B as Button } from './Button-
|
|
2
|
+
import { B as Button } from './Button-D43ghVKt.js';
|
|
3
3
|
import { c as cn } from './cn-65Adrsfj.js';
|
|
4
4
|
import { FileTextIcon, InfoIcon, TriangleAlertIcon, OctagonAlertIcon, LightbulbIcon } from 'lucide-react';
|
|
5
5
|
import { T as Txt } from './Txt-BP1SRHmL.js';
|
|
@@ -87,4 +87,4 @@ const Notice = Object.assign(NoticeRoot, {
|
|
|
87
87
|
});
|
|
88
88
|
|
|
89
89
|
export { Notice as N };
|
|
90
|
-
//# sourceMappingURL=Notice-
|
|
90
|
+
//# sourceMappingURL=Notice-B8RIClJD.js.map
|