@mastra/playground-ui 68.0.0-alpha.0 → 68.0.0-alpha.2
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/{ActionRow-BfK77pCT.cjs → ActionRow-BlC9GAef.cjs} +4 -4
- package/dist/ActionRow-BlC9GAef.cjs.map +1 -0
- package/dist/{ActionRow-Cd6tOC2K.js → ActionRow-DCrRCvBq.js} +4 -4
- package/dist/ActionRow-DCrRCvBq.js.map +1 -0
- package/dist/{Button-Bw1e3ONi.js → Button-CLXTbAY8.js} +42 -13
- package/dist/Button-CLXTbAY8.js.map +1 -0
- package/dist/{Button-YQRflC47.cjs → Button-DLcMcuUL.cjs} +58 -11
- package/dist/Button-DLcMcuUL.cjs.map +1 -0
- package/dist/{CodeEditor-CJ9jC9lu.cjs → CodeEditor-CLzs0yVc.cjs} +4 -4
- package/dist/{CodeEditor-CJ9jC9lu.cjs.map → CodeEditor-CLzs0yVc.cjs.map} +1 -1
- package/dist/{CodeEditor-CPVxj7WS.js → CodeEditor-COnz9c6B.js} +4 -4
- package/dist/{CodeEditor-CPVxj7WS.js.map → CodeEditor-COnz9c6B.js.map} +1 -1
- package/dist/{Comment-VFJq2wRp.js → Comment-0n98b_f_.js} +3 -3
- package/dist/{Comment-VFJq2wRp.js.map → Comment-0n98b_f_.js.map} +1 -1
- package/dist/{Comment-KYUQzeSu.cjs → Comment-Cg0f7eLa.cjs} +3 -3
- package/dist/{Comment-KYUQzeSu.cjs.map → Comment-Cg0f7eLa.cjs.map} +1 -1
- package/dist/{DataCodeSection-CZRPsStI.cjs → DataCodeSection-CFxXsQWH.cjs} +10 -10
- package/dist/DataCodeSection-CFxXsQWH.cjs.map +1 -0
- package/dist/{DataCodeSection-Ckd47p_S.js → DataCodeSection-PY9XEg2C.js} +8 -8
- package/dist/DataCodeSection-PY9XEg2C.js.map +1 -0
- package/dist/{DataDetailsPanel-_CK0Huk6.js → DataDetailsPanel-CohEKPm4.js} +5 -5
- package/dist/{DataDetailsPanel-_CK0Huk6.js.map → DataDetailsPanel-CohEKPm4.js.map} +1 -1
- package/dist/{DataDetailsPanel-DFhM9H5D.cjs → DataDetailsPanel-DiyjEXqK.cjs} +6 -6
- package/dist/{DataDetailsPanel-DFhM9H5D.cjs.map → DataDetailsPanel-DiyjEXqK.cjs.map} +1 -1
- package/dist/{DataList-2tIlQsLc.js → DataList-CUhRQAv6.js} +2 -2
- package/dist/{DataList-2tIlQsLc.js.map → DataList-CUhRQAv6.js.map} +1 -1
- package/dist/{DataList-Czwmwyvp.cjs → DataList-Cj0mfk19.cjs} +2 -2
- package/dist/{DataList-Czwmwyvp.cjs.map → DataList-Cj0mfk19.cjs.map} +1 -1
- package/dist/{DataPanel-C0Ll76Ne.cjs → DataPanel-Coc9h35I.cjs} +3 -3
- package/dist/{DataPanel-C0Ll76Ne.cjs.map → DataPanel-Coc9h35I.cjs.map} +1 -1
- package/dist/{DataPanel-CY1W5LHJ.js → DataPanel-IgB9D5PO.js} +3 -3
- package/dist/{DataPanel-CY1W5LHJ.js.map → DataPanel-IgB9D5PO.js.map} +1 -1
- package/dist/{Dialog-CjaiCrkv.cjs → Dialog-BvWF9HE-.cjs} +2 -2
- package/dist/{Dialog-CjaiCrkv.cjs.map → Dialog-BvWF9HE-.cjs.map} +1 -1
- package/dist/{Dialog-CKtTR8h3.js → Dialog-DaWtxwd9.js} +2 -2
- package/dist/{Dialog-CKtTR8h3.js.map → Dialog-DaWtxwd9.js.map} +1 -1
- package/dist/{ErrorBoundary-Bm0LL_b7.cjs → ErrorBoundary-B5GjmA6V.cjs} +2 -2
- package/dist/{ErrorBoundary-Bm0LL_b7.cjs.map → ErrorBoundary-B5GjmA6V.cjs.map} +1 -1
- package/dist/{ErrorBoundary-95_6A77S.js → ErrorBoundary-Cat3KU86.js} +2 -2
- package/dist/{ErrorBoundary-95_6A77S.js.map → ErrorBoundary-Cat3KU86.js.map} +1 -1
- package/dist/{FilterBar--4oguuVe.js → FilterBar-BgW2dqRQ.js} +21 -25
- package/dist/FilterBar-BgW2dqRQ.js.map +1 -0
- package/dist/{FilterBar-BUd4f7oi.cjs → FilterBar-CQl04O6t.cjs} +21 -25
- package/dist/FilterBar-CQl04O6t.cjs.map +1 -0
- package/dist/{LogsDataList-Cslabh8K.js → LogsDataList-BI2C5OJz.js} +2 -2
- package/dist/{LogsDataList-Cslabh8K.js.map → LogsDataList-BI2C5OJz.js.map} +1 -1
- package/dist/{LogsDataList-DMmxAt_t.cjs → LogsDataList-CCIfUPGo.cjs} +2 -2
- package/dist/{LogsDataList-DMmxAt_t.cjs.map → LogsDataList-CCIfUPGo.cjs.map} +1 -1
- package/dist/{MarkdownRenderer-DME2xKTk.js → MarkdownRenderer-2GOXQJEv.js} +3 -3
- package/dist/{MarkdownRenderer-DME2xKTk.js.map → MarkdownRenderer-2GOXQJEv.js.map} +1 -1
- package/dist/{MarkdownRenderer-CS6u5drO.cjs → MarkdownRenderer-CB8Z_CHc.cjs} +4 -4
- package/dist/{MarkdownRenderer-CS6u5drO.cjs.map → MarkdownRenderer-CB8Z_CHc.cjs.map} +1 -1
- package/dist/{Message-nVI6tMS3.js → Message-CWzi5F_Q.js} +2 -2
- package/dist/{Message-nVI6tMS3.js.map → Message-CWzi5F_Q.js.map} +1 -1
- package/dist/{Message-DsCNQpou.cjs → Message-jj56lxNL.cjs} +2 -2
- package/dist/{Message-DsCNQpou.cjs.map → Message-jj56lxNL.cjs.map} +1 -1
- package/dist/{MetricsTable-D-aZf3dk.cjs → MetricsTable-BSl81oNe.cjs} +44 -9
- package/dist/MetricsTable-BSl81oNe.cjs.map +1 -0
- package/dist/{MetricsTable-CRPeLHe1.js → MetricsTable-DID6LRoP.js} +44 -9
- package/dist/MetricsTable-DID6LRoP.js.map +1 -0
- package/dist/{Notice-CyKngbbv.js → Notice-C-8oOZZF.js} +2 -2
- package/dist/{Notice-CyKngbbv.js.map → Notice-C-8oOZZF.js.map} +1 -1
- package/dist/{Notice-DWNeCe-t.cjs → Notice-JZ7SW7q6.cjs} +2 -2
- package/dist/{Notice-DWNeCe-t.cjs.map → Notice-JZ7SW7q6.cjs.map} +1 -1
- package/dist/{Workflow-BVWvgDmI.js → Workflow-C3SlEdP-.js} +5 -5
- package/dist/{Workflow-BVWvgDmI.js.map → Workflow-C3SlEdP-.js.map} +1 -1
- package/dist/{Workflow-BeF6pIO9.cjs → Workflow-DSWQ-ROz.cjs} +5 -5
- package/dist/{Workflow-BeF6pIO9.cjs.map → Workflow-DSWQ-ROz.cjs.map} +1 -1
- package/dist/{activity-DAK8tj7r.cjs → activity-DyB5H3gF.cjs} +2 -2
- package/dist/{activity-DAK8tj7r.cjs.map → activity-DyB5H3gF.cjs.map} +1 -1
- package/dist/{activity-CM34JyW-.js → activity-rJ1NQl_2.js} +2 -2
- package/dist/{activity-CM34JyW-.js.map → activity-rJ1NQl_2.js.map} +1 -1
- package/dist/{ask-user-C82m_G9W.cjs → ask-user-C1p2PEYe.cjs} +3 -3
- package/dist/ask-user-C1p2PEYe.cjs.map +1 -0
- package/dist/{ask-user-BdjH9F7G.js → ask-user-DPznrqGO.js} +3 -3
- package/dist/ask-user-DPznrqGO.js.map +1 -0
- package/dist/buttons-group-Dc6R7YSs.cjs +48 -0
- package/dist/buttons-group-Dc6R7YSs.cjs.map +1 -0
- package/dist/buttons-group-DkFlnMiL.js +35 -0
- package/dist/buttons-group-DkFlnMiL.js.map +1 -0
- package/dist/{ButtonsGroup.css → buttons-group.css} +2 -0
- package/dist/chart-plot.css +5 -4
- package/dist/clear-filters-button-Buc973vw.cjs +27 -0
- package/dist/clear-filters-button-Buc973vw.cjs.map +1 -0
- package/dist/clear-filters-button-CNrRuHOY.js +22 -0
- package/dist/clear-filters-button-CNrRuHOY.js.map +1 -0
- package/dist/{combobox-wFudhN8F.js → combobox-D21no8t5.js} +5 -5
- package/dist/{combobox-wFudhN8F.js.map → combobox-D21no8t5.js.map} +1 -1
- package/dist/{combobox-8kNAJFlj.cjs → combobox-DIT_6xiG.cjs} +5 -5
- package/dist/combobox-DIT_6xiG.cjs.map +1 -0
- package/dist/{combobox-parts-BZVXwbG7.cjs → combobox-parts-C4phOq4t.cjs} +10 -18
- package/dist/combobox-parts-C4phOq4t.cjs.map +1 -0
- package/dist/{combobox-parts-W7KRQUsV.js → combobox-parts-D90ir0Py.js} +11 -19
- package/dist/combobox-parts-D90ir0Py.js.map +1 -0
- package/dist/components/ActionRow.cjs.js +1 -1
- package/dist/components/ActionRow.es.js +1 -1
- package/dist/components/AlertDialog.cjs.js +2 -2
- package/dist/components/AlertDialog.es.js +2 -2
- package/dist/components/Button.cjs.js +4 -1
- package/dist/components/Button.es.js +2 -2
- package/dist/components/ButtonsGroup.cjs.js +3 -38
- package/dist/components/ButtonsGroup.es.js +1 -35
- package/dist/components/ClampedText.cjs.js +1 -1
- package/dist/components/ClampedText.es.js +1 -1
- package/dist/components/ClearFiltersButton.cjs.js +3 -0
- package/dist/components/ClearFiltersButton.d.ts +1 -0
- package/dist/components/ClearFiltersButton.es.js +1 -0
- package/dist/components/CodeBlock.cjs.js +3 -3
- package/dist/components/CodeBlock.es.js +3 -3
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/CollapsibleBox.cjs.js +1 -1
- package/dist/components/CollapsibleBox.es.js +1 -1
- package/dist/components/Combobox.cjs.js +2 -2
- package/dist/components/Combobox.es.js +2 -2
- package/dist/components/Command.cjs.js +3 -2
- package/dist/components/Command.cjs.js.map +1 -1
- package/dist/components/Command.es.js +3 -2
- package/dist/components/Command.es.js.map +1 -1
- package/dist/components/Comment.cjs.js +1 -1
- package/dist/components/Comment.es.js +1 -1
- package/dist/components/CopyButton.cjs.js +1 -1
- package/dist/components/CopyButton.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +1 -1
- package/dist/components/DataDetailsPanel.es.js +1 -1
- package/dist/components/DataList.cjs.js +3 -3
- package/dist/components/DataList.es.js +3 -3
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +1 -1
- package/dist/components/DateRangeTimeline.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +3 -3
- package/dist/components/DateTimePicker.cjs.js.map +1 -1
- package/dist/components/DateTimePicker.es.js +3 -3
- package/dist/components/DateTimePicker.es.js.map +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +2 -2
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +1 -1
- package/dist/components/Dialog.es.js +1 -1
- package/dist/components/DisabledFeatureButton.cjs.js +1 -1
- package/dist/components/DisabledFeatureButton.es.js +1 -1
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +4 -4
- package/dist/components/EnvironmentVariablesEditor.es.js +4 -4
- package/dist/components/ErrorBoundary.cjs.js +1 -1
- package/dist/components/ErrorBoundary.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +7 -2
- package/dist/components/FilterBar.es.js +4 -3
- package/dist/components/FormFieldBlocks.cjs.js +3 -3
- package/dist/components/FormFieldBlocks.cjs.js.map +1 -1
- package/dist/components/FormFieldBlocks.es.js +3 -3
- package/dist/components/FormFieldBlocks.es.js.map +1 -1
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/InputNumber.cjs.js +2 -2
- package/dist/components/InputNumber.es.js +2 -2
- package/dist/components/JSONSchemaForm.cjs.js +2 -2
- package/dist/components/JSONSchemaForm.es.js +2 -2
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -2
- package/dist/components/LogsDataList.es.js +2 -2
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Message.cjs.js +1 -1
- package/dist/components/Message.es.js +1 -1
- package/dist/components/MetricsTable.cjs.js +1 -1
- package/dist/components/MetricsTable.es.js +1 -1
- package/dist/components/Notice.cjs.js +1 -1
- package/dist/components/Notice.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +4 -4
- package/dist/components/PropertyFilter.cjs.js.map +1 -1
- package/dist/components/PropertyFilter.es.js +4 -4
- package/dist/components/PropertyFilter.es.js.map +1 -1
- package/dist/components/RuleBuilder.cjs.js +2 -2
- package/dist/components/RuleBuilder.es.js +2 -2
- package/dist/components/SavedViews.cjs.js +4 -3
- package/dist/components/SavedViews.cjs.js.map +1 -1
- package/dist/components/SavedViews.es.js +4 -3
- package/dist/components/SavedViews.es.js.map +1 -1
- package/dist/components/SearchInput.cjs.js +5 -2
- package/dist/components/SearchInput.cjs.js.map +1 -1
- package/dist/components/SearchInput.es.js +5 -2
- package/dist/components/SearchInput.es.js.map +1 -1
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +5 -5
- package/dist/components/SideDialog.cjs.js.map +1 -1
- package/dist/components/SideDialog.es.js +4 -4
- package/dist/components/Sidebar.cjs.js +11 -11
- package/dist/components/Sidebar.cjs.js.map +1 -1
- package/dist/components/Sidebar.es.js +12 -12
- package/dist/components/Sidebar.es.js.map +1 -1
- package/dist/components/Tabs.cjs.js +2 -2
- package/dist/components/Tabs.es.js +2 -2
- package/dist/components/ThreadList.cjs.js +1 -1
- package/dist/components/ThreadList.es.js +1 -1
- package/dist/components/Toaster.cjs.js +2 -2
- package/dist/components/Toaster.es.js +2 -2
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/components/Workflow.cjs.js +1 -1
- package/dist/components/Workflow.es.js +1 -1
- 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 +2 -2
- package/dist/components/ai/plan.es.js +2 -2
- package/dist/components/ai/tool-approval.cjs.js +1 -1
- package/dist/components/ai/tool-approval.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +1 -1
- package/dist/components/ai/tool-call.es.js +1 -1
- package/dist/{copy-button-CF-X4iDj.js → copy-button-BXrbevLn.js} +2 -2
- package/dist/{copy-button-CF-X4iDj.js.map → copy-button-BXrbevLn.js.map} +1 -1
- package/dist/{copy-button-BYEFKNpo.cjs → copy-button-DJAQ6_3o.cjs} +2 -2
- package/dist/{copy-button-BYEFKNpo.cjs.map → copy-button-DJAQ6_3o.cjs.map} +1 -1
- package/dist/{data-list-BkimqE_P.cjs → data-list-C4Vmq5HA.cjs} +2 -2
- package/dist/{data-list-BkimqE_P.cjs.map → data-list-C4Vmq5HA.cjs.map} +1 -1
- package/dist/{data-list-evmf5xWI.js → data-list-DHCOoLmj.js} +2 -2
- package/dist/{data-list-evmf5xWI.js.map → data-list-DHCOoLmj.js.map} +1 -1
- package/dist/{DateTimeRangePicker-HmPOHwAQ.cjs → date-time-range-picker-CTt7Od0P.cjs} +71 -57
- package/dist/date-time-range-picker-CTt7Od0P.cjs.map +1 -0
- package/dist/{DateTimeRangePicker-C_Lie_2P.js → date-time-range-picker-DKh1K9Iy.js} +72 -58
- package/dist/date-time-range-picker-DKh1K9Iy.js.map +1 -0
- package/dist/domains/auth/components/session-expired.cjs.js +2 -2
- package/dist/domains/auth/components/session-expired.es.js +2 -2
- package/dist/domains/chat/activity/activity-stretch-line.cjs.js +1 -1
- package/dist/domains/chat/activity/activity-stretch-line.es.js +1 -1
- package/dist/domains/chat/activity/components/activity-fold.cjs.js +1 -1
- package/dist/domains/chat/activity/components/activity-fold.es.js +1 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js +1 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.es.js +1 -1
- package/dist/domains/chat/activity/components/calls-panel.cjs.js +1 -1
- package/dist/domains/chat/activity/components/calls-panel.es.js +1 -1
- package/dist/domains/chat/activity/components/stretch-content.cjs.js +1 -1
- package/dist/domains/chat/activity/components/stretch-content.es.js +1 -1
- package/dist/domains/chat/activity/components/stretch-thought.cjs.js +1 -1
- package/dist/domains/chat/activity/components/stretch-thought.es.js +1 -1
- package/dist/domains/chat/activity/model/activity-segments.cjs.js +1 -1
- package/dist/domains/chat/activity/model/activity-segments.es.js +1 -1
- package/dist/domains/chat/activity/model/activity-words.cjs.js +1 -1
- package/dist/domains/chat/activity/model/activity-words.es.js +1 -1
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -2
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -2
- package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
- package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge.es.js +1 -1
- package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
- package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
- package/dist/domains/chat/messages/dataset-save-action.cjs.js +5 -5
- package/dist/domains/chat/messages/dataset-save-action.es.js +5 -5
- package/dist/domains/chat/messages/message-row.cjs.js +4 -4
- package/dist/domains/chat/messages/message-row.es.js +4 -4
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
- package/dist/domains/chat/messages/reasoning-content.cjs.js +1 -1
- package/dist/domains/chat/messages/reasoning-content.es.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +2 -2
- package/dist/domains/chat/messages/renderers/message-text.es.js +2 -2
- 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/renderers/status-renderers.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
- package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/signal-badge.es.js +1 -1
- package/dist/domains/chat/messages/skill-message.cjs.js +2 -2
- package/dist/domains/chat/messages/skill-message.es.js +2 -2
- package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
- package/dist/domains/chat/messages/tripwire-notice.cjs.js +2 -2
- package/dist/domains/chat/messages/tripwire-notice.es.js +2 -2
- 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 +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +3 -3
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +3 -3
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +1 -1
- 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/knowledge-tool-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/mcp-task-chip.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +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 -3
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +3 -3
- package/dist/domains/chat/tools/connect-prompt-tool.cjs.js +3 -3
- package/dist/domains/chat/tools/connect-prompt-tool.es.js +3 -3
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js +1 -1
- package/dist/domains/chat/tools/submit-plan-tool.es.js +1 -1
- 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/chat/tools/tool-groups.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-groups.es.js +1 -1
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +1 -1
- package/dist/domains/dashboards/components/dashboard-renderer.es.js +1 -1
- package/dist/domains/dashboards/kinds/table/table-view.cjs.js +1 -1
- package/dist/domains/dashboards/kinds/table/table-view.es.js +1 -1
- package/dist/domains/dashboards/metrics-dashboard.cjs.js +1 -1
- package/dist/domains/dashboards/metrics-dashboard.cjs.js.map +1 -1
- package/dist/domains/dashboards/metrics-dashboard.es.js +1 -1
- package/dist/domains/dashboards/metrics-dashboard.es.js.map +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.cjs.js +4 -4
- package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js +4 -4
- package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.cjs.js +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.es.js +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.cjs.js +3 -3
- package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.es.js +3 -3
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +5 -5
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +5 -5
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js +1 -1
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js +1 -1
- package/dist/domains/logs/components/log-data-panel.cjs.js +6 -6
- package/dist/domains/logs/components/log-data-panel.cjs.js.map +1 -1
- package/dist/domains/logs/components/log-data-panel.es.js +4 -4
- 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-saved-views.cjs.js +1 -1
- package/dist/domains/logs/components/logs-saved-views.es.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
- package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
- package/dist/domains/logs/components/no-logs-info.es.js +1 -1
- package/dist/domains/logs/hooks/use-logs-filter-persistence.cjs.js +1 -1
- package/dist/domains/logs/hooks/use-logs-filter-persistence.es.js +1 -1
- package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-table.cjs.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-table.cjs.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-table.es.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-table.es.js.map +1 -1
- package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
- package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +2 -2
- package/dist/domains/metrics/components/date-range-selector.cjs.js.map +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js +4 -4
- package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js.map +1 -1
- package/dist/domains/metrics/components/metrics-time-range-chip.es.js +4 -4
- package/dist/domains/metrics/components/metrics-time-range-chip.es.js.map +1 -1
- package/dist/domains/metrics/drilldown.cjs.js +1 -1
- package/dist/domains/metrics/drilldown.es.js +1 -1
- package/dist/domains/metrics/metrics-filters.cjs.js +1 -1
- package/dist/domains/metrics/metrics-filters.es.js +1 -1
- package/dist/domains/observability/hooks/use-observability-list-filters.cjs.js +1 -1
- package/dist/domains/observability/hooks/use-observability-list-filters.es.js +1 -1
- package/dist/domains/observability/observability-list-url-state.cjs.js +1 -1
- package/dist/domains/observability/observability-list-url-state.es.js +1 -1
- package/dist/domains/observability/saved-view-state.cjs.js +1 -1
- package/dist/domains/observability/saved-view-state.es.js +1 -1
- package/dist/domains/observability/saved-views/observability-saved-views.cjs.js +1 -1
- package/dist/domains/observability/saved-views/observability-saved-views.es.js +1 -1
- package/dist/domains/observability/saved-views.cjs.js +1 -1
- package/dist/domains/observability/saved-views.es.js +1 -1
- package/dist/domains/observability.cjs.js +1 -1
- package/dist/domains/observability.es.js +1 -1
- package/dist/domains/scores/components/score-data-panel.cjs.js +2 -2
- package/dist/domains/scores/components/score-data-panel.es.js +2 -2
- package/dist/domains/scores/components/span-scoring.cjs.js +6 -6
- package/dist/domains/scores/components/span-scoring.cjs.js.map +1 -1
- package/dist/domains/scores/components/span-scoring.es.js +6 -6
- package/dist/domains/scores/components/span-scoring.es.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-list.cjs.js +2 -2
- package/dist/domains/scores/components/trace-scores-list.es.js +2 -2
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +1 -1
- package/dist/domains/skills/skill-simple-form.cjs.js +3 -3
- package/dist/domains/skills/skill-simple-form.cjs.js.map +1 -1
- package/dist/domains/skills/skill-simple-form.es.js +3 -3
- package/dist/domains/skills/skill-simple-form.es.js.map +1 -1
- package/dist/domains/spans/components/spans-explorer-body.cjs.js +8 -8
- package/dist/domains/spans/components/spans-explorer-body.cjs.js.map +1 -1
- package/dist/domains/spans/components/spans-explorer-body.es.js +8 -8
- package/dist/domains/spans/components/spans-explorer-body.es.js.map +1 -1
- package/dist/domains/spans/components/spans-filter-bar.cjs.js +6 -6
- package/dist/domains/spans/components/spans-filter-bar.cjs.js.map +1 -1
- package/dist/domains/spans/components/spans-filter-bar.es.js +6 -6
- package/dist/domains/spans/components/spans-filter-bar.es.js.map +1 -1
- package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +5 -5
- package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js.map +1 -1
- package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +5 -5
- package/dist/domains/spans/hooks/use-spans-filter-bar.es.js.map +1 -1
- package/dist/domains/spans/span-filters.cjs.js +2 -2
- package/dist/domains/spans/span-filters.cjs.js.map +1 -1
- package/dist/domains/spans/span-filters.es.js +2 -2
- package/dist/domains/spans/span-filters.es.js.map +1 -1
- package/dist/domains/threads/components/threads-explorer-body.cjs.js +8 -8
- package/dist/domains/threads/components/threads-explorer-body.cjs.js.map +1 -1
- package/dist/domains/threads/components/threads-explorer-body.es.js +8 -8
- package/dist/domains/threads/components/threads-explorer-body.es.js.map +1 -1
- package/dist/domains/threads/components/threads-filter-bar.cjs.js +6 -6
- package/dist/domains/threads/components/threads-filter-bar.cjs.js.map +1 -1
- package/dist/domains/threads/components/threads-filter-bar.es.js +6 -6
- package/dist/domains/threads/components/threads-filter-bar.es.js.map +1 -1
- package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js +5 -5
- package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js.map +1 -1
- package/dist/domains/threads/hooks/use-threads-filter-bar.es.js +5 -5
- package/dist/domains/threads/hooks/use-threads-filter-bar.es.js.map +1 -1
- package/dist/domains/threads/thread-filters.cjs.js +2 -2
- package/dist/domains/threads/thread-filters.cjs.js.map +1 -1
- package/dist/domains/threads/thread-filters.es.js +2 -2
- package/dist/domains/threads/thread-filters.es.js.map +1 -1
- package/dist/domains/traces/components/columns-menu/columns-menu.cjs.js +1 -1
- package/dist/domains/traces/components/columns-menu/columns-menu.es.js +1 -1
- package/dist/domains/traces/components/feedback-thread.cjs.js +4 -4
- package/dist/domains/traces/components/feedback-thread.cjs.js.map +1 -1
- package/dist/domains/traces/components/feedback-thread.es.js +4 -4
- package/dist/domains/traces/components/feedback-thread.es.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +5 -5
- package/dist/domains/traces/components/span-data-panel-view.es.js +5 -5
- package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-details-view.es.js +1 -1
- package/dist/domains/traces/components/span-outcome.cjs.js +1 -1
- package/dist/domains/traces/components/span-outcome.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +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 +3 -3
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-json.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +1 -1
- 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-section.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js +2 -2
- 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-mutations.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-mutations.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-tools-section.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-tools-section.es.js +1 -1
- package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +5 -6
- package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +5 -6
- 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 -5
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +5 -5
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-details-view.cjs.js +1 -1
- package/dist/domains/traces/components/trace-details-view.es.js +1 -1
- package/dist/domains/traces/components/trace-error-cell.cjs.js +1 -1
- package/dist/domains/traces/components/trace-error-cell.es.js +1 -1
- package/dist/domains/traces/components/trace-error-summary.cjs.js +1 -1
- package/dist/domains/traces/components/trace-error-summary.es.js +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 +1 -1
- package/dist/domains/traces/components/trace-span-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.es.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +6 -6
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +6 -6
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +5 -5
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +5 -5
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +2 -2
- package/dist/domains/traces/components/traces-list-view.es.js +2 -2
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -2
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -2
- package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
- package/dist/domains/traces/components/traces-spans-switch.cjs.js +1 -1
- package/dist/domains/traces/components/traces-spans-switch.es.js +1 -1
- package/dist/domains/traces/hooks/use-download-trace-json.cjs.js +1 -1
- package/dist/domains/traces/hooks/use-download-trace-json.es.js +1 -1
- package/dist/domains/traces/trace-filters.cjs.js +1 -1
- package/dist/domains/traces/trace-filters.es.js +1 -1
- package/dist/domains/traces/trace-query-filters.cjs.js +1 -1
- package/dist/domains/traces/trace-query-filters.es.js +1 -1
- package/dist/domains/traces.cjs.js +1 -1
- package/dist/domains/traces.es.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +3 -3
- package/dist/domains/workflows/components/workflow-combobox.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js +3 -3
- package/dist/domains/workflows/components/workflow-combobox.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-information.cjs.js +2 -2
- package/dist/domains/workflows/components/workflow-information.es.js +2 -2
- package/dist/domains/workflows/components/workflow-layout.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-layout.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/no-workflows-info.cjs.js +1 -1
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
- package/dist/domains/workflows/context/use-stream-for-run.cjs.js +1 -1
- package/dist/domains/workflows/context/use-stream-for-run.es.js +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.es.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +2 -2
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
- package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +2 -2
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +2 -2
- 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/utils.cjs.js +1 -1
- package/dist/domains/workflows/workflow/utils.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-cancel-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-layout.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-layout.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-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-step-node-utils.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-step-node-utils.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger.es.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +4 -4
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +4 -4
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-add-skill.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill.es.js +1 -1
- package/dist/domains/workspace/components/workspace-create-directory.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-create-directory.es.js +2 -2
- package/dist/domains/workspace/components/workspace-error.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-error.es.js +1 -1
- package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-markdown-preview.es.js +1 -1
- package/dist/domains/workspace/components/workspace-search.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-search.es.js +1 -1
- package/dist/domains/workspace/components/workspace-tree.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-tree.es.js +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +1 -1
- package/dist/ee/signals/components/signals-empty-state.cjs.js +1 -1
- package/dist/ee/signals/components/signals-empty-state.es.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +6 -6
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +5 -5
- package/dist/ee/signals/examples-pager.cjs.js +1 -1
- package/dist/ee/signals/examples-pager.es.js +1 -1
- package/dist/ee/signals/sankey-signals.cjs.js +1 -1
- package/dist/ee/signals/sankey-signals.es.js +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -2
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +2 -2
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +3 -3
- package/dist/ee/signals/settings/trace-signal-settings.es.js +3 -3
- package/dist/ee/signals/signals-error-state.cjs.js +1 -1
- package/dist/ee/signals/signals-error-state.es.js +1 -1
- package/dist/ee/signals/snapshot-timeline.cjs.js +1 -1
- package/dist/ee/signals/snapshot-timeline.es.js +1 -1
- package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
- package/dist/ee/signals/theme-filter-banner.es.js +1 -1
- package/dist/ee/signals/trace-insight-view.cjs.js +1 -1
- package/dist/ee/signals/trace-insight-view.es.js +1 -1
- package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
- package/dist/ee/signals/view-mode-tab.es.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
- package/dist/{filter-bar-chip-7O02P9Vk.js → filter-bar-chip-CABeKrtf.js} +88 -73
- package/dist/filter-bar-chip-CABeKrtf.js.map +1 -0
- package/dist/{filter-bar-chip-BUyMf8XQ.cjs → filter-bar-chip-Cg-UbIwP.cjs} +90 -81
- package/dist/filter-bar-chip-Cg-UbIwP.cjs.map +1 -0
- package/dist/filter-bar-chip.css +22 -0
- package/dist/filter-bar-time-range-BA-pXMlo.cjs +83 -0
- package/dist/filter-bar-time-range-BA-pXMlo.cjs.map +1 -0
- package/dist/filter-bar-time-range-mg9JeYue.js +60 -0
- package/dist/filter-bar-time-range-mg9JeYue.js.map +1 -0
- package/dist/hooks/use-copy-to-clipboard.cjs.js +1 -1
- package/dist/hooks/use-copy-to-clipboard.es.js +1 -1
- package/dist/{input-group-uDpFNnSW.cjs → input-group-DVJLZDBL.cjs} +6 -4
- package/dist/input-group-DVJLZDBL.cjs.map +1 -0
- package/dist/{input-group-g85FYfze.js → input-group-QKKV_ouF.js} +7 -5
- package/dist/input-group-QKKV_ouF.js.map +1 -0
- package/dist/layout/tabbed-container.cjs.js +1 -1
- package/dist/layout/tabbed-container.es.js +1 -1
- package/dist/lib/form/components/array-element-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/array-element-wrapper.es.js +1 -1
- package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/array-wrapper.es.js +1 -1
- package/dist/lib/form/components/date-field.cjs.js +1 -1
- package/dist/lib/form/components/date-field.es.js +1 -1
- package/dist/lib/form/components/error-message.cjs.js +1 -1
- package/dist/lib/form/components/error-message.es.js +1 -1
- package/dist/lib/form/components/form-submit-row.cjs.js +1 -1
- package/dist/lib/form/components/form-submit-row.es.js +1 -1
- package/dist/lib/form/components/record-field.cjs.js +1 -1
- package/dist/lib/form/components/record-field.es.js +1 -1
- package/dist/lib/form/components/select-field.cjs.js +1 -1
- package/dist/lib/form/components/select-field.es.js +1 -1
- package/dist/lib/form/components/submit-button.cjs.js +1 -1
- package/dist/lib/form/components/submit-button.es.js +1 -1
- package/dist/{list-search-BEJmYa9a.cjs → list-search-BtRno5As.cjs} +2 -2
- package/dist/list-search-BtRno5As.cjs.map +1 -0
- package/dist/{list-search-bg7WzULj.js → list-search-CkhsTFdG.js} +2 -2
- package/dist/list-search-CkhsTFdG.js.map +1 -0
- package/dist/{observability-saved-views-Zlz74syw.js → observability-saved-views-CjKTEp1V.js} +4 -4
- package/dist/observability-saved-views-CjKTEp1V.js.map +1 -0
- package/dist/{observability-saved-views-BNU3GkK6.cjs → observability-saved-views-Daizz4tU.cjs} +4 -4
- package/dist/observability-saved-views-Daizz4tU.cjs.map +1 -0
- package/dist/primitives/chart-plot.cjs.js +8 -6
- package/dist/primitives/chart-plot.cjs.js.map +1 -1
- package/dist/primitives/chart-plot.es.js +8 -6
- package/dist/primitives/chart-plot.es.js.map +1 -1
- package/dist/primitives/control-icon.cjs.js +9 -0
- package/dist/primitives/control-icon.cjs.js.map +1 -0
- package/dist/primitives/control-icon.d.ts +1 -0
- package/dist/primitives/control-icon.es.js +8 -0
- package/dist/primitives/control-icon.es.js.map +1 -0
- package/dist/primitives/control-size.cjs.js +6 -0
- package/dist/primitives/control-size.cjs.js.map +1 -1
- package/dist/primitives/control-size.es.js +6 -1
- package/dist/primitives/control-size.es.js.map +1 -1
- package/dist/primitives/menu-item.cjs.js +3 -3
- package/dist/primitives/menu-item.cjs.js.map +1 -1
- package/dist/primitives/menu-item.es.js +3 -3
- package/dist/primitives/menu-item.es.js.map +1 -1
- package/dist/primitives/trigger-button.cjs.js +1 -1
- package/dist/primitives/trigger-button.es.js +1 -1
- package/dist/{property-filter-applied-DRglaEj-.js → property-filter-applied--U5EZdaA.js} +4 -4
- package/dist/property-filter-applied--U5EZdaA.js.map +1 -0
- package/dist/{property-filter-applied-DqsPFbYM.cjs → property-filter-applied-BkkIObRq.cjs} +19 -19
- package/dist/property-filter-applied-BkkIObRq.cjs.map +1 -0
- package/dist/{select-BbFpEBAY.js → select-BdIZEdcy.js} +4 -8
- package/dist/select-BdIZEdcy.js.map +1 -0
- package/dist/{select-NySY9Men.cjs → select-Dg8L5ROX.cjs} +3 -7
- package/dist/select-Dg8L5ROX.cjs.map +1 -0
- package/dist/{span-payload-primitives-ChvD2RrN.js → span-payload-primitives-B3RdahsC.js} +3 -3
- package/dist/{span-payload-primitives-ChvD2RrN.js.map → span-payload-primitives-B3RdahsC.js.map} +1 -1
- package/dist/{span-payload-primitives-w1vtAXAw.cjs → span-payload-primitives-_2d-pAOD.cjs} +3 -3
- package/dist/{span-payload-primitives-w1vtAXAw.cjs.map → span-payload-primitives-_2d-pAOD.cjs.map} +1 -1
- package/dist/src/domains/metrics/components/metrics-time-range-chip.d.ts +2 -2
- package/dist/src/domains/spans/components/spans-filter-bar.d.ts +1 -1
- package/dist/src/domains/spans/hooks/use-spans-filter-bar.d.ts +1 -1
- package/dist/src/domains/spans/span-filters.d.ts +1 -1
- package/dist/src/domains/threads/components/threads-filter-bar.d.ts +1 -1
- package/dist/src/domains/threads/hooks/use-threads-filter-bar.d.ts +1 -1
- package/dist/src/domains/threads/thread-filters.d.ts +1 -1
- package/dist/src/domains/traces/components/traces-explorer/traces-explorer-filter-bar.d.ts +3 -3
- package/dist/src/domains/traces/components/traces-page-skeleton.d.ts +1 -1
- package/dist/src/ds/components/Button/Button.d.ts +15 -0
- package/dist/src/ds/components/ClearFiltersButton/clear-filters-button.d.ts +12 -0
- package/dist/src/ds/components/ClearFiltersButton/index.d.ts +1 -0
- package/dist/src/ds/components/Combobox/combobox-styles.d.ts +0 -1
- package/dist/src/ds/components/DateTimeRangePicker/date-time-range-picker.d.ts +12 -11
- package/dist/src/ds/components/FilterBar/filter-bar-chip.d.ts +10 -7
- package/dist/src/ds/components/FilterBar/filter-bar-time-range.d.ts +19 -0
- package/dist/src/ds/components/FilterBar/filter-bar.d.ts +2 -0
- package/dist/src/ds/components/FilterBar/index.d.ts +2 -0
- package/dist/src/ds/components/FilterBar/use-filter-bar-item-keys.d.ts +23 -0
- package/dist/src/ds/components/ListSearch/list-search.d.ts +1 -0
- package/dist/src/ds/components/MetricsTable/metrics-table-rows.d.ts +10 -3
- package/dist/src/ds/components/MetricsTable/metrics-table.d.ts +1 -1
- package/dist/src/ds/primitives/control-icon.d.ts +3 -0
- package/dist/src/ds/primitives/control-size.d.ts +1 -0
- package/dist/style.css +131 -65
- package/dist/{tabbed-container-CFEImJOK.cjs → tabbed-container-B4lCBgRP.cjs} +6 -6
- package/dist/{tabbed-container-CFEImJOK.cjs.map → tabbed-container-B4lCBgRP.cjs.map} +1 -1
- package/dist/{tabbed-container-BKUqfEKy.js → tabbed-container-DI1GI1Qv.js} +6 -6
- package/dist/{tabbed-container-BKUqfEKy.js.map → tabbed-container-DI1GI1Qv.js.map} +1 -1
- package/dist/{tabs-content-DgR3Hik1.cjs → tabs-content-CmXe5ML0.cjs} +2 -2
- package/dist/{tabs-content-DgR3Hik1.cjs.map → tabs-content-CmXe5ML0.cjs.map} +1 -1
- package/dist/{tabs-content-cpV6A9c3.js → tabs-content-D__B9hd-.js} +2 -2
- package/dist/{tabs-content-cpV6A9c3.js.map → tabs-content-D__B9hd-.js.map} +1 -1
- package/dist/{tabs-tab-UT1JliwK.js → tabs-tab-CYTZevdV.js} +2 -2
- package/dist/{tabs-tab-UT1JliwK.js.map → tabs-tab-CYTZevdV.js.map} +1 -1
- package/dist/{tabs-tab-Qp3RJ17z.cjs → tabs-tab-DGwfHVDr.cjs} +2 -2
- package/dist/{tabs-tab-Qp3RJ17z.cjs.map → tabs-tab-DGwfHVDr.cjs.map} +1 -1
- package/dist/{toast-api-WhxnAT9F.js → toast-api-D_rrRhNG.js} +2 -2
- package/dist/{toast-api-WhxnAT9F.js.map → toast-api-D_rrRhNG.js.map} +1 -1
- package/dist/{toast-api-Bv87KHu_.cjs → toast-api-qtkOucy2.cjs} +2 -2
- package/dist/{toast-api-Bv87KHu_.cjs.map → toast-api-qtkOucy2.cjs.map} +1 -1
- package/dist/{tool-approval-Dfi0uAKU.cjs → tool-approval-1qiB4hhG.cjs} +4 -4
- package/dist/{tool-approval-Dfi0uAKU.cjs.map → tool-approval-1qiB4hhG.cjs.map} +1 -1
- package/dist/{tool-approval-DHeCkWHT.js → tool-approval-B6MFcaKV.js} +4 -4
- package/dist/{tool-approval-DHeCkWHT.js.map → tool-approval-B6MFcaKV.js.map} +1 -1
- package/dist/{tool-call-BCsDhIhs.cjs → tool-call-Bu66PkD-.cjs} +3 -3
- package/dist/{tool-call-BCsDhIhs.cjs.map → tool-call-Bu66PkD-.cjs.map} +1 -1
- package/dist/{tool-call-CILZa3tn.js → tool-call-Ch9-jjXU.js} +3 -3
- package/dist/{tool-call-CILZa3tn.js.map → tool-call-Ch9-jjXU.js.map} +1 -1
- package/dist/{tool-card-CJ7Kxi-U.cjs → tool-card-DrqPZfPQ.cjs} +4 -4
- package/dist/{tool-card-CJ7Kxi-U.cjs.map → tool-card-DrqPZfPQ.cjs.map} +1 -1
- package/dist/{tool-card-C3sDFUWc.js → tool-card-sO6P2Qj4.js} +4 -4
- package/dist/{tool-card-C3sDFUWc.js.map → tool-card-sO6P2Qj4.js.map} +1 -1
- package/dist/{trace-filters-BJaebsxJ.js → trace-filters-CaWkw779.js} +2 -3
- package/dist/trace-filters-CaWkw779.js.map +1 -0
- package/dist/{trace-filters-BNEZ31HX.cjs → trace-filters-a0N9bf52.cjs} +1 -2
- package/dist/trace-filters-a0N9bf52.cjs.map +1 -0
- package/dist/{use-workflow-graph-runtime-deTN_q_G.js → use-workflow-graph-runtime-BKNhOKsH.js} +3 -3
- package/dist/{use-workflow-graph-runtime-deTN_q_G.js.map → use-workflow-graph-runtime-BKNhOKsH.js.map} +1 -1
- package/dist/{use-workflow-graph-runtime-DkwQjMEV.cjs → use-workflow-graph-runtime-DYao-08R.cjs} +3 -3
- package/dist/{use-workflow-graph-runtime-DkwQjMEV.cjs.map → use-workflow-graph-runtime-DYao-08R.cjs.map} +1 -1
- package/dist/utils/toast.cjs.js +1 -1
- package/dist/utils/toast.es.js +1 -1
- package/oxlint/index.js +90 -0
- package/package.json +9 -9
- package/theme.css +5 -0
- package/dist/ActionRow-BfK77pCT.cjs.map +0 -1
- package/dist/ActionRow-Cd6tOC2K.js.map +0 -1
- package/dist/Button-Bw1e3ONi.js.map +0 -1
- package/dist/Button-YQRflC47.cjs.map +0 -1
- package/dist/DataCodeSection-CZRPsStI.cjs.map +0 -1
- package/dist/DataCodeSection-Ckd47p_S.js.map +0 -1
- package/dist/DateTimeRangePicker-C_Lie_2P.js.map +0 -1
- package/dist/DateTimeRangePicker-HmPOHwAQ.cjs.map +0 -1
- package/dist/FilterBar--4oguuVe.js.map +0 -1
- package/dist/FilterBar-BUd4f7oi.cjs.map +0 -1
- package/dist/MetricsTable-CRPeLHe1.js.map +0 -1
- package/dist/MetricsTable-D-aZf3dk.cjs.map +0 -1
- package/dist/ask-user-BdjH9F7G.js.map +0 -1
- package/dist/ask-user-C82m_G9W.cjs.map +0 -1
- package/dist/combobox-8kNAJFlj.cjs.map +0 -1
- package/dist/combobox-parts-BZVXwbG7.cjs.map +0 -1
- package/dist/combobox-parts-W7KRQUsV.js.map +0 -1
- package/dist/components/ButtonsGroup.cjs.js.map +0 -1
- package/dist/components/ButtonsGroup.es.js.map +0 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js +0 -90
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js.map +0 -1
- package/dist/domains/traces/components/trace-time-range-chip.d.ts +0 -1
- package/dist/domains/traces/components/trace-time-range-chip.es.js +0 -86
- package/dist/domains/traces/components/trace-time-range-chip.es.js.map +0 -1
- package/dist/filter-bar-chip-7O02P9Vk.js.map +0 -1
- package/dist/filter-bar-chip-BUyMf8XQ.cjs.map +0 -1
- package/dist/input-group-g85FYfze.js.map +0 -1
- package/dist/input-group-uDpFNnSW.cjs.map +0 -1
- package/dist/list-search-BEJmYa9a.cjs.map +0 -1
- package/dist/list-search-bg7WzULj.js.map +0 -1
- package/dist/observability-saved-views-BNU3GkK6.cjs.map +0 -1
- package/dist/observability-saved-views-Zlz74syw.js.map +0 -1
- package/dist/property-filter-applied-DRglaEj-.js.map +0 -1
- package/dist/property-filter-applied-DqsPFbYM.cjs.map +0 -1
- package/dist/select-BbFpEBAY.js.map +0 -1
- package/dist/select-NySY9Men.cjs.map +0 -1
- package/dist/src/domains/traces/components/trace-time-range-chip.d.ts +0 -22
- package/dist/trace-filters-BJaebsxJ.js.map +0 -1
- package/dist/trace-filters-BNEZ31HX.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Comment-KYUQzeSu.cjs","names":["createContext","useContext","cva","cn","raisedSurfaceStyle","forwardRef","Txt","useRender","textStyle","useWatched","ArrivalScope","forwardRef","cn","InputGroup","InputGroupInput","InputGroupAddon","InputGroupButton","ArrowUp","useState","Field","cn","TextareaControl","Button","X","Check","FieldError","cn","Txt","Button","X"],"sources":["../src/ds/components/Comment/comment-context.ts","../src/ds/components/Comment/comment.tsx","../src/ds/components/Comment/comment-arrival.tsx","../src/ds/components/Comment/comment-composer.tsx","../src/ds/components/Comment/comment-editor.tsx","../src/ds/components/Comment/comment-quote.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport type CommentVariant = 'default' | 'embed' | 'thread';\n\nexport const CommentContext = createContext<CommentVariant | null>(null);\n\nexport function useCommentVariant(): CommentVariant {\n const variant = useContext(CommentContext);\n if (!variant) throw new Error('Comment compounds must be rendered within Comment');\n return variant;\n}\n","import { useRender } from '@base-ui/react/use-render';\nimport { cva } from 'class-variance-authority';\nimport type { ComponentPropsWithoutRef, HTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport { CommentContext, useCommentVariant } from './comment-context';\nimport type { CommentVariant } from './comment-context';\nimport { Txt } from '@/ds/components/Txt';\nimport type { TxtProps } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { textStyle } from '@/ds/primitives/text';\nimport { cn } from '@/lib/utils';\n\nconst commentVariants = cva('flex flex-col', {\n variants: {\n variant: {\n default: 'gap-2',\n embed: cn(raisedSurfaceStyle, 'gap-1 rounded-xl p-3'),\n thread: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nexport interface CommentProps extends ComponentPropsWithoutRef<'div'> {\n variant?: CommentVariant;\n}\n\nexport const Comment = forwardRef<HTMLDivElement, CommentProps>(({ className, variant = 'default', ...props }, ref) => (\n <CommentContext.Provider value={variant}>\n <div\n ref={ref}\n data-slot=\"comment\"\n data-variant={variant}\n className={cn(commentVariants({ variant }), className)}\n {...props}\n />\n </CommentContext.Provider>\n));\nComment.displayName = 'Comment';\n\nconst commentListGap: Record<CommentVariant, string> = {\n default: 'gap-3',\n embed: 'gap-2',\n thread: '',\n};\n\nexport type CommentListProps = ComponentPropsWithoutRef<'ul'>;\n\nexport const CommentList = forwardRef<HTMLUListElement, CommentListProps>(({ className, ...props }, ref) => {\n const variant = useCommentVariant();\n\n return (\n <ul\n ref={ref}\n data-slot=\"comment-list\"\n className={cn('flex flex-col', commentListGap[variant], className)}\n {...props}\n />\n );\n});\nCommentList.displayName = 'CommentList';\n\nconst commentItemLayout: Record<CommentVariant, string> = {\n default: 'flex flex-col gap-1',\n embed: 'flex flex-col gap-1',\n thread: 'relative flex gap-2 rounded-lg px-2 hover:bg-fill-subtle',\n};\n\nexport interface CommentItemProps extends HTMLAttributes<HTMLElement> {\n /** Same author moments after the row above: the header is dropped and the row tightens. */\n continued?: boolean;\n /** The comment a link pointed at. */\n highlighted?: boolean;\n}\n\nexport const CommentItem = forwardRef<HTMLElement, CommentItemProps>(\n ({ className, continued = false, highlighted = false, ...props }, ref) => {\n const variant = useCommentVariant();\n // A thread row is a stream entry among runs and moves, not a list item.\n const Root = variant === 'thread' ? 'div' : 'li';\n\n return (\n <Root\n // Cast needed: `Root` is polymorphic, so TS narrows the expected ref to a single element type.\n ref={ref as never}\n data-slot=\"comment-item\"\n className={cn(\n 'group/comment-item',\n commentItemLayout[variant],\n variant === 'thread' && (continued ? 'py-0.5' : 'py-1.5'),\n highlighted && 'bg-info-subtle',\n className,\n )}\n {...props}\n />\n );\n },\n);\nCommentItem.displayName = 'CommentItem';\n\nexport type CommentItemAvatarProps = ComponentPropsWithoutRef<'div'>;\n\n/** Fixed gutter: left empty on a continuation row, it keeps the body aligned under the avatar above. */\nexport const CommentItemAvatar = forwardRef<HTMLDivElement, CommentItemAvatarProps>(({ className, ...props }, ref) => (\n <div ref={ref} data-slot=\"comment-item-avatar\" className={cn('w-6 shrink-0 pt-0.5', className)} {...props} />\n));\nCommentItemAvatar.displayName = 'CommentItemAvatar';\n\nexport type CommentItemContentProps = ComponentPropsWithoutRef<'div'>;\n\n/** Everything beside the gutter, stacked and free to shrink so long words wrap instead of widening the row. */\nexport const CommentItemContent = forwardRef<HTMLDivElement, CommentItemContentProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-slot=\"comment-item-content\" className={cn('min-w-0 flex-1', className)} {...props} />\n ),\n);\nCommentItemContent.displayName = 'CommentItemContent';\n\nconst commentItemHeaderLayout: Record<CommentVariant, string> = {\n default: 'flex items-center gap-2',\n embed: 'flex items-center gap-2',\n thread: 'flex items-baseline gap-1.5',\n};\n\nexport type CommentItemHeaderProps = ComponentPropsWithoutRef<'div'>;\n\nexport const CommentItemHeader = forwardRef<HTMLDivElement, CommentItemHeaderProps>(({ className, ...props }, ref) => {\n const variant = useCommentVariant();\n\n return (\n <div\n ref={ref}\n data-slot=\"comment-item-header\"\n className={cn(commentItemHeaderLayout[variant], className)}\n {...props}\n />\n );\n});\nCommentItemHeader.displayName = 'CommentItemHeader';\n\nconst commentItemAuthorSize: Record<CommentVariant, TxtProps['variant']> = {\n default: 'subheading',\n embed: 'subheading',\n thread: 'column',\n};\n\nconst commentItemAuthorTone: Record<CommentVariant, string> = {\n default: 'text-foreground',\n embed: 'text-foreground',\n thread: 'truncate text-foreground',\n};\n\nexport type CommentItemAuthorProps = ComponentPropsWithoutRef<'span'>;\n\nexport const CommentItemAuthor = forwardRef<HTMLElement, CommentItemAuthorProps>(({ className, ...props }, ref) => {\n const variant = useCommentVariant();\n\n return (\n <Txt\n ref={ref}\n as=\"span\"\n variant={commentItemAuthorSize[variant]}\n data-slot=\"comment-item-author\"\n className={cn(commentItemAuthorTone[variant], className)}\n {...props}\n />\n );\n});\nCommentItemAuthor.displayName = 'CommentItemAuthor';\n\nconst commentItemTimestampTone: Record<CommentVariant, string> = {\n default: 'text-caption text-muted-foreground',\n embed: 'text-caption text-muted-foreground',\n thread: 'text-meta text-placeholder shrink-0',\n};\n\nexport type CommentItemTimestampProps = ComponentPropsWithoutRef<'time'>;\n\nexport const CommentItemTimestamp = forwardRef<HTMLTimeElement, CommentItemTimestampProps>(\n ({ className, ...props }, ref) => {\n const variant = useCommentVariant();\n\n return (\n <time\n ref={ref}\n data-slot=\"comment-item-timestamp\"\n className={cn(commentItemTimestampTone[variant], className)}\n {...props}\n />\n );\n },\n);\nCommentItemTimestamp.displayName = 'CommentItemTimestamp';\n\nconst commentItemBodySize: Record<CommentVariant, TxtProps['variant']> = {\n default: 'body',\n embed: 'body',\n thread: 'caption',\n};\n\nconst commentItemBodyTone: Record<CommentVariant, string> = {\n default: 'whitespace-pre-wrap text-foreground border-l border-border pl-3',\n embed: 'whitespace-pre-wrap text-foreground',\n thread: '',\n};\n\nexport type CommentItemBodyProps = ComponentPropsWithoutRef<'p'>;\n\nexport const CommentItemBody = forwardRef<HTMLElement, CommentItemBodyProps>(({ className, ...props }, ref) => {\n const variant = useCommentVariant();\n\n // Rendered markdown brings its own blocks, which a paragraph cannot hold.\n return useRender({\n defaultTagName: variant === 'thread' ? 'div' : 'p',\n props: {\n ...props,\n ref,\n 'data-slot': 'comment-item-body',\n className: cn(textStyle({ variant: commentItemBodySize[variant] }), commentItemBodyTone[variant], className),\n },\n });\n});\nCommentItemBody.displayName = 'CommentItemBody';\n\nconst commentItemActionsLayout: Record<CommentVariant, string> = {\n default:\n 'flex items-center gap-1 opacity-0 group-focus-within/comment-item:opacity-100 group-hover/comment-item:opacity-100 motion-safe:transition-opacity',\n embed: '',\n // Inline at the end of the header row, revealed on hover/focus.\n // `pointer-fine` only: a touch screen has no hover to reveal it with.\n thread:\n 'ml-auto flex shrink-0 items-center gap-0.5 self-center transition-opacity duration-200 ease-out motion-reduce:transition-none pointer-fine:opacity-0 pointer-fine:group-focus-within/comment-item:opacity-100 pointer-fine:group-hover/comment-item:opacity-100',\n};\n\nexport type CommentItemActionsProps = ComponentPropsWithoutRef<'div'>;\n\n/** Hidden in the `embed` variant, which drops per-item actions. */\nexport const CommentItemActions = forwardRef<HTMLDivElement, CommentItemActionsProps>(\n ({ className, ...props }, ref) => {\n const variant = useCommentVariant();\n if (variant === 'embed') return null;\n\n return (\n <div\n ref={ref}\n data-slot=\"comment-item-actions\"\n className={cn(commentItemActionsLayout[variant], className)}\n {...props}\n />\n );\n },\n);\nCommentItemActions.displayName = 'CommentItemActions';\n","import type { ReactNode } from 'react';\n\nimport { ArrivalScope, useWatched } from '@/ds/components/Arrival';\n\nimport './comment-arrival.css';\n\n/** A comment the reader watched land rises into place; one that was already there just appears. */\nexport function CommentArrival({ children }: { children: ReactNode }) {\n const watched = useWatched();\n\n return (\n <div data-slot=\"comment-arrival\" className={watched ? 'mastra-comment-arriving' : undefined}>\n <ArrivalScope>{children}</ArrivalScope>\n </div>\n );\n}\n","import { ArrowUp } from 'lucide-react';\nimport type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport { useCommentVariant } from './comment-context';\nimport type { CommentVariant } from './comment-context';\nimport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from '@/ds/components/InputGroup';\nimport type { InputGroupButtonProps, InputGroupInputProps } from '@/ds/components/InputGroup';\nimport type { ControlSize } from '@/ds/primitives/control-size';\nimport { cn } from '@/lib/utils';\n\nexport type CommentComposerProps = ComponentPropsWithoutRef<'form'>;\n\nexport const CommentComposer = forwardRef<HTMLFormElement, CommentComposerProps>(({ className, ...props }, ref) => (\n <form ref={ref} data-slot=\"comment-composer\" className={cn('flex w-full items-center gap-2', className)} {...props} />\n));\nCommentComposer.displayName = 'CommentComposer';\n\nconst composerSize: Record<CommentVariant, ControlSize> = {\n default: 'md',\n embed: 'sm',\n thread: 'md',\n};\n\nexport interface CommentComposerInputProps extends InputGroupInputProps {\n /** Layout classes for the surrounding InputGroup. */\n groupClassName?: string;\n children?: ReactNode;\n}\n\nexport const CommentComposerInput = forwardRef<HTMLInputElement, CommentComposerInputProps>(\n ({ groupClassName, children, ...props }, ref) => {\n const variant = useCommentVariant();\n\n return (\n <InputGroup size={composerSize[variant]} className={groupClassName}>\n <InputGroupInput ref={ref} data-slot=\"comment-composer-input\" {...props} />\n {children}\n </InputGroup>\n );\n },\n);\nCommentComposerInput.displayName = 'CommentComposerInput';\n\nexport type CommentComposerSendProps = Omit<InputGroupButtonProps, 'children'>;\n\nexport const CommentComposerSend = forwardRef<HTMLButtonElement, CommentComposerSendProps>(\n ({ 'aria-label': ariaLabel = 'Send comment', type = 'submit', ...props }, ref) => (\n <InputGroupAddon align=\"inline-end\">\n <InputGroupButton ref={ref} data-slot=\"comment-composer-send\" type={type} aria-label={ariaLabel} {...props}>\n <ArrowUp />\n </InputGroupButton>\n </InputGroupAddon>\n ),\n);\nCommentComposerSend.displayName = 'CommentComposerSend';\n","import { Check, X } from 'lucide-react';\nimport { useState } from 'react';\nimport type { KeyboardEvent } from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport { Field, FieldError } from '@/ds/components/Field';\nimport { TextareaControl } from '@/ds/primitives/textarea-control';\nimport { cn } from '@/lib/utils';\n\nexport interface CommentEditorProps {\n initialBody: string;\n /** Handed the trimmed draft. Closing is the caller's call, so a save that failed keeps what was typed. */\n onSave: (body: string) => void;\n onClose: () => void;\n /** The caller's save in flight: the box locks until it settles. */\n isPending?: boolean;\n /** Why the caller's last save failed. */\n error?: string;\n 'aria-label'?: string;\n className?: string;\n}\n\n/** Owns the draft only; whether a save landed is the caller's mutation to report. */\nexport function CommentEditor({\n initialBody,\n onSave,\n onClose,\n isPending = false,\n error,\n 'aria-label': ariaLabel = 'Edit comment',\n className,\n}: CommentEditorProps) {\n const [draft, setDraft] = useState(initialBody);\n const body = draft.trim();\n const canSave = body.length > 0 && !isPending;\n\n const save = () => {\n if (!canSave) return;\n if (body === initialBody) {\n onClose();\n return;\n }\n onSave(body);\n };\n\n const onKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {\n // An IME commit fires Enter mid-composition; acting on it would save half a word.\n if (event.nativeEvent.isComposing) return;\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault();\n save();\n }\n };\n\n return (\n <Field invalid={Boolean(error)} data-slot=\"comment-editor\" className={cn('mt-1 flex flex-col gap-1.5', className)}>\n <div className=\"relative\">\n <TextareaControl\n value={draft}\n onChange={event => setDraft(event.target.value)}\n onKeyDown={onKeyDown}\n readOnly={isPending}\n aria-label={ariaLabel}\n rows={2}\n className=\"block field-sizing-content max-h-40 w-full resize-none overflow-y-auto rounded-lg border border-border bg-background px-2 pt-1.5 pb-9 text-caption text-foreground outline-none focus:border-border-strong\"\n />\n <div className=\"absolute inset-x-px bottom-px flex items-center justify-end gap-1 rounded-b-lg bg-background px-1.5 pt-1 pb-1.5\">\n <Button icon={<X />} type=\"button\" variant=\"ghost\" size=\"sm\" disabled={isPending} onClick={onClose}>\n Cancel\n </Button>\n <Button icon={<Check />} type=\"button\" size=\"sm\" disabled={!canSave} onClick={save}>\n {isPending ? 'Saving…' : 'Save'}\n </Button>\n </div>\n </div>\n <FieldError>{error}</FieldError>\n </Field>\n );\n}\n","import { X } from 'lucide-react';\n\nimport { Button } from '@/ds/components/Button';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface CommentQuoteProps {\n authorName?: string;\n quote: string;\n /** Given only while the quote is a draft the writer can still drop. */\n onDismiss?: () => void;\n className?: string;\n}\n\n/** The passage a reply answers, above the reply itself or inside the composer writing it. */\nexport function CommentQuote({ authorName, quote, onDismiss, className }: CommentQuoteProps) {\n return (\n <blockquote\n data-slot=\"comment-quote\"\n className={cn(\n 'm-0 flex min-w-0 gap-2 border-l-2 border-border-strong pl-2 text-caption text-muted-foreground',\n className,\n )}\n >\n <span className=\"min-w-0 flex-1\">\n {authorName ? (\n <Txt as=\"span\" variant=\"column\">\n {authorName}{' '}\n </Txt>\n ) : null}\n <span className=\"line-clamp-2 wrap-anywhere whitespace-pre-line\">{quote}</span>\n </span>\n {onDismiss ? (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label=\"Remove quote\"\n onClick={onDismiss}\n className=\"shrink-0\"\n >\n <X size={12} aria-hidden />\n </Button>\n ) : null}\n </blockquote>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Comment-Cg0f7eLa.cjs","names":["createContext","useContext","cva","cn","raisedSurfaceStyle","forwardRef","Txt","useRender","textStyle","useWatched","ArrivalScope","forwardRef","cn","InputGroup","InputGroupInput","InputGroupAddon","InputGroupButton","ArrowUp","useState","Field","cn","TextareaControl","Button","X","Check","FieldError","cn","Txt","Button","X"],"sources":["../src/ds/components/Comment/comment-context.ts","../src/ds/components/Comment/comment.tsx","../src/ds/components/Comment/comment-arrival.tsx","../src/ds/components/Comment/comment-composer.tsx","../src/ds/components/Comment/comment-editor.tsx","../src/ds/components/Comment/comment-quote.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport type CommentVariant = 'default' | 'embed' | 'thread';\n\nexport const CommentContext = createContext<CommentVariant | null>(null);\n\nexport function useCommentVariant(): CommentVariant {\n const variant = useContext(CommentContext);\n if (!variant) throw new Error('Comment compounds must be rendered within Comment');\n return variant;\n}\n","import { useRender } from '@base-ui/react/use-render';\nimport { cva } from 'class-variance-authority';\nimport type { ComponentPropsWithoutRef, HTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\n\nimport { CommentContext, useCommentVariant } from './comment-context';\nimport type { CommentVariant } from './comment-context';\nimport { Txt } from '@/ds/components/Txt';\nimport type { TxtProps } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { textStyle } from '@/ds/primitives/text';\nimport { cn } from '@/lib/utils';\n\nconst commentVariants = cva('flex flex-col', {\n variants: {\n variant: {\n default: 'gap-2',\n embed: cn(raisedSurfaceStyle, 'gap-1 rounded-xl p-3'),\n thread: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nexport interface CommentProps extends ComponentPropsWithoutRef<'div'> {\n variant?: CommentVariant;\n}\n\nexport const Comment = forwardRef<HTMLDivElement, CommentProps>(({ className, variant = 'default', ...props }, ref) => (\n <CommentContext.Provider value={variant}>\n <div\n ref={ref}\n data-slot=\"comment\"\n data-variant={variant}\n className={cn(commentVariants({ variant }), className)}\n {...props}\n />\n </CommentContext.Provider>\n));\nComment.displayName = 'Comment';\n\nconst commentListGap: Record<CommentVariant, string> = {\n default: 'gap-3',\n embed: 'gap-2',\n thread: '',\n};\n\nexport type CommentListProps = ComponentPropsWithoutRef<'ul'>;\n\nexport const CommentList = forwardRef<HTMLUListElement, CommentListProps>(({ className, ...props }, ref) => {\n const variant = useCommentVariant();\n\n return (\n <ul\n ref={ref}\n data-slot=\"comment-list\"\n className={cn('flex flex-col', commentListGap[variant], className)}\n {...props}\n />\n );\n});\nCommentList.displayName = 'CommentList';\n\nconst commentItemLayout: Record<CommentVariant, string> = {\n default: 'flex flex-col gap-1',\n embed: 'flex flex-col gap-1',\n thread: 'relative flex gap-2 rounded-lg px-2 hover:bg-fill-subtle',\n};\n\nexport interface CommentItemProps extends HTMLAttributes<HTMLElement> {\n /** Same author moments after the row above: the header is dropped and the row tightens. */\n continued?: boolean;\n /** The comment a link pointed at. */\n highlighted?: boolean;\n}\n\nexport const CommentItem = forwardRef<HTMLElement, CommentItemProps>(\n ({ className, continued = false, highlighted = false, ...props }, ref) => {\n const variant = useCommentVariant();\n // A thread row is a stream entry among runs and moves, not a list item.\n const Root = variant === 'thread' ? 'div' : 'li';\n\n return (\n <Root\n // Cast needed: `Root` is polymorphic, so TS narrows the expected ref to a single element type.\n ref={ref as never}\n data-slot=\"comment-item\"\n className={cn(\n 'group/comment-item',\n commentItemLayout[variant],\n variant === 'thread' && (continued ? 'py-0.5' : 'py-1.5'),\n highlighted && 'bg-info-subtle',\n className,\n )}\n {...props}\n />\n );\n },\n);\nCommentItem.displayName = 'CommentItem';\n\nexport type CommentItemAvatarProps = ComponentPropsWithoutRef<'div'>;\n\n/** Fixed gutter: left empty on a continuation row, it keeps the body aligned under the avatar above. */\nexport const CommentItemAvatar = forwardRef<HTMLDivElement, CommentItemAvatarProps>(({ className, ...props }, ref) => (\n <div ref={ref} data-slot=\"comment-item-avatar\" className={cn('w-6 shrink-0 pt-0.5', className)} {...props} />\n));\nCommentItemAvatar.displayName = 'CommentItemAvatar';\n\nexport type CommentItemContentProps = ComponentPropsWithoutRef<'div'>;\n\n/** Everything beside the gutter, stacked and free to shrink so long words wrap instead of widening the row. */\nexport const CommentItemContent = forwardRef<HTMLDivElement, CommentItemContentProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-slot=\"comment-item-content\" className={cn('min-w-0 flex-1', className)} {...props} />\n ),\n);\nCommentItemContent.displayName = 'CommentItemContent';\n\nconst commentItemHeaderLayout: Record<CommentVariant, string> = {\n default: 'flex items-center gap-2',\n embed: 'flex items-center gap-2',\n thread: 'flex items-baseline gap-1.5',\n};\n\nexport type CommentItemHeaderProps = ComponentPropsWithoutRef<'div'>;\n\nexport const CommentItemHeader = forwardRef<HTMLDivElement, CommentItemHeaderProps>(({ className, ...props }, ref) => {\n const variant = useCommentVariant();\n\n return (\n <div\n ref={ref}\n data-slot=\"comment-item-header\"\n className={cn(commentItemHeaderLayout[variant], className)}\n {...props}\n />\n );\n});\nCommentItemHeader.displayName = 'CommentItemHeader';\n\nconst commentItemAuthorSize: Record<CommentVariant, TxtProps['variant']> = {\n default: 'subheading',\n embed: 'subheading',\n thread: 'column',\n};\n\nconst commentItemAuthorTone: Record<CommentVariant, string> = {\n default: 'text-foreground',\n embed: 'text-foreground',\n thread: 'truncate text-foreground',\n};\n\nexport type CommentItemAuthorProps = ComponentPropsWithoutRef<'span'>;\n\nexport const CommentItemAuthor = forwardRef<HTMLElement, CommentItemAuthorProps>(({ className, ...props }, ref) => {\n const variant = useCommentVariant();\n\n return (\n <Txt\n ref={ref}\n as=\"span\"\n variant={commentItemAuthorSize[variant]}\n data-slot=\"comment-item-author\"\n className={cn(commentItemAuthorTone[variant], className)}\n {...props}\n />\n );\n});\nCommentItemAuthor.displayName = 'CommentItemAuthor';\n\nconst commentItemTimestampTone: Record<CommentVariant, string> = {\n default: 'text-caption text-muted-foreground',\n embed: 'text-caption text-muted-foreground',\n thread: 'text-meta text-placeholder shrink-0',\n};\n\nexport type CommentItemTimestampProps = ComponentPropsWithoutRef<'time'>;\n\nexport const CommentItemTimestamp = forwardRef<HTMLTimeElement, CommentItemTimestampProps>(\n ({ className, ...props }, ref) => {\n const variant = useCommentVariant();\n\n return (\n <time\n ref={ref}\n data-slot=\"comment-item-timestamp\"\n className={cn(commentItemTimestampTone[variant], className)}\n {...props}\n />\n );\n },\n);\nCommentItemTimestamp.displayName = 'CommentItemTimestamp';\n\nconst commentItemBodySize: Record<CommentVariant, TxtProps['variant']> = {\n default: 'body',\n embed: 'body',\n thread: 'caption',\n};\n\nconst commentItemBodyTone: Record<CommentVariant, string> = {\n default: 'whitespace-pre-wrap text-foreground border-l border-border pl-3',\n embed: 'whitespace-pre-wrap text-foreground',\n thread: '',\n};\n\nexport type CommentItemBodyProps = ComponentPropsWithoutRef<'p'>;\n\nexport const CommentItemBody = forwardRef<HTMLElement, CommentItemBodyProps>(({ className, ...props }, ref) => {\n const variant = useCommentVariant();\n\n // Rendered markdown brings its own blocks, which a paragraph cannot hold.\n return useRender({\n defaultTagName: variant === 'thread' ? 'div' : 'p',\n props: {\n ...props,\n ref,\n 'data-slot': 'comment-item-body',\n className: cn(textStyle({ variant: commentItemBodySize[variant] }), commentItemBodyTone[variant], className),\n },\n });\n});\nCommentItemBody.displayName = 'CommentItemBody';\n\nconst commentItemActionsLayout: Record<CommentVariant, string> = {\n default:\n 'flex items-center gap-1 opacity-0 group-focus-within/comment-item:opacity-100 group-hover/comment-item:opacity-100 motion-safe:transition-opacity',\n embed: '',\n // Inline at the end of the header row, revealed on hover/focus.\n // `pointer-fine` only: a touch screen has no hover to reveal it with.\n thread:\n 'ml-auto flex shrink-0 items-center gap-0.5 self-center transition-opacity duration-200 ease-out motion-reduce:transition-none pointer-fine:opacity-0 pointer-fine:group-focus-within/comment-item:opacity-100 pointer-fine:group-hover/comment-item:opacity-100',\n};\n\nexport type CommentItemActionsProps = ComponentPropsWithoutRef<'div'>;\n\n/** Hidden in the `embed` variant, which drops per-item actions. */\nexport const CommentItemActions = forwardRef<HTMLDivElement, CommentItemActionsProps>(\n ({ className, ...props }, ref) => {\n const variant = useCommentVariant();\n if (variant === 'embed') return null;\n\n return (\n <div\n ref={ref}\n data-slot=\"comment-item-actions\"\n className={cn(commentItemActionsLayout[variant], className)}\n {...props}\n />\n );\n },\n);\nCommentItemActions.displayName = 'CommentItemActions';\n","import type { ReactNode } from 'react';\n\nimport { ArrivalScope, useWatched } from '@/ds/components/Arrival';\n\nimport './comment-arrival.css';\n\n/** A comment the reader watched land rises into place; one that was already there just appears. */\nexport function CommentArrival({ children }: { children: ReactNode }) {\n const watched = useWatched();\n\n return (\n <div data-slot=\"comment-arrival\" className={watched ? 'mastra-comment-arriving' : undefined}>\n <ArrivalScope>{children}</ArrivalScope>\n </div>\n );\n}\n","import { ArrowUp } from 'lucide-react';\nimport type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { forwardRef } from 'react';\n\nimport { useCommentVariant } from './comment-context';\nimport type { CommentVariant } from './comment-context';\nimport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from '@/ds/components/InputGroup';\nimport type { InputGroupButtonProps, InputGroupInputProps } from '@/ds/components/InputGroup';\nimport type { ControlSize } from '@/ds/primitives/control-size';\nimport { cn } from '@/lib/utils';\n\nexport type CommentComposerProps = ComponentPropsWithoutRef<'form'>;\n\nexport const CommentComposer = forwardRef<HTMLFormElement, CommentComposerProps>(({ className, ...props }, ref) => (\n <form ref={ref} data-slot=\"comment-composer\" className={cn('flex w-full items-center gap-2', className)} {...props} />\n));\nCommentComposer.displayName = 'CommentComposer';\n\nconst composerSize: Record<CommentVariant, ControlSize> = {\n default: 'md',\n embed: 'sm',\n thread: 'md',\n};\n\nexport interface CommentComposerInputProps extends InputGroupInputProps {\n /** Layout classes for the surrounding InputGroup. */\n groupClassName?: string;\n children?: ReactNode;\n}\n\nexport const CommentComposerInput = forwardRef<HTMLInputElement, CommentComposerInputProps>(\n ({ groupClassName, children, ...props }, ref) => {\n const variant = useCommentVariant();\n\n return (\n <InputGroup size={composerSize[variant]} className={groupClassName}>\n <InputGroupInput ref={ref} data-slot=\"comment-composer-input\" {...props} />\n {children}\n </InputGroup>\n );\n },\n);\nCommentComposerInput.displayName = 'CommentComposerInput';\n\nexport type CommentComposerSendProps = Omit<InputGroupButtonProps, 'children'>;\n\nexport const CommentComposerSend = forwardRef<HTMLButtonElement, CommentComposerSendProps>(\n ({ 'aria-label': ariaLabel = 'Send comment', type = 'submit', ...props }, ref) => (\n <InputGroupAddon align=\"inline-end\">\n <InputGroupButton ref={ref} data-slot=\"comment-composer-send\" type={type} aria-label={ariaLabel} {...props}>\n <ArrowUp />\n </InputGroupButton>\n </InputGroupAddon>\n ),\n);\nCommentComposerSend.displayName = 'CommentComposerSend';\n","import { Check, X } from 'lucide-react';\nimport { useState } from 'react';\nimport type { KeyboardEvent } from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport { Field, FieldError } from '@/ds/components/Field';\nimport { TextareaControl } from '@/ds/primitives/textarea-control';\nimport { cn } from '@/lib/utils';\n\nexport interface CommentEditorProps {\n initialBody: string;\n /** Handed the trimmed draft. Closing is the caller's call, so a save that failed keeps what was typed. */\n onSave: (body: string) => void;\n onClose: () => void;\n /** The caller's save in flight: the box locks until it settles. */\n isPending?: boolean;\n /** Why the caller's last save failed. */\n error?: string;\n 'aria-label'?: string;\n className?: string;\n}\n\n/** Owns the draft only; whether a save landed is the caller's mutation to report. */\nexport function CommentEditor({\n initialBody,\n onSave,\n onClose,\n isPending = false,\n error,\n 'aria-label': ariaLabel = 'Edit comment',\n className,\n}: CommentEditorProps) {\n const [draft, setDraft] = useState(initialBody);\n const body = draft.trim();\n const canSave = body.length > 0 && !isPending;\n\n const save = () => {\n if (!canSave) return;\n if (body === initialBody) {\n onClose();\n return;\n }\n onSave(body);\n };\n\n const onKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {\n // An IME commit fires Enter mid-composition; acting on it would save half a word.\n if (event.nativeEvent.isComposing) return;\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault();\n save();\n }\n };\n\n return (\n <Field invalid={Boolean(error)} data-slot=\"comment-editor\" className={cn('mt-1 flex flex-col gap-1.5', className)}>\n <div className=\"relative\">\n <TextareaControl\n value={draft}\n onChange={event => setDraft(event.target.value)}\n onKeyDown={onKeyDown}\n readOnly={isPending}\n aria-label={ariaLabel}\n rows={2}\n className=\"block field-sizing-content max-h-40 w-full resize-none overflow-y-auto rounded-lg border border-border bg-background px-2 pt-1.5 pb-9 text-caption text-foreground outline-none focus:border-border-strong\"\n />\n <div className=\"absolute inset-x-px bottom-px flex items-center justify-end gap-1 rounded-b-lg bg-background px-1.5 pt-1 pb-1.5\">\n <Button icon={<X />} type=\"button\" variant=\"ghost\" size=\"sm\" disabled={isPending} onClick={onClose}>\n Cancel\n </Button>\n <Button icon={<Check />} type=\"button\" size=\"sm\" disabled={!canSave} onClick={save}>\n {isPending ? 'Saving…' : 'Save'}\n </Button>\n </div>\n </div>\n <FieldError>{error}</FieldError>\n </Field>\n );\n}\n","import { X } from 'lucide-react';\n\nimport { Button } from '@/ds/components/Button';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface CommentQuoteProps {\n authorName?: string;\n quote: string;\n /** Given only while the quote is a draft the writer can still drop. */\n onDismiss?: () => void;\n className?: string;\n}\n\n/** The passage a reply answers, above the reply itself or inside the composer writing it. */\nexport function CommentQuote({ authorName, quote, onDismiss, className }: CommentQuoteProps) {\n return (\n <blockquote\n data-slot=\"comment-quote\"\n className={cn(\n 'm-0 flex min-w-0 gap-2 border-l-2 border-border-strong pl-2 text-caption text-muted-foreground',\n className,\n )}\n >\n <span className=\"min-w-0 flex-1\">\n {authorName ? (\n <Txt as=\"span\" variant=\"column\">\n {authorName}{' '}\n </Txt>\n ) : null}\n <span className=\"line-clamp-2 wrap-anywhere whitespace-pre-line\">{quote}</span>\n </span>\n {onDismiss ? (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label=\"Remove quote\"\n onClick={onDismiss}\n className=\"shrink-0\"\n >\n <X size={12} aria-hidden />\n </Button>\n ) : null}\n </blockquote>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const require_utils = require("./utils-uDc1ofX1.cjs");
|
|
2
2
|
const require_primitives_raised_surface = require("./primitives/raised-surface.cjs.js");
|
|
3
|
-
const require_Button = require("./Button-
|
|
4
|
-
const require_copy_button = require("./copy-button-
|
|
5
|
-
const
|
|
6
|
-
const require_Dialog = require("./Dialog-
|
|
7
|
-
const require_CodeEditor = require("./CodeEditor-
|
|
3
|
+
const require_Button = require("./Button-DLcMcuUL.cjs");
|
|
4
|
+
const require_copy_button = require("./copy-button-DJAQ6_3o.cjs");
|
|
5
|
+
const require_buttons_group = require("./buttons-group-Dc6R7YSs.cjs");
|
|
6
|
+
const require_Dialog = require("./Dialog-BvWF9HE-.cjs");
|
|
7
|
+
const require_CodeEditor = require("./CodeEditor-CLzs0yVc.cjs");
|
|
8
8
|
const require_data_panel_section_heading = require("./data-panel-section-heading-d9UnruDt.cjs");
|
|
9
9
|
const require_components_SearchInput = require("./components/SearchInput.cjs.js");
|
|
10
10
|
let react = require("react");
|
|
@@ -118,14 +118,14 @@ function DataCodeSection({ codeStr = "", title, dialogTitle, icon, simplified =
|
|
|
118
118
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.SearchIcon, {})
|
|
119
119
|
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_SearchInput.SearchInput, {
|
|
120
120
|
label: "Search code",
|
|
121
|
-
placeholder: "Search
|
|
121
|
+
placeholder: "Search",
|
|
122
122
|
size: "sm",
|
|
123
123
|
value: searchQuery,
|
|
124
124
|
onValueChange: setSearchQuery,
|
|
125
125
|
onClose: () => setSearchMinimized(true),
|
|
126
126
|
autoFocus: true
|
|
127
127
|
})),
|
|
128
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
128
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_buttons_group.ButtonsGroup, {
|
|
129
129
|
size: "sm",
|
|
130
130
|
children: [
|
|
131
131
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_copy_button.CopyButton, { content: codeStr || "No content" }),
|
|
@@ -177,11 +177,11 @@ function DataCodeSection({ codeStr = "", title, dialogTitle, icon, simplified =
|
|
|
177
177
|
className: "flex shrink-0 items-center gap-2",
|
|
178
178
|
children: [!expandedMultiline && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_SearchInput.SearchInput, {
|
|
179
179
|
label: "Search code",
|
|
180
|
-
placeholder: "Search
|
|
180
|
+
placeholder: "Search",
|
|
181
181
|
size: "sm",
|
|
182
182
|
value: expandedSearchQuery,
|
|
183
183
|
onValueChange: setExpandedSearchQuery
|
|
184
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
184
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_buttons_group.ButtonsGroup, {
|
|
185
185
|
size: "sm",
|
|
186
186
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_copy_button.CopyButton, { content: codeStr || "No content" }), hasMultilineText && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.Button, {
|
|
187
187
|
size: "icon-md",
|
|
@@ -233,4 +233,4 @@ Object.defineProperty(exports, "DataCodeSection", {
|
|
|
233
233
|
}
|
|
234
234
|
});
|
|
235
235
|
|
|
236
|
-
//# sourceMappingURL=DataCodeSection-
|
|
236
|
+
//# sourceMappingURL=DataCodeSection-CFxXsQWH.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataCodeSection-CFxXsQWH.cjs","names":["Text","Chunk","useRef","EditorView","useMemo","RangeSetBuilder","Decoration","CodeEditor","useState","cn","DataPanelSectionHeading","Button","SearchIcon","SearchInput","ButtonsGroup","CopyButton","AlignLeftIcon","AlignJustifyIcon","ExpandIcon","raisedSurfaceStyle","Dialog","DialogContent","DialogHeader","DialogTitle","_Fragment","DialogBody"],"sources":["../src/ds/components/DataCodeSection/data-code-section.tsx"],"sourcesContent":["import { Chunk } from '@codemirror/merge';\nimport { RangeSetBuilder, Text } from '@codemirror/state';\nimport { Decoration, EditorView } from '@codemirror/view';\nimport type { ReactCodeMirrorRef } from '@uiw/react-codemirror';\nimport { AlignJustifyIcon, AlignLeftIcon, ExpandIcon, SearchIcon } from 'lucide-react';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataPanelSectionHeading } from '@/ds/components/DataPanel/data-panel-section-heading';\nimport { Dialog, DialogBody, DialogContent, DialogHeader, DialogTitle } from '@/ds/components/Dialog';\nimport { SearchInput } from '@/ds/components/SearchInput';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport interface DataCodeSectionDiff {\n /** The other document to compare against. */\n against: string;\n /** `a` = this document is the \"before\" (changes in red), `b` = \"after\" (changes in green). */\n side: 'a' | 'b';\n}\n\n/** Zero-based indexes of the lines of `doc` that differ from `diff.against`. */\nfunction changedLines(doc: string, { against, side }: DataCodeSectionDiff): Set<number> {\n const [a, b] = side === 'a' ? [doc, against] : [against, doc];\n const text = Text.of(doc.split('\\n'));\n const lines = new Set<number>();\n for (const chunk of Chunk.build(Text.of(a.split('\\n')), Text.of(b.split('\\n')))) {\n const from = side === 'a' ? chunk.fromA : chunk.fromB;\n const to = side === 'a' ? chunk.endA : chunk.endB;\n if (from >= to) continue;\n for (let pos = from; pos <= Math.min(to, text.length);) {\n const line = text.lineAt(pos);\n lines.add(line.number - 1);\n if (line.to >= to) break;\n pos = line.to + 1;\n }\n }\n return lines;\n}\n\nconst diffLineStyles = {\n removed: 'code-diff-removed bg-destructive-subtle',\n added: 'code-diff-added bg-success-subtle',\n};\nconst searchMatchStyle = 'code-search-match rounded-sm bg-badge-amber-strong';\n\ninterface CodeViewProps {\n code: string;\n changed?: Set<number>;\n diffSide?: DataCodeSectionDiff['side'];\n searchQuery: string;\n}\n\nfunction CodeView({ code, changed, diffSide, searchQuery }: CodeViewProps) {\n const ref = useRef<ReactCodeMirrorRef>(null);\n const query = searchQuery.toLowerCase();\n\n // Matches are scrolled to through CodeMirror: it only renders the visible lines, so an off-screen match has no DOM node yet.\n useEffect(() => {\n const view = ref.current?.view;\n if (!query || !view) return;\n const doc = view.state.doc;\n for (let n = 1; n <= doc.lines; n++) {\n const line = doc.line(n);\n if (line.text.toLowerCase().includes(query)) {\n view.dispatch({ effects: EditorView.scrollIntoView(line.from, { y: 'nearest' }) });\n return;\n }\n }\n }, [query]);\n\n const extensions = useMemo(\n () => [\n EditorView.decorations.compute(['doc'], state => {\n const builder = new RangeSetBuilder<Decoration>();\n for (let n = 1; n <= state.doc.lines; n++) {\n const line = state.doc.line(n);\n const classes: string[] = [];\n if (diffSide && changed?.has(n - 1)) classes.push(diffLineStyles[diffSide === 'a' ? 'removed' : 'added']);\n if (query && line.text.toLowerCase().includes(query)) classes.push(searchMatchStyle);\n if (classes.length) builder.add(line.from, line.from, Decoration.line({ class: classes.join(' ') }));\n }\n return builder.finish();\n }),\n ],\n [changed, diffSide, query],\n );\n\n return (\n <CodeEditor\n ref={ref}\n value={code}\n language=\"json\"\n editable={false}\n lineNumbers={false}\n showCopyButton={false}\n variant=\"embedded\"\n aria-label=\"JSON content\"\n extensions={extensions}\n />\n );\n}\n\nexport interface DataCodeSectionProps {\n title: React.ReactNode;\n dialogTitle?: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n className?: string;\n /** Highlight lines that differ from another document. */\n diff?: DataCodeSectionDiff;\n /** Extra controls rendered in the header, before the built-in copy/expand buttons. */\n actions?: React.ReactNode;\n}\n\nexport function DataCodeSection({\n codeStr = '',\n title,\n dialogTitle,\n icon,\n simplified = false,\n className,\n diff,\n actions,\n}: DataCodeSectionProps) {\n const changed = useMemo(() => (diff ? changedLines(codeStr, diff) : undefined), [codeStr, diff]);\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const [searchMinimized, setSearchMinimized] = useState(true);\n const [searchQuery, setSearchQuery] = useState('');\n const [expandedOpen, setExpandedOpen] = useState(false);\n const [expandedSearchQuery, setExpandedSearchQuery] = useState('');\n const [expandedMultiline, setExpandedMultiline] = useState(false);\n\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const expandedFinalCodeStr = expandedMultiline ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const usePlainTextView = simplified || showAsMultilineText;\n\n if (!codeStr || codeStr === 'null') return null;\n\n return (\n <div className={cn('flex flex-col gap-2', className)}>\n <div className=\"flex items-center justify-between\">\n <DataPanelSectionHeading icon={icon}>{title}</DataPanelSectionHeading>\n <div className=\"flex items-center gap-2\">\n {actions}\n {!usePlainTextView &&\n (searchMinimized ? (\n <Button\n size=\"icon-sm\"\n aria-label=\"Search code\"\n tooltip=\"Search code\"\n onClick={() => setSearchMinimized(false)}\n >\n <SearchIcon />\n </Button>\n ) : (\n <SearchInput\n label=\"Search code\"\n placeholder=\"Search\"\n size=\"sm\"\n value={searchQuery}\n onValueChange={setSearchQuery}\n onClose={() => setSearchMinimized(true)}\n autoFocus\n />\n ))}\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n size=\"icon-md\"\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n tooltip={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(v => !v)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n <Button size=\"icon-md\" aria-label=\"Expand\" tooltip=\"Expand\" onClick={() => setExpandedOpen(true)}>\n <ExpandIcon />\n </Button>\n </ButtonsGroup>\n </div>\n </div>\n\n <div\n className={cn(\n raisedSurfaceStyle,\n 'max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg p-3 text-caption break-all text-muted-foreground',\n )}\n >\n {usePlainTextView ? (\n <div className=\"font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{finalCodeStr}</pre>\n </div>\n ) : (\n <CodeView code={codeStr} changed={changed} diffSide={diff?.side} searchQuery={searchQuery} />\n )}\n </div>\n\n <Dialog open={expandedOpen} onOpenChange={setExpandedOpen}>\n <DialogContent size=\"full\">\n <DialogHeader>\n <div className=\"flex min-w-0 items-center justify-between gap-2\">\n <DialogTitle className=\"flex min-w-0 items-center gap-1.5 truncate [&>svg]:size-3.5\">\n {dialogTitle ?? (\n <>\n {icon}\n {title}\n </>\n )}\n </DialogTitle>\n <div className=\"flex shrink-0 items-center gap-2\">\n {!expandedMultiline && (\n <SearchInput\n label=\"Search code\"\n placeholder=\"Search\"\n size=\"sm\"\n value={expandedSearchQuery}\n onValueChange={setExpandedSearchQuery}\n />\n )}\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n size=\"icon-md\"\n aria-label={expandedMultiline ? 'Show escaped newlines' : 'Show multiline text'}\n tooltip={expandedMultiline ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setExpandedMultiline(v => !v)}\n >\n {expandedMultiline ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n </ButtonsGroup>\n </div>\n </div>\n </DialogHeader>\n <DialogBody layout=\"fill\">\n <div className=\"min-h-0 flex-1 overflow-auto\">\n {expandedMultiline ? (\n <div className={cn(raisedSurfaceStyle, 'rounded-lg p-3 text-caption break-all text-muted-foreground')}>\n <div className=\"font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{expandedFinalCodeStr}</pre>\n </div>\n </div>\n ) : (\n <CodeView code={codeStr} changed={changed} diffSide={diff?.side} searchQuery={expandedSearchQuery} />\n )}\n </div>\n </DialogBody>\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as cn } from "./utils-DQx8TpNT.js";
|
|
2
2
|
import { raisedSurfaceStyle } from "./primitives/raised-surface.es.js";
|
|
3
|
-
import { t as Button } from "./Button-
|
|
4
|
-
import { t as CopyButton } from "./copy-button-
|
|
5
|
-
import { ButtonsGroup } from "./
|
|
6
|
-
import { a as DialogContent, c as DialogHeader, d as DialogTitle, n as DialogBody, t as Dialog } from "./Dialog-
|
|
7
|
-
import { t as CodeEditor } from "./CodeEditor-
|
|
3
|
+
import { t as Button } from "./Button-CLXTbAY8.js";
|
|
4
|
+
import { t as CopyButton } from "./copy-button-BXrbevLn.js";
|
|
5
|
+
import { t as ButtonsGroup } from "./buttons-group-DkFlnMiL.js";
|
|
6
|
+
import { a as DialogContent, c as DialogHeader, d as DialogTitle, n as DialogBody, t as Dialog } from "./Dialog-DaWtxwd9.js";
|
|
7
|
+
import { t as CodeEditor } from "./CodeEditor-COnz9c6B.js";
|
|
8
8
|
import { t as DataPanelSectionHeading } from "./data-panel-section-heading-X3tHNMV1.js";
|
|
9
9
|
import { SearchInput } from "./components/SearchInput.es.js";
|
|
10
10
|
import { useEffect, useMemo, useRef, useState } from "react";
|
|
@@ -118,7 +118,7 @@ function DataCodeSection({ codeStr = "", title, dialogTitle, icon, simplified =
|
|
|
118
118
|
children: /* @__PURE__ */ jsx(SearchIcon, {})
|
|
119
119
|
}) : /* @__PURE__ */ jsx(SearchInput, {
|
|
120
120
|
label: "Search code",
|
|
121
|
-
placeholder: "Search
|
|
121
|
+
placeholder: "Search",
|
|
122
122
|
size: "sm",
|
|
123
123
|
value: searchQuery,
|
|
124
124
|
onValueChange: setSearchQuery,
|
|
@@ -177,7 +177,7 @@ function DataCodeSection({ codeStr = "", title, dialogTitle, icon, simplified =
|
|
|
177
177
|
className: "flex shrink-0 items-center gap-2",
|
|
178
178
|
children: [!expandedMultiline && /* @__PURE__ */ jsx(SearchInput, {
|
|
179
179
|
label: "Search code",
|
|
180
|
-
placeholder: "Search
|
|
180
|
+
placeholder: "Search",
|
|
181
181
|
size: "sm",
|
|
182
182
|
value: expandedSearchQuery,
|
|
183
183
|
onValueChange: setExpandedSearchQuery
|
|
@@ -228,4 +228,4 @@ function containsInnerNewline(obj) {
|
|
|
228
228
|
}
|
|
229
229
|
export { DataCodeSection as t };
|
|
230
230
|
|
|
231
|
-
//# sourceMappingURL=DataCodeSection-
|
|
231
|
+
//# sourceMappingURL=DataCodeSection-PY9XEg2C.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataCodeSection-PY9XEg2C.js","names":["Text","_Fragment"],"sources":["../src/ds/components/DataCodeSection/data-code-section.tsx"],"sourcesContent":["import { Chunk } from '@codemirror/merge';\nimport { RangeSetBuilder, Text } from '@codemirror/state';\nimport { Decoration, EditorView } from '@codemirror/view';\nimport type { ReactCodeMirrorRef } from '@uiw/react-codemirror';\nimport { AlignJustifyIcon, AlignLeftIcon, ExpandIcon, SearchIcon } from 'lucide-react';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataPanelSectionHeading } from '@/ds/components/DataPanel/data-panel-section-heading';\nimport { Dialog, DialogBody, DialogContent, DialogHeader, DialogTitle } from '@/ds/components/Dialog';\nimport { SearchInput } from '@/ds/components/SearchInput';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport interface DataCodeSectionDiff {\n /** The other document to compare against. */\n against: string;\n /** `a` = this document is the \"before\" (changes in red), `b` = \"after\" (changes in green). */\n side: 'a' | 'b';\n}\n\n/** Zero-based indexes of the lines of `doc` that differ from `diff.against`. */\nfunction changedLines(doc: string, { against, side }: DataCodeSectionDiff): Set<number> {\n const [a, b] = side === 'a' ? [doc, against] : [against, doc];\n const text = Text.of(doc.split('\\n'));\n const lines = new Set<number>();\n for (const chunk of Chunk.build(Text.of(a.split('\\n')), Text.of(b.split('\\n')))) {\n const from = side === 'a' ? chunk.fromA : chunk.fromB;\n const to = side === 'a' ? chunk.endA : chunk.endB;\n if (from >= to) continue;\n for (let pos = from; pos <= Math.min(to, text.length);) {\n const line = text.lineAt(pos);\n lines.add(line.number - 1);\n if (line.to >= to) break;\n pos = line.to + 1;\n }\n }\n return lines;\n}\n\nconst diffLineStyles = {\n removed: 'code-diff-removed bg-destructive-subtle',\n added: 'code-diff-added bg-success-subtle',\n};\nconst searchMatchStyle = 'code-search-match rounded-sm bg-badge-amber-strong';\n\ninterface CodeViewProps {\n code: string;\n changed?: Set<number>;\n diffSide?: DataCodeSectionDiff['side'];\n searchQuery: string;\n}\n\nfunction CodeView({ code, changed, diffSide, searchQuery }: CodeViewProps) {\n const ref = useRef<ReactCodeMirrorRef>(null);\n const query = searchQuery.toLowerCase();\n\n // Matches are scrolled to through CodeMirror: it only renders the visible lines, so an off-screen match has no DOM node yet.\n useEffect(() => {\n const view = ref.current?.view;\n if (!query || !view) return;\n const doc = view.state.doc;\n for (let n = 1; n <= doc.lines; n++) {\n const line = doc.line(n);\n if (line.text.toLowerCase().includes(query)) {\n view.dispatch({ effects: EditorView.scrollIntoView(line.from, { y: 'nearest' }) });\n return;\n }\n }\n }, [query]);\n\n const extensions = useMemo(\n () => [\n EditorView.decorations.compute(['doc'], state => {\n const builder = new RangeSetBuilder<Decoration>();\n for (let n = 1; n <= state.doc.lines; n++) {\n const line = state.doc.line(n);\n const classes: string[] = [];\n if (diffSide && changed?.has(n - 1)) classes.push(diffLineStyles[diffSide === 'a' ? 'removed' : 'added']);\n if (query && line.text.toLowerCase().includes(query)) classes.push(searchMatchStyle);\n if (classes.length) builder.add(line.from, line.from, Decoration.line({ class: classes.join(' ') }));\n }\n return builder.finish();\n }),\n ],\n [changed, diffSide, query],\n );\n\n return (\n <CodeEditor\n ref={ref}\n value={code}\n language=\"json\"\n editable={false}\n lineNumbers={false}\n showCopyButton={false}\n variant=\"embedded\"\n aria-label=\"JSON content\"\n extensions={extensions}\n />\n );\n}\n\nexport interface DataCodeSectionProps {\n title: React.ReactNode;\n dialogTitle?: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n className?: string;\n /** Highlight lines that differ from another document. */\n diff?: DataCodeSectionDiff;\n /** Extra controls rendered in the header, before the built-in copy/expand buttons. */\n actions?: React.ReactNode;\n}\n\nexport function DataCodeSection({\n codeStr = '',\n title,\n dialogTitle,\n icon,\n simplified = false,\n className,\n diff,\n actions,\n}: DataCodeSectionProps) {\n const changed = useMemo(() => (diff ? changedLines(codeStr, diff) : undefined), [codeStr, diff]);\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const [searchMinimized, setSearchMinimized] = useState(true);\n const [searchQuery, setSearchQuery] = useState('');\n const [expandedOpen, setExpandedOpen] = useState(false);\n const [expandedSearchQuery, setExpandedSearchQuery] = useState('');\n const [expandedMultiline, setExpandedMultiline] = useState(false);\n\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const expandedFinalCodeStr = expandedMultiline ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const usePlainTextView = simplified || showAsMultilineText;\n\n if (!codeStr || codeStr === 'null') return null;\n\n return (\n <div className={cn('flex flex-col gap-2', className)}>\n <div className=\"flex items-center justify-between\">\n <DataPanelSectionHeading icon={icon}>{title}</DataPanelSectionHeading>\n <div className=\"flex items-center gap-2\">\n {actions}\n {!usePlainTextView &&\n (searchMinimized ? (\n <Button\n size=\"icon-sm\"\n aria-label=\"Search code\"\n tooltip=\"Search code\"\n onClick={() => setSearchMinimized(false)}\n >\n <SearchIcon />\n </Button>\n ) : (\n <SearchInput\n label=\"Search code\"\n placeholder=\"Search\"\n size=\"sm\"\n value={searchQuery}\n onValueChange={setSearchQuery}\n onClose={() => setSearchMinimized(true)}\n autoFocus\n />\n ))}\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n size=\"icon-md\"\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n tooltip={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(v => !v)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n <Button size=\"icon-md\" aria-label=\"Expand\" tooltip=\"Expand\" onClick={() => setExpandedOpen(true)}>\n <ExpandIcon />\n </Button>\n </ButtonsGroup>\n </div>\n </div>\n\n <div\n className={cn(\n raisedSurfaceStyle,\n 'max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg p-3 text-caption break-all text-muted-foreground',\n )}\n >\n {usePlainTextView ? (\n <div className=\"font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{finalCodeStr}</pre>\n </div>\n ) : (\n <CodeView code={codeStr} changed={changed} diffSide={diff?.side} searchQuery={searchQuery} />\n )}\n </div>\n\n <Dialog open={expandedOpen} onOpenChange={setExpandedOpen}>\n <DialogContent size=\"full\">\n <DialogHeader>\n <div className=\"flex min-w-0 items-center justify-between gap-2\">\n <DialogTitle className=\"flex min-w-0 items-center gap-1.5 truncate [&>svg]:size-3.5\">\n {dialogTitle ?? (\n <>\n {icon}\n {title}\n </>\n )}\n </DialogTitle>\n <div className=\"flex shrink-0 items-center gap-2\">\n {!expandedMultiline && (\n <SearchInput\n label=\"Search code\"\n placeholder=\"Search\"\n size=\"sm\"\n value={expandedSearchQuery}\n onValueChange={setExpandedSearchQuery}\n />\n )}\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n size=\"icon-md\"\n aria-label={expandedMultiline ? 'Show escaped newlines' : 'Show multiline text'}\n tooltip={expandedMultiline ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setExpandedMultiline(v => !v)}\n >\n {expandedMultiline ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n </ButtonsGroup>\n </div>\n </div>\n </DialogHeader>\n <DialogBody layout=\"fill\">\n <div className=\"min-h-0 flex-1 overflow-auto\">\n {expandedMultiline ? (\n <div className={cn(raisedSurfaceStyle, 'rounded-lg p-3 text-caption break-all text-muted-foreground')}>\n <div className=\"font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{expandedFinalCodeStr}</pre>\n </div>\n </div>\n ) : (\n <CodeView code={codeStr} changed={changed} diffSide={diff?.side} searchQuery={expandedSearchQuery} />\n )}\n </div>\n </DialogBody>\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as cn } from "./utils-DQx8TpNT.js";
|
|
2
2
|
import { raisedSurfaceStyle } from "./primitives/raised-surface.es.js";
|
|
3
|
-
import { t as Button } from "./Button-
|
|
3
|
+
import { t as Button } from "./Button-CLXTbAY8.js";
|
|
4
4
|
import { t as Txt } from "./Txt-BM6TVV_c.js";
|
|
5
|
-
import { t as CopyButton } from "./copy-button-
|
|
6
|
-
import { ButtonsGroup } from "./
|
|
7
|
-
import { t as CodeEditor } from "./CodeEditor-
|
|
5
|
+
import { t as CopyButton } from "./copy-button-BXrbevLn.js";
|
|
6
|
+
import { t as ButtonsGroup } from "./buttons-group-DkFlnMiL.js";
|
|
7
|
+
import { t as CodeEditor } from "./CodeEditor-COnz9c6B.js";
|
|
8
8
|
import { t as Spinner } from "./spinner-CnLgLj9R.js";
|
|
9
9
|
import { useMemo, useState } from "react";
|
|
10
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -177,4 +177,4 @@ var DataDetailsPanel = Object.assign(DataDetailsPanel$1, {
|
|
|
177
177
|
});
|
|
178
178
|
export { DataDetailsPanel as t };
|
|
179
179
|
|
|
180
|
-
//# sourceMappingURL=DataDetailsPanel-
|
|
180
|
+
//# sourceMappingURL=DataDetailsPanel-CohEKPm4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataDetailsPanel-_CK0Huk6.js","names":["DataDetailsPanel","Root"],"sources":["../src/ds/components/DataDetailsPanel/data-details-panel.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-close-button.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-code-section.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-content.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-header.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-heading.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-key-value-list.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-loading-data.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-no-data.tsx","../src/ds/components/DataDetailsPanel/index.ts"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelProps {\n collapsed?: boolean;\n children: React.ReactNode;\n}\n\nexport function DataDetailsPanel({ collapsed, children }: DataDetailsPanelProps) {\n return (\n <section\n className={cn(\n 'flex flex-col overflow-hidden rounded-xl border border-border bg-background',\n collapsed ? 'h-auto' : 'h-full',\n )}\n >\n {children}\n </section>\n );\n}\n","import { XIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\n\nexport interface DataDetailsPanelCloseButtonProps {\n onClick: () => void;\n tooltip?: string;\n className?: string;\n}\n\nexport function DataDetailsPanelCloseButton({\n onClick,\n tooltip = 'Close panel',\n className,\n}: DataDetailsPanelCloseButtonProps) {\n return (\n <Button size=\"icon-md\" onClick={onClick} aria-label=\"Close panel\" tooltip={tooltip} className={className}>\n <XIcon />\n </Button>\n );\n}\n","import { AlignJustifyIcon, AlignLeftIcon } from 'lucide-react';\nimport { useMemo, useState } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelCodeSectionProps {\n title: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n className?: string;\n /** Extra controls rendered in the header, before the built-in copy button. */\n actions?: React.ReactNode;\n}\n\nexport function DataDetailsPanelCodeSection({\n codeStr = '',\n title,\n icon,\n simplified = false,\n className,\n actions,\n}: DataDetailsPanelCodeSectionProps) {\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const usePlainTextView = simplified || showAsMultilineText;\n\n if (!codeStr || codeStr === 'null') return null;\n\n return (\n <div className={cn('flex flex-col gap-2', className)}>\n <div className=\"flex items-center justify-between\">\n <div\n className={cn(\n 'flex items-center gap-1.5 text-meta tracking-widest text-placeholder uppercase',\n '[&>svg]:size-3.5',\n )}\n >\n {icon}\n {title}\n </div>\n <div className=\"flex items-center gap-2\">\n {actions}\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n size=\"icon-md\"\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(v => !v)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n </ButtonsGroup>\n </div>\n </div>\n <div\n className={cn(\n raisedSurfaceStyle,\n 'max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg p-3 text-caption break-all text-muted-foreground',\n )}\n >\n {usePlainTextView ? (\n <div className=\"font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{finalCodeStr}</pre>\n </div>\n ) : (\n <CodeEditor\n value={codeStr}\n language=\"json\"\n editable={false}\n lineNumbers={false}\n showCopyButton={false}\n variant=\"embedded\"\n aria-label={typeof title === 'string' ? title : 'JSON'}\n />\n )}\n </div>\n </div>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n","import type { ReactNode } from 'react';\n\nexport interface DataDetailsPanelContentProps {\n children: ReactNode;\n}\n\nexport function DataDetailsPanelContent({ children }: DataDetailsPanelContentProps) {\n return <div className=\"flex-1 overflow-y-auto p-4\">{children}</div>;\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelHeaderProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataDetailsPanelHeader({ className, children }: DataDetailsPanelHeaderProps) {\n return (\n <div className={cn('mx-4 flex items-center justify-between gap-2 border-b border-border py-3', className)}>\n {children}\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelHeadingProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataDetailsPanelHeading({ className, children }: DataDetailsPanelHeadingProps) {\n return (\n <Txt as=\"h3\" tone=\"muted\" className={cn('flex gap-2 [&>b]:text-caption [&>b]:text-placeholder', className)}>\n {children}\n </Txt>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelKeyValueListProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Root({ className, children }: DataDetailsPanelKeyValueListProps) {\n return <dl className={cn('grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5', className)}>{children}</dl>;\n}\n\nexport interface DataDetailsPanelKeyValueListKeyProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Key({ className, children }: DataDetailsPanelKeyValueListKeyProps) {\n return <dt className={cn('shrink-0 py-0.5 text-body-sm text-placeholder', className)}>{children}</dt>;\n}\n\nexport interface DataDetailsPanelKeyValueListValueProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Value({ className, children }: DataDetailsPanelKeyValueListValueProps) {\n return <dd className={cn('min-w-0 truncate py-0.5 text-body-sm text-muted-foreground', className)}>{children}</dd>;\n}\n\nexport interface DataDetailsPanelKeyValueListHeaderProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Header({ className, children }: DataDetailsPanelKeyValueListHeaderProps) {\n return (\n <dt className={cn('col-span-2 py-3 text-caption tracking-widest text-placeholder uppercase', className)}>\n {children}\n </dt>\n );\n}\n\nexport const DataDetailsPanelKeyValueList = Object.assign(Root, {\n Key,\n Value,\n Header,\n});\n","import type { ReactNode } from 'react';\nimport { Spinner } from '@/ds/components/Spinner';\n\nexport interface DataDetailsPanelLoadingDataProps {\n children?: ReactNode;\n}\n\nexport function DataDetailsPanelLoadingData({ children }: DataDetailsPanelLoadingDataProps) {\n return (\n <div className=\"flex items-center justify-center gap-2 px-4 py-6 text-caption text-muted-foreground\">\n <Spinner size=\"sm\" variant=\"pulse\" className=\"text-muted-foreground\" /> {children ?? 'Loading...'}\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nexport interface DataDetailsPanelNoDataProps {\n children?: React.ReactNode;\n}\n\nexport function DataDetailsPanelNoData({ children }: DataDetailsPanelNoDataProps) {\n return (\n <Txt variant=\"caption\" tone=\"faint\" className=\"px-4 py-6\">\n {children ?? 'No data found.'}\n </Txt>\n );\n}\n","import { DataDetailsPanel as Root } from './data-details-panel';\nimport { DataDetailsPanelCloseButton } from './data-details-panel-close-button';\nimport { DataDetailsPanelCodeSection } from './data-details-panel-code-section';\nimport { DataDetailsPanelContent } from './data-details-panel-content';\nimport { DataDetailsPanelHeader } from './data-details-panel-header';\nimport { DataDetailsPanelHeading } from './data-details-panel-heading';\nimport { DataDetailsPanelKeyValueList } from './data-details-panel-key-value-list';\nimport { DataDetailsPanelLoadingData } from './data-details-panel-loading-data';\nimport { DataDetailsPanelNoData } from './data-details-panel-no-data';\n\nconst DataDetailsPanel = Object.assign(Root, {\n Header: DataDetailsPanelHeader,\n Heading: DataDetailsPanelHeading,\n CloseButton: DataDetailsPanelCloseButton,\n LoadingData: DataDetailsPanelLoadingData,\n NoData: DataDetailsPanelNoData,\n Content: DataDetailsPanelContent,\n KeyValueList: DataDetailsPanelKeyValueList,\n CodeSection: DataDetailsPanelCodeSection,\n});\n\nexport { DataDetailsPanel };\nexport type { DataDetailsPanelProps } from './data-details-panel';\nexport type { DataDetailsPanelHeaderProps } from './data-details-panel-header';\nexport type { DataDetailsPanelHeadingProps } from './data-details-panel-heading';\nexport type { DataDetailsPanelCloseButtonProps } from './data-details-panel-close-button';\nexport type { DataDetailsPanelLoadingDataProps } from './data-details-panel-loading-data';\nexport type { DataDetailsPanelNoDataProps } from './data-details-panel-no-data';\nexport type { DataDetailsPanelContentProps } from './data-details-panel-content';\nexport type {\n DataDetailsPanelKeyValueListProps,\n DataDetailsPanelKeyValueListKeyProps,\n DataDetailsPanelKeyValueListValueProps,\n DataDetailsPanelKeyValueListHeaderProps,\n} from './data-details-panel-key-value-list';\nexport type { DataDetailsPanelCodeSectionProps } from './data-details-panel-code-section';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataDetailsPanel-CohEKPm4.js","names":["DataDetailsPanel","Root"],"sources":["../src/ds/components/DataDetailsPanel/data-details-panel.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-close-button.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-code-section.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-content.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-header.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-heading.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-key-value-list.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-loading-data.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-no-data.tsx","../src/ds/components/DataDetailsPanel/index.ts"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelProps {\n collapsed?: boolean;\n children: React.ReactNode;\n}\n\nexport function DataDetailsPanel({ collapsed, children }: DataDetailsPanelProps) {\n return (\n <section\n className={cn(\n 'flex flex-col overflow-hidden rounded-xl border border-border bg-background',\n collapsed ? 'h-auto' : 'h-full',\n )}\n >\n {children}\n </section>\n );\n}\n","import { XIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\n\nexport interface DataDetailsPanelCloseButtonProps {\n onClick: () => void;\n tooltip?: string;\n className?: string;\n}\n\nexport function DataDetailsPanelCloseButton({\n onClick,\n tooltip = 'Close panel',\n className,\n}: DataDetailsPanelCloseButtonProps) {\n return (\n <Button size=\"icon-md\" onClick={onClick} aria-label=\"Close panel\" tooltip={tooltip} className={className}>\n <XIcon />\n </Button>\n );\n}\n","import { AlignJustifyIcon, AlignLeftIcon } from 'lucide-react';\nimport { useMemo, useState } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelCodeSectionProps {\n title: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n className?: string;\n /** Extra controls rendered in the header, before the built-in copy button. */\n actions?: React.ReactNode;\n}\n\nexport function DataDetailsPanelCodeSection({\n codeStr = '',\n title,\n icon,\n simplified = false,\n className,\n actions,\n}: DataDetailsPanelCodeSectionProps) {\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const usePlainTextView = simplified || showAsMultilineText;\n\n if (!codeStr || codeStr === 'null') return null;\n\n return (\n <div className={cn('flex flex-col gap-2', className)}>\n <div className=\"flex items-center justify-between\">\n <div\n className={cn(\n 'flex items-center gap-1.5 text-meta tracking-widest text-placeholder uppercase',\n '[&>svg]:size-3.5',\n )}\n >\n {icon}\n {title}\n </div>\n <div className=\"flex items-center gap-2\">\n {actions}\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n size=\"icon-md\"\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(v => !v)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n </ButtonsGroup>\n </div>\n </div>\n <div\n className={cn(\n raisedSurfaceStyle,\n 'max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg p-3 text-caption break-all text-muted-foreground',\n )}\n >\n {usePlainTextView ? (\n <div className=\"font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{finalCodeStr}</pre>\n </div>\n ) : (\n <CodeEditor\n value={codeStr}\n language=\"json\"\n editable={false}\n lineNumbers={false}\n showCopyButton={false}\n variant=\"embedded\"\n aria-label={typeof title === 'string' ? title : 'JSON'}\n />\n )}\n </div>\n </div>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n","import type { ReactNode } from 'react';\n\nexport interface DataDetailsPanelContentProps {\n children: ReactNode;\n}\n\nexport function DataDetailsPanelContent({ children }: DataDetailsPanelContentProps) {\n return <div className=\"flex-1 overflow-y-auto p-4\">{children}</div>;\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelHeaderProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataDetailsPanelHeader({ className, children }: DataDetailsPanelHeaderProps) {\n return (\n <div className={cn('mx-4 flex items-center justify-between gap-2 border-b border-border py-3', className)}>\n {children}\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelHeadingProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataDetailsPanelHeading({ className, children }: DataDetailsPanelHeadingProps) {\n return (\n <Txt as=\"h3\" tone=\"muted\" className={cn('flex gap-2 [&>b]:text-caption [&>b]:text-placeholder', className)}>\n {children}\n </Txt>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelKeyValueListProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Root({ className, children }: DataDetailsPanelKeyValueListProps) {\n return <dl className={cn('grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5', className)}>{children}</dl>;\n}\n\nexport interface DataDetailsPanelKeyValueListKeyProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Key({ className, children }: DataDetailsPanelKeyValueListKeyProps) {\n return <dt className={cn('shrink-0 py-0.5 text-body-sm text-placeholder', className)}>{children}</dt>;\n}\n\nexport interface DataDetailsPanelKeyValueListValueProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Value({ className, children }: DataDetailsPanelKeyValueListValueProps) {\n return <dd className={cn('min-w-0 truncate py-0.5 text-body-sm text-muted-foreground', className)}>{children}</dd>;\n}\n\nexport interface DataDetailsPanelKeyValueListHeaderProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Header({ className, children }: DataDetailsPanelKeyValueListHeaderProps) {\n return (\n <dt className={cn('col-span-2 py-3 text-caption tracking-widest text-placeholder uppercase', className)}>\n {children}\n </dt>\n );\n}\n\nexport const DataDetailsPanelKeyValueList = Object.assign(Root, {\n Key,\n Value,\n Header,\n});\n","import type { ReactNode } from 'react';\nimport { Spinner } from '@/ds/components/Spinner';\n\nexport interface DataDetailsPanelLoadingDataProps {\n children?: ReactNode;\n}\n\nexport function DataDetailsPanelLoadingData({ children }: DataDetailsPanelLoadingDataProps) {\n return (\n <div className=\"flex items-center justify-center gap-2 px-4 py-6 text-caption text-muted-foreground\">\n <Spinner size=\"sm\" variant=\"pulse\" className=\"text-muted-foreground\" /> {children ?? 'Loading...'}\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nexport interface DataDetailsPanelNoDataProps {\n children?: React.ReactNode;\n}\n\nexport function DataDetailsPanelNoData({ children }: DataDetailsPanelNoDataProps) {\n return (\n <Txt variant=\"caption\" tone=\"faint\" className=\"px-4 py-6\">\n {children ?? 'No data found.'}\n </Txt>\n );\n}\n","import { DataDetailsPanel as Root } from './data-details-panel';\nimport { DataDetailsPanelCloseButton } from './data-details-panel-close-button';\nimport { DataDetailsPanelCodeSection } from './data-details-panel-code-section';\nimport { DataDetailsPanelContent } from './data-details-panel-content';\nimport { DataDetailsPanelHeader } from './data-details-panel-header';\nimport { DataDetailsPanelHeading } from './data-details-panel-heading';\nimport { DataDetailsPanelKeyValueList } from './data-details-panel-key-value-list';\nimport { DataDetailsPanelLoadingData } from './data-details-panel-loading-data';\nimport { DataDetailsPanelNoData } from './data-details-panel-no-data';\n\nconst DataDetailsPanel = Object.assign(Root, {\n Header: DataDetailsPanelHeader,\n Heading: DataDetailsPanelHeading,\n CloseButton: DataDetailsPanelCloseButton,\n LoadingData: DataDetailsPanelLoadingData,\n NoData: DataDetailsPanelNoData,\n Content: DataDetailsPanelContent,\n KeyValueList: DataDetailsPanelKeyValueList,\n CodeSection: DataDetailsPanelCodeSection,\n});\n\nexport { DataDetailsPanel };\nexport type { DataDetailsPanelProps } from './data-details-panel';\nexport type { DataDetailsPanelHeaderProps } from './data-details-panel-header';\nexport type { DataDetailsPanelHeadingProps } from './data-details-panel-heading';\nexport type { DataDetailsPanelCloseButtonProps } from './data-details-panel-close-button';\nexport type { DataDetailsPanelLoadingDataProps } from './data-details-panel-loading-data';\nexport type { DataDetailsPanelNoDataProps } from './data-details-panel-no-data';\nexport type { DataDetailsPanelContentProps } from './data-details-panel-content';\nexport type {\n DataDetailsPanelKeyValueListProps,\n DataDetailsPanelKeyValueListKeyProps,\n DataDetailsPanelKeyValueListValueProps,\n DataDetailsPanelKeyValueListHeaderProps,\n} from './data-details-panel-key-value-list';\nexport type { DataDetailsPanelCodeSectionProps } from './data-details-panel-code-section';\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const require_utils = require("./utils-uDc1ofX1.cjs");
|
|
2
2
|
const require_primitives_raised_surface = require("./primitives/raised-surface.cjs.js");
|
|
3
|
-
const require_Button = require("./Button-
|
|
3
|
+
const require_Button = require("./Button-DLcMcuUL.cjs");
|
|
4
4
|
const require_Txt = require("./Txt-BnoSqxKE.cjs");
|
|
5
|
-
const require_copy_button = require("./copy-button-
|
|
6
|
-
const
|
|
7
|
-
const require_CodeEditor = require("./CodeEditor-
|
|
5
|
+
const require_copy_button = require("./copy-button-DJAQ6_3o.cjs");
|
|
6
|
+
const require_buttons_group = require("./buttons-group-Dc6R7YSs.cjs");
|
|
7
|
+
const require_CodeEditor = require("./CodeEditor-CLzs0yVc.cjs");
|
|
8
8
|
const require_spinner = require("./spinner-C8ZxiA5C.cjs");
|
|
9
9
|
let react = require("react");
|
|
10
10
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -49,7 +49,7 @@ function DataDetailsPanelCodeSection({ codeStr = "", title, icon, simplified = f
|
|
|
49
49
|
children: [icon, title]
|
|
50
50
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
51
51
|
className: "flex items-center gap-2",
|
|
52
|
-
children: [actions, /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
52
|
+
children: [actions, /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_buttons_group.ButtonsGroup, {
|
|
53
53
|
size: "sm",
|
|
54
54
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_copy_button.CopyButton, { content: codeStr || "No content" }), hasMultilineText && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.Button, {
|
|
55
55
|
size: "icon-md",
|
|
@@ -182,4 +182,4 @@ Object.defineProperty(exports, "DataDetailsPanel", {
|
|
|
182
182
|
}
|
|
183
183
|
});
|
|
184
184
|
|
|
185
|
-
//# sourceMappingURL=DataDetailsPanel-
|
|
185
|
+
//# sourceMappingURL=DataDetailsPanel-DiyjEXqK.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataDetailsPanel-DFhM9H5D.cjs","names":["DataDetailsPanel","cn","Button","XIcon","useState","useMemo","cn","ButtonsGroup","CopyButton","Button","AlignLeftIcon","AlignJustifyIcon","raisedSurfaceStyle","CodeEditor","cn","Txt","cn","cn","Spinner","Txt","Root"],"sources":["../src/ds/components/DataDetailsPanel/data-details-panel.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-close-button.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-code-section.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-content.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-header.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-heading.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-key-value-list.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-loading-data.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-no-data.tsx","../src/ds/components/DataDetailsPanel/index.ts"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelProps {\n collapsed?: boolean;\n children: React.ReactNode;\n}\n\nexport function DataDetailsPanel({ collapsed, children }: DataDetailsPanelProps) {\n return (\n <section\n className={cn(\n 'flex flex-col overflow-hidden rounded-xl border border-border bg-background',\n collapsed ? 'h-auto' : 'h-full',\n )}\n >\n {children}\n </section>\n );\n}\n","import { XIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\n\nexport interface DataDetailsPanelCloseButtonProps {\n onClick: () => void;\n tooltip?: string;\n className?: string;\n}\n\nexport function DataDetailsPanelCloseButton({\n onClick,\n tooltip = 'Close panel',\n className,\n}: DataDetailsPanelCloseButtonProps) {\n return (\n <Button size=\"icon-md\" onClick={onClick} aria-label=\"Close panel\" tooltip={tooltip} className={className}>\n <XIcon />\n </Button>\n );\n}\n","import { AlignJustifyIcon, AlignLeftIcon } from 'lucide-react';\nimport { useMemo, useState } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelCodeSectionProps {\n title: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n className?: string;\n /** Extra controls rendered in the header, before the built-in copy button. */\n actions?: React.ReactNode;\n}\n\nexport function DataDetailsPanelCodeSection({\n codeStr = '',\n title,\n icon,\n simplified = false,\n className,\n actions,\n}: DataDetailsPanelCodeSectionProps) {\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const usePlainTextView = simplified || showAsMultilineText;\n\n if (!codeStr || codeStr === 'null') return null;\n\n return (\n <div className={cn('flex flex-col gap-2', className)}>\n <div className=\"flex items-center justify-between\">\n <div\n className={cn(\n 'flex items-center gap-1.5 text-meta tracking-widest text-placeholder uppercase',\n '[&>svg]:size-3.5',\n )}\n >\n {icon}\n {title}\n </div>\n <div className=\"flex items-center gap-2\">\n {actions}\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n size=\"icon-md\"\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(v => !v)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n </ButtonsGroup>\n </div>\n </div>\n <div\n className={cn(\n raisedSurfaceStyle,\n 'max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg p-3 text-caption break-all text-muted-foreground',\n )}\n >\n {usePlainTextView ? (\n <div className=\"font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{finalCodeStr}</pre>\n </div>\n ) : (\n <CodeEditor\n value={codeStr}\n language=\"json\"\n editable={false}\n lineNumbers={false}\n showCopyButton={false}\n variant=\"embedded\"\n aria-label={typeof title === 'string' ? title : 'JSON'}\n />\n )}\n </div>\n </div>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n","import type { ReactNode } from 'react';\n\nexport interface DataDetailsPanelContentProps {\n children: ReactNode;\n}\n\nexport function DataDetailsPanelContent({ children }: DataDetailsPanelContentProps) {\n return <div className=\"flex-1 overflow-y-auto p-4\">{children}</div>;\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelHeaderProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataDetailsPanelHeader({ className, children }: DataDetailsPanelHeaderProps) {\n return (\n <div className={cn('mx-4 flex items-center justify-between gap-2 border-b border-border py-3', className)}>\n {children}\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelHeadingProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataDetailsPanelHeading({ className, children }: DataDetailsPanelHeadingProps) {\n return (\n <Txt as=\"h3\" tone=\"muted\" className={cn('flex gap-2 [&>b]:text-caption [&>b]:text-placeholder', className)}>\n {children}\n </Txt>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelKeyValueListProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Root({ className, children }: DataDetailsPanelKeyValueListProps) {\n return <dl className={cn('grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5', className)}>{children}</dl>;\n}\n\nexport interface DataDetailsPanelKeyValueListKeyProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Key({ className, children }: DataDetailsPanelKeyValueListKeyProps) {\n return <dt className={cn('shrink-0 py-0.5 text-body-sm text-placeholder', className)}>{children}</dt>;\n}\n\nexport interface DataDetailsPanelKeyValueListValueProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Value({ className, children }: DataDetailsPanelKeyValueListValueProps) {\n return <dd className={cn('min-w-0 truncate py-0.5 text-body-sm text-muted-foreground', className)}>{children}</dd>;\n}\n\nexport interface DataDetailsPanelKeyValueListHeaderProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Header({ className, children }: DataDetailsPanelKeyValueListHeaderProps) {\n return (\n <dt className={cn('col-span-2 py-3 text-caption tracking-widest text-placeholder uppercase', className)}>\n {children}\n </dt>\n );\n}\n\nexport const DataDetailsPanelKeyValueList = Object.assign(Root, {\n Key,\n Value,\n Header,\n});\n","import type { ReactNode } from 'react';\nimport { Spinner } from '@/ds/components/Spinner';\n\nexport interface DataDetailsPanelLoadingDataProps {\n children?: ReactNode;\n}\n\nexport function DataDetailsPanelLoadingData({ children }: DataDetailsPanelLoadingDataProps) {\n return (\n <div className=\"flex items-center justify-center gap-2 px-4 py-6 text-caption text-muted-foreground\">\n <Spinner size=\"sm\" variant=\"pulse\" className=\"text-muted-foreground\" /> {children ?? 'Loading...'}\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nexport interface DataDetailsPanelNoDataProps {\n children?: React.ReactNode;\n}\n\nexport function DataDetailsPanelNoData({ children }: DataDetailsPanelNoDataProps) {\n return (\n <Txt variant=\"caption\" tone=\"faint\" className=\"px-4 py-6\">\n {children ?? 'No data found.'}\n </Txt>\n );\n}\n","import { DataDetailsPanel as Root } from './data-details-panel';\nimport { DataDetailsPanelCloseButton } from './data-details-panel-close-button';\nimport { DataDetailsPanelCodeSection } from './data-details-panel-code-section';\nimport { DataDetailsPanelContent } from './data-details-panel-content';\nimport { DataDetailsPanelHeader } from './data-details-panel-header';\nimport { DataDetailsPanelHeading } from './data-details-panel-heading';\nimport { DataDetailsPanelKeyValueList } from './data-details-panel-key-value-list';\nimport { DataDetailsPanelLoadingData } from './data-details-panel-loading-data';\nimport { DataDetailsPanelNoData } from './data-details-panel-no-data';\n\nconst DataDetailsPanel = Object.assign(Root, {\n Header: DataDetailsPanelHeader,\n Heading: DataDetailsPanelHeading,\n CloseButton: DataDetailsPanelCloseButton,\n LoadingData: DataDetailsPanelLoadingData,\n NoData: DataDetailsPanelNoData,\n Content: DataDetailsPanelContent,\n KeyValueList: DataDetailsPanelKeyValueList,\n CodeSection: DataDetailsPanelCodeSection,\n});\n\nexport { DataDetailsPanel };\nexport type { DataDetailsPanelProps } from './data-details-panel';\nexport type { DataDetailsPanelHeaderProps } from './data-details-panel-header';\nexport type { DataDetailsPanelHeadingProps } from './data-details-panel-heading';\nexport type { DataDetailsPanelCloseButtonProps } from './data-details-panel-close-button';\nexport type { DataDetailsPanelLoadingDataProps } from './data-details-panel-loading-data';\nexport type { DataDetailsPanelNoDataProps } from './data-details-panel-no-data';\nexport type { DataDetailsPanelContentProps } from './data-details-panel-content';\nexport type {\n DataDetailsPanelKeyValueListProps,\n DataDetailsPanelKeyValueListKeyProps,\n DataDetailsPanelKeyValueListValueProps,\n DataDetailsPanelKeyValueListHeaderProps,\n} from './data-details-panel-key-value-list';\nexport type { DataDetailsPanelCodeSectionProps } from './data-details-panel-code-section';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataDetailsPanel-DiyjEXqK.cjs","names":["DataDetailsPanel","cn","Button","XIcon","useState","useMemo","cn","ButtonsGroup","CopyButton","Button","AlignLeftIcon","AlignJustifyIcon","raisedSurfaceStyle","CodeEditor","cn","Txt","cn","cn","Spinner","Txt","Root"],"sources":["../src/ds/components/DataDetailsPanel/data-details-panel.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-close-button.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-code-section.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-content.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-header.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-heading.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-key-value-list.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-loading-data.tsx","../src/ds/components/DataDetailsPanel/data-details-panel-no-data.tsx","../src/ds/components/DataDetailsPanel/index.ts"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelProps {\n collapsed?: boolean;\n children: React.ReactNode;\n}\n\nexport function DataDetailsPanel({ collapsed, children }: DataDetailsPanelProps) {\n return (\n <section\n className={cn(\n 'flex flex-col overflow-hidden rounded-xl border border-border bg-background',\n collapsed ? 'h-auto' : 'h-full',\n )}\n >\n {children}\n </section>\n );\n}\n","import { XIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\n\nexport interface DataDetailsPanelCloseButtonProps {\n onClick: () => void;\n tooltip?: string;\n className?: string;\n}\n\nexport function DataDetailsPanelCloseButton({\n onClick,\n tooltip = 'Close panel',\n className,\n}: DataDetailsPanelCloseButtonProps) {\n return (\n <Button size=\"icon-md\" onClick={onClick} aria-label=\"Close panel\" tooltip={tooltip} className={className}>\n <XIcon />\n </Button>\n );\n}\n","import { AlignJustifyIcon, AlignLeftIcon } from 'lucide-react';\nimport { useMemo, useState } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelCodeSectionProps {\n title: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n className?: string;\n /** Extra controls rendered in the header, before the built-in copy button. */\n actions?: React.ReactNode;\n}\n\nexport function DataDetailsPanelCodeSection({\n codeStr = '',\n title,\n icon,\n simplified = false,\n className,\n actions,\n}: DataDetailsPanelCodeSectionProps) {\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const usePlainTextView = simplified || showAsMultilineText;\n\n if (!codeStr || codeStr === 'null') return null;\n\n return (\n <div className={cn('flex flex-col gap-2', className)}>\n <div className=\"flex items-center justify-between\">\n <div\n className={cn(\n 'flex items-center gap-1.5 text-meta tracking-widest text-placeholder uppercase',\n '[&>svg]:size-3.5',\n )}\n >\n {icon}\n {title}\n </div>\n <div className=\"flex items-center gap-2\">\n {actions}\n <ButtonsGroup size=\"sm\">\n <CopyButton content={codeStr || 'No content'} />\n {hasMultilineText && (\n <Button\n size=\"icon-md\"\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(v => !v)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n </ButtonsGroup>\n </div>\n </div>\n <div\n className={cn(\n raisedSurfaceStyle,\n 'max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg p-3 text-caption break-all text-muted-foreground',\n )}\n >\n {usePlainTextView ? (\n <div className=\"font-mono break-all text-muted-foreground\">\n <pre className=\"text-wrap\">{finalCodeStr}</pre>\n </div>\n ) : (\n <CodeEditor\n value={codeStr}\n language=\"json\"\n editable={false}\n lineNumbers={false}\n showCopyButton={false}\n variant=\"embedded\"\n aria-label={typeof title === 'string' ? title : 'JSON'}\n />\n )}\n </div>\n </div>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n","import type { ReactNode } from 'react';\n\nexport interface DataDetailsPanelContentProps {\n children: ReactNode;\n}\n\nexport function DataDetailsPanelContent({ children }: DataDetailsPanelContentProps) {\n return <div className=\"flex-1 overflow-y-auto p-4\">{children}</div>;\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelHeaderProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataDetailsPanelHeader({ className, children }: DataDetailsPanelHeaderProps) {\n return (\n <div className={cn('mx-4 flex items-center justify-between gap-2 border-b border-border py-3', className)}>\n {children}\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelHeadingProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataDetailsPanelHeading({ className, children }: DataDetailsPanelHeadingProps) {\n return (\n <Txt as=\"h3\" tone=\"muted\" className={cn('flex gap-2 [&>b]:text-caption [&>b]:text-placeholder', className)}>\n {children}\n </Txt>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataDetailsPanelKeyValueListProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Root({ className, children }: DataDetailsPanelKeyValueListProps) {\n return <dl className={cn('grid grid-cols-[auto_1fr] gap-x-4 gap-y-1.5', className)}>{children}</dl>;\n}\n\nexport interface DataDetailsPanelKeyValueListKeyProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Key({ className, children }: DataDetailsPanelKeyValueListKeyProps) {\n return <dt className={cn('shrink-0 py-0.5 text-body-sm text-placeholder', className)}>{children}</dt>;\n}\n\nexport interface DataDetailsPanelKeyValueListValueProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Value({ className, children }: DataDetailsPanelKeyValueListValueProps) {\n return <dd className={cn('min-w-0 truncate py-0.5 text-body-sm text-muted-foreground', className)}>{children}</dd>;\n}\n\nexport interface DataDetailsPanelKeyValueListHeaderProps {\n className?: string;\n children: React.ReactNode;\n}\n\nfunction Header({ className, children }: DataDetailsPanelKeyValueListHeaderProps) {\n return (\n <dt className={cn('col-span-2 py-3 text-caption tracking-widest text-placeholder uppercase', className)}>\n {children}\n </dt>\n );\n}\n\nexport const DataDetailsPanelKeyValueList = Object.assign(Root, {\n Key,\n Value,\n Header,\n});\n","import type { ReactNode } from 'react';\nimport { Spinner } from '@/ds/components/Spinner';\n\nexport interface DataDetailsPanelLoadingDataProps {\n children?: ReactNode;\n}\n\nexport function DataDetailsPanelLoadingData({ children }: DataDetailsPanelLoadingDataProps) {\n return (\n <div className=\"flex items-center justify-center gap-2 px-4 py-6 text-caption text-muted-foreground\">\n <Spinner size=\"sm\" variant=\"pulse\" className=\"text-muted-foreground\" /> {children ?? 'Loading...'}\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nexport interface DataDetailsPanelNoDataProps {\n children?: React.ReactNode;\n}\n\nexport function DataDetailsPanelNoData({ children }: DataDetailsPanelNoDataProps) {\n return (\n <Txt variant=\"caption\" tone=\"faint\" className=\"px-4 py-6\">\n {children ?? 'No data found.'}\n </Txt>\n );\n}\n","import { DataDetailsPanel as Root } from './data-details-panel';\nimport { DataDetailsPanelCloseButton } from './data-details-panel-close-button';\nimport { DataDetailsPanelCodeSection } from './data-details-panel-code-section';\nimport { DataDetailsPanelContent } from './data-details-panel-content';\nimport { DataDetailsPanelHeader } from './data-details-panel-header';\nimport { DataDetailsPanelHeading } from './data-details-panel-heading';\nimport { DataDetailsPanelKeyValueList } from './data-details-panel-key-value-list';\nimport { DataDetailsPanelLoadingData } from './data-details-panel-loading-data';\nimport { DataDetailsPanelNoData } from './data-details-panel-no-data';\n\nconst DataDetailsPanel = Object.assign(Root, {\n Header: DataDetailsPanelHeader,\n Heading: DataDetailsPanelHeading,\n CloseButton: DataDetailsPanelCloseButton,\n LoadingData: DataDetailsPanelLoadingData,\n NoData: DataDetailsPanelNoData,\n Content: DataDetailsPanelContent,\n KeyValueList: DataDetailsPanelKeyValueList,\n CodeSection: DataDetailsPanelCodeSection,\n});\n\nexport { DataDetailsPanel };\nexport type { DataDetailsPanelProps } from './data-details-panel';\nexport type { DataDetailsPanelHeaderProps } from './data-details-panel-header';\nexport type { DataDetailsPanelHeadingProps } from './data-details-panel-heading';\nexport type { DataDetailsPanelCloseButtonProps } from './data-details-panel-close-button';\nexport type { DataDetailsPanelLoadingDataProps } from './data-details-panel-loading-data';\nexport type { DataDetailsPanelNoDataProps } from './data-details-panel-no-data';\nexport type { DataDetailsPanelContentProps } from './data-details-panel-content';\nexport type {\n DataDetailsPanelKeyValueListProps,\n DataDetailsPanelKeyValueListKeyProps,\n DataDetailsPanelKeyValueListValueProps,\n DataDetailsPanelKeyValueListHeaderProps,\n} from './data-details-panel-key-value-list';\nexport type { DataDetailsPanelCodeSectionProps } from './data-details-panel-code-section';\n"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import { McpServerIcon } from "./icons/McpServerIcon.es.js";
|
|
|
10
10
|
import { ProcessorIcon } from "./icons/ProcessorIcon.es.js";
|
|
11
11
|
import { ScorersIcon } from "./icons/ScorersIcon.es.js";
|
|
12
12
|
import { t as Badge } from "./Badge-aVu5iGAF.js";
|
|
13
|
-
import { C as splitColumns, S as dataListRowOuterStyles, _ as DataListCreatedCell, a as DataListSpacer, b as DataListTextCell, f as DataListRowButton, g as DataListCell, h as DataListNextPageLoading, i as DataListSubheader, l as DataListTopCellWithTooltip, m as DataListNoMatch, n as DataListTop, o as DataListSortableTopCell, p as DataListRoot, r as DataListSubHeading, s as DataListTopCell, y as DataListIdCell } from "./data-list-
|
|
13
|
+
import { C as splitColumns, S as dataListRowOuterStyles, _ as DataListCreatedCell, a as DataListSpacer, b as DataListTextCell, f as DataListRowButton, g as DataListCell, h as DataListNextPageLoading, i as DataListSubheader, l as DataListTopCellWithTooltip, m as DataListNoMatch, n as DataListTop, o as DataListSortableTopCell, p as DataListRoot, r as DataListSubHeading, s as DataListTopCell, y as DataListIdCell } from "./data-list-DHCOoLmj.js";
|
|
14
14
|
import { Fragment } from "react";
|
|
15
15
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
16
16
|
import { CornerDownRightIcon, DatabaseIcon, ListTreeIcon, RouteIcon, SplitIcon } from "lucide-react";
|
|
@@ -405,4 +405,4 @@ var TracesDataList = Object.assign(TracesDataListRoot, {
|
|
|
405
405
|
});
|
|
406
406
|
export { DataListSkeletonRows as i, ScoresDataList as n, DataListSkeleton as r, TracesDataList as t };
|
|
407
407
|
|
|
408
|
-
//# sourceMappingURL=DataList-
|
|
408
|
+
//# sourceMappingURL=DataList-CUhRQAv6.js.map
|