@mastra/playground-ui 65.0.0-alpha.3 → 65.0.0-alpha.5
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 +10 -0
- package/components.css +7 -0
- package/dist/{Avatar-98bsFrSV.js → Avatar-BjaG9NU_.js} +10 -8
- package/dist/Avatar-BjaG9NU_.js.map +1 -0
- package/dist/{Avatar-BCj8SvOb.cjs → Avatar-DM90rmwx.cjs} +10 -8
- package/dist/Avatar-DM90rmwx.cjs.map +1 -0
- package/dist/{Button-DH1aTzbs.cjs → Button-C4I05uT4.cjs} +17 -10
- package/dist/Button-C4I05uT4.cjs.map +1 -0
- package/dist/{Button-EGoajBQY.js → Button-D8a5EWJ5.js} +18 -11
- package/dist/Button-D8a5EWJ5.js.map +1 -0
- package/dist/{ErrorBoundary-DQPzT6am.js → ErrorBoundary-C6JifxpQ.js} +2 -2
- package/dist/{ErrorBoundary-DQPzT6am.js.map → ErrorBoundary-C6JifxpQ.js.map} +1 -1
- package/dist/{ErrorBoundary-CpUob9SO.cjs → ErrorBoundary-DP1JqmTo.cjs} +2 -2
- package/dist/{ErrorBoundary-CpUob9SO.cjs.map → ErrorBoundary-DP1JqmTo.cjs.map} +1 -1
- package/dist/Notice-BioYTS4b.js.map +1 -1
- package/dist/Notice-DYgIy4FO.cjs.map +1 -1
- package/dist/{activity-CsTUr5_l.js → activity-B7c_nQMn.js} +2 -2
- package/dist/activity-B7c_nQMn.js.map +1 -0
- package/dist/{activity-2tovEdIP.cjs → activity-D3iI9pYN.cjs} +2 -2
- package/dist/activity-D3iI9pYN.cjs.map +1 -0
- package/dist/{alert-dialog-B7JTnkF4.js → alert-dialog-B13NSeKN.js} +3 -3
- package/dist/{alert-dialog-B7JTnkF4.js.map → alert-dialog-B13NSeKN.js.map} +1 -1
- package/dist/{alert-dialog-B1gWLQm2.cjs → alert-dialog-DY2JJAnk.cjs} +3 -3
- package/dist/{alert-dialog-B1gWLQm2.cjs.map → alert-dialog-DY2JJAnk.cjs.map} +1 -1
- package/dist/arrival-C1hkyLHm.js.map +1 -1
- package/dist/arrival-Cvxloi0B.cjs.map +1 -1
- package/dist/{ask-user-card-DroerVbm.cjs → ask-user-card-DiFQcUzM.cjs} +2 -2
- package/dist/ask-user-card-DiFQcUzM.cjs.map +1 -0
- package/dist/{ask-user-card-BCjsjimu.js → ask-user-card-DnvW7jXS.js} +2 -2
- package/dist/{ask-user-card-BCjsjimu.js.map → ask-user-card-DnvW7jXS.js.map} +1 -1
- package/dist/{avatar-size-CNR0U-LW.js → avatar-size-BXzy28Bx.js} +4 -1
- package/dist/avatar-size-BXzy28Bx.js.map +1 -0
- package/dist/{avatar-size-DxStOo5A.cjs → avatar-size-DIFE4I8A.cjs} +4 -1
- package/dist/avatar-size-DIFE4I8A.cjs.map +1 -0
- package/dist/buttons-group.css +0 -4
- package/dist/code-DJReJPSX.cjs.map +1 -1
- package/dist/code-DLuATvYu.js.map +1 -1
- package/dist/{code-block-vpcX2sDQ.cjs → code-block-C79fiykv.cjs} +4 -4
- package/dist/{code-block-vpcX2sDQ.cjs.map → code-block-C79fiykv.cjs.map} +1 -1
- package/dist/{code-block-DIDa6lg6.js → code-block-D6A1DMv-.js} +4 -4
- package/dist/{code-block-DIDa6lg6.js.map → code-block-D6A1DMv-.js.map} +1 -1
- package/dist/{code-editor-BDxYMkGm.js → code-editor-8Fpinga4.js} +2 -2
- package/dist/{code-editor-BDxYMkGm.js.map → code-editor-8Fpinga4.js.map} +1 -1
- package/dist/{code-editor-DQuJ1XXd.cjs → code-editor-Bd-Cldem.cjs} +2 -2
- package/dist/{code-editor-DQuJ1XXd.cjs.map → code-editor-Bd-Cldem.cjs.map} +1 -1
- package/dist/{collapsible-box-B9ATVQzW.cjs → collapsible-box-CzU0OwJx.cjs} +2 -2
- package/dist/{collapsible-box-B9ATVQzW.cjs.map → collapsible-box-CzU0OwJx.cjs.map} +1 -1
- package/dist/{collapsible-box-CMBYunuM.js → collapsible-box-DotFa3hr.js} +2 -2
- package/dist/{collapsible-box-CMBYunuM.js.map → collapsible-box-DotFa3hr.js.map} +1 -1
- package/dist/{combobox-Bw13EcK0.js → combobox-BCoCVZHs.js} +7 -5
- package/dist/combobox-BCoCVZHs.js.map +1 -0
- package/dist/{combobox-BNlVCFgY.cjs → combobox-DbZAWh8q.cjs} +7 -5
- package/dist/combobox-DbZAWh8q.cjs.map +1 -0
- package/dist/{combobox-styles-Dr66ofEp.js → combobox-styles-Cens2tsx.js} +2 -2
- package/dist/{combobox-styles-Dr66ofEp.js.map → combobox-styles-Cens2tsx.js.map} +1 -1
- package/dist/{combobox-styles-BK2nGTNl.cjs → combobox-styles-Cy4rpw03.cjs} +2 -2
- package/dist/{combobox-styles-BK2nGTNl.cjs.map → combobox-styles-Cy4rpw03.cjs.map} +1 -1
- package/dist/{command-UEPxVJlE.cjs → command-Duh5C_Pm.cjs} +2 -2
- package/dist/command-Duh5C_Pm.cjs.map +1 -0
- package/dist/{command-V9rsKc7P.js → command-xIH7ZTdl.js} +2 -2
- package/dist/command-xIH7ZTdl.js.map +1 -0
- package/dist/components/AlertDialog.cjs.js +1 -1
- package/dist/components/AlertDialog.es.js +1 -1
- package/dist/components/Avatar.cjs.js +1 -1
- package/dist/components/Avatar.es.js +1 -1
- package/dist/components/Breadcrumb.cjs.js +7 -4
- package/dist/components/Breadcrumb.cjs.js.map +1 -1
- package/dist/components/Breadcrumb.es.js +7 -4
- package/dist/components/Breadcrumb.es.js.map +1 -1
- package/dist/components/Button.cjs.js +1 -1
- package/dist/components/Button.es.js +2 -2
- package/dist/components/ClampedText.cjs.js +2 -2
- package/dist/components/ClampedText.cjs.js.map +1 -1
- package/dist/components/ClampedText.es.js +2 -2
- package/dist/components/ClampedText.es.js.map +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 +1 -1
- package/dist/components/CollapsibleBox.es.js +1 -1
- 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 +2 -2
- package/dist/components/Comment.es.js +2 -2
- 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/DataKeysAndValues.cjs.js +1 -1
- package/dist/components/DataKeysAndValues.es.js +1 -1
- package/dist/components/DataList.cjs.js +15 -17
- package/dist/components/DataList.cjs.js.map +1 -1
- package/dist/components/DataList.es.js +4 -5
- package/dist/components/DataList.es.js.map +1 -1
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +1 -1
- package/dist/components/DateRangeTimeline.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +2 -2
- package/dist/components/DateTimePicker.es.js +2 -2
- 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 +62 -4
- package/dist/components/EmptyState.cjs.js.map +1 -1
- package/dist/components/EmptyState.es.js +62 -4
- package/dist/components/EmptyState.es.js.map +1 -1
- package/dist/components/Entity.cjs.js +1 -0
- package/dist/components/Entity.cjs.js.map +1 -1
- package/dist/components/Entity.es.js +1 -0
- package/dist/components/Entity.es.js.map +1 -1
- package/dist/components/EntityHeader.cjs.js +1 -1
- package/dist/components/EntityHeader.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +3 -3
- package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +3 -3
- package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
- package/dist/components/ErrorBoundary.cjs.js +1 -1
- package/dist/components/ErrorBoundary.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +8 -31
- package/dist/components/FilterBar.cjs.js.map +1 -1
- package/dist/components/FilterBar.es.js +10 -33
- package/dist/components/FilterBar.es.js.map +1 -1
- package/dist/components/FormFieldBlocks.cjs.js +3 -3
- package/dist/components/FormFieldBlocks.cjs.js.map +1 -1
- package/dist/components/FormFieldBlocks.es.js +3 -3
- package/dist/components/FormFieldBlocks.es.js.map +1 -1
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/InputNumber.cjs.js +2 -2
- package/dist/components/InputNumber.es.js +2 -2
- package/dist/components/JSONSchemaForm.cjs.js +2 -2
- package/dist/components/JSONSchemaForm.es.js +2 -2
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +5 -2
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +5 -2
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Message.cjs.js +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/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/ProductAvatar.cjs.js +2 -1
- package/dist/components/ProductAvatar.cjs.js.map +1 -1
- package/dist/components/ProductAvatar.es.js +2 -1
- package/dist/components/ProductAvatar.es.js.map +1 -1
- package/dist/components/PropertyFilter.cjs.js +4 -4
- package/dist/components/PropertyFilter.cjs.js.map +1 -1
- package/dist/components/PropertyFilter.es.js +5 -5
- package/dist/components/PropertyFilter.es.js.map +1 -1
- package/dist/components/RuleBuilder.cjs.js +3 -2
- package/dist/components/RuleBuilder.cjs.js.map +1 -1
- package/dist/components/RuleBuilder.es.js +3 -2
- package/dist/components/RuleBuilder.es.js.map +1 -1
- package/dist/components/SavedViews.cjs.js +4 -8
- package/dist/components/SavedViews.cjs.js.map +1 -1
- package/dist/components/SavedViews.es.js +5 -9
- package/dist/components/SavedViews.es.js.map +1 -1
- package/dist/components/SearchInput.cjs.js +1 -1
- package/dist/components/SearchInput.es.js +1 -1
- 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/Sidebar.cjs.js +3 -3
- package/dist/components/Sidebar.cjs.js.map +1 -1
- package/dist/components/Sidebar.es.js +3 -3
- package/dist/components/Sidebar.es.js.map +1 -1
- package/dist/components/StatusIndicators.cjs.js.map +1 -1
- package/dist/components/StatusIndicators.es.js.map +1 -1
- package/dist/components/Table.cjs.js.map +1 -1
- package/dist/components/Table.es.js.map +1 -1
- package/dist/components/Tabs.cjs.js +1 -1
- package/dist/components/Tabs.es.js +1 -1
- package/dist/components/ThreadList.cjs.js +1 -1
- package/dist/components/ThreadList.es.js +1 -1
- package/dist/components/ThreadRail.cjs.js.map +1 -1
- package/dist/components/ThreadRail.es.js.map +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/composer-Bs4iyUfe.js.map +1 -1
- package/dist/composer-CDQnP3og.cjs.map +1 -1
- package/dist/context-menu-C67xhcfa.js.map +1 -1
- package/dist/context-menu-jNuzE86D.cjs.map +1 -1
- package/dist/{copy-button-Cd0keCti.cjs → copy-button-BC02oZJo.cjs} +2 -2
- package/dist/{copy-button-Cd0keCti.cjs.map → copy-button-BC02oZJo.cjs.map} +1 -1
- package/dist/{copy-button-C_M3Tu_-.js → copy-button-B_i9lwFJ.js} +2 -2
- package/dist/{copy-button-C_M3Tu_-.js.map → copy-button-B_i9lwFJ.js.map} +1 -1
- package/dist/{data-code-section-lj3PaHjc.cjs → data-code-section-BJa6NDgN.cjs} +5 -5
- package/dist/{data-code-section-lj3PaHjc.cjs.map → data-code-section-BJa6NDgN.cjs.map} +1 -1
- package/dist/{data-code-section-mpRgtM8j.js → data-code-section-Cjs-piiY.js} +5 -5
- package/dist/{data-code-section-mpRgtM8j.js.map → data-code-section-Cjs-piiY.js.map} +1 -1
- package/dist/{data-keys-and-values-1lYi60YK.cjs → data-keys-and-values-DBXIqeXt.cjs} +2 -2
- package/dist/data-keys-and-values-DBXIqeXt.cjs.map +1 -0
- package/dist/{data-keys-and-values-CHpxKsfq.js → data-keys-and-values-DHp6cHJo.js} +2 -2
- package/dist/data-keys-and-values-DHp6cHJo.js.map +1 -0
- package/dist/{data-list-top-DJh08vFA.cjs → data-list-DlXU1PLQ.cjs} +339 -13
- package/dist/data-list-DlXU1PLQ.cjs.map +1 -0
- package/dist/{data-list-top-T-mtdIUp.js → data-list-Tor18oy5.js} +332 -5
- package/dist/data-list-Tor18oy5.js.map +1 -0
- package/dist/{data-list-skeleton-bNfITSHs.js → data-list-skeleton-CXUB-u3p.js} +2 -2
- package/dist/{data-list-skeleton-bNfITSHs.js.map → data-list-skeleton-CXUB-u3p.js.map} +1 -1
- package/dist/{data-list-skeleton-sdcaabdX.cjs → data-list-skeleton-DY0F40WQ.cjs} +6 -6
- package/dist/{data-list-skeleton-sdcaabdX.cjs.map → data-list-skeleton-DY0F40WQ.cjs.map} +1 -1
- package/dist/{data-panel-BkfjzriB.cjs → data-panel-DGNV14pm.cjs} +20 -9
- package/dist/data-panel-DGNV14pm.cjs.map +1 -0
- package/dist/{data-panel-CMkR6Avv.js → data-panel-DjtnX70w.js} +20 -9
- package/dist/data-panel-DjtnX70w.js.map +1 -0
- package/dist/{date-time-range-picker-BjQVCVUM.cjs → date-time-range-picker-CXGab8Nj.cjs} +3 -3
- package/dist/{date-time-range-picker-BjQVCVUM.cjs.map → date-time-range-picker-CXGab8Nj.cjs.map} +1 -1
- package/dist/{date-time-range-picker-D-EECKzz.js → date-time-range-picker-CcnDMZJu.js} +3 -3
- package/dist/{date-time-range-picker-D-EECKzz.js.map → date-time-range-picker-CcnDMZJu.js.map} +1 -1
- package/dist/{dialog-j2e95YNV.js → dialog-AzCRnEo3.js} +3 -3
- package/dist/{dialog-j2e95YNV.js.map → dialog-AzCRnEo3.js.map} +1 -1
- package/dist/{dialog-BMUfQ9XU.cjs → dialog-SSeOqRnH.cjs} +3 -3
- package/dist/{dialog-BMUfQ9XU.cjs.map → dialog-SSeOqRnH.cjs.map} +1 -1
- package/dist/{dialog-action-CmFDNyZX.cjs → dialog-action-Caa-pb85.cjs} +3 -3
- package/dist/{dialog-action-CmFDNyZX.cjs.map → dialog-action-Caa-pb85.cjs.map} +1 -1
- package/dist/{dialog-action-zKqvuroE.js → dialog-action-DykMOK2W.js} +3 -3
- package/dist/{dialog-action-zKqvuroE.js.map → dialog-action-DykMOK2W.js.map} +1 -1
- package/dist/domains/auth/components/session-expired.cjs.js +1 -1
- package/dist/domains/auth/components/session-expired.es.js +1 -1
- 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 +4 -4
- package/dist/domains/chat/messages/message-row.es.js +4 -4
- 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 +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js.map +1 -1
- 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/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/om/om-parts-converter.cjs.js.map +1 -1
- package/dist/domains/chat/om/om-parts-converter.es.js.map +1 -1
- 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.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +3 -3
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +2 -2
- 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 +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +3 -3
- package/dist/domains/chat/tools/badges/tool-badge.es.js +3 -3
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +6 -4
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +6 -4
- 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.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/llm/provider-logo.cjs.js +61 -22
- package/dist/domains/llm/provider-logo.cjs.js.map +1 -1
- package/dist/domains/llm/provider-logo.es.js +61 -22
- package/dist/domains/llm/provider-logo.es.js.map +1 -1
- package/dist/domains/logs/components/log-data-panel.cjs.js +4 -4
- package/dist/domains/logs/components/log-data-panel.es.js +4 -4
- package/dist/domains/logs/components/logs-list-view.cjs.js +3 -2
- package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-list-view.es.js +3 -2
- package/dist/domains/logs/components/logs-list-view.es.js.map +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 +1 -1
- package/dist/domains/logs/components/no-logs-info.es.js +1 -1
- package/dist/domains/mcps/components/mcp-app-viewer.cjs.js.map +1 -1
- package/dist/domains/mcps/components/mcp-app-viewer.es.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
- package/dist/domains/metrics/components/agent-runs-card.cjs.js +1 -1
- package/dist/domains/metrics/components/agent-runs-card.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/chart-area.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-area.es.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
- package/dist/domains/metrics/components/chart-card.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-card.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/failure-rate-card.cjs.js +1 -1
- package/dist/domains/metrics/components/failure-rate-card.es.js +1 -1
- package/dist/domains/metrics/components/latency-card.cjs.js +1 -1
- package/dist/domains/metrics/components/latency-card.es.js +1 -1
- package/dist/domains/metrics/components/scores-card.cjs.js +1 -1
- package/dist/domains/metrics/components/scores-card.es.js +1 -1
- package/dist/domains/metrics/components/token-usage-card.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-card.es.js +1 -1
- package/dist/domains/metrics/components/trace-volume-card.cjs.js +1 -1
- package/dist/domains/metrics/components/trace-volume-card.es.js +1 -1
- package/dist/domains/metrics/components/usage-card.cjs.js +1 -1
- package/dist/domains/metrics/components/usage-card.es.js +1 -1
- 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/scores/components/score-data-panel.cjs.js +3 -3
- package/dist/domains/scores/components/score-data-panel.es.js +3 -3
- package/dist/domains/scores/components/span-scoring.cjs.js +3 -3
- package/dist/domains/scores/components/span-scoring.es.js +3 -3
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +2 -1
- package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +2 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
- package/dist/domains/traces/components/feedback-thread.cjs.js +4 -4
- package/dist/domains/traces/components/feedback-thread.cjs.js.map +1 -1
- package/dist/domains/traces/components/feedback-thread.es.js +4 -4
- package/dist/domains/traces/components/feedback-thread.es.js.map +1 -1
- package/dist/domains/traces/components/shared.cjs.js +4 -3
- package/dist/domains/traces/components/shared.cjs.js.map +1 -1
- package/dist/domains/traces/components/shared.es.js +5 -4
- package/dist/domains/traces/components/shared.es.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +4 -4
- package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.es.js +4 -4
- package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
- 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 +2 -2
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +2 -2
- 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-messages.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
- 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 +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-registry.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-registry.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js +3 -3
- 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-rows.cjs.js +5 -0
- package/dist/domains/traces/components/span-rows.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-rows.es.js +5 -0
- package/dist/domains/traces/components/span-rows.es.js.map +1 -1
- 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-timeline-row.cjs.js +34 -28
- package/dist/domains/traces/components/span-timeline-row.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-timeline-row.es.js +34 -28
- package/dist/domains/traces/components/span-timeline-row.es.js.map +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.cjs.js +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.es.js +1 -1
- package/dist/domains/traces/components/span-token-usage.cjs.js +1 -1
- package/dist/domains/traces/components/span-token-usage.es.js +1 -1
- package/dist/domains/traces/components/span-tree-rail.cjs.js +50 -0
- package/dist/domains/traces/components/span-tree-rail.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-tree-rail.d.ts +2 -0
- package/dist/domains/traces/components/span-tree-rail.es.js +42 -0
- package/dist/domains/traces/components/span-tree-rail.es.js.map +1 -0
- package/dist/domains/traces/components/span-tree-row.cjs.js +2 -2
- package/dist/domains/traces/components/span-tree-row.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-tree-row.es.js +2 -2
- package/dist/domains/traces/components/span-tree-row.es.js.map +1 -1
- package/dist/domains/traces/components/span-type-badge.cjs.js +29 -0
- package/dist/domains/traces/components/span-type-badge.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-type-badge.d.ts +2 -0
- package/dist/domains/traces/components/span-type-badge.es.js +25 -0
- package/dist/domains/traces/components/span-type-badge.es.js.map +1 -0
- package/dist/domains/traces/components/span-type-legend.cjs.js +2 -2
- package/dist/domains/traces/components/span-type-legend.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-type-legend.es.js +2 -2
- package/dist/domains/traces/components/span-type-legend.es.js.map +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 +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +2 -2
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +2 -1
- 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 +2 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-name-col.cjs.js +53 -27
- package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-name-col.es.js +54 -28
- package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-structure-sign.cjs.js +23 -14
- package/dist/domains/traces/components/timeline-structure-sign.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-structure-sign.es.js +24 -15
- package/dist/domains/traces/components/timeline-structure-sign.es.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +4 -4
- package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +4 -4
- package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +32 -5
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +32 -5
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.cjs.js +5 -2
- package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +5 -2
- package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-error-cell.cjs.js +35 -0
- package/dist/domains/traces/components/trace-error-cell.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-error-cell.d.ts +2 -0
- package/dist/domains/traces/components/trace-error-cell.es.js +31 -0
- package/dist/domains/traces/components/trace-error-cell.es.js.map +1 -0
- package/dist/domains/traces/components/trace-error-details.cjs.js +22 -0
- package/dist/domains/traces/components/trace-error-details.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-error-details.d.ts +2 -0
- package/dist/domains/traces/components/trace-error-details.es.js +18 -0
- package/dist/domains/traces/components/trace-error-details.es.js.map +1 -0
- package/dist/domains/traces/components/trace-error-summary.cjs.js +31 -0
- package/dist/domains/traces/components/trace-error-summary.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-error-summary.d.ts +2 -0
- package/dist/domains/traces/components/trace-error-summary.es.js +27 -0
- package/dist/domains/traces/components/trace-error-summary.es.js.map +1 -0
- 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-span-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-span-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js +7 -7
- package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-tree-skeleton.es.js +7 -7
- package/dist/domains/traces/components/trace-span-tree-skeleton.es.js.map +1 -1
- package/dist/domains/traces/components/trace-span-tree.cjs.js +1 -2
- package/dist/domains/traces/components/trace-span-tree.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-tree.es.js +2 -3
- package/dist/domains/traces/components/trace-span-tree.es.js.map +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +2 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +2 -1
- package/dist/domains/traces/components/trace-summary-description.es.js.map +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.es.js +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-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 +10 -7
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +9 -6
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +4 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +4 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-list-navigation.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-list-navigation.es.js.map +1 -1
- package/dist/domains/traces/utils/flatten-to-search-text.cjs.js.map +1 -1
- package/dist/domains/traces/utils/flatten-to-search-text.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 +1 -1
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
- 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 +2 -2
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
- package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +1 -1
- 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 +1 -2
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -2
- 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 +2 -2
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-status.es.js +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 +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +1 -1
- 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 +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +1 -1
- package/dist/domains/workspace/components/mount-icon.cjs.js +1 -0
- package/dist/domains/workspace/components/mount-icon.cjs.js.map +1 -1
- package/dist/domains/workspace/components/mount-icon.es.js +1 -0
- package/dist/domains/workspace/components/mount-icon.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-active-file.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-active-file.es.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +5 -5
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +5 -5
- package/dist/domains/workspace/components/workspace-add-skill.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill.es.js +1 -1
- package/dist/domains/workspace/components/workspace-create-directory.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-create-directory.es.js +2 -2
- package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
- package/dist/domains/workspace/components/workspace-search.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-search.es.js +1 -1
- package/dist/domains/workspace/components/workspace-tree.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-tree.es.js +2 -2
- package/dist/{drawer-DROYPMUm.cjs → drawer-DdTU-nBR.cjs} +2 -2
- package/dist/{drawer-DROYPMUm.cjs.map → drawer-DdTU-nBR.cjs.map} +1 -1
- package/dist/{drawer-C-8E9yHN.js → drawer-mj-G7-Tu.js} +2 -2
- package/dist/{drawer-C-8E9yHN.js.map → drawer-mj-G7-Tu.js.map} +1 -1
- package/dist/dropdown-menu-CQ_48tVI.js.map +1 -1
- package/dist/dropdown-menu-CsynT1aD.cjs.map +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +3 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +3 -1
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- 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.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +6 -4
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +6 -4
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/signals/examples-pager.cjs.js +1 -1
- package/dist/ee/signals/examples-pager.es.js +1 -1
- package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
- package/dist/ee/signals/noise-detail-panel.es.js +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -2
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +2 -2
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
- package/dist/ee/signals/signals-error-state.cjs.js +1 -1
- package/dist/ee/signals/signals-error-state.es.js +1 -1
- package/dist/ee/signals/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 +1 -1
- package/dist/ee/signals/theme-detail-panel.es.js +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 +1 -1
- package/dist/ee/signals/trace-insight-view.es.js +1 -1
- package/dist/ee/signals/trace-intelligence-provider.cjs.js.map +1 -1
- package/dist/ee/signals/trace-intelligence-provider.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/{entity-header-DreVSoqR.cjs → entity-header-1ly9sZXc.cjs} +2 -1
- package/dist/{entity-header-DreVSoqR.cjs.map → entity-header-1ly9sZXc.cjs.map} +1 -1
- package/dist/{entity-header-CUmYiWqb.js → entity-header-DRw8YS_F.js} +2 -1
- package/dist/{entity-header-CUmYiWqb.js.map → entity-header-DRw8YS_F.js.map} +1 -1
- package/dist/{field-error-id-Dbe6IInA.cjs → field-error-id-0yYYU0ar.cjs} +2 -2
- package/dist/{field-error-id-Dbe6IInA.cjs.map → field-error-id-0yYYU0ar.cjs.map} +1 -1
- package/dist/{field-error-id-Sqhk00e4.js → field-error-id-CdzuQK5c.js} +2 -2
- package/dist/{field-error-id-Sqhk00e4.js.map → field-error-id-CdzuQK5c.js.map} +1 -1
- package/dist/{filter-bar-chip-BarAq1S2.js → filter-bar-chip-C9CXOudu.js} +3 -3
- package/dist/filter-bar-chip-C9CXOudu.js.map +1 -0
- package/dist/{filter-bar-chip-BJJ6ytJ4.cjs → filter-bar-chip-DgvuQv6c.cjs} +3 -3
- package/dist/filter-bar-chip-DgvuQv6c.cjs.map +1 -0
- package/dist/hooks/use-environment-variables-editor.cjs.js.map +1 -1
- package/dist/hooks/use-environment-variables-editor.es.js.map +1 -1
- package/dist/hooks/use-fluid-hover.cjs.js.map +1 -1
- package/dist/hooks/use-fluid-hover.es.js.map +1 -1
- package/dist/icons/ClaudeIcon.cjs.js +16 -0
- package/dist/icons/ClaudeIcon.cjs.js.map +1 -0
- package/dist/icons/ClaudeIcon.d.ts +2 -0
- package/dist/icons/ClaudeIcon.es.js +12 -0
- package/dist/icons/ClaudeIcon.es.js.map +1 -0
- package/dist/icons/DeepSeekIcon.cjs.js +16 -0
- package/dist/icons/DeepSeekIcon.cjs.js.map +1 -0
- package/dist/icons/DeepSeekIcon.d.ts +2 -0
- package/dist/icons/DeepSeekIcon.es.js +12 -0
- package/dist/icons/DeepSeekIcon.es.js.map +1 -0
- package/dist/icons/GeminiIcon.cjs.js +34 -0
- package/dist/icons/GeminiIcon.cjs.js.map +1 -0
- package/dist/icons/GeminiIcon.d.ts +2 -0
- package/dist/icons/GeminiIcon.es.js +30 -0
- package/dist/icons/GeminiIcon.es.js.map +1 -0
- package/dist/icons/Icon.cjs.js.map +1 -1
- package/dist/icons/Icon.es.js.map +1 -1
- package/dist/icons/MetaIcon.cjs.js +175 -0
- package/dist/icons/MetaIcon.cjs.js.map +1 -0
- package/dist/icons/MetaIcon.d.ts +2 -0
- package/dist/icons/MetaIcon.es.js +171 -0
- package/dist/icons/MetaIcon.es.js.map +1 -0
- package/dist/icons/MinimaxIcon.cjs.js +27 -0
- package/dist/icons/MinimaxIcon.cjs.js.map +1 -0
- package/dist/icons/MinimaxIcon.d.ts +2 -0
- package/dist/icons/MinimaxIcon.es.js +23 -0
- package/dist/icons/MinimaxIcon.es.js.map +1 -0
- package/dist/icons/MoonshotIcon.cjs.js +22 -0
- package/dist/icons/MoonshotIcon.cjs.js.map +1 -0
- package/dist/icons/MoonshotIcon.d.ts +2 -0
- package/dist/icons/MoonshotIcon.es.js +18 -0
- package/dist/icons/MoonshotIcon.es.js.map +1 -0
- package/dist/icons/NvidiaIcon.cjs.js +17 -0
- package/dist/icons/NvidiaIcon.cjs.js.map +1 -0
- package/dist/icons/NvidiaIcon.d.ts +2 -0
- package/dist/icons/NvidiaIcon.es.js +13 -0
- package/dist/icons/NvidiaIcon.es.js.map +1 -0
- package/dist/icons/OpenRouterIcon.cjs.js +17 -0
- package/dist/icons/OpenRouterIcon.cjs.js.map +1 -0
- package/dist/icons/OpenRouterIcon.d.ts +2 -0
- package/dist/icons/OpenRouterIcon.es.js +13 -0
- package/dist/icons/OpenRouterIcon.es.js.map +1 -0
- package/dist/icons/QwenIcon.cjs.js +27 -0
- package/dist/icons/QwenIcon.cjs.js.map +1 -0
- package/dist/icons/QwenIcon.d.ts +2 -0
- package/dist/icons/QwenIcon.es.js +23 -0
- package/dist/icons/QwenIcon.es.js.map +1 -0
- package/dist/icons/SkillIcon.cjs.js.map +1 -1
- package/dist/icons/SkillIcon.es.js.map +1 -1
- package/dist/icons/XaiIcon.cjs.js +22 -0
- package/dist/icons/XaiIcon.cjs.js.map +1 -0
- package/dist/icons/XaiIcon.d.ts +2 -0
- package/dist/icons/XaiIcon.es.js +18 -0
- package/dist/icons/XaiIcon.es.js.map +1 -0
- package/dist/icons/ZaiIcon.cjs.js +22 -0
- package/dist/icons/ZaiIcon.cjs.js.map +1 -0
- package/dist/icons/ZaiIcon.d.ts +2 -0
- package/dist/icons/ZaiIcon.es.js +18 -0
- package/dist/icons/ZaiIcon.es.js.map +1 -0
- package/dist/icons/icon-size-classes.cjs.js +4 -4
- package/dist/icons/icon-size-classes.cjs.js.map +1 -1
- package/dist/icons/icon-size-classes.es.js +4 -4
- package/dist/icons/icon-size-classes.es.js.map +1 -1
- package/dist/{input-group-CiBbTaPP.js → input-group-BAg6iSIe.js} +2 -2
- package/dist/{input-group-CiBbTaPP.js.map → input-group-BAg6iSIe.js.map} +1 -1
- package/dist/{input-group-DSW5WoSU.cjs → input-group-DRXUthxe.cjs} +2 -2
- package/dist/{input-group-DSW5WoSU.cjs.map → input-group-DRXUthxe.cjs.map} +1 -1
- package/dist/keyboard/keyboard-dispatcher.cjs.js +2 -4
- package/dist/keyboard/keyboard-dispatcher.cjs.js.map +1 -1
- package/dist/keyboard/keyboard-dispatcher.es.js +2 -4
- package/dist/keyboard/keyboard-dispatcher.es.js.map +1 -1
- package/dist/keyboard/keyboard-shortcuts-context.cjs.js.map +1 -1
- package/dist/keyboard/keyboard-shortcuts-context.es.js.map +1 -1
- package/dist/keyboard/use-keydown.cjs.js +2 -0
- package/dist/keyboard/use-keydown.cjs.js.map +1 -1
- package/dist/keyboard/use-keydown.es.js +2 -0
- package/dist/keyboard/use-keydown.es.js.map +1 -1
- package/dist/layout/tabbed-container.cjs.js +4 -4
- package/dist/layout/tabbed-container.es.js +4 -4
- package/dist/lib/form/components/array-element-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/array-element-wrapper.es.js +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/date-field.cjs.js +1 -1
- package/dist/lib/form/components/date-field.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/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/lib/form/zod-provider.cjs.js.map +1 -1
- package/dist/lib/form/zod-provider.es.js.map +1 -1
- package/dist/{list-search-D3I6xt0B.js → list-search-ByJdIxIh.js} +2 -2
- package/dist/{list-search-D3I6xt0B.js.map → list-search-ByJdIxIh.js.map} +1 -1
- package/dist/{list-search-DHiQ1-O6.cjs → list-search-DNJVeHmK.cjs} +2 -2
- package/dist/{list-search-DHiQ1-O6.cjs.map → list-search-DNJVeHmK.cjs.map} +1 -1
- package/dist/{logs-data-list-Cb85LPcT.js → logs-data-list-CGerYgSd.js} +2 -3
- package/dist/{logs-data-list-Cb85LPcT.js.map → logs-data-list-CGerYgSd.js.map} +1 -1
- package/dist/{logs-data-list-DlQxxrNw.cjs → logs-data-list-DEZuSjqt.cjs} +21 -22
- package/dist/{logs-data-list-DlQxxrNw.cjs.map → logs-data-list-DEZuSjqt.cjs.map} +1 -1
- package/dist/{markdown-renderer-HIfFphpI.cjs → markdown-renderer-BcpwvSl9.cjs} +3 -3
- package/dist/{markdown-renderer-HIfFphpI.cjs.map → markdown-renderer-BcpwvSl9.cjs.map} +1 -1
- package/dist/{markdown-renderer-BYxWiHRj.js → markdown-renderer-CHLpv5n5.js} +3 -3
- package/dist/{markdown-renderer-BYxWiHRj.js.map → markdown-renderer-CHLpv5n5.js.map} +1 -1
- package/dist/{message-copy-button-CnVgCy9y.cjs → message-copy-button-D3O4hWDV.cjs} +2 -2
- package/dist/{message-copy-button-CnVgCy9y.cjs.map → message-copy-button-D3O4hWDV.cjs.map} +1 -1
- package/dist/{message-copy-button-Ctew41Rr.js → message-copy-button-OI1mwAaS.js} +2 -2
- package/dist/{message-copy-button-Ctew41Rr.js.map → message-copy-button-OI1mwAaS.js.map} +1 -1
- package/dist/{metrics-card-DaFApxZY.cjs → metrics-card-CpjGYNBP.cjs} +2 -2
- package/dist/{metrics-card-DaFApxZY.cjs.map → metrics-card-CpjGYNBP.cjs.map} +1 -1
- package/dist/{metrics-card-Z_moDiV5.js → metrics-card-D6ty6a6Z.js} +2 -2
- package/dist/{metrics-card-Z_moDiV5.js.map → metrics-card-D6ty6a6Z.js.map} +1 -1
- package/dist/{notification-activity-MR63WqZm.cjs → notification-activity-BSNuqJDd.cjs} +2 -2
- package/dist/{notification-activity-MR63WqZm.cjs.map → notification-activity-BSNuqJDd.cjs.map} +1 -1
- package/dist/{notification-activity-FJcMFxIj.js → notification-activity-BWXHmlTn.js} +2 -2
- package/dist/{notification-activity-FJcMFxIj.js.map → notification-activity-BWXHmlTn.js.map} +1 -1
- package/dist/{plan-BoOK_LAB.cjs → plan-Cm3yHvs3.cjs} +4 -4
- package/dist/{plan-BoOK_LAB.cjs.map → plan-Cm3yHvs3.cjs.map} +1 -1
- package/dist/{plan-m0hj6Zgv.js → plan-TtrepVnQ.js} +4 -4
- package/dist/{plan-m0hj6Zgv.js.map → plan-TtrepVnQ.js.map} +1 -1
- package/dist/primitives/form-element.cjs.js.map +1 -1
- package/dist/primitives/form-element.es.js.map +1 -1
- package/dist/primitives/menu-item.cjs.js +4 -2
- package/dist/primitives/menu-item.cjs.js.map +1 -1
- package/dist/primitives/menu-item.es.js +4 -2
- package/dist/primitives/menu-item.es.js.map +1 -1
- package/dist/primitives/popup-anchor.cjs.js +34 -0
- package/dist/primitives/popup-anchor.cjs.js.map +1 -0
- package/dist/primitives/popup-anchor.d.ts +2 -0
- package/dist/primitives/popup-anchor.es.js +10 -0
- package/dist/primitives/popup-anchor.es.js.map +1 -0
- package/dist/primitives/trigger-button.cjs.js +1 -1
- package/dist/primitives/trigger-button.es.js +1 -1
- package/dist/{property-filter-applied-J9ob_Rss.js → property-filter-applied-BMmMf4DE.js} +2 -2
- package/dist/property-filter-applied-BMmMf4DE.js.map +1 -0
- package/dist/{property-filter-applied-CtSglSaH.cjs → property-filter-applied-Bj-bh9gv.cjs} +2 -2
- package/dist/property-filter-applied-Bj-bh9gv.cjs.map +1 -0
- package/dist/{reasoning-activity-5MFE3mzw.js → reasoning-activity-C-sJt2A9.js} +3 -3
- package/dist/{reasoning-activity-5MFE3mzw.js.map → reasoning-activity-C-sJt2A9.js.map} +1 -1
- package/dist/{reasoning-activity-DMvughvN.cjs → reasoning-activity-DpYFjxuL.cjs} +3 -3
- package/dist/{reasoning-activity-DMvughvN.cjs.map → reasoning-activity-DpYFjxuL.cjs.map} +1 -1
- package/dist/resize/panel-drawer.cjs.js +2 -1
- package/dist/resize/panel-drawer.cjs.js.map +1 -1
- package/dist/resize/panel-drawer.es.js +2 -1
- package/dist/resize/panel-drawer.es.js.map +1 -1
- package/dist/{search-input-BPqubJZC.js → search-input-C9qFBzn6.js} +2 -2
- package/dist/{search-input-BPqubJZC.js.map → search-input-C9qFBzn6.js.map} +1 -1
- package/dist/{search-input-BUMYRaUW.cjs → search-input-CMNy0JWd.cjs} +2 -2
- package/dist/{search-input-BUMYRaUW.cjs.map → search-input-CMNy0JWd.cjs.map} +1 -1
- package/dist/section-CctlZIXp.cjs.map +1 -1
- package/dist/section-D0hKTVXt.js.map +1 -1
- package/dist/{select-CQtsggxJ.js → select-7rYaECQf.js} +2 -2
- package/dist/select-7rYaECQf.js.map +1 -0
- package/dist/{select-CbNLtiAs.cjs → select-A3AFKLd9.cjs} +2 -2
- package/dist/select-A3AFKLd9.cjs.map +1 -0
- package/dist/shimmer-BCSr3Rqf.js.map +1 -1
- package/dist/shimmer-Co-XPvF9.cjs.map +1 -1
- package/dist/{side-dialog-bm8NPDXy.js → side-dialog-DSvj8H6x.js} +4 -4
- package/dist/{side-dialog-bm8NPDXy.js.map → side-dialog-DSvj8H6x.js.map} +1 -1
- package/dist/{side-dialog-BzULMBaH.cjs → side-dialog-SJCWBnbw.cjs} +4 -4
- package/dist/{side-dialog-BzULMBaH.cjs.map → side-dialog-SJCWBnbw.cjs.map} +1 -1
- package/dist/{signal-activity-D-_u7DFm.cjs → signal-activity-C_bihjcd.cjs} +2 -2
- package/dist/{signal-activity-D-_u7DFm.cjs.map → signal-activity-C_bihjcd.cjs.map} +1 -1
- package/dist/{signal-activity-BkFexFiJ.js → signal-activity-J9kpnwAF.js} +2 -2
- package/dist/{signal-activity-BkFexFiJ.js.map → signal-activity-J9kpnwAF.js.map} +1 -1
- package/dist/{span-payload-primitives-wujxDKfA.cjs → span-payload-primitives-C0KYtmtV.cjs} +3 -3
- package/dist/{span-payload-primitives-wujxDKfA.cjs.map → span-payload-primitives-C0KYtmtV.cjs.map} +1 -1
- package/dist/{span-payload-primitives-jQiJK0qI.js → span-payload-primitives-D_N9LeLk.js} +3 -3
- package/dist/{span-payload-primitives-jQiJK0qI.js.map → span-payload-primitives-D_N9LeLk.js.map} +1 -1
- package/dist/src/domains/llm/provider-logo.d.ts +2 -1
- package/dist/src/domains/traces/components/span-rows.d.ts +2 -0
- package/dist/src/domains/traces/components/span-tree-rail.d.ts +23 -0
- package/dist/src/domains/traces/components/span-type-badge.d.ts +9 -0
- package/dist/src/domains/traces/components/timeline-name-col.d.ts +2 -2
- package/dist/src/domains/traces/components/timeline-structure-sign.d.ts +14 -1
- package/dist/src/domains/traces/components/trace-error-cell.d.ts +8 -0
- package/dist/src/domains/traces/components/trace-error-details.d.ts +10 -0
- package/dist/src/domains/traces/components/trace-error-summary.d.ts +8 -0
- package/dist/src/domains/traces/components/trace-span-tree-skeleton.d.ts +1 -1
- package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +1 -0
- package/dist/src/ds/components/Avatar/avatar-size.d.ts +1 -1
- package/dist/src/ds/components/Breadcrumb/crumb-switcher.d.ts +0 -1
- package/dist/src/ds/components/Button/Button.d.ts +1 -1
- package/dist/src/ds/components/EmptyState/empty-state-illustration.d.ts +1 -1
- package/dist/src/ds/components/EmptyState/illustrations/no-charges-art.d.ts +3 -0
- package/dist/src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-context.d.ts +1 -2
- package/dist/src/ds/components/SavedViews/saved-view-editor.d.ts +1 -1
- package/dist/src/ds/components/Select/select.d.ts +1 -1
- package/dist/src/ds/icons/ClaudeIcon.d.ts +2 -0
- package/dist/src/ds/icons/DeepSeekIcon.d.ts +2 -0
- package/dist/src/ds/icons/GeminiIcon.d.ts +2 -0
- package/dist/src/ds/icons/MetaIcon.d.ts +2 -0
- package/dist/src/ds/icons/MinimaxIcon.d.ts +2 -0
- package/dist/src/ds/icons/MoonshotIcon.d.ts +2 -0
- package/dist/src/ds/icons/NvidiaIcon.d.ts +2 -0
- package/dist/src/ds/icons/OpenRouterIcon.d.ts +2 -0
- package/dist/src/ds/icons/QwenIcon.d.ts +2 -0
- package/dist/src/ds/icons/XaiIcon.d.ts +2 -0
- package/dist/src/ds/icons/ZaiIcon.d.ts +2 -0
- package/dist/src/ds/icons/index.d.ts +11 -0
- package/dist/src/ds/primitives/popup-anchor.d.ts +4 -0
- package/dist/src/hooks/use-environment-variables-editor.d.ts +1 -1
- package/dist/src/lib/keyboard/keyboard-dispatcher.d.ts +2 -0
- package/dist/src/lib/keyboard/use-keydown.d.ts +8 -1
- package/dist/style.css +121 -143
- package/dist/{tabs-tab-DRaRUvQ3.cjs → tabs-tab-B0W25Dm2.cjs} +2 -2
- package/dist/{tabs-tab-DRaRUvQ3.cjs.map → tabs-tab-B0W25Dm2.cjs.map} +1 -1
- package/dist/{tabs-tab-CIVJEMoY.js → tabs-tab-CkLyKrL0.js} +2 -2
- package/dist/{tabs-tab-CIVJEMoY.js.map → tabs-tab-CkLyKrL0.js.map} +1 -1
- package/dist/{thread-list-BANpytn3.cjs → thread-list-BBPZYHh8.cjs} +2 -2
- package/dist/thread-list-BBPZYHh8.cjs.map +1 -0
- package/dist/{thread-list-lXnXsPul.js → thread-list-BGjKZfEH.js} +2 -2
- package/dist/thread-list-BGjKZfEH.js.map +1 -0
- package/dist/{time-picker-BpCfTfoe.js → time-picker-Bzdboi4W.js} +2 -2
- package/dist/{time-picker-BpCfTfoe.js.map → time-picker-Bzdboi4W.js.map} +1 -1
- package/dist/{time-picker-DhekkO5t.cjs → time-picker-CyvG-fwX.cjs} +2 -2
- package/dist/{time-picker-DhekkO5t.cjs.map → time-picker-CyvG-fwX.cjs.map} +1 -1
- package/dist/{tool-approval-BrqoN_mP.js → tool-approval-P8rUFAYp.js} +4 -4
- package/dist/{tool-approval-BrqoN_mP.js.map → tool-approval-P8rUFAYp.js.map} +1 -1
- package/dist/{tool-approval-zBfJ20iR.cjs → tool-approval-zhWdp8i6.cjs} +4 -4
- package/dist/{tool-approval-zBfJ20iR.cjs.map → tool-approval-zhWdp8i6.cjs.map} +1 -1
- package/dist/{tool-call-arguments-DwMeGQHD.cjs → tool-call-arguments-DzpFckIm.cjs} +3 -3
- package/dist/{tool-call-arguments-DwMeGQHD.cjs.map → tool-call-arguments-DzpFckIm.cjs.map} +1 -1
- package/dist/{tool-call-arguments-Dx4LW1Ni.js → tool-call-arguments-goEdIs4f.js} +3 -3
- package/dist/{tool-call-arguments-Dx4LW1Ni.js.map → tool-call-arguments-goEdIs4f.js.map} +1 -1
- package/dist/{tool-call-group-DJsiIb-B.cjs → tool-call-group-C56oARyx.cjs} +4 -4
- package/dist/tool-call-group-C56oARyx.cjs.map +1 -0
- package/dist/{tool-call-group-ZDNZog5K.js → tool-call-group-DU4T72Xn.js} +4 -4
- package/dist/tool-call-group-DU4T72Xn.js.map +1 -0
- package/dist/{tool-call-mono-Bs7y-1Cq.js → tool-call-mono-DPW6hN91.js} +2 -2
- package/dist/{tool-call-mono-Bs7y-1Cq.js.map → tool-call-mono-DPW6hN91.js.map} +1 -1
- package/dist/{tool-call-mono-I-vdqzCe.cjs → tool-call-mono-aheL8CkL.cjs} +2 -2
- package/dist/{tool-call-mono-I-vdqzCe.cjs.map → tool-call-mono-aheL8CkL.cjs.map} +1 -1
- package/dist/{tool-call-output-Dd8zlhLd.js → tool-call-output-BQYzMMMi.js} +2 -2
- package/dist/{tool-call-output-Dd8zlhLd.js.map → tool-call-output-BQYzMMMi.js.map} +1 -1
- package/dist/{tool-call-output-BrNg0Lkd.cjs → tool-call-output-CuwM5IHd.cjs} +2 -2
- package/dist/{tool-call-output-BrNg0Lkd.cjs.map → tool-call-output-CuwM5IHd.cjs.map} +1 -1
- package/dist/{tool-card-D4yrR2AE.js → tool-card-aclA3iVz.js} +4 -4
- package/dist/{tool-card-D4yrR2AE.js.map → tool-card-aclA3iVz.js.map} +1 -1
- package/dist/{tool-card-D6UdNzIX.cjs → tool-card-yii3vGHu.cjs} +4 -4
- package/dist/{tool-card-D6UdNzIX.cjs.map → tool-card-yii3vGHu.cjs.map} +1 -1
- package/dist/{traces-data-list-Bhhg9drs.cjs → traces-data-list-Co9k5J4f.cjs} +18 -20
- package/dist/{traces-data-list-Bhhg9drs.cjs.map → traces-data-list-Co9k5J4f.cjs.map} +1 -1
- package/dist/{traces-data-list-DMWPJFBc.js → traces-data-list-TCKjOldO.js} +2 -4
- package/dist/{traces-data-list-DMWPJFBc.js.map → traces-data-list-TCKjOldO.js.map} +1 -1
- package/dist/use-data-list-keyboard-DF3tLe10.cjs.map +1 -1
- package/dist/use-data-list-keyboard-DFQr4t38.js.map +1 -1
- package/dist/{use-workflow-graph-runtime-DF-56pIR.cjs → use-workflow-graph-runtime-DcQD5eA6.cjs} +3 -3
- package/dist/{use-workflow-graph-runtime-DF-56pIR.cjs.map → use-workflow-graph-runtime-DcQD5eA6.cjs.map} +1 -1
- package/dist/{use-workflow-graph-runtime-BrHXo49Q.js → use-workflow-graph-runtime-xq_aSXPh.js} +3 -3
- package/dist/{use-workflow-graph-runtime-BrHXo49Q.js.map → use-workflow-graph-runtime-xq_aSXPh.js.map} +1 -1
- package/dist/utils/workspace-compat.cjs.js.map +1 -1
- package/dist/utils/workspace-compat.es.js.map +1 -1
- package/dist/{workflow-code-dialog-content-CfVy6bGG.cjs → workflow-code-dialog-content-B_BQCuFW.cjs} +3 -3
- package/dist/{workflow-code-dialog-content-CfVy6bGG.cjs.map → workflow-code-dialog-content-B_BQCuFW.cjs.map} +1 -1
- package/dist/{workflow-code-dialog-content-DviJz1jB.js → workflow-code-dialog-content-CFEaeYUX.js} +3 -3
- package/dist/{workflow-code-dialog-content-DviJz1jB.js.map → workflow-code-dialog-content-CFEaeYUX.js.map} +1 -1
- package/dist/{workflow-condition-card-BRwhMmNO.cjs → workflow-condition-card-CMzoK307.cjs} +3 -3
- package/dist/{workflow-condition-card-BRwhMmNO.cjs.map → workflow-condition-card-CMzoK307.cjs.map} +1 -1
- package/dist/{workflow-condition-card-sFdOjlab.js → workflow-condition-card-CbQ4fCxY.js} +3 -3
- package/dist/{workflow-condition-card-sFdOjlab.js.map → workflow-condition-card-CbQ4fCxY.js.map} +1 -1
- package/dist/{workflow-data-edge-view-DpPhr9gZ.cjs → workflow-data-edge-view-0utEB4Yb.cjs} +2 -2
- package/dist/{workflow-data-edge-view-DpPhr9gZ.cjs.map → workflow-data-edge-view-0utEB4Yb.cjs.map} +1 -1
- package/dist/{workflow-data-edge-view-CuSzc6YI.js → workflow-data-edge-view-gwwJEvXz.js} +2 -2
- package/dist/{workflow-data-edge-view-CuSzc6YI.js.map → workflow-data-edge-view-gwwJEvXz.js.map} +1 -1
- package/dist/{workflow-debug-controls-CAn_6S8K.cjs → workflow-debug-controls-B5zqE_rm.cjs} +2 -2
- package/dist/{workflow-debug-controls-CAn_6S8K.cjs.map → workflow-debug-controls-B5zqE_rm.cjs.map} +1 -1
- package/dist/{workflow-debug-controls-CLzbxd5O.js → workflow-debug-controls-CPpdNzD9.js} +2 -2
- package/dist/{workflow-debug-controls-CLzbxd5O.js.map → workflow-debug-controls-CPpdNzD9.js.map} +1 -1
- package/dist/{workflow-edge-data-button-Dtt_OUz9.js → workflow-edge-data-button-YWjfx-W0.js} +4 -4
- package/dist/{workflow-edge-data-button-Dtt_OUz9.js.map → workflow-edge-data-button-YWjfx-W0.js.map} +1 -1
- package/dist/{workflow-edge-data-button-B8rQaAoK.cjs → workflow-edge-data-button-tDvziS5v.cjs} +4 -4
- package/dist/{workflow-edge-data-button-B8rQaAoK.cjs.map → workflow-edge-data-button-tDvziS5v.cjs.map} +1 -1
- package/dist/{workflow-step-action-DqFjktfs.js → workflow-step-action-D8MVfEIl.js} +2 -2
- package/dist/{workflow-step-action-DqFjktfs.js.map → workflow-step-action-D8MVfEIl.js.map} +1 -1
- package/dist/{workflow-step-action-Cu01omgz.cjs → workflow-step-action-DZgS0_fL.cjs} +2 -2
- package/dist/{workflow-step-action-Cu01omgz.cjs.map → workflow-step-action-DZgS0_fL.cjs.map} +1 -1
- package/package.json +11 -13
- package/theme/scale.css +7 -0
- package/dist/Avatar-98bsFrSV.js.map +0 -1
- package/dist/Avatar-BCj8SvOb.cjs.map +0 -1
- package/dist/Button-DH1aTzbs.cjs.map +0 -1
- package/dist/Button-EGoajBQY.js.map +0 -1
- package/dist/activity-2tovEdIP.cjs.map +0 -1
- package/dist/activity-CsTUr5_l.js.map +0 -1
- package/dist/ask-user-card-DroerVbm.cjs.map +0 -1
- package/dist/avatar-size-CNR0U-LW.js.map +0 -1
- package/dist/avatar-size-DxStOo5A.cjs.map +0 -1
- package/dist/combobox-BNlVCFgY.cjs.map +0 -1
- package/dist/combobox-Bw13EcK0.js.map +0 -1
- package/dist/command-UEPxVJlE.cjs.map +0 -1
- package/dist/command-V9rsKc7P.js.map +0 -1
- package/dist/data-keys-and-values-1lYi60YK.cjs.map +0 -1
- package/dist/data-keys-and-values-CHpxKsfq.js.map +0 -1
- package/dist/data-list-CmjTe8xE.cjs +0 -142
- package/dist/data-list-CmjTe8xE.cjs.map +0 -1
- package/dist/data-list-DT1LVR29.js +0 -138
- package/dist/data-list-DT1LVR29.js.map +0 -1
- package/dist/data-list-spacer-CdlT6bDd.cjs +0 -218
- package/dist/data-list-spacer-CdlT6bDd.cjs.map +0 -1
- package/dist/data-list-spacer-D--gDmOm.js +0 -209
- package/dist/data-list-spacer-D--gDmOm.js.map +0 -1
- package/dist/data-list-top-DJh08vFA.cjs.map +0 -1
- package/dist/data-list-top-T-mtdIUp.js.map +0 -1
- package/dist/data-panel-BkfjzriB.cjs.map +0 -1
- package/dist/data-panel-CMkR6Avv.js.map +0 -1
- package/dist/filter-bar-chip-BJJ6ytJ4.cjs.map +0 -1
- package/dist/filter-bar-chip-BarAq1S2.js.map +0 -1
- package/dist/property-filter-applied-CtSglSaH.cjs.map +0 -1
- package/dist/property-filter-applied-J9ob_Rss.js.map +0 -1
- package/dist/select-CQtsggxJ.js.map +0 -1
- package/dist/select-CbNLtiAs.cjs.map +0 -1
- package/dist/thread-list-BANpytn3.cjs.map +0 -1
- package/dist/thread-list-lXnXsPul.js.map +0 -1
- package/dist/tool-call-group-DJsiIb-B.cjs.map +0 -1
- package/dist/tool-call-group-ZDNZog5K.js.map +0 -1
package/README.md
CHANGED
|
@@ -29,6 +29,16 @@ With a Tailwind build of your own, compile one sheet instead of `style.css`: imp
|
|
|
29
29
|
@import '@mastra/playground-ui/sources.css';
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
+
### Subtle buttons
|
|
33
|
+
|
|
34
|
+
Use `variant="subtle"` for a persistent neutral fill, such as a selected view. It keeps the same dimensions as `default`, so switching between the two does not move surrounding controls. Set `aria-pressed` on toggle buttons to expose selection to assistive technology.
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
<Button variant={selected ? 'subtle' : 'default'} aria-pressed={selected}>
|
|
38
|
+
My PRs
|
|
39
|
+
</Button>
|
|
40
|
+
```
|
|
41
|
+
|
|
32
42
|
### Tool approvals
|
|
33
43
|
|
|
34
44
|
`ToolApproval` renders a standalone approval request in the shared activity layout: the tool name
|
package/components.css
CHANGED
|
@@ -173,6 +173,13 @@
|
|
|
173
173
|
font-size-adjust: none;
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
+
/* Every lucide icon draws its line from one token instead of lucide's default
|
|
177
|
+
`stroke-width="2"`. The value is in the icon's 24-unit grid, so the line still
|
|
178
|
+
thickens a little as the icon grows. Components size icons; none sets a stroke. */
|
|
179
|
+
:where(svg.lucide) {
|
|
180
|
+
stroke-width: var(--icon-stroke-width);
|
|
181
|
+
}
|
|
182
|
+
|
|
176
183
|
:focus-visible {
|
|
177
184
|
outline: 1px solid var(--border-focus);
|
|
178
185
|
outline-offset: 0;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useContext, useState, Children } from 'react';
|
|
3
|
-
import { A as AvatarSizeContext, a as avatarSizeClasses, b as avatarIconClasses, c as avatarTextClasses } from './avatar-size-
|
|
3
|
+
import { A as AvatarSizeContext, a as avatarSizeClasses, b as avatarIconClasses, c as avatarTextClasses } from './avatar-size-BXzy28Bx.js';
|
|
4
4
|
import { c as cn } from './cn-CQUhN5Jx.js';
|
|
5
5
|
import { T as Txt } from './Txt-BtIGLRk1.js';
|
|
6
6
|
import { controlStateColorTransition } from './primitives/transitions.es.js';
|
|
@@ -15,6 +15,7 @@ const toneClasses = {
|
|
|
15
15
|
};
|
|
16
16
|
const badgeSizeClasses = {
|
|
17
17
|
xs: "min-h-1.5 min-w-1.5 [&>svg]:hidden",
|
|
18
|
+
inline: "min-h-1.5 min-w-1.5 [&>svg]:hidden",
|
|
18
19
|
sm: "min-h-2 min-w-2 [&>svg]:hidden",
|
|
19
20
|
md: "min-h-2.5 min-w-2.5 [&>svg]:size-icon-xs",
|
|
20
21
|
lg: "min-h-3 min-w-3 [&>svg]:size-icon-xs",
|
|
@@ -116,15 +117,16 @@ function AvatarFallback({ className, ...props }) {
|
|
|
116
117
|
}
|
|
117
118
|
|
|
118
119
|
const groupSizeClasses = {
|
|
119
|
-
xs: "[--avatar-group-size:var(--spacing-icon-xs)]",
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
120
|
+
xs: "[--avatar-group-size:var(--spacing-icon-xs)] [--avatar-group-gap:1px] [--avatar-group-edge:0.5px]",
|
|
121
|
+
inline: "[--avatar-group-size:var(--spacing-icon-md)] [--avatar-group-gap:1px] [--avatar-group-edge:0.5px]",
|
|
122
|
+
sm: "[--avatar-group-size:var(--spacing-avatar-sm)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]",
|
|
123
|
+
md: "[--avatar-group-size:var(--spacing-avatar-md)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]",
|
|
124
|
+
lg: "[--avatar-group-size:var(--spacing-avatar-lg)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]",
|
|
125
|
+
control: "[--avatar-group-size:var(--spacing-control-md)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]"
|
|
124
126
|
};
|
|
125
127
|
const overlapClasses = [
|
|
126
128
|
"*:not-first:ml-[calc(var(--avatar-group-size)/-4)]",
|
|
127
|
-
"*:not-first:[mask-image:radial-gradient(circle_at_calc(var(--avatar-group-size)*-0.25)_50%,transparent_calc(var(--avatar-group-size)/2
|
|
129
|
+
"*:not-first:[mask-image:radial-gradient(circle_at_calc(var(--avatar-group-size)*-0.25)_50%,transparent_calc(var(--avatar-group-size)/2+var(--avatar-group-gap)),black_calc(var(--avatar-group-size)/2+var(--avatar-group-gap)+var(--avatar-group-edge)))]"
|
|
128
130
|
];
|
|
129
131
|
function AvatarGroup({ size = "sm", className, children, ...props }) {
|
|
130
132
|
const items = Children.toArray(children);
|
|
@@ -179,4 +181,4 @@ const Avatar = Object.assign(AvatarElement, {
|
|
|
179
181
|
});
|
|
180
182
|
|
|
181
183
|
export { Avatar as A };
|
|
182
|
-
//# sourceMappingURL=Avatar-
|
|
184
|
+
//# sourceMappingURL=Avatar-BjaG9NU_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar-BjaG9NU_.js","sources":["../src/ds/components/Avatar/avatar-badge.tsx","../src/ds/components/Avatar/avatar-named.tsx","../src/ds/components/Avatar/avatar-root.tsx","../src/ds/components/Avatar/avatar-element.tsx","../src/ds/components/Avatar/avatar-fallback.tsx","../src/ds/components/Avatar/avatar-group.tsx","../src/ds/components/Avatar/avatar-group-count.tsx","../src/ds/components/Avatar/avatar-image.tsx","../src/ds/components/Avatar/Avatar.tsx"],"sourcesContent":["import { useContext } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { AvatarSizeContext } from './avatar-size';\nimport type { AvatarSize } from './avatar-size';\nimport { cn } from '@/lib/utils';\n\nexport type AvatarBadgeTone = 'neutral' | 'success' | 'warning' | 'destructive' | 'info';\n\nexport type AvatarBadgeProps = ComponentProps<'span'> & {\n tone?: AvatarBadgeTone;\n};\n\nconst toneClasses: Record<AvatarBadgeTone, string> = {\n neutral: 'bg-fill-inverse text-background',\n success: 'bg-success-indicator text-background',\n warning: 'bg-warning-indicator text-background',\n destructive: 'bg-destructive-indicator text-background',\n info: 'bg-info-indicator text-background',\n};\n\nconst badgeSizeClasses: Record<AvatarSize, string> = {\n xs: 'min-h-1.5 min-w-1.5 [&>svg]:hidden',\n inline: 'min-h-1.5 min-w-1.5 [&>svg]:hidden',\n sm: 'min-h-2 min-w-2 [&>svg]:hidden',\n md: 'min-h-2.5 min-w-2.5 [&>svg]:size-icon-xs',\n lg: 'min-h-3 min-w-3 [&>svg]:size-icon-xs',\n control: 'min-h-2.5 min-w-2.5 [&>svg]:size-icon-xs',\n};\n\nexport function AvatarBadge({ tone, className, children, ...props }: AvatarBadgeProps) {\n const size = useContext(AvatarSizeContext) ?? 'sm';\n\n return (\n <span\n {...props}\n data-slot=\"avatar-badge\"\n className={cn(\n 'absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full ring-2 ring-card select-none',\n '[&>[data-slot=avatar]]:border-0 [&>[data-slot=avatar]]:after:hidden',\n 'after:pointer-events-none after:absolute after:inset-0 after:rounded-full after:shadow-inset',\n tone ? toneClasses[tone] : 'bg-card text-foreground',\n badgeSizeClasses[size],\n className,\n )}\n >\n <AvatarSizeContext.Provider value=\"xs\">{children}</AvatarSizeContext.Provider>\n </span>\n );\n}\n","import { useContext, useState } from 'react';\n\nimport { Txt } from '../Txt/Txt';\nimport { AvatarSizeContext, avatarSizeClasses } from './avatar-size';\nimport type { AvatarSize } from './avatar-size';\nimport { controlStateColorTransition } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type AvatarProps = {\n src?: string;\n name: string;\n size?: AvatarSize;\n interactive?: boolean;\n color?: string;\n textColor?: string;\n};\n\nexport function AvatarNamed({ src, name, size, interactive = false, color, textColor }: AvatarProps) {\n const contextSize = useContext(AvatarSizeContext);\n const [failedSrc, setFailedSrc] = useState<string>();\n const resolvedSize = size ?? contextSize ?? 'sm';\n const initial = name.trim()[0]?.toUpperCase() ?? 'A';\n const showImage = Boolean(src) && failedSrc !== src;\n const showFallbackTint = !showImage && Boolean(color);\n\n return (\n <div\n data-slot=\"avatar\"\n data-size={resolvedSize}\n className={cn(\n avatarSizeClasses[resolvedSize],\n 'flex shrink-0 items-center justify-center overflow-hidden rounded-full border border-border',\n !showFallbackTint && 'bg-fill',\n controlStateColorTransition,\n interactive && 'cursor-pointer hover:border-border-hover',\n )}\n style={showFallbackTint ? { backgroundColor: color } : undefined}\n >\n {showImage ? (\n <img src={src} alt={name} className=\"size-full object-cover\" onError={() => setFailedSrc(src)} />\n ) : (\n <Txt\n variant={resolvedSize === 'xs' ? 'meta' : 'body'}\n tone={showFallbackTint ? undefined : 'muted'}\n className=\"text-center\"\n style={showFallbackTint && textColor ? { color: textColor } : undefined}\n >\n {initial}\n </Txt>\n )}\n </div>\n );\n}\n","import { Avatar as BaseAvatar } from '@base-ui/react/avatar';\nimport { useContext } from 'react';\n\nimport { AvatarSizeContext, avatarSizeClasses } from './avatar-size';\nimport type { AvatarSize } from './avatar-size';\nimport { cn } from '@/lib/utils';\n\nexport type AvatarRootProps = Omit<BaseAvatar.Root.Props, 'className'> & {\n size?: AvatarSize;\n className?: string;\n name?: never;\n};\n\nexport function AvatarRoot({ size, className, ...props }: AvatarRootProps) {\n const contextSize = useContext(AvatarSizeContext);\n const resolvedSize = size ?? contextSize ?? 'sm';\n\n return (\n <AvatarSizeContext.Provider value={resolvedSize}>\n <BaseAvatar.Root\n {...props}\n data-slot=\"avatar\"\n data-size={resolvedSize}\n className={cn(\n 'relative inline-flex shrink-0 rounded-full select-none',\n 'after:pointer-events-none after:absolute after:inset-0 after:rounded-full after:border after:border-border',\n avatarSizeClasses[resolvedSize],\n className,\n )}\n />\n </AvatarSizeContext.Provider>\n );\n}\n","import { AvatarNamed } from './avatar-named';\nimport type { AvatarProps } from './avatar-named';\nimport { AvatarRoot } from './avatar-root';\nimport type { AvatarRootProps } from './avatar-root';\n\nexport function AvatarElement(props: AvatarProps | AvatarRootProps) {\n if (props.name === undefined) return <AvatarRoot {...props} />;\n return <AvatarNamed {...props} />;\n}\n","import { Avatar as BaseAvatar } from '@base-ui/react/avatar';\nimport { useContext } from 'react';\n\nimport { AvatarSizeContext, avatarIconClasses, avatarTextClasses } from './avatar-size';\nimport { cn } from '@/lib/utils';\n\nexport type AvatarFallbackProps = Omit<BaseAvatar.Fallback.Props, 'className'> & {\n className?: string;\n};\n\nexport function AvatarFallback({ className, ...props }: AvatarFallbackProps) {\n const size = useContext(AvatarSizeContext) ?? 'sm';\n\n return (\n <BaseAvatar.Fallback\n {...props}\n data-slot=\"avatar-fallback\"\n className={cn(\n 'flex size-full items-center justify-center overflow-hidden rounded-full bg-muted text-muted-foreground',\n avatarTextClasses[size],\n avatarIconClasses[size],\n className,\n )}\n />\n );\n}\n","import { Children } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { AvatarSizeContext } from './avatar-size';\nimport type { AvatarSize } from './avatar-size';\nimport { cn } from '@/lib/utils';\n\nexport type AvatarGroupProps = ComponentProps<'div'> & {\n size?: AvatarSize;\n};\n\n// Small avatars get a thinner gap around the avatar on top, so it doesn't\n// swallow the avatar behind.\nconst groupSizeClasses: Record<AvatarSize, string> = {\n xs: '[--avatar-group-size:var(--spacing-icon-xs)] [--avatar-group-gap:1px] [--avatar-group-edge:0.5px]',\n inline: '[--avatar-group-size:var(--spacing-icon-md)] [--avatar-group-gap:1px] [--avatar-group-edge:0.5px]',\n sm: '[--avatar-group-size:var(--spacing-avatar-sm)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]',\n md: '[--avatar-group-size:var(--spacing-avatar-md)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]',\n lg: '[--avatar-group-size:var(--spacing-avatar-lg)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]',\n control:\n '[--avatar-group-size:var(--spacing-control-md)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]',\n};\n\nconst overlapClasses = [\n '*:not-first:ml-[calc(var(--avatar-group-size)/-4)]',\n '*:not-first:[mask-image:radial-gradient(circle_at_calc(var(--avatar-group-size)*-0.25)_50%,transparent_calc(var(--avatar-group-size)/2+var(--avatar-group-gap)),black_calc(var(--avatar-group-size)/2+var(--avatar-group-gap)+var(--avatar-group-edge)))]',\n];\n\nexport function AvatarGroup({ size = 'sm', className, children, ...props }: AvatarGroupProps) {\n const items = Children.toArray(children);\n\n return (\n <AvatarSizeContext.Provider value={size}>\n <div\n {...props}\n data-slot=\"avatar-group\"\n className={cn('flex items-center', groupSizeClasses[size], overlapClasses, className)}\n >\n {items.map((item, index) => (\n <div key={index} data-slot=\"avatar-group-item\" className=\"flex\" style={{ zIndex: items.length - index }}>\n {item}\n </div>\n ))}\n </div>\n </AvatarSizeContext.Provider>\n );\n}\n","import { useContext } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { AvatarSizeContext, avatarIconClasses, avatarSizeClasses, avatarTextClasses } from './avatar-size';\nimport { cn } from '@/lib/utils';\n\nexport type AvatarGroupCountProps = ComponentProps<'div'>;\n\nexport function AvatarGroupCount({ className, ...props }: AvatarGroupCountProps) {\n const size = useContext(AvatarSizeContext) ?? 'sm';\n\n return (\n <div\n {...props}\n data-slot=\"avatar-group-count\"\n data-size={size}\n className={cn(\n 'relative flex shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground tabular-nums',\n 'after:pointer-events-none after:absolute after:inset-0 after:rounded-full after:border after:border-border',\n avatarSizeClasses[size],\n avatarTextClasses[size],\n avatarIconClasses[size],\n className,\n )}\n />\n );\n}\n","import { Avatar as BaseAvatar } from '@base-ui/react/avatar';\n\nimport { cn } from '@/lib/utils';\n\nexport type AvatarImageProps = Omit<BaseAvatar.Image.Props, 'className' | 'alt'> & {\n alt: string;\n className?: string;\n};\n\nexport function AvatarImage({ className, ...props }: AvatarImageProps) {\n return (\n <BaseAvatar.Image\n {...props}\n data-slot=\"avatar-image\"\n className={cn('size-full rounded-full object-cover', className)}\n />\n );\n}\n","import { AvatarBadge } from './avatar-badge';\nimport { AvatarElement } from './avatar-element';\nimport { AvatarFallback } from './avatar-fallback';\nimport { AvatarGroup } from './avatar-group';\nimport { AvatarGroupCount } from './avatar-group-count';\nimport { AvatarImage } from './avatar-image';\n\nexport type { AvatarSize } from './avatar-size';\nexport type { AvatarProps } from './avatar-named';\nexport type { AvatarRootProps } from './avatar-root';\nexport type { AvatarImageProps } from './avatar-image';\nexport type { AvatarFallbackProps } from './avatar-fallback';\nexport type { AvatarBadgeProps, AvatarBadgeTone } from './avatar-badge';\nexport type { AvatarGroupProps } from './avatar-group';\nexport type { AvatarGroupCountProps } from './avatar-group-count';\n\nexport const Avatar = Object.assign(AvatarElement, {\n Image: AvatarImage,\n Fallback: AvatarFallback,\n Badge: AvatarBadge,\n Group: AvatarGroup,\n GroupCount: AvatarGroupCount,\n});\n"],"names":["BaseAvatar"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
const React = require('react');
|
|
5
|
-
const avatarSize = require('./avatar-size-
|
|
5
|
+
const avatarSize = require('./avatar-size-DIFE4I8A.cjs');
|
|
6
6
|
const utils_cn = require('./cn-DlOJCxrS.cjs');
|
|
7
7
|
const Txt = require('./Txt-CIS2G5Jx.cjs');
|
|
8
8
|
const primitives_transitions = require('./primitives/transitions.cjs.js');
|
|
@@ -17,6 +17,7 @@ const toneClasses = {
|
|
|
17
17
|
};
|
|
18
18
|
const badgeSizeClasses = {
|
|
19
19
|
xs: "min-h-1.5 min-w-1.5 [&>svg]:hidden",
|
|
20
|
+
inline: "min-h-1.5 min-w-1.5 [&>svg]:hidden",
|
|
20
21
|
sm: "min-h-2 min-w-2 [&>svg]:hidden",
|
|
21
22
|
md: "min-h-2.5 min-w-2.5 [&>svg]:size-icon-xs",
|
|
22
23
|
lg: "min-h-3 min-w-3 [&>svg]:size-icon-xs",
|
|
@@ -118,15 +119,16 @@ function AvatarFallback({ className, ...props }) {
|
|
|
118
119
|
}
|
|
119
120
|
|
|
120
121
|
const groupSizeClasses = {
|
|
121
|
-
xs: "[--avatar-group-size:var(--spacing-icon-xs)]",
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
122
|
+
xs: "[--avatar-group-size:var(--spacing-icon-xs)] [--avatar-group-gap:1px] [--avatar-group-edge:0.5px]",
|
|
123
|
+
inline: "[--avatar-group-size:var(--spacing-icon-md)] [--avatar-group-gap:1px] [--avatar-group-edge:0.5px]",
|
|
124
|
+
sm: "[--avatar-group-size:var(--spacing-avatar-sm)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]",
|
|
125
|
+
md: "[--avatar-group-size:var(--spacing-avatar-md)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]",
|
|
126
|
+
lg: "[--avatar-group-size:var(--spacing-avatar-lg)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]",
|
|
127
|
+
control: "[--avatar-group-size:var(--spacing-control-md)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]"
|
|
126
128
|
};
|
|
127
129
|
const overlapClasses = [
|
|
128
130
|
"*:not-first:ml-[calc(var(--avatar-group-size)/-4)]",
|
|
129
|
-
"*:not-first:[mask-image:radial-gradient(circle_at_calc(var(--avatar-group-size)*-0.25)_50%,transparent_calc(var(--avatar-group-size)/2
|
|
131
|
+
"*:not-first:[mask-image:radial-gradient(circle_at_calc(var(--avatar-group-size)*-0.25)_50%,transparent_calc(var(--avatar-group-size)/2+var(--avatar-group-gap)),black_calc(var(--avatar-group-size)/2+var(--avatar-group-gap)+var(--avatar-group-edge)))]"
|
|
130
132
|
];
|
|
131
133
|
function AvatarGroup({ size = "sm", className, children, ...props }) {
|
|
132
134
|
const items = React.Children.toArray(children);
|
|
@@ -181,4 +183,4 @@ const Avatar = Object.assign(AvatarElement, {
|
|
|
181
183
|
});
|
|
182
184
|
|
|
183
185
|
exports.Avatar = Avatar;
|
|
184
|
-
//# sourceMappingURL=Avatar-
|
|
186
|
+
//# sourceMappingURL=Avatar-DM90rmwx.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Avatar-DM90rmwx.cjs","sources":["../src/ds/components/Avatar/avatar-badge.tsx","../src/ds/components/Avatar/avatar-named.tsx","../src/ds/components/Avatar/avatar-root.tsx","../src/ds/components/Avatar/avatar-element.tsx","../src/ds/components/Avatar/avatar-fallback.tsx","../src/ds/components/Avatar/avatar-group.tsx","../src/ds/components/Avatar/avatar-group-count.tsx","../src/ds/components/Avatar/avatar-image.tsx","../src/ds/components/Avatar/Avatar.tsx"],"sourcesContent":["import { useContext } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { AvatarSizeContext } from './avatar-size';\nimport type { AvatarSize } from './avatar-size';\nimport { cn } from '@/lib/utils';\n\nexport type AvatarBadgeTone = 'neutral' | 'success' | 'warning' | 'destructive' | 'info';\n\nexport type AvatarBadgeProps = ComponentProps<'span'> & {\n tone?: AvatarBadgeTone;\n};\n\nconst toneClasses: Record<AvatarBadgeTone, string> = {\n neutral: 'bg-fill-inverse text-background',\n success: 'bg-success-indicator text-background',\n warning: 'bg-warning-indicator text-background',\n destructive: 'bg-destructive-indicator text-background',\n info: 'bg-info-indicator text-background',\n};\n\nconst badgeSizeClasses: Record<AvatarSize, string> = {\n xs: 'min-h-1.5 min-w-1.5 [&>svg]:hidden',\n inline: 'min-h-1.5 min-w-1.5 [&>svg]:hidden',\n sm: 'min-h-2 min-w-2 [&>svg]:hidden',\n md: 'min-h-2.5 min-w-2.5 [&>svg]:size-icon-xs',\n lg: 'min-h-3 min-w-3 [&>svg]:size-icon-xs',\n control: 'min-h-2.5 min-w-2.5 [&>svg]:size-icon-xs',\n};\n\nexport function AvatarBadge({ tone, className, children, ...props }: AvatarBadgeProps) {\n const size = useContext(AvatarSizeContext) ?? 'sm';\n\n return (\n <span\n {...props}\n data-slot=\"avatar-badge\"\n className={cn(\n 'absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full ring-2 ring-card select-none',\n '[&>[data-slot=avatar]]:border-0 [&>[data-slot=avatar]]:after:hidden',\n 'after:pointer-events-none after:absolute after:inset-0 after:rounded-full after:shadow-inset',\n tone ? toneClasses[tone] : 'bg-card text-foreground',\n badgeSizeClasses[size],\n className,\n )}\n >\n <AvatarSizeContext.Provider value=\"xs\">{children}</AvatarSizeContext.Provider>\n </span>\n );\n}\n","import { useContext, useState } from 'react';\n\nimport { Txt } from '../Txt/Txt';\nimport { AvatarSizeContext, avatarSizeClasses } from './avatar-size';\nimport type { AvatarSize } from './avatar-size';\nimport { controlStateColorTransition } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type AvatarProps = {\n src?: string;\n name: string;\n size?: AvatarSize;\n interactive?: boolean;\n color?: string;\n textColor?: string;\n};\n\nexport function AvatarNamed({ src, name, size, interactive = false, color, textColor }: AvatarProps) {\n const contextSize = useContext(AvatarSizeContext);\n const [failedSrc, setFailedSrc] = useState<string>();\n const resolvedSize = size ?? contextSize ?? 'sm';\n const initial = name.trim()[0]?.toUpperCase() ?? 'A';\n const showImage = Boolean(src) && failedSrc !== src;\n const showFallbackTint = !showImage && Boolean(color);\n\n return (\n <div\n data-slot=\"avatar\"\n data-size={resolvedSize}\n className={cn(\n avatarSizeClasses[resolvedSize],\n 'flex shrink-0 items-center justify-center overflow-hidden rounded-full border border-border',\n !showFallbackTint && 'bg-fill',\n controlStateColorTransition,\n interactive && 'cursor-pointer hover:border-border-hover',\n )}\n style={showFallbackTint ? { backgroundColor: color } : undefined}\n >\n {showImage ? (\n <img src={src} alt={name} className=\"size-full object-cover\" onError={() => setFailedSrc(src)} />\n ) : (\n <Txt\n variant={resolvedSize === 'xs' ? 'meta' : 'body'}\n tone={showFallbackTint ? undefined : 'muted'}\n className=\"text-center\"\n style={showFallbackTint && textColor ? { color: textColor } : undefined}\n >\n {initial}\n </Txt>\n )}\n </div>\n );\n}\n","import { Avatar as BaseAvatar } from '@base-ui/react/avatar';\nimport { useContext } from 'react';\n\nimport { AvatarSizeContext, avatarSizeClasses } from './avatar-size';\nimport type { AvatarSize } from './avatar-size';\nimport { cn } from '@/lib/utils';\n\nexport type AvatarRootProps = Omit<BaseAvatar.Root.Props, 'className'> & {\n size?: AvatarSize;\n className?: string;\n name?: never;\n};\n\nexport function AvatarRoot({ size, className, ...props }: AvatarRootProps) {\n const contextSize = useContext(AvatarSizeContext);\n const resolvedSize = size ?? contextSize ?? 'sm';\n\n return (\n <AvatarSizeContext.Provider value={resolvedSize}>\n <BaseAvatar.Root\n {...props}\n data-slot=\"avatar\"\n data-size={resolvedSize}\n className={cn(\n 'relative inline-flex shrink-0 rounded-full select-none',\n 'after:pointer-events-none after:absolute after:inset-0 after:rounded-full after:border after:border-border',\n avatarSizeClasses[resolvedSize],\n className,\n )}\n />\n </AvatarSizeContext.Provider>\n );\n}\n","import { AvatarNamed } from './avatar-named';\nimport type { AvatarProps } from './avatar-named';\nimport { AvatarRoot } from './avatar-root';\nimport type { AvatarRootProps } from './avatar-root';\n\nexport function AvatarElement(props: AvatarProps | AvatarRootProps) {\n if (props.name === undefined) return <AvatarRoot {...props} />;\n return <AvatarNamed {...props} />;\n}\n","import { Avatar as BaseAvatar } from '@base-ui/react/avatar';\nimport { useContext } from 'react';\n\nimport { AvatarSizeContext, avatarIconClasses, avatarTextClasses } from './avatar-size';\nimport { cn } from '@/lib/utils';\n\nexport type AvatarFallbackProps = Omit<BaseAvatar.Fallback.Props, 'className'> & {\n className?: string;\n};\n\nexport function AvatarFallback({ className, ...props }: AvatarFallbackProps) {\n const size = useContext(AvatarSizeContext) ?? 'sm';\n\n return (\n <BaseAvatar.Fallback\n {...props}\n data-slot=\"avatar-fallback\"\n className={cn(\n 'flex size-full items-center justify-center overflow-hidden rounded-full bg-muted text-muted-foreground',\n avatarTextClasses[size],\n avatarIconClasses[size],\n className,\n )}\n />\n );\n}\n","import { Children } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { AvatarSizeContext } from './avatar-size';\nimport type { AvatarSize } from './avatar-size';\nimport { cn } from '@/lib/utils';\n\nexport type AvatarGroupProps = ComponentProps<'div'> & {\n size?: AvatarSize;\n};\n\n// Small avatars get a thinner gap around the avatar on top, so it doesn't\n// swallow the avatar behind.\nconst groupSizeClasses: Record<AvatarSize, string> = {\n xs: '[--avatar-group-size:var(--spacing-icon-xs)] [--avatar-group-gap:1px] [--avatar-group-edge:0.5px]',\n inline: '[--avatar-group-size:var(--spacing-icon-md)] [--avatar-group-gap:1px] [--avatar-group-edge:0.5px]',\n sm: '[--avatar-group-size:var(--spacing-avatar-sm)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]',\n md: '[--avatar-group-size:var(--spacing-avatar-md)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]',\n lg: '[--avatar-group-size:var(--spacing-avatar-lg)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]',\n control:\n '[--avatar-group-size:var(--spacing-control-md)] [--avatar-group-gap:--spacing(0.5)] [--avatar-group-edge:1px]',\n};\n\nconst overlapClasses = [\n '*:not-first:ml-[calc(var(--avatar-group-size)/-4)]',\n '*:not-first:[mask-image:radial-gradient(circle_at_calc(var(--avatar-group-size)*-0.25)_50%,transparent_calc(var(--avatar-group-size)/2+var(--avatar-group-gap)),black_calc(var(--avatar-group-size)/2+var(--avatar-group-gap)+var(--avatar-group-edge)))]',\n];\n\nexport function AvatarGroup({ size = 'sm', className, children, ...props }: AvatarGroupProps) {\n const items = Children.toArray(children);\n\n return (\n <AvatarSizeContext.Provider value={size}>\n <div\n {...props}\n data-slot=\"avatar-group\"\n className={cn('flex items-center', groupSizeClasses[size], overlapClasses, className)}\n >\n {items.map((item, index) => (\n <div key={index} data-slot=\"avatar-group-item\" className=\"flex\" style={{ zIndex: items.length - index }}>\n {item}\n </div>\n ))}\n </div>\n </AvatarSizeContext.Provider>\n );\n}\n","import { useContext } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { AvatarSizeContext, avatarIconClasses, avatarSizeClasses, avatarTextClasses } from './avatar-size';\nimport { cn } from '@/lib/utils';\n\nexport type AvatarGroupCountProps = ComponentProps<'div'>;\n\nexport function AvatarGroupCount({ className, ...props }: AvatarGroupCountProps) {\n const size = useContext(AvatarSizeContext) ?? 'sm';\n\n return (\n <div\n {...props}\n data-slot=\"avatar-group-count\"\n data-size={size}\n className={cn(\n 'relative flex shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground tabular-nums',\n 'after:pointer-events-none after:absolute after:inset-0 after:rounded-full after:border after:border-border',\n avatarSizeClasses[size],\n avatarTextClasses[size],\n avatarIconClasses[size],\n className,\n )}\n />\n );\n}\n","import { Avatar as BaseAvatar } from '@base-ui/react/avatar';\n\nimport { cn } from '@/lib/utils';\n\nexport type AvatarImageProps = Omit<BaseAvatar.Image.Props, 'className' | 'alt'> & {\n alt: string;\n className?: string;\n};\n\nexport function AvatarImage({ className, ...props }: AvatarImageProps) {\n return (\n <BaseAvatar.Image\n {...props}\n data-slot=\"avatar-image\"\n className={cn('size-full rounded-full object-cover', className)}\n />\n );\n}\n","import { AvatarBadge } from './avatar-badge';\nimport { AvatarElement } from './avatar-element';\nimport { AvatarFallback } from './avatar-fallback';\nimport { AvatarGroup } from './avatar-group';\nimport { AvatarGroupCount } from './avatar-group-count';\nimport { AvatarImage } from './avatar-image';\n\nexport type { AvatarSize } from './avatar-size';\nexport type { AvatarProps } from './avatar-named';\nexport type { AvatarRootProps } from './avatar-root';\nexport type { AvatarImageProps } from './avatar-image';\nexport type { AvatarFallbackProps } from './avatar-fallback';\nexport type { AvatarBadgeProps, AvatarBadgeTone } from './avatar-badge';\nexport type { AvatarGroupProps } from './avatar-group';\nexport type { AvatarGroupCountProps } from './avatar-group-count';\n\nexport const Avatar = Object.assign(AvatarElement, {\n Image: AvatarImage,\n Fallback: AvatarFallback,\n Badge: AvatarBadge,\n Group: AvatarGroup,\n GroupCount: AvatarGroupCount,\n});\n"],"names":["useContext","AvatarSizeContext","jsx","cn","useState","avatarSizeClasses","controlStateColorTransition","Txt","BaseAvatar","avatarTextClasses","avatarIconClasses","Children"],"mappings":"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"}
|
|
@@ -13,15 +13,15 @@ const primitives_transitions = require('./primitives/transitions.cjs.js');
|
|
|
13
13
|
const utils_cn = require('./cn-DlOJCxrS.cjs');
|
|
14
14
|
|
|
15
15
|
const TEXT_MODE_ADORNMENTS = utils_cn.cn(
|
|
16
|
-
"
|
|
17
|
-
"[
|
|
18
|
-
"[
|
|
19
|
-
"[&>svg]:mx-[-.3em]"
|
|
16
|
+
"rounded-full px-(--button-px)",
|
|
17
|
+
"has-[>[data-slot=button-icon]]:pl-[calc(var(--button-px)-2px)] has-[>svg]:pl-[calc(var(--button-px)-2px)]",
|
|
18
|
+
"has-[>[data-slot=button-icon-end]]:pr-[calc(var(--button-px)-2px)]"
|
|
20
19
|
);
|
|
20
|
+
const LABELLESS_SVG = "has-[>svg]:pr-[calc(var(--button-px)-2px)]";
|
|
21
21
|
const LINK_LAYOUT = utils_cn.cn(
|
|
22
22
|
"relative size-auto gap-1 rounded-xs px-0 text-label",
|
|
23
23
|
"before:absolute before:-inset-x-2",
|
|
24
|
-
"[
|
|
24
|
+
"has-[>[data-slot=button-icon-end]]:pr-0 has-[>[data-slot=button-icon]]:pl-0 has-[>svg]:pl-0"
|
|
25
25
|
);
|
|
26
26
|
const LINK_LABEL = utils_cn.cn(
|
|
27
27
|
"relative inline-flex items-center gap-1",
|
|
@@ -77,6 +77,13 @@ const buttonVariants = index.cva(
|
|
|
77
77
|
"border border-transparent bg-transparent text-muted-foreground not-disabled:hover:bg-fill-subtle not-disabled:hover:text-foreground not-disabled:active:bg-fill",
|
|
78
78
|
"disabled:bg-transparent aria-disabled:bg-transparent"
|
|
79
79
|
),
|
|
80
|
+
// A persistent neutral fill for selected controls. Match default's borderless
|
|
81
|
+
// box so switching between the raised and subtle surfaces keeps labels in place.
|
|
82
|
+
subtle: utils_cn.cn(
|
|
83
|
+
"border-0 bg-fill-hover text-foreground not-disabled:hover:bg-fill-hover not-disabled:active:bg-fill",
|
|
84
|
+
primitives_transitions.focusRing,
|
|
85
|
+
"disabled:bg-transparent aria-disabled:bg-transparent"
|
|
86
|
+
),
|
|
80
87
|
link: utils_cn.cn(
|
|
81
88
|
"border-0 bg-transparent text-muted-foreground not-disabled:hover:text-foreground",
|
|
82
89
|
"not-disabled:hover:[&>[data-slot=button-label]]:after:scale-x-100 not-disabled:hover:[&>[data-slot=button-label]]:after:duration-normal",
|
|
@@ -85,9 +92,9 @@ const buttonVariants = index.cva(
|
|
|
85
92
|
)
|
|
86
93
|
},
|
|
87
94
|
size: {
|
|
88
|
-
sm: utils_cn.cn(primitives_controlSize.controlSizeClasses.sm, icons_iconSizeClasses.iconSizeClasses.sm, "
|
|
89
|
-
md: utils_cn.cn(primitives_controlSize.controlSizeClasses.md, icons_iconSizeClasses.iconSizeClasses.md, "
|
|
90
|
-
lg: utils_cn.cn(primitives_controlSize.controlSizeClasses.lg, icons_iconSizeClasses.iconSizeClasses.lg, "
|
|
95
|
+
sm: utils_cn.cn(primitives_controlSize.controlSizeClasses.sm, icons_iconSizeClasses.iconSizeClasses.sm, "gap-1 [--button-px:.9em]", TEXT_MODE_ADORNMENTS),
|
|
96
|
+
md: utils_cn.cn(primitives_controlSize.controlSizeClasses.md, icons_iconSizeClasses.iconSizeClasses.md, "gap-1.5 [--button-px:.9em]", TEXT_MODE_ADORNMENTS),
|
|
97
|
+
lg: utils_cn.cn(primitives_controlSize.controlSizeClasses.lg, icons_iconSizeClasses.iconSizeClasses.lg, "gap-1.5 [--button-px:1em]", TEXT_MODE_ADORNMENTS),
|
|
91
98
|
// Icon sizes: square dimensions, fully rounded → circle. Active state inherits from variant
|
|
92
99
|
// so icon-mode and text-mode use the same press feedback. The glyph is sized by the `Icon`
|
|
93
100
|
// wrapper the component puts around an icon-mode child, keyed off the same scale.
|
|
@@ -200,7 +207,7 @@ const Button = React.forwardRef(
|
|
|
200
207
|
// Icon-mode is a square: a group that overrides the rung has to move the width with
|
|
201
208
|
// the height or the circle turns into a pill (see buttons-group.css).
|
|
202
209
|
"data-shape": iconMode ? "icon" : void 0,
|
|
203
|
-
className: utils_cn.cn(buttonVariants({ variant, size: resolvedSize }), className),
|
|
210
|
+
className: utils_cn.cn(buttonVariants({ variant, size: resolvedSize }), isLabelless && LABELLESS_SVG, className),
|
|
204
211
|
...props
|
|
205
212
|
};
|
|
206
213
|
const LegacyComponent = render ? void 0 : asProp;
|
|
@@ -252,4 +259,4 @@ Button.displayName = "Button";
|
|
|
252
259
|
exports.Button = Button;
|
|
253
260
|
exports.buttonVariants = buttonVariants;
|
|
254
261
|
exports.isIconButtonSize = isIconButtonSize;
|
|
255
|
-
//# sourceMappingURL=Button-
|
|
262
|
+
//# sourceMappingURL=Button-C4I05uT4.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button-C4I05uT4.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 } from '@/ds/icons/icon-size-classes';\nimport 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, focusRing, focusRingOffset } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\n// Text-mode buttons are pills. Each size sets `--button-px`, the label's side padding. The\n// icon side gets 2px less, because a glyph draws inside its box: the icon then reads as far\n// from the edge as the label does (shadcn's Button uses the same 2px step).\n// - `[data-slot=button-icon(-end)]`: the `<Icon>` wrappers the `icon` / `iconEnd` props render.\n// - `>svg`: a bare SVG passed as a leading child. A label-less one (e.g. CopyButton) also gets\n// the right side from `LABELLESS_SVG`.\n// Icon-mode sizes skip this: they are fixed squares with their own `rounded-full`.\nconst TEXT_MODE_ADORNMENTS = cn(\n 'rounded-full px-(--button-px)',\n 'has-[>[data-slot=button-icon]]:pl-[calc(var(--button-px)-2px)] has-[>svg]:pl-[calc(var(--button-px)-2px)]',\n 'has-[>[data-slot=button-icon-end]]:pr-[calc(var(--button-px)-2px)]',\n);\n\nconst LABELLESS_SVG = 'has-[>svg]:pr-[calc(var(--button-px)-2px)]';\n\nconst LINK_LAYOUT = cn(\n 'relative size-auto gap-1 rounded-xs px-0 text-label',\n 'before:absolute before:-inset-x-2',\n 'has-[>[data-slot=button-icon-end]]:pr-0 has-[>[data-slot=button-icon]]:pl-0 has-[>svg]:pl-0',\n);\n\nconst LINK_LABEL = cn(\n 'relative inline-flex items-center gap-1',\n iconSizeClasses.sm,\n '[&>svg]:shrink-0',\n 'after:absolute after:inset-x-0 after:bottom-0 after:h-px after:origin-left after:scale-x-0 after:bg-current',\n 'after:transition-transform after:duration-fast after:ease-out-custom motion-reduce:after:transition-none',\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 // A persistent neutral fill for selected controls. Match default's borderless\n // box so switching between the raised and subtle surfaces keeps labels in place.\n subtle: cn(\n 'border-0 bg-fill-hover text-foreground not-disabled:hover:bg-fill-hover not-disabled:active:bg-fill',\n focusRing,\n 'disabled:bg-transparent aria-disabled:bg-transparent',\n ),\n link: cn(\n 'border-0 bg-transparent text-muted-foreground not-disabled:hover:text-foreground',\n 'not-disabled:hover:[&>[data-slot=button-label]]:after:scale-x-100 not-disabled:hover:[&>[data-slot=button-label]]:after:duration-normal',\n focusRingOffset,\n 'disabled:text-placeholder aria-disabled:text-placeholder',\n ),\n },\n size: {\n sm: cn(controlSizeClasses.sm, iconSizeClasses.sm, 'gap-1 [--button-px:.9em]', TEXT_MODE_ADORNMENTS),\n md: cn(controlSizeClasses.md, iconSizeClasses.md, 'gap-1.5 [--button-px:.9em]', TEXT_MODE_ADORNMENTS),\n lg: cn(controlSizeClasses.lg, iconSizeClasses.lg, 'gap-1.5 [--button-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 compoundVariants: [\n { variant: 'link', className: LINK_LAYOUT },\n { variant: 'link', size: ['sm', 'md', 'icon-sm', 'icon-md'], className: 'before:-inset-y-1' },\n { variant: 'link', size: ['lg', 'icon-lg'], className: 'before:-inset-y-1.5' },\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 iconEnd?: React.ReactNode;\n tooltip?: React.ReactNode;\n /** Side of the trigger the tooltip opens on. Defaults to `top`. */\n tooltipPosition?: 'top' | 'right' | 'bottom' | 'left';\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\ntype LinkRenderProps = { href?: string; to?: string; target?: string; className?: string };\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\nfunction adornmentIconSize(variant: ButtonVariant, size: ButtonSize): IconSize {\n if (variant === 'link') return 'sm';\n return iconSizeMap[size];\n}\n\nfunction ButtonAdornment({ slot, size, children }: { slot: string; size: IconSize; children: React.ReactNode }) {\n if (!children) return undefined;\n return (\n <Icon data-slot={slot} size={size}>\n {children}\n </Icon>\n );\n}\n\nfunction ButtonLabel({ variant, children }: { variant: ButtonVariant; children: React.ReactNode }) {\n if (variant !== 'link') return children;\n return (\n <span data-slot=\"button-label\" className={LINK_LABEL}>\n {children}\n </span>\n );\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 iconEnd,\n tooltip,\n tooltipPosition,\n 'aria-label': ariaLabelProp,\n type,\n ...props\n },\n ref,\n ) => {\n const iconMode = variant !== 'link' && isIconButtonSize(size);\n const resolvedSize: ButtonSize = size ?? 'md';\n const resolvedVariant: ButtonVariant = variant ?? 'default';\n const isLabelless = !iconMode && isIconOnly(children);\n const adornmentSize = adornmentIconSize(resolvedVariant, resolvedSize);\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 <ButtonAdornment slot=\"button-icon\" size={adornmentSize}>\n {icon}\n </ButtonAdornment>\n <ButtonLabel variant={resolvedVariant}>{children}</ButtonLabel>\n <ButtonAdornment slot=\"button-icon-end\" size={adornmentSize}>\n {iconEnd}\n </ButtonAdornment>\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 }), isLabelless && LABELLESS_SVG, 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 isLinkVariant = resolvedVariant === 'link';\n const linkHref = href ?? to;\n const linkRenderProps: LinkRenderProps = {\n ...(linkHref === undefined ? null : { href: linkHref }),\n ...(target === undefined ? null : { target }),\n };\n const renderedLink =\n React.isValidElement(render) && isLinkElement(render)\n ? render\n : isLinkVariant\n ? React.createElement('a', linkRenderProps)\n : 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 ...(isLinkVariant ? null : { href: disabledHref }),\n ...(isLinkVariant ? null : { 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 side={tooltipPosition}>{tooltip}</TooltipContent>\n </Tooltip>\n );\n }\n\n return button;\n },\n);\n\nButton.displayName = 'Button';\n"],"names":["cn","iconSizeClasses","cva","controlStateColorTransition","sharedFormElementDisabledStyle","controlFocusBorderVisible","raisedControlSurfaceStyle","focusRingOffset","focusRing","controlSizeClasses","controlHeight","jsx","Icon","tooltip","jsxs","Fragment","button","BaseButton","Tooltip","TooltipTrigger","TooltipContent"],"mappings":"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"}
|
|
@@ -7,19 +7,19 @@ import { Icon } from './icons/Icon.es.js';
|
|
|
7
7
|
import { iconSizeClasses } from './icons/icon-size-classes.es.js';
|
|
8
8
|
import { controlHeight, controlSizeClasses } from './primitives/control-size.es.js';
|
|
9
9
|
import { raisedControlSurfaceStyle, controlFocusBorderVisible, sharedFormElementDisabledStyle } from './primitives/form-element.es.js';
|
|
10
|
-
import { focusRingOffset, controlStateColorTransition } from './primitives/transitions.es.js';
|
|
10
|
+
import { focusRingOffset, focusRing, controlStateColorTransition } from './primitives/transitions.es.js';
|
|
11
11
|
import { c as cn } from './cn-CQUhN5Jx.js';
|
|
12
12
|
|
|
13
13
|
const TEXT_MODE_ADORNMENTS = cn(
|
|
14
|
-
"
|
|
15
|
-
"[
|
|
16
|
-
"[
|
|
17
|
-
"[&>svg]:mx-[-.3em]"
|
|
14
|
+
"rounded-full px-(--button-px)",
|
|
15
|
+
"has-[>[data-slot=button-icon]]:pl-[calc(var(--button-px)-2px)] has-[>svg]:pl-[calc(var(--button-px)-2px)]",
|
|
16
|
+
"has-[>[data-slot=button-icon-end]]:pr-[calc(var(--button-px)-2px)]"
|
|
18
17
|
);
|
|
18
|
+
const LABELLESS_SVG = "has-[>svg]:pr-[calc(var(--button-px)-2px)]";
|
|
19
19
|
const LINK_LAYOUT = cn(
|
|
20
20
|
"relative size-auto gap-1 rounded-xs px-0 text-label",
|
|
21
21
|
"before:absolute before:-inset-x-2",
|
|
22
|
-
"[
|
|
22
|
+
"has-[>[data-slot=button-icon-end]]:pr-0 has-[>[data-slot=button-icon]]:pl-0 has-[>svg]:pl-0"
|
|
23
23
|
);
|
|
24
24
|
const LINK_LABEL = cn(
|
|
25
25
|
"relative inline-flex items-center gap-1",
|
|
@@ -75,6 +75,13 @@ const buttonVariants = cva(
|
|
|
75
75
|
"border border-transparent bg-transparent text-muted-foreground not-disabled:hover:bg-fill-subtle not-disabled:hover:text-foreground not-disabled:active:bg-fill",
|
|
76
76
|
"disabled:bg-transparent aria-disabled:bg-transparent"
|
|
77
77
|
),
|
|
78
|
+
// A persistent neutral fill for selected controls. Match default's borderless
|
|
79
|
+
// box so switching between the raised and subtle surfaces keeps labels in place.
|
|
80
|
+
subtle: cn(
|
|
81
|
+
"border-0 bg-fill-hover text-foreground not-disabled:hover:bg-fill-hover not-disabled:active:bg-fill",
|
|
82
|
+
focusRing,
|
|
83
|
+
"disabled:bg-transparent aria-disabled:bg-transparent"
|
|
84
|
+
),
|
|
78
85
|
link: cn(
|
|
79
86
|
"border-0 bg-transparent text-muted-foreground not-disabled:hover:text-foreground",
|
|
80
87
|
"not-disabled:hover:[&>[data-slot=button-label]]:after:scale-x-100 not-disabled:hover:[&>[data-slot=button-label]]:after:duration-normal",
|
|
@@ -83,9 +90,9 @@ const buttonVariants = cva(
|
|
|
83
90
|
)
|
|
84
91
|
},
|
|
85
92
|
size: {
|
|
86
|
-
sm: cn(controlSizeClasses.sm, iconSizeClasses.sm, "
|
|
87
|
-
md: cn(controlSizeClasses.md, iconSizeClasses.md, "
|
|
88
|
-
lg: cn(controlSizeClasses.lg, iconSizeClasses.lg, "
|
|
93
|
+
sm: cn(controlSizeClasses.sm, iconSizeClasses.sm, "gap-1 [--button-px:.9em]", TEXT_MODE_ADORNMENTS),
|
|
94
|
+
md: cn(controlSizeClasses.md, iconSizeClasses.md, "gap-1.5 [--button-px:.9em]", TEXT_MODE_ADORNMENTS),
|
|
95
|
+
lg: cn(controlSizeClasses.lg, iconSizeClasses.lg, "gap-1.5 [--button-px:1em]", TEXT_MODE_ADORNMENTS),
|
|
89
96
|
// Icon sizes: square dimensions, fully rounded → circle. Active state inherits from variant
|
|
90
97
|
// so icon-mode and text-mode use the same press feedback. The glyph is sized by the `Icon`
|
|
91
98
|
// wrapper the component puts around an icon-mode child, keyed off the same scale.
|
|
@@ -198,7 +205,7 @@ const Button = React__default.forwardRef(
|
|
|
198
205
|
// Icon-mode is a square: a group that overrides the rung has to move the width with
|
|
199
206
|
// the height or the circle turns into a pill (see buttons-group.css).
|
|
200
207
|
"data-shape": iconMode ? "icon" : void 0,
|
|
201
|
-
className: cn(buttonVariants({ variant, size: resolvedSize }), className),
|
|
208
|
+
className: cn(buttonVariants({ variant, size: resolvedSize }), isLabelless && LABELLESS_SVG, className),
|
|
202
209
|
...props
|
|
203
210
|
};
|
|
204
211
|
const LegacyComponent = render ? void 0 : asProp;
|
|
@@ -248,4 +255,4 @@ const Button = React__default.forwardRef(
|
|
|
248
255
|
Button.displayName = "Button";
|
|
249
256
|
|
|
250
257
|
export { Button as B, buttonVariants as b, isIconButtonSize as i };
|
|
251
|
-
//# sourceMappingURL=Button-
|
|
258
|
+
//# sourceMappingURL=Button-D8a5EWJ5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button-D8a5EWJ5.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 } from '@/ds/icons/icon-size-classes';\nimport 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, focusRing, focusRingOffset } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\n// Text-mode buttons are pills. Each size sets `--button-px`, the label's side padding. The\n// icon side gets 2px less, because a glyph draws inside its box: the icon then reads as far\n// from the edge as the label does (shadcn's Button uses the same 2px step).\n// - `[data-slot=button-icon(-end)]`: the `<Icon>` wrappers the `icon` / `iconEnd` props render.\n// - `>svg`: a bare SVG passed as a leading child. A label-less one (e.g. CopyButton) also gets\n// the right side from `LABELLESS_SVG`.\n// Icon-mode sizes skip this: they are fixed squares with their own `rounded-full`.\nconst TEXT_MODE_ADORNMENTS = cn(\n 'rounded-full px-(--button-px)',\n 'has-[>[data-slot=button-icon]]:pl-[calc(var(--button-px)-2px)] has-[>svg]:pl-[calc(var(--button-px)-2px)]',\n 'has-[>[data-slot=button-icon-end]]:pr-[calc(var(--button-px)-2px)]',\n);\n\nconst LABELLESS_SVG = 'has-[>svg]:pr-[calc(var(--button-px)-2px)]';\n\nconst LINK_LAYOUT = cn(\n 'relative size-auto gap-1 rounded-xs px-0 text-label',\n 'before:absolute before:-inset-x-2',\n 'has-[>[data-slot=button-icon-end]]:pr-0 has-[>[data-slot=button-icon]]:pl-0 has-[>svg]:pl-0',\n);\n\nconst LINK_LABEL = cn(\n 'relative inline-flex items-center gap-1',\n iconSizeClasses.sm,\n '[&>svg]:shrink-0',\n 'after:absolute after:inset-x-0 after:bottom-0 after:h-px after:origin-left after:scale-x-0 after:bg-current',\n 'after:transition-transform after:duration-fast after:ease-out-custom motion-reduce:after:transition-none',\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 // A persistent neutral fill for selected controls. Match default's borderless\n // box so switching between the raised and subtle surfaces keeps labels in place.\n subtle: cn(\n 'border-0 bg-fill-hover text-foreground not-disabled:hover:bg-fill-hover not-disabled:active:bg-fill',\n focusRing,\n 'disabled:bg-transparent aria-disabled:bg-transparent',\n ),\n link: cn(\n 'border-0 bg-transparent text-muted-foreground not-disabled:hover:text-foreground',\n 'not-disabled:hover:[&>[data-slot=button-label]]:after:scale-x-100 not-disabled:hover:[&>[data-slot=button-label]]:after:duration-normal',\n focusRingOffset,\n 'disabled:text-placeholder aria-disabled:text-placeholder',\n ),\n },\n size: {\n sm: cn(controlSizeClasses.sm, iconSizeClasses.sm, 'gap-1 [--button-px:.9em]', TEXT_MODE_ADORNMENTS),\n md: cn(controlSizeClasses.md, iconSizeClasses.md, 'gap-1.5 [--button-px:.9em]', TEXT_MODE_ADORNMENTS),\n lg: cn(controlSizeClasses.lg, iconSizeClasses.lg, 'gap-1.5 [--button-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 compoundVariants: [\n { variant: 'link', className: LINK_LAYOUT },\n { variant: 'link', size: ['sm', 'md', 'icon-sm', 'icon-md'], className: 'before:-inset-y-1' },\n { variant: 'link', size: ['lg', 'icon-lg'], className: 'before:-inset-y-1.5' },\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 iconEnd?: React.ReactNode;\n tooltip?: React.ReactNode;\n /** Side of the trigger the tooltip opens on. Defaults to `top`. */\n tooltipPosition?: 'top' | 'right' | 'bottom' | 'left';\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\ntype LinkRenderProps = { href?: string; to?: string; target?: string; className?: string };\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\nfunction adornmentIconSize(variant: ButtonVariant, size: ButtonSize): IconSize {\n if (variant === 'link') return 'sm';\n return iconSizeMap[size];\n}\n\nfunction ButtonAdornment({ slot, size, children }: { slot: string; size: IconSize; children: React.ReactNode }) {\n if (!children) return undefined;\n return (\n <Icon data-slot={slot} size={size}>\n {children}\n </Icon>\n );\n}\n\nfunction ButtonLabel({ variant, children }: { variant: ButtonVariant; children: React.ReactNode }) {\n if (variant !== 'link') return children;\n return (\n <span data-slot=\"button-label\" className={LINK_LABEL}>\n {children}\n </span>\n );\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 iconEnd,\n tooltip,\n tooltipPosition,\n 'aria-label': ariaLabelProp,\n type,\n ...props\n },\n ref,\n ) => {\n const iconMode = variant !== 'link' && isIconButtonSize(size);\n const resolvedSize: ButtonSize = size ?? 'md';\n const resolvedVariant: ButtonVariant = variant ?? 'default';\n const isLabelless = !iconMode && isIconOnly(children);\n const adornmentSize = adornmentIconSize(resolvedVariant, resolvedSize);\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 <ButtonAdornment slot=\"button-icon\" size={adornmentSize}>\n {icon}\n </ButtonAdornment>\n <ButtonLabel variant={resolvedVariant}>{children}</ButtonLabel>\n <ButtonAdornment slot=\"button-icon-end\" size={adornmentSize}>\n {iconEnd}\n </ButtonAdornment>\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 }), isLabelless && LABELLESS_SVG, 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 isLinkVariant = resolvedVariant === 'link';\n const linkHref = href ?? to;\n const linkRenderProps: LinkRenderProps = {\n ...(linkHref === undefined ? null : { href: linkHref }),\n ...(target === undefined ? null : { target }),\n };\n const renderedLink =\n React.isValidElement(render) && isLinkElement(render)\n ? render\n : isLinkVariant\n ? React.createElement('a', linkRenderProps)\n : 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 ...(isLinkVariant ? null : { href: disabledHref }),\n ...(isLinkVariant ? null : { 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 side={tooltipPosition}>{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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"}
|
|
@@ -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-D8a5EWJ5.js';
|
|
5
5
|
import { quietTextHover } from './primitives/typography.es.js';
|
|
6
6
|
import { c as cn } from './cn-CQUhN5Jx.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-C6JifxpQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorBoundary-DQPzT6am.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-C6JifxpQ.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":";;;;;;;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,SAAsB,MAAM,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,uBACE,GAAA;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,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,OAAA;AAAA,MACL,SAAA,EAAW,EAAA;AAAA,QACT,oDAAA;AAAA,QACA,WAAW,WAAA,GAAc,mCAAA;AAAA,QACzB;AAAA,OACF;AAAA,MAEA,QAAA,kBAAA,IAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,wCAAA;AAAA,YACA,WAAW,gBAAA,GAAmB;AAAA,WAChC;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,wGAAA;AAAA,kBACA,WACI,wBAAA,GACA;AAAA,iBACN;AAAA,gBAEA,8BAAC,aAAA,EAAA,EAAc;AAAA;AAAA,aACjB;AAAA,4BACA,GAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,iBAAA;AAAA,kBACA,WAAW,iBAAA,GAAoB;AAAA,iBACjC;AAAA,gBAEC,QAAA,EAAA,KAAA,IAAS;AAAA;AAAA,aACZ;AAAA,4BACA,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,EAAA,CAAG,uBAAA,EAAyB,WAAW,cAAA,GAAiB,WAAW,CAAA,EAC9E,QAAA,EAAA,WAAA,IAAe,qEAAA,EAClB,CAAA;AAAA,4BACA,GAAA;AAAA,cAAC,GAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,0EAAA;AAAA,kBACA,WAAW,WAAA,GAAc;AAAA,iBAC3B;AAAA,gBAEC,QAAA,EAAA,KAAA,CAAM;AAAA;AAAA,aACT;AAAA,4BACA,IAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,oDAAoD,QAAA,GAAW,MAAA,GAAS,MAAM,CAAA,EAC/F,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,MAAA,EAAA,EAAO,IAAA,kBAAM,GAAA,CAAC,SAAA,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,8BACA,GAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,sBAAO,SAAA,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,8BACA,GAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,sBAAO,GAAA,EAAA,EAAI,CAAA;AAAA,kBACX,MAAA,sBAAS,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,wBACE,SAAA,EAAA,EAAQ,SAAA,EAAW,GAAG,kBAAA,EAAoB,QAAA,GAAW,MAAA,GAAS,MAAM,CAAA,EACnE,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,aAAQ,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,cAAc,GAAG,QAAA,EAAA,oBAAA,EAAkB,CAAA;AAAA,8BACzF,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oHAAA,EACZ,QAAA,EAAA,KAAA,EACH;AAAA,aAAA,EACF,CAAA,GACE;AAAA;AAAA;AAAA;AACN;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -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-C4I05uT4.cjs');
|
|
7
7
|
const primitives_typography = require('./primitives/typography.cjs.js');
|
|
8
8
|
const utils_cn = require('./cn-DlOJCxrS.cjs');
|
|
9
9
|
|
|
@@ -180,4 +180,4 @@ function DefaultErrorFallback({
|
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
exports.ErrorBoundary = ErrorBoundary;
|
|
183
|
-
//# sourceMappingURL=ErrorBoundary-
|
|
183
|
+
//# sourceMappingURL=ErrorBoundary-DP1JqmTo.cjs.map
|