@mastra/playground-ui 60.1.0 → 60.2.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/{ask-user-Dlz2346n.js → ask-user-DE8TaPhb.js} +62 -53
- package/dist/ask-user-DE8TaPhb.js.map +1 -0
- package/dist/{ask-user-CXu4b7Jw.cjs → ask-user-XYY0fUoI.cjs} +61 -52
- package/dist/ask-user-XYY0fUoI.cjs.map +1 -0
- package/dist/{checkbox-CI8JtZKS.cjs → checkbox-Bkobte27.cjs} +3 -1
- package/dist/checkbox-Bkobte27.cjs.map +1 -0
- package/dist/{checkbox-CQedzgsi.js → checkbox-DcNIsz5L.js} +3 -1
- package/dist/checkbox-DcNIsz5L.js.map +1 -0
- package/dist/{code-block-DY5KsTGY.js → code-block-Bnz7Pq0Q.js} +3 -3
- package/dist/code-block-Bnz7Pq0Q.js.map +1 -0
- package/dist/{code-block-BzoMjjtf.cjs → code-block-C3DbSINk.cjs} +3 -3
- package/dist/code-block-C3DbSINk.cjs.map +1 -0
- package/dist/{code-editor-B_wPmKPf.cjs → code-editor-Btr1qm_5.cjs} +26 -6
- package/dist/code-editor-Btr1qm_5.cjs.map +1 -0
- package/dist/{code-editor-28chVxHw.js → code-editor-DzhYz1fH.js} +26 -6
- package/dist/code-editor-DzhYz1fH.js.map +1 -0
- package/dist/{combobox-B15qTrWO.js → combobox-DKFPbNMB.js} +13 -11
- package/dist/combobox-DKFPbNMB.js.map +1 -0
- package/dist/{combobox-DJ0c4o4S.cjs → combobox-RzEkcOuu.cjs} +14 -12
- package/dist/combobox-RzEkcOuu.cjs.map +1 -0
- package/dist/{combobox-styles-C2MEEpaG.js → combobox-styles-mbcWlNZQ.js} +6 -7
- package/dist/combobox-styles-mbcWlNZQ.js.map +1 -0
- package/dist/{combobox-styles-DLflBH-G.cjs → combobox-styles-qL3FSgmU.cjs} +5 -6
- package/dist/combobox-styles-qL3FSgmU.cjs.map +1 -0
- package/dist/components/Checkbox.cjs.js +1 -1
- package/dist/components/Checkbox.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Combobox.cjs.js +2 -2
- package/dist/components/Combobox.es.js +2 -2
- package/dist/components/Comment.cjs.js +7 -9
- package/dist/components/Comment.cjs.js.map +1 -1
- package/dist/components/Comment.es.js +8 -10
- 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 +5 -5
- package/dist/components/DataList.es.js +5 -5
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +9 -14
- package/dist/components/DateTimePicker.cjs.js.map +1 -1
- package/dist/components/DateTimePicker.es.js +9 -14
- 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/EnvironmentVariablesEditor.cjs.js +12 -22
- package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +12 -22
- package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
- package/dist/components/Field.cjs.js +19 -0
- package/dist/components/Field.cjs.js.map +1 -0
- package/dist/components/Field.d.ts +2 -0
- package/dist/components/Field.es.js +3 -0
- package/dist/components/Field.es.js.map +1 -0
- package/dist/components/FilterBar.cjs.js +2 -2
- package/dist/components/FilterBar.es.js +3 -3
- package/dist/components/Form.cjs.js +10 -0
- package/dist/components/Form.cjs.js.map +1 -0
- package/dist/components/Form.d.ts +2 -0
- package/dist/components/Form.es.js +2 -0
- package/dist/components/Form.es.js.map +1 -0
- package/dist/components/FormFieldBlocks.cjs.js +270 -11
- package/dist/components/FormFieldBlocks.cjs.js.map +1 -1
- package/dist/components/FormFieldBlocks.es.js +267 -8
- package/dist/components/FormFieldBlocks.es.js.map +1 -1
- package/dist/components/Input.cjs.js +1 -1
- package/dist/components/Input.es.js +1 -1
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +51 -52
- package/dist/components/JSONSchemaForm.cjs.js.map +1 -1
- package/dist/components/JSONSchemaForm.es.js +44 -45
- package/dist/components/JSONSchemaForm.es.js.map +1 -1
- package/dist/components/Label.cjs.js +33 -2
- package/dist/components/Label.cjs.js.map +1 -1
- package/dist/components/Label.es.js +17 -1
- package/dist/components/Label.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 +4 -2
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +4 -2
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +24 -21
- package/dist/components/PropertyFilter.cjs.js.map +1 -1
- package/dist/components/PropertyFilter.es.js +25 -22
- package/dist/components/PropertyFilter.es.js.map +1 -1
- package/dist/components/RadioGroup.cjs.js +1 -1
- package/dist/components/RadioGroup.es.js +1 -1
- package/dist/components/RuleBuilder.cjs.js +2 -2
- package/dist/components/RuleBuilder.es.js +2 -2
- package/dist/components/SearchInput.cjs.js +10 -0
- package/dist/components/SearchInput.cjs.js.map +1 -0
- package/dist/components/SearchInput.d.ts +2 -0
- package/dist/components/SearchInput.es.js +2 -0
- package/dist/components/SearchInput.es.js.map +1 -0
- package/dist/components/Section.cjs.js +1 -1
- package/dist/components/Section.es.js +1 -1
- package/dist/components/SegmentedControl.cjs.js +1 -1
- package/dist/components/SegmentedControl.es.js +1 -1
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +1 -1
- package/dist/components/SideDialog.es.js +1 -1
- package/dist/components/Switch.cjs.js +1 -1
- package/dist/components/Switch.es.js +1 -1
- package/dist/components/Textarea.cjs.js +1 -1
- package/dist/components/Textarea.es.js +1 -1
- package/dist/components/ThemeToggle.cjs.js +1 -1
- package/dist/components/ThemeToggle.es.js +1 -1
- package/dist/components/Workflow.cjs.js +3 -3
- package/dist/components/Workflow.es.js +3 -3
- package/dist/components/ai/activity.cjs.js +1 -1
- 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.cjs.js +1 -1
- package/dist/components/ai/plan.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +1 -1
- package/dist/components/ai/tool-call.es.js +1 -1
- package/dist/{custom-auto-form-field-yEMBGXu-.js → custom-auto-form-field-BvEhSH73.js} +2 -6
- package/dist/custom-auto-form-field-BvEhSH73.js.map +1 -0
- package/dist/{custom-auto-form-field-Brfb-0Te.cjs → custom-auto-form-field-DVse5pih.cjs} +2 -6
- package/dist/custom-auto-form-field-DVse5pih.cjs.map +1 -0
- package/dist/{data-code-section-It6myyvZ.js → data-code-section-DFxE6ckH.js} +22 -19
- package/dist/data-code-section-DFxE6ckH.js.map +1 -0
- package/dist/{data-code-section-DWBfkrmO.cjs → data-code-section-Ds79F6W-.cjs} +21 -18
- package/dist/data-code-section-Ds79F6W-.cjs.map +1 -0
- package/dist/{data-list-Y42KyuI1.cjs → data-list-Bqf-fhMx.cjs} +3 -3
- package/dist/{data-list-Y42KyuI1.cjs.map → data-list-Bqf-fhMx.cjs.map} +1 -1
- package/dist/{data-list-CyeD_u-6.js → data-list-CEIYm7FY.js} +3 -3
- package/dist/{data-list-CyeD_u-6.js.map → data-list-CEIYm7FY.js.map} +1 -1
- package/dist/{data-list-skeleton-Bk9LI0J0.js → data-list-skeleton-CeyLefM5.js} +2 -2
- package/dist/{data-list-skeleton-Bk9LI0J0.js.map → data-list-skeleton-CeyLefM5.js.map} +1 -1
- package/dist/{data-list-skeleton-BXPfL0s7.cjs → data-list-skeleton-DuqQkzwC.cjs} +2 -2
- package/dist/{data-list-skeleton-BXPfL0s7.cjs.map → data-list-skeleton-DuqQkzwC.cjs.map} +1 -1
- package/dist/{data-list-spacer-C8z32twc.js → data-list-spacer-BH2DjRdk.js} +2 -2
- package/dist/{data-list-spacer-C8z32twc.js.map → data-list-spacer-BH2DjRdk.js.map} +1 -1
- package/dist/{data-list-spacer-BSg2hCx7.cjs → data-list-spacer-DFvaAEqo.cjs} +2 -2
- package/dist/{data-list-spacer-BSg2hCx7.cjs.map → data-list-spacer-DFvaAEqo.cjs.map} +1 -1
- package/dist/{data-list-top-C-pLBax7.cjs → data-list-top-CvD3KI8R.cjs} +2 -2
- package/dist/{data-list-top-C-pLBax7.cjs.map → data-list-top-CvD3KI8R.cjs.map} +1 -1
- package/dist/{data-list-top-DheFgb0M.js → data-list-top-CxUWL8gh.js} +2 -2
- package/dist/{data-list-top-DheFgb0M.js.map → data-list-top-CxUWL8gh.js.map} +1 -1
- package/dist/{data-panel-DuLf5j8S.js → data-panel-CbomKGJt.js} +2 -2
- package/dist/{data-panel-DuLf5j8S.js.map → data-panel-CbomKGJt.js.map} +1 -1
- package/dist/{data-panel-D7Qk4iwZ.cjs → data-panel-o-QLWuFV.cjs} +2 -2
- package/dist/{data-panel-D7Qk4iwZ.cjs.map → data-panel-o-QLWuFV.cjs.map} +1 -1
- package/dist/{date-time-range-picker-BDylIIzt.js → date-time-range-picker-B1zYIQTC.js} +56 -55
- package/dist/date-time-range-picker-B1zYIQTC.js.map +1 -0
- package/dist/{date-time-range-picker-UheN070q.cjs → date-time-range-picker-Bb-CGVEL.cjs} +56 -55
- package/dist/date-time-range-picker-Bb-CGVEL.cjs.map +1 -0
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +1 -1
- package/dist/domains/chat/messages/dataset-save-action.cjs.js +11 -10
- package/dist/domains/chat/messages/dataset-save-action.cjs.js.map +1 -1
- package/dist/domains/chat/messages/dataset-save-action.es.js +11 -10
- package/dist/domains/chat/messages/dataset-save-action.es.js.map +1 -1
- package/dist/domains/chat/messages/message-row.cjs.js +1 -1
- package/dist/domains/chat/messages/message-row.es.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
- package/dist/domains/chat/messages/skill-message.cjs.js +1 -1
- package/dist/domains/chat/messages/skill-message.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.cjs.js +2 -2
- 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 +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/tool-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +3 -4
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +3 -4
- package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
- package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
- package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card.es.js +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +18 -16
- 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 +18 -16
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js.map +1 -1
- package/dist/domains/feedback/utils/feedback-refetch-interval.cjs.js +1 -1
- package/dist/domains/feedback/utils/feedback-refetch-interval.cjs.js.map +1 -1
- package/dist/domains/feedback/utils/feedback-refetch-interval.es.js +1 -1
- package/dist/domains/feedback/utils/feedback-refetch-interval.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 +2 -2
- package/dist/domains/logs/components/logs-list-view.es.js +2 -2
- package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js +5 -3
- package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js +5 -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/components/memory-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/memory-card-view.es.js +1 -1
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.es.js +1 -1
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +16 -15
- 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 +16 -15
- 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 +4 -3
- 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 +4 -3
- 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 +1 -1
- package/dist/domains/scores/components/span-scoring.es.js +1 -1
- 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/scores/hooks/use-scorers.cjs.js +1 -1
- package/dist/domains/scores/hooks/use-scorers.cjs.js.map +1 -1
- package/dist/domains/scores/hooks/use-scorers.es.js +1 -1
- package/dist/domains/scores/hooks/use-scorers.es.js.map +1 -1
- package/dist/domains/scores/hooks/use-trace-span-scores.cjs.js +1 -1
- package/dist/domains/scores/hooks/use-trace-span-scores.cjs.js.map +1 -1
- package/dist/domains/scores/hooks/use-trace-span-scores.es.js +1 -1
- package/dist/domains/scores/hooks/use-trace-span-scores.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 +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +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.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.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.cjs.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-context.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-context.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js +7 -8
- package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js +7 -8
- package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js +23 -16
- package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +23 -16
- package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row-context.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row-context.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +3 -9
- package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +3 -9
- package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace.cjs.js +0 -2
- package/dist/domains/traces/components/thread-trace.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace.es.js +0 -2
- package/dist/domains/traces/components/thread-trace.es.js.map +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +20 -53
- 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 +21 -54
- package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +10 -11
- package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +10 -11
- package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +5 -9
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +6 -10
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.cjs.js +2 -0
- package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +2 -0
- 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-span-panel.cjs.js +0 -1
- package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-panel.es.js +0 -1
- package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -3
- package/dist/domains/traces/components/trace-thread-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-thread-panel.es.js +1 -3
- package/dist/domains/traces/components/trace-thread-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
- package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
- package/dist/domains/traces/components/traces-list-view.cjs.js +3 -3
- package/dist/domains/traces/components/traces-list-view.es.js +3 -3
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +3 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +3 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-traces-list-source.cjs.js +2 -0
- package/dist/domains/traces/hooks/use-traces-list-source.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-traces-list-source.es.js +2 -0
- package/dist/domains/traces/hooks/use-traces-list-source.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
- package/dist/domains/workflows/components/workflow-step-detail.cjs.js +2 -2
- 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/workflow/data/workflow-data-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +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 +7 -14
- 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 +7 -14
- 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 +39 -42
- 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 +40 -43
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js.map +1 -1
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +1 -1
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-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 +8 -16
- 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 +9 -17
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-node.cjs.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 +1 -2
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -2
- package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +8 -21
- 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 +9 -22
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js.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 -3
- 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 +4 -3
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +62 -68
- 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 +62 -68
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js.map +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +13 -16
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js.map +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +14 -17
- package/dist/ee/topics/components/topic-trace-summary-list.es.js.map +1 -1
- package/dist/field-BtvEQ68O.js +170 -0
- package/dist/field-BtvEQ68O.js.map +1 -0
- package/dist/field-control-aria-DB6y41tQ.js +26 -0
- package/dist/field-control-aria-DB6y41tQ.js.map +1 -0
- package/dist/field-control-aria-WzMGs0A4.cjs +31 -0
- package/dist/field-control-aria-WzMGs0A4.cjs.map +1 -0
- package/dist/{field-block-DtaPqBa3.cjs → field-error-id-4DYu4KZ2.cjs} +24 -4
- package/dist/field-error-id-4DYu4KZ2.cjs.map +1 -0
- package/dist/{field-block--PeppIRb.js → field-error-id-BSQLcfHo.js} +22 -3
- package/dist/field-error-id-BSQLcfHo.js.map +1 -0
- package/dist/field-ip9xiOVa.cjs +198 -0
- package/dist/field-ip9xiOVa.cjs.map +1 -0
- package/dist/{filter-bar-chip-CBlHsz4A.cjs → filter-bar-chip-BsWm7SQr.cjs} +2 -2
- package/dist/{filter-bar-chip-CBlHsz4A.cjs.map → filter-bar-chip-BsWm7SQr.cjs.map} +1 -1
- package/dist/{filter-bar-chip-DFOtEvpW.js → filter-bar-chip-Dmboyu1t.js} +2 -2
- package/dist/{filter-bar-chip-DFOtEvpW.js.map → filter-bar-chip-Dmboyu1t.js.map} +1 -1
- package/dist/form-ChOlos7g.cjs +12 -0
- package/dist/form-ChOlos7g.cjs.map +1 -0
- package/dist/form-uj2xap-j.js +10 -0
- package/dist/form-uj2xap-j.js.map +1 -0
- package/dist/{input-bd223EJW.cjs → input-D0UPyj6A.cjs} +16 -45
- package/dist/input-D0UPyj6A.cjs.map +1 -0
- package/dist/{input-CHghVv3k.js → input-D5_B67_r.js} +17 -27
- package/dist/input-D5_B67_r.js.map +1 -0
- package/dist/{input-group-BRhBfeHC.cjs → input-group-BgCXLSRV.cjs} +77 -96
- package/dist/input-group-BgCXLSRV.cjs.map +1 -0
- package/dist/{input-group-0G9ZX_cM.js → input-group-wzirc-1k.js} +78 -97
- package/dist/input-group-wzirc-1k.js.map +1 -0
- package/dist/keyboard/keyboard-dispatcher.cjs.js +2 -0
- package/dist/keyboard/keyboard-dispatcher.cjs.js.map +1 -1
- package/dist/keyboard/keyboard-dispatcher.es.js +2 -0
- package/dist/keyboard/keyboard-dispatcher.es.js.map +1 -1
- package/dist/keyboard/use-keydown.cjs.js +7 -1
- package/dist/keyboard/use-keydown.cjs.js.map +1 -1
- package/dist/keyboard/use-keydown.es.js +7 -1
- package/dist/keyboard/use-keydown.es.js.map +1 -1
- package/dist/layout/tabbed-container.cjs.js +3 -3
- package/dist/layout/tabbed-container.es.js +3 -3
- package/dist/lib/form/components/boolean-field.cjs.js +6 -6
- package/dist/lib/form/components/boolean-field.cjs.js.map +1 -1
- package/dist/lib/form/components/boolean-field.es.js +5 -5
- package/dist/lib/form/components/boolean-field.es.js.map +1 -1
- package/dist/lib/form/components/custom-array-field.cjs.js +1 -1
- package/dist/lib/form/components/custom-array-field.es.js +1 -1
- package/dist/lib/form/components/custom-auto-form-field.cjs.js +1 -2
- package/dist/lib/form/components/custom-auto-form-field.cjs.js.map +1 -1
- package/dist/lib/form/components/custom-auto-form-field.es.js +1 -2
- package/dist/lib/form/components/custom-auto-form-field.es.js.map +1 -1
- package/dist/lib/form/components/custom-object-field.cjs.js +1 -1
- package/dist/lib/form/components/custom-object-field.es.js +1 -1
- package/dist/lib/form/components/date-field.cjs.js +6 -3
- package/dist/lib/form/components/date-field.cjs.js.map +1 -1
- package/dist/lib/form/components/date-field.es.js +6 -3
- package/dist/lib/form/components/date-field.es.js.map +1 -1
- package/dist/lib/form/components/discriminated-union-field.cjs.js +1 -1
- package/dist/lib/form/components/discriminated-union-field.es.js +1 -1
- package/dist/lib/form/components/field-wrapper.cjs.js +30 -9
- package/dist/lib/form/components/field-wrapper.cjs.js.map +1 -1
- package/dist/lib/form/components/field-wrapper.es.js +30 -9
- package/dist/lib/form/components/field-wrapper.es.js.map +1 -1
- package/dist/lib/form/components/form.cjs.js +4 -4
- package/dist/lib/form/components/form.cjs.js.map +1 -1
- package/dist/lib/form/components/form.es.js +4 -4
- package/dist/lib/form/components/form.es.js.map +1 -1
- package/dist/lib/form/components/number-field.cjs.js +3 -4
- package/dist/lib/form/components/number-field.cjs.js.map +1 -1
- package/dist/lib/form/components/number-field.es.js +3 -4
- package/dist/lib/form/components/number-field.es.js.map +1 -1
- package/dist/lib/form/components/record-field.cjs.js +13 -2
- package/dist/lib/form/components/record-field.cjs.js.map +1 -1
- package/dist/lib/form/components/record-field.es.js +13 -2
- package/dist/lib/form/components/record-field.es.js.map +1 -1
- package/dist/lib/form/components/select-field.cjs.js +4 -19
- package/dist/lib/form/components/select-field.cjs.js.map +1 -1
- package/dist/lib/form/components/select-field.es.js +4 -19
- package/dist/lib/form/components/select-field.es.js.map +1 -1
- package/dist/lib/form/components/string-field.cjs.js +2 -4
- package/dist/lib/form/components/string-field.cjs.js.map +1 -1
- package/dist/lib/form/components/string-field.es.js +2 -4
- package/dist/lib/form/components/string-field.es.js.map +1 -1
- package/dist/lib/form/components/union-field.cjs.js +1 -1
- package/dist/lib/form/components/union-field.es.js +1 -1
- package/dist/lib/form/custom-auto-form.cjs.js +1 -1
- package/dist/lib/form/custom-auto-form.es.js +1 -1
- package/dist/lib/form/dynamic-form.cjs.js +0 -5
- package/dist/lib/form/dynamic-form.cjs.js.map +1 -1
- package/dist/lib/form/dynamic-form.es.js +0 -5
- package/dist/lib/form/dynamic-form.es.js.map +1 -1
- package/dist/{list-search-BzAIj0DB.cjs → list-search-CTGQJCh1.cjs} +14 -21
- package/dist/list-search-CTGQJCh1.cjs.map +1 -0
- package/dist/{list-search-DI1DH7vU.js → list-search-CmOCmTwL.js} +15 -22
- package/dist/list-search-CmOCmTwL.js.map +1 -0
- package/dist/{logs-data-list-CtHern11.cjs → logs-data-list-B9CAqAHD.cjs} +3 -3
- package/dist/{logs-data-list-CtHern11.cjs.map → logs-data-list-B9CAqAHD.cjs.map} +1 -1
- package/dist/{logs-data-list-ButZV-2H.js → logs-data-list-DfzdzgXB.js} +3 -3
- package/dist/{logs-data-list-ButZV-2H.js.map → logs-data-list-DfzdzgXB.js.map} +1 -1
- package/dist/{markdown-renderer-CZV6neya.cjs → markdown-renderer-DPwN7Vtm.cjs} +2 -2
- package/dist/{markdown-renderer-CZV6neya.cjs.map → markdown-renderer-DPwN7Vtm.cjs.map} +1 -1
- package/dist/{markdown-renderer-Cy7Iwy1c.js → markdown-renderer-zvB6a8uj.js} +2 -2
- package/dist/{markdown-renderer-Cy7Iwy1c.js.map → markdown-renderer-zvB6a8uj.js.map} +1 -1
- package/dist/new/settings.cjs.js +2 -1
- package/dist/new/settings.cjs.js.map +1 -1
- package/dist/new/settings.es.js +1 -1
- package/dist/{plan-CvTAGIWv.js → plan-BtOryfz5.js} +2 -2
- package/dist/{plan-CvTAGIWv.js.map → plan-BtOryfz5.js.map} +1 -1
- package/dist/{plan-DsfNN3a0.cjs → plan-D8rM4i4S.cjs} +2 -2
- package/dist/{plan-DsfNN3a0.cjs.map → plan-D8rM4i4S.cjs.map} +1 -1
- package/dist/primitives/form-element.cjs.js +9 -1
- package/dist/primitives/form-element.cjs.js.map +1 -1
- package/dist/primitives/form-element.es.js +7 -2
- package/dist/primitives/form-element.es.js.map +1 -1
- package/dist/primitives/textarea-control.cjs.js +24 -0
- package/dist/primitives/textarea-control.cjs.js.map +1 -0
- package/dist/primitives/textarea-control.d.ts +2 -0
- package/dist/primitives/textarea-control.es.js +20 -0
- package/dist/primitives/textarea-control.es.js.map +1 -0
- package/dist/{property-filter-applied-C9verwDR.js → property-filter-applied-B_nfBryj.js} +2 -2
- package/dist/{property-filter-applied-C9verwDR.js.map → property-filter-applied-B_nfBryj.js.map} +1 -1
- package/dist/{property-filter-applied-Bp2z4KBv.cjs → property-filter-applied-CSLLo3VJ.cjs} +2 -2
- package/dist/{property-filter-applied-Bp2z4KBv.cjs.map → property-filter-applied-CSLLo3VJ.cjs.map} +1 -1
- package/dist/{radio-group-BdEPWGzi.cjs → radio-group-QV7yVrSX.cjs} +13 -2
- package/dist/radio-group-QV7yVrSX.cjs.map +1 -0
- package/dist/{radio-group-CFZXUXZ5.js → radio-group-bvm7Sqq_.js} +13 -2
- package/dist/radio-group-bvm7Sqq_.js.map +1 -0
- package/dist/{reasoning-activity-OM1-hbCV.js → reasoning-activity-6VkIbDT4.js} +2 -2
- package/dist/{reasoning-activity-OM1-hbCV.js.map → reasoning-activity-6VkIbDT4.js.map} +1 -1
- package/dist/{reasoning-activity-BVviIdMe.cjs → reasoning-activity-DaXMgyr3.cjs} +2 -2
- package/dist/{reasoning-activity-BVviIdMe.cjs.map → reasoning-activity-DaXMgyr3.cjs.map} +1 -1
- package/dist/search-input-BKXiYeed.js +48 -0
- package/dist/search-input-BKXiYeed.js.map +1 -0
- package/dist/search-input-T0orZ7Jf.cjs +50 -0
- package/dist/search-input-T0orZ7Jf.cjs.map +1 -0
- package/dist/{section-dBeXxS69.cjs → section-Byml9qxH.cjs} +2 -2
- package/dist/{section-dBeXxS69.cjs.map → section-Byml9qxH.cjs.map} +1 -1
- package/dist/{section-BfEsNViI.js → section-DTooysg2.js} +2 -2
- package/dist/{section-BfEsNViI.js.map → section-DTooysg2.js.map} +1 -1
- package/dist/{segmented-control-BxeiypPR.js → segmented-control-ClbeK8DF.js} +4 -1
- package/dist/segmented-control-ClbeK8DF.js.map +1 -0
- package/dist/{segmented-control--I3IgW21.cjs → segmented-control-DwLkp3TP.cjs} +4 -1
- package/dist/segmented-control-DwLkp3TP.cjs.map +1 -0
- package/dist/{select-DZeNf-kI.js → select--ArpXYDc.js} +6 -3
- package/dist/select--ArpXYDc.js.map +1 -0
- package/dist/{select-DBY9LQFQ.cjs → select-DJQYAVcm.cjs} +5 -2
- package/dist/select-DJQYAVcm.cjs.map +1 -0
- package/dist/{settings-row-C1JZDdz_.js → settings-row-B0jGFpVw.js} +46 -39
- package/dist/settings-row-B0jGFpVw.js.map +1 -0
- package/dist/{settings-row-C7YKfUgY.cjs → settings-row-Dt4WnnRf.cjs} +47 -39
- package/dist/settings-row-Dt4WnnRf.cjs.map +1 -0
- package/dist/{side-dialog-DCzCcZs6.js → side-dialog-DZJc85m3.js} +2 -2
- package/dist/{side-dialog-DCzCcZs6.js.map → side-dialog-DZJc85m3.js.map} +1 -1
- package/dist/{side-dialog-DFnD1498.cjs → side-dialog-lQUx6B_M.cjs} +2 -2
- package/dist/{side-dialog-DFnD1498.cjs.map → side-dialog-lQUx6B_M.cjs.map} +1 -1
- package/dist/{span-payload-primitives-DL1Kr0cu.js → span-payload-primitives-CGamdu2t.js} +2 -2
- package/dist/{span-payload-primitives-DL1Kr0cu.js.map → span-payload-primitives-CGamdu2t.js.map} +1 -1
- package/dist/{span-payload-primitives-D0mhsndj.cjs → span-payload-primitives-SkL3U9hR.cjs} +2 -2
- package/dist/{span-payload-primitives-D0mhsndj.cjs.map → span-payload-primitives-SkL3U9hR.cjs.map} +1 -1
- package/dist/src/domains/feedback/utils/feedback-refetch-interval.d.ts +2 -2
- package/dist/src/domains/request-context/components/request-context-label.d.ts +1 -2
- package/dist/src/domains/scores/hooks/use-scorers.d.ts +1 -1
- package/dist/src/domains/scores/hooks/use-trace-span-scores.d.ts +1 -1
- package/dist/src/domains/traces/components/thread-trace/index.d.ts +1 -5
- package/dist/src/domains/traces/components/thread-trace/thread-trace-context.d.ts +0 -2
- package/dist/src/domains/traces/components/thread-trace/thread-trace-root.d.ts +3 -6
- package/dist/src/domains/traces/components/thread-trace/thread-trace-row-context.d.ts +0 -1
- package/dist/src/domains/traces/components/thread-view-by-trace.d.ts +7 -6
- package/dist/src/domains/traces/components/trace-thread-panel.d.ts +2 -4
- package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +3 -1
- package/dist/src/ds/components/Combobox/combobox-styles.d.ts +3 -4
- package/dist/src/ds/components/Combobox/combobox.d.ts +4 -2
- package/dist/src/ds/components/Comment/comment-composer.d.ts +2 -2
- package/dist/src/ds/components/DateTimePicker/time-picker.d.ts +2 -1
- package/dist/src/ds/components/Field/field-control-aria.d.ts +30 -0
- package/dist/src/ds/components/Field/field.d.ts +39 -0
- package/dist/src/ds/components/Field/field.stories.d.ts +12 -0
- package/dist/src/ds/components/Field/index.d.ts +2 -0
- package/dist/src/ds/components/Form/form.d.ts +7 -0
- package/dist/src/ds/components/Form/form.stories.d.ts +7 -0
- package/dist/src/ds/components/Form/index.d.ts +1 -0
- package/dist/src/ds/components/FormFieldBlocks/block/field-block.d.ts +1 -0
- package/dist/src/ds/components/FormFieldBlocks/block/field-error-id.d.ts +1 -5
- package/dist/src/ds/components/FormFieldBlocks/fields/search-field-block.d.ts +1 -0
- package/dist/src/ds/components/FormFieldBlocks/fields/select-field-block.d.ts +1 -0
- package/dist/src/ds/components/FormFieldBlocks/fields/text-field-block.d.ts +1 -0
- package/dist/src/ds/components/FormFieldBlocks/fields/textarea-field-block.d.ts +1 -0
- package/dist/src/ds/components/FormFieldBlocks/layout/field-blocks-layout.d.ts +1 -0
- package/dist/src/ds/components/Input/input.d.ts +3 -10
- package/dist/src/ds/components/InputGroup/input-group.d.ts +15 -25
- package/dist/src/ds/components/JSONSchemaForm/json-schema-form-field-description.d.ts +6 -3
- package/dist/src/ds/components/JSONSchemaForm/json-schema-form-field-name.d.ts +6 -3
- package/dist/src/ds/components/JSONSchemaForm/json-schema-form-field-type.d.ts +10 -3
- package/dist/src/ds/components/Label/label.d.ts +1 -0
- package/dist/src/ds/components/ListSearch/list-search.d.ts +2 -2
- package/dist/src/ds/components/SearchInput/index.d.ts +1 -0
- package/dist/src/ds/components/SearchInput/search-input.d.ts +12 -0
- package/dist/src/ds/components/SearchInput/search-input.stories.d.ts +8 -0
- package/dist/src/ds/components/Textarea/textarea.d.ts +3 -10
- package/dist/src/ds/components/ai/ask-user/ask-user.d.ts +2 -1
- package/dist/src/ds/new/settings/index.d.ts +1 -1
- package/dist/src/ds/new/settings/settings-row.d.ts +11 -3
- package/dist/src/ds/new/settings/settings-row.stories.d.ts +321 -0
- package/dist/src/ds/primitives/form-element.d.ts +6 -1
- package/dist/src/ds/primitives/textarea-control.d.ts +3 -0
- package/dist/src/lib/form/components/form.d.ts +1 -1
- package/dist/src/lib/keyboard/keyboard-dispatcher.d.ts +2 -0
- package/dist/src/lib/keyboard/use-keydown.d.ts +6 -0
- package/dist/style.css +50 -16
- package/dist/{switch-Swt75_Sb.cjs → switch-BlE5ReVZ.cjs} +3 -2
- package/dist/switch-BlE5ReVZ.cjs.map +1 -0
- package/dist/{switch-88fWFfVz.js → switch-MZ1oHrmp.js} +4 -3
- package/dist/switch-MZ1oHrmp.js.map +1 -0
- package/dist/{textarea-B6wvS_CQ.js → textarea-CxPNKg2q.js} +14 -22
- package/dist/textarea-CxPNKg2q.js.map +1 -0
- package/dist/{textarea-gUBUqpol.cjs → textarea-DNV5Gs9A.cjs} +13 -40
- package/dist/textarea-DNV5Gs9A.cjs.map +1 -0
- package/dist/{time-picker-BElZALzM.js → time-picker-DRSAkFuj.js} +18 -21
- package/dist/time-picker-DRSAkFuj.js.map +1 -0
- package/dist/{time-picker-_QJdolkZ.cjs → time-picker-KE48KlpH.cjs} +18 -21
- package/dist/time-picker-KE48KlpH.cjs.map +1 -0
- package/dist/{tool-call-arguments-CQYR65FB.cjs → tool-call-arguments-BemKsB9v.cjs} +2 -2
- package/dist/{tool-call-arguments-CQYR65FB.cjs.map → tool-call-arguments-BemKsB9v.cjs.map} +1 -1
- package/dist/{tool-call-arguments-B1MghuMZ.js → tool-call-arguments-CtUKj7IB.js} +2 -2
- package/dist/{tool-call-arguments-B1MghuMZ.js.map → tool-call-arguments-CtUKj7IB.js.map} +1 -1
- package/dist/{tool-card-rxo27sve.cjs → tool-card-D9nDQgpg.cjs} +2 -2
- package/dist/{tool-card-rxo27sve.cjs.map → tool-card-D9nDQgpg.cjs.map} +1 -1
- package/dist/{tool-card-C_K5PwrK.js → tool-card-tK9zedNb.js} +2 -2
- package/dist/{tool-card-C_K5PwrK.js.map → tool-card-tK9zedNb.js.map} +1 -1
- package/dist/{traces-data-list-BsAYYJ9t.cjs → traces-data-list-Dd8vMPQK.cjs} +4 -4
- package/dist/{traces-data-list-BsAYYJ9t.cjs.map → traces-data-list-Dd8vMPQK.cjs.map} +1 -1
- package/dist/{traces-data-list-CnNpGVRN.js → traces-data-list-Fvl8mlih.js} +4 -4
- package/dist/{traces-data-list-CnNpGVRN.js.map → traces-data-list-Fvl8mlih.js.map} +1 -1
- package/dist/{use-workflow-graph-runtime-CIs2HzoP.cjs → use-workflow-graph-runtime-BNAtEa06.cjs} +2 -2
- package/dist/{use-workflow-graph-runtime-CIs2HzoP.cjs.map → use-workflow-graph-runtime-BNAtEa06.cjs.map} +1 -1
- package/dist/{use-workflow-graph-runtime-CexS1ECI.js → use-workflow-graph-runtime-JQwLwNBD.js} +2 -2
- package/dist/{use-workflow-graph-runtime-CexS1ECI.js.map → use-workflow-graph-runtime-JQwLwNBD.js.map} +1 -1
- package/dist/{workflow-code-dialog-content-BM4ZnrUr.js → workflow-code-dialog-content-3AcgitHa.js} +2 -2
- package/dist/{workflow-code-dialog-content-BM4ZnrUr.js.map → workflow-code-dialog-content-3AcgitHa.js.map} +1 -1
- package/dist/{workflow-code-dialog-content-BFm2IWDl.cjs → workflow-code-dialog-content-DyoN3850.cjs} +2 -2
- package/dist/{workflow-code-dialog-content-BFm2IWDl.cjs.map → workflow-code-dialog-content-DyoN3850.cjs.map} +1 -1
- package/dist/{workflow-data-edge-view-BpGLV-at.js → workflow-data-edge-view-C4nbA2Fa.js} +2 -2
- package/dist/{workflow-data-edge-view-BpGLV-at.js.map → workflow-data-edge-view-C4nbA2Fa.js.map} +1 -1
- package/dist/{workflow-data-edge-view-7f8O6pVW.cjs → workflow-data-edge-view-aHAZkZOH.cjs} +2 -2
- package/dist/{workflow-data-edge-view-7f8O6pVW.cjs.map → workflow-data-edge-view-aHAZkZOH.cjs.map} +1 -1
- package/dist/{workflow-edge-data-button-C6eyWbcG.js → workflow-edge-data-button-2aIkzgev.js} +2 -2
- package/dist/{workflow-edge-data-button-C6eyWbcG.js.map → workflow-edge-data-button-2aIkzgev.js.map} +1 -1
- package/dist/{workflow-edge-data-button-BOVRo4xO.cjs → workflow-edge-data-button-BFNO-TRL.cjs} +2 -2
- package/dist/{workflow-edge-data-button-BOVRo4xO.cjs.map → workflow-edge-data-button-BFNO-TRL.cjs.map} +1 -1
- package/package.json +7 -7
- package/dist/ask-user-CXu4b7Jw.cjs.map +0 -1
- package/dist/ask-user-Dlz2346n.js.map +0 -1
- package/dist/checkbox-CI8JtZKS.cjs.map +0 -1
- package/dist/checkbox-CQedzgsi.js.map +0 -1
- package/dist/code-block-BzoMjjtf.cjs.map +0 -1
- package/dist/code-block-DY5KsTGY.js.map +0 -1
- package/dist/code-editor-28chVxHw.js.map +0 -1
- package/dist/code-editor-B_wPmKPf.cjs.map +0 -1
- package/dist/combobox-B15qTrWO.js.map +0 -1
- package/dist/combobox-DJ0c4o4S.cjs.map +0 -1
- package/dist/combobox-styles-C2MEEpaG.js.map +0 -1
- package/dist/combobox-styles-DLflBH-G.cjs.map +0 -1
- package/dist/custom-auto-form-field-Brfb-0Te.cjs.map +0 -1
- package/dist/custom-auto-form-field-yEMBGXu-.js.map +0 -1
- package/dist/data-code-section-DWBfkrmO.cjs.map +0 -1
- package/dist/data-code-section-It6myyvZ.js.map +0 -1
- package/dist/date-time-range-picker-BDylIIzt.js.map +0 -1
- package/dist/date-time-range-picker-UheN070q.cjs.map +0 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-load-more-sentinel.cjs.js +0 -12
- package/dist/domains/traces/components/thread-trace/thread-trace-load-more-sentinel.cjs.js.map +0 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-load-more-sentinel.d.ts +0 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-load-more-sentinel.es.js +0 -8
- package/dist/domains/traces/components/thread-trace/thread-trace-load-more-sentinel.es.js.map +0 -1
- package/dist/field-block--PeppIRb.js.map +0 -1
- package/dist/field-block-DtaPqBa3.cjs.map +0 -1
- package/dist/field-block-error-msg-CkhEN6nU.cjs +0 -26
- package/dist/field-block-error-msg-CkhEN6nU.cjs.map +0 -1
- package/dist/field-block-error-msg-LXwhKzIq.js +0 -24
- package/dist/field-block-error-msg-LXwhKzIq.js.map +0 -1
- package/dist/field-error-id-B3Z2Zu5y.cjs +0 -6
- package/dist/field-error-id-B3Z2Zu5y.cjs.map +0 -1
- package/dist/field-error-id-D3yg1nBh.js +0 -4
- package/dist/field-error-id-D3yg1nBh.js.map +0 -1
- package/dist/input-CHghVv3k.js.map +0 -1
- package/dist/input-bd223EJW.cjs.map +0 -1
- package/dist/input-group-0G9ZX_cM.js.map +0 -1
- package/dist/input-group-BRhBfeHC.cjs.map +0 -1
- package/dist/label-DfAhywj_.cjs +0 -39
- package/dist/label-DfAhywj_.cjs.map +0 -1
- package/dist/label-Dxsz0dFs.js +0 -18
- package/dist/label-Dxsz0dFs.js.map +0 -1
- package/dist/list-search-BzAIj0DB.cjs.map +0 -1
- package/dist/list-search-DI1DH7vU.js.map +0 -1
- package/dist/radio-group-BdEPWGzi.cjs.map +0 -1
- package/dist/radio-group-CFZXUXZ5.js.map +0 -1
- package/dist/search-field-block-BPJh5yuW.js +0 -125
- package/dist/search-field-block-BPJh5yuW.js.map +0 -1
- package/dist/search-field-block-DRa-ZNQj.cjs +0 -127
- package/dist/search-field-block-DRa-ZNQj.cjs.map +0 -1
- package/dist/segmented-control--I3IgW21.cjs.map +0 -1
- package/dist/segmented-control-BxeiypPR.js.map +0 -1
- package/dist/select-DBY9LQFQ.cjs.map +0 -1
- package/dist/select-DZeNf-kI.js.map +0 -1
- package/dist/select-field-block-C_x9wNpU.js +0 -59
- package/dist/select-field-block-C_x9wNpU.js.map +0 -1
- package/dist/select-field-block-D8AMzoQT.cjs +0 -61
- package/dist/select-field-block-D8AMzoQT.cjs.map +0 -1
- package/dist/settings-row-C1JZDdz_.js.map +0 -1
- package/dist/settings-row-C7YKfUgY.cjs.map +0 -1
- package/dist/src/domains/traces/components/thread-trace/thread-trace-load-more-sentinel.d.ts +0 -8
- package/dist/src/ds/components/FormFieldBlocks/block/field-block.stories.d.ts +0 -8
- package/dist/src/ds/components/FormFieldBlocks/fields/search-field-block.stories.d.ts +0 -15
- package/dist/src/ds/components/FormFieldBlocks/fields/select-field-block.stories.d.ts +0 -15
- package/dist/src/ds/components/FormFieldBlocks/fields/text-field-block.stories.d.ts +0 -16
- package/dist/src/ds/components/FormFieldBlocks/layout/field-blocks-layout.stories.d.ts +0 -6
- package/dist/src/ds/components/Label/label.stories.d.ts +0 -8
- package/dist/switch-88fWFfVz.js.map +0 -1
- package/dist/switch-Swt75_Sb.cjs.map +0 -1
- package/dist/text-field-block-DUntfMPu.cjs +0 -58
- package/dist/text-field-block-DUntfMPu.cjs.map +0 -1
- package/dist/text-field-block-DZaGiu5D.js +0 -56
- package/dist/text-field-block-DZaGiu5D.js.map +0 -1
- package/dist/textarea-B6wvS_CQ.js.map +0 -1
- package/dist/textarea-field-block-BscOSlvI.js +0 -52
- package/dist/textarea-field-block-BscOSlvI.js.map +0 -1
- package/dist/textarea-field-block-CKAhmLrz.cjs +0 -54
- package/dist/textarea-field-block-CKAhmLrz.cjs.map +0 -1
- package/dist/textarea-gUBUqpol.cjs.map +0 -1
- package/dist/time-picker-BElZALzM.js.map +0 -1
- package/dist/time-picker-_QJdolkZ.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimePicker.cjs.js","sources":["../../src/ds/components/DateTimePicker/date-time-picker.tsx"],"sourcesContent":["import { format, formatDate, isValid } from 'date-fns';\nimport { CalendarIcon, Check, X } from 'lucide-react';\nimport * as React from 'react';\nimport type { DayPickerSingleProps } from 'react-day-picker';\nimport { useDebouncedCallback } from 'use-debounce';\n\nimport { TextFieldBlock } from '../FormFieldBlocks/fields/text-field-block';\nimport { DatePicker } from './date-picker';\nimport { TimePicker } from './time-picker';\nimport { Button } from '@/ds/components/Button';\nimport type { ButtonProps } from '@/ds/components/Button';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { controlTriggerOpenStateFor } from '@/ds/primitives/control-size';\nimport { fieldTriggerStyle } from '@/ds/primitives/form-element';\nimport { cn } from '@/lib/utils';\n\ntype CommonProps = Omit<DayPickerSingleProps, 'mode' | 'selected' | 'onSelect'> & {\n value: Date | undefined | null;\n minValue?: Date | null;\n maxValue?: Date | null;\n defaultTimeStrValue?: string;\n onValueChange: (date: Date | undefined) => void;\n};\n\ntype DefaultTriggerLook = Pick<ButtonProps, 'variant' | 'size'>;\n\nexport type DateTimePickerProps =\n | (CommonProps & DefaultTriggerLook & { children?: never; className?: string; placeholder?: string })\n | (CommonProps & {\n children: React.ReactNode;\n className?: never;\n placeholder?: string;\n variant?: never;\n size?: never;\n });\n\nexport const DateTimePicker: React.FC<DateTimePickerProps> = ({\n value,\n minValue,\n maxValue,\n defaultTimeStrValue,\n onValueChange,\n children,\n className,\n placeholder,\n variant,\n size,\n ...props\n}) => {\n const [openPopover, setOpenPopover] = React.useState(false);\n\n return (\n <Popover open={openPopover} onOpenChange={setOpenPopover}>\n <PopoverTrigger asChild>\n {children ? (\n children\n ) : (\n <DefaultTrigger\n value={value}\n placeholder={placeholder}\n variant={variant}\n size={size}\n className={className}\n data-testid=\"datepicker-button\"\n />\n )}\n </PopoverTrigger>\n <PopoverContent\n className=\"backdrop-blur-4xl w-auto max-w-66 bg-muted p-0!\"\n align=\"start\"\n data-testid=\"datepicker-calendar\"\n >\n <DateTimePickerContent\n value={value}\n minValue={minValue}\n maxValue={maxValue}\n onValueChange={onValueChange}\n setOpenPopover={setOpenPopover}\n defaultTimeStrValue={defaultTimeStrValue}\n {...props}\n />\n </PopoverContent>\n </Popover>\n );\n};\n\nfunction getCompoundDate({ date, timeStr = '' }: { date: Date; timeStr?: string }): Date | null {\n if (!isValid(date)) {\n return null;\n }\n\n if (timeStr) {\n const dateStr = format(date, 'yyyy-MM-dd');\n const newDate = new Date(`${dateStr} ${timeStr}`);\n if (isValid(newDate)) {\n return newDate;\n }\n }\n\n return date;\n}\n\nexport const DateTimePickerContent = ({\n value,\n minValue,\n maxValue,\n onValueChange,\n setOpenPopover,\n placeholder,\n className,\n defaultTimeStrValue,\n ...props\n}: CommonProps & {\n setOpenPopover?: (open: boolean) => void;\n placeholder?: string;\n className?: string;\n}) => {\n const [localErrorMsg, setLocalErrorMsg] = React.useState<string | null>(null);\n const [dateInputValue, setDateInputValue] = React.useState<string>(\n value ? format(getCompoundDate({ date: value, timeStr: defaultTimeStrValue }) || '', 'PP p') : '',\n );\n const [timeStrValue, setTimeStrValue] = React.useState<string>(defaultTimeStrValue || '');\n const [selected, setSelected] = React.useState<Date | undefined>(value ? new Date(value) : undefined);\n\n const debouncedDateUpdate = useDebouncedCallback((date: Date) => {\n if (isValid(date)) {\n setSelected(date);\n onValueChange?.(date);\n setOpenPopover?.(false);\n }\n }, 500);\n\n const handleInputChange: React.ChangeEventHandler<HTMLInputElement> = e => {\n setDateInputValue(e.currentTarget.value);\n const date = new Date(e.currentTarget.value);\n debouncedDateUpdate(date);\n };\n\n const updateInputValue = (date: Date | string) => {\n if (isValid(date)) {\n if (maxValue && date > maxValue) {\n setLocalErrorMsg(`The selected date should be before ${format(maxValue, 'PP p')}`);\n setDateInputValue('');\n } else if (minValue && date < minValue) {\n setLocalErrorMsg(`The selected date should be after ${format(minValue, 'PP p')}`);\n setDateInputValue('');\n } else {\n setDateInputValue(format(date, 'PP p'));\n setLocalErrorMsg('');\n }\n } else {\n setDateInputValue('');\n setLocalErrorMsg('');\n }\n };\n\n const dateInputValueDate = new Date(dateInputValue);\n const dateInputValueIsValid = isValid(dateInputValueDate);\n const newValueDefined = dateInputValueIsValid && dateInputValueDate.getTime() !== value?.getTime();\n\n const handleDaySelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleMonthSelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleTimeStrChange = (val: string) => {\n setTimeStrValue(val);\n\n if (dateInputValueIsValid) {\n const newDate = getCompoundDate({ date: dateInputValueDate, timeStr: val });\n updateInputValue(newDate || '');\n }\n };\n\n const handleCancel = () => {\n setOpenPopover?.(false);\n };\n\n const handleApply = () => {\n if (isValid(dateInputValueDate)) {\n onValueChange(dateInputValueDate);\n }\n setOpenPopover?.(false);\n };\n\n const handleClear = () => {\n onValueChange(undefined);\n setSelected(undefined);\n setDateInputValue('');\n setTimeStrValue('');\n setOpenPopover?.(false);\n };\n\n return (\n <div\n aria-label=\"Choose date\"\n className={cn('relative flex flex-col', className)}\n onKeyDown={e => {\n e.stopPropagation();\n if (e.key === 'Escape') {\n setOpenPopover?.(false);\n }\n }}\n >\n <TextFieldBlock\n name=\"date-range\"\n type=\"text\"\n value={dateInputValue}\n onChange={handleInputChange}\n placeholder={placeholder}\n className=\"m-4 mb-0 w-auto!\"\n errorMsg={localErrorMsg}\n />\n\n <DatePicker\n mode=\"single\"\n month={selected}\n selected={selected}\n onMonthChange={handleMonthSelect}\n onSelect={handleDaySelect}\n {...props}\n />\n\n <TimePicker\n onValueChange={handleTimeStrChange}\n className=\"m-4 mt-0 w-auto\"\n defaultValue={value ? formatDate(new Date(value), 'hh:mm a') : defaultTimeStrValue}\n />\n\n <div className=\"m-4 mt-0 grid grid-cols-[1fr_2fr] gap-2\">\n {newValueDefined && (\n <Button icon={<X />} tabIndex={0} size=\"md\" onClick={handleClear} type=\"button\">\n Clear\n </Button>\n )}\n <Button\n icon={newValueDefined ? <Check /> : <X />}\n tabIndex={0}\n type=\"button\"\n size=\"md\"\n variant={newValueDefined ? 'primary' : 'default'}\n onClick={() => {\n dateInputValueIsValid ? handleApply() : handleCancel();\n }}\n >\n {newValueDefined ? `Apply` : `Cancel`}\n </Button>\n </div>\n </div>\n );\n};\n\ntype DefaultButtonProps = Pick<ButtonProps, 'variant' | 'size' | 'tooltip' | 'disabled'> & {\n className?: string;\n placeholder?: string;\n value: Date | undefined | null;\n};\n\nexport const DefaultTrigger = React.forwardRef<HTMLButtonElement, DefaultButtonProps>(\n ({ value, placeholder, variant = 'default', size, className, ...props }, ref) => {\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'justify-start',\n variant === 'default' && fieldTriggerStyle,\n controlTriggerOpenStateFor(variant),\n className,\n )}\n icon={<CalendarIcon />}\n {...props}\n >\n {value ? (\n <span className=\"text-foreground\">{format(value, 'PP p')}</span>\n ) : (\n <span className=\"text-muted-foreground\">{placeholder ?? 'Pick a date'}</span>\n )}\n </Button>\n );\n },\n);\n"],"names":["React","jsxs","Popover","jsx","PopoverTrigger","PopoverContent","isValid","format","useDebouncedCallback","cn","TextFieldBlock","DatePicker","TimePicker","formatDate","Button","X","Check","fieldTriggerStyle","controlTriggerOpenStateFor","CalendarIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCO,MAAM,iBAAgD,CAAC;AAAA,EAC5D,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,mBAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,gBAAA,CAAM,SAAS,KAAK,CAAA;AAE1D,EAAA,uBACEC,eAAA,CAACC,eAAA,EAAA,EAAQ,IAAA,EAAM,WAAA,EAAa,cAAc,cAAA,EACxC,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAACC,sBAAA,EAAA,EAAe,OAAA,EAAO,IAAA,EACpB,QAAA,EAAA,QAAA,GACC,QAAA,mBAEAD,cAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,KAAA;AAAA,QACA,WAAA;AAAA,QACA,OAAA;AAAA,QACA,IAAA;AAAA,QACA,SAAA;AAAA,QACA,aAAA,EAAY;AAAA;AAAA,KACd,EAEJ,CAAA;AAAA,oBACAA,cAAA;AAAA,MAACE,sBAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,iDAAA;AAAA,QACV,KAAA,EAAM,OAAA;AAAA,QACN,aAAA,EAAY,qBAAA;AAAA,QAEZ,QAAA,kBAAAF,cAAA;AAAA,UAAC,qBAAA;AAAA,UAAA;AAAA,YACC,KAAA;AAAA,YACA,QAAA;AAAA,YACA,QAAA;AAAA,YACA,aAAA;AAAA,YACA,cAAA;AAAA,YACA,mBAAA;AAAA,YACC,GAAG;AAAA;AAAA;AACN;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,eAAA,CAAgB,EAAE,IAAA,EAAM,OAAA,GAAU,IAAG,EAAkD;AAC9F,EAAA,IAAI,CAACG,eAAA,CAAQ,IAAI,CAAA,EAAG;AAClB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,MAAM,OAAA,GAAUC,cAAA,CAAO,IAAA,EAAM,YAAY,CAAA;AACzC,IAAA,MAAM,0BAAU,IAAI,IAAA,CAAK,GAAG,OAAO,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE,CAAA;AAChD,IAAA,IAAID,eAAA,CAAQ,OAAO,CAAA,EAAG;AACpB,MAAA,OAAO,OAAA;AAAA,IACT;AAAA,EACF;AAEA,EAAA,OAAO,IAAA;AACT;AAEO,MAAM,wBAAwB,CAAC;AAAA,EACpC,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,mBAAA;AAAA,EACA,GAAG;AACL,CAAA,KAIM;AACJ,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIN,gBAAA,CAAM,SAAwB,IAAI,CAAA;AAC5E,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAIA,gBAAA,CAAM,QAAA;AAAA,IAChD,KAAA,GAAQO,cAAA,CAAO,eAAA,CAAgB,EAAE,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,mBAAA,EAAqB,CAAA,IAAK,EAAA,EAAI,MAAM,CAAA,GAAI;AAAA,GACjG;AACA,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,IAAIP,gBAAA,CAAM,QAAA,CAAiB,uBAAuB,EAAE,CAAA;AACxF,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,gBAAA,CAAM,QAAA,CAA2B,KAAA,GAAQ,IAAI,IAAA,CAAK,KAAK,CAAA,GAAI,MAAS,CAAA;AAEpG,EAAA,MAAM,mBAAA,GAAsBQ,gCAAA,CAAqB,CAAC,IAAA,KAAe;AAC/D,IAAA,IAAIF,eAAA,CAAQ,IAAI,CAAA,EAAG;AACjB,MAAA,WAAA,CAAY,IAAI,CAAA;AAChB,MAAA,aAAA,GAAgB,IAAI,CAAA;AACpB,MAAA,cAAA,GAAiB,KAAK,CAAA;AAAA,IACxB;AAAA,EACF,GAAG,GAAG,CAAA;AAEN,EAAA,MAAM,oBAAgE,CAAA,CAAA,KAAK;AACzE,IAAA,iBAAA,CAAkB,CAAA,CAAE,cAAc,KAAK,CAAA;AACvC,IAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,CAAA,CAAE,cAAc,KAAK,CAAA;AAC3C,IAAA,mBAAA,CAAoB,IAAI,CAAA;AAAA,EAC1B,CAAA;AAEA,EAAA,MAAM,gBAAA,GAAmB,CAAC,IAAA,KAAwB;AAChD,IAAA,IAAIA,eAAA,CAAQ,IAAI,CAAA,EAAG;AACjB,MAAA,IAAI,QAAA,IAAY,OAAO,QAAA,EAAU;AAC/B,QAAA,gBAAA,CAAiB,CAAA,mCAAA,EAAsCC,cAAA,CAAO,QAAA,EAAU,MAAM,CAAC,CAAA,CAAE,CAAA;AACjF,QAAA,iBAAA,CAAkB,EAAE,CAAA;AAAA,MACtB,CAAA,MAAA,IAAW,QAAA,IAAY,IAAA,GAAO,QAAA,EAAU;AACtC,QAAA,gBAAA,CAAiB,CAAA,kCAAA,EAAqCA,cAAA,CAAO,QAAA,EAAU,MAAM,CAAC,CAAA,CAAE,CAAA;AAChF,QAAA,iBAAA,CAAkB,EAAE,CAAA;AAAA,MACtB,CAAA,MAAO;AACL,QAAA,iBAAA,CAAkBA,cAAA,CAAO,IAAA,EAAM,MAAM,CAAC,CAAA;AACtC,QAAA,gBAAA,CAAiB,EAAE,CAAA;AAAA,MACrB;AAAA,IACF,CAAA,MAAO;AACL,MAAA,iBAAA,CAAkB,EAAE,CAAA;AACpB,MAAA,gBAAA,CAAiB,EAAE,CAAA;AAAA,IACrB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,kBAAA,GAAqB,IAAI,IAAA,CAAK,cAAc,CAAA;AAClD,EAAA,MAAM,qBAAA,GAAwBD,gBAAQ,kBAAkB,CAAA;AACxD,EAAA,MAAM,kBAAkB,qBAAA,IAAyB,kBAAA,CAAmB,OAAA,EAAQ,KAAM,OAAO,OAAA,EAAQ;AAEjG,EAAA,MAAM,eAAA,GAAkB,CAAC,IAAA,KAA2B;AAClD,IAAA,WAAA,CAAY,IAAI,CAAA;AAChB,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,MAAM,UAAU,eAAA,CAAgB,EAAE,IAAA,EAAM,OAAA,EAAS,cAAc,CAAA;AAC/D,MAAA,gBAAA,CAAiB,WAAW,EAAE,CAAA;AAAA,IAChC,CAAA,MAAO;AACL,MAAA,gBAAA,CAAiB,EAAE,CAAA;AAAA,IACrB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,iBAAA,GAAoB,CAAC,IAAA,KAA2B;AACpD,IAAA,WAAA,CAAY,IAAI,CAAA;AAChB,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,MAAM,UAAU,eAAA,CAAgB,EAAE,IAAA,EAAM,OAAA,EAAS,cAAc,CAAA;AAC/D,MAAA,gBAAA,CAAiB,WAAW,EAAE,CAAA;AAAA,IAChC,CAAA,MAAO;AACL,MAAA,gBAAA,CAAiB,EAAE,CAAA;AAAA,IACrB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,mBAAA,GAAsB,CAAC,GAAA,KAAgB;AAC3C,IAAA,eAAA,CAAgB,GAAG,CAAA;AAEnB,IAAA,IAAI,qBAAA,EAAuB;AACzB,MAAA,MAAM,UAAU,eAAA,CAAgB,EAAE,MAAM,kBAAA,EAAoB,OAAA,EAAS,KAAK,CAAA;AAC1E,MAAA,gBAAA,CAAiB,WAAW,EAAE,CAAA;AAAA,IAChC;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,eAAe,MAAM;AACzB,IAAA,cAAA,GAAiB,KAAK,CAAA;AAAA,EACxB,CAAA;AAEA,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,IAAIA,eAAA,CAAQ,kBAAkB,CAAA,EAAG;AAC/B,MAAA,aAAA,CAAc,kBAAkB,CAAA;AAAA,IAClC;AACA,IAAA,cAAA,GAAiB,KAAK,CAAA;AAAA,EACxB,CAAA;AAEA,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,aAAA,CAAc,MAAS,CAAA;AACvB,IAAA,WAAA,CAAY,MAAS,CAAA;AACrB,IAAA,iBAAA,CAAkB,EAAE,CAAA;AACpB,IAAA,eAAA,CAAgB,EAAE,CAAA;AAClB,IAAA,cAAA,GAAiB,KAAK,CAAA;AAAA,EACxB,CAAA;AAEA,EAAA,uBACEL,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAW,aAAA;AAAA,MACX,SAAA,EAAWQ,WAAA,CAAG,wBAAA,EAA0B,SAAS,CAAA;AAAA,MACjD,WAAW,CAAA,CAAA,KAAK;AACd,QAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,QAAA,IAAI,CAAA,CAAE,QAAQ,QAAA,EAAU;AACtB,UAAA,cAAA,GAAiB,KAAK,CAAA;AAAA,QACxB;AAAA,MACF,CAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAN,cAAA;AAAA,UAACO,6BAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,YAAA;AAAA,YACL,IAAA,EAAK,MAAA;AAAA,YACL,KAAA,EAAO,cAAA;AAAA,YACP,QAAA,EAAU,iBAAA;AAAA,YACV,WAAA;AAAA,YACA,SAAA,EAAU,kBAAA;AAAA,YACV,QAAA,EAAU;AAAA;AAAA,SACZ;AAAA,wBAEAP,cAAA;AAAA,UAACQ,qBAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,KAAA,EAAO,QAAA;AAAA,YACP,QAAA;AAAA,YACA,aAAA,EAAe,iBAAA;AAAA,YACf,QAAA,EAAU,eAAA;AAAA,YACT,GAAG;AAAA;AAAA,SACN;AAAA,wBAEAR,cAAA;AAAA,UAACS,qBAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAe,mBAAA;AAAA,YACf,SAAA,EAAU,iBAAA;AAAA,YACV,YAAA,EAAc,QAAQC,kBAAA,CAAW,IAAI,KAAK,KAAK,CAAA,EAAG,SAAS,CAAA,GAAI;AAAA;AAAA,SACjE;AAAA,wBAEAZ,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yCAAA,EACZ,QAAA,EAAA;AAAA,UAAA,eAAA,oBACCE,cAAA,CAACW,aAAA,EAAA,EAAO,IAAA,kBAAMX,cAAA,CAACY,iBAAE,CAAA,EAAI,QAAA,EAAU,CAAA,EAAG,IAAA,EAAK,IAAA,EAAK,OAAA,EAAS,WAAA,EAAa,IAAA,EAAK,UAAS,QAAA,EAAA,OAAA,EAEhF,CAAA;AAAA,0BAEFZ,cAAA;AAAA,YAACW,aAAA;AAAA,YAAA;AAAA,cACC,MAAM,eAAA,mBAAkBX,cAAA,CAACa,iBAAA,EAAA,EAAM,CAAA,kCAAMD,aAAA,EAAA,EAAE,CAAA;AAAA,cACvC,QAAA,EAAU,CAAA;AAAA,cACV,IAAA,EAAK,QAAA;AAAA,cACL,IAAA,EAAK,IAAA;AAAA,cACL,OAAA,EAAS,kBAAkB,SAAA,GAAY,SAAA;AAAA,cACvC,SAAS,MAAM;AACb,gBAAA,qBAAA,GAAwB,WAAA,KAAgB,YAAA,EAAa;AAAA,cACvD,CAAA;AAAA,cAEC,4BAAkB,CAAA,KAAA,CAAA,GAAU,CAAA,MAAA;AAAA;AAAA;AAC/B,SAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;AAQO,MAAM,iBAAiBf,gBAAA,CAAM,UAAA;AAAA,EAClC,CAAC,EAAE,KAAA,EAAO,WAAA,EAAa,OAAA,GAAU,SAAA,EAAW,IAAA,EAAM,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC/E,IAAA,uBACEG,cAAA;AAAA,MAACW,aAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,OAAA;AAAA,QACA,IAAA;AAAA,QACA,SAAA,EAAWL,WAAA;AAAA,UACT,eAAA;AAAA,UACA,YAAY,SAAA,IAAaQ,wCAAA;AAAA,UACzBC,kDAA2B,OAAO,CAAA;AAAA,UAClC;AAAA,SACF;AAAA,QACA,IAAA,iCAAOC,wBAAA,EAAA,EAAa,CAAA;AAAA,QACnB,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA,KAAA,mBACChB,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAmB,QAAA,EAAAI,cAAA,CAAO,KAAA,EAAO,MAAM,CAAA,EAAE,oBAEzDJ,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAyB,yBAAe,aAAA,EAAc;AAAA;AAAA,KAE1E;AAAA,EAEJ;AACF;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"DateTimePicker.cjs.js","sources":["../../src/ds/components/DateTimePicker/date-time-picker.tsx"],"sourcesContent":["import { format, formatDate, isValid } from 'date-fns';\nimport { CalendarIcon, Check, X } from 'lucide-react';\nimport * as React from 'react';\nimport type { DayPickerSingleProps } from 'react-day-picker';\nimport { useDebouncedCallback } from 'use-debounce';\n\nimport { DatePicker } from './date-picker';\nimport { TimePicker } from './time-picker';\nimport { Button } from '@/ds/components/Button';\nimport type { ButtonProps } from '@/ds/components/Button';\nimport { Field, FieldError, FieldLabel } from '@/ds/components/Field';\nimport { Input } from '@/ds/components/Input';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { controlTriggerOpenStateFor } from '@/ds/primitives/control-size';\nimport { fieldTriggerStyle } from '@/ds/primitives/form-element';\nimport { cn } from '@/lib/utils';\n\ntype CommonProps = Omit<DayPickerSingleProps, 'mode' | 'selected' | 'onSelect'> & {\n value: Date | undefined | null;\n minValue?: Date | null;\n maxValue?: Date | null;\n defaultTimeStrValue?: string;\n onValueChange: (date: Date | undefined) => void;\n};\n\ntype DefaultTriggerLook = Pick<ButtonProps, 'variant' | 'size'>;\n\nexport type DateTimePickerProps =\n | (CommonProps & DefaultTriggerLook & { children?: never; className?: string; placeholder?: string })\n | (CommonProps & {\n children: React.ReactNode;\n className?: never;\n placeholder?: string;\n variant?: never;\n size?: never;\n });\n\nexport const DateTimePicker: React.FC<DateTimePickerProps> = ({\n value,\n minValue,\n maxValue,\n defaultTimeStrValue,\n onValueChange,\n children,\n className,\n placeholder,\n variant,\n size,\n ...props\n}) => {\n const [openPopover, setOpenPopover] = React.useState(false);\n\n return (\n <Popover open={openPopover} onOpenChange={setOpenPopover}>\n <PopoverTrigger asChild>\n {children ? (\n children\n ) : (\n <DefaultTrigger\n value={value}\n placeholder={placeholder}\n variant={variant}\n size={size}\n className={className}\n data-testid=\"datepicker-button\"\n />\n )}\n </PopoverTrigger>\n <PopoverContent\n className=\"backdrop-blur-4xl w-auto max-w-66 bg-muted p-0!\"\n align=\"start\"\n data-testid=\"datepicker-calendar\"\n >\n <DateTimePickerContent\n value={value}\n minValue={minValue}\n maxValue={maxValue}\n onValueChange={onValueChange}\n setOpenPopover={setOpenPopover}\n defaultTimeStrValue={defaultTimeStrValue}\n {...props}\n />\n </PopoverContent>\n </Popover>\n );\n};\n\nfunction getCompoundDate({ date, timeStr = '' }: { date: Date; timeStr?: string }): Date | null {\n if (!isValid(date)) {\n return null;\n }\n\n if (timeStr) {\n const dateStr = format(date, 'yyyy-MM-dd');\n const newDate = new Date(`${dateStr} ${timeStr}`);\n if (isValid(newDate)) {\n return newDate;\n }\n }\n\n return date;\n}\n\nexport const DateTimePickerContent = ({\n value,\n minValue,\n maxValue,\n onValueChange,\n setOpenPopover,\n placeholder,\n className,\n defaultTimeStrValue,\n ...props\n}: CommonProps & {\n setOpenPopover?: (open: boolean) => void;\n placeholder?: string;\n className?: string;\n}) => {\n const [localErrorMsg, setLocalErrorMsg] = React.useState<string | null>(null);\n const [dateInputValue, setDateInputValue] = React.useState<string>(\n value ? format(getCompoundDate({ date: value, timeStr: defaultTimeStrValue }) || '', 'PP p') : '',\n );\n const [timeStrValue, setTimeStrValue] = React.useState<string>(defaultTimeStrValue || '');\n const [selected, setSelected] = React.useState<Date | undefined>(value ? new Date(value) : undefined);\n\n const debouncedDateUpdate = useDebouncedCallback((date: Date) => {\n if (isValid(date)) {\n setSelected(date);\n onValueChange?.(date);\n setOpenPopover?.(false);\n }\n }, 500);\n\n const handleInputChange: React.ChangeEventHandler<HTMLInputElement> = e => {\n setDateInputValue(e.currentTarget.value);\n const date = new Date(e.currentTarget.value);\n debouncedDateUpdate(date);\n };\n\n const updateInputValue = (date: Date | string) => {\n if (isValid(date)) {\n if (maxValue && date > maxValue) {\n setLocalErrorMsg(`The selected date should be before ${format(maxValue, 'PP p')}`);\n setDateInputValue('');\n } else if (minValue && date < minValue) {\n setLocalErrorMsg(`The selected date should be after ${format(minValue, 'PP p')}`);\n setDateInputValue('');\n } else {\n setDateInputValue(format(date, 'PP p'));\n setLocalErrorMsg('');\n }\n } else {\n setDateInputValue('');\n setLocalErrorMsg('');\n }\n };\n\n const dateInputValueDate = new Date(dateInputValue);\n const dateInputValueIsValid = isValid(dateInputValueDate);\n const newValueDefined = dateInputValueIsValid && dateInputValueDate.getTime() !== value?.getTime();\n\n const handleDaySelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleMonthSelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleTimeStrChange = (val: string) => {\n setTimeStrValue(val);\n\n if (dateInputValueIsValid) {\n const newDate = getCompoundDate({ date: dateInputValueDate, timeStr: val });\n updateInputValue(newDate || '');\n }\n };\n\n const handleCancel = () => {\n setOpenPopover?.(false);\n };\n\n const handleApply = () => {\n if (isValid(dateInputValueDate)) {\n onValueChange(dateInputValueDate);\n }\n setOpenPopover?.(false);\n };\n\n const handleClear = () => {\n onValueChange(undefined);\n setSelected(undefined);\n setDateInputValue('');\n setTimeStrValue('');\n setOpenPopover?.(false);\n };\n\n return (\n <div\n aria-label=\"Choose date\"\n className={cn('relative flex flex-col', className)}\n onKeyDown={e => {\n e.stopPropagation();\n if (e.key === 'Escape') {\n setOpenPopover?.(false);\n }\n }}\n >\n <Field invalid={Boolean(localErrorMsg)} className=\"m-4 mb-0 w-auto!\">\n <FieldLabel className=\"sr-only\">Date</FieldLabel>\n <Input type=\"text\" value={dateInputValue} onChange={handleInputChange} placeholder={placeholder} />\n <FieldError>{localErrorMsg}</FieldError>\n </Field>\n\n <DatePicker\n mode=\"single\"\n month={selected}\n selected={selected}\n onMonthChange={handleMonthSelect}\n onSelect={handleDaySelect}\n {...props}\n />\n\n <TimePicker\n onValueChange={handleTimeStrChange}\n className=\"m-4 mt-0 w-auto\"\n defaultValue={value ? formatDate(new Date(value), 'hh:mm a') : defaultTimeStrValue}\n />\n\n <div className=\"m-4 mt-0 grid grid-cols-[1fr_2fr] gap-2\">\n {newValueDefined && (\n <Button icon={<X />} tabIndex={0} size=\"md\" onClick={handleClear} type=\"button\">\n Clear\n </Button>\n )}\n <Button\n icon={newValueDefined ? <Check /> : <X />}\n tabIndex={0}\n type=\"button\"\n size=\"md\"\n variant={newValueDefined ? 'primary' : 'default'}\n onClick={() => {\n dateInputValueIsValid ? handleApply() : handleCancel();\n }}\n >\n {newValueDefined ? `Apply` : `Cancel`}\n </Button>\n </div>\n </div>\n );\n};\n\ntype DefaultButtonProps = Pick<ButtonProps, 'variant' | 'size' | 'tooltip' | 'disabled'> & {\n className?: string;\n placeholder?: string;\n value: Date | undefined | null;\n};\n\nexport const DefaultTrigger = React.forwardRef<HTMLButtonElement, DefaultButtonProps>(\n ({ value, placeholder, variant = 'default', size, className, ...props }, ref) => {\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'justify-start',\n variant === 'default' && fieldTriggerStyle,\n controlTriggerOpenStateFor(variant),\n className,\n )}\n icon={<CalendarIcon />}\n {...props}\n >\n {value ? (\n <span className=\"text-foreground\">{format(value, 'PP p')}</span>\n ) : (\n <span className=\"text-muted-foreground\">{placeholder ?? 'Pick a date'}</span>\n )}\n </Button>\n );\n },\n);\n"],"names":["React","jsxs","Popover","jsx","PopoverTrigger","PopoverContent","isValid","format","useDebouncedCallback","cn","Field","FieldLabel","Input","FieldError","DatePicker","TimePicker","formatDate","Button","X","Check","fieldTriggerStyle","controlTriggerOpenStateFor","CalendarIcon"],"mappings":"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"}
|
|
@@ -3,10 +3,12 @@ import { format, isValid, formatDate } from 'date-fns';
|
|
|
3
3
|
import { X, Check, CalendarIcon } from 'lucide-react';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { useDebouncedCallback } from 'use-debounce';
|
|
6
|
-
import { T as TextFieldBlock } from '../text-field-block-DZaGiu5D.js';
|
|
7
6
|
import { D as DatePicker } from '../date-picker-DgWTsiJ7.js';
|
|
8
|
-
import { T as TimePicker } from '../time-picker-
|
|
7
|
+
import { T as TimePicker } from '../time-picker-DRSAkFuj.js';
|
|
9
8
|
import { B as Button } from '../Button-D43ghVKt.js';
|
|
9
|
+
import { F as Field, e as FieldLabel, c as FieldError } from '../field-BtvEQ68O.js';
|
|
10
|
+
import '../field-control-aria-DB6y41tQ.js';
|
|
11
|
+
import { I as Input } from '../input-D5_B67_r.js';
|
|
10
12
|
import { P as Popover, b as PopoverTrigger, a as PopoverContent } from '../popover-Dg70UGyn.js';
|
|
11
13
|
import { controlTriggerOpenStateFor } from '../primitives/control-size.es.js';
|
|
12
14
|
import { fieldTriggerStyle } from '../primitives/form-element.es.js';
|
|
@@ -175,18 +177,11 @@ const DateTimePickerContent = ({
|
|
|
175
177
|
}
|
|
176
178
|
},
|
|
177
179
|
children: [
|
|
178
|
-
/* @__PURE__ */
|
|
179
|
-
|
|
180
|
-
{
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
value: dateInputValue,
|
|
184
|
-
onChange: handleInputChange,
|
|
185
|
-
placeholder,
|
|
186
|
-
className: "m-4 mb-0 w-auto!",
|
|
187
|
-
errorMsg: localErrorMsg
|
|
188
|
-
}
|
|
189
|
-
),
|
|
180
|
+
/* @__PURE__ */ jsxs(Field, { invalid: Boolean(localErrorMsg), className: "m-4 mb-0 w-auto!", children: [
|
|
181
|
+
/* @__PURE__ */ jsx(FieldLabel, { className: "sr-only", children: "Date" }),
|
|
182
|
+
/* @__PURE__ */ jsx(Input, { type: "text", value: dateInputValue, onChange: handleInputChange, placeholder }),
|
|
183
|
+
/* @__PURE__ */ jsx(FieldError, { children: localErrorMsg })
|
|
184
|
+
] }),
|
|
190
185
|
/* @__PURE__ */ jsx(
|
|
191
186
|
DatePicker,
|
|
192
187
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimePicker.es.js","sources":["../../src/ds/components/DateTimePicker/date-time-picker.tsx"],"sourcesContent":["import { format, formatDate, isValid } from 'date-fns';\nimport { CalendarIcon, Check, X } from 'lucide-react';\nimport * as React from 'react';\nimport type { DayPickerSingleProps } from 'react-day-picker';\nimport { useDebouncedCallback } from 'use-debounce';\n\nimport { TextFieldBlock } from '../FormFieldBlocks/fields/text-field-block';\nimport { DatePicker } from './date-picker';\nimport { TimePicker } from './time-picker';\nimport { Button } from '@/ds/components/Button';\nimport type { ButtonProps } from '@/ds/components/Button';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { controlTriggerOpenStateFor } from '@/ds/primitives/control-size';\nimport { fieldTriggerStyle } from '@/ds/primitives/form-element';\nimport { cn } from '@/lib/utils';\n\ntype CommonProps = Omit<DayPickerSingleProps, 'mode' | 'selected' | 'onSelect'> & {\n value: Date | undefined | null;\n minValue?: Date | null;\n maxValue?: Date | null;\n defaultTimeStrValue?: string;\n onValueChange: (date: Date | undefined) => void;\n};\n\ntype DefaultTriggerLook = Pick<ButtonProps, 'variant' | 'size'>;\n\nexport type DateTimePickerProps =\n | (CommonProps & DefaultTriggerLook & { children?: never; className?: string; placeholder?: string })\n | (CommonProps & {\n children: React.ReactNode;\n className?: never;\n placeholder?: string;\n variant?: never;\n size?: never;\n });\n\nexport const DateTimePicker: React.FC<DateTimePickerProps> = ({\n value,\n minValue,\n maxValue,\n defaultTimeStrValue,\n onValueChange,\n children,\n className,\n placeholder,\n variant,\n size,\n ...props\n}) => {\n const [openPopover, setOpenPopover] = React.useState(false);\n\n return (\n <Popover open={openPopover} onOpenChange={setOpenPopover}>\n <PopoverTrigger asChild>\n {children ? (\n children\n ) : (\n <DefaultTrigger\n value={value}\n placeholder={placeholder}\n variant={variant}\n size={size}\n className={className}\n data-testid=\"datepicker-button\"\n />\n )}\n </PopoverTrigger>\n <PopoverContent\n className=\"backdrop-blur-4xl w-auto max-w-66 bg-muted p-0!\"\n align=\"start\"\n data-testid=\"datepicker-calendar\"\n >\n <DateTimePickerContent\n value={value}\n minValue={minValue}\n maxValue={maxValue}\n onValueChange={onValueChange}\n setOpenPopover={setOpenPopover}\n defaultTimeStrValue={defaultTimeStrValue}\n {...props}\n />\n </PopoverContent>\n </Popover>\n );\n};\n\nfunction getCompoundDate({ date, timeStr = '' }: { date: Date; timeStr?: string }): Date | null {\n if (!isValid(date)) {\n return null;\n }\n\n if (timeStr) {\n const dateStr = format(date, 'yyyy-MM-dd');\n const newDate = new Date(`${dateStr} ${timeStr}`);\n if (isValid(newDate)) {\n return newDate;\n }\n }\n\n return date;\n}\n\nexport const DateTimePickerContent = ({\n value,\n minValue,\n maxValue,\n onValueChange,\n setOpenPopover,\n placeholder,\n className,\n defaultTimeStrValue,\n ...props\n}: CommonProps & {\n setOpenPopover?: (open: boolean) => void;\n placeholder?: string;\n className?: string;\n}) => {\n const [localErrorMsg, setLocalErrorMsg] = React.useState<string | null>(null);\n const [dateInputValue, setDateInputValue] = React.useState<string>(\n value ? format(getCompoundDate({ date: value, timeStr: defaultTimeStrValue }) || '', 'PP p') : '',\n );\n const [timeStrValue, setTimeStrValue] = React.useState<string>(defaultTimeStrValue || '');\n const [selected, setSelected] = React.useState<Date | undefined>(value ? new Date(value) : undefined);\n\n const debouncedDateUpdate = useDebouncedCallback((date: Date) => {\n if (isValid(date)) {\n setSelected(date);\n onValueChange?.(date);\n setOpenPopover?.(false);\n }\n }, 500);\n\n const handleInputChange: React.ChangeEventHandler<HTMLInputElement> = e => {\n setDateInputValue(e.currentTarget.value);\n const date = new Date(e.currentTarget.value);\n debouncedDateUpdate(date);\n };\n\n const updateInputValue = (date: Date | string) => {\n if (isValid(date)) {\n if (maxValue && date > maxValue) {\n setLocalErrorMsg(`The selected date should be before ${format(maxValue, 'PP p')}`);\n setDateInputValue('');\n } else if (minValue && date < minValue) {\n setLocalErrorMsg(`The selected date should be after ${format(minValue, 'PP p')}`);\n setDateInputValue('');\n } else {\n setDateInputValue(format(date, 'PP p'));\n setLocalErrorMsg('');\n }\n } else {\n setDateInputValue('');\n setLocalErrorMsg('');\n }\n };\n\n const dateInputValueDate = new Date(dateInputValue);\n const dateInputValueIsValid = isValid(dateInputValueDate);\n const newValueDefined = dateInputValueIsValid && dateInputValueDate.getTime() !== value?.getTime();\n\n const handleDaySelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleMonthSelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleTimeStrChange = (val: string) => {\n setTimeStrValue(val);\n\n if (dateInputValueIsValid) {\n const newDate = getCompoundDate({ date: dateInputValueDate, timeStr: val });\n updateInputValue(newDate || '');\n }\n };\n\n const handleCancel = () => {\n setOpenPopover?.(false);\n };\n\n const handleApply = () => {\n if (isValid(dateInputValueDate)) {\n onValueChange(dateInputValueDate);\n }\n setOpenPopover?.(false);\n };\n\n const handleClear = () => {\n onValueChange(undefined);\n setSelected(undefined);\n setDateInputValue('');\n setTimeStrValue('');\n setOpenPopover?.(false);\n };\n\n return (\n <div\n aria-label=\"Choose date\"\n className={cn('relative flex flex-col', className)}\n onKeyDown={e => {\n e.stopPropagation();\n if (e.key === 'Escape') {\n setOpenPopover?.(false);\n }\n }}\n >\n <TextFieldBlock\n name=\"date-range\"\n type=\"text\"\n value={dateInputValue}\n onChange={handleInputChange}\n placeholder={placeholder}\n className=\"m-4 mb-0 w-auto!\"\n errorMsg={localErrorMsg}\n />\n\n <DatePicker\n mode=\"single\"\n month={selected}\n selected={selected}\n onMonthChange={handleMonthSelect}\n onSelect={handleDaySelect}\n {...props}\n />\n\n <TimePicker\n onValueChange={handleTimeStrChange}\n className=\"m-4 mt-0 w-auto\"\n defaultValue={value ? formatDate(new Date(value), 'hh:mm a') : defaultTimeStrValue}\n />\n\n <div className=\"m-4 mt-0 grid grid-cols-[1fr_2fr] gap-2\">\n {newValueDefined && (\n <Button icon={<X />} tabIndex={0} size=\"md\" onClick={handleClear} type=\"button\">\n Clear\n </Button>\n )}\n <Button\n icon={newValueDefined ? <Check /> : <X />}\n tabIndex={0}\n type=\"button\"\n size=\"md\"\n variant={newValueDefined ? 'primary' : 'default'}\n onClick={() => {\n dateInputValueIsValid ? handleApply() : handleCancel();\n }}\n >\n {newValueDefined ? `Apply` : `Cancel`}\n </Button>\n </div>\n </div>\n );\n};\n\ntype DefaultButtonProps = Pick<ButtonProps, 'variant' | 'size' | 'tooltip' | 'disabled'> & {\n className?: string;\n placeholder?: string;\n value: Date | undefined | null;\n};\n\nexport const DefaultTrigger = React.forwardRef<HTMLButtonElement, DefaultButtonProps>(\n ({ value, placeholder, variant = 'default', size, className, ...props }, ref) => {\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'justify-start',\n variant === 'default' && fieldTriggerStyle,\n controlTriggerOpenStateFor(variant),\n className,\n )}\n icon={<CalendarIcon />}\n {...props}\n >\n {value ? (\n <span className=\"text-foreground\">{format(value, 'PP p')}</span>\n ) : (\n <span className=\"text-muted-foreground\">{placeholder ?? 'Pick a date'}</span>\n )}\n </Button>\n );\n },\n);\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateTimePicker.es.js","sources":["../../src/ds/components/DateTimePicker/date-time-picker.tsx"],"sourcesContent":["import { format, formatDate, isValid } from 'date-fns';\nimport { CalendarIcon, Check, X } from 'lucide-react';\nimport * as React from 'react';\nimport type { DayPickerSingleProps } from 'react-day-picker';\nimport { useDebouncedCallback } from 'use-debounce';\n\nimport { DatePicker } from './date-picker';\nimport { TimePicker } from './time-picker';\nimport { Button } from '@/ds/components/Button';\nimport type { ButtonProps } from '@/ds/components/Button';\nimport { Field, FieldError, FieldLabel } from '@/ds/components/Field';\nimport { Input } from '@/ds/components/Input';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { controlTriggerOpenStateFor } from '@/ds/primitives/control-size';\nimport { fieldTriggerStyle } from '@/ds/primitives/form-element';\nimport { cn } from '@/lib/utils';\n\ntype CommonProps = Omit<DayPickerSingleProps, 'mode' | 'selected' | 'onSelect'> & {\n value: Date | undefined | null;\n minValue?: Date | null;\n maxValue?: Date | null;\n defaultTimeStrValue?: string;\n onValueChange: (date: Date | undefined) => void;\n};\n\ntype DefaultTriggerLook = Pick<ButtonProps, 'variant' | 'size'>;\n\nexport type DateTimePickerProps =\n | (CommonProps & DefaultTriggerLook & { children?: never; className?: string; placeholder?: string })\n | (CommonProps & {\n children: React.ReactNode;\n className?: never;\n placeholder?: string;\n variant?: never;\n size?: never;\n });\n\nexport const DateTimePicker: React.FC<DateTimePickerProps> = ({\n value,\n minValue,\n maxValue,\n defaultTimeStrValue,\n onValueChange,\n children,\n className,\n placeholder,\n variant,\n size,\n ...props\n}) => {\n const [openPopover, setOpenPopover] = React.useState(false);\n\n return (\n <Popover open={openPopover} onOpenChange={setOpenPopover}>\n <PopoverTrigger asChild>\n {children ? (\n children\n ) : (\n <DefaultTrigger\n value={value}\n placeholder={placeholder}\n variant={variant}\n size={size}\n className={className}\n data-testid=\"datepicker-button\"\n />\n )}\n </PopoverTrigger>\n <PopoverContent\n className=\"backdrop-blur-4xl w-auto max-w-66 bg-muted p-0!\"\n align=\"start\"\n data-testid=\"datepicker-calendar\"\n >\n <DateTimePickerContent\n value={value}\n minValue={minValue}\n maxValue={maxValue}\n onValueChange={onValueChange}\n setOpenPopover={setOpenPopover}\n defaultTimeStrValue={defaultTimeStrValue}\n {...props}\n />\n </PopoverContent>\n </Popover>\n );\n};\n\nfunction getCompoundDate({ date, timeStr = '' }: { date: Date; timeStr?: string }): Date | null {\n if (!isValid(date)) {\n return null;\n }\n\n if (timeStr) {\n const dateStr = format(date, 'yyyy-MM-dd');\n const newDate = new Date(`${dateStr} ${timeStr}`);\n if (isValid(newDate)) {\n return newDate;\n }\n }\n\n return date;\n}\n\nexport const DateTimePickerContent = ({\n value,\n minValue,\n maxValue,\n onValueChange,\n setOpenPopover,\n placeholder,\n className,\n defaultTimeStrValue,\n ...props\n}: CommonProps & {\n setOpenPopover?: (open: boolean) => void;\n placeholder?: string;\n className?: string;\n}) => {\n const [localErrorMsg, setLocalErrorMsg] = React.useState<string | null>(null);\n const [dateInputValue, setDateInputValue] = React.useState<string>(\n value ? format(getCompoundDate({ date: value, timeStr: defaultTimeStrValue }) || '', 'PP p') : '',\n );\n const [timeStrValue, setTimeStrValue] = React.useState<string>(defaultTimeStrValue || '');\n const [selected, setSelected] = React.useState<Date | undefined>(value ? new Date(value) : undefined);\n\n const debouncedDateUpdate = useDebouncedCallback((date: Date) => {\n if (isValid(date)) {\n setSelected(date);\n onValueChange?.(date);\n setOpenPopover?.(false);\n }\n }, 500);\n\n const handleInputChange: React.ChangeEventHandler<HTMLInputElement> = e => {\n setDateInputValue(e.currentTarget.value);\n const date = new Date(e.currentTarget.value);\n debouncedDateUpdate(date);\n };\n\n const updateInputValue = (date: Date | string) => {\n if (isValid(date)) {\n if (maxValue && date > maxValue) {\n setLocalErrorMsg(`The selected date should be before ${format(maxValue, 'PP p')}`);\n setDateInputValue('');\n } else if (minValue && date < minValue) {\n setLocalErrorMsg(`The selected date should be after ${format(minValue, 'PP p')}`);\n setDateInputValue('');\n } else {\n setDateInputValue(format(date, 'PP p'));\n setLocalErrorMsg('');\n }\n } else {\n setDateInputValue('');\n setLocalErrorMsg('');\n }\n };\n\n const dateInputValueDate = new Date(dateInputValue);\n const dateInputValueIsValid = isValid(dateInputValueDate);\n const newValueDefined = dateInputValueIsValid && dateInputValueDate.getTime() !== value?.getTime();\n\n const handleDaySelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleMonthSelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleTimeStrChange = (val: string) => {\n setTimeStrValue(val);\n\n if (dateInputValueIsValid) {\n const newDate = getCompoundDate({ date: dateInputValueDate, timeStr: val });\n updateInputValue(newDate || '');\n }\n };\n\n const handleCancel = () => {\n setOpenPopover?.(false);\n };\n\n const handleApply = () => {\n if (isValid(dateInputValueDate)) {\n onValueChange(dateInputValueDate);\n }\n setOpenPopover?.(false);\n };\n\n const handleClear = () => {\n onValueChange(undefined);\n setSelected(undefined);\n setDateInputValue('');\n setTimeStrValue('');\n setOpenPopover?.(false);\n };\n\n return (\n <div\n aria-label=\"Choose date\"\n className={cn('relative flex flex-col', className)}\n onKeyDown={e => {\n e.stopPropagation();\n if (e.key === 'Escape') {\n setOpenPopover?.(false);\n }\n }}\n >\n <Field invalid={Boolean(localErrorMsg)} className=\"m-4 mb-0 w-auto!\">\n <FieldLabel className=\"sr-only\">Date</FieldLabel>\n <Input type=\"text\" value={dateInputValue} onChange={handleInputChange} placeholder={placeholder} />\n <FieldError>{localErrorMsg}</FieldError>\n </Field>\n\n <DatePicker\n mode=\"single\"\n month={selected}\n selected={selected}\n onMonthChange={handleMonthSelect}\n onSelect={handleDaySelect}\n {...props}\n />\n\n <TimePicker\n onValueChange={handleTimeStrChange}\n className=\"m-4 mt-0 w-auto\"\n defaultValue={value ? formatDate(new Date(value), 'hh:mm a') : defaultTimeStrValue}\n />\n\n <div className=\"m-4 mt-0 grid grid-cols-[1fr_2fr] gap-2\">\n {newValueDefined && (\n <Button icon={<X />} tabIndex={0} size=\"md\" onClick={handleClear} type=\"button\">\n Clear\n </Button>\n )}\n <Button\n icon={newValueDefined ? <Check /> : <X />}\n tabIndex={0}\n type=\"button\"\n size=\"md\"\n variant={newValueDefined ? 'primary' : 'default'}\n onClick={() => {\n dateInputValueIsValid ? handleApply() : handleCancel();\n }}\n >\n {newValueDefined ? `Apply` : `Cancel`}\n </Button>\n </div>\n </div>\n );\n};\n\ntype DefaultButtonProps = Pick<ButtonProps, 'variant' | 'size' | 'tooltip' | 'disabled'> & {\n className?: string;\n placeholder?: string;\n value: Date | undefined | null;\n};\n\nexport const DefaultTrigger = React.forwardRef<HTMLButtonElement, DefaultButtonProps>(\n ({ value, placeholder, variant = 'default', size, className, ...props }, ref) => {\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'justify-start',\n variant === 'default' && fieldTriggerStyle,\n controlTriggerOpenStateFor(variant),\n className,\n )}\n icon={<CalendarIcon />}\n {...props}\n >\n {value ? (\n <span className=\"text-foreground\">{format(value, 'PP p')}</span>\n ) : (\n <span className=\"text-muted-foreground\">{placeholder ?? 'Pick a date'}</span>\n )}\n </Button>\n );\n },\n);\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { D as DateTimeRangePicker } from '../date-time-range-picker-
|
|
1
|
+
export { D as DateTimeRangePicker } from '../date-time-range-picker-B1zYIQTC.js';
|
|
2
2
|
//# sourceMappingURL=DateTimeRangePicker.es.js.map
|
|
@@ -10,11 +10,11 @@ const Button = require('../Button-CXhSUBxN.cjs');
|
|
|
10
10
|
const Notice = require('../Notice-C4Tgmtgb.cjs');
|
|
11
11
|
const envFile = require('../env-file-BU2hStkm.cjs');
|
|
12
12
|
const Txt = require('../Txt-DPmEpNbp.cjs');
|
|
13
|
-
const dataList = require('../data-list-
|
|
13
|
+
const dataList = require('../data-list-Bqf-fhMx.cjs');
|
|
14
14
|
const hooks_useCopyToClipboard = require('../hooks/use-copy-to-clipboard.cjs.js');
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
const inputGroup = require('../input-group-
|
|
15
|
+
const field = require('../field-ip9xiOVa.cjs');
|
|
16
|
+
require('../field-control-aria-WzMGs0A4.cjs');
|
|
17
|
+
const inputGroup = require('../input-group-BgCXLSRV.cjs');
|
|
18
18
|
|
|
19
19
|
function EnvironmentVariablesEditorActions({ className, ...props }) {
|
|
20
20
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils_cn.cn("flex flex-wrap items-center gap-2", className), ...props });
|
|
@@ -290,28 +290,21 @@ function EnvironmentVariablesEditorRow({
|
|
|
290
290
|
const resolvedRowErrors = rowErrors ?? contextRowErrors;
|
|
291
291
|
const keyError = resolvedRowErrors?.[index]?.key ?? (editor.rowHasDuplicateKey(index) ? duplicateKeyMessage : null);
|
|
292
292
|
const valueError = resolvedRowErrors?.[index]?.value;
|
|
293
|
-
const keyFieldName = `env-key-${index}`;
|
|
294
|
-
const valueFieldName = `env-value-${index}`;
|
|
295
|
-
const keyInputId = `input-${keyFieldName}`;
|
|
296
|
-
const valueInputId = `input-${valueFieldName}`;
|
|
297
293
|
const revealValueLabel = editor.isValueRevealed(index) ? "Hide value" : "Show value";
|
|
298
294
|
const removeRowLabel = `Remove environment variable ${row.key.trim() || index + 1}`;
|
|
299
295
|
function handlePaste(text, field) {
|
|
300
296
|
return editor.handlePaste(index, text, field);
|
|
301
297
|
}
|
|
302
298
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils_cn.cn("flex flex-col items-stretch gap-2 sm:flex-row sm:items-start", className), ...props, children: [
|
|
303
|
-
/* @__PURE__ */ jsxRuntime.
|
|
304
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
299
|
+
/* @__PURE__ */ jsxRuntime.jsxs(field.Field, { invalid: Boolean(keyError), className: "flex-1", children: [
|
|
300
|
+
/* @__PURE__ */ jsxRuntime.jsx(field.FieldLabel, { children: keyLabel }),
|
|
305
301
|
/* @__PURE__ */ jsxRuntime.jsx(inputGroup.InputGroup, { className: "w-full", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
306
302
|
inputGroup.InputGroupInput,
|
|
307
303
|
{
|
|
308
|
-
id: keyInputId,
|
|
309
304
|
placeholder: keyPlaceholder,
|
|
310
305
|
className: "font-mono",
|
|
311
306
|
value: row.key,
|
|
312
307
|
disabled: isDisabled,
|
|
313
|
-
error: Boolean(keyError),
|
|
314
|
-
"aria-describedby": keyError ? fieldErrorId.fieldErrorId(keyFieldName) : void 0,
|
|
315
308
|
onChange: (event) => editor.updateRow(index, { key: event.target.value }),
|
|
316
309
|
onPaste: (event) => {
|
|
317
310
|
if (handlePaste(event.clipboardData.getData("text"), "key")) {
|
|
@@ -320,22 +313,19 @@ function EnvironmentVariablesEditorRow({
|
|
|
320
313
|
}
|
|
321
314
|
}
|
|
322
315
|
) }),
|
|
323
|
-
|
|
324
|
-
] })
|
|
325
|
-
/* @__PURE__ */ jsxRuntime.
|
|
326
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
316
|
+
/* @__PURE__ */ jsxRuntime.jsx(field.FieldError, { children: keyError })
|
|
317
|
+
] }),
|
|
318
|
+
/* @__PURE__ */ jsxRuntime.jsxs(field.Field, { invalid: Boolean(valueError), className: "flex-1", children: [
|
|
319
|
+
/* @__PURE__ */ jsxRuntime.jsx(field.FieldLabel, { children: valueLabel }),
|
|
327
320
|
/* @__PURE__ */ jsxRuntime.jsxs(inputGroup.InputGroup, { className: "w-full", children: [
|
|
328
321
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
329
322
|
inputGroup.InputGroupInput,
|
|
330
323
|
{
|
|
331
|
-
id: valueInputId,
|
|
332
324
|
placeholder: valuePlaceholder,
|
|
333
325
|
className: "font-mono",
|
|
334
326
|
type: editor.isValueRevealed(index) ? "text" : "password",
|
|
335
327
|
value: row.value,
|
|
336
328
|
disabled: isDisabled,
|
|
337
|
-
error: Boolean(valueError),
|
|
338
|
-
"aria-describedby": valueError ? fieldErrorId.fieldErrorId(valueFieldName) : void 0,
|
|
339
329
|
onChange: (event) => editor.updateRow(index, { value: event.target.value }),
|
|
340
330
|
onPaste: (event) => {
|
|
341
331
|
if (handlePaste(event.clipboardData.getData("text"), "value")) {
|
|
@@ -358,8 +348,8 @@ function EnvironmentVariablesEditorRow({
|
|
|
358
348
|
}
|
|
359
349
|
) })
|
|
360
350
|
] }),
|
|
361
|
-
|
|
362
|
-
] })
|
|
351
|
+
/* @__PURE__ */ jsxRuntime.jsx(field.FieldError, { children: valueError })
|
|
352
|
+
] }),
|
|
363
353
|
!readOnly && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2 self-end sm:self-auto sm:pt-7", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
364
354
|
Button.Button,
|
|
365
355
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvironmentVariablesEditor.cjs.js","sources":["../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-actions.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-context.ts","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-add-button.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-messages.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-duplicate-keys-error.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-paste-hint.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-empty.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-header.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-item.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-list.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-root.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-row.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-rows.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload-button.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload-error.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor.tsx"],"sourcesContent":["import type { EnvironmentVariablesEditorActionsProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorActions({ className, ...props }: EnvironmentVariablesEditorActionsProps) {\n return <div className={cn('flex flex-wrap items-center gap-2', className)} {...props} />;\n}\n","import { createContext, use } from 'react';\n\nimport type { EnvironmentVariablesEditorRowErrors } from './environment-variables-editor.types';\nimport type { EnvironmentVariablesEditorController } from '@/hooks/use-environment-variables-editor';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\n\ntype EnvironmentVariablesEditorRenderController = Pick<\n EnvironmentVariablesEditorController<EnvironmentVariableEntry>,\n | 'rows'\n | 'uploadError'\n | 'fileInputRef'\n | 'hasDuplicateKeys'\n | 'updateRow'\n | 'removeRow'\n | 'handleFileUpload'\n | 'handlePaste'\n | 'getRowId'\n | 'isValueRevealed'\n | 'toggleValueVisibility'\n | 'rowHasDuplicateKey'\n> & {\n appendRow: () => void;\n};\n\nexport interface EnvironmentVariablesEditorContextValue {\n editor: EnvironmentVariablesEditorRenderController;\n disabled: boolean;\n readOnly: boolean;\n rowErrors?: EnvironmentVariablesEditorRowErrors;\n}\n\nexport const EnvironmentVariablesEditorContext = createContext<EnvironmentVariablesEditorContextValue | null>(null);\n\nexport const EnvironmentVariablesEditorReadOnlyListContext = createContext({\n showIcon: false,\n});\n\nexport function useEnvironmentVariablesEditorContext(componentName: string) {\n const context = use(EnvironmentVariablesEditorContext);\n\n if (!context) {\n throw new Error(`${componentName} must be used within EnvironmentVariablesEditor.Root`);\n }\n\n return context;\n}\n","import { PlusIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorAddButtonProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorAddButton({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorAddButtonProps) {\n const { editor, disabled, readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.AddButton');\n\n if (readOnly) return null;\n\n return (\n <div className={cn('flex items-center gap-2', className)} {...props}>\n <span aria-hidden=\"true\" className=\"h-px flex-1 bg-border\" />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n disabled={disabled}\n onClick={() => editor.appendRow()}\n icon={<PlusIcon />}\n >\n {children ?? 'Add Variable'}\n </Button>\n <span aria-hidden=\"true\" className=\"h-px flex-1 bg-border\" />\n </div>\n );\n}\n","import type { EnvironmentVariablesEditorMessagesProps } from './environment-variables-editor.types';\nimport { Notice } from '@/ds/components/Notice';\n\nexport function EnvironmentVariablesEditorMessages({\n error,\n children,\n variant = 'destructive',\n ...props\n}: EnvironmentVariablesEditorMessagesProps) {\n const message = children ?? error;\n\n if (!message) return null;\n\n return (\n <Notice variant={variant} {...props}>\n <Notice.Message>{message}</Notice.Message>\n </Notice>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport type { EnvironmentVariablesEditorDuplicateKeysErrorProps } from './environment-variables-editor.types';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\n\nexport function EnvironmentVariablesEditorDuplicateKeysError({\n message = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n ...props\n}: EnvironmentVariablesEditorDuplicateKeysErrorProps) {\n const { editor } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.DuplicateKeysError');\n\n if (!editor.hasDuplicateKeys) return null;\n\n return <EnvironmentVariablesEditorMessages error={message} {...props} />;\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorPasteHintProps } from './environment-variables-editor.types';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport const DEFAULT_ENVIRONMENT_VARIABLE_PASTE_HINT = 'Tip: paste a .env file into any field to import it';\n\nexport function EnvironmentVariablesEditorPasteHint({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorPasteHintProps) {\n const { readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.PasteHint');\n\n if (readOnly) return null;\n\n return (\n <Txt as=\"p\" variant=\"meta\" tone=\"muted\" className={cn('text-right', className)} {...props}>\n {children ?? DEFAULT_ENVIRONMENT_VARIABLE_PASTE_HINT}\n </Txt>\n );\n}\n","import type { EnvironmentVariablesEditorReadOnlyEmptyProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\n\nexport function EnvironmentVariablesEditorReadOnlyEmpty({\n message = 'No environment variables found',\n ...props\n}: EnvironmentVariablesEditorReadOnlyEmptyProps) {\n return <DataList.NoMatch message={message} {...props} />;\n}\n","import { use } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorReadOnlyHeaderProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\n\nexport function EnvironmentVariablesEditorReadOnlyHeader({\n className,\n nameLabel = 'Key',\n valueLabel = 'Value',\n updatedAtLabel = 'Last Updated',\n ...props\n}: EnvironmentVariablesEditorReadOnlyHeaderProps) {\n const { showIcon } = use(EnvironmentVariablesEditorReadOnlyListContext);\n\n return (\n <DataList.Top className={className} {...props}>\n {showIcon && (\n <DataList.TopCell aria-hidden=\"true\" className=\"justify-center\">\n <span />\n </DataList.TopCell>\n )}\n <DataList.TopCell>{nameLabel}</DataList.TopCell>\n <DataList.TopCell>{valueLabel}</DataList.TopCell>\n <DataList.TopCell className=\"justify-end\">{updatedAtLabel}</DataList.TopCell>\n </DataList.Top>\n );\n}\n","import { CheckIcon, Code2Icon, CopyIcon, EyeIcon, EyeOffIcon } from 'lucide-react';\nimport { use, useState } from 'react';\nimport type { ReactNode } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorReadOnlyItemProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { DataList } from '@/ds/components/DataList/data-list';\nimport { Txt } from '@/ds/components/Txt';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorReadOnlyItem({\n className,\n name,\n value,\n copyValue,\n copyLabel = 'Copy value',\n updatedAt,\n revealed,\n defaultRevealed,\n onRevealedChange,\n actor,\n icon,\n ...props\n}: EnvironmentVariablesEditorReadOnlyItemProps) {\n const { showIcon } = use(EnvironmentVariablesEditorReadOnlyListContext);\n const [uncontrolledRevealed, setUncontrolledRevealed] = useState(defaultRevealed ?? false);\n const { isCopied, copyToClipboard } = useCopyToClipboard({ copiedDuration: 1500, showToast: false });\n const isRevealed = revealed ?? uncontrolledRevealed;\n const displayedValue = isRevealed ? value : '************';\n const leadingIcon = icon ?? <Code2Icon />;\n const resolvedCopyValue = copyValue ?? getCopyableReadOnlyValue(value);\n const canCopyValue = isRevealed && Boolean(resolvedCopyValue);\n\n function toggleRevealed() {\n const nextRevealed = !isRevealed;\n\n if (revealed === undefined) {\n setUncontrolledRevealed(nextRevealed);\n }\n\n onRevealedChange?.(nextRevealed);\n }\n\n function handleCopyValue() {\n if (!resolvedCopyValue) return;\n\n copyToClipboard(resolvedCopyValue);\n }\n\n return (\n <DataList.RowStatic className={cn('min-h-14', className)} {...props}>\n {showIcon && (\n <DataList.Cell className=\"justify-items-center overflow-visible\">\n <span className=\"flex size-7 items-center justify-center rounded-full border border-border text-muted-foreground [&>svg]:size-3.5\">\n {leadingIcon}\n </span>\n </DataList.Cell>\n )}\n\n <DataList.TextCell font=\"mono\" className=\"text-caption text-foreground\">\n {name}\n </DataList.TextCell>\n\n <DataList.Cell className=\"min-w-0\">\n {value !== undefined && (\n <span className=\"flex min-w-0 items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={isRevealed ? 'Hide value' : 'Show value'}\n onClick={toggleRevealed}\n >\n {isRevealed ? <EyeOffIcon aria-hidden /> : <EyeIcon aria-hidden />}\n </Button>\n <span className=\"group relative flex min-w-0 flex-1 items-center\">\n <Txt\n as=\"span\"\n variant=\"meta\"\n tone=\"muted\"\n font=\"mono\"\n className={cn('block min-w-0 flex-1 truncate', canCopyValue && 'pr-7')}\n >\n {displayedValue}\n </Txt>\n {canCopyValue && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={isCopied ? 'Copied value' : copyLabel}\n tooltip={isCopied ? 'Copied' : copyLabel}\n className=\"absolute right-0 opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100 focus-visible:opacity-100\"\n onClick={handleCopyValue}\n >\n {isCopied ? <CheckIcon aria-hidden /> : <CopyIcon aria-hidden />}\n </Button>\n )}\n </span>\n </span>\n )}\n </DataList.Cell>\n\n <DataList.Cell className=\"min-w-0 justify-items-end text-meta text-muted-foreground\">\n {(updatedAt || actor) && (\n <span className=\"flex min-w-0 items-center gap-2\">\n <span className=\"truncate\">{updatedAt}</span>\n {actor}\n </span>\n )}\n </DataList.Cell>\n </DataList.RowStatic>\n );\n}\n\nfunction getCopyableReadOnlyValue(value: ReactNode) {\n if (typeof value === 'string' || typeof value === 'number') {\n return String(value);\n }\n\n return undefined;\n}\n","import { useMemo } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorReadOnlyHeader } from './environment-variables-editor-read-only-header';\nimport type { EnvironmentVariablesEditorReadOnlyListProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\nimport { cn } from '@/lib/utils';\n\nconst READ_ONLY_COLUMNS = 'minmax(12rem,1.4fr) minmax(8rem,0.9fr) minmax(8rem,auto)';\nconst READ_ONLY_COLUMNS_WITH_ICON = `auto ${READ_ONLY_COLUMNS}`;\n\nexport function EnvironmentVariablesEditorReadOnlyList({\n className,\n children,\n columns,\n header,\n showHeader = true,\n showIcon = false,\n nameLabel,\n valueLabel,\n updatedAtLabel,\n scrollRef,\n ...props\n}: EnvironmentVariablesEditorReadOnlyListProps) {\n const resolvedColumns = columns ?? (showIcon ? READ_ONLY_COLUMNS_WITH_ICON : READ_ONLY_COLUMNS);\n const contextValue = useMemo(() => ({ showIcon }), [showIcon]);\n\n return (\n <EnvironmentVariablesEditorReadOnlyListContext.Provider value={contextValue}>\n <DataList columns={resolvedColumns} scrollRef={scrollRef} className={cn('min-h-0', className)} {...props}>\n {showHeader &&\n (header ?? (\n <EnvironmentVariablesEditorReadOnlyHeader\n nameLabel={nameLabel}\n valueLabel={valueLabel}\n updatedAtLabel={updatedAtLabel}\n />\n ))}\n {children}\n </DataList>\n </EnvironmentVariablesEditorReadOnlyListContext.Provider>\n );\n}\n","import { useMemo } from 'react';\n\nimport { EnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorContextValue } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorPasteHint } from './environment-variables-editor-paste-hint';\nimport type { EnvironmentVariablesEditorRootProps } from './environment-variables-editor.types';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\n\nexport function EnvironmentVariablesEditorRoot<TRow extends EnvironmentVariableEntry = EnvironmentVariableEntry>({\n editor,\n className,\n children,\n disabled,\n readOnly,\n rowErrors,\n hidePasteHint,\n ...props\n}: EnvironmentVariablesEditorRootProps<TRow>) {\n const contextValue = useMemo<EnvironmentVariablesEditorContextValue>(\n () => ({\n editor: {\n rows: editor.rows,\n uploadError: editor.uploadError,\n fileInputRef: editor.fileInputRef,\n hasDuplicateKeys: editor.hasDuplicateKeys,\n updateRow: editor.updateRow,\n removeRow: editor.removeRow,\n handleFileUpload: editor.handleFileUpload,\n handlePaste: editor.handlePaste,\n getRowId: editor.getRowId,\n isValueRevealed: editor.isValueRevealed,\n toggleValueVisibility: editor.toggleValueVisibility,\n rowHasDuplicateKey: editor.rowHasDuplicateKey,\n appendRow: () => editor.appendRow(),\n },\n disabled: Boolean(disabled),\n readOnly: Boolean(readOnly),\n rowErrors,\n }),\n [editor, disabled, readOnly, rowErrors],\n );\n\n return (\n <EnvironmentVariablesEditorContext.Provider value={contextValue}>\n <div className={className} {...props}>\n {children}\n {!readOnly && !hidePasteHint && <EnvironmentVariablesEditorPasteHint />}\n </div>\n </EnvironmentVariablesEditorContext.Provider>\n );\n}\n","import { EyeIcon, EyeOffIcon, TrashIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorRowProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { FieldBlock, fieldErrorId } from '@/ds/components/FormFieldBlocks';\nimport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from '@/ds/components/InputGroup';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorRow({\n row,\n index,\n rowErrors,\n keyLabel = 'Key',\n valueLabel = 'Value',\n keyPlaceholder = 'e.g: OPEN_AI_KEY',\n valuePlaceholder = 'e.g: sk-xxxxxxxx',\n duplicateKeyMessage = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n className,\n ...props\n}: EnvironmentVariablesEditorRowProps) {\n const {\n editor,\n disabled,\n readOnly,\n rowErrors: contextRowErrors,\n } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.Row');\n const isDisabled = disabled || readOnly;\n const resolvedRowErrors = rowErrors ?? contextRowErrors;\n const keyError = resolvedRowErrors?.[index]?.key ?? (editor.rowHasDuplicateKey(index) ? duplicateKeyMessage : null);\n const valueError = resolvedRowErrors?.[index]?.value;\n const keyFieldName = `env-key-${index}`;\n const valueFieldName = `env-value-${index}`;\n const keyInputId = `input-${keyFieldName}`;\n const valueInputId = `input-${valueFieldName}`;\n const revealValueLabel = editor.isValueRevealed(index) ? 'Hide value' : 'Show value';\n const removeRowLabel = `Remove environment variable ${row.key.trim() || index + 1}`;\n\n function handlePaste(text: string, field: 'key' | 'value') {\n return editor.handlePaste(index, text, field);\n }\n\n return (\n <div className={cn('flex flex-col items-stretch gap-2 sm:flex-row sm:items-start', className)} {...props}>\n <div className=\"flex-1\">\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name={keyFieldName}>{keyLabel}</FieldBlock.Label>\n <InputGroup className=\"w-full\">\n <InputGroupInput\n id={keyInputId}\n placeholder={keyPlaceholder}\n className=\"font-mono\"\n value={row.key}\n disabled={isDisabled}\n error={Boolean(keyError)}\n aria-describedby={keyError ? fieldErrorId(keyFieldName) : undefined}\n onChange={event => editor.updateRow(index, { key: event.target.value })}\n onPaste={event => {\n if (handlePaste(event.clipboardData.getData('text'), 'key')) {\n event.preventDefault();\n }\n }}\n />\n </InputGroup>\n {keyError && <FieldBlock.ErrorMsg name={keyFieldName}>{keyError}</FieldBlock.ErrorMsg>}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n </div>\n\n <div className=\"flex-1\">\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name={valueFieldName}>{valueLabel}</FieldBlock.Label>\n <InputGroup className=\"w-full\">\n <InputGroupInput\n id={valueInputId}\n placeholder={valuePlaceholder}\n className=\"font-mono\"\n type={editor.isValueRevealed(index) ? 'text' : 'password'}\n value={row.value}\n disabled={isDisabled}\n error={Boolean(valueError)}\n aria-describedby={valueError ? fieldErrorId(valueFieldName) : undefined}\n onChange={event => editor.updateRow(index, { value: event.target.value })}\n onPaste={event => {\n if (handlePaste(event.clipboardData.getData('text'), 'value')) {\n event.preventDefault();\n }\n }}\n />\n <InputGroupAddon align=\"inline-end\">\n <InputGroupButton\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n disabled={isDisabled}\n aria-label={revealValueLabel}\n tooltip={revealValueLabel}\n onClick={() => editor.toggleValueVisibility(index)}\n >\n {editor.isValueRevealed(index) ? <EyeOffIcon aria-hidden /> : <EyeIcon aria-hidden />}\n </InputGroupButton>\n </InputGroupAddon>\n </InputGroup>\n {valueError && <FieldBlock.ErrorMsg name={valueFieldName}>{valueError}</FieldBlock.ErrorMsg>}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n </div>\n\n {!readOnly && (\n <div className=\"flex items-center gap-2 self-end sm:self-auto sm:pt-7\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n disabled={disabled}\n aria-label={removeRowLabel}\n tooltip=\"Remove variable\"\n onClick={() => editor.removeRow(index)}\n >\n <TrashIcon />\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorRow } from './environment-variables-editor-row';\nimport type { EnvironmentVariablesEditorRowsProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorRows({\n className,\n rowErrors,\n keyLabel,\n valueLabel,\n keyPlaceholder,\n valuePlaceholder,\n duplicateKeyMessage,\n ...props\n}: EnvironmentVariablesEditorRowsProps) {\n const { editor, rowErrors: contextRowErrors } = useEnvironmentVariablesEditorContext(\n 'EnvironmentVariablesEditor.Rows',\n );\n const resolvedRowErrors = rowErrors ?? contextRowErrors;\n\n return (\n <div className={cn('space-y-2', className)} {...props}>\n {editor.rows.map((row, index) => (\n <EnvironmentVariablesEditorRow\n key={editor.getRowId(index)}\n row={row}\n index={index}\n rowErrors={resolvedRowErrors}\n keyLabel={keyLabel}\n valueLabel={valueLabel}\n keyPlaceholder={keyPlaceholder}\n valuePlaceholder={valuePlaceholder}\n duplicateKeyMessage={duplicateKeyMessage}\n />\n ))}\n </div>\n );\n}\n","import { UploadIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorUploadButtonProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\n\nexport function EnvironmentVariablesEditorUploadButton({\n children = 'Import .env',\n inputLabel = 'Import .env file',\n disabled,\n onClick,\n type = 'button',\n variant = 'ghost',\n size = 'sm',\n ...props\n}: EnvironmentVariablesEditorUploadButtonProps) {\n const {\n editor,\n disabled: contextDisabled,\n readOnly,\n } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.UploadButton');\n const isDisabled = contextDisabled || disabled;\n\n if (readOnly) return null;\n\n return (\n <>\n <input\n ref={editor.fileInputRef}\n type=\"file\"\n accept=\".env,text/plain\"\n aria-label={inputLabel}\n className=\"hidden\"\n disabled={isDisabled}\n onChange={editor.handleFileUpload}\n />\n <Button\n type={type}\n variant={variant}\n size={size}\n disabled={isDisabled}\n onClick={event => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n editor.fileInputRef.current?.click();\n }\n }}\n icon={<UploadIcon />}\n {...props}\n >\n {children}\n </Button>\n </>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorUploadButton } from './environment-variables-editor-upload-button';\nimport type { EnvironmentVariablesEditorUploadProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorUpload({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorUploadProps) {\n const { readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.Upload');\n\n if (readOnly) return null;\n\n return (\n <div className={cn('flex flex-wrap items-center justify-end gap-2', className)} {...props}>\n {children ?? <EnvironmentVariablesEditorUploadButton />}\n </div>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport type { EnvironmentVariablesEditorUploadErrorProps } from './environment-variables-editor.types';\n\nexport function EnvironmentVariablesEditorUploadError(props: EnvironmentVariablesEditorUploadErrorProps) {\n const { editor } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.UploadError');\n\n if (!editor.uploadError) return null;\n\n return <EnvironmentVariablesEditorMessages error={editor.uploadError} {...props} />;\n}\n","import { EnvironmentVariablesEditorActions } from './environment-variables-editor-actions';\nimport { EnvironmentVariablesEditorAddButton } from './environment-variables-editor-add-button';\nimport { EnvironmentVariablesEditorDuplicateKeysError } from './environment-variables-editor-duplicate-keys-error';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport { EnvironmentVariablesEditorPasteHint } from './environment-variables-editor-paste-hint';\nimport { EnvironmentVariablesEditorReadOnlyEmpty } from './environment-variables-editor-read-only-empty';\nimport { EnvironmentVariablesEditorReadOnlyHeader } from './environment-variables-editor-read-only-header';\nimport { EnvironmentVariablesEditorReadOnlyItem } from './environment-variables-editor-read-only-item';\nimport { EnvironmentVariablesEditorReadOnlyList } from './environment-variables-editor-read-only-list';\nimport { EnvironmentVariablesEditorRoot } from './environment-variables-editor-root';\nimport { EnvironmentVariablesEditorRow } from './environment-variables-editor-row';\nimport { EnvironmentVariablesEditorRows } from './environment-variables-editor-rows';\nimport { EnvironmentVariablesEditorUpload } from './environment-variables-editor-upload';\nimport { EnvironmentVariablesEditorUploadButton } from './environment-variables-editor-upload-button';\nimport { EnvironmentVariablesEditorUploadError } from './environment-variables-editor-upload-error';\nimport type { EnvironmentVariablesEditorProps } from './environment-variables-editor.types';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\nimport { cn } from '@/lib/utils';\n\nconst renderEnvironmentVariablesEditor = <TRow extends EnvironmentVariableEntry = EnvironmentVariableEntry>({\n className,\n children,\n addLabel = 'Add Variable',\n keyLabel = 'Key',\n valueLabel = 'Value',\n keyPlaceholder = 'e.g: OPEN_AI_KEY',\n valuePlaceholder = 'e.g: sk-xxxxxxxx',\n duplicateKeyMessage = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n rowErrors,\n error,\n actions,\n ...props\n}: EnvironmentVariablesEditorProps<TRow>) => {\n return (\n <EnvironmentVariablesEditorRoot\n className={cn(!children && 'space-y-3', className)}\n rowErrors={rowErrors}\n {...props}\n >\n {children ?? (\n <>\n <EnvironmentVariablesEditorUpload>\n <EnvironmentVariablesEditorUploadButton />\n </EnvironmentVariablesEditorUpload>\n <EnvironmentVariablesEditorUploadError />\n <EnvironmentVariablesEditorRows\n rowErrors={rowErrors}\n keyLabel={keyLabel}\n valueLabel={valueLabel}\n keyPlaceholder={keyPlaceholder}\n valuePlaceholder={valuePlaceholder}\n duplicateKeyMessage={duplicateKeyMessage}\n />\n <EnvironmentVariablesEditorAddButton>{addLabel}</EnvironmentVariablesEditorAddButton>\n <EnvironmentVariablesEditorDuplicateKeysError message={duplicateKeyMessage} />\n <EnvironmentVariablesEditorMessages error={error} />\n {actions && <EnvironmentVariablesEditorActions>{actions}</EnvironmentVariablesEditorActions>}\n </>\n )}\n </EnvironmentVariablesEditorRoot>\n );\n};\n\nexport const EnvironmentVariablesEditor = Object.assign(renderEnvironmentVariablesEditor, {\n Root: EnvironmentVariablesEditorRoot,\n Upload: EnvironmentVariablesEditorUpload,\n UploadButton: EnvironmentVariablesEditorUploadButton,\n UploadError: EnvironmentVariablesEditorUploadError,\n Rows: EnvironmentVariablesEditorRows,\n Row: EnvironmentVariablesEditorRow,\n AddButton: EnvironmentVariablesEditorAddButton,\n PasteHint: EnvironmentVariablesEditorPasteHint,\n Messages: EnvironmentVariablesEditorMessages,\n DuplicateKeysError: EnvironmentVariablesEditorDuplicateKeysError,\n Actions: EnvironmentVariablesEditorActions,\n ReadOnlyList: EnvironmentVariablesEditorReadOnlyList,\n ReadOnlyHeader: EnvironmentVariablesEditorReadOnlyHeader,\n ReadOnlyEmpty: EnvironmentVariablesEditorReadOnlyEmpty,\n ReadOnlyItem: EnvironmentVariablesEditorReadOnlyItem,\n});\n\nexport type {\n EnvironmentVariablesEditorActionsProps,\n EnvironmentVariablesEditorAddButtonProps,\n EnvironmentVariablesEditorDuplicateKeysErrorProps,\n EnvironmentVariablesEditorMessagesProps,\n EnvironmentVariablesEditorPasteHintProps,\n EnvironmentVariablesEditorProps,\n EnvironmentVariablesEditorReadOnlyEmptyProps,\n EnvironmentVariablesEditorReadOnlyHeaderProps,\n EnvironmentVariablesEditorReadOnlyItemProps,\n EnvironmentVariablesEditorReadOnlyListProps,\n EnvironmentVariablesEditorRootProps,\n EnvironmentVariablesEditorRowErrors,\n EnvironmentVariablesEditorRowProps,\n EnvironmentVariablesEditorRowsProps,\n EnvironmentVariablesEditorUploadButtonProps,\n EnvironmentVariablesEditorUploadErrorProps,\n EnvironmentVariablesEditorUploadProps,\n} from './environment-variables-editor.types';\n"],"names":["jsx","cn","createContext","use","jsxs","Button","PlusIcon","Notice","DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE","Txt","DataList","useState","useCopyToClipboard","Code2Icon","EyeOffIcon","EyeIcon","CheckIcon","CopyIcon","useMemo","FieldBlock","InputGroup","InputGroupInput","fieldErrorId","InputGroupAddon","InputGroupButton","TrashIcon","Fragment","UploadIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EnvironmentVariablesEditor.cjs.js","sources":["../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-actions.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-context.ts","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-add-button.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-messages.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-duplicate-keys-error.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-paste-hint.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-empty.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-header.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-item.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-read-only-list.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-root.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-row.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-rows.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload-button.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor-upload-error.tsx","../../src/ds/components/EnvironmentVariablesEditor/environment-variables-editor.tsx"],"sourcesContent":["import type { EnvironmentVariablesEditorActionsProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorActions({ className, ...props }: EnvironmentVariablesEditorActionsProps) {\n return <div className={cn('flex flex-wrap items-center gap-2', className)} {...props} />;\n}\n","import { createContext, use } from 'react';\n\nimport type { EnvironmentVariablesEditorRowErrors } from './environment-variables-editor.types';\nimport type { EnvironmentVariablesEditorController } from '@/hooks/use-environment-variables-editor';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\n\ntype EnvironmentVariablesEditorRenderController = Pick<\n EnvironmentVariablesEditorController<EnvironmentVariableEntry>,\n | 'rows'\n | 'uploadError'\n | 'fileInputRef'\n | 'hasDuplicateKeys'\n | 'updateRow'\n | 'removeRow'\n | 'handleFileUpload'\n | 'handlePaste'\n | 'getRowId'\n | 'isValueRevealed'\n | 'toggleValueVisibility'\n | 'rowHasDuplicateKey'\n> & {\n appendRow: () => void;\n};\n\nexport interface EnvironmentVariablesEditorContextValue {\n editor: EnvironmentVariablesEditorRenderController;\n disabled: boolean;\n readOnly: boolean;\n rowErrors?: EnvironmentVariablesEditorRowErrors;\n}\n\nexport const EnvironmentVariablesEditorContext = createContext<EnvironmentVariablesEditorContextValue | null>(null);\n\nexport const EnvironmentVariablesEditorReadOnlyListContext = createContext({\n showIcon: false,\n});\n\nexport function useEnvironmentVariablesEditorContext(componentName: string) {\n const context = use(EnvironmentVariablesEditorContext);\n\n if (!context) {\n throw new Error(`${componentName} must be used within EnvironmentVariablesEditor.Root`);\n }\n\n return context;\n}\n","import { PlusIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorAddButtonProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorAddButton({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorAddButtonProps) {\n const { editor, disabled, readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.AddButton');\n\n if (readOnly) return null;\n\n return (\n <div className={cn('flex items-center gap-2', className)} {...props}>\n <span aria-hidden=\"true\" className=\"h-px flex-1 bg-border\" />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n disabled={disabled}\n onClick={() => editor.appendRow()}\n icon={<PlusIcon />}\n >\n {children ?? 'Add Variable'}\n </Button>\n <span aria-hidden=\"true\" className=\"h-px flex-1 bg-border\" />\n </div>\n );\n}\n","import type { EnvironmentVariablesEditorMessagesProps } from './environment-variables-editor.types';\nimport { Notice } from '@/ds/components/Notice';\n\nexport function EnvironmentVariablesEditorMessages({\n error,\n children,\n variant = 'destructive',\n ...props\n}: EnvironmentVariablesEditorMessagesProps) {\n const message = children ?? error;\n\n if (!message) return null;\n\n return (\n <Notice variant={variant} {...props}>\n <Notice.Message>{message}</Notice.Message>\n </Notice>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport type { EnvironmentVariablesEditorDuplicateKeysErrorProps } from './environment-variables-editor.types';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\n\nexport function EnvironmentVariablesEditorDuplicateKeysError({\n message = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n ...props\n}: EnvironmentVariablesEditorDuplicateKeysErrorProps) {\n const { editor } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.DuplicateKeysError');\n\n if (!editor.hasDuplicateKeys) return null;\n\n return <EnvironmentVariablesEditorMessages error={message} {...props} />;\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorPasteHintProps } from './environment-variables-editor.types';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport const DEFAULT_ENVIRONMENT_VARIABLE_PASTE_HINT = 'Tip: paste a .env file into any field to import it';\n\nexport function EnvironmentVariablesEditorPasteHint({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorPasteHintProps) {\n const { readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.PasteHint');\n\n if (readOnly) return null;\n\n return (\n <Txt as=\"p\" variant=\"meta\" tone=\"muted\" className={cn('text-right', className)} {...props}>\n {children ?? DEFAULT_ENVIRONMENT_VARIABLE_PASTE_HINT}\n </Txt>\n );\n}\n","import type { EnvironmentVariablesEditorReadOnlyEmptyProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\n\nexport function EnvironmentVariablesEditorReadOnlyEmpty({\n message = 'No environment variables found',\n ...props\n}: EnvironmentVariablesEditorReadOnlyEmptyProps) {\n return <DataList.NoMatch message={message} {...props} />;\n}\n","import { use } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorReadOnlyHeaderProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\n\nexport function EnvironmentVariablesEditorReadOnlyHeader({\n className,\n nameLabel = 'Key',\n valueLabel = 'Value',\n updatedAtLabel = 'Last Updated',\n ...props\n}: EnvironmentVariablesEditorReadOnlyHeaderProps) {\n const { showIcon } = use(EnvironmentVariablesEditorReadOnlyListContext);\n\n return (\n <DataList.Top className={className} {...props}>\n {showIcon && (\n <DataList.TopCell aria-hidden=\"true\" className=\"justify-center\">\n <span />\n </DataList.TopCell>\n )}\n <DataList.TopCell>{nameLabel}</DataList.TopCell>\n <DataList.TopCell>{valueLabel}</DataList.TopCell>\n <DataList.TopCell className=\"justify-end\">{updatedAtLabel}</DataList.TopCell>\n </DataList.Top>\n );\n}\n","import { CheckIcon, Code2Icon, CopyIcon, EyeIcon, EyeOffIcon } from 'lucide-react';\nimport { use, useState } from 'react';\nimport type { ReactNode } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorReadOnlyItemProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { DataList } from '@/ds/components/DataList/data-list';\nimport { Txt } from '@/ds/components/Txt';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorReadOnlyItem({\n className,\n name,\n value,\n copyValue,\n copyLabel = 'Copy value',\n updatedAt,\n revealed,\n defaultRevealed,\n onRevealedChange,\n actor,\n icon,\n ...props\n}: EnvironmentVariablesEditorReadOnlyItemProps) {\n const { showIcon } = use(EnvironmentVariablesEditorReadOnlyListContext);\n const [uncontrolledRevealed, setUncontrolledRevealed] = useState(defaultRevealed ?? false);\n const { isCopied, copyToClipboard } = useCopyToClipboard({ copiedDuration: 1500, showToast: false });\n const isRevealed = revealed ?? uncontrolledRevealed;\n const displayedValue = isRevealed ? value : '************';\n const leadingIcon = icon ?? <Code2Icon />;\n const resolvedCopyValue = copyValue ?? getCopyableReadOnlyValue(value);\n const canCopyValue = isRevealed && Boolean(resolvedCopyValue);\n\n function toggleRevealed() {\n const nextRevealed = !isRevealed;\n\n if (revealed === undefined) {\n setUncontrolledRevealed(nextRevealed);\n }\n\n onRevealedChange?.(nextRevealed);\n }\n\n function handleCopyValue() {\n if (!resolvedCopyValue) return;\n\n copyToClipboard(resolvedCopyValue);\n }\n\n return (\n <DataList.RowStatic className={cn('min-h-14', className)} {...props}>\n {showIcon && (\n <DataList.Cell className=\"justify-items-center overflow-visible\">\n <span className=\"flex size-7 items-center justify-center rounded-full border border-border text-muted-foreground [&>svg]:size-3.5\">\n {leadingIcon}\n </span>\n </DataList.Cell>\n )}\n\n <DataList.TextCell font=\"mono\" className=\"text-caption text-foreground\">\n {name}\n </DataList.TextCell>\n\n <DataList.Cell className=\"min-w-0\">\n {value !== undefined && (\n <span className=\"flex min-w-0 items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={isRevealed ? 'Hide value' : 'Show value'}\n onClick={toggleRevealed}\n >\n {isRevealed ? <EyeOffIcon aria-hidden /> : <EyeIcon aria-hidden />}\n </Button>\n <span className=\"group relative flex min-w-0 flex-1 items-center\">\n <Txt\n as=\"span\"\n variant=\"meta\"\n tone=\"muted\"\n font=\"mono\"\n className={cn('block min-w-0 flex-1 truncate', canCopyValue && 'pr-7')}\n >\n {displayedValue}\n </Txt>\n {canCopyValue && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={isCopied ? 'Copied value' : copyLabel}\n tooltip={isCopied ? 'Copied' : copyLabel}\n className=\"absolute right-0 opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100 focus-visible:opacity-100\"\n onClick={handleCopyValue}\n >\n {isCopied ? <CheckIcon aria-hidden /> : <CopyIcon aria-hidden />}\n </Button>\n )}\n </span>\n </span>\n )}\n </DataList.Cell>\n\n <DataList.Cell className=\"min-w-0 justify-items-end text-meta text-muted-foreground\">\n {(updatedAt || actor) && (\n <span className=\"flex min-w-0 items-center gap-2\">\n <span className=\"truncate\">{updatedAt}</span>\n {actor}\n </span>\n )}\n </DataList.Cell>\n </DataList.RowStatic>\n );\n}\n\nfunction getCopyableReadOnlyValue(value: ReactNode) {\n if (typeof value === 'string' || typeof value === 'number') {\n return String(value);\n }\n\n return undefined;\n}\n","import { useMemo } from 'react';\n\nimport { EnvironmentVariablesEditorReadOnlyListContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorReadOnlyHeader } from './environment-variables-editor-read-only-header';\nimport type { EnvironmentVariablesEditorReadOnlyListProps } from './environment-variables-editor.types';\nimport { DataList } from '@/ds/components/DataList/data-list';\nimport { cn } from '@/lib/utils';\n\nconst READ_ONLY_COLUMNS = 'minmax(12rem,1.4fr) minmax(8rem,0.9fr) minmax(8rem,auto)';\nconst READ_ONLY_COLUMNS_WITH_ICON = `auto ${READ_ONLY_COLUMNS}`;\n\nexport function EnvironmentVariablesEditorReadOnlyList({\n className,\n children,\n columns,\n header,\n showHeader = true,\n showIcon = false,\n nameLabel,\n valueLabel,\n updatedAtLabel,\n scrollRef,\n ...props\n}: EnvironmentVariablesEditorReadOnlyListProps) {\n const resolvedColumns = columns ?? (showIcon ? READ_ONLY_COLUMNS_WITH_ICON : READ_ONLY_COLUMNS);\n const contextValue = useMemo(() => ({ showIcon }), [showIcon]);\n\n return (\n <EnvironmentVariablesEditorReadOnlyListContext.Provider value={contextValue}>\n <DataList columns={resolvedColumns} scrollRef={scrollRef} className={cn('min-h-0', className)} {...props}>\n {showHeader &&\n (header ?? (\n <EnvironmentVariablesEditorReadOnlyHeader\n nameLabel={nameLabel}\n valueLabel={valueLabel}\n updatedAtLabel={updatedAtLabel}\n />\n ))}\n {children}\n </DataList>\n </EnvironmentVariablesEditorReadOnlyListContext.Provider>\n );\n}\n","import { useMemo } from 'react';\n\nimport { EnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorContextValue } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorPasteHint } from './environment-variables-editor-paste-hint';\nimport type { EnvironmentVariablesEditorRootProps } from './environment-variables-editor.types';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\n\nexport function EnvironmentVariablesEditorRoot<TRow extends EnvironmentVariableEntry = EnvironmentVariableEntry>({\n editor,\n className,\n children,\n disabled,\n readOnly,\n rowErrors,\n hidePasteHint,\n ...props\n}: EnvironmentVariablesEditorRootProps<TRow>) {\n const contextValue = useMemo<EnvironmentVariablesEditorContextValue>(\n () => ({\n editor: {\n rows: editor.rows,\n uploadError: editor.uploadError,\n fileInputRef: editor.fileInputRef,\n hasDuplicateKeys: editor.hasDuplicateKeys,\n updateRow: editor.updateRow,\n removeRow: editor.removeRow,\n handleFileUpload: editor.handleFileUpload,\n handlePaste: editor.handlePaste,\n getRowId: editor.getRowId,\n isValueRevealed: editor.isValueRevealed,\n toggleValueVisibility: editor.toggleValueVisibility,\n rowHasDuplicateKey: editor.rowHasDuplicateKey,\n appendRow: () => editor.appendRow(),\n },\n disabled: Boolean(disabled),\n readOnly: Boolean(readOnly),\n rowErrors,\n }),\n [editor, disabled, readOnly, rowErrors],\n );\n\n return (\n <EnvironmentVariablesEditorContext.Provider value={contextValue}>\n <div className={className} {...props}>\n {children}\n {!readOnly && !hidePasteHint && <EnvironmentVariablesEditorPasteHint />}\n </div>\n </EnvironmentVariablesEditorContext.Provider>\n );\n}\n","import { EyeIcon, EyeOffIcon, TrashIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorRowProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\nimport { Field, FieldError, FieldLabel } from '@/ds/components/Field';\nimport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from '@/ds/components/InputGroup';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorRow({\n row,\n index,\n rowErrors,\n keyLabel = 'Key',\n valueLabel = 'Value',\n keyPlaceholder = 'e.g: OPEN_AI_KEY',\n valuePlaceholder = 'e.g: sk-xxxxxxxx',\n duplicateKeyMessage = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n className,\n ...props\n}: EnvironmentVariablesEditorRowProps) {\n const {\n editor,\n disabled,\n readOnly,\n rowErrors: contextRowErrors,\n } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.Row');\n const isDisabled = disabled || readOnly;\n const resolvedRowErrors = rowErrors ?? contextRowErrors;\n const keyError = resolvedRowErrors?.[index]?.key ?? (editor.rowHasDuplicateKey(index) ? duplicateKeyMessage : null);\n const valueError = resolvedRowErrors?.[index]?.value;\n const revealValueLabel = editor.isValueRevealed(index) ? 'Hide value' : 'Show value';\n const removeRowLabel = `Remove environment variable ${row.key.trim() || index + 1}`;\n\n function handlePaste(text: string, field: 'key' | 'value') {\n return editor.handlePaste(index, text, field);\n }\n\n return (\n <div className={cn('flex flex-col items-stretch gap-2 sm:flex-row sm:items-start', className)} {...props}>\n <Field invalid={Boolean(keyError)} className=\"flex-1\">\n <FieldLabel>{keyLabel}</FieldLabel>\n <InputGroup className=\"w-full\">\n <InputGroupInput\n placeholder={keyPlaceholder}\n className=\"font-mono\"\n value={row.key}\n disabled={isDisabled}\n onChange={event => editor.updateRow(index, { key: event.target.value })}\n onPaste={event => {\n if (handlePaste(event.clipboardData.getData('text'), 'key')) {\n event.preventDefault();\n }\n }}\n />\n </InputGroup>\n <FieldError>{keyError}</FieldError>\n </Field>\n\n <Field invalid={Boolean(valueError)} className=\"flex-1\">\n <FieldLabel>{valueLabel}</FieldLabel>\n <InputGroup className=\"w-full\">\n <InputGroupInput\n placeholder={valuePlaceholder}\n className=\"font-mono\"\n type={editor.isValueRevealed(index) ? 'text' : 'password'}\n value={row.value}\n disabled={isDisabled}\n onChange={event => editor.updateRow(index, { value: event.target.value })}\n onPaste={event => {\n if (handlePaste(event.clipboardData.getData('text'), 'value')) {\n event.preventDefault();\n }\n }}\n />\n <InputGroupAddon align=\"inline-end\">\n <InputGroupButton\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n disabled={isDisabled}\n aria-label={revealValueLabel}\n tooltip={revealValueLabel}\n onClick={() => editor.toggleValueVisibility(index)}\n >\n {editor.isValueRevealed(index) ? <EyeOffIcon aria-hidden /> : <EyeIcon aria-hidden />}\n </InputGroupButton>\n </InputGroupAddon>\n </InputGroup>\n <FieldError>{valueError}</FieldError>\n </Field>\n\n {!readOnly && (\n <div className=\"flex items-center gap-2 self-end sm:self-auto sm:pt-7\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n disabled={disabled}\n aria-label={removeRowLabel}\n tooltip=\"Remove variable\"\n onClick={() => editor.removeRow(index)}\n >\n <TrashIcon />\n </Button>\n </div>\n )}\n </div>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorRow } from './environment-variables-editor-row';\nimport type { EnvironmentVariablesEditorRowsProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorRows({\n className,\n rowErrors,\n keyLabel,\n valueLabel,\n keyPlaceholder,\n valuePlaceholder,\n duplicateKeyMessage,\n ...props\n}: EnvironmentVariablesEditorRowsProps) {\n const { editor, rowErrors: contextRowErrors } = useEnvironmentVariablesEditorContext(\n 'EnvironmentVariablesEditor.Rows',\n );\n const resolvedRowErrors = rowErrors ?? contextRowErrors;\n\n return (\n <div className={cn('space-y-2', className)} {...props}>\n {editor.rows.map((row, index) => (\n <EnvironmentVariablesEditorRow\n key={editor.getRowId(index)}\n row={row}\n index={index}\n rowErrors={resolvedRowErrors}\n keyLabel={keyLabel}\n valueLabel={valueLabel}\n keyPlaceholder={keyPlaceholder}\n valuePlaceholder={valuePlaceholder}\n duplicateKeyMessage={duplicateKeyMessage}\n />\n ))}\n </div>\n );\n}\n","import { UploadIcon } from 'lucide-react';\n\nimport { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport type { EnvironmentVariablesEditorUploadButtonProps } from './environment-variables-editor.types';\nimport { Button } from '@/ds/components/Button';\n\nexport function EnvironmentVariablesEditorUploadButton({\n children = 'Import .env',\n inputLabel = 'Import .env file',\n disabled,\n onClick,\n type = 'button',\n variant = 'ghost',\n size = 'sm',\n ...props\n}: EnvironmentVariablesEditorUploadButtonProps) {\n const {\n editor,\n disabled: contextDisabled,\n readOnly,\n } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.UploadButton');\n const isDisabled = contextDisabled || disabled;\n\n if (readOnly) return null;\n\n return (\n <>\n <input\n ref={editor.fileInputRef}\n type=\"file\"\n accept=\".env,text/plain\"\n aria-label={inputLabel}\n className=\"hidden\"\n disabled={isDisabled}\n onChange={editor.handleFileUpload}\n />\n <Button\n type={type}\n variant={variant}\n size={size}\n disabled={isDisabled}\n onClick={event => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n editor.fileInputRef.current?.click();\n }\n }}\n icon={<UploadIcon />}\n {...props}\n >\n {children}\n </Button>\n </>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorUploadButton } from './environment-variables-editor-upload-button';\nimport type { EnvironmentVariablesEditorUploadProps } from './environment-variables-editor.types';\nimport { cn } from '@/lib/utils';\n\nexport function EnvironmentVariablesEditorUpload({\n className,\n children,\n ...props\n}: EnvironmentVariablesEditorUploadProps) {\n const { readOnly } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.Upload');\n\n if (readOnly) return null;\n\n return (\n <div className={cn('flex flex-wrap items-center justify-end gap-2', className)} {...props}>\n {children ?? <EnvironmentVariablesEditorUploadButton />}\n </div>\n );\n}\n","import { useEnvironmentVariablesEditorContext } from './environment-variables-editor-context';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport type { EnvironmentVariablesEditorUploadErrorProps } from './environment-variables-editor.types';\n\nexport function EnvironmentVariablesEditorUploadError(props: EnvironmentVariablesEditorUploadErrorProps) {\n const { editor } = useEnvironmentVariablesEditorContext('EnvironmentVariablesEditor.UploadError');\n\n if (!editor.uploadError) return null;\n\n return <EnvironmentVariablesEditorMessages error={editor.uploadError} {...props} />;\n}\n","import { EnvironmentVariablesEditorActions } from './environment-variables-editor-actions';\nimport { EnvironmentVariablesEditorAddButton } from './environment-variables-editor-add-button';\nimport { EnvironmentVariablesEditorDuplicateKeysError } from './environment-variables-editor-duplicate-keys-error';\nimport { EnvironmentVariablesEditorMessages } from './environment-variables-editor-messages';\nimport { EnvironmentVariablesEditorPasteHint } from './environment-variables-editor-paste-hint';\nimport { EnvironmentVariablesEditorReadOnlyEmpty } from './environment-variables-editor-read-only-empty';\nimport { EnvironmentVariablesEditorReadOnlyHeader } from './environment-variables-editor-read-only-header';\nimport { EnvironmentVariablesEditorReadOnlyItem } from './environment-variables-editor-read-only-item';\nimport { EnvironmentVariablesEditorReadOnlyList } from './environment-variables-editor-read-only-list';\nimport { EnvironmentVariablesEditorRoot } from './environment-variables-editor-root';\nimport { EnvironmentVariablesEditorRow } from './environment-variables-editor-row';\nimport { EnvironmentVariablesEditorRows } from './environment-variables-editor-rows';\nimport { EnvironmentVariablesEditorUpload } from './environment-variables-editor-upload';\nimport { EnvironmentVariablesEditorUploadButton } from './environment-variables-editor-upload-button';\nimport { EnvironmentVariablesEditorUploadError } from './environment-variables-editor-upload-error';\nimport type { EnvironmentVariablesEditorProps } from './environment-variables-editor.types';\nimport type { EnvironmentVariableEntry } from '@/lib/env-file';\nimport { DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE } from '@/lib/env-file';\nimport { cn } from '@/lib/utils';\n\nconst renderEnvironmentVariablesEditor = <TRow extends EnvironmentVariableEntry = EnvironmentVariableEntry>({\n className,\n children,\n addLabel = 'Add Variable',\n keyLabel = 'Key',\n valueLabel = 'Value',\n keyPlaceholder = 'e.g: OPEN_AI_KEY',\n valuePlaceholder = 'e.g: sk-xxxxxxxx',\n duplicateKeyMessage = DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE,\n rowErrors,\n error,\n actions,\n ...props\n}: EnvironmentVariablesEditorProps<TRow>) => {\n return (\n <EnvironmentVariablesEditorRoot\n className={cn(!children && 'space-y-3', className)}\n rowErrors={rowErrors}\n {...props}\n >\n {children ?? (\n <>\n <EnvironmentVariablesEditorUpload>\n <EnvironmentVariablesEditorUploadButton />\n </EnvironmentVariablesEditorUpload>\n <EnvironmentVariablesEditorUploadError />\n <EnvironmentVariablesEditorRows\n rowErrors={rowErrors}\n keyLabel={keyLabel}\n valueLabel={valueLabel}\n keyPlaceholder={keyPlaceholder}\n valuePlaceholder={valuePlaceholder}\n duplicateKeyMessage={duplicateKeyMessage}\n />\n <EnvironmentVariablesEditorAddButton>{addLabel}</EnvironmentVariablesEditorAddButton>\n <EnvironmentVariablesEditorDuplicateKeysError message={duplicateKeyMessage} />\n <EnvironmentVariablesEditorMessages error={error} />\n {actions && <EnvironmentVariablesEditorActions>{actions}</EnvironmentVariablesEditorActions>}\n </>\n )}\n </EnvironmentVariablesEditorRoot>\n );\n};\n\nexport const EnvironmentVariablesEditor = Object.assign(renderEnvironmentVariablesEditor, {\n Root: EnvironmentVariablesEditorRoot,\n Upload: EnvironmentVariablesEditorUpload,\n UploadButton: EnvironmentVariablesEditorUploadButton,\n UploadError: EnvironmentVariablesEditorUploadError,\n Rows: EnvironmentVariablesEditorRows,\n Row: EnvironmentVariablesEditorRow,\n AddButton: EnvironmentVariablesEditorAddButton,\n PasteHint: EnvironmentVariablesEditorPasteHint,\n Messages: EnvironmentVariablesEditorMessages,\n DuplicateKeysError: EnvironmentVariablesEditorDuplicateKeysError,\n Actions: EnvironmentVariablesEditorActions,\n ReadOnlyList: EnvironmentVariablesEditorReadOnlyList,\n ReadOnlyHeader: EnvironmentVariablesEditorReadOnlyHeader,\n ReadOnlyEmpty: EnvironmentVariablesEditorReadOnlyEmpty,\n ReadOnlyItem: EnvironmentVariablesEditorReadOnlyItem,\n});\n\nexport type {\n EnvironmentVariablesEditorActionsProps,\n EnvironmentVariablesEditorAddButtonProps,\n EnvironmentVariablesEditorDuplicateKeysErrorProps,\n EnvironmentVariablesEditorMessagesProps,\n EnvironmentVariablesEditorPasteHintProps,\n EnvironmentVariablesEditorProps,\n EnvironmentVariablesEditorReadOnlyEmptyProps,\n EnvironmentVariablesEditorReadOnlyHeaderProps,\n EnvironmentVariablesEditorReadOnlyItemProps,\n EnvironmentVariablesEditorReadOnlyListProps,\n EnvironmentVariablesEditorRootProps,\n EnvironmentVariablesEditorRowErrors,\n EnvironmentVariablesEditorRowProps,\n EnvironmentVariablesEditorRowsProps,\n EnvironmentVariablesEditorUploadButtonProps,\n EnvironmentVariablesEditorUploadErrorProps,\n EnvironmentVariablesEditorUploadProps,\n} from './environment-variables-editor.types';\n"],"names":["jsx","cn","createContext","use","jsxs","Button","PlusIcon","Notice","DUPLICATE_ENVIRONMENT_VARIABLE_MESSAGE","Txt","DataList","useState","useCopyToClipboard","Code2Icon","EyeOffIcon","EyeIcon","CheckIcon","CopyIcon","useMemo","Field","FieldLabel","InputGroup","InputGroupInput","FieldError","InputGroupAddon","InputGroupButton","TrashIcon","Fragment","UploadIcon"],"mappings":"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"}
|