@mastra/playground-ui 62.0.0 → 63.0.0-alpha.1
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/dist/alert-dialog-R9z2SJLl.js +40 -0
- package/dist/alert-dialog-R9z2SJLl.js.map +1 -0
- package/dist/alert-dialog-j626w-Qb.cjs +42 -0
- package/dist/alert-dialog-j626w-Qb.cjs.map +1 -0
- package/dist/{ask-user-card-xR8YiiQa.js → ask-user-card-CwKfl6M2.js} +5 -6
- package/dist/{ask-user-card-xR8YiiQa.js.map → ask-user-card-CwKfl6M2.js.map} +1 -1
- package/dist/{ask-user-card-40a18Qea.cjs → ask-user-card-g8cqh8KI.cjs} +1 -2
- package/dist/{ask-user-card-40a18Qea.cjs.map → ask-user-card-g8cqh8KI.cjs.map} +1 -1
- package/dist/{checkbox-mmR3rD2j.js → checkbox-B3tvJLCl.js} +2 -2
- package/dist/{checkbox-mmR3rD2j.js.map → checkbox-B3tvJLCl.js.map} +1 -1
- package/dist/{code-block-BQZUoOfS.js → code-block-9sT-CaoF.js} +2 -2
- package/dist/{code-block-BQZUoOfS.js.map → code-block-9sT-CaoF.js.map} +1 -1
- package/dist/{code-editor-D69saH4C.js → code-editor-DgfDaPAD.js} +2 -2
- package/dist/{code-editor-D69saH4C.js.map → code-editor-DgfDaPAD.js.map} +1 -1
- package/dist/{combobox-DDUIREaG.js → combobox-DJu0ggNa.js} +2 -2
- package/dist/{combobox-DDUIREaG.js.map → combobox-DJu0ggNa.js.map} +1 -1
- package/dist/{command-Cx5QAS4E.cjs → command-DbZ6CSAy.cjs} +3 -3
- package/dist/command-DbZ6CSAy.cjs.map +1 -0
- package/dist/{command-B141Sxts.js → command-DtIlcv-t.js} +3 -3
- package/dist/command-DtIlcv-t.js.map +1 -0
- package/dist/components/AlertDialog.cjs.js +1 -1
- package/dist/components/AlertDialog.es.js +1 -1
- package/dist/components/Checkbox.es.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Combobox.es.js +1 -1
- package/dist/components/Command.cjs.js +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/CommandPalette.cjs.js +1 -1
- package/dist/components/CommandPalette.es.js +1 -1
- package/dist/components/Comment.cjs.js +0 -1
- package/dist/components/Comment.cjs.js.map +1 -1
- package/dist/components/Comment.es.js +2 -3
- package/dist/components/Comment.es.js.map +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataList.cjs.js +15 -17
- package/dist/components/DataList.cjs.js.map +1 -1
- package/dist/components/DataList.es.js +4 -5
- package/dist/components/DataList.es.js.map +1 -1
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +0 -1
- package/dist/components/DateTimePicker.cjs.js.map +1 -1
- package/dist/components/DateTimePicker.es.js +3 -4
- package/dist/components/DateTimePicker.es.js.map +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +2 -2
- package/dist/components/Dialog.es.js +2 -2
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -2
- package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +3 -4
- package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
- package/dist/components/Field.es.js +2 -2
- package/dist/components/FilterBar.cjs.js +2 -2
- package/dist/components/FilterBar.cjs.js.map +1 -1
- package/dist/components/FilterBar.es.js +3 -3
- package/dist/components/FilterBar.es.js.map +1 -1
- package/dist/components/FormFieldBlocks.es.js +2 -2
- package/dist/components/Input.es.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/InputNumber.es.js +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +0 -1
- package/dist/components/JSONSchemaForm.cjs.js.map +1 -1
- package/dist/components/JSONSchemaForm.es.js +4 -5
- package/dist/components/JSONSchemaForm.es.js.map +1 -1
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +5 -2
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +5 -2
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +0 -1
- package/dist/components/PropertyFilter.cjs.js.map +1 -1
- package/dist/components/PropertyFilter.es.js +4 -5
- package/dist/components/PropertyFilter.es.js.map +1 -1
- package/dist/components/RadioGroup.es.js +1 -1
- package/dist/components/RuleBuilder.es.js +2 -2
- package/dist/components/SavedViews.cjs.js +1 -1
- package/dist/components/SavedViews.es.js +1 -1
- package/dist/components/SearchInput.cjs.js +1 -1
- package/dist/components/SearchInput.es.js +1 -1
- package/dist/components/Section.cjs.js +1 -1
- package/dist/components/Section.es.js +1 -1
- package/dist/components/SegmentedControl.es.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +1 -1
- package/dist/components/SideDialog.es.js +1 -1
- package/dist/components/Sidebar.cjs.js +2 -2
- package/dist/components/Sidebar.es.js +3 -3
- package/dist/components/Switch.es.js +1 -1
- package/dist/components/ThemeToggle.es.js +1 -1
- package/dist/components/Workflow.cjs.js +2 -2
- package/dist/components/Workflow.es.js +3 -3
- package/dist/components/ai/activity.es.js +1 -1
- package/dist/components/ai/ask-user.cjs.js +1 -1
- package/dist/components/ai/ask-user.es.js +1 -1
- package/dist/components/ai/plan.es.js +1 -1
- package/dist/components/ai/tool-approval.es.js +1 -1
- package/dist/components/ai/tool-call.es.js +1 -1
- package/dist/{data-code-section-zG2S1MPX.js → data-code-section-BGLC-hxm.js} +3 -3
- package/dist/{data-code-section-zG2S1MPX.js.map → data-code-section-BGLC-hxm.js.map} +1 -1
- package/dist/{data-code-section-hVbIXLNC.cjs → data-code-section-BTRNa1SD.cjs} +3 -3
- package/dist/{data-code-section-hVbIXLNC.cjs.map → data-code-section-BTRNa1SD.cjs.map} +1 -1
- package/dist/{data-list-top-BJCC62oy.js → data-list-DDGpWucH.js} +333 -6
- package/dist/data-list-DDGpWucH.js.map +1 -0
- package/dist/{data-list-top-Ds-NWyPO.cjs → data-list-_yDPF5wR.cjs} +339 -13
- package/dist/data-list-_yDPF5wR.cjs.map +1 -0
- package/dist/{data-list-skeleton-BmsDYJrA.js → data-list-skeleton-CJFwZBlW.js} +2 -2
- package/dist/{data-list-skeleton-BmsDYJrA.js.map → data-list-skeleton-CJFwZBlW.js.map} +1 -1
- package/dist/{data-list-skeleton-CfVsXhx1.cjs → data-list-skeleton-maUWF7Ri.cjs} +6 -6
- package/dist/{data-list-skeleton-CfVsXhx1.cjs.map → data-list-skeleton-maUWF7Ri.cjs.map} +1 -1
- package/dist/{data-panel-BLqydW68.js → data-panel-DfVGx0Ea.js} +3 -3
- package/dist/{data-panel-BLqydW68.js.map → data-panel-DfVGx0Ea.js.map} +1 -1
- package/dist/{data-panel-BdeebdMA.cjs → data-panel-Dhg7s3fD.cjs} +4 -4
- package/dist/{data-panel-BdeebdMA.cjs.map → data-panel-Dhg7s3fD.cjs.map} +1 -1
- package/dist/{date-time-range-picker-BvRPfy1i.cjs → date-time-range-picker-BNaXCa7r.cjs} +1 -2
- package/dist/{date-time-range-picker-BvRPfy1i.cjs.map → date-time-range-picker-BNaXCa7r.cjs.map} +1 -1
- package/dist/{date-time-range-picker-CIfaXUuy.js → date-time-range-picker-C5x_33hB.js} +3 -4
- package/dist/{date-time-range-picker-CIfaXUuy.js.map → date-time-range-picker-C5x_33hB.js.map} +1 -1
- package/dist/{dialog-wL-fuFON.cjs → dialog-DQI9ChYf.cjs} +74 -37
- package/dist/dialog-DQI9ChYf.cjs.map +1 -0
- package/dist/{dialog-BYsQZGIj.js → dialog-DlZmNahd.js} +75 -35
- package/dist/dialog-DlZmNahd.js.map +1 -0
- package/dist/{dialog-action-B-pF99m0.js → dialog-action-c4nfPomF.js} +2 -2
- package/dist/{dialog-action-B-pF99m0.js.map → dialog-action-c4nfPomF.js.map} +1 -1
- package/dist/{dialog-action-CcMhvjM-.cjs → dialog-action-gdo9CwUv.cjs} +2 -2
- package/dist/{dialog-action-CcMhvjM-.cjs.map → dialog-action-gdo9CwUv.cjs.map} +1 -1
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +1 -1
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +2 -2
- package/dist/domains/chat/messages/dataset-save-action.cjs.js +2 -3
- package/dist/domains/chat/messages/dataset-save-action.cjs.js.map +1 -1
- package/dist/domains/chat/messages/dataset-save-action.es.js +5 -6
- package/dist/domains/chat/messages/dataset-save-action.es.js.map +1 -1
- package/dist/domains/chat/messages/message-row.cjs.js +0 -1
- package/dist/domains/chat/messages/message-row.cjs.js.map +1 -1
- package/dist/domains/chat/messages/message-row.es.js +1 -2
- package/dist/domains/chat/messages/message-row.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
- package/dist/domains/chat/messages/skill-message.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +2 -2
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +3 -3
- package/dist/domains/chat/tools/submit-plan-tool.es.js +1 -1
- package/dist/domains/chat/tools/tool-card.es.js +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +1 -2
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js.map +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +4 -5
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js.map +1 -1
- package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
- package/dist/domains/logs/components/log-data-panel.es.js +1 -1
- package/dist/domains/logs/components/logs-list-view.cjs.js +3 -2
- package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-list-view.es.js +3 -2
- package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js +0 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js +2 -3
- package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/drilldown.cjs.js +1 -1
- package/dist/domains/metrics/drilldown.es.js +1 -1
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +1 -2
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js.map +1 -1
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +4 -5
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js.map +1 -1
- package/dist/domains/request-context/components/request-context-label.cjs.js +0 -1
- package/dist/domains/request-context/components/request-context-label.cjs.js.map +1 -1
- package/dist/domains/request-context/components/request-context-label.es.js +1 -2
- package/dist/domains/request-context/components/request-context-label.es.js.map +1 -1
- package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
- package/dist/domains/scores/components/score-data-panel.es.js +1 -1
- package/dist/domains/scores/components/span-scoring.cjs.js +2 -2
- package/dist/domains/scores/components/span-scoring.es.js +3 -3
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +2 -1
- package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +2 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
- package/dist/domains/traces/components/feedback-thread.cjs.js +1 -1
- package/dist/domains/traces/components/feedback-thread.es.js +2 -2
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -2
- package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.es.js +1 -2
- package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/span-details-view.cjs.js +0 -1
- package/dist/domains/traces/components/span-details-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-details-view.es.js +0 -1
- package/dist/domains/traces/components/span-details-view.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
- package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +0 -2
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js +0 -2
- package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +2 -3
- package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +4 -5
- package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
- 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/trace-data-panel.cjs.js +3 -4
- package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +3 -4
- package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
- package/dist/domains/traces/components/trace-id-button.es.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js +3 -3
- package/dist/domains/traces/components/trace-time-range-chip.es.js +3 -3
- package/dist/domains/traces/components/traces-list-view.cjs.js +4 -5
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +3 -4
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +4 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +4 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-filter-persistence.cjs.js +1 -1
- package/dist/domains/traces/hooks/use-trace-filter-persistence.es.js +1 -1
- package/dist/domains/traces/hooks/use-trace-url-state.cjs.js +1 -1
- package/dist/domains/traces/hooks/use-trace-url-state.es.js +1 -1
- package/dist/domains/traces/trace-filters.cjs.js +1 -1
- package/dist/domains/traces/trace-filters.es.js +1 -1
- package/dist/domains/traces/trace-query-filters.cjs.js +1 -1
- package/dist/domains/traces/trace-query-filters.es.js +1 -1
- package/dist/domains/traces.cjs.js +1 -1
- package/dist/domains/traces.es.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
- package/dist/domains/workflows/components/workflow-step-detail.es.js +2 -2
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.es.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +0 -1
- package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +2 -3
- package/dist/domains/workflows/workflow/input/workflow-json-input.es.js.map +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +0 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +2 -3
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js.map +1 -1
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +0 -1
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +2 -3
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-node.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +0 -2
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +0 -2
- package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +0 -1
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +2 -3
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-active-file.es.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +3 -4
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +6 -7
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-create-directory.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-create-directory.es.js +2 -2
- package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
- package/dist/domains/workspace/components/workspace-search.es.js +1 -1
- package/dist/domains/workspace/components/workspace-tree.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-tree.es.js +1 -1
- package/dist/{drawer-B-t4ydEh.js → drawer-CZlqOjd2.js} +17 -7
- package/dist/{drawer-B-t4ydEh.js.map → drawer-CZlqOjd2.js.map} +1 -1
- package/dist/{drawer-DE2b3eld.cjs → drawer-CeUYCG-S.cjs} +16 -6
- package/dist/{drawer-DE2b3eld.cjs.map → drawer-CeUYCG-S.cjs.map} +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +3 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +3 -1
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +4 -2
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +5 -3
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
- package/dist/ee/signals/noise-detail-panel.es.js +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -3
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js.map +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +4 -5
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js.map +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
- package/dist/ee/signals/theme-detail-panel.cjs.js +1 -1
- package/dist/ee/signals/theme-detail-panel.es.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
- package/dist/{field-B89BEZg4.js → field-Bc8Ewf_M.js} +2 -2
- package/dist/{field-B89BEZg4.js.map → field-Bc8Ewf_M.js.map} +1 -1
- package/dist/{field-control-aria-DB6y41tQ.js → field-control-aria-CCJ4-mUe.js} +2 -2
- package/dist/{field-control-aria-DB6y41tQ.js.map → field-control-aria-CCJ4-mUe.js.map} +1 -1
- package/dist/{filter-bar-chip-uPmGVzPR.cjs → filter-bar-chip-C_371aon.cjs} +35 -6
- package/dist/filter-bar-chip-C_371aon.cjs.map +1 -0
- package/dist/{filter-bar-chip-Bu27EjSO.js → filter-bar-chip-Dc6phYqZ.js} +35 -6
- package/dist/filter-bar-chip-Dc6phYqZ.js.map +1 -0
- package/dist/hooks/use-is-mobile.cjs.js +14 -10
- package/dist/hooks/use-is-mobile.cjs.js.map +1 -1
- package/dist/hooks/use-is-mobile.es.js +15 -11
- package/dist/hooks/use-is-mobile.es.js.map +1 -1
- package/dist/{input-DQFUjtnh.js → input-Ds171RJ5.js} +2 -2
- package/dist/{input-DQFUjtnh.js.map → input-Ds171RJ5.js.map} +1 -1
- package/dist/{input-group-BWsGYnES.js → input-group-Cxv64rPB.js} +2 -2
- package/dist/{input-group-BWsGYnES.js.map → input-group-Cxv64rPB.js.map} +1 -1
- package/dist/layout/tabbed-container.cjs.js +2 -2
- package/dist/layout/tabbed-container.es.js +3 -3
- package/dist/lib/form/components/boolean-field.cjs.js +0 -1
- package/dist/lib/form/components/boolean-field.cjs.js.map +1 -1
- package/dist/lib/form/components/boolean-field.es.js +2 -3
- package/dist/lib/form/components/boolean-field.es.js.map +1 -1
- package/dist/lib/form/components/date-field.es.js +1 -1
- package/dist/lib/form/components/field-wrapper.cjs.js +0 -1
- package/dist/lib/form/components/field-wrapper.cjs.js.map +1 -1
- package/dist/lib/form/components/field-wrapper.es.js +1 -2
- package/dist/lib/form/components/field-wrapper.es.js.map +1 -1
- package/dist/lib/form/components/number-field.es.js +1 -1
- package/dist/lib/form/components/record-field.es.js +1 -1
- package/dist/lib/form/components/select-field.es.js +1 -1
- package/dist/{list-search-xHadeMHl.cjs → list-search-C3yXcTRO.cjs} +2 -2
- package/dist/{list-search-xHadeMHl.cjs.map → list-search-C3yXcTRO.cjs.map} +1 -1
- package/dist/{list-search-BNnMwbpv.js → list-search-CmPRFDsn.js} +2 -2
- package/dist/{list-search-BNnMwbpv.js.map → list-search-CmPRFDsn.js.map} +1 -1
- package/dist/{logs-data-list-DfuVMd6f.cjs → logs-data-list-Bf_vIsFb.cjs} +21 -22
- package/dist/{logs-data-list-DfuVMd6f.cjs.map → logs-data-list-Bf_vIsFb.cjs.map} +1 -1
- package/dist/{logs-data-list-C262Be3o.js → logs-data-list-Cudh6b-c.js} +2 -3
- package/dist/{logs-data-list-C262Be3o.js.map → logs-data-list-Cudh6b-c.js.map} +1 -1
- package/dist/{markdown-renderer-D5Wjk1Cs.js → markdown-renderer-Cly6VMDr.js} +2 -2
- package/dist/{markdown-renderer-D5Wjk1Cs.js.map → markdown-renderer-Cly6VMDr.js.map} +1 -1
- package/dist/new/settings.cjs.js +1 -1
- package/dist/new/settings.es.js +1 -1
- package/dist/{plan-Cl3-JgbI.js → plan-DIbhFPRL.js} +2 -2
- package/dist/{plan-Cl3-JgbI.js.map → plan-DIbhFPRL.js.map} +1 -1
- package/dist/primitives/textarea-control.es.js +1 -1
- package/dist/{property-filter-applied-CZLzY0OH.js → property-filter-applied-DXH81ffT.js} +2 -2
- package/dist/{property-filter-applied-CZLzY0OH.js.map → property-filter-applied-DXH81ffT.js.map} +1 -1
- package/dist/{radio-group-Bk52hNNb.js → radio-group-C2zsCipq.js} +2 -2
- package/dist/{radio-group-Bk52hNNb.js.map → radio-group-C2zsCipq.js.map} +1 -1
- package/dist/{reasoning-activity-CIuVSAGA.js → reasoning-activity-B1r4JQxm.js} +2 -2
- package/dist/{reasoning-activity-CIuVSAGA.js.map → reasoning-activity-B1r4JQxm.js.map} +1 -1
- package/dist/resize/panel-drawer.cjs.js +1 -1
- package/dist/resize/panel-drawer.es.js +1 -1
- package/dist/{search-input-fqSrRTLU.js → search-input-D23h16CB.js} +3 -4
- package/dist/{search-input-fqSrRTLU.js.map → search-input-D23h16CB.js.map} +1 -1
- package/dist/{search-input-UtTJMjJu.cjs → search-input-DbEE2zEz.cjs} +1 -2
- package/dist/{search-input-UtTJMjJu.cjs.map → search-input-DbEE2zEz.cjs.map} +1 -1
- package/dist/{section-DhZbtWhu.cjs → section-CdaSS9M7.cjs} +2 -2
- package/dist/{section-DhZbtWhu.cjs.map → section-CdaSS9M7.cjs.map} +1 -1
- package/dist/{section-Dq6aFxlH.js → section-DcjTdrqz.js} +2 -2
- package/dist/{section-Dq6aFxlH.js.map → section-DcjTdrqz.js.map} +1 -1
- package/dist/{segmented-control-CUnvFStD.js → segmented-control-BfY7F0NZ.js} +2 -2
- package/dist/{segmented-control-CUnvFStD.js.map → segmented-control-BfY7F0NZ.js.map} +1 -1
- package/dist/{select-N2lgBRsg.js → select-BGAiIHnS.js} +2 -2
- package/dist/{select-N2lgBRsg.js.map → select-BGAiIHnS.js.map} +1 -1
- package/dist/{settings-row-CwZ3JffC.cjs → settings-row-rOI4yGvi.cjs} +1 -2
- package/dist/{settings-row-CwZ3JffC.cjs.map → settings-row-rOI4yGvi.cjs.map} +1 -1
- package/dist/{settings-row-gpwIVAMN.js → settings-row-ylIw4rfC.js} +2 -3
- package/dist/{settings-row-gpwIVAMN.js.map → settings-row-ylIw4rfC.js.map} +1 -1
- package/dist/{side-dialog-BIyr498B.js → side-dialog-CB_wrLtE.js} +3 -3
- package/dist/{side-dialog-BIyr498B.js.map → side-dialog-CB_wrLtE.js.map} +1 -1
- package/dist/{side-dialog-BT2xywA8.cjs → side-dialog-OPXvmRDA.cjs} +3 -3
- package/dist/{side-dialog-BT2xywA8.cjs.map → side-dialog-OPXvmRDA.cjs.map} +1 -1
- package/dist/{span-payload-primitives-WqYTBiGx.js → span-payload-primitives-Cixom2Py.js} +2 -2
- package/dist/{span-payload-primitives-WqYTBiGx.js.map → span-payload-primitives-Cixom2Py.js.map} +1 -1
- package/dist/src/ds/components/AlertDialog/alert-dialog.d.ts +8 -11
- package/dist/src/ds/components/Dialog/dialog-shell.d.ts +1 -0
- package/dist/src/ds/components/Dialog/dialog.d.ts +9 -3
- package/dist/src/ds/components/FilterBar/filter-bar-tree.d.ts +9 -1
- package/dist/src/ds/components/FilterBar/types.d.ts +6 -0
- package/dist/style.css +17 -4
- package/dist/{switch-DiSlsWUt.js → switch-BBeMfeQ2.js} +2 -2
- package/dist/{switch-DiSlsWUt.js.map → switch-BBeMfeQ2.js.map} +1 -1
- package/dist/{time-picker-J7GaNaEd.js → time-picker-Bo6GJcmz.js} +2 -2
- package/dist/{time-picker-J7GaNaEd.js.map → time-picker-Bo6GJcmz.js.map} +1 -1
- package/dist/{tool-approval-nsbG8-qI.js → tool-approval-BQ6sDvyS.js} +2 -2
- package/dist/{tool-approval-nsbG8-qI.js.map → tool-approval-BQ6sDvyS.js.map} +1 -1
- package/dist/{tool-call-arguments-RKyYP3xh.js → tool-call-arguments-B86JP3Dy.js} +2 -2
- package/dist/{tool-call-arguments-RKyYP3xh.js.map → tool-call-arguments-B86JP3Dy.js.map} +1 -1
- package/dist/{tool-card-BtPh44u6.js → tool-card-C8IrtMuQ.js} +2 -2
- package/dist/{tool-card-BtPh44u6.js.map → tool-card-C8IrtMuQ.js.map} +1 -1
- package/dist/{trace-filters-B9myZP-l.cjs → trace-filters-Bh4dVNPX.cjs} +16 -20
- package/dist/trace-filters-Bh4dVNPX.cjs.map +1 -0
- package/dist/{trace-filters-Cvra0Aum.js → trace-filters-C71gmCq4.js} +16 -20
- package/dist/trace-filters-C71gmCq4.js.map +1 -0
- package/dist/{traces-data-list-Cf_PpmSN.cjs → traces-data-list-DaFA1Ccg.cjs} +17 -19
- package/dist/{traces-data-list-Cf_PpmSN.cjs.map → traces-data-list-DaFA1Ccg.cjs.map} +1 -1
- package/dist/{traces-data-list-_mFOMw0U.js → traces-data-list-L_r2GAtr.js} +2 -4
- package/dist/{traces-data-list-_mFOMw0U.js.map → traces-data-list-L_r2GAtr.js.map} +1 -1
- package/dist/types-CIPrYAzY.js.map +1 -1
- package/dist/types-Ns4ZNp-g.cjs.map +1 -1
- package/dist/{use-workflow-graph-runtime-CAyNWN_Z.js → use-workflow-graph-runtime-DS7eWso7.js} +2 -2
- package/dist/{use-workflow-graph-runtime-CAyNWN_Z.js.map → use-workflow-graph-runtime-DS7eWso7.js.map} +1 -1
- package/dist/{workflow-code-dialog-content-CNDoMFAV.js → workflow-code-dialog-content-BUCZZoKf.js} +2 -2
- package/dist/{workflow-code-dialog-content-CNDoMFAV.js.map → workflow-code-dialog-content-BUCZZoKf.js.map} +1 -1
- package/dist/{workflow-data-edge-view-CMdPlcQj.cjs → workflow-data-edge-view-BHvpuvmp.cjs} +2 -2
- package/dist/{workflow-data-edge-view-CMdPlcQj.cjs.map → workflow-data-edge-view-BHvpuvmp.cjs.map} +1 -1
- package/dist/{workflow-data-edge-view-DeX0gykV.js → workflow-data-edge-view-BIiMA9zg.js} +2 -2
- package/dist/{workflow-data-edge-view-DeX0gykV.js.map → workflow-data-edge-view-BIiMA9zg.js.map} +1 -1
- package/dist/{workflow-edge-data-button-CSeMH2Ky.cjs → workflow-edge-data-button-Cz2rcoDr.cjs} +2 -2
- package/dist/{workflow-edge-data-button-CSeMH2Ky.cjs.map → workflow-edge-data-button-Cz2rcoDr.cjs.map} +1 -1
- package/dist/{workflow-edge-data-button-DfyJCI6R.js → workflow-edge-data-button-D5oK4NS5.js} +3 -3
- package/dist/{workflow-edge-data-button-DfyJCI6R.js.map → workflow-edge-data-button-D5oK4NS5.js.map} +1 -1
- package/package.json +9 -9
- package/dist/alert-dialog-BJlS-v3z.cjs +0 -55
- package/dist/alert-dialog-BJlS-v3z.cjs.map +0 -1
- package/dist/alert-dialog-BvzVYar8.js +0 -53
- package/dist/alert-dialog-BvzVYar8.js.map +0 -1
- package/dist/command-B141Sxts.js.map +0 -1
- package/dist/command-Cx5QAS4E.cjs.map +0 -1
- package/dist/data-list-DkVOwk8l.cjs +0 -142
- package/dist/data-list-DkVOwk8l.cjs.map +0 -1
- package/dist/data-list-Dv2lP-dU.js +0 -138
- package/dist/data-list-Dv2lP-dU.js.map +0 -1
- package/dist/data-list-spacer-DEMquKp9.js +0 -209
- package/dist/data-list-spacer-DEMquKp9.js.map +0 -1
- package/dist/data-list-spacer-pXP8xDlg.cjs +0 -218
- package/dist/data-list-spacer-pXP8xDlg.cjs.map +0 -1
- package/dist/data-list-top-BJCC62oy.js.map +0 -1
- package/dist/data-list-top-Ds-NWyPO.cjs.map +0 -1
- package/dist/dialog-BYsQZGIj.js.map +0 -1
- package/dist/dialog-wL-fuFON.cjs.map +0 -1
- package/dist/filter-bar-chip-Bu27EjSO.js.map +0 -1
- package/dist/filter-bar-chip-uPmGVzPR.cjs.map +0 -1
- package/dist/trace-filters-B9myZP-l.cjs.map +0 -1
- package/dist/trace-filters-Cvra0Aum.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-add-skill-dialog.es.js","sources":["../../../../src/domains/workspace/components/workspace-add-skill-dialog.tsx"],"sourcesContent":["import {\n useSearchSkillsSh,\n usePopularSkillsSh,\n useSkillPreview,\n parseSkillSource,\n} from '@mastra/react/hooks/workspace';\nimport type { SkillsShSkill } from '@mastra/react/hooks/workspace';\nimport { Download, ExternalLink, Loader2, CircleSlashIcon, Package, Check, Folder } from 'lucide-react';\nimport { useState, useCallback, useMemo } from 'react';\nimport { useDebouncedCallback } from 'use-debounce';\nimport {\n Dialog,\n DialogAction,\n DialogBody,\n DialogCancel,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { Field, FieldLabel } from '@/ds/components/Field';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { ScrollArea, ScrollAreaViewport } from '@/ds/components/ScrollArea';\nimport { SearchInput } from '@/ds/components/SearchInput';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { Txt } from '@/ds/components/Txt';\nimport { GithubIcon } from '@/ds/icons/GithubIcon';\nimport { SkillIcon } from '@/ds/icons/SkillIcon';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { controlStateColorTransition } from '@/ds/primitives/transitions';\nimport { quietTextHover } from '@/ds/primitives/typography';\nimport { cn } from '@/lib/utils';\n\nexport interface WritableMount {\n path: string;\n displayName?: string;\n icon?: string;\n provider?: string;\n name?: string;\n}\n\nexport interface AddSkillDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n workspaceId: string;\n onInstall: (params: { repository: string; skillName: string; mount?: string }) => void;\n isInstalling?: boolean;\n /**\n * Unique IDs of skills installed via skills.sh (format: \"owner/repo/skillName\").\n * Used for precise matching - only the exact source/skill combo shows as installed.\n */\n installedSkillIds?: string[];\n /**\n * Names of skills that are already installed (fallback when source info unavailable).\n * Skills matching by name only will show as installed regardless of source.\n */\n installedSkillNames?: string[];\n /**\n * Writable mounts available for skill installation (for CompositeFilesystem).\n * When more than one is provided, a dropdown is shown to pick the mount.\n */\n writableMounts?: WritableMount[];\n /**\n * Map of skill name to its installed path (for showing mount location on \"Installed\" badge).\n * Only needed when multiple mounts exist.\n */\n installedSkillPaths?: Record<string, string>;\n}\n\n/**\n * Generate a unique identifier for a skills.sh skill (for selection tracking).\n * Uses topSource + name since a repo can only have one skill with a given name.\n */\nfunction getSkillUniqueId(skill: SkillsShSkill): string {\n return `${skill.topSource}/${skill.name}`;\n}\n\n/**\n * Generate an installed skill ID from a skills.sh skill.\n * Format: \"owner/repo/skillName\" - matches what we build from workspace skills with skillsShSource.\n */\nfunction getInstalledSkillId(skill: SkillsShSkill): string | null {\n const parsed = parseSkillSource(skill.topSource, skill.name);\n if (!parsed) return null;\n return `${parsed.owner}/${parsed.repo}/${skill.name}`;\n}\n\nexport function WorkspaceAddSkillDialog({\n open,\n onOpenChange,\n workspaceId,\n onInstall,\n isInstalling,\n installedSkillIds = [],\n installedSkillNames = [],\n writableMounts,\n installedSkillPaths,\n}: AddSkillDialogProps) {\n const [searchQuery, setSearchQuery] = useState('');\n const [selectedSkill, setSelectedSkill] = useState<SkillsShSkill | null>(null);\n const [selectedMount, setSelectedMount] = useState<string>();\n const installMount = writableMounts?.some(mount => mount.path === selectedMount)\n ? selectedMount\n : writableMounts?.[0]?.path;\n\n const { data: popularData, isLoading: isLoadingPopular } = usePopularSkillsSh({\n workspaceId: workspaceId,\n queryOptions: { enabled: !!workspaceId },\n });\n\n const searchMutation = useSearchSkillsSh({ workspaceId: workspaceId });\n\n const parsedSource = useMemo(() => {\n if (!selectedSkill?.topSource) return null;\n return parseSkillSource(selectedSkill.topSource, selectedSkill.name);\n }, [selectedSkill]);\n\n const skillsUrl = useMemo(() => {\n if (!parsedSource || !selectedSkill) return null;\n return `https://skills.sh/${parsedSource.owner}/${parsedSource.repo}/${selectedSkill.name}`;\n }, [parsedSource, selectedSkill]);\n\n const { data: previewContent, isLoading: isLoadingPreview } = useSkillPreview({\n workspaceId,\n owner: parsedSource?.owner,\n repo: parsedSource?.repo,\n skillPath: selectedSkill?.name,\n queryOptions: { enabled: !!workspaceId && !!parsedSource && !!selectedSkill },\n });\n\n const debouncedSearch = useDebouncedCallback((query: string) => {\n if (query.trim().length >= 2) {\n searchMutation.mutate(query);\n }\n }, 300);\n\n const handleSearch = useCallback(\n (query: string) => {\n setSearchQuery(query);\n debouncedSearch(query);\n },\n [debouncedSearch],\n );\n\n const displaySkills = useMemo(() => {\n if (searchQuery.trim().length >= 2) {\n return searchMutation.data?.skills ?? [];\n }\n return popularData?.skills ?? [];\n }, [searchQuery, searchMutation.data, popularData]);\n\n const isSearching = searchMutation.isPending;\n const hasSearchResults = searchQuery.trim().length >= 2;\n\n const isSelectedSkillInstalled = useMemo(() => {\n if (!selectedSkill) return false;\n\n const installedId = getInstalledSkillId(selectedSkill);\n if (installedId && installedSkillIds.includes(installedId)) {\n return true;\n }\n\n if (installedSkillNames.includes(selectedSkill.name)) {\n return true;\n }\n\n return false;\n }, [selectedSkill, installedSkillIds, installedSkillNames]);\n\n const handleInstall = useCallback(() => {\n if (!selectedSkill || !parsedSource) return;\n\n onInstall({\n repository: `${parsedSource.owner}/${parsedSource.repo}`,\n skillName: selectedSkill.name,\n mount: writableMounts && writableMounts.length > 1 ? installMount : undefined,\n });\n }, [selectedSkill, parsedSource, onInstall, writableMounts, installMount]);\n\n const handleOpenChange = useCallback(\n (newOpen: boolean) => {\n if (!newOpen) {\n setSearchQuery('');\n setSelectedSkill(null);\n setSelectedMount(undefined);\n }\n onOpenChange(newOpen);\n },\n [onOpenChange],\n );\n\n return (\n <Dialog open={open} onOpenChange={handleOpenChange} pending={isInstalling}>\n <DialogContent size=\"xl\" className=\"h-[80vh]\">\n <DialogHeader>\n <DialogTitle>Add Skill</DialogTitle>\n <DialogDescription>Search and install skills from the community registry</DialogDescription>\n </DialogHeader>\n\n <DialogBody layout=\"fill\">\n <SearchInput\n label=\"Search skills\"\n placeholder=\"Search skills...\"\n value={searchQuery}\n onValueChange={handleSearch}\n />\n\n <div className=\"flex min-h-0 flex-1 gap-4\">\n <div className=\"flex min-h-0 w-1/2 flex-col\">\n <Txt as=\"p\" variant=\"eyebrow\" tone=\"muted\" className=\"mb-2\">\n {hasSearchResults ? 'Search Results' : 'Popular Skills'}\n </Txt>\n <ScrollArea className=\"flex-1 rounded-lg border border-border\">\n <ScrollAreaViewport\n className={\n !isLoadingPopular && !isSearching && displaySkills.length === 0\n ? 'flex flex-col [&>div]:flex [&>div]:flex-1 [&>div]:flex-col'\n : undefined\n }\n >\n {isLoadingPopular || isSearching ? (\n <div className=\"flex items-center justify-center py-5\">\n <Loader2 className=\"size-6 animate-spin text-muted-foreground\" />\n </div>\n ) : displaySkills.length === 0 ? (\n <div className=\"flex flex-1 flex-col items-center-safe justify-center-safe py-5 text-muted-foreground\">\n <CircleSlashIcon className=\"mb-2 size-8\" />\n <Txt>{hasSearchResults ? 'No skills found' : 'No skills available'}</Txt>\n </div>\n ) : (\n <div className=\"space-y-1 p-2\">\n {displaySkills.map(skill => {\n const skillUniqueId = getSkillUniqueId(skill);\n const installedId = getInstalledSkillId(skill);\n const isInstalled =\n (installedId && installedSkillIds.includes(installedId)) ||\n installedSkillNames.includes(skill.name);\n const selectedSkillUniqueId = selectedSkill ? getSkillUniqueId(selectedSkill) : null;\n return (\n <button\n key={skillUniqueId}\n onClick={() => setSelectedSkill(skill)}\n className={cn(\n 'w-full rounded-md px-3 py-2 text-left',\n 'hover:bg-fill-subtle',\n selectedSkillUniqueId === skillUniqueId && 'border border-border-strong bg-fill-hover',\n )}\n >\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2\">\n <Txt as=\"span\" variant=\"subheading\" tone=\"ink\" className=\"truncate\">\n {skill.name}\n </Txt>\n {isInstalled && (\n <Txt\n as=\"span\"\n variant=\"meta\"\n className=\"inline-flex items-center gap-1 rounded bg-info-subtle px-1.5 py-0.5 text-info-subtle-foreground\"\n >\n <Check className=\"size-2.5\" />\n Installed\n </Txt>\n )}\n </div>\n <Txt as=\"p\" variant=\"caption\" tone=\"muted\" className=\"truncate\">\n {skill.topSource}\n </Txt>\n </div>\n <div className=\"flex shrink-0 items-center gap-1 text-muted-foreground\">\n <Download className=\"size-3\" />\n <Txt as=\"span\" variant=\"caption\">\n {skill.installs.toLocaleString()}\n </Txt>\n </div>\n </div>\n </button>\n );\n })}\n </div>\n )}\n </ScrollAreaViewport>\n </ScrollArea>\n </div>\n\n <div className=\"flex min-h-0 w-1/2 flex-col\">\n <Txt as=\"p\" variant=\"eyebrow\" tone=\"muted\" className=\"mb-2\">\n Preview\n </Txt>\n <div className=\"flex flex-1 flex-col overflow-hidden rounded-lg border border-border\">\n {!selectedSkill ? (\n <div className=\"flex h-full flex-col items-center justify-center text-muted-foreground\">\n <Package className=\"mb-2 size-8\" />\n <Txt>Select a skill to preview</Txt>\n </div>\n ) : (\n <>\n <div className=\"border-b border-border bg-card p-4\">\n <div className=\"flex items-start gap-3\">\n <div className=\"rounded-lg bg-muted p-2\">\n <SkillIcon className=\"size-5 text-muted-foreground\" />\n </div>\n <div className=\"min-w-0 flex-1\">\n <Txt as=\"h3\" variant=\"subheading\" tone=\"ink\" className=\"truncate\">\n {selectedSkill.name}\n </Txt>\n <div className=\"mt-1 flex items-center gap-3 text-muted-foreground\">\n <span className=\"flex items-center gap-1\">\n <GithubIcon className=\"size-3\" />\n <Txt as=\"span\" variant=\"caption\" className=\"block\">\n {selectedSkill.topSource}\n </Txt>\n </span>\n <span className=\"flex items-center gap-1\">\n <Download className=\"size-3\" />\n <Txt as=\"span\" variant=\"caption\" className=\"block\">\n {selectedSkill.installs.toLocaleString()} installs\n </Txt>\n </span>\n </div>\n </div>\n {parsedSource && (\n <a\n href={`https://github.com/${parsedSource.owner}/${parsedSource.repo}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(quietTextHover, controlStateColorTransition)}\n title=\"View on GitHub\"\n >\n <ExternalLink className=\"size-4\" />\n </a>\n )}\n </div>\n </div>\n\n {isLoadingPreview ? (\n <div className=\"flex flex-1 items-center justify-center\">\n <Loader2 className=\"size-6 animate-spin text-muted-foreground\" />\n </div>\n ) : previewContent ? (\n <ScrollArea className=\"flex-1\">\n <div className=\"p-4\">\n <MarkdownRenderer>{previewContent}</MarkdownRenderer>\n </div>\n </ScrollArea>\n ) : (\n <div className=\"flex flex-1 flex-col items-center justify-center text-muted-foreground\">\n <Package className=\"mb-2 size-8\" />\n <Txt>Preview unavailable</Txt>\n {skillsUrl && (\n <a\n href={skillsUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"mt-2 flex items-center gap-1 text-info-indicator hover:underline\"\n >\n <Txt as=\"span\" variant=\"caption\" className=\"block\">\n View on skills.sh{' '}\n </Txt>\n <ExternalLink className=\"size-3\" />\n </a>\n )}\n </div>\n )}\n </>\n )}\n </div>\n </div>\n </div>\n\n {selectedSkill && writableMounts && writableMounts.length > 1 && (\n <Field orientation=\"horizontal\" className={cn(raisedSurfaceStyle, 'gap-3 rounded-lg p-3')}>\n <Folder className=\"size-4 shrink-0 text-muted-foreground\" />\n <FieldLabel className=\"whitespace-nowrap\">Install to</FieldLabel>\n <Select value={installMount} onValueChange={setSelectedMount}>\n <SelectTrigger className=\"flex-1\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {writableMounts.map(m => {\n const name = m.displayName ?? m.name ?? m.provider ?? 'unknown';\n return (\n <SelectItem key={m.path} value={m.path}>\n {name} ({m.path})\n </SelectItem>\n );\n })}\n </SelectContent>\n </Select>\n </Field>\n )}\n </DialogBody>\n\n {selectedSkill && (\n <DialogFooter>\n {isSelectedSkillInstalled &&\n writableMounts &&\n writableMounts.length > 1 &&\n (() => {\n const skillPath = installedSkillPaths?.[selectedSkill.name];\n if (!skillPath) return null;\n const mount = writableMounts.find(m => skillPath.startsWith(m.path + '/') || skillPath === m.path);\n return mount ? (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" className=\"mr-auto\">\n Installed at {mount.path}\n </Txt>\n ) : null;\n })()}\n <DialogCancel>Cancel</DialogCancel>\n <DialogAction\n onConfirm={handleInstall}\n disabled={!parsedSource || isSelectedSkillInstalled}\n data-testid=\"install-skill-button\"\n >\n {isInstalling ? 'Installing...' : isSelectedSkillInstalled ? 'Already Installed' : 'Install'}\n </DialogAction>\n </DialogFooter>\n )}\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace-add-skill-dialog.es.js","sources":["../../../../src/domains/workspace/components/workspace-add-skill-dialog.tsx"],"sourcesContent":["import {\n useSearchSkillsSh,\n usePopularSkillsSh,\n useSkillPreview,\n parseSkillSource,\n} from '@mastra/react/hooks/workspace';\nimport type { SkillsShSkill } from '@mastra/react/hooks/workspace';\nimport { Download, ExternalLink, Loader2, CircleSlashIcon, Package, Check, Folder } from 'lucide-react';\nimport { useState, useCallback, useMemo } from 'react';\nimport { useDebouncedCallback } from 'use-debounce';\nimport {\n Dialog,\n DialogAction,\n DialogBody,\n DialogCancel,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { Field, FieldLabel } from '@/ds/components/Field';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { ScrollArea, ScrollAreaViewport } from '@/ds/components/ScrollArea';\nimport { SearchInput } from '@/ds/components/SearchInput';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { Txt } from '@/ds/components/Txt';\nimport { GithubIcon } from '@/ds/icons/GithubIcon';\nimport { SkillIcon } from '@/ds/icons/SkillIcon';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { controlStateColorTransition } from '@/ds/primitives/transitions';\nimport { quietTextHover } from '@/ds/primitives/typography';\nimport { cn } from '@/lib/utils';\n\nexport interface WritableMount {\n path: string;\n displayName?: string;\n icon?: string;\n provider?: string;\n name?: string;\n}\n\nexport interface AddSkillDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n workspaceId: string;\n onInstall: (params: { repository: string; skillName: string; mount?: string }) => void;\n isInstalling?: boolean;\n /**\n * Unique IDs of skills installed via skills.sh (format: \"owner/repo/skillName\").\n * Used for precise matching - only the exact source/skill combo shows as installed.\n */\n installedSkillIds?: string[];\n /**\n * Names of skills that are already installed (fallback when source info unavailable).\n * Skills matching by name only will show as installed regardless of source.\n */\n installedSkillNames?: string[];\n /**\n * Writable mounts available for skill installation (for CompositeFilesystem).\n * When more than one is provided, a dropdown is shown to pick the mount.\n */\n writableMounts?: WritableMount[];\n /**\n * Map of skill name to its installed path (for showing mount location on \"Installed\" badge).\n * Only needed when multiple mounts exist.\n */\n installedSkillPaths?: Record<string, string>;\n}\n\n/**\n * Generate a unique identifier for a skills.sh skill (for selection tracking).\n * Uses topSource + name since a repo can only have one skill with a given name.\n */\nfunction getSkillUniqueId(skill: SkillsShSkill): string {\n return `${skill.topSource}/${skill.name}`;\n}\n\n/**\n * Generate an installed skill ID from a skills.sh skill.\n * Format: \"owner/repo/skillName\" - matches what we build from workspace skills with skillsShSource.\n */\nfunction getInstalledSkillId(skill: SkillsShSkill): string | null {\n const parsed = parseSkillSource(skill.topSource, skill.name);\n if (!parsed) return null;\n return `${parsed.owner}/${parsed.repo}/${skill.name}`;\n}\n\nexport function WorkspaceAddSkillDialog({\n open,\n onOpenChange,\n workspaceId,\n onInstall,\n isInstalling,\n installedSkillIds = [],\n installedSkillNames = [],\n writableMounts,\n installedSkillPaths,\n}: AddSkillDialogProps) {\n const [searchQuery, setSearchQuery] = useState('');\n const [selectedSkill, setSelectedSkill] = useState<SkillsShSkill | null>(null);\n const [selectedMount, setSelectedMount] = useState<string>();\n const installMount = writableMounts?.some(mount => mount.path === selectedMount)\n ? selectedMount\n : writableMounts?.[0]?.path;\n\n const { data: popularData, isLoading: isLoadingPopular } = usePopularSkillsSh({\n workspaceId: workspaceId,\n queryOptions: { enabled: !!workspaceId },\n });\n\n const searchMutation = useSearchSkillsSh({ workspaceId: workspaceId });\n\n const parsedSource = useMemo(() => {\n if (!selectedSkill?.topSource) return null;\n return parseSkillSource(selectedSkill.topSource, selectedSkill.name);\n }, [selectedSkill]);\n\n const skillsUrl = useMemo(() => {\n if (!parsedSource || !selectedSkill) return null;\n return `https://skills.sh/${parsedSource.owner}/${parsedSource.repo}/${selectedSkill.name}`;\n }, [parsedSource, selectedSkill]);\n\n const { data: previewContent, isLoading: isLoadingPreview } = useSkillPreview({\n workspaceId,\n owner: parsedSource?.owner,\n repo: parsedSource?.repo,\n skillPath: selectedSkill?.name,\n queryOptions: { enabled: !!workspaceId && !!parsedSource && !!selectedSkill },\n });\n\n const debouncedSearch = useDebouncedCallback((query: string) => {\n if (query.trim().length >= 2) {\n searchMutation.mutate(query);\n }\n }, 300);\n\n const handleSearch = useCallback(\n (query: string) => {\n setSearchQuery(query);\n debouncedSearch(query);\n },\n [debouncedSearch],\n );\n\n const displaySkills = useMemo(() => {\n if (searchQuery.trim().length >= 2) {\n return searchMutation.data?.skills ?? [];\n }\n return popularData?.skills ?? [];\n }, [searchQuery, searchMutation.data, popularData]);\n\n const isSearching = searchMutation.isPending;\n const hasSearchResults = searchQuery.trim().length >= 2;\n\n const isSelectedSkillInstalled = useMemo(() => {\n if (!selectedSkill) return false;\n\n const installedId = getInstalledSkillId(selectedSkill);\n if (installedId && installedSkillIds.includes(installedId)) {\n return true;\n }\n\n if (installedSkillNames.includes(selectedSkill.name)) {\n return true;\n }\n\n return false;\n }, [selectedSkill, installedSkillIds, installedSkillNames]);\n\n const handleInstall = useCallback(() => {\n if (!selectedSkill || !parsedSource) return;\n\n onInstall({\n repository: `${parsedSource.owner}/${parsedSource.repo}`,\n skillName: selectedSkill.name,\n mount: writableMounts && writableMounts.length > 1 ? installMount : undefined,\n });\n }, [selectedSkill, parsedSource, onInstall, writableMounts, installMount]);\n\n const handleOpenChange = useCallback(\n (newOpen: boolean) => {\n if (!newOpen) {\n setSearchQuery('');\n setSelectedSkill(null);\n setSelectedMount(undefined);\n }\n onOpenChange(newOpen);\n },\n [onOpenChange],\n );\n\n return (\n <Dialog open={open} onOpenChange={handleOpenChange} pending={isInstalling}>\n <DialogContent size=\"xl\" className=\"h-[80vh]\">\n <DialogHeader>\n <DialogTitle>Add Skill</DialogTitle>\n <DialogDescription>Search and install skills from the community registry</DialogDescription>\n </DialogHeader>\n\n <DialogBody layout=\"fill\">\n <SearchInput\n label=\"Search skills\"\n placeholder=\"Search skills...\"\n value={searchQuery}\n onValueChange={handleSearch}\n />\n\n <div className=\"flex min-h-0 flex-1 gap-4\">\n <div className=\"flex min-h-0 w-1/2 flex-col\">\n <Txt as=\"p\" variant=\"eyebrow\" tone=\"muted\" className=\"mb-2\">\n {hasSearchResults ? 'Search Results' : 'Popular Skills'}\n </Txt>\n <ScrollArea className=\"flex-1 rounded-lg border border-border\">\n <ScrollAreaViewport\n className={\n !isLoadingPopular && !isSearching && displaySkills.length === 0\n ? 'flex flex-col [&>div]:flex [&>div]:flex-1 [&>div]:flex-col'\n : undefined\n }\n >\n {isLoadingPopular || isSearching ? (\n <div className=\"flex items-center justify-center py-5\">\n <Loader2 className=\"size-6 animate-spin text-muted-foreground\" />\n </div>\n ) : displaySkills.length === 0 ? (\n <div className=\"flex flex-1 flex-col items-center-safe justify-center-safe py-5 text-muted-foreground\">\n <CircleSlashIcon className=\"mb-2 size-8\" />\n <Txt>{hasSearchResults ? 'No skills found' : 'No skills available'}</Txt>\n </div>\n ) : (\n <div className=\"space-y-1 p-2\">\n {displaySkills.map(skill => {\n const skillUniqueId = getSkillUniqueId(skill);\n const installedId = getInstalledSkillId(skill);\n const isInstalled =\n (installedId && installedSkillIds.includes(installedId)) ||\n installedSkillNames.includes(skill.name);\n const selectedSkillUniqueId = selectedSkill ? getSkillUniqueId(selectedSkill) : null;\n return (\n <button\n key={skillUniqueId}\n onClick={() => setSelectedSkill(skill)}\n className={cn(\n 'w-full rounded-md px-3 py-2 text-left',\n 'hover:bg-fill-subtle',\n selectedSkillUniqueId === skillUniqueId && 'border border-border-strong bg-fill-hover',\n )}\n >\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2\">\n <Txt as=\"span\" variant=\"subheading\" tone=\"ink\" className=\"truncate\">\n {skill.name}\n </Txt>\n {isInstalled && (\n <Txt\n as=\"span\"\n variant=\"meta\"\n className=\"inline-flex items-center gap-1 rounded bg-info-subtle px-1.5 py-0.5 text-info-subtle-foreground\"\n >\n <Check className=\"size-2.5\" />\n Installed\n </Txt>\n )}\n </div>\n <Txt as=\"p\" variant=\"caption\" tone=\"muted\" className=\"truncate\">\n {skill.topSource}\n </Txt>\n </div>\n <div className=\"flex shrink-0 items-center gap-1 text-muted-foreground\">\n <Download className=\"size-3\" />\n <Txt as=\"span\" variant=\"caption\">\n {skill.installs.toLocaleString()}\n </Txt>\n </div>\n </div>\n </button>\n );\n })}\n </div>\n )}\n </ScrollAreaViewport>\n </ScrollArea>\n </div>\n\n <div className=\"flex min-h-0 w-1/2 flex-col\">\n <Txt as=\"p\" variant=\"eyebrow\" tone=\"muted\" className=\"mb-2\">\n Preview\n </Txt>\n <div className=\"flex flex-1 flex-col overflow-hidden rounded-lg border border-border\">\n {!selectedSkill ? (\n <div className=\"flex h-full flex-col items-center justify-center text-muted-foreground\">\n <Package className=\"mb-2 size-8\" />\n <Txt>Select a skill to preview</Txt>\n </div>\n ) : (\n <>\n <div className=\"border-b border-border bg-card p-4\">\n <div className=\"flex items-start gap-3\">\n <div className=\"rounded-lg bg-muted p-2\">\n <SkillIcon className=\"size-5 text-muted-foreground\" />\n </div>\n <div className=\"min-w-0 flex-1\">\n <Txt as=\"h3\" variant=\"subheading\" tone=\"ink\" className=\"truncate\">\n {selectedSkill.name}\n </Txt>\n <div className=\"mt-1 flex items-center gap-3 text-muted-foreground\">\n <span className=\"flex items-center gap-1\">\n <GithubIcon className=\"size-3\" />\n <Txt as=\"span\" variant=\"caption\" className=\"block\">\n {selectedSkill.topSource}\n </Txt>\n </span>\n <span className=\"flex items-center gap-1\">\n <Download className=\"size-3\" />\n <Txt as=\"span\" variant=\"caption\" className=\"block\">\n {selectedSkill.installs.toLocaleString()} installs\n </Txt>\n </span>\n </div>\n </div>\n {parsedSource && (\n <a\n href={`https://github.com/${parsedSource.owner}/${parsedSource.repo}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(quietTextHover, controlStateColorTransition)}\n title=\"View on GitHub\"\n >\n <ExternalLink className=\"size-4\" />\n </a>\n )}\n </div>\n </div>\n\n {isLoadingPreview ? (\n <div className=\"flex flex-1 items-center justify-center\">\n <Loader2 className=\"size-6 animate-spin text-muted-foreground\" />\n </div>\n ) : previewContent ? (\n <ScrollArea className=\"flex-1\">\n <div className=\"p-4\">\n <MarkdownRenderer>{previewContent}</MarkdownRenderer>\n </div>\n </ScrollArea>\n ) : (\n <div className=\"flex flex-1 flex-col items-center justify-center text-muted-foreground\">\n <Package className=\"mb-2 size-8\" />\n <Txt>Preview unavailable</Txt>\n {skillsUrl && (\n <a\n href={skillsUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"mt-2 flex items-center gap-1 text-info-indicator hover:underline\"\n >\n <Txt as=\"span\" variant=\"caption\" className=\"block\">\n View on skills.sh{' '}\n </Txt>\n <ExternalLink className=\"size-3\" />\n </a>\n )}\n </div>\n )}\n </>\n )}\n </div>\n </div>\n </div>\n\n {selectedSkill && writableMounts && writableMounts.length > 1 && (\n <Field orientation=\"horizontal\" className={cn(raisedSurfaceStyle, 'gap-3 rounded-lg p-3')}>\n <Folder className=\"size-4 shrink-0 text-muted-foreground\" />\n <FieldLabel className=\"whitespace-nowrap\">Install to</FieldLabel>\n <Select value={installMount} onValueChange={setSelectedMount}>\n <SelectTrigger className=\"flex-1\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {writableMounts.map(m => {\n const name = m.displayName ?? m.name ?? m.provider ?? 'unknown';\n return (\n <SelectItem key={m.path} value={m.path}>\n {name} ({m.path})\n </SelectItem>\n );\n })}\n </SelectContent>\n </Select>\n </Field>\n )}\n </DialogBody>\n\n {selectedSkill && (\n <DialogFooter>\n {isSelectedSkillInstalled &&\n writableMounts &&\n writableMounts.length > 1 &&\n (() => {\n const skillPath = installedSkillPaths?.[selectedSkill.name];\n if (!skillPath) return null;\n const mount = writableMounts.find(m => skillPath.startsWith(m.path + '/') || skillPath === m.path);\n return mount ? (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" className=\"mr-auto\">\n Installed at {mount.path}\n </Txt>\n ) : null;\n })()}\n <DialogCancel>Cancel</DialogCancel>\n <DialogAction\n onConfirm={handleInstall}\n disabled={!parsedSource || isSelectedSkillInstalled}\n data-testid=\"install-skill-button\"\n >\n {isInstalling ? 'Installing...' : isSelectedSkillInstalled ? 'Already Installed' : 'Install'}\n </DialogAction>\n </DialogFooter>\n )}\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ const React = require('react');
|
|
|
9
9
|
const domains_workspace_path = require('../path.cjs.js');
|
|
10
10
|
const domains_workspace_components_useWorkspaceContext = require('./use-workspace-context.cjs.js');
|
|
11
11
|
const Button = require('../../../Button-BfZzgZrA.cjs');
|
|
12
|
-
const dialog = require('../../../dialog-
|
|
12
|
+
const dialog = require('../../../dialog-DQI9ChYf.cjs');
|
|
13
13
|
const input = require('../../../input-zdqTky_C.cjs');
|
|
14
14
|
|
|
15
15
|
function WorkspaceCreateDirectory({ labeled = false } = {}) {
|
|
@@ -5,8 +5,8 @@ import { useState } from 'react';
|
|
|
5
5
|
import { ROOT_PATH, parentOf } from '../path.es.js';
|
|
6
6
|
import { useWorkspaceContext } from './use-workspace-context.es.js';
|
|
7
7
|
import { B as Button } from '../../../Button-C8QDEN9j.js';
|
|
8
|
-
import { D as Dialog, d as DialogContent, g as DialogHeader, j as DialogTitle, a as DialogBody, f as DialogFooter, b as DialogCancel } from '../../../dialog-
|
|
9
|
-
import { I as Input } from '../../../input-
|
|
8
|
+
import { D as Dialog, d as DialogContent, g as DialogHeader, j as DialogTitle, a as DialogBody, f as DialogFooter, b as DialogCancel } from '../../../dialog-DlZmNahd.js';
|
|
9
|
+
import { I as Input } from '../../../input-Ds171RJ5.js';
|
|
10
10
|
|
|
11
11
|
function WorkspaceCreateDirectory({ labeled = false } = {}) {
|
|
12
12
|
const { workspaceId, onCreateDirectory, isReadOnly } = useWorkspaceContext();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { splitFrontmatter } from './frontmatter.es.js';
|
|
3
|
-
import { C as CodeBlock } from '../../../code-block-
|
|
4
|
-
import { M as MarkdownRenderer } from '../../../markdown-renderer-
|
|
3
|
+
import { C as CodeBlock } from '../../../code-block-9sT-CaoF.js';
|
|
4
|
+
import { M as MarkdownRenderer } from '../../../markdown-renderer-Cly6VMDr.js';
|
|
5
5
|
|
|
6
6
|
function WorkspaceMarkdownPreview({ content }) {
|
|
7
7
|
const { frontmatter, body } = splitFrontmatter(content);
|
|
@@ -6,7 +6,7 @@ import { useWorkspaceContext } from './use-workspace-context.es.js';
|
|
|
6
6
|
import { WorkspaceError } from './workspace-error.es.js';
|
|
7
7
|
import { B as Button } from '../../../Button-C8QDEN9j.js';
|
|
8
8
|
import { E as EmptyState } from '../../../EmptyState-Cu6JKbrk.js';
|
|
9
|
-
import { I as Input } from '../../../input-
|
|
9
|
+
import { I as Input } from '../../../input-Ds171RJ5.js';
|
|
10
10
|
import { S as Skeleton } from '../../../skeleton-Bjxvf3Y-.js';
|
|
11
11
|
import { T as Txt } from '../../../Txt-BuzYj7Vy.js';
|
|
12
12
|
import { Icon } from '../../../icons/Icon.es.js';
|
|
@@ -11,7 +11,7 @@ const domains_workspace_path = require('../path.cjs.js');
|
|
|
11
11
|
const domains_workspace_components_mountIcon = require('./mount-icon.cjs.js');
|
|
12
12
|
const domains_workspace_components_useWorkspaceContext = require('./use-workspace-context.cjs.js');
|
|
13
13
|
const domains_workspace_components_workspaceError = require('./workspace-error.cjs.js');
|
|
14
|
-
const alertDialog = require('../../../alert-dialog-
|
|
14
|
+
const alertDialog = require('../../../alert-dialog-j626w-Qb.cjs');
|
|
15
15
|
const Button = require('../../../Button-BfZzgZrA.cjs');
|
|
16
16
|
const skeleton = require('../../../skeleton-bUFvB8ok.cjs');
|
|
17
17
|
const spinner = require('../../../spinner-BW4nHg_A.cjs');
|
|
@@ -7,7 +7,7 @@ import { ROOT_PATH, joinPath, parentOf } from '../path.es.js';
|
|
|
7
7
|
import { MountIcon } from './mount-icon.es.js';
|
|
8
8
|
import { useWorkspaceContext } from './use-workspace-context.es.js';
|
|
9
9
|
import { WorkspaceError } from './workspace-error.es.js';
|
|
10
|
-
import { A as AlertDialog } from '../../../alert-dialog-
|
|
10
|
+
import { A as AlertDialog } from '../../../alert-dialog-R9z2SJLl.js';
|
|
11
11
|
import { B as Button } from '../../../Button-C8QDEN9j.js';
|
|
12
12
|
import { S as Skeleton } from '../../../skeleton-Bjxvf3Y-.js';
|
|
13
13
|
import { S as Spinner } from '../../../spinner-CFtgt3oI.js';
|
|
@@ -6,9 +6,8 @@ import * as React from 'react';
|
|
|
6
6
|
import { B as Button } from './Button-C8QDEN9j.js';
|
|
7
7
|
import { dialogSurfaceStyle } from './primitives/raised-surface.es.js';
|
|
8
8
|
import { c as cn } from './cn-coERSHz5.js';
|
|
9
|
-
import './drawer.css';/* empty css */
|
|
10
9
|
|
|
11
|
-
const drawerBackdropVariants = cva("drawer-backdrop fixed inset-0 z-50", {
|
|
10
|
+
import './drawer.css';const drawerBackdropVariants = cva("drawer-backdrop fixed inset-0 z-50", {
|
|
12
11
|
variants: {
|
|
13
12
|
overlay: {
|
|
14
13
|
visible: "bg-scrim backdrop-blur-xs",
|
|
@@ -284,10 +283,21 @@ const DrawerContent = React.forwardRef(
|
|
|
284
283
|
/* @__PURE__ */ jsx(DrawerViewport, { variant: resolvedVariant, children: /* @__PURE__ */ jsxs(DrawerPopup, { ref, variant: resolvedVariant, className, ...props, children: [
|
|
285
284
|
showHandle && side === "bottom" && /* @__PURE__ */ jsx(DrawerHandleBar, {}),
|
|
286
285
|
/* @__PURE__ */ jsx(DrawerFloatingSideHandle, { side, variant: resolvedVariant }),
|
|
287
|
-
/* @__PURE__ */ jsxs(
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
286
|
+
/* @__PURE__ */ jsxs(
|
|
287
|
+
"div",
|
|
288
|
+
{
|
|
289
|
+
"data-slot": "drawer-content",
|
|
290
|
+
className: cn(
|
|
291
|
+
"relative flex min-h-0 flex-1 flex-col",
|
|
292
|
+
"[&>form]:flex [&>form]:min-h-0 [&>form]:flex-1 [&>form]:flex-col [&>form]:gap-0",
|
|
293
|
+
nestedFadeClass
|
|
294
|
+
),
|
|
295
|
+
children: [
|
|
296
|
+
showCloseButton && /* @__PURE__ */ jsx(DrawerDefaultCloseButton, {}),
|
|
297
|
+
children
|
|
298
|
+
]
|
|
299
|
+
}
|
|
300
|
+
),
|
|
291
301
|
showHandle && side === "top" && /* @__PURE__ */ jsx(DrawerHandleBar, {})
|
|
292
302
|
] }) })
|
|
293
303
|
] });
|
|
@@ -324,4 +334,4 @@ const DrawerDescription = React.forwardRef(
|
|
|
324
334
|
DrawerDescription.displayName = "DrawerDescription";
|
|
325
335
|
|
|
326
336
|
export { Drawer as D, DrawerBackdrop as a, DrawerBody as b, DrawerClose as c, DrawerContent as d, DrawerDescription as e, DrawerFooter as f, DrawerHeader as g, DrawerIndent as h, DrawerIndentBackground as i, DrawerInteractive as j, DrawerPopup as k, DrawerPortal as l, DrawerProvider as m, DrawerSwipeArea as n, DrawerTitle as o, DrawerTrigger as p, DrawerViewport as q };
|
|
327
|
-
//# sourceMappingURL=drawer-
|
|
337
|
+
//# sourceMappingURL=drawer-CZlqOjd2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer-B-t4ydEh.js","sources":["../src/ds/components/Drawer/drawer.tsx"],"sourcesContent":["import { Drawer as DrawerPrimitive } from '@base-ui/react/drawer';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { XIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport { dialogSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\n// Swipe/stack transforms live in drawer.css — unreadable as Tailwind arbitrary values.\nimport './drawer.css';\n\nexport type DrawerSide = 'top' | 'right' | 'bottom' | 'left';\n\nconst drawerBackdropVariants = cva('drawer-backdrop fixed inset-0 z-50', {\n variants: {\n overlay: {\n visible: 'bg-scrim backdrop-blur-xs',\n transparent: 'bg-transparent',\n none: 'hidden',\n },\n },\n defaultVariants: {\n overlay: 'visible',\n },\n});\n\nconst drawerViewportVariants = cva('fixed z-50 flex', {\n variants: {\n side: {\n top: 'items-start justify-center',\n bottom: 'items-end justify-center',\n left: 'items-stretch justify-start',\n right: 'items-stretch justify-end',\n },\n layout: {\n default: 'inset-0',\n floating: 'p-2 sm:p-3',\n floatingOverlay: 'inset-0 p-2 sm:p-3',\n },\n },\n compoundVariants: [\n {\n side: 'right',\n layout: 'floating',\n className: 'inset-y-0 right-0 w-[calc(32rem+1.5rem)] max-w-full sm:w-[calc(32rem+2rem)]',\n },\n {\n side: 'left',\n layout: 'floating',\n className: 'inset-y-0 left-0 w-[calc(32rem+1.5rem)] max-w-full sm:w-[calc(32rem+2rem)]',\n },\n {\n side: 'bottom',\n layout: 'floating',\n className: 'inset-x-0 bottom-0 h-[calc(85dvh+1.5rem)] max-h-full sm:h-[calc(85dvh+2rem)]',\n },\n {\n side: 'top',\n layout: 'floating',\n className: 'inset-x-0 top-0 h-[calc(85dvh+1.5rem)] max-h-full sm:h-[calc(85dvh+2rem)]',\n },\n ],\n defaultVariants: {\n side: 'bottom',\n layout: 'default',\n },\n});\n\n// `drawer-popup` hooks into drawer.css for swipe/stack transforms; `::after` dims under nested drawers.\nconst drawerPopupVariants = cva(\n cn(\n 'drawer-popup group/popup relative z-50 box-border flex [touch-action:auto] flex-col overflow-y-auto overscroll-contain will-change-transform outline-none',\n 'text-foreground',\n dialogSurfaceStyle,\n 'data-[swiping]:select-none',\n \"after:pointer-events-none after:absolute after:inset-0 after:bg-transparent after:transition-[background-color] after:duration-[450ms] after:content-['']\",\n 'data-[nested-drawer-open]:after:bg-black/25',\n ),\n {\n variants: {\n side: {\n bottom: '',\n top: '',\n left: '',\n right: '',\n },\n variant: {\n default: '',\n floating: 'drawer-popup-floating pointer-events-auto rounded-lg',\n },\n },\n compoundVariants: [\n {\n side: 'bottom',\n variant: 'default',\n className: '-mb-12 h-[var(--drawer-height,auto)] max-h-[calc(85vh_+_3rem)] w-full rounded-t-xl pb-12',\n },\n {\n side: 'top',\n variant: 'default',\n className: '-mt-12 h-[var(--drawer-height,auto)] max-h-[calc(85vh_+_3rem)] w-full rounded-b-xl pt-12',\n },\n {\n side: 'left',\n variant: 'default',\n className: 'h-full w-[20rem] max-w-[85vw] rounded-r-xl',\n },\n {\n side: 'right',\n variant: 'default',\n className: 'h-full w-[20rem] max-w-[85vw] rounded-l-xl',\n },\n {\n side: ['left', 'right'],\n variant: 'floating',\n className:\n 'h-[calc(100dvh-1.5rem)] w-[32rem] max-w-[calc(100vw-1.5rem)] sm:h-[calc(100dvh-2rem)] sm:max-w-[calc(100vw-2rem)]',\n },\n {\n side: ['top', 'bottom'],\n variant: 'floating',\n className:\n 'max-h-[calc(85dvh-1.5rem)] w-[calc(100vw-1.5rem)] sm:max-h-[calc(85dvh-2rem)] sm:w-[calc(100vw-2rem)]',\n },\n ],\n defaultVariants: {\n side: 'bottom',\n variant: 'default',\n },\n },\n);\n\ntype DrawerBackdropVariantsProps = VariantProps<typeof drawerBackdropVariants>;\ntype DrawerViewportClassVariantsProps = VariantProps<typeof drawerViewportVariants>;\ntype DrawerPopupVariantsProps = VariantProps<typeof drawerPopupVariants>;\nexport type DrawerVariant = NonNullable<DrawerPopupVariantsProps['variant']>;\ntype DrawerViewportLayout = NonNullable<DrawerViewportClassVariantsProps['layout']>;\ntype DrawerViewportVariantsProps = Pick<DrawerViewportClassVariantsProps, 'side'> & {\n variant?: DrawerVariant;\n};\nexport type DrawerOverlay = 'auto' | NonNullable<DrawerBackdropVariantsProps['overlay']>;\n\n// `side` = anchor edge; Base UI's `swipeDirection` = dismissal gesture (bottom sheet swipes `down`).\nconst sideToSwipeDirection: Record<DrawerSide, 'up' | 'down' | 'left' | 'right'> = {\n top: 'up',\n bottom: 'down',\n left: 'left',\n right: 'right',\n};\n\ntype DrawerContextValue = {\n side: DrawerSide;\n variant: DrawerVariant;\n resolvedOverlay: NonNullable<DrawerBackdropVariantsProps['overlay']>;\n};\n\nconst resolveDrawerOverlay = (\n overlay: DrawerOverlay,\n variant: DrawerVariant,\n): NonNullable<DrawerBackdropVariantsProps['overlay']> => {\n if (overlay !== 'auto') {\n return overlay;\n }\n\n return variant === 'floating' ? 'none' : 'visible';\n};\n\nconst DrawerContext = React.createContext<DrawerContextValue>({\n side: 'bottom',\n variant: 'default',\n resolvedOverlay: 'visible',\n});\n\nconst useDrawerContext = () => React.useContext(DrawerContext);\n\nconst resolveDrawerViewportLayout = (\n variant: DrawerVariant,\n overlay: NonNullable<DrawerBackdropVariantsProps['overlay']>,\n): DrawerViewportLayout => {\n if (variant !== 'floating') {\n return 'default';\n }\n\n return overlay === 'none' ? 'floating' : 'floatingOverlay';\n};\n\nexport type DrawerProps<Payload = unknown> = Omit<DrawerPrimitive.Root.Props<Payload>, 'swipeDirection'> & {\n /** Edge the drawer is anchored to. Defaults to `bottom`. */\n side?: DrawerSide;\n /** Visual treatment for the drawer panel. Defaults to `default`. */\n variant?: DrawerVariant;\n /** Backdrop behavior. `auto` renders a visible backdrop for default drawers and no backdrop for floating drawers. */\n overlay?: DrawerOverlay;\n};\n\nfunction Drawer<Payload = unknown>({\n side = 'bottom',\n variant = 'default',\n overlay = 'auto',\n modal,\n disablePointerDismissal,\n children,\n ...props\n}: DrawerProps<Payload>) {\n const resolvedOverlay = resolveDrawerOverlay(overlay, variant);\n const resolvedModal = modal ?? (resolvedOverlay === 'none' ? false : undefined);\n const resolvedDisablePointerDismissal = disablePointerDismissal ?? (resolvedOverlay === 'none' ? true : undefined);\n const contextValue = React.useMemo<DrawerContextValue>(\n () => ({ side, variant, resolvedOverlay }),\n [side, variant, resolvedOverlay],\n );\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <DrawerPrimitive.Root\n swipeDirection={sideToSwipeDirection[side]}\n modal={resolvedModal}\n disablePointerDismissal={resolvedDisablePointerDismissal}\n {...props}\n >\n {children}\n </DrawerPrimitive.Root>\n </DrawerContext.Provider>\n );\n}\nDrawer.displayName = 'Drawer';\n\n// Generic (not `forwardRef`) so `handle` / `payload` stay type-safe on detached triggers.\ntype DrawerTriggerProps<Payload = unknown> = DrawerPrimitive.Trigger.Props<Payload> & {\n /** @deprecated Use Base UI's native `render` prop instead for stronger composition typing. */\n asChild?: boolean;\n};\n\nfunction DrawerTrigger<Payload = unknown>({ asChild, children, ...props }: DrawerTriggerProps<Payload>) {\n const renderProps = asChild && React.isValidElement(children) ? { render: children as React.ReactElement } : {};\n\n return (\n <DrawerPrimitive.Trigger {...renderProps} {...props}>\n {asChild ? undefined : children}\n </DrawerPrimitive.Trigger>\n );\n}\nDrawerTrigger.displayName = 'DrawerTrigger';\n\ntype DrawerCloseProps = DrawerPrimitive.Close.Props & {\n /** @deprecated Use Base UI's native `render` prop instead for stronger composition typing. */\n asChild?: boolean;\n};\n\nconst DrawerClose = React.forwardRef<HTMLButtonElement, DrawerCloseProps>(({ asChild, children, ...props }, ref) => {\n const renderProps = asChild && React.isValidElement(children) ? { render: children as React.ReactElement } : {};\n\n return (\n <DrawerPrimitive.Close ref={ref} {...renderProps} {...props}>\n {asChild ? undefined : children}\n </DrawerPrimitive.Close>\n );\n});\nDrawerClose.displayName = 'DrawerClose';\n\nconst DrawerPortal = DrawerPrimitive.Portal;\nconst DrawerProvider = DrawerPrimitive.Provider;\nconst DrawerIndent = DrawerPrimitive.Indent;\nconst DrawerIndentBackground = DrawerPrimitive.IndentBackground;\nconst DrawerSwipeArea = DrawerPrimitive.SwipeArea;\n// Inner region where pointer drags select text / scroll instead of swiping the drawer closed.\nconst DrawerInteractive = DrawerPrimitive.Content;\n\ntype DrawerBackdropProps = Omit<DrawerPrimitive.Backdrop.Props, 'className'> & {\n className?: string;\n} & DrawerBackdropVariantsProps;\n\n// The `drawer-backdrop` class (drawer.css) fades the overlay with the swipe gesture.\nconst DrawerBackdrop = React.forwardRef<HTMLDivElement, DrawerBackdropProps>(\n ({ className, overlay, ...props }, ref) => {\n const { resolvedOverlay } = useDrawerContext();\n const resolvedBackdropOverlay = overlay ?? resolvedOverlay;\n\n return (\n <DrawerPrimitive.Backdrop\n ref={ref}\n data-slot=\"drawer-backdrop\"\n data-overlay={resolvedBackdropOverlay}\n className={cn(drawerBackdropVariants({ overlay: resolvedBackdropOverlay }), className)}\n {...props}\n />\n );\n },\n);\nDrawerBackdrop.displayName = 'DrawerBackdrop';\n\ntype DrawerViewportProps = Omit<DrawerPrimitive.Viewport.Props, 'className'> & {\n className?: string;\n} & DrawerViewportVariantsProps;\n\n// Keep the viewport pointer-interactive: Base UI wires native drag-to-dismiss to it.\n// Floating drawers without an overlay constrain the viewport so the page behind stays interactive.\n// Floating drawers with an overlay keep a full-screen viewport so overlay-start drags stay native.\nconst DrawerViewport = React.forwardRef<HTMLDivElement, DrawerViewportProps>(\n ({ className, side, variant, ...props }, ref) => {\n const context = useDrawerContext();\n const resolvedSide = side ?? context.side;\n const resolvedVariant = variant ?? context.variant;\n const layout = resolveDrawerViewportLayout(resolvedVariant, context.resolvedOverlay);\n\n return (\n <DrawerPrimitive.Viewport\n ref={ref}\n data-slot=\"drawer-viewport\"\n data-variant={resolvedVariant}\n className={cn(drawerViewportVariants({ side: resolvedSide, layout }), className)}\n {...props}\n />\n );\n },\n);\nDrawerViewport.displayName = 'DrawerViewport';\n\ntype DrawerPopupProps = Omit<DrawerPrimitive.Popup.Props, 'className'> & {\n className?: string;\n} & DrawerPopupVariantsProps;\n\nconst DrawerPopup = React.forwardRef<HTMLDivElement, DrawerPopupProps>(\n ({ className, side, variant, ...props }, ref) => {\n const context = useDrawerContext();\n const resolvedSide = side ?? context.side;\n const resolvedVariant = variant ?? context.variant;\n\n return (\n <DrawerPrimitive.Popup\n ref={ref}\n data-slot=\"drawer-popup\"\n data-variant={resolvedVariant}\n className={cn(drawerPopupVariants({ side: resolvedSide, variant: resolvedVariant }), className)}\n {...props}\n />\n );\n },\n);\nDrawerPopup.displayName = 'DrawerPopup';\n\n// Inner-content fade while a nested drawer covers the parent. Off the popup itself so border/shadow stay crisp.\nconst nestedFadeClass = cn(\n 'transition-opacity duration-300 ease-[cubic-bezier(0.32,0.72,0,1)] motion-reduce:duration-0',\n 'group-data-[nested-drawer-open]/popup:opacity-0',\n);\n\nconst DrawerHandleBar = () => (\n <div\n aria-hidden\n data-slot=\"drawer-handle\"\n className={cn('mx-auto my-2 h-1 w-12 shrink-0 rounded-full bg-muted', nestedFadeClass)}\n />\n);\nDrawerHandleBar.displayName = 'DrawerHandleBar';\n\ntype DrawerFloatingSideHandleProps = {\n side: DrawerSide;\n variant: DrawerVariant;\n};\n\nconst DrawerFloatingSideHandle = ({ side, variant }: DrawerFloatingSideHandleProps) => {\n if (variant !== 'floating' || (side !== 'left' && side !== 'right')) {\n return null;\n }\n\n return (\n <div\n aria-hidden\n data-slot=\"drawer-side-handle\"\n className={cn(\n 'absolute top-1/2 z-10 flex h-20 w-5 -translate-y-1/2 cursor-ew-resize touch-none items-center justify-center select-none lg:hidden',\n side === 'right' ? '-left-2' : '-right-2',\n )}\n >\n <div className=\"h-10 w-1 rounded-full bg-border-strong\" />\n </div>\n );\n};\nDrawerFloatingSideHandle.displayName = 'DrawerFloatingSideHandle';\n\ntype DrawerContentProps = Omit<DrawerPrimitive.Popup.Props, 'className' | 'children'> & {\n className?: string;\n children?: React.ReactNode;\n /** Shows the built-in top-right close button. Defaults to `true`. */\n showCloseButton?: boolean;\n} & Pick<DrawerPopupVariantsProps, 'variant'>;\n\n// Opinionated bundle: Portal + Backdrop + Viewport + Popup, with handle on top/bottom sheets.\n// Drop to the primitives for non-modal pages, custom portal targets, or chrome outside the popup.\nconst DrawerContent = React.forwardRef<HTMLDivElement, DrawerContentProps>(\n ({ className, children, variant, showCloseButton = true, ...props }, ref) => {\n const { side, variant: contextVariant, resolvedOverlay } = useDrawerContext();\n const resolvedVariant = variant ?? contextVariant;\n const showHandle = side === 'top' || side === 'bottom';\n\n return (\n <DrawerPortal>\n {resolvedOverlay !== 'none' && <DrawerBackdrop />}\n <DrawerViewport variant={resolvedVariant}>\n <DrawerPopup ref={ref} variant={resolvedVariant} className={className} {...props}>\n {showHandle && side === 'bottom' && <DrawerHandleBar />}\n <DrawerFloatingSideHandle side={side} variant={resolvedVariant} />\n <div data-slot=\"drawer-content\" className={cn('relative flex min-h-0 flex-1 flex-col', nestedFadeClass)}>\n {showCloseButton && <DrawerDefaultCloseButton />}\n {children}\n </div>\n {showHandle && side === 'top' && <DrawerHandleBar />}\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n );\n },\n);\nDrawerContent.displayName = 'DrawerContent';\n\nconst DrawerDefaultCloseButton = () => (\n <DrawerClose asChild>\n <Button type=\"button\" variant=\"ghost\" size=\"icon-sm\" className=\"absolute top-3 right-3 z-10\" aria-label=\"Close\">\n <XIcon />\n </Button>\n </DrawerClose>\n);\nDrawerDefaultCloseButton.displayName = 'DrawerDefaultCloseButton';\n\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"drawer-header\"\n className={cn('flex flex-col gap-0.5 px-3 py-2.5 pr-12 text-left', className)}\n {...props}\n />\n);\nDrawerHeader.displayName = 'DrawerHeader';\n\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"drawer-footer\"\n className={cn('mt-auto flex flex-col-reverse gap-1.5 px-3 py-2.5 sm:flex-row sm:justify-end', className)}\n {...props}\n />\n);\nDrawerFooter.displayName = 'DrawerFooter';\n\nconst DrawerBody = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div data-slot=\"drawer-body\" className={cn('flex-1 px-3 py-2.5', className)} {...props} />\n);\nDrawerBody.displayName = 'DrawerBody';\n\ntype DrawerTitleProps = Omit<DrawerPrimitive.Title.Props, 'className'> & {\n className?: string;\n};\n\nconst DrawerTitle = React.forwardRef<HTMLHeadingElement, DrawerTitleProps>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title ref={ref} className={cn('text-subheading text-foreground', className)} {...props} />\n));\nDrawerTitle.displayName = 'DrawerTitle';\n\ntype DrawerDescriptionProps = Omit<DrawerPrimitive.Description.Props, 'className'> & {\n className?: string;\n};\n\nconst DrawerDescription = React.forwardRef<HTMLParagraphElement, DrawerDescriptionProps>(\n ({ className, ...props }, ref) => (\n <DrawerPrimitive.Description ref={ref} className={cn('text-caption text-muted-foreground', className)} {...props} />\n ),\n);\nDrawerDescription.displayName = 'DrawerDescription';\n\nexport {\n Drawer,\n DrawerTrigger,\n DrawerClose,\n DrawerPortal,\n DrawerBackdrop,\n DrawerViewport,\n DrawerPopup,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerBody,\n DrawerTitle,\n DrawerDescription,\n DrawerProvider,\n DrawerIndent,\n DrawerIndentBackground,\n DrawerSwipeArea,\n DrawerInteractive,\n};\n\nexport type {\n DrawerTriggerProps,\n DrawerCloseProps,\n DrawerBackdropProps,\n DrawerViewportProps,\n DrawerPopupProps,\n DrawerContentProps,\n DrawerTitleProps,\n DrawerDescriptionProps,\n};\n"],"names":["DrawerPrimitive"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"drawer-CZlqOjd2.js","sources":["../src/ds/components/Drawer/drawer.tsx"],"sourcesContent":["import { Drawer as DrawerPrimitive } from '@base-ui/react/drawer';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { XIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport { dialogSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\n// Swipe/stack transforms live in drawer.css — unreadable as Tailwind arbitrary values.\nimport './drawer.css';\n\nexport type DrawerSide = 'top' | 'right' | 'bottom' | 'left';\n\nconst drawerBackdropVariants = cva('drawer-backdrop fixed inset-0 z-50', {\n variants: {\n overlay: {\n visible: 'bg-scrim backdrop-blur-xs',\n transparent: 'bg-transparent',\n none: 'hidden',\n },\n },\n defaultVariants: {\n overlay: 'visible',\n },\n});\n\nconst drawerViewportVariants = cva('fixed z-50 flex', {\n variants: {\n side: {\n top: 'items-start justify-center',\n bottom: 'items-end justify-center',\n left: 'items-stretch justify-start',\n right: 'items-stretch justify-end',\n },\n layout: {\n default: 'inset-0',\n floating: 'p-2 sm:p-3',\n floatingOverlay: 'inset-0 p-2 sm:p-3',\n },\n },\n compoundVariants: [\n {\n side: 'right',\n layout: 'floating',\n className: 'inset-y-0 right-0 w-[calc(32rem+1.5rem)] max-w-full sm:w-[calc(32rem+2rem)]',\n },\n {\n side: 'left',\n layout: 'floating',\n className: 'inset-y-0 left-0 w-[calc(32rem+1.5rem)] max-w-full sm:w-[calc(32rem+2rem)]',\n },\n {\n side: 'bottom',\n layout: 'floating',\n className: 'inset-x-0 bottom-0 h-[calc(85dvh+1.5rem)] max-h-full sm:h-[calc(85dvh+2rem)]',\n },\n {\n side: 'top',\n layout: 'floating',\n className: 'inset-x-0 top-0 h-[calc(85dvh+1.5rem)] max-h-full sm:h-[calc(85dvh+2rem)]',\n },\n ],\n defaultVariants: {\n side: 'bottom',\n layout: 'default',\n },\n});\n\n// `drawer-popup` hooks into drawer.css for swipe/stack transforms; `::after` dims under nested drawers.\nconst drawerPopupVariants = cva(\n cn(\n 'drawer-popup group/popup relative z-50 box-border flex [touch-action:auto] flex-col overflow-y-auto overscroll-contain will-change-transform outline-none',\n 'text-foreground',\n dialogSurfaceStyle,\n 'data-[swiping]:select-none',\n \"after:pointer-events-none after:absolute after:inset-0 after:bg-transparent after:transition-[background-color] after:duration-[450ms] after:content-['']\",\n 'data-[nested-drawer-open]:after:bg-black/25',\n ),\n {\n variants: {\n side: {\n bottom: '',\n top: '',\n left: '',\n right: '',\n },\n variant: {\n default: '',\n floating: 'drawer-popup-floating pointer-events-auto rounded-lg',\n },\n },\n compoundVariants: [\n {\n side: 'bottom',\n variant: 'default',\n className: '-mb-12 h-[var(--drawer-height,auto)] max-h-[calc(85vh_+_3rem)] w-full rounded-t-xl pb-12',\n },\n {\n side: 'top',\n variant: 'default',\n className: '-mt-12 h-[var(--drawer-height,auto)] max-h-[calc(85vh_+_3rem)] w-full rounded-b-xl pt-12',\n },\n {\n side: 'left',\n variant: 'default',\n className: 'h-full w-[20rem] max-w-[85vw] rounded-r-xl',\n },\n {\n side: 'right',\n variant: 'default',\n className: 'h-full w-[20rem] max-w-[85vw] rounded-l-xl',\n },\n {\n side: ['left', 'right'],\n variant: 'floating',\n className:\n 'h-[calc(100dvh-1.5rem)] w-[32rem] max-w-[calc(100vw-1.5rem)] sm:h-[calc(100dvh-2rem)] sm:max-w-[calc(100vw-2rem)]',\n },\n {\n side: ['top', 'bottom'],\n variant: 'floating',\n className:\n 'max-h-[calc(85dvh-1.5rem)] w-[calc(100vw-1.5rem)] sm:max-h-[calc(85dvh-2rem)] sm:w-[calc(100vw-2rem)]',\n },\n ],\n defaultVariants: {\n side: 'bottom',\n variant: 'default',\n },\n },\n);\n\ntype DrawerBackdropVariantsProps = VariantProps<typeof drawerBackdropVariants>;\ntype DrawerViewportClassVariantsProps = VariantProps<typeof drawerViewportVariants>;\ntype DrawerPopupVariantsProps = VariantProps<typeof drawerPopupVariants>;\nexport type DrawerVariant = NonNullable<DrawerPopupVariantsProps['variant']>;\ntype DrawerViewportLayout = NonNullable<DrawerViewportClassVariantsProps['layout']>;\ntype DrawerViewportVariantsProps = Pick<DrawerViewportClassVariantsProps, 'side'> & {\n variant?: DrawerVariant;\n};\nexport type DrawerOverlay = 'auto' | NonNullable<DrawerBackdropVariantsProps['overlay']>;\n\n// `side` = anchor edge; Base UI's `swipeDirection` = dismissal gesture (bottom sheet swipes `down`).\nconst sideToSwipeDirection: Record<DrawerSide, 'up' | 'down' | 'left' | 'right'> = {\n top: 'up',\n bottom: 'down',\n left: 'left',\n right: 'right',\n};\n\ntype DrawerContextValue = {\n side: DrawerSide;\n variant: DrawerVariant;\n resolvedOverlay: NonNullable<DrawerBackdropVariantsProps['overlay']>;\n};\n\nconst resolveDrawerOverlay = (\n overlay: DrawerOverlay,\n variant: DrawerVariant,\n): NonNullable<DrawerBackdropVariantsProps['overlay']> => {\n if (overlay !== 'auto') {\n return overlay;\n }\n\n return variant === 'floating' ? 'none' : 'visible';\n};\n\nconst DrawerContext = React.createContext<DrawerContextValue>({\n side: 'bottom',\n variant: 'default',\n resolvedOverlay: 'visible',\n});\n\nconst useDrawerContext = () => React.useContext(DrawerContext);\n\nconst resolveDrawerViewportLayout = (\n variant: DrawerVariant,\n overlay: NonNullable<DrawerBackdropVariantsProps['overlay']>,\n): DrawerViewportLayout => {\n if (variant !== 'floating') {\n return 'default';\n }\n\n return overlay === 'none' ? 'floating' : 'floatingOverlay';\n};\n\nexport type DrawerProps<Payload = unknown> = Omit<DrawerPrimitive.Root.Props<Payload>, 'swipeDirection'> & {\n /** Edge the drawer is anchored to. Defaults to `bottom`. */\n side?: DrawerSide;\n /** Visual treatment for the drawer panel. Defaults to `default`. */\n variant?: DrawerVariant;\n /** Backdrop behavior. `auto` renders a visible backdrop for default drawers and no backdrop for floating drawers. */\n overlay?: DrawerOverlay;\n};\n\nfunction Drawer<Payload = unknown>({\n side = 'bottom',\n variant = 'default',\n overlay = 'auto',\n modal,\n disablePointerDismissal,\n children,\n ...props\n}: DrawerProps<Payload>) {\n const resolvedOverlay = resolveDrawerOverlay(overlay, variant);\n const resolvedModal = modal ?? (resolvedOverlay === 'none' ? false : undefined);\n const resolvedDisablePointerDismissal = disablePointerDismissal ?? (resolvedOverlay === 'none' ? true : undefined);\n const contextValue = React.useMemo<DrawerContextValue>(\n () => ({ side, variant, resolvedOverlay }),\n [side, variant, resolvedOverlay],\n );\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <DrawerPrimitive.Root\n swipeDirection={sideToSwipeDirection[side]}\n modal={resolvedModal}\n disablePointerDismissal={resolvedDisablePointerDismissal}\n {...props}\n >\n {children}\n </DrawerPrimitive.Root>\n </DrawerContext.Provider>\n );\n}\nDrawer.displayName = 'Drawer';\n\n// Generic (not `forwardRef`) so `handle` / `payload` stay type-safe on detached triggers.\ntype DrawerTriggerProps<Payload = unknown> = DrawerPrimitive.Trigger.Props<Payload> & {\n /** @deprecated Use Base UI's native `render` prop instead for stronger composition typing. */\n asChild?: boolean;\n};\n\nfunction DrawerTrigger<Payload = unknown>({ asChild, children, ...props }: DrawerTriggerProps<Payload>) {\n const renderProps = asChild && React.isValidElement(children) ? { render: children as React.ReactElement } : {};\n\n return (\n <DrawerPrimitive.Trigger {...renderProps} {...props}>\n {asChild ? undefined : children}\n </DrawerPrimitive.Trigger>\n );\n}\nDrawerTrigger.displayName = 'DrawerTrigger';\n\ntype DrawerCloseProps = DrawerPrimitive.Close.Props & {\n /** @deprecated Use Base UI's native `render` prop instead for stronger composition typing. */\n asChild?: boolean;\n};\n\nconst DrawerClose = React.forwardRef<HTMLButtonElement, DrawerCloseProps>(({ asChild, children, ...props }, ref) => {\n const renderProps = asChild && React.isValidElement(children) ? { render: children as React.ReactElement } : {};\n\n return (\n <DrawerPrimitive.Close ref={ref} {...renderProps} {...props}>\n {asChild ? undefined : children}\n </DrawerPrimitive.Close>\n );\n});\nDrawerClose.displayName = 'DrawerClose';\n\nconst DrawerPortal = DrawerPrimitive.Portal;\nconst DrawerProvider = DrawerPrimitive.Provider;\nconst DrawerIndent = DrawerPrimitive.Indent;\nconst DrawerIndentBackground = DrawerPrimitive.IndentBackground;\nconst DrawerSwipeArea = DrawerPrimitive.SwipeArea;\n// Inner region where pointer drags select text / scroll instead of swiping the drawer closed.\nconst DrawerInteractive = DrawerPrimitive.Content;\n\ntype DrawerBackdropProps = Omit<DrawerPrimitive.Backdrop.Props, 'className'> & {\n className?: string;\n} & DrawerBackdropVariantsProps;\n\n// The `drawer-backdrop` class (drawer.css) fades the overlay with the swipe gesture.\nconst DrawerBackdrop = React.forwardRef<HTMLDivElement, DrawerBackdropProps>(\n ({ className, overlay, ...props }, ref) => {\n const { resolvedOverlay } = useDrawerContext();\n const resolvedBackdropOverlay = overlay ?? resolvedOverlay;\n\n return (\n <DrawerPrimitive.Backdrop\n ref={ref}\n data-slot=\"drawer-backdrop\"\n data-overlay={resolvedBackdropOverlay}\n className={cn(drawerBackdropVariants({ overlay: resolvedBackdropOverlay }), className)}\n {...props}\n />\n );\n },\n);\nDrawerBackdrop.displayName = 'DrawerBackdrop';\n\ntype DrawerViewportProps = Omit<DrawerPrimitive.Viewport.Props, 'className'> & {\n className?: string;\n} & DrawerViewportVariantsProps;\n\n// Keep the viewport pointer-interactive: Base UI wires native drag-to-dismiss to it.\n// Floating drawers without an overlay constrain the viewport so the page behind stays interactive.\n// Floating drawers with an overlay keep a full-screen viewport so overlay-start drags stay native.\nconst DrawerViewport = React.forwardRef<HTMLDivElement, DrawerViewportProps>(\n ({ className, side, variant, ...props }, ref) => {\n const context = useDrawerContext();\n const resolvedSide = side ?? context.side;\n const resolvedVariant = variant ?? context.variant;\n const layout = resolveDrawerViewportLayout(resolvedVariant, context.resolvedOverlay);\n\n return (\n <DrawerPrimitive.Viewport\n ref={ref}\n data-slot=\"drawer-viewport\"\n data-variant={resolvedVariant}\n className={cn(drawerViewportVariants({ side: resolvedSide, layout }), className)}\n {...props}\n />\n );\n },\n);\nDrawerViewport.displayName = 'DrawerViewport';\n\ntype DrawerPopupProps = Omit<DrawerPrimitive.Popup.Props, 'className'> & {\n className?: string;\n} & DrawerPopupVariantsProps;\n\nconst DrawerPopup = React.forwardRef<HTMLDivElement, DrawerPopupProps>(\n ({ className, side, variant, ...props }, ref) => {\n const context = useDrawerContext();\n const resolvedSide = side ?? context.side;\n const resolvedVariant = variant ?? context.variant;\n\n return (\n <DrawerPrimitive.Popup\n ref={ref}\n data-slot=\"drawer-popup\"\n data-variant={resolvedVariant}\n className={cn(drawerPopupVariants({ side: resolvedSide, variant: resolvedVariant }), className)}\n {...props}\n />\n );\n },\n);\nDrawerPopup.displayName = 'DrawerPopup';\n\n// Inner-content fade while a nested drawer covers the parent. Off the popup itself so border/shadow stay crisp.\nconst nestedFadeClass = cn(\n 'transition-opacity duration-300 ease-[cubic-bezier(0.32,0.72,0,1)] motion-reduce:duration-0',\n 'group-data-[nested-drawer-open]/popup:opacity-0',\n);\n\nconst DrawerHandleBar = () => (\n <div\n aria-hidden\n data-slot=\"drawer-handle\"\n className={cn('mx-auto my-2 h-1 w-12 shrink-0 rounded-full bg-muted', nestedFadeClass)}\n />\n);\nDrawerHandleBar.displayName = 'DrawerHandleBar';\n\ntype DrawerFloatingSideHandleProps = {\n side: DrawerSide;\n variant: DrawerVariant;\n};\n\nconst DrawerFloatingSideHandle = ({ side, variant }: DrawerFloatingSideHandleProps) => {\n if (variant !== 'floating' || (side !== 'left' && side !== 'right')) {\n return null;\n }\n\n return (\n <div\n aria-hidden\n data-slot=\"drawer-side-handle\"\n className={cn(\n 'absolute top-1/2 z-10 flex h-20 w-5 -translate-y-1/2 cursor-ew-resize touch-none items-center justify-center select-none lg:hidden',\n side === 'right' ? '-left-2' : '-right-2',\n )}\n >\n <div className=\"h-10 w-1 rounded-full bg-border-strong\" />\n </div>\n );\n};\nDrawerFloatingSideHandle.displayName = 'DrawerFloatingSideHandle';\n\ntype DrawerContentProps = Omit<DrawerPrimitive.Popup.Props, 'className' | 'children'> & {\n className?: string;\n children?: React.ReactNode;\n /** Shows the built-in top-right close button. Defaults to `true`. */\n showCloseButton?: boolean;\n} & Pick<DrawerPopupVariantsProps, 'variant'>;\n\n// Opinionated bundle: Portal + Backdrop + Viewport + Popup, with handle on top/bottom sheets.\n// Drop to the primitives for non-modal pages, custom portal targets, or chrome outside the popup.\nconst DrawerContent = React.forwardRef<HTMLDivElement, DrawerContentProps>(\n ({ className, children, variant, showCloseButton = true, ...props }, ref) => {\n const { side, variant: contextVariant, resolvedOverlay } = useDrawerContext();\n const resolvedVariant = variant ?? contextVariant;\n const showHandle = side === 'top' || side === 'bottom';\n\n return (\n <DrawerPortal>\n {resolvedOverlay !== 'none' && <DrawerBackdrop />}\n <DrawerViewport variant={resolvedVariant}>\n <DrawerPopup ref={ref} variant={resolvedVariant} className={className} {...props}>\n {showHandle && side === 'bottom' && <DrawerHandleBar />}\n <DrawerFloatingSideHandle side={side} variant={resolvedVariant} />\n <div\n data-slot=\"drawer-content\"\n className={cn(\n 'relative flex min-h-0 flex-1 flex-col',\n '[&>form]:flex [&>form]:min-h-0 [&>form]:flex-1 [&>form]:flex-col [&>form]:gap-0',\n nestedFadeClass,\n )}\n >\n {showCloseButton && <DrawerDefaultCloseButton />}\n {children}\n </div>\n {showHandle && side === 'top' && <DrawerHandleBar />}\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n );\n },\n);\nDrawerContent.displayName = 'DrawerContent';\n\nconst DrawerDefaultCloseButton = () => (\n <DrawerClose asChild>\n <Button type=\"button\" variant=\"ghost\" size=\"icon-sm\" className=\"absolute top-3 right-3 z-10\" aria-label=\"Close\">\n <XIcon />\n </Button>\n </DrawerClose>\n);\nDrawerDefaultCloseButton.displayName = 'DrawerDefaultCloseButton';\n\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"drawer-header\"\n className={cn('flex flex-col gap-0.5 px-3 py-2.5 pr-12 text-left', className)}\n {...props}\n />\n);\nDrawerHeader.displayName = 'DrawerHeader';\n\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"drawer-footer\"\n className={cn('mt-auto flex flex-col-reverse gap-1.5 px-3 py-2.5 sm:flex-row sm:justify-end', className)}\n {...props}\n />\n);\nDrawerFooter.displayName = 'DrawerFooter';\n\nconst DrawerBody = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div data-slot=\"drawer-body\" className={cn('flex-1 px-3 py-2.5', className)} {...props} />\n);\nDrawerBody.displayName = 'DrawerBody';\n\ntype DrawerTitleProps = Omit<DrawerPrimitive.Title.Props, 'className'> & {\n className?: string;\n};\n\nconst DrawerTitle = React.forwardRef<HTMLHeadingElement, DrawerTitleProps>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title ref={ref} className={cn('text-subheading text-foreground', className)} {...props} />\n));\nDrawerTitle.displayName = 'DrawerTitle';\n\ntype DrawerDescriptionProps = Omit<DrawerPrimitive.Description.Props, 'className'> & {\n className?: string;\n};\n\nconst DrawerDescription = React.forwardRef<HTMLParagraphElement, DrawerDescriptionProps>(\n ({ className, ...props }, ref) => (\n <DrawerPrimitive.Description ref={ref} className={cn('text-caption text-muted-foreground', className)} {...props} />\n ),\n);\nDrawerDescription.displayName = 'DrawerDescription';\n\nexport {\n Drawer,\n DrawerTrigger,\n DrawerClose,\n DrawerPortal,\n DrawerBackdrop,\n DrawerViewport,\n DrawerPopup,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerBody,\n DrawerTitle,\n DrawerDescription,\n DrawerProvider,\n DrawerIndent,\n DrawerIndentBackground,\n DrawerSwipeArea,\n DrawerInteractive,\n};\n\nexport type {\n DrawerTriggerProps,\n DrawerCloseProps,\n DrawerBackdropProps,\n DrawerViewportProps,\n DrawerPopupProps,\n DrawerContentProps,\n DrawerTitleProps,\n DrawerDescriptionProps,\n};\n"],"names":["DrawerPrimitive"],"mappings":"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"}
|
|
@@ -8,7 +8,6 @@ const React = require('react');
|
|
|
8
8
|
const Button = require('./Button-BfZzgZrA.cjs');
|
|
9
9
|
const primitives_raisedSurface = require('./primitives/raised-surface.cjs.js');
|
|
10
10
|
const utils_cn = require('./cn-TqD01zH-.cjs');
|
|
11
|
-
;/* empty css */
|
|
12
11
|
|
|
13
12
|
function _interopNamespaceDefault(e) {
|
|
14
13
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
|
|
@@ -305,10 +304,21 @@ const DrawerContent = React__namespace.forwardRef(
|
|
|
305
304
|
/* @__PURE__ */ jsxRuntime.jsx(DrawerViewport, { variant: resolvedVariant, children: /* @__PURE__ */ jsxRuntime.jsxs(DrawerPopup, { ref, variant: resolvedVariant, className, ...props, children: [
|
|
306
305
|
showHandle && side === "bottom" && /* @__PURE__ */ jsxRuntime.jsx(DrawerHandleBar, {}),
|
|
307
306
|
/* @__PURE__ */ jsxRuntime.jsx(DrawerFloatingSideHandle, { side, variant: resolvedVariant }),
|
|
308
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
307
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
308
|
+
"div",
|
|
309
|
+
{
|
|
310
|
+
"data-slot": "drawer-content",
|
|
311
|
+
className: utils_cn.cn(
|
|
312
|
+
"relative flex min-h-0 flex-1 flex-col",
|
|
313
|
+
"[&>form]:flex [&>form]:min-h-0 [&>form]:flex-1 [&>form]:flex-col [&>form]:gap-0",
|
|
314
|
+
nestedFadeClass
|
|
315
|
+
),
|
|
316
|
+
children: [
|
|
317
|
+
showCloseButton && /* @__PURE__ */ jsxRuntime.jsx(DrawerDefaultCloseButton, {}),
|
|
318
|
+
children
|
|
319
|
+
]
|
|
320
|
+
}
|
|
321
|
+
),
|
|
312
322
|
showHandle && side === "top" && /* @__PURE__ */ jsxRuntime.jsx(DrawerHandleBar, {})
|
|
313
323
|
] }) })
|
|
314
324
|
] });
|
|
@@ -362,4 +372,4 @@ exports.DrawerSwipeArea = DrawerSwipeArea;
|
|
|
362
372
|
exports.DrawerTitle = DrawerTitle;
|
|
363
373
|
exports.DrawerTrigger = DrawerTrigger;
|
|
364
374
|
exports.DrawerViewport = DrawerViewport;
|
|
365
|
-
//# sourceMappingURL=drawer-
|
|
375
|
+
//# sourceMappingURL=drawer-CeUYCG-S.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer-DE2b3eld.cjs","sources":["../src/ds/components/Drawer/drawer.tsx"],"sourcesContent":["import { Drawer as DrawerPrimitive } from '@base-ui/react/drawer';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { XIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport { dialogSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\n// Swipe/stack transforms live in drawer.css — unreadable as Tailwind arbitrary values.\nimport './drawer.css';\n\nexport type DrawerSide = 'top' | 'right' | 'bottom' | 'left';\n\nconst drawerBackdropVariants = cva('drawer-backdrop fixed inset-0 z-50', {\n variants: {\n overlay: {\n visible: 'bg-scrim backdrop-blur-xs',\n transparent: 'bg-transparent',\n none: 'hidden',\n },\n },\n defaultVariants: {\n overlay: 'visible',\n },\n});\n\nconst drawerViewportVariants = cva('fixed z-50 flex', {\n variants: {\n side: {\n top: 'items-start justify-center',\n bottom: 'items-end justify-center',\n left: 'items-stretch justify-start',\n right: 'items-stretch justify-end',\n },\n layout: {\n default: 'inset-0',\n floating: 'p-2 sm:p-3',\n floatingOverlay: 'inset-0 p-2 sm:p-3',\n },\n },\n compoundVariants: [\n {\n side: 'right',\n layout: 'floating',\n className: 'inset-y-0 right-0 w-[calc(32rem+1.5rem)] max-w-full sm:w-[calc(32rem+2rem)]',\n },\n {\n side: 'left',\n layout: 'floating',\n className: 'inset-y-0 left-0 w-[calc(32rem+1.5rem)] max-w-full sm:w-[calc(32rem+2rem)]',\n },\n {\n side: 'bottom',\n layout: 'floating',\n className: 'inset-x-0 bottom-0 h-[calc(85dvh+1.5rem)] max-h-full sm:h-[calc(85dvh+2rem)]',\n },\n {\n side: 'top',\n layout: 'floating',\n className: 'inset-x-0 top-0 h-[calc(85dvh+1.5rem)] max-h-full sm:h-[calc(85dvh+2rem)]',\n },\n ],\n defaultVariants: {\n side: 'bottom',\n layout: 'default',\n },\n});\n\n// `drawer-popup` hooks into drawer.css for swipe/stack transforms; `::after` dims under nested drawers.\nconst drawerPopupVariants = cva(\n cn(\n 'drawer-popup group/popup relative z-50 box-border flex [touch-action:auto] flex-col overflow-y-auto overscroll-contain will-change-transform outline-none',\n 'text-foreground',\n dialogSurfaceStyle,\n 'data-[swiping]:select-none',\n \"after:pointer-events-none after:absolute after:inset-0 after:bg-transparent after:transition-[background-color] after:duration-[450ms] after:content-['']\",\n 'data-[nested-drawer-open]:after:bg-black/25',\n ),\n {\n variants: {\n side: {\n bottom: '',\n top: '',\n left: '',\n right: '',\n },\n variant: {\n default: '',\n floating: 'drawer-popup-floating pointer-events-auto rounded-lg',\n },\n },\n compoundVariants: [\n {\n side: 'bottom',\n variant: 'default',\n className: '-mb-12 h-[var(--drawer-height,auto)] max-h-[calc(85vh_+_3rem)] w-full rounded-t-xl pb-12',\n },\n {\n side: 'top',\n variant: 'default',\n className: '-mt-12 h-[var(--drawer-height,auto)] max-h-[calc(85vh_+_3rem)] w-full rounded-b-xl pt-12',\n },\n {\n side: 'left',\n variant: 'default',\n className: 'h-full w-[20rem] max-w-[85vw] rounded-r-xl',\n },\n {\n side: 'right',\n variant: 'default',\n className: 'h-full w-[20rem] max-w-[85vw] rounded-l-xl',\n },\n {\n side: ['left', 'right'],\n variant: 'floating',\n className:\n 'h-[calc(100dvh-1.5rem)] w-[32rem] max-w-[calc(100vw-1.5rem)] sm:h-[calc(100dvh-2rem)] sm:max-w-[calc(100vw-2rem)]',\n },\n {\n side: ['top', 'bottom'],\n variant: 'floating',\n className:\n 'max-h-[calc(85dvh-1.5rem)] w-[calc(100vw-1.5rem)] sm:max-h-[calc(85dvh-2rem)] sm:w-[calc(100vw-2rem)]',\n },\n ],\n defaultVariants: {\n side: 'bottom',\n variant: 'default',\n },\n },\n);\n\ntype DrawerBackdropVariantsProps = VariantProps<typeof drawerBackdropVariants>;\ntype DrawerViewportClassVariantsProps = VariantProps<typeof drawerViewportVariants>;\ntype DrawerPopupVariantsProps = VariantProps<typeof drawerPopupVariants>;\nexport type DrawerVariant = NonNullable<DrawerPopupVariantsProps['variant']>;\ntype DrawerViewportLayout = NonNullable<DrawerViewportClassVariantsProps['layout']>;\ntype DrawerViewportVariantsProps = Pick<DrawerViewportClassVariantsProps, 'side'> & {\n variant?: DrawerVariant;\n};\nexport type DrawerOverlay = 'auto' | NonNullable<DrawerBackdropVariantsProps['overlay']>;\n\n// `side` = anchor edge; Base UI's `swipeDirection` = dismissal gesture (bottom sheet swipes `down`).\nconst sideToSwipeDirection: Record<DrawerSide, 'up' | 'down' | 'left' | 'right'> = {\n top: 'up',\n bottom: 'down',\n left: 'left',\n right: 'right',\n};\n\ntype DrawerContextValue = {\n side: DrawerSide;\n variant: DrawerVariant;\n resolvedOverlay: NonNullable<DrawerBackdropVariantsProps['overlay']>;\n};\n\nconst resolveDrawerOverlay = (\n overlay: DrawerOverlay,\n variant: DrawerVariant,\n): NonNullable<DrawerBackdropVariantsProps['overlay']> => {\n if (overlay !== 'auto') {\n return overlay;\n }\n\n return variant === 'floating' ? 'none' : 'visible';\n};\n\nconst DrawerContext = React.createContext<DrawerContextValue>({\n side: 'bottom',\n variant: 'default',\n resolvedOverlay: 'visible',\n});\n\nconst useDrawerContext = () => React.useContext(DrawerContext);\n\nconst resolveDrawerViewportLayout = (\n variant: DrawerVariant,\n overlay: NonNullable<DrawerBackdropVariantsProps['overlay']>,\n): DrawerViewportLayout => {\n if (variant !== 'floating') {\n return 'default';\n }\n\n return overlay === 'none' ? 'floating' : 'floatingOverlay';\n};\n\nexport type DrawerProps<Payload = unknown> = Omit<DrawerPrimitive.Root.Props<Payload>, 'swipeDirection'> & {\n /** Edge the drawer is anchored to. Defaults to `bottom`. */\n side?: DrawerSide;\n /** Visual treatment for the drawer panel. Defaults to `default`. */\n variant?: DrawerVariant;\n /** Backdrop behavior. `auto` renders a visible backdrop for default drawers and no backdrop for floating drawers. */\n overlay?: DrawerOverlay;\n};\n\nfunction Drawer<Payload = unknown>({\n side = 'bottom',\n variant = 'default',\n overlay = 'auto',\n modal,\n disablePointerDismissal,\n children,\n ...props\n}: DrawerProps<Payload>) {\n const resolvedOverlay = resolveDrawerOverlay(overlay, variant);\n const resolvedModal = modal ?? (resolvedOverlay === 'none' ? false : undefined);\n const resolvedDisablePointerDismissal = disablePointerDismissal ?? (resolvedOverlay === 'none' ? true : undefined);\n const contextValue = React.useMemo<DrawerContextValue>(\n () => ({ side, variant, resolvedOverlay }),\n [side, variant, resolvedOverlay],\n );\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <DrawerPrimitive.Root\n swipeDirection={sideToSwipeDirection[side]}\n modal={resolvedModal}\n disablePointerDismissal={resolvedDisablePointerDismissal}\n {...props}\n >\n {children}\n </DrawerPrimitive.Root>\n </DrawerContext.Provider>\n );\n}\nDrawer.displayName = 'Drawer';\n\n// Generic (not `forwardRef`) so `handle` / `payload` stay type-safe on detached triggers.\ntype DrawerTriggerProps<Payload = unknown> = DrawerPrimitive.Trigger.Props<Payload> & {\n /** @deprecated Use Base UI's native `render` prop instead for stronger composition typing. */\n asChild?: boolean;\n};\n\nfunction DrawerTrigger<Payload = unknown>({ asChild, children, ...props }: DrawerTriggerProps<Payload>) {\n const renderProps = asChild && React.isValidElement(children) ? { render: children as React.ReactElement } : {};\n\n return (\n <DrawerPrimitive.Trigger {...renderProps} {...props}>\n {asChild ? undefined : children}\n </DrawerPrimitive.Trigger>\n );\n}\nDrawerTrigger.displayName = 'DrawerTrigger';\n\ntype DrawerCloseProps = DrawerPrimitive.Close.Props & {\n /** @deprecated Use Base UI's native `render` prop instead for stronger composition typing. */\n asChild?: boolean;\n};\n\nconst DrawerClose = React.forwardRef<HTMLButtonElement, DrawerCloseProps>(({ asChild, children, ...props }, ref) => {\n const renderProps = asChild && React.isValidElement(children) ? { render: children as React.ReactElement } : {};\n\n return (\n <DrawerPrimitive.Close ref={ref} {...renderProps} {...props}>\n {asChild ? undefined : children}\n </DrawerPrimitive.Close>\n );\n});\nDrawerClose.displayName = 'DrawerClose';\n\nconst DrawerPortal = DrawerPrimitive.Portal;\nconst DrawerProvider = DrawerPrimitive.Provider;\nconst DrawerIndent = DrawerPrimitive.Indent;\nconst DrawerIndentBackground = DrawerPrimitive.IndentBackground;\nconst DrawerSwipeArea = DrawerPrimitive.SwipeArea;\n// Inner region where pointer drags select text / scroll instead of swiping the drawer closed.\nconst DrawerInteractive = DrawerPrimitive.Content;\n\ntype DrawerBackdropProps = Omit<DrawerPrimitive.Backdrop.Props, 'className'> & {\n className?: string;\n} & DrawerBackdropVariantsProps;\n\n// The `drawer-backdrop` class (drawer.css) fades the overlay with the swipe gesture.\nconst DrawerBackdrop = React.forwardRef<HTMLDivElement, DrawerBackdropProps>(\n ({ className, overlay, ...props }, ref) => {\n const { resolvedOverlay } = useDrawerContext();\n const resolvedBackdropOverlay = overlay ?? resolvedOverlay;\n\n return (\n <DrawerPrimitive.Backdrop\n ref={ref}\n data-slot=\"drawer-backdrop\"\n data-overlay={resolvedBackdropOverlay}\n className={cn(drawerBackdropVariants({ overlay: resolvedBackdropOverlay }), className)}\n {...props}\n />\n );\n },\n);\nDrawerBackdrop.displayName = 'DrawerBackdrop';\n\ntype DrawerViewportProps = Omit<DrawerPrimitive.Viewport.Props, 'className'> & {\n className?: string;\n} & DrawerViewportVariantsProps;\n\n// Keep the viewport pointer-interactive: Base UI wires native drag-to-dismiss to it.\n// Floating drawers without an overlay constrain the viewport so the page behind stays interactive.\n// Floating drawers with an overlay keep a full-screen viewport so overlay-start drags stay native.\nconst DrawerViewport = React.forwardRef<HTMLDivElement, DrawerViewportProps>(\n ({ className, side, variant, ...props }, ref) => {\n const context = useDrawerContext();\n const resolvedSide = side ?? context.side;\n const resolvedVariant = variant ?? context.variant;\n const layout = resolveDrawerViewportLayout(resolvedVariant, context.resolvedOverlay);\n\n return (\n <DrawerPrimitive.Viewport\n ref={ref}\n data-slot=\"drawer-viewport\"\n data-variant={resolvedVariant}\n className={cn(drawerViewportVariants({ side: resolvedSide, layout }), className)}\n {...props}\n />\n );\n },\n);\nDrawerViewport.displayName = 'DrawerViewport';\n\ntype DrawerPopupProps = Omit<DrawerPrimitive.Popup.Props, 'className'> & {\n className?: string;\n} & DrawerPopupVariantsProps;\n\nconst DrawerPopup = React.forwardRef<HTMLDivElement, DrawerPopupProps>(\n ({ className, side, variant, ...props }, ref) => {\n const context = useDrawerContext();\n const resolvedSide = side ?? context.side;\n const resolvedVariant = variant ?? context.variant;\n\n return (\n <DrawerPrimitive.Popup\n ref={ref}\n data-slot=\"drawer-popup\"\n data-variant={resolvedVariant}\n className={cn(drawerPopupVariants({ side: resolvedSide, variant: resolvedVariant }), className)}\n {...props}\n />\n );\n },\n);\nDrawerPopup.displayName = 'DrawerPopup';\n\n// Inner-content fade while a nested drawer covers the parent. Off the popup itself so border/shadow stay crisp.\nconst nestedFadeClass = cn(\n 'transition-opacity duration-300 ease-[cubic-bezier(0.32,0.72,0,1)] motion-reduce:duration-0',\n 'group-data-[nested-drawer-open]/popup:opacity-0',\n);\n\nconst DrawerHandleBar = () => (\n <div\n aria-hidden\n data-slot=\"drawer-handle\"\n className={cn('mx-auto my-2 h-1 w-12 shrink-0 rounded-full bg-muted', nestedFadeClass)}\n />\n);\nDrawerHandleBar.displayName = 'DrawerHandleBar';\n\ntype DrawerFloatingSideHandleProps = {\n side: DrawerSide;\n variant: DrawerVariant;\n};\n\nconst DrawerFloatingSideHandle = ({ side, variant }: DrawerFloatingSideHandleProps) => {\n if (variant !== 'floating' || (side !== 'left' && side !== 'right')) {\n return null;\n }\n\n return (\n <div\n aria-hidden\n data-slot=\"drawer-side-handle\"\n className={cn(\n 'absolute top-1/2 z-10 flex h-20 w-5 -translate-y-1/2 cursor-ew-resize touch-none items-center justify-center select-none lg:hidden',\n side === 'right' ? '-left-2' : '-right-2',\n )}\n >\n <div className=\"h-10 w-1 rounded-full bg-border-strong\" />\n </div>\n );\n};\nDrawerFloatingSideHandle.displayName = 'DrawerFloatingSideHandle';\n\ntype DrawerContentProps = Omit<DrawerPrimitive.Popup.Props, 'className' | 'children'> & {\n className?: string;\n children?: React.ReactNode;\n /** Shows the built-in top-right close button. Defaults to `true`. */\n showCloseButton?: boolean;\n} & Pick<DrawerPopupVariantsProps, 'variant'>;\n\n// Opinionated bundle: Portal + Backdrop + Viewport + Popup, with handle on top/bottom sheets.\n// Drop to the primitives for non-modal pages, custom portal targets, or chrome outside the popup.\nconst DrawerContent = React.forwardRef<HTMLDivElement, DrawerContentProps>(\n ({ className, children, variant, showCloseButton = true, ...props }, ref) => {\n const { side, variant: contextVariant, resolvedOverlay } = useDrawerContext();\n const resolvedVariant = variant ?? contextVariant;\n const showHandle = side === 'top' || side === 'bottom';\n\n return (\n <DrawerPortal>\n {resolvedOverlay !== 'none' && <DrawerBackdrop />}\n <DrawerViewport variant={resolvedVariant}>\n <DrawerPopup ref={ref} variant={resolvedVariant} className={className} {...props}>\n {showHandle && side === 'bottom' && <DrawerHandleBar />}\n <DrawerFloatingSideHandle side={side} variant={resolvedVariant} />\n <div data-slot=\"drawer-content\" className={cn('relative flex min-h-0 flex-1 flex-col', nestedFadeClass)}>\n {showCloseButton && <DrawerDefaultCloseButton />}\n {children}\n </div>\n {showHandle && side === 'top' && <DrawerHandleBar />}\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n );\n },\n);\nDrawerContent.displayName = 'DrawerContent';\n\nconst DrawerDefaultCloseButton = () => (\n <DrawerClose asChild>\n <Button type=\"button\" variant=\"ghost\" size=\"icon-sm\" className=\"absolute top-3 right-3 z-10\" aria-label=\"Close\">\n <XIcon />\n </Button>\n </DrawerClose>\n);\nDrawerDefaultCloseButton.displayName = 'DrawerDefaultCloseButton';\n\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"drawer-header\"\n className={cn('flex flex-col gap-0.5 px-3 py-2.5 pr-12 text-left', className)}\n {...props}\n />\n);\nDrawerHeader.displayName = 'DrawerHeader';\n\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"drawer-footer\"\n className={cn('mt-auto flex flex-col-reverse gap-1.5 px-3 py-2.5 sm:flex-row sm:justify-end', className)}\n {...props}\n />\n);\nDrawerFooter.displayName = 'DrawerFooter';\n\nconst DrawerBody = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div data-slot=\"drawer-body\" className={cn('flex-1 px-3 py-2.5', className)} {...props} />\n);\nDrawerBody.displayName = 'DrawerBody';\n\ntype DrawerTitleProps = Omit<DrawerPrimitive.Title.Props, 'className'> & {\n className?: string;\n};\n\nconst DrawerTitle = React.forwardRef<HTMLHeadingElement, DrawerTitleProps>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title ref={ref} className={cn('text-subheading text-foreground', className)} {...props} />\n));\nDrawerTitle.displayName = 'DrawerTitle';\n\ntype DrawerDescriptionProps = Omit<DrawerPrimitive.Description.Props, 'className'> & {\n className?: string;\n};\n\nconst DrawerDescription = React.forwardRef<HTMLParagraphElement, DrawerDescriptionProps>(\n ({ className, ...props }, ref) => (\n <DrawerPrimitive.Description ref={ref} className={cn('text-caption text-muted-foreground', className)} {...props} />\n ),\n);\nDrawerDescription.displayName = 'DrawerDescription';\n\nexport {\n Drawer,\n DrawerTrigger,\n DrawerClose,\n DrawerPortal,\n DrawerBackdrop,\n DrawerViewport,\n DrawerPopup,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerBody,\n DrawerTitle,\n DrawerDescription,\n DrawerProvider,\n DrawerIndent,\n DrawerIndentBackground,\n DrawerSwipeArea,\n DrawerInteractive,\n};\n\nexport type {\n DrawerTriggerProps,\n DrawerCloseProps,\n DrawerBackdropProps,\n DrawerViewportProps,\n DrawerPopupProps,\n DrawerContentProps,\n DrawerTitleProps,\n DrawerDescriptionProps,\n};\n"],"names":["cva","cn","dialogSurfaceStyle","React","jsx","DrawerPrimitive","jsxs","Button","XIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"drawer-CeUYCG-S.cjs","sources":["../src/ds/components/Drawer/drawer.tsx"],"sourcesContent":["import { Drawer as DrawerPrimitive } from '@base-ui/react/drawer';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { XIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport { dialogSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\n// Swipe/stack transforms live in drawer.css — unreadable as Tailwind arbitrary values.\nimport './drawer.css';\n\nexport type DrawerSide = 'top' | 'right' | 'bottom' | 'left';\n\nconst drawerBackdropVariants = cva('drawer-backdrop fixed inset-0 z-50', {\n variants: {\n overlay: {\n visible: 'bg-scrim backdrop-blur-xs',\n transparent: 'bg-transparent',\n none: 'hidden',\n },\n },\n defaultVariants: {\n overlay: 'visible',\n },\n});\n\nconst drawerViewportVariants = cva('fixed z-50 flex', {\n variants: {\n side: {\n top: 'items-start justify-center',\n bottom: 'items-end justify-center',\n left: 'items-stretch justify-start',\n right: 'items-stretch justify-end',\n },\n layout: {\n default: 'inset-0',\n floating: 'p-2 sm:p-3',\n floatingOverlay: 'inset-0 p-2 sm:p-3',\n },\n },\n compoundVariants: [\n {\n side: 'right',\n layout: 'floating',\n className: 'inset-y-0 right-0 w-[calc(32rem+1.5rem)] max-w-full sm:w-[calc(32rem+2rem)]',\n },\n {\n side: 'left',\n layout: 'floating',\n className: 'inset-y-0 left-0 w-[calc(32rem+1.5rem)] max-w-full sm:w-[calc(32rem+2rem)]',\n },\n {\n side: 'bottom',\n layout: 'floating',\n className: 'inset-x-0 bottom-0 h-[calc(85dvh+1.5rem)] max-h-full sm:h-[calc(85dvh+2rem)]',\n },\n {\n side: 'top',\n layout: 'floating',\n className: 'inset-x-0 top-0 h-[calc(85dvh+1.5rem)] max-h-full sm:h-[calc(85dvh+2rem)]',\n },\n ],\n defaultVariants: {\n side: 'bottom',\n layout: 'default',\n },\n});\n\n// `drawer-popup` hooks into drawer.css for swipe/stack transforms; `::after` dims under nested drawers.\nconst drawerPopupVariants = cva(\n cn(\n 'drawer-popup group/popup relative z-50 box-border flex [touch-action:auto] flex-col overflow-y-auto overscroll-contain will-change-transform outline-none',\n 'text-foreground',\n dialogSurfaceStyle,\n 'data-[swiping]:select-none',\n \"after:pointer-events-none after:absolute after:inset-0 after:bg-transparent after:transition-[background-color] after:duration-[450ms] after:content-['']\",\n 'data-[nested-drawer-open]:after:bg-black/25',\n ),\n {\n variants: {\n side: {\n bottom: '',\n top: '',\n left: '',\n right: '',\n },\n variant: {\n default: '',\n floating: 'drawer-popup-floating pointer-events-auto rounded-lg',\n },\n },\n compoundVariants: [\n {\n side: 'bottom',\n variant: 'default',\n className: '-mb-12 h-[var(--drawer-height,auto)] max-h-[calc(85vh_+_3rem)] w-full rounded-t-xl pb-12',\n },\n {\n side: 'top',\n variant: 'default',\n className: '-mt-12 h-[var(--drawer-height,auto)] max-h-[calc(85vh_+_3rem)] w-full rounded-b-xl pt-12',\n },\n {\n side: 'left',\n variant: 'default',\n className: 'h-full w-[20rem] max-w-[85vw] rounded-r-xl',\n },\n {\n side: 'right',\n variant: 'default',\n className: 'h-full w-[20rem] max-w-[85vw] rounded-l-xl',\n },\n {\n side: ['left', 'right'],\n variant: 'floating',\n className:\n 'h-[calc(100dvh-1.5rem)] w-[32rem] max-w-[calc(100vw-1.5rem)] sm:h-[calc(100dvh-2rem)] sm:max-w-[calc(100vw-2rem)]',\n },\n {\n side: ['top', 'bottom'],\n variant: 'floating',\n className:\n 'max-h-[calc(85dvh-1.5rem)] w-[calc(100vw-1.5rem)] sm:max-h-[calc(85dvh-2rem)] sm:w-[calc(100vw-2rem)]',\n },\n ],\n defaultVariants: {\n side: 'bottom',\n variant: 'default',\n },\n },\n);\n\ntype DrawerBackdropVariantsProps = VariantProps<typeof drawerBackdropVariants>;\ntype DrawerViewportClassVariantsProps = VariantProps<typeof drawerViewportVariants>;\ntype DrawerPopupVariantsProps = VariantProps<typeof drawerPopupVariants>;\nexport type DrawerVariant = NonNullable<DrawerPopupVariantsProps['variant']>;\ntype DrawerViewportLayout = NonNullable<DrawerViewportClassVariantsProps['layout']>;\ntype DrawerViewportVariantsProps = Pick<DrawerViewportClassVariantsProps, 'side'> & {\n variant?: DrawerVariant;\n};\nexport type DrawerOverlay = 'auto' | NonNullable<DrawerBackdropVariantsProps['overlay']>;\n\n// `side` = anchor edge; Base UI's `swipeDirection` = dismissal gesture (bottom sheet swipes `down`).\nconst sideToSwipeDirection: Record<DrawerSide, 'up' | 'down' | 'left' | 'right'> = {\n top: 'up',\n bottom: 'down',\n left: 'left',\n right: 'right',\n};\n\ntype DrawerContextValue = {\n side: DrawerSide;\n variant: DrawerVariant;\n resolvedOverlay: NonNullable<DrawerBackdropVariantsProps['overlay']>;\n};\n\nconst resolveDrawerOverlay = (\n overlay: DrawerOverlay,\n variant: DrawerVariant,\n): NonNullable<DrawerBackdropVariantsProps['overlay']> => {\n if (overlay !== 'auto') {\n return overlay;\n }\n\n return variant === 'floating' ? 'none' : 'visible';\n};\n\nconst DrawerContext = React.createContext<DrawerContextValue>({\n side: 'bottom',\n variant: 'default',\n resolvedOverlay: 'visible',\n});\n\nconst useDrawerContext = () => React.useContext(DrawerContext);\n\nconst resolveDrawerViewportLayout = (\n variant: DrawerVariant,\n overlay: NonNullable<DrawerBackdropVariantsProps['overlay']>,\n): DrawerViewportLayout => {\n if (variant !== 'floating') {\n return 'default';\n }\n\n return overlay === 'none' ? 'floating' : 'floatingOverlay';\n};\n\nexport type DrawerProps<Payload = unknown> = Omit<DrawerPrimitive.Root.Props<Payload>, 'swipeDirection'> & {\n /** Edge the drawer is anchored to. Defaults to `bottom`. */\n side?: DrawerSide;\n /** Visual treatment for the drawer panel. Defaults to `default`. */\n variant?: DrawerVariant;\n /** Backdrop behavior. `auto` renders a visible backdrop for default drawers and no backdrop for floating drawers. */\n overlay?: DrawerOverlay;\n};\n\nfunction Drawer<Payload = unknown>({\n side = 'bottom',\n variant = 'default',\n overlay = 'auto',\n modal,\n disablePointerDismissal,\n children,\n ...props\n}: DrawerProps<Payload>) {\n const resolvedOverlay = resolveDrawerOverlay(overlay, variant);\n const resolvedModal = modal ?? (resolvedOverlay === 'none' ? false : undefined);\n const resolvedDisablePointerDismissal = disablePointerDismissal ?? (resolvedOverlay === 'none' ? true : undefined);\n const contextValue = React.useMemo<DrawerContextValue>(\n () => ({ side, variant, resolvedOverlay }),\n [side, variant, resolvedOverlay],\n );\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <DrawerPrimitive.Root\n swipeDirection={sideToSwipeDirection[side]}\n modal={resolvedModal}\n disablePointerDismissal={resolvedDisablePointerDismissal}\n {...props}\n >\n {children}\n </DrawerPrimitive.Root>\n </DrawerContext.Provider>\n );\n}\nDrawer.displayName = 'Drawer';\n\n// Generic (not `forwardRef`) so `handle` / `payload` stay type-safe on detached triggers.\ntype DrawerTriggerProps<Payload = unknown> = DrawerPrimitive.Trigger.Props<Payload> & {\n /** @deprecated Use Base UI's native `render` prop instead for stronger composition typing. */\n asChild?: boolean;\n};\n\nfunction DrawerTrigger<Payload = unknown>({ asChild, children, ...props }: DrawerTriggerProps<Payload>) {\n const renderProps = asChild && React.isValidElement(children) ? { render: children as React.ReactElement } : {};\n\n return (\n <DrawerPrimitive.Trigger {...renderProps} {...props}>\n {asChild ? undefined : children}\n </DrawerPrimitive.Trigger>\n );\n}\nDrawerTrigger.displayName = 'DrawerTrigger';\n\ntype DrawerCloseProps = DrawerPrimitive.Close.Props & {\n /** @deprecated Use Base UI's native `render` prop instead for stronger composition typing. */\n asChild?: boolean;\n};\n\nconst DrawerClose = React.forwardRef<HTMLButtonElement, DrawerCloseProps>(({ asChild, children, ...props }, ref) => {\n const renderProps = asChild && React.isValidElement(children) ? { render: children as React.ReactElement } : {};\n\n return (\n <DrawerPrimitive.Close ref={ref} {...renderProps} {...props}>\n {asChild ? undefined : children}\n </DrawerPrimitive.Close>\n );\n});\nDrawerClose.displayName = 'DrawerClose';\n\nconst DrawerPortal = DrawerPrimitive.Portal;\nconst DrawerProvider = DrawerPrimitive.Provider;\nconst DrawerIndent = DrawerPrimitive.Indent;\nconst DrawerIndentBackground = DrawerPrimitive.IndentBackground;\nconst DrawerSwipeArea = DrawerPrimitive.SwipeArea;\n// Inner region where pointer drags select text / scroll instead of swiping the drawer closed.\nconst DrawerInteractive = DrawerPrimitive.Content;\n\ntype DrawerBackdropProps = Omit<DrawerPrimitive.Backdrop.Props, 'className'> & {\n className?: string;\n} & DrawerBackdropVariantsProps;\n\n// The `drawer-backdrop` class (drawer.css) fades the overlay with the swipe gesture.\nconst DrawerBackdrop = React.forwardRef<HTMLDivElement, DrawerBackdropProps>(\n ({ className, overlay, ...props }, ref) => {\n const { resolvedOverlay } = useDrawerContext();\n const resolvedBackdropOverlay = overlay ?? resolvedOverlay;\n\n return (\n <DrawerPrimitive.Backdrop\n ref={ref}\n data-slot=\"drawer-backdrop\"\n data-overlay={resolvedBackdropOverlay}\n className={cn(drawerBackdropVariants({ overlay: resolvedBackdropOverlay }), className)}\n {...props}\n />\n );\n },\n);\nDrawerBackdrop.displayName = 'DrawerBackdrop';\n\ntype DrawerViewportProps = Omit<DrawerPrimitive.Viewport.Props, 'className'> & {\n className?: string;\n} & DrawerViewportVariantsProps;\n\n// Keep the viewport pointer-interactive: Base UI wires native drag-to-dismiss to it.\n// Floating drawers without an overlay constrain the viewport so the page behind stays interactive.\n// Floating drawers with an overlay keep a full-screen viewport so overlay-start drags stay native.\nconst DrawerViewport = React.forwardRef<HTMLDivElement, DrawerViewportProps>(\n ({ className, side, variant, ...props }, ref) => {\n const context = useDrawerContext();\n const resolvedSide = side ?? context.side;\n const resolvedVariant = variant ?? context.variant;\n const layout = resolveDrawerViewportLayout(resolvedVariant, context.resolvedOverlay);\n\n return (\n <DrawerPrimitive.Viewport\n ref={ref}\n data-slot=\"drawer-viewport\"\n data-variant={resolvedVariant}\n className={cn(drawerViewportVariants({ side: resolvedSide, layout }), className)}\n {...props}\n />\n );\n },\n);\nDrawerViewport.displayName = 'DrawerViewport';\n\ntype DrawerPopupProps = Omit<DrawerPrimitive.Popup.Props, 'className'> & {\n className?: string;\n} & DrawerPopupVariantsProps;\n\nconst DrawerPopup = React.forwardRef<HTMLDivElement, DrawerPopupProps>(\n ({ className, side, variant, ...props }, ref) => {\n const context = useDrawerContext();\n const resolvedSide = side ?? context.side;\n const resolvedVariant = variant ?? context.variant;\n\n return (\n <DrawerPrimitive.Popup\n ref={ref}\n data-slot=\"drawer-popup\"\n data-variant={resolvedVariant}\n className={cn(drawerPopupVariants({ side: resolvedSide, variant: resolvedVariant }), className)}\n {...props}\n />\n );\n },\n);\nDrawerPopup.displayName = 'DrawerPopup';\n\n// Inner-content fade while a nested drawer covers the parent. Off the popup itself so border/shadow stay crisp.\nconst nestedFadeClass = cn(\n 'transition-opacity duration-300 ease-[cubic-bezier(0.32,0.72,0,1)] motion-reduce:duration-0',\n 'group-data-[nested-drawer-open]/popup:opacity-0',\n);\n\nconst DrawerHandleBar = () => (\n <div\n aria-hidden\n data-slot=\"drawer-handle\"\n className={cn('mx-auto my-2 h-1 w-12 shrink-0 rounded-full bg-muted', nestedFadeClass)}\n />\n);\nDrawerHandleBar.displayName = 'DrawerHandleBar';\n\ntype DrawerFloatingSideHandleProps = {\n side: DrawerSide;\n variant: DrawerVariant;\n};\n\nconst DrawerFloatingSideHandle = ({ side, variant }: DrawerFloatingSideHandleProps) => {\n if (variant !== 'floating' || (side !== 'left' && side !== 'right')) {\n return null;\n }\n\n return (\n <div\n aria-hidden\n data-slot=\"drawer-side-handle\"\n className={cn(\n 'absolute top-1/2 z-10 flex h-20 w-5 -translate-y-1/2 cursor-ew-resize touch-none items-center justify-center select-none lg:hidden',\n side === 'right' ? '-left-2' : '-right-2',\n )}\n >\n <div className=\"h-10 w-1 rounded-full bg-border-strong\" />\n </div>\n );\n};\nDrawerFloatingSideHandle.displayName = 'DrawerFloatingSideHandle';\n\ntype DrawerContentProps = Omit<DrawerPrimitive.Popup.Props, 'className' | 'children'> & {\n className?: string;\n children?: React.ReactNode;\n /** Shows the built-in top-right close button. Defaults to `true`. */\n showCloseButton?: boolean;\n} & Pick<DrawerPopupVariantsProps, 'variant'>;\n\n// Opinionated bundle: Portal + Backdrop + Viewport + Popup, with handle on top/bottom sheets.\n// Drop to the primitives for non-modal pages, custom portal targets, or chrome outside the popup.\nconst DrawerContent = React.forwardRef<HTMLDivElement, DrawerContentProps>(\n ({ className, children, variant, showCloseButton = true, ...props }, ref) => {\n const { side, variant: contextVariant, resolvedOverlay } = useDrawerContext();\n const resolvedVariant = variant ?? contextVariant;\n const showHandle = side === 'top' || side === 'bottom';\n\n return (\n <DrawerPortal>\n {resolvedOverlay !== 'none' && <DrawerBackdrop />}\n <DrawerViewport variant={resolvedVariant}>\n <DrawerPopup ref={ref} variant={resolvedVariant} className={className} {...props}>\n {showHandle && side === 'bottom' && <DrawerHandleBar />}\n <DrawerFloatingSideHandle side={side} variant={resolvedVariant} />\n <div\n data-slot=\"drawer-content\"\n className={cn(\n 'relative flex min-h-0 flex-1 flex-col',\n '[&>form]:flex [&>form]:min-h-0 [&>form]:flex-1 [&>form]:flex-col [&>form]:gap-0',\n nestedFadeClass,\n )}\n >\n {showCloseButton && <DrawerDefaultCloseButton />}\n {children}\n </div>\n {showHandle && side === 'top' && <DrawerHandleBar />}\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n );\n },\n);\nDrawerContent.displayName = 'DrawerContent';\n\nconst DrawerDefaultCloseButton = () => (\n <DrawerClose asChild>\n <Button type=\"button\" variant=\"ghost\" size=\"icon-sm\" className=\"absolute top-3 right-3 z-10\" aria-label=\"Close\">\n <XIcon />\n </Button>\n </DrawerClose>\n);\nDrawerDefaultCloseButton.displayName = 'DrawerDefaultCloseButton';\n\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"drawer-header\"\n className={cn('flex flex-col gap-0.5 px-3 py-2.5 pr-12 text-left', className)}\n {...props}\n />\n);\nDrawerHeader.displayName = 'DrawerHeader';\n\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"drawer-footer\"\n className={cn('mt-auto flex flex-col-reverse gap-1.5 px-3 py-2.5 sm:flex-row sm:justify-end', className)}\n {...props}\n />\n);\nDrawerFooter.displayName = 'DrawerFooter';\n\nconst DrawerBody = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div data-slot=\"drawer-body\" className={cn('flex-1 px-3 py-2.5', className)} {...props} />\n);\nDrawerBody.displayName = 'DrawerBody';\n\ntype DrawerTitleProps = Omit<DrawerPrimitive.Title.Props, 'className'> & {\n className?: string;\n};\n\nconst DrawerTitle = React.forwardRef<HTMLHeadingElement, DrawerTitleProps>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title ref={ref} className={cn('text-subheading text-foreground', className)} {...props} />\n));\nDrawerTitle.displayName = 'DrawerTitle';\n\ntype DrawerDescriptionProps = Omit<DrawerPrimitive.Description.Props, 'className'> & {\n className?: string;\n};\n\nconst DrawerDescription = React.forwardRef<HTMLParagraphElement, DrawerDescriptionProps>(\n ({ className, ...props }, ref) => (\n <DrawerPrimitive.Description ref={ref} className={cn('text-caption text-muted-foreground', className)} {...props} />\n ),\n);\nDrawerDescription.displayName = 'DrawerDescription';\n\nexport {\n Drawer,\n DrawerTrigger,\n DrawerClose,\n DrawerPortal,\n DrawerBackdrop,\n DrawerViewport,\n DrawerPopup,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerBody,\n DrawerTitle,\n DrawerDescription,\n DrawerProvider,\n DrawerIndent,\n DrawerIndentBackground,\n DrawerSwipeArea,\n DrawerInteractive,\n};\n\nexport type {\n DrawerTriggerProps,\n DrawerCloseProps,\n DrawerBackdropProps,\n DrawerViewportProps,\n DrawerPopupProps,\n DrawerContentProps,\n DrawerTitleProps,\n DrawerDescriptionProps,\n};\n"],"names":["cva","cn","dialogSurfaceStyle","React","jsx","DrawerPrimitive","jsxs","Button","XIcon"],"mappings":"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"}
|
|
@@ -5,7 +5,9 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
const ee_signals_components_entityIndexModel = require('./entity-index-model.cjs.js');
|
|
7
7
|
const Badge = require('../../../Badge-BF6FbLH_.cjs');
|
|
8
|
-
const dataList = require('../../../data-list-
|
|
8
|
+
const dataList = require('../../../data-list-_yDPF5wR.cjs');
|
|
9
|
+
require('react');
|
|
10
|
+
require('../../../keyboard/keyboard-shortcuts-context.cjs.js');
|
|
9
11
|
|
|
10
12
|
const columns = "minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)";
|
|
11
13
|
function Status({ entity }) {
|