@mastra/playground-ui 51.3.2-alpha.0 → 51.4.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -0
- package/dist/Badge-CvgvWjuP.js +123 -0
- package/dist/Badge-CvgvWjuP.js.map +1 -0
- package/dist/Badge-uc0ydYdy.cjs +125 -0
- package/dist/Badge-uc0ydYdy.cjs.map +1 -0
- package/dist/{Button-vr_I4iME.js → Button-BsfLQEC6.js} +4 -4
- package/dist/{Button-vr_I4iME.js.map → Button-BsfLQEC6.js.map} +1 -1
- package/dist/{Button-DA5XLUon.cjs → Button-D10WB4vc.cjs} +4 -4
- package/dist/{Button-DA5XLUon.cjs.map → Button-D10WB4vc.cjs.map} +1 -1
- package/dist/{Card-BjFMX3pD.js → Card-CbNFrGXs.js} +3 -3
- package/dist/{Card-BjFMX3pD.js.map → Card-CbNFrGXs.js.map} +1 -1
- package/dist/{Card-WU2qkiHB.cjs → Card-ZR65FNl8.cjs} +3 -3
- package/dist/{Card-WU2qkiHB.cjs.map → Card-ZR65FNl8.cjs.map} +1 -1
- package/dist/{EmptyState-BLd-LJOA.js → EmptyState-CA1zVauT.js} +2 -2
- package/dist/{EmptyState-BLd-LJOA.js.map → EmptyState-CA1zVauT.js.map} +1 -1
- package/dist/{EmptyState-sff7IGrD.cjs → EmptyState-hauyLuHd.cjs} +2 -2
- package/dist/{EmptyState-sff7IGrD.cjs.map → EmptyState-hauyLuHd.cjs.map} +1 -1
- package/dist/{Notice-XR_HdGMF.js → Notice-DSUAUUYU.js} +3 -3
- package/dist/{Notice-XR_HdGMF.js.map → Notice-DSUAUUYU.js.map} +1 -1
- package/dist/{Notice-BoT3Qi4U.cjs → Notice-D_ji361h.cjs} +3 -3
- package/dist/{Notice-BoT3Qi4U.cjs.map → Notice-D_ji361h.cjs.map} +1 -1
- package/dist/{PermissionDenied-8otNeK_X.js → PermissionDenied-BqooKsXq.js} +2 -2
- package/dist/{PermissionDenied-8otNeK_X.js.map → PermissionDenied-BqooKsXq.js.map} +1 -1
- package/dist/{PermissionDenied-Dtre6Wn1.cjs → PermissionDenied-CJWG3Ieh.cjs} +2 -2
- package/dist/{PermissionDenied-Dtre6Wn1.cjs.map → PermissionDenied-CJWG3Ieh.cjs.map} +1 -1
- package/dist/{SessionExpired-h9yERVJz.cjs → SessionExpired-BB5hWYA2.cjs} +3 -3
- package/dist/{SessionExpired-h9yERVJz.cjs.map → SessionExpired-BB5hWYA2.cjs.map} +1 -1
- package/dist/{SessionExpired-sUz4q0gn.js → SessionExpired-BE9U7iZP.js} +3 -3
- package/dist/{SessionExpired-sUz4q0gn.js.map → SessionExpired-BE9U7iZP.js.map} +1 -1
- package/dist/{Txt-Df42XG5p.js → Txt-ByUf-9Ic.js} +2 -2
- package/dist/{Txt-Df42XG5p.js.map → Txt-ByUf-9Ic.js.map} +1 -1
- package/dist/{Txt-I5lK8zy7.cjs → Txt-D5Y_H2a0.cjs} +2 -2
- package/dist/{Txt-I5lK8zy7.cjs.map → Txt-D5Y_H2a0.cjs.map} +1 -1
- package/dist/{buttons-group-D01G8mAW.js → buttons-group-BjM12HPx.js} +3 -3
- package/dist/{buttons-group-D01G8mAW.js.map → buttons-group-BjM12HPx.js.map} +1 -1
- package/dist/{buttons-group-w9QHUGVh.cjs → buttons-group-Cn36DWYX.cjs} +3 -3
- package/dist/{buttons-group-w9QHUGVh.cjs.map → buttons-group-Cn36DWYX.cjs.map} +1 -1
- package/dist/{checkbox-VAUW92fg.js → checkbox-84QCxKJf.js} +2 -2
- package/dist/{checkbox-VAUW92fg.js.map → checkbox-84QCxKJf.js.map} +1 -1
- package/dist/{checkbox-CY9g_3ZS.cjs → checkbox-z-Yfud4v.cjs} +2 -2
- package/dist/{checkbox-CY9g_3ZS.cjs.map → checkbox-z-Yfud4v.cjs.map} +1 -1
- package/dist/{cn-BakJzhuv.js → cn-B4oPhFx9.js} +2 -2
- package/dist/{cn-BakJzhuv.js.map → cn-B4oPhFx9.js.map} +1 -1
- package/dist/{cn-vA5sWo9W.cjs → cn-DCPcv4xv.cjs} +2 -2
- package/dist/{cn-vA5sWo9W.cjs.map → cn-DCPcv4xv.cjs.map} +1 -1
- package/dist/{code-block-CqRQwJK9.js → code-block-CBJhDEeB.js} +6 -6
- package/dist/{code-block-CqRQwJK9.js.map → code-block-CBJhDEeB.js.map} +1 -1
- package/dist/{code-block-B1ObVVnF.cjs → code-block-fmv8bHoT.cjs} +6 -6
- package/dist/{code-block-B1ObVVnF.cjs.map → code-block-fmv8bHoT.cjs.map} +1 -1
- package/dist/{collapsible-CoBU143c.cjs → collapsible-CLPRijls.cjs} +2 -2
- package/dist/{collapsible-CoBU143c.cjs.map → collapsible-CLPRijls.cjs.map} +1 -1
- package/dist/{collapsible-D6MHpP1g.js → collapsible-igib7hFh.js} +2 -2
- package/dist/{collapsible-D6MHpP1g.js.map → collapsible-igib7hFh.js.map} +1 -1
- package/dist/{combobox-BO4NlbBt.cjs → combobox-BNAe7hQL.cjs} +4 -4
- package/dist/{combobox-BO4NlbBt.cjs.map → combobox-BNAe7hQL.cjs.map} +1 -1
- package/dist/{combobox-BRj_27N9.js → combobox-BWMi9Vvm.js} +4 -4
- package/dist/{combobox-BRj_27N9.js.map → combobox-BWMi9Vvm.js.map} +1 -1
- package/dist/{command-C24jGW8A.cjs → command-C2XK36se.cjs} +4 -4
- package/dist/{command-C24jGW8A.cjs.map → command-C2XK36se.cjs.map} +1 -1
- package/dist/{command-BB61PHOs.js → command-ehL7-lrV.js} +4 -4
- package/dist/{command-BB61PHOs.js.map → command-ehL7-lrV.js.map} +1 -1
- package/dist/components/AlertDialog.cjs.js +2 -2
- package/dist/components/AlertDialog.es.js +2 -2
- package/dist/components/Arrival.cjs.js +1 -1
- package/dist/components/Arrival.es.js +1 -1
- package/dist/components/Avatar.cjs.js +2 -2
- package/dist/components/Avatar.es.js +2 -2
- package/dist/components/Badge.cjs.js +1 -1
- package/dist/components/Badge.es.js +1 -1
- package/dist/components/BrandLoader.cjs.js +1 -1
- package/dist/components/BrandLoader.es.js +1 -1
- package/dist/components/Breadcrumb.cjs.js +1 -1
- package/dist/components/Breadcrumb.es.js +1 -1
- package/dist/components/Button.cjs.js +1 -1
- package/dist/components/Button.es.js +1 -1
- package/dist/components/ButtonsGroup.cjs.js +1 -1
- package/dist/components/ButtonsGroup.es.js +1 -1
- package/dist/components/Card.cjs.js +1 -1
- package/dist/components/Card.es.js +1 -1
- package/dist/components/ChatShell.cjs.js +2 -2
- package/dist/components/ChatShell.es.js +2 -2
- package/dist/components/Checkbox.cjs.js +1 -1
- package/dist/components/Checkbox.es.js +1 -1
- package/dist/components/ClampedText.cjs.js +3 -3
- package/dist/components/ClampedText.es.js +3 -3
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +3 -3
- package/dist/components/CodeEditor.es.js +3 -3
- package/dist/components/Collapsible.cjs.js +1 -1
- package/dist/components/Collapsible.es.js +1 -1
- package/dist/components/Columns.cjs.js +2 -2
- package/dist/components/Columns.es.js +2 -2
- package/dist/components/Combobox.cjs.js +1 -1
- package/dist/components/Combobox.es.js +1 -1
- package/dist/components/Command.cjs.js +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/CommandPalette.cjs.js +4 -4
- package/dist/components/CommandPalette.es.js +4 -4
- package/dist/components/Comment.cjs.js +4 -4
- package/dist/components/Comment.es.js +4 -4
- package/dist/components/Composer.cjs.js +2 -2
- package/dist/components/Composer.es.js +2 -2
- package/dist/components/ContextMenu.cjs.js +1 -1
- package/dist/components/ContextMenu.es.js +1 -1
- package/dist/components/CopyButton.cjs.js +1 -1
- package/dist/components/CopyButton.es.js +1 -1
- package/dist/components/DashboardCard.cjs.js +1 -1
- package/dist/components/DashboardCard.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +5 -5
- package/dist/components/DataDetailsPanel.es.js +5 -5
- package/dist/components/DataFilter.cjs.js +3 -3
- package/dist/components/DataFilter.es.js +3 -3
- package/dist/components/DataKeysAndValues.cjs.js +1 -1
- package/dist/components/DataKeysAndValues.es.js +1 -1
- package/dist/components/DataList.cjs.js +4 -4
- package/dist/components/DataList.es.js +4 -4
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +5 -5
- package/dist/components/DateRangeTimeline.es.js +5 -5
- package/dist/components/DateTimePicker.cjs.js +6 -6
- package/dist/components/DateTimePicker.es.js +6 -6
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +1 -1
- package/dist/components/Dialog.es.js +1 -1
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/DropdownMenu.cjs.js +1 -1
- package/dist/components/DropdownMenu.es.js +1 -1
- package/dist/components/EmptyState.cjs.js +1 -1
- package/dist/components/EmptyState.es.js +1 -1
- package/dist/components/Entity.cjs.js +2 -2
- package/dist/components/Entity.es.js +2 -2
- package/dist/components/EntityHeader.cjs.js +2 -2
- package/dist/components/EntityHeader.es.js +2 -2
- package/dist/components/Entry.cjs.js +1 -1
- package/dist/components/Entry.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +7 -7
- package/dist/components/EnvironmentVariablesEditor.es.js +7 -7
- package/dist/components/ErrorBoundary.cjs.js +2 -2
- package/dist/components/ErrorBoundary.es.js +2 -2
- package/dist/components/FormFieldBlocks.cjs.js +5 -5
- package/dist/components/FormFieldBlocks.es.js +5 -5
- package/dist/components/Header.cjs.js +2 -2
- package/dist/components/Header.es.js +2 -2
- package/dist/components/HorizontalBars.cjs.js +1 -1
- package/dist/components/HorizontalBars.es.js +1 -1
- package/dist/components/HoverCard.cjs.js +1 -1
- package/dist/components/HoverCard.es.js +1 -1
- package/dist/components/Input.cjs.js +1 -1
- package/dist/components/Input.es.js +1 -1
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/ItemList.cjs.js +60 -41
- package/dist/components/ItemList.cjs.js.map +1 -1
- package/dist/components/ItemList.es.js +59 -42
- package/dist/components/ItemList.es.js.map +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +5 -5
- package/dist/components/JSONSchemaForm.es.js +5 -5
- package/dist/components/Kbd.cjs.js +1 -1
- package/dist/components/Kbd.es.js +1 -1
- package/dist/components/KeyValueList.cjs.js +2 -2
- package/dist/components/KeyValueList.es.js +2 -2
- package/dist/components/Label.cjs.js +1 -1
- package/dist/components/Label.es.js +1 -1
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/Logo.cjs.js +1 -1
- package/dist/components/Logo.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +3 -2
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +3 -2
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/MainContent.cjs.js +1 -1
- package/dist/components/MainContent.es.js +1 -1
- package/dist/components/MainHeader.cjs.js +1 -1
- package/dist/components/MainHeader.es.js +1 -1
- package/dist/components/MainSidebar.cjs.js +5 -5
- package/dist/components/MainSidebar.es.js +5 -5
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/MessageScroller.cjs.js +1 -1
- package/dist/components/MessageScroller.es.js +1 -1
- package/dist/components/MetricsCard.cjs.js +1 -1
- package/dist/components/MetricsCard.es.js +1 -1
- package/dist/components/MetricsFlexGrid.cjs.js +1 -1
- package/dist/components/MetricsFlexGrid.es.js +1 -1
- package/dist/components/MetricsKpiCard.cjs.js +1 -1
- package/dist/components/MetricsKpiCard.es.js +1 -1
- package/dist/components/Notice.cjs.js +1 -1
- package/dist/components/Notice.es.js +1 -1
- package/dist/components/PageHeader.cjs.js +1 -1
- package/dist/components/PageHeader.es.js +1 -1
- package/dist/components/PageLayout.cjs.js +2 -2
- package/dist/components/PageLayout.es.js +2 -2
- package/dist/components/PendingIndicator.cjs.js +1 -1
- package/dist/components/PendingIndicator.es.js +1 -1
- package/dist/components/PermissionDenied.cjs.js +1 -1
- package/dist/components/PermissionDenied.es.js +1 -1
- package/dist/components/Popover.cjs.js +1 -1
- package/dist/components/Popover.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +2 -2
- package/dist/components/PrevNextNav.es.js +2 -2
- package/dist/components/PropertyFilter.cjs.js +5 -5
- package/dist/components/PropertyFilter.es.js +6 -6
- package/dist/components/RadioGroup.cjs.js +1 -1
- package/dist/components/RadioGroup.es.js +1 -1
- package/dist/components/RuleBuilder.cjs.js +4 -4
- package/dist/components/RuleBuilder.es.js +4 -4
- package/dist/components/SankeyChart.cjs.js +1 -1
- package/dist/components/SankeyChart.es.js +1 -1
- package/dist/components/ScatterPlotChart.cjs.js +2 -2
- package/dist/components/ScatterPlotChart.es.js +2 -2
- package/dist/components/ScrollArea.cjs.js +1 -1
- package/dist/components/ScrollArea.es.js +1 -1
- package/dist/components/Section.cjs.js +1 -1
- package/dist/components/Section.es.js +1 -1
- package/dist/components/SectionCard.cjs.js +1 -1
- package/dist/components/SectionCard.es.js +1 -1
- package/dist/components/Sections.cjs.js +1 -1
- package/dist/components/Sections.es.js +1 -1
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SessionExpired.cjs.js +1 -1
- package/dist/components/SessionExpired.es.js +1 -1
- package/dist/components/SettingsRow.cjs.js +3 -3
- package/dist/components/SettingsRow.es.js +3 -3
- package/dist/components/Shimmer.cjs.js +1 -1
- package/dist/components/Shimmer.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +6 -6
- package/dist/components/SideDialog.es.js +6 -6
- package/dist/components/Skeleton.cjs.js +1 -1
- package/dist/components/Skeleton.es.js +1 -1
- package/dist/components/Slider.cjs.js +1 -1
- package/dist/components/Slider.es.js +1 -1
- package/dist/components/Spinner.cjs.js +1 -1
- package/dist/components/Spinner.es.js +1 -1
- package/dist/components/Steps.cjs.js +2 -2
- package/dist/components/Steps.es.js +2 -2
- package/dist/components/Switch.cjs.js +1 -1
- package/dist/components/Switch.es.js +1 -1
- package/dist/components/Table.cjs.js +2 -2
- package/dist/components/Table.es.js +2 -2
- package/dist/components/Tabs.cjs.js +3 -3
- package/dist/components/Tabs.es.js +3 -3
- package/dist/components/Text.cjs.js +1 -1
- package/dist/components/Text.es.js +1 -1
- package/dist/components/Textarea.cjs.js +2 -2
- package/dist/components/Textarea.es.js +2 -2
- package/dist/components/ThemeToggle.cjs.js +1 -1
- package/dist/components/ThemeToggle.es.js +1 -1
- package/dist/components/ThreadList.cjs.js +3 -3
- package/dist/components/ThreadList.es.js +3 -3
- package/dist/components/ThreadRail.cjs.js +2 -2
- package/dist/components/ThreadRail.es.js +2 -2
- package/dist/components/Toaster.cjs.js +1 -1
- package/dist/components/Toaster.es.js +1 -1
- package/dist/components/TokenBudget.cjs.js +1 -1
- package/dist/components/TokenBudget.es.js +1 -1
- package/dist/components/Tooltip.cjs.js +1 -1
- package/dist/components/Tooltip.es.js +1 -1
- package/dist/components/Tree.cjs.js +2 -2
- package/dist/components/Tree.es.js +2 -2
- package/dist/components/Truncate.cjs.js +4 -4
- package/dist/components/Truncate.es.js +4 -4
- package/dist/components/Txt.cjs.js +1 -1
- package/dist/components/Txt.es.js +1 -1
- package/dist/components/ai/ask-user.cjs.js +6 -6
- package/dist/components/ai/ask-user.cjs.js.map +1 -1
- package/dist/components/ai/ask-user.es.js +6 -6
- package/dist/components/ai/ask-user.es.js.map +1 -1
- package/dist/components/ai/plan.cjs.js +7 -7
- package/dist/components/ai/plan.cjs.js.map +1 -1
- package/dist/components/ai/plan.es.js +7 -7
- package/dist/components/ai/plan.es.js.map +1 -1
- package/dist/components/ai/task-list.cjs.js +4 -4
- package/dist/components/ai/task-list.es.js +4 -4
- package/dist/components/ai/tool-call.cjs.js +5 -5
- package/dist/components/ai/tool-call.es.js +5 -5
- package/dist/{copy-button-BzjCqjVh.js → copy-button-BHmcGzIz.js} +3 -3
- package/dist/{copy-button-BzjCqjVh.js.map → copy-button-BHmcGzIz.js.map} +1 -1
- package/dist/{copy-button-D1BF_G8A.cjs → copy-button-BtnbaMvl.cjs} +3 -3
- package/dist/{copy-button-D1BF_G8A.cjs.map → copy-button-BtnbaMvl.cjs.map} +1 -1
- package/dist/{dashboard-card-BLg5Mx2f.js → dashboard-card-CMvUVSPF.js} +2 -2
- package/dist/{dashboard-card-BLg5Mx2f.js.map → dashboard-card-CMvUVSPF.js.map} +1 -1
- package/dist/{dashboard-card-DZiXx3hd.cjs → dashboard-card-DpHFjsWJ.cjs} +2 -2
- package/dist/{dashboard-card-DZiXx3hd.cjs.map → dashboard-card-DpHFjsWJ.cjs.map} +1 -1
- package/dist/{data-code-section-CSt_ZuUP.js → data-code-section-DN2yPgEz.js} +7 -7
- package/dist/{data-code-section-CSt_ZuUP.js.map → data-code-section-DN2yPgEz.js.map} +1 -1
- package/dist/{data-code-section-C3ZRkULz.cjs → data-code-section-Dn9smaz4.cjs} +7 -7
- package/dist/{data-code-section-C3ZRkULz.cjs.map → data-code-section-Dn9smaz4.cjs.map} +1 -1
- package/dist/{data-keys-and-values-D7lti5DL.cjs → data-keys-and-values-D1M0xPEy.cjs} +3 -3
- package/dist/{data-keys-and-values-D7lti5DL.cjs.map → data-keys-and-values-D1M0xPEy.cjs.map} +1 -1
- package/dist/{data-keys-and-values-CHJVC-r5.js → data-keys-and-values-PKPzfxve.js} +3 -3
- package/dist/{data-keys-and-values-CHJVC-r5.js.map → data-keys-and-values-PKPzfxve.js.map} +1 -1
- package/dist/{data-list-CCacNODd.cjs → data-list-CB-W-syo.cjs} +4 -4
- package/dist/{data-list-CCacNODd.cjs.map → data-list-CB-W-syo.cjs.map} +1 -1
- package/dist/{data-list-BOI8fRuk.js → data-list-DX6y3EFQ.js} +4 -4
- package/dist/{data-list-BOI8fRuk.js.map → data-list-DX6y3EFQ.js.map} +1 -1
- package/dist/{data-list-skeleton-DDO_OE14.js → data-list-skeleton-C2R2CO9G.js} +3 -3
- package/dist/{data-list-skeleton-DDO_OE14.js.map → data-list-skeleton-C2R2CO9G.js.map} +1 -1
- package/dist/{data-list-skeleton-BHBSIQHN.cjs → data-list-skeleton-hTX1b2Au.cjs} +3 -3
- package/dist/{data-list-skeleton-BHBSIQHN.cjs.map → data-list-skeleton-hTX1b2Au.cjs.map} +1 -1
- package/dist/{data-list-top-cell-BOXO5s7I.cjs → data-list-top-cell-B4H5BBGd.cjs} +11 -6
- package/dist/data-list-top-cell-B4H5BBGd.cjs.map +1 -0
- package/dist/{data-list-top-cell-CC5jjv5s.js → data-list-top-cell-CDYczhpP.js} +11 -7
- package/dist/data-list-top-cell-CDYczhpP.js.map +1 -0
- package/dist/{data-panel-DJpAfEsG.js → data-panel-2Da0Utgy.js} +6 -6
- package/dist/{data-panel-DJpAfEsG.js.map → data-panel-2Da0Utgy.js.map} +1 -1
- package/dist/{data-panel-DHNc5Y4L.cjs → data-panel-DEatwExN.cjs} +6 -6
- package/dist/{data-panel-DHNc5Y4L.cjs.map → data-panel-DEatwExN.cjs.map} +1 -1
- package/dist/{date-picker-DrWmUawi.cjs → date-picker-9bOZ7B2w.cjs} +2 -2
- package/dist/{date-picker-DrWmUawi.cjs.map → date-picker-9bOZ7B2w.cjs.map} +1 -1
- package/dist/{date-picker-BpKciwOX.js → date-picker-BWSg3e9G.js} +2 -2
- package/dist/{date-picker-BpKciwOX.js.map → date-picker-BWSg3e9G.js.map} +1 -1
- package/dist/{date-time-range-picker-jTRBzZDz.js → date-time-range-picker-Bz6tD9as.js} +7 -7
- package/dist/{date-time-range-picker-jTRBzZDz.js.map → date-time-range-picker-Bz6tD9as.js.map} +1 -1
- package/dist/{date-time-range-picker-BFDT_ERx.cjs → date-time-range-picker-j9nSS2HM.cjs} +7 -7
- package/dist/{date-time-range-picker-BFDT_ERx.cjs.map → date-time-range-picker-j9nSS2HM.cjs.map} +1 -1
- package/dist/{dialog-DidyN-Jy.js → dialog-CESxLg8S.js} +3 -3
- package/dist/{dialog-DidyN-Jy.js.map → dialog-CESxLg8S.js.map} +1 -1
- package/dist/{dialog-DecmYFeJ.cjs → dialog-K0q0KOOW.cjs} +3 -3
- package/dist/{dialog-DecmYFeJ.cjs.map → dialog-K0q0KOOW.cjs.map} +1 -1
- package/dist/domains/logs/components/log-details-view.cjs.js +4 -4
- package/dist/domains/logs/components/log-details-view.es.js +4 -4
- package/dist/domains/logs/components/logs-error-content.cjs.js +3 -3
- package/dist/domains/logs/components/logs-error-content.es.js +3 -3
- package/dist/domains/logs/components/logs-layout.cjs.js +1 -1
- package/dist/domains/logs/components/logs-layout.es.js +1 -1
- package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
- package/dist/domains/logs/components/logs-list-view.es.js +2 -2
- package/dist/domains/logs/components/logs-toolbar.cjs.js +2 -2
- package/dist/domains/logs/components/logs-toolbar.es.js +2 -2
- package/dist/domains/logs/components/no-logs-info.cjs.js +2 -2
- package/dist/domains/logs/components/no-logs-info.es.js +2 -2
- package/dist/domains/logs/hooks/use-logs-filter-persistence.cjs.js +1 -1
- package/dist/domains/logs/hooks/use-logs-filter-persistence.es.js +1 -1
- package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +3 -3
- package/dist/domains/memory/components/memory-studio-panel.es.js +3 -3
- package/dist/domains/memory/components/observation-detail-view.cjs.js +4 -4
- package/dist/domains/memory/components/observation-detail-view.es.js +4 -4
- package/dist/domains/memory/components/thread-context-progress.cjs.js +1 -1
- package/dist/domains/memory/components/thread-context-progress.es.js +1 -1
- package/dist/domains/metrics/components/bar-list.cjs.js +1 -1
- package/dist/domains/metrics/components/bar-list.es.js +1 -1
- package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
- package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
- package/dist/domains/metrics/components/latency-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/latency-card-view.es.js +4 -4
- package/dist/domains/metrics/components/memory-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/memory-card-view.es.js +5 -5
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
- package/dist/domains/metrics/components/scores-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/scores-card-view.es.js +5 -5
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +5 -5
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +4 -4
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +5 -5
- package/dist/domains/traces/components/format-hierarchical-spans.cjs.js +2 -1
- package/dist/domains/traces/components/format-hierarchical-spans.cjs.js.map +1 -1
- package/dist/domains/traces/components/format-hierarchical-spans.es.js +2 -1
- package/dist/domains/traces/components/format-hierarchical-spans.es.js.map +1 -1
- package/dist/domains/traces/components/no-traces-info.cjs.js +1 -1
- package/dist/domains/traces/components/no-traces-info.es.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +7 -7
- package/dist/domains/traces/components/span-data-panel-view.es.js +7 -7
- package/dist/domains/traces/components/span-token-usage.cjs.js +2 -2
- package/dist/domains/traces/components/span-token-usage.es.js +2 -2
- package/dist/domains/traces/components/timeline-expand-col.cjs.js +2 -2
- package/dist/domains/traces/components/timeline-expand-col.es.js +2 -2
- package/dist/domains/traces/components/timeline-name-col.cjs.js +11 -2
- package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-name-col.es.js +11 -2
- package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-structure-sign.cjs.js +1 -1
- package/dist/domains/traces/components/timeline-structure-sign.es.js +1 -1
- package/dist/domains/traces/components/timeline-timing-col.cjs.js +3 -3
- package/dist/domains/traces/components/timeline-timing-col.es.js +3 -3
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +5 -5
- package/dist/domains/traces/components/trace-columns-menu.es.js +5 -5
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +81 -77
- 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 +82 -78
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-keys-and-values.cjs.js +2 -2
- package/dist/domains/traces/components/trace-keys-and-values.es.js +2 -2
- package/dist/domains/traces/components/trace-status-value.cjs.js +1 -1
- package/dist/domains/traces/components/trace-status-value.es.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +103 -0
- package/dist/domains/traces/components/trace-summary-description.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-summary-description.d.ts +2 -0
- package/dist/domains/traces/components/trace-summary-description.es.js +99 -0
- package/dist/domains/traces/components/trace-summary-description.es.js.map +1 -0
- package/dist/domains/traces/components/trace-timeline.cjs.js +2 -2
- package/dist/domains/traces/components/trace-timeline.es.js +2 -2
- package/dist/domains/traces/components/traces-error-content.cjs.js +2 -2
- package/dist/domains/traces/components/traces-error-content.es.js +2 -2
- package/dist/domains/traces/components/traces-layout.cjs.js +1 -1
- package/dist/domains/traces/components/traces-layout.es.js +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +2 -2
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js +2 -2
- package/dist/domains/traces/components/traces-list-view.cjs.js +8 -10
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +8 -10
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
- package/dist/domains/traces/components/traces-toolbar.cjs.js +2 -2
- package/dist/domains/traces/components/traces-toolbar.es.js +2 -2
- package/dist/domains/traces/hooks/use-download-trace-json.cjs.js +1 -1
- package/dist/domains/traces/hooks/use-download-trace-json.es.js +1 -1
- package/dist/domains/traces/hooks/use-trace-filter-persistence.cjs.js +1 -1
- package/dist/domains/traces/hooks/use-trace-filter-persistence.es.js +1 -1
- package/dist/domains/traces/hooks/use-trace-search.cjs.js +10 -4
- package/dist/domains/traces/hooks/use-trace-search.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-search.es.js +10 -4
- package/dist/domains/traces/hooks/use-trace-search.es.js.map +1 -1
- package/dist/domains/traces/trace-list-columns.cjs.js +1 -1
- package/dist/domains/traces/trace-list-columns.cjs.js.map +1 -1
- package/dist/domains/traces/trace-list-columns.es.js +1 -1
- package/dist/domains/traces/trace-list-columns.es.js.map +1 -1
- package/dist/domains/traces/types.cjs.js.map +1 -1
- package/dist/domains/traces/types.es.js.map +1 -1
- package/dist/{drawer-CjRnB5XK.js → drawer-4U7L_dHA.js} +4 -4
- package/dist/{drawer-CjRnB5XK.js.map → drawer-4U7L_dHA.js.map} +1 -1
- package/dist/{drawer-CnzI7hP8.cjs → drawer-mE9CCzMI.cjs} +4 -4
- package/dist/{drawer-CnzI7hP8.cjs.map → drawer-mE9CCzMI.cjs.map} +1 -1
- package/dist/{dropdown-menu-BphqMR3z.js → dropdown-menu-BYTyEuSa.js} +2 -2
- package/dist/{dropdown-menu-BphqMR3z.js.map → dropdown-menu-BYTyEuSa.js.map} +1 -1
- package/dist/{dropdown-menu-kVO4guHl.cjs → dropdown-menu-qsDhHNES.cjs} +2 -2
- package/dist/{dropdown-menu-kVO4guHl.cjs.map → dropdown-menu-qsDhHNES.cjs.map} +1 -1
- package/dist/ee/signals/components/signals-empty-state.cjs.js +2 -2
- package/dist/ee/signals/components/signals-empty-state.es.js +2 -2
- package/dist/ee/signals/examples-pager.cjs.js +1 -1
- package/dist/ee/signals/examples-pager.es.js +1 -1
- package/dist/ee/signals/flow-card.cjs.js +2 -2
- package/dist/ee/signals/flow-card.es.js +2 -2
- package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
- package/dist/ee/signals/noise-detail-panel.es.js +1 -1
- package/dist/ee/signals/sankey-signals.cjs.js +1 -1
- package/dist/ee/signals/sankey-signals.es.js +1 -1
- package/dist/ee/signals/signal-delta-column.cjs.js +1 -1
- package/dist/ee/signals/signal-delta-column.es.js +1 -1
- package/dist/ee/signals/signal-lifelines.cjs.js +1 -1
- package/dist/ee/signals/signal-lifelines.es.js +1 -1
- package/dist/ee/signals/signals-error-state.cjs.js +1 -1
- package/dist/ee/signals/signals-error-state.es.js +1 -1
- package/dist/ee/signals/signals-loading-skeleton.cjs.js +1 -1
- package/dist/ee/signals/signals-loading-skeleton.es.js +1 -1
- package/dist/ee/signals/snapshot-timeline.cjs.js +1 -1
- package/dist/ee/signals/snapshot-timeline.es.js +1 -1
- package/dist/ee/signals/sortable-signal-headers.cjs.js +1 -1
- package/dist/ee/signals/sortable-signal-headers.es.js +1 -1
- package/dist/ee/signals/theme-detail-panel.cjs.js +2 -2
- package/dist/ee/signals/theme-detail-panel.es.js +2 -2
- package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
- package/dist/ee/signals/theme-filter-banner.es.js +1 -1
- package/dist/ee/signals/theme-trend-chart.cjs.js +1 -1
- package/dist/ee/signals/theme-trend-chart.es.js +1 -1
- package/dist/ee/signals/trace-insight-view.cjs.js +1 -1
- package/dist/ee/signals/trace-insight-view.es.js +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.es.js +1 -1
- package/dist/ee/signals/view-mode-tab.cjs.js +2 -2
- package/dist/ee/signals/view-mode-tab.es.js +2 -2
- package/dist/ee/topics/components/topic-trace-details-panel.cjs.js +1 -1
- package/dist/ee/topics/components/topic-trace-details-panel.es.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +3 -3
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
- package/dist/{field-block-B63CpA4d.js → field-block-DcGeY-_x.js} +2 -2
- package/dist/{field-block-B63CpA4d.js.map → field-block-DcGeY-_x.js.map} +1 -1
- package/dist/{field-block-BcTR08I7.cjs → field-block-Dr9fbwQx.cjs} +2 -2
- package/dist/{field-block-BcTR08I7.cjs.map → field-block-Dr9fbwQx.cjs.map} +1 -1
- package/dist/hooks/use-copy-to-clipboard.cjs.js +1 -1
- package/dist/hooks/use-copy-to-clipboard.es.js +1 -1
- package/dist/hooks/use-scroll-to-first-highlight.cjs.js +44 -0
- package/dist/hooks/use-scroll-to-first-highlight.cjs.js.map +1 -0
- package/dist/hooks/use-scroll-to-first-highlight.d.ts +2 -0
- package/dist/hooks/use-scroll-to-first-highlight.es.js +40 -0
- package/dist/hooks/use-scroll-to-first-highlight.es.js.map +1 -0
- package/dist/hooks/use-text-highlight.cjs.js +49 -2
- package/dist/hooks/use-text-highlight.cjs.js.map +1 -1
- package/dist/hooks/use-text-highlight.es.js +48 -3
- package/dist/hooks/use-text-highlight.es.js.map +1 -1
- package/dist/{horizontal-bars-CzZr7d01.js → horizontal-bars-3vH3FLj3.js} +4 -4
- package/dist/{horizontal-bars-CzZr7d01.js.map → horizontal-bars-3vH3FLj3.js.map} +1 -1
- package/dist/{horizontal-bars-DuS2yR1g.cjs → horizontal-bars-CV2XRu4w.cjs} +4 -4
- package/dist/{horizontal-bars-DuS2yR1g.cjs.map → horizontal-bars-CV2XRu4w.cjs.map} +1 -1
- package/dist/{hover-card-DeTykyEs.js → hover-card-D2SNBhOc.js} +2 -2
- package/dist/{hover-card-DeTykyEs.js.map → hover-card-D2SNBhOc.js.map} +1 -1
- package/dist/{hover-card-CxmZKcFK.cjs → hover-card-DWUrSO_0.cjs} +2 -2
- package/dist/{hover-card-CxmZKcFK.cjs.map → hover-card-DWUrSO_0.cjs.map} +1 -1
- package/dist/icons/Icon.cjs.js +1 -1
- package/dist/icons/Icon.es.js +1 -1
- package/dist/{index-C-Lt4Bx_.cjs → index-BRtrE4oe.cjs} +2 -2
- package/dist/{index-C-Lt4Bx_.cjs.map → index-BRtrE4oe.cjs.map} +1 -1
- package/dist/{index-CSm06eOE.js → index-DsNrjFJd.js} +2 -2
- package/dist/{index-CSm06eOE.js.map → index-DsNrjFJd.js.map} +1 -1
- package/dist/{input-0R-fQTCF.cjs → input-DBrWBeUp.cjs} +3 -3
- package/dist/{input-0R-fQTCF.cjs.map → input-DBrWBeUp.cjs.map} +1 -1
- package/dist/{input-DVZ0-3KP.js → input-DNjusDwY.js} +3 -3
- package/dist/{input-DVZ0-3KP.js.map → input-DNjusDwY.js.map} +1 -1
- package/dist/{input-group-U2f3A4Ya.js → input-group-Dma0MbUM.js} +4 -4
- package/dist/{input-group-U2f3A4Ya.js.map → input-group-Dma0MbUM.js.map} +1 -1
- package/dist/{input-group-4EQi2l7H.cjs → input-group-WDZR_aql.cjs} +4 -4
- package/dist/{input-group-4EQi2l7H.cjs.map → input-group-WDZR_aql.cjs.map} +1 -1
- package/dist/{kbd-Br7kdwaB.cjs → kbd-BjdgMhkv.cjs} +2 -2
- package/dist/{kbd-Br7kdwaB.cjs.map → kbd-BjdgMhkv.cjs.map} +1 -1
- package/dist/{kbd-DE0nj4DL.js → kbd-qWtehN82.js} +2 -2
- package/dist/{kbd-DE0nj4DL.js.map → kbd-qWtehN82.js.map} +1 -1
- package/dist/{label-B-UbxfJf.cjs → label-B9ERiuZb.cjs} +3 -3
- package/dist/{label-B-UbxfJf.cjs.map → label-B9ERiuZb.cjs.map} +1 -1
- package/dist/{label-WtU3xT6v.js → label-Um4lWyRe.js} +3 -3
- package/dist/{label-WtU3xT6v.js.map → label-Um4lWyRe.js.map} +1 -1
- package/dist/{logs-data-list-Xayqbjw4.cjs → logs-data-list-CTnwPG40.cjs} +3 -3
- package/dist/{logs-data-list-Xayqbjw4.cjs.map → logs-data-list-CTnwPG40.cjs.map} +1 -1
- package/dist/{logs-data-list-DRXJ89IZ.js → logs-data-list-btJapa0s.js} +3 -3
- package/dist/{logs-data-list-DRXJ89IZ.js.map → logs-data-list-btJapa0s.js.map} +1 -1
- package/dist/{markdown-renderer-BQugZq4m.cjs → markdown-renderer-DGIzNAQY.cjs} +3 -3
- package/dist/{markdown-renderer-BQugZq4m.cjs.map → markdown-renderer-DGIzNAQY.cjs.map} +1 -1
- package/dist/{markdown-renderer-LOqipQki.js → markdown-renderer-DiJBbnYG.js} +3 -3
- package/dist/{markdown-renderer-LOqipQki.js.map → markdown-renderer-DiJBbnYG.js.map} +1 -1
- package/dist/{message-scroller-CvRVVj5l.js → message-scroller-CjQIDqkD.js} +2 -2
- package/dist/{message-scroller-CvRVVj5l.js.map → message-scroller-CjQIDqkD.js.map} +1 -1
- package/dist/{message-scroller-4dCGKzxE.cjs → message-scroller-cYL2ILK8.cjs} +2 -2
- package/dist/{message-scroller-4dCGKzxE.cjs.map → message-scroller-cYL2ILK8.cjs.map} +1 -1
- package/dist/{metrics-card-DmbKNY3U.cjs → metrics-card-B8zgHlgB.cjs} +5 -5
- package/dist/{metrics-card-DmbKNY3U.cjs.map → metrics-card-B8zgHlgB.cjs.map} +1 -1
- package/dist/{metrics-card-C0lGcxb9.js → metrics-card-BKE1UzWh.js} +5 -5
- package/dist/{metrics-card-C0lGcxb9.js.map → metrics-card-BKE1UzWh.js.map} +1 -1
- package/dist/{metrics-kpi-card-tAReOFYk.cjs → metrics-kpi-card-BNxdBdLv.cjs} +4 -4
- package/dist/{metrics-kpi-card-tAReOFYk.cjs.map → metrics-kpi-card-BNxdBdLv.cjs.map} +1 -1
- package/dist/{metrics-kpi-card-AhIw9eyu.js → metrics-kpi-card-C7mzmlmC.js} +4 -4
- package/dist/{metrics-kpi-card-AhIw9eyu.js.map → metrics-kpi-card-C7mzmlmC.js.map} +1 -1
- package/dist/{popover-jPzCxZfK.cjs → popover-BPvIo79r.cjs} +2 -2
- package/dist/{popover-jPzCxZfK.cjs.map → popover-BPvIo79r.cjs.map} +1 -1
- package/dist/{popover-QZXIaRzP.js → popover-Be-ufAIL.js} +2 -2
- package/dist/{popover-QZXIaRzP.js.map → popover-Be-ufAIL.js.map} +1 -1
- package/dist/primitives/resize-handle-indicator.cjs.js +2 -2
- package/dist/primitives/resize-handle-indicator.es.js +2 -2
- package/dist/{property-filter-applied-BtepC7PL.js → property-filter-applied-CJ9uesO_.js} +10 -10
- package/dist/{property-filter-applied-BtepC7PL.js.map → property-filter-applied-CJ9uesO_.js.map} +1 -1
- package/dist/{property-filter-applied-DjrjP7iT.cjs → property-filter-applied-kARc8nf-.cjs} +10 -10
- package/dist/{property-filter-applied-DjrjP7iT.cjs.map → property-filter-applied-kARc8nf-.cjs.map} +1 -1
- package/dist/{radio-group-CrWQwXWA.js → radio-group-BxXbAXhN.js} +2 -2
- package/dist/{radio-group-CrWQwXWA.js.map → radio-group-BxXbAXhN.js.map} +1 -1
- package/dist/{radio-group-Dqz451dG.cjs → radio-group-DERRwj68.cjs} +2 -2
- package/dist/{radio-group-Dqz451dG.cjs.map → radio-group-DERRwj68.cjs.map} +1 -1
- package/dist/resize/collapsible-panel.cjs.js +1 -1
- package/dist/resize/collapsible-panel.es.js +1 -1
- package/dist/resize/panel-drawer.cjs.js +2 -2
- package/dist/resize/panel-drawer.es.js +2 -2
- package/dist/resize/panel-group.cjs.js +1 -1
- package/dist/resize/panel-group.es.js +1 -1
- package/dist/resize/panel-icon-button.cjs.js +1 -1
- package/dist/resize/panel-icon-button.es.js +1 -1
- package/dist/resize/separator.cjs.js +1 -1
- package/dist/resize/separator.es.js +1 -1
- package/dist/{sankey-chart-CYxUnjrO.cjs → sankey-chart-7we0p2Eb.cjs} +3 -3
- package/dist/{sankey-chart-CYxUnjrO.cjs.map → sankey-chart-7we0p2Eb.cjs.map} +1 -1
- package/dist/{sankey-chart-Bc7rzi5f.js → sankey-chart-QcxO2sZz.js} +3 -3
- package/dist/{sankey-chart-Bc7rzi5f.js.map → sankey-chart-QcxO2sZz.js.map} +1 -1
- package/dist/{scroll-area-DZrEuKjC.js → scroll-area-DVSQTnjk.js} +2 -2
- package/dist/{scroll-area-DZrEuKjC.js.map → scroll-area-DVSQTnjk.js.map} +1 -1
- package/dist/{scroll-area-Dv6QagXt.cjs → scroll-area-D_-TyC0c.cjs} +2 -2
- package/dist/{scroll-area-Dv6QagXt.cjs.map → scroll-area-D_-TyC0c.cjs.map} +1 -1
- package/dist/{search-field-block-CjCIzUhN.cjs → search-field-block-CiinIsub.cjs} +6 -6
- package/dist/{search-field-block-CjCIzUhN.cjs.map → search-field-block-CiinIsub.cjs.map} +1 -1
- package/dist/{search-field-block-DoNywsJC.js → search-field-block-D51aN1d9.js} +6 -6
- package/dist/{search-field-block-DoNywsJC.js.map → search-field-block-D51aN1d9.js.map} +1 -1
- package/dist/{section-CnLkFJwn.js → section-D963QL3h.js} +3 -3
- package/dist/{section-CnLkFJwn.js.map → section-D963QL3h.js.map} +1 -1
- package/dist/{section-CVHYJHNG.cjs → section-LbaBW2X3.cjs} +3 -3
- package/dist/{section-CVHYJHNG.cjs.map → section-LbaBW2X3.cjs.map} +1 -1
- package/dist/{select-lVCJp6aH.js → select-AvBDZffY.js} +3 -3
- package/dist/{select-lVCJp6aH.js.map → select-AvBDZffY.js.map} +1 -1
- package/dist/{select-X9SZeU80.cjs → select-C_FsCxA5.cjs} +3 -3
- package/dist/{select-X9SZeU80.cjs.map → select-C_FsCxA5.cjs.map} +1 -1
- package/dist/{select-field-block-CDklwBFe.js → select-field-block-BL08N4Yh.js} +3 -3
- package/dist/{select-field-block-CDklwBFe.js.map → select-field-block-BL08N4Yh.js.map} +1 -1
- package/dist/{select-field-block-BXjwaMqJ.cjs → select-field-block-rohiMHhW.cjs} +3 -3
- package/dist/{select-field-block-BXjwaMqJ.cjs.map → select-field-block-rohiMHhW.cjs.map} +1 -1
- package/dist/{shimmer-DnvxM4ou.cjs → shimmer-BH6aBatG.cjs} +2 -2
- package/dist/{shimmer-DnvxM4ou.cjs.map → shimmer-BH6aBatG.cjs.map} +1 -1
- package/dist/{shimmer-BneX5Awd.js → shimmer-DV3ZgmuP.js} +2 -2
- package/dist/{shimmer-BneX5Awd.js.map → shimmer-DV3ZgmuP.js.map} +1 -1
- package/dist/{skeleton-C5-7V8Ni.js → skeleton-BBDs7i6c.js} +2 -2
- package/dist/{skeleton-C5-7V8Ni.js.map → skeleton-BBDs7i6c.js.map} +1 -1
- package/dist/{skeleton-C0zXt2_f.cjs → skeleton-BKcwgYBh.cjs} +2 -2
- package/dist/{skeleton-C0zXt2_f.cjs.map → skeleton-BKcwgYBh.cjs.map} +1 -1
- package/dist/{spacings-BP8L49kn.cjs → spacings-4DMCCbQZ.cjs} +4 -2
- package/dist/spacings-4DMCCbQZ.cjs.map +1 -0
- package/dist/{spacings-C87dXiT-.js → spacings-BwKLvCC2.js} +4 -2
- package/dist/spacings-BwKLvCC2.js.map +1 -0
- package/dist/{spinner-HCsQgpaP.js → spinner-BMRlaJFy.js} +3 -3
- package/dist/{spinner-HCsQgpaP.js.map → spinner-BMRlaJFy.js.map} +1 -1
- package/dist/{spinner-BBAmiRCS.cjs → spinner-B_xKBDo_.cjs} +3 -3
- package/dist/{spinner-BBAmiRCS.cjs.map → spinner-B_xKBDo_.cjs.map} +1 -1
- package/dist/src/domains/traces/components/format-hierarchical-spans.d.ts +1 -0
- package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +6 -8
- package/dist/src/domains/traces/components/trace-summary-description.d.ts +21 -0
- package/dist/src/domains/traces/hooks/use-trace-search.d.ts +7 -0
- package/dist/src/domains/traces/types.d.ts +5 -0
- package/dist/src/ds/components/Badge/Badge.d.ts +86 -12
- package/dist/src/ds/components/Badge/badge.stories.d.ts +3 -0
- package/dist/src/ds/components/DataList/TracesDataList/traces-data-list.d.ts +2 -3
- package/dist/src/ds/components/DataList/data-list-cells.d.ts +5 -0
- package/dist/src/ds/components/ItemList/helpers.d.ts +8 -0
- package/dist/src/ds/components/ItemList/item-list-link-cell.d.ts +2 -1
- package/dist/src/ds/components/ItemList/item-list-row-button.d.ts +2 -1
- package/dist/src/ds/components/ai/plan/plan.d.ts +1 -1
- package/dist/src/ds/tokens/shadows.d.ts +1 -0
- package/dist/src/hooks/use-scroll-to-first-highlight.d.ts +20 -0
- package/dist/src/hooks/use-text-highlight.d.ts +18 -0
- package/dist/src/test/highlight-api.d.ts +6 -4
- package/dist/style.css +383 -219
- package/dist/{tabs-content-wBU5qmb6.cjs → tabs-content-BxToGCDw.cjs} +2 -2
- package/dist/{tabs-content-wBU5qmb6.cjs.map → tabs-content-BxToGCDw.cjs.map} +1 -1
- package/dist/{tabs-content-XUh680fO.js → tabs-content-CLgmU6S_.js} +2 -2
- package/dist/{tabs-content-XUh680fO.js.map → tabs-content-CLgmU6S_.js.map} +1 -1
- package/dist/{tabs-root-VtBc6K2q.cjs → tabs-root-BNcLC-s6.cjs} +3 -3
- package/dist/{tabs-root-VtBc6K2q.cjs.map → tabs-root-BNcLC-s6.cjs.map} +1 -1
- package/dist/{tabs-root-BBPou4QC.js → tabs-root-BnwVjJbD.js} +3 -3
- package/dist/{tabs-root-BBPou4QC.js.map → tabs-root-BnwVjJbD.js.map} +1 -1
- package/dist/{tabs-tab-DudcFE6r.cjs → tabs-tab-Ha0C9Dv3.cjs} +3 -3
- package/dist/{tabs-tab-DudcFE6r.cjs.map → tabs-tab-Ha0C9Dv3.cjs.map} +1 -1
- package/dist/{tabs-tab-mZ-Tl7-d.js → tabs-tab-Qlfs2X2g.js} +3 -3
- package/dist/{tabs-tab-mZ-Tl7-d.js.map → tabs-tab-Qlfs2X2g.js.map} +1 -1
- package/dist/{text-field-block-Ddl2tJ6D.js → text-field-block-D7vJZCzd.js} +3 -3
- package/dist/{text-field-block-Ddl2tJ6D.js.map → text-field-block-D7vJZCzd.js.map} +1 -1
- package/dist/{text-field-block-B4CvIwKh.cjs → text-field-block-Dtup2Jqm.cjs} +3 -3
- package/dist/{text-field-block-B4CvIwKh.cjs.map → text-field-block-Dtup2Jqm.cjs.map} +1 -1
- package/dist/{time-picker-CpR2IP4l.cjs → time-picker-BqIiky9G.cjs} +3 -3
- package/dist/{time-picker-CpR2IP4l.cjs.map → time-picker-BqIiky9G.cjs.map} +1 -1
- package/dist/{time-picker-63iBILK9.js → time-picker-hmmwDo2l.js} +3 -3
- package/dist/{time-picker-63iBILK9.js.map → time-picker-hmmwDo2l.js.map} +1 -1
- package/dist/{toast-Bh4WQDyj.cjs → toast-EtbZnj9b.cjs} +2 -2
- package/dist/{toast-Bh4WQDyj.cjs.map → toast-EtbZnj9b.cjs.map} +1 -1
- package/dist/{toast-BKsfnapA.js → toast-czUGO0aH.js} +2 -2
- package/dist/{toast-BKsfnapA.js.map → toast-czUGO0aH.js.map} +1 -1
- package/dist/tokens.cjs.js +1 -1
- package/dist/tokens.es.js +1 -1
- package/dist/{tooltip-CF30mRAe.js → tooltip-Bi0pDO5P.js} +2 -2
- package/dist/{tooltip-CF30mRAe.js.map → tooltip-Bi0pDO5P.js.map} +1 -1
- package/dist/{tooltip-DMOZ2oaq.cjs → tooltip-DIi_oOxO.cjs} +2 -2
- package/dist/{tooltip-DMOZ2oaq.cjs.map → tooltip-DIi_oOxO.cjs.map} +1 -1
- package/dist/{traces-data-list-DmXGwe4Q.js → traces-data-list-BeSOHzvZ.js} +14 -15
- package/dist/traces-data-list-BeSOHzvZ.js.map +1 -0
- package/dist/{traces-data-list-BLZgf-Es.cjs → traces-data-list-DwwFFIeq.cjs} +14 -15
- package/dist/traces-data-list-DwwFFIeq.cjs.map +1 -0
- package/dist/use-text-highlight.css +8 -0
- package/dist/utils/cn.cjs.js +1 -1
- package/dist/utils/cn.es.js +1 -1
- package/dist/utils/toast.cjs.js +1 -1
- package/dist/utils/toast.es.js +1 -1
- package/package.json +10 -10
- package/theme.css +69 -0
- package/CHANGELOG.md +0 -17727
- package/dist/Badge-BlJpI3fY.cjs +0 -57
- package/dist/Badge-BlJpI3fY.cjs.map +0 -1
- package/dist/Badge-woV6OD8k.js +0 -55
- package/dist/Badge-woV6OD8k.js.map +0 -1
- package/dist/chip-9P9t0dvN.cjs +0 -68
- package/dist/chip-9P9t0dvN.cjs.map +0 -1
- package/dist/chip-Bg0-95sX.js +0 -66
- package/dist/chip-Bg0-95sX.js.map +0 -1
- package/dist/components/Chip.cjs.js +0 -27
- package/dist/components/Chip.cjs.js.map +0 -1
- package/dist/components/Chip.d.ts +0 -2
- package/dist/components/Chip.es.js +0 -22
- package/dist/components/Chip.es.js.map +0 -1
- package/dist/components/StatusBadge.cjs.js +0 -76
- package/dist/components/StatusBadge.cjs.js.map +0 -1
- package/dist/components/StatusBadge.d.ts +0 -2
- package/dist/components/StatusBadge.es.js +0 -72
- package/dist/components/StatusBadge.es.js.map +0 -1
- package/dist/data-list-top-cell-BOXO5s7I.cjs.map +0 -1
- package/dist/data-list-top-cell-CC5jjv5s.js.map +0 -1
- package/dist/spacings-BP8L49kn.cjs.map +0 -1
- package/dist/spacings-C87dXiT-.js.map +0 -1
- package/dist/src/ds/components/Chip/chip.d.ts +0 -8
- package/dist/src/ds/components/Chip/chip.stories.d.ts +0 -11
- package/dist/src/ds/components/Chip/chips-group.d.ts +0 -2
- package/dist/src/ds/components/Chip/index.d.ts +0 -2
- package/dist/src/ds/components/StatusBadge/StatusBadge.d.ts +0 -13
- package/dist/src/ds/components/StatusBadge/index.d.ts +0 -2
- package/dist/src/ds/components/StatusBadge/status-badge.stories.d.ts +0 -8
- package/dist/traces-data-list-BLZgf-Es.cjs.map +0 -1
- package/dist/traces-data-list-DmXGwe4Q.js.map +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# @mastra/playground-ui
|
|
2
|
+
|
|
3
|
+
Reusable React components, hooks, domains, and design tokens used by Mastra Studio. It provides the UI building blocks for logs, memory, metrics, traces, and agent management.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @mastra/playground-ui
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
Import the package styles once in your React application.
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import '@mastra/playground-ui/style.css';
|
|
17
|
+
import { Button } from '@mastra/playground-ui/components/Button';
|
|
18
|
+
|
|
19
|
+
export function SaveButton() {
|
|
20
|
+
return <Button>Save</Button>;
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Documentation
|
|
25
|
+
|
|
26
|
+
This README is the package guide. Import the global stylesheet once, then use the package's explicit `components/*`, `domains/*`, `hooks/*`, `icons/*`, `primitives/*`, `store/*`, `tokens`, and `utils/*` entry points rather than a package-root import.
|
|
27
|
+
|
|
28
|
+
## Changelog
|
|
29
|
+
|
|
30
|
+
See the [package changelog](https://github.com/mastra-ai/mastra/blob/main/packages/playground-ui/CHANGELOG.md) for version history and release notes.
|
|
31
|
+
|
|
32
|
+
## Support
|
|
33
|
+
|
|
34
|
+
We have an [open community Discord](https://discord.gg/mastra-ai). Come and say hello and let us know if you have any questions or need any help getting things running.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { Icon } from './icons/Icon.es.js';
|
|
3
|
+
import { transitions } from './primitives/transitions.es.js';
|
|
4
|
+
import { c as cn } from './cn-B4oPhFx9.js';
|
|
5
|
+
|
|
6
|
+
const badgeToneStyles = {
|
|
7
|
+
neutral: {
|
|
8
|
+
default: "bg-neutral6/5 text-badge-neutral-fg",
|
|
9
|
+
muted: "bg-neutral6/[0.025] text-badge-neutral-fg",
|
|
10
|
+
indicator: "bg-neutral3"
|
|
11
|
+
},
|
|
12
|
+
green: {
|
|
13
|
+
default: "bg-badge-green/20 text-badge-green-fg",
|
|
14
|
+
muted: "bg-badge-green/10 text-badge-green-fg",
|
|
15
|
+
indicator: "bg-badge-green"
|
|
16
|
+
},
|
|
17
|
+
red: {
|
|
18
|
+
default: "bg-badge-red/20 text-badge-red-fg",
|
|
19
|
+
muted: "bg-badge-red/10 text-badge-red-fg",
|
|
20
|
+
indicator: "bg-badge-red"
|
|
21
|
+
},
|
|
22
|
+
blue: {
|
|
23
|
+
default: "bg-badge-blue/20 text-badge-blue-fg",
|
|
24
|
+
muted: "bg-badge-blue/10 text-badge-blue-fg",
|
|
25
|
+
indicator: "bg-badge-blue"
|
|
26
|
+
},
|
|
27
|
+
yellow: {
|
|
28
|
+
default: "bg-badge-yellow/20 text-badge-yellow-fg",
|
|
29
|
+
muted: "bg-badge-yellow/10 text-badge-yellow-fg",
|
|
30
|
+
indicator: "bg-badge-yellow"
|
|
31
|
+
},
|
|
32
|
+
purple: {
|
|
33
|
+
default: "bg-badge-purple/20 text-badge-purple-fg",
|
|
34
|
+
muted: "bg-badge-purple/10 text-badge-purple-fg",
|
|
35
|
+
indicator: "bg-badge-purple"
|
|
36
|
+
},
|
|
37
|
+
orange: {
|
|
38
|
+
default: "bg-badge-orange/20 text-badge-orange-fg",
|
|
39
|
+
muted: "bg-badge-orange/10 text-badge-orange-fg",
|
|
40
|
+
indicator: "bg-badge-orange"
|
|
41
|
+
},
|
|
42
|
+
cyan: {
|
|
43
|
+
default: "bg-badge-cyan/20 text-badge-cyan-fg",
|
|
44
|
+
muted: "bg-badge-cyan/10 text-badge-cyan-fg",
|
|
45
|
+
indicator: "bg-badge-cyan"
|
|
46
|
+
},
|
|
47
|
+
pink: {
|
|
48
|
+
default: "bg-badge-pink/20 text-badge-pink-fg",
|
|
49
|
+
muted: "bg-badge-pink/10 text-badge-pink-fg",
|
|
50
|
+
indicator: "bg-badge-pink"
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const badgeSizeStyles = {
|
|
54
|
+
xs: {
|
|
55
|
+
badge: "h-[18px] gap-0.5 text-ui-xs",
|
|
56
|
+
withoutLeadingVisual: "px-1.5",
|
|
57
|
+
withLeadingVisual: "pl-1 pr-1.5",
|
|
58
|
+
indicator: "size-1"
|
|
59
|
+
},
|
|
60
|
+
sm: {
|
|
61
|
+
badge: "h-5 gap-1 text-ui-xs",
|
|
62
|
+
withoutLeadingVisual: "px-1.5",
|
|
63
|
+
withLeadingVisual: "px-1.5",
|
|
64
|
+
indicator: "size-1"
|
|
65
|
+
},
|
|
66
|
+
md: {
|
|
67
|
+
badge: "h-[22px] gap-1 text-ui-sm",
|
|
68
|
+
withoutLeadingVisual: "px-2",
|
|
69
|
+
withLeadingVisual: "pl-1.5 pr-2",
|
|
70
|
+
indicator: "size-1.5"
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const Badge = ({
|
|
74
|
+
icon,
|
|
75
|
+
indicator,
|
|
76
|
+
variant = "neutral",
|
|
77
|
+
emphasis = "default",
|
|
78
|
+
size = "md",
|
|
79
|
+
className,
|
|
80
|
+
children,
|
|
81
|
+
...props
|
|
82
|
+
}) => {
|
|
83
|
+
const hasIcon = Boolean(icon);
|
|
84
|
+
const withLeadingVisual = hasIcon || indicator !== void 0;
|
|
85
|
+
const sizeStyles = badgeSizeStyles[size];
|
|
86
|
+
const paddingClass = withLeadingVisual ? sizeStyles.withLeadingVisual : sizeStyles.withoutLeadingVisual;
|
|
87
|
+
return /* @__PURE__ */ jsxs(
|
|
88
|
+
"span",
|
|
89
|
+
{
|
|
90
|
+
className: cn(
|
|
91
|
+
"inline-flex w-fit max-w-full shrink-0 items-center rounded-[7px] font-medium",
|
|
92
|
+
"inset-ring-1 inset-ring-current/5",
|
|
93
|
+
"inset-shadow-xs inset-shadow-white/5 dark:inset-shadow-[0_3px_10px_-2px_white] dark:inset-shadow-white/7",
|
|
94
|
+
"dark:bg-linear-to-b dark:from-white/3 dark:to-white/0",
|
|
95
|
+
badgeToneStyles[variant][emphasis],
|
|
96
|
+
sizeStyles.badge,
|
|
97
|
+
paddingClass,
|
|
98
|
+
transitions.colors,
|
|
99
|
+
className
|
|
100
|
+
),
|
|
101
|
+
...props,
|
|
102
|
+
children: [
|
|
103
|
+
indicator !== void 0 ? /* @__PURE__ */ jsx(
|
|
104
|
+
"span",
|
|
105
|
+
{
|
|
106
|
+
"aria-hidden": "true",
|
|
107
|
+
className: cn(
|
|
108
|
+
"shrink-0 rounded-full",
|
|
109
|
+
badgeToneStyles[variant].indicator,
|
|
110
|
+
sizeStyles.indicator,
|
|
111
|
+
indicator === "pulse" && "motion-safe:animate-pulse motion-reduce:animate-none"
|
|
112
|
+
)
|
|
113
|
+
}
|
|
114
|
+
) : null,
|
|
115
|
+
hasIcon ? /* @__PURE__ */ jsx(Icon, { size: "sm", children: icon }) : null,
|
|
116
|
+
children
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export { Badge as B };
|
|
123
|
+
//# sourceMappingURL=Badge-CvgvWjuP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge-CvgvWjuP.js","sources":["../src/ds/components/Badge/Badge.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport { Icon } from '../../icons/Icon';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type BadgeEmphasis = 'default' | 'muted';\nexport type BadgeIndicator = 'dot' | 'pulse';\n\ntype BadgeToneStyles = Record<BadgeEmphasis, string> & { indicator: string };\n\nconst badgeToneStyles = {\n neutral: {\n default: 'bg-neutral6/5 text-badge-neutral-fg',\n muted: 'bg-neutral6/[0.025] text-badge-neutral-fg',\n indicator: 'bg-neutral3',\n },\n green: {\n default: 'bg-badge-green/20 text-badge-green-fg',\n muted: 'bg-badge-green/10 text-badge-green-fg',\n indicator: 'bg-badge-green',\n },\n red: {\n default: 'bg-badge-red/20 text-badge-red-fg',\n muted: 'bg-badge-red/10 text-badge-red-fg',\n indicator: 'bg-badge-red',\n },\n blue: {\n default: 'bg-badge-blue/20 text-badge-blue-fg',\n muted: 'bg-badge-blue/10 text-badge-blue-fg',\n indicator: 'bg-badge-blue',\n },\n yellow: {\n default: 'bg-badge-yellow/20 text-badge-yellow-fg',\n muted: 'bg-badge-yellow/10 text-badge-yellow-fg',\n indicator: 'bg-badge-yellow',\n },\n purple: {\n default: 'bg-badge-purple/20 text-badge-purple-fg',\n muted: 'bg-badge-purple/10 text-badge-purple-fg',\n indicator: 'bg-badge-purple',\n },\n orange: {\n default: 'bg-badge-orange/20 text-badge-orange-fg',\n muted: 'bg-badge-orange/10 text-badge-orange-fg',\n indicator: 'bg-badge-orange',\n },\n cyan: {\n default: 'bg-badge-cyan/20 text-badge-cyan-fg',\n muted: 'bg-badge-cyan/10 text-badge-cyan-fg',\n indicator: 'bg-badge-cyan',\n },\n pink: {\n default: 'bg-badge-pink/20 text-badge-pink-fg',\n muted: 'bg-badge-pink/10 text-badge-pink-fg',\n indicator: 'bg-badge-pink',\n },\n} satisfies Record<string, BadgeToneStyles>;\n\nexport type BadgeVariant = keyof typeof badgeToneStyles;\n\nconst badgeSizeStyles = {\n xs: {\n badge: 'h-[18px] gap-0.5 text-ui-xs',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'pl-1 pr-1.5',\n indicator: 'size-1',\n },\n sm: {\n badge: 'h-5 gap-1 text-ui-xs',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'px-1.5',\n indicator: 'size-1',\n },\n md: {\n badge: 'h-[22px] gap-1 text-ui-sm',\n withoutLeadingVisual: 'px-2',\n withLeadingVisual: 'pl-1.5 pr-2',\n indicator: 'size-1.5',\n },\n};\n\nexport type BadgeSize = keyof typeof badgeSizeStyles;\n\ntype BadgeLeadingVisual = { icon?: ReactNode; indicator?: never } | { icon?: never; indicator?: BadgeIndicator };\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> &\n BadgeLeadingVisual & {\n variant?: BadgeVariant;\n emphasis?: BadgeEmphasis;\n size?: BadgeSize;\n children?: ReactNode;\n };\n\nexport const Badge = ({\n icon,\n indicator,\n variant = 'neutral',\n emphasis = 'default',\n size = 'md',\n className,\n children,\n ...props\n}: BadgeProps) => {\n const hasIcon = Boolean(icon);\n const withLeadingVisual = hasIcon || indicator !== undefined;\n const sizeStyles = badgeSizeStyles[size];\n const paddingClass = withLeadingVisual ? sizeStyles.withLeadingVisual : sizeStyles.withoutLeadingVisual;\n\n return (\n <span\n className={cn(\n 'inline-flex w-fit max-w-full shrink-0 items-center rounded-[7px] font-medium',\n 'inset-ring-1 inset-ring-current/5',\n 'inset-shadow-xs inset-shadow-white/5 dark:inset-shadow-[0_3px_10px_-2px_white] dark:inset-shadow-white/7',\n 'dark:bg-linear-to-b dark:from-white/3 dark:to-white/0',\n badgeToneStyles[variant][emphasis],\n sizeStyles.badge,\n paddingClass,\n transitions.colors,\n className,\n )}\n {...props}\n >\n {indicator !== undefined ? (\n <span\n aria-hidden=\"true\"\n className={cn(\n 'shrink-0 rounded-full',\n badgeToneStyles[variant].indicator,\n sizeStyles.indicator,\n indicator === 'pulse' && 'motion-safe:animate-pulse motion-reduce:animate-none',\n )}\n />\n ) : null}\n {hasIcon ? <Icon size=\"sm\">{icon}</Icon> : null}\n {children}\n </span>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
const icons_Icon = require('./icons/Icon.cjs.js');
|
|
5
|
+
const primitives_transitions = require('./primitives/transitions.cjs.js');
|
|
6
|
+
const utils_cn = require('./cn-DCPcv4xv.cjs');
|
|
7
|
+
|
|
8
|
+
const badgeToneStyles = {
|
|
9
|
+
neutral: {
|
|
10
|
+
default: "bg-neutral6/5 text-badge-neutral-fg",
|
|
11
|
+
muted: "bg-neutral6/[0.025] text-badge-neutral-fg",
|
|
12
|
+
indicator: "bg-neutral3"
|
|
13
|
+
},
|
|
14
|
+
green: {
|
|
15
|
+
default: "bg-badge-green/20 text-badge-green-fg",
|
|
16
|
+
muted: "bg-badge-green/10 text-badge-green-fg",
|
|
17
|
+
indicator: "bg-badge-green"
|
|
18
|
+
},
|
|
19
|
+
red: {
|
|
20
|
+
default: "bg-badge-red/20 text-badge-red-fg",
|
|
21
|
+
muted: "bg-badge-red/10 text-badge-red-fg",
|
|
22
|
+
indicator: "bg-badge-red"
|
|
23
|
+
},
|
|
24
|
+
blue: {
|
|
25
|
+
default: "bg-badge-blue/20 text-badge-blue-fg",
|
|
26
|
+
muted: "bg-badge-blue/10 text-badge-blue-fg",
|
|
27
|
+
indicator: "bg-badge-blue"
|
|
28
|
+
},
|
|
29
|
+
yellow: {
|
|
30
|
+
default: "bg-badge-yellow/20 text-badge-yellow-fg",
|
|
31
|
+
muted: "bg-badge-yellow/10 text-badge-yellow-fg",
|
|
32
|
+
indicator: "bg-badge-yellow"
|
|
33
|
+
},
|
|
34
|
+
purple: {
|
|
35
|
+
default: "bg-badge-purple/20 text-badge-purple-fg",
|
|
36
|
+
muted: "bg-badge-purple/10 text-badge-purple-fg",
|
|
37
|
+
indicator: "bg-badge-purple"
|
|
38
|
+
},
|
|
39
|
+
orange: {
|
|
40
|
+
default: "bg-badge-orange/20 text-badge-orange-fg",
|
|
41
|
+
muted: "bg-badge-orange/10 text-badge-orange-fg",
|
|
42
|
+
indicator: "bg-badge-orange"
|
|
43
|
+
},
|
|
44
|
+
cyan: {
|
|
45
|
+
default: "bg-badge-cyan/20 text-badge-cyan-fg",
|
|
46
|
+
muted: "bg-badge-cyan/10 text-badge-cyan-fg",
|
|
47
|
+
indicator: "bg-badge-cyan"
|
|
48
|
+
},
|
|
49
|
+
pink: {
|
|
50
|
+
default: "bg-badge-pink/20 text-badge-pink-fg",
|
|
51
|
+
muted: "bg-badge-pink/10 text-badge-pink-fg",
|
|
52
|
+
indicator: "bg-badge-pink"
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const badgeSizeStyles = {
|
|
56
|
+
xs: {
|
|
57
|
+
badge: "h-[18px] gap-0.5 text-ui-xs",
|
|
58
|
+
withoutLeadingVisual: "px-1.5",
|
|
59
|
+
withLeadingVisual: "pl-1 pr-1.5",
|
|
60
|
+
indicator: "size-1"
|
|
61
|
+
},
|
|
62
|
+
sm: {
|
|
63
|
+
badge: "h-5 gap-1 text-ui-xs",
|
|
64
|
+
withoutLeadingVisual: "px-1.5",
|
|
65
|
+
withLeadingVisual: "px-1.5",
|
|
66
|
+
indicator: "size-1"
|
|
67
|
+
},
|
|
68
|
+
md: {
|
|
69
|
+
badge: "h-[22px] gap-1 text-ui-sm",
|
|
70
|
+
withoutLeadingVisual: "px-2",
|
|
71
|
+
withLeadingVisual: "pl-1.5 pr-2",
|
|
72
|
+
indicator: "size-1.5"
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const Badge = ({
|
|
76
|
+
icon,
|
|
77
|
+
indicator,
|
|
78
|
+
variant = "neutral",
|
|
79
|
+
emphasis = "default",
|
|
80
|
+
size = "md",
|
|
81
|
+
className,
|
|
82
|
+
children,
|
|
83
|
+
...props
|
|
84
|
+
}) => {
|
|
85
|
+
const hasIcon = Boolean(icon);
|
|
86
|
+
const withLeadingVisual = hasIcon || indicator !== void 0;
|
|
87
|
+
const sizeStyles = badgeSizeStyles[size];
|
|
88
|
+
const paddingClass = withLeadingVisual ? sizeStyles.withLeadingVisual : sizeStyles.withoutLeadingVisual;
|
|
89
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
90
|
+
"span",
|
|
91
|
+
{
|
|
92
|
+
className: utils_cn.cn(
|
|
93
|
+
"inline-flex w-fit max-w-full shrink-0 items-center rounded-[7px] font-medium",
|
|
94
|
+
"inset-ring-1 inset-ring-current/5",
|
|
95
|
+
"inset-shadow-xs inset-shadow-white/5 dark:inset-shadow-[0_3px_10px_-2px_white] dark:inset-shadow-white/7",
|
|
96
|
+
"dark:bg-linear-to-b dark:from-white/3 dark:to-white/0",
|
|
97
|
+
badgeToneStyles[variant][emphasis],
|
|
98
|
+
sizeStyles.badge,
|
|
99
|
+
paddingClass,
|
|
100
|
+
primitives_transitions.transitions.colors,
|
|
101
|
+
className
|
|
102
|
+
),
|
|
103
|
+
...props,
|
|
104
|
+
children: [
|
|
105
|
+
indicator !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
106
|
+
"span",
|
|
107
|
+
{
|
|
108
|
+
"aria-hidden": "true",
|
|
109
|
+
className: utils_cn.cn(
|
|
110
|
+
"shrink-0 rounded-full",
|
|
111
|
+
badgeToneStyles[variant].indicator,
|
|
112
|
+
sizeStyles.indicator,
|
|
113
|
+
indicator === "pulse" && "motion-safe:animate-pulse motion-reduce:animate-none"
|
|
114
|
+
)
|
|
115
|
+
}
|
|
116
|
+
) : null,
|
|
117
|
+
hasIcon ? /* @__PURE__ */ jsxRuntime.jsx(icons_Icon.Icon, { size: "sm", children: icon }) : null,
|
|
118
|
+
children
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
);
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
exports.Badge = Badge;
|
|
125
|
+
//# sourceMappingURL=Badge-uc0ydYdy.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge-uc0ydYdy.cjs","sources":["../src/ds/components/Badge/Badge.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport { Icon } from '../../icons/Icon';\nimport { transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type BadgeEmphasis = 'default' | 'muted';\nexport type BadgeIndicator = 'dot' | 'pulse';\n\ntype BadgeToneStyles = Record<BadgeEmphasis, string> & { indicator: string };\n\nconst badgeToneStyles = {\n neutral: {\n default: 'bg-neutral6/5 text-badge-neutral-fg',\n muted: 'bg-neutral6/[0.025] text-badge-neutral-fg',\n indicator: 'bg-neutral3',\n },\n green: {\n default: 'bg-badge-green/20 text-badge-green-fg',\n muted: 'bg-badge-green/10 text-badge-green-fg',\n indicator: 'bg-badge-green',\n },\n red: {\n default: 'bg-badge-red/20 text-badge-red-fg',\n muted: 'bg-badge-red/10 text-badge-red-fg',\n indicator: 'bg-badge-red',\n },\n blue: {\n default: 'bg-badge-blue/20 text-badge-blue-fg',\n muted: 'bg-badge-blue/10 text-badge-blue-fg',\n indicator: 'bg-badge-blue',\n },\n yellow: {\n default: 'bg-badge-yellow/20 text-badge-yellow-fg',\n muted: 'bg-badge-yellow/10 text-badge-yellow-fg',\n indicator: 'bg-badge-yellow',\n },\n purple: {\n default: 'bg-badge-purple/20 text-badge-purple-fg',\n muted: 'bg-badge-purple/10 text-badge-purple-fg',\n indicator: 'bg-badge-purple',\n },\n orange: {\n default: 'bg-badge-orange/20 text-badge-orange-fg',\n muted: 'bg-badge-orange/10 text-badge-orange-fg',\n indicator: 'bg-badge-orange',\n },\n cyan: {\n default: 'bg-badge-cyan/20 text-badge-cyan-fg',\n muted: 'bg-badge-cyan/10 text-badge-cyan-fg',\n indicator: 'bg-badge-cyan',\n },\n pink: {\n default: 'bg-badge-pink/20 text-badge-pink-fg',\n muted: 'bg-badge-pink/10 text-badge-pink-fg',\n indicator: 'bg-badge-pink',\n },\n} satisfies Record<string, BadgeToneStyles>;\n\nexport type BadgeVariant = keyof typeof badgeToneStyles;\n\nconst badgeSizeStyles = {\n xs: {\n badge: 'h-[18px] gap-0.5 text-ui-xs',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'pl-1 pr-1.5',\n indicator: 'size-1',\n },\n sm: {\n badge: 'h-5 gap-1 text-ui-xs',\n withoutLeadingVisual: 'px-1.5',\n withLeadingVisual: 'px-1.5',\n indicator: 'size-1',\n },\n md: {\n badge: 'h-[22px] gap-1 text-ui-sm',\n withoutLeadingVisual: 'px-2',\n withLeadingVisual: 'pl-1.5 pr-2',\n indicator: 'size-1.5',\n },\n};\n\nexport type BadgeSize = keyof typeof badgeSizeStyles;\n\ntype BadgeLeadingVisual = { icon?: ReactNode; indicator?: never } | { icon?: never; indicator?: BadgeIndicator };\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> &\n BadgeLeadingVisual & {\n variant?: BadgeVariant;\n emphasis?: BadgeEmphasis;\n size?: BadgeSize;\n children?: ReactNode;\n };\n\nexport const Badge = ({\n icon,\n indicator,\n variant = 'neutral',\n emphasis = 'default',\n size = 'md',\n className,\n children,\n ...props\n}: BadgeProps) => {\n const hasIcon = Boolean(icon);\n const withLeadingVisual = hasIcon || indicator !== undefined;\n const sizeStyles = badgeSizeStyles[size];\n const paddingClass = withLeadingVisual ? sizeStyles.withLeadingVisual : sizeStyles.withoutLeadingVisual;\n\n return (\n <span\n className={cn(\n 'inline-flex w-fit max-w-full shrink-0 items-center rounded-[7px] font-medium',\n 'inset-ring-1 inset-ring-current/5',\n 'inset-shadow-xs inset-shadow-white/5 dark:inset-shadow-[0_3px_10px_-2px_white] dark:inset-shadow-white/7',\n 'dark:bg-linear-to-b dark:from-white/3 dark:to-white/0',\n badgeToneStyles[variant][emphasis],\n sizeStyles.badge,\n paddingClass,\n transitions.colors,\n className,\n )}\n {...props}\n >\n {indicator !== undefined ? (\n <span\n aria-hidden=\"true\"\n className={cn(\n 'shrink-0 rounded-full',\n badgeToneStyles[variant].indicator,\n sizeStyles.indicator,\n indicator === 'pulse' && 'motion-safe:animate-pulse motion-reduce:animate-none',\n )}\n />\n ) : null}\n {hasIcon ? <Icon size=\"sm\">{icon}</Icon> : null}\n {children}\n </span>\n );\n};\n"],"names":["jsxs","cn","transitions","jsx","Icon"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import { c as cva } from './index-
|
|
2
|
+
import { c as cva } from './index-DsNrjFJd.js';
|
|
3
3
|
import React__default from 'react';
|
|
4
|
-
import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from './tooltip-
|
|
4
|
+
import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from './tooltip-Bi0pDO5P.js';
|
|
5
5
|
import { Icon } from './icons/Icon.es.js';
|
|
6
6
|
import { controlHeight, controlSizeClasses } from './primitives/control-size.es.js';
|
|
7
7
|
import { controlFocusBorderVisible, sharedFormElementDisabledStyle } from './primitives/form-element.es.js';
|
|
8
|
-
import { c as cn } from './cn-
|
|
8
|
+
import { c as cn } from './cn-B4oPhFx9.js';
|
|
9
9
|
|
|
10
10
|
const TEXT_MODE_ADORNMENTS = cn(
|
|
11
11
|
"gap-[.75em] rounded-full",
|
|
@@ -105,4 +105,4 @@ const Button = React__default.forwardRef(
|
|
|
105
105
|
Button.displayName = "Button";
|
|
106
106
|
|
|
107
107
|
export { Button as B, buttonVariants as b };
|
|
108
|
-
//# sourceMappingURL=Button-
|
|
108
|
+
//# sourceMappingURL=Button-BsfLQEC6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button-vr_I4iME.js","sources":["../src/ds/components/Button/Button.tsx"],"sourcesContent":["import { 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 { controlHeight, controlSizeClasses } from '@/ds/primitives/control-size';\nimport { controlFocusBorderVisible, sharedFormElementDisabledStyle } from '@/ds/primitives/form-element';\nimport { cn } from '@/lib/utils';\n\n// Adornments for text-mode buttons: gap between icon+label, larger radius, and SVG sizing for\n// inline `<svg>` children. Excluded from icon-mode because icon-mode wraps children in `<Icon>`\n// (so `[&>svg]` selectors don't match) and uses its own `rounded-full` (circle).\nconst TEXT_MODE_ADORNMENTS = cn(\n 'gap-[.75em] rounded-full',\n '[&>svg]:mx-[-.3em] [&>svg]:size-[1.1em]',\n '[&:hover>svg]:opacity-100 [&>svg]:opacity-50',\n '[&>svg]:transition-opacity [&>svg]:duration-normal [&>svg]:ease-out-custom',\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 leading-0',\n 'transition-all duration-normal ease-out-custom',\n sharedFormElementDisabledStyle,\n controlFocusBorderVisible,\n ),\n {\n variants: {\n variant: {\n default:\n 'border border-border2 bg-surface3 text-neutral6 hover:bg-surface5 hover:text-neutral6 active:bg-surface6',\n primary:\n 'border border-transparent bg-neutral6 font-medium text-surface1 hover:bg-neutral6/90 active:bg-neutral6/80',\n destructive:\n 'border border-transparent bg-accent2 font-medium text-white hover:bg-accent2/90 active:bg-accent2/80',\n 'destructive-ghost':\n 'border border-transparent bg-transparent text-accent2 hover:bg-accent2/10 hover:text-accent2 active:bg-accent2/15',\n ghost:\n 'border border-transparent bg-transparent text-neutral4 hover:bg-neutral6/5 hover:text-neutral6 active:bg-neutral6/10',\n outline:\n 'border border-border1 bg-transparent text-neutral5 hover:bg-surface3 hover:text-neutral6 active:bg-surface4',\n },\n size: {\n xs: cn(controlSizeClasses.xs, 'px-[.8em]', TEXT_MODE_ADORNMENTS),\n sm: cn(controlSizeClasses.sm, 'px-[.9em]', TEXT_MODE_ADORNMENTS),\n md: cn(controlSizeClasses.md, 'px-[.9em]', TEXT_MODE_ADORNMENTS),\n lg: cn(controlSizeClasses.default, 'px-[1em]', TEXT_MODE_ADORNMENTS),\n // Icon sizes: square dimensions, fully rounded → circle. Active state inherits from variant\n // (e.g. `active:bg-surface5`) — same press feedback as text-mode for consistency.\n 'icon-xs': cn(controlHeight.xs, 'w-form-xs rounded-full'),\n 'icon-sm': cn(controlHeight.sm, 'w-form-sm rounded-full'),\n 'icon-md': cn(controlHeight.md, 'w-form-md rounded-full'),\n 'icon-lg': cn(controlHeight.lg, 'w-form-lg rounded-full'),\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n },\n);\n\n// Public types derived from cva — single source of truth. Adding a variant or size to\n// `buttonVariants` automatically updates these unions.\ntype ButtonVariantsProps = VariantProps<typeof buttonVariants>;\nexport type ButtonVariant = NonNullable<ButtonVariantsProps['variant']>;\nexport type ButtonSize = NonNullable<ButtonVariantsProps['size']>;\nexport type IconButtonSize = Extract<ButtonSize, `icon-${string}`>;\nexport type TextButtonSize = Exclude<ButtonSize, IconButtonSize>;\n\nexport interface ButtonProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>, ButtonVariantsProps {\n as?: React.ElementType;\n className?: string;\n href?: string;\n to?: string;\n prefetch?: boolean | null;\n children: React.ReactNode;\n tooltip?: React.ReactNode;\n target?: string;\n type?: 'button' | 'submit' | 'reset';\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\n// Button's icon-* sizes don't match `<Icon>`'s own size scale (`sm | default | lg`).\nconst iconChildSizeMap: Record<IconButtonSize, 'sm' | 'default' | 'lg'> = {\n 'icon-xs': 'sm',\n 'icon-sm': 'sm',\n 'icon-md': 'default',\n 'icon-lg': 'lg',\n};\n\n// Walks React children, expanding `<></>` fragments so `isIconOnly` can inspect the real\n// elements inside. `<Button><><Icon/></></Button>` should still count as icon-only.\nfunction flattenChildren(children: React.ReactNode): React.ReactNode[] {\n const result: React.ReactNode[] = [];\n React.Children.forEach(children, child => {\n if (React.isValidElement<{ children?: React.ReactNode }>(child) && child.type === React.Fragment) {\n result.push(...flattenChildren(child.props.children));\n } else {\n result.push(child);\n }\n });\n return result;\n}\n\n// True when every child is a React element (no text/label). Used in text-mode to brighten the\n// SVG of label-less buttons so the glyph reads stronger.\nfunction isIconOnly(children: React.ReactNode): boolean {\n const flat = flattenChildren(children);\n return flat.length > 0 && flat.every(child => React.isValidElement(child));\n}\n\n// Type guard: narrows `ButtonSize` to `IconButtonSize` so consumers (e.g. `iconChildSizeMap`)\n// can index into icon-only structures without a cast.\nfunction isIconButtonSize(size: ButtonSize | null | undefined): size is IconButtonSize {\n return typeof size === 'string' && size.startsWith('icon-');\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n { className, as, size, variant = 'default', disabled, children, tooltip, 'aria-label': ariaLabelProp, ...props },\n ref,\n ) => {\n const Component = as || 'button';\n const iconMode = isIconButtonSize(size);\n const resolvedSize: ButtonSize = size ?? 'md';\n const isLabelless = !iconMode && isIconOnly(children);\n\n // Icon-only buttons need an a11y label. If a string tooltip is provided, reuse it.\n const ariaLabel = ariaLabelProp ?? ((iconMode || isLabelless) && typeof tooltip === 'string' ? tooltip : undefined);\n\n const content = iconMode ? <Icon size={iconChildSizeMap[size as IconButtonSize]}>{children}</Icon> : children;\n\n const button = (\n <Component\n ref={ref}\n disabled={disabled}\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.tsx).\n data-variant={variant}\n className={cn(buttonVariants({ variant, size: resolvedSize }), isLabelless && '[&>svg]:opacity-75', className)}\n {...props}\n >\n {content}\n </Component>\n );\n\n if (tooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n );\n }\n\n return button;\n },\n);\n\nButton.displayName = 'Button';\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Button-BsfLQEC6.js","sources":["../src/ds/components/Button/Button.tsx"],"sourcesContent":["import { 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 { controlHeight, controlSizeClasses } from '@/ds/primitives/control-size';\nimport { controlFocusBorderVisible, sharedFormElementDisabledStyle } from '@/ds/primitives/form-element';\nimport { cn } from '@/lib/utils';\n\n// Adornments for text-mode buttons: gap between icon+label, larger radius, and SVG sizing for\n// inline `<svg>` children. Excluded from icon-mode because icon-mode wraps children in `<Icon>`\n// (so `[&>svg]` selectors don't match) and uses its own `rounded-full` (circle).\nconst TEXT_MODE_ADORNMENTS = cn(\n 'gap-[.75em] rounded-full',\n '[&>svg]:mx-[-.3em] [&>svg]:size-[1.1em]',\n '[&:hover>svg]:opacity-100 [&>svg]:opacity-50',\n '[&>svg]:transition-opacity [&>svg]:duration-normal [&>svg]:ease-out-custom',\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 leading-0',\n 'transition-all duration-normal ease-out-custom',\n sharedFormElementDisabledStyle,\n controlFocusBorderVisible,\n ),\n {\n variants: {\n variant: {\n default:\n 'border border-border2 bg-surface3 text-neutral6 hover:bg-surface5 hover:text-neutral6 active:bg-surface6',\n primary:\n 'border border-transparent bg-neutral6 font-medium text-surface1 hover:bg-neutral6/90 active:bg-neutral6/80',\n destructive:\n 'border border-transparent bg-accent2 font-medium text-white hover:bg-accent2/90 active:bg-accent2/80',\n 'destructive-ghost':\n 'border border-transparent bg-transparent text-accent2 hover:bg-accent2/10 hover:text-accent2 active:bg-accent2/15',\n ghost:\n 'border border-transparent bg-transparent text-neutral4 hover:bg-neutral6/5 hover:text-neutral6 active:bg-neutral6/10',\n outline:\n 'border border-border1 bg-transparent text-neutral5 hover:bg-surface3 hover:text-neutral6 active:bg-surface4',\n },\n size: {\n xs: cn(controlSizeClasses.xs, 'px-[.8em]', TEXT_MODE_ADORNMENTS),\n sm: cn(controlSizeClasses.sm, 'px-[.9em]', TEXT_MODE_ADORNMENTS),\n md: cn(controlSizeClasses.md, 'px-[.9em]', TEXT_MODE_ADORNMENTS),\n lg: cn(controlSizeClasses.default, 'px-[1em]', TEXT_MODE_ADORNMENTS),\n // Icon sizes: square dimensions, fully rounded → circle. Active state inherits from variant\n // (e.g. `active:bg-surface5`) — same press feedback as text-mode for consistency.\n 'icon-xs': cn(controlHeight.xs, 'w-form-xs rounded-full'),\n 'icon-sm': cn(controlHeight.sm, 'w-form-sm rounded-full'),\n 'icon-md': cn(controlHeight.md, 'w-form-md rounded-full'),\n 'icon-lg': cn(controlHeight.lg, 'w-form-lg rounded-full'),\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n },\n);\n\n// Public types derived from cva — single source of truth. Adding a variant or size to\n// `buttonVariants` automatically updates these unions.\ntype ButtonVariantsProps = VariantProps<typeof buttonVariants>;\nexport type ButtonVariant = NonNullable<ButtonVariantsProps['variant']>;\nexport type ButtonSize = NonNullable<ButtonVariantsProps['size']>;\nexport type IconButtonSize = Extract<ButtonSize, `icon-${string}`>;\nexport type TextButtonSize = Exclude<ButtonSize, IconButtonSize>;\n\nexport interface ButtonProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>, ButtonVariantsProps {\n as?: React.ElementType;\n className?: string;\n href?: string;\n to?: string;\n prefetch?: boolean | null;\n children: React.ReactNode;\n tooltip?: React.ReactNode;\n target?: string;\n type?: 'button' | 'submit' | 'reset';\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\n// Button's icon-* sizes don't match `<Icon>`'s own size scale (`sm | default | lg`).\nconst iconChildSizeMap: Record<IconButtonSize, 'sm' | 'default' | 'lg'> = {\n 'icon-xs': 'sm',\n 'icon-sm': 'sm',\n 'icon-md': 'default',\n 'icon-lg': 'lg',\n};\n\n// Walks React children, expanding `<></>` fragments so `isIconOnly` can inspect the real\n// elements inside. `<Button><><Icon/></></Button>` should still count as icon-only.\nfunction flattenChildren(children: React.ReactNode): React.ReactNode[] {\n const result: React.ReactNode[] = [];\n React.Children.forEach(children, child => {\n if (React.isValidElement<{ children?: React.ReactNode }>(child) && child.type === React.Fragment) {\n result.push(...flattenChildren(child.props.children));\n } else {\n result.push(child);\n }\n });\n return result;\n}\n\n// True when every child is a React element (no text/label). Used in text-mode to brighten the\n// SVG of label-less buttons so the glyph reads stronger.\nfunction isIconOnly(children: React.ReactNode): boolean {\n const flat = flattenChildren(children);\n return flat.length > 0 && flat.every(child => React.isValidElement(child));\n}\n\n// Type guard: narrows `ButtonSize` to `IconButtonSize` so consumers (e.g. `iconChildSizeMap`)\n// can index into icon-only structures without a cast.\nfunction isIconButtonSize(size: ButtonSize | null | undefined): size is IconButtonSize {\n return typeof size === 'string' && size.startsWith('icon-');\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n { className, as, size, variant = 'default', disabled, children, tooltip, 'aria-label': ariaLabelProp, ...props },\n ref,\n ) => {\n const Component = as || 'button';\n const iconMode = isIconButtonSize(size);\n const resolvedSize: ButtonSize = size ?? 'md';\n const isLabelless = !iconMode && isIconOnly(children);\n\n // Icon-only buttons need an a11y label. If a string tooltip is provided, reuse it.\n const ariaLabel = ariaLabelProp ?? ((iconMode || isLabelless) && typeof tooltip === 'string' ? tooltip : undefined);\n\n const content = iconMode ? <Icon size={iconChildSizeMap[size as IconButtonSize]}>{children}</Icon> : children;\n\n const button = (\n <Component\n ref={ref}\n disabled={disabled}\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.tsx).\n data-variant={variant}\n className={cn(buttonVariants({ variant, size: resolvedSize }), isLabelless && '[&>svg]:opacity-75', className)}\n {...props}\n >\n {content}\n </Component>\n );\n\n if (tooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n );\n }\n\n return button;\n },\n);\n\nButton.displayName = 'Button';\n"],"names":["React"],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
const index = require('./index-
|
|
4
|
+
const index = require('./index-BRtrE4oe.cjs');
|
|
5
5
|
const React = require('react');
|
|
6
|
-
const tooltip = require('./tooltip-
|
|
6
|
+
const tooltip = require('./tooltip-DIi_oOxO.cjs');
|
|
7
7
|
const icons_Icon = require('./icons/Icon.cjs.js');
|
|
8
8
|
const primitives_controlSize = require('./primitives/control-size.cjs.js');
|
|
9
9
|
const primitives_formElement = require('./primitives/form-element.cjs.js');
|
|
10
|
-
const utils_cn = require('./cn-
|
|
10
|
+
const utils_cn = require('./cn-DCPcv4xv.cjs');
|
|
11
11
|
|
|
12
12
|
const TEXT_MODE_ADORNMENTS = utils_cn.cn(
|
|
13
13
|
"gap-[.75em] rounded-full",
|
|
@@ -108,4 +108,4 @@ Button.displayName = "Button";
|
|
|
108
108
|
|
|
109
109
|
exports.Button = Button;
|
|
110
110
|
exports.buttonVariants = buttonVariants;
|
|
111
|
-
//# sourceMappingURL=Button-
|
|
111
|
+
//# sourceMappingURL=Button-D10WB4vc.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button-DA5XLUon.cjs","sources":["../src/ds/components/Button/Button.tsx"],"sourcesContent":["import { 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 { controlHeight, controlSizeClasses } from '@/ds/primitives/control-size';\nimport { controlFocusBorderVisible, sharedFormElementDisabledStyle } from '@/ds/primitives/form-element';\nimport { cn } from '@/lib/utils';\n\n// Adornments for text-mode buttons: gap between icon+label, larger radius, and SVG sizing for\n// inline `<svg>` children. Excluded from icon-mode because icon-mode wraps children in `<Icon>`\n// (so `[&>svg]` selectors don't match) and uses its own `rounded-full` (circle).\nconst TEXT_MODE_ADORNMENTS = cn(\n 'gap-[.75em] rounded-full',\n '[&>svg]:mx-[-.3em] [&>svg]:size-[1.1em]',\n '[&:hover>svg]:opacity-100 [&>svg]:opacity-50',\n '[&>svg]:transition-opacity [&>svg]:duration-normal [&>svg]:ease-out-custom',\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 leading-0',\n 'transition-all duration-normal ease-out-custom',\n sharedFormElementDisabledStyle,\n controlFocusBorderVisible,\n ),\n {\n variants: {\n variant: {\n default:\n 'border border-border2 bg-surface3 text-neutral6 hover:bg-surface5 hover:text-neutral6 active:bg-surface6',\n primary:\n 'border border-transparent bg-neutral6 font-medium text-surface1 hover:bg-neutral6/90 active:bg-neutral6/80',\n destructive:\n 'border border-transparent bg-accent2 font-medium text-white hover:bg-accent2/90 active:bg-accent2/80',\n 'destructive-ghost':\n 'border border-transparent bg-transparent text-accent2 hover:bg-accent2/10 hover:text-accent2 active:bg-accent2/15',\n ghost:\n 'border border-transparent bg-transparent text-neutral4 hover:bg-neutral6/5 hover:text-neutral6 active:bg-neutral6/10',\n outline:\n 'border border-border1 bg-transparent text-neutral5 hover:bg-surface3 hover:text-neutral6 active:bg-surface4',\n },\n size: {\n xs: cn(controlSizeClasses.xs, 'px-[.8em]', TEXT_MODE_ADORNMENTS),\n sm: cn(controlSizeClasses.sm, 'px-[.9em]', TEXT_MODE_ADORNMENTS),\n md: cn(controlSizeClasses.md, 'px-[.9em]', TEXT_MODE_ADORNMENTS),\n lg: cn(controlSizeClasses.default, 'px-[1em]', TEXT_MODE_ADORNMENTS),\n // Icon sizes: square dimensions, fully rounded → circle. Active state inherits from variant\n // (e.g. `active:bg-surface5`) — same press feedback as text-mode for consistency.\n 'icon-xs': cn(controlHeight.xs, 'w-form-xs rounded-full'),\n 'icon-sm': cn(controlHeight.sm, 'w-form-sm rounded-full'),\n 'icon-md': cn(controlHeight.md, 'w-form-md rounded-full'),\n 'icon-lg': cn(controlHeight.lg, 'w-form-lg rounded-full'),\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n },\n);\n\n// Public types derived from cva — single source of truth. Adding a variant or size to\n// `buttonVariants` automatically updates these unions.\ntype ButtonVariantsProps = VariantProps<typeof buttonVariants>;\nexport type ButtonVariant = NonNullable<ButtonVariantsProps['variant']>;\nexport type ButtonSize = NonNullable<ButtonVariantsProps['size']>;\nexport type IconButtonSize = Extract<ButtonSize, `icon-${string}`>;\nexport type TextButtonSize = Exclude<ButtonSize, IconButtonSize>;\n\nexport interface ButtonProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>, ButtonVariantsProps {\n as?: React.ElementType;\n className?: string;\n href?: string;\n to?: string;\n prefetch?: boolean | null;\n children: React.ReactNode;\n tooltip?: React.ReactNode;\n target?: string;\n type?: 'button' | 'submit' | 'reset';\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\n// Button's icon-* sizes don't match `<Icon>`'s own size scale (`sm | default | lg`).\nconst iconChildSizeMap: Record<IconButtonSize, 'sm' | 'default' | 'lg'> = {\n 'icon-xs': 'sm',\n 'icon-sm': 'sm',\n 'icon-md': 'default',\n 'icon-lg': 'lg',\n};\n\n// Walks React children, expanding `<></>` fragments so `isIconOnly` can inspect the real\n// elements inside. `<Button><><Icon/></></Button>` should still count as icon-only.\nfunction flattenChildren(children: React.ReactNode): React.ReactNode[] {\n const result: React.ReactNode[] = [];\n React.Children.forEach(children, child => {\n if (React.isValidElement<{ children?: React.ReactNode }>(child) && child.type === React.Fragment) {\n result.push(...flattenChildren(child.props.children));\n } else {\n result.push(child);\n }\n });\n return result;\n}\n\n// True when every child is a React element (no text/label). Used in text-mode to brighten the\n// SVG of label-less buttons so the glyph reads stronger.\nfunction isIconOnly(children: React.ReactNode): boolean {\n const flat = flattenChildren(children);\n return flat.length > 0 && flat.every(child => React.isValidElement(child));\n}\n\n// Type guard: narrows `ButtonSize` to `IconButtonSize` so consumers (e.g. `iconChildSizeMap`)\n// can index into icon-only structures without a cast.\nfunction isIconButtonSize(size: ButtonSize | null | undefined): size is IconButtonSize {\n return typeof size === 'string' && size.startsWith('icon-');\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n { className, as, size, variant = 'default', disabled, children, tooltip, 'aria-label': ariaLabelProp, ...props },\n ref,\n ) => {\n const Component = as || 'button';\n const iconMode = isIconButtonSize(size);\n const resolvedSize: ButtonSize = size ?? 'md';\n const isLabelless = !iconMode && isIconOnly(children);\n\n // Icon-only buttons need an a11y label. If a string tooltip is provided, reuse it.\n const ariaLabel = ariaLabelProp ?? ((iconMode || isLabelless) && typeof tooltip === 'string' ? tooltip : undefined);\n\n const content = iconMode ? <Icon size={iconChildSizeMap[size as IconButtonSize]}>{children}</Icon> : children;\n\n const button = (\n <Component\n ref={ref}\n disabled={disabled}\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.tsx).\n data-variant={variant}\n className={cn(buttonVariants({ variant, size: resolvedSize }), isLabelless && '[&>svg]:opacity-75', className)}\n {...props}\n >\n {content}\n </Component>\n );\n\n if (tooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n );\n }\n\n return button;\n },\n);\n\nButton.displayName = 'Button';\n"],"names":["cn","cva","sharedFormElementDisabledStyle","controlFocusBorderVisible","controlSizeClasses","controlHeight","tooltip","jsx","Icon","Tooltip","TooltipTrigger","TooltipContent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Button-D10WB4vc.cjs","sources":["../src/ds/components/Button/Button.tsx"],"sourcesContent":["import { 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 { controlHeight, controlSizeClasses } from '@/ds/primitives/control-size';\nimport { controlFocusBorderVisible, sharedFormElementDisabledStyle } from '@/ds/primitives/form-element';\nimport { cn } from '@/lib/utils';\n\n// Adornments for text-mode buttons: gap between icon+label, larger radius, and SVG sizing for\n// inline `<svg>` children. Excluded from icon-mode because icon-mode wraps children in `<Icon>`\n// (so `[&>svg]` selectors don't match) and uses its own `rounded-full` (circle).\nconst TEXT_MODE_ADORNMENTS = cn(\n 'gap-[.75em] rounded-full',\n '[&>svg]:mx-[-.3em] [&>svg]:size-[1.1em]',\n '[&:hover>svg]:opacity-100 [&>svg]:opacity-50',\n '[&>svg]:transition-opacity [&>svg]:duration-normal [&>svg]:ease-out-custom',\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 leading-0',\n 'transition-all duration-normal ease-out-custom',\n sharedFormElementDisabledStyle,\n controlFocusBorderVisible,\n ),\n {\n variants: {\n variant: {\n default:\n 'border border-border2 bg-surface3 text-neutral6 hover:bg-surface5 hover:text-neutral6 active:bg-surface6',\n primary:\n 'border border-transparent bg-neutral6 font-medium text-surface1 hover:bg-neutral6/90 active:bg-neutral6/80',\n destructive:\n 'border border-transparent bg-accent2 font-medium text-white hover:bg-accent2/90 active:bg-accent2/80',\n 'destructive-ghost':\n 'border border-transparent bg-transparent text-accent2 hover:bg-accent2/10 hover:text-accent2 active:bg-accent2/15',\n ghost:\n 'border border-transparent bg-transparent text-neutral4 hover:bg-neutral6/5 hover:text-neutral6 active:bg-neutral6/10',\n outline:\n 'border border-border1 bg-transparent text-neutral5 hover:bg-surface3 hover:text-neutral6 active:bg-surface4',\n },\n size: {\n xs: cn(controlSizeClasses.xs, 'px-[.8em]', TEXT_MODE_ADORNMENTS),\n sm: cn(controlSizeClasses.sm, 'px-[.9em]', TEXT_MODE_ADORNMENTS),\n md: cn(controlSizeClasses.md, 'px-[.9em]', TEXT_MODE_ADORNMENTS),\n lg: cn(controlSizeClasses.default, 'px-[1em]', TEXT_MODE_ADORNMENTS),\n // Icon sizes: square dimensions, fully rounded → circle. Active state inherits from variant\n // (e.g. `active:bg-surface5`) — same press feedback as text-mode for consistency.\n 'icon-xs': cn(controlHeight.xs, 'w-form-xs rounded-full'),\n 'icon-sm': cn(controlHeight.sm, 'w-form-sm rounded-full'),\n 'icon-md': cn(controlHeight.md, 'w-form-md rounded-full'),\n 'icon-lg': cn(controlHeight.lg, 'w-form-lg rounded-full'),\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n },\n);\n\n// Public types derived from cva — single source of truth. Adding a variant or size to\n// `buttonVariants` automatically updates these unions.\ntype ButtonVariantsProps = VariantProps<typeof buttonVariants>;\nexport type ButtonVariant = NonNullable<ButtonVariantsProps['variant']>;\nexport type ButtonSize = NonNullable<ButtonVariantsProps['size']>;\nexport type IconButtonSize = Extract<ButtonSize, `icon-${string}`>;\nexport type TextButtonSize = Exclude<ButtonSize, IconButtonSize>;\n\nexport interface ButtonProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>, ButtonVariantsProps {\n as?: React.ElementType;\n className?: string;\n href?: string;\n to?: string;\n prefetch?: boolean | null;\n children: React.ReactNode;\n tooltip?: React.ReactNode;\n target?: string;\n type?: 'button' | 'submit' | 'reset';\n onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\n// Button's icon-* sizes don't match `<Icon>`'s own size scale (`sm | default | lg`).\nconst iconChildSizeMap: Record<IconButtonSize, 'sm' | 'default' | 'lg'> = {\n 'icon-xs': 'sm',\n 'icon-sm': 'sm',\n 'icon-md': 'default',\n 'icon-lg': 'lg',\n};\n\n// Walks React children, expanding `<></>` fragments so `isIconOnly` can inspect the real\n// elements inside. `<Button><><Icon/></></Button>` should still count as icon-only.\nfunction flattenChildren(children: React.ReactNode): React.ReactNode[] {\n const result: React.ReactNode[] = [];\n React.Children.forEach(children, child => {\n if (React.isValidElement<{ children?: React.ReactNode }>(child) && child.type === React.Fragment) {\n result.push(...flattenChildren(child.props.children));\n } else {\n result.push(child);\n }\n });\n return result;\n}\n\n// True when every child is a React element (no text/label). Used in text-mode to brighten the\n// SVG of label-less buttons so the glyph reads stronger.\nfunction isIconOnly(children: React.ReactNode): boolean {\n const flat = flattenChildren(children);\n return flat.length > 0 && flat.every(child => React.isValidElement(child));\n}\n\n// Type guard: narrows `ButtonSize` to `IconButtonSize` so consumers (e.g. `iconChildSizeMap`)\n// can index into icon-only structures without a cast.\nfunction isIconButtonSize(size: ButtonSize | null | undefined): size is IconButtonSize {\n return typeof size === 'string' && size.startsWith('icon-');\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n { className, as, size, variant = 'default', disabled, children, tooltip, 'aria-label': ariaLabelProp, ...props },\n ref,\n ) => {\n const Component = as || 'button';\n const iconMode = isIconButtonSize(size);\n const resolvedSize: ButtonSize = size ?? 'md';\n const isLabelless = !iconMode && isIconOnly(children);\n\n // Icon-only buttons need an a11y label. If a string tooltip is provided, reuse it.\n const ariaLabel = ariaLabelProp ?? ((iconMode || isLabelless) && typeof tooltip === 'string' ? tooltip : undefined);\n\n const content = iconMode ? <Icon size={iconChildSizeMap[size as IconButtonSize]}>{children}</Icon> : children;\n\n const button = (\n <Component\n ref={ref}\n disabled={disabled}\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.tsx).\n data-variant={variant}\n className={cn(buttonVariants({ variant, size: resolvedSize }), isLabelless && '[&>svg]:opacity-75', className)}\n {...props}\n >\n {content}\n </Component>\n );\n\n if (tooltip) {\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n );\n }\n\n return button;\n },\n);\n\nButton.displayName = 'Button';\n"],"names":["cn","cva","sharedFormElementDisabledStyle","controlFocusBorderVisible","controlSizeClasses","controlHeight","tooltip","jsx","Icon","Tooltip","TooltipTrigger","TooltipContent"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { c as cva } from './index-
|
|
2
|
+
import { c as cva } from './index-DsNrjFJd.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import { c as cn } from './cn-
|
|
4
|
+
import { c as cn } from './cn-B4oPhFx9.js';
|
|
5
5
|
|
|
6
6
|
const cardVariants = cva(
|
|
7
7
|
// Base styles
|
|
@@ -93,4 +93,4 @@ const CardFooter = React.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
93
93
|
CardFooter.displayName = "CardFooter";
|
|
94
94
|
|
|
95
95
|
export { Card as C, CardContent as a, CardDescription as b, CardFooter as c, CardHeader as d, CardLink as e, CardTitle as f };
|
|
96
|
-
//# sourceMappingURL=Card-
|
|
96
|
+
//# sourceMappingURL=Card-CbNFrGXs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card-
|
|
1
|
+
{"version":3,"file":"Card-CbNFrGXs.js","sources":["../src/ds/components/Card/Card.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\nimport type { LinkComponent } from '@/ds/types/link-component';\nimport { cn } from '@/lib/utils';\n\nconst cardVariants = cva(\n // Base styles\n 'duration-normal rounded-lg transition-all ease-out-custom motion-reduce:transition-none',\n {\n variants: {\n appearance: {\n outlined: 'border border-border1 bg-surface2',\n surface: 'bg-surface3',\n },\n elevation: {\n flat: '',\n raised: 'shadow-card',\n elevated: 'shadow-elevated',\n },\n interactive: {\n true: 'cursor-pointer active:scale-99',\n false: '',\n },\n },\n compoundVariants: [\n {\n appearance: 'outlined',\n interactive: true,\n className: 'hover:border-border2 hover:bg-surface3',\n },\n {\n appearance: 'surface',\n interactive: true,\n className:\n 'hover:bg-surface4 focus-visible:bg-surface4 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-border2 active:bg-surface5',\n },\n ],\n defaultVariants: {\n appearance: 'outlined',\n elevation: 'flat',\n interactive: false,\n },\n },\n);\n\nexport type CardProps = React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof cardVariants> & {\n as?: React.ElementType;\n };\n\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, appearance, elevation, interactive, as, ...props }, ref) => {\n const Component = as || (interactive ? 'button' : 'div');\n\n return (\n <Component\n ref={ref}\n type={Component === 'button' ? 'button' : undefined}\n className={cn(cardVariants({ appearance, elevation, interactive }), className)}\n {...props}\n />\n );\n },\n);\nCard.displayName = 'Card';\n\nexport type CardLinkProps = Omit<React.ComponentPropsWithoutRef<'a'>, 'href'> &\n Omit<VariantProps<typeof cardVariants>, 'interactive'> & {\n href: string;\n LinkComponent?: LinkComponent;\n };\n\nexport function CardLink({ className, appearance, elevation, LinkComponent: Link = 'a', ...props }: CardLinkProps) {\n return <Link className={cn(cardVariants({ appearance, elevation, interactive: true }), className)} {...props} />;\n}\n\n// Card Header component\nexport type CardHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-4 pb-0', className)} {...props} />\n));\nCardHeader.displayName = 'CardHeader';\n\n// Card Title component\nexport type CardTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nexport const CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn('text-ui-md leading-none font-semibold tracking-tight text-neutral6', className)}\n {...props}\n />\n));\nCardTitle.displayName = 'CardTitle';\n\n// Card Description component\nexport type CardDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nexport const CardDescription = React.forwardRef<HTMLParagraphElement, CardDescriptionProps>(\n ({ className, ...props }, ref) => <p ref={ref} className={cn('text-ui-sm text-neutral3', className)} {...props} />,\n);\nCardDescription.displayName = 'CardDescription';\n\n// Card Content component\nconst cardContentVariants = cva('', {\n variants: {\n density: {\n default: 'p-4',\n compact: 'p-3',\n },\n },\n defaultVariants: {\n density: 'default',\n },\n});\n\nexport type CardContentProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof cardContentVariants>;\n\nexport const CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(\n ({ className, density, ...props }, ref) => (\n <div ref={ref} className={cn(cardContentVariants({ density }), className)} {...props} />\n ),\n);\nCardContent.displayName = 'CardContent';\n\n// Card Footer component\nexport type CardFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-4 pt-0', className)} {...props} />\n));\nCardFooter.displayName = 'CardFooter';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
const index = require('./index-
|
|
4
|
+
const index = require('./index-BRtrE4oe.cjs');
|
|
5
5
|
const React = require('react');
|
|
6
|
-
const utils_cn = require('./cn-
|
|
6
|
+
const utils_cn = require('./cn-DCPcv4xv.cjs');
|
|
7
7
|
|
|
8
8
|
function _interopNamespaceDefault(e) {
|
|
9
9
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
|
|
@@ -120,4 +120,4 @@ exports.CardFooter = CardFooter;
|
|
|
120
120
|
exports.CardHeader = CardHeader;
|
|
121
121
|
exports.CardLink = CardLink;
|
|
122
122
|
exports.CardTitle = CardTitle;
|
|
123
|
-
//# sourceMappingURL=Card-
|
|
123
|
+
//# sourceMappingURL=Card-ZR65FNl8.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card-
|
|
1
|
+
{"version":3,"file":"Card-ZR65FNl8.cjs","sources":["../src/ds/components/Card/Card.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\nimport type { LinkComponent } from '@/ds/types/link-component';\nimport { cn } from '@/lib/utils';\n\nconst cardVariants = cva(\n // Base styles\n 'duration-normal rounded-lg transition-all ease-out-custom motion-reduce:transition-none',\n {\n variants: {\n appearance: {\n outlined: 'border border-border1 bg-surface2',\n surface: 'bg-surface3',\n },\n elevation: {\n flat: '',\n raised: 'shadow-card',\n elevated: 'shadow-elevated',\n },\n interactive: {\n true: 'cursor-pointer active:scale-99',\n false: '',\n },\n },\n compoundVariants: [\n {\n appearance: 'outlined',\n interactive: true,\n className: 'hover:border-border2 hover:bg-surface3',\n },\n {\n appearance: 'surface',\n interactive: true,\n className:\n 'hover:bg-surface4 focus-visible:bg-surface4 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-border2 active:bg-surface5',\n },\n ],\n defaultVariants: {\n appearance: 'outlined',\n elevation: 'flat',\n interactive: false,\n },\n },\n);\n\nexport type CardProps = React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof cardVariants> & {\n as?: React.ElementType;\n };\n\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, appearance, elevation, interactive, as, ...props }, ref) => {\n const Component = as || (interactive ? 'button' : 'div');\n\n return (\n <Component\n ref={ref}\n type={Component === 'button' ? 'button' : undefined}\n className={cn(cardVariants({ appearance, elevation, interactive }), className)}\n {...props}\n />\n );\n },\n);\nCard.displayName = 'Card';\n\nexport type CardLinkProps = Omit<React.ComponentPropsWithoutRef<'a'>, 'href'> &\n Omit<VariantProps<typeof cardVariants>, 'interactive'> & {\n href: string;\n LinkComponent?: LinkComponent;\n };\n\nexport function CardLink({ className, appearance, elevation, LinkComponent: Link = 'a', ...props }: CardLinkProps) {\n return <Link className={cn(cardVariants({ appearance, elevation, interactive: true }), className)} {...props} />;\n}\n\n// Card Header component\nexport type CardHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-4 pb-0', className)} {...props} />\n));\nCardHeader.displayName = 'CardHeader';\n\n// Card Title component\nexport type CardTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nexport const CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn('text-ui-md leading-none font-semibold tracking-tight text-neutral6', className)}\n {...props}\n />\n));\nCardTitle.displayName = 'CardTitle';\n\n// Card Description component\nexport type CardDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nexport const CardDescription = React.forwardRef<HTMLParagraphElement, CardDescriptionProps>(\n ({ className, ...props }, ref) => <p ref={ref} className={cn('text-ui-sm text-neutral3', className)} {...props} />,\n);\nCardDescription.displayName = 'CardDescription';\n\n// Card Content component\nconst cardContentVariants = cva('', {\n variants: {\n density: {\n default: 'p-4',\n compact: 'p-3',\n },\n },\n defaultVariants: {\n density: 'default',\n },\n});\n\nexport type CardContentProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof cardContentVariants>;\n\nexport const CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(\n ({ className, density, ...props }, ref) => (\n <div ref={ref} className={cn(cardContentVariants({ density }), className)} {...props} />\n ),\n);\nCardContent.displayName = 'CardContent';\n\n// Card Footer component\nexport type CardFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-4 pt-0', className)} {...props} />\n));\nCardFooter.displayName = 'CardFooter';\n"],"names":["cva","React","jsx","cn"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { c as cn } from './cn-
|
|
2
|
+
import { c as cn } from './cn-B4oPhFx9.js';
|
|
3
3
|
|
|
4
4
|
function EmptyState({
|
|
5
5
|
iconSlot,
|
|
@@ -28,4 +28,4 @@ function EmptyState({
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
export { EmptyState as E };
|
|
31
|
-
//# sourceMappingURL=EmptyState-
|
|
31
|
+
//# sourceMappingURL=EmptyState-CA1zVauT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyState-
|
|
1
|
+
{"version":3,"file":"EmptyState-CA1zVauT.js","sources":["../src/ds/components/EmptyState/EmptyState.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type EmptyStateProps = {\n iconSlot: React.ReactNode;\n titleSlot: React.ReactNode;\n descriptionSlot?: React.ReactNode;\n actionSlot?: React.ReactNode;\n className?: string;\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n};\n\nexport function EmptyState({\n iconSlot,\n titleSlot,\n descriptionSlot,\n actionSlot,\n className,\n as: HeadingTag = 'h3',\n}: EmptyStateProps) {\n return (\n <div\n className={cn(\n 'flex flex-col items-center justify-center px-6 py-10 text-center',\n 'duration-normal transition-opacity ease-out-custom',\n className,\n )}\n >\n {iconSlot && <div className=\"mb-4\">{iconSlot}</div>}\n <HeadingTag className=\"text-ui-md text-neutral5 font-medium\">{titleSlot}</HeadingTag>\n {descriptionSlot && <p className=\"text-ui-sm text-neutral3 mt-1.5 max-w-md\">{descriptionSlot}</p>}\n {actionSlot && <div className=\"mt-5\">{actionSlot}</div>}\n </div>\n );\n}\n"],"names":[],"mappings":";;;AAYO,SAAS,UAAA,CAAW;AAAA,EACzB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,eAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAI,UAAA,GAAa;AACnB,CAAA,EAAoB;AAClB,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,kEAAA;AAAA,QACA,oDAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,QAAA,oBAAY,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,MAAA,EAAQ,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,wBAC7C,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,sCAAA,EAAwC,QAAA,EAAA,SAAA,EAAU,CAAA;AAAA,QACvE,eAAA,oBAAmB,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,4CAA4C,QAAA,EAAA,eAAA,EAAgB,CAAA;AAAA,QAC5F,UAAA,oBAAc,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,QAAQ,QAAA,EAAA,UAAA,EAAW;AAAA;AAAA;AAAA,GACnD;AAEJ;;;;"}
|