@flanksource/clicky-ui 0.3.44 → 0.3.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/ai.cjs +4 -2
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.js +3 -1
- package/dist/components/MdxEditorField.cjs +40 -22
- package/dist/components/MdxEditorField.cjs.map +1 -1
- package/dist/components/MdxEditorField.d.ts.map +1 -1
- package/dist/components/MdxEditorField.js +41 -23
- package/dist/components/MdxEditorField.js.map +1 -1
- package/dist/components/json-schema-form-item-summary.cjs +6 -1
- package/dist/components/json-schema-form-item-summary.cjs.map +1 -1
- package/dist/components/json-schema-form-item-summary.d.ts.map +1 -1
- package/dist/components/json-schema-form-item-summary.js +6 -1
- package/dist/components/json-schema-form-item-summary.js.map +1 -1
- package/dist/data/CodeBlock.cjs +3 -2
- package/dist/data/CodeBlock.cjs.map +1 -1
- package/dist/data/CodeBlock.d.ts +3 -1
- package/dist/data/CodeBlock.d.ts.map +1 -1
- package/dist/data/CodeBlock.js +3 -2
- package/dist/data/CodeBlock.js.map +1 -1
- package/dist/data/GraphDiagram.cjs +18 -6
- package/dist/data/GraphDiagram.cjs.map +1 -1
- package/dist/data/GraphDiagram.d.ts +9 -1
- package/dist/data/GraphDiagram.d.ts.map +1 -1
- package/dist/data/GraphDiagram.js +18 -6
- package/dist/data/GraphDiagram.js.map +1 -1
- package/dist/data/GraphDiagramNodes.cjs +38 -29
- package/dist/data/GraphDiagramNodes.cjs.map +1 -1
- package/dist/data/GraphDiagramNodes.d.ts +8 -2
- package/dist/data/GraphDiagramNodes.d.ts.map +1 -1
- package/dist/data/GraphDiagramNodes.js +38 -29
- package/dist/data/GraphDiagramNodes.js.map +1 -1
- package/dist/data/JsonView.cjs +118 -49
- package/dist/data/JsonView.cjs.map +1 -1
- package/dist/data/JsonView.d.ts +13 -10
- package/dist/data/JsonView.d.ts.map +1 -1
- package/dist/data/JsonView.js +118 -49
- package/dist/data/JsonView.js.map +1 -1
- package/dist/data/MarkdownEditor.cjs +2 -2
- package/dist/data/MarkdownEditor.cjs.map +1 -1
- package/dist/data/MarkdownEditor.js +2 -2
- package/dist/data/MarkdownEditor.js.map +1 -1
- package/dist/data/ai/AdvancedChatConfig.cjs +90 -249
- package/dist/data/ai/AdvancedChatConfig.cjs.map +1 -1
- package/dist/data/ai/AdvancedChatConfig.d.ts +2 -5
- package/dist/data/ai/AdvancedChatConfig.d.ts.map +1 -1
- package/dist/data/ai/AdvancedChatConfig.js +91 -250
- package/dist/data/ai/AdvancedChatConfig.js.map +1 -1
- package/dist/data/ai/ChatButton.cjs +2 -0
- package/dist/data/ai/ChatButton.cjs.map +1 -1
- package/dist/data/ai/ChatButton.d.ts +1 -1
- package/dist/data/ai/ChatButton.d.ts.map +1 -1
- package/dist/data/ai/ChatButton.js +2 -0
- package/dist/data/ai/ChatButton.js.map +1 -1
- package/dist/data/ai/ChatFab.cjs +5 -1
- package/dist/data/ai/ChatFab.cjs.map +1 -1
- package/dist/data/ai/ChatFab.d.ts +5 -1
- package/dist/data/ai/ChatFab.d.ts.map +1 -1
- package/dist/data/ai/ChatFab.js +5 -1
- package/dist/data/ai/ChatFab.js.map +1 -1
- package/dist/data/ai/ChatWindow.cjs +2 -8
- package/dist/data/ai/ChatWindow.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.js +2 -8
- package/dist/data/ai/ChatWindow.js.map +1 -1
- package/dist/data/ai/ChatWindow.runtime.cjs +0 -5
- package/dist/data/ai/ChatWindow.runtime.cjs.map +1 -1
- package/dist/data/ai/ChatWindow.runtime.d.ts +0 -2
- package/dist/data/ai/ChatWindow.runtime.d.ts.map +1 -1
- package/dist/data/ai/ChatWindow.runtime.js +0 -5
- package/dist/data/ai/ChatWindow.runtime.js.map +1 -1
- package/dist/data/ai/PromptRunEditor/runtimeActions.cjs +2 -2
- package/dist/data/ai/PromptRunEditor/runtimeActions.cjs.map +1 -1
- package/dist/data/ai/PromptRunEditor/runtimeActions.d.ts.map +1 -1
- package/dist/data/ai/PromptRunEditor/runtimeActions.js +2 -2
- package/dist/data/ai/PromptRunEditor/runtimeActions.js.map +1 -1
- package/dist/data/ai/SessionInspector.approvals.cjs +3 -6
- package/dist/data/ai/SessionInspector.approvals.cjs.map +1 -1
- package/dist/data/ai/SessionInspector.approvals.js +3 -6
- package/dist/data/ai/SessionInspector.approvals.js.map +1 -1
- package/dist/data/ai/SessionViewer.cjs +13 -4
- package/dist/data/ai/SessionViewer.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.d.ts +5 -1
- package/dist/data/ai/SessionViewer.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.header.cjs +1 -1
- package/dist/data/ai/SessionViewer.header.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.header.js +1 -1
- package/dist/data/ai/SessionViewer.header.js.map +1 -1
- package/dist/data/ai/SessionViewer.js +13 -4
- package/dist/data/ai/SessionViewer.js.map +1 -1
- package/dist/data/ai/SessionViewer.model.cjs +2 -0
- package/dist/data/ai/SessionViewer.model.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.model.d.ts +1 -0
- package/dist/data/ai/SessionViewer.model.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.model.js +2 -0
- package/dist/data/ai/SessionViewer.model.js.map +1 -1
- package/dist/data/ai/SessionViewer.rows.cjs +41 -27
- package/dist/data/ai/SessionViewer.rows.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.rows.d.ts +4 -2
- package/dist/data/ai/SessionViewer.rows.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.rows.js +41 -27
- package/dist/data/ai/SessionViewer.rows.js.map +1 -1
- package/dist/data/ai/SessionViewer.tokens.cjs +35 -0
- package/dist/data/ai/SessionViewer.tokens.cjs.map +1 -0
- package/dist/data/ai/SessionViewer.tokens.d.ts +5 -0
- package/dist/data/ai/SessionViewer.tokens.d.ts.map +1 -0
- package/dist/data/ai/SessionViewer.tokens.js +35 -0
- package/dist/data/ai/SessionViewer.tokens.js.map +1 -0
- package/dist/data/ai/SessionViewer.tool-cost.cjs +128 -0
- package/dist/data/ai/SessionViewer.tool-cost.cjs.map +1 -0
- package/dist/data/ai/SessionViewer.tool-cost.d.ts +6 -0
- package/dist/data/ai/SessionViewer.tool-cost.d.ts.map +1 -0
- package/dist/data/ai/SessionViewer.tool-cost.js +128 -0
- package/dist/data/ai/SessionViewer.tool-cost.js.map +1 -0
- package/dist/data/ai/SessionViewer.tool-details.cjs +3 -1
- package/dist/data/ai/SessionViewer.tool-details.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.tool-details.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.tool-details.js +3 -1
- package/dist/data/ai/SessionViewer.tool-details.js.map +1 -1
- package/dist/data/ai/SessionViewer.tool-row.cjs +55 -35
- package/dist/data/ai/SessionViewer.tool-row.cjs.map +1 -1
- package/dist/data/ai/SessionViewer.tool-row.d.ts +2 -1
- package/dist/data/ai/SessionViewer.tool-row.d.ts.map +1 -1
- package/dist/data/ai/SessionViewer.tool-row.js +55 -35
- package/dist/data/ai/SessionViewer.tool-row.js.map +1 -1
- package/dist/data/ai/SessionViewer.unified.d.ts +4 -0
- package/dist/data/ai/SessionViewer.unified.d.ts.map +1 -1
- package/dist/data/ai/SessionViewerMenu.cjs +18 -1
- package/dist/data/ai/SessionViewerMenu.cjs.map +1 -1
- package/dist/data/ai/SessionViewerMenu.d.ts +6 -1
- package/dist/data/ai/SessionViewerMenu.d.ts.map +1 -1
- package/dist/data/ai/SessionViewerMenu.js +18 -1
- package/dist/data/ai/SessionViewerMenu.js.map +1 -1
- package/dist/data/ai/ToolPreferences.cjs +149 -143
- package/dist/data/ai/ToolPreferences.cjs.map +1 -1
- package/dist/data/ai/ToolPreferences.d.ts +20 -6
- package/dist/data/ai/ToolPreferences.d.ts.map +1 -1
- package/dist/data/ai/ToolPreferences.js +151 -146
- package/dist/data/ai/ToolPreferences.js.map +1 -1
- package/dist/data/ai/ToolPreferences.model.cjs +14 -10
- package/dist/data/ai/ToolPreferences.model.cjs.map +1 -1
- package/dist/data/ai/ToolPreferences.model.d.ts +1 -0
- package/dist/data/ai/ToolPreferences.model.d.ts.map +1 -1
- package/dist/data/ai/ToolPreferences.model.js +15 -11
- package/dist/data/ai/ToolPreferences.model.js.map +1 -1
- package/dist/data/ai/ToolPreferencesList.cjs +1 -0
- package/dist/data/ai/ToolPreferencesList.cjs.map +1 -1
- package/dist/data/ai/ToolPreferencesList.d.ts +4 -1
- package/dist/data/ai/ToolPreferencesList.d.ts.map +1 -1
- package/dist/data/ai/ToolPreferencesList.js +2 -1
- package/dist/data/ai/ToolPreferencesList.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.cjs +52 -53
- package/dist/data/ai/ToolSchemaBrowser.cjs.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.d.ts +6 -3
- package/dist/data/ai/ToolSchemaBrowser.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.directory-header.cjs +9 -13
- package/dist/data/ai/ToolSchemaBrowser.directory-header.cjs.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts +5 -2
- package/dist/data/ai/ToolSchemaBrowser.directory-header.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.directory-header.js +9 -13
- package/dist/data/ai/ToolSchemaBrowser.directory-header.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.js +53 -54
- package/dist/data/ai/ToolSchemaBrowser.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.model.cjs +19 -27
- package/dist/data/ai/ToolSchemaBrowser.model.cjs.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.model.d.ts +9 -6
- package/dist/data/ai/ToolSchemaBrowser.model.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.model.js +20 -28
- package/dist/data/ai/ToolSchemaBrowser.model.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.sidebar.cjs +12 -213
- package/dist/data/ai/ToolSchemaBrowser.sidebar.cjs.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts +1 -3
- package/dist/data/ai/ToolSchemaBrowser.sidebar.d.ts.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.sidebar.js +13 -214
- package/dist/data/ai/ToolSchemaBrowser.sidebar.js.map +1 -1
- package/dist/data/ai/ToolSchemaBrowser.strategies.cjs +54 -0
- package/dist/data/ai/ToolSchemaBrowser.strategies.cjs.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.strategies.d.ts +9 -0
- package/dist/data/ai/ToolSchemaBrowser.strategies.d.ts.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.strategies.js +54 -0
- package/dist/data/ai/ToolSchemaBrowser.strategies.js.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.cjs +179 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.cjs.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.d.ts +20 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.d.ts.map +1 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.js +179 -0
- package/dist/data/ai/ToolSchemaBrowser.tree.js.map +1 -0
- package/dist/data/ai/index.d.ts +2 -2
- package/dist/data/ai/index.d.ts.map +1 -1
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.cjs +8 -28
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.cjs.map +1 -1
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.d.ts.map +1 -1
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.js +9 -29
- package/dist/data/ai/runtime-profiles/PermissionStrategiesEditor.js.map +1 -1
- package/dist/data/ai/session-token-sizing.d.ts +32 -0
- package/dist/data/ai/session-token-sizing.d.ts.map +1 -0
- package/dist/data/ai/use-session-token-sizing.cjs +73 -0
- package/dist/data/ai/use-session-token-sizing.cjs.map +1 -0
- package/dist/data/ai/use-session-token-sizing.d.ts +21 -0
- package/dist/data/ai/use-session-token-sizing.d.ts.map +1 -0
- package/dist/data/ai/use-session-token-sizing.js +73 -0
- package/dist/data/ai/use-session-token-sizing.js.map +1 -0
- package/dist/data/call-graph/CallGraph.cjs +250 -0
- package/dist/data/call-graph/CallGraph.cjs.map +1 -0
- package/dist/data/call-graph/CallGraph.d.ts +69 -0
- package/dist/data/call-graph/CallGraph.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraph.js +250 -0
- package/dist/data/call-graph/CallGraph.js.map +1 -0
- package/dist/data/call-graph/CallGraphGlyphs.cjs +39 -0
- package/dist/data/call-graph/CallGraphGlyphs.cjs.map +1 -0
- package/dist/data/call-graph/CallGraphGlyphs.d.ts +19 -0
- package/dist/data/call-graph/CallGraphGlyphs.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraphGlyphs.js +39 -0
- package/dist/data/call-graph/CallGraphGlyphs.js.map +1 -0
- package/dist/data/call-graph/CallGraphMembers.cjs +50 -0
- package/dist/data/call-graph/CallGraphMembers.cjs.map +1 -0
- package/dist/data/call-graph/CallGraphMembers.d.ts +22 -0
- package/dist/data/call-graph/CallGraphMembers.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraphMembers.js +50 -0
- package/dist/data/call-graph/CallGraphMembers.js.map +1 -0
- package/dist/data/call-graph/CallGraphParts.cjs +204 -0
- package/dist/data/call-graph/CallGraphParts.cjs.map +1 -0
- package/dist/data/call-graph/CallGraphParts.d.ts +44 -0
- package/dist/data/call-graph/CallGraphParts.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraphParts.js +204 -0
- package/dist/data/call-graph/CallGraphParts.js.map +1 -0
- package/dist/data/call-graph/CallGraphToolbar.cjs +186 -0
- package/dist/data/call-graph/CallGraphToolbar.cjs.map +1 -0
- package/dist/data/call-graph/CallGraphToolbar.d.ts +45 -0
- package/dist/data/call-graph/CallGraphToolbar.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraphToolbar.js +186 -0
- package/dist/data/call-graph/CallGraphToolbar.js.map +1 -0
- package/dist/data/call-graph/call-graph-exclude.cjs +75 -0
- package/dist/data/call-graph/call-graph-exclude.cjs.map +1 -0
- package/dist/data/call-graph/call-graph-exclude.d.ts +31 -0
- package/dist/data/call-graph/call-graph-exclude.d.ts.map +1 -0
- package/dist/data/call-graph/call-graph-exclude.js +75 -0
- package/dist/data/call-graph/call-graph-exclude.js.map +1 -0
- package/dist/data/call-graph/call-graph-labels.cjs +96 -0
- package/dist/data/call-graph/call-graph-labels.cjs.map +1 -0
- package/dist/data/call-graph/call-graph-labels.d.ts +53 -0
- package/dist/data/call-graph/call-graph-labels.d.ts.map +1 -0
- package/dist/data/call-graph/call-graph-labels.js +96 -0
- package/dist/data/call-graph/call-graph-labels.js.map +1 -0
- package/dist/data/call-graph/call-graph-model.cjs +161 -0
- package/dist/data/call-graph/call-graph-model.cjs.map +1 -0
- package/dist/data/call-graph/call-graph-model.d.ts +102 -0
- package/dist/data/call-graph/call-graph-model.d.ts.map +1 -0
- package/dist/data/call-graph/call-graph-model.js +161 -0
- package/dist/data/call-graph/call-graph-model.js.map +1 -0
- package/dist/data/call-graph/call-graph-vocabulary.cjs +177 -0
- package/dist/data/call-graph/call-graph-vocabulary.cjs.map +1 -0
- package/dist/data/call-graph/call-graph-vocabulary.d.ts +72 -0
- package/dist/data/call-graph/call-graph-vocabulary.d.ts.map +1 -0
- package/dist/data/call-graph/call-graph-vocabulary.js +177 -0
- package/dist/data/call-graph/call-graph-vocabulary.js.map +1 -0
- package/dist/data/call-graph/call-graph.fixtures.d.ts +63 -0
- package/dist/data/call-graph/call-graph.fixtures.d.ts.map +1 -0
- package/dist/data/call-graph/index.d.ts +7 -0
- package/dist/data/call-graph/index.d.ts.map +1 -0
- package/dist/data/call-graph/types.cjs +5 -0
- package/dist/data/call-graph/types.cjs.map +1 -0
- package/dist/data/call-graph/types.d.ts +135 -0
- package/dist/data/call-graph/types.d.ts.map +1 -0
- package/dist/data/call-graph/types.js +5 -0
- package/dist/data/call-graph/types.js.map +1 -0
- package/dist/data/call-graph/use-call-graph.cjs +93 -0
- package/dist/data/call-graph/use-call-graph.cjs.map +1 -0
- package/dist/data/call-graph/use-call-graph.d.ts +24 -0
- package/dist/data/call-graph/use-call-graph.d.ts.map +1 -0
- package/dist/data/call-graph/use-call-graph.js +93 -0
- package/dist/data/call-graph/use-call-graph.js.map +1 -0
- package/dist/data/chat/Chat.cjs +39 -15
- package/dist/data/chat/Chat.cjs.map +1 -1
- package/dist/data/chat/Chat.d.ts.map +1 -1
- package/dist/data/chat/Chat.fixtures.cjs +2 -2
- package/dist/data/chat/Chat.fixtures.cjs.map +1 -1
- package/dist/data/chat/Chat.fixtures.js +2 -2
- package/dist/data/chat/Chat.fixtures.js.map +1 -1
- package/dist/data/chat/Chat.js +40 -16
- package/dist/data/chat/Chat.js.map +1 -1
- package/dist/data/chat/ChatRuntimeToolbar.cjs +3 -6
- package/dist/data/chat/ChatRuntimeToolbar.cjs.map +1 -1
- package/dist/data/chat/ChatRuntimeToolbar.d.ts.map +1 -1
- package/dist/data/chat/ChatRuntimeToolbar.js +3 -6
- package/dist/data/chat/ChatRuntimeToolbar.js.map +1 -1
- package/dist/data/chat/ContextMeter.bar.cjs +5 -8
- package/dist/data/chat/ContextMeter.bar.cjs.map +1 -1
- package/dist/data/chat/ContextMeter.bar.d.ts +1 -1
- package/dist/data/chat/ContextMeter.bar.d.ts.map +1 -1
- package/dist/data/chat/ContextMeter.bar.js +5 -8
- package/dist/data/chat/ContextMeter.bar.js.map +1 -1
- package/dist/data/chat/ContextMeter.cjs +18 -19
- package/dist/data/chat/ContextMeter.cjs.map +1 -1
- package/dist/data/chat/ContextMeter.d.ts +1 -1
- package/dist/data/chat/ContextMeter.d.ts.map +1 -1
- package/dist/data/chat/ContextMeter.js +18 -19
- package/dist/data/chat/ContextMeter.js.map +1 -1
- package/dist/data/chat/Conversation.cjs +2 -1
- package/dist/data/chat/Conversation.cjs.map +1 -1
- package/dist/data/chat/Conversation.d.ts +4 -1
- package/dist/data/chat/Conversation.d.ts.map +1 -1
- package/dist/data/chat/Conversation.js +2 -1
- package/dist/data/chat/Conversation.js.map +1 -1
- package/dist/data/chat/Message.cjs +39 -12
- package/dist/data/chat/Message.cjs.map +1 -1
- package/dist/data/chat/Message.d.ts +1 -1
- package/dist/data/chat/Message.d.ts.map +1 -1
- package/dist/data/chat/Message.js +40 -13
- package/dist/data/chat/Message.js.map +1 -1
- package/dist/data/chat/ToolCall.cjs +60 -5
- package/dist/data/chat/ToolCall.cjs.map +1 -1
- package/dist/data/chat/ToolCall.d.ts +7 -2
- package/dist/data/chat/ToolCall.d.ts.map +1 -1
- package/dist/data/chat/ToolCall.js +60 -5
- package/dist/data/chat/ToolCall.js.map +1 -1
- package/dist/data/chat/approval.cjs.map +1 -1
- package/dist/data/chat/approval.d.ts +2 -2
- package/dist/data/chat/approval.d.ts.map +1 -1
- package/dist/data/chat/approval.js.map +1 -1
- package/dist/data/chat/tool-policy.cjs +59 -2
- package/dist/data/chat/tool-policy.cjs.map +1 -1
- package/dist/data/chat/tool-policy.d.ts +9 -0
- package/dist/data/chat/tool-policy.d.ts.map +1 -1
- package/dist/data/chat/tool-policy.js +59 -2
- package/dist/data/chat/tool-policy.js.map +1 -1
- package/dist/data/chat/types.cjs +6 -0
- package/dist/data/chat/types.cjs.map +1 -1
- package/dist/data/chat/types.d.ts +13 -4
- package/dist/data/chat/types.d.ts.map +1 -1
- package/dist/data/chat/types.js +7 -1
- package/dist/data/chat/types.js.map +1 -1
- package/dist/data/chat/usage-snapshot.cjs +11 -6
- package/dist/data/chat/usage-snapshot.cjs.map +1 -1
- package/dist/data/chat/usage-snapshot.d.ts +0 -1
- package/dist/data/chat/usage-snapshot.d.ts.map +1 -1
- package/dist/data/chat/usage-snapshot.js +11 -6
- package/dist/data/chat/usage-snapshot.js.map +1 -1
- package/dist/data/diagnostics/StackFrameRow.cjs +3 -3
- package/dist/data/diagnostics/StackFrameRow.cjs.map +1 -1
- package/dist/data/diagnostics/StackFrameRow.js +3 -3
- package/dist/data/diagnostics/StackFrameRow.js.map +1 -1
- package/dist/data/graph-columns-layout.cjs +26 -10
- package/dist/data/graph-columns-layout.cjs.map +1 -1
- package/dist/data/graph-columns-layout.d.ts +8 -0
- package/dist/data/graph-columns-layout.d.ts.map +1 -1
- package/dist/data/graph-columns-layout.js +26 -10
- package/dist/data/graph-columns-layout.js.map +1 -1
- package/dist/data/graph-diagram-model.cjs.map +1 -1
- package/dist/data/graph-diagram-model.d.ts +5 -0
- package/dist/data/graph-diagram-model.d.ts.map +1 -1
- package/dist/data/graph-diagram-model.js.map +1 -1
- package/dist/data/graph-edge-routing.cjs +9 -3
- package/dist/data/graph-edge-routing.cjs.map +1 -1
- package/dist/data/graph-edge-routing.d.ts +2 -0
- package/dist/data/graph-edge-routing.d.ts.map +1 -1
- package/dist/data/graph-edge-routing.js +9 -3
- package/dist/data/graph-edge-routing.js.map +1 -1
- package/dist/data/json-view/JsonSource.cjs +84 -0
- package/dist/data/json-view/JsonSource.cjs.map +1 -0
- package/dist/data/json-view/JsonSource.d.ts +7 -0
- package/dist/data/json-view/JsonSource.d.ts.map +1 -0
- package/dist/data/json-view/JsonSource.js +84 -0
- package/dist/data/json-view/JsonSource.js.map +1 -0
- package/dist/data/json-view/parse-prefix.cjs +132 -0
- package/dist/data/json-view/parse-prefix.cjs.map +1 -0
- package/dist/data/json-view/parse-prefix.d.ts +11 -0
- package/dist/data/json-view/parse-prefix.d.ts.map +1 -0
- package/dist/data/json-view/parse-prefix.js +132 -0
- package/dist/data/json-view/parse-prefix.js.map +1 -0
- package/dist/data/json-view/parse-source.cjs +62 -0
- package/dist/data/json-view/parse-source.cjs.map +1 -0
- package/dist/data/json-view/parse-source.d.ts +16 -0
- package/dist/data/json-view/parse-source.d.ts.map +1 -0
- package/dist/data/json-view/parse-source.js +62 -0
- package/dist/data/json-view/parse-source.js.map +1 -0
- package/dist/data/json-view/story-fixtures.d.ts +6 -0
- package/dist/data/json-view/story-fixtures.d.ts.map +1 -0
- package/dist/data/json-view/types.d.ts +14 -0
- package/dist/data/json-view/types.d.ts.map +1 -0
- package/dist/data/runtime/RuntimeBar.cjs +2 -5
- package/dist/data/runtime/RuntimeBar.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBar.d.ts +2 -4
- package/dist/data/runtime/RuntimeBar.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBar.fields.cjs +2 -2
- package/dist/data/runtime/RuntimeBar.fields.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBar.fields.js +2 -2
- package/dist/data/runtime/RuntimeBar.fields.js.map +1 -1
- package/dist/data/runtime/RuntimeBar.js +2 -5
- package/dist/data/runtime/RuntimeBar.js.map +1 -1
- package/dist/data/runtime/RuntimeBar.selection.cjs +4 -1
- package/dist/data/runtime/RuntimeBar.selection.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBar.selection.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBar.selection.js +5 -2
- package/dist/data/runtime/RuntimeBar.selection.js.map +1 -1
- package/dist/data/runtime/RuntimeBarActions.cjs +1 -5
- package/dist/data/runtime/RuntimeBarActions.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarActions.d.ts +1 -1
- package/dist/data/runtime/RuntimeBarActions.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarActions.js +1 -5
- package/dist/data/runtime/RuntimeBarActions.js.map +1 -1
- package/dist/data/runtime/RuntimeBarIdentity.cjs +6 -14
- package/dist/data/runtime/RuntimeBarIdentity.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarIdentity.d.ts +0 -1
- package/dist/data/runtime/RuntimeBarIdentity.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarIdentity.js +6 -14
- package/dist/data/runtime/RuntimeBarIdentity.js.map +1 -1
- package/dist/data/runtime/RuntimeBarLayout.cjs +8 -27
- package/dist/data/runtime/RuntimeBarLayout.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarLayout.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarLayout.js +8 -27
- package/dist/data/runtime/RuntimeBarLayout.js.map +1 -1
- package/dist/data/runtime/RuntimeBarSegment.cjs +1 -5
- package/dist/data/runtime/RuntimeBarSegment.cjs.map +1 -1
- package/dist/data/runtime/RuntimeBarSegment.d.ts.map +1 -1
- package/dist/data/runtime/RuntimeBarSegment.js +1 -5
- package/dist/data/runtime/RuntimeBarSegment.js.map +1 -1
- package/dist/data/runtime/use-runtime-bar-overflow.cjs +4 -10
- package/dist/data/runtime/use-runtime-bar-overflow.cjs.map +1 -1
- package/dist/data/runtime/use-runtime-bar-overflow.d.ts +1 -2
- package/dist/data/runtime/use-runtime-bar-overflow.d.ts.map +1 -1
- package/dist/data/runtime/use-runtime-bar-overflow.js +4 -10
- package/dist/data/runtime/use-runtime-bar-overflow.js.map +1 -1
- package/dist/data/test-runner/TestRunner.fixtures.d.ts +0 -20
- package/dist/data/test-runner/TestRunner.fixtures.d.ts.map +1 -1
- package/dist/data/test-runner/TestRunner.large-fixtures.d.ts +22 -0
- package/dist/data/test-runner/TestRunner.large-fixtures.d.ts.map +1 -0
- package/dist/data/use-pan-zoom.cjs +23 -10
- package/dist/data/use-pan-zoom.cjs.map +1 -1
- package/dist/data/use-pan-zoom.d.ts +16 -2
- package/dist/data/use-pan-zoom.d.ts.map +1 -1
- package/dist/data/use-pan-zoom.js +23 -10
- package/dist/data/use-pan-zoom.js.map +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data.cjs +26 -2
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +1 -0
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +24 -0
- package/dist/data.js.map +1 -1
- package/dist/index.cjs +28 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -1
- package/dist/layout/Workspace.cjs +13 -4
- package/dist/layout/Workspace.cjs.map +1 -1
- package/dist/layout/Workspace.d.ts +7 -2
- package/dist/layout/Workspace.d.ts.map +1 -1
- package/dist/layout/Workspace.js +13 -4
- package/dist/layout/Workspace.js.map +1 -1
- package/dist/lib/permission-strategies.cjs +71 -11
- package/dist/lib/permission-strategies.cjs.map +1 -1
- package/dist/lib/permission-strategies.d.ts +3 -0
- package/dist/lib/permission-strategies.d.ts.map +1 -1
- package/dist/lib/permission-strategies.js +71 -11
- package/dist/lib/permission-strategies.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +5 -3
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.cjs +0 -57
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.cjs.map +0 -1
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts +0 -7
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.d.ts.map +0 -1
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.js +0 -57
- package/dist/data/ai/ToolSchemaBrowser.selection-toolbar.js.map +0 -1
- package/dist/data/runtime/RuntimeBar.context.cjs +0 -8
- package/dist/data/runtime/RuntimeBar.context.cjs.map +0 -1
- package/dist/data/runtime/RuntimeBar.context.d.ts +0 -2
- package/dist/data/runtime/RuntimeBar.context.d.ts.map +0 -1
- package/dist/data/runtime/RuntimeBar.context.js +0 -8
- package/dist/data/runtime/RuntimeBar.context.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeBarIdentity.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/RuntimeBarIdentity.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAO/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAG/E,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,MAAM,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IAC9C,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC;IACrC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,
|
|
1
|
+
{"version":3,"file":"RuntimeBarIdentity.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/RuntimeBarIdentity.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAO/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAG/E,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,MAAM,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IAC9C,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC;IACrC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,aAAa,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,OAAe,EACf,GAAG,KAAK,EACT,EAAE,uBAAuB,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,+BA2CjD"}
|
|
@@ -23,12 +23,9 @@ function RuntimeBarIdentity({
|
|
|
23
23
|
"div",
|
|
24
24
|
{
|
|
25
25
|
"data-runtime-bar-section": measure ? void 0 : "identity",
|
|
26
|
-
className:
|
|
27
|
-
"flex h-control-h min-w-0 items-stretch",
|
|
28
|
-
props.variant === "combo" && "gap-1"
|
|
29
|
-
),
|
|
26
|
+
className: "flex h-control-h min-w-0 items-stretch",
|
|
30
27
|
children: [
|
|
31
|
-
measure ? /* @__PURE__ */ jsx(IdentityMeasure, {
|
|
28
|
+
measure ? /* @__PURE__ */ jsx(IdentityMeasure, { children: modeCaption }) : /* @__PURE__ */ jsx(
|
|
32
29
|
RuntimeSegment,
|
|
33
30
|
{
|
|
34
31
|
menuLabel: "Runtime mode",
|
|
@@ -43,13 +40,12 @@ function RuntimeBarIdentity({
|
|
|
43
40
|
children: modeCaption
|
|
44
41
|
}
|
|
45
42
|
),
|
|
46
|
-
measure ? /* @__PURE__ */ jsx(IdentityMeasure, {
|
|
43
|
+
measure ? /* @__PURE__ */ jsx(IdentityMeasure, { model: true, children: /* @__PURE__ */ jsx(ModelCaption, { ...props }) }) : /* @__PURE__ */ jsx(RuntimeModelPicker, { ...props })
|
|
47
44
|
]
|
|
48
45
|
}
|
|
49
46
|
);
|
|
50
47
|
}
|
|
51
48
|
function IdentityMeasure({
|
|
52
|
-
variant,
|
|
53
49
|
model = false,
|
|
54
50
|
children
|
|
55
51
|
}) {
|
|
@@ -57,9 +53,8 @@ function IdentityMeasure({
|
|
|
57
53
|
"div",
|
|
58
54
|
{
|
|
59
55
|
className: cn(
|
|
60
|
-
"flex h-control-h items-center gap-1.5 px-density-2",
|
|
61
|
-
model && "max-w-56 min-w-0"
|
|
62
|
-
variant === "combo" ? "rounded-md border border-input" : "border-l border-border first:border-l-0"
|
|
56
|
+
"flex h-control-h items-center gap-1.5 border-l border-border px-density-2 first:border-l-0",
|
|
57
|
+
model && "max-w-56 min-w-0"
|
|
63
58
|
),
|
|
64
59
|
children: /* @__PURE__ */ jsx(RuntimeSegmentCaption, { children })
|
|
65
60
|
}
|
|
@@ -139,10 +134,7 @@ function RuntimeModelPicker(props) {
|
|
|
139
134
|
disabled: props.locked,
|
|
140
135
|
value: props.unavailable ? "" : ((_a = props.selectedModel) == null ? void 0 : _a.id) ?? props.model ?? "",
|
|
141
136
|
options,
|
|
142
|
-
className:
|
|
143
|
-
"h-control-h min-w-0 max-w-56 flex-1",
|
|
144
|
-
props.variant === "combo" ? "rounded-md border border-input bg-background" : "border-l border-border first:border-l-0"
|
|
145
|
-
),
|
|
137
|
+
className: "h-control-h min-w-0 max-w-56 flex-1 border-l border-border first:border-l-0",
|
|
146
138
|
triggerClassName: "h-full rounded-none border-0 px-density-2 focus-visible:ring-inset aria-expanded:bg-muted",
|
|
147
139
|
triggerContent: /* @__PURE__ */ jsx(ModelCaption, { ...props }),
|
|
148
140
|
onNew: (value) => ({ value, label: `Use custom: ${value}` }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeBarIdentity.js","sources":["../../../src/data/runtime/RuntimeBarIdentity.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Combobox, type ComboboxOption } from \"../../components/Combobox\";\nimport { cn } from \"../../lib/utils\";\nimport { Icon } from \"../Icon\";\nimport type { ChatModel } from \"../chat/types\";\nimport { runtimeFamilyBrand } from \"./RuntimeBar.model\";\nimport {\n RuntimeSegment,\n RuntimeSegmentCaption,\n SEGMENT_CAPTION_CLASS,\n} from \"./RuntimeBarSegment\";\nimport { modelGroupsForMode } from \"./RuntimeBar.selection\";\nimport type { SpecRuntimeFamily, SpecRuntimeModeOption } from \"./runtime-mode\";\nimport { UNSPECIFIED_LABEL, unspecifiedHint } from \"./unspecified\";\n\nexport type RuntimeBarIdentityProps = {\n family: SpecRuntimeFamily;\n mode: SpecRuntimeModeOption;\n modes: SpecRuntimeModeOption[];\n groups: ReturnType<typeof modelGroupsForMode>;\n selectedModel: ChatModel | undefined;\n model: string | undefined;\n unavailable: boolean;\n inheritedModelLabel: string | undefined;\n locked: boolean;\n showModel: boolean;\n variant: \"segmented\" | \"combo\";\n onModeChange: (mode: string) => void;\n onModelSelect: (model: ChatModel) => void;\n onModelClear: () => void;\n onCustomModel: (model: string) => void;\n onFamilySelect: (family: string) => void;\n};\n\nexport function RuntimeBarIdentity({\n measure = false,\n ...props\n}: RuntimeBarIdentityProps & { measure?: boolean }) {\n const modeCaption = (\n <>\n {props.mode.icon && (\n <Icon\n icon={props.mode.icon}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n )}\n <span className={SEGMENT_CAPTION_CLASS}>{props.mode.label}</span>\n </>\n );\n return (\n <div\n data-runtime-bar-section={measure ? undefined : \"identity\"}\n className={cn(\n \"flex h-control-h min-w-0 items-stretch\",\n props.variant === \"combo\" && \"gap-1\",\n )}\n >\n {measure ? (\n <IdentityMeasure variant={props.variant}>{modeCaption}</IdentityMeasure>\n ) : (\n <RuntimeSegment\n menuLabel=\"Runtime mode\"\n title={`Runtime mode — ${props.mode.label}`}\n disabled={props.locked}\n className=\"shrink-0\"\n items={props.modes.map((mode) => ({\n label: mode.label,\n ...(mode.icon ? { icon: mode.icon } : {}),\n onSelect: () => props.onModeChange(mode.id),\n }))}\n >\n {modeCaption}\n </RuntimeSegment>\n )}\n {measure ? (\n <IdentityMeasure variant={props.variant} model>\n <ModelCaption {...props} />\n </IdentityMeasure>\n ) : (\n <RuntimeModelPicker {...props} />\n )}\n </div>\n );\n}\n\nfunction IdentityMeasure({\n variant,\n model = false,\n children,\n}: {\n variant: \"segmented\" | \"combo\";\n model?: boolean;\n children: ReactNode;\n}) {\n return (\n <div\n className={cn(\n \"flex h-control-h items-center gap-1.5 px-density-2\",\n model && \"max-w-56 min-w-0\",\n variant === \"combo\"\n ? \"rounded-md border border-input\"\n : \"border-l border-border first:border-l-0\",\n )}\n >\n <RuntimeSegmentCaption>{children}</RuntimeSegmentCaption>\n </div>\n );\n}\n\nfunction ModelCaption(props: RuntimeBarIdentityProps) {\n const brand = runtimeFamilyBrand(props.family);\n const label = props.showModel\n ? props.unavailable\n ? \"Unavailable selection\"\n : (props.selectedModel?.label ?? props.model ?? UNSPECIFIED_LABEL)\n : props.family.label;\n return (\n <>\n {props.showModel && (\n <span className=\"sr-only\">{props.family.label} </span>\n )}\n {brand.icon && (\n <Icon\n icon={brand.icon}\n className={cn(\"size-4 shrink-0\", brand.color)}\n />\n )}\n <span className=\"min-w-0 truncate font-mono text-xs font-semibold text-foreground\">\n {label}\n </span>\n </>\n );\n}\n\nfunction RuntimeModelPicker(props: RuntimeBarIdentityProps) {\n const title = props.showModel\n ? `Model — ${props.unavailable ? \"unavailable selection\" : props.model || \"unspecified\"}`\n : `Family — ${props.family.label}`;\n if (!props.showModel)\n return (\n <RuntimeSegment\n menuLabel=\"Family\"\n title={title}\n disabled={props.locked}\n className=\"min-w-0 max-w-56 flex-1\"\n items={props.groups.map(({ family }) => {\n const brand = runtimeFamilyBrand(family);\n return {\n label: family.label,\n ...(brand.icon ? { icon: brand.icon } : {}),\n onSelect: () => props.onFamilySelect(family.id),\n };\n })}\n >\n <ModelCaption {...props} />\n </RuntimeSegment>\n );\n const options: ComboboxOption[] = [\n {\n value: \"\",\n label: UNSPECIFIED_LABEL,\n description: unspecifiedHint(props.inheritedModelLabel),\n },\n ...props.groups.flatMap(({ family, models }) => {\n const brand = runtimeFamilyBrand(family);\n const icon = brand.icon ? (\n <Icon icon={brand.icon} className={cn(\"size-4\", brand.color)} />\n ) : undefined;\n return models.length\n ? models.map((model) => ({\n value: model.id,\n label: model.label.trim() || model.id,\n group: family.label,\n icon,\n }))\n : [\n {\n value: `family:${family.id}`,\n label: \"Custom model…\",\n group: family.label,\n icon,\n },\n ];\n }),\n ];\n return (\n <Combobox\n searchPlacement=\"menu\"\n ariaLabel=\"Model\"\n title={title}\n disabled={props.locked}\n value={\n props.unavailable ? \"\" : (props.selectedModel?.id ?? props.model ?? \"\")\n }\n options={options}\n className={cn(\n \"h-control-h min-w-0 max-w-56 flex-1\",\n props.variant === \"combo\"\n ? \"rounded-md border border-input bg-background\"\n : \"border-l border-border first:border-l-0\",\n )}\n triggerClassName=\"h-full rounded-none border-0 px-density-2 focus-visible:ring-inset aria-expanded:bg-muted\"\n triggerContent={<ModelCaption {...props} />}\n onNew={(value) => ({ value, label: `Use custom: ${value}` })}\n onChange={(value) => {\n if (!value) return props.onModelClear();\n const family = props.groups.find(\n ({ family }) => value === `family:${family.id}`,\n )?.family;\n if (family) return props.onFamilySelect(family.id);\n const model = props.groups\n .flatMap(({ models }) => models)\n .find((model) => model.id === value);\n if (model) props.onModelSelect(model);\n else props.onCustomModel(value);\n }}\n />\n );\n}\n"],"names":["_a","family","model"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RuntimeBarIdentity.js","sources":["../../../src/data/runtime/RuntimeBarIdentity.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Combobox, type ComboboxOption } from \"../../components/Combobox\";\nimport { cn } from \"../../lib/utils\";\nimport { Icon } from \"../Icon\";\nimport type { ChatModel } from \"../chat/types\";\nimport { runtimeFamilyBrand } from \"./RuntimeBar.model\";\nimport {\n RuntimeSegment,\n RuntimeSegmentCaption,\n SEGMENT_CAPTION_CLASS,\n} from \"./RuntimeBarSegment\";\nimport { modelGroupsForMode } from \"./RuntimeBar.selection\";\nimport type { SpecRuntimeFamily, SpecRuntimeModeOption } from \"./runtime-mode\";\nimport { UNSPECIFIED_LABEL, unspecifiedHint } from \"./unspecified\";\n\nexport type RuntimeBarIdentityProps = {\n family: SpecRuntimeFamily;\n mode: SpecRuntimeModeOption;\n modes: SpecRuntimeModeOption[];\n groups: ReturnType<typeof modelGroupsForMode>;\n selectedModel: ChatModel | undefined;\n model: string | undefined;\n unavailable: boolean;\n inheritedModelLabel: string | undefined;\n locked: boolean;\n showModel: boolean;\n onModeChange: (mode: string) => void;\n onModelSelect: (model: ChatModel) => void;\n onModelClear: () => void;\n onCustomModel: (model: string) => void;\n onFamilySelect: (family: string) => void;\n};\n\nexport function RuntimeBarIdentity({\n measure = false,\n ...props\n}: RuntimeBarIdentityProps & { measure?: boolean }) {\n const modeCaption = (\n <>\n {props.mode.icon && (\n <Icon\n icon={props.mode.icon}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n )}\n <span className={SEGMENT_CAPTION_CLASS}>{props.mode.label}</span>\n </>\n );\n return (\n <div\n data-runtime-bar-section={measure ? undefined : \"identity\"}\n className=\"flex h-control-h min-w-0 items-stretch\"\n >\n {measure ? (\n <IdentityMeasure>{modeCaption}</IdentityMeasure>\n ) : (\n <RuntimeSegment\n menuLabel=\"Runtime mode\"\n title={`Runtime mode — ${props.mode.label}`}\n disabled={props.locked}\n className=\"shrink-0\"\n items={props.modes.map((mode) => ({\n label: mode.label,\n ...(mode.icon ? { icon: mode.icon } : {}),\n onSelect: () => props.onModeChange(mode.id),\n }))}\n >\n {modeCaption}\n </RuntimeSegment>\n )}\n {measure ? (\n <IdentityMeasure model>\n <ModelCaption {...props} />\n </IdentityMeasure>\n ) : (\n <RuntimeModelPicker {...props} />\n )}\n </div>\n );\n}\n\nfunction IdentityMeasure({\n model = false,\n children,\n}: {\n model?: boolean;\n children: ReactNode;\n}) {\n return (\n <div\n className={cn(\n \"flex h-control-h items-center gap-1.5 border-l border-border px-density-2 first:border-l-0\",\n model && \"max-w-56 min-w-0\",\n )}\n >\n <RuntimeSegmentCaption>{children}</RuntimeSegmentCaption>\n </div>\n );\n}\n\nfunction ModelCaption(props: RuntimeBarIdentityProps) {\n const brand = runtimeFamilyBrand(props.family);\n const label = props.showModel\n ? props.unavailable\n ? \"Unavailable selection\"\n : (props.selectedModel?.label ?? props.model ?? UNSPECIFIED_LABEL)\n : props.family.label;\n return (\n <>\n {props.showModel && (\n <span className=\"sr-only\">{props.family.label} </span>\n )}\n {brand.icon && (\n <Icon\n icon={brand.icon}\n className={cn(\"size-4 shrink-0\", brand.color)}\n />\n )}\n <span className=\"min-w-0 truncate font-mono text-xs font-semibold text-foreground\">\n {label}\n </span>\n </>\n );\n}\n\nfunction RuntimeModelPicker(props: RuntimeBarIdentityProps) {\n const title = props.showModel\n ? `Model — ${props.unavailable ? \"unavailable selection\" : props.model || \"unspecified\"}`\n : `Family — ${props.family.label}`;\n if (!props.showModel)\n return (\n <RuntimeSegment\n menuLabel=\"Family\"\n title={title}\n disabled={props.locked}\n className=\"min-w-0 max-w-56 flex-1\"\n items={props.groups.map(({ family }) => {\n const brand = runtimeFamilyBrand(family);\n return {\n label: family.label,\n ...(brand.icon ? { icon: brand.icon } : {}),\n onSelect: () => props.onFamilySelect(family.id),\n };\n })}\n >\n <ModelCaption {...props} />\n </RuntimeSegment>\n );\n const options: ComboboxOption[] = [\n {\n value: \"\",\n label: UNSPECIFIED_LABEL,\n description: unspecifiedHint(props.inheritedModelLabel),\n },\n ...props.groups.flatMap(({ family, models }) => {\n const brand = runtimeFamilyBrand(family);\n const icon = brand.icon ? (\n <Icon icon={brand.icon} className={cn(\"size-4\", brand.color)} />\n ) : undefined;\n return models.length\n ? models.map((model) => ({\n value: model.id,\n label: model.label.trim() || model.id,\n group: family.label,\n icon,\n }))\n : [\n {\n value: `family:${family.id}`,\n label: \"Custom model…\",\n group: family.label,\n icon,\n },\n ];\n }),\n ];\n return (\n <Combobox\n searchPlacement=\"menu\"\n ariaLabel=\"Model\"\n title={title}\n disabled={props.locked}\n value={\n props.unavailable ? \"\" : (props.selectedModel?.id ?? props.model ?? \"\")\n }\n options={options}\n className=\"h-control-h min-w-0 max-w-56 flex-1 border-l border-border first:border-l-0\"\n triggerClassName=\"h-full rounded-none border-0 px-density-2 focus-visible:ring-inset aria-expanded:bg-muted\"\n triggerContent={<ModelCaption {...props} />}\n onNew={(value) => ({ value, label: `Use custom: ${value}` })}\n onChange={(value) => {\n if (!value) return props.onModelClear();\n const family = props.groups.find(\n ({ family }) => value === `family:${family.id}`,\n )?.family;\n if (family) return props.onFamilySelect(family.id);\n const model = props.groups\n .flatMap(({ models }) => models)\n .find((model) => model.id === value);\n if (model) props.onModelSelect(model);\n else props.onCustomModel(value);\n }}\n />\n );\n}\n"],"names":["_a","family","model"],"mappings":";;;;;;;AAiCO,SAAS,mBAAmB;AAAA,EACjC,UAAU;AAAA,EACV,GAAG;AACL,GAAoD;AAClD,QAAM,cACJ,qBAAA,UAAA,EACG,UAAA;AAAA,IAAA,MAAM,KAAK,QACV;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM,MAAM,KAAK;AAAA,QACjB,WAAU;AAAA,MAAA;AAAA,IAAA;AAAA,wBAGb,QAAA,EAAK,WAAW,uBAAwB,UAAA,MAAM,KAAK,MAAA,CAAM;AAAA,EAAA,GAC5D;AAEF,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,4BAA0B,UAAU,SAAY;AAAA,MAChD,WAAU;AAAA,MAET,UAAA;AAAA,QAAA,UACC,oBAAC,iBAAA,EAAiB,UAAA,YAAA,CAAY,IAE9B;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO,kBAAkB,MAAM,KAAK,KAAK;AAAA,YACzC,UAAU,MAAM;AAAA,YAChB,WAAU;AAAA,YACV,OAAO,MAAM,MAAM,IAAI,CAAC,UAAU;AAAA,cAChC,OAAO,KAAK;AAAA,cACZ,GAAI,KAAK,OAAO,EAAE,MAAM,KAAK,KAAA,IAAS,CAAA;AAAA,cACtC,UAAU,MAAM,MAAM,aAAa,KAAK,EAAE;AAAA,YAAA,EAC1C;AAAA,YAED,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGJ,UACC,oBAAC,iBAAA,EAAgB,OAAK,MACpB,UAAA,oBAAC,cAAA,EAAc,GAAG,MAAA,CAAO,GAC3B,IAEA,oBAAC,oBAAA,EAAoB,GAAG,MAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIvC;AAEA,SAAS,gBAAgB;AAAA,EACvB,QAAQ;AAAA,EACR;AACF,GAGG;AACD,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,SAAS;AAAA,MAAA;AAAA,MAGX,UAAA,oBAAC,yBAAuB,SAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAGvC;AAEA,SAAS,aAAa,OAAgC;;AACpD,QAAM,QAAQ,mBAAmB,MAAM,MAAM;AAC7C,QAAM,QAAQ,MAAM,YAChB,MAAM,cACJ,4BACC,WAAM,kBAAN,mBAAqB,UAAS,MAAM,SAAS,oBAChD,MAAM,OAAO;AACjB,SACE,qBAAA,UAAA,EACG,UAAA;AAAA,IAAA,MAAM,aACL,qBAAC,QAAA,EAAK,WAAU,WAAW,UAAA;AAAA,MAAA,MAAM,OAAO;AAAA,MAAM;AAAA,IAAA,GAAC;AAAA,IAEhD,MAAM,QACL;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM,MAAM;AAAA,QACZ,WAAW,GAAG,mBAAmB,MAAM,KAAK;AAAA,MAAA;AAAA,IAAA;AAAA,IAGhD,oBAAC,QAAA,EAAK,WAAU,oEACb,UAAA,MAAA,CACH;AAAA,EAAA,GACF;AAEJ;AAEA,SAAS,mBAAmB,OAAgC;;AAC1D,QAAM,QAAQ,MAAM,YAChB,WAAW,MAAM,cAAc,0BAA0B,MAAM,SAAS,aAAa,KACrF,YAAY,MAAM,OAAO,KAAK;AAClC,MAAI,CAAC,MAAM;AACT,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV;AAAA,QACA,UAAU,MAAM;AAAA,QAChB,WAAU;AAAA,QACV,OAAO,MAAM,OAAO,IAAI,CAAC,EAAE,aAAa;AACtC,gBAAM,QAAQ,mBAAmB,MAAM;AACvC,iBAAO;AAAA,YACL,OAAO,OAAO;AAAA,YACd,GAAI,MAAM,OAAO,EAAE,MAAM,MAAM,KAAA,IAAS,CAAA;AAAA,YACxC,UAAU,MAAM,MAAM,eAAe,OAAO,EAAE;AAAA,UAAA;AAAA,QAElD,CAAC;AAAA,QAED,UAAA,oBAAC,cAAA,EAAc,GAAG,MAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAG/B,QAAM,UAA4B;AAAA,IAChC;AAAA,MACE,OAAO;AAAA,MACP,OAAO;AAAA,MACP,aAAa,gBAAgB,MAAM,mBAAmB;AAAA,IAAA;AAAA,IAExD,GAAG,MAAM,OAAO,QAAQ,CAAC,EAAE,QAAQ,aAAa;AAC9C,YAAM,QAAQ,mBAAmB,MAAM;AACvC,YAAM,OAAO,MAAM,OACjB,oBAAC,QAAK,MAAM,MAAM,MAAM,WAAW,GAAG,UAAU,MAAM,KAAK,GAAG,IAC5D;AACJ,aAAO,OAAO,SACV,OAAO,IAAI,CAAC,WAAW;AAAA,QACrB,OAAO,MAAM;AAAA,QACb,OAAO,MAAM,MAAM,KAAA,KAAU,MAAM;AAAA,QACnC,OAAO,OAAO;AAAA,QACd;AAAA,MAAA,EACA,IACF;AAAA,QACE;AAAA,UACE,OAAO,UAAU,OAAO,EAAE;AAAA,UAC1B,OAAO;AAAA,UACP,OAAO,OAAO;AAAA,UACd;AAAA,QAAA;AAAA,MACF;AAAA,IAER,CAAC;AAAA,EAAA;AAEH,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,iBAAgB;AAAA,MAChB,WAAU;AAAA,MACV;AAAA,MACA,UAAU,MAAM;AAAA,MAChB,OACE,MAAM,cAAc,OAAM,WAAM,kBAAN,mBAAqB,OAAM,MAAM,SAAS;AAAA,MAEtE;AAAA,MACA,WAAU;AAAA,MACV,kBAAiB;AAAA,MACjB,gBAAgB,oBAAC,cAAA,EAAc,GAAG,MAAA,CAAO;AAAA,MACzC,OAAO,CAAC,WAAW,EAAE,OAAO,OAAO,eAAe,KAAK;MACvD,UAAU,CAAC,UAAU;;AACnB,YAAI,CAAC,MAAO,QAAO,MAAM,aAAA;AACzB,cAAM,UAASA,MAAA,MAAM,OAAO;AAAA,UAC1B,CAAC,EAAE,QAAAC,QAAAA,MAAa,UAAU,UAAUA,QAAO,EAAE;AAAA,QAAA,MADhC,gBAAAD,IAEZ;AACH,YAAI,OAAQ,QAAO,MAAM,eAAe,OAAO,EAAE;AACjD,cAAM,QAAQ,MAAM,OACjB,QAAQ,CAAC,EAAE,OAAA,MAAa,MAAM,EAC9B,KAAK,CAACE,WAAUA,OAAM,OAAO,KAAK;AACrC,YAAI,MAAO,OAAM,cAAc,KAAK;AAAA,YAC/B,OAAM,cAAc,KAAK;AAAA,MAChC;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -29,11 +29,7 @@ function RuntimeBarLayout({
|
|
|
29
29
|
{
|
|
30
30
|
role: "group",
|
|
31
31
|
"aria-label": ariaLabel,
|
|
32
|
-
"
|
|
33
|
-
className: utils.cn(
|
|
34
|
-
"inline-flex h-control-h max-w-full items-stretch",
|
|
35
|
-
identity.variant === "combo" ? "gap-1" : "overflow-hidden rounded-md border border-input bg-background"
|
|
36
|
-
),
|
|
32
|
+
className: "inline-flex h-control-h max-w-full items-stretch overflow-hidden rounded-md border border-input bg-background",
|
|
37
33
|
children: [
|
|
38
34
|
/* @__PURE__ */ jsxRuntime.jsx(RuntimeBarIdentity.RuntimeBarIdentity, { ...identity }),
|
|
39
35
|
/* @__PURE__ */ jsxRuntime.jsx(RuntimeBarActions.RuntimeBarActions, { ...actions, visibleCount })
|
|
@@ -49,39 +45,24 @@ function RuntimeBarLayout({
|
|
|
49
45
|
"div",
|
|
50
46
|
{
|
|
51
47
|
ref: measurementRef,
|
|
52
|
-
className:
|
|
53
|
-
"pointer-events-none invisible absolute left-0 top-0 flex w-max items-stretch",
|
|
54
|
-
identity.variant === "combo" && "gap-1"
|
|
55
|
-
),
|
|
48
|
+
className: "pointer-events-none invisible absolute left-0 top-0 flex w-max items-stretch",
|
|
56
49
|
children: [
|
|
57
50
|
/* @__PURE__ */ jsxRuntime.jsx(RuntimeBarIdentity.RuntimeBarIdentity, { ...identity, measure: true }),
|
|
58
51
|
supplied.map((field) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
59
52
|
"div",
|
|
60
53
|
{
|
|
61
|
-
className:
|
|
62
|
-
"flex h-control-h items-center gap-1.5 px-density-2",
|
|
63
|
-
identity.variant === "combo" ? "rounded-md border border-input" : "border-l border-border"
|
|
64
|
-
),
|
|
54
|
+
className: "flex h-control-h items-center gap-1.5 border-l border-border px-density-2",
|
|
65
55
|
children: /* @__PURE__ */ jsxRuntime.jsx(RuntimeBarSegment.RuntimeSegmentCaption, { children: field.caption })
|
|
66
56
|
},
|
|
67
57
|
field.id
|
|
68
58
|
)),
|
|
69
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
70
|
-
|
|
59
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-control-h items-center border-l border-border px-density-2", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
60
|
+
Icon.Icon,
|
|
71
61
|
{
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
identity.variant === "combo" ? "rounded-md border border-input" : "border-l border-border"
|
|
75
|
-
),
|
|
76
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
77
|
-
Icon.Icon,
|
|
78
|
-
{
|
|
79
|
-
icon: UiDotsVertical.UiDotsVertical,
|
|
80
|
-
className: "size-4 shrink-0 text-muted-foreground"
|
|
81
|
-
}
|
|
82
|
-
)
|
|
62
|
+
icon: UiDotsVertical.UiDotsVertical,
|
|
63
|
+
className: "size-4 shrink-0 text-muted-foreground"
|
|
83
64
|
}
|
|
84
|
-
)
|
|
65
|
+
) })
|
|
85
66
|
]
|
|
86
67
|
}
|
|
87
68
|
)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeBarLayout.cjs","sources":["../../../src/data/runtime/RuntimeBarLayout.tsx"],"sourcesContent":["import { UiDotsVertical } from \"../../icons\";\nimport { cn } from \"../../lib/utils\";\nimport { Icon } from \"../Icon\";\nimport {\n RuntimeBarActions,\n type RuntimeBarActionsProps,\n} from \"./RuntimeBarActions\";\nimport {\n RuntimeBarIdentity,\n type RuntimeBarIdentityProps,\n} from \"./RuntimeBarIdentity\";\nimport { RuntimeSegmentCaption } from \"./RuntimeBarSegment\";\nimport { useRuntimeBarOverflow } from \"./use-runtime-bar-overflow\";\n\nexport function RuntimeBarLayout({\n identity,\n actions,\n ariaLabel,\n className,\n}: {\n identity: RuntimeBarIdentityProps;\n actions: RuntimeBarActionsProps;\n ariaLabel: string;\n className?: string | undefined;\n}) {\n const { containerRef, measurementRef, visibleCount } =\n useRuntimeBarOverflow();\n const supplied = actions.fields?.filter((field) => field.isSet) ?? [];\n const hasMenu = Boolean(actions.fields?.length || actions.menu?.length);\n return (\n <div\n ref={containerRef}\n className={cn(\"relative w-full min-w-0\", className)}\n >\n <div\n role=\"group\"\n aria-label={ariaLabel}\n
|
|
1
|
+
{"version":3,"file":"RuntimeBarLayout.cjs","sources":["../../../src/data/runtime/RuntimeBarLayout.tsx"],"sourcesContent":["import { UiDotsVertical } from \"../../icons\";\nimport { cn } from \"../../lib/utils\";\nimport { Icon } from \"../Icon\";\nimport {\n RuntimeBarActions,\n type RuntimeBarActionsProps,\n} from \"./RuntimeBarActions\";\nimport {\n RuntimeBarIdentity,\n type RuntimeBarIdentityProps,\n} from \"./RuntimeBarIdentity\";\nimport { RuntimeSegmentCaption } from \"./RuntimeBarSegment\";\nimport { useRuntimeBarOverflow } from \"./use-runtime-bar-overflow\";\n\nexport function RuntimeBarLayout({\n identity,\n actions,\n ariaLabel,\n className,\n}: {\n identity: RuntimeBarIdentityProps;\n actions: RuntimeBarActionsProps;\n ariaLabel: string;\n className?: string | undefined;\n}) {\n const { containerRef, measurementRef, visibleCount } =\n useRuntimeBarOverflow();\n const supplied = actions.fields?.filter((field) => field.isSet) ?? [];\n const hasMenu = Boolean(actions.fields?.length || actions.menu?.length);\n return (\n <div\n ref={containerRef}\n className={cn(\"relative w-full min-w-0\", className)}\n >\n <div\n role=\"group\"\n aria-label={ariaLabel}\n className=\"inline-flex h-control-h max-w-full items-stretch overflow-hidden rounded-md border border-input bg-background\"\n >\n <RuntimeBarIdentity {...identity} />\n <RuntimeBarActions {...actions} visibleCount={visibleCount} />\n </div>\n {hasMenu && (\n <div\n className=\"pointer-events-none absolute inset-0 overflow-hidden\"\n aria-hidden=\"true\"\n >\n <div\n ref={measurementRef}\n className=\"pointer-events-none invisible absolute left-0 top-0 flex w-max items-stretch\"\n >\n <RuntimeBarIdentity {...identity} measure />\n {supplied.map((field) => (\n <div\n key={field.id}\n className=\"flex h-control-h items-center gap-1.5 border-l border-border px-density-2\"\n >\n <RuntimeSegmentCaption>{field.caption}</RuntimeSegmentCaption>\n </div>\n ))}\n <div className=\"flex h-control-h items-center border-l border-border px-density-2\">\n <Icon\n icon={UiDotsVertical}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"names":["useRuntimeBarOverflow","jsxs","cn","jsx","RuntimeBarIdentity","RuntimeBarActions","RuntimeSegmentCaption","Icon","UiDotsVertical"],"mappings":";;;;;;;;;;AAcO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;;AACD,QAAM,EAAE,cAAc,gBAAgB,aAAA,IACpCA,sBAAAA,sBAAA;AACF,QAAM,aAAW,aAAQ,WAAR,mBAAgB,OAAO,CAAC,UAAU,MAAM,WAAU,CAAA;AACnE,QAAM,UAAU,UAAQ,aAAQ,WAAR,mBAAgB,aAAU,aAAQ,SAAR,mBAAc,OAAM;AACtE,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAWC,MAAAA,GAAG,2BAA2B,SAAS;AAAA,MAElD,UAAA;AAAA,QAAAD,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,cAAY;AAAA,YACZ,WAAU;AAAA,YAEV,UAAA;AAAA,cAAAE,2BAAAA,IAACC,mBAAAA,oBAAA,EAAoB,GAAG,UAAU;AAAA,cAClCD,2BAAAA,IAACE,kBAAAA,mBAAA,EAAmB,GAAG,SAAS,aAAA,CAA4B;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAE7D,WACCF,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,eAAY;AAAA,YAEZ,UAAAF,2BAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAK;AAAA,gBACL,WAAU;AAAA,gBAEV,UAAA;AAAA,kBAAAE,2BAAAA,IAACC,mBAAAA,oBAAA,EAAoB,GAAG,UAAU,SAAO,KAAA,CAAC;AAAA,kBACzC,SAAS,IAAI,CAAC,UACbD,2BAAAA;AAAAA,oBAAC;AAAA,oBAAA;AAAA,sBAEC,WAAU;AAAA,sBAEV,UAAAA,2BAAAA,IAACG,kBAAAA,uBAAA,EAAuB,UAAA,MAAM,QAAA,CAAQ;AAAA,oBAAA;AAAA,oBAHjC,MAAM;AAAA,kBAAA,CAKd;AAAA,kBACDH,2BAAAA,IAAC,OAAA,EAAI,WAAU,qEACb,UAAAA,2BAAAA;AAAAA,oBAACI,KAAAA;AAAAA,oBAAA;AAAA,sBACC,MAAMC,eAAAA;AAAAA,sBACN,WAAU;AAAA,oBAAA;AAAA,kBAAA,EACZ,CACF;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAIR;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeBarLayout.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/RuntimeBarLayout.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAI9B,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,uBAAuB,CAAC;IAClC,OAAO,EAAE,sBAAsB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,+
|
|
1
|
+
{"version":3,"file":"RuntimeBarLayout.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/RuntimeBarLayout.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAI9B,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,uBAAuB,CAAC;IAClC,OAAO,EAAE,sBAAsB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,+BA+CA"}
|
|
@@ -27,11 +27,7 @@ function RuntimeBarLayout({
|
|
|
27
27
|
{
|
|
28
28
|
role: "group",
|
|
29
29
|
"aria-label": ariaLabel,
|
|
30
|
-
"
|
|
31
|
-
className: cn(
|
|
32
|
-
"inline-flex h-control-h max-w-full items-stretch",
|
|
33
|
-
identity.variant === "combo" ? "gap-1" : "overflow-hidden rounded-md border border-input bg-background"
|
|
34
|
-
),
|
|
30
|
+
className: "inline-flex h-control-h max-w-full items-stretch overflow-hidden rounded-md border border-input bg-background",
|
|
35
31
|
children: [
|
|
36
32
|
/* @__PURE__ */ jsx(RuntimeBarIdentity, { ...identity }),
|
|
37
33
|
/* @__PURE__ */ jsx(RuntimeBarActions, { ...actions, visibleCount })
|
|
@@ -47,39 +43,24 @@ function RuntimeBarLayout({
|
|
|
47
43
|
"div",
|
|
48
44
|
{
|
|
49
45
|
ref: measurementRef,
|
|
50
|
-
className:
|
|
51
|
-
"pointer-events-none invisible absolute left-0 top-0 flex w-max items-stretch",
|
|
52
|
-
identity.variant === "combo" && "gap-1"
|
|
53
|
-
),
|
|
46
|
+
className: "pointer-events-none invisible absolute left-0 top-0 flex w-max items-stretch",
|
|
54
47
|
children: [
|
|
55
48
|
/* @__PURE__ */ jsx(RuntimeBarIdentity, { ...identity, measure: true }),
|
|
56
49
|
supplied.map((field) => /* @__PURE__ */ jsx(
|
|
57
50
|
"div",
|
|
58
51
|
{
|
|
59
|
-
className:
|
|
60
|
-
"flex h-control-h items-center gap-1.5 px-density-2",
|
|
61
|
-
identity.variant === "combo" ? "rounded-md border border-input" : "border-l border-border"
|
|
62
|
-
),
|
|
52
|
+
className: "flex h-control-h items-center gap-1.5 border-l border-border px-density-2",
|
|
63
53
|
children: /* @__PURE__ */ jsx(RuntimeSegmentCaption, { children: field.caption })
|
|
64
54
|
},
|
|
65
55
|
field.id
|
|
66
56
|
)),
|
|
67
|
-
/* @__PURE__ */ jsx(
|
|
68
|
-
|
|
57
|
+
/* @__PURE__ */ jsx("div", { className: "flex h-control-h items-center border-l border-border px-density-2", children: /* @__PURE__ */ jsx(
|
|
58
|
+
Icon,
|
|
69
59
|
{
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
identity.variant === "combo" ? "rounded-md border border-input" : "border-l border-border"
|
|
73
|
-
),
|
|
74
|
-
children: /* @__PURE__ */ jsx(
|
|
75
|
-
Icon,
|
|
76
|
-
{
|
|
77
|
-
icon: UiDotsVertical,
|
|
78
|
-
className: "size-4 shrink-0 text-muted-foreground"
|
|
79
|
-
}
|
|
80
|
-
)
|
|
60
|
+
icon: UiDotsVertical,
|
|
61
|
+
className: "size-4 shrink-0 text-muted-foreground"
|
|
81
62
|
}
|
|
82
|
-
)
|
|
63
|
+
) })
|
|
83
64
|
]
|
|
84
65
|
}
|
|
85
66
|
)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeBarLayout.js","sources":["../../../src/data/runtime/RuntimeBarLayout.tsx"],"sourcesContent":["import { UiDotsVertical } from \"../../icons\";\nimport { cn } from \"../../lib/utils\";\nimport { Icon } from \"../Icon\";\nimport {\n RuntimeBarActions,\n type RuntimeBarActionsProps,\n} from \"./RuntimeBarActions\";\nimport {\n RuntimeBarIdentity,\n type RuntimeBarIdentityProps,\n} from \"./RuntimeBarIdentity\";\nimport { RuntimeSegmentCaption } from \"./RuntimeBarSegment\";\nimport { useRuntimeBarOverflow } from \"./use-runtime-bar-overflow\";\n\nexport function RuntimeBarLayout({\n identity,\n actions,\n ariaLabel,\n className,\n}: {\n identity: RuntimeBarIdentityProps;\n actions: RuntimeBarActionsProps;\n ariaLabel: string;\n className?: string | undefined;\n}) {\n const { containerRef, measurementRef, visibleCount } =\n useRuntimeBarOverflow();\n const supplied = actions.fields?.filter((field) => field.isSet) ?? [];\n const hasMenu = Boolean(actions.fields?.length || actions.menu?.length);\n return (\n <div\n ref={containerRef}\n className={cn(\"relative w-full min-w-0\", className)}\n >\n <div\n role=\"group\"\n aria-label={ariaLabel}\n
|
|
1
|
+
{"version":3,"file":"RuntimeBarLayout.js","sources":["../../../src/data/runtime/RuntimeBarLayout.tsx"],"sourcesContent":["import { UiDotsVertical } from \"../../icons\";\nimport { cn } from \"../../lib/utils\";\nimport { Icon } from \"../Icon\";\nimport {\n RuntimeBarActions,\n type RuntimeBarActionsProps,\n} from \"./RuntimeBarActions\";\nimport {\n RuntimeBarIdentity,\n type RuntimeBarIdentityProps,\n} from \"./RuntimeBarIdentity\";\nimport { RuntimeSegmentCaption } from \"./RuntimeBarSegment\";\nimport { useRuntimeBarOverflow } from \"./use-runtime-bar-overflow\";\n\nexport function RuntimeBarLayout({\n identity,\n actions,\n ariaLabel,\n className,\n}: {\n identity: RuntimeBarIdentityProps;\n actions: RuntimeBarActionsProps;\n ariaLabel: string;\n className?: string | undefined;\n}) {\n const { containerRef, measurementRef, visibleCount } =\n useRuntimeBarOverflow();\n const supplied = actions.fields?.filter((field) => field.isSet) ?? [];\n const hasMenu = Boolean(actions.fields?.length || actions.menu?.length);\n return (\n <div\n ref={containerRef}\n className={cn(\"relative w-full min-w-0\", className)}\n >\n <div\n role=\"group\"\n aria-label={ariaLabel}\n className=\"inline-flex h-control-h max-w-full items-stretch overflow-hidden rounded-md border border-input bg-background\"\n >\n <RuntimeBarIdentity {...identity} />\n <RuntimeBarActions {...actions} visibleCount={visibleCount} />\n </div>\n {hasMenu && (\n <div\n className=\"pointer-events-none absolute inset-0 overflow-hidden\"\n aria-hidden=\"true\"\n >\n <div\n ref={measurementRef}\n className=\"pointer-events-none invisible absolute left-0 top-0 flex w-max items-stretch\"\n >\n <RuntimeBarIdentity {...identity} measure />\n {supplied.map((field) => (\n <div\n key={field.id}\n className=\"flex h-control-h items-center gap-1.5 border-l border-border px-density-2\"\n >\n <RuntimeSegmentCaption>{field.caption}</RuntimeSegmentCaption>\n </div>\n ))}\n <div className=\"flex h-control-h items-center border-l border-border px-density-2\">\n <Icon\n icon={UiDotsVertical}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAcO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;;AACD,QAAM,EAAE,cAAc,gBAAgB,aAAA,IACpC,sBAAA;AACF,QAAM,aAAW,aAAQ,WAAR,mBAAgB,OAAO,CAAC,UAAU,MAAM,WAAU,CAAA;AACnE,QAAM,UAAU,UAAQ,aAAQ,WAAR,mBAAgB,aAAU,aAAQ,SAAR,mBAAc,OAAM;AACtE,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAW,GAAG,2BAA2B,SAAS;AAAA,MAElD,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,cAAY;AAAA,YACZ,WAAU;AAAA,YAEV,UAAA;AAAA,cAAA,oBAAC,oBAAA,EAAoB,GAAG,UAAU;AAAA,cAClC,oBAAC,mBAAA,EAAmB,GAAG,SAAS,aAAA,CAA4B;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAE7D,WACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,eAAY;AAAA,YAEZ,UAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAK;AAAA,gBACL,WAAU;AAAA,gBAEV,UAAA;AAAA,kBAAA,oBAAC,oBAAA,EAAoB,GAAG,UAAU,SAAO,KAAA,CAAC;AAAA,kBACzC,SAAS,IAAI,CAAC,UACb;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBAEC,WAAU;AAAA,sBAEV,UAAA,oBAAC,uBAAA,EAAuB,UAAA,MAAM,QAAA,CAAQ;AAAA,oBAAA;AAAA,oBAHjC,MAAM;AAAA,kBAAA,CAKd;AAAA,kBACD,oBAAC,OAAA,EAAI,WAAU,qEACb,UAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,MAAM;AAAA,sBACN,WAAU;AAAA,oBAAA;AAAA,kBAAA,EACZ,CACF;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
const react = require("react");
|
|
5
4
|
const utils = require("../../lib/utils.cjs");
|
|
6
5
|
const DropdownMenu = require("../../overlay/DropdownMenu.cjs");
|
|
7
6
|
const Icon = require("../Icon.cjs");
|
|
8
|
-
const RuntimeBar_context = require("./RuntimeBar.context.cjs");
|
|
9
7
|
const UiCheck = require("../../icons/components/UiCheck.cjs");
|
|
10
8
|
const UiChevronDown = require("../../icons/components/UiChevronDown.cjs");
|
|
11
9
|
const SEGMENT_CAPTION_CLASS = "truncate text-xs font-semibold text-foreground";
|
|
@@ -20,7 +18,6 @@ function RuntimeSegment({
|
|
|
20
18
|
className,
|
|
21
19
|
children
|
|
22
20
|
}) {
|
|
23
|
-
const variant = react.useContext(RuntimeBar_context.RuntimeBarVariantContext);
|
|
24
21
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
25
22
|
DropdownMenu.DropdownMenu,
|
|
26
23
|
{
|
|
@@ -30,8 +27,7 @@ function RuntimeSegment({
|
|
|
30
27
|
...header ? { header } : {},
|
|
31
28
|
menuClassName: "max-h-[70vh] min-w-56 max-w-80 overflow-y-auto",
|
|
32
29
|
className: utils.cn(
|
|
33
|
-
"h-control-h min-w-0 [&>span]:min-w-0 [&>span]:w-full",
|
|
34
|
-
variant === "combo" ? "rounded-md border border-input bg-background" : "border-l border-border first:border-l-0",
|
|
30
|
+
"h-control-h min-w-0 border-l border-border first:border-l-0 [&>span]:min-w-0 [&>span]:w-full",
|
|
35
31
|
className
|
|
36
32
|
),
|
|
37
33
|
trigger: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeBarSegment.cjs","sources":["../../../src/data/runtime/RuntimeBarSegment.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"RuntimeBarSegment.cjs","sources":["../../../src/data/runtime/RuntimeBarSegment.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { UiCheck, UiChevronDown } from \"../../icons\";\nimport { cn } from \"../../lib/utils\";\nimport {\n DropdownMenu,\n type DropdownMenuItem,\n} from \"../../overlay/DropdownMenu\";\nimport { Icon } from \"../Icon\";\n\nexport const SEGMENT_CAPTION_CLASS =\n \"truncate text-xs font-semibold text-foreground\";\nexport const SEGMENT_KEY_CLASS =\n \"text-[11px] font-semibold uppercase leading-none tracking-wide text-muted-foreground\";\n\n// One trigger in the segmented runtime bar: a dropdown whose button carries the\n// segment's current value. `min-w-0` on the root lets a segment shrink past its\n// content — without it the flex item's automatic minimum size is its max-content\n// width, so a row of segments overflows a narrow container instead of ellipsing\n// its captions.\nexport function RuntimeSegment({\n items,\n menuLabel,\n title,\n header,\n disabled = false,\n hideChevron = false,\n className,\n children,\n}: {\n items: DropdownMenuItem[];\n menuLabel: string;\n title: string;\n header?: ReactNode;\n disabled?: boolean;\n /** Drops the trailing chevron, for a segment whose caption is a bare glyph. */\n hideChevron?: boolean;\n className?: string | undefined;\n children: ReactNode;\n}) {\n return (\n <DropdownMenu\n align=\"left\"\n menuLabel={menuLabel}\n items={items}\n {...(header ? { header } : {})}\n menuClassName=\"max-h-[70vh] min-w-56 max-w-80 overflow-y-auto\"\n className={cn(\n \"h-control-h min-w-0 border-l border-border first:border-l-0 [&>span]:min-w-0 [&>span]:w-full\",\n className,\n )}\n trigger={\n <button\n type=\"button\"\n disabled={disabled}\n title={title}\n className=\"inline-flex h-full w-full min-w-0 items-center gap-1.5 px-density-2 transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring [[aria-expanded=true]_&]:bg-muted\"\n >\n <RuntimeSegmentCaption hideChevron={hideChevron}>\n {children}\n </RuntimeSegmentCaption>\n </button>\n }\n />\n );\n}\n\nexport function RuntimeSegmentCaption({\n children,\n hideChevron = false,\n}: {\n children: ReactNode;\n hideChevron?: boolean;\n}) {\n return (\n <>\n {children}\n {!hideChevron && (\n <Icon\n icon={UiChevronDown}\n className=\"size-3 shrink-0 text-muted-foreground/70\"\n />\n )}\n </>\n );\n}\n\nexport function SegmentItemLabel({\n text,\n hint,\n selected,\n stacked = false,\n}: {\n text: string;\n hint?: string | undefined;\n selected: boolean;\n stacked?: boolean | undefined;\n}) {\n return (\n <>\n <span className=\"min-w-0 flex-1\">\n <span className={cn(\"block truncate\", selected && \"font-semibold\")}>\n {text}\n </span>\n {hint && stacked && (\n <span className=\"block whitespace-normal text-[11px] leading-4 text-muted-foreground\">\n {hint}\n </span>\n )}\n </span>\n {hint && !stacked && (\n <span className=\"shrink-0 text-[11px] text-muted-foreground\">\n {hint}\n </span>\n )}\n <Icon\n icon={UiCheck}\n className={cn(\n \"size-3.5 shrink-0 text-primary\",\n !selected && \"invisible\",\n )}\n />\n </>\n );\n}\n"],"names":["jsx","DropdownMenu","cn","jsxs","Fragment","Icon","UiChevronDown","UiCheck"],"mappings":";;;;;;;;AASO,MAAM,wBACX;AACK,MAAM,oBACX;AAOK,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,cAAc;AAAA,EACd;AAAA,EACA;AACF,GAUG;AACD,SACEA,2BAAAA;AAAAA,IAACC,aAAAA;AAAAA,IAAA;AAAA,MACC,OAAM;AAAA,MACN;AAAA,MACA;AAAA,MACC,GAAI,SAAS,EAAE,OAAA,IAAW,CAAA;AAAA,MAC3B,eAAc;AAAA,MACd,WAAWC,MAAAA;AAAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,SACEF,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL;AAAA,UACA;AAAA,UACA,WAAU;AAAA,UAEV,UAAAA,2BAAAA,IAAC,uBAAA,EAAsB,aACpB,SAAA,CACH;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAIR;AAEO,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA,cAAc;AAChB,GAGG;AACD,SACEG,2BAAAA,KAAAC,qBAAA,EACG,UAAA;AAAA,IAAA;AAAA,IACA,CAAC,eACAJ,2BAAAA;AAAAA,MAACK,KAAAA;AAAAA,MAAA;AAAA,QACC,MAAMC,cAAAA;AAAAA,QACN,WAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EACZ,GAEJ;AAEJ;AAEO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AACZ,GAKG;AACD,SACEH,2BAAAA,KAAAC,qBAAA,EACE,UAAA;AAAA,IAAAD,2BAAAA,KAAC,QAAA,EAAK,WAAU,kBACd,UAAA;AAAA,MAAAH,2BAAAA,IAAC,UAAK,WAAWE,SAAG,kBAAkB,YAAY,eAAe,GAC9D,UAAA,MACH;AAAA,MACC,QAAQ,WACPF,2BAAAA,IAAC,QAAA,EAAK,WAAU,uEACb,UAAA,KAAA,CACH;AAAA,IAAA,GAEJ;AAAA,IACC,QAAQ,CAAC,0CACP,QAAA,EAAK,WAAU,8CACb,UAAA,MACH;AAAA,IAEFA,2BAAAA;AAAAA,MAACK,KAAAA;AAAAA,MAAA;AAAA,QACC,MAAME,QAAAA;AAAAA,QACN,WAAWL,MAAAA;AAAAA,UACT;AAAA,UACA,CAAC,YAAY;AAAA,QAAA;AAAA,MACf;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeBarSegment.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/RuntimeBarSegment.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"RuntimeBarSegment.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/RuntimeBarSegment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,4BAA4B,CAAC;AAGpC,eAAO,MAAM,qBAAqB,mDACgB,CAAC;AACnD,eAAO,MAAM,iBAAiB,yFAC0D,CAAC;AAOzF,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,SAAS,EACT,KAAK,EACL,MAAM,EACN,QAAgB,EAChB,WAAmB,EACnB,SAAS,EACT,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB,+BA0BA;AAED,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,WAAmB,GACpB,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,+BAYA;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,OAAe,GAChB,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B,+BA2BA"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useContext } from "react";
|
|
3
2
|
import { cn } from "../../lib/utils.js";
|
|
4
3
|
import { DropdownMenu } from "../../overlay/DropdownMenu.js";
|
|
5
4
|
import { Icon } from "../Icon.js";
|
|
6
|
-
import { RuntimeBarVariantContext } from "./RuntimeBar.context.js";
|
|
7
5
|
import { UiCheck } from "../../icons/components/UiCheck.js";
|
|
8
6
|
import { UiChevronDown } from "../../icons/components/UiChevronDown.js";
|
|
9
7
|
const SEGMENT_CAPTION_CLASS = "truncate text-xs font-semibold text-foreground";
|
|
@@ -18,7 +16,6 @@ function RuntimeSegment({
|
|
|
18
16
|
className,
|
|
19
17
|
children
|
|
20
18
|
}) {
|
|
21
|
-
const variant = useContext(RuntimeBarVariantContext);
|
|
22
19
|
return /* @__PURE__ */ jsx(
|
|
23
20
|
DropdownMenu,
|
|
24
21
|
{
|
|
@@ -28,8 +25,7 @@ function RuntimeSegment({
|
|
|
28
25
|
...header ? { header } : {},
|
|
29
26
|
menuClassName: "max-h-[70vh] min-w-56 max-w-80 overflow-y-auto",
|
|
30
27
|
className: cn(
|
|
31
|
-
"h-control-h min-w-0 [&>span]:min-w-0 [&>span]:w-full",
|
|
32
|
-
variant === "combo" ? "rounded-md border border-input bg-background" : "border-l border-border first:border-l-0",
|
|
28
|
+
"h-control-h min-w-0 border-l border-border first:border-l-0 [&>span]:min-w-0 [&>span]:w-full",
|
|
33
29
|
className
|
|
34
30
|
),
|
|
35
31
|
trigger: /* @__PURE__ */ jsx(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeBarSegment.js","sources":["../../../src/data/runtime/RuntimeBarSegment.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"RuntimeBarSegment.js","sources":["../../../src/data/runtime/RuntimeBarSegment.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { UiCheck, UiChevronDown } from \"../../icons\";\nimport { cn } from \"../../lib/utils\";\nimport {\n DropdownMenu,\n type DropdownMenuItem,\n} from \"../../overlay/DropdownMenu\";\nimport { Icon } from \"../Icon\";\n\nexport const SEGMENT_CAPTION_CLASS =\n \"truncate text-xs font-semibold text-foreground\";\nexport const SEGMENT_KEY_CLASS =\n \"text-[11px] font-semibold uppercase leading-none tracking-wide text-muted-foreground\";\n\n// One trigger in the segmented runtime bar: a dropdown whose button carries the\n// segment's current value. `min-w-0` on the root lets a segment shrink past its\n// content — without it the flex item's automatic minimum size is its max-content\n// width, so a row of segments overflows a narrow container instead of ellipsing\n// its captions.\nexport function RuntimeSegment({\n items,\n menuLabel,\n title,\n header,\n disabled = false,\n hideChevron = false,\n className,\n children,\n}: {\n items: DropdownMenuItem[];\n menuLabel: string;\n title: string;\n header?: ReactNode;\n disabled?: boolean;\n /** Drops the trailing chevron, for a segment whose caption is a bare glyph. */\n hideChevron?: boolean;\n className?: string | undefined;\n children: ReactNode;\n}) {\n return (\n <DropdownMenu\n align=\"left\"\n menuLabel={menuLabel}\n items={items}\n {...(header ? { header } : {})}\n menuClassName=\"max-h-[70vh] min-w-56 max-w-80 overflow-y-auto\"\n className={cn(\n \"h-control-h min-w-0 border-l border-border first:border-l-0 [&>span]:min-w-0 [&>span]:w-full\",\n className,\n )}\n trigger={\n <button\n type=\"button\"\n disabled={disabled}\n title={title}\n className=\"inline-flex h-full w-full min-w-0 items-center gap-1.5 px-density-2 transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring [[aria-expanded=true]_&]:bg-muted\"\n >\n <RuntimeSegmentCaption hideChevron={hideChevron}>\n {children}\n </RuntimeSegmentCaption>\n </button>\n }\n />\n );\n}\n\nexport function RuntimeSegmentCaption({\n children,\n hideChevron = false,\n}: {\n children: ReactNode;\n hideChevron?: boolean;\n}) {\n return (\n <>\n {children}\n {!hideChevron && (\n <Icon\n icon={UiChevronDown}\n className=\"size-3 shrink-0 text-muted-foreground/70\"\n />\n )}\n </>\n );\n}\n\nexport function SegmentItemLabel({\n text,\n hint,\n selected,\n stacked = false,\n}: {\n text: string;\n hint?: string | undefined;\n selected: boolean;\n stacked?: boolean | undefined;\n}) {\n return (\n <>\n <span className=\"min-w-0 flex-1\">\n <span className={cn(\"block truncate\", selected && \"font-semibold\")}>\n {text}\n </span>\n {hint && stacked && (\n <span className=\"block whitespace-normal text-[11px] leading-4 text-muted-foreground\">\n {hint}\n </span>\n )}\n </span>\n {hint && !stacked && (\n <span className=\"shrink-0 text-[11px] text-muted-foreground\">\n {hint}\n </span>\n )}\n <Icon\n icon={UiCheck}\n className={cn(\n \"size-3.5 shrink-0 text-primary\",\n !selected && \"invisible\",\n )}\n />\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;AASO,MAAM,wBACX;AACK,MAAM,oBACX;AAOK,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,cAAc;AAAA,EACd;AAAA,EACA;AACF,GAUG;AACD,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAM;AAAA,MACN;AAAA,MACA;AAAA,MACC,GAAI,SAAS,EAAE,OAAA,IAAW,CAAA;AAAA,MAC3B,eAAc;AAAA,MACd,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,SACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL;AAAA,UACA;AAAA,UACA,WAAU;AAAA,UAEV,UAAA,oBAAC,uBAAA,EAAsB,aACpB,SAAA,CACH;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAIR;AAEO,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA,cAAc;AAChB,GAGG;AACD,SACE,qBAAA,UAAA,EACG,UAAA;AAAA,IAAA;AAAA,IACA,CAAC,eACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,WAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EACZ,GAEJ;AAEJ;AAEO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AACZ,GAKG;AACD,SACE,qBAAA,UAAA,EACE,UAAA;AAAA,IAAA,qBAAC,QAAA,EAAK,WAAU,kBACd,UAAA;AAAA,MAAA,oBAAC,UAAK,WAAW,GAAG,kBAAkB,YAAY,eAAe,GAC9D,UAAA,MACH;AAAA,MACC,QAAQ,WACP,oBAAC,QAAA,EAAK,WAAU,uEACb,UAAA,KAAA,CACH;AAAA,IAAA,GAEJ;AAAA,IACC,QAAQ,CAAC,+BACP,QAAA,EAAK,WAAU,8CACb,UAAA,MACH;AAAA,IAEF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,WAAW;AAAA,UACT;AAAA,UACA,CAAC,YAAY;AAAA,QAAA;AAAA,MACf;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
|
|
@@ -5,13 +5,12 @@ function runtimeBarInlineCount({
|
|
|
5
5
|
width,
|
|
6
6
|
identity,
|
|
7
7
|
trigger,
|
|
8
|
-
fields
|
|
9
|
-
gap
|
|
8
|
+
fields
|
|
10
9
|
}) {
|
|
11
|
-
let occupied = identity + trigger
|
|
10
|
+
let occupied = identity + trigger;
|
|
12
11
|
let count = 0;
|
|
13
12
|
for (const field of fields) {
|
|
14
|
-
occupied += field
|
|
13
|
+
occupied += field;
|
|
15
14
|
if (occupied > width) break;
|
|
16
15
|
count++;
|
|
17
16
|
}
|
|
@@ -31,16 +30,11 @@ function useRuntimeBarOverflow() {
|
|
|
31
30
|
throw new Error(
|
|
32
31
|
"Runtime bar measurement requires identity and a menu trigger"
|
|
33
32
|
);
|
|
34
|
-
const spacing = getComputedStyle(measurement).columnGap;
|
|
35
|
-
const gap = spacing === "normal" || spacing === "" ? 0 : Number.parseFloat(spacing);
|
|
36
|
-
if (!Number.isFinite(gap))
|
|
37
|
-
throw new Error(`Invalid runtime bar spacing: ${spacing}`);
|
|
38
33
|
const count = runtimeBarInlineCount({
|
|
39
34
|
width: width - 2,
|
|
40
35
|
identity: identity.getBoundingClientRect().width,
|
|
41
36
|
trigger: trigger.getBoundingClientRect().width,
|
|
42
|
-
fields: controls.map((node) => node.getBoundingClientRect().width)
|
|
43
|
-
gap
|
|
37
|
+
fields: controls.map((node) => node.getBoundingClientRect().width)
|
|
44
38
|
});
|
|
45
39
|
setVisibleCount((previous) => previous === count ? previous : count);
|
|
46
40
|
}, [container, measurement]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-runtime-bar-overflow.cjs","sources":["../../../src/data/runtime/use-runtime-bar-overflow.ts"],"sourcesContent":["import { useCallback, useLayoutEffect, useState } from \"react\";\n\nexport function runtimeBarInlineCount({\n width,\n identity,\n trigger,\n fields,\n
|
|
1
|
+
{"version":3,"file":"use-runtime-bar-overflow.cjs","sources":["../../../src/data/runtime/use-runtime-bar-overflow.ts"],"sourcesContent":["import { useCallback, useLayoutEffect, useState } from \"react\";\n\nexport function runtimeBarInlineCount({\n width,\n identity,\n trigger,\n fields,\n}: {\n width: number;\n identity: number;\n trigger: number;\n fields: number[];\n}) {\n let occupied = identity + trigger;\n let count = 0;\n for (const field of fields) {\n occupied += field;\n if (occupied > width) break;\n count++;\n }\n return count;\n}\n\nexport function useRuntimeBarOverflow() {\n const [container, setContainer] = useState<HTMLDivElement | null>(null);\n const [measurement, setMeasurement] = useState<HTMLDivElement | null>(null);\n const [visibleCount, setVisibleCount] = useState(Infinity);\n\n const measure = useCallback(() => {\n if (!container || !measurement) return;\n const width = container.getBoundingClientRect().width;\n if (width <= 0) return;\n const [identity, ...controls] = [...measurement.children];\n const trigger = controls.pop();\n if (!identity || !trigger)\n throw new Error(\n \"Runtime bar measurement requires identity and a menu trigger\",\n );\n const count = runtimeBarInlineCount({\n width: width - 2,\n identity: identity.getBoundingClientRect().width,\n trigger: trigger.getBoundingClientRect().width,\n fields: controls.map((node) => node.getBoundingClientRect().width),\n });\n setVisibleCount((previous) => (previous === count ? previous : count));\n }, [container, measurement]);\n\n useLayoutEffect(() => {\n measure();\n });\n\n useLayoutEffect(() => {\n if (!container || !measurement) return;\n measure();\n const observer =\n typeof ResizeObserver === \"undefined\"\n ? undefined\n : new ResizeObserver(measure);\n observer?.observe(container);\n observer?.observe(measurement);\n window.addEventListener(\"resize\", measure);\n return () => {\n observer?.disconnect();\n window.removeEventListener(\"resize\", measure);\n };\n }, [container, measurement, measure]);\n\n return {\n containerRef: setContainer,\n measurementRef: setMeasurement,\n visibleCount,\n };\n}\n"],"names":["useState","useCallback","useLayoutEffect"],"mappings":";;;AAEO,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,MAAI,WAAW,WAAW;AAC1B,MAAI,QAAQ;AACZ,aAAW,SAAS,QAAQ;AAC1B,gBAAY;AACZ,QAAI,WAAW,MAAO;AACtB;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,wBAAwB;AACtC,QAAM,CAAC,WAAW,YAAY,IAAIA,MAAAA,SAAgC,IAAI;AACtE,QAAM,CAAC,aAAa,cAAc,IAAIA,MAAAA,SAAgC,IAAI;AAC1E,QAAM,CAAC,cAAc,eAAe,IAAIA,MAAAA,SAAS,QAAQ;AAEzD,QAAM,UAAUC,MAAAA,YAAY,MAAM;AAChC,QAAI,CAAC,aAAa,CAAC,YAAa;AAChC,UAAM,QAAQ,UAAU,sBAAA,EAAwB;AAChD,QAAI,SAAS,EAAG;AAChB,UAAM,CAAC,UAAU,GAAG,QAAQ,IAAI,CAAC,GAAG,YAAY,QAAQ;AACxD,UAAM,UAAU,SAAS,IAAA;AACzB,QAAI,CAAC,YAAY,CAAC;AAChB,YAAM,IAAI;AAAA,QACR;AAAA,MAAA;AAEJ,UAAM,QAAQ,sBAAsB;AAAA,MAClC,OAAO,QAAQ;AAAA,MACf,UAAU,SAAS,sBAAA,EAAwB;AAAA,MAC3C,SAAS,QAAQ,sBAAA,EAAwB;AAAA,MACzC,QAAQ,SAAS,IAAI,CAAC,SAAS,KAAK,sBAAA,EAAwB,KAAK;AAAA,IAAA,CAClE;AACD,oBAAgB,CAAC,aAAc,aAAa,QAAQ,WAAW,KAAM;AAAA,EACvE,GAAG,CAAC,WAAW,WAAW,CAAC;AAE3BC,QAAAA,gBAAgB,MAAM;AACpB,YAAA;AAAA,EACF,CAAC;AAEDA,QAAAA,gBAAgB,MAAM;AACpB,QAAI,CAAC,aAAa,CAAC,YAAa;AAChC,YAAA;AACA,UAAM,WACJ,OAAO,mBAAmB,cACtB,SACA,IAAI,eAAe,OAAO;AAChC,yCAAU,QAAQ;AAClB,yCAAU,QAAQ;AAClB,WAAO,iBAAiB,UAAU,OAAO;AACzC,WAAO,MAAM;AACX,2CAAU;AACV,aAAO,oBAAoB,UAAU,OAAO;AAAA,IAC9C;AAAA,EACF,GAAG,CAAC,WAAW,aAAa,OAAO,CAAC;AAEpC,SAAO;AAAA,IACL,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB;AAAA,EAAA;AAEJ;;;"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
export declare function runtimeBarInlineCount({ width, identity, trigger, fields,
|
|
1
|
+
export declare function runtimeBarInlineCount({ width, identity, trigger, fields, }: {
|
|
2
2
|
width: number;
|
|
3
3
|
identity: number;
|
|
4
4
|
trigger: number;
|
|
5
5
|
fields: number[];
|
|
6
|
-
gap: number;
|
|
7
6
|
}): number;
|
|
8
7
|
export declare function useRuntimeBarOverflow(): {
|
|
9
8
|
containerRef: import('react').Dispatch<import('react').SetStateAction<HTMLDivElement | null>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-runtime-bar-overflow.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/use-runtime-bar-overflow.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAM,
|
|
1
|
+
{"version":3,"file":"use-runtime-bar-overflow.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/use-runtime-bar-overflow.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAM,GACP,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,UASA;AAED,wBAAgB,qBAAqB;;;;EAiDpC"}
|
|
@@ -3,13 +3,12 @@ function runtimeBarInlineCount({
|
|
|
3
3
|
width,
|
|
4
4
|
identity,
|
|
5
5
|
trigger,
|
|
6
|
-
fields
|
|
7
|
-
gap
|
|
6
|
+
fields
|
|
8
7
|
}) {
|
|
9
|
-
let occupied = identity + trigger
|
|
8
|
+
let occupied = identity + trigger;
|
|
10
9
|
let count = 0;
|
|
11
10
|
for (const field of fields) {
|
|
12
|
-
occupied += field
|
|
11
|
+
occupied += field;
|
|
13
12
|
if (occupied > width) break;
|
|
14
13
|
count++;
|
|
15
14
|
}
|
|
@@ -29,16 +28,11 @@ function useRuntimeBarOverflow() {
|
|
|
29
28
|
throw new Error(
|
|
30
29
|
"Runtime bar measurement requires identity and a menu trigger"
|
|
31
30
|
);
|
|
32
|
-
const spacing = getComputedStyle(measurement).columnGap;
|
|
33
|
-
const gap = spacing === "normal" || spacing === "" ? 0 : Number.parseFloat(spacing);
|
|
34
|
-
if (!Number.isFinite(gap))
|
|
35
|
-
throw new Error(`Invalid runtime bar spacing: ${spacing}`);
|
|
36
31
|
const count = runtimeBarInlineCount({
|
|
37
32
|
width: width - 2,
|
|
38
33
|
identity: identity.getBoundingClientRect().width,
|
|
39
34
|
trigger: trigger.getBoundingClientRect().width,
|
|
40
|
-
fields: controls.map((node) => node.getBoundingClientRect().width)
|
|
41
|
-
gap
|
|
35
|
+
fields: controls.map((node) => node.getBoundingClientRect().width)
|
|
42
36
|
});
|
|
43
37
|
setVisibleCount((previous) => previous === count ? previous : count);
|
|
44
38
|
}, [container, measurement]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-runtime-bar-overflow.js","sources":["../../../src/data/runtime/use-runtime-bar-overflow.ts"],"sourcesContent":["import { useCallback, useLayoutEffect, useState } from \"react\";\n\nexport function runtimeBarInlineCount({\n width,\n identity,\n trigger,\n fields,\n
|
|
1
|
+
{"version":3,"file":"use-runtime-bar-overflow.js","sources":["../../../src/data/runtime/use-runtime-bar-overflow.ts"],"sourcesContent":["import { useCallback, useLayoutEffect, useState } from \"react\";\n\nexport function runtimeBarInlineCount({\n width,\n identity,\n trigger,\n fields,\n}: {\n width: number;\n identity: number;\n trigger: number;\n fields: number[];\n}) {\n let occupied = identity + trigger;\n let count = 0;\n for (const field of fields) {\n occupied += field;\n if (occupied > width) break;\n count++;\n }\n return count;\n}\n\nexport function useRuntimeBarOverflow() {\n const [container, setContainer] = useState<HTMLDivElement | null>(null);\n const [measurement, setMeasurement] = useState<HTMLDivElement | null>(null);\n const [visibleCount, setVisibleCount] = useState(Infinity);\n\n const measure = useCallback(() => {\n if (!container || !measurement) return;\n const width = container.getBoundingClientRect().width;\n if (width <= 0) return;\n const [identity, ...controls] = [...measurement.children];\n const trigger = controls.pop();\n if (!identity || !trigger)\n throw new Error(\n \"Runtime bar measurement requires identity and a menu trigger\",\n );\n const count = runtimeBarInlineCount({\n width: width - 2,\n identity: identity.getBoundingClientRect().width,\n trigger: trigger.getBoundingClientRect().width,\n fields: controls.map((node) => node.getBoundingClientRect().width),\n });\n setVisibleCount((previous) => (previous === count ? previous : count));\n }, [container, measurement]);\n\n useLayoutEffect(() => {\n measure();\n });\n\n useLayoutEffect(() => {\n if (!container || !measurement) return;\n measure();\n const observer =\n typeof ResizeObserver === \"undefined\"\n ? undefined\n : new ResizeObserver(measure);\n observer?.observe(container);\n observer?.observe(measurement);\n window.addEventListener(\"resize\", measure);\n return () => {\n observer?.disconnect();\n window.removeEventListener(\"resize\", measure);\n };\n }, [container, measurement, measure]);\n\n return {\n containerRef: setContainer,\n measurementRef: setMeasurement,\n visibleCount,\n };\n}\n"],"names":[],"mappings":";AAEO,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,MAAI,WAAW,WAAW;AAC1B,MAAI,QAAQ;AACZ,aAAW,SAAS,QAAQ;AAC1B,gBAAY;AACZ,QAAI,WAAW,MAAO;AACtB;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,wBAAwB;AACtC,QAAM,CAAC,WAAW,YAAY,IAAI,SAAgC,IAAI;AACtE,QAAM,CAAC,aAAa,cAAc,IAAI,SAAgC,IAAI;AAC1E,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,QAAQ;AAEzD,QAAM,UAAU,YAAY,MAAM;AAChC,QAAI,CAAC,aAAa,CAAC,YAAa;AAChC,UAAM,QAAQ,UAAU,sBAAA,EAAwB;AAChD,QAAI,SAAS,EAAG;AAChB,UAAM,CAAC,UAAU,GAAG,QAAQ,IAAI,CAAC,GAAG,YAAY,QAAQ;AACxD,UAAM,UAAU,SAAS,IAAA;AACzB,QAAI,CAAC,YAAY,CAAC;AAChB,YAAM,IAAI;AAAA,QACR;AAAA,MAAA;AAEJ,UAAM,QAAQ,sBAAsB;AAAA,MAClC,OAAO,QAAQ;AAAA,MACf,UAAU,SAAS,sBAAA,EAAwB;AAAA,MAC3C,SAAS,QAAQ,sBAAA,EAAwB;AAAA,MACzC,QAAQ,SAAS,IAAI,CAAC,SAAS,KAAK,sBAAA,EAAwB,KAAK;AAAA,IAAA,CAClE;AACD,oBAAgB,CAAC,aAAc,aAAa,QAAQ,WAAW,KAAM;AAAA,EACvE,GAAG,CAAC,WAAW,WAAW,CAAC;AAE3B,kBAAgB,MAAM;AACpB,YAAA;AAAA,EACF,CAAC;AAED,kBAAgB,MAAM;AACpB,QAAI,CAAC,aAAa,CAAC,YAAa;AAChC,YAAA;AACA,UAAM,WACJ,OAAO,mBAAmB,cACtB,SACA,IAAI,eAAe,OAAO;AAChC,yCAAU,QAAQ;AAClB,yCAAU,QAAQ;AAClB,WAAO,iBAAiB,UAAU,OAAO;AACzC,WAAO,MAAM;AACX,2CAAU;AACV,aAAO,oBAAoB,UAAU,OAAO;AAAA,IAC9C;AAAA,EACF,GAAG,CAAC,WAAW,aAAa,OAAO,CAAC;AAEpC,SAAO;AAAA,IACL,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB;AAAA,EAAA;AAEJ;"}
|
|
@@ -4,26 +4,6 @@ import { Test } from './types.js';
|
|
|
4
4
|
export declare const completedTests: Test[];
|
|
5
5
|
/** Same forest, but as an in-flight run: some running, some queued. */
|
|
6
6
|
export declare const runningTests: Test[];
|
|
7
|
-
/**
|
|
8
|
-
* A suite whose leaves carry very large payloads: a 6×4 deep object, a
|
|
9
|
-
* 500-row array, and an 800-line log — to stress JsonView, LogViewer, and the
|
|
10
|
-
* detail pane's independent scrolling.
|
|
11
|
-
*/
|
|
12
|
-
export declare const largeDetailTests: Test[];
|
|
13
|
-
/**
|
|
14
|
-
* A large forest (4 roots × depth 3 × breadth 4 = 340 nodes / 256 leaves) whose
|
|
15
|
-
* every leaf carries the LargePayloads-sized detail (deep object + 500-row array
|
|
16
|
-
* + 800-line log). Used for the dialog stress test: a long scrolling tree on the
|
|
17
|
-
* left and very large detail payloads on the right.
|
|
18
|
-
*
|
|
19
|
-
* Depth is 3, not 4: at depth 4 (~1024 leaves) the jsdom unit test auto-expands
|
|
20
|
-
* the failing branches and renders the whole tree, which OOM'd CI's
|
|
21
|
-
* memory-constrained shared vitest worker (a STACK_TRACE_ERROR on the "very
|
|
22
|
-
* large tree" test) once this package's suite grew. 340 nodes still scrolls and
|
|
23
|
-
* stresses the detail panes while staying within the worker's budget; the
|
|
24
|
-
* browser story renders the same fixture without the jsdom memory ceiling.
|
|
25
|
-
*/
|
|
26
|
-
export declare const largeTreeTests: Test[];
|
|
27
7
|
/**
|
|
28
8
|
* Demo adapter proving the registry extension point: nodes named "setup" get a
|
|
29
9
|
* custom detail body, an extra "Context" tab, and a node action — the seam that
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestRunner.fixtures.d.ts","sourceRoot":"","sources":["../../../src/data/test-runner/TestRunner.fixtures.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAIpC,mFAAmF;AACnF,eAAO,MAAM,cAAc,EAAE,IAAI,EAmFhC,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,YAAY,EAAE,IAAI,EA+B9B,CAAC;
|
|
1
|
+
{"version":3,"file":"TestRunner.fixtures.d.ts","sourceRoot":"","sources":["../../../src/data/test-runner/TestRunner.fixtures.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAIpC,mFAAmF;AACnF,eAAO,MAAM,cAAc,EAAE,IAAI,EAmFhC,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,YAAY,EAAE,IAAI,EA+B9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,eA0C1B,CAAC"}
|