@mastra/playground-ui 41.1.0-alpha.2 → 42.0.0-alpha.14
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/CHANGELOG.md +142 -0
- package/dist/Card-BjFMX3pD.js +96 -0
- package/dist/Card-BjFMX3pD.js.map +1 -0
- package/dist/Card-WU2qkiHB.cjs +123 -0
- package/dist/Card-WU2qkiHB.cjs.map +1 -0
- package/dist/{Txt-p33XTnu8.js → Txt-Df42XG5p.js} +3 -3
- package/dist/Txt-Df42XG5p.js.map +1 -0
- package/dist/{Txt-BT8_EkuZ.cjs → Txt-I5lK8zy7.cjs} +3 -3
- package/dist/Txt-I5lK8zy7.cjs.map +1 -0
- package/dist/{buttons-group-b6an6uao.js → buttons-group-DJh4wnMs.js} +4 -4
- package/dist/{buttons-group-b6an6uao.js.map → buttons-group-DJh4wnMs.js.map} +1 -1
- package/dist/{buttons-group-C0fJastT.cjs → buttons-group-Dw8Wu4sj.cjs} +4 -4
- package/dist/{buttons-group-C0fJastT.cjs.map → buttons-group-Dw8Wu4sj.cjs.map} +1 -1
- package/dist/components/Avatar.cjs.js +1 -1
- package/dist/components/Avatar.es.js +1 -1
- package/dist/components/Breadcrumb.cjs.js +2 -2
- package/dist/components/Breadcrumb.cjs.js.map +1 -1
- package/dist/components/Breadcrumb.es.js +2 -2
- package/dist/components/Breadcrumb.es.js.map +1 -1
- package/dist/components/ButtonsGroup.cjs.js +1 -1
- package/dist/components/ButtonsGroup.es.js +1 -1
- package/dist/components/Card.cjs.js +8 -84
- package/dist/components/Card.cjs.js.map +1 -1
- package/dist/components/Card.es.js +1 -63
- package/dist/components/Card.es.js.map +1 -1
- package/dist/components/ClampedText.cjs.js +51 -0
- package/dist/components/ClampedText.cjs.js.map +1 -0
- package/dist/components/ClampedText.d.ts +2 -0
- package/dist/components/ClampedText.es.js +47 -0
- package/dist/components/ClampedText.es.js.map +1 -0
- package/dist/components/Composer.cjs.js +2 -2
- package/dist/components/Composer.cjs.js.map +1 -1
- package/dist/components/Composer.es.js +2 -2
- package/dist/components/Composer.es.js.map +1 -1
- package/dist/components/ContentBlocks.cjs.js.map +1 -1
- package/dist/components/ContentBlocks.es.js.map +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +4 -4
- package/dist/components/DataDetailsPanel.cjs.js.map +1 -1
- package/dist/components/DataDetailsPanel.es.js +4 -4
- package/dist/components/DataDetailsPanel.es.js.map +1 -1
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +1020 -0
- package/dist/components/DateRangeTimeline.cjs.js.map +1 -0
- package/dist/components/DateRangeTimeline.d.ts +2 -0
- package/dist/components/DateRangeTimeline.es.js +1014 -0
- package/dist/components/DateRangeTimeline.es.js.map +1 -0
- package/dist/components/DateTimePicker.cjs.js +5 -4
- package/dist/components/DateTimePicker.cjs.js.map +1 -1
- package/dist/components/DateTimePicker.es.js +3 -2
- package/dist/components/DateTimePicker.es.js.map +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/Entity.cjs.js +1 -1
- package/dist/components/Entity.es.js +1 -1
- package/dist/components/EntityHeader.cjs.js +1 -1
- package/dist/components/EntityHeader.es.js +1 -1
- package/dist/components/Entry.cjs.js +1 -1
- package/dist/components/Entry.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +2 -2
- package/dist/components/EnvironmentVariablesEditor.es.js +2 -2
- package/dist/components/FormFieldBlocks.cjs.js +4 -4
- package/dist/components/FormFieldBlocks.es.js +4 -4
- package/dist/components/Header.cjs.js +1 -1
- package/dist/components/Header.es.js +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +2 -2
- package/dist/components/JSONSchemaForm.es.js +2 -2
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/MainContent.cjs.js +3 -3
- package/dist/components/MainContent.cjs.js.map +1 -1
- package/dist/components/MainContent.es.js +3 -3
- package/dist/components/MainContent.es.js.map +1 -1
- package/dist/components/MainSidebar.cjs.js +38 -11
- package/dist/components/MainSidebar.cjs.js.map +1 -1
- package/dist/components/MainSidebar.es.js +38 -11
- package/dist/components/MainSidebar.es.js.map +1 -1
- package/dist/components/MetricsLineChart.cjs.js +1 -1
- package/dist/components/MetricsLineChart.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +1 -1
- package/dist/components/PropertyFilter.es.js +2 -2
- package/dist/components/SankeyChart.cjs.js +68 -75
- package/dist/components/SankeyChart.cjs.js.map +1 -1
- package/dist/components/SankeyChart.es.js +60 -71
- package/dist/components/SankeyChart.es.js.map +1 -1
- package/dist/components/SideDialog.cjs.js +2 -2
- package/dist/components/SideDialog.es.js +2 -2
- package/dist/components/Table.cjs.js +1 -1
- package/dist/components/Table.es.js +1 -1
- package/dist/components/ThreadList.cjs.js +1 -1
- package/dist/components/ThreadList.es.js +1 -1
- package/dist/components/Toaster.cjs.js +1 -0
- package/dist/components/Toaster.cjs.js.map +1 -1
- package/dist/components/Toaster.es.js +1 -1
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/components/Txt.cjs.js +1 -1
- package/dist/components/Txt.es.js +1 -1
- package/dist/components/ai/ask-user.cjs.js +147 -0
- package/dist/components/ai/ask-user.cjs.js.map +1 -0
- package/dist/components/ai/ask-user.d.ts +2 -0
- package/dist/components/ai/ask-user.es.js +136 -0
- package/dist/components/ai/ask-user.es.js.map +1 -0
- package/dist/components/ai/plan.cjs.js +1 -1
- package/dist/components/ai/plan.es.js +1 -1
- package/dist/components/ai/task-list.cjs.js +90 -0
- package/dist/components/ai/task-list.cjs.js.map +1 -0
- package/dist/components/ai/task-list.d.ts +2 -0
- package/dist/components/ai/task-list.es.js +80 -0
- package/dist/components/ai/task-list.es.js.map +1 -0
- package/dist/{data-code-section-Crs5wpnX.js → data-code-section-BjqDCzy3.js} +3 -3
- package/dist/{data-code-section-Crs5wpnX.js.map → data-code-section-BjqDCzy3.js.map} +1 -1
- package/dist/{data-code-section-DYy_n9I1.cjs → data-code-section-D0BwpqvV.cjs} +3 -3
- package/dist/{data-code-section-DYy_n9I1.cjs.map → data-code-section-D0BwpqvV.cjs.map} +1 -1
- package/dist/{data-panel-Otc4qdKL.js → data-panel-BGpCzY5K.js} +3 -3
- package/dist/{data-panel-Otc4qdKL.js.map → data-panel-BGpCzY5K.js.map} +1 -1
- package/dist/{data-panel-CAbxKoPF.cjs → data-panel-CsonAnlK.cjs} +3 -3
- package/dist/{data-panel-CAbxKoPF.cjs.map → data-panel-CsonAnlK.cjs.map} +1 -1
- package/dist/date-picker-BpKciwOX.js +48 -0
- package/dist/date-picker-BpKciwOX.js.map +1 -0
- package/dist/date-picker-DrWmUawi.cjs +50 -0
- package/dist/date-picker-DrWmUawi.cjs.map +1 -0
- package/dist/{date-time-range-picker-BRQx-ox5.cjs → date-time-range-picker-CF4a39P7.cjs} +5 -4
- package/dist/{date-time-range-picker-BRQx-ox5.cjs.map → date-time-range-picker-CF4a39P7.cjs.map} +1 -1
- package/dist/{date-time-range-picker-Cw4Ac_rW.js → date-time-range-picker-DDNeOyj9.js} +3 -2
- package/dist/{date-time-range-picker-Cw4Ac_rW.js.map → date-time-range-picker-DDNeOyj9.js.map} +1 -1
- package/dist/domains/logs/components/log-details-view.cjs.js +1 -1
- package/dist/domains/logs/components/log-details-view.es.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/latency-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/latency-card-view.es.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.es.js +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +2 -2
- package/dist/domains/traces/components/span-data-panel-view.es.js +2 -2
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +2 -2
- package/dist/domains/traces/components/trace-data-panel-view.es.js +2 -2
- package/dist/domains/traces/components/traces-toolbar.cjs.js +1 -1
- package/dist/domains/traces/components/traces-toolbar.es.js +1 -1
- package/dist/{drawer-DtEZQBXj.cjs → drawer-DvuUmhic.cjs} +3 -3
- package/dist/{drawer-DtEZQBXj.cjs.map → drawer-DvuUmhic.cjs.map} +1 -1
- package/dist/{drawer-Djerm1Lo.js → drawer-Dyx25o_o.js} +3 -3
- package/dist/{drawer-Djerm1Lo.js.map → drawer-Dyx25o_o.js.map} +1 -1
- package/dist/ee/signals/components/signals-empty-state.cjs.js +152 -0
- package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -0
- package/dist/ee/signals/components/signals-empty-state.d.ts +2 -0
- package/dist/ee/signals/components/signals-empty-state.es.js +148 -0
- package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -0
- package/dist/ee/signals/components/signals-overview-page.cjs.js +3 -201
- package/dist/ee/signals/components/signals-overview-page.cjs.js.map +1 -1
- package/dist/ee/signals/components/signals-overview-page.es.js +5 -201
- package/dist/ee/signals/components/signals-overview-page.es.js.map +1 -1
- package/dist/ee/signals/components.cjs.js +0 -10
- package/dist/ee/signals/components.cjs.js.map +1 -1
- package/dist/ee/signals/components.es.js +1 -3
- package/dist/ee/signals/components.es.js.map +1 -1
- package/dist/ee/signals/signal-colors.cjs.js +28 -0
- package/dist/ee/signals/signal-colors.cjs.js.map +1 -0
- package/dist/ee/signals/signal-colors.d.ts +2 -0
- package/dist/ee/signals/signal-colors.es.js +23 -0
- package/dist/ee/signals/signal-colors.es.js.map +1 -0
- package/dist/ee/signals.cjs.js +3 -27
- package/dist/ee/signals.cjs.js.map +1 -1
- package/dist/ee/signals.es.js +2 -7
- package/dist/ee/signals.es.js.map +1 -1
- package/dist/{field-block-CC_EYPWe.js → field-block-CBdMcT-i.js} +2 -2
- package/dist/{field-block-CC_EYPWe.js.map → field-block-CBdMcT-i.js.map} +1 -1
- package/dist/{field-block-Dx-fDIP9.cjs → field-block-CEbnWKc0.cjs} +2 -2
- package/dist/{field-block-Dx-fDIP9.cjs.map → field-block-CEbnWKc0.cjs.map} +1 -1
- package/dist/hooks/use-is-clamped.cjs.js +36 -0
- package/dist/hooks/use-is-clamped.cjs.js.map +1 -0
- package/dist/hooks/use-is-clamped.d.ts +2 -0
- package/dist/hooks/use-is-clamped.es.js +32 -0
- package/dist/hooks/use-is-clamped.es.js.map +1 -0
- package/dist/{metrics-line-chart-ByY_VXfb.js → metrics-line-chart-COIxay_u.js} +6 -3
- package/dist/metrics-line-chart-COIxay_u.js.map +1 -0
- package/dist/{metrics-line-chart-FvsUXcL7.cjs → metrics-line-chart-kZ1Ed_ga.cjs} +6 -3
- package/dist/metrics-line-chart-kZ1Ed_ga.cjs.map +1 -0
- package/dist/primitives/portal-container.cjs.js.map +1 -1
- package/dist/primitives/portal-container.es.js.map +1 -1
- package/dist/{property-filter-applied-Ca0UdU5P.js → property-filter-applied-Bs1Ck691.js} +2 -2
- package/dist/{property-filter-applied-Ca0UdU5P.js.map → property-filter-applied-Bs1Ck691.js.map} +1 -1
- package/dist/{property-filter-applied-BYKTDczo.cjs → property-filter-applied-DgmkZVbl.cjs} +2 -2
- package/dist/{property-filter-applied-BYKTDczo.cjs.map → property-filter-applied-DgmkZVbl.cjs.map} +1 -1
- package/dist/resize/panel-drawer.cjs.js +1 -1
- package/dist/resize/panel-drawer.es.js +1 -1
- package/dist/sankeyColor-CQ5nkgtL.js +48 -0
- package/dist/sankeyColor-CQ5nkgtL.js.map +1 -0
- package/dist/sankeyColor-DONd5cg9.cjs +53 -0
- package/dist/sankeyColor-DONd5cg9.cjs.map +1 -0
- package/dist/{search-field-block-e9qthuwY.js → search-field-block-CMoQ9fjl.js} +4 -3
- package/dist/search-field-block-CMoQ9fjl.js.map +1 -0
- package/dist/{search-field-block-C4njnmUx.cjs → search-field-block-DmqZsrrI.cjs} +4 -3
- package/dist/search-field-block-DmqZsrrI.cjs.map +1 -0
- package/dist/{select-field-block-dq1ZmZVb.cjs → select-field-block-BI_NZs2R.cjs} +2 -2
- package/dist/{select-field-block-dq1ZmZVb.cjs.map → select-field-block-BI_NZs2R.cjs.map} +1 -1
- package/dist/{select-field-block-BWuqWh4k.js → select-field-block-BSlngEHK.js} +2 -2
- package/dist/{select-field-block-BWuqWh4k.js.map → select-field-block-BSlngEHK.js.map} +1 -1
- package/dist/signals-empty-state.css +54 -0
- package/dist/src/ds/components/Card/Card.d.ts +15 -2
- package/dist/src/ds/components/Card/index.d.ts +2 -2
- package/dist/src/ds/components/ClampedText/clamped-text.d.ts +20 -0
- package/dist/src/ds/components/ClampedText/clamped-text.stories.d.ts +8 -0
- package/dist/src/ds/components/ClampedText/index.d.ts +1 -0
- package/dist/src/ds/components/Composer/composer.d.ts +5 -1
- package/dist/src/ds/components/Composer/index.d.ts +1 -1
- package/dist/src/ds/components/DateRangeTimeline/DateRangeBoundaryPicker.d.ts +10 -0
- package/dist/src/ds/components/DateRangeTimeline/DateRangeBoundaryPickers.d.ts +14 -0
- package/dist/src/ds/components/DateRangeTimeline/DateRangeHandle.d.ts +15 -0
- package/dist/src/ds/components/DateRangeTimeline/DateRangeSelection.d.ts +14 -0
- package/dist/src/ds/components/DateRangeTimeline/DateRangeTicks.d.ts +8 -0
- package/dist/src/ds/components/DateRangeTimeline/DateRangeTimeline.d.ts +9 -0
- package/dist/src/ds/components/DateRangeTimeline/DateRangeTrack.d.ts +13 -0
- package/dist/src/ds/components/DateRangeTimeline/DateRangeTrackGrid.d.ts +6 -0
- package/dist/src/ds/components/DateRangeTimeline/hooks/use-pointer-drag.d.ts +14 -0
- package/dist/src/ds/components/DateRangeTimeline/hooks/useDateRangeBoundaryLayout.d.ts +8 -0
- package/dist/src/ds/components/DateRangeTimeline/hooks/useDateRangeKeyboardControls.d.ts +13 -0
- package/dist/src/ds/components/DateRangeTimeline/hooks/useDateRangePointerGestures.d.ts +21 -0
- package/dist/src/ds/components/DateRangeTimeline/hooks/useDateRangeTimelineState.d.ts +22 -0
- package/dist/src/ds/components/DateRangeTimeline/hooks/useDateRangeWheelZoom.d.ts +9 -0
- package/dist/src/ds/components/DateRangeTimeline/index.d.ts +3 -0
- package/dist/src/ds/components/DateRangeTimeline/lib/date-range-boundary-layout.d.ts +15 -0
- package/dist/src/ds/components/DateRangeTimeline/lib/date-range-timeline-grid.d.ts +7 -0
- package/dist/src/ds/components/DateRangeTimeline/lib/date-range-timeline-interactions.d.ts +37 -0
- package/dist/src/ds/components/DateRangeTimeline/lib/date-range-timeline-view-model.d.ts +37 -0
- package/dist/src/ds/components/DateRangeTimeline/lib/date-range-timeline.d.ts +29 -0
- package/dist/src/ds/components/DateRangeTimeline/types.d.ts +9 -0
- package/dist/src/ds/components/MainSidebar/main-sidebar-nav-item-classes.d.ts +8 -1
- package/dist/src/ds/components/MainSidebar/main-sidebar-nav-label.d.ts +2 -2
- package/dist/src/ds/components/MainSidebar/main-sidebar-nav-link.d.ts +12 -1
- package/dist/src/ds/components/MainSidebar/main-sidebar.d.ts +1 -0
- package/dist/src/ds/components/MetricsLineChart/metrics-line-chart.d.ts +6 -1
- package/dist/src/ds/components/SankeyChart/index.d.ts +2 -1
- package/dist/src/ds/components/SankeyChart/sankey-chart-utils.d.ts +2 -1
- package/dist/src/ds/components/SankeyChart/sankey-chart.d.ts +4 -2
- package/dist/src/ds/components/SankeyChart/sankey-context.d.ts +3 -1
- package/dist/src/ds/components/Toaster/index.d.ts +1 -1
- package/dist/src/ds/components/Txt/Txt.d.ts +3 -2
- package/dist/src/ds/components/ai/ask-user/ask-user.d.ts +42 -0
- package/dist/src/ds/components/ai/ask-user/ask-user.stories.d.ts +11 -0
- package/dist/src/ds/components/ai/ask-user/index.d.ts +1 -0
- package/dist/src/ds/components/ai/task-list/index.d.ts +1 -0
- package/dist/src/ds/components/ai/task-list/task-list.d.ts +31 -0
- package/dist/src/ds/components/ai/task-list/task-list.stories.d.ts +9 -0
- package/dist/src/ee/signals/components/index.d.ts +0 -2
- package/dist/src/ee/signals/components/signals-empty-state.d.ts +7 -0
- package/dist/src/ee/signals/components/signals-overview-page.d.ts +2 -22
- package/dist/src/ee/signals/index.d.ts +1 -4
- package/dist/src/ee/signals/signal-colors.d.ts +7 -0
- package/dist/src/hooks/use-is-clamped.d.ts +11 -0
- package/dist/style.css +432 -42
- package/dist/{text-field-block-CpKq1NCV.cjs → text-field-block-BUvxjW9m.cjs} +2 -2
- package/dist/{text-field-block-CpKq1NCV.cjs.map → text-field-block-BUvxjW9m.cjs.map} +1 -1
- package/dist/{text-field-block-CrFqgdKx.js → text-field-block-DxtR1Ft4.js} +2 -2
- package/dist/{text-field-block-CrFqgdKx.js.map → text-field-block-DxtR1Ft4.js.map} +1 -1
- package/dist/{time-picker-kYaitcDa.cjs → time-picker-Box0pdQU.cjs} +2 -46
- package/dist/time-picker-Box0pdQU.cjs.map +1 -0
- package/dist/{time-picker-Dg78gQcJ.js → time-picker-ew9aXG86.js} +4 -47
- package/dist/time-picker-ew9aXG86.js.map +1 -0
- package/package.json +10 -10
- package/theme.css +1 -0
- package/dist/Txt-BT8_EkuZ.cjs.map +0 -1
- package/dist/Txt-p33XTnu8.js.map +0 -1
- package/dist/ee/signals/components/signal-details-page.cjs.js +0 -288
- package/dist/ee/signals/components/signal-details-page.cjs.js.map +0 -1
- package/dist/ee/signals/components/signal-details-page.d.ts +0 -2
- package/dist/ee/signals/components/signal-details-page.es.js +0 -280
- package/dist/ee/signals/components/signal-details-page.es.js.map +0 -1
- package/dist/ee/signals/components/signals-entity-filter.cjs.js +0 -27
- package/dist/ee/signals/components/signals-entity-filter.cjs.js.map +0 -1
- package/dist/ee/signals/components/signals-entity-filter.d.ts +0 -2
- package/dist/ee/signals/components/signals-entity-filter.es.js +0 -23
- package/dist/ee/signals/components/signals-entity-filter.es.js.map +0 -1
- package/dist/ee/signals/hooks/use-entity-learning-config.cjs.js +0 -35
- package/dist/ee/signals/hooks/use-entity-learning-config.cjs.js.map +0 -1
- package/dist/ee/signals/hooks/use-entity-learning-config.d.ts +0 -2
- package/dist/ee/signals/hooks/use-entity-learning-config.es.js +0 -31
- package/dist/ee/signals/hooks/use-entity-learning-config.es.js.map +0 -1
- package/dist/ee/signals/hooks/use-entity-learning.cjs.js +0 -96
- package/dist/ee/signals/hooks/use-entity-learning.cjs.js.map +0 -1
- package/dist/ee/signals/hooks/use-entity-learning.d.ts +0 -2
- package/dist/ee/signals/hooks/use-entity-learning.es.js +0 -84
- package/dist/ee/signals/hooks/use-entity-learning.es.js.map +0 -1
- package/dist/ee/signals/hooks.cjs.js +0 -20
- package/dist/ee/signals/hooks.cjs.js.map +0 -1
- package/dist/ee/signals/hooks.d.ts +0 -2
- package/dist/ee/signals/hooks.es.js +0 -3
- package/dist/ee/signals/hooks.es.js.map +0 -1
- package/dist/ee/signals/services/entity-learning-service.cjs.js +0 -88
- package/dist/ee/signals/services/entity-learning-service.cjs.js.map +0 -1
- package/dist/ee/signals/services/entity-learning-service.d.ts +0 -2
- package/dist/ee/signals/services/entity-learning-service.es.js +0 -84
- package/dist/ee/signals/services/entity-learning-service.es.js.map +0 -1
- package/dist/ee/signals/services/entity-learning-types.cjs.js +0 -3
- package/dist/ee/signals/services/entity-learning-types.cjs.js.map +0 -1
- package/dist/ee/signals/services/entity-learning-types.d.ts +0 -1
- package/dist/ee/signals/services/entity-learning-types.es.js +0 -2
- package/dist/ee/signals/services/entity-learning-types.es.js.map +0 -1
- package/dist/ee/signals/services.cjs.js +0 -10
- package/dist/ee/signals/services.cjs.js.map +0 -1
- package/dist/ee/signals/services.d.ts +0 -2
- package/dist/ee/signals/services.es.js +0 -2
- package/dist/ee/signals/services.es.js.map +0 -1
- package/dist/ee/signals/signals-data.cjs.js +0 -53
- package/dist/ee/signals/signals-data.cjs.js.map +0 -1
- package/dist/ee/signals/signals-data.d.ts +0 -2
- package/dist/ee/signals/signals-data.es.js +0 -48
- package/dist/ee/signals/signals-data.es.js.map +0 -1
- package/dist/ee/signals/types.cjs.js +0 -3
- package/dist/ee/signals/types.cjs.js.map +0 -1
- package/dist/ee/signals/types.d.ts +0 -1
- package/dist/ee/signals/types.es.js +0 -2
- package/dist/ee/signals/types.es.js.map +0 -1
- package/dist/metrics-line-chart-ByY_VXfb.js.map +0 -1
- package/dist/metrics-line-chart-FvsUXcL7.cjs.map +0 -1
- package/dist/search-field-block-C4njnmUx.cjs.map +0 -1
- package/dist/search-field-block-e9qthuwY.js.map +0 -1
- package/dist/src/ee/signals/components/signal-details-page.d.ts +0 -40
- package/dist/src/ee/signals/components/signals-entity-filter.d.ts +0 -13
- package/dist/src/ee/signals/hooks/index.d.ts +0 -2
- package/dist/src/ee/signals/hooks/use-entity-learning-config.d.ts +0 -14
- package/dist/src/ee/signals/hooks/use-entity-learning.d.ts +0 -24
- package/dist/src/ee/signals/services/entity-learning-service.d.ts +0 -43
- package/dist/src/ee/signals/services/entity-learning-types.d.ts +0 -123
- package/dist/src/ee/signals/services/index.d.ts +0 -2
- package/dist/src/ee/signals/signals-data.d.ts +0 -10
- package/dist/src/ee/signals/types.d.ts +0 -15
- package/dist/time-picker-Dg78gQcJ.js.map +0 -1
- package/dist/time-picker-kYaitcDa.cjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,147 @@
|
|
|
1
1
|
# @mastra/playground-ui
|
|
2
2
|
|
|
3
|
+
## 42.0.0-alpha.14
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Added compact sizing, custom interactive elements, and trailing actions to sidebar navigation items. ([#19959](https://github.com/mastra-ai/mastra/pull/19959))
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
<MainSidebar.NavLink
|
|
11
|
+
// Compact density for dense lists
|
|
12
|
+
size="sm"
|
|
13
|
+
// Bring your own interactive element (e.g. a router Link or button)
|
|
14
|
+
render={<Link to="/sessions/feature-work">Feature work</Link>}
|
|
15
|
+
// Trailing control rendered beside the row, independently clickable
|
|
16
|
+
action={
|
|
17
|
+
<Button size="icon-sm" variant="ghost" onClick={onDelete}>
|
|
18
|
+
<TrashIcon />
|
|
19
|
+
</Button>
|
|
20
|
+
}
|
|
21
|
+
/>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- Updated dependencies [[`d7385ad`](https://github.com/mastra-ai/mastra/commit/d7385ad9e88f9e4f33d15c0ec0bfebedde0cbc2e), [`3d6e539`](https://github.com/mastra-ai/mastra/commit/3d6e539272eb2ea0407034605ee1906b3be06b39), [`35865a5`](https://github.com/mastra-ai/mastra/commit/35865a53e194aa9634d6a70a97010e7a6b9d58b1), [`70687f7`](https://github.com/mastra-ai/mastra/commit/70687f7e495a322a02070b4a67cb0c77a5ca91ec), [`3d6e539`](https://github.com/mastra-ai/mastra/commit/3d6e539272eb2ea0407034605ee1906b3be06b39)]:
|
|
27
|
+
- @mastra/core@1.52.0-alpha.12
|
|
28
|
+
- @mastra/client-js@1.33.0-alpha.12
|
|
29
|
+
- @mastra/react@1.3.0-alpha.12
|
|
30
|
+
|
|
31
|
+
## 42.0.0-alpha.13
|
|
32
|
+
|
|
33
|
+
### Minor Changes
|
|
34
|
+
|
|
35
|
+
- Added a borderless surface appearance, compact content density, and a dedicated card link component with native link semantics, plus hover, focus, and active states for interactive cards. ([#19747](https://github.com/mastra-ai/mastra/pull/19747))
|
|
36
|
+
|
|
37
|
+
## 42.0.0-alpha.12
|
|
38
|
+
|
|
39
|
+
### Patch Changes
|
|
40
|
+
|
|
41
|
+
- Updated dependencies [[`c7d30cd`](https://github.com/mastra-ai/mastra/commit/c7d30cd86009c407df91105591f03cd6e3d2854d), [`ef03fbc`](https://github.com/mastra-ai/mastra/commit/ef03fbcc556bcbc04c9b3d06fab88771ecaa043c), [`6040ab9`](https://github.com/mastra-ai/mastra/commit/6040ab95bdfff38fceb1c0b9781a64a6d30f3cbd), [`a7bbe77`](https://github.com/mastra-ai/mastra/commit/a7bbe773577f60bc4761b534ef7ec6b476332dad), [`a7bbe77`](https://github.com/mastra-ai/mastra/commit/a7bbe773577f60bc4761b534ef7ec6b476332dad), [`4e68363`](https://github.com/mastra-ai/mastra/commit/4e683634f94ebd062d26a3bb6093a8dfc7263d37), [`9251370`](https://github.com/mastra-ai/mastra/commit/9251370ad413af464aa22d7566338bec5613e8de)]:
|
|
42
|
+
- @mastra/core@1.52.0-alpha.11
|
|
43
|
+
- @mastra/client-js@1.33.0-alpha.11
|
|
44
|
+
- @mastra/react@1.3.0-alpha.11
|
|
45
|
+
|
|
46
|
+
## 42.0.0-alpha.11
|
|
47
|
+
|
|
48
|
+
### Patch Changes
|
|
49
|
+
|
|
50
|
+
- Fixed composer inputs to show one scrollbar for long messages. Added a `maxHeight` prop for configuring the scrolling viewport. ([#19876](https://github.com/mastra-ai/mastra/pull/19876))
|
|
51
|
+
|
|
52
|
+
- Exported the shared toast API through the Toaster component entry point. ([#19876](https://github.com/mastra-ai/mastra/pull/19876))
|
|
53
|
+
|
|
54
|
+
## 42.0.0-alpha.10
|
|
55
|
+
|
|
56
|
+
### Patch Changes
|
|
57
|
+
|
|
58
|
+
- Improved breadcrumb navigation with clearer hover and pressed feedback for clickable path segments. ([#19840](https://github.com/mastra-ai/mastra/pull/19840))
|
|
59
|
+
|
|
60
|
+
- Fixed hidden search labels so search fields are announced correctly by assistive technologies. ([#19840](https://github.com/mastra-ai/mastra/pull/19840))
|
|
61
|
+
|
|
62
|
+
- Updated dependencies [[`41a5392`](https://github.com/mastra-ai/mastra/commit/41a5392d9f6c5e18d6b227f0fc0ddf49c50774e9), [`675fbff`](https://github.com/mastra-ai/mastra/commit/675fbff84d3274391b33e852f76083c38a5514e5), [`da009e1`](https://github.com/mastra-ai/mastra/commit/da009e1aacd89ed94b8d1b2af09c9d4fe7c4db49), [`35c2181`](https://github.com/mastra-ai/mastra/commit/35c2181e6a50e47c90ba36260db7c9723d54696f), [`b4b7ea8`](https://github.com/mastra-ai/mastra/commit/b4b7ea8733f033fc441ea47ed03f6afb17ec2248), [`675fbff`](https://github.com/mastra-ai/mastra/commit/675fbff84d3274391b33e852f76083c38a5514e5), [`c328769`](https://github.com/mastra-ai/mastra/commit/c3287698ff8ef98dba86d415faa566fa3e5f4d56), [`232fcbc`](https://github.com/mastra-ai/mastra/commit/232fcbc14fce625dd672ba043329c0b732c62be2), [`3491666`](https://github.com/mastra-ai/mastra/commit/34916663c4fdd43b48c21f4ab2d5fb6dcccc94f9)]:
|
|
63
|
+
- @mastra/core@1.52.0-alpha.10
|
|
64
|
+
- @mastra/client-js@1.33.0-alpha.10
|
|
65
|
+
- @mastra/react@1.3.0-alpha.10
|
|
66
|
+
|
|
67
|
+
## 42.0.0-alpha.9
|
|
68
|
+
|
|
69
|
+
### Patch Changes
|
|
70
|
+
|
|
71
|
+
- Updated dependencies [[`0a2c22c`](https://github.com/mastra-ai/mastra/commit/0a2c22c902604439ec490319e14c17f331e0c84c), [`3a8024c`](https://github.com/mastra-ai/mastra/commit/3a8024ce615f8aa89479c0d71fe61d10bb0040be)]:
|
|
72
|
+
- @mastra/core@1.52.0-alpha.9
|
|
73
|
+
- @mastra/client-js@1.33.0-alpha.9
|
|
74
|
+
- @mastra/react@1.2.6-alpha.9
|
|
75
|
+
|
|
76
|
+
## 42.0.0-alpha.8
|
|
77
|
+
|
|
78
|
+
### Patch Changes
|
|
79
|
+
|
|
80
|
+
- dependencies updates: ([#19388](https://github.com/mastra-ai/mastra/pull/19388))
|
|
81
|
+
- Updated dependency [`prettier@^3.9.5` ↗︎](https://www.npmjs.com/package/prettier/v/3.9.5) (from `^3.8.3`, in `dependencies`)
|
|
82
|
+
- Updated dependencies [[`3b77e77`](https://github.com/mastra-ai/mastra/commit/3b77e7704936522e4769d29de1b5ea6901f302bd), [`6b1bf3b`](https://github.com/mastra-ai/mastra/commit/6b1bf3b9494bd51aa8f654c68c9355d6046fa2a1), [`72e437c`](https://github.com/mastra-ai/mastra/commit/72e437c515942c80b9def5b026e0bdee61b469d9)]:
|
|
83
|
+
- @mastra/core@1.52.0-alpha.8
|
|
84
|
+
- @mastra/client-js@1.33.0-alpha.8
|
|
85
|
+
- @mastra/react@1.2.6-alpha.8
|
|
86
|
+
|
|
87
|
+
## 42.0.0-alpha.7
|
|
88
|
+
|
|
89
|
+
### Patch Changes
|
|
90
|
+
|
|
91
|
+
- Updated dependencies [[`b7e79c3`](https://github.com/mastra-ai/mastra/commit/b7e79c3c02ac5cd415db34ba0975ceafc1464333), [`b75d749`](https://github.com/mastra-ai/mastra/commit/b75d749621ff5d17e86bcb4ee809d301fb4f7cf3), [`a8799bb`](https://github.com/mastra-ai/mastra/commit/a8799bb8e44f4a60d01e4e2acd3448ff80bf14f8)]:
|
|
92
|
+
- @mastra/core@1.52.0-alpha.7
|
|
93
|
+
- @mastra/client-js@1.33.0-alpha.7
|
|
94
|
+
- @mastra/react@1.2.6-alpha.7
|
|
95
|
+
|
|
96
|
+
## 42.0.0-alpha.6
|
|
97
|
+
|
|
98
|
+
### Patch Changes
|
|
99
|
+
|
|
100
|
+
- Updated dependencies [[`a40adeb`](https://github.com/mastra-ai/mastra/commit/a40adeb222b961a56a58af56a106106525721b74), [`821648b`](https://github.com/mastra-ai/mastra/commit/821648bf2871ef840100c7bacbecf676010bd12a), [`11f6cd9`](https://github.com/mastra-ai/mastra/commit/11f6cd96fe42582403416608beb212cc1a2cc79e)]:
|
|
101
|
+
- @mastra/core@1.52.0-alpha.6
|
|
102
|
+
- @mastra/client-js@1.33.0-alpha.6
|
|
103
|
+
- @mastra/react@1.2.6-alpha.6
|
|
104
|
+
|
|
105
|
+
## 42.0.0-alpha.5
|
|
106
|
+
|
|
107
|
+
### Minor Changes
|
|
108
|
+
|
|
109
|
+
- Added reusable Ask User and Task List components for agent interfaces. ([#19624](https://github.com/mastra-ai/mastra/pull/19624))
|
|
110
|
+
|
|
111
|
+
### Patch Changes
|
|
112
|
+
|
|
113
|
+
- Fixed named form fields adding a second page scrollbar inside app scroll containers. ([#19617](https://github.com/mastra-ai/mastra/pull/19617))
|
|
114
|
+
|
|
115
|
+
- Updated dependencies [[`ec857fc`](https://github.com/mastra-ai/mastra/commit/ec857fc79c264b53b38e16478c789b7177f2ad59), [`e1f2fae`](https://github.com/mastra-ai/mastra/commit/e1f2faebaf048c3d4c2e2c01d293767c195d5794), [`63aa799`](https://github.com/mastra-ai/mastra/commit/63aa799c6b44eacc7806cda6846b7c5bbee06b37), [`73db8db`](https://github.com/mastra-ai/mastra/commit/73db8db90d69ab6153c7942749f624db0d96952d), [`73db8db`](https://github.com/mastra-ai/mastra/commit/73db8db90d69ab6153c7942749f624db0d96952d), [`76b7181`](https://github.com/mastra-ai/mastra/commit/76b71810366e6d90b9d3973149d1c7ba3659ffb9), [`0c0e8d7`](https://github.com/mastra-ai/mastra/commit/0c0e8d7becd4d1445c656b78d5d845f606c1ff9d), [`39c6753`](https://github.com/mastra-ai/mastra/commit/39c6753788a8d17278531b3381eb508747495b67), [`39c6753`](https://github.com/mastra-ai/mastra/commit/39c6753788a8d17278531b3381eb508747495b67), [`9f7c67a`](https://github.com/mastra-ai/mastra/commit/9f7c67abeeb52c41c51a9b5edee60b62afe7cd8d), [`0c52047`](https://github.com/mastra-ai/mastra/commit/0c520470a4547666156b2f18eb794eb8bd2676c8), [`3b65e68`](https://github.com/mastra-ai/mastra/commit/3b65e68d7f1c771c7a70eea42d83fefdd28cad88), [`e3868e2`](https://github.com/mastra-ai/mastra/commit/e3868e22babfffd0133771669ca724501c2dd58e)]:
|
|
116
|
+
- @mastra/core@1.52.0-alpha.5
|
|
117
|
+
- @mastra/react@1.2.6-alpha.5
|
|
118
|
+
- @mastra/client-js@1.33.0-alpha.5
|
|
119
|
+
- @mastra/memory@1.23.1-alpha.1
|
|
120
|
+
|
|
121
|
+
## 42.0.0-alpha.4
|
|
122
|
+
|
|
123
|
+
### Patch Changes
|
|
124
|
+
|
|
125
|
+
- Updated dependencies [[`4cfdd64`](https://github.com/mastra-ai/mastra/commit/4cfdd645794feaea0c4ea711e70ecdfbef0c5b8e)]:
|
|
126
|
+
- @mastra/core@1.52.0-alpha.4
|
|
127
|
+
- @mastra/client-js@1.33.0-alpha.4
|
|
128
|
+
- @mastra/react@1.2.6-alpha.4
|
|
129
|
+
|
|
130
|
+
## 42.0.0-alpha.3
|
|
131
|
+
|
|
132
|
+
### Minor Changes
|
|
133
|
+
|
|
134
|
+
- Added ClampedText, a design-system component that clamps text to a number of lines and shows a "Read more" toggle only when the clamp actually cuts content. Detection is based on the rendered layout (element measurement, re-checked on resize and after fonts load), not on character count. ([#19565](https://github.com/mastra-ai/mastra/pull/19565))
|
|
135
|
+
|
|
136
|
+
### Patch Changes
|
|
137
|
+
|
|
138
|
+
- Fixed the ClampedText read-more button to announce its expanded state to screen readers, and fixed clamp measurement so font-load re-measure and effect cleanup still run in browsers without ResizeObserver. ([#19582](https://github.com/mastra-ai/mastra/pull/19582))
|
|
139
|
+
|
|
140
|
+
- Updated dependencies [[`1426af2`](https://github.com/mastra-ai/mastra/commit/1426af24975879c000d13ac75673f630fcc970c1), [`4696604`](https://github.com/mastra-ai/mastra/commit/4696604a8db7517459e7075ed4a6924114cdbdfb), [`975295d`](https://github.com/mastra-ai/mastra/commit/975295d418552f0d46a59edfef4c3ee555f9930a), [`85e4fb5`](https://github.com/mastra-ai/mastra/commit/85e4fb50087a81c74df3a762f53b56373db0b912), [`22c7ca8`](https://github.com/mastra-ai/mastra/commit/22c7ca85b893ebc9bf0113309e13d238a896bdaf), [`85e4fb5`](https://github.com/mastra-ai/mastra/commit/85e4fb50087a81c74df3a762f53b56373db0b912), [`ef03c0c`](https://github.com/mastra-ai/mastra/commit/ef03c0cfc62367a458e4cc56462e2148b35681c5), [`4fb4d88`](https://github.com/mastra-ai/mastra/commit/4fb4d881bc107acee13890ad4d78661016c510ed), [`4eba27a`](https://github.com/mastra-ai/mastra/commit/4eba27adcf60f991df0e62f94b3e75b4e67f3b4b), [`c701be3`](https://github.com/mastra-ai/mastra/commit/c701be32d7d9aa94a66da8c6cc38dcac6856f464), [`50e0ec5`](https://github.com/mastra-ai/mastra/commit/50e0ec5a1b2f3dec9eb1333487be733ac499173c)]:
|
|
141
|
+
- @mastra/core@1.52.0-alpha.3
|
|
142
|
+
- @mastra/client-js@1.33.0-alpha.3
|
|
143
|
+
- @mastra/react@1.2.6-alpha.3
|
|
144
|
+
|
|
3
145
|
## 41.1.0-alpha.2
|
|
4
146
|
|
|
5
147
|
### Patch Changes
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { c as cva } from './index-CSm06eOE.js';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { c as cn } from './cn-BakJzhuv.js';
|
|
5
|
+
|
|
6
|
+
const cardVariants = cva(
|
|
7
|
+
// Base styles
|
|
8
|
+
"duration-normal rounded-lg transition-all ease-out-custom motion-reduce:transition-none",
|
|
9
|
+
{
|
|
10
|
+
variants: {
|
|
11
|
+
appearance: {
|
|
12
|
+
outlined: "border border-border1 bg-surface2",
|
|
13
|
+
surface: "bg-surface3"
|
|
14
|
+
},
|
|
15
|
+
elevation: {
|
|
16
|
+
flat: "",
|
|
17
|
+
raised: "shadow-card",
|
|
18
|
+
elevated: "shadow-elevated"
|
|
19
|
+
},
|
|
20
|
+
interactive: {
|
|
21
|
+
true: "cursor-pointer active:scale-99",
|
|
22
|
+
false: ""
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
compoundVariants: [
|
|
26
|
+
{
|
|
27
|
+
appearance: "outlined",
|
|
28
|
+
interactive: true,
|
|
29
|
+
className: "hover:border-border2 hover:bg-surface3"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
appearance: "surface",
|
|
33
|
+
interactive: true,
|
|
34
|
+
className: "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"
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
defaultVariants: {
|
|
38
|
+
appearance: "outlined",
|
|
39
|
+
elevation: "flat",
|
|
40
|
+
interactive: false
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
const Card = React.forwardRef(
|
|
45
|
+
({ className, appearance, elevation, interactive, as, ...props }, ref) => {
|
|
46
|
+
const Component = as || (interactive ? "button" : "div");
|
|
47
|
+
return /* @__PURE__ */ jsx(
|
|
48
|
+
Component,
|
|
49
|
+
{
|
|
50
|
+
ref,
|
|
51
|
+
type: Component === "button" ? "button" : void 0,
|
|
52
|
+
className: cn(cardVariants({ appearance, elevation, interactive }), className),
|
|
53
|
+
...props
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
Card.displayName = "Card";
|
|
59
|
+
function CardLink({ className, appearance, elevation, LinkComponent: Link = "a", ...props }) {
|
|
60
|
+
return /* @__PURE__ */ jsx(Link, { className: cn(cardVariants({ appearance, elevation, interactive: true }), className), ...props });
|
|
61
|
+
}
|
|
62
|
+
const CardHeader = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col space-y-1.5 p-4 pb-0", className), ...props }));
|
|
63
|
+
CardHeader.displayName = "CardHeader";
|
|
64
|
+
const CardTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
65
|
+
"h3",
|
|
66
|
+
{
|
|
67
|
+
ref,
|
|
68
|
+
className: cn("text-ui-md leading-none font-semibold tracking-tight text-neutral6", className),
|
|
69
|
+
...props
|
|
70
|
+
}
|
|
71
|
+
));
|
|
72
|
+
CardTitle.displayName = "CardTitle";
|
|
73
|
+
const CardDescription = React.forwardRef(
|
|
74
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx("p", { ref, className: cn("text-ui-sm text-neutral3", className), ...props })
|
|
75
|
+
);
|
|
76
|
+
CardDescription.displayName = "CardDescription";
|
|
77
|
+
const cardContentVariants = cva("", {
|
|
78
|
+
variants: {
|
|
79
|
+
density: {
|
|
80
|
+
default: "p-4",
|
|
81
|
+
compact: "p-3"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
defaultVariants: {
|
|
85
|
+
density: "default"
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
const CardContent = React.forwardRef(
|
|
89
|
+
({ className, density, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn(cardContentVariants({ density }), className), ...props })
|
|
90
|
+
);
|
|
91
|
+
CardContent.displayName = "CardContent";
|
|
92
|
+
const CardFooter = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center p-4 pt-0", className), ...props }));
|
|
93
|
+
CardFooter.displayName = "CardFooter";
|
|
94
|
+
|
|
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-BjFMX3pD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card-BjFMX3pD.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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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
const index = require('./index-C-Lt4Bx_.cjs');
|
|
5
|
+
const React = require('react');
|
|
6
|
+
const utils_cn = require('./cn-vA5sWo9W.cjs');
|
|
7
|
+
|
|
8
|
+
function _interopNamespaceDefault(e) {
|
|
9
|
+
const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
|
|
10
|
+
if (e) {
|
|
11
|
+
for (const k in e) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
const d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: () => e[k]
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
26
|
+
|
|
27
|
+
const cardVariants = index.cva(
|
|
28
|
+
// Base styles
|
|
29
|
+
"duration-normal rounded-lg transition-all ease-out-custom motion-reduce:transition-none",
|
|
30
|
+
{
|
|
31
|
+
variants: {
|
|
32
|
+
appearance: {
|
|
33
|
+
outlined: "border border-border1 bg-surface2",
|
|
34
|
+
surface: "bg-surface3"
|
|
35
|
+
},
|
|
36
|
+
elevation: {
|
|
37
|
+
flat: "",
|
|
38
|
+
raised: "shadow-card",
|
|
39
|
+
elevated: "shadow-elevated"
|
|
40
|
+
},
|
|
41
|
+
interactive: {
|
|
42
|
+
true: "cursor-pointer active:scale-99",
|
|
43
|
+
false: ""
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
compoundVariants: [
|
|
47
|
+
{
|
|
48
|
+
appearance: "outlined",
|
|
49
|
+
interactive: true,
|
|
50
|
+
className: "hover:border-border2 hover:bg-surface3"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
appearance: "surface",
|
|
54
|
+
interactive: true,
|
|
55
|
+
className: "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"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
defaultVariants: {
|
|
59
|
+
appearance: "outlined",
|
|
60
|
+
elevation: "flat",
|
|
61
|
+
interactive: false
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
);
|
|
65
|
+
const Card = React__namespace.forwardRef(
|
|
66
|
+
({ className, appearance, elevation, interactive, as, ...props }, ref) => {
|
|
67
|
+
const Component = as || (interactive ? "button" : "div");
|
|
68
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
69
|
+
Component,
|
|
70
|
+
{
|
|
71
|
+
ref,
|
|
72
|
+
type: Component === "button" ? "button" : void 0,
|
|
73
|
+
className: utils_cn.cn(cardVariants({ appearance, elevation, interactive }), className),
|
|
74
|
+
...props
|
|
75
|
+
}
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
);
|
|
79
|
+
Card.displayName = "Card";
|
|
80
|
+
function CardLink({ className, appearance, elevation, LinkComponent: Link = "a", ...props }) {
|
|
81
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Link, { className: utils_cn.cn(cardVariants({ appearance, elevation, interactive: true }), className), ...props });
|
|
82
|
+
}
|
|
83
|
+
const CardHeader = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils_cn.cn("flex flex-col space-y-1.5 p-4 pb-0", className), ...props }));
|
|
84
|
+
CardHeader.displayName = "CardHeader";
|
|
85
|
+
const CardTitle = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
86
|
+
"h3",
|
|
87
|
+
{
|
|
88
|
+
ref,
|
|
89
|
+
className: utils_cn.cn("text-ui-md leading-none font-semibold tracking-tight text-neutral6", className),
|
|
90
|
+
...props
|
|
91
|
+
}
|
|
92
|
+
));
|
|
93
|
+
CardTitle.displayName = "CardTitle";
|
|
94
|
+
const CardDescription = React__namespace.forwardRef(
|
|
95
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("p", { ref, className: utils_cn.cn("text-ui-sm text-neutral3", className), ...props })
|
|
96
|
+
);
|
|
97
|
+
CardDescription.displayName = "CardDescription";
|
|
98
|
+
const cardContentVariants = index.cva("", {
|
|
99
|
+
variants: {
|
|
100
|
+
density: {
|
|
101
|
+
default: "p-4",
|
|
102
|
+
compact: "p-3"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
defaultVariants: {
|
|
106
|
+
density: "default"
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
const CardContent = React__namespace.forwardRef(
|
|
110
|
+
({ className, density, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils_cn.cn(cardContentVariants({ density }), className), ...props })
|
|
111
|
+
);
|
|
112
|
+
CardContent.displayName = "CardContent";
|
|
113
|
+
const CardFooter = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: utils_cn.cn("flex items-center p-4 pt-0", className), ...props }));
|
|
114
|
+
CardFooter.displayName = "CardFooter";
|
|
115
|
+
|
|
116
|
+
exports.Card = Card;
|
|
117
|
+
exports.CardContent = CardContent;
|
|
118
|
+
exports.CardDescription = CardDescription;
|
|
119
|
+
exports.CardFooter = CardFooter;
|
|
120
|
+
exports.CardHeader = CardHeader;
|
|
121
|
+
exports.CardLink = CardLink;
|
|
122
|
+
exports.CardTitle = CardTitle;
|
|
123
|
+
//# sourceMappingURL=Card-WU2qkiHB.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card-WU2qkiHB.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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM,YAAA,GAAeA,SAAA;AAAA;AAAA,EAEnB,yFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,UAAA,EAAY;AAAA,QACV,QAAA,EAAU,mCAAA;AAAA,QACV,OAAA,EAAS;AAAA,OACX;AAAA,MACA,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,EAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,WAAA,EAAa;AAAA,QACX,IAAA,EAAM,gCAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,gBAAA,EAAkB;AAAA,MAChB;AAAA,QACE,UAAA,EAAY,UAAA;AAAA,QACZ,WAAA,EAAa,IAAA;AAAA,QACb,SAAA,EAAW;AAAA,OACb;AAAA,MACA;AAAA,QACE,UAAA,EAAY,SAAA;AAAA,QACZ,WAAA,EAAa,IAAA;AAAA,QACb,SAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,UAAA,EAAY,UAAA;AAAA,MACZ,SAAA,EAAW,MAAA;AAAA,MACX,WAAA,EAAa;AAAA;AACf;AAEJ,CAAA;AAOO,MAAM,OAAOC,gBAAA,CAAM,UAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,UAAA,EAAY,SAAA,EAAW,aAAa,EAAA,EAAI,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACxE,IAAA,MAAM,SAAA,GAAY,EAAA,KAAO,WAAA,GAAc,QAAA,GAAW,KAAA,CAAA;AAElD,IAAA,uBACEC,cAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAM,SAAA,KAAc,QAAA,GAAW,QAAA,GAAW,MAAA;AAAA,QAC1C,SAAA,EAAWC,YAAG,YAAA,CAAa,EAAE,YAAY,SAAA,EAAW,WAAA,EAAa,CAAA,EAAG,SAAS,CAAA;AAAA,QAC5E,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,IAAA,CAAK,WAAA,GAAc,MAAA;AAQZ,SAAS,QAAA,CAAS,EAAE,SAAA,EAAW,UAAA,EAAY,SAAA,EAAW,eAAe,IAAA,GAAO,GAAA,EAAK,GAAG,KAAA,EAAM,EAAkB;AACjH,EAAA,uBAAOD,cAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAWC,WAAA,CAAG,aAAa,EAAE,UAAA,EAAY,SAAA,EAAW,WAAA,EAAa,MAAM,CAAA,EAAG,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAChH;AAKO,MAAM,UAAA,GAAaF,iBAAM,UAAA,CAA4C,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,oCACnG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAWE,WAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA,EAAI,GAAG,OAAO,CAC3F;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAKlB,MAAM,SAAA,GAAYF,iBAAM,UAAA,CAA+C,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,qBACtGC,cAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAWC,WAAA,CAAG,oEAAA,EAAsE,SAAS,CAAA;AAAA,IAC5F,GAAG;AAAA;AACN,CACD;AACD,SAAA,CAAU,WAAA,GAAc,WAAA;AAKjB,MAAM,kBAAkBF,gBAAA,CAAM,UAAA;AAAA,EACnC,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBAAQC,cAAA,CAAC,GAAA,EAAA,EAAE,GAAA,EAAU,WAAWC,WAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAClH;AACA,eAAA,CAAgB,WAAA,GAAc,iBAAA;AAG9B,MAAM,mBAAA,GAAsBH,UAAI,EAAA,EAAI;AAAA,EAClC,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,OAAA,EAAS,KAAA;AAAA,MACT,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS;AAAA;AAEb,CAAC,CAAA;AAIM,MAAM,cAAcC,gBAAA,CAAM,UAAA;AAAA,EAC/B,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,wBACjCC,cAAA,CAAC,KAAA,EAAA,EAAI,KAAU,SAAA,EAAWC,WAAA,CAAG,oBAAoB,EAAE,OAAA,EAAS,CAAA,EAAG,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE1F;AACA,WAAA,CAAY,WAAA,GAAc,aAAA;AAKnB,MAAM,UAAA,GAAaF,iBAAM,UAAA,CAA4C,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,EAAG,GAAA,oCACnG,KAAA,EAAA,EAAI,GAAA,EAAU,WAAWE,WAAA,CAAG,4BAAA,EAA8B,SAAS,CAAA,EAAI,GAAG,OAAO,CACnF;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;;;;;;;;;;"}
|
|
@@ -18,9 +18,9 @@ const variants = {
|
|
|
18
18
|
const fonts = {
|
|
19
19
|
mono: "font-mono"
|
|
20
20
|
};
|
|
21
|
-
const Txt = ({ as: Root = "p", className, variant = "ui-md", font, ...props }) => {
|
|
22
|
-
return /* @__PURE__ */ jsx(Root, { className: cn(variants[variant], font && fonts[font], className), ...props });
|
|
21
|
+
const Txt = ({ as: Root = "p", className, variant = "ui-md", font, ref, ...props }) => {
|
|
22
|
+
return /* @__PURE__ */ jsx(Root, { ref, className: cn(variants[variant], font && fonts[font], className), ...props });
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
export { Txt as T };
|
|
26
|
-
//# sourceMappingURL=Txt-
|
|
26
|
+
//# sourceMappingURL=Txt-Df42XG5p.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Txt-Df42XG5p.js","sources":["../src/ds/components/Txt/Txt.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode, Ref } from 'react';\n\nimport type { FontSizes } from '../../tokens';\nimport { cn } from '@/lib/utils';\n\nexport interface TxtProps extends HTMLAttributes<HTMLDivElement | HTMLLabelElement> {\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'label' | 'div';\n ref?: Ref<HTMLElement>;\n variant?: keyof typeof FontSizes;\n font?: 'mono';\n htmlFor?: string;\n className?: string;\n title?: string;\n children?: ReactNode;\n}\n\nconst variants = {\n // UI text sizes\n 'ui-xs': 'text-ui-xs leading-ui-xs',\n 'ui-sm': 'text-ui-sm leading-ui-sm',\n 'ui-smd': 'text-ui-smd leading-ui-smd',\n 'ui-md': 'text-ui-md leading-ui-md',\n 'ui-lg': 'text-ui-lg leading-ui-lg',\n // Header sizes\n 'header-xs': 'text-header-xs leading-header-xs',\n 'header-sm': 'text-header-sm leading-header-sm',\n 'header-md': 'text-header-md leading-header-md',\n 'header-lg': 'text-header-lg leading-header-lg',\n 'header-xl': 'text-header-xl leading-header-xl',\n};\n\nconst fonts = {\n mono: 'font-mono',\n};\n\nexport const Txt = ({ as: Root = 'p', className, variant = 'ui-md', font, ref, ...props }: TxtProps) => {\n // Cast needed: `Root` is polymorphic, so TS narrows the expected ref to a single element type.\n return <Root ref={ref as never} className={cn(variants[variant], font && fonts[font], className)} {...props} />;\n};\n"],"names":[],"mappings":";;;AAgBA,MAAM,QAAA,GAAW;AAAA;AAAA,EAEf,OAAA,EAAS,0BAAA;AAAA,EACT,OAAA,EAAS,0BAAA;AAAA,EACT,QAAA,EAAU,4BAAA;AAAA,EACV,OAAA,EAAS,0BAAA;AAAA,EACT,OAAA,EAAS,0BAAA;AAAA;AAAA,EAET,WAAA,EAAa,kCAAA;AAAA,EACb,WAAA,EAAa,kCAAA;AAAA,EACb,WAAA,EAAa,kCAAA;AAAA,EACb,WAAA,EAAa,kCAAA;AAAA,EACb,WAAA,EAAa;AACf,CAAA;AAEA,MAAM,KAAA,GAAQ;AAAA,EACZ,IAAA,EAAM;AACR,CAAA;AAEO,MAAM,GAAA,GAAM,CAAC,EAAE,EAAA,EAAI,IAAA,GAAO,GAAA,EAAK,SAAA,EAAW,OAAA,GAAU,OAAA,EAAS,IAAA,EAAM,GAAA,EAAK,GAAG,OAAM,KAAgB;AAEtG,EAAA,uBAAO,GAAA,CAAC,IAAA,EAAA,EAAK,GAAA,EAAmB,SAAA,EAAW,GAAG,QAAA,CAAS,OAAO,CAAA,EAAG,IAAA,IAAQ,MAAM,IAAI,CAAA,EAAG,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAC/G;;;;"}
|
|
@@ -20,9 +20,9 @@ const variants = {
|
|
|
20
20
|
const fonts = {
|
|
21
21
|
mono: "font-mono"
|
|
22
22
|
};
|
|
23
|
-
const Txt = ({ as: Root = "p", className, variant = "ui-md", font, ...props }) => {
|
|
24
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Root, { className: utils_cn.cn(variants[variant], font && fonts[font], className), ...props });
|
|
23
|
+
const Txt = ({ as: Root = "p", className, variant = "ui-md", font, ref, ...props }) => {
|
|
24
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Root, { ref, className: utils_cn.cn(variants[variant], font && fonts[font], className), ...props });
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
exports.Txt = Txt;
|
|
28
|
-
//# sourceMappingURL=Txt-
|
|
28
|
+
//# sourceMappingURL=Txt-I5lK8zy7.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Txt-I5lK8zy7.cjs","sources":["../src/ds/components/Txt/Txt.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode, Ref } from 'react';\n\nimport type { FontSizes } from '../../tokens';\nimport { cn } from '@/lib/utils';\n\nexport interface TxtProps extends HTMLAttributes<HTMLDivElement | HTMLLabelElement> {\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'label' | 'div';\n ref?: Ref<HTMLElement>;\n variant?: keyof typeof FontSizes;\n font?: 'mono';\n htmlFor?: string;\n className?: string;\n title?: string;\n children?: ReactNode;\n}\n\nconst variants = {\n // UI text sizes\n 'ui-xs': 'text-ui-xs leading-ui-xs',\n 'ui-sm': 'text-ui-sm leading-ui-sm',\n 'ui-smd': 'text-ui-smd leading-ui-smd',\n 'ui-md': 'text-ui-md leading-ui-md',\n 'ui-lg': 'text-ui-lg leading-ui-lg',\n // Header sizes\n 'header-xs': 'text-header-xs leading-header-xs',\n 'header-sm': 'text-header-sm leading-header-sm',\n 'header-md': 'text-header-md leading-header-md',\n 'header-lg': 'text-header-lg leading-header-lg',\n 'header-xl': 'text-header-xl leading-header-xl',\n};\n\nconst fonts = {\n mono: 'font-mono',\n};\n\nexport const Txt = ({ as: Root = 'p', className, variant = 'ui-md', font, ref, ...props }: TxtProps) => {\n // Cast needed: `Root` is polymorphic, so TS narrows the expected ref to a single element type.\n return <Root ref={ref as never} className={cn(variants[variant], font && fonts[font], className)} {...props} />;\n};\n"],"names":["jsx","cn"],"mappings":";;;;;AAgBA,MAAM,QAAA,GAAW;AAAA;AAAA,EAEf,OAAA,EAAS,0BAAA;AAAA,EACT,OAAA,EAAS,0BAAA;AAAA,EACT,QAAA,EAAU,4BAAA;AAAA,EACV,OAAA,EAAS,0BAAA;AAAA,EACT,OAAA,EAAS,0BAAA;AAAA;AAAA,EAET,WAAA,EAAa,kCAAA;AAAA,EACb,WAAA,EAAa,kCAAA;AAAA,EACb,WAAA,EAAa,kCAAA;AAAA,EACb,WAAA,EAAa,kCAAA;AAAA,EACb,WAAA,EAAa;AACf,CAAA;AAEA,MAAM,KAAA,GAAQ;AAAA,EACZ,IAAA,EAAM;AACR,CAAA;AAEO,MAAM,GAAA,GAAM,CAAC,EAAE,EAAA,EAAI,IAAA,GAAO,GAAA,EAAK,SAAA,EAAW,OAAA,GAAU,OAAA,EAAS,IAAA,EAAM,GAAA,EAAK,GAAG,OAAM,KAAgB;AAEtG,EAAA,uBAAOA,cAAA,CAAC,IAAA,EAAA,EAAK,GAAA,EAAmB,SAAA,EAAWC,YAAG,QAAA,CAAS,OAAO,CAAA,EAAG,IAAA,IAAQ,MAAM,IAAI,CAAA,EAAG,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAC/G;;;;"}
|
|
@@ -123,9 +123,9 @@ const ButtonsGroupSeparator = React.forwardRef(
|
|
|
123
123
|
ButtonsGroupSeparator.displayName = "ButtonsGroupSeparator";
|
|
124
124
|
const buttonsGroupTextVariants = cva(
|
|
125
125
|
cn(
|
|
126
|
-
"inline-flex items-center justify-center
|
|
127
|
-
"
|
|
128
|
-
"[&>svg]:
|
|
126
|
+
"inline-flex items-center justify-center border border-border1 bg-surface3 text-neutral5 select-none",
|
|
127
|
+
"shrink-0 gap-[.75em] rounded-full px-[1em] whitespace-nowrap",
|
|
128
|
+
"[&>svg]:size-[1.1em] [&>svg]:opacity-50"
|
|
129
129
|
),
|
|
130
130
|
{
|
|
131
131
|
variants: {
|
|
@@ -158,4 +158,4 @@ const ButtonsGroupText = React.forwardRef(
|
|
|
158
158
|
ButtonsGroupText.displayName = "ButtonsGroupText";
|
|
159
159
|
|
|
160
160
|
export { ButtonsGroup as B, ButtonsGroupSeparator as a, ButtonsGroupText as b, buttonsGroupVariants as c };
|
|
161
|
-
//# sourceMappingURL=buttons-group-
|
|
161
|
+
//# sourceMappingURL=buttons-group-DJh4wnMs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttons-group-b6an6uao.js","sources":["../src/ds/components/ButtonsGroup/buttons-group.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { controlSizeClasses } from '@/ds/primitives/control-size';\nimport type { ControlSize } from '@/ds/primitives/control-size';\nimport { cn } from '@/lib/utils';\n\ntype Orientation = 'horizontal' | 'vertical';\n\nconst ButtonsGroupOrientationContext = React.createContext<Orientation>('horizontal');\n\nconst buttonsGroupVariants = cva(\n // Lift the hovered/focused segment so its full border paints over the collapsed seam (else a\n // neighbour clips a side / the seam ignores the active colour). Use `:focus-visible`, NOT\n // `:focus-within`: a mouse click leaves a plain `:focus` on a button, which would otherwise\n // keep its seam border highlighted until blur. `:has(:focus-visible)` covers a nested\n // focusable (the <input> inside an InputGroup); text inputs match :focus-visible on click too,\n // which is the wanted behaviour for a field.\n cn(\n 'flex',\n '[&>*:hover]:relative [&>*:hover]:z-10',\n '[&>*:focus-visible]:relative [&>*:focus-visible]:z-10',\n '[&>*:has(:focus-visible)]:relative [&>*:has(:focus-visible)]:z-10',\n ),\n {\n variants: {\n orientation: {\n horizontal: 'flex-row items-center',\n vertical: 'flex-col items-stretch',\n },\n spacing: {\n default: 'gap-2',\n close: 'gap-0',\n },\n },\n compoundVariants: [\n {\n orientation: 'horizontal',\n spacing: 'close',\n // Flatten inner corners. A segment rounds its right edge off having a *real* segment\n // somewhere after it (general sibling `~`, not `:not(:last-child)` and not adjacent\n // `+`). This survives non-segment children that frameworks inject between/around the\n // real ones: Base UI's trailing `<input aria-hidden>` (Select), and the visually\n // -hidden focus guards (`[data-base-ui-focus-guard]`) + positioner anchor (`[aria-owns]`)\n // a Menu/Popover inserts while OPEN — without this a DropdownMenu split-button seam\n // breaks the moment the menu opens. The same ignore-list is applied to every seam rule.\n className: cn(\n '[&>*:has(~_*:not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]))]:rounded-r-none',\n '[&>*:not(:first-child):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns])]:rounded-l-none',\n // One-line seam: `-ml-px` overlaps adjacent borders onto the same pixel. Filled\n // segments (opaque bg: default/primary buttons, the text chip) keep their own\n // border — the bg hides the neighbour's. Transparent/outline segments null their\n // left border at rest (so the neighbour's shows without doubling) and reveal it on\n // hover / keyboard-focus, where the z-10 lift paints the complete border on top.\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child)]:-ml-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-l-transparent',\n // `primary` is filled but borderless — give it (only) an inset-shadow divider.\n '[&>[data-variant=primary]:not([aria-hidden=true]):not(:first-child)]:shadow-[inset_1px_0_0_0_var(--color-border1)]',\n // Animate only colour/bg so the seam + ring snap (no fade desynced from the z-10 drop).\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true])]:transition-[color,background-color]',\n // Group owns sizing (no consumer width classes): fill on flex/InputGroup/input,\n // content-width on a Select trigger (descendant rule beats the trigger's `w-full`).\n '[&>[data-slot=select-trigger]]:w-fit [&>[data-slot=select-trigger]]:flex-none',\n '[&>input]:flex-1',\n ),\n },\n {\n orientation: 'vertical',\n spacing: 'close',\n // Children are capsules (rounded-full); re-round the outer ends to rounded-xl and\n // flatten the touching ones. Unlike the horizontal block, these use plain structural\n // selectors (no aria-hidden / data-base-ui-focus-guard / aria-owns ignore-list): vertical\n // close-spacing is only used with plain buttons, so it never hosts a Select/DropdownMenu\n // that injects guard siblings. Mirror the horizontal ignore-list here if one ever does.\n className: cn(\n '[&>*:not(:last-child)]:rounded-b-none',\n '[&>*:not(:first-child)]:rounded-t-none',\n '[&>:first-child]:rounded-t-xl',\n '[&>:last-child]:rounded-b-xl',\n '[&>*:not([data-slot=buttons-group-separator]):not(:first-child)]:-mt-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-t-transparent',\n '[&>[data-variant=primary]:not(:first-child)]:shadow-[inset_0_1px_0_0_var(--color-border1)]',\n '[&>*:not([data-slot=buttons-group-separator])]:transition-[color,background-color]',\n ),\n },\n ],\n defaultVariants: {\n orientation: 'horizontal',\n spacing: 'default',\n },\n },\n);\n\n// Derive variant types from cva (single source of truth) and strip `null` that cva injects.\ntype ButtonsGroupVariantsProps = VariantProps<typeof buttonsGroupVariants>;\nexport type ButtonsGroupSpacing = NonNullable<ButtonsGroupVariantsProps['spacing']>;\n\nexport type ButtonsGroupProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n spacing?: ButtonsGroupSpacing;\n};\n\nexport const ButtonsGroup = React.forwardRef<HTMLDivElement, ButtonsGroupProps>(\n ({ children, className, orientation = 'horizontal', spacing = 'default', ...props }, ref) => {\n return (\n <ButtonsGroupOrientationContext.Provider value={orientation}>\n <div\n ref={ref}\n role=\"group\"\n data-slot=\"buttons-group\"\n data-orientation={orientation}\n className={cn(buttonsGroupVariants({ orientation, spacing }), className)}\n {...props}\n >\n {children}\n </div>\n </ButtonsGroupOrientationContext.Provider>\n );\n },\n);\nButtonsGroup.displayName = 'ButtonsGroup';\n\nexport type ButtonsGroupSeparatorProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n};\n\nexport const ButtonsGroupSeparator = React.forwardRef<HTMLDivElement, ButtonsGroupSeparatorProps>(\n ({ className, orientation, ...props }, ref) => {\n const parentOrientation = React.useContext(ButtonsGroupOrientationContext);\n // Separator runs perpendicular to the group flow by default.\n const resolved = orientation ?? (parentOrientation === 'vertical' ? 'horizontal' : 'vertical');\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={resolved}\n data-slot=\"buttons-group-separator\"\n className={cn('self-stretch bg-border1', resolved === 'vertical' ? 'w-px' : 'h-px', className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupSeparator.displayName = 'ButtonsGroupSeparator';\n\nconst buttonsGroupTextVariants = cva(\n cn(\n 'inline-flex items-center justify-center bg-surface3 border border-border1 text-neutral5 select-none',\n 'rounded-full gap-[.75em] px-[1em] whitespace-nowrap shrink-0',\n '[&>svg]:w-[1.1em] [&>svg]:h-[1.1em] [&>svg]:opacity-50',\n ),\n {\n variants: {\n size: {\n xs: controlSizeClasses.xs,\n sm: controlSizeClasses.sm,\n md: controlSizeClasses.md,\n default: controlSizeClasses.default,\n lg: controlSizeClasses.lg,\n },\n },\n defaultVariants: {\n size: 'default',\n },\n },\n);\n\nexport type ButtonsGroupTextProps = React.ComponentPropsWithoutRef<'div'> & {\n size?: ControlSize;\n};\n\nexport const ButtonsGroupText = React.forwardRef<HTMLDivElement, ButtonsGroupTextProps>(\n ({ className, size = 'default', ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"buttons-group-text\"\n className={cn(buttonsGroupTextVariants({ size }), className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupText.displayName = 'ButtonsGroupText';\n\nexport { buttonsGroupVariants };\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buttons-group-DJh4wnMs.js","sources":["../src/ds/components/ButtonsGroup/buttons-group.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { controlSizeClasses } from '@/ds/primitives/control-size';\nimport type { ControlSize } from '@/ds/primitives/control-size';\nimport { cn } from '@/lib/utils';\n\ntype Orientation = 'horizontal' | 'vertical';\n\nconst ButtonsGroupOrientationContext = React.createContext<Orientation>('horizontal');\n\nconst buttonsGroupVariants = cva(\n // Lift the hovered/focused segment so its full border paints over the collapsed seam (else a\n // neighbour clips a side / the seam ignores the active colour). Use `:focus-visible`, NOT\n // `:focus-within`: a mouse click leaves a plain `:focus` on a button, which would otherwise\n // keep its seam border highlighted until blur. `:has(:focus-visible)` covers a nested\n // focusable (the <input> inside an InputGroup); text inputs match :focus-visible on click too,\n // which is the wanted behaviour for a field.\n cn(\n 'flex',\n '[&>*:hover]:relative [&>*:hover]:z-10',\n '[&>*:focus-visible]:relative [&>*:focus-visible]:z-10',\n '[&>*:has(:focus-visible)]:relative [&>*:has(:focus-visible)]:z-10',\n ),\n {\n variants: {\n orientation: {\n horizontal: 'flex-row items-center',\n vertical: 'flex-col items-stretch',\n },\n spacing: {\n default: 'gap-2',\n close: 'gap-0',\n },\n },\n compoundVariants: [\n {\n orientation: 'horizontal',\n spacing: 'close',\n // Flatten inner corners. A segment rounds its right edge off having a *real* segment\n // somewhere after it (general sibling `~`, not `:not(:last-child)` and not adjacent\n // `+`). This survives non-segment children that frameworks inject between/around the\n // real ones: Base UI's trailing `<input aria-hidden>` (Select), and the visually\n // -hidden focus guards (`[data-base-ui-focus-guard]`) + positioner anchor (`[aria-owns]`)\n // a Menu/Popover inserts while OPEN — without this a DropdownMenu split-button seam\n // breaks the moment the menu opens. The same ignore-list is applied to every seam rule.\n className: cn(\n '[&>*:has(~_*:not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]))]:rounded-r-none',\n '[&>*:not(:first-child):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns])]:rounded-l-none',\n // One-line seam: `-ml-px` overlaps adjacent borders onto the same pixel. Filled\n // segments (opaque bg: default/primary buttons, the text chip) keep their own\n // border — the bg hides the neighbour's. Transparent/outline segments null their\n // left border at rest (so the neighbour's shows without doubling) and reveal it on\n // hover / keyboard-focus, where the z-10 lift paints the complete border on top.\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child)]:-ml-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-l-transparent',\n // `primary` is filled but borderless — give it (only) an inset-shadow divider.\n '[&>[data-variant=primary]:not([aria-hidden=true]):not(:first-child)]:shadow-[inset_1px_0_0_0_var(--color-border1)]',\n // Animate only colour/bg so the seam + ring snap (no fade desynced from the z-10 drop).\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true])]:transition-[color,background-color]',\n // Group owns sizing (no consumer width classes): fill on flex/InputGroup/input,\n // content-width on a Select trigger (descendant rule beats the trigger's `w-full`).\n '[&>[data-slot=select-trigger]]:w-fit [&>[data-slot=select-trigger]]:flex-none',\n '[&>input]:flex-1',\n ),\n },\n {\n orientation: 'vertical',\n spacing: 'close',\n // Children are capsules (rounded-full); re-round the outer ends to rounded-xl and\n // flatten the touching ones. Unlike the horizontal block, these use plain structural\n // selectors (no aria-hidden / data-base-ui-focus-guard / aria-owns ignore-list): vertical\n // close-spacing is only used with plain buttons, so it never hosts a Select/DropdownMenu\n // that injects guard siblings. Mirror the horizontal ignore-list here if one ever does.\n className: cn(\n '[&>*:not(:last-child)]:rounded-b-none',\n '[&>*:not(:first-child)]:rounded-t-none',\n '[&>:first-child]:rounded-t-xl',\n '[&>:last-child]:rounded-b-xl',\n '[&>*:not([data-slot=buttons-group-separator]):not(:first-child)]:-mt-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-t-transparent',\n '[&>[data-variant=primary]:not(:first-child)]:shadow-[inset_0_1px_0_0_var(--color-border1)]',\n '[&>*:not([data-slot=buttons-group-separator])]:transition-[color,background-color]',\n ),\n },\n ],\n defaultVariants: {\n orientation: 'horizontal',\n spacing: 'default',\n },\n },\n);\n\n// Derive variant types from cva (single source of truth) and strip `null` that cva injects.\ntype ButtonsGroupVariantsProps = VariantProps<typeof buttonsGroupVariants>;\nexport type ButtonsGroupSpacing = NonNullable<ButtonsGroupVariantsProps['spacing']>;\n\nexport type ButtonsGroupProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n spacing?: ButtonsGroupSpacing;\n};\n\nexport const ButtonsGroup = React.forwardRef<HTMLDivElement, ButtonsGroupProps>(\n ({ children, className, orientation = 'horizontal', spacing = 'default', ...props }, ref) => {\n return (\n <ButtonsGroupOrientationContext.Provider value={orientation}>\n <div\n ref={ref}\n role=\"group\"\n data-slot=\"buttons-group\"\n data-orientation={orientation}\n className={cn(buttonsGroupVariants({ orientation, spacing }), className)}\n {...props}\n >\n {children}\n </div>\n </ButtonsGroupOrientationContext.Provider>\n );\n },\n);\nButtonsGroup.displayName = 'ButtonsGroup';\n\nexport type ButtonsGroupSeparatorProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n};\n\nexport const ButtonsGroupSeparator = React.forwardRef<HTMLDivElement, ButtonsGroupSeparatorProps>(\n ({ className, orientation, ...props }, ref) => {\n const parentOrientation = React.useContext(ButtonsGroupOrientationContext);\n // Separator runs perpendicular to the group flow by default.\n const resolved = orientation ?? (parentOrientation === 'vertical' ? 'horizontal' : 'vertical');\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={resolved}\n data-slot=\"buttons-group-separator\"\n className={cn('self-stretch bg-border1', resolved === 'vertical' ? 'w-px' : 'h-px', className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupSeparator.displayName = 'ButtonsGroupSeparator';\n\nconst buttonsGroupTextVariants = cva(\n cn(\n 'inline-flex items-center justify-center border border-border1 bg-surface3 text-neutral5 select-none',\n 'shrink-0 gap-[.75em] rounded-full px-[1em] whitespace-nowrap',\n '[&>svg]:size-[1.1em] [&>svg]:opacity-50',\n ),\n {\n variants: {\n size: {\n xs: controlSizeClasses.xs,\n sm: controlSizeClasses.sm,\n md: controlSizeClasses.md,\n default: controlSizeClasses.default,\n lg: controlSizeClasses.lg,\n },\n },\n defaultVariants: {\n size: 'default',\n },\n },\n);\n\nexport type ButtonsGroupTextProps = React.ComponentPropsWithoutRef<'div'> & {\n size?: ControlSize;\n};\n\nexport const ButtonsGroupText = React.forwardRef<HTMLDivElement, ButtonsGroupTextProps>(\n ({ className, size = 'default', ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"buttons-group-text\"\n className={cn(buttonsGroupTextVariants({ size }), className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupText.displayName = 'ButtonsGroupText';\n\nexport { buttonsGroupVariants };\n"],"names":[],"mappings":"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"}
|
|
@@ -144,9 +144,9 @@ const ButtonsGroupSeparator = React__namespace.forwardRef(
|
|
|
144
144
|
ButtonsGroupSeparator.displayName = "ButtonsGroupSeparator";
|
|
145
145
|
const buttonsGroupTextVariants = index.cva(
|
|
146
146
|
utils_cn.cn(
|
|
147
|
-
"inline-flex items-center justify-center
|
|
148
|
-
"
|
|
149
|
-
"[&>svg]:
|
|
147
|
+
"inline-flex items-center justify-center border border-border1 bg-surface3 text-neutral5 select-none",
|
|
148
|
+
"shrink-0 gap-[.75em] rounded-full px-[1em] whitespace-nowrap",
|
|
149
|
+
"[&>svg]:size-[1.1em] [&>svg]:opacity-50"
|
|
150
150
|
),
|
|
151
151
|
{
|
|
152
152
|
variants: {
|
|
@@ -182,4 +182,4 @@ exports.ButtonsGroup = ButtonsGroup;
|
|
|
182
182
|
exports.ButtonsGroupSeparator = ButtonsGroupSeparator;
|
|
183
183
|
exports.ButtonsGroupText = ButtonsGroupText;
|
|
184
184
|
exports.buttonsGroupVariants = buttonsGroupVariants;
|
|
185
|
-
//# sourceMappingURL=buttons-group-
|
|
185
|
+
//# sourceMappingURL=buttons-group-Dw8Wu4sj.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buttons-group-C0fJastT.cjs","sources":["../src/ds/components/ButtonsGroup/buttons-group.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { controlSizeClasses } from '@/ds/primitives/control-size';\nimport type { ControlSize } from '@/ds/primitives/control-size';\nimport { cn } from '@/lib/utils';\n\ntype Orientation = 'horizontal' | 'vertical';\n\nconst ButtonsGroupOrientationContext = React.createContext<Orientation>('horizontal');\n\nconst buttonsGroupVariants = cva(\n // Lift the hovered/focused segment so its full border paints over the collapsed seam (else a\n // neighbour clips a side / the seam ignores the active colour). Use `:focus-visible`, NOT\n // `:focus-within`: a mouse click leaves a plain `:focus` on a button, which would otherwise\n // keep its seam border highlighted until blur. `:has(:focus-visible)` covers a nested\n // focusable (the <input> inside an InputGroup); text inputs match :focus-visible on click too,\n // which is the wanted behaviour for a field.\n cn(\n 'flex',\n '[&>*:hover]:relative [&>*:hover]:z-10',\n '[&>*:focus-visible]:relative [&>*:focus-visible]:z-10',\n '[&>*:has(:focus-visible)]:relative [&>*:has(:focus-visible)]:z-10',\n ),\n {\n variants: {\n orientation: {\n horizontal: 'flex-row items-center',\n vertical: 'flex-col items-stretch',\n },\n spacing: {\n default: 'gap-2',\n close: 'gap-0',\n },\n },\n compoundVariants: [\n {\n orientation: 'horizontal',\n spacing: 'close',\n // Flatten inner corners. A segment rounds its right edge off having a *real* segment\n // somewhere after it (general sibling `~`, not `:not(:last-child)` and not adjacent\n // `+`). This survives non-segment children that frameworks inject between/around the\n // real ones: Base UI's trailing `<input aria-hidden>` (Select), and the visually\n // -hidden focus guards (`[data-base-ui-focus-guard]`) + positioner anchor (`[aria-owns]`)\n // a Menu/Popover inserts while OPEN — without this a DropdownMenu split-button seam\n // breaks the moment the menu opens. The same ignore-list is applied to every seam rule.\n className: cn(\n '[&>*:has(~_*:not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]))]:rounded-r-none',\n '[&>*:not(:first-child):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns])]:rounded-l-none',\n // One-line seam: `-ml-px` overlaps adjacent borders onto the same pixel. Filled\n // segments (opaque bg: default/primary buttons, the text chip) keep their own\n // border — the bg hides the neighbour's. Transparent/outline segments null their\n // left border at rest (so the neighbour's shows without doubling) and reveal it on\n // hover / keyboard-focus, where the z-10 lift paints the complete border on top.\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child)]:-ml-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-l-transparent',\n // `primary` is filled but borderless — give it (only) an inset-shadow divider.\n '[&>[data-variant=primary]:not([aria-hidden=true]):not(:first-child)]:shadow-[inset_1px_0_0_0_var(--color-border1)]',\n // Animate only colour/bg so the seam + ring snap (no fade desynced from the z-10 drop).\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true])]:transition-[color,background-color]',\n // Group owns sizing (no consumer width classes): fill on flex/InputGroup/input,\n // content-width on a Select trigger (descendant rule beats the trigger's `w-full`).\n '[&>[data-slot=select-trigger]]:w-fit [&>[data-slot=select-trigger]]:flex-none',\n '[&>input]:flex-1',\n ),\n },\n {\n orientation: 'vertical',\n spacing: 'close',\n // Children are capsules (rounded-full); re-round the outer ends to rounded-xl and\n // flatten the touching ones. Unlike the horizontal block, these use plain structural\n // selectors (no aria-hidden / data-base-ui-focus-guard / aria-owns ignore-list): vertical\n // close-spacing is only used with plain buttons, so it never hosts a Select/DropdownMenu\n // that injects guard siblings. Mirror the horizontal ignore-list here if one ever does.\n className: cn(\n '[&>*:not(:last-child)]:rounded-b-none',\n '[&>*:not(:first-child)]:rounded-t-none',\n '[&>:first-child]:rounded-t-xl',\n '[&>:last-child]:rounded-b-xl',\n '[&>*:not([data-slot=buttons-group-separator]):not(:first-child)]:-mt-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-t-transparent',\n '[&>[data-variant=primary]:not(:first-child)]:shadow-[inset_0_1px_0_0_var(--color-border1)]',\n '[&>*:not([data-slot=buttons-group-separator])]:transition-[color,background-color]',\n ),\n },\n ],\n defaultVariants: {\n orientation: 'horizontal',\n spacing: 'default',\n },\n },\n);\n\n// Derive variant types from cva (single source of truth) and strip `null` that cva injects.\ntype ButtonsGroupVariantsProps = VariantProps<typeof buttonsGroupVariants>;\nexport type ButtonsGroupSpacing = NonNullable<ButtonsGroupVariantsProps['spacing']>;\n\nexport type ButtonsGroupProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n spacing?: ButtonsGroupSpacing;\n};\n\nexport const ButtonsGroup = React.forwardRef<HTMLDivElement, ButtonsGroupProps>(\n ({ children, className, orientation = 'horizontal', spacing = 'default', ...props }, ref) => {\n return (\n <ButtonsGroupOrientationContext.Provider value={orientation}>\n <div\n ref={ref}\n role=\"group\"\n data-slot=\"buttons-group\"\n data-orientation={orientation}\n className={cn(buttonsGroupVariants({ orientation, spacing }), className)}\n {...props}\n >\n {children}\n </div>\n </ButtonsGroupOrientationContext.Provider>\n );\n },\n);\nButtonsGroup.displayName = 'ButtonsGroup';\n\nexport type ButtonsGroupSeparatorProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n};\n\nexport const ButtonsGroupSeparator = React.forwardRef<HTMLDivElement, ButtonsGroupSeparatorProps>(\n ({ className, orientation, ...props }, ref) => {\n const parentOrientation = React.useContext(ButtonsGroupOrientationContext);\n // Separator runs perpendicular to the group flow by default.\n const resolved = orientation ?? (parentOrientation === 'vertical' ? 'horizontal' : 'vertical');\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={resolved}\n data-slot=\"buttons-group-separator\"\n className={cn('self-stretch bg-border1', resolved === 'vertical' ? 'w-px' : 'h-px', className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupSeparator.displayName = 'ButtonsGroupSeparator';\n\nconst buttonsGroupTextVariants = cva(\n cn(\n 'inline-flex items-center justify-center bg-surface3 border border-border1 text-neutral5 select-none',\n 'rounded-full gap-[.75em] px-[1em] whitespace-nowrap shrink-0',\n '[&>svg]:w-[1.1em] [&>svg]:h-[1.1em] [&>svg]:opacity-50',\n ),\n {\n variants: {\n size: {\n xs: controlSizeClasses.xs,\n sm: controlSizeClasses.sm,\n md: controlSizeClasses.md,\n default: controlSizeClasses.default,\n lg: controlSizeClasses.lg,\n },\n },\n defaultVariants: {\n size: 'default',\n },\n },\n);\n\nexport type ButtonsGroupTextProps = React.ComponentPropsWithoutRef<'div'> & {\n size?: ControlSize;\n};\n\nexport const ButtonsGroupText = React.forwardRef<HTMLDivElement, ButtonsGroupTextProps>(\n ({ className, size = 'default', ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"buttons-group-text\"\n className={cn(buttonsGroupTextVariants({ size }), className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupText.displayName = 'ButtonsGroupText';\n\nexport { buttonsGroupVariants };\n"],"names":["React","cva","cn","jsx","controlSizeClasses"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buttons-group-Dw8Wu4sj.cjs","sources":["../src/ds/components/ButtonsGroup/buttons-group.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { controlSizeClasses } from '@/ds/primitives/control-size';\nimport type { ControlSize } from '@/ds/primitives/control-size';\nimport { cn } from '@/lib/utils';\n\ntype Orientation = 'horizontal' | 'vertical';\n\nconst ButtonsGroupOrientationContext = React.createContext<Orientation>('horizontal');\n\nconst buttonsGroupVariants = cva(\n // Lift the hovered/focused segment so its full border paints over the collapsed seam (else a\n // neighbour clips a side / the seam ignores the active colour). Use `:focus-visible`, NOT\n // `:focus-within`: a mouse click leaves a plain `:focus` on a button, which would otherwise\n // keep its seam border highlighted until blur. `:has(:focus-visible)` covers a nested\n // focusable (the <input> inside an InputGroup); text inputs match :focus-visible on click too,\n // which is the wanted behaviour for a field.\n cn(\n 'flex',\n '[&>*:hover]:relative [&>*:hover]:z-10',\n '[&>*:focus-visible]:relative [&>*:focus-visible]:z-10',\n '[&>*:has(:focus-visible)]:relative [&>*:has(:focus-visible)]:z-10',\n ),\n {\n variants: {\n orientation: {\n horizontal: 'flex-row items-center',\n vertical: 'flex-col items-stretch',\n },\n spacing: {\n default: 'gap-2',\n close: 'gap-0',\n },\n },\n compoundVariants: [\n {\n orientation: 'horizontal',\n spacing: 'close',\n // Flatten inner corners. A segment rounds its right edge off having a *real* segment\n // somewhere after it (general sibling `~`, not `:not(:last-child)` and not adjacent\n // `+`). This survives non-segment children that frameworks inject between/around the\n // real ones: Base UI's trailing `<input aria-hidden>` (Select), and the visually\n // -hidden focus guards (`[data-base-ui-focus-guard]`) + positioner anchor (`[aria-owns]`)\n // a Menu/Popover inserts while OPEN — without this a DropdownMenu split-button seam\n // breaks the moment the menu opens. The same ignore-list is applied to every seam rule.\n className: cn(\n '[&>*:has(~_*:not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]))]:rounded-r-none',\n '[&>*:not(:first-child):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns])]:rounded-l-none',\n // One-line seam: `-ml-px` overlaps adjacent borders onto the same pixel. Filled\n // segments (opaque bg: default/primary buttons, the text chip) keep their own\n // border — the bg hides the neighbour's. Transparent/outline segments null their\n // left border at rest (so the neighbour's shows without doubling) and reveal it on\n // hover / keyboard-focus, where the z-10 lift paints the complete border on top.\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child)]:-ml-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not([aria-hidden=true]):not([data-base-ui-focus-guard]):not([aria-owns]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-l-transparent',\n // `primary` is filled but borderless — give it (only) an inset-shadow divider.\n '[&>[data-variant=primary]:not([aria-hidden=true]):not(:first-child)]:shadow-[inset_1px_0_0_0_var(--color-border1)]',\n // Animate only colour/bg so the seam + ring snap (no fade desynced from the z-10 drop).\n '[&>*:not([data-slot=buttons-group-separator]):not([aria-hidden=true])]:transition-[color,background-color]',\n // Group owns sizing (no consumer width classes): fill on flex/InputGroup/input,\n // content-width on a Select trigger (descendant rule beats the trigger's `w-full`).\n '[&>[data-slot=select-trigger]]:w-fit [&>[data-slot=select-trigger]]:flex-none',\n '[&>input]:flex-1',\n ),\n },\n {\n orientation: 'vertical',\n spacing: 'close',\n // Children are capsules (rounded-full); re-round the outer ends to rounded-xl and\n // flatten the touching ones. Unlike the horizontal block, these use plain structural\n // selectors (no aria-hidden / data-base-ui-focus-guard / aria-owns ignore-list): vertical\n // close-spacing is only used with plain buttons, so it never hosts a Select/DropdownMenu\n // that injects guard siblings. Mirror the horizontal ignore-list here if one ever does.\n className: cn(\n '[&>*:not(:last-child)]:rounded-b-none',\n '[&>*:not(:first-child)]:rounded-t-none',\n '[&>:first-child]:rounded-t-xl',\n '[&>:last-child]:rounded-b-xl',\n '[&>*:not([data-slot=buttons-group-separator]):not(:first-child)]:-mt-px',\n '[&>*:not([data-slot=buttons-group-separator]):not([data-slot=buttons-group-text]):not([data-variant=default]):not([data-variant=primary]):not(:first-child):not(:hover):not(:focus-visible):not(:has(:focus-visible))]:border-t-transparent',\n '[&>[data-variant=primary]:not(:first-child)]:shadow-[inset_0_1px_0_0_var(--color-border1)]',\n '[&>*:not([data-slot=buttons-group-separator])]:transition-[color,background-color]',\n ),\n },\n ],\n defaultVariants: {\n orientation: 'horizontal',\n spacing: 'default',\n },\n },\n);\n\n// Derive variant types from cva (single source of truth) and strip `null` that cva injects.\ntype ButtonsGroupVariantsProps = VariantProps<typeof buttonsGroupVariants>;\nexport type ButtonsGroupSpacing = NonNullable<ButtonsGroupVariantsProps['spacing']>;\n\nexport type ButtonsGroupProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n spacing?: ButtonsGroupSpacing;\n};\n\nexport const ButtonsGroup = React.forwardRef<HTMLDivElement, ButtonsGroupProps>(\n ({ children, className, orientation = 'horizontal', spacing = 'default', ...props }, ref) => {\n return (\n <ButtonsGroupOrientationContext.Provider value={orientation}>\n <div\n ref={ref}\n role=\"group\"\n data-slot=\"buttons-group\"\n data-orientation={orientation}\n className={cn(buttonsGroupVariants({ orientation, spacing }), className)}\n {...props}\n >\n {children}\n </div>\n </ButtonsGroupOrientationContext.Provider>\n );\n },\n);\nButtonsGroup.displayName = 'ButtonsGroup';\n\nexport type ButtonsGroupSeparatorProps = React.ComponentPropsWithoutRef<'div'> & {\n orientation?: Orientation;\n};\n\nexport const ButtonsGroupSeparator = React.forwardRef<HTMLDivElement, ButtonsGroupSeparatorProps>(\n ({ className, orientation, ...props }, ref) => {\n const parentOrientation = React.useContext(ButtonsGroupOrientationContext);\n // Separator runs perpendicular to the group flow by default.\n const resolved = orientation ?? (parentOrientation === 'vertical' ? 'horizontal' : 'vertical');\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={resolved}\n data-slot=\"buttons-group-separator\"\n className={cn('self-stretch bg-border1', resolved === 'vertical' ? 'w-px' : 'h-px', className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupSeparator.displayName = 'ButtonsGroupSeparator';\n\nconst buttonsGroupTextVariants = cva(\n cn(\n 'inline-flex items-center justify-center border border-border1 bg-surface3 text-neutral5 select-none',\n 'shrink-0 gap-[.75em] rounded-full px-[1em] whitespace-nowrap',\n '[&>svg]:size-[1.1em] [&>svg]:opacity-50',\n ),\n {\n variants: {\n size: {\n xs: controlSizeClasses.xs,\n sm: controlSizeClasses.sm,\n md: controlSizeClasses.md,\n default: controlSizeClasses.default,\n lg: controlSizeClasses.lg,\n },\n },\n defaultVariants: {\n size: 'default',\n },\n },\n);\n\nexport type ButtonsGroupTextProps = React.ComponentPropsWithoutRef<'div'> & {\n size?: ControlSize;\n};\n\nexport const ButtonsGroupText = React.forwardRef<HTMLDivElement, ButtonsGroupTextProps>(\n ({ className, size = 'default', ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"buttons-group-text\"\n className={cn(buttonsGroupTextVariants({ size }), className)}\n {...props}\n />\n );\n },\n);\nButtonsGroupText.displayName = 'ButtonsGroupText';\n\nexport { buttonsGroupVariants };\n"],"names":["React","cva","cn","jsx","controlSizeClasses"],"mappings":"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"}
|