@flanksource/clicky-ui 0.3.44 → 0.3.46
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 +24 -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/AccessMark.cjs +23 -0
- package/dist/data/AccessMark.cjs.map +1 -0
- package/dist/data/AccessMark.d.ts +11 -0
- package/dist/data/AccessMark.d.ts.map +1 -0
- package/dist/data/AccessMark.js +23 -0
- package/dist/data/AccessMark.js.map +1 -0
- 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/CodeDiff.cjs +116 -23
- package/dist/data/CodeDiff.cjs.map +1 -1
- package/dist/data/CodeDiff.d.ts +26 -0
- package/dist/data/CodeDiff.d.ts.map +1 -1
- package/dist/data/CodeDiff.js +116 -23
- package/dist/data/CodeDiff.js.map +1 -1
- package/dist/data/GraphDiagram.cjs +75 -11
- package/dist/data/GraphDiagram.cjs.map +1 -1
- package/dist/data/GraphDiagram.d.ts +17 -2
- package/dist/data/GraphDiagram.d.ts.map +1 -1
- package/dist/data/GraphDiagram.js +76 -12
- package/dist/data/GraphDiagram.js.map +1 -1
- package/dist/data/GraphDiagramGroups.cjs +100 -0
- package/dist/data/GraphDiagramGroups.cjs.map +1 -0
- package/dist/data/GraphDiagramGroups.d.ts +24 -0
- package/dist/data/GraphDiagramGroups.d.ts.map +1 -0
- package/dist/data/GraphDiagramGroups.js +100 -0
- package/dist/data/GraphDiagramGroups.js.map +1 -0
- package/dist/data/GraphDiagramNodes.cjs +46 -51
- package/dist/data/GraphDiagramNodes.cjs.map +1 -1
- package/dist/data/GraphDiagramNodes.d.ts +8 -9
- package/dist/data/GraphDiagramNodes.d.ts.map +1 -1
- package/dist/data/GraphDiagramNodes.js +46 -51
- 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/TreeNode.cjs +1 -1
- package/dist/data/TreeNode.cjs.map +1 -1
- package/dist/data/TreeNode.d.ts.map +1 -1
- package/dist/data/TreeNode.js +1 -1
- package/dist/data/TreeNode.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 +269 -0
- package/dist/data/call-graph/CallGraph.cjs.map +1 -0
- package/dist/data/call-graph/CallGraph.d.ts +78 -0
- package/dist/data/call-graph/CallGraph.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraph.js +269 -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 +51 -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 +51 -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 +198 -0
- package/dist/data/call-graph/CallGraphToolbar.cjs.map +1 -0
- package/dist/data/call-graph/CallGraphToolbar.d.ts +55 -0
- package/dist/data/call-graph/CallGraphToolbar.d.ts.map +1 -0
- package/dist/data/call-graph/CallGraphToolbar.js +198 -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 +312 -0
- package/dist/data/call-graph/call-graph-model.cjs.map +1 -0
- package/dist/data/call-graph/call-graph-model.d.ts +138 -0
- package/dist/data/call-graph/call-graph-model.d.ts.map +1 -0
- package/dist/data/call-graph/call-graph-model.js +312 -0
- package/dist/data/call-graph/call-graph-model.js.map +1 -0
- package/dist/data/call-graph/call-graph-vocabulary.cjs +195 -0
- package/dist/data/call-graph/call-graph-vocabulary.cjs.map +1 -0
- package/dist/data/call-graph/call-graph-vocabulary.d.ts +76 -0
- package/dist/data/call-graph/call-graph-vocabulary.d.ts.map +1 -0
- package/dist/data/call-graph/call-graph-vocabulary.js +195 -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 +140 -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/data-access.cjs +8 -0
- package/dist/data/data-access.cjs.map +1 -0
- package/dist/data/data-access.d.ts +5 -0
- package/dist/data/data-access.d.ts.map +1 -0
- package/dist/data/data-access.js +8 -0
- package/dist/data/data-access.js.map +1 -0
- 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/git/GitChangeList.cjs +6 -2
- package/dist/data/git/GitChangeList.cjs.map +1 -1
- package/dist/data/git/GitChangeList.d.ts +6 -1
- package/dist/data/git/GitChangeList.d.ts.map +1 -1
- package/dist/data/git/GitChangeList.js +6 -2
- package/dist/data/git/GitChangeList.js.map +1 -1
- package/dist/data/graph-columns-layout.cjs +61 -14
- package/dist/data/graph-columns-layout.cjs.map +1 -1
- package/dist/data/graph-columns-layout.d.ts +42 -0
- package/dist/data/graph-columns-layout.d.ts.map +1 -1
- package/dist/data/graph-columns-layout.js +61 -14
- package/dist/data/graph-columns-layout.js.map +1 -1
- package/dist/data/graph-diagram-model.cjs +5 -0
- package/dist/data/graph-diagram-model.cjs.map +1 -1
- package/dist/data/graph-diagram-model.d.ts +24 -0
- package/dist/data/graph-diagram-model.d.ts.map +1 -1
- package/dist/data/graph-diagram-model.js +5 -0
- 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/graph-group-window.cjs +60 -0
- package/dist/data/graph-group-window.cjs.map +1 -0
- package/dist/data/graph-group-window.d.ts +33 -0
- package/dist/data/graph-group-window.d.ts.map +1 -0
- package/dist/data/graph-group-window.js +60 -0
- package/dist/data/graph-group-window.js.map +1 -0
- 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-group-windows.cjs +50 -0
- package/dist/data/use-group-windows.cjs.map +1 -0
- package/dist/data/use-group-windows.d.ts +27 -0
- package/dist/data/use-group-windows.d.ts.map +1 -0
- package/dist/data/use-group-windows.js +50 -0
- package/dist/data/use-group-windows.js.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 +36 -2
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +5 -2
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +35 -1
- package/dist/data.js.map +1 -1
- package/dist/hooks/event-hub.cjs +229 -0
- package/dist/hooks/event-hub.cjs.map +1 -0
- package/dist/hooks/event-hub.d.ts +26 -0
- package/dist/hooks/event-hub.d.ts.map +1 -0
- package/dist/hooks/event-hub.js +229 -0
- package/dist/hooks/event-hub.js.map +1 -0
- package/dist/hooks.cjs +2 -0
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.ts +1 -0
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +2 -0
- package/dist/hooks.js.map +1 -1
- package/dist/index.cjs +40 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +37 -1
- 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/overlay/modalStack.cjs +13 -6
- package/dist/overlay/modalStack.cjs.map +1 -1
- package/dist/overlay/modalStack.d.ts.map +1 -1
- package/dist/overlay/modalStack.js +13 -6
- package/dist/overlay/modalStack.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,12 +1,15 @@
|
|
|
1
1
|
import { isUnavailable } from "./availability.js";
|
|
2
2
|
import { reconcileModelCapabilities } from "./model-capabilities.js";
|
|
3
3
|
import { runtimeModelForValue } from "./RuntimeBar.model.js";
|
|
4
|
-
import { modelsForFamily } from "./runtime-mode.js";
|
|
4
|
+
import { runtimeModeIcon, modelsForFamily } from "./runtime-mode.js";
|
|
5
5
|
import { runtimeModeFromModel } from "../../lib/runtime-family.js";
|
|
6
6
|
function runtimeModes(families) {
|
|
7
7
|
return [
|
|
8
8
|
...new Map(
|
|
9
|
-
families.flatMap((family) => family.modes).filter((mode) => !isUnavailable(mode.availability)).map((mode) =>
|
|
9
|
+
families.flatMap((family) => family.modes).filter((mode) => !isUnavailable(mode.availability)).map((mode) => {
|
|
10
|
+
const icon = mode.icon ?? runtimeModeIcon(mode.id);
|
|
11
|
+
return [mode.id, icon ? { ...mode, icon } : mode];
|
|
12
|
+
})
|
|
10
13
|
).values()
|
|
11
14
|
];
|
|
12
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeBar.selection.js","sources":["../../../src/data/runtime/RuntimeBar.selection.ts"],"sourcesContent":["import type { ChatModel } from \"../chat/types\";\nimport type { RuntimeBarValue } from \"./RuntimeBar\";\nimport { isUnavailable } from \"./availability\";\nimport { reconcileModelCapabilities } from \"./model-capabilities\";\nimport { runtimeModelForValue } from \"./RuntimeBar.model\";\nimport {\n modelsForFamily,\n runtimeModeFromModel,\n type SpecRuntimeFamily,\n} from \"./runtime-mode\";\n\nexport function runtimeModes(families: SpecRuntimeFamily[]) {\n return [\n ...new Map(\n families\n .flatMap((family) => family.modes)\n .filter((mode) => !isUnavailable(mode.availability))\n .map((mode) => [mode.id, mode]),\n ).values(),\n ];\n}\n\nexport function modelGroupsForMode({\n models,\n families,\n mode,\n}: {\n models: ChatModel[];\n families: SpecRuntimeFamily[];\n mode: string;\n}) {\n return families\n .filter((family) =>\n family.modes.some(\n (entry) => entry.id === mode && !isUnavailable(entry.availability),\n ),\n )\n .map((family) => ({\n family,\n models: modelsForFamily(models, family, mode).filter((model) => {\n const modelMode =\n model.runtime?.mode ??\n runtimeModeFromModel(model.runtime?.model ?? model.id);\n return modelMode === undefined || modelMode === mode;\n }),\n }));\n}\n\nexport function withRuntimeMode<T extends RuntimeBarValue>({\n value,\n models,\n families,\n mode,\n reasoningEfforts,\n}: {\n value: T;\n models: ChatModel[];\n families: SpecRuntimeFamily[];\n mode: string;\n reasoningEfforts: readonly string[];\n}): T {\n if (!runtimeModes(families).some((entry) => entry.id === mode)) {\n throw new Error(`Runtime mode ${JSON.stringify(mode)} is unavailable`);\n }\n const eligible = modelGroupsForMode({ models, families, mode }).flatMap(\n (group) => group.models,\n );\n const model = runtimeModelForValue(eligible, { ...value, mode });\n const next = { ...value, mode };\n delete next.id;\n delete next.model;\n delete next.cliArgs;\n return model\n ? reconcileModelCapabilities(next, model, reasoningEfforts, { mode })\n : next;\n}\n"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"RuntimeBar.selection.js","sources":["../../../src/data/runtime/RuntimeBar.selection.ts"],"sourcesContent":["import type { ChatModel } from \"../chat/types\";\nimport type { RuntimeBarValue } from \"./RuntimeBar\";\nimport { isUnavailable } from \"./availability\";\nimport { reconcileModelCapabilities } from \"./model-capabilities\";\nimport { runtimeModelForValue } from \"./RuntimeBar.model\";\nimport {\n modelsForFamily,\n runtimeModeFromModel,\n runtimeModeIcon,\n type SpecRuntimeFamily,\n} from \"./runtime-mode\";\n\nexport function runtimeModes(families: SpecRuntimeFamily[]) {\n return [\n ...new Map(\n families\n .flatMap((family) => family.modes)\n .filter((mode) => !isUnavailable(mode.availability))\n .map((mode) => {\n const icon = mode.icon ?? runtimeModeIcon(mode.id);\n return [mode.id, icon ? { ...mode, icon } : mode] as const;\n }),\n ).values(),\n ];\n}\n\nexport function modelGroupsForMode({\n models,\n families,\n mode,\n}: {\n models: ChatModel[];\n families: SpecRuntimeFamily[];\n mode: string;\n}) {\n return families\n .filter((family) =>\n family.modes.some(\n (entry) => entry.id === mode && !isUnavailable(entry.availability),\n ),\n )\n .map((family) => ({\n family,\n models: modelsForFamily(models, family, mode).filter((model) => {\n const modelMode =\n model.runtime?.mode ??\n runtimeModeFromModel(model.runtime?.model ?? model.id);\n return modelMode === undefined || modelMode === mode;\n }),\n }));\n}\n\nexport function withRuntimeMode<T extends RuntimeBarValue>({\n value,\n models,\n families,\n mode,\n reasoningEfforts,\n}: {\n value: T;\n models: ChatModel[];\n families: SpecRuntimeFamily[];\n mode: string;\n reasoningEfforts: readonly string[];\n}): T {\n if (!runtimeModes(families).some((entry) => entry.id === mode)) {\n throw new Error(`Runtime mode ${JSON.stringify(mode)} is unavailable`);\n }\n const eligible = modelGroupsForMode({ models, families, mode }).flatMap(\n (group) => group.models,\n );\n const model = runtimeModelForValue(eligible, { ...value, mode });\n const next = { ...value, mode };\n delete next.id;\n delete next.model;\n delete next.cliArgs;\n return model\n ? reconcileModelCapabilities(next, model, reasoningEfforts, { mode })\n : next;\n}\n"],"names":[],"mappings":";;;;;AAYO,SAAS,aAAa,UAA+B;AAC1D,SAAO;AAAA,IACL,GAAG,IAAI;AAAA,MACL,SACG,QAAQ,CAAC,WAAW,OAAO,KAAK,EAChC,OAAO,CAAC,SAAS,CAAC,cAAc,KAAK,YAAY,CAAC,EAClD,IAAI,CAAC,SAAS;AACb,cAAM,OAAO,KAAK,QAAQ,gBAAgB,KAAK,EAAE;AACjD,eAAO,CAAC,KAAK,IAAI,OAAO,EAAE,GAAG,MAAM,KAAA,IAAS,IAAI;AAAA,MAClD,CAAC;AAAA,IAAA,EACH,OAAA;AAAA,EAAO;AAEb;AAEO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,SAAO,SACJ;AAAA,IAAO,CAAC,WACP,OAAO,MAAM;AAAA,MACX,CAAC,UAAU,MAAM,OAAO,QAAQ,CAAC,cAAc,MAAM,YAAY;AAAA,IAAA;AAAA,EACnE,EAED,IAAI,CAAC,YAAY;AAAA,IAChB;AAAA,IACA,QAAQ,gBAAgB,QAAQ,QAAQ,IAAI,EAAE,OAAO,CAAC,UAAU;;AAC9D,YAAM,cACJ,WAAM,YAAN,mBAAe,SACf,uBAAqB,WAAM,YAAN,mBAAe,UAAS,MAAM,EAAE;AACvD,aAAO,cAAc,UAAa,cAAc;AAAA,IAClD,CAAC;AAAA,EAAA,EACD;AACN;AAEO,SAAS,gBAA2C;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMM;AACJ,MAAI,CAAC,aAAa,QAAQ,EAAE,KAAK,CAAC,UAAU,MAAM,OAAO,IAAI,GAAG;AAC9D,UAAM,IAAI,MAAM,gBAAgB,KAAK,UAAU,IAAI,CAAC,iBAAiB;AAAA,EACvE;AACA,QAAM,WAAW,mBAAmB,EAAE,QAAQ,UAAU,KAAA,CAAM,EAAE;AAAA,IAC9D,CAAC,UAAU,MAAM;AAAA,EAAA;AAEnB,QAAM,QAAQ,qBAAqB,UAAU,EAAE,GAAG,OAAO,MAAM;AAC/D,QAAM,OAAO,EAAE,GAAG,OAAO,KAAA;AACzB,SAAO,KAAK;AACZ,SAAO,KAAK;AACZ,SAAO,KAAK;AACZ,SAAO,QACH,2BAA2B,MAAM,OAAO,kBAAkB,EAAE,KAAA,CAAM,IAClE;AACN;"}
|
|
@@ -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 Icon = require("../Icon.cjs");
|
|
7
6
|
const RuntimeBarSegment = require("./RuntimeBarSegment.cjs");
|
|
8
|
-
const RuntimeBar_context = require("./RuntimeBar.context.cjs");
|
|
9
7
|
const UiDotsVertical = require("../../icons/components/UiDotsVertical.cjs");
|
|
10
8
|
function RuntimeBarActions({
|
|
11
9
|
fields = [],
|
|
@@ -16,8 +14,6 @@ function RuntimeBarActions({
|
|
|
16
14
|
className,
|
|
17
15
|
visibleCount = fields.length
|
|
18
16
|
}) {
|
|
19
|
-
const variant = react.useContext(RuntimeBar_context.RuntimeBarVariantContext);
|
|
20
|
-
const useStandalone = standalone || variant === "combo";
|
|
21
17
|
const inlineFields = inline ? fields.filter((field) => field.isSet).slice(0, visibleCount) : [];
|
|
22
18
|
const menuItems = [
|
|
23
19
|
...fields.map((field) => ({
|
|
@@ -39,7 +35,7 @@ function RuntimeBarActions({
|
|
|
39
35
|
"data-runtime-bar-section": "actions",
|
|
40
36
|
className: utils.cn(
|
|
41
37
|
"flex h-control-h shrink-0 items-stretch",
|
|
42
|
-
|
|
38
|
+
standalone ? "w-fit overflow-hidden rounded-md border border-input bg-background" : "border-l border-border",
|
|
43
39
|
className
|
|
44
40
|
),
|
|
45
41
|
children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeBarActions.cjs","sources":["../../../src/data/runtime/RuntimeBarActions.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"RuntimeBarActions.cjs","sources":["../../../src/data/runtime/RuntimeBarActions.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { UiDotsVertical } from \"../../icons\";\nimport { cn } from \"../../lib/utils\";\nimport type { DropdownMenuItem } from \"../../overlay/DropdownMenu\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport { RuntimeSegment } from \"./RuntimeBarSegment\";\n\n/**\n * A run setting offered by the runtime bar. Its choices are `DropdownMenuItem`s\n * so the inline and collapsed renderings are the SAME list: inline it is a\n * segment's menu, collapsed it is a flyout submenu of the ⋮ menu. Anything that\n * cannot be a menu item (a multi-select, reorder buttons) belongs in a modal\n * reached from an item, not in this list.\n */\nexport type RuntimeBarAction = {\n id: string;\n /** Menu entry label when collapsed; also the inline segment's menu label. */\n label: string;\n icon?: StaticIconComponent | undefined;\n iconClassName?: string | undefined;\n /** Tooltip on the inline segment, e.g. \"Permission posture — Plan\". */\n title: string;\n /** Inline segment caption: key + glyph + current value. */\n caption: ReactNode;\n /** Only supplied settings are candidates for inline display. */\n isSet: boolean;\n /** Custom editor shared by the inline dropdown and overflow submenu. */\n header?: ReactNode;\n /** Choices, identical inline and collapsed. */\n items: DropdownMenuItem[];\n};\n\nexport type RuntimeBarActionsProps = {\n fields?: RuntimeBarAction[] | undefined;\n /** Always-collapsed entries listed after the fields, e.g. Advanced. */\n menu?: DropdownMenuItem[] | undefined;\n /** False collapses every field into the ⋮ menu. */\n inline?: boolean | undefined;\n menuLabel?: string | undefined;\n /** Renders its own bar chrome instead of fusing onto the bar's border. */\n standalone?: boolean | undefined;\n className?: string | undefined;\n /** Number of supplied fields that fit beside the runtime identity. */\n visibleCount?: number | undefined;\n};\n\n/**\n * The runtime bar's host-level settings plus a ⋮ menu. It fuses onto the\n * bar border, or renders its own border when used independently.\n */\nexport function RuntimeBarActions({\n fields = [],\n menu = [],\n inline = true,\n menuLabel = \"Runtime options\",\n standalone = false,\n className,\n visibleCount = fields.length,\n}: RuntimeBarActionsProps) {\n const inlineFields = inline\n ? fields.filter((field) => field.isSet).slice(0, visibleCount)\n : [];\n const menuItems: DropdownMenuItem[] = [\n ...fields.map((field) => ({\n label: field.label,\n ...(field.icon ? { icon: field.icon } : {}),\n ...(field.iconClassName ? { iconClassName: field.iconClassName } : {}),\n // Ignored: an item with `children` is a submenu trigger, not a leaf.\n onSelect: () => {},\n children: field.items,\n ...(field.header ? { header: field.header } : {}),\n })),\n ...menu,\n ];\n if (inlineFields.length === 0 && menuItems.length === 0) return null;\n\n return (\n <div\n data-runtime-bar-section=\"actions\"\n className={cn(\n \"flex h-control-h shrink-0 items-stretch\",\n standalone\n ? \"w-fit overflow-hidden rounded-md border border-input bg-background\"\n : \"border-l border-border\",\n className,\n )}\n >\n {inlineFields.map((field) => (\n <RuntimeSegment\n key={field.id}\n menuLabel={field.label}\n title={field.title}\n items={field.items}\n {...(field.header ? { header: field.header } : {})}\n >\n {field.caption}\n </RuntimeSegment>\n ))}\n {menuItems.length > 0 && (\n <RuntimeSegment\n menuLabel={menuLabel}\n title={menuLabel}\n items={menuItems}\n hideChevron\n >\n <Icon\n icon={UiDotsVertical}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n </RuntimeSegment>\n )}\n </div>\n );\n}\n"],"names":["jsxs","cn","jsx","RuntimeSegment","Icon","UiDotsVertical"],"mappings":";;;;;;;AAkDO,SAAS,kBAAkB;AAAA,EAChC,SAAS,CAAA;AAAA,EACT,OAAO,CAAA;AAAA,EACP,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,aAAa;AAAA,EACb;AAAA,EACA,eAAe,OAAO;AACxB,GAA2B;AACzB,QAAM,eAAe,SACjB,OAAO,OAAO,CAAC,UAAU,MAAM,KAAK,EAAE,MAAM,GAAG,YAAY,IAC3D,CAAA;AACJ,QAAM,YAAgC;AAAA,IACpC,GAAG,OAAO,IAAI,CAAC,WAAW;AAAA,MACxB,OAAO,MAAM;AAAA,MACb,GAAI,MAAM,OAAO,EAAE,MAAM,MAAM,KAAA,IAAS,CAAA;AAAA,MACxC,GAAI,MAAM,gBAAgB,EAAE,eAAe,MAAM,cAAA,IAAkB,CAAA;AAAA;AAAA,MAEnE,UAAU,MAAM;AAAA,MAAC;AAAA,MACjB,UAAU,MAAM;AAAA,MAChB,GAAI,MAAM,SAAS,EAAE,QAAQ,MAAM,OAAA,IAAW,CAAA;AAAA,IAAC,EAC/C;AAAA,IACF,GAAG;AAAA,EAAA;AAEL,MAAI,aAAa,WAAW,KAAK,UAAU,WAAW,EAAG,QAAO;AAEhE,SACEA,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,4BAAyB;AAAA,MACzB,WAAWC,MAAAA;AAAAA,QACT;AAAA,QACA,aACI,uEACA;AAAA,QACJ;AAAA,MAAA;AAAA,MAGD,UAAA;AAAA,QAAA,aAAa,IAAI,CAAC,UACjBC,2BAAAA;AAAAA,UAACC,kBAAAA;AAAAA,UAAA;AAAA,YAEC,WAAW,MAAM;AAAA,YACjB,OAAO,MAAM;AAAA,YACb,OAAO,MAAM;AAAA,YACZ,GAAI,MAAM,SAAS,EAAE,QAAQ,MAAM,OAAA,IAAW,CAAA;AAAA,YAE9C,UAAA,MAAM;AAAA,UAAA;AAAA,UANF,MAAM;AAAA,QAAA,CAQd;AAAA,QACA,UAAU,SAAS,KAClBD,2BAAAA;AAAAA,UAACC,kBAAAA;AAAAA,UAAA;AAAA,YACC;AAAA,YACA,OAAO;AAAA,YACP,OAAO;AAAA,YACP,aAAW;AAAA,YAEX,UAAAD,2BAAAA;AAAAA,cAACE,KAAAA;AAAAA,cAAA;AAAA,gBACC,MAAMC,eAAAA;AAAAA,gBACN,WAAU;AAAA,cAAA;AAAA,YAAA;AAAA,UACZ;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAIR;;"}
|
|
@@ -40,7 +40,7 @@ export type RuntimeBarActionsProps = {
|
|
|
40
40
|
};
|
|
41
41
|
/**
|
|
42
42
|
* The runtime bar's host-level settings plus a ⋮ menu. It fuses onto the
|
|
43
|
-
*
|
|
43
|
+
* bar border, or renders its own border when used independently.
|
|
44
44
|
*/
|
|
45
45
|
export declare function RuntimeBarActions({ fields, menu, inline, menuLabel, standalone, className, visibleCount, }: RuntimeBarActionsProps): import("react").JSX.Element | null;
|
|
46
46
|
//# sourceMappingURL=RuntimeBarActions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeBarActions.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/RuntimeBarActions.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"RuntimeBarActions.d.ts","sourceRoot":"","sources":["../../../src/data/runtime/RuntimeBarActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAQ,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGzD;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,OAAO,EAAE,SAAS,CAAC;IACnB,gEAAgE;IAChE,KAAK,EAAE,OAAO,CAAC;IACf,wEAAwE;IACxE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,+CAA+C;IAC/C,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IACxC,uEAAuE;IACvE,IAAI,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IACtC,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,MAAW,EACX,IAAS,EACT,MAAa,EACb,SAA6B,EAC7B,UAAkB,EAClB,SAAS,EACT,YAA4B,GAC7B,EAAE,sBAAsB,sCAuDxB"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useContext } from "react";
|
|
3
2
|
import { cn } from "../../lib/utils.js";
|
|
4
3
|
import { Icon } from "../Icon.js";
|
|
5
4
|
import { RuntimeSegment } from "./RuntimeBarSegment.js";
|
|
6
|
-
import { RuntimeBarVariantContext } from "./RuntimeBar.context.js";
|
|
7
5
|
import { UiDotsVertical } from "../../icons/components/UiDotsVertical.js";
|
|
8
6
|
function RuntimeBarActions({
|
|
9
7
|
fields = [],
|
|
@@ -14,8 +12,6 @@ function RuntimeBarActions({
|
|
|
14
12
|
className,
|
|
15
13
|
visibleCount = fields.length
|
|
16
14
|
}) {
|
|
17
|
-
const variant = useContext(RuntimeBarVariantContext);
|
|
18
|
-
const useStandalone = standalone || variant === "combo";
|
|
19
15
|
const inlineFields = inline ? fields.filter((field) => field.isSet).slice(0, visibleCount) : [];
|
|
20
16
|
const menuItems = [
|
|
21
17
|
...fields.map((field) => ({
|
|
@@ -37,7 +33,7 @@ function RuntimeBarActions({
|
|
|
37
33
|
"data-runtime-bar-section": "actions",
|
|
38
34
|
className: cn(
|
|
39
35
|
"flex h-control-h shrink-0 items-stretch",
|
|
40
|
-
|
|
36
|
+
standalone ? "w-fit overflow-hidden rounded-md border border-input bg-background" : "border-l border-border",
|
|
41
37
|
className
|
|
42
38
|
),
|
|
43
39
|
children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeBarActions.js","sources":["../../../src/data/runtime/RuntimeBarActions.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"RuntimeBarActions.js","sources":["../../../src/data/runtime/RuntimeBarActions.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { UiDotsVertical } from \"../../icons\";\nimport { cn } from \"../../lib/utils\";\nimport type { DropdownMenuItem } from \"../../overlay/DropdownMenu\";\nimport { Icon, type StaticIconComponent } from \"../Icon\";\nimport { RuntimeSegment } from \"./RuntimeBarSegment\";\n\n/**\n * A run setting offered by the runtime bar. Its choices are `DropdownMenuItem`s\n * so the inline and collapsed renderings are the SAME list: inline it is a\n * segment's menu, collapsed it is a flyout submenu of the ⋮ menu. Anything that\n * cannot be a menu item (a multi-select, reorder buttons) belongs in a modal\n * reached from an item, not in this list.\n */\nexport type RuntimeBarAction = {\n id: string;\n /** Menu entry label when collapsed; also the inline segment's menu label. */\n label: string;\n icon?: StaticIconComponent | undefined;\n iconClassName?: string | undefined;\n /** Tooltip on the inline segment, e.g. \"Permission posture — Plan\". */\n title: string;\n /** Inline segment caption: key + glyph + current value. */\n caption: ReactNode;\n /** Only supplied settings are candidates for inline display. */\n isSet: boolean;\n /** Custom editor shared by the inline dropdown and overflow submenu. */\n header?: ReactNode;\n /** Choices, identical inline and collapsed. */\n items: DropdownMenuItem[];\n};\n\nexport type RuntimeBarActionsProps = {\n fields?: RuntimeBarAction[] | undefined;\n /** Always-collapsed entries listed after the fields, e.g. Advanced. */\n menu?: DropdownMenuItem[] | undefined;\n /** False collapses every field into the ⋮ menu. */\n inline?: boolean | undefined;\n menuLabel?: string | undefined;\n /** Renders its own bar chrome instead of fusing onto the bar's border. */\n standalone?: boolean | undefined;\n className?: string | undefined;\n /** Number of supplied fields that fit beside the runtime identity. */\n visibleCount?: number | undefined;\n};\n\n/**\n * The runtime bar's host-level settings plus a ⋮ menu. It fuses onto the\n * bar border, or renders its own border when used independently.\n */\nexport function RuntimeBarActions({\n fields = [],\n menu = [],\n inline = true,\n menuLabel = \"Runtime options\",\n standalone = false,\n className,\n visibleCount = fields.length,\n}: RuntimeBarActionsProps) {\n const inlineFields = inline\n ? fields.filter((field) => field.isSet).slice(0, visibleCount)\n : [];\n const menuItems: DropdownMenuItem[] = [\n ...fields.map((field) => ({\n label: field.label,\n ...(field.icon ? { icon: field.icon } : {}),\n ...(field.iconClassName ? { iconClassName: field.iconClassName } : {}),\n // Ignored: an item with `children` is a submenu trigger, not a leaf.\n onSelect: () => {},\n children: field.items,\n ...(field.header ? { header: field.header } : {}),\n })),\n ...menu,\n ];\n if (inlineFields.length === 0 && menuItems.length === 0) return null;\n\n return (\n <div\n data-runtime-bar-section=\"actions\"\n className={cn(\n \"flex h-control-h shrink-0 items-stretch\",\n standalone\n ? \"w-fit overflow-hidden rounded-md border border-input bg-background\"\n : \"border-l border-border\",\n className,\n )}\n >\n {inlineFields.map((field) => (\n <RuntimeSegment\n key={field.id}\n menuLabel={field.label}\n title={field.title}\n items={field.items}\n {...(field.header ? { header: field.header } : {})}\n >\n {field.caption}\n </RuntimeSegment>\n ))}\n {menuItems.length > 0 && (\n <RuntimeSegment\n menuLabel={menuLabel}\n title={menuLabel}\n items={menuItems}\n hideChevron\n >\n <Icon\n icon={UiDotsVertical}\n className=\"size-4 shrink-0 text-muted-foreground\"\n />\n </RuntimeSegment>\n )}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;AAkDO,SAAS,kBAAkB;AAAA,EAChC,SAAS,CAAA;AAAA,EACT,OAAO,CAAA;AAAA,EACP,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,aAAa;AAAA,EACb;AAAA,EACA,eAAe,OAAO;AACxB,GAA2B;AACzB,QAAM,eAAe,SACjB,OAAO,OAAO,CAAC,UAAU,MAAM,KAAK,EAAE,MAAM,GAAG,YAAY,IAC3D,CAAA;AACJ,QAAM,YAAgC;AAAA,IACpC,GAAG,OAAO,IAAI,CAAC,WAAW;AAAA,MACxB,OAAO,MAAM;AAAA,MACb,GAAI,MAAM,OAAO,EAAE,MAAM,MAAM,KAAA,IAAS,CAAA;AAAA,MACxC,GAAI,MAAM,gBAAgB,EAAE,eAAe,MAAM,cAAA,IAAkB,CAAA;AAAA;AAAA,MAEnE,UAAU,MAAM;AAAA,MAAC;AAAA,MACjB,UAAU,MAAM;AAAA,MAChB,GAAI,MAAM,SAAS,EAAE,QAAQ,MAAM,OAAA,IAAW,CAAA;AAAA,IAAC,EAC/C;AAAA,IACF,GAAG;AAAA,EAAA;AAEL,MAAI,aAAa,WAAW,KAAK,UAAU,WAAW,EAAG,QAAO;AAEhE,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,4BAAyB;AAAA,MACzB,WAAW;AAAA,QACT;AAAA,QACA,aACI,uEACA;AAAA,QACJ;AAAA,MAAA;AAAA,MAGD,UAAA;AAAA,QAAA,aAAa,IAAI,CAAC,UACjB;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAW,MAAM;AAAA,YACjB,OAAO,MAAM;AAAA,YACb,OAAO,MAAM;AAAA,YACZ,GAAI,MAAM,SAAS,EAAE,QAAQ,MAAM,OAAA,IAAW,CAAA;AAAA,YAE9C,UAAA,MAAM;AAAA,UAAA;AAAA,UANF,MAAM;AAAA,QAAA,CAQd;AAAA,QACA,UAAU,SAAS,KAClB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA,OAAO;AAAA,YACP,OAAO;AAAA,YACP,aAAW;AAAA,YAEX,UAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAM;AAAA,gBACN,WAAU;AAAA,cAAA;AAAA,YAAA;AAAA,UACZ;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -25,12 +25,9 @@ function RuntimeBarIdentity({
|
|
|
25
25
|
"div",
|
|
26
26
|
{
|
|
27
27
|
"data-runtime-bar-section": measure ? void 0 : "identity",
|
|
28
|
-
className:
|
|
29
|
-
"flex h-control-h min-w-0 items-stretch",
|
|
30
|
-
props.variant === "combo" && "gap-1"
|
|
31
|
-
),
|
|
28
|
+
className: "flex h-control-h min-w-0 items-stretch",
|
|
32
29
|
children: [
|
|
33
|
-
measure ? /* @__PURE__ */ jsxRuntime.jsx(IdentityMeasure, {
|
|
30
|
+
measure ? /* @__PURE__ */ jsxRuntime.jsx(IdentityMeasure, { children: modeCaption }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
34
31
|
RuntimeBarSegment.RuntimeSegment,
|
|
35
32
|
{
|
|
36
33
|
menuLabel: "Runtime mode",
|
|
@@ -45,13 +42,12 @@ function RuntimeBarIdentity({
|
|
|
45
42
|
children: modeCaption
|
|
46
43
|
}
|
|
47
44
|
),
|
|
48
|
-
measure ? /* @__PURE__ */ jsxRuntime.jsx(IdentityMeasure, {
|
|
45
|
+
measure ? /* @__PURE__ */ jsxRuntime.jsx(IdentityMeasure, { model: true, children: /* @__PURE__ */ jsxRuntime.jsx(ModelCaption, { ...props }) }) : /* @__PURE__ */ jsxRuntime.jsx(RuntimeModelPicker, { ...props })
|
|
49
46
|
]
|
|
50
47
|
}
|
|
51
48
|
);
|
|
52
49
|
}
|
|
53
50
|
function IdentityMeasure({
|
|
54
|
-
variant,
|
|
55
51
|
model = false,
|
|
56
52
|
children
|
|
57
53
|
}) {
|
|
@@ -59,9 +55,8 @@ function IdentityMeasure({
|
|
|
59
55
|
"div",
|
|
60
56
|
{
|
|
61
57
|
className: utils.cn(
|
|
62
|
-
"flex h-control-h items-center gap-1.5 px-density-2",
|
|
63
|
-
model && "max-w-56 min-w-0"
|
|
64
|
-
variant === "combo" ? "rounded-md border border-input" : "border-l border-border first:border-l-0"
|
|
58
|
+
"flex h-control-h items-center gap-1.5 border-l border-border px-density-2 first:border-l-0",
|
|
59
|
+
model && "max-w-56 min-w-0"
|
|
65
60
|
),
|
|
66
61
|
children: /* @__PURE__ */ jsxRuntime.jsx(RuntimeBarSegment.RuntimeSegmentCaption, { children })
|
|
67
62
|
}
|
|
@@ -141,10 +136,7 @@ function RuntimeModelPicker(props) {
|
|
|
141
136
|
disabled: props.locked,
|
|
142
137
|
value: props.unavailable ? "" : ((_a = props.selectedModel) == null ? void 0 : _a.id) ?? props.model ?? "",
|
|
143
138
|
options,
|
|
144
|
-
className:
|
|
145
|
-
"h-control-h min-w-0 max-w-56 flex-1",
|
|
146
|
-
props.variant === "combo" ? "rounded-md border border-input bg-background" : "border-l border-border first:border-l-0"
|
|
147
|
-
),
|
|
139
|
+
className: "h-control-h min-w-0 max-w-56 flex-1 border-l border-border first:border-l-0",
|
|
148
140
|
triggerClassName: "h-full rounded-none border-0 px-density-2 focus-visible:ring-inset aria-expanded:bg-muted",
|
|
149
141
|
triggerContent: /* @__PURE__ */ jsxRuntime.jsx(ModelCaption, { ...props }),
|
|
150
142
|
onNew: (value) => ({ value, label: `Use custom: ${value}` }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeBarIdentity.cjs","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":["jsxs","Fragment","jsx","Icon","SEGMENT_CAPTION_CLASS","cn","RuntimeSegment","RuntimeSegmentCaption","runtimeFamilyBrand","UNSPECIFIED_LABEL","unspecifiedHint","Combobox","_a","family","model"],"mappings":";;;;;;;;;AAkCO,SAAS,mBAAmB;AAAA,EACjC,UAAU;AAAA,EACV,GAAG;AACL,GAAoD;AAClD,QAAM,cACJA,2BAAAA,KAAAC,WAAAA,UAAA,EACG,UAAA;AAAA,IAAA,MAAM,KAAK,QACVC,2BAAAA;AAAAA,MAACC,KAAAA;AAAAA,MAAA;AAAA,QACC,MAAM,MAAM,KAAK;AAAA,QACjB,WAAU;AAAA,MAAA;AAAA,IAAA;AAAA,mCAGb,QAAA,EAAK,WAAWC,kBAAAA,uBAAwB,UAAA,MAAM,KAAK,MAAA,CAAM;AAAA,EAAA,GAC5D;AAEF,SACEJ,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,4BAA0B,UAAU,SAAY;AAAA,MAChD,WAAWK,MAAAA;AAAAA,QACT;AAAA,QACA,MAAM,YAAY,WAAW;AAAA,MAAA;AAAA,MAG9B,UAAA;AAAA,QAAA,yCACE,iBAAA,EAAgB,SAAS,MAAM,SAAU,uBAAY,IAEtDH,2BAAAA;AAAAA,UAACI,kBAAAA;AAAAA,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,UACCJ,2BAAAA,IAAC,iBAAA,EAAgB,SAAS,MAAM,SAAS,OAAK,MAC5C,UAAAA,2BAAAA,IAAC,cAAA,EAAc,GAAG,OAAO,EAAA,CAC3B,IAEAA,+BAAC,oBAAA,EAAoB,GAAG,MAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIvC;AAEA,SAAS,gBAAgB;AAAA,EACvB;AAAA,EACA,QAAQ;AAAA,EACR;AACF,GAIG;AACD,SACEA,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWG,MAAAA;AAAAA,QACT;AAAA,QACA,SAAS;AAAA,QACT,YAAY,UACR,mCACA;AAAA,MAAA;AAAA,MAGN,UAAAH,2BAAAA,IAACK,2CAAuB,SAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAGvC;AAEA,SAAS,aAAa,OAAgC;;AACpD,QAAM,QAAQC,iBAAAA,mBAAmB,MAAM,MAAM;AAC7C,QAAM,QAAQ,MAAM,YAChB,MAAM,cACJ,4BACC,WAAM,kBAAN,mBAAqB,UAAS,MAAM,SAASC,YAAAA,oBAChD,MAAM,OAAO;AACjB,SACET,2BAAAA,KAAAC,qBAAA,EACG,UAAA;AAAA,IAAA,MAAM,aACLD,gCAAC,QAAA,EAAK,WAAU,WAAW,UAAA;AAAA,MAAA,MAAM,OAAO;AAAA,MAAM;AAAA,IAAA,GAAC;AAAA,IAEhD,MAAM,QACLE,2BAAAA;AAAAA,MAACC,KAAAA;AAAAA,MAAA;AAAA,QACC,MAAM,MAAM;AAAA,QACZ,WAAWE,MAAAA,GAAG,mBAAmB,MAAM,KAAK;AAAA,MAAA;AAAA,IAAA;AAAA,IAGhDH,2BAAAA,IAAC,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,WACEA,2BAAAA;AAAAA,MAACI,kBAAAA;AAAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV;AAAA,QACA,UAAU,MAAM;AAAA,QAChB,WAAU;AAAA,QACV,OAAO,MAAM,OAAO,IAAI,CAAC,EAAE,aAAa;AACtC,gBAAM,QAAQE,iBAAAA,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,UAAAN,2BAAAA,IAAC,cAAA,EAAc,GAAG,MAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAG/B,QAAM,UAA4B;AAAA,IAChC;AAAA,MACE,OAAO;AAAA,MACP,OAAOO,YAAAA;AAAAA,MACP,aAAaC,YAAAA,gBAAgB,MAAM,mBAAmB;AAAA,IAAA;AAAA,IAExD,GAAG,MAAM,OAAO,QAAQ,CAAC,EAAE,QAAQ,aAAa;AAC9C,YAAM,QAAQF,iBAAAA,mBAAmB,MAAM;AACvC,YAAM,OAAO,MAAM,OACjBN,2BAAAA,IAACC,KAAAA,QAAK,MAAM,MAAM,MAAM,WAAWE,MAAAA,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,SACEH,2BAAAA;AAAAA,IAACS,SAAAA;AAAAA,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,WAAWN,MAAAA;AAAAA,QACT;AAAA,QACA,MAAM,YAAY,UACd,iDACA;AAAA,MAAA;AAAA,MAEN,kBAAiB;AAAA,MACjB,gBAAgBH,2BAAAA,IAAC,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,UAASU,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;;"}
|
|
1
|
+
{"version":3,"file":"RuntimeBarIdentity.cjs","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":["jsxs","Fragment","jsx","Icon","SEGMENT_CAPTION_CLASS","RuntimeSegment","cn","RuntimeSegmentCaption","runtimeFamilyBrand","UNSPECIFIED_LABEL","unspecifiedHint","Combobox","_a","family","model"],"mappings":";;;;;;;;;AAiCO,SAAS,mBAAmB;AAAA,EACjC,UAAU;AAAA,EACV,GAAG;AACL,GAAoD;AAClD,QAAM,cACJA,2BAAAA,KAAAC,WAAAA,UAAA,EACG,UAAA;AAAA,IAAA,MAAM,KAAK,QACVC,2BAAAA;AAAAA,MAACC,KAAAA;AAAAA,MAAA;AAAA,QACC,MAAM,MAAM,KAAK;AAAA,QACjB,WAAU;AAAA,MAAA;AAAA,IAAA;AAAA,mCAGb,QAAA,EAAK,WAAWC,kBAAAA,uBAAwB,UAAA,MAAM,KAAK,MAAA,CAAM;AAAA,EAAA,GAC5D;AAEF,SACEJ,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,4BAA0B,UAAU,SAAY;AAAA,MAChD,WAAU;AAAA,MAET,UAAA;AAAA,QAAA,UACCE,2BAAAA,IAAC,iBAAA,EAAiB,UAAA,YAAA,CAAY,IAE9BA,2BAAAA;AAAAA,UAACG,kBAAAA;AAAAA,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,UACCH,2BAAAA,IAAC,iBAAA,EAAgB,OAAK,MACpB,UAAAA,+BAAC,cAAA,EAAc,GAAG,MAAA,CAAO,GAC3B,IAEAA,2BAAAA,IAAC,oBAAA,EAAoB,GAAG,MAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIvC;AAEA,SAAS,gBAAgB;AAAA,EACvB,QAAQ;AAAA,EACR;AACF,GAGG;AACD,SACEA,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWI,MAAAA;AAAAA,QACT;AAAA,QACA,SAAS;AAAA,MAAA;AAAA,MAGX,UAAAJ,2BAAAA,IAACK,2CAAuB,SAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAGvC;AAEA,SAAS,aAAa,OAAgC;;AACpD,QAAM,QAAQC,iBAAAA,mBAAmB,MAAM,MAAM;AAC7C,QAAM,QAAQ,MAAM,YAChB,MAAM,cACJ,4BACC,WAAM,kBAAN,mBAAqB,UAAS,MAAM,SAASC,YAAAA,oBAChD,MAAM,OAAO;AACjB,SACET,2BAAAA,KAAAC,qBAAA,EACG,UAAA;AAAA,IAAA,MAAM,aACLD,gCAAC,QAAA,EAAK,WAAU,WAAW,UAAA;AAAA,MAAA,MAAM,OAAO;AAAA,MAAM;AAAA,IAAA,GAAC;AAAA,IAEhD,MAAM,QACLE,2BAAAA;AAAAA,MAACC,KAAAA;AAAAA,MAAA;AAAA,QACC,MAAM,MAAM;AAAA,QACZ,WAAWG,MAAAA,GAAG,mBAAmB,MAAM,KAAK;AAAA,MAAA;AAAA,IAAA;AAAA,IAGhDJ,2BAAAA,IAAC,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,WACEA,2BAAAA;AAAAA,MAACG,kBAAAA;AAAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV;AAAA,QACA,UAAU,MAAM;AAAA,QAChB,WAAU;AAAA,QACV,OAAO,MAAM,OAAO,IAAI,CAAC,EAAE,aAAa;AACtC,gBAAM,QAAQG,iBAAAA,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,UAAAN,2BAAAA,IAAC,cAAA,EAAc,GAAG,MAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAG/B,QAAM,UAA4B;AAAA,IAChC;AAAA,MACE,OAAO;AAAA,MACP,OAAOO,YAAAA;AAAAA,MACP,aAAaC,YAAAA,gBAAgB,MAAM,mBAAmB;AAAA,IAAA;AAAA,IAExD,GAAG,MAAM,OAAO,QAAQ,CAAC,EAAE,QAAQ,aAAa;AAC9C,YAAM,QAAQF,iBAAAA,mBAAmB,MAAM;AACvC,YAAM,OAAO,MAAM,OACjBN,2BAAAA,IAACC,KAAAA,QAAK,MAAM,MAAM,MAAM,WAAWG,MAAAA,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,SACEJ,2BAAAA;AAAAA,IAACS,SAAAA;AAAAA,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,gBAAgBT,2BAAAA,IAAC,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,UAASU,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;;"}
|
|
@@ -12,7 +12,6 @@ export type RuntimeBarIdentityProps = {
|
|
|
12
12
|
inheritedModelLabel: string | undefined;
|
|
13
13
|
locked: boolean;
|
|
14
14
|
showModel: boolean;
|
|
15
|
-
variant: "segmented" | "combo";
|
|
16
15
|
onModeChange: (mode: string) => void;
|
|
17
16
|
onModelSelect: (model: ChatModel) => void;
|
|
18
17
|
onModelClear: () => void;
|
|
@@ -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":"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"}
|
|
@@ -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;"}
|